/* ============================================================
   Prescott Slab Leak Repair — Design System
   Navy #0B2545 + Orange #F97316 | Plus Jakarta Sans + Inter
   ============================================================ */
:root{
  --p-50:#EEF4FB; --p-100:#D9E6F5; --p-200:#B3CDEB; --p-300:#84ABDB; --p-400:#4E82C2;
  --p-500:#2C63A6; --p-600:#1D4E89; --p-700:#143C6C; --p-800:#0E2C50; --p-900:#0B2545; --p-950:#071A33;
  --accent:#F97316; --accent-dark:#C2570C; --accent-soft:#FFF3E8;
  --ink:#16283F; --muted:#4A5D75; --line:#DCE5EF; --bg:#FFFFFF; --offwhite:#F7F4EE;
  --dark:#0B2545; --radius:20px;
  --shadow-sm:0 1px 2px rgba(11,37,69,.06),0 4px 14px rgba(11,37,69,.07);
  --shadow-md:0 2px 4px rgba(11,37,69,.06),0 12px 32px rgba(11,37,69,.12);
  --shadow-lg:0 4px 8px rgba(11,37,69,.08),0 24px 56px rgba(11,37,69,.18);
  --font-h:"Plus Jakarta Sans",system-ui,sans-serif;
  --font-b:"Inter",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:var(--font-b); color:var(--ink); background:var(--bg);
  font-size:1.0625rem; line-height:1.7; -webkit-font-smoothing:antialiased;
  padding-bottom:0; overflow-x:hidden; overflow-x:clip;
}
img,svg,video,iframe{max-width:100%; height:auto}
h1,h2,h3,h4{overflow-wrap:break-word}
.prose p,.prose li,.faq-body,.disclaimer p{overflow-wrap:break-word}
a{color:var(--p-600); text-decoration-color:rgba(249,115,22,.55); text-underline-offset:3px}
a:hover{color:var(--p-800)}
:focus-visible{outline:3px solid var(--accent); outline-offset:2px; border-radius:4px}
::selection{background:var(--p-200)}
.skip-link{position:absolute; left:-999px; top:0; background:var(--p-900); color:#fff; padding:.75rem 1.25rem; z-index:200; border-radius:0 0 12px 0}
.skip-link:focus{left:0; color:#fff}
.container{width:min(1200px,100% - 2.5rem); margin-inline:auto}
h1,h2,h3,h4{font-family:var(--font-h); color:var(--p-900); letter-spacing:-0.02em; line-height:1.15; margin:0 0 .6em}
h1{font-size:clamp(2.5rem,5.2vw,4.3rem); font-weight:800}
h2{font-size:clamp(2rem,3.6vw,2.9rem); font-weight:800}
h3{font-size:clamp(1.25rem,2vw,1.5rem); font-weight:700}
p{margin:0 0 1.1em}
.lead{font-size:1.1875rem; color:var(--muted); max-width:68ch}
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-h);
  font-size:.78rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-dark);
  margin:0 0 .9rem;
}
.eyebrow::before{content:""; width:26px; height:2px; background:var(--accent); border-radius:2px}
.section{padding:64px 0; position:relative}
.section--tint{background:var(--p-50)}
.section--offwhite{background:var(--offwhite)}
.section--dark{background:linear-gradient(160deg,var(--p-950),var(--p-900) 55%,var(--p-800)); color:#DCE7F5}
.section--dark h2,.section--dark h3{color:#fff}
.section--dark a{color:#FFD9B8}
.section-head{max-width:760px; margin-bottom:2.5rem}
.section-head .lead{margin-bottom:0}
@media (min-width:1024px){ .section{padding:112px 0} }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--font-h); font-weight:700; font-size:1rem; line-height:1.2;
  padding:.95rem 1.7rem; border-radius:999px; border:2px solid transparent;
  text-decoration:none; cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  min-height:48px;
}
.btn svg{width:19px; height:19px; flex:none}
.btn--primary{background:var(--accent); color:#fff; box-shadow:0 8px 22px rgba(249,115,22,.38),0 2px 6px rgba(249,115,22,.3)}
.btn--primary:hover{background:var(--accent-dark); color:#fff; transform:translateY(-2px)}
.btn--outline{border-color:var(--p-900); color:var(--p-900); background:transparent}
.btn--outline:hover{background:var(--p-900); color:#fff}
.btn--light{background:#fff; color:var(--p-900)}
.btn--light:hover{background:var(--p-100); color:var(--p-900)}
.btn--ghost-light{border-color:rgba(255,255,255,.55); color:#fff; background:transparent}
.btn--ghost-light:hover{border-color:#fff; color:#fff; background:rgba(255,255,255,.08)}
.btn--lg{font-size:1.125rem; padding:1.1rem 2.1rem}
@media (max-width:639px){ .btn{width:100%} .btn--inline{width:auto} }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; gap:1.25rem; padding:.7rem 0}
.brand{display:flex; align-items:center; gap:.7rem; text-decoration:none; flex:none}
.brand img,.brand>svg{width:46px; height:46px; border-radius:12px; flex:none}
.brand-text{font-family:var(--font-h); line-height:1.12; color:var(--p-900)}
.brand-text strong{display:block; font-size:1.02rem; font-weight:800; letter-spacing:-0.01em}
.brand-text span{display:block; font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-dark)}
.main-nav{margin-left:auto}
.nav-list{display:flex; gap:.25rem; list-style:none; margin:0; padding:0}
.nav-list a{
  display:block; padding:.55rem .8rem; border-radius:10px; text-decoration:none;
  color:var(--ink); font-weight:600; font-size:.95rem;
}
.nav-list a:hover{background:var(--p-50); color:var(--p-900)}
.header-cta{margin-left:.75rem; flex:none}
.header-cta .btn{padding:.7rem 1.25rem; min-height:44px}
.nav-toggle{
  display:none; margin-left:auto; background:var(--p-900); color:#fff; border:0; border-radius:12px;
  width:46px; height:46px; align-items:center; justify-content:center; cursor:pointer; flex:none;
}
.nav-toggle svg{width:22px; height:22px}
@media (max-width:1023px){
  .nav-toggle{display:inline-flex}
  .header-cta{display:none}
  .main-nav{
    position:fixed; inset:0; background:var(--p-950); z-index:99; padding:6.5rem 1.5rem 2rem;
    transform:translateY(-102%); transition:transform .3s ease; overflow:auto;
  }
  .main-nav.open{transform:translateY(0)}
  .nav-list{flex-direction:column; gap:.4rem}
  .nav-list a{color:#fff; font-size:1.2rem; font-family:var(--font-h); padding:.85rem 1rem; border:1px solid rgba(255,255,255,.14); border-radius:14px}
  .nav-list a:hover{background:rgba(255,255,255,.08); color:#fff}
  .nav-close{position:absolute; top:1.1rem; right:1.25rem}
}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden; color:#E8F0FA;
  background:
    radial-gradient(52rem 30rem at 88% -10%, rgba(249,115,22,.28), transparent 60%),
    radial-gradient(44rem 30rem at -8% 110%, rgba(78,130,194,.4), transparent 60%),
    linear-gradient(150deg, var(--p-950) 0%, var(--p-900) 52%, var(--p-700) 115%);
}
.hero::after{
  content:""; position:absolute; inset:0; 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='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.32'/%3E%3C/svg%3E");
}
.hero-inner{position:relative; z-index:1; padding:4.2rem 0 5rem}
.hero-grid{display:grid; gap:3rem; align-items:center}
.hero h1{color:#fff; margin-bottom:1.1rem}
.hero h1 .hl{
  background:linear-gradient(transparent 62%, rgba(249,115,22,.85) 62%, rgba(249,115,22,.85) 94%, transparent 94%);
  padding:0 .08em; border-radius:2px; white-space:nowrap;
}
.hero-sub{font-size:1.16rem; color:#C9D9EE; max-width:56ch; margin-bottom:1.8rem}
.hero-cta-row{display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:1.1rem}
.hero-note{font-size:.86rem; color:#9FB8D8; max-width:60ch; margin:0}
.trust-chips{display:flex; flex-wrap:wrap; gap:.55rem; list-style:none; padding:0; margin:1.6rem 0 0}
.chip{
  display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .85rem; border-radius:999px;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.2);
  font-size:.85rem; font-weight:600; color:#EAF2FD;
}
.chip svg{width:15px; height:15px; color:var(--accent)}
.hero-visual{
  position:relative; border-radius:24px; overflow:hidden; isolation:isolate;
  box-shadow:0 30px 60px rgba(3,14,30,.45), 0 4px 14px rgba(3,14,30,.3);
}
.hero-scene{display:block; width:100%; height:auto}
.hero-scene .leak-glow{transform-box:fill-box; transform-origin:center; animation:leakPulse 2.8s ease-in-out infinite}
@keyframes leakPulse{0%,100%{opacity:.6; transform:scale(1)}50%{opacity:1; transform:scale(1.12)}}
.glass-card{
  position:absolute; z-index:2; display:flex; gap:.7rem; align-items:flex-start; max-width:min(260px,74%);
  background:#fff; border:1px solid rgba(11,37,69,.12); border-radius:16px;
  padding:.9rem 1.05rem;
  color:#0B2545; box-shadow:0 18px 40px rgba(3,14,30,.38);
}
.glass-card strong{display:block; font-family:var(--font-h); font-size:1rem; line-height:1.3; color:#0B2545}
.glass-card span{font-size:.88rem; color:#3D5875; line-height:1.5; display:block}
.glass-card .icon-box{flex:none}
.glass-card--a{top:1rem; left:1rem}
.glass-card--b{bottom:1rem; right:1rem}
@media (max-width:639px){
  .glass-card{max-width:70%; padding:.7rem .8rem; gap:.55rem; border-radius:14px}
  .glass-card strong{font-size:.92rem}
  .glass-card span{font-size:.82rem; line-height:1.45}
  .glass-card .icon-box{width:36px; height:36px; border-radius:10px}
  .glass-card .icon-box svg{width:18px; height:18px}
  .glass-card--a{top:.65rem; left:.65rem}
  .glass-card--b{bottom:.65rem; right:.65rem}
}
@media (min-width:1024px){
  .hero-inner{padding:5.5rem 0 6.5rem}
  .hero-grid{grid-template-columns:1.05fr .95fr}
}

/* ---------- Cards, bento, icons ---------- */
.icon-box{
  display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px;
  border-radius:13px; background:var(--p-50); color:var(--p-700); flex:none;
}
.icon-box svg{width:23px; height:23px}
.icon-box--accent{background:var(--accent-soft); color:var(--accent-dark)}
.icon-box--glass{background:linear-gradient(150deg,#FB923C,var(--accent)); color:#fff; box-shadow:0 4px 12px rgba(249,115,22,.4)}
.bento{display:grid; gap:1.1rem; grid-template-columns:1fr}
.bento-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:1.7rem; box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease;
  display:flex; flex-direction:column; gap:.65rem;
}
.bento-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.bento-card h3{margin:0}
.bento-card p{margin:0; color:var(--muted); font-size:.99rem}
.bento-card--feature{background:linear-gradient(150deg,var(--p-900),var(--p-700)); color:#DCE7F5; border-color:var(--p-800)}
.bento-card--feature h3{color:#fff}
.bento-card--feature p{color:#B9CFEC}
.bento-card--feature .icon-box{background:rgba(255,255,255,.14); color:#fff}
.card-link{
  margin-top:auto; font-family:var(--font-h); font-weight:700; font-size:.95rem;
  text-decoration:none; display:inline-flex; gap:.4rem; align-items:center; color:var(--p-700);
}
.card-link svg{width:16px; height:16px; transition:transform .18s ease}
.card-link:hover svg{transform:translateX(3px)}
.bento-card--feature .card-link{color:#FFB37E}
@media (min-width:640px){ .bento{grid-template-columns:1fr 1fr} }
@media (min-width:1024px){
  .bento{grid-template-columns:repeat(4,1fr)}
  .bento-card--feature{grid-column:span 2; grid-row:span 2}
  .bento-card--wide{grid-column:span 2}
}

/* ---------- Symptom checker ---------- */
.symptom-grid{display:grid; gap:1rem; grid-template-columns:1fr}
.symptom-card{
  display:flex; gap:1rem; align-items:flex-start; background:#fff; border:1px solid var(--line);
  border-left:5px solid var(--accent); border-radius:16px; padding:1.25rem 1.35rem; box-shadow:var(--shadow-sm);
}
.symptom-card h3{font-size:1.08rem; margin-bottom:.25rem}
.symptom-card p{margin:0; font-size:.95rem; color:var(--muted)}
@media (min-width:768px){ .symptom-grid{grid-template-columns:1fr 1fr} }
@media (min-width:1024px){ .symptom-grid{grid-template-columns:repeat(3,1fr)} }

/* ---------- Prose / guide ---------- */
.prose{max-width:78ch}
.prose h2{margin-top:2.4rem}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:1.8rem}
.prose ul,.prose ol{padding-left:1.3rem; margin:0 0 1.2em}
.prose li{margin-bottom:.45em}
.prose li::marker{color:var(--accent-dark); font-weight:700}
.callout{
  border-radius:16px; padding:1.3rem 1.5rem; margin:1.6rem 0; display:flex; gap:1rem; align-items:flex-start;
  border:1px solid var(--line); background:#fff;
}
.callout p:last-child{margin-bottom:0}
.callout strong.label{
  display:block; font-family:var(--font-h); text-transform:uppercase; letter-spacing:.1em;
  font-size:.74rem; margin-bottom:.3rem;
}
.callout--tip{border-left:6px solid var(--p-500); background:var(--p-50)}
.callout--tip .label{color:var(--p-700)}
.callout--warn{border-left:6px solid var(--accent); background:var(--accent-soft)}
.callout--warn .label{color:var(--accent-dark)}
.callout .icon-box{width:40px; height:40px; border-radius:11px}
.callout .icon-box svg{width:20px; height:20px}

/* ---------- Process steps ---------- */
.steps{list-style:none; margin:0; padding:0; display:grid; gap:1.6rem; counter-reset:step}
.step{display:grid; grid-template-columns:auto 1fr; gap:1.2rem; align-items:start; position:relative}
.step-num{
  font-family:var(--font-h); font-size:3.4rem; font-weight:800; line-height:.95;
  color:transparent; -webkit-text-stroke:2px var(--p-300); min-width:4.6rem;
}
.step h3{margin:.35rem 0 .35rem}
.step p{margin:0; color:var(--muted)}
@media (min-width:900px){
  .steps{grid-template-columns:1fr 1fr; gap:2.2rem 3rem}
}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-sm); margin:1.4rem 0}
table{border-collapse:collapse; width:100%; min-width:560px; background:#fff; font-size:.97rem}
caption{text-align:left; font-family:var(--font-h); font-weight:700; color:var(--p-900); padding:1rem 1.2rem .2rem}
th,td{padding:.85rem 1.2rem; text-align:left; vertical-align:top}
thead th{background:var(--p-900); color:#fff; font-family:var(--font-h); font-size:.88rem; letter-spacing:.02em}
tbody tr:nth-child(even){background:var(--p-50)}
tbody th{font-weight:700; color:var(--p-900)}

/* ---------- Areas ---------- */
.areas-grid{display:grid; gap:1.1rem; grid-template-columns:1fr}
.area-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem;
  box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease;
}
.area-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.area-card h3{margin-bottom:.4rem}
.area-card p{color:var(--muted); font-size:.97rem}
@media (min-width:768px){ .areas-grid{grid-template-columns:1fr 1fr} }
@media (min-width:1024px){ .areas-grid{grid-template-columns:repeat(3,1fr)} }

/* ---------- CTA band ---------- */
.cta-band{
  position:relative; overflow:hidden; border-radius:28px; padding:3rem 1.8rem; text-align:center;
  background:
    radial-gradient(30rem 16rem at 50% -20%, rgba(249,115,22,.4), transparent 65%),
    linear-gradient(150deg, var(--p-950), var(--p-900) 60%, var(--p-700));
  color:#DCE7F5; box-shadow:var(--shadow-lg);
}
.cta-band h2{color:#fff; margin-bottom:.5rem}
.cta-band p{max-width:56ch; margin-inline:auto; color:#B9CFEC}
.cta-phone{
  display:block; font-family:var(--font-h); font-weight:800; letter-spacing:-0.02em;
  font-size:clamp(2rem,6vw,3.4rem); color:#fff; text-decoration:none; margin:.6rem 0 1.4rem; line-height:1.1;
}
.cta-phone:hover{color:#FFD9B8}
.cta-band .btn{margin-inline:auto}

/* ---------- FAQ ---------- */
.faq-list{display:grid; gap:.8rem; max-width:860px}
.faq-item{background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-sm); overflow:hidden}
.faq-item summary{
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:1.15rem 1.4rem; font-family:var(--font-h); font-weight:700; color:var(--p-900); font-size:1.03rem;
  min-height:52px;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+"; font-size:1.5rem; line-height:1; color:var(--accent-dark); font-weight:700;
  transition:transform .25s ease; flex:none;
}
.faq-item[open ] summary::after{transform:rotate(45deg)}
.faq-item .faq-body{padding:0 1.4rem 1.25rem; color:var(--muted)}
.faq-item .faq-body p:last-child{margin-bottom:0}

/* ---------- Inner page hero / breadcrumbs ---------- */
.page-hero{
  position:relative; overflow:hidden; color:#E8F0FA;
  background:
    radial-gradient(40rem 20rem at 90% -30%, rgba(249,115,22,.25), transparent 60%),
    linear-gradient(150deg, var(--p-950), var(--p-900) 55%, var(--p-700));
}
.page-hero::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.4; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.32'/%3E%3C/svg%3E");
}
.page-hero-inner{position:relative; z-index:1; padding:3.4rem 0 3.8rem}
.page-hero h1{color:#fff; font-size:clamp(2.1rem,4.4vw,3.3rem); max-width:20ch}
.page-hero .lead{color:#C9D9EE}
.breadcrumbs{font-size:.88rem; margin-bottom:1.2rem}
.breadcrumbs ol{display:flex; flex-wrap:wrap; gap:.45rem; list-style:none; margin:0; padding:0}
.breadcrumbs li{display:inline-flex; gap:.45rem; align-items:center; color:#9FB8D8}
.breadcrumbs li+li::before{content:"/"; color:#5F7FA6}
.breadcrumbs a{color:#DCE7F5; text-decoration:none}
.breadcrumbs a:hover{text-decoration:underline}
.breadcrumbs [aria-current]{color:#fff; font-weight:600}

/* ---------- Sidebar layout (service pages) ---------- */
.layout-sidebar{display:grid; gap:2.5rem}
.sidebar{display:grid; gap:1.2rem; align-content:start}
.toc{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem 1.5rem; box-shadow:var(--shadow-sm)}
.toc h2{font-size:1rem; letter-spacing:.06em; text-transform:uppercase; margin-bottom:.8rem}
.toc ol{margin:0; padding-left:1.15rem; display:grid; gap:.45rem; font-size:.95rem}
.toc a{text-decoration:none; font-weight:600}
.toc a:hover{text-decoration:underline}
.call-card{
  background:linear-gradient(155deg,var(--p-900),var(--p-700)); color:#DCE7F5; border-radius:var(--radius);
  padding:1.6rem; box-shadow:var(--shadow-md);
}
.call-card h2{color:#fff; font-size:1.3rem}
.call-card p{font-size:.95rem; color:#B9CFEC}
.call-card .btn{width:100%}
.call-card .call-num{display:block; font-family:var(--font-h); font-weight:800; font-size:1.35rem; color:#fff; text-decoration:none; margin:.4rem 0 1rem}
@media (min-width:1024px){
  .layout-sidebar{grid-template-columns:minmax(0,1fr) 320px}
  .sidebar{position:sticky; top:96px}
}

/* ---------- Related / link cards ---------- */
.related-grid{display:grid; gap:1.1rem; grid-template-columns:1fr; margin-top:1.5rem}
.related-card{
  background:var(--offwhite); border:1px solid var(--line); border-radius:16px; padding:1.35rem 1.5rem;
  text-decoration:none; display:block; transition:transform .18s ease, box-shadow .18s ease;
}
.related-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-md)}
.related-card strong{font-family:var(--font-h); color:var(--p-900); display:block; margin-bottom:.3rem; font-size:1.05rem}
.related-card span{color:var(--muted); font-size:.94rem}
@media (min-width:768px){ .related-grid{grid-template-columns:1fr 1fr} }

/* ---------- Split sections ---------- */
.split{display:grid; gap:2.2rem; align-items:center}
.split-art{display:flex; justify-content:center}
.split-art svg{width:100%; max-width:440px}
@media (min-width:1024px){ .split{grid-template-columns:1fr 1fr} .split--flip .split-art{order:-1} }

/* ---------- Checklist ---------- */
.checklist{list-style:none; margin:0 0 1.2em; padding:0; display:grid; gap:.6rem}
.checklist li{display:flex; gap:.7rem; align-items:flex-start}
.checklist svg{width:21px; height:21px; flex:none; color:var(--accent-dark); margin-top:.28rem}

/* ---------- Contact / forms ---------- */
.contact-grid{display:grid; gap:1.4rem; grid-template-columns:1fr}
.info-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.7rem; box-shadow:var(--shadow-sm)}
.info-card h3{margin-bottom:.5rem}
.form-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.7rem; box-shadow:var(--shadow-sm)}
.field{margin-bottom:1.05rem}
.field label{display:block; font-family:var(--font-h); font-weight:700; font-size:.92rem; color:var(--p-900); margin-bottom:.35rem}
.field input,.field textarea,.field select{
  width:100%; padding:.8rem 1rem; border:1.5px solid var(--line); border-radius:12px;
  font:inherit; font-size:1rem; color:var(--ink); background:#fff;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--p-500); outline:3px solid var(--p-100)}
.form-note{font-size:.87rem; color:var(--muted)}
@media (min-width:900px){ .contact-grid{grid-template-columns:1fr 1fr} }

/* ---------- Footer ---------- */
.site-footer{background:var(--p-950); color:#B9CFEC; margin-top:0}
.footer-grid{display:grid; gap:2.2rem; padding:3.6rem 0 2.4rem; grid-template-columns:1fr}
.footer-col h3{color:#fff; font-size:1rem; letter-spacing:.05em; text-transform:uppercase; margin-bottom:1rem}
.footer-col ul{list-style:none; margin:0; padding:0; display:grid; gap:.55rem; font-size:.95rem}
.footer-col a{color:#B9CFEC; text-decoration:none}
.footer-col a:hover{color:#fff; text-decoration:underline}
.footer-brand p{font-size:.95rem; max-width:34ch}
.footer-brand .brand-text{color:#fff}
.footer-brand .brand-text span{color:#FFB37E}
.visit-block{font-size:.95rem; line-height:1.65}
.visit-block a{color:#fff; font-weight:700}
.disclaimer{
  border-top:1px solid rgba(255,255,255,.14); padding:1.4rem 0 2rem; font-size:.83rem; color:#8FA9C9; line-height:1.65;
}
.disclaimer p{margin:0 0 .6em; max-width:95ch}
.disclaimer p:last-child{margin-bottom:0}
@media (min-width:768px){ .footer-grid{grid-template-columns:1fr 1fr} }
@media (min-width:1024px){ .footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr} }

/* ---------- Sticky mobile call bar ---------- */
.call-bar{
  display:none; position:fixed; left:0; right:0; bottom:0; z-index:90;
  background:var(--p-950); padding:.65rem .9rem calc(.65rem + env(safe-area-inset-bottom));
  box-shadow:0 -6px 24px rgba(3,14,30,.35);
}
.call-bar a{
  display:flex; align-items:center; justify-content:center; gap:.55rem; background:var(--accent); color:#fff;
  font-family:var(--font-h); font-weight:800; font-size:1.05rem; text-decoration:none;
  border-radius:999px; padding:.85rem 1rem; min-height:50px;
}
.call-bar svg{width:20px; height:20px}
@media (max-width:1023px){
  .call-bar{display:block}
  body{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
}

/* ---------- Motion ---------- */
.fade-up{opacity:1}
.js .fade-up{opacity:0; transform:translateY(22px); transition:opacity .65s ease, transform .65s ease}
.js .fade-up.in{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .js .fade-up{opacity:1; transform:none; transition:none}
  .bento-card:hover,.area-card:hover,.related-card:hover,.btn--primary:hover{transform:none}
  .hero-scene .leak-glow{animation:none}
}

/* ---------- Angled divider ---------- */
.divider{height:52px; margin-bottom:-1px}
.divider svg{display:block; width:100%; height:100%}

/* ---------- Addenda: light eyebrow, mobile sidebar order ---------- */
.eyebrow--light{color:#FFB37E}
@media (max-width:1023px){
  .layout-sidebar{display:flex; flex-direction:column}
  .layout-sidebar .sidebar{order:-1}
  .layout-sidebar .sidebar .call-card{display:none}
  .layout-sidebar .prose{order:1}
}
.signs-grid{display:grid; gap:.8rem; grid-template-columns:1fr; margin:1.2rem 0 1.6rem}
.sign-card{background:var(--offwhite); border:1px solid var(--line); border-radius:14px; padding:1.05rem 1.2rem; display:flex; gap:.85rem; align-items:flex-start}
.sign-card svg{width:22px; height:22px; flex:none; color:var(--accent-dark); margin-top:.2rem}
.sign-card strong{display:block; font-family:var(--font-h); color:var(--p-900); font-size:.99rem}
.sign-card span{font-size:.93rem; color:var(--muted)}
@media (min-width:768px){ .signs-grid{grid-template-columns:1fr 1fr} }

/* ---------- Mobile refinements (2026-10-22 pass) ---------- */
/* Larger tap targets for secondary links on touch layouts */
@media (max-width:1023px){
  .breadcrumbs a{display:inline-block; padding:.55rem 0}
  .toc a{display:block; padding:.45rem 0}
  .footer-col ul{gap:.3rem}
  .footer-col a{display:inline-block; padding:.42rem 0}
  .card-link{padding:.5rem 0}
  .related-card{padding:1.25rem 1.3rem}
}
/* Small phones (<=639px): tighten rhythm, protect the smallest viewports */
@media (max-width:639px){
  .section{padding:52px 0}
  .hero-inner{padding:3.2rem 0 3.8rem}
  .hero-sub{font-size:1.08rem}
  h1{font-size:clamp(2.15rem,10.5vw,2.5rem)}
  .page-hero-inner{padding:2.8rem 0 3.1rem}
  .bento-card,.area-card,.info-card,.form-card,.toc{padding:1.3rem}
  .callout{padding:1.15rem 1.2rem}
  .cta-band{padding:2.4rem 1.15rem; border-radius:22px}
  .cta-phone{font-size:clamp(1.7rem,8.6vw,2rem); overflow-wrap:anywhere}
  .step{gap:.9rem}
  .step-num{font-size:2.6rem; min-width:3.4rem}
  .faq-item summary{padding:1rem 1.1rem; font-size:1rem}
  .faq-item .faq-body{padding:0 1.1rem 1.1rem}
  th,td{padding:.75rem .9rem}
  .symptom-card,.sign-card{padding:1.1rem 1.15rem}
  .footer-grid{padding:2.8rem 0 2rem}
}
/* Very small phones: keep the brand + menu toggle uncrowded */
@media (max-width:420px){
  .header-inner{gap:.8rem}
  .brand img,.brand>svg{width:40px; height:40px}
  .brand-text strong{font-size:.92rem}
  .brand-text span{font-size:.62rem}
  .chip{font-size:.8rem; padding:.42rem .75rem}
}
