/* ============================================================
   PIGMIST  |  Texas hog hunts + farm pest control
   Core stylesheet
   ============================================================ */

:root{
  /* Ink + bone */
  --ink:        #0D0B08;
  --ink-2:      #16120C;
  --ink-3:      #221C14;
  --bone:       #F3EBDB;
  --bone-2:     #E4D8C0;
  --bone-dim:   #B9AC93;

  /* Texas earth */
  --rust:       #B7431A;
  --rust-hi:    #E0672E;
  --brass:      #C89B3C;
  --brass-dim:  #8F6E27;
  --sage:       #4E5B43;
  --blood:      #6B1A0F;

  --shadow-deep: 0 30px 70px rgba(0,0,0,.55);
  --edge: 1px solid rgba(200,155,60,.28);

  --font-display: 'Bebas Neue', 'Oswald', Impact, sans-serif;
  --font-body: 'Bitter', Georgia, 'Times New Roman', serif;
  --font-western: 'Rye', 'Bitter', Georgia, serif;

  --wrap: 1220px;
  --gut: clamp(18px, 4vw, 56px);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--ink);
  color:var(--bone);
  font-family:var(--font-body);
  font-size:clamp(16px,1.05vw,18px);
  line-height:1.72;
  overflow-x:hidden;
  font-optical-sizing:auto;
}

img,video{ display:block; max-width:100%; }

a{ color:var(--brass); text-decoration:none; }
a:hover{ color:var(--rust-hi); }

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  line-height:.92;
  letter-spacing:.012em;
  margin:0 0 .35em;
  text-transform:uppercase;
}
h1{ font-size:clamp(52px,10.5vw,148px); }
h2{ font-size:clamp(38px,6.4vw,88px); }
h3{ font-size:clamp(24px,2.6vw,38px); }
h4{ font-size:clamp(18px,1.5vw,23px); letter-spacing:.05em; }

p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }

::selection{ background:var(--rust); color:var(--bone); }

/* ---------- Utility ---------- */
.wrap{ width:min(var(--wrap),100% - (var(--gut) * 2)); margin-inline:auto; }
.wrap-narrow{ width:min(820px,100% - (var(--gut) * 2)); margin-inline:auto; }

.eyebrow{
  font-family:var(--font-display);
  font-size:clamp(13px,1.05vw,15px);
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--brass);
  margin:0 0 1.1rem;
  display:flex;
  align-items:center;
  gap:.85em;
}
.eyebrow::before{
  content:"";
  width:clamp(26px,4vw,54px);
  height:1px;
  background:linear-gradient(90deg,transparent,var(--brass));
  flex:none;
}
.eyebrow--center{ justify-content:center; }
.eyebrow--center::after{
  content:"";
  width:clamp(26px,4vw,54px);
  height:1px;
  background:linear-gradient(90deg,var(--brass),transparent);
  flex:none;
}

.lede{
  font-size:clamp(18px,1.55vw,23px);
  line-height:1.62;
  color:var(--bone-2);
}
.muted{ color:var(--bone-dim); }
.small{ font-size:.86rem; line-height:1.6; }
.mono-note{
  font-family:var(--font-display);
  letter-spacing:.22em;
  font-size:13px;
  color:var(--bone-dim);
  text-transform:uppercase;
}

.rule{
  display:flex; align-items:center; gap:14px;
  margin:2.6rem 0;
}
.rule::before,.rule::after{
  content:""; height:1px; flex:1;
  background:linear-gradient(90deg,transparent,rgba(200,155,60,.5),transparent);
}
.rule span{
  width:9px;height:9px;transform:rotate(45deg);
  background:var(--brass); flex:none;
}

/* ---------- Buttons ---------- */
.btn{
  --btn-bg:var(--rust);
  --btn-fg:var(--bone);
  display:inline-flex; align-items:center; gap:.7em;
  padding:1.02em 1.9em .92em;
  background:var(--btn-bg);
  color:var(--btn-fg);
  font-family:var(--font-display);
  font-size:clamp(16px,1.28vw,20px);
  letter-spacing:.16em;
  text-transform:uppercase;
  border:1px solid transparent;
  cursor:pointer;
  position:relative;
  transition:transform .28s cubic-bezier(.2,.8,.25,1), background .28s, box-shadow .28s, color .28s;
  box-shadow:0 14px 34px rgba(0,0,0,.42);
  clip-path:polygon(11px 0,100% 0,100% calc(100% - 11px),calc(100% - 11px) 100%,0 100%,0 11px);
}
.btn:hover{ transform:translateY(-3px); background:var(--rust-hi); color:var(--bone); }
.btn:active{ transform:translateY(0); }
.btn--ghost{
  background:transparent; color:var(--bone);
  border-color:rgba(243,235,219,.4);
  box-shadow:none;
}
.btn--ghost:hover{ background:rgba(243,235,219,.09); border-color:var(--brass); color:var(--bone); }
.btn--brass{ background:var(--brass); color:#1A1409; }
.btn--brass:hover{ background:#DDB44E; color:#1A1409; }
.btn--block{ width:100%; justify-content:center; }
.btn__arrow{ font-size:.85em; transition:transform .28s; }
.btn:hover .btn__arrow{ transform:translateX(5px); }

.btn-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:2rem; }

/* ---------- Film treatment ---------- */
.grain{
  position:fixed; inset:-120%; z-index:9000; pointer-events:none;
  opacity:.055; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainshift 750ms steps(3) infinite;
}
@keyframes grainshift{
  0%{transform:translate(0,0)} 33%{transform:translate(-2%,1.5%)} 66%{transform:translate(1.5%,-1%)} 100%{transform:translate(0,0)}
}

.progress{
  position:fixed; top:0; left:0; height:2px; z-index:9100;
  width:0%; background:linear-gradient(90deg,var(--blood),var(--rust),var(--brass));
  transition:width .1s linear;
}

/* ---------- Nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:8000;
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
  padding:clamp(16px,2.2vw,30px) var(--gut);
  transition:background .4s, padding .4s, border-color .4s, backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(13,11,8,.9);
  backdrop-filter:blur(14px) saturate(1.2);
  padding-top:12px; padding-bottom:12px;
  border-bottom-color:rgba(200,155,60,.22);
}
.brand{
  display:flex; align-items:center; gap:.62rem;
  font-family:var(--font-display);
  font-size:clamp(26px,2.5vw,34px);
  letter-spacing:.2em;
  color:var(--bone);
  line-height:1;
}
.brand:hover{ color:var(--bone); }
.brand__mark{
  width:clamp(42px,3.4vw,54px); height:auto; aspect-ratio:1; flex:none;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.65));
  transition:transform .4s cubic-bezier(.2,.8,.25,1);
}
.brand:hover .brand__mark{ transform:rotate(-6deg) scale(1.04); }
.foot .brand__mark{ width:64px; }
.brand__tag{
  display:block;
  font-family:var(--font-body);
  font-size:9.5px; letter-spacing:.3em;
  color:var(--brass); text-transform:uppercase;
  margin-top:3px; line-height:1;
}
.nav__links{
  display:flex; align-items:center; gap:clamp(16px,2.1vw,32px);
  list-style:none; margin:0; padding:0;
}
.nav__links a{
  font-family:var(--font-display);
  font-size:16px; letter-spacing:.17em; text-transform:uppercase;
  color:var(--bone); position:relative; padding-bottom:4px;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--rust-hi); transition:width .3s cubic-bezier(.2,.8,.25,1);
}
.nav__links a:hover{ color:var(--bone); }
.nav__links a:hover::after{ width:100%; }
.nav__cta{ display:flex; align-items:center; gap:14px; }
.nav__phone{
  font-family:var(--font-display); letter-spacing:.13em; font-size:19px;
  color:var(--brass); white-space:nowrap;
}
.nav__toggle{
  display:none; background:none; border:0; cursor:pointer; padding:8px;
}
.nav__toggle span{
  display:block; width:26px; height:2px; background:var(--bone); margin:5px 0;
  transition:transform .3s, opacity .3s;
}
.nav.is-open .nav__toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav.is-open .nav__toggle span:nth-child(2){ opacity:0; }
.nav.is-open .nav__toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:960px){
  .nav__toggle{ display:block; }
  .nav__links{
    position:fixed; inset:0 0 auto; top:0; padding:96px var(--gut) 40px;
    flex-direction:column; align-items:flex-start; gap:22px;
    background:rgba(10,8,6,.97); backdrop-filter:blur(10px);
    transform:translateY(-102%); transition:transform .45s cubic-bezier(.2,.8,.25,1);
    height:100svh; z-index:-1;
  }
  .nav.is-open .nav__links{ transform:translateY(0); }
  .nav__links a{ font-size:30px; }
  .nav__cta .btn{ display:none; }
}

/* ============================================================
   Cinematic chapters
   ============================================================ */
.chapter{ position:relative; }

.stage{
  position:sticky; top:0; height:100svh; overflow:hidden;
  background:var(--ink);
}
.stage__media{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  will-change:transform,opacity;
}
.stage__veil{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,8,6,.82) 0%, rgba(10,8,6,.28) 26%, rgba(10,8,6,.45) 62%, rgba(10,8,6,.95) 100%),
    radial-gradient(120% 85% at 50% 45%, transparent 30%, rgba(8,6,4,.75) 100%);
}
.stage__tone{
  position:absolute; inset:0; mix-blend-mode:soft-light; opacity:.55;
  background:linear-gradient(180deg,#2b1a0c,#04213a);
}
.stage--sand .stage__veil{
  background:
    linear-gradient(180deg, rgba(10,8,6,.72) 0%, rgba(10,8,6,.2) 30%, rgba(10,8,6,.62) 100%);
}

.chapter__body{
  position:relative; z-index:5;
  margin-top:-100svh;
  padding:0 0 8vh;
  pointer-events:none;
}
.chapter__body > *{ pointer-events:auto; }

.panel{
  min-height:100svh;
  display:flex; align-items:center;
  padding:14vh 0;
}
.panel--short{ min-height:auto; padding:12vh 0; }
.panel--end{ align-items:flex-end; }

.card-dark{
  background:linear-gradient(165deg, rgba(16,13,9,.93), rgba(16,13,9,.78));
  border:var(--edge);
  backdrop-filter:blur(9px);
  padding:clamp(26px,3.6vw,54px);
  box-shadow:var(--shadow-deep);
  max-width:660px;
  clip-path:polygon(22px 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%,0 22px);
}
.card-dark--wide{ max-width:880px; }
.card-dark--right{ margin-left:auto; }

/* ---------- Hero ---------- */
.hero .stage__veil{
  background:
    linear-gradient(180deg, rgba(10,8,6,.75) 0%, rgba(10,8,6,.15) 34%, rgba(10,8,6,.6) 76%, var(--ink) 100%),
    radial-gradient(130% 90% at 50% 40%, transparent 25%, rgba(8,6,4,.8) 100%);
}
.hero__inner{
  position:relative; z-index:6;
  height:100svh; margin-top:-100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding-top:6vh;
}
.hero h1{
  font-size:clamp(64px,13.5vw,210px);
  letter-spacing:.045em;
  margin:0;
  text-shadow:0 18px 60px rgba(0,0,0,.7);
}
.hero__sub{
  font-family:var(--font-display);
  font-size:clamp(17px,2.05vw,30px);
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--bone-2);
  margin:.4rem 0 1.5rem;
  max-width:900px;
}
.hero__lede{ max-width:620px; }
.hero__cue{
  position:absolute; left:50%; bottom:8vh; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--font-display); letter-spacing:.3em; font-size:11px;
  color:var(--bone-dim); text-transform:uppercase; z-index:7;
}
.hero__cue i{
  display:block; width:1px; height:52px;
  background:linear-gradient(180deg,var(--brass),transparent);
  animation:cue 2.1s ease-in-out infinite;
}
@keyframes cue{ 0%,100%{transform:scaleY(.35);opacity:.45} 50%{transform:scaleY(1);opacity:1} }

.ticker{
  position:absolute; left:0; right:0; bottom:0; z-index:7;
  border-top:1px solid rgba(200,155,60,.25);
  border-bottom:1px solid rgba(200,155,60,.15);
  background:rgba(10,8,6,.62); backdrop-filter:blur(6px);
  overflow:hidden; padding:11px 0;
}
.ticker__track{
  display:flex; gap:3.4rem; width:max-content;
  animation:slide 42s linear infinite;
  font-family:var(--font-display); letter-spacing:.2em; font-size:14px;
  text-transform:uppercase; color:var(--bone-2); white-space:nowrap;
}
.ticker__track b{ color:var(--rust-hi); font-weight:400; }
.ticker__track i{ color:var(--brass); font-style:normal; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ---------- Light (bone) sections ---------- */
.bone-block{
  background:var(--bone);
  color:#241D14;
  position:relative;
  padding:clamp(72px,11vh,150px) 0;
}
.bone-block::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='.5'/%3E%3C/svg%3E");
  opacity:.16; mix-blend-mode:multiply;
}
.bone-block > *{ position:relative; z-index:2; }
.bone-block h2,.bone-block h3,.bone-block h4{ color:#1C1710; }
.bone-block .eyebrow{ color:var(--blood); }
.bone-block .eyebrow::before,.bone-block .eyebrow::after{ background:linear-gradient(90deg,transparent,var(--blood)); }
.bone-block .lede{ color:#3B3125; }
.bone-block .muted{ color:#6A5B45; }
.bone-block a{ color:var(--blood); }
.bone-block .rule::before,.bone-block .rule::after{ background:linear-gradient(90deg,transparent,rgba(107,26,15,.45),transparent); }
.bone-block .rule span{ background:var(--blood); }

/* ---------- Two-track split ---------- */
.split{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:clamp(20px,2.6vw,34px); margin-top:3rem;
}
.track{
  position:relative; padding:clamp(28px,3.2vw,46px);
  background:#1A1510; color:var(--bone);
  border:1px solid rgba(200,155,60,.22);
  display:flex; flex-direction:column;
  overflow:hidden;
  transition:transform .4s cubic-bezier(.2,.8,.25,1), box-shadow .4s, border-color .4s;
  clip-path:polygon(26px 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%,0 26px);
}
.track:hover{ transform:translateY(-7px); box-shadow:var(--shadow-deep); border-color:var(--brass); }
.track--control{ background:#141A13; }
.track__num{
  font-family:var(--font-display); font-size:74px; line-height:.8;
  color:rgba(200,155,60,.25); position:absolute; top:16px; right:22px;
}
.track h3{ color:var(--bone); }
.track ul{ list-style:none; padding:0; margin:1.3rem 0 1.9rem; }
.track li{
  padding:.55rem 0 .55rem 1.6rem; position:relative;
  border-bottom:1px dashed rgba(243,235,219,.13);
  font-size:.96rem;
}
.track li::before{
  content:""; position:absolute; left:0; top:1.28rem;
  width:7px;height:7px;transform:rotate(45deg); background:var(--rust-hi);
}
.track .btn{ margin-top:auto; }

/* ---------- Stats ---------- */
.stat-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:2px; background:rgba(200,155,60,.22);
  border:1px solid rgba(200,155,60,.22);
  margin:2.6rem 0 1.4rem;
}
.stat{
  background:rgba(14,11,8,.94); padding:clamp(22px,2.6vw,34px) clamp(18px,2vw,26px);
  text-align:left;
}
.bone-block .stat{ background:var(--bone); }
.stat__num{
  font-family:var(--font-display);
  font-size:clamp(46px,5.6vw,76px); line-height:.9;
  color:var(--rust-hi); display:block; letter-spacing:.01em;
}
.bone-block .stat__num{ color:var(--blood); }
.stat__label{
  display:block; margin-top:.55rem; font-size:.9rem; line-height:1.5;
  color:var(--bone-2);
}
.bone-block .stat__label{ color:#4A3D2C; }
.stat__src{
  display:block; margin-top:.5rem; font-size:.72rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--bone-dim);
}
.bone-block .stat__src{ color:#8A785C; }

/* ---------- Ledger table ---------- */
.ledger{
  width:100%; border-collapse:collapse; margin:2.2rem 0 1rem;
  font-size:.95rem;
}
.ledger caption{
  text-align:left; font-family:var(--font-display); letter-spacing:.2em;
  text-transform:uppercase; font-size:15px; color:var(--brass);
  padding-bottom:.9rem;
}
.bone-block .ledger caption{ color:var(--blood); }
.ledger th,.ledger td{
  text-align:left; padding:.85rem 1rem;
  border-bottom:1px solid rgba(200,155,60,.22);
}
.bone-block .ledger th,.bone-block .ledger td{ border-bottom-color:rgba(107,26,15,.18); }
.ledger thead th{
  font-family:var(--font-display); letter-spacing:.14em; text-transform:uppercase;
  font-size:14px; color:var(--bone-dim); font-weight:400;
}
.bone-block .ledger thead th{ color:#6A5B45; }
.ledger td:last-child,.ledger th:last-child{ text-align:right; font-variant-numeric:tabular-nums; }
.ledger tbody tr:hover{ background:rgba(200,155,60,.06); }
.ledger .total td{
  font-family:var(--font-display); font-size:22px; letter-spacing:.08em;
  color:var(--rust-hi); border-bottom:0; padding-top:1.2rem;
}
.bone-block .ledger .total td{ color:var(--blood); }
.table-scroll{ overflow-x:auto; }

/* ---------- Packages ---------- */
.pkgs{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:clamp(18px,2.2vw,26px); margin-top:3rem;
}
.pkg{
  background:linear-gradient(170deg,rgba(24,19,13,.96),rgba(14,11,8,.92));
  border:1px solid rgba(200,155,60,.24);
  padding:clamp(26px,3vw,38px);
  display:flex; flex-direction:column; position:relative;
  transition:transform .4s cubic-bezier(.2,.8,.25,1), border-color .4s, box-shadow .4s;
}
.pkg:hover{ transform:translateY(-6px); border-color:var(--brass); box-shadow:var(--shadow-deep); }
.pkg--feature{ border-color:var(--rust); background:linear-gradient(170deg,rgba(46,22,12,.95),rgba(16,11,8,.95)); }
.pkg__flag{
  position:absolute; top:-1px; right:-1px;
  background:var(--rust); color:var(--bone);
  font-family:var(--font-display); letter-spacing:.18em; font-size:12px;
  padding:.5em 1em .4em;
}
.pkg h3{ margin-bottom:.15em; }
.pkg__price{
  font-family:var(--font-display); font-size:clamp(34px,3.6vw,48px);
  color:var(--brass); line-height:1; margin:.5rem 0 .2rem;
}
.pkg__price small{ font-family:var(--font-body); font-size:14px; color:var(--bone-dim); letter-spacing:.04em; }
.pkg ul{ list-style:none; padding:0; margin:1.4rem 0 2rem; }
.pkg li{
  padding:.5rem 0 .5rem 1.5rem; position:relative; font-size:.93rem;
  border-bottom:1px dashed rgba(243,235,219,.12);
}
.pkg li::before{
  content:"+"; position:absolute; left:0; top:.5rem; color:var(--rust-hi);
  font-family:var(--font-display); font-size:17px;
}
.pkg .btn{ margin-top:auto; }

/* ---------- Steps ---------- */
.steps{ counter-reset:step; margin-top:3rem; display:grid; gap:2px; }
.step{
  counter-increment:step;
  display:grid; grid-template-columns:auto 1fr; gap:clamp(18px,2.6vw,34px);
  align-items:start;
  padding:clamp(22px,2.6vw,32px);
  background:rgba(16,13,9,.86);
  border:1px solid rgba(200,155,60,.18);
  transition:background .35s, border-color .35s;
}
.bone-block .step{ background:rgba(255,255,255,.42); border-color:rgba(107,26,15,.16); }
.step:hover{ background:rgba(24,19,13,.96); border-color:var(--brass); }
.bone-block .step:hover{ background:rgba(255,255,255,.75); border-color:var(--blood); }
.step::before{
  content:counter(step,decimal-leading-zero);
  font-family:var(--font-display); font-size:clamp(38px,4.4vw,58px);
  line-height:.85; color:var(--rust-hi); min-width:1.6em;
}
.bone-block .step::before{ color:var(--blood); }
.step h4{ margin-bottom:.5em; }

/* ---------- Coverage ---------- */
.coverage{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(24px,3vw,44px); margin-top:3rem;
}
.town-list{
  list-style:none; padding:0; margin:1.2rem 0 0;
  display:flex; flex-wrap:wrap; gap:8px;
}
.town-list li{
  font-size:.82rem; letter-spacing:.04em;
  padding:.42em .8em;
  border:1px solid rgba(107,26,15,.25);
  background:rgba(255,255,255,.34);
  color:#3B3125;
}
.dark-block .town-list li{
  border-color:rgba(200,155,60,.25); background:rgba(255,255,255,.03); color:var(--bone-2);
}

/* ---------- Quotes ---------- */
.quotes{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:clamp(18px,2.4vw,30px); margin-top:3rem;
}
.quote{
  padding:clamp(24px,2.8vw,36px);
  border-left:3px solid var(--rust);
  background:rgba(255,255,255,.4);
}
.dark-block .quote{ background:rgba(255,255,255,.035); }
.quote p{ font-style:italic; font-size:1.02rem; }
.quote cite{
  display:block; margin-top:1rem; font-style:normal;
  font-family:var(--font-display); letter-spacing:.16em; font-size:14px;
  text-transform:uppercase; color:var(--blood);
}
.dark-block .quote cite{ color:var(--brass); }

/* ---------- FAQ ---------- */
.dark-block{
  background:var(--ink-2); position:relative;
  padding:clamp(72px,11vh,150px) 0;
}
.faq{ margin-top:2.6rem; border-top:1px solid rgba(200,155,60,.22); }
.faq details{
  border-bottom:1px solid rgba(200,155,60,.22);
}
.bone-block .faq{ border-top-color:rgba(107,26,15,.2); }
.bone-block .faq details{ border-bottom-color:rgba(107,26,15,.2); }
.faq summary{
  cursor:pointer; list-style:none;
  padding:1.35rem 3rem 1.35rem 0; position:relative;
  font-family:var(--font-display); letter-spacing:.05em;
  font-size:clamp(19px,1.9vw,26px); text-transform:uppercase;
  transition:color .3s;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--rust-hi); }
.faq summary::after{
  content:"+"; position:absolute; right:.4rem; top:50%; transform:translateY(-50%);
  font-size:30px; color:var(--brass); transition:transform .3s;
  line-height:1;
}
.faq details[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.faq .faq__a{ padding:0 0 1.7rem; max-width:74ch; }

/* ---------- Contact ---------- */
.form-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px; margin-top:2rem;
}
.field{ display:flex; flex-direction:column; gap:.45rem; }
.field--full{ grid-column:1 / -1; }
.field label{
  font-family:var(--font-display); letter-spacing:.18em; font-size:13px;
  text-transform:uppercase; color:var(--brass);
}
.field input,.field select,.field textarea{
  font-family:var(--font-body); font-size:1rem;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(200,155,60,.3);
  color:var(--bone); padding:.85rem .95rem;
  transition:border-color .3s, background .3s;
}
.field textarea{ min-height:130px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--rust-hi); background:rgba(255,255,255,.09);
}
.field select option{ background:#16120C; color:var(--bone); }
.form-note{ margin-top:1rem; }
.form-status{
  margin-top:1.1rem; padding:.9rem 1.1rem; display:none;
  border-left:3px solid var(--brass); background:rgba(200,155,60,.1);
  font-size:.94rem;
}
.form-status.is-on{ display:block; }

.contact-cols{
  display:grid; grid-template-columns:1.25fr .85fr;
  gap:clamp(26px,4vw,60px); align-items:start;
}
@media (max-width:900px){ .contact-cols{ grid-template-columns:1fr; } }

.callout{
  border:var(--edge); padding:clamp(22px,2.6vw,32px);
  background:rgba(255,255,255,.03);
}
.callout h4{ color:var(--brass); }
.callout .big-num{
  font-family:var(--font-display); font-size:clamp(30px,3.4vw,44px);
  color:var(--bone); letter-spacing:.06em; display:block; margin:.2em 0;
}

/* ---------- Footer ---------- */
.foot{
  background:#080705; border-top:1px solid rgba(200,155,60,.22);
  padding:clamp(56px,8vh,96px) 0 32px;
}
.foot__grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:clamp(24px,3vw,44px);
}
.foot h4{ color:var(--brass); margin-bottom:1rem; }
.foot ul{ list-style:none; padding:0; margin:0; }
.foot li{ margin-bottom:.55rem; font-size:.92rem; }
.foot a{ color:var(--bone-2); }
.foot a:hover{ color:var(--rust-hi); }
.foot__bar{
  margin-top:clamp(34px,5vh,60px); padding-top:22px;
  border-top:1px solid rgba(243,235,219,.1);
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between;
  font-size:.8rem; color:var(--bone-dim);
}

/* ---------- Reveal ---------- */
.rv{
  opacity:0; transform:translateY(26px);
  transition:opacity .9s cubic-bezier(.2,.8,.25,1), transform .9s cubic-bezier(.2,.8,.25,1);
}
.rv.is-in{ opacity:1; transform:none; }
.rv-d1{ transition-delay:.09s } .rv-d2{ transition-delay:.18s }
.rv-d3{ transition-delay:.27s } .rv-d4{ transition-delay:.36s }

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition-duration:.01ms !important; }
  .rv{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
  .grain{ display:none; }
}

/* ---------- Page header (interior pages) ---------- */
/* Height comes from the content, never the other way round, so a short
   viewport grows the header instead of pushing the copy up under the nav. */
.pagehead{ position:relative; overflow:hidden; }
.pagehead .stage__media{ position:absolute; inset:0; }
.pagehead__inner{
  position:relative; z-index:5;
  min-height:clamp(560px,82svh,900px);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-top:clamp(168px,23vh,220px);
  padding-bottom:clamp(48px,8vh,92px);
}
.pagehead h1{ font-size:clamp(40px,6.6vw,96px); max-width:19ch; }
.crumbs{
  font-family:var(--font-display); letter-spacing:.18em; font-size:13px;
  text-transform:uppercase; color:var(--bone-dim); margin-bottom:1.2rem;
}
.crumbs a{ color:var(--bone-dim); }
.crumbs a:hover{ color:var(--brass); }

/* ---------- Article ---------- */
.article h2{ margin-top:2.4em; }
.article h3{ margin-top:1.9em; }
.article ul,.article ol{ padding-left:1.3rem; margin:0 0 1.4em; }
.article li{ margin-bottom:.6rem; }
.article .keyline{
  border-left:3px solid var(--rust); padding:1rem 0 1rem 1.4rem;
  margin:2rem 0; background:rgba(183,67,26,.06);
  font-size:1.05rem;
}
.toc{
  border:var(--edge); padding:clamp(20px,2.4vw,30px); margin:2.4rem 0;
  background:rgba(255,255,255,.03);
}
.bone-block .toc{ background:rgba(255,255,255,.45); border-color:rgba(107,26,15,.2); }
.toc h4{ margin-bottom:.8rem; }
.toc ol{ margin:0; padding-left:1.2rem; }
.toc li{ margin-bottom:.42rem; }

.sources{ font-size:.82rem; color:var(--bone-dim); }
.bone-block .sources{ color:#6A5B45; }
.sources li{ margin-bottom:.4rem; }

/* ---------- Sticky mobile call bar ---------- */
.callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:8500;
  display:none; gap:1px; background:rgba(200,155,60,.3);
}
.callbar a{
  flex:1; text-align:center; padding:.95em 0 .85em;
  font-family:var(--font-display); letter-spacing:.16em; font-size:16px;
  text-transform:uppercase; background:var(--ink-2); color:var(--bone);
}
.callbar a.is-primary{ background:var(--rust); }
@media (max-width:760px){
  .callbar{ display:flex; }
  body{ padding-bottom:52px; }
  .hero__cue{ display:none; }
}

/* ---------- Small screen refinements ---------- */
@media (max-width:760px){
  .ticker{ bottom:52px; }
  .ticker__track{ font-size:12px; gap:2.4rem; }
  .nav__phone{ font-size:16px; }
  .brand{ font-size:22px; letter-spacing:.14em; gap:.5rem; }
  .brand__mark{ width:40px; }
  .nav{ gap:10px; }
  .card-dark{ clip-path:none; }
  .track,.pkg{ clip-path:none; }
}
@media (max-width:520px){
  .brand__tag{ display:none; }
  .hero h1{ font-size:clamp(56px,17vw,90px); }
  .hero__sub{ letter-spacing:.2em; }
  .btn{ font-size:15px; padding:.95em 1.4em .85em; }
  .stat-grid{ grid-template-columns:1fr; }
}

/* ---------- Booking widget ---------- */
.booker{
  margin-top:2.8rem;
  padding:8px;
  background:#fff;
  border:1px solid rgba(107,26,15,.22);
  box-shadow:0 26px 64px rgba(36,29,20,.2);
  overflow:hidden;
  position:relative;
}
.booker::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  border:1px solid rgba(255,255,255,.5);
}
.booker__frame{
  /* Placeholder height before the embed script measures the calendar.
     Keep it below the real height so the script's inline value wins. */
  width:100%; min-height:620px; border:0; display:block; background:#fff;
}
.booker__fallback{
  display:flex; flex-wrap:wrap; gap:12px; align-items:center;
  margin-top:1.3rem;
}
@media (max-width:760px){
  .booker{ padding:5px; }
}
