:root{--green:#123a31;--deep:#0c2922;--stone:#efece6;--paper:#f8f6f1;--ink:#16211e;--soft:#55605b;--gold:#d9b36a;--serif:'Bodoni Moda',Georgia,serif;--sans:'Albert Sans',system-ui,sans-serif}
*{box-sizing:border-box}
html{overflow-x:clip;scroll-padding-top:80px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--sans);overflow-x:clip}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0}
h2{font-size:clamp(36px,5vw,68px);letter-spacing:-.01em}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
img{display:block;max-width:100%;height:auto}

.nav{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;gap:32px;padding:22px clamp(20px,4vw,56px);color:var(--green)}
.brand{font:600 22px/1 var(--serif);text-decoration:none;margin-right:auto;padding:10px 0}
.brand span{font:400 14px var(--sans);opacity:.75;margin-left:8px}
.nav nav{display:flex;gap:26px}
.nav nav a,.nav-wa{text-decoration:none;font-size:15px;padding:10px 0;position:relative}
.nav nav a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav nav a:hover::after,.nav nav a:active::after{transform:scaleX(1)}
.nav-wa{border:1px solid rgba(18,58,49,.45);background:rgba(248,246,241,.7);padding:10px 18px;border-radius:4px;transition:background .25s,color .25s}
.nav-wa:hover,.nav-wa:active{background:var(--green);color:var(--stone)}

.btn{display:inline-block;background:var(--gold);color:#13241f;font-weight:600;text-decoration:none;padding:17px 26px;border-radius:4px;transition:transform .25s,background .25s}
.btn:hover{background:#e7c784;transform:translateY(-2px)}
.btn:active{transform:scale(.97)}
.btn-ink{background:var(--green);color:var(--stone)}
.btn-ink:hover{background:var(--deep)}

.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:58fr 42fr;align-items:end;background:linear-gradient(rgba(248,246,241,.6),rgba(248,246,241,.6)),var(--stone) url(img/marble-a.jpg) center/cover;color:var(--green);overflow:hidden}
.hero-in{position:relative;z-index:2;padding:120px clamp(20px,4vw,56px) clamp(32px,6vh,64px)}
.hero-photo{position:relative;margin:0;align-self:stretch;margin-top:96px;min-height:0}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;border-radius:150px 0 0 0}
.hero-photo figcaption{position:absolute;right:14px;bottom:12px;font-size:13px;color:#fff;background:rgba(18,58,49,.72);padding:4px 10px;border-radius:3px}
.hero-kicker{margin:0 0 14px;font-size:clamp(16px,1.5vw,20px)}
.hero-line{font-size:clamp(54px,7.8vw,132px);line-height:1;letter-spacing:-.02em;word-spacing:.07em}
.hero-line em{font-weight:400;color:#8a6420}
.never{display:inline-block;position:relative;vertical-align:baseline}
.never-word{display:inline-block;position:relative}
.never-word::after{content:"";position:absolute;left:-2%;right:-2%;top:56%;height:.035em;background:#8a6420;transform-origin:left}
.js .never-word::after{transform:scaleX(var(--s,0))}
.hero-quote{margin:26px 0 0;max-width:640px}
.hero-quote p{margin:0;font:italic 400 clamp(20px,2vw,27px)/1.35 var(--serif)}
.hero-quote cite{display:block;margin-top:10px;font:400 15px/1.4 var(--sans);color:#3b4641}
.hero-act{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:26px}
.rate{margin:0;font-size:16px}.rate b{font-weight:700}
.js .hero-quote,.js .hero-act,.js .nav{opacity:0;transform:translateY(14px);transition:opacity .9s,transform .9s}
.js.hero-done .hero-quote,.js.hero-done .hero-act,.js.hero-done .nav{opacity:1;transform:none}

.follow{display:grid;grid-template-columns:7fr 5fr;gap:clamp(32px,6vw,96px);align-items:center;padding:clamp(72px,11vw,150px) clamp(20px,4vw,56px)}
.follow-photo{overflow:hidden;border-radius:2px 120px 2px 2px;aspect-ratio:3/2}
.follow-photo img{width:100%;height:115%;object-fit:cover}
.follow-text p{color:var(--soft);margin:22px 0 0;max-width:46ch}
.facts{margin:34px 0 0;border-top:1px solid #d6d1c6}
.facts div{padding:16px 0;border-bottom:1px solid #d6d1c6}
.facts dt{font:500 28px/1.2 var(--serif);color:var(--green)}
.facts dd{margin:4px 0 0;font-size:16px;color:var(--soft)}

.list{background:linear-gradient(rgba(248,246,241,.6),rgba(248,246,241,.6)),var(--stone) url(img/marble-a.jpg) center/cover;padding:clamp(72px,10vw,140px) clamp(20px,4vw,56px)}
.rows{list-style:none;margin:40px 0 44px;padding:0;border-top:1px solid rgba(18,58,49,.28)}
.row{display:grid;grid-template-columns:5fr 6fr;gap:12px 40px;align-items:baseline;padding:24px 0;border-bottom:1px solid rgba(18,58,49,.28);transition:padding .35s,color .35s}
.row h3{font-size:clamp(28px,3.4vw,46px);color:var(--green);transition:transform .35s}
.row p{margin:0;color:#3b4641}
.row span{display:block;margin-top:4px;font-size:15px;font-weight:600;color:var(--green)}
.row:hover h3,.row:active h3{transform:translateX(12px)}

.nervous{background:var(--green);color:var(--stone);padding:clamp(72px,10vw,140px) clamp(20px,4vw,56px);overflow:hidden}
.arc{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,44px);margin-top:48px}
.arc figure{margin:0;border-top:1px solid var(--gold);padding-top:20px}
.arc figure:nth-child(2){margin-top:70px}
.arc blockquote{margin:0;font:italic 400 clamp(23px,2.5vw,34px)/1.28 var(--serif)}
.fear{position:relative;white-space:nowrap}
.fear::after{content:"";position:absolute;left:-1%;right:-1%;top:56%;height:.06em;background:var(--gold);transform:scaleX(var(--s,1));transform-origin:left}
.arc figcaption{margin-top:12px;font-size:15px;color:var(--gold)}

.visit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);padding:clamp(72px,10vw,140px) clamp(20px,4vw,56px)}
.visit h2{font-size:clamp(34px,4vw,56px)}
.addr{margin:20px 0 0;font-weight:500}
.hint{margin:4px 0 0;color:var(--soft)}
.today{margin:18px 0 0;display:inline-block;padding:7px 12px;background:#e4ece8;color:var(--green);font-weight:600;font-size:16px;border-radius:3px}
.today[hidden]{display:none}
.hours{width:100%;margin-top:22px;border-collapse:collapse;font-size:17px}
.hours caption{text-align:left;font-weight:600;padding-bottom:6px}
.hours th,.hours td{text-align:left;font-weight:400;padding:12px 0;border-top:1px solid #d6d1c6;vertical-align:top}
.hours th{padding-right:16px;width:42%}
.hours tr.is-today th,.hours tr.is-today td{font-weight:600;color:var(--green)}
.visit-act{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin-top:28px}
.plain{padding:12px 0;font-weight:500;text-underline-offset:4px}
.faq details{border-top:1px solid #d6d1c6}
.faq details:last-child{border-bottom:1px solid #d6d1c6}
.faq summary{cursor:pointer;padding:18px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:500 24px/1 var(--sans);color:var(--green);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 18px;color:var(--soft)}
.faq h2{margin-bottom:24px}

.foot{background:var(--deep);color:var(--stone);padding:34px clamp(20px,4vw,56px) 90px;font-size:15px}
.foot p{margin:0}.sample{margin-top:8px!important;opacity:.72;max-width:70ch}
.float-wa{display:none}

@media (max-width:900px){
  body{font-size:17px}
  .nav nav{display:none}
  .brand span{display:none}
  .follow,.visit{grid-template-columns:1fr}
  .row{grid-template-columns:1fr}
  .arc{grid-template-columns:1fr}
  .arc figure:nth-child(2){margin-top:0}
  .hero{grid-template-columns:1fr;grid-template-rows:auto auto;min-height:0}
  .hero-photo{order:-1;margin-top:0;height:43svh}
  .hero-photo img{border-radius:0 0 0 90px;object-position:50% 16%}
  .hero-in{padding:24px 20px 36px}
  .hero-line{font-size:clamp(54px,16vw,110px)}
  .float-wa{display:block;position:fixed;z-index:9;right:14px;bottom:14px;background:var(--gold);color:#13241f;font-weight:600;text-decoration:none;padding:13px 18px;border-radius:4px;box-shadow:0 6px 20px rgba(0,0,0,.28)}
  .float-wa:active{transform:scale(.97)}
}
@media (prefers-reduced-motion:reduce){
  .js .hero-quote,.js .hero-act,.js .nav{opacity:1;transform:none;transition:none}
  .js .never-word::after{transform:none}
  .row,.row h3,.btn{transition:none}
}
@media (max-width:900px){
  .float-wa{opacity:0;pointer-events:none;transition:opacity .3s}
  .float-wa.is-on{opacity:1;pointer-events:auto}
}
