:root{
  --bg-dark: #0c0907;
  --bg-dark-2: #14100d;
  --surface-dark: #1c1612;
  --rule-dark: rgba(255, 235, 210, 0.10);
  --rule-dark-soft: rgba(255, 235, 210, 0.06);
  --ink-on-dark: #f6efe2;
  --ink-on-dark-2: #c2b8a6;
  --ink-on-dark-3: #8a8275;

  --bg-cream: #f4ede0;
  --bg-cream-2: #ebe1cf;
  --surface-cream: #efe6d3;
  --rule-cream: #d3c8b1;
  --rule-cream-soft: #e2d8c0;
  --ink: #14100d;
  --ink-2: #4a4239;
  --ink-3: #5d544a;

  --ember: #ff6a2c;
  --ember-glow: rgba(255, 106, 44, 0.22);
  --ember-glow-soft: rgba(255, 106, 44, 0.10);
  --brick: #c4351c;
  --brick-deep: #8a2110;

  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans: 'Geist', 'Söhne', -apple-system, system-ui, sans-serif;
  --mono: 'Geist Mono', ui-monospace, 'JetBrains Mono', monospace;
  --max: 1280px;
  --gutter: clamp(20px, 4vw, 56px);
}
*{ box-sizing: border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top: 84px; }
html, body{
  background: var(--bg-dark);
  color: var(--ink-on-dark);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body{ font-size: 16px; line-height: 1.55; font-weight: 400; }
a{ color: inherit; text-decoration: none; }
img, svg{ display:block; max-width: 100%; }
button{ font-family: inherit; }

h1, h2, h3{
  font-family: var(--serif);
  font-weight: 380;
  letter-spacing: -0.02em;
  font-variation-settings: 'opsz' 144, 'SOFT' 25;
}
em{ font-style: italic; font-weight: 360; }

.wrap{ max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }

/* NAV */
.nav{
  position: sticky; top: 0; z-index: 50;
  background: rgba(12, 9, 7, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--rule-dark);
}
.nav-inner{ display:flex; align-items: center; justify-content: space-between; padding: 18px 0; }
.brand{ display:flex; align-items: center; gap: 12px; }
.brand-mark{
  width: 30px; height: 30px;
  border: 1.5px solid var(--ink-on-dark);
  position: relative; display: grid; place-items: center;
}
.brand-mark::before{
  content: ""; position: absolute; inset: 5px;
  background: var(--ember);
  box-shadow: 0 0 14px var(--ember-glow);
}
.brand-text{
  font-family: var(--serif); font-weight: 420;
  font-size: 19px; letter-spacing: -0.015em;
  color: var(--ink-on-dark);
}
.brand-text .light{ color: var(--ink-on-dark-3); font-weight: 380; }
.nav-links{ display: flex; gap: 36px; align-items: center; }
.nav-links a{
  font-size: 14px; color: var(--ink-on-dark-2); font-weight: 450;
  transition: color .2s ease;
}
.nav-links a:hover{ color: var(--ember); }
.nav-links .nav-cta{
  background: var(--ember); color: var(--bg-dark);
  padding: 11px 20px; font-weight: 500; font-size: 13.5px;
  transition: all .2s ease;
}
.nav-links .nav-cta:hover{ background: var(--ink-on-dark); color: var(--bg-dark); }
.nav-phone{
  font-family: var(--mono); font-size: 13px;
  color: var(--ink-on-dark);
  border-bottom: 1px solid transparent;
}
.nav-phone:hover{ border-bottom-color: var(--ember); color: var(--ember); }
@media (max-width: 880px){
  .nav-links a:not(.nav-cta):not(.nav-phone){ display: none; }
  .nav-links{ gap: 16px; }
}

/* HERO */
.hero{
  position: relative;
  padding: clamp(70px, 12vh, 140px) 0 clamp(70px, 12vh, 130px);
  overflow: hidden;
  isolation: isolate;
}
.hero::before{
  content: ""; position: absolute;
  top: -200px; right: -200px;
  width: 700px; height: 700px;
  background: radial-gradient(circle at center, var(--ember-glow) 0%, transparent 60%);
  z-index: -2; pointer-events: none;
}
.hero::after{
  content: ""; position: absolute;
  bottom: -300px; left: -200px;
  width: 600px; height: 600px;
  background: radial-gradient(circle at center, rgba(196, 53, 28, 0.12) 0%, transparent 60%);
  z-index: -2; pointer-events: none;
}
.hero-noise{
  position: absolute; inset: 0; z-index: -1;
  opacity: 0.04; pointer-events: none;
  background-image:
    radial-gradient(circle at 25% 30%, var(--ink-on-dark) 1px, transparent 1px),
    radial-gradient(circle at 75% 60%, var(--ink-on-dark) 1px, transparent 1px),
    radial-gradient(circle at 50% 80%, var(--ink-on-dark) 1px, transparent 1px);
  background-size: 90px 90px, 110px 110px, 130px 130px;
}
.hero-grid{
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: clamp(40px, 6vw, 80px);
  align-items: end;
  position: relative; z-index: 1;
}
.hero-meta{
  display:flex; align-items: center; gap: 18px;
  margin-bottom: 32px;
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.16em;
  color: var(--ink-on-dark-2);
}
.hero-meta .pulse{ display:inline-flex; align-items: center; gap: 9px; }
.hero-meta .pulse::before{
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--ember);
  box-shadow: 0 0 0 0 var(--ember-glow);
  animation: pulse 2.4s ease-out infinite;
}
@keyframes pulse{
  0%   { box-shadow: 0 0 0 0 var(--ember-glow); }
  70%  { box-shadow: 0 0 0 12px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
.hero-meta .sep{ width: 28px; height: 1px; background: var(--ink-on-dark-3); }
.hero h1{
  font-size: clamp(42px, 6.2vw, 76px);
  line-height: 1.0; letter-spacing: -0.032em;
  font-weight: 320; margin-bottom: 32px;
  color: var(--ink-on-dark);
  font-variation-settings: 'opsz' 144, 'SOFT' 30;
}
.hero h1 em{ color: var(--ember); font-style: italic; font-weight: 350; }
.hero h1 .underline{ position: relative; display: inline-block; }
.hero h1 .underline::after{
  content: ""; position: absolute;
  left: 0; right: 0; bottom: 0.05em;
  height: 6px; background: var(--ember); opacity: 0.25; z-index: -1;
}
.hero-lede{
  font-size: 18px; line-height: 1.6;
  color: var(--ink-on-dark-2);
  max-width: 580px; margin-bottom: 40px; font-weight: 400;
}
.hero-cta{ display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.btn{
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 26px; font-size: 14.5px; font-weight: 500;
  letter-spacing: -0.005em; cursor: pointer; border: none;
  transition: all .2s ease; font-family: var(--sans);
}
.btn-primary{ background: var(--ember); color: var(--bg-dark); }
.btn-primary:hover{ background: var(--ink-on-dark); }
.btn-secondary{
  background: transparent; color: var(--ink-on-dark);
  border: 1px solid var(--rule-dark);
}
.btn-secondary:hover{
  background: var(--ink-on-dark); color: var(--bg-dark);
  border-color: var(--ink-on-dark);
}
.btn .arrow{ width: 14px; height: 14px; transition: transform .2s ease; }
.btn:hover .arrow{ transform: translateX(3px); }
.hero-side{
  border-left: 1px solid var(--rule-dark);
  padding-left: clamp(24px, 3vw, 44px);
  align-self: stretch;
  display: flex; flex-direction: column; justify-content: space-between;
  gap: 40px;
}
.hero-side-top .label{ margin-bottom: 18px; }
.hero-side-list{
  list-style: none;
  margin: 0;
  padding: 0;
}
.hero-side-list li{
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 380;
  line-height: 1.3;
  padding: 13px 0;
  border-bottom: 1px solid var(--rule-dark-soft);
  color: var(--ink-on-dark);
  display: flex; align-items: center; gap: 14px;
  font-variation-settings: 'opsz' 24;
  letter-spacing: -0.01em;
}
.hero-side-list li::before{
  content: "+";
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ember);
  font-weight: 500;
  width: 12px;
}
.hero-side-list li:first-child{ padding-top: 0; }
.hero-side-list li:last-child{ border-bottom: none; padding-bottom: 0; }
.hero-side .label{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-on-dark-3); margin-bottom: 20px;
}
.cred-quote{
  font-family: var(--serif); font-size: 19px;
  line-height: 1.45; font-style: italic;
  color: var(--ink-on-dark); font-weight: 380;
  margin-bottom: 22px;
}
.cred-attrib{
  font-family: var(--mono); font-size: 11px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-on-dark-2);
}
.cred-attrib .name{ color: var(--ember); }
@media (max-width: 880px){
  .hero-grid{ grid-template-columns: 1fr; gap: 50px; }
  .hero-side{
    border-left: none; padding-left: 0;
    border-top: 1px solid var(--rule-dark); padding-top: 36px;
  }
}

/* STATS */
.stats{
  background: var(--bg-dark-2);
  border-top: 1px solid var(--rule-dark);
  border-bottom: 1px solid var(--rule-dark);
}
.stats-grid{
  display: grid; grid-template-columns: repeat(3, 1fr);
  padding: 56px 0; gap: 1px;
  background: var(--rule-dark);
}
.stat{
  background: var(--bg-dark-2);
  padding: 0 36px;
  display: flex; flex-direction: column; gap: 14px;
}
.stat:first-child{ padding-left: 0; }
.stat:last-child{ padding-right: 0; }
.stat .num{
  font-family: var(--serif); font-size: clamp(48px, 5.4vw, 76px);
  line-height: 0.9; font-weight: 320;
  letter-spacing: -0.04em; color: var(--ink-on-dark);
}
.stat .num .unit{
  font-family: var(--sans); font-size: 0.36em; font-weight: 400;
  color: var(--ember); letter-spacing: 0; margin-left: 6px;
  vertical-align: 0.18em;
}
.stat .label{
  font-family: var(--mono); font-size: 11.5px;
  text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-on-dark-2); line-height: 1.55; max-width: 240px;
}
@media (max-width: 880px){
  .stats-grid{ grid-template-columns: 1fr; }
  .stat{ padding: 24px; }
}

/* SECTION HEAD shared */
.section-head{
  padding-top: clamp(80px, 12vh, 140px);
  padding-bottom: clamp(40px, 6vh, 70px);
  display: grid; grid-template-columns: 1fr 2.4fr;
  gap: clamp(30px, 5vw, 80px);
  align-items: end;
}
.section-head .index{
  font-family: var(--mono); font-size: 13px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ember); font-weight: 500;
  display: flex; align-items: center; gap: 10px;
}
.section-head .index::before{ content: ""; width: 28px; height: 1px; background: var(--ember); }
.section-head h2{
  font-size: clamp(34px, 5vw, 60px);
  line-height: 1.02; letter-spacing: -0.025em;
  font-weight: 400; max-width: 18ch;
  font-variation-settings: 'opsz' 144, 'SOFT' 20;
}
.cream-section .section-head h2{ color: var(--ink); }
.cream-section .section-head h2 em{ color: var(--brick); }
.cream-section .section-head .index{ color: var(--brick); }
.cream-section .section-head .index::before{ background: var(--brick); }
.dark-section .section-head h2{ color: var(--ink-on-dark); }
.dark-section .section-head h2 em{ color: var(--ember); }
@media (max-width: 720px){ .section-head{ grid-template-columns: 1fr; } }

/* SERVICES */
.services{
  background: var(--bg-cream); color: var(--ink);
  border-top: 1px solid var(--rule-cream);
  padding-bottom: clamp(80px, 12vh, 130px);
  position: relative;
}
.services .section-head{ border-bottom: 1px solid var(--rule-cream); }
.service-grid{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; }
.service{
  display: grid; grid-template-columns: 80px 1fr; gap: 24px;
  padding: 40px clamp(24px, 3vw, 44px) 40px 0;
  border-bottom: 1px solid var(--rule-cream);
  align-items: start;
  transition: background .25s ease, padding .25s ease;
  cursor: default; position: relative;
}
.service:nth-child(2n){
  padding-left: clamp(24px, 3vw, 44px); padding-right: 0;
  border-left: 1px solid var(--rule-cream);
}
.service:nth-last-child(-n+2){ border-bottom: none; }
.service:hover{ background: rgba(196, 53, 28, 0.04); }
.service:hover .service-icon{ color: var(--brick); }
.service:hover .service-num{ color: var(--brick); }
.service-icon{
  width: 64px; height: 64px;
  color: var(--ink-2);
  transition: color .25s ease;
  margin-top: 4px;
}
.service-icon svg{ width: 100%; height: 100%; }
.service-num{
  font-family: var(--mono); font-size: 12px; font-weight: 500;
  color: var(--ink-3); letter-spacing: 0.08em;
  margin-bottom: 10px; transition: color .2s ease;
}
.service-name{
  font-family: var(--serif);
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.15; letter-spacing: -0.02em;
  font-weight: 450; font-variation-settings: 'opsz' 24;
  margin-bottom: 14px; color: var(--ink);
}
.service-desc{
  font-size: 15px; line-height: 1.6;
  color: var(--ink-2); max-width: 50ch;
}
@media (max-width: 880px){
  .service-grid{ grid-template-columns: 1fr; }
  .service:nth-child(2n){ padding-left: 0; padding-right: 0; border-left: none; }
  .service:nth-last-child(-n+2){ border-bottom: 1px solid var(--rule-cream); }
  .service:last-child{ border-bottom: none; }
}

/* RISKS */
.risks{
  background: var(--bg-dark); color: var(--ink-on-dark);
  position: relative; overflow: hidden;
  border-top: 1px solid var(--rule-dark);
  padding-bottom: clamp(80px, 12vh, 130px);
}
.risks::before{
  content: ""; position: absolute;
  top: 20%; right: -300px;
  width: 700px; height: 700px;
  background: radial-gradient(circle at center, rgba(196, 53, 28, 0.18) 0%, transparent 65%);
  pointer-events: none; z-index: 0;
}
.risks .section-head{ border-bottom: 1px solid var(--rule-dark); position: relative; z-index: 1; }
.risks .section-head .index{ color: var(--brick); }
.risks .section-head .index::before{ background: var(--brick); }
.risks .section-head h2 em{ color: var(--brick); }
.risk-intro{
  display: grid; grid-template-columns: 1fr 2.4fr;
  gap: clamp(30px, 5vw, 80px);
  padding: 60px 0;
  border-bottom: 1px solid var(--rule-dark);
  position: relative; z-index: 1;
}
.risk-intro .key{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-on-dark-3);
}
.risk-intro p{
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.45; font-weight: 360;
  letter-spacing: -0.012em; color: var(--ink-on-dark);
  font-variation-settings: 'opsz' 24; max-width: 60ch;
}
.risk-intro p strong{ color: var(--ember); font-weight: 400; font-style: italic; }
@media (max-width: 720px){ .risk-intro{ grid-template-columns: 1fr; } }
.risk-grid{
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 1px; margin-top: 60px;
  background: var(--rule-dark);
  border-top: 1px solid var(--rule-dark);
  border-bottom: 1px solid var(--rule-dark);
  position: relative; z-index: 1;
}
.risk-card{
  background: var(--bg-dark); padding: 44px 36px;
  display: flex; flex-direction: column; gap: 20px;
  position: relative; transition: background .3s ease;
}
.risk-card:hover{ background: var(--bg-dark-2); }
.risk-card:hover .risk-fig{ color: var(--ember); }
.risk-card .risk-tag{
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--mono); font-size: 11.5px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--brick); font-weight: 500;
}
.risk-card .risk-tag::before{
  content: ""; width: 10px; height: 10px;
  border: 1.5px solid var(--brick); transform: rotate(45deg);
}
.risk-fig{
  font-family: var(--serif);
  font-size: clamp(48px, 6vw, 80px);
  line-height: 0.92; font-weight: 320;
  letter-spacing: -0.04em; color: var(--ink-on-dark);
  font-variation-settings: 'opsz' 144;
  transition: color .3s ease;
}
.risk-fig .small{
  font-size: 0.45em; color: var(--ink-on-dark);
  font-weight: 400; letter-spacing: -0.015em;
  display: block; margin-top: 4px; font-style: italic;
}
.risk-name{
  font-family: var(--serif); font-size: 22px;
  line-height: 1.2; letter-spacing: -0.018em;
  font-weight: 450; color: var(--ink-on-dark);
}
.risk-body{
  font-size: 15.5px; line-height: 1.6;
  color: var(--ink-on-dark-2); max-width: 50ch;
}
.risk-cite{
  font-family: var(--mono); font-size: 11.5px;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ink-on-dark-2);
  margin-top: auto; padding-top: 14px;
  border-top: 1px solid var(--rule-dark-soft);
}
@media (max-width: 720px){ .risk-grid{ grid-template-columns: 1fr; } }
.risk-foot{
  margin-top: 36px; padding: 28px 32px;
  background: var(--surface-dark);
  border-left: 3px solid var(--ember);
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
  position: relative; z-index: 1;
}
.risk-foot p{
  font-size: 15.5px; color: var(--ink-on-dark-2);
  line-height: 1.55; max-width: 60ch;
}
.risk-foot p strong{ color: var(--ink-on-dark); font-weight: 500; }
.risk-foot a{
  font-family: var(--mono); font-size: 12px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ember); white-space: nowrap;
  border-bottom: 1px solid var(--ember);
  padding-bottom: 2px; transition: color .2s ease;
}
.risk-foot a:hover{ color: var(--ink-on-dark); border-bottom-color: var(--ink-on-dark); }

/* ABOUT */
.about{
  background: var(--bg-cream); color: var(--ink);
  border-top: 1px solid var(--rule-cream);
  padding-bottom: clamp(80px, 12vh, 130px);
}
.about .section-head{ border-bottom: 1px solid var(--rule-cream); }
.about-grid{
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 90px);
  align-items: start; padding-top: 60px;
}
.about-headline{
  font-family: var(--serif);
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.08; letter-spacing: -0.025em;
  font-weight: 380; margin-bottom: 32px; color: var(--ink);
  font-variation-settings: 'opsz' 144, 'SOFT' 30;
}
.about-headline em{ color: var(--brick); }
.about-body p{
  font-size: 16.5px; line-height: 1.65;
  color: var(--ink-2); margin-bottom: 18px; max-width: 52ch;
}
.about-body p strong{ color: var(--ink); font-weight: 500; }
.bio-card{
  background: var(--bg-dark); color: var(--ink-on-dark);
  padding: 40px; position: sticky; top: 100px;
  position: relative; overflow: hidden;
}
.bio-card::before{
  content: ""; position: absolute;
  top: -100px; right: -100px;
  width: 280px; height: 280px;
  background: radial-gradient(circle at center, var(--ember-glow-soft) 0%, transparent 70%);
  pointer-events: none;
}
.bio-card .role{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ember); margin-bottom: 8px; position: relative;
}
.bio-card .name{
  font-family: var(--serif); font-size: 32px;
  line-height: 1.05; letter-spacing: -0.02em;
  font-weight: 450; margin-bottom: 28px;
  padding-bottom: 24px; border-bottom: 1px solid var(--rule-dark);
  color: var(--ink-on-dark); position: relative;
}
.bio-card dl{
  display: grid; grid-template-columns: 110px 1fr;
  gap: 16px 18px; font-size: 15px; position: relative;
}
.bio-card dt{
  font-family: var(--mono); font-size: 10.5px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-on-dark-3); padding-top: 3px;
}
.bio-card dd{
  color: var(--ink-on-dark); font-weight: 450; line-height: 1.45;
}
.bio-card dd a{ border-bottom: 1px solid var(--rule-dark); transition: border-color .2s ease, color .2s ease; }
.bio-card dd a:hover{ border-bottom-color: var(--ember); color: var(--ember); }
@media (max-width: 880px){
  .about-grid{ grid-template-columns: 1fr; }
  .bio-card{ position: static; }
}

/* COMPLIANCE */
.compliance{
  background: var(--bg-cream); color: var(--ink);
  padding-bottom: clamp(80px, 12vh, 130px);
}
.compliance .section-head{
  border-bottom: 1px solid var(--rule-cream);
  padding-top: clamp(80px, 12vh, 130px);
}
.compliance-grid{
  display:grid; grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 1px; margin-top: 50px;
  background: var(--rule-cream);
  border-top: 1px solid var(--rule-cream);
  border-bottom: 1px solid var(--rule-cream);
}
.compliance-item{
  background: var(--bg-cream); padding: 36px 28px;
  display:flex; flex-direction: column; gap: 14px;
  transition: background .25s ease;
}
.compliance-item:hover{ background: var(--surface-cream); }
.compliance-item .code{
  font-family: var(--mono); font-size: 12px;
  color: var(--brick); letter-spacing: 0.08em; font-weight: 500;
}
.compliance-item .name{
  font-family: var(--serif); font-size: 22px;
  line-height: 1.15; letter-spacing: -0.018em;
  font-weight: 450; color: var(--ink);
}
.compliance-item .desc{
  font-size: 15px; color: var(--ink-2); line-height: 1.55;
}
@media (max-width: 880px){ .compliance-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px){ .compliance-grid{ grid-template-columns: 1fr; } }

/* COVERAGE */
.coverage{
  background: var(--bg-dark); color: var(--ink-on-dark);
  border-top: 1px solid var(--rule-dark);
  padding-bottom: clamp(80px, 12vh, 130px);
  position: relative;
}
.coverage::before{
  content: ""; position: absolute;
  bottom: 0; right: 0;
  width: 500px; height: 500px;
  background: radial-gradient(circle at bottom right, var(--ember-glow-soft) 0%, transparent 70%);
  pointer-events: none;
}
.coverage .section-head{ border-bottom: 1px solid var(--rule-dark); }
.coverage-content{
  display: grid; grid-template-columns: 1.6fr 1fr;
  gap: 60px; margin-top: 60px;
  align-items: start; position: relative;
}
.coverage-cities{
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 0 24px;
}
.coverage-city{
  padding: 22px 0; border-bottom: 1px solid var(--rule-dark);
  display: flex; align-items: baseline; gap: 18px;
  transition: padding .25s ease;
}
.coverage-city:hover{ padding-left: 8px; }
.coverage-city:hover .name{ color: var(--ember); }
.coverage-city .marker{
  font-family: var(--mono); font-size: 11px;
  color: var(--ink-on-dark-3);
  width: 28px; flex-shrink: 0; letter-spacing: 0.05em;
}
.coverage-city .name{
  font-family: var(--serif); font-size: 24px;
  font-weight: 450; letter-spacing: -0.02em;
  color: var(--ink-on-dark); transition: color .2s ease;
}
.coverage-aside{
  background: var(--surface-dark);
  border-left: 3px solid var(--ember);
  padding: 36px;
}
.coverage-aside .label{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-on-dark-3); margin-bottom: 18px;
}
.coverage-aside p{
  font-family: var(--serif); font-size: 21px;
  line-height: 1.45; font-weight: 360;
  color: var(--ink-on-dark);
  margin-bottom: 24px; font-style: italic;
}
.coverage-aside .response{
  font-family: var(--mono); font-size: 12px;
  letter-spacing: 0.1em; color: var(--ember);
  text-transform: uppercase;
}
@media (max-width: 880px){
  .coverage-content{ grid-template-columns: 1fr; }
  .coverage-cities{ grid-template-columns: 1fr; }
}

/* PROCESS */
.process{
  background: var(--bg-cream); color: var(--ink);
  padding-bottom: clamp(80px, 12vh, 130px);
}
.process .section-head{
  border-bottom: 1px solid var(--rule-cream);
  padding-top: clamp(80px, 12vh, 130px);
}
.process-steps{
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0; margin-top: 60px; position: relative;
}
.process-steps::before{
  content: ""; position: absolute;
  top: 22px; left: 22px; right: 22px; height: 1px;
  background: var(--rule-cream);
}
.step{ padding: 0 28px 0 0; position: relative; }
.step:last-child{ padding-right: 0; }
.step .marker{
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--bg-cream);
  border: 1px solid var(--ink);
  display: grid; place-items: center;
  font-family: var(--mono); font-size: 13px; font-weight: 500;
  color: var(--ink); margin-bottom: 28px;
  position: relative; z-index: 1;
}
.step:nth-child(1) .marker{ background: var(--bg-cream); color: var(--ink); }
.step .name{
  font-family: var(--serif); font-size: 22px;
  letter-spacing: -0.018em; line-height: 1.2;
  font-weight: 450; margin-bottom: 12px; color: var(--ink);
}
.step .desc{
  font-size: 14.5px; line-height: 1.55;
  color: var(--ink-2); max-width: 28ch;
}
@media (max-width: 880px){
  .process-steps{ grid-template-columns: 1fr; gap: 32px; }
  .process-steps::before{ display: none; }
  .step{ padding: 0 0 32px; border-bottom: 1px solid var(--rule-cream); }
  .step:last-child{ border-bottom: none; padding-bottom: 0; }
  .step .marker{ margin-bottom: 16px; }
}

/* CONTACT */
.contact{
  background: var(--bg-cream); color: var(--ink);
  padding: clamp(80px, 12vh, 130px) 0;
  border-top: 1px solid var(--rule-cream);
}
.contact-grid{
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 5vw, 80px); align-items: start;
}
.contact-lead .index{
  font-family: var(--mono); font-size: 12px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--brick); font-weight: 500;
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 28px;
}
.contact-lead .index::before{ content: ""; width: 28px; height: 1px; background: var(--brick); }
.contact-lead h2{
  font-size: clamp(36px, 5vw, 60px);
  line-height: 1.02; letter-spacing: -0.028em;
  font-weight: 400; margin-bottom: 32px; color: var(--ink);
  font-variation-settings: 'opsz' 144, 'SOFT' 22;
}
.contact-lead h2 em{ color: var(--brick); }
.contact-direct{
  border-top: 1px solid var(--rule-cream);
  padding-top: 28px; margin-top: 32px;
}
.contact-direct .label{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 14px;
}
.contact-direct .row{
  display: grid; grid-template-columns: 100px 1fr;
  gap: 16px; padding: 16px 0;
  border-bottom: 1px solid var(--rule-cream-soft);
  align-items: baseline;
}
.contact-direct .row:last-child{ border-bottom: none; }
.contact-direct .key{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-3);
}
.contact-direct .val{
  font-family: var(--serif); font-size: 22px;
  font-weight: 450; letter-spacing: -0.015em; color: var(--ink);
}
.contact-direct .val a{
  border-bottom: 1px solid var(--rule-cream);
  transition: border-color .2s ease, color .2s ease;
}
.contact-direct .val a:hover{ border-bottom-color: var(--brick); color: var(--brick); }

.contact-form{
  background: var(--bg-dark); color: var(--ink-on-dark);
  padding: clamp(28px, 4vw, 44px);
  position: relative; overflow: hidden;
}
.contact-form::before{
  content: ""; position: absolute;
  top: -100px; right: -100px;
  width: 320px; height: 320px;
  background: radial-gradient(circle at center, var(--ember-glow-soft) 0%, transparent 70%);
  pointer-events: none;
}
.field{ margin-bottom: 20px; position: relative; }
.field label{
  display: block;
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-on-dark-2); margin-bottom: 8px;
}
.field input, .field select, .field textarea{
  width: 100%;
  background: var(--surface-dark);
  border: 1px solid var(--rule-dark);
  padding: 14px 16px;
  font-family: var(--sans); font-size: 15px;
  color: var(--ink-on-dark); border-radius: 0;
  transition: border-color .2s ease; outline: none;
}
.field input::placeholder, .field textarea::placeholder{ color: var(--ink-on-dark-3); }
.field input:focus, .field select:focus, .field textarea:focus{ border-color: var(--ember); }
.field textarea{ min-height: 110px; resize: vertical; font-family: var(--sans); }
.field-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-submit{
  width: 100%;
  background: var(--ember); color: var(--bg-dark);
  border: none; padding: 18px 24px;
  font-family: var(--sans); font-size: 14.5px; font-weight: 500;
  cursor: pointer; transition: background .2s ease;
  display: flex; align-items: center; justify-content: space-between;
  position: relative;
}
.form-submit:hover{ background: var(--ink-on-dark); }
.form-submit .arrow{ font-family: var(--mono); font-size: 18px; }
.form-foot{
  margin-top: 16px; font-size: 12.5px;
  color: var(--ink-on-dark-3); line-height: 1.5; position: relative;
}
@media (max-width: 880px){
  .contact-grid{ grid-template-columns: 1fr; }
  .field-row{ grid-template-columns: 1fr; }
}

/* FOOTER */
footer{
  background: var(--bg-dark);
  color: var(--ink-on-dark-2);
  padding: 80px 0 40px;
  border-top: 1px solid var(--rule-dark);
}
.foot-top{
  display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 40px; padding-bottom: 60px;
  border-bottom: 1px solid var(--rule-dark);
}
.foot-brand{ max-width: 420px; }
.foot-brand .brand{ margin-bottom: 22px; }
.foot-brand p{
  font-size: 15.5px; line-height: 1.6;
  color: var(--ink-on-dark-2);
}
.foot-col h4{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-on-dark-3); font-weight: 500; margin-bottom: 18px;
}
.foot-col ul{ list-style: none; }
.foot-col li{ font-size: 15px; margin-bottom: 10px; }
.foot-col li a{
  color: var(--ink-on-dark);
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, color .2s ease;
}
.foot-col li a:hover{ border-bottom-color: var(--ember); color: var(--ember); }
.foot-bot{
  padding-top: 30px;
  display: flex; justify-content: space-between;
  align-items: center; flex-wrap: wrap; gap: 16px;
}
.foot-bot .legal, .foot-bot .built{
  font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.08em; color: var(--ink-on-dark-3);
  text-transform: uppercase;
}
@media (max-width: 880px){
  .foot-top{ grid-template-columns: 1fr 1fr; }
  .foot-brand{ grid-column: 1 / -1; }
}

/* REVEAL — progressive enhancement: content is visible by default; only hidden when JS confirms IntersectionObserver works */
.js-reveal-ready .reveal{
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .8s cubic-bezier(.2,.6,.2,1), transform .8s cubic-bezier(.2,.6,.2,1);
}
.js-reveal-ready .reveal.in{ opacity: 1; transform: none; }

::selection{ background: var(--ember); color: var(--bg-dark); }

/* ============================================================
   MULTI-PAGE EXTENSIONS
   ============================================================ */

/* Photo placeholders — SVG illustration with overlay label */
.photo-slot{
  position: relative;
  overflow: hidden;
  display: block;
  background: var(--bg-dark);
  min-height: 280px;
  isolation: isolate;
}
.photo-slot .ps-svg{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.photo-slot .ps-svg svg{
  width: 100%;
  height: 100%;
  display: block;
}
.photo-slot .ps-overlay{
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 16px 20px;
  background: linear-gradient(to top, rgba(12, 9, 7, 0.92) 0%, rgba(12, 9, 7, 0.65) 60%, transparent 100%);
  display: flex;
  flex-direction: column;
  gap: 4px;
  pointer-events: none;
}
.photo-slot .ps-label{
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ember);
  opacity: 0.9;
  font-weight: 500;
}
.photo-slot .ps-name{
  font-family: var(--serif);
  font-size: 14px;
  font-weight: 450;
  letter-spacing: -0.01em;
  color: var(--ink-on-dark);
  font-style: italic;
}
.photo-slot.cream-bg{
  background: var(--bg-cream-2);
}

/* Real photo variant — when Brad's photos are dropped in */
.photo-slot.photo-real img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Page hero — for sub-pages (Services, About, Coverage, Risks, Contact) */
.page-hero{
  position: relative;
  padding: clamp(70px, 11vh, 130px) 0 clamp(60px, 9vh, 110px);
  overflow: hidden;
  isolation: isolate;
  background: var(--bg-dark);
}
.page-hero::before{
  content: "";
  position: absolute;
  top: -150px; right: -150px;
  width: 500px; height: 500px;
  background: radial-gradient(circle at center, var(--ember-glow) 0%, transparent 60%);
  z-index: -1;
}
.page-hero-grid{
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: clamp(30px, 4vw, 60px);
  align-items: end;
}
.page-hero-meta{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ember);
  margin-bottom: 32px;
  display: flex; align-items: center; gap: 10px;
}
.page-hero-meta::before{
  content: ""; width: 28px; height: 1px;
  background: var(--ember);
}
.page-hero h1{
  font-size: clamp(44px, 6.4vw, 84px);
  line-height: 0.98;
  letter-spacing: -0.032em;
  font-weight: 380;
  color: var(--ink-on-dark);
  font-variation-settings: 'opsz' 144, 'SOFT' 30;
  max-width: 16ch;
}
.page-hero h1 em{ color: var(--ember); font-style: italic; font-weight: 380; }
.page-hero-lede{
  font-family: var(--serif);
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.5;
  font-weight: 380;
  color: var(--ink-on-dark);
  max-width: 50ch;
  font-variation-settings: 'opsz' 24;
  font-style: italic;
}
@media (max-width: 880px){
  .page-hero-grid{ grid-template-columns: 1fr; gap: 24px; align-items: start; }
}

/* Breadcrumb */
.breadcrumb{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-on-dark-3);
  margin-bottom: 32px;
  display: flex; align-items: center; gap: 10px;
}
.breadcrumb a{
  color: var(--ink-on-dark-2);
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease, color .2s ease;
}
.breadcrumb a:hover{ color: var(--ember); border-bottom-color: var(--ember); }
.breadcrumb .sep{ color: var(--ink-on-dark-3); opacity: 0.5; }

/* ============== SERVICES PAGE — DETAIL CARDS ============== */
.service-detail{
  background: var(--bg-cream); color: var(--ink);
  padding: clamp(70px, 10vh, 110px) 0;
  border-top: 1px solid var(--rule-cream);
}
.service-detail.alt{
  background: var(--bg-cream-2);
}
.service-detail-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: start;
}
.service-detail .meta{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brick);
  font-weight: 500;
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 24px;
}
.service-detail .meta::before{
  content: ""; width: 28px; height: 1px; background: var(--brick);
}
.service-detail h2{
  font-family: var(--serif);
  font-size: clamp(32px, 4.4vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 400;
  margin-bottom: 28px;
  color: var(--ink);
  font-variation-settings: 'opsz' 144, 'SOFT' 25;
}
.service-detail .lede{
  font-family: var(--serif);
  font-size: 21px;
  line-height: 1.4;
  font-weight: 380;
  color: var(--ink);
  margin-bottom: 28px;
  font-style: italic;
  font-variation-settings: 'opsz' 24;
}
.service-detail .body p{
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink-2);
  margin-bottom: 18px;
  max-width: 56ch;
}
.service-detail .body strong{ color: var(--ink); font-weight: 500; }
.service-detail-list{
  list-style: none;
  margin: 24px 0;
}
.service-detail-list li{
  padding: 16px 0;
  border-bottom: 1px solid var(--rule-cream);
  position: relative;
  padding-left: 28px;
}
.service-detail-list li::before{
  content: "+";
  position: absolute;
  left: 0;
  top: 16px;
  font-family: var(--mono);
  font-size: 14px;
  color: var(--brick);
  font-weight: 500;
  line-height: 1.5;
}
.service-detail-list li strong{
  display: block;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin-bottom: 4px;
  line-height: 1.3;
}
.service-detail-list li{
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink-2);
}
.service-detail-photo{
  position: sticky; top: 100px;
}
.service-detail-photo .photo-slot{
  aspect-ratio: 4/5;
  width: 100%;
}
@media (max-width: 880px){
  .service-detail-grid{ grid-template-columns: 1fr; }
  .service-detail-photo{ position: static; }
  .service-detail-photo .photo-slot{ aspect-ratio: 16/10; }
}

/* ============== ABOUT PAGE EXTENSIONS ============== */
.about-page-grid{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: start;
  padding-top: 60px;
  border-top: 1px solid var(--rule-cream);
}
.about-portrait .photo-slot{
  aspect-ratio: 4/5;
  width: 100%;
  position: sticky; top: 100px;
}
.about-page-headline{
  font-family: var(--serif);
  font-size: clamp(34px, 4.4vw, 54px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 380;
  color: var(--ink);
  margin-bottom: 36px;
  font-variation-settings: 'opsz' 144, 'SOFT' 25;
}
.about-page-headline em{ color: var(--brick); }
.about-page-body p{
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-2);
  margin-bottom: 22px;
  max-width: 56ch;
}
.about-page-body p strong{ color: var(--ink); font-weight: 500; }
@media (max-width: 880px){
  .about-page-grid{ grid-template-columns: 1fr; }
  .about-portrait .photo-slot{ position: static; aspect-ratio: 4/3; }
}

/* Family band — full-width photo */
.family-band{
  background: var(--bg-dark);
  padding: clamp(60px, 9vh, 100px) 0;
  border-top: 1px solid var(--rule-dark);
  border-bottom: 1px solid var(--rule-dark);
  position: relative;
  overflow: hidden;
}
.family-band::before{
  content: "";
  position: absolute;
  top: 50%; left: -200px;
  width: 500px; height: 500px;
  transform: translateY(-50%);
  background: radial-gradient(circle at center, var(--ember-glow-soft) 0%, transparent 65%);
  pointer-events: none;
}
.family-band-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
  position: relative;
}
.family-band .meta{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ember);
  margin-bottom: 24px;
  display: flex; align-items: center; gap: 10px;
}
.family-band .meta::before{
  content: ""; width: 28px; height: 1px; background: var(--ember);
}
.family-band h2{
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 400;
  color: var(--ink-on-dark);
  margin-bottom: 24px;
  font-variation-settings: 'opsz' 144, 'SOFT' 25;
}
.family-band h2 em{ color: var(--ember); }
.family-band p{
  font-size: 16.5px;
  line-height: 1.65;
  color: var(--ink-on-dark-2);
  margin-bottom: 16px;
  max-width: 50ch;
}
.family-band p strong{ color: var(--ink-on-dark); font-weight: 500; }
.family-band .photo-slot{
  aspect-ratio: 5/4;
  width: 100%;
}
@media (max-width: 880px){
  .family-band-grid{ grid-template-columns: 1fr; }
}

/* Credentials timeline */
.credentials{
  background: var(--bg-cream);
  padding: clamp(70px, 10vh, 110px) 0;
}
.credentials .section-head{ border-bottom: 1px solid var(--rule-cream); }
.cred-list{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  margin-top: 50px;
  background: var(--rule-cream);
  border-top: 1px solid var(--rule-cream);
  border-bottom: 1px solid var(--rule-cream);
}
.cred-item{
  background: var(--bg-cream);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: background .25s ease;
}
.cred-item:hover{ background: var(--surface-cream); }
.cred-item .year{
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--brick);
  font-weight: 500;
}
.cred-item .title{
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: -0.018em;
  font-weight: 450;
  color: var(--ink);
}
.cred-item .desc{
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ink-2);
}
@media (max-width: 720px){ .cred-list{ grid-template-columns: 1fr; } }

/* ============== COVERAGE PAGE ============== */
.coverage-cities-detailed{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  margin-top: 60px;
  background: var(--rule-dark);
  border-top: 1px solid var(--rule-dark);
  border-bottom: 1px solid var(--rule-dark);
}
.city-card{
  background: var(--bg-dark);
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: background .25s ease;
}
.city-card:hover{ background: var(--bg-dark-2); }
.city-card .number{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ember);
  font-weight: 500;
}
.city-card .name{
  font-family: var(--serif);
  font-size: 30px;
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 450;
  color: var(--ink-on-dark);
}
.city-card .desc{
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink-on-dark-2);
}
.city-card .response{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ember);
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--rule-dark-soft);
}
@media (max-width: 720px){ .coverage-cities-detailed{ grid-template-columns: 1fr; } }

/* Out-of-area note */
.coverage-note{
  margin-top: 50px;
  padding: 32px 36px;
  background: var(--surface-dark);
  border-left: 3px solid var(--ember);
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
}
.coverage-note h3{
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: -0.018em;
  font-weight: 450;
  color: var(--ink-on-dark);
  margin-bottom: 8px;
}
.coverage-note p{
  font-size: 15px;
  color: var(--ink-on-dark-2);
  max-width: 50ch;
}
.coverage-note a{
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ember);
  white-space: nowrap;
  border-bottom: 1px solid var(--ember);
  padding-bottom: 2px;
}

/* ============== CONTACT / BOOKING PAGE ============== */
.booking-page{
  background: var(--bg-cream);
  padding: clamp(60px, 9vh, 100px) 0 clamp(70px, 10vh, 110px);
}
.booking-grid{
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: clamp(40px, 5vw, 70px);
  align-items: start;
}
.booking-side{
  position: sticky; top: 100px;
}
.booking-side h2{
  font-family: var(--serif);
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  font-weight: 400;
  margin-bottom: 24px;
  color: var(--ink);
  font-variation-settings: 'opsz' 144, 'SOFT' 25;
}
.booking-side h2 em{ color: var(--brick); }
.booking-side .lede{
  font-size: 16.5px;
  line-height: 1.6;
  color: var(--ink-2);
  margin-bottom: 32px;
  max-width: 40ch;
}
.booking-direct{
  border-top: 1px solid var(--rule-cream);
  padding-top: 24px;
}
.booking-direct .label{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 14px;
}
.booking-direct .row{
  padding: 14px 0;
  border-bottom: 1px solid var(--rule-cream-soft);
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 14px;
  align-items: baseline;
}
.booking-direct .row:last-child{ border-bottom: none; }
.booking-direct .key{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.booking-direct .val{
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 450;
  letter-spacing: -0.015em;
  color: var(--ink);
}
.booking-direct .val a{ border-bottom: 1px solid var(--rule-cream); transition: all .2s ease; }
.booking-direct .val a:hover{ color: var(--brick); border-bottom-color: var(--brick); }

.booking-form{
  background: var(--bg-dark);
  color: var(--ink-on-dark);
  padding: clamp(28px, 3.6vw, 42px);
  position: relative;
  overflow: hidden;
}
.booking-form::before{
  content: "";
  position: absolute;
  top: -120px; right: -120px;
  width: 320px; height: 320px;
  background: radial-gradient(circle at center, var(--ember-glow-soft) 0%, transparent 70%);
  pointer-events: none;
}
.booking-form > *{ position: relative; }
.booking-form .form-step{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ember);
  margin-bottom: 8px;
  font-weight: 500;
}
.booking-form h3{
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: -0.018em;
  font-weight: 450;
  color: var(--ink-on-dark);
  margin-bottom: 24px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rule-dark);
}
.booking-form h3:not(:first-of-type){ margin-top: 32px; }

.booking-form .urgency-grid{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  margin-bottom: 24px;
}
.booking-form .urgency-opt{
  position: relative;
}
.booking-form .urgency-opt input[type="radio"]{
  position: absolute; opacity: 0; pointer-events: none;
}
.booking-form .urgency-opt label{
  display: block;
  padding: 14px 16px;
  background: var(--surface-dark);
  border: 1px solid var(--rule-dark);
  cursor: pointer;
  font-size: 14px;
  font-weight: 450;
  color: var(--ink-on-dark);
  text-transform: none;
  letter-spacing: 0;
  text-align: center;
  transition: all .2s ease;
  margin: 0;
  font-family: var(--sans);
}
.booking-form .urgency-opt label .sub{
  display: block;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-on-dark-3);
  margin-top: 4px;
}
.booking-form .urgency-opt input[type="radio"]:checked + label{
  background: rgba(255, 106, 44, 0.10);
  border-color: var(--ember);
  color: var(--ember);
}
.booking-form .urgency-opt input[type="radio"]:checked + label .sub{ color: var(--ember); opacity: 0.8; }

.booking-form .checkbox-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 18px;
}
.booking-form .check-opt{
  position: relative;
}
.booking-form .check-opt input[type="checkbox"]{
  position: absolute; opacity: 0; pointer-events: none;
}
.booking-form .check-opt label{
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  background: var(--surface-dark);
  border: 1px solid var(--rule-dark);
  cursor: pointer;
  font-size: 14px;
  font-weight: 450;
  color: var(--ink-on-dark);
  text-transform: none;
  letter-spacing: 0;
  transition: all .2s ease;
  margin: 0;
  font-family: var(--sans);
}
.booking-form .check-opt label::before{
  content: "";
  width: 16px; height: 16px;
  border: 1.5px solid var(--rule-dark);
  flex-shrink: 0;
  display: inline-block;
  position: relative;
}
.booking-form .check-opt input[type="checkbox"]:checked + label{
  background: rgba(255, 106, 44, 0.10);
  border-color: var(--ember);
  color: var(--ember);
}
.booking-form .check-opt input[type="checkbox"]:checked + label::before{
  background: var(--ember);
  border-color: var(--ember);
}
.booking-form .check-opt input[type="checkbox"]:checked + label::after{
  content: "✓";
  position: absolute;
  left: 17px;
  color: var(--bg-dark);
  font-weight: 700;
  font-size: 11px;
  margin-top: -1px;
}

@media (max-width: 720px){
  .booking-grid{ grid-template-columns: 1fr; }
  .booking-side{ position: static; }
  .booking-form .urgency-grid{ grid-template-columns: 1fr; }
  .booking-form .checkbox-grid{ grid-template-columns: 1fr; }
}

/* ============== RISKS PAGE EXTENSIONS ============== */
.risks-deep{
  background: var(--bg-dark); color: var(--ink-on-dark);
  padding: clamp(70px, 10vh, 110px) 0;
  border-top: 1px solid var(--rule-dark);
  position: relative;
  overflow: hidden;
}
.risks-deep::before{
  content: "";
  position: absolute;
  top: 30%; right: -250px;
  width: 600px; height: 600px;
  background: radial-gradient(circle at center, rgba(196, 53, 28, 0.14) 0%, transparent 65%);
  pointer-events: none;
}
.risks-deep .wrap{ position: relative; }

.risk-faq{
  background: var(--bg-cream);
  padding: clamp(70px, 10vh, 110px) 0;
}
.risk-faq .section-head{ border-bottom: 1px solid var(--rule-cream); }
.faq-list{ margin-top: 40px; }
.faq-item{
  border-bottom: 1px solid var(--rule-cream);
  padding: 28px 0;
}
.faq-item:first-child{ border-top: 1px solid var(--rule-cream); }
.faq-item summary{
  cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  list-style: none;
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: -0.018em;
  font-weight: 450;
  color: var(--ink);
  padding-right: 8px;
}
.faq-item summary::-webkit-details-marker{ display: none; }
.faq-item summary::after{
  content: "+";
  font-family: var(--mono);
  font-size: 22px;
  font-weight: 400;
  color: var(--brick);
  transition: transform .25s ease;
  flex-shrink: 0;
}
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item .answer{
  margin-top: 18px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink-2);
  max-width: 70ch;
}
.faq-item .answer p{ margin-bottom: 12px; }
.faq-item .answer p:last-child{ margin-bottom: 0; }

/* ============== HOMEPAGE FAMILY BAND (replaces empty about right column) ============== */
.home-family{
  background: var(--bg-cream);
  padding: clamp(70px, 10vh, 110px) 0;
  border-top: 1px solid var(--rule-cream);
}

/* ============== CTA BAND — site-wide reusable ============== */
.cta-band{
  background: var(--bg-dark);
  color: var(--ink-on-dark);
  padding: clamp(70px, 10vh, 110px) 0;
  border-top: 1px solid var(--rule-dark);
  border-bottom: 1px solid var(--rule-dark);
  position: relative;
  overflow: hidden;
}
.cta-band::before{
  content: "";
  position: absolute;
  top: -150px; left: -150px;
  width: 500px; height: 500px;
  background: radial-gradient(circle at center, var(--ember-glow) 0%, transparent 65%);
  pointer-events: none;
}
.cta-band .wrap{ position: relative; }
.cta-band-grid{
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 60px;
  align-items: end;
}
.cta-band h2{
  font-family: var(--serif);
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.028em;
  font-weight: 400;
  color: var(--ink-on-dark);
  margin-bottom: 0;
  max-width: 24ch;
  font-variation-settings: 'opsz' 144, 'SOFT' 25;
}
.cta-band h2 em{ color: var(--ember); }
.cta-band-actions{
  display: flex; flex-direction: column; gap: 14px;
  align-items: stretch;
  min-width: 240px;
}
@media (max-width: 720px){
  .cta-band-grid{ grid-template-columns: 1fr; gap: 32px; }
}

/* ============== 404 ============== */
.error-page{
  background: var(--bg-dark);
  color: var(--ink-on-dark);
  min-height: 70vh;
  display: flex; align-items: center;
  position: relative; overflow: hidden;
  padding: 80px 0;
}
.error-page::before{
  content: "";
  position: absolute;
  top: 50%; right: 0;
  width: 600px; height: 600px;
  transform: translateY(-50%);
  background: radial-gradient(circle at center, var(--ember-glow) 0%, transparent 65%);
  pointer-events: none;
}
.error-page-content{
  position: relative;
  max-width: 720px;
}
.error-page .meta{
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ember);
  margin-bottom: 28px;
}
.error-page h1{
  font-family: var(--serif);
  font-size: clamp(60px, 9vw, 130px);
  line-height: 0.94;
  letter-spacing: -0.038em;
  font-weight: 320;
  color: var(--ink-on-dark);
  margin-bottom: 28px;
  font-variation-settings: 'opsz' 144;
}
.error-page h1 em{ color: var(--ember); font-style: italic; }
.error-page p{
  font-family: var(--serif);
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.45;
  font-weight: 380;
  color: var(--ink-on-dark);
  margin-bottom: 32px;
  font-style: italic;
  max-width: 50ch;
  font-variation-settings: 'opsz' 24;
}
.error-page .actions{
  display: flex; gap: 14px; flex-wrap: wrap;
}

/* Active nav item — but not for the CTA button (would be invisible on its ember bg) */
.nav-links a.is-active:not(.nav-cta){ color: var(--ember); }
