@font-face{font-family:"Assistant";src:url(fonts/Assistant.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Frank Ruhl Libre";src:url(fonts/FrankRuhlLibre.woff2) format("woff2");font-weight:300 900;font-display:swap}
:root{--bg:#0B0A08;--bg2:#15110C;--bg3:#1D1710;--gold:#D8B48C;--gold-l:#E9CC8E;--line:rgba(216,180,140,.28);--ivory:#F3ECE0;--muted:#CFC3AE;--wa:#13773A;--r:14px;--max:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ivory);font:400 18px/1.65 "Assistant",system-ui,Arial,sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold-l);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:"Frank Ruhl Libre",Georgia,serif;font-weight:500;line-height:1.2;margin:0 0 .4em;color:var(--ivory)}
h2{font-size:clamp(30px,4.4vw,44px);text-align:center}
h3{font-size:24px}
p{margin:0 0 1em}
.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.skip{position:absolute;right:-999px;top:0;background:var(--gold);color:#000;padding:8px 14px;z-index:99}
.skip:focus{right:12px}
.eyebrow{display:block;text-align:center;color:var(--gold);letter-spacing:.14em;font-size:14px;margin-bottom:6px}
.lead{text-align:center;color:var(--muted);max-width:620px;margin:0 auto 34px}
section{padding:72px 0;border-top:1px solid rgba(216,180,140,.12)}
.ornament{width:54px;height:auto;margin:0 auto 14px;opacity:.9}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(11,10,8,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(216,180,140,.14)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:62px}
.top .brand img{height:34px;width:auto}
.top nav{display:flex;gap:22px;align-items:center}
.top nav a{color:var(--ivory);text-decoration:none;font-size:16px}
.top nav a:hover{color:var(--gold)}
.top .call{color:var(--gold);font-weight:600}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font:600 18px/1 "Assistant",sans-serif;text-decoration:none;transition:transform .15s,background .15s}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:linear-gradient(180deg,#E9CC8E,#C9A45C);color:#140F08}
.btn-ghost{border:1px solid var(--gold);color:var(--gold)}
.btn svg{width:22px;height:22px;flex:none}

/* hero */
.hero{border:0;padding:40px 0 64px;background:radial-gradient(ellipse at 70% 10%,#211a11 0%,var(--bg) 60%)}
.hero .wrap{display:grid;gap:36px;align-items:center}
.hero-text{text-align:center}
.hero-logo{width:min(300px,72vw);margin:0 auto 22px}
.hero h1{font-size:clamp(38px,6vw,62px);background:linear-gradient(180deg,#F8E7BE,#E3C27E 55%,#B98F48);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:12px}
.hero .sub{font-size:20px;color:var(--muted);margin-bottom:28px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.hero-photo{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);position:relative}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:0;margin:26px 0 0}
.chips li{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:15px;color:var(--muted)}

/* cards */
.grid{display:grid;gap:18px}
.card{background:linear-gradient(180deg,var(--bg3),var(--bg2));border:1px solid var(--line);border-radius:var(--r);padding:26px 22px;position:relative}
.card.feature{border-color:var(--gold);box-shadow:0 0 0 1px rgba(216,180,140,.25) inset}
.badge{position:absolute;top:-13px;right:20px;background:var(--gold);color:#140F08;font-size:14px;font-weight:700;padding:3px 12px;border-radius:999px}
.price{font:600 34px/1 "Assistant",sans-serif;color:var(--gold-l);margin:8px 0 4px}
.price small{font-size:16px;color:var(--muted);font-weight:400}
.meta{color:var(--muted);font-size:16px;margin-bottom:12px}
.card ul{margin:0 0 16px;padding:0 18px 0 0;color:var(--ivory)}
.card li{margin-bottom:4px}
.card .btn{width:100%;margin-top:6px}
.card .btnrow .btn{width:auto;flex:1 1 160px}
.note{font-size:15px;color:var(--muted);border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}

/* price table */
.ptable{width:100%;border-collapse:collapse;font-size:17px}
.ptable th,.ptable td{padding:12px 8px;border-bottom:1px solid rgba(216,180,140,.15);text-align:right}
.ptable th{color:var(--gold);font-weight:600;font-size:15px}
.ptable td.p{color:var(--gold-l);font-weight:600;white-space:nowrap}
.ptable .d{color:var(--muted);font-size:15px;white-space:nowrap}
.tablewrap{overflow-x:auto}
.includes{color:var(--muted);font-size:16px;margin:16px 0 0}

/* gallery */
.gallery{display:grid;gap:14px;grid-template-columns:1fr 1fr;max-width:880px;margin:0 auto}
.gallery figure{margin:0;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);position:relative}
.gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}
.gallery .wide{grid-column:1/-1}
.gallery .wide img{aspect-ratio:4/3}
.gallery figcaption{position:absolute;bottom:0;right:0;left:0;padding:26px 14px 10px;background:linear-gradient(transparent,rgba(0,0,0,.75));font-size:15px;color:var(--ivory)}

/* voucher */
.voucher{display:grid;gap:22px;align-items:center}
.vbox{border:1px solid var(--gold);border-radius:var(--r);padding:30px 24px;text-align:center;background:radial-gradient(ellipse at 50% 0%,#2a2115,var(--bg2) 70%);outline:1px solid var(--line);outline-offset:-8px}
.vbox .price{font-size:30px}

/* visit */
.visit{display:grid;gap:22px}
.hours{list-style:none;padding:0;margin:0 0 18px}
.hours li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(216,180,140,.15)}
.hours li span:last-child{color:var(--gold-l)}
.hours .closed span:last-child{color:var(--muted)}
.map{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);min-height:320px;background:var(--bg2)}
.map iframe{width:100%;height:100%;min-height:320px;border:0;display:block;}
.btnrow{display:flex;flex-wrap:wrap;gap:10px}

/* faq */
.faq{max-width:780px;margin:0 auto}
.faq details{border-bottom:1px solid rgba(216,180,140,.18)}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font-size:19px;font-weight:600;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:24px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);margin:0 0 18px}

/* final cta + footer */
.final{text-align:center;background:radial-gradient(ellipse at 50% 100%,#211a11,var(--bg) 70%)}
footer{border-top:1px solid rgba(216,180,140,.14);padding:34px 0 110px;text-align:center;color:var(--muted);font-size:15px}
footer img{width:120px;margin:0 auto 14px}
footer a{color:var(--gold);text-decoration:none}
footer .links{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}

/* sticky mobile bar */
.mbar{position:fixed;bottom:0;right:0;left:0;z-index:30;display:grid;grid-template-columns:1fr;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(11,10,8,.96);border-top:1px solid var(--line)}
.mbar .btn{min-height:50px;padding:0 18px}
.mbar .wa{background:var(--wa);color:#fff}

@media (min-width:760px){
  body{font-size:19px}
  .grid.c2{grid-template-columns:1fr 1fr}
  .grid.c3{grid-template-columns:repeat(3,1fr)}
  .voucher{grid-template-columns:1.1fr 1fr}
  .visit{grid-template-columns:1fr 1.2fr}
  section{padding:96px 0}
}
@media (min-width:980px){
  .hero{padding:70px 0 90px}
  .hero .wrap{grid-template-columns:1fr 1.05fr;gap:56px}
  .hero-photo img{aspect-ratio:4/4.2}
  .mbar{display:none}
  footer{padding-bottom:40px}
}
@media (max-width:979px){.top nav .navlink{display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.btn:hover{transform:none}}

/* accessibility + shared pages (v2) */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #F8E7BE;outline-offset:3px;border-radius:6px}
.skip{color:#000;font-weight:700;border-radius:0 0 8px 8px}
.skip:focus{right:12px;outline:3px solid #fff}
.btn-gold:focus-visible{outline-color:#fff}
footer .legal{font-size:14px;gap:14px}
footer .small{font-size:13px}
footer a{text-decoration:underline;text-underline-offset:3px}
.howto{margin:0 0 12px;padding:0 20px 0 0}
.howto li{margin-bottom:6px}
main.doc{padding:36px 0 40px}
.doc .wrap{max-width:820px}
.doc h1{font-size:clamp(30px,6vw,44px);margin-bottom:.3em}
.doc h2{font-size:clamp(22px,4vw,28px);text-align:right;margin-top:1.6em}
.doc p,.doc li{color:var(--ivory)}
.doc .muted{color:var(--muted)}
.doc table{width:100%;border-collapse:collapse;margin:0 0 1em}
.doc th,.doc td{border-bottom:1px solid rgba(216,180,140,.2);padding:10px 6px;text-align:right;vertical-align:top}
.doc th{color:var(--gold)}
.doc section{padding:0;border:0}
.crumbs{font-size:15px;color:var(--muted);margin-bottom:14px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}
.crumbs li+li::before{content:"‹";margin-left:6px;color:var(--muted)}
.article-list{list-style:none;padding:0;display:grid;gap:16px}
.article-list a{font-size:22px;font-family:"Frank Ruhl Libre",Georgia,serif}
.ctabox{border:1px solid var(--gold);border-radius:var(--r);padding:22px;margin:32px 0;text-align:center;background:var(--bg2)}
.prose img{border-radius:var(--r)}
a:not(.btn):not(.brand):not(.navlink):not(.call){text-underline-offset:3px}
