/* ============================================================
   Home — signature hero + homepage sections
   ============================================================ */

/* ---------- HERO ---------- */
.hero{ position:relative; isolation:isolate; min-height:clamp(560px,92vh,900px);
  display:flex; align-items:flex-end; background:var(--ink); color:var(--bone); overflow:hidden }
.hero__media{ position:absolute; inset:0; z-index:0; overflow:hidden }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:center 40%;
  transform:scale(1.08); animation:kenburns 22s ease-in-out infinite alternate; filter:brightness(.62) contrast(1.04) }
@keyframes kenburns{ from{ transform:scale(1.08) translateY(0) } to{ transform:scale(1.16) translateY(-2%) } }
@media (prefers-reduced-motion:reduce){ .hero__media img{ animation:none; transform:scale(1.05) } }
.hero__media::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(21,18,13,.55) 0%,rgba(21,18,13,.30) 35%,rgba(21,18,13,.82) 100%) }
.hero__grain{ position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E") }
.hero__inner{ position:relative; z-index:3; width:100%; padding-block:clamp(2.5rem,6vw,5rem) }
.hero__poles{ position:absolute; top:0; right:clamp(1rem,6vw,5rem); height:100%; display:flex; gap:1.1rem; z-index:2; opacity:.85 }
.hero__poles .pole{ height:100% }
@media (max-width:760px){ .hero__poles{ display:none } }

.hero .eyebrow{ margin-bottom:1.2rem }
.hero h1{ font-size:var(--step-5); letter-spacing:0; text-wrap:balance }
.hero h1 .ln{ display:block; overflow:hidden }
.hero h1 .accent{ color:var(--ember) }
.hero__sub{ font-size:var(--step-1); color:rgba(244,238,226,.82); max-width:54ch; margin-top:1.3rem; font-weight:400 }
.hero__cta{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem }
.hero__meta{ display:flex; flex-wrap:wrap; gap:1.4rem 2rem; margin-top:2.4rem; padding-top:1.6rem;
  border-top:1px solid var(--line-d); font-size:.86rem; color:rgba(244,238,226,.72) }
.hero__meta b{ color:var(--brass-lt); font-weight:700; letter-spacing:.04em }
.hero__scroll{ position:absolute; bottom:1.2rem; left:50%; transform:translateX(-50%); z-index:3;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(244,238,226,.6); display:flex; flex-direction:column; align-items:center; gap:.5rem }
.hero__scroll::after{ content:""; width:1px; height:34px; background:linear-gradient(var(--brass),transparent); animation:scrolldn 2s ease-in-out infinite }
@keyframes scrolldn{ 0%,100%{ opacity:.3; transform:scaleY(.6) } 50%{ opacity:1; transform:scaleY(1) } }

/* ---------- intro / about strip ---------- */
.intro-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center }
.intro-figure{ position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow) }
.intro-figure img{ width:100%; aspect-ratio:4/3; object-fit:cover }
.intro-figure .badge{ position:absolute; left:1.1rem; bottom:1.1rem; background:var(--ink); color:var(--bone);
  border:1px solid var(--brass); border-radius:var(--r); padding:.7rem 1rem; display:flex; align-items:center; gap:.7rem }
.intro-figure .badge .yr{ font-family:var(--f-serif); font-size:1.7rem; color:var(--brass-lt); line-height:1 }
.intro-figure .badge small{ font-size:.66rem; text-transform:uppercase; letter-spacing:.16em; color:rgba(244,238,226,.7) }
@media (max-width:820px){ .intro-grid{ grid-template-columns:1fr } }

/* pull quote */
.pull{ font-family:var(--f-serif); font-size:clamp(1.4rem,3.2vw,2.1rem); line-height:1.3; color:var(--ink) }
.pull .mk{ color:var(--oxblood) }

/* ---------- services preview ---------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem }
@media (max-width:820px){ .svc-grid{ grid-template-columns:1fr 1fr } }
@media (max-width:560px){ .svc-grid{ grid-template-columns:1fr } }

/* split: rates + booking */
.book-split{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:center }
@media (max-width:880px){ .book-split{ grid-template-columns:1fr } }
.book-card{ background:var(--ink-2); border:1px solid var(--line-d); border-radius:var(--r-lg); padding:clamp(1.4rem,3vw,2.2rem) }
.book-card h3{ font-size:1.5rem; margin-bottom:.3rem }
.book-loc{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line-d) }
.book-loc:last-child{ border-bottom:0 }
.book-loc .nm{ font-weight:700 } .book-loc .ph{ font-size:.84rem; color:var(--brass-lt) }

/* ---------- locations strip ---------- */
.loc-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem }
@media (max-width:820px){ .loc-strip{ grid-template-columns:1fr } }

/* ---------- gallery section heading row ---------- */
.head-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:1.5rem; flex-wrap:wrap; margin-bottom:2rem }
.head-row p{ max-width:46ch }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--oxblood); color:#fff; text-align:center; position:relative; overflow:hidden }
.cta-band::before{ content:""; position:absolute; inset:0; opacity:.12; background-size:38px 38px;
  background-image:linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%) }
.cta-band .container{ position:relative; z-index:2 }
.cta-band h2{ color:#fff } .cta-band .btn--ghost{ color:#fff; border-color:#fff }
.cta-band .btn--ghost:hover{ background:#fff; color:var(--oxblood) }

/* ---------- service picker (signature interaction) ---------- */
.picker{ display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(1.4rem,3vw,2.4rem); align-items:start }
@media (max-width:820px){ .picker{ grid-template-columns:1fr } }
.pick-list{ display:grid; gap:.7rem }
.pick{ display:flex; align-items:center; gap:1rem; width:100%; text-align:left; padding:1rem 1.2rem;
  border:1.5px solid var(--line); border-radius:var(--r); background:var(--bone); transition:.25s var(--ease) }
.pick:hover{ border-color:var(--brass) }
.pick[aria-pressed="true"]{ border-color:var(--oxblood); background:rgba(158,43,37,.06) }
.pick .box{ width:24px; height:24px; border:2px solid var(--line); border-radius:5px; flex:none; display:grid; place-items:center; transition:.2s }
.pick[aria-pressed="true"] .box{ background:var(--oxblood); border-color:var(--oxblood) }
.pick .box svg{ width:14px; height:14px; opacity:0; transition:.2s } .pick[aria-pressed="true"] .box svg{ opacity:1 }
.pick .nm{ font-weight:700 } .pick .meta{ font-size:.8rem; color:var(--ink-soft) }
.pick .p{ margin-left:auto; font-family:var(--f-serif); font-size:1.3rem; color:var(--oxblood) }
.pick-summary{ position:sticky; top:90px; background:var(--ink); color:var(--bone); border-radius:var(--r-lg);
  padding:1.6rem; border:1px solid var(--line-d) }
.pick-summary h3{ font-size:1.3rem } .pick-summary .total{ font-family:var(--f-serif); font-size:3rem; color:var(--brass-lt); line-height:1 }
.pick-summary ul{ margin:1rem 0; display:grid; gap:.4rem; font-size:.9rem; color:rgba(244,238,226,.75) }
.pick-summary li{ display:flex; justify-content:space-between; gap:1rem }
.pick-summary .empty{ color:rgba(244,238,226,.5); font-size:.9rem }
