/* ═══════════════════════════════════════════════════════════════════
   TIM L. BOWDEN — TENNESSEE TRIAL ATTORNEY
   Built 1:1 from the approved ChatGPT visual set (Desktop/Tim Bowden).
   Every measurement below is the reference comp's own pixel value,
   scaled by --k so the page reproduces the 1536-wide comp exactly.
   ═══════════════════════════════════════════════════════════════════ */

:root{
  /* comp unit: 1px at a 1536 viewport, fluid between 1000 and 2560 */
  --k: clamp(.66px, 100vw / 1536, 1.34px);
  --shell: calc(1448 * var(--k));

  --ink:      #000814;
  --ink-2:    #010A18;
  --navy:     #04121F;
  --navy-3:   #061A2C;
  --blue:     #094996;
  --blue-hi:  #0C59B6;
  --blue-lt:  #3A71BE;
  --blue-txt: #539CED;
  --cyan:     #0E9BE0;
  --cyan-hi:  #34B6F2;
  --gold:     #D6A253;
  --gold-hi:  #EBAD50;
  --gold-dim: #A87C3A;
  --paper:    #EFEDE9;
  --body:     #C6D0DB;
  --body-2:   #9FB0C1;
  --wood:     #0B0805;

  --f-disp: 'Big Shoulders Display', 'Oswald', Impact, sans-serif;
  --f-serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --f-cond: 'Oswald', 'Arial Narrow', sans-serif;
  --f-body: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --ease: cubic-bezier(.22,.61,.24,1);
  --ease-o: cubic-bezier(.16,1,.3,1);
  --par: 0px;               /* written by motion.js, never a transform on a layout box */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--ink); color:var(--body);
  font-family:var(--f-body); font-size:calc(21 * var(--k)); line-height:1.58;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%}
img{height:auto}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,figure,blockquote{margin:0}
::selection{background:var(--blue-hi);color:#fff}
:focus-visible{outline:2px solid var(--cyan-hi);outline-offset:3px;border-radius:1px}
[data-accent=gold] :focus-visible,.pa :focus-visible,.bs :focus-visible,
.cta :focus-visible,.foot :focus-visible{outline-color:var(--gold-hi)}

.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--blue);color:#fff;
  padding:12px 20px;font-family:var(--f-cond);letter-spacing:.08em}
.skip:focus{left:12px;top:12px}

/* ─────────── shared primitives ─────────── */
.shell{width:var(--shell);margin-inline:auto}

.eyebrow{font-family:var(--f-cond);font-weight:500;color:#fff;
  font-size:calc(18.4 * var(--k));letter-spacing:.147em;line-height:1;
  display:flex;align-items:center;gap:calc(18 * var(--k))}
.hero .eyebrow{font-size:calc(24 * var(--k));letter-spacing:.155em}
.eyebrow--gold{color:var(--gold-hi)}
.eyebrow__ln{flex:0 0 calc(96 * var(--k));height:1px;background:currentColor;opacity:.75}

.rule{height:calc(1.6 * var(--k));width:calc(314 * var(--k));
  background:linear-gradient(90deg,var(--cyan) 0%,var(--cyan) 46%,rgba(14,155,224,.3) 100%);
  transform-origin:0 50%}
.rule--gold{background:linear-gradient(90deg,var(--gold) 0%,var(--gold) 46%,rgba(214,162,83,.3) 100%)}
.rule--sm{width:calc(150 * var(--k))}
.rule--xs{width:calc(74 * var(--k));height:3px;background:var(--blue-txt)}

.kicker{display:flex;align-items:center;justify-content:center;gap:calc(19 * var(--k));
  font-family:var(--f-cond);font-weight:500;color:var(--gold-hi);
  font-size:calc(24.5 * var(--k));letter-spacing:.34em;line-height:1;text-indent:.34em}
.kicker i{width:calc(76 * var(--k));height:1px;background:var(--gold-dim);flex:none}

/* distressed plaster fill used by the display face in the comps */
.tex{
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='420' height='420'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='0.013 0.017' numOctaves='4' seed='7'/><feColorMatrix type='saturate' values='0'/><feComponentTransfer><feFuncA type='table' tableValues='0 0.78'/></feComponentTransfer></filter><rect width='420' height='420' filter='url(%23f)' fill='%23000'/></svg>"),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='3'/><feColorMatrix type='saturate' values='0'/><feComponentTransfer><feFuncA type='table' tableValues='0 0.42'/></feComponentTransfer></filter><rect width='160' height='160' filter='url(%23g)' fill='%23000'/></svg>");
  background-blend-mode:multiply,multiply;
  background-color:var(--paper);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
}
.tex--blue{background-color:var(--blue-lt)}

.btn{
  display:inline-flex;align-items:center;gap:calc(14 * var(--k));
  font-family:var(--f-cond);font-weight:500;font-size:calc(20 * var(--k));
  letter-spacing:.075em;line-height:1;color:#fff;
  padding:calc(24.5 * var(--k)) calc(26 * var(--k));
  position:relative;overflow:hidden;isolation:isolate;
  transition:color .35s var(--ease), box-shadow .45s var(--ease);
  will-change:transform;
}
.btn::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--blue)}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--blue-hi);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--ease-o)}
.btn:hover::after,.btn:focus-visible::after{transform:scaleX(1)}
.btn:hover{box-shadow:0 calc(14 * var(--k)) calc(40 * var(--k)) rgba(9,73,150,.45)}
.btn .arw{width:calc(24 * var(--k));height:calc(12 * var(--k));overflow:visible;
  fill:none;stroke:currentColor;stroke-width:1.7;transition:transform .45s var(--ease-o)}
.btn:hover .arw{transform:translateX(calc(7 * var(--k)))}

.btn--gold{color:#1A1206}
.btn--gold::before{background:linear-gradient(180deg,#E7B45F 0%,#C58F3C 100%)}
.btn--gold::after{background:linear-gradient(180deg,#F3C778 0%,#D8A24B 100%)}
.btn--gold:hover{box-shadow:0 calc(14 * var(--k)) calc(40 * var(--k)) rgba(214,162,83,.32)}
.btn--gold .arw{stroke-width:2}

.btn--ghost{color:var(--gold-hi);border:1px solid var(--gold);padding:calc(22 * var(--k)) calc(30 * var(--k))}
.btn--ghost::before{background:transparent}
.btn--ghost::after{background:rgba(214,162,83,.14)}
.btn--ghost:hover{box-shadow:0 calc(12 * var(--k)) calc(38 * var(--k)) rgba(0,0,0,.5)}

.crest{display:block;line-height:0}
.crest svg{width:calc(72 * var(--k));height:calc(80 * var(--k));fill:none;
  stroke:var(--gold);stroke-width:2.4}
.crest text{font-family:var(--f-serif);font-weight:700;font-size:38px;fill:var(--gold);stroke:none}
.crest--sm svg{width:calc(68 * var(--k));height:calc(80 * var(--k))}

/* ═══════════════════ HEADER ═══════════════════ */
.hdr{position:fixed;inset:0 0 auto;z-index:90;height:calc(101 * var(--k));
  transition:background .5s var(--ease),backdrop-filter .5s var(--ease),height .4s var(--ease)}
.hdr.is-stuck{background:rgba(0,6,14,.9);backdrop-filter:blur(14px);
  height:calc(78 * var(--k));box-shadow:0 1px 0 rgba(255,255,255,.07)}
.hdr__prog{position:absolute;left:0;right:0;bottom:0;height:2px;opacity:0;transition:opacity .4s}
.hdr.is-stuck .hdr__prog{opacity:1}
.hdr__prog i{display:block;height:100%;width:100%;transform:scaleX(var(--p,0));transform-origin:0 50%;
  background:linear-gradient(90deg,var(--cyan),var(--cyan-hi))}
.hdr[data-accent=gold] .hdr__prog i{background:linear-gradient(90deg,var(--gold-dim),var(--gold-hi))}

.hdr__in{height:100%;padding-inline:calc(34 * var(--k)) calc(46 * var(--k));
  display:flex;align-items:center;gap:calc(30 * var(--k))}
/* No vertical bias: the block centres in the header, so the air above the name
   equals the air below the tagline — and the 78k stuck header no longer lets the
   tagline cross the divider (it overflowed by 2.5k with the old 24k top-pad). */
.brand{display:block;margin-right:auto}
.brand__name{display:block;font-family:var(--f-serif);font-weight:500;color:#F4F2EE;
  font-size:calc(33 * var(--k));letter-spacing:.075em;line-height:1;white-space:nowrap}
.brand__tag{display:block;margin-top:calc(11 * var(--k));font-family:var(--f-cond);font-weight:400;
  font-size:max(12px,calc(15 * var(--k)));letter-spacing:.352em;line-height:1;color:var(--cyan-hi);
  transition:color .5s var(--ease)}
.hdr[data-accent=gold] .brand__tag{color:var(--gold-hi)}
.hdr[data-accent=gold] .brand__name{color:#F5F0E6}

.nav ul{display:flex;align-items:center;gap:calc(43 * var(--k))}
.nav a{position:relative;font-family:var(--f-cond);font-weight:400;color:#EDF2F7;
  font-size:calc(16 * var(--k));letter-spacing:.13em;line-height:1;white-space:nowrap;
  padding-block:calc(10 * var(--k))}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:calc(2 * var(--k));height:1px;
  background:var(--cyan-hi);transform:scaleX(0);transform-origin:100% 50%;
  transition:transform .45s var(--ease-o)}
.hdr[data-accent=gold] .nav a::after{background:var(--gold-hi)}
.nav a:hover::after,.nav a:focus-visible::after{transform:scaleX(1);transform-origin:0 50%}

.hdr__cta{display:inline-flex;align-items:center;justify-content:center;position:relative;
  height:calc(52 * var(--k));padding-inline:calc(13 * var(--k));border:1px solid rgba(255,255,255,.55);
  font-family:var(--f-cond);font-weight:400;font-size:calc(18 * var(--k));letter-spacing:.05em;
  color:#fff;overflow:hidden;isolation:isolate;white-space:nowrap;will-change:transform;
  transition:border-color .4s var(--ease),color .4s var(--ease)}
.hdr__cta::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--cyan);
  transform:scaleY(0);transform-origin:50% 100%;transition:transform .45s var(--ease-o)}
.hdr__cta:hover{border-color:var(--cyan)}
.hdr__cta:hover::after{transform:scaleY(1)}
.hdr[data-accent=gold] .hdr__cta{border-color:var(--gold);color:var(--gold-hi)}
.hdr[data-accent=gold] .hdr__cta::after{background:var(--gold)}
.hdr[data-accent=gold] .hdr__cta:hover{color:#1A1206}

.hdr__tel{font-family:var(--f-cond);font-weight:500;font-size:calc(20 * var(--k));
  letter-spacing:.02em;color:var(--cyan-hi);white-space:nowrap;transition:color .5s var(--ease)}
.hdr[data-accent=gold] .hdr__tel{color:var(--gold-hi)}
.hdr__tel:hover{color:#fff}

.burger{display:none;width:46px;height:46px;background:none;border:0;padding:11px 5px;cursor:pointer}
.burger i{display:block;height:2px;background:#fff;margin:6px 0;transition:transform .4s var(--ease),opacity .3s}
.burger[aria-expanded=true] i:nth-child(1){transform:translateY(8px) rotate(45deg) scaleX(.6)}
.burger[aria-expanded=true] i:nth-child(2){opacity:0}
.burger[aria-expanded=true] i:nth-child(3){transform:translateY(-8px) rotate(-45deg) scaleX(.6)}

/* Density pass (Hal, 1 Sep 2026): same identity, ~35% tighter rhythm so the six
   items read as one navigation group and the whole menu fits a 390 viewport. */
.drawer{position:fixed;inset:0;z-index:88;background:rgba(0,6,14,.97);backdrop-filter:blur(10px);
  display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(12px,2.1vh,20px);
  padding:96px 28px calc(20px + env(safe-area-inset-bottom,0px));text-align:center;
  overflow-y:auto;overscroll-behavior:contain}
/* the 84px menu-header zone: wordmark above, thin gold divider beneath it */
.drawer::before{content:"";position:absolute;left:0;right:0;top:84px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(190,150,90,.55) 18%,rgba(190,150,90,.55) 82%,transparent)}
.drawer[hidden]{display:none}
.drawer ul{display:flex;flex-direction:column;gap:clamp(6px,1.1vh,13px)}
.drawer a{display:flex;align-items:center;justify-content:center;padding:4px 0;min-height:44px;
  font-family:var(--f-cond);font-size:clamp(19px,3.2vh,26px);letter-spacing:.14em;color:#fff}
.drawer__cta{display:flex;align-items:center;justify-content:center;width:100%;max-width:340px;
  margin-inline:auto;padding:14px 26px;min-height:48px;border:0;
  background:linear-gradient(180deg,#0B57B0,var(--blue));color:#fff;
  font-family:var(--f-cond);font-weight:500;letter-spacing:.12em}
.drawer .drawer__tel{display:block;padding:0;font-family:var(--f-cond);font-size:13px;
  letter-spacing:.22em;color:var(--cyan-hi);line-height:1}
.drawer__tel b{display:block;margin-top:5px;font-weight:500;font-size:clamp(22px,3.4vh,27px);
  color:#fff;letter-spacing:.06em}
.drawer__tel small{display:block;margin-top:4px;font-size:11px;letter-spacing:.24em;color:#8FA0B3}

/* ═══════════════════ 01 · HERO ═══════════════════ */
.hero{position:relative;background:var(--ink);isolation:isolate}
.hero__stage{position:absolute;inset:0;overflow:hidden;z-index:0}
.hero__plate{position:absolute;right:0;bottom:calc(-4 * var(--k));width:calc(1003 * var(--k));
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 calc(96 * var(--k)),#000 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 calc(96 * var(--k)),#000 100%)}
.hero__plate img{width:100%;transform:translate3d(0,var(--par),0) scale(var(--sc,1));
  transform-origin:50% 100%;will-change:transform}
.hero__veil{position:absolute;inset:0;
  background:
    linear-gradient(90deg,var(--ink) 0%,rgba(0,8,20,.93) 22%,rgba(0,8,20,.42) 33%,rgba(0,8,20,0) 45%),
    linear-gradient(180deg,rgba(0,6,14,.85) 0%,rgba(0,6,14,0) 18%)}
.hero__bloom{position:absolute;right:calc(60 * var(--k));top:calc(120 * var(--k));
  width:calc(520 * var(--k));height:calc(420 * var(--k));pointer-events:none;
  background:radial-gradient(ellipse at 60% 40%,rgba(30,140,255,.20),transparent 68%);
  animation:bloom 7s ease-in-out infinite alternate}
@keyframes bloom{from{opacity:.55}to{opacity:1}}

.hero__body{position:relative;z-index:2;width:var(--shell);margin-inline:auto;
  padding-top:calc(185 * var(--k));padding-bottom:calc(33 * var(--k));min-height:calc(855 * var(--k))}
.hero__body .rule{margin-top:calc(13 * var(--k))}
.hero__h1{margin-top:calc(22 * var(--k));margin-left:calc(-8 * var(--k));
  font-family:var(--f-disp);font-weight:800;
  font-size:calc(205 * var(--k));line-height:.922;letter-spacing:-.018em;text-transform:uppercase}
.hero__lede{margin-top:calc(3 * var(--k));max-width:calc(500 * var(--k));
  font-size:calc(20 * var(--k));line-height:1.53;color:#D8DEE6}
.hero__acts{margin-top:calc(34 * var(--k));display:flex;align-items:center;gap:calc(22 * var(--k))}
.hero__acts .btn{min-width:calc(312 * var(--k));justify-content:flex-start;padding-inline:calc(26 * var(--k))}
.hero__plus{font-family:var(--f-cond);font-weight:300;font-size:calc(30 * var(--k));color:var(--cyan-hi)}
.callblk{display:flex;align-items:center;gap:calc(20 * var(--k))}
.callblk__ring{flex:none;width:calc(57 * var(--k));height:calc(57 * var(--k));border-radius:50%;
  border:1px solid var(--cyan);display:grid;place-items:center;position:relative;
  transition:border-color .4s var(--ease)}
.callblk__ring::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--cyan);
  animation:ring 2.6s var(--ease) infinite}
@keyframes ring{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(1.55);opacity:0}}
.callblk__ring svg{width:calc(26 * var(--k));height:calc(26 * var(--k));fill:var(--cyan-hi)}
.callblk__txt{margin-top:calc(8 * var(--k))}
.callblk__txt b{display:block;font-family:var(--f-cond);font-weight:500;font-size:calc(22 * var(--k));
  letter-spacing:.19em;color:#fff;line-height:1.05}
.callblk__txt small{display:block;margin-top:calc(9 * var(--k));font-family:var(--f-cond);font-weight:300;
  font-size:calc(17 * var(--k));letter-spacing:.123em;color:#B9C6D2}
.callblk:hover .callblk__ring{border-color:#fff}

/* ═══════════════════ 02 · CASE RESULTS ═══════════════════ */
.res{position:relative;background:var(--ink-2) url("../img/stone-navy.jpg") center/cover no-repeat;
  padding:calc(78 * var(--k)) 0 0}
.res::before{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 0%,rgba(20,60,110,.18),transparent 62%)}
.res__head{position:relative;width:var(--shell);margin-inline:auto;text-align:center}
.res__h2{margin-top:calc(16 * var(--k));font-family:var(--f-serif);font-weight:700;
  font-size:calc(76 * var(--k));line-height:1.06;letter-spacing:-.035em;color:#F2EFEA;
  text-transform:uppercase;white-space:nowrap}
.res__h2 em{font-style:normal;
  background:linear-gradient(180deg,#7FB6F2 0%,#2C6FCB 55%,#1A54A8 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.res__hrule{width:calc(122 * var(--k));height:1px;margin:calc(30 * var(--k)) auto 0;
  background:linear-gradient(90deg,transparent,var(--gold-dim),transparent)}
.res__sub{margin:calc(19 * var(--k)) auto 0;max-width:calc(692 * var(--k));
  font-size:calc(23 * var(--k));line-height:1.48;color:#E2E8EF}

.panel{position:relative;width:calc(1478 * var(--k));margin:calc(38 * var(--k)) auto 0;
  height:calc(485 * var(--k));border:1px solid rgba(90,140,195,.42);overflow:hidden;isolation:isolate}
.panel__plate{position:absolute;inset:calc(-30 * var(--k)) 0;z-index:-2}
.panel__plate img{width:100%;height:100%;object-fit:cover;
  transform:translate3d(0,var(--par),0);will-change:transform}
.panel::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,8,18,.2),rgba(0,8,18,.38))}
.panel__grid{height:100%;display:grid;grid-template-columns:repeat(4,1fr)}
.stat{position:relative;display:flex;flex-direction:column;align-items:center;
  padding-top:calc(36 * var(--k))}
.stat+.stat::before{content:"";position:absolute;left:0;top:calc(18 * var(--k));bottom:calc(18 * var(--k));
  width:1px;background:rgba(200,160,95,.62)}
.stat__ico{display:block;line-height:0}
.stat__ico svg{width:auto;height:calc(78 * var(--k));fill:none;stroke:var(--gold-hi);
  stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.stat__ico svg .lf{fill:var(--gold-hi);stroke:none}
.stat__n{display:block;margin-top:calc(34 * var(--k));font-family:var(--f-disp);font-weight:800;
  font-size:calc(145 * var(--k));line-height:.86;letter-spacing:-.03em;font-variant-numeric:lining-nums;
  white-space:nowrap}
.stat__lb{display:block;margin-top:calc(24 * var(--k));font-family:var(--f-cond);font-weight:500;
  font-size:max(13px,calc(24.5 * var(--k)));letter-spacing:.35em;text-indent:.35em;color:var(--gold-hi);line-height:1}
.stat__rule{display:block;width:calc(64 * var(--k));height:1px;margin-top:calc(24 * var(--k));
  background:var(--gold-dim);transform:scaleX(0);transform-origin:50% 50%;
  transition:transform .7s var(--ease-o) .25s}
.stat.in .stat__rule{transform:scaleX(1)}
.stat__cp{margin-top:calc(5 * var(--k));font-size:calc(18.5 * var(--k));line-height:1.73;
  color:#DCE4EC;text-align:center}


/* placeholder state — deliberately loud so it can never ship by accident */

/* ═══════════════════ 03 · REAL PEOPLE. REAL FIGHTS. ═══════════════════ */
.rev{position:relative;background:#01060F;padding:calc(70 * var(--k)) 0 calc(60 * var(--k));isolation:isolate}
.rev::before{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 70% at 22% 40%,rgba(16,54,104,.34),transparent 70%)}
.rev__in{position:relative;width:var(--shell);margin-inline:auto}
.kicker--blue{color:var(--blue-txt)}
.kicker--blue i{background:rgba(70,130,210,.6)}
.rev__h2{margin-top:calc(20 * var(--k));text-align:center;font-family:var(--f-disp);font-weight:800;
  font-size:calc(96 * var(--k));line-height:.94;letter-spacing:-.02em}
.rev__grid{margin-top:calc(46 * var(--k));display:grid;align-items:start;
  grid-template-columns:calc(660 * var(--k)) 1fr;gap:calc(64 * var(--k))}

.feat{position:relative;align-self:start;border:1px solid rgba(120,160,210,.28);
  background:linear-gradient(180deg,rgba(8,22,44,.5),rgba(2,10,22,.5));
  padding:calc(38 * var(--k)) calc(44 * var(--k)) calc(42 * var(--k));text-align:center;margin:0}
.feat__lb{font-family:var(--f-cond);font-weight:500;font-size:calc(17 * var(--k));
  letter-spacing:.3em;text-indent:.3em;color:var(--gold-hi)}
.stars{display:flex;justify-content:center;gap:calc(7 * var(--k));margin-top:calc(18 * var(--k))}
.stars svg{width:calc(21 * var(--k));height:calc(20 * var(--k));fill:var(--gold-hi)}
.feat__q{position:relative;margin:calc(26 * var(--k)) 0 0;padding-left:calc(48 * var(--k));
  font-family:var(--f-serif);font-weight:400;font-style:italic;
  font-size:calc(31 * var(--k));line-height:1.46;color:#F2F0EB;text-align:left}
.feat__mk{position:absolute;left:0;top:calc(-6 * var(--k));font-family:var(--f-serif);font-weight:700;
  font-style:normal;font-size:calc(74 * var(--k));line-height:1;color:var(--gold-hi)}
.feat__rule{display:block;width:calc(62 * var(--k));height:1px;margin:calc(30 * var(--k)) auto 0;
  background:var(--gold)}
.feat__by{margin-top:calc(22 * var(--k))}
.feat__by b{display:block;font-family:var(--f-cond);font-weight:500;font-size:calc(24 * var(--k));
  letter-spacing:.14em;text-transform:uppercase;color:#fff}
.feat__by span{display:block;margin-top:calc(8 * var(--k));font-family:var(--f-cond);font-weight:400;
  font-size:calc(18 * var(--k));letter-spacing:.16em;text-transform:uppercase;color:var(--blue-txt)}

.revlist__i{padding:calc(20 * var(--k)) 0;border-top:1px solid rgba(120,160,210,.24)}
.revlist__i:first-child{border-top:0;padding-top:0}
.revlist__by{display:flex;align-items:center;gap:calc(14 * var(--k))}
.revlist__by .stars{margin-top:0;gap:calc(4 * var(--k))}
.revlist__by .stars svg{width:calc(14 * var(--k));height:calc(13.5 * var(--k))}
.revlist__by b{font-family:var(--f-cond);font-weight:500;font-size:calc(19 * var(--k));
  letter-spacing:.13em;text-transform:uppercase;color:#fff}
.revlist__i blockquote{margin:calc(10 * var(--k)) 0 0;font-style:italic;
  font-size:calc(18 * var(--k));line-height:1.52;color:#C6D2DF}

.rating{margin-top:calc(24 * var(--k));padding:calc(20 * var(--k)) calc(24 * var(--k));
  border:1px solid rgba(120,160,210,.34);display:flex;align-items:center;
  gap:calc(10 * var(--k)) calc(18 * var(--k));flex-wrap:wrap}
.rating .stars{margin-top:0;gap:calc(3 * var(--k))}
.rating .stars svg{width:calc(19 * var(--k));height:calc(18 * var(--k))}
/* Google wordmark in its own colours, per Google's guidance for surfacing Google reviews */
.rating__src{font-family:'Barlow',system-ui,sans-serif;font-weight:500;
  font-size:calc(36 * var(--k));line-height:1;letter-spacing:-.012em}
.rating__src b:nth-child(1){color:#4285F4}
.rating__src b:nth-child(2){color:#EA4335}
.rating__src b:nth-child(3){color:#FBBC05}
.rating__src b:nth-child(4){color:#4285F4}
.rating__src b:nth-child(5){color:#34A853}
.rating__src b:nth-child(6){color:#EA4335}
.rating__n{font-family:var(--f-cond);font-weight:400;font-size:calc(17 * var(--k));
  letter-spacing:.1em;color:#EDF2F8;margin-left:auto;text-align:right}
.rating__n b{font-weight:600;font-size:calc(22 * var(--k))}
.rating__c{flex:0 0 auto;font-family:var(--f-cond);font-weight:500;font-size:calc(16 * var(--k));
  letter-spacing:.14em;color:var(--blue-txt);width:100%;text-align:right}

.rev__cta{margin-top:calc(46 * var(--k));display:flex;align-items:center;gap:calc(26 * var(--k));flex-wrap:wrap}
.rev__cta p{font-family:var(--f-serif);font-weight:600;font-size:calc(27 * var(--k));color:#F2F0EB;
  margin-right:auto}
.rev__tel{display:inline-flex;align-items:center;gap:.36em;min-height:44px;padding:0 calc(4 * var(--k));
  font-family:var(--f-cond);font-weight:300;font-size:calc(18 * var(--k));letter-spacing:.1em;color:#9DB0C4}
.rev__tel b{font-weight:500;color:var(--cyan-hi);letter-spacing:.06em}
.rev__tel:hover b{color:#fff}

/* ═══════════════════ 03 · PRACTICE AREAS ═══════════════════ */
.pa{position:relative;background:#01060E;padding-top:calc(63 * var(--k));isolation:isolate}
.pa .eyebrow{color:var(--gold-hi)}
.pa__stage{position:absolute;inset:0 0 auto;height:calc(428 * var(--k));overflow:hidden;z-index:-1}
.pa__cols{position:absolute;right:0;top:0;width:calc(706 * var(--k));height:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 calc(150 * var(--k)));
          mask-image:linear-gradient(90deg,transparent,#000 calc(150 * var(--k)))}
.pa__cols img{width:100%;height:100%;object-fit:cover;object-position:center top;
  transform:translate3d(0,var(--par),0);will-change:transform}
.pa__stage::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#01060E 0%,rgba(1,6,14,.92) 34%,rgba(1,6,14,.25) 56%,transparent 70%),
             linear-gradient(180deg,transparent 62%,#01060E 100%)}
.pa__shaft{position:absolute;right:calc(300 * var(--k));top:calc(-80 * var(--k));width:calc(210 * var(--k));
  height:calc(560 * var(--k));transform:rotate(9deg);pointer-events:none;
  background:linear-gradient(180deg,rgba(255,205,130,.16),transparent 72%);filter:blur(24px);
  animation:shaft 9s ease-in-out infinite alternate}
@keyframes shaft{from{opacity:.5}to{opacity:1}}

.pa__head{position:relative;width:calc(1404 * var(--k));margin-inline:auto}
.pa__head .rule{margin-top:calc(20 * var(--k));width:calc(95 * var(--k))}
.pa__h2{margin-top:calc(10 * var(--k));font-family:var(--f-serif);font-weight:700;
  font-size:calc(82 * var(--k));line-height:1.061;letter-spacing:-.004em;color:#FBFAF8}
.pa__h2 .gold{background:linear-gradient(180deg,#F0CE8E 0%,#D2A34D 52%,#B98A3C 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.pa__sub{margin-top:calc(16 * var(--k));font-family:var(--f-cond);font-weight:400;
  font-size:calc(23 * var(--k));letter-spacing:.265em;color:#EFF3F7}
.pa__sub em{font-style:normal;color:var(--blue-txt)}

.pa__divider{position:relative;display:flex;align-items:center;gap:calc(30 * var(--k));
  width:calc(1490 * var(--k));margin:calc(58 * var(--k)) auto 0;line-height:1;
  font-family:var(--f-cond);font-weight:400;font-size:calc(17.2 * var(--k));letter-spacing:1.1em;
  text-indent:1.1em;color:#F2EFE9}
.pa__divider i{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dim));
  transform:scaleX(0);transform-origin:100% 50%;transition:transform 1s var(--ease-o)}
.pa__divider i:last-child{background:linear-gradient(90deg,var(--gold-dim),transparent);transform-origin:0 50%}
.pa__divider.in i{transform:scaleX(1)}

.cards{position:relative;margin-top:calc(-3 * var(--k));display:grid;grid-template-columns:repeat(6,1fr)}
.card{position:relative;padding:0 calc(5 * var(--k)) 0;text-align:center;
  background:linear-gradient(180deg,rgba(6,16,32,0) 40%,rgba(3,10,22,.9) 100%)}
.card+.card::before{content:"";position:absolute;left:0;top:calc(6 * var(--k));bottom:calc(24 * var(--k));width:1px;
  background:linear-gradient(180deg,rgba(190,150,90,.55),rgba(190,150,90,0))}
.card__img{display:block;position:relative;overflow:hidden;aspect-ratio:246/265}
.card__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-o)}
.card__img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(1,7,16,.35) 0%,rgba(1,7,16,0) 30%,rgba(1,7,16,.55) 78%,#01060E 100%)}
.card__ico{position:absolute;top:calc(27 * var(--k));left:50%;transform:translateX(-50%);
  width:calc(80 * var(--k));height:calc(80 * var(--k));border-radius:50%;border:1.5px solid var(--gold);
  display:grid;place-items:center;background:rgba(4,10,20,.35);
  transition:box-shadow .5s var(--ease),background .5s var(--ease)}
.card__ico svg{width:calc(42 * var(--k));height:calc(42 * var(--k));fill:none;stroke:var(--gold-hi);
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.card__wrap{display:flex;flex-direction:column;height:100%;padding-bottom:calc(47 * var(--k));
  color:inherit;cursor:pointer}
.card:hover .card__t,.card__wrap:focus-visible .card__t{color:var(--gold-hi)}
/* desktop interaction contract (Hal's desktop brief, 2 Sep 2026) */
@media (min-width:1025px){
  .card__img img{transition:transform .26s var(--ease-o)}
  .card:hover .card__img img{transform:scale(1.03)}
  .card:hover .card__rule{filter:brightness(1.18)}
  .card__wrap:focus-visible{outline:3px solid var(--gold-hi);outline-offset:-3px}
  .card__wrap:active{transform:scale(.995)}
}
.card__wrap:focus-visible{outline:3px solid var(--gold-hi);outline-offset:-3px}
.card__t{margin-top:calc(14 * var(--k));font-family:var(--f-serif);font-weight:600;
  font-size:calc(19.7 * var(--k));letter-spacing:.012em;line-height:1;color:#F6F3EE}
.card__rule{display:block;width:calc(30 * var(--k));height:1px;margin:calc(16 * var(--k)) auto 0;
  background:var(--gold);transform:scaleX(0);transition:transform .6s var(--ease-o) .2s}
.card.in .card__rule{transform:scaleX(1)}
.card__cp{margin-top:calc(11 * var(--k));font-family:var(--f-cond);font-weight:300;
  font-size:calc(15.6 * var(--k));letter-spacing:.08em;line-height:1.42;color:#C3CEDA;
  max-width:calc(218 * var(--k));margin-inline:auto}
@media (max-width:1024px){.card:hover .card__img img{transform:scale(1.09)}}
@media (max-width:1024px){.card:hover .card__ico{background:rgba(214,162,83,.14);
  box-shadow:0 0 0 calc(6 * var(--k)) rgba(214,162,83,.08),0 0 calc(30 * var(--k)) rgba(214,162,83,.35)}}
@media (min-width:1025px){.card:hover .card__ico{background:rgba(214,162,83,.12)}}

.pabar{position:relative;margin-top:calc(7 * var(--k));border-top:1px solid rgba(190,150,90,.55);
  background:#041428 url("../img/stone-navy.jpg") center/cover;padding:calc(35 * var(--k)) 0}
.pabar::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,18,38,.92),rgba(2,12,26,.9))}
.pabar__in{position:relative;width:calc(1424 * var(--k));margin-inline:auto;display:flex;align-items:center;
  gap:calc(34 * var(--k))}
.pabar__ln{font-family:var(--f-serif);font-weight:600;font-size:calc(25 * var(--k));color:#F6F3EE;
  letter-spacing:.004em;line-height:1.15;white-space:nowrap;margin-left:calc(32 * var(--k))}
.pabar__ln em{font-style:normal;color:var(--gold-hi)}
.pabar__sep{width:1px;align-self:stretch;background:rgba(190,150,90,.4);margin-left:auto}
.pabar__call{display:flex;align-items:center;gap:calc(16 * var(--k))}
.pabar__ico{display:block;line-height:0}
.pabar__ico svg{width:calc(38 * var(--k));height:calc(38 * var(--k));fill:#fff}
.pabar__call b{display:block;font-family:var(--f-cond);font-weight:500;font-size:calc(23 * var(--k));
  letter-spacing:.055em;color:#fff;line-height:1.1}
.pabar__call small{display:block;margin-top:calc(4 * var(--k));font-family:var(--f-body);
  font-size:calc(17 * var(--k));color:#B9C6D2;white-space:nowrap}
.pabar .btn{padding:calc(22.5 * var(--k)) calc(26 * var(--k));white-space:nowrap;font-size:calc(19 * var(--k))}

/* ═══════════════════ 04 · THE BOWDEN STATEMENT ═══════════════════ */
.bs{position:relative;background:#020202;isolation:isolate;padding-top:calc(150 * var(--k))}
.bs__stage{position:absolute;inset:0 0 calc(306 * var(--k));overflow:hidden;z-index:-1}
.bs__wood{position:absolute;inset:0;
  background:radial-gradient(ellipse 46% 62% at 74% 46%,rgba(78,52,20,.32),transparent 70%),
             radial-gradient(ellipse 26% 34% at 88% 62%,rgba(150,96,34,.16),transparent 72%)}

.bs__top{position:relative;width:100%;padding-inline:calc((100% - var(--shell)) / 2);
  display:grid;grid-template-columns:calc(700 * var(--k)) 1fr;min-height:0}
.bs__copy{position:relative;z-index:3;padding-bottom:calc(6 * var(--k))}
.bs .eyebrow{font-size:calc(16 * var(--k));letter-spacing:.24em;gap:calc(22 * var(--k));color:var(--gold-hi)}
.bs .eyebrow__ln{flex:0 0 calc(90 * var(--k))}
.bs__h2{margin-top:calc(20 * var(--k));margin-left:calc(-5 * var(--k));
  font-family:var(--f-disp);font-weight:800;
  font-size:calc(123 * var(--k));line-height:.911;letter-spacing:-.014em;text-transform:uppercase}
.bs__copy .rule{margin-top:calc(11 * var(--k));width:calc(52 * var(--k))}
.bs__dek{margin-top:calc(4 * var(--k));font-family:var(--f-serif);font-weight:400;
  font-size:calc(26 * var(--k));line-height:1.3;color:var(--gold-hi)}
.bs__p{margin-top:calc(10 * var(--k));max-width:calc(452 * var(--k));font-size:calc(18.5 * var(--k));
  line-height:1.21;color:#D6D2CB}
.bs__close{margin-top:calc(17 * var(--k));font-family:var(--f-cond);font-weight:600;
  font-size:calc(15 * var(--k));letter-spacing:.14em;color:#fff}

.bs__portrait{position:absolute;right:0;bottom:0;width:calc(845 * var(--k));
  z-index:2;overflow:hidden}
.bs__portrait img{width:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 calc(90 * var(--k)));
          mask-image:linear-gradient(90deg,transparent,#000 calc(90 * var(--k)))}

.quote{position:absolute;right:calc((100% - var(--shell)) / 2 + 29 * var(--k));top:calc(129 * var(--k));
  width:calc(154 * var(--k));z-index:4}
.quote__mk{display:block;font-family:var(--f-serif);font-weight:700;font-size:calc(76 * var(--k));
  line-height:.62;color:var(--gold-hi)}
.quote p{margin-top:calc(24 * var(--k));font-family:var(--f-serif);font-weight:400;
  font-size:calc(22 * var(--k));line-height:1.8;color:#F4F1EA}
.quote__rule{display:block;width:calc(56 * var(--k));height:1px;margin-top:calc(24 * var(--k));
  background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .8s var(--ease-o) .3s}
.quote.in .quote__rule{transform:scaleX(1)}
.quote cite{display:block;margin-top:calc(17 * var(--k));font-family:var(--f-cond);font-weight:500;
  font-style:normal;font-size:calc(15 * var(--k));letter-spacing:.147em;color:var(--gold-hi)}

.story{position:relative;display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(190,150,90,.6);background:#0A0805}
.story__i{position:relative;min-height:calc(306 * var(--k));padding:calc(112 * var(--k)) calc(47 * var(--k)) calc(26 * var(--k));
  overflow:hidden;isolation:isolate}
.bs .eyebrow{font-size:calc(16 * var(--k));letter-spacing:.24em;gap:calc(22 * var(--k))}
.bs .eyebrow__ln{flex:0 0 calc(90 * var(--k))}
.story__i+.story__i::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;
  background:rgba(190,150,90,.5);z-index:3}
.story__img{position:absolute;inset:0 0 auto;height:calc(215 * var(--k));z-index:-1;display:block;overflow:hidden}
.story__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-o)}
.story__img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,8,5,.1) 0%,rgba(10,8,5,.05) 34%,rgba(10,8,5,.72) 80%,#0A0805 100%)}
.story__ico{position:absolute;left:calc(47 * var(--k));top:calc(110 * var(--k));z-index:2;
  width:calc(46 * var(--k));height:calc(46 * var(--k));border-radius:50%;border:1.4px solid var(--gold);
  display:grid;place-items:center;background:rgba(12,8,4,.62);transition:box-shadow .5s var(--ease)}
.story__ico svg{width:calc(24 * var(--k));height:calc(24 * var(--k));fill:none;stroke:var(--gold-hi);
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.story__ico svg .f{fill:var(--gold-hi);stroke:none}
.story__ico svg .cut{fill:#0C0804;stroke:none}
.story__i h3{position:relative;margin-top:calc(64 * var(--k));font-family:var(--f-cond);font-weight:600;
  font-size:calc(14.7 * var(--k));letter-spacing:.245em;line-height:1;color:var(--gold-hi)}
.story__i p{position:relative;margin-top:calc(7 * var(--k));font-size:calc(15.8 * var(--k));
  line-height:1.52;color:#E4E0D8}
.story__i:hover .story__img img{transform:scale(1.07)}
.story__i:hover .story__ico{box-shadow:0 0 0 calc(5 * var(--k)) rgba(214,162,83,.1),0 0 calc(26 * var(--k)) rgba(214,162,83,.3)}

/* ═══════════════════ 05 · TENNESSEE SERVICE AREA ═══════════════════ */
.sa{position:relative;background:#000509;padding:calc(49 * var(--k)) 0 calc(180 * var(--k));isolation:isolate}
.sa__ridge{position:absolute;left:0;right:0;bottom:0;height:calc(186 * var(--k));overflow:hidden;z-index:-1}
.sa__ridge img{width:100%;height:100%;object-fit:cover;transform:translate3d(0,var(--par),0);will-change:transform}
.sa__ridge::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,#000509 0%,rgba(0,5,9,.35) 45%,rgba(0,5,9,.15) 100%)}
.sa__num{width:var(--shell);margin-inline:auto;display:flex;align-items:center;gap:calc(20 * var(--k));
  font-family:var(--f-cond);font-weight:500;font-size:calc(17.2 * var(--k));letter-spacing:.2em;color:var(--blue-txt)}
.sa__num b{font-size:calc(21 * var(--k));font-weight:600;color:#5EA6F2;line-height:1}
.sa__num i{width:1px;height:calc(24 * var(--k));background:rgba(90,150,230,.7)}
.sa__num em{flex:1;max-width:calc(300 * var(--k));height:1px;background:linear-gradient(90deg,rgba(90,150,230,.8),transparent)}

.sa__grid{width:var(--shell);margin:calc(51 * var(--k)) auto 0;display:grid;
  grid-template-columns:calc(511 * var(--k)) 1fr;gap:0}
.sa__left{position:relative;z-index:3}
.sa__right{position:relative;z-index:1}
.sa__h2{font-family:var(--f-serif);font-weight:700;font-size:calc(108 * var(--k));line-height:1;
  color:#F1EEE9;text-transform:uppercase;letter-spacing:-.045em;white-space:nowrap}
.sa__h3{margin-top:calc(40 * var(--k));font-family:var(--f-serif);font-weight:700;
  font-size:calc(57 * var(--k));line-height:1.123;white-space:nowrap}
.sa__h3 .blue{color:#2E63BE}
.sa__grid .rule{margin-top:calc(8 * var(--k));width:calc(74 * var(--k))}
.sa__p{margin-top:calc(24 * var(--k));max-width:calc(505 * var(--k));font-size:calc(20 * var(--k));
  line-height:1.675;color:#C8D2DD}
.sa__cta{margin-top:calc(58 * var(--k));display:inline-flex;align-items:center;gap:calc(26 * var(--k));
  will-change:transform}
.sa__cta-sep{width:1px;height:calc(48 * var(--k));background:rgba(120,160,210,.5)}
.sa__cta-lb{font-family:var(--f-cond);font-weight:400;font-size:calc(24 * var(--k));letter-spacing:.16em;
  color:var(--gold-hi);transition:color .4s}
.sa__cta .arw{width:calc(26 * var(--k));height:calc(12 * var(--k));fill:none;stroke:var(--gold-hi);
  stroke-width:1.5;overflow:visible;transition:transform .45s var(--ease-o)}
.sa__cta:hover .arw{transform:translateX(calc(9 * var(--k)))}
.sa__cta:hover .sa__cta-lb{color:#fff}

.map{position:relative;overflow:hidden;width:calc(967 * var(--k));margin-top:calc(22 * var(--k))}
.map img{width:100%}
.map__dots{position:absolute;inset:0;pointer-events:none}
.map__dots i{position:absolute;left:var(--x);top:var(--y);width:calc(11 * var(--k));height:calc(11 * var(--k));
  margin:calc(-5.5 * var(--k));border-radius:50%;background:#BFE3FF;box-shadow:0 0 calc(14 * var(--k)) rgba(120,190,255,.9)}
.map__dots i::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(150,210,255,.85);
  animation:pulse 3.2s var(--ease) infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(4.2);opacity:0}}

/* ── Goodlettsville: the home office marker ──────────────────────────────────
   Position solved by affine lat/lon fit on the four Middle-TN baked cities,
   anchored to Nashville's painted dot. Move the LABEL if it collides, never
   the marker. */
.map__net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;
  fill:none;stroke:rgba(226,170,88,.5);stroke-width:1.6;stroke-dasharray:1.6 6;
  stroke-linecap:round;opacity:0;transition:opacity 1.1s var(--ease) .55s}
[data-rv="map"].in .map__net{opacity:1}

.map__home{position:absolute;left:var(--gx);top:var(--gy);width:0;height:0;pointer-events:none}
.map__home b{position:absolute;left:0;top:0;width:calc(15 * var(--k));height:calc(15 * var(--k));
  margin:calc(-7.5 * var(--k));border-radius:50%;background:#FFD489;
  box-shadow:0 0 calc(12 * var(--k)) rgba(255,205,120,1),
             0 0 calc(30 * var(--k)) rgba(245,175,70,.85),
             0 0 calc(64 * var(--k)) rgba(214,140,40,.45)}
.map__home i{position:absolute;left:0;top:0;width:calc(26 * var(--k));height:calc(26 * var(--k));
  margin:calc(-13 * var(--k));border-radius:50%;border:1px solid rgba(245,190,105,.95);
  opacity:0;transform:scale(.28)}
[data-rv="map"].in .map__home i{animation:radar 6s cubic-bezier(.16,.6,.3,1) infinite}
[data-rv="map"].in .map__home i:nth-child(2){animation-delay:2s}
[data-rv="map"].in .map__home i:nth-child(3){animation-delay:4s}
@keyframes radar{
  0%   {opacity:0;   transform:scale(.28)}
  12%  {opacity:.7}
  100% {opacity:0;   transform:scale(2.75)}
}
.map__homelb{position:absolute;left:var(--gx);top:var(--gy);pointer-events:none;
  /* nudged east so it does not sit directly over the baked CLARKSVILLE label */
  transform:translate(calc(-50% + 34 * var(--k)),calc(-100% - 20 * var(--k)));text-align:center;white-space:nowrap;
  opacity:0;transition:opacity .8s var(--ease) .9s}
[data-rv="map"].in .map__homelb{opacity:1}
.map__homelb b{display:block;font-family:var(--f-cond);font-weight:500;
  font-size:max(12px,calc(20 * var(--k)));letter-spacing:.19em;color:#F5C46E;
  text-shadow:0 calc(2 * var(--k)) calc(12 * var(--k)) rgba(0,6,14,.95)}
.map__homelb small{display:block;margin-top:calc(4 * var(--k));font-family:var(--f-cond);
  font-weight:400;font-size:max(9.5px,calc(13 * var(--k)));letter-spacing:.3em;
  color:rgba(214,162,83,.82);text-shadow:0 calc(2 * var(--k)) calc(10 * var(--k)) rgba(0,6,14,.95)}

.serve{margin-top:calc(53 * var(--k));width:calc(791 * var(--k));margin-left:calc(78 * var(--k))}
.serve__h{display:flex;align-items:center;gap:calc(22 * var(--k));font-family:var(--f-cond);font-weight:500;
  font-size:calc(21 * var(--k));letter-spacing:.245em;text-indent:.245em;color:var(--blue-txt);line-height:1}
.serve__h i{flex:1;height:1px;background:rgba(70,130,210,.6);transform:scaleX(0);transition:transform .9s var(--ease-o)}
.serve__h i:first-child{transform-origin:100% 50%}
.serve__h i:last-child{transform-origin:0 50%}
.serve__h.in i{transform:scaleX(1)}
/* three columns since the West Tennessee row was pulled (1 Sep 2026) */
.serve__cols{margin-top:calc(39 * var(--k));display:grid;grid-template-columns:repeat(3,1fr)}
.serve__cols ul{position:relative;padding-left:calc(22 * var(--k))}
.serve__cols ul+ul::before{content:"";position:absolute;left:0;top:calc(4 * var(--k));bottom:calc(4 * var(--k));
  width:1px;background:rgba(90,140,210,.35)}
.serve__cols li{position:relative;padding-left:calc(19 * var(--k));margin-bottom:calc(21 * var(--k));
  font-family:var(--f-cond);font-weight:300;font-size:calc(16.5 * var(--k));letter-spacing:.1em;
  line-height:1.05;color:#E6EDF5}
.serve__cols li::before{content:"";position:absolute;left:0;top:calc(9 * var(--k));width:calc(5 * var(--k));
  height:calc(5 * var(--k));border-radius:50%;background:var(--blue-txt)}
.serve__cols li.nb{padding-left:calc(19 * var(--k))}
.serve__cols li.nb::before{display:none}

/* ═══════════════════ 06 · LET'S FIGHT FOR YOU ═══════════════════ */
.cta{position:relative;background:#02101F;min-height:calc(748 * var(--k));isolation:isolate}
.cta__stage{position:absolute;inset:0;overflow:hidden;z-index:-1}
.cta__court{position:absolute;right:0;top:0;width:calc(787 * var(--k));height:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 calc(150 * var(--k)));
          mask-image:linear-gradient(90deg,transparent,#000 calc(150 * var(--k)))}
.cta__court img{width:100%;height:100%;object-fit:cover;object-position:center;
  transform:translate3d(0,var(--par),0) scale(1.04);will-change:transform}
.cta__stage::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#02101F 0%,rgba(2,16,31,.94) 30%,rgba(2,16,31,.3) 54%,transparent 68%)}
.cta__body{position:relative;width:calc(1410 * var(--k));margin-inline:auto;padding:calc(66 * var(--k)) 0 calc(60 * var(--k))}
.cta__h2{margin-top:calc(44 * var(--k));font-family:var(--f-serif);font-weight:700;
  font-size:calc(140 * var(--k));line-height:.95;letter-spacing:-.004em;color:#FBFAF8}
.cta__h2 .gold{color:var(--gold-hi)}
.cta__body .rule{margin-top:calc(45 * var(--k))}
.cta__p{margin-top:calc(26 * var(--k));font-size:calc(25 * var(--k));line-height:1.52;color:#DDE4EC}
.cta__body .btn{margin-top:calc(40 * var(--k))}

/* final-CTA variant B — the page bookends on its own idea */
.cta__h2--disp{font-family:var(--f-disp);font-weight:800;font-size:calc(146 * var(--k));
  line-height:.9;letter-spacing:-.022em}
.tex--gold{background-color:var(--gold-hi)}
.cta__acts{margin-top:calc(40 * var(--k));display:flex;align-items:center;gap:calc(28 * var(--k));flex-wrap:wrap}
.cta__tel{display:inline-flex;align-items:center;gap:.36em;min-height:44px;padding:0 calc(4 * var(--k));
  font-family:var(--f-cond);font-weight:300;font-size:calc(19 * var(--k));letter-spacing:.1em;color:#9DB0C4}
.cta__tel b{font-weight:500;color:var(--gold-hi);letter-spacing:.06em}
.cta__tel:hover b{color:#fff}

/* ═══════════════════ FOOTER ═══════════════════ */
.foot{position:relative;background:#031121 url("../img/stone-navy.jpg") center/cover;
  border-top:1px solid rgba(190,150,90,.5);padding:calc(36 * var(--k)) 0 0}
.foot::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,17,33,.86),rgba(1,10,22,.94))}
.foot__grid{position:relative;width:var(--shell);margin-inline:auto;display:grid;grid-template-columns:repeat(4,1fr)}
.foot__c{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:calc(6 * var(--k)) calc(20 * var(--k)) calc(69 * var(--k))}
.foot__c+.foot__c::before{content:"";position:absolute;left:0;top:calc(14 * var(--k));bottom:calc(10 * var(--k));
  width:1px;background:rgba(160,190,220,.3)}
.foot__ico{width:calc(58 * var(--k));height:calc(58 * var(--k));border-radius:50%;border:1.4px solid var(--gold);
  display:grid;place-items:center;transition:box-shadow .5s var(--ease)}
.foot__ico svg{width:calc(27 * var(--k));height:calc(27 * var(--k));fill:none;stroke:var(--gold-hi);
  stroke-width:1.6;stroke-linejoin:round}
.foot__c:hover .foot__ico{box-shadow:0 0 calc(24 * var(--k)) rgba(214,162,83,.35)}
.foot__lb{margin-top:calc(16 * var(--k));font-family:var(--f-cond);font-weight:500;font-size:calc(19 * var(--k));
  letter-spacing:.1em;color:#fff}
.foot__v{margin-top:calc(8 * var(--k));font-size:calc(25 * var(--k));line-height:1.4;color:#EEF3F8}
a.foot__v:hover{color:var(--cyan-hi)}
.foot__rule{display:block;width:calc(58 * var(--k));height:2px;margin-top:calc(18 * var(--k));background:#1E63B4}
.foot__c--mark{justify-content:center;gap:calc(4 * var(--k))}
.mark svg{width:calc(150 * var(--k));height:calc(84 * var(--k))}
.mark text{font-family:var(--f-serif);font-weight:700;font-size:76px;fill:url(#tbG);letter-spacing:-.09em}
.mark__word{display:flex;align-items:center;gap:calc(14 * var(--k));margin-top:calc(6 * var(--k));
  font-family:var(--f-serif);font-weight:500;font-size:calc(29 * var(--k));letter-spacing:.13em;color:#F6F3EE}
.mark__word i{width:calc(26 * var(--k));height:1px;background:var(--gold)}
.mark__sub{margin-top:calc(12 * var(--k));font-family:var(--f-cond);font-weight:400;font-size:calc(17 * var(--k));
  letter-spacing:.24em;color:#3E8FE0}
.foot__legal{position:relative;width:var(--shell);margin:0 auto;padding:calc(18 * var(--k)) 0 calc(20 * var(--k));
  border-top:1px solid rgba(160,190,220,.16);text-align:center;
  font-size:calc(15 * var(--k));line-height:1.7;color:#7C8B9B}

/* floating call button (mobile) */

/* ═══════════════════ MOTION ═══════════════════ */
/* vertical mask only — a horizontal clip would cut wide display lines (§S5) */
.line{display:block;padding-bottom:.14em;margin-bottom:-.14em;
  -webkit-clip-path:inset(0 -100vw);clip-path:inset(0 -100vw)}
.line__i{display:inline-block;will-change:transform}
.js [data-rv="line"] .line__i{transform:translate3d(0,110%,0) skewY(3deg);opacity:.001;
  transition:transform 1s var(--ease-o),opacity .7s linear}
.js [data-rv="line"].in .line__i{transform:none;opacity:1}

.js [data-rv="up"]{opacity:0;transform:translate3d(0,calc(26 * var(--k)),0);
  transition:opacity .8s var(--ease),transform .9s var(--ease-o)}
.js [data-rv="up"].in{opacity:1;transform:none}

.js [data-rv="rule"]{transform:scaleX(0);transition:transform 1s var(--ease-o)}
.js [data-rv="rule"].in{transform:none}
.js .serve__h[data-rv="rule"]{transform:none}

.js [data-rv="pop"]{opacity:0;transform:translate3d(0,calc(20 * var(--k)),0) scale(.96);
  transition:opacity .7s var(--ease),transform .8s var(--ease-o)}
.js [data-rv="pop"].in{opacity:1;transform:none}

.js [data-rv="card"],.js [data-rv="stat"]{opacity:0;transform:translate3d(0,calc(46 * var(--k)),0);
  transition:opacity .85s var(--ease),transform 1s var(--ease-o)}
.js [data-rv="card"].in,.js [data-rv="stat"].in{opacity:1;transform:none}

.js [data-rv="panel"]{clip-path:inset(0 0 0 0)}
.js .panel__grid{opacity:0;transition:opacity .9s var(--ease) .15s}
.js [data-rv="panel"].in .panel__grid{opacity:1}
.js .panel{position:relative}
.js .panel::before{content:"";position:absolute;inset:0;z-index:5;background:#01060E;
  transform-origin:100% 50%;transition:transform 1.1s var(--ease-o)}
.js .panel.in::before{transform:scaleX(0)}

.js [data-rv="mask"] img{opacity:0;transform:translate3d(0,calc(40 * var(--k)),0) scale(1.04);
  transition:opacity 1.1s var(--ease),transform 1.4s var(--ease-o)}
.js [data-rv="mask"].in img{opacity:1;transform:none}

.js [data-rv="quote"]{opacity:0;transform:translate3d(calc(24 * var(--k)),0,0);
  transition:opacity .9s var(--ease) .2s,transform 1s var(--ease-o) .2s}
.js [data-rv="quote"].in{opacity:1;transform:none}

.js [data-rv="map"]::after{content:"";position:absolute;inset:0;z-index:3;background:#000509;
  transform-origin:100% 50%;transition:transform 1.2s var(--ease-o)}
.js [data-rv="map"].in::after{transform:scaleX(0)}
.js .map__dots i{opacity:0;transform:scale(.2);transition:opacity .5s,transform .6s var(--ease-o)}
.js [data-rv="map"].in .map__dots i{opacity:1;transform:none}
.js [data-rv="map"].in .map__dots i:nth-child(1){transition-delay:.75s}
.js [data-rv="map"].in .map__dots i:nth-child(2){transition-delay:.85s}
.js [data-rv="map"].in .map__dots i:nth-child(3){transition-delay:.95s}
.js [data-rv="map"].in .map__dots i:nth-child(4){transition-delay:1.05s}
.js [data-rv="map"].in .map__dots i:nth-child(5){transition-delay:1.15s}
.js [data-rv="map"].in .map__dots i:nth-child(6){transition-delay:1.25s}
.js [data-rv="map"].in .map__dots i:nth-child(7){transition-delay:1.35s}
.js [data-rv="map"].in .map__dots i:nth-child(8){transition-delay:1.45s}

.js [data-rv="list"] li{opacity:0;transform:translate3d(0,calc(14 * var(--k)),0);
  transition:opacity .6s var(--ease),transform .7s var(--ease-o)}
.js [data-rv="list"].in li{opacity:1;transform:none}
.js [data-rv="list"].in li:nth-child(2){transition-delay:.07s}
.js [data-rv="list"].in li:nth-child(3){transition-delay:.14s}
.js [data-rv="list"].in li:nth-child(4){transition-delay:.21s}
.js [data-rv="list"].in li:nth-child(5){transition-delay:.28s}

.js [data-rv="div"] span{opacity:0;letter-spacing:.9em;transition:opacity .8s var(--ease),letter-spacing 1.1s var(--ease-o)}
.js [data-rv="div"].in span{opacity:1;letter-spacing:1.1em}

/* ═══════════════════ RESPONSIVE ═══════════════════ */
@media (max-width:1180px){
  .nav ul{gap:calc(34 * var(--k))}
  .hdr__tel{display:none}
}
@media (hover:none){
  .btn,.hdr__cta,.drawer__cta,.sa__cta,.pabar__call,.callblk{min-height:48px}
  .foot__v,.foot__c a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
}
@media (max-width:1024px){
  :root{--k:clamp(.62px,100vw / 1180,1px);--shell:min(92vw,1000px);
    /* Tim is sized by width; the band he sits in is budgeted against screen HEIGHT,
       then top-anchored so the crop takes his jacket, never his face. */
    /* INTERIM — one flattened asset. The comp gives Tim no headroom above the nav,
       so the band carries a --heroDrop of invented sky to keep his hairline clear of
       the fixed header. Separating Tim from the landscape removes the need for it. */
    --heroPlate:min(112vw,660px);
    --heroDrop:46px;   /* flattened hero only — split mode zeroes it, see below */
    --heroImg:calc(clamp(180px,min(40vh,var(--heroPlate) * .8565),340px) + var(--heroDrop))}
  body[data-hero="split"]{--heroDrop:0px;--heroImg:clamp(178px,33vh,340px)}
  /* every comp-width container falls back to the fluid shell below the comp */
  .pa__head,.pabar__in,.cta__body{width:var(--shell);margin-inline:auto}
  .pa__divider{width:var(--shell);margin-inline:auto}
  .map,.serve{width:100%;margin-left:0}
  .map{margin-top:0}
  .sa__grid{grid-template-columns:1fr}
  .sa__h2,.sa__h3{white-space:normal}
  .res__h2{white-space:normal}
  .pabar__ln{white-space:normal;margin-left:0}
  .stat__n{font-size:clamp(52px,13vw,104px)}
  .nav,.hdr__cta{display:none}
  .burger{display:block}
  .hdr{height:70px;background:linear-gradient(180deg,rgba(0,6,14,.97) 0%,rgba(0,6,14,.88) 58%,rgba(0,6,14,0) 100%)}
  .hdr.is-stuck{height:62px;background:rgba(0,6,14,.94)}
  .hdr__in{padding-inline:20px}
  .brand__name{font-size:24px;letter-spacing:.06em}
  .brand__tag{font-size:11px;margin-top:6px}

  .hero__stage{inset:0 0 auto;height:var(--heroImg)}
  .hero__plate{width:var(--heroPlate);right:-4%;top:var(--heroDrop);bottom:auto;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20%,#000 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 20%,#000 100%)}
  .hero__veil{background:linear-gradient(180deg,rgba(0,6,14,.66) 0%,rgba(0,8,20,.08) 26%,rgba(0,8,20,.42) 76%,rgba(0,8,20,.9) 94%,var(--ink) 100%)}
  .hero__body{padding-top:calc(var(--heroImg) - 30px);min-height:0;padding-bottom:12px}
  body[data-hero="split"] .hero__body{padding-top:calc(var(--heroImg) - 26px)}
  .hero__h1{font-size:clamp(58px,15vw,132px)}
  .hero__lede{max-width:none;font-size:16px;line-height:1.5;margin-top:8px}
  .hero__acts{flex-wrap:wrap;gap:11px;margin-top:12px}
  .hero__acts .btn{min-width:0;width:100%;justify-content:space-between;padding:16px 20px;font-size:15px;min-height:48px}
  .hero__plus{display:none}
  .callblk__ring{width:46px;height:46px}
  .callblk__ring svg{width:20px;height:20px}
  .callblk__txt b{font-size:20px}
  .callblk__txt small{font-size:12px}

  .res{padding-top:38px}
  .res__hrule{margin-top:14px}
  .panel{margin-top:24px}
  .res__h2{font-size:clamp(30px,7.4vw,62px)}
  .res__sub{font-size:16px}
  .panel{width:92vw;height:auto;padding:8px 0}
  .panel__grid{grid-template-columns:repeat(2,1fr)}
  .stat{padding:28px 12px}
  .stat+.stat::before{content:none}
  .stat:nth-child(even)::before{content:"";left:0}
  .stat__n{font-size:clamp(52px,13vw,104px)}
  .stat__ico svg{width:44px;height:52px}
  .stat__lb{font-size:14px}
  .stat__cp{font-size:15px}

  .pa__stage{height:300px}
  .pa__cols{width:78%}
  .pa__h2{font-size:clamp(32px,8vw,66px)}
  .pa__sub{font-size:15px}
  .pa__divider{font-size:13px;letter-spacing:.3em}
  .cards{grid-template-columns:repeat(2,1fr)}
  .card{padding-bottom:0}
  .card__wrap{padding-bottom:22px}
  .card+.card::before{content:none}
  .card:nth-child(even)::before{content:"";left:0}
  .card__img{aspect-ratio:246/172}
  .card__ico{width:52px;height:52px;top:12px}
  .card__ico svg{width:27px;height:27px}
  .card__t{font-size:17px;margin-top:12px}
  .card__rule{margin-top:10px}
  .card__cp{font-size:13px;max-width:none;margin-top:8px;letter-spacing:.05em;line-height:1.4}
  .pabar__in{flex-wrap:wrap;gap:18px;justify-content:center;text-align:center}
  .pabar__ln{font-size:20px;width:100%}
  .pabar__sep{display:none}
  .pabar .btn{width:100%;justify-content:space-between;font-size:14px}

  .bs{padding-top:44px}
  .bs__stage{inset:0}
  .bs__top{grid-template-columns:1fr;min-height:0;width:var(--shell);margin-inline:auto;padding-inline:0}
  .bs__h2{font-size:clamp(40px,11vw,92px)}
  .bs__dek{font-size:21px}
  .bs__p{max-width:none;font-size:16px}
  .bs__portrait{position:relative;right:auto;width:100%;margin-top:26px}
  .bs__portrait img{mask-image:none;-webkit-mask-image:none}
  .quote{position:relative;right:auto;top:auto;width:100%;margin-top:26px;
    border-left:2px solid var(--gold);padding-left:18px}
  .quote p{font-size:20px}
  .quote p br{display:none}
  .story{grid-template-columns:repeat(2,1fr);margin-top:26px}
  .story__i{min-height:0;padding:88px 16px 18px}
  .story__img{height:132px}
  .story__ico{left:16px;top:84px;width:38px;height:38px}
  .story__ico svg{width:19px;height:19px}
  .story__i h3{font-size:15px;margin-top:40px}
  .story__i p{font-size:14px;margin-top:6px;line-height:1.45}
  .story__i p br{display:none}

  .sa{padding-top:34px;padding-bottom:118px}
  .sa__grid{grid-template-columns:1fr;gap:34px}
  .sa__h2{font-size:clamp(44px,11vw,92px)}
  .sa__h3{font-size:clamp(26px,6.4vw,50px)}
  .sa__p{max-width:none;font-size:16px}
  .sa__num{font-size:13px}
  .serve__cols{grid-template-columns:repeat(2,1fr);gap:0 10px}
  .serve__h{font-size:14px;letter-spacing:.14em}
  /* the map is ~360px wide here — the annotation has to sit with the map's own
     baked labels, not tower over them. aria-hidden, so it is graphic, not body copy. */
  .map__home b{width:7px;height:7px;margin:-3.5px;
    box-shadow:0 0 6px rgba(255,205,120,1),0 0 15px rgba(245,175,70,.85),0 0 30px rgba(214,140,40,.45)}
  .map__home i{width:13px;height:13px;margin:-6.5px}
  /* lifted clear of the baked CLARKSVILLE label rather than moving the marker */
  .map__homelb{transform:translate(calc(-50% + 14px),calc(-100% - 12px))}
  .map__homelb b{font-size:9px;letter-spacing:.14em}
  .map__homelb small{margin-top:1px;font-size:7.5px;letter-spacing:.18em}
  .map__net{stroke-width:2.4;stroke-dasharray:2 7}
  .serve__cols li{font-size:14px}

  .cta{min-height:0}
  .cta__stage{inset:0}
  .cta__court{width:100%;mask-image:none;-webkit-mask-image:none;opacity:.55}
  .cta__stage::after{background:linear-gradient(180deg,rgba(2,16,31,.7),rgba(2,16,31,.95))}
  .cta__body{padding:44px 0 46px}
  .cta__h2{font-size:clamp(46px,12vw,104px)}
  .cta__h2--disp{font-size:clamp(44px,12.5vw,120px)}
  .cta__acts{gap:14px;margin-top:26px}
  .cta__acts .btn{width:100%;justify-content:space-between}
  .cta__tel{flex:1 0 100%;text-align:center}
  .cta__p{font-size:17px}
  .cta__body .btn{width:100%;justify-content:space-between;font-size:14px}

  .foot__grid{grid-template-columns:repeat(2,1fr);gap:18px 0}
  .foot__c:nth-child(odd)::before{content:none}
  .foot__c:nth-child(even)::before{content:""}
  .foot__v{font-size:18px}
  .foot__lb{font-size:14px}
  .foot__ico{width:44px;height:44px}
  .foot__ico svg{width:21px;height:21px}
  .mark svg{width:110px;height:62px}
  .mark__word{font-size:20px}
  .mark__sub{font-size:12px}
  .foot__legal{font-size:12px}
}
@media (max-width:768px){
  .pa__stage{height:196px}
  .rev{padding:44px 0 40px}
  .rev__h2{font-size:clamp(34px,9vw,74px)}
  .rev__grid{grid-template-columns:1fr;gap:30px;margin-top:28px}
  .feat{padding:22px 20px 26px}
  .feat__lb{font-size:12.5px;letter-spacing:.24em;text-indent:.24em}
  .feat__q{font-size:19px;line-height:1.45;padding-left:30px}
  .feat__mk{font-size:50px;top:-4px}
  .feat__by b{font-size:17px}
  .feat__by span{font-size:13.5px}
  .stars svg{width:16px;height:15px}
  .revlist__by b{font-size:15px}
  .revlist__i blockquote{font-size:15px;line-height:1.5}
  .rating{padding:14px 16px;gap:8px 12px}
  .rating__src{font-size:26px}
  .rating__n{font-size:13px}
  .rating__n b{font-size:17px}
  .rating__c{font-size:12.5px}
  .rev__cta{gap:14px;margin-top:30px}
  .rev__cta p{font-size:20px;flex:1 0 100%;margin-right:0}
  .rev__cta .btn{width:100%;justify-content:space-between}
  .rev__tel{flex:1 0 100%;text-align:center}
  .pa__cols{width:96%}
  .pa__stage::after{background:linear-gradient(90deg,#01060E 0%,rgba(1,6,14,.96) 42%,rgba(1,6,14,.62) 74%,rgba(1,6,14,.35) 100%),
    linear-gradient(180deg,rgba(1,6,14,.55) 0%,transparent 30%,#01060E 100%)}
  .pa__shaft{display:none}
  .pa__divider{letter-spacing:.34em;text-indent:.34em;font-size:12px;gap:12px;margin-top:28px}
  .card__cp{max-width:none;font-size:12px;letter-spacing:.04em}
  .card__img{aspect-ratio:246/230}
  .quote p{font-size:18px}
  .quote__mk{font-size:52px}
  .foot__v,.drawer__tel{display:inline-flex;align-items:center;min-height:44px}
  .foot__c{padding-bottom:20px}
  .foot__rule{margin-top:10px}
}
@media (max-width:560px){
  .serve__cols{grid-template-columns:repeat(2,1fr)}
  .hero__h1{font-size:clamp(52px,16.5vw,90px)}
  .cta__h2 br,.bs__dek br,.sa__p br,.quote p br,.stat__cp br,.story__i p br{display:none}
  .story__i h3{font-size:13px;letter-spacing:.16em}
  .story__i p{font-size:14px}
  .card__t{font-size:15px}
  .foot__grid{grid-template-columns:repeat(2,1fr)}
  .foot__c:nth-child(odd)::before{content:none}
  .foot__c:nth-child(even)::before{content:""}
  /* stats keep two columns — four stacked full-width numbers is a whole screen of nothing */
  .panel{padding:0}
  .stat{padding:22px 10px 24px}
  .stat:nth-child(odd)::before{content:none}
  .stat:nth-child(even)::before{content:"";top:0;bottom:0}
  .stat:nth-child(n+3)::after{content:"";position:absolute;left:8%;right:8%;top:0;height:1px;
    background:rgba(200,160,95,.4)}
  .stat__ico svg{height:44px}
  .stat__n{font-size:clamp(46px,12.5vw,104px);margin-top:10px}
  .stat__lb{font-size:13px;margin-top:10px}
  .stat__rule{margin-top:12px}
  .stat__cp{font-size:13.5px;margin-top:10px;line-height:1.5}
}
/* 320-class screens only: the fold is ~454px, so the hero gets a tighter budget */
@media (max-width:360px){
  :root{--heroDrop:34px;--heroImg:calc(clamp(150px,36vh,340px) + var(--heroDrop))}
  body[data-hero="split"]{--heroDrop:0px;--heroImg:clamp(172px,33vh,332px)}
  .hero__h1{font-size:clamp(46px,15vw,90px)}
  .hero__lede{font-size:15px;line-height:1.46}
  .hero__acts .btn{font-size:14px;padding:14px 18px}
}
@media (max-width:400px){
  /* drop the plate below the header band so the logo never sits on his face */
  :root{--heroDrop:34px;--heroImg:calc(clamp(150px,36vh,340px) + var(--heroDrop))}
  body[data-hero="split"]{--heroDrop:0px;--heroImg:clamp(172px,33vh,332px)}
  .hdr__in{padding-inline:14px}
  .burger{width:44px}
  .card__cp{font-size:12.5px}
  .story__i p{font-size:13.5px}
  .foot__v{font-size:16px}
}
@media (max-width:340px){
  /* 320 keeps two columns — stacking six cards here costs a full extra screen */
  .foot__grid{grid-template-columns:1fr}
  .foot__c::before{content:none !important}
  .foot__c+.foot__c{border-top:1px solid rgba(190,150,90,.28)}
  .card__img{aspect-ratio:246/168}
  .card__t{font-size:13.5px}
  .card__cp{font-size:12px;letter-spacing:.02em;line-height:1.36}
  .story__i{padding:76px 12px 16px}
  .story__img{height:112px}
  .story__ico{left:12px;top:72px;width:34px;height:34px}
  .story__ico svg{width:17px;height:17px}
  .story__i h3{font-size:12px;margin-top:34px;letter-spacing:.1em}
  .story__i p{font-size:13px}
  .serve__cols li{font-size:13px;margin-bottom:16px}
  .stat__n{font-size:clamp(38px,12vw,104px)}
}

@media (prefers-reduced-motion:reduce){
  .map__home i{animation:none !important;opacity:.34;transform:scale(1.8)}
  .map__home i:nth-child(2){transform:scale(2.7)}
  .map__home i:nth-child(3){transform:scale(3.5)}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important}
  .js [data-rv],.js [data-rv] .line__i{opacity:1 !important;transform:none !important}
  .js [data-rv="div"] span{letter-spacing:.44em}
  .js .panel::before,.js [data-rv="map"]::after{transform:scaleX(0) !important}
  .js .panel__grid,.js [data-rv="mask"] img,.js [data-rv="list"] li,.js .map__dots i{opacity:1 !important;transform:none !important}
  .js .stat__rule,.js .card__rule,.js .quote__rule,.js .serve__h i,.js .pa__divider i{transform:none !important}
  .hero__plate img{transform:none !important}
}

/* ═══════════════════════════════════════════════════════════════════
   INTERIOR PAGE SYSTEM
   One shell for every page that is not the approved homepage. Same four
   faces, same two accents, same square edges — a compact hero instead of
   the cinematic one, so interiors read as the same brand without pretending
   to be the front door.
   ═══════════════════════════════════════════════════════════════════ */
body.interior{background:#01060E}
body.interior .hdr{background:rgba(0,6,14,.9);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(255,255,255,.07)}
body.interior .hdr__prog{opacity:1}
.nav a[aria-current=page]::after{transform:scaleX(1);transform-origin:0 50%}

/* — breadcrumb — */
.crumbs{padding-top:calc(18 * var(--k))}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:calc(10 * var(--k));
  font-family:var(--f-cond);font-weight:300;font-size:max(13px,calc(15 * var(--k)));letter-spacing:.12em;color:#8FA0B3}
.crumbs li+li::before{content:"/";margin-right:calc(10 * var(--k));color:rgba(190,150,90,.6)}
.crumbs a{display:inline-flex;align-items:center;min-height:34px;color:#A9BACE}
.crumbs a:hover{color:var(--gold-hi)}
.crumbs [aria-current=page]{color:#E7EDF4}

/* — compact interior hero — */
.ihero{position:relative;isolation:isolate;padding-bottom:calc(58 * var(--k));
  border-bottom:1px solid rgba(190,150,90,.35)}
.ihero__stage{position:absolute;inset:0;overflow:hidden;z-index:-1}
.ihero__plate{position:absolute;right:0;top:0;width:calc(720 * var(--k));height:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 62%);mask-image:linear-gradient(90deg,transparent,#000 62%)}
.ihero__plate img{width:100%;height:100%;object-fit:cover;object-position:60% 40%;opacity:.5;
  transform:translate3d(0,var(--par),0) scale(1.05);will-change:transform}
.ihero__stage::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#01060E 0%,rgba(1,6,14,.94) 38%,rgba(1,6,14,.55) 70%,rgba(1,6,14,.3) 100%),
             linear-gradient(180deg,rgba(1,6,14,.9) 0%,transparent 34%,rgba(1,6,14,.85) 100%)}
.ihero__in{width:var(--shell);margin-inline:auto;padding-top:calc(101 * var(--k))}
.ihero__grid{margin-top:calc(30 * var(--k));display:grid;
  grid-template-columns:minmax(0,1fr) calc(300 * var(--k));gap:calc(56 * var(--k));align-items:center}
.ihero__h1{margin-top:calc(16 * var(--k));font-family:var(--f-serif);font-weight:700;
  font-size:calc(78 * var(--k));line-height:1.04;letter-spacing:-.008em;color:#FBFAF8}
.ihero__copy .rule{margin-top:calc(20 * var(--k))}
.ihero__dek{margin-top:calc(20 * var(--k));max-width:calc(660 * var(--k));
  font-size:calc(21 * var(--k));line-height:1.6;color:#C6D0DB}
.ihero__acts{margin-top:calc(30 * var(--k));display:flex;align-items:center;gap:calc(24 * var(--k));flex-wrap:wrap}
.ihero__tel{display:inline-flex;align-items:center;gap:.36em;min-height:44px;padding:0 calc(4 * var(--k));
  font-family:var(--f-cond);font-weight:300;font-size:calc(18 * var(--k));letter-spacing:.1em;color:#9DB0C4}
.ihero__tel b{font-weight:500;color:var(--gold-hi);letter-spacing:.06em}
.ihero__tel:hover b{color:#fff}
.ihero__shot{position:relative;overflow:hidden;border:1px solid rgba(190,150,90,.5)}
.ihero__shot img{width:100%;display:block}
.ihero__shot::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(1,6,14,.1),rgba(1,6,14,.55))}

/* — body + sidebar — */
.ibody{position:relative;padding:calc(68 * var(--k)) 0 calc(20 * var(--k))}
.ibody__in{width:var(--shell);margin-inline:auto;display:grid;
  grid-template-columns:minmax(0,1fr) calc(360 * var(--k));gap:calc(72 * var(--k));align-items:start}
.ibody__in--wide{grid-template-columns:1fr}
.prose{max-width:calc(820 * var(--k))}
.prose__lede{font-size:calc(24 * var(--k));line-height:1.58;color:#E4EAF1}
.prose__h{margin-top:calc(44 * var(--k));font-family:var(--f-serif);font-weight:700;
  font-size:calc(38 * var(--k));line-height:1.18;color:#F6F3EE}
.prose p{margin-top:calc(16 * var(--k));font-size:calc(20 * var(--k));line-height:1.68;color:#BFCBD8}
.faq{margin-top:calc(18 * var(--k))}
.faq dt{margin-top:calc(26 * var(--k));font-family:var(--f-cond);font-weight:500;
  font-size:calc(21 * var(--k));letter-spacing:.05em;color:var(--gold-hi)}
.faq dd{margin:calc(10 * var(--k)) 0 0;font-size:calc(20 * var(--k));line-height:1.66;color:#BFCBD8}
.prose__note{margin-top:calc(46 * var(--k));padding-top:calc(18 * var(--k));
  border-top:1px solid rgba(160,190,220,.18);font-size:calc(16 * var(--k));line-height:1.7;color:#7C8B9B}

.iside{position:sticky;top:calc(118 * var(--k))}
.icard{border:1px solid rgba(190,150,90,.45);padding:calc(28 * var(--k)) calc(26 * var(--k));
  background:linear-gradient(180deg,rgba(8,20,38,.7),rgba(2,10,22,.7))}
.icard__h{font-family:var(--f-cond);font-weight:500;font-size:calc(17 * var(--k));letter-spacing:.28em;
  color:var(--gold-hi)}
.icard__tel{display:flex;align-items:center;min-height:48px;margin-top:calc(8 * var(--k));
  font-family:var(--f-cond);font-weight:500;
  font-size:calc(32 * var(--k));letter-spacing:.05em;color:#fff}
.icard__tel:hover{color:var(--cyan-hi)}
.icard__sub{margin-top:calc(8 * var(--k));font-size:calc(17 * var(--k));color:#9DACBC}
.icard .btn{margin-top:calc(22 * var(--k));width:100%;justify-content:space-between;
  padding:calc(18 * var(--k)) calc(20 * var(--k));font-size:calc(17 * var(--k))}
.ilinks{margin-top:calc(30 * var(--k));border-top:1px solid rgba(160,190,220,.2);padding-top:calc(22 * var(--k))}
.ilinks__h{font-family:var(--f-cond);font-weight:500;font-size:calc(16 * var(--k));letter-spacing:.26em;color:#7E93A8}
.ilinks ul{margin-top:calc(14 * var(--k))}
.ilinks li+li{border-top:1px solid rgba(160,190,220,.12)}
.ilinks a{display:block;padding:calc(12 * var(--k)) 0;font-family:var(--f-cond);font-weight:300;
  font-size:calc(19 * var(--k));letter-spacing:.08em;color:#C3CEDA}
.ilinks a:hover{color:var(--gold-hi)}

/* — hub grid — */
.hubgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(30 * var(--k))}
.hubcard{position:relative;border:1px solid rgba(160,190,220,.18);background:rgba(4,12,24,.6)}
.hubcard a{display:block;padding-bottom:calc(26 * var(--k))}
.hubcard__img{display:block;position:relative;overflow:hidden;aspect-ratio:16/9}
.hubcard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-o)}
.hubcard__img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(1,6,14,.15),rgba(1,6,14,.75))}
.hubcard h2{margin:calc(22 * var(--k)) calc(24 * var(--k)) 0;font-family:var(--f-serif);font-weight:600;
  font-size:calc(28 * var(--k));color:#F6F3EE}
.hubcard p{margin:calc(12 * var(--k)) calc(24 * var(--k)) 0;font-size:calc(18 * var(--k));
  line-height:1.6;color:#A9B6C4}
.hubcard__go{display:inline-flex;align-items:center;gap:calc(10 * var(--k));
  margin:calc(18 * var(--k)) calc(24 * var(--k)) 0;font-family:var(--f-cond);font-weight:400;
  font-size:calc(17 * var(--k));letter-spacing:.14em;color:var(--gold-hi)}
.hubcard__go .arw{width:calc(22 * var(--k));height:calc(11 * var(--k));fill:none;stroke:currentColor;
  stroke-width:1.6;transition:transform .4s var(--ease-o)}
.hubcard:hover .hubcard__img img{transform:scale(1.06)}
.hubcard:hover .hubcard__go .arw{transform:translateX(calc(6 * var(--k)))}
.hubcard:hover{border-color:rgba(190,150,90,.5)}

/* — closing CTA band — */
.icta{position:relative;margin-top:calc(60 * var(--k));border-top:1px solid rgba(190,150,90,.55);
  background:#041428 url("../img/stone-navy.jpg") center/cover}
.icta::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,18,38,.93),rgba(2,12,26,.9))}
.icta__in{position:relative;width:var(--shell);margin-inline:auto;display:flex;align-items:center;
  gap:calc(30 * var(--k));padding:calc(34 * var(--k)) 0}
.icta__ln{font-family:var(--f-serif);font-weight:600;font-size:calc(28 * var(--k));color:#F6F3EE;margin-right:auto}
.icta__ln em{font-style:normal;color:var(--gold-hi)}
.icta__tel{display:inline-flex;align-items:center;gap:.36em;min-height:44px;padding:0 calc(4 * var(--k));
  font-family:var(--f-cond);font-weight:300;font-size:calc(18 * var(--k));letter-spacing:.1em;color:#9DB0C4}
.icta__tel b{font-weight:500;color:var(--gold-hi);letter-spacing:.06em}

/* — case-review form — */
.crf{max-width:calc(760 * var(--k))}
.crf__row{display:grid;grid-template-columns:1fr 1fr;gap:calc(20 * var(--k));margin-top:calc(20 * var(--k))}
.crf__f--full{display:block;margin-top:calc(20 * var(--k))}
.crf__f{display:block}
.crf__f span{display:block;font-family:var(--f-cond);font-weight:400;
  font-size:max(14px,calc(16 * var(--k)));letter-spacing:.14em;color:#B5C3D2}
.crf__f span b{color:var(--gold-hi);font-weight:400}
.crf input,.crf select,.crf textarea{width:100%;margin-top:calc(8 * var(--k));
  padding:calc(14 * var(--k)) calc(14 * var(--k));background:rgba(3,12,24,.8);color:#EDF2F8;
  border:1px solid rgba(160,190,220,.32);font-family:var(--f-body);font-size:calc(19 * var(--k));
  min-height:48px;transition:border-color .25s var(--ease)}
.crf textarea{min-height:calc(150 * var(--k));resize:vertical;line-height:1.55}
.crf input:hover,.crf select:hover,.crf textarea:hover{border-color:rgba(190,150,90,.5)}
.crf input:focus,.crf select:focus,.crf textarea:focus{outline:2px solid var(--gold-hi);outline-offset:1px;
  border-color:var(--gold-hi)}
.crf input:user-invalid,.crf textarea:user-invalid{border-color:#C4585C}
.crf__err{display:block;margin-top:calc(6 * var(--k));font-family:var(--f-cond);font-size:max(13px,calc(15 * var(--k)));
  letter-spacing:.08em;color:#E48A8E;min-height:calc(18 * var(--k))}
.crf__consent{margin-top:calc(24 * var(--k));display:flex;gap:calc(12 * var(--k));align-items:flex-start;
  font-size:calc(16.5 * var(--k));line-height:1.6;color:#9DACBC}
.crf__consent input{width:auto;min-height:0;margin:calc(3 * var(--k)) 0 0;accent-color:var(--gold)}
.crf__submit{margin-top:calc(26 * var(--k))}
.crf__note{margin-top:calc(22 * var(--k));padding:calc(12 * var(--k)) calc(16 * var(--k));
  border:1px dashed rgba(190,150,90,.45);font-family:var(--f-cond);font-size:calc(15 * var(--k));
  letter-spacing:.1em;color:#BE9F63}

@media (max-width:1024px){
  .ihero{padding-bottom:34px}
  .ihero__in{padding-top:88px}
  .ihero__grid{grid-template-columns:1fr;gap:24px;margin-top:20px}
  .ihero__h1{font-size:clamp(34px,8.4vw,66px)}
  .ihero__dek{font-size:17px;max-width:none}
  .ihero__plate{width:100%;mask-image:none;-webkit-mask-image:none}
  .ihero__plate img{opacity:.32}
  .ihero__shot{max-width:320px}
  .ihero__acts{gap:14px}
  .ihero__acts .btn{width:100%;justify-content:space-between}
  .ihero__tel{flex:1 0 100%;text-align:center}
  .ibody{padding:38px 0 10px}
  .ibody__in{grid-template-columns:1fr;gap:36px}
  .prose{max-width:none}
  .prose__lede{font-size:18px}
  .prose__h{font-size:24px;margin-top:30px}
  .prose p,.faq dd{font-size:16.5px}
  .faq dt{font-size:17px}
  .iside{position:static}
  .icard__tel{font-size:26px}
  .hubgrid{grid-template-columns:repeat(2,1fr);gap:18px}
  .hubcard h2{font-size:20px;margin-inline:16px}
  .hubcard p{font-size:15px;margin-inline:16px}
  .hubcard__go{margin-inline:16px;font-size:14px}
  .icta__in{flex-wrap:wrap;gap:16px;padding:26px 0}
  .icta__ln{font-size:20px;flex:1 0 100%;margin-right:0}
  .icta .btn{width:100%;justify-content:space-between}
  .icta__tel{flex:1 0 100%;text-align:center}
  .crf__row{grid-template-columns:1fr;gap:14px}
}
@media (max-width:560px){
  .hubgrid{grid-template-columns:1fr}
  .ihero__shot{max-width:none}
}
.crf__status{margin-top:calc(14 * var(--k));font-family:var(--f-cond);font-size:calc(17 * var(--k));
  letter-spacing:.06em;color:var(--gold-hi);min-height:calc(22 * var(--k))}
.prose__tel{color:var(--cyan-hi);border-bottom:1px solid rgba(52,182,242,.4)}
.prose__tel:hover{color:#fff}
.crf__note code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;color:#9C8654}

/* tablet landscape still uses the stacked layout, but at 700-1024 the frame is
   wide enough that a 660px plate leaves Tim stranded in dead space */
@media (min-width:700px) and (max-width:1024px){
  :root{--heroPlate:min(104vw,760px);--heroImg:calc(clamp(240px,min(42vh,var(--heroPlate) * .8565),400px) + var(--heroDrop))}
  .hero__plate{right:-2%}
}

/* ═══════════════════════════════════════════════════════════════════
   MOBILE READABILITY FLOOR
   --k scales the whole comp down on small screens, which is right for
   composition and wrong for the smallest labels. Below the tablet break,
   every sustained reading size gets an explicit floor.
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width:1024px){
  .brand__tag{font-size:12px}
  .eyebrow{font-size:12.5px}
  .hero .eyebrow{font-size:13px}
  .feat__by b{font-size:14px}
  .pabar__call small{font-size:13px}
  .pabar__call b{font-size:15px}
  .prose__tel{display:inline-flex;align-items:center;min-height:44px}
  .crumbs a{min-height:44px}
  .callblk__txt small{font-size:12.5px}
  .feat__by span{font-size:14px}
  .revlist__i p{font-size:15px}
  .revlist__i cite{font-size:13px}
  .rating__src{font-size:13px}
  .rev__tel,.cta__tel,.ihero__tel,.icta__tel{font-size:15px}
  /* interior */
  .crumbs ol{font-size:13px;gap:8px}
  .crumbs a{min-height:38px}
  .crf__f span{font-size:14px}
  .crf__consent{font-size:14.5px;gap:10px}
  .crf__note{font-size:12.5px}
  .crf__status{font-size:15px}
  .icard__h{font-size:13px}
  .icard__sub{font-size:14.5px}
  .icard .btn{font-size:14px}
  .ilinks__h{font-size:13px}
  .ilinks a{font-size:16px;padding:13px 0;min-height:46px;display:flex;align-items:center}
  .prose__note{font-size:13.5px}
  .icta__ln{font-size:20px}
  .hubcard__go{min-height:44px}
}

/* ═══════════════════════════════════════════════════════════════════
   HERO — SPLIT ASSETS  (enabled by tools/hero-split.py --on)
   Asset A: hero-land.jpg — the Tennessee valley, nobody in it
   Asset B: hero-tim.png  — Tim on transparent
   Two layers means his position stops being welded to the landscape crop,
   so mobile can show the sunset instead of invented sky. Inert until the
   body carries data-hero="split".
   ═══════════════════════════════════════════════════════════════════ */
body[data-hero="split"]{
  /* desktop defaults — written by tools/hero-fit.py from the approved reference */
  --timW: 490;            /* Tim's rendered width, in comp px  */
  --timR: 247;             /* his right edge, in comp px from the viewport right */
  --timB: -18;              /* his bottom edge, in comp px below the hero band   */
  --landW: 1380;          /* Asset A width in comp px   */
  --landL: 165;             /* its left edge, comp px     */
  --landT: 37;             /* its top edge, comp px      */
  --landPosX: 50%;
  --landPosY: 50%;
  /* the approved comp grades him to 0.80 gain on every channel to sit him in the
     night scene — measured over 3314 matched pixels, not invented. */
  --timGrade: .80;
  /* Asset A grades ~14% darker than the landscape in the approved comp;
     measured zone by zone, not eyeballed. */
  --landGrade: 1.14;
}
body[data-hero="split"] .hero__land,
body[data-hero="split"] .hero__tim{position:absolute;overflow:visible}
body[data-hero="split"] .hero__land picture,
body[data-hero="split"] .hero__tim picture{display:contents}
body[data-hero="split"] .hero__land{inset:0;overflow:hidden}
/* desktop places the landscape by measured offset so the approved framing is exact;
   below the tablet break it switches to cover + object-position, where the crop is
   chosen for composition rather than for matching a 1536-wide comp */
body[data-hero="split"] .hero__land img{position:absolute;
  width:calc(var(--landW) * var(--k));height:auto;
  left:calc(var(--landL) * var(--k));top:calc(var(--landT) * var(--k));
  filter:brightness(var(--landGrade));
  transform:translate3d(0,var(--par),0) scale(var(--sc,1));transform-origin:50% 100%;will-change:transform}
body[data-hero="split"] .hero__tim{right:calc(var(--timR) * var(--k));bottom:calc(var(--timB) * var(--k));
  width:calc(var(--timW) * var(--k))}
body[data-hero="split"] .hero__tim img{width:100%;height:auto;display:block;
  transform:translate3d(0,var(--par),0);will-change:transform;
  filter:brightness(var(--timGrade)) drop-shadow(0 calc(18 * var(--k)) calc(46 * var(--k)) rgba(0,4,12,.55))}
/* the scrim that used to sit on the flattened plate now sits BETWEEN the two layers,
   so the landscape can be darkened for legibility without dimming Tim */
body[data-hero="split"] .hero__veil--back{position:absolute;inset:0;
  background:linear-gradient(90deg,var(--ink) 0%,rgba(0,8,20,.9) 21%,rgba(0,8,20,.3) 32%,rgba(0,8,20,0) 43%),
             linear-gradient(180deg,rgba(0,6,14,.62) 0%,rgba(0,6,14,0) 16%,rgba(0,6,14,0) 84%,rgba(0,7,17,.3) 94%,rgba(0,7,17,.6) 100%)}
body[data-hero="split"] .hero__veil:not(.hero__veil--back){
  background:linear-gradient(180deg,transparent 70%,rgba(0,8,20,.5) 85%,rgba(1,10,24,.95) 94%,var(--ink-2) 97%,var(--ink-2) 100%)}

@media (max-width:1024px){
  /* MOBILE IS RECOMPOSED, NOT SCALED DOWN.
     The landscape is positioned on its horizon band — sunset, hills, river — instead
     of its sky, and Tim is placed against it independently. No invented sky, no
     --heroDrop: the header sits over landscape, not over dead navy. */
  /* the landscape is cropped to its HORIZON — sunset, hills, river — not its sky,
     and Tim is placed against it independently. No invented sky, no --heroDrop. */
  body[data-hero="split"]{--landPosX:62%;--landPosY:72%;
    --timTm:calc(70px + 15px);           /* header height + air above his hair */
    /* his size is set by the room BELOW the header, not by the band or the viewport,
       so his face stays the same proportion of the space it actually has */
    --timWm:min(calc((var(--heroImg) - var(--timTm)) * 1.48), 68vw);
    --timRm:-7vw}
  body[data-hero="split"] .hero__land img{position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;object-position:var(--landPosX) var(--landPosY);left:auto;top:auto;
    transform:translate3d(0,var(--par),0)}
  body[data-hero="split"] .hero__tim{left:auto;right:var(--timRm);top:var(--timTm);bottom:auto;
    width:var(--timWm);margin-left:0}
  body[data-hero="split"] .hero__veil--back{
    background:linear-gradient(180deg,rgba(0,6,14,.78) 0%,rgba(0,8,20,.2) 26%,rgba(0,8,20,.22) 62%,rgba(0,8,20,.72) 92%,var(--ink) 100%)}
  body[data-hero="split"] .hero__tim img{filter:brightness(var(--timGrade)) drop-shadow(0 8px 26px rgba(0,4,12,.6))}
  body[data-hero="split"] .hero__veil:not(.hero__veil--back){
    background:linear-gradient(180deg,transparent 66%,rgba(0,8,20,.5) 88%,rgba(0,8,20,.94) 99%,var(--ink) 100%)}
}
@media (min-width:700px) and (max-width:1024px){
  body[data-hero="split"]{--landPosX:58%;--landPosY:70%;
    --timWm:min(calc((var(--heroImg) - var(--timTm)) * 1.34), 46vw);--timRm:-1vw}
}

/* ═══════════════════ 12 · PRACTICE-AREAS MENU ═══════════════════
   Desktop mega panel + mobile disclosure. Links are real <a href> in the
   markup on every page — the panel is a visibility state, never JS routing. */

.nav__has{position:relative}
.nav .nav__top{display:inline-flex;align-items:center;gap:calc(8 * var(--k))}
.nav__chev{width:calc(10 * var(--k));height:calc(6 * var(--k));flex:none;fill:none;
  stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.6;
  transition:transform .42s var(--ease-o),opacity .34s}
.nav__has:hover .nav__chev,.nav__has:focus-within .nav__chev{transform:rotate(180deg);opacity:1}

/* The bridge padding is exactly the measured distance from the nav item's bottom to
   the header's bottom — (headerH − itemH) / 2 — so the panel hangs flush off the
   header edge instead of starting inside the header band, and tracks the shrink. */
.hdr{--megaGap:calc(32.5 * var(--k))}
.hdr.is-stuck{--megaGap:calc(21 * var(--k))}
.mega{position:absolute;top:100%;left:50%;z-index:2;max-width:calc(100vw - 32px);
  padding-top:var(--megaGap);                         /* invisible hover bridge */
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateX(-50%) translateY(calc(-8 * var(--k)));
  transition:opacity .3s var(--ease-o),transform .46s var(--ease-o),
    padding-top .4s var(--ease),visibility 0s .34s}
.nav__has:hover .mega,.nav__has:focus-within .mega{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);transition-delay:0s}

.mega__in{width:min(calc(792 * var(--k)),calc(100vw - 48px));
  padding:calc(24 * var(--k)) calc(30 * var(--k)) calc(19 * var(--k));
  background:rgba(1,10,24,.975);backdrop-filter:blur(16px) saturate(1.08);
  border:1px solid rgba(90,140,195,.28);border-top:2px solid var(--blue);
  box-shadow:0 calc(26 * var(--k)) calc(62 * var(--k)) rgba(0,4,10,.6)}
.hdr[data-accent=gold] .mega__in{border-top-color:var(--gold);
  border-color:rgba(190,150,90,.30)}

.nav .mega__grid{display:grid;grid-template-columns:1fr 1fr;
  column-gap:calc(30 * var(--k));row-gap:0;align-items:stretch}
.nav .mega__grid--3{grid-template-columns:repeat(3,1fr)}  /* .nav ul sets gap:43k — the rows are spaced by the items' own padding */
.nav .mega__grid a{display:block;padding:calc(12 * var(--k)) 0 calc(12 * var(--k)) calc(15 * var(--k));
  font-size:calc(15 * var(--k));letter-spacing:.115em;color:#D6E1F0;white-space:nowrap;
  border-left:1px solid rgba(255,255,255,.11);
  transition:color .3s,border-color .3s,padding-left .38s var(--ease-o)}
.nav .mega__grid a::after{display:none}
.nav .mega__grid a:hover,.nav .mega__grid a:focus-visible{
  color:#fff;border-left-color:var(--gold-hi);padding-left:calc(21 * var(--k))}
.nav .mega__grid a[aria-current=page]{color:#fff;border-left-color:var(--gold-hi)}

.nav .mega__all{display:flex;align-items:center;gap:calc(12 * var(--k));
  margin-top:calc(13 * var(--k));padding:calc(15 * var(--k)) 0 calc(9 * var(--k)) calc(15 * var(--k));
  border-top:1px solid rgba(255,255,255,.13);
  font-size:calc(13 * var(--k));letter-spacing:.2em;color:var(--cyan-hi);
  transition:color .3s}
.nav .mega__all::after{display:none}
.hdr[data-accent=gold] .mega__all{color:var(--gold-hi)}
.nav .mega__all svg{width:calc(22 * var(--k));height:calc(8 * var(--k));flex:none;fill:none;
  stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .42s var(--ease-o)}
.nav .mega__all:hover,.nav .mega__all:focus-visible{color:#fff}
.nav .mega__all:hover svg,.nav .mega__all:focus-visible svg{transform:translateX(calc(6 * var(--k)))}

/* ── mobile disclosure inside the existing drawer ── */
.dsub__tog{display:flex;align-items:center;justify-content:center;gap:11px;
  width:100%;padding:7px 0;min-height:44px;background:none;border:0;cursor:pointer;
  font-family:var(--f-cond);font-weight:400;font-size:clamp(19px,3.2vh,26px);
  letter-spacing:.14em;color:#fff}
.dsub__chev{width:11px;height:11px;flex:none;border-right:1.5px solid var(--cyan-hi);
  border-bottom:1.5px solid var(--cyan-hi);transform:translateY(-3px) rotate(45deg);
  transition:transform .42s var(--ease-o)}
.dsub.is-open .dsub__chev{transform:translateY(1px) rotate(-135deg)}
.dsub__wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .44s var(--ease-o)}
.dsub.is-open .dsub__wrap{grid-template-rows:1fr}
.drawer .dsub__panel{overflow:hidden;min-height:0;visibility:hidden;gap:0;
  transition:visibility 0s .4s}
.dsub.is-open .dsub__panel{visibility:visible;transition-delay:0s}
.drawer .dsub__panel a{padding:9px 0;min-height:44px;display:flex;align-items:center;
  justify-content:center;font-size:clamp(15px,2.2vh,18px);letter-spacing:.11em;color:#C8D6E8}
.drawer .dsub__panel li:first-child a{margin-top:6px}
.drawer .dsub__panel a:hover,.drawer .dsub__panel a:focus-visible{color:#fff}
.drawer .dsub__panel a[aria-current=page]{color:var(--gold-hi)}
/* must out-specify `.drawer .dsub__panel a`, which also sets colour and size */
.drawer .dsub__panel a.dsub__all{margin-top:4px;color:var(--cyan-hi);letter-spacing:.18em;
  font-size:clamp(13px,1.9vh,15px)}

@media (prefers-reduced-motion:reduce){
  .mega,.nav__chev,.dsub__wrap,.dsub__chev,.nav .mega__grid a,.nav .mega__all svg{transition-duration:.01ms}
}
.nav__has.is-shut .mega{opacity:0;visibility:hidden;pointer-events:none;
  transform:translateX(-50%) translateY(calc(-8 * var(--k)))}
.nav__has.is-shut .nav__chev{transform:none;opacity:.6}

/* ═══════════════════ 13 · MOBILE REFINEMENT PASS ═══════════════════
   Desktop is the approved comp and is untouched: everything here is either
   display:none'd on desktop or scoped to ≤1024. Colour overrides for the two
   ivory sections change COLOUR ONLY — geometry rules stay identical. */

/* persistent conversion bar — mobile only, shown once the hero has scrolled away */
.ctabar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:87;
  grid-template-columns:1fr 1.3fr;
  padding-bottom:env(safe-area-inset-bottom,0px);
  background:rgba(1,8,18,.97);backdrop-filter:blur(12px);
  border-top:1px solid rgba(190,150,90,.45);
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease-o),visibility 0s .4s}
.ctabar.is-on{opacity:1;visibility:visible;transition-delay:0s}
.ctabar a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:58px;
  font-family:var(--f-cond);font-weight:500;font-size:15px;letter-spacing:.12em;line-height:1}
.ctabar__call{color:#fff;background:transparent}
.ctabar__call svg{width:17px;height:17px;fill:var(--cyan-hi);flex:none}
.ctabar__cr{color:#1A1206;background:linear-gradient(180deg,var(--gold-hi),var(--gold));
  font-weight:600}
.revcar,.card__hk,.cta__p-short{display:none}

/* back-to-top: both breakpoints; opacity/visibility only, never a transform */
.totop{position:fixed;right:22px;bottom:22px;z-index:86;display:grid;place-items:center;
  width:48px;height:48px;border-radius:50%;cursor:pointer;
  background:rgba(2,12,26,.92);border:1px solid rgba(190,150,90,.55);
  backdrop-filter:blur(8px);box-shadow:0 8px 26px rgba(0,4,10,.45);
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease-o),visibility 0s .35s,
    border-color .3s,background .3s,bottom .3s var(--ease)}
.totop.is-on{opacity:1;visibility:visible;transition-delay:0s}
body:has(.drawer:not([hidden])) .totop{opacity:0;visibility:hidden;pointer-events:none}
.totop svg{width:15px;height:9px;fill:none;stroke:var(--gold-hi);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.totop:hover,.totop:focus-visible{border-color:var(--gold-hi);background:rgba(4,18,36,.97)}

/* Phones: the hero owns the whole first screen — its dark ground continues below
   the phone block until the Results section begins exactly at the fold. svh so the
   browser chrome doesn't hide the seam; content (Tim, crop, headline, CTA) is laid
   out from the top and does not move. No-op where content already overfills (320). */
/* Phones: VIEWPORT-COMPOSED hero (Hal, 1 Sep 2026 — supersedes the min-height fill
   and the padding floor, which left hundreds of px of empty navy after the phone
   block on real device heights). The body becomes a flex column sized to the small
   viewport; the leftover space is distributed INTO the composition — the
   headline→paragraph and paragraph→CTA gaps stretch — and the hero ends a fixed
   56px after the phone block. PASS/FAIL: AVAILABLE 24/7 → hero end ≤ 80px. */
@media (max-width:700px){
  .hero__body{box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;
    min-height:100vh;min-height:100svh;padding-bottom:56px}
  .hero__lede{margin-top:auto;padding-top:8px;margin-block-start:auto}   /* auto absorbs spare height; padding is the floor */
  .hero__acts{margin-top:auto;padding-top:15px}
}

@media (max-width:767px){
  .ctabar{display:grid}
}
@media (max-width:1024px){

  /* ── SITE-WIDE MOBILE CHROME (Hal, 1 Sep 2026): the homepage header is the single
     source of truth on mobile. The interior always-compact style and the gold accent
     recolour are DESKTOP treatments — on mobile every page gets the homepage's exact
     chrome: gradient header at top, solid only when stuck, progress line only when
     stuck, cyan tagline, one name colour. Desktop is untouched. ── */
  body.interior .hdr{background:linear-gradient(180deg,rgba(0,6,14,.97) 0%,rgba(0,6,14,.88) 58%,rgba(0,6,14,0) 100%);
    box-shadow:none;backdrop-filter:none}
  body.interior .hdr.is-stuck{background:rgba(0,6,14,.94);backdrop-filter:blur(14px);
    box-shadow:0 1px 0 rgba(255,255,255,.07)}
  body.interior .hdr__prog{opacity:0}
  body.interior .hdr.is-stuck .hdr__prog{opacity:1}
  .hdr[data-accent=gold] .brand__name{color:#F4F2EE}
  .hdr[data-accent=gold] .brand__tag{color:var(--cyan-hi)}
  /* ride above the conversion bar once it is on screen */
  .totop{right:14px;bottom:14px}
  .totop{width:48px;height:48px}
  body.has-ctabar .totop{bottom:calc(58px + 14px + env(safe-area-inset-bottom,0px))}

  /* header collapses to name + burger once scrolling starts */
  .hdr.is-stuck .brand__tag{display:none}

  /* quote reveals slide UP here, not in from the right: the un-revealed +24k X
     offset pokes past the right edge and silently expands the layout viewport */
  .js [data-rv="quote"]{transform:translate3d(0,18px,0)}

  /* reviews: one review at a time instead of a five-review stream */
  .rev__grid,.rev__cta{display:none}
  .revcar{display:block;margin-top:26px}
  /* vp height follows the ACTIVE slide (set by JS) — grid-stack alone reserves the
     tallest review's height and leaves dead air under the short ones */
  .revcar__vp{overflow:hidden;transition:height .38s var(--ease-o)}
  .revcar__track{display:grid;align-items:start;list-style:none;margin:0;padding:0}  /* start, not stretch — stretched slides all report the tallest height and defeat the vp fit */
  .revcar__slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .4s var(--ease-o)}
  .revcar__slide.is-on{opacity:1;visibility:visible}
  .revcar__slide .stars{margin-top:0}
  .revcar__slide .stars svg{width:17px;height:16px}
  .revcar__slide blockquote{margin:14px 0 0;font-family:var(--f-body);font-style:italic;
    font-size:16px;line-height:1.6;color:#33415A;text-align:center}
  .revcar__by{margin-top:14px;text-align:center}
  .revcar__by b{font-family:var(--f-cond);font-weight:500;font-size:16px;letter-spacing:.14em;
    color:#0E1E33;text-transform:uppercase}
  .revcar__by span{display:block;margin-top:4px;font-family:var(--f-cond);font-size:12.5px;
    letter-spacing:.2em;color:#6B7A92;text-transform:uppercase}
  .revcar__nav{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:22px}
  .revcar__btn{display:grid;place-items:center;width:46px;height:46px;background:none;
    border:1px solid rgba(9,73,150,.4);border-radius:50%;cursor:pointer;
    transition:border-color .3s,background .3s}
  .revcar__btn:active{background:rgba(9,73,150,.1)}
  .revcar__btn svg{width:20px;height:10px;fill:none;stroke:var(--blue);stroke-width:1.6;
    stroke-linecap:round;stroke-linejoin:round}
  .revcar__ct{font-family:var(--f-cond);font-size:15px;letter-spacing:.14em;color:#44566B}
  .revcar__ct b{font-weight:600;color:#0E1E33}
  .rating--car{margin-top:22px;display:flex;align-items:center;justify-content:center;
    flex-wrap:wrap;gap:10px 14px;padding:15px 16px;border:1px solid rgba(9,73,150,.25)}
  .rating--car .stars svg{width:15px;height:14px}
  .rating--car .rating__n{color:#33415A}
  .rating--car .rating__n b{color:#0E1E33}
  .rating--car .rating__c{color:#44566B}

  /* ── ivory section 1: reviews (colour only) ── */
  .rev{background:var(--paper)}
  .rev::before{background:radial-gradient(ellipse 60% 70% at 22% 40%,rgba(9,73,150,.07),transparent 70%)}
  .rev .kicker--blue{color:var(--blue)}
  .rev .kicker--blue i{background:rgba(9,73,150,.4)}
  .rev__h2 .tex{background-color:#16283E}
  .rev__h2 .tex--blue{background-color:var(--blue)}

  /* practice cards: title + hook, interior pages do the explaining */
  .card__cp{display:none}
  .card__hk{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;
    font-family:var(--f-cond);font-weight:400;font-size:13.5px;letter-spacing:.09em;
    color:#B9C6D8;text-transform:uppercase}
  .card__hk .arw{width:18px;height:9px;flex:none;fill:none;stroke:var(--gold-hi);
    stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .pa__sub em{white-space:nowrap}   /* "WE STEP IN." never breaks mid-phrase */
  /* the bar owns the action: the pabar keeps its statement + quiet line, drops the giant button */
  .pabar .btn{display:none}

  /* ── ivory section 2: service area (colour only) ── */
  .sa{background:var(--paper)}
  .sa__num b{color:var(--blue)}
  .sa__num i{background:rgba(9,73,150,.5)}
  .sa__num em{background:linear-gradient(90deg,rgba(9,73,150,.5),transparent)}
  .sa__num span{color:#44566B}
  .sa__h2{color:#182636}
  .sa__p{color:#44566B}
  .sa__cta-sep{background:rgba(9,73,150,.35)}
  .sa__cta-lb{color:#16283E}
  .serve__h{color:var(--blue)}
  .serve__h i{background:rgba(9,73,150,.4)}
  .serve__cols ul+ul::before{background:rgba(9,73,150,.25)}
  .serve__cols li{color:#2A3A50}

  /* story: portrait → headline → statement → credentials; the bio lives on desktop */
  .bs__portrait{order:-1;margin-top:0;margin-bottom:4px}
  .bs__top{display:grid}
  .bs__p{display:none}
  .bs__close{margin-top:16px}
  /* breathing room lives INSIDE the cards (Hal, 1 Sep 2026): continuous 2×2 grid
     and its gold rules stay, no gaps between cards */
  .story__img{height:98px}
  .story__ico{top:56px}
  .story__i{padding:60px 16px 28px}
  .story__i h3{margin-top:48px}   /* icon bottoms at 94px — 14px clear of the heading */
  .story__i p{margin-top:14px;line-height:1.5}

  /* final CTA: tightened copy on mobile */
  .cta__p-full{display:none}
  .cta__p-short{display:inline}

  /* footer: compact contact columns + clearance for the bar */
  .foot{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}  /* bar hides while the footer is visible */
  .foot__grid{gap:8px 0}
  .foot__ico{width:34px;height:34px}
  .foot__ico svg{width:17px;height:17px}
  .foot__c{padding:10px 8px 12px}
  .foot__lb{margin-top:8px;font-size:12px}
  .foot__v{margin-top:5px;font-size:14px}
  .foot__rule{margin-top:10px}
  .foot__legal{margin-top:14px;padding-bottom:0;font-size:12px;line-height:1.55}

  /* practice + service-area + story rhythm: same composition, shorter breath
     (mobile --k is .62px at 390w — trims below are vs the k-values they override) */
  .pa{padding-top:32px}
  .pa__divider{margin-top:26px}
  .cards{margin-top:24px}
  .serve{margin-top:26px}
  .serve__cols li{margin-bottom:10px}
  .bs{padding-top:36px}
  /* air above row 1, below row 2, and clearance over the sticky conversion bar */
  .story{margin-top:48px}
  .bs{padding-bottom:48px}   /* margin on .story would collapse out of the section */
}

/* ═══════════ 14 · ABOUT-BRIEF SHARED CORRECTIONS (2 Sep 2026) ═══════════ */

/* skip target takes focus without a ring on the whole main region */
main:focus{outline:none}
/* edge-to-edge fixed bar: inset ring so focus is never clipped */
.ctabar a:focus-visible{outline:2px solid var(--cyan-hi);outline-offset:-3px}
/* drawer current page: marker, not colour alone */
.drawer [aria-current="page"]::before{content:"";display:inline-block;width:14px;height:2px;
  background:var(--gold-hi);margin-right:10px;vertical-align:middle}
.nav [aria-current="page"]{text-decoration:underline;text-underline-offset:6px;
  text-decoration-color:var(--gold-hi)}

@media (max-width:1024px){
  /* brand stays a ≥44px target once the tagline collapses */
  .brand{min-height:44px;display:flex;flex-direction:column;justify-content:center}
}

/* phones 360–767: two-column practice-areas submenu, View All spans both */
@media (min-width:360px) and (max-width:767px){
  .drawer .dsub__panel{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
  .drawer .dsub__panel li:last-child{grid-column:1 / -1}
}

/* tablets 768–1024: no full-width bottom bar — compact header CTA instead;
   the drawer becomes a right-side sheet over a scrim */
@media (min-width:768px) and (max-width:1024px){
  .ctabar{display:none}
  body.has-ctabar .totop{bottom:14px}
  .hdr__cta{display:inline-flex;min-height:44px;height:44px;padding:0 16px;
    font-size:14px;letter-spacing:.1em}
  .drawer{left:auto;width:min(480px,72vw);box-shadow:-30px 0 80px rgba(0,4,10,.55);
    border-left:1px solid rgba(190,150,90,.35)}
  .drawer::after{content:"";position:fixed;top:0;bottom:0;right:min(480px,72vw);left:-100vw;
    background:rgba(2,8,16,.55);z-index:-1}
}

/* compact phone footer: call+email share a row, address and mark full-width */
@media (max-width:767px){
  .foot__grid{grid-template-columns:1fr 1fr;gap:2px 0}
  .foot{padding-top:22px}
  .mark svg{width:96px}
  .foot__c--mark{padding:8px}
  .mark__sub{margin-top:4px}
  .foot__c:nth-child(3),.foot__c--mark{grid-column:1 / -1}
  .foot__c{padding:12px 8px}
  .foot__lb{font-size:12px}
  .foot__v{font-size:13.5px;overflow-wrap:anywhere}
  .foot__legal{padding-inline:16px}
}

/* ═══════════ 15 · HOMEPAGE PHONE BRIEF (2 Sep 2026, ≤767 unless noted) ═══════════ */
.serve__tog,.bs__m,.bs__more,.serve__all{display:none}
.map__cap{display:none}

@media (max-width:767px){
  :root{--shell:calc(100% - 40px)}

  /* ── results: icon / number / label only ── */
  .res{padding-top:36px;padding-bottom:40px}
  .res__note{display:none}   /* phones keep the footer disclaimer; the note is a desktop addition */
  .res__sub,.stat__cp,.stat__rule{display:none}
  .res__head .kicker{margin-bottom:0}
  .panel{margin-top:23px;width:calc(100% - 40px)}
  .panel__grid{grid-template-columns:1fr 1fr}
  .stat{min-height:158px;max-height:176px;padding:18px 9px}
  .stat__ico{height:42px;display:flex;align-items:center;justify-content:center}
  .stat__ico svg{height:40px;width:auto}
  .stat__n{margin-top:10px;font-size:clamp(40px,12vw,54px);white-space:nowrap}
  .stat__lb{margin-top:10px;font-size:13px;line-height:1.2;letter-spacing:.08em}

  /* ── practice: shorter cards, no closeout ── */
  .pa{padding-top:40px}
  .pa__head{margin-bottom:0}
  .pa__h2{font-size:clamp(30px,8vw,42px)}
  .card__rule{display:none}
  .pa__divider{margin-top:24px;margin-bottom:0}
  .cards{margin-top:20px}
  .card{padding:0 8px 0}
  .card__wrap{padding-bottom:24px}
  .card__img{aspect-ratio:3/2}
  .card__ico{width:48px;height:48px;top:10px}
  .card__ico svg{width:25px;height:25px}
  .card__t{margin-top:12px;min-height:36px;font-size:15px;line-height:1.2}
  .card__hk{margin-top:8px;min-height:38px;align-items:flex-start;font-size:14px;line-height:1.35}
  .card__hk .arw{width:18px;height:9px;margin-top:4px}
  .pabar{display:none}

  /* ── reviews: three stable slides ── */
  .rev{padding-top:44px;padding-bottom:40px}
  .revcar{margin-top:25px}
  .revcar__slide .stars{gap:5px}
  .revcar__slide blockquote{margin-top:14px;font-size:16px;line-height:1.6}
  .revcar__by{margin-top:14px}
  .revcar__by b{font-size:16px}
  .revcar__by span{font-size:12.5px}
  .revcar__nav{margin-top:18px;gap:21px}
  .revcar__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .rating--car{margin-top:21px;padding:15px 16px;text-decoration:none}

  /* ── service area: map first, directory on demand ── */
  .sa{padding-top:40px;padding-bottom:64px}
  .sa__ridge{display:none}   /* the decorative ridge swallowed the caption + disclosure */
  .sa__h2{font-size:clamp(34px,9vw,46px)}
  .sa__num{display:none}
  .sa__cta{display:none}
  .sa__h3{margin-top:18px}
  .sa__grid{gap:0}
  .sa .rule{margin-top:12px}
  .sa__p{margin-top:16px;font-size:16px;line-height:1.55;max-width:56ch}
  .map{margin-top:24px;width:100%}
  .map__cap{display:block;padding-top:12px;font-family:var(--f-body);font-size:14px;
    line-height:1.45;color:#44566B}   /* ivory ground on phones */
  .serve{margin-top:20px;width:auto;margin-left:0}
  .serve__h{display:none}
  .serve__tog{display:flex;align-items:center;justify-content:space-between;width:100%;
    min-height:48px;padding:0 2px;background:none;border:0;border-top:1px solid rgba(9,73,150,.3);
    border-bottom:1px solid rgba(9,73,150,.3);cursor:pointer;
    font-family:var(--f-cond);font-weight:500;font-size:15px;letter-spacing:.12em;
    color:#16283E;text-transform:uppercase}
  .serve__chev{width:10px;height:10px;border-right:1.5px solid var(--blue);
    border-bottom:1.5px solid var(--blue);transform:translateY(-2px) rotate(45deg);
    transition:transform .35s var(--ease-o)}
  .serve.is-open .serve__chev{transform:translateY(2px) rotate(-135deg)}
  .serve__cols{display:none;margin-top:14px;grid-template-columns:1fr 1fr;gap:10px 12px}
  .serve.is-open .serve__cols{display:grid}
  .serve__cols ul{padding-left:0}
  .serve__cols ul+ul::before{content:none}
  .serve__cols li{margin-bottom:10px;font-size:14px;line-height:1.35}
  .serve__cols li.nb{display:none}   /* the desktop AND ALL / SURROUNDING / COMMUNITIES stack */
  .serve__all{display:list-item;grid-column:1 / -1;font-family:var(--f-body);text-transform:none;
    letter-spacing:.02em;color:#5A6B80}

  /* ── story: heading → copy → portrait → quote → link ── */
  .bs{padding-top:40px;padding-bottom:48px}
  .bs__h2{margin-top:15px}
  .bs__dek,.bs__close{display:none}
  .bs__h2{font-size:clamp(32px,8.6vw,44px);margin-top:14px}
  .bs__top .rule{margin-top:10px}
  .bs__m{display:block;margin-top:9px;font-family:var(--f-body);font-size:16px;
    line-height:1.6;color:#C2CCD9}
  .bs__portrait{order:0;margin-top:24px;margin-bottom:0}
  .bs__portrait img{aspect-ratio:1.36;height:auto;object-fit:cover;object-position:50% 18%}
  .bs__top .quote{margin-top:18px}
  .quote p{margin-top:8px;font-size:18px;line-height:1.45}
  .quote__mk{font-size:30px}
  .quote__rule{margin-top:12px}
  .quote cite{margin-top:8px}
  .bs__more{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:22px;
    font-family:var(--f-cond);font-weight:500;font-size:15px;letter-spacing:.16em;
    color:var(--gold-hi)}
  .bs__more .arw{width:24px;height:11px;fill:none;stroke:currentColor;stroke-width:1.6;
    stroke-linecap:round;stroke-linejoin:round}
  .bs__more:focus-visible{outline:2px solid var(--cyan-hi);outline-offset:3px}
  .story{display:none}

  /* footer touch targets */
  .foot__v{display:inline-flex;align-items:center;min-height:44px;padding-block:2px}
  a.foot__v{min-height:46px}
  span.foot__v{min-height:0}
}
@media (max-width:359px){
  :root{--shell:calc(100% - 32px)}
  .panel{width:calc(100% - 32px)}
  .card__t{font-size:14px}
  .hero__lede{font-size:15px;line-height:1.46}
  .hero__acts .btn{font-size:14px}
}

/* ═══════════ 16 · DESKTOP REFINEMENT (Hal, 2 Sep 2026, ≥1025) ═══════════ */
@media (min-width:1025px){
  /* reveal timing: text 500ms · rules 600ms · panels/cards 550ms; map network
     compressed so the group settles inside 890ms */
  .js [data-rv="up"]{transition:opacity .5s var(--ease),transform .5s var(--ease-o)}
  .js [data-rv="line"] .line__i{transition:transform .55s var(--ease-o),opacity .45s linear}
  .js [data-rv="rule"]{transition:transform .6s var(--ease-o)}
  .js [data-rv="pop"],.js [data-rv="card"],.js [data-rv="panel"],.js [data-rv="stat"],
  .js [data-rv="quote"],.js [data-rv="mask"],.js [data-rv="div"]{transition-duration:.55s}
  .js [data-rv="map"].in .map__dots i:nth-child(1){transition-delay:.25s}
  .js [data-rv="map"].in .map__dots i:nth-child(2){transition-delay:.32s}
  .js [data-rv="map"].in .map__dots i:nth-child(3){transition-delay:.39s}
  .js [data-rv="map"].in .map__dots i:nth-child(4){transition-delay:.46s}
  .js [data-rv="map"].in .map__dots i:nth-child(5){transition-delay:.53s}
  .js [data-rv="map"].in .map__dots i:nth-child(6){transition-delay:.6s}
  .js [data-rv="map"].in .map__dots i:nth-child(7){transition-delay:.67s}
  .js [data-rv="map"].in .map__dots i:nth-child(8){transition-delay:.74s}

  /* ── header: compact-desktop no-clip + active section state ── */
  .nav a{opacity:.85;transition:opacity .3s,color .3s}
  .nav a:hover,.nav a:focus-visible,.nav [aria-current="page"]{opacity:1}
  .nav a.is-here{opacity:1}
  .nav a.is-here::after{transform:scaleX(1);transform-origin:0 50%;height:2px;bottom:2px}

  /* ── results: tighter proof block + qualifying note ── */
  .res{padding-top:48px;padding-bottom:46px}
  .res__sub{margin-top:20px;font-size:16px}
  .res__head .kicker{margin-bottom:0}
  .res__h2{margin-top:16px}
  .res__hrule{margin-top:14px}
  .res__sub{margin-top:22px}
  .panel{height:auto;margin-top:32px}
  .panel__grid{align-items:start;padding:0}
  .stat{padding-top:30px;padding-bottom:30px}
  .stat__ico{height:54px;display:flex;align-items:center}
  .stat__ico svg{max-height:54px}
  .stat__n{font-size:calc(66 * var(--k))}
  .stat__cp{margin-top:12px}
  .stat__n--nf{font-size:calc(52 * var(--k));line-height:1.35;letter-spacing:.02em}
  .res__note{margin:14px auto 0;max-width:620px;text-align:center;
    font-family:var(--f-body);font-size:12.5px;line-height:1.5;color:#93A2B4}

  /* ── reviews: 45/55, three 16px normal excerpts, google link ── */
  .rev{padding-top:52px;padding-bottom:42px}
  .rev__grid{margin-top:24px;grid-template-columns:45fr 55fr;column-gap:clamp(48px,4vw,56px)}
  .revlist__i{padding:20px 0}
  .revlist__i blockquote{margin-top:8px;font-style:normal;font-size:16px;line-height:1.55;color:#C6D0DC}
  .rating{margin-top:14px}
  .rev__more{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:4px;
    font-family:var(--f-cond);font-weight:500;font-size:14px;letter-spacing:.18em;
    color:var(--cyan-hi)}
  .rev__more svg{width:22px;height:10px;fill:none;stroke:currentColor;stroke-width:1.5;
    stroke-linecap:round;stroke-linejoin:round;transition:transform .3s var(--ease-o)}
  .rev__more:hover{color:#fff}
  .rev__more:hover svg{transform:translateX(5px)}
  .rev__cta{margin-top:26px}
  .feat{padding:32px 36px}
  .rev__h2{font-size:calc(48 * var(--k))}

  /* ── service area: Goodlettsville leads, less mountain-only air ── */
  .serve__home{color:var(--gold-hi);font-weight:500}
  .serve__home::before{background:var(--gold-hi)}
  .sa{padding-bottom:calc(96 * var(--k))}
  .sa__ridge{height:calc(110 * var(--k))}
  .serve{margin-top:calc(40 * var(--k))}
  .serve__cols li{margin-bottom:16px}
  .serve__cols li.nb{color:#8FA0B3}

  /* ── bowden statement: contrast + tracking ── */
  .story__i p{font-size:14px;line-height:1.5;color:#AFBCCB}
  .story__i h3{letter-spacing:.14em}
  .bs__p{color:#C6D0DC}

  /* ── card descriptions: AA on the dark ground ── */
  .card__cp{font-size:14px;line-height:1.45;color:#C9D4E0}
}
@media (min-width:1025px) and (max-width:1199px){
  .hdr__in{padding-inline:24px}
  .brand__name{font-size:22px}
  .brand__tag{font-size:11px}
  .brand{max-width:205px}
  .nav ul{gap:18px}
  .nav a{font-size:12.5px;letter-spacing:.1em}
  .hdr__cta{min-height:44px;padding:0 14px;max-width:126px;font-size:12.5px}
  .hdr__tel{font-size:14px;white-space:nowrap}
  .hero{min-height:680px}
  .card__cp{font-size:13.5px}
  .story__i p{font-size:13.5px}
}
@media (min-width:1200px) and (max-width:1439px){
  .hero{min-height:740px}
}
@media (min-width:1440px){
  /* WIDE-DESKTOP HERO FIX (Hal, 2 Sep 2026). The 840px cap alone clipped the
     section while the --k internals kept growing: at 1920 the portrait's top sat
     131px INTO the nav band and the CTA row was 100px below the visible hero.
     Freeze the hero's internal comp scale instead — everything inside lays out as
     at ~1505px — then reframe the portrait per the brief: −12% scale, ~5vw right,
     top held clear of the header at every width. */
  .hero{--k:0.98px;max-height:840px}
  body[data-hero="split"] .hero__tim{
    width:calc(var(--timW) * 0.98px * .88);
    right:max(26px, calc(var(--timR) * 0.98px - 5vw))}
  /* the frozen landscape no longer spans ultra-wide viewports — let it cover */
  body[data-hero="split"] .hero__land img{width:auto;height:100%;min-width:100%;
    left:auto;right:0;top:0}
}

/* ═══════════ LocalSEO template pass, 16 Oct 2026 ═══════════
   Phone number back in the phone header, every call link a full 48px tap,
   readable call text in the home hero, and the blocks the template adds
   to service pages (rating badge, reviews, team, short form, credential). */
@media (max-width:1024px){
  .hdr__tel{display:inline-flex;align-items:center;justify-content:center;
    min-height:48px;min-width:48px;padding:0 4px;font-size:17px}
}
@media (max-width:480px){
  .hdr__in{gap:10px}
  .brand__name{font-size:19px;letter-spacing:.04em}
  .brand__tag{font-size:10px;margin-top:5px}
  .hdr__tel{font-size:15px;padding:0 2px}
}
@media (max-width:360px){
  .brand__name{font-size:17px}
  .hdr__tel{font-size:14px}
}
html .pa-hero__tel,html .pa-cta__tel,html .ihero__tel,html .icta__tel,html .rev__tel,
html .cta__tel,html .prose__tel,html .ab5__tel{min-height:48px}
.callblk__txt{font-size:16px}

/* ── template pass blocks, 16 Oct 2026: keyword heading, hero trust line,
   reviews, team, short form, call-to-action rows, office map ── */
.tbx{position:relative;padding:72px 0}
.tbx--ink{background:var(--ink)}
.tbx--ink2{background:var(--ink-2)}
.tbx--navy{background:#04121F}
.tbx__in{width:min(1280px,100% - 48px);margin-inline:auto}
.tbx__h2{font-family:var(--f-serif);font-weight:600;font-size:clamp(28px,2.6vw,38px);line-height:1.18;
  color:#F4F2EE;text-align:center;text-transform:uppercase}
.tbx__lede{max-width:62ch;margin:16px auto 0;text-align:center;font-family:var(--f-body);font-size:17px;
  line-height:1.65;color:var(--body)}
.tbx__lede a{color:var(--gold-hi);text-decoration:underline;text-underline-offset:3px}

.pa-hero__kw,.ihero__kw{font-family:var(--f-cond);font-weight:500;font-size:17px;line-height:1.35;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold-hi);margin:0 0 12px}
.tb-trust{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:0 0 22px;padding:0;
  font-family:var(--f-cond);font-size:15px;letter-spacing:.06em;color:#DCE3EA}
.tb-trust li{display:inline-flex;align-items:center;gap:7px}
.tb-trust li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--gold);margin-right:9px}
.tb-trust a{color:#F4F2EE;text-decoration:underline;text-decoration-color:rgba(214,162,83,.6);
  text-underline-offset:3px;min-height:32px;display:inline-flex;align-items:center}
.tb-trust .st{color:var(--gold-hi);letter-spacing:.08em}

.tb-revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin:38px 0 0;
  padding:0;list-style:none}
.tb-revs figure{margin:0;height:100%;display:flex;flex-direction:column;gap:18px;padding:28px 26px;
  border:1px solid rgba(190,150,90,.35);background:rgba(255,255,255,.025)}
.tb-revs blockquote{margin:0;font-family:var(--f-body);font-size:16.5px;line-height:1.65;color:var(--body)}
.tb-revs blockquote::before{content:"\2605\2605\2605\2605\2605";display:block;margin-bottom:12px;
  color:var(--gold-hi);letter-spacing:.18em;font-size:15px}
.tb-revs figcaption{margin-top:auto;font-family:var(--f-cond);font-size:14px;letter-spacing:.1em;
  text-transform:uppercase;color:#9FB0C1}
.tb-revs figcaption b{color:#F4F2EE;font-weight:500}

.tb-team{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;align-items:center}
.tb-team__pic img{display:block;width:100%;height:auto;border:1px solid rgba(190,150,90,.35)}
.tb-team .tbx__h2{text-align:left}
.tb-team p{margin-top:16px;font-family:var(--f-body);font-size:17px;line-height:1.7;color:var(--body)}
.tb-team ul{margin:18px 0 0;padding:0;list-style:none}
.tb-team li{position:relative;padding-left:24px;margin-top:10px;font-family:var(--f-body);font-size:16.5px;
  line-height:1.55;color:#DCE3EA}
.tb-team li::before{content:"";position:absolute;left:2px;top:.62em;width:10px;height:2px;background:var(--gold)}

.tb-ask{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px 24px;margin-top:36px}
.tb-ask--left{justify-content:flex-start}
.tb-ask .btn{min-height:52px;padding-inline:28px}
.tb-ask__tel{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 6px;
  font-family:var(--f-cond);font-weight:500;font-size:19px;letter-spacing:.05em;color:var(--blue-txt)}
.tb-ask__tel svg{width:19px;height:19px;fill:currentColor;flex:none}
.tb-ask__tel:hover{color:#fff}
.pa-sec--stone .tb-ask__tel,.pa-sec--cool .tb-ask__tel,.ibody .tb-ask__tel{color:#1D5FA8}
.pa-sec--stone .tb-ask__tel:hover,.pa-sec--cool .tb-ask__tel:hover{color:#16283E}

.tb-form{max-width:760px;margin:30px auto 0}
.tb-form .crf{max-width:none}
.crf__privacy{margin-top:14px;font-family:var(--f-body);font-size:14.5px;line-height:1.55;color:#9DACBC}

.imap{position:relative;width:100%;max-width:760px;aspect-ratio:16/10;margin-top:18px;
  border:1px solid rgba(190,150,90,.35);background:#04121F}
.imap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

@media (max-width:900px){
  .tbx{padding:52px 0}
  .tbx__in{width:calc(100% - 40px)}
  .tb-team{grid-template-columns:1fr;gap:26px}
  .tb-revs{grid-template-columns:1fr;gap:16px;margin-top:28px}
  .tb-revs figure{padding:22px 20px}
}
@media (max-width:560px){
  .tb-ask{flex-direction:column;align-items:stretch;gap:12px}
  .tb-ask .btn{justify-content:space-between}
  .tb-ask__tel{justify-content:center;font-size:20px}
  .pa-hero__kw,.ihero__kw{font-size:15px;letter-spacing:.1em}
  .tb-trust{font-size:16px;gap:4px 12px}
  .tb-trust li+li::before{margin-right:5px}
}

/* Home hero keyword H1 + trust line (template pass, 16 Oct 2026): keep the call row inside the 840px desktop hero. */
.hero .pa-hero__kw{margin:calc(14 * var(--k)) 0 calc(8 * var(--k))}
.hero .tb-trust{margin:0;text-shadow:0 1px 6px rgba(0,0,0,.85)}
@media (min-width:1025px){.hero__h1{font-size:calc(168 * var(--k))}}

/* Home FAQ (template pass, 16 Oct 2026): the practice-area FAQ look, scoped to #faq because pa.css is not loaded on the home page. */
#faq{--ink-t:#16283E;--ink-t2:#44566B;position:relative;padding:80px 0;background:var(--paper)}
#faq .pa-in{width:min(1280px,100% - 48px);margin-inline:auto}
#faq .pa-h2{font-family:var(--f-serif);font-weight:600;font-size:clamp(28px,2.6vw,38px);line-height:1.18;letter-spacing:.005em;
  color:var(--ink-t);text-align:center;text-transform:uppercase}
#faq .pa-faq__l{max-width:900px;margin:38px auto 0;border:1px solid rgba(9,73,150,.22);background:rgba(255,255,255,.42)}
#faq .pa-faq__i+.pa-faq__i{border-top:1px solid rgba(9,73,150,.18)}
#faq .pa-faq__i h3{margin:0}
#faq .pa-faq__q{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;
  min-height:56px;padding:16px 22px;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--f-body);font-weight:500;font-size:16.5px;line-height:1.4;color:var(--ink-t)}
#faq .pa-faq__q[aria-expanded="true"]{color:var(--blue)}
#faq .pa-faq__q:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
#faq .pa-faq__mk{position:relative;flex:none;width:16px;height:16px}
#faq .pa-faq__mk::before,#faq .pa-faq__mk::after{content:"";position:absolute;background:currentColor;transition:transform .3s var(--ease-o)}
#faq .pa-faq__mk::before{left:0;right:0;top:7.5px;height:1.6px}
#faq .pa-faq__mk::after{top:0;bottom:0;left:7.5px;width:1.6px}
#faq .pa-faq__q[aria-expanded="true"] .pa-faq__mk::after{transform:scaleY(0)}
#faq .pa-faq__a{padding:0 22px 20px}
#faq .pa-faq__a p{font-family:var(--f-body);font-size:15.5px;line-height:1.65;color:var(--ink-t2);max-width:72ch}
#faq .pa-faq__a a{color:#1D5FA8;text-decoration:underline;text-underline-offset:3px}
@media (max-width:767px){
  #faq{padding:52px 0}
  #faq .pa-h2{font-size:clamp(26px,7vw,32px)}
  #faq .pa-faq__l{margin-top:26px}
  #faq .pa-faq__q{min-height:52px;padding:15px 16px;font-size:15.75px}
  #faq .pa-faq__a{padding:0 16px 18px}
}

/* Home, phone: case-type tiles start on screen 2 (decorative stat icons and the second phone line drop; the call bar keeps the number) */
@media (max-width:560px){#results{padding-bottom:24px}#results .tb-ask{margin-bottom:0}#results .tb-ask__tel{display:none}#results .stat{min-height:0;padding:16px 9px}#results .stat__ico{display:none}#practice{padding-top:24px}}
