@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600&family=Poppins:wght@400;500;600;700&display=swap');
:root{
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 24px;
  --s6: 32px;
  --s7: 48px;
  --s8: 64px;
  --s9: 96px;
  --brand: #A61826;
  --brand-deep: #8A0E0E;
  --brand-mid: #8A0E0E;
  --brand-wash: #f7e7e9;
  --brand-soft: #efc9cd;
  --brand-line: rgba(255,255,255,0.18);
  --accent: #A61826;
  --accent-deep: #8A0E0E;
  --accent2: #2D588D;
  --accent3: #f6c3c8;
  --accent-ink: #2D588D;
  --accent-ink2: #ffd9dd;
  --accent-ink3: #ffffff;
  --tint1: #f5f5f5;
  --tint2: #ededed;
  --tint3: #1a1a1a;
  --tint4: #222222;
  --paper: #ffffff;
  --paper2: #f3f6fa;
  --paper3: #1f3f66;
  --surface: #2D588D;
  --card: #ffffff;
  --field: #f5f5f5;
  --ink: #1b2430;
  --ink2: #3d4652;
  --ink3: #5d6673;
  --ink4: #8a8a8a;
  --line: #e2e2e2;
  --on-dark: #ffffff;
  --on-dark2: #e3eaf3;
  --on-dark3: #b9c7da;
  --focus: #ffd9dd;
  --num1: #A61826;
  --num2: #2D588D;
  --num3: #ffffff;
  --overlay: rgba(0,0,0,0.5);
  --font-display: Oswald, 'Arial Narrow', Arial, sans-serif;
  --font-ui: Poppins, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: ui-monospace, Menlo, Consolas, monospace;
  --fw-display: 600;
  --fs-mega: clamp(48px, 8vw, 96px);
  --fs-hero: clamp(30px, 5.4vw, 64px);
  --fs-h1: clamp(30px, 4.6vw, 52px);
  --fs-h2: clamp(26px, 3.4vw, 40px);
  --fs-h3: clamp(18px, 1.8vw, 21px);
  --fs-lead: clamp(17px, 1.7vw, 19px);
  --fs-body: 16px;
  --fs-sm: 15px;
  --fs-xs: 13px;
  --fs-input: 16px;
  --lh-tight: 1.15;
  --lh-body: 1.7;
  --ls-display: 0;
  --ls-eyebrow: 0.22em;
  --ls-mono: 0.06em;
  --ls-btn: 0.02em;
  --s-section: clamp(56px, 9vw, 120px);
  --pad-x: clamp(20px, 4vw, 48px);
  --indent: 0px;
  --rail: 0px;
  --measure: 1200px;
  --measure-text: 68ch;
  --r-sm: 10px;
  --r-md: 10px;
  --r-lg: 12px;
  --r-pill: 999px;
  --sh1: 0 2px 10px rgba(0, 0, 0, 0.08);
  --sh2: 0 20px 40px -16px rgba(0, 0, 0, 0.35);
  --sh-btn: none;
  --rule: 1px solid var(--line);
  --rule-strong: 1px solid var(--ink);
  --tap: 44px;
  --head-h: 72px;
  --slant: clamp(40px, 6vw, 90px);
  --on-brand: #ffffff;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--head-h) + var(--s3))}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto}
a{color:var(--accent-ink);text-underline-offset:4px}
a:hover{color:var(--brand)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.dark a{color:var(--accent-ink2)}
.dark :focus-visible{outline-color:var(--focus)}
summary::-webkit-details-marker{display:none}
details[open] .fq{transform:rotate(45deg)}
figure{margin:0}
figure:not(:has(img)){display:none}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--brand);color:var(--on-brand);padding:var(--s3) var(--s4)}
.skip:focus{left:0}
.dark{background:var(--surface);color:var(--on-dark)}
.wrap{max-width:var(--measure);margin:0 auto;padding:var(--s-section) var(--pad-x)}
.wrap-narrow{max-width:880px;margin:0 auto;padding:var(--s-section) var(--pad-x)}
.center{text-align:center}

/* header: fixed and transparent over the dark top section, solid once scrolled */
.hdr{position:fixed;left:0;right:0;top:0;z-index:60;background:var(--surface);transition:background .25s}
.js .hdr{background:transparent}
.js.scrolled .hdr,.hdr:has(details[open]){background:var(--surface)}
.hdr-in{max-width:var(--measure);margin:0 auto;padding:var(--s3) var(--pad-x);min-height:var(--head-h);display:flex;align-items:center;gap:var(--s4) var(--s6)}
.logo{display:flex;align-items:center;min-height:var(--tap);margin-right:auto;min-width:0;text-decoration:none}
.logo img{height:clamp(44px, 6vw, 64px);width:auto;max-width:62vw;display:block}
.logo span{font-weight:700;font-size:var(--fs-lead);color:var(--on-dark);letter-spacing:var(--ls-mono);text-transform:uppercase}
.dnav{display:flex;align-items:center;gap:var(--s5)}
.dnav a{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-btn);text-transform:uppercase;text-decoration:none;color:var(--on-dark)}
.dnav a:hover,.dnav a[aria-current]{color:var(--accent-ink2)}
.dnav a.dphone{padding:0 var(--s5);background:var(--brand);color:var(--on-brand);border-radius:var(--r-sm);font-weight:700}
.dnav a.dphone:hover{background:var(--brand-mid);color:var(--on-dark)}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:5px;width:var(--tap);height:var(--tap);padding:var(--s3) 10px}
.mnav summary span{display:block;height:2px;background:var(--on-dark)}
.mnav nav{position:absolute;right:0;top:calc(100% + var(--s3));width:min(86vw, 320px);background:var(--surface);border:1px solid var(--brand-line);padding:var(--s2) var(--s5) var(--s5);box-shadow:var(--sh2)}
.mnav nav a{display:flex;align-items:center;min-height:var(--s7);border-bottom:1px solid var(--brand-line);font-size:var(--fs-sm);font-weight:600;letter-spacing:var(--ls-btn);text-transform:uppercase;text-decoration:none;color:var(--on-dark)}
.mnav nav a.mcall{justify-content:center;margin-top:var(--s4);border:0;background:var(--brand);color:var(--on-brand);font-size:var(--fs-xs);font-weight:700}

/* type */
.eyebrow{margin:0 0 var(--s4);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink3)}
.dark .eyebrow{color:var(--on-dark3)}
.h2{margin:0 0 var(--s5);font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-h2);line-height:var(--lh-tight);color:var(--ink);text-wrap:balance}
.dark .h2{color:var(--on-dark)}
.body{margin:0 0 var(--s4);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink2);max-width:var(--measure-text)}
.dark .body{color:var(--on-dark2)}
.center .body{margin-left:auto;margin-right:auto}
.lead{margin:0 0 var(--s4);font-size:var(--fs-lead);font-weight:500;line-height:1.6;color:var(--ink);max-width:var(--measure-text)}
.btn{display:inline-flex;align-items:center;gap:var(--s3);min-height:var(--tap);padding:var(--s4) var(--s6);border-radius:var(--r-sm);font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-btn);text-transform:uppercase;text-decoration:none;background:var(--brand);color:var(--on-brand);box-shadow:var(--sh-btn);border:0;cursor:pointer}
.btn:hover{background:var(--brand-mid);color:var(--on-dark)}
.btn-out{background:transparent;border:2px solid var(--on-dark);color:var(--on-dark);box-shadow:none}
.dark .btn-out{color:var(--on-dark)}
.btn-out:hover{background:var(--on-dark);color:var(--ink)}
.textlink{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-btn);text-transform:uppercase}
.underlink{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-btn);text-transform:uppercase;color:var(--on-dark);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}
.dark .underlink{color:var(--on-dark)}

/* home hero */
.hero{position:relative;min-height:min(92vh, 820px);display:flex;align-items:center;overflow:hidden}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .shade{position:absolute;inset:0;background:var(--overlay)}
.hero-in{position:relative;width:100%;max-width:var(--measure);margin:0 auto;padding:calc(var(--head-h) + var(--s8)) var(--pad-x) var(--s9);text-align:center}
.hero-in .eyebrow{margin-bottom:var(--s5);color:var(--on-dark2)}
.hero h1{margin:0 auto;max-width:20ch;font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-hero);line-height:var(--lh-tight);letter-spacing:var(--ls-display);text-transform:uppercase;text-wrap:balance}
.hero-cta{margin:var(--s7) 0 0}

/* about */
.split{display:grid;gap:clamp(40px, 6vw, 88px);grid-template-columns:repeat(auto-fit, minmax(min(100%, 340px), 1fr));align-items:center}
.pair{position:relative;padding-bottom:var(--s8);padding-right:var(--s8)}
.pair > img{width:100%;height:auto;aspect-ratio:9/10;object-fit:cover;display:block;box-shadow:var(--sh2);object-position:center top}
.overlap{position:absolute;right:0;bottom:0;width:46%;border:var(--s2) solid var(--paper);box-shadow:var(--sh2)}
.overlap img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block}
.cta-p{margin:var(--s6) 0 0}

/* slanted mission */
.slant{clip-path:polygon(0 var(--slant), 100% 0, 100% 100%, 0 100%);margin-top:calc(-1 * var(--slant));position:relative}
.slant-in{max-width:var(--measure);margin:0 auto;padding:calc(var(--s-section) + var(--slant)) var(--pad-x) var(--s-section)}
.stat{display:flex;align-items:baseline;gap:var(--s4);margin-top:var(--s6);padding-top:var(--s6);border-top:1px solid var(--brand-line)}
.stat b{font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-mega);line-height:.9;color:var(--on-dark)}
.stat span{font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--on-dark2);line-height:1.6}
.shot{width:100%;height:auto;aspect-ratio:750/667;object-fit:cover;display:block;box-shadow:var(--sh2)}

/* cards */
.intro{text-align:center;max-width:60ch;margin:0 auto var(--s7)}
.cards{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr))}
.cards-fill{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill, minmax(min(100%, 270px), 1fr))}
.card{display:flex;flex-direction:column;background:var(--card);border:var(--rule);box-shadow:var(--sh1)}
.card > img{width:100%;height:auto;aspect-ratio:16/11;object-fit:cover;display:block}
.card .svc-ico{display:flex;align-items:center;justify-content:center;aspect-ratio:16/11;background:var(--paper2);color:var(--ink)}
.card .svc-ico svg{width:56px;height:56px}
.card-b{padding:var(--s6) var(--s5);display:flex;flex-direction:column;gap:var(--s3);flex:1}
.card h3,.tcard h3{margin:0;font-size:var(--fs-h3);font-weight:700;line-height:1.3;color:var(--ink)}
.card h3 a,.tcard h3 a{color:inherit;text-decoration:none}
.card h3 a:hover,.tcard h3 a:hover{color:var(--accent-ink)}
.card p,.tcard p{margin:0;font-size:var(--fs-sm);line-height:1.7;color:var(--ink2)}
.card p.more,.tcard p.more{margin:auto 0 0;padding-top:var(--s3)}
.tcard{display:flex;flex-direction:column;gap:var(--s3);background:var(--card);border:var(--rule);padding:var(--s6) var(--s5);min-height:220px;box-shadow:var(--sh1)}
.tcard .eyebrow{margin:0}
.tcard p.sum{margin:auto 0 0;line-height:1.6}

/* testimonials */
.quotes{display:grid;gap:var(--s5);grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr))}
.quote{margin:0;padding:var(--s6) var(--s5);border:1px solid var(--brand-line);display:flex;flex-direction:column;gap:var(--s5)}
.quote .qm{font-family:var(--font-display);font-size:var(--fs-mega);line-height:.6;color:var(--accent-ink2)}
.quote blockquote{margin:0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--on-dark2)}
.quote figcaption{margin-top:auto;font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-btn);text-transform:uppercase;color:var(--on-dark)}

/* areas + lists */
.band-grey{background:var(--paper2)}
.split-top{display:grid;gap:clamp(28px, 5vw, 72px);grid-template-columns:repeat(auto-fit, minmax(min(100%, 320px), 1fr));align-items:start}
.towns{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2);grid-template-columns:repeat(auto-fill, minmax(min(100%, 200px), 1fr))}
.towns a{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);min-height:var(--s7);padding:var(--s3) var(--s4);border:var(--rule);background:var(--card);font-size:var(--fs-sm);font-weight:600;text-decoration:none;color:var(--ink)}
.towns a:hover{border-color:var(--ink)}
.towns small{font-size:var(--fs-xs);color:var(--ink3)}
.towns .ar{color:var(--accent)}
.head-row{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:end;justify-content:space-between;margin-bottom:var(--s7)}

/* faq */
.faq details{border-top:var(--rule)}
.faq details:last-child{border-bottom:var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:var(--s4);align-items:center;min-height:var(--tap);padding:var(--s4) 0}
.faq summary h3{margin:0;font-size:var(--fs-h3);font-weight:600;line-height:1.35;color:var(--ink)}
.fq{transition:transform .2s;color:var(--accent);font-size:var(--fs-h2);line-height:1}
.faq details p{margin:0 0 var(--s5);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink2);max-width:64ch}

/* get in touch */
.touch{background:var(--paper3);color:var(--on-dark)}
.touch-in{max-width:var(--measure);margin:0 auto;padding:clamp(48px, 7vw, 96px) var(--pad-x);display:flex;flex-wrap:wrap;gap:var(--s5);align-items:center;justify-content:space-between}
.touch h2{margin:0 0 var(--s3);font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-h1);line-height:var(--lh-tight)}
.touch p{margin:0;font-size:var(--fs-body);color:var(--on-dark2)}
.touch strong{color:var(--on-dark)}

/* instagram */
.ig-handle{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--fs-lead);font-weight:700;color:var(--ink);text-decoration:none}
.iggrid{list-style:none;margin:0;padding:0;display:grid;gap:var(--s1);grid-template-columns:repeat(4, minmax(0, 1fr))}
.iggrid a{display:block}
.iggrid img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* inner page head */
.phead-in{max-width:var(--measure);margin:0 auto;padding:calc(var(--head-h) + var(--s8)) var(--pad-x) var(--s8)}
.phead-in h1{margin:0;font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--ls-display);max-width:22ch;text-wrap:balance}
.phead-in .eyebrow{color:var(--on-dark3)}
.phead-lede{margin:var(--s5) 0 0;font-size:var(--fs-lead);line-height:1.6;color:var(--on-dark2);max-width:56ch}
.phead-cta{margin:var(--s5) 0 0}
.phead-cta a{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-btn);text-transform:uppercase;text-decoration:none;color:var(--on-dark);border-bottom:2px solid var(--accent-ink2)}
.crumbs{margin-top:var(--s6)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s2);margin:0;padding:0;font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--on-dark3)}
.crumbs a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--on-dark)}

/* content + sidebar */
.cgrid{max-width:var(--measure);margin:0 auto;padding:var(--s-section) var(--pad-x);display:grid;gap:clamp(32px, 5vw, 72px);grid-template-columns:repeat(auto-fit, minmax(min(100%, 300px), 1fr));align-items:start}
.cgrid.solo{grid-template-columns:minmax(0, 1fr);max-width:880px}
.span2{grid-column:span 2;min-width:0}
.solo .span2{grid-column:auto}
.prose > h2{margin:var(--s7) 0 var(--s4);font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-h2);line-height:var(--lh-tight);color:var(--ink);text-wrap:balance}
.prose > .eyebrow + h2{margin-top:0}
.prose > p{margin:0 0 var(--s4);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink2);max-width:var(--measure-text)}
.prose > p.first{font-size:var(--fs-lead);font-weight:500;line-height:1.6;color:var(--ink)}
.prose > figure{margin:var(--s6) 0}
.prose > figure img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;box-shadow:var(--sh2)}
.prose figcaption{margin:var(--s3) 0 0;font-size:var(--fs-sm);color:var(--ink3)}
.prose ul.legal-list{margin:0 0 var(--s4);padding-left:var(--s5);color:var(--ink2);line-height:var(--lh-body)}
.arrows{list-style:none;margin:0 0 var(--s5);padding:0;display:grid;gap:var(--s3);max-width:var(--measure-text)}
.arrows li{display:grid;grid-template-columns:var(--s5) 1fr;gap:var(--s2);font-size:var(--fs-body);line-height:1.6;color:var(--ink)}
.arrows li::before{content:"\2192";color:var(--accent);font-weight:700}
.chips{list-style:none;margin:0 0 var(--s5);padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.chips a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s4);border:var(--rule);font-size:var(--fs-sm);font-weight:600;text-decoration:none;color:var(--ink)}
.chips a:hover{border-color:var(--ink)}
.side{display:grid;gap:var(--s4);min-width:0;position:sticky;top:calc(var(--head-h) + var(--s4))}
.special{background:var(--surface);color:var(--on-dark);border-radius:var(--r-md);padding:var(--s6)}
.special .k{margin:0 0 var(--s2);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--on-dark3)}
.special .p{margin:0;font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-mega);line-height:.9}
.special .l{margin:var(--s2) 0 var(--s3);font-size:var(--fs-h3);font-weight:700}
.special .d{margin:0;font-size:var(--fs-sm);line-height:1.6;color:var(--on-dark2)}

/* numbered why-us */
.nums{list-style:none;margin:0;padding:0;display:grid;gap:var(--s6)}
.nums li{display:grid;grid-template-columns:var(--s8) 1fr;gap:var(--s4);align-items:start}
.nums li > span{font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-mega);line-height:.85;color:var(--num1)}
.nums h3{margin:var(--s2) 0;font-size:var(--fs-h3);font-weight:700;color:var(--ink)}
.nums p{margin:0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink2)}

/* form */
.qform{background:var(--card);color:var(--ink);border:var(--rule);border-radius:var(--r-md);padding:clamp(20px, 3vw, 36px);box-shadow:var(--sh1);display:grid;gap:var(--s4)}
.qform h2{margin:0;font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-h3);line-height:var(--lh-tight);color:var(--ink)}
.qform .sub{margin:var(--s2) 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--ink2)}
.qfields{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit, minmax(min(100%, 180px), 1fr))}
.side .qfields{grid-template-columns:1fr}
.qfields .span-all{grid-column:1/-1}
.qform fieldset label{color:var(--ink2)}
.qform label{display:grid;gap:var(--s2);min-width:0;font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--ink2)}
.qform input,.qform select,.qform textarea{font-family:var(--font-ui);font-size:var(--fs-input);min-height:var(--s7);padding:var(--s3) var(--s4);border:var(--rule);border-radius:var(--r-sm);background:var(--field);color:var(--ink);width:100%;min-width:0;letter-spacing:0;text-transform:none}
.qform textarea{resize:vertical}
.qform button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:var(--s7);background:var(--brand);color:var(--on-brand);border:0;border-radius:var(--r-sm);font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-btn);text-transform:uppercase;cursor:pointer}
.qform button:hover{background:var(--brand-mid)}
.qform .note{margin:0;font-size:var(--fs-xs);line-height:1.5;color:var(--ink3)}
.hp{position:absolute;left:-9999px}
.dl div{border-top:var(--rule);padding:var(--s4) 0}
.dl div:last-child{border-bottom:var(--rule)}
.dl dt{font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink3)}
.dl dd{margin:var(--s2) 0 0;line-height:1.8}
.dl .big{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--fs-h2);font-weight:700;color:var(--ink);text-decoration:none}

/* article */
.art{max-width:880px;margin:0 auto;padding:var(--s-section) var(--pad-x)}
.answer{background:var(--paper2);border-left:var(--s1) solid var(--brand);padding:var(--s6)}
.answer h2{margin:0 0 var(--s3);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink3)}
.answer p{margin:0;font-size:var(--fs-h3);font-weight:700;line-height:1.4;color:var(--ink)}
.toc{margin-top:var(--s6);padding:var(--s5);border:var(--rule)}
.toc h2{margin:0 0 var(--s2);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink3)}
.toc ol{margin:0;padding-left:var(--s5)}
.toc a{display:inline-flex;align-items:center;min-height:var(--tap);font-size:var(--fs-body)}
.related{margin-top:var(--s7);padding:var(--s5);border:var(--rule)}
.related h2{margin:0 0 var(--s4);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink3)}
.related .chips{margin:0}

/* footer, call bar, back to top */
.foot{background:var(--surface);color:var(--on-dark2)}
.foot-in{max-width:var(--measure);margin:0 auto;padding:var(--s8) var(--pad-x) var(--s7);display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 1fr))}
.foot-in img{height:64px;width:auto;display:block;margin-bottom:var(--s4)}
.fk{margin:0 0 var(--s1);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--on-dark3)}
.fk.gap{margin-top:var(--s3)}
.fphone{display:flex;align-items:center;min-height:var(--tap);font-size:var(--fs-lead);font-weight:700;color:var(--on-dark);text-decoration:none}
.foot .fmail{display:flex;align-items:center;min-height:var(--tap);font-size:var(--fs-sm);color:var(--on-dark);overflow-wrap:anywhere}
.fbase-loc{margin:var(--s3) 0 0;font-size:var(--fs-sm)}
.foot nav .fk{margin-bottom:var(--s3)}
.foot nav a{display:flex;align-items:center;min-height:var(--tap);font-size:var(--fs-sm);color:var(--on-dark);text-decoration:none}
.foot nav a:hover{color:var(--accent-ink2)}
.fbase{border-top:1px solid var(--brand-line)}
.fbase p{max-width:var(--measure);margin:0 auto;padding:var(--s4) var(--pad-x);font-size:var(--fs-xs);color:var(--on-dark3)}
.fbase a{color:var(--on-dark3)}
.totop{position:fixed;right:var(--s5);bottom:var(--s5);z-index:70;display:flex;align-items:center;justify-content:center;width:var(--s7);height:var(--s7);border-radius:var(--r-pill);background:var(--brand);color:var(--on-brand);font-size:var(--fs-lead);text-decoration:none;box-shadow:var(--sh2)}
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:80;height:var(--s8);grid-template-columns:1fr 1fr;background:var(--surface);border-top:1px solid var(--brand-line)}
.callbar a{display:flex;align-items:center;justify-content:center;color:var(--on-dark);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-btn);text-transform:uppercase;text-decoration:none}
.callbar a + a{background:var(--brand);color:var(--on-brand)}

@media (max-width:1024px){.dnav{display:none !important}.mnav{display:block}}
@media (max-width:900px){.span2{grid-column:auto}.side{position:static}}
@media (max-width:760px){.callbar{display:grid}.totop{bottom:calc(var(--s8) + var(--s3))}body{padding-bottom:var(--s8)}.overlap{width:52%}.iggrid{grid-template-columns:repeat(2, minmax(0, 1fr))}}
@media (prefers-reduced-motion:reduce){*{transition:none !important}}

/* ===== hibu layout ===== */
body{font-weight:400}
.hdr{position:sticky;background:var(--surface) !important}
.js .hdr{background:var(--surface) !important}
.hb-top{max-width:1400px;margin:0 auto;padding:var(--s3) var(--pad-x);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--s5)}
.hb-serve{color:var(--on-dark);font-size:var(--fs-xs);line-height:1.35}
.hb-serve b{display:block;font-size:var(--fs-lead);font-weight:700}
.hb-logo{display:block;width:fit-content;justify-self:center;background:#fff;border-radius:4px;padding:2px;line-height:0;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.hb-logo img{display:block;height:clamp(52px,6vw,76px);width:auto}
.hb-logo span{display:block;font-family:var(--font-display);font-size:var(--fs-h3);color:var(--surface);padding:10px 4px}
.hb-acts{display:grid;justify-items:end;gap:var(--s2)}
.hb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:200px;padding:0 var(--s5);border-radius:var(--r-sm);background:var(--brand);color:#fff;font-size:var(--fs-sm);font-weight:600;text-decoration:none;border:1px solid rgba(255,255,255,.35)}
.hb-btn:hover{background:var(--brand-deep);color:#fff}
.hb-call{color:var(--on-dark);text-align:right;font-size:var(--fs-xs);line-height:1.2;text-decoration:none}
.hb-call b{display:block;font-size:var(--fs-lead);font-weight:700}
.hb-nav{background:var(--brand)}
.hb-nav nav{max-width:1400px;margin:0 auto;padding:0 var(--pad-x);display:flex;justify-content:center;flex-wrap:wrap;gap:0 var(--s6)}
.hb-nav a{display:inline-flex;align-items:center;min-height:48px;color:#fff;font-size:var(--fs-sm);font-weight:500;text-decoration:none;border-bottom:2px solid transparent}
.hb-nav a:hover,.hb-nav a[aria-current]{border-bottom-color:#fff}
.hdr .mnav{display:none}
.hero{min-height:min(78vh,700px)}
.hero-in{padding:var(--s9) var(--pad-x)}
.hero h1{font-weight:600;max-width:24ch;font-size:clamp(28px,4.4vw,52px)}
.hero .hb-sub{margin:var(--s4) 0 0;font-family:var(--font-display);font-size:var(--fs-h3);color:#fff}
.hb-points{list-style:none;margin:var(--s4) 0 0;padding:0;display:grid;gap:2px;color:#fff;font-weight:600;font-size:var(--fs-sm)}
.hero-cta .btn{min-width:220px;justify-content:center}
.h2{color:var(--surface)}
.dark .h2{color:#fff}
.btn{text-transform:none;letter-spacing:var(--ls-btn);font-size:var(--fs-sm);font-weight:600}
.eyebrow{color:var(--brand)}
.hb-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.hb-strip img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block}
.hb-why{background:var(--surface);color:#fff}
.hb-why ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--s5) var(--s6);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.hb-why li{display:flex;align-items:center;gap:var(--s4);font-weight:600}
.hb-why li svg{flex:none;width:40px;height:40px}
.hb-rows{display:grid;gap:var(--s7)}
.hb-row{display:grid;gap:clamp(24px,4vw,56px);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:center}
.hb-row:nth-child(even) > :first-child{order:2}
.hb-row img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:4px}
.hb-row .svc-ico{display:flex;align-items:center;justify-content:center;aspect-ratio:3/2;background:var(--paper2);color:var(--surface);border-radius:4px}
.hb-row .svc-ico svg{width:64px;height:64px}
.hb-row h3{margin:0 0 var(--s3);font-family:var(--font-display);font-weight:600;font-size:var(--fs-h2);line-height:1.15;color:var(--surface)}
.hb-row p{margin:0 0 var(--s5);line-height:var(--lh-body);color:var(--ink2)}
.phead-in{padding:var(--s8) var(--pad-x)}
.touch{background:var(--brand)}
.foot{background:var(--paper3)}
.callbar a + a{background:var(--brand)}
@media (max-width:1024px){
  .hb-top{grid-template-columns:1fr auto;gap:var(--s3)}
  .hb-serve,.hb-acts .hb-btn{display:none}
  .hb-logo{justify-self:start}
  .hb-logo img{height:48px}
  .hb-nav{display:none}
  .hdr .mnav{display:block}
  .mnav summary span{background:#fff}
}
