:root{
  --bg-light:#FAFAF7; --bg-warm:#ECE5D5; --bg-dark:#14182C;
  --ink:#0A0A0A; --ink-soft:#595550; --accent:#1A1F3A;
  --cream:#F5F0E8; --rule:#DDD7C7; --gold:#D4A574;
  --pad:clamp(20px,5vw,64px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:'DM Sans',-apple-system,sans-serif;color:var(--ink);background:var(--bg-light);line-height:1.55;}
img{display:block;max-width:100%;}
h1,h2,h3{font-family:'Spectral',serif;font-weight:300;letter-spacing:-.015em;margin:0;}
h1{font-size:clamp(52px,7vw,112px);line-height:1.0;}
h2{font-size:clamp(38px,4.5vw,64px);line-height:1.06;}
h3{font-size:24px;line-height:1.25;font-weight:400;}
em{font-style:italic;color:var(--accent);}
a{color:inherit;}
.label{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;}
.lead{font-size:20px;line-height:1.6;color:var(--ink-soft);font-weight:300;}

.container{max-width:1320px;margin:0 auto;padding:0 var(--pad);width:100%;}
.container.narrow{max-width:880px;}
.center{text-align:center;}
section{padding:clamp(80px,10vh,140px) 0;}
.bg-warm{background:var(--bg-warm);}
.bg-dark{background:var(--bg-dark);color:var(--cream);}
.bg-dark .lead{color:rgba(245,240,232,.78);}
.bg-dark em{color:var(--gold);}

/* Header */
header.site{position:sticky;top:0;z-index:100;background:rgba(250,250,247,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.05);}
header.site .bar{max-width:1320px;margin:0 auto;padding:16px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{font-family:'Spectral',serif;font-size:20px;text-decoration:none;color:var(--ink);}
nav.menu{display:flex;gap:34px;}
nav.menu a{text-decoration:none;font-size:13px;letter-spacing:.08em;text-transform:uppercase;opacity:.85;}
nav.menu a:hover{opacity:1;}
.bar-right{display:flex;align-items:center;gap:18px;}
.lang{font-size:12px;letter-spacing:.08em;display:flex;gap:6px;color:var(--ink-soft);}
.lang a{text-decoration:none;opacity:.6;}
.lang a.active{opacity:1;color:var(--ink);font-weight:500;}
.btn-cta{display:inline-block;padding:11px 22px;background:var(--ink);color:var(--bg-light);text-decoration:none;border-radius:999px;font-size:13px;font-weight:500;transition:opacity .15s,transform .15s;}
.btn-cta:hover{opacity:.88;transform:translateY(-1px);}
.btn-ghost{display:inline-block;padding:15px 28px;border:1px solid var(--ink);border-radius:999px;text-decoration:none;font-size:14px;font-weight:500;}
.btn-ghost:hover{background:var(--ink);color:var(--bg-light);}

/* Hero — full bleed */
.hero{display:grid;grid-template-columns:1.25fr .75fr;min-height:80vh;align-items:stretch;padding-right:clamp(20px,8vw,140px);}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:60px var(--pad);padding-left:clamp(20px,8vw,140px);max-width:760px;}
.hero-copy .label{margin-bottom:26px;}
.hero h1{margin-bottom:26px;}
.hero h1 em{font-weight:400;}
.hero .lead{max-width:480px;margin-bottom:38px;}
.ctas{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.ctas .btn-cta{padding:16px 30px;font-size:14px;}
.hero-photo{position:relative;}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%;}

/* Vision */
.vision .label{display:block;margin-bottom:24px;}
.vision h2{margin-bottom:32px;}
.body-lg{font-size:20px;line-height:1.65;color:var(--ink);font-weight:300;max-width:720px;margin:0 auto;}
.vision .quote{font-family:'Spectral',serif;font-style:italic;font-size:23px;line-height:1.5;color:var(--accent);margin:48px auto 0;max-width:680px;border-left:2px solid var(--accent);padding-left:26px;text-align:left;}

/* Offerings */
.offerings .head{margin-bottom:64px;}
.offerings .head .label{display:block;margin-bottom:16px;}
.offerings .head h2{margin-bottom:16px;}
.grid-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.card{background:var(--bg-light);border:1px solid var(--rule);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s;}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,24,44,.10);}
.card-img{aspect-ratio:16/10;overflow:hidden;}
.card-img img{width:100%;height:100%;object-fit:cover;}
/* image1 (sibyl) warm-harmonizing treatment */
.card-img.tint{position:relative;background:#7a5230;}
.card-img.tint img{mix-blend-mode:luminosity;opacity:.92;}
.card-img.tint::after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(212,165,116,.35),rgba(26,31,58,.30));mix-blend-mode:multiply;}
.card-body{padding:34px;display:flex;flex-direction:column;flex:1;}
.card .meta{font-size:13px;color:var(--ink-soft);margin-bottom:14px;font-variant-numeric:tabular-nums;}
.card .meta .price{color:var(--ink);font-weight:500;}
.card h3{margin-bottom:14px;font-size:26px;font-weight:400;}
.card p{color:var(--ink-soft);margin:0 0 28px;font-size:15px;flex:1;}
.card-cta{align-self:flex-start;text-decoration:none;font-size:13px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px;}
.card-cta::after{content:' →';}

/* About */
.about .label{display:block;margin-bottom:16px;}
.about h2{margin-bottom:28px;}
.about p{font-size:18px;line-height:1.75;color:var(--ink-soft);margin:0 auto 20px;max-width:680px;}
.about .sign{font-style:italic;color:var(--accent);margin-top:8px;}

/* FAQ */
.faq .head{margin-bottom:56px;}
.faq .head .label{display:block;margin-bottom:16px;}
.faq details{border-bottom:1px solid var(--rule);padding:24px 0;}
.faq summary{list-style:none;cursor:pointer;font-family:'Spectral',serif;font-size:21px;font-weight:400;display:flex;justify-content:space-between;gap:24px;align-items:center;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+';font-family:'DM Sans',sans-serif;font-size:24px;font-weight:300;color:var(--ink-soft);}
.faq details[open] summary::after{content:'−';}
.faq .answer{padding-top:16px;color:var(--ink-soft);font-size:16px;line-height:1.65;}

/* Booking */
.booking .head{margin-bottom:48px;}
.booking .head .label{display:block;margin-bottom:16px;color:rgba(245,240,232,.6);}
.booking .head h2{margin-bottom:16px;}
.book-types{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:36px;}
.book-type{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);color:var(--cream);border-radius:8px;padding:16px;cursor:pointer;font-family:inherit;font-size:14px;text-align:left;display:flex;flex-direction:column;gap:8px;transition:background .15s,border-color .15s;}
.book-type span:first-child{font-size:15px;font-weight:500;}
.book-type span:last-child{font-size:12px;color:rgba(245,240,232,.6);}
.book-type:hover{background:rgba(255,255,255,.10);}
.book-type.active{background:var(--cream);color:var(--bg-dark);border-color:var(--cream);}
.book-type.active span:last-child{color:rgba(20,24,44,.65);}
.cal-wrap{background:var(--cream);border-radius:10px;min-height:580px;overflow:hidden;}
#cal-inline{width:100%;height:100%;min-height:580px;}

/* Footer */
.site-footer{background:var(--bg-dark);color:rgba(245,240,232,.65);padding:40px 0 56px;font-size:13px;}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.foot-links a{color:rgba(245,240,232,.65);text-decoration:none;margin-left:24px;}
.foot-links a:first-child{margin-left:0;}
.foot-links a:hover{color:var(--cream);}

/* Responsive */
@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-right:0;}
  .hero-copy{order:2;padding:48px var(--pad);min-height:auto;}
  .hero-photo{order:1;min-height:60vh;}
  .grid-cards{grid-template-columns:1fr;}
  .book-types{grid-template-columns:1fr 1fr;}
  nav.menu{display:none;}
}
@media (max-width:520px){
  .book-types{grid-template-columns:1fr;}
  .foot{flex-direction:column;}
  .foot-links a:first-child{margin-left:0;}
  .foot-links a{margin-left:0;margin-right:20px;}
}

/* Keyboard focus visibility */
a:focus-visible, button:focus-visible, summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px;}
.bg-dark a:focus-visible, .book-type:focus-visible{outline-color:var(--gold);}
