:root{
  --cream:#F5EFE3;--cream-2:#EBE4D3;--paper:#FBF8F0;
  --ink:#1F2620;--ink-2:#3D4C3F;--mute:#7C8579;--line:rgba(31,38,32,.12);
  --sage:#5C7B66;--sage-d:#3F5C49;--sage-l:#A4BCAA;--sage-soft:#D9E3DC;
  --gold:#A47D2F;--gold-l:#C9A55F;
  --display:'Frank Ruhl Libre',Georgia,serif;
  --body:'Inter',-apple-system,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--body);font-size:15.5px;line-height:1.7;-webkit-font-smoothing:antialiased;font-weight:400}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font-family:inherit}
::selection{background:var(--sage);color:var(--cream)}

/* DEMO BANNER */
.demo-banner{background:var(--sage-d);color:var(--paper);font-size:.78rem;padding:.6rem 1.5rem;text-align:center;letter-spacing:.04em;font-style:italic;font-family:var(--display);font-weight:300}
.demo-banner strong{color:var(--paper);font-weight:500;font-style:normal}
.demo-banner a{color:var(--cream-2);text-decoration:underline}

/* HEADER */
.masthead{display:flex;justify-content:space-between;align-items:center;padding:1.8rem 3rem;background:var(--cream);border-bottom:1px solid var(--line)}
.brand-block{display:flex;align-items:center;gap:1.2rem}
.brand-mark{width:42px;height:42px;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:300;font-size:1.4rem;color:var(--gold);font-style:italic}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:var(--display);font-weight:500;font-size:1.4rem;letter-spacing:.005em}
.brand-tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.22em;color:var(--mute);font-weight:500;margin-top:.2rem}
.masthead nav{display:flex;gap:2rem;font-size:.84rem;font-weight:400;color:var(--ink-2)}
.masthead nav a{padding:.4rem 0;border-bottom:1px solid transparent;transition:border-color .3s,color .25s}
.masthead nav a:hover,.masthead nav a.active{border-bottom-color:var(--gold);color:var(--sage-d)}

/* HERO — split-asymmetric */
.hero{padding:7rem 3rem 5rem;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:5rem;align-items:end}
.hero .anchor{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:2rem;display:flex;align-items:center;gap:.7rem}
.hero .anchor::before{content:"❋";font-size:1rem;color:var(--gold)}
.hero h1{font-family:var(--display);font-weight:300;font-size:clamp(3.2rem,7vw,6rem);line-height:1.02;letter-spacing:-.015em;margin-bottom:1.6rem;color:var(--ink)}
.hero h1 em{font-style:italic;color:var(--sage-d);font-weight:500}
.hero h1 .ornament{font-style:italic;color:var(--gold);font-weight:300}
.hero .lede{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.55;max-width:540px;color:var(--ink-2);margin-bottom:2.4rem}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 1.8rem;border:0;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;font-family:var(--body);transition:transform .25s,background .25s,color .25s}
.btn-primary{background:var(--sage-d);color:var(--paper)}
.btn-primary:hover{background:var(--ink);transform:translateY(-1px)}
.btn-ghost{background:transparent;border:1px solid var(--ink);color:var(--ink);padding:calc(1rem - 1px) calc(1.8rem - 1px)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.hero-aside{display:flex;flex-direction:column;gap:1.4rem;padding:2rem;background:var(--paper);border:1px solid var(--line);position:relative}
.hero-aside::before{content:"";position:absolute;top:-1px;left:-1px;width:30px;height:30px;border-top:2px solid var(--gold);border-left:2px solid var(--gold)}
.hero-aside::after{content:"";position:absolute;bottom:-1px;right:-1px;width:30px;height:30px;border-bottom:2px solid var(--gold);border-right:2px solid var(--gold)}
.hero-aside .kicker{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.hero-aside h3{font-family:var(--display);font-weight:500;font-size:1.4rem;line-height:1.2;color:var(--ink)}
.hero-aside p{font-size:.95rem;color:var(--ink-2);line-height:1.6;font-style:italic;font-family:var(--display);font-weight:300;font-size:1.05rem}
.hero-aside .cert{font-size:.78rem;color:var(--mute);letter-spacing:.04em;display:flex;align-items:center;gap:.5rem;border-top:1px solid var(--line);padding-top:1rem;margin-top:.4rem}
.hero-aside .cert::before{content:"✓";color:var(--gold);font-weight:600}

/* RITUALS */
.rituals{padding:7rem 3rem;max-width:1180px;margin:0 auto}
.section-head{text-align:center;margin-bottom:5rem;max-width:720px;margin-left:auto;margin-right:auto}
.section-head .num{font-family:var(--display);font-style:italic;font-size:.95rem;color:var(--gold);letter-spacing:.04em;margin-bottom:1rem}
.section-head h2{font-family:var(--display);font-weight:300;font-size:clamp(2.5rem,5vw,4rem);line-height:1.05;letter-spacing:-.015em;margin-bottom:1.4rem}
.section-head h2 em{font-style:italic;color:var(--sage-d);font-weight:500}
.section-head .sub{font-family:var(--display);font-style:italic;font-weight:300;font-size:1.1rem;color:var(--mute);line-height:1.6}

.ritual-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3rem 4rem}
.ritual{padding-top:1.4rem;border-top:1px solid var(--line);position:relative}
.ritual .meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}
.ritual .meta .name{color:var(--gold);font-weight:500}
.ritual .meta .duration{color:var(--mute)}
.ritual h3{font-family:var(--display);font-weight:500;font-size:1.85rem;line-height:1.15;letter-spacing:-.01em;margin-bottom:.8rem;color:var(--ink)}
.ritual h3 em{font-style:italic;color:var(--sage-d);font-weight:300}
.ritual .desc{font-family:var(--display);font-style:italic;font-weight:300;font-size:1.08rem;line-height:1.6;color:var(--ink-2);margin-bottom:1.2rem}
.ritual .price{font-family:var(--display);font-weight:500;font-size:1.4rem;color:var(--sage-d);letter-spacing:-.01em}
.ritual .price small{font-size:.75rem;color:var(--mute);font-weight:400;letter-spacing:.04em;font-family:var(--body);font-style:normal}

/* PHILOSOPHIE */
.philosophie{padding:7rem 3rem;background:var(--sage-soft);position:relative;overflow:hidden}
.philosophie::before{content:"❋";position:absolute;top:3rem;right:5%;font-size:18rem;color:rgba(60,80,75,.06);line-height:1;pointer-events:none;font-family:var(--display)}
.philosophie-inner{max-width:780px;margin:0 auto;text-align:center;position:relative}
.philosophie .num{font-family:var(--display);font-style:italic;font-size:.95rem;color:var(--gold);letter-spacing:.04em;margin-bottom:1.2rem}
.philosophie h2{font-family:var(--display);font-weight:300;font-size:clamp(2.2rem,4vw,3.4rem);line-height:1.15;letter-spacing:-.015em;margin-bottom:2rem}
.philosophie h2 em{font-style:italic;color:var(--sage-d);font-weight:500}
.philosophie p{font-family:var(--display);font-weight:300;font-size:1.18rem;line-height:1.75;color:var(--ink-2);margin-bottom:1.4rem}
.philosophie .credo{font-family:var(--display);font-weight:500;font-size:1.4rem;color:var(--sage-d);font-style:italic;margin-top:2.5rem;letter-spacing:-.01em}
.philosophie .credo::before,.philosophie .credo::after{content:"—";color:var(--gold);margin:0 .8rem;font-style:normal;font-weight:300}

/* HOURS + LOCATION */
.visit{padding:7rem 3rem;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
.visit .num{font-family:var(--display);font-style:italic;font-size:.95rem;color:var(--gold);margin-bottom:1rem}
.visit h2{font-family:var(--display);font-weight:300;font-size:clamp(2rem,3.5vw,2.8rem);line-height:1.1;letter-spacing:-.01em;margin-bottom:2rem}
.visit h2 em{font-style:italic;color:var(--sage-d);font-weight:500}
.hours-table{width:100%;font-family:var(--body)}
.hours-table tr{border-bottom:1px solid var(--line)}
.hours-table td{padding:1rem 0;font-size:1rem}
.hours-table td:first-child{color:var(--mute)}
.hours-table td:last-child{text-align:right;color:var(--ink);font-weight:500}
.hours-table tr.closed td:last-child{color:var(--gold);font-style:italic;font-family:var(--display);font-weight:300}
.location-meta{font-family:var(--body);font-size:1rem;color:var(--ink-2);line-height:1.8;margin-bottom:1.6rem}
.location-meta strong{font-family:var(--display);font-weight:500;font-size:1.25rem;color:var(--ink);display:block;margin-bottom:.4rem;font-style:italic}
.location-meta a{color:var(--sage-d);border-bottom:1px solid var(--gold);padding-bottom:1px}

/* FOOTER */
footer{background:var(--ink);color:rgba(245,239,227,.75);padding:4rem 3rem 2.5rem;font-family:var(--body)}
footer .ftop{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:3rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.08)}
footer strong{font-family:var(--display);font-weight:500;font-style:italic;color:var(--paper);font-size:1.25rem;display:block;margin-bottom:.6rem;letter-spacing:.01em}
footer a{color:var(--cream-2);border-bottom:1px solid rgba(164,125,47,.4);padding-bottom:1px}
footer .fbot{max-width:1180px;margin:1.5rem auto 0;display:flex;justify-content:space-between;color:rgba(245,239,227,.4);font-size:.78rem;flex-wrap:wrap;gap:1rem}
footer .fbot a{border-bottom:0;color:inherit;text-decoration:underline}

/* LEGAL */
.legal-wrap{max-width:760px;margin:0 auto;padding:5rem 3rem}
.legal-wrap h1{font-family:var(--display);font-weight:300;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1;letter-spacing:-.015em;margin-bottom:.6rem}
.legal-wrap h1 em{font-style:italic;color:var(--sage-d);font-weight:500}
.legal-wrap .sub{color:var(--mute);font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;margin-bottom:2.5rem;font-family:var(--body)}
.legal-wrap h2{font-family:var(--display);font-weight:500;font-size:1.3rem;letter-spacing:-.005em;margin:2.2rem 0 .8rem}
.legal-wrap p,.legal-wrap li{font-size:.96rem;color:var(--ink-2);margin-bottom:.7rem;line-height:1.7}
.legal-wrap ul{padding-left:1.5rem;margin-bottom:1rem}
.legal-wrap a{color:var(--sage-d);border-bottom:1px solid var(--gold);padding-bottom:1px}
.legal-wrap .note{background:var(--paper);border-left:3px solid var(--gold);padding:1.2rem 1.4rem;margin:1.5rem 0;font-size:.95rem;font-family:var(--display);font-weight:300;font-style:italic;color:var(--ink-2)}

@media(max-width:780px){
  .hero{grid-template-columns:1fr;padding:4rem 1.5rem;gap:3rem}
  .rituals,.philosophie{padding:4rem 1.5rem}
  .ritual-grid{grid-template-columns:1fr;gap:2rem}
  .visit{grid-template-columns:1fr;padding:4rem 1.5rem;gap:3rem}
  .masthead{padding:1.2rem 1.5rem;flex-direction:column;align-items:flex-start;gap:1rem}
  footer .ftop{grid-template-columns:1fr;gap:2rem}
}
