/* ==========================================================
   DOLLY DONKEYS — CONCEPT 01 "THE CARTON"
   Campaign-led. Red dominant. Rectangular. Photographic.
   ========================================================== */

:root{
  --red:#D8232A;
  --red-dk:#A3151B;
  --red-lt:#F04A44;
  --navy:#0D1F3A;
  --navy-2:#16304F;
  --ink:#0B1626;
  --kraft:#E3D2B4;
  --kraft-dk:#C9B48F;
  --paper:#F6F2EA;
  --white:#fff;

  --wrap:1320px;
  --gut:clamp(18px,4vw,52px);
  --disp:"Archivo","Arial Narrow",system-ui,sans-serif;
  --body:"Instrument Sans",system-ui,-apple-system,sans-serif;
  --ez:cubic-bezier(.16,.84,.36,1);
  --ez2:cubic-bezier(.76,0,.24,1);
  --hdr:76px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);
  font-size:17px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.admin-bar .hdr{top:32px}
@media(max-width:782px){.admin-bar .hdr{top:46px}}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{margin:0;padding:0;list-style:none}
p{margin:0}
h1,h2,h3,h4{margin:0}
:focus-visible{outline:3px solid var(--red-lt);outline-offset:2px}
.on-dark :focus-visible{outline-color:#FFD84A}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-9999px;background:var(--red);color:#fff;padding:14px 20px;font-weight:700;z-index:300}
.skip:focus{left:0;top:0}

/* ---------- type ---------- */
.d1,.d2,.d3,.d4{font-family:var(--disp);font-weight:900;text-transform:uppercase;
  line-height:.85;letter-spacing:-.022em;font-stretch:92%;margin:0}
.d1{font-size:clamp(2.9rem,8.6vw,7.4rem)}
.d2{font-size:clamp(2.2rem,5.4vw,4.6rem)}
.d3{font-size:clamp(1.5rem,2.9vw,2.5rem);line-height:.92}
.d4{font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1;letter-spacing:-.01em}
.txt{font-size:clamp(1rem,1.25vw,1.12rem);line-height:1.6;max-width:52ch}
.kick{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:.8rem;
  letter-spacing:.16em;font-stretch:100%}
.num{font-family:var(--disp);font-weight:900;font-stretch:75%;letter-spacing:-.02em}

/* ---------- action buttons (rectangular + arrow tile) ---------- */
.act{display:inline-flex;align-items:stretch;background:var(--red);color:#fff;
  font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  font-size:.95rem;font-stretch:100%;border:2px solid var(--red);
  transition:background .22s var(--ez),border-color .22s var(--ez),color .22s var(--ez)}
.act > span{padding:16px 22px;display:flex;align-items:center;white-space:nowrap}
.act > i{width:52px;flex:none;display:grid;place-items:center;background:rgba(0,0,0,.2);overflow:hidden;
  transition:background .22s var(--ez)}
.act > i svg{width:20px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;
  transition:transform .34s var(--ez)}
.act:hover{background:var(--red-dk);border-color:var(--red-dk)}
.act:hover > i svg{transform:translateX(6px)}
.act--lg{font-size:1.05rem}
.act--lg > span{padding:20px 28px}
.act--lg > i{width:62px}
.act--navy{background:var(--navy);border-color:var(--navy)}
.act--navy:hover{background:#000;border-color:#000}
.act--white{background:#fff;border-color:#fff;color:var(--navy)}
.act--white > i{background:rgba(13,31,58,.12)}
.act--white:hover{background:var(--kraft);border-color:var(--kraft);color:var(--navy)}
.act--out{background:transparent;border-color:currentColor;color:inherit}
.act--out > i{background:transparent;border-left:2px solid currentColor}
.act--out:hover{background:#fff;border-color:#fff;color:var(--navy)}

.plain{display:inline-flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:800;
  text-transform:uppercase;font-size:.9rem;letter-spacing:.06em;padding-bottom:6px;
  border-bottom:2px solid currentColor}
.plain svg{width:18px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4;transition:transform .3s var(--ez)}
.plain:hover svg{transform:translateX(5px)}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:100;background:var(--navy);color:#fff;
  transition:transform .4s var(--ez),box-shadow .3s}
.hdr .wrap{display:flex;align-items:center;gap:clamp(10px,2vw,30px);height:var(--hdr)}
.hdr .logo{flex:none;margin-right:auto;display:flex;align-items:center}
.hdr .logo img{height:clamp(38px,4vw,50px);width:auto;
  opacity:0;transform:translateY(8px);animation:logoIn .7s var(--ez) .15s forwards}
@keyframes logoIn{to{opacity:1;transform:none}}
.hdr .logo .txtlogo{display:none;font-family:var(--disp);font-weight:900;text-transform:uppercase;
  font-stretch:80%;font-size:1.25rem;line-height:.9;letter-spacing:-.01em}
.hnav{display:none}
.hnav>ul{display:flex;align-items:center;gap:inherit}
@media(min-width:1120px){
  .hnav{display:flex;align-items:center;gap:clamp(10px,1.5vw,26px)}
	.hnav li{position:relative}
  .hnav a{font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:.84rem;
    letter-spacing:.09em;padding:8px 0;position:relative;white-space:nowrap;color:#D5DEEA}
  .hnav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--red-lt);
    transform:scaleX(0);transform-origin:left;transition:transform .26s var(--ez)}
  .hnav a:hover{color:#fff}
  .hnav a:hover::after{transform:scaleX(1)}
	.hnav .menu-item-has-children>a{padding-right:17px}
	.hnav .submenu-toggle{position:absolute;right:-7px;top:50%;width:22px;height:28px;display:grid;place-items:center;
		transform:translateY(-50%);color:#D5DEEA;z-index:2}
	.hnav .submenu-toggle::before{content:"";width:6px;height:6px;border-right:2px solid currentColor;
		border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s var(--ez)}
	.hnav .submenu-toggle[aria-expanded="true"]::before{transform:translateY(2px) rotate(225deg)}
	.hnav .sub-menu{position:absolute;top:calc(100% + 14px);left:-20px;width:max-content;min-width:220px;max-width:min(300px,calc(100vw - 24px));
		padding:10px 0;background:var(--navy);border-top:3px solid var(--red-lt);box-shadow:0 16px 34px rgba(0,0,0,.28);
		opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s var(--ez),transform .2s var(--ez),visibility .2s;z-index:120}
	.hnav .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-17px;height:17px}
	.hnav .sub-menu li{display:block}
	.hnav .sub-menu a{display:block;padding:11px 20px;color:#D5DEEA;white-space:normal;line-height:1.25}
	.hnav .sub-menu a::after{display:none}
	.hnav .sub-menu a:hover,.hnav .sub-menu a:focus{color:#fff;background:var(--navy-2)}
	.hnav li:hover>.sub-menu,.hnav li:focus-within>.sub-menu,.hnav li.submenu-open>.sub-menu{opacity:1;visibility:visible;transform:none}
	.hnav .sub-menu .sub-menu{top:-10px;left:calc(100% + 4px)}
	.hnav .sub-menu .menu-item-has-children>a{padding-right:42px}
	.hnav .sub-menu .submenu-toggle{right:9px;transform:translateY(-50%) rotate(-90deg)}
	.hnav .sub-menu .submenu-toggle[aria-expanded="true"]::before{transform:translateY(-2px) rotate(45deg)}
	.hnav>ul>li:nth-last-child(-n+2)>.sub-menu,.hnav>ul>li>.sub-menu.submenu-left{left:auto;right:0}
	.hnav .sub-menu .sub-menu.submenu-left,.hnav>ul>li:nth-last-child(-n+2) .sub-menu .sub-menu{left:auto;right:calc(100% + 4px)}
}
.hphone{display:none}
@media(min-width:820px){
  .hphone{display:flex;flex-direction:column;line-height:1.1;flex:none;text-align:right}
  .hphone i{font-style:normal;font-family:var(--disp);font-weight:700;text-transform:uppercase;
    font-size:.66rem;letter-spacing:.12em;color:#8FA6C2}
  .hphone b{font-family:var(--disp);font-weight:900;font-size:1.12rem;font-stretch:88%;letter-spacing:-.01em}
  .hphone:hover b{color:var(--red-lt)}
}
.hcta{display:none}
@media(min-width:640px){.hcta{display:inline-flex;flex:none}.hcta>span{padding:13px 18px;font-size:.85rem}.hcta>i{width:44px}}
.burger{width:46px;height:46px;flex:none;display:grid;place-items:center;gap:0;border:2px solid rgba(255,255,255,.3)}
@media(min-width:1120px){.burger{display:none}}
.burger span{display:block;width:22px;height:2px;background:#fff;position:relative;transition:transform .3s var(--ez)}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:2px;background:#fff;
  transition:transform .3s var(--ez),opacity .2s}
.burger span::before{top:-7px}.burger span::after{top:7px}
.burger[aria-expanded="true"] span{transform:rotate(45deg)}
.burger[aria-expanded="true"] span::before{transform:translateY(7px) rotate(-90deg)}
.burger[aria-expanded="true"] span::after{opacity:0}

/* mobile menu: full red panel */
.menu{position:fixed;inset:0;z-index:110;background:var(--red);color:#fff;display:flex;flex-direction:column;
  clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ez2);visibility:hidden;overflow-y:auto}
.menu.open{clip-path:inset(0 0 0 0);visibility:visible}
@media(min-width:1120px){.menu{display:none}}
.menu-top{display:flex;align-items:center;justify-content:space-between;height:var(--hdr);padding-inline:var(--gut);
  border-bottom:2px solid rgba(255,255,255,.22);background:var(--navy);flex:none}
.menu-top img{height:42px}
.menu-x{width:46px;height:46px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.4)}
.menu-x svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.6;fill:none}
.menu nav{display:flex;flex-direction:column;padding:10px var(--gut) 0}
.menu nav ul{display:flex;flex-direction:column}
.menu nav li:nth-child(1) a{--d:.08s}.menu nav li:nth-child(2) a{--d:.14s}.menu nav li:nth-child(3) a{--d:.2s}.menu nav li:nth-child(4) a{--d:.26s}.menu nav li:nth-child(5) a{--d:.32s}.menu nav li:nth-child(6) a{--d:.38s}
.menu nav a{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;
  font-size:clamp(1.25rem,5vw,1.75rem);line-height:1.05;padding:15px 0;
  border-bottom:2px solid rgba(255,255,255,.25);display:flex;justify-content:space-between;align-items:center;
  opacity:0;transform:translateY(18px)}
.menu.open nav a{opacity:1;transform:none;transition:opacity .45s var(--ez) var(--d),transform .45s var(--ez) var(--d)}
.menu nav li{position:relative}
.menu nav .menu-item-has-children>a{padding-right:58px}
.menu nav .submenu-toggle{position:absolute;right:0;top:6px;width:44px;height:44px;border:2px solid rgba(255,255,255,.35);display:grid;place-items:center;z-index:2}
.menu nav .submenu-toggle::before{content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-3px) rotate(45deg);transition:transform .25s var(--ez)}
.menu nav .submenu-toggle[aria-expanded="true"]::before{transform:translateY(3px) rotate(225deg)}
.menu nav .sub-menu{padding-left:clamp(16px,4vw,34px);overflow:hidden}
.menu nav .sub-menu[hidden]{display:none}
.menu nav .sub-menu a{font-size:clamp(1rem,4vw,1.25rem);padding:12px 52px 12px 0;border-bottom-color:rgba(255,255,255,.18)}
.menu nav .sub-menu .submenu-toggle{top:3px;width:42px;height:42px}
.menu nav .sub-menu .sub-menu a{font-size:clamp(.92rem,3.8vw,1.15rem);font-weight:800}
.menu nav a em{font-style:normal;font-size:.8rem;letter-spacing:.1em;opacity:.65;font-stretch:100%}
.menu-foot{margin-top:auto;padding:20px var(--gut) calc(24px + env(safe-area-inset-bottom));display:grid;gap:12px}
.menu-foot .act{justify-content:space-between}
.menu-foot .bigphone{font-family:var(--disp);font-weight:900;font-stretch:82%;font-size:2rem;line-height:1;
  display:block;text-align:center}
@media(min-width:720px) and (max-width:1119px){
  .menu nav{padding-inline:max(var(--gut),8vw)}
  .menu nav a{font-size:1.65rem}
  .menu-foot{padding-inline:max(var(--gut),8vw)}
}
@media(max-width:420px){
  .menu-top img{height:36px}
  .menu nav a{font-size:1.18rem;padding-block:13px}
  .menu nav .submenu-toggle{top:4px;width:40px;height:40px}
  .menu-foot .bigphone{font-size:1.65rem}
}

/* ==========================================================
   HERO — stacked campaign banners, clip-wipe transitions
   ========================================================== */
.hero{position:relative;background:var(--navy);--chapH:74px;
  --banH:clamp(430px,calc(100svh - var(--hdr) - var(--chapH)),940px)}
@supports not (height:100svh){.hero{--banH:clamp(430px,calc(100vh - var(--hdr) - var(--chapH)),940px)}}
@media(max-width:719px){.hero{--chapH:82px;--banH:clamp(420px,calc(100svh - var(--hdr) - var(--chapH)),740px)}}
.stage{display:grid;position:relative;isolation:isolate}
.ban{grid-area:1/1;position:relative;min-height:var(--banH);display:flex;flex-direction:column;
  clip-path:inset(0 0 0 100%);visibility:hidden;z-index:1;
  transition:clip-path .8s var(--ez2),visibility 0s linear .8s}
.ban.on{clip-path:inset(0 0 0 0);visibility:visible;z-index:2;transition:clip-path .8s var(--ez2),visibility 0s}
.ban.was{visibility:visible;clip-path:inset(0 0 0 0);z-index:1;transition:none}

/* photo layer */
.ph{position:absolute;inset:0;overflow:hidden;contain:paint;background:var(--navy-2)}
.ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);
  transition:transform 1.4s var(--ez)}
.ban.on .ph img{transform:scale(1)}
.ph::after{content:"";position:absolute;inset:0}

/* type reveal */
.clipline{display:block;overflow:hidden}
.clipline > span{display:block;transform:translateY(104%);transition:transform .8s var(--ez2) var(--dl,0s)}
.ban.on .clipline > span{transform:translateY(0)}
.rise{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ez) .35s,transform .6s var(--ez) .35s}
.ban.on .rise{opacity:1;transform:none}
.rise.b{transition-delay:.45s}

/* ---- BANNER 1: full-bleed photo + cropped type + red info block ---- */
.b1 .ph::after{background:
  linear-gradient(to top,rgba(13,31,58,.96) 0%,rgba(13,31,58,.86) 26%,rgba(13,31,58,.42) 58%,rgba(13,31,58,.18) 100%),
  linear-gradient(100deg,rgba(13,31,58,.72) 0%,rgba(13,31,58,.28) 46%,rgba(13,31,58,0) 74%)}
.b1-in{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(40px,5vw,70px) 0 0;color:#fff}
.b1-in .wrap{width:100%}
.b1 .d1{max-width:14ch}
.b1 .d1 em{font-style:normal;color:var(--red-lt)}
.b1-bar{display:flex;flex-wrap:wrap;align-items:stretch;margin-top:clamp(24px,3vw,40px);
  border-top:2px solid rgba(255,255,255,.22)}
.b1-bar .cell{padding:20px 26px 20px 0;margin-right:26px;border-right:2px solid rgba(255,255,255,.22);
  display:flex;flex-direction:column;justify-content:center;gap:4px}
.b1-bar .cell:last-of-type{border-right:0}
.b1-bar .cell i{font-style:normal;color:#9DB2CC;font-size:.72rem;letter-spacing:.13em;
  font-family:var(--disp);font-weight:700;text-transform:uppercase}
.b1-bar .cell b{font-family:var(--disp);font-weight:900;font-stretch:88%;font-size:clamp(1.1rem,1.7vw,1.45rem);line-height:1}
.b1-bar .acts{display:flex;gap:10px;align-items:center;padding:14px 0;margin-left:auto;flex-wrap:wrap}
.b1-note{padding:14px 0 clamp(26px,3vw,34px);color:#9DB2CC;font-size:.9rem}
@media(max-width:719px){
  .b1-bar{display:block;margin-top:18px}
  .b1-bar .cell{border-right:0;margin-right:0;padding:10px 0;border-bottom:2px solid rgba(255,255,255,.18)}
  .b1-bar .acts{margin-left:0;padding-top:14px;gap:9px}
  .b1-bar .acts .act{width:100%;justify-content:space-between}
  .b1-bar .acts .act > span{padding:14px 18px}
  .b1-note{padding:10px 0 16px;font-size:.84rem}
  .b1-in{padding-top:26px}
  .b3-in{padding-top:32px}
  .b3-list{margin-top:16px}
}

/* ---- BANNER 2: typographic poster on kraft ---- */
.b2{background:var(--kraft);color:var(--ink)}
.b2-in{position:relative;z-index:2;flex:1;padding:clamp(26px,min(3.4vw,4.4svh),46px) 0 clamp(18px,2.2vw,28px);
  display:flex;flex-direction:column;justify-content:center}
.poster{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(12px,1.4vw,18px)}
@media(min-width:820px){.poster{grid-template-columns:repeat(4,1fr)}}
.prow{display:flex;flex-direction:column;gap:clamp(6px,.9vw,10px);
  border-top:3px solid var(--ink);padding-top:clamp(8px,1vw,12px)}
.prow::before{content:counter(pstep,decimal-leading-zero);counter-increment:pstep;
  font-family:var(--disp);font-weight:800;font-size:.68rem;letter-spacing:.16em;color:var(--red)}
.poster{counter-reset:pstep}
.pword{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:78%;
  font-size:clamp(1.85rem,min(4.2vw,5.4svh),3.1rem);line-height:.94;letter-spacing:-.03em;padding:0}
.prow:hover .pword{color:var(--red)}
.prow{transition:transform .3s var(--ez)}
.prow:hover{transform:translateY(-3px)}
.pshot{width:100%;aspect-ratio:4/3;max-height:min(25svh,250px);overflow:hidden;contain:paint;
  position:relative;background:var(--kraft-dk)}
.pshot img{width:100%;height:100%;object-fit:cover;object-position:50% 44%;filter:saturate(.94) contrast(1.02)}
.prow:hover .pshot img{transform:scale(1.06);transition:transform .8s var(--ez)}
.pshot img{transition:transform .8s var(--ez)}
.b2-head{display:flex;flex-wrap:wrap;gap:10px 30px;align-items:flex-end;justify-content:space-between;
  margin-bottom:clamp(12px,min(1.8vw,2.2svh),20px)}
.b2-head p{max-width:34ch;font-size:1rem}
.b2-foot{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;margin-top:clamp(14px,min(2vw,2.4svh),22px)}
@media(max-width:399px){
  .pshot{max-height:min(13svh,96px)}
  .b2-head p{font-size:.86rem}
  .b1-note{display:none}
}
@media(max-width:759px){
  .pshot{max-height:min(15svh,112px)}
  .b2-head{gap:8px 24px}
  .b2-head p{font-size:.9rem;max-width:none}
  .b2-foot{margin-top:12px}
  .b2-foot p{display:none}
  .b2-foot .act{width:100%;justify-content:space-between}
}

/* ---- BANNER 3: navy + humour statement + stamp ---- */
.b3{background:var(--navy);color:#fff}
.b3-in{position:relative;z-index:2;flex:1;display:grid;align-items:center;
  padding:clamp(40px,4.6vw,66px) 0 clamp(26px,3vw,38px)}
.b3-grid{display:grid;gap:clamp(24px,3vw,48px);align-items:center}
@media(min-width:940px){.b3-grid{grid-template-columns:1.12fr .88fr}}
.b3 .d1{font-stretch:80%;font-size:clamp(2.35rem,6.1vw,5.3rem)}
.b3 .d1 em{font-style:normal;display:block;color:var(--red-lt)}
.b3-shot{position:relative;aspect-ratio:4/3.2;max-height:none;overflow:hidden;background:var(--navy-2);
  clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ez2) .25s}
.ban.on .b3-shot{clip-path:inset(0 0 0 0)}
.b3-shot img{width:100%;height:100%;object-fit:cover}
.stamp{position:absolute;right:16px;bottom:18px;transform:rotate(-9deg);z-index:3;
  border:3px solid var(--red-lt);color:var(--red-lt);background:rgba(13,31,58,.92);
  padding:10px 16px;text-align:center;font-family:var(--disp);font-weight:900;text-transform:uppercase;
  line-height:1;font-stretch:88%}
.stamp b{display:block;font-size:clamp(.95rem,1.5vw,1.2rem);letter-spacing:.02em}
.stamp i{display:block;font-style:normal;font-size:.6rem;letter-spacing:.24em;margin-top:5px;font-weight:700}
.b3-list{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px;color:#A8BDD6;font-size:.93rem}
@media(max-width:939px){
  .b3-shot{aspect-ratio:16/8.4;max-height:210px}
  .b3-grid{gap:20px}
}
.b3-list li{display:flex;align-items:center;gap:9px}
.b3-list li::before{content:"";width:9px;height:9px;background:var(--red-lt);flex:none}

/* ---- chapter tabs ---- */
.chaps{background:var(--ink);color:#fff;position:relative;z-index:5}
.chaps .wrap{display:grid;grid-template-columns:repeat(3,1fr)}
.chap{text-align:left;padding:15px 14px 15px 0;position:relative;display:flex;flex-direction:column;gap:3px;
  border-top:3px solid rgba(255,255,255,.16);transition:color .25s}
.chap + .chap{padding-left:16px}
.chap::before{content:"";position:absolute;left:0;right:0;top:-3px;height:3px;background:var(--red);
  transform:scaleX(0);transform-origin:left}
.chap[aria-current="true"]::before{animation:chapfill var(--dur,7.5s) linear forwards}
.hero.hold .chap[aria-current="true"]::before{animation-play-state:paused}
@keyframes chapfill{to{transform:scaleX(1)}}
.chap i{font-style:normal;font-family:var(--disp);font-weight:800;font-size:.7rem;letter-spacing:.14em;color:#7C8DA3}
.chap b{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;
  font-size:clamp(.82rem,1.5vw,1.1rem);line-height:1.05;color:#7C8DA3;transition:color .25s}
.chap[aria-current="true"] b,.chap:hover b{color:#fff}
.chap[aria-current="true"] i{color:var(--red-lt)}

/* ==========================================================
   TAPE MARQUEE
   ========================================================== */
.tape{background:var(--red);color:#fff;overflow:hidden;contain:paint;border-block:3px solid var(--ink);
  padding:11px 0;position:relative}
.tape--kraft{background:var(--ink);border-color:var(--red)}
.tape-track{display:flex;width:max-content;animation:tapeRoll 26s linear infinite}
.tape span{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;
  font-size:clamp(.95rem,1.5vw,1.2rem);letter-spacing:.03em;padding:0 20px;display:flex;align-items:center;gap:20px;white-space:nowrap}
.tape span::after{content:"";width:9px;height:9px;background:currentColor;transform:rotate(45deg);flex:none;opacity:.75}
@keyframes tapeRoll{to{transform:translateX(-50%)}}

/* ==========================================================
   CONFIDENCE BAND
   ========================================================== */
.band{background:var(--red);color:#fff;padding:clamp(48px,7vw,86px) 0}
.band-grid{display:grid;gap:clamp(28px,4vw,56px)}
@media(min-width:1000px){.band-grid{grid-template-columns:1.05fr .95fr;align-items:start}}
.band .d2 em{font-style:normal;color:var(--navy)}
.band-facts{display:grid;gap:0}
.bfact{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline;
  padding:18px 0;border-top:2px solid rgba(255,255,255,.35)}
.bfact:last-child{border-bottom:2px solid rgba(255,255,255,.35)}
.bfact .num{font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:.9;color:var(--navy)}
.bfact b{display:block;font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:90%;
  font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.05}
.bfact p{color:#FFDAD8;font-size:.94rem;margin-top:5px;max-width:36ch}

/* ==========================================================
   TRUCK BAND — full-bleed brand banner
   ========================================================== */
.tband{background:var(--navy);color:#fff}
.tband-photo{position:relative;overflow:hidden;contain:paint;height:clamp(230px,31vw,450px);background:var(--navy-2)}
.tband-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 46%;
  transform:scale(1.05);transition:transform 1.5s var(--ez)}
.tband.in .tband-photo img{transform:scale(1)}
.tband-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(13,31,58,.34) 0%,rgba(13,31,58,0) 26%,rgba(13,31,58,0) 74%,rgba(13,31,58,.42) 100%)}
.tband-flag{position:absolute;left:0;bottom:0;z-index:2;background:var(--red);color:#fff;
  font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:90%;letter-spacing:.06em;
  font-size:clamp(.72rem,1.2vw,.9rem);padding:11px 18px}
.tband-bar{padding:clamp(30px,4vw,58px) 0;border-top:6px solid var(--red)}
.tband-bar .wrap{display:grid;gap:22px 46px;align-items:center}
@media(min-width:920px){.tband-bar .wrap{grid-template-columns:1.02fr .98fr}}
.tband .d3{font-stretch:86%;max-width:16ch}
.tband .d3 em{font-style:normal;color:var(--red-lt)}
.tband p.txt{color:#B7C8DC;font-size:1rem}
.tband-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}

/* ==========================================================
   SERVICES — big interactive rows
   ========================================================== */
.svc{background:var(--paper);padding:clamp(56px,7vw,96px) 0 clamp(40px,5vw,70px)}
.svc-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;
  margin-bottom:clamp(26px,3.4vw,44px)}
.svc-layout{display:grid;gap:0}
@media(min-width:1000px){.svc-layout{grid-template-columns:1fr 400px;gap:clamp(30px,4vw,60px);align-items:start}}
.rows{border-top:3px solid var(--ink)}
.row{display:block;width:100%;text-align:left;border-bottom:3px solid var(--ink);position:relative;
  padding:clamp(18px,2.2vw,26px) 0;transition:padding-left .35s var(--ez),background .35s var(--ez)}
.row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--red);
  transition:width .38s var(--ez2);z-index:0}
.row-in{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto;gap:clamp(14px,2vw,26px);
  align-items:start;padding-inline:clamp(0px,1.5vw,18px)}
.row .rnum{font-family:var(--disp);font-weight:900;font-stretch:75%;font-size:clamp(.95rem,1.3vw,1.1rem);
  color:var(--red);padding-top:6px;transition:color .3s}
.row .rttl{display:block;font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:84%;
  font-size:clamp(1.5rem,3.8vw,3rem);line-height:.9;letter-spacing:-.02em;transition:color .3s}
.row .rdesc{display:block;font-size:.95rem;color:#54627A;margin-top:8px;max-width:44ch;transition:color .3s}
.row .rarr{width:46px;height:46px;margin-top:4px;border:2px solid var(--ink);display:grid;place-items:center;flex:none;
  transition:background .3s,border-color .3s,color .3s,transform .3s var(--ez)}
.row .rarr svg{width:20px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4}
.row.hot::before{width:100%}
.row.hot .rttl,.row.hot .rnum{color:#fff}
.row.hot .rdesc{color:#FFD9D7}
.row.hot .rarr{background:#fff;border-color:#fff;color:var(--red);transform:translateX(6px)}
.row-shot{display:none}
@media(max-width:999px){
  .row-shot{display:block;height:0;overflow:hidden;transition:height .45s var(--ez2);position:relative;z-index:1}
  .row.hot .row-shot{height:190px}
  .row-shot img{width:100%;height:190px;object-fit:cover;object-position:50% 34%}
}
.svc-panel{display:none}
@media(min-width:1000px){
  .svc-panel{display:block;position:sticky;top:calc(var(--hdr) + 22px)}
  .svc-figs{position:relative;aspect-ratio:4/4.6;overflow:hidden;contain:paint;background:var(--navy)}
  .svc-figs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    clip-path:inset(0 0 100% 0);transition:clip-path .55s var(--ez2)}
  .svc-figs img.show{clip-path:inset(0 0 0 0)}
  .svc-cap{background:var(--ink);color:#fff;padding:16px 18px;display:flex;justify-content:space-between;
    align-items:center;gap:14px}
  .svc-cap b{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;font-size:1.02rem}
  .svc-cap i{font-style:normal;font-family:var(--disp);font-weight:800;font-size:.7rem;letter-spacing:.14em;color:var(--red-lt)}
}

/* ==========================================================
   THE CARTON — brand personality banner
   ========================================================== */
.carton{position:relative;background:var(--kraft);color:var(--ink);overflow:hidden;
  padding:clamp(108px,13vw,178px) 0 clamp(108px,13vw,178px)}
.carton::before,.carton::after{content:"";position:absolute;left:0;right:0;height:3px;background:rgba(11,22,38,.22)}
.carton::before{top:26px}.carton::after{bottom:26px}
.seam{position:absolute;left:50%;top:0;width:3px;height:26px;background:rgba(11,22,38,.22)}
.seam.b{top:auto;bottom:0}
.strip{position:absolute;left:-8%;width:116%;contain:paint;background:var(--red);color:#fff;
  border-block:3px solid rgba(11,22,38,.35);padding:9px 0;overflow:hidden;pointer-events:none;
  box-shadow:0 8px 24px -14px rgba(11,22,38,.6)}
.strip--a{top:7%;transform:rotate(-2.4deg)}
.strip--b{bottom:7%;transform:rotate(1.8deg);background:var(--navy)}
.strip .tape-track{animation-duration:34s}
.strip--b .tape-track{animation-direction:reverse;animation-duration:40s}
.carton-in{position:relative;z-index:3;display:grid;gap:clamp(32px,4vw,60px);align-items:center}
@media(min-width:940px){.carton-in{grid-template-columns:1.06fr .94fr}}
.carton .d1{font-stretch:80%;font-size:clamp(2.4rem,6.4vw,5.6rem);max-width:11ch}
.carton .d1 em{font-style:normal;display:block;color:var(--red)}
.carton .txt{margin-top:20px;color:#3B4658}
.carton-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

.label{background:var(--paper);border:3px solid var(--ink);padding:clamp(20px,2.4vw,28px);
  transform:rotate(1.4deg);box-shadow:14px 14px 0 rgba(11,22,38,.16);position:relative}
.label-top{display:flex;justify-content:space-between;align-items:center;gap:14px;
  border-bottom:3px solid var(--ink);padding-bottom:12px;margin-bottom:16px}
.label-top b{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:84%;font-size:1.05rem;line-height:1}
.label-top i{font-style:normal;font-family:var(--disp);font-weight:800;font-size:.66rem;letter-spacing:.16em;
  border:2px solid var(--ink);padding:5px 8px}
.lrow{display:grid;grid-template-columns:66px 1fr;gap:14px;align-items:baseline;padding:11px 0;
  border-bottom:2px dashed rgba(11,22,38,.35)}
.lrow em{font-style:normal;font-family:var(--disp);font-weight:800;font-size:.68rem;letter-spacing:.13em;color:#6B7686}
.lrow span{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;
  font-size:clamp(1rem,1.6vw,1.24rem);line-height:1.05}
.bars{display:flex;gap:3px;align-items:flex-end;height:44px;margin-top:16px}
.bars i{display:block;background:var(--ink);width:3px;height:100%}
.bars i:nth-child(3n){width:6px}.bars i:nth-child(4n){height:70%}.bars i:nth-child(5n){width:2px;height:88%}
.care{position:absolute;right:-14px;bottom:-18px;transform:rotate(-8deg);background:var(--red);color:#fff;
  border:3px solid var(--ink);padding:9px 13px;font-family:var(--disp);font-weight:900;text-transform:uppercase;
  font-size:.78rem;letter-spacing:.1em;line-height:1}
.marks{display:flex;gap:16px;margin-top:22px;color:rgba(11,22,38,.45)}
.marks svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* ==========================================================
   CREW
   ========================================================== */
.crew{background:var(--navy);color:#fff;padding:0}
.crew-grid{display:grid}
@media(min-width:940px){.crew-grid{grid-template-columns:1.02fr .98fr}}
.crew-shot{position:relative;min-height:340px;overflow:hidden;contain:paint;background:var(--navy-2)}
.crew-shot img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.crew-tag{position:absolute;left:0;bottom:0;background:var(--red);color:#fff;padding:14px 20px;
  font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;font-size:1rem;letter-spacing:.02em}
.crew-copy{padding:clamp(44px,6vw,86px) var(--gut);display:flex;flex-direction:column;justify-content:center;
  max-width:calc(var(--wrap)/2);width:100%}
@media(min-width:940px){.crew-copy{padding-right:clamp(30px,5vw,80px)}}
.crew .d2{font-size:clamp(1.85rem,3.5vw,3.05rem)}
.crew .d2 em{font-style:normal;color:var(--red-lt)}
.rules{margin-top:clamp(26px,3vw,38px);counter-reset:r}
.rules li{counter-increment:r;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:baseline;
  padding:18px 0;border-top:2px solid rgba(255,255,255,.2)}
.rules li:last-child{border-bottom:2px solid rgba(255,255,255,.2)}
.rules li::before{content:"0" counter(r);font-family:var(--disp);font-weight:900;font-stretch:75%;
  font-size:.95rem;color:var(--red-lt)}
.rules b{display:block;font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;
  font-size:clamp(1.05rem,1.7vw,1.4rem);line-height:1.05}
.rules p{color:#A8BDD6;font-size:.95rem;margin-top:6px;max-width:44ch}
.crew-sign{margin-top:26px;color:#A8BDD6;font-size:.95rem;border-left:4px solid var(--red);padding-left:16px}
.crew-sign b{color:#fff}

/* ==========================================================
   REVIEWS
   ========================================================== */
.revs{background:#fff;padding:clamp(56px,7vw,100px) 0}
.revs-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 40px;
  padding-bottom:clamp(22px,3vw,34px);border-bottom:3px solid var(--ink)}
.revs .d2 em{font-style:normal;color:var(--red)}
.gpill{display:flex;align-items:center;gap:12px;border:3px solid var(--ink);padding:12px 16px}
.gpill .st{display:flex;gap:3px;color:var(--red)}
.gpill .st svg{width:16px;height:16px;fill:currentColor}
.gpill b{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;font-size:.92rem;line-height:1.1}
.gpill span{display:block;font-size:.76rem;color:#54627A;font-family:var(--body);font-weight:400;text-transform:none;letter-spacing:0}
.revbody{display:grid;gap:clamp(24px,3vw,46px);padding-top:clamp(28px,3.6vw,46px)}
@media(min-width:900px){.revbody{grid-template-columns:96px 1fr}}
.revtabs{display:flex;gap:10px;flex-wrap:wrap}
@media(min-width:900px){.revtabs{flex-direction:column;gap:0;border-left:3px solid rgba(11,22,38,.16)}}
.revtab{font-family:var(--disp);font-weight:900;font-stretch:75%;font-size:1rem;color:#9AA5B4;
  padding:12px 14px;position:relative;transition:color .25s}
@media(min-width:900px){.revtab{text-align:left;padding:14px 0 14px 16px;margin-left:-3px;border-left:3px solid transparent}}
.revtab[aria-current="true"]{color:var(--ink);border-color:var(--red)}
@media(max-width:899px){.revtab{border-bottom:3px solid transparent;padding-inline:0;margin-right:8px}
  .revtab[aria-current="true"]{border-bottom-color:var(--red)}}
@media(min-width:1160px){.revbody{grid-template-columns:96px minmax(0,1fr) 300px}}
.revshot{display:none}
@media(min-width:1160px){
  .revshot{display:block;position:relative;align-self:stretch}
  .revshot img{width:100%;height:100%;max-height:520px;object-fit:cover;border:3px solid var(--ink)}
  .revshot .tapelabel{position:absolute;left:-18px;top:26px;background:var(--red);color:#fff;
    font-family:var(--disp);font-weight:900;text-transform:uppercase;font-size:.74rem;letter-spacing:.12em;
    padding:8px 14px;transform:rotate(-3deg);border:3px solid var(--ink)}
}
.revpanel{transition:opacity .3s var(--ez)}
.revpanel.fade{opacity:0}
.stars{display:flex;gap:6px;color:var(--red);margin-bottom:20px}
.stars svg{width:clamp(24px,3vw,34px);height:clamp(24px,3vw,34px);fill:currentColor}
.revq{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:86%;
  font-size:clamp(1.5rem,3.5vw,3rem);line-height:.94;letter-spacing:-.02em;max-width:24ch}
.revtxt{margin-top:22px;font-size:clamp(1rem,1.25vw,1.1rem);line-height:1.6;max-width:60ch;color:#3B4658}
.revwho{display:flex;align-items:center;gap:16px;margin-top:26px;padding-top:20px;border-top:3px solid var(--ink)}
.revwho .ini{width:52px;height:52px;background:var(--red);color:#fff;display:grid;place-items:center;flex:none;
  font-family:var(--disp);font-weight:900;font-size:1.25rem}
.revwho b{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:88%;font-size:1.05rem;display:block}
.revwho span{font-size:.86rem;color:#54627A}

/* ==========================================================
   FINAL — quote starter
   ========================================================== */
.close{background:var(--navy);color:#fff;padding:clamp(58px,7vw,104px) 0}
.close .d1{font-stretch:80%;font-size:clamp(2.5rem,7vw,6.2rem)}
.close .d1 em{font-style:normal;color:var(--red-lt)}
.close p.txt{color:#A8BDD6;margin-top:20px}
.starter{margin-top:clamp(30px,4vw,48px);background:#fff;color:var(--ink);
  display:grid;grid-template-columns:1fr;border:3px solid var(--ink)}
@media(min-width:860px){.starter{grid-template-columns:1fr 1fr 1fr auto;align-items:stretch}}
@media(min-width:860px){.starter--estimate{grid-template-columns:repeat(3,minmax(0,1fr))}.starter--estimate .act{grid-column:1/-1}.starter--estimate .fld:nth-of-type(3n){border-right:0}}
.fld{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-bottom:3px solid var(--ink)}
@media(min-width:860px){.fld{border-bottom:0;border-right:3px solid var(--ink)}}
.fld label{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:.66rem;letter-spacing:.14em;color:#6B7686}
.fld input{border:0;padding:0;height:30px;font-family:var(--disp);font-weight:900;font-stretch:90%;
  text-transform:uppercase;font-size:1.05rem;background:transparent;width:100%;min-width:0}
.fld input::placeholder{color:#B6BEC9}
.fld input:focus{outline:none}
.fld.err{background:#FDECEC}
.dd-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-notice{display:none;grid-column:1/-1;margin:0;padding:14px 18px;background:#fdecec;color:#8f1118;font-weight:700;border-top:3px solid #d8232a}
.form-notice.show{display:block}.starter button:disabled{cursor:wait;opacity:.7}
.starter .act{border:0;justify-content:space-between}
.starter .act > span{padding:20px 24px}
@media(max-width:859px){.starter .act{width:100%}}
.close-alt{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:26px;color:#A8BDD6;font-size:.96rem}
.close-alt a{display:inline-flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:900;
  font-stretch:88%;font-size:clamp(1.3rem,2.3vw,1.8rem);color:#fff;text-transform:uppercase;line-height:1}
.close-alt a:hover{color:var(--red-lt)}
.close-done{display:none;background:var(--red);color:#fff;padding:clamp(24px,3vw,34px);margin-top:clamp(30px,4vw,48px);
  border:3px solid var(--ink)}
.close.sent .starter,.close.sent .close-alt{display:none}
.close.sent .close-done{display:block}
.close-done b{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:86%;
  font-size:clamp(1.3rem,2.6vw,2rem);display:block;line-height:1}
.close-done p{margin-top:10px;color:#FFD9D7;max-width:52ch}

/* ==========================================================
   FOOTER
   ========================================================== */
.ftr{background:var(--ink);color:#93A2B6;padding:clamp(46px,6vw,72px) 0 0}
.ftr-lead{display:grid;gap:26px;align-items:end;padding-bottom:clamp(30px,4vw,44px);border-bottom:3px solid rgba(255,255,255,.14)}
@media(min-width:880px){.ftr-lead{grid-template-columns:1fr auto}}
.ftr-lead img{height:66px;width:auto}
.ftr-lead .tl{display:none;font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:80%;
  font-size:1.6rem;color:#fff;line-height:.92}
.bigtel{font-family:var(--disp);font-weight:900;font-stretch:78%;letter-spacing:-.03em;color:#fff;
  font-size:clamp(2.6rem,7.6vw,5.4rem);line-height:.85;display:block}
.bigtel:hover{color:var(--red-lt)}
.ftr-grid{display:grid;gap:32px;padding:clamp(30px,4vw,46px) 0}
@media(min-width:700px){.ftr-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.ftr-grid{grid-template-columns:1.2fr .8fr .8fr 1.1fr}}
.ftr h4{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:90%;font-size:.86rem;
  letter-spacing:.1em;color:#fff;margin-bottom:14px}
.ftr li{padding:5px 0;font-size:.95rem}
.ftr a:hover{color:#fff}
.ftr address{font-style:normal;font-size:.95rem;line-height:1.6}
.ftr address a{text-decoration:underline}
.areas{display:flex;flex-wrap:wrap;gap:7px}
.areas a{border:2px solid rgba(255,255,255,.2);padding:6px 11px;font-family:var(--disp);font-weight:800;
  text-transform:uppercase;font-size:.72rem;letter-spacing:.08em;transition:background .25s,border-color .25s,color .25s}
.areas a:hover{background:var(--red);border-color:var(--red);color:#fff}
.socs{display:flex;gap:8px;margin-top:16px}
.socs a{width:44px;height:44px;border:2px solid rgba(255,255,255,.2);display:grid;place-items:center;
  transition:background .25s,border-color .25s,color .25s}
.socs a:hover{background:var(--red);border-color:var(--red);color:#fff}
.socs svg{width:19px;height:19px}
.ftr-end{border-top:3px solid rgba(255,255,255,.14);padding:20px 0 calc(24px + env(safe-area-inset-bottom));
  display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;justify-content:space-between;font-size:.85rem}
.ftr-end ul{display:flex;flex-wrap:wrap;gap:10px 20px}
.quip{color:var(--red-lt);font-family:var(--disp);font-weight:800;text-transform:uppercase;
  font-size:.8rem;letter-spacing:.06em}
@media(max-width:719px){.ftr-end{padding-bottom:calc(92px + env(safe-area-inset-bottom))}}

/* mobile action bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:1fr 1fr;
  background:var(--ink);transform:translateY(110%);transition:transform .4s var(--ez);
  padding-bottom:env(safe-area-inset-bottom)}
.mbar.on{transform:none}
.mbar a{padding:16px 10px;text-align:center;font-family:var(--disp);font-weight:900;text-transform:uppercase;
  font-size:.9rem;letter-spacing:.06em;color:#fff}
.mbar a+a{background:var(--red)}
@media(min-width:720px){.mbar{display:none}}

/* reveals */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ez),transform .7s var(--ez)}
.rv.in{opacity:1;transform:none}
.rv1{transition-delay:.08s}.rv2{transition-delay:.16s}.rv3{transition-delay:.24s}.rv4{transition-delay:.32s}
.clip{clip-path:inset(0 0 100% 0);transition:clip-path .85s var(--ez2)}
.clip.in{clip-path:inset(0 0 0 0)}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important}
  .rv{opacity:1;transform:none}
  .clip{clip-path:none}
  .clipline > span{transform:none}
  .rise{opacity:1;transform:none}
  .tape-track{animation:none}
}

/* Interior pages inherit the approved homepage type, color and spacing system. */
.page-shell{min-height:60vh;padding:clamp(72px,10vw,140px) 0;background:var(--paper)}
.page-article>.kick{color:var(--red);margin-bottom:18px}
.page-article>.d2{max-width:15ch;margin-bottom:clamp(32px,5vw,64px)}
.entry-content{max-width:820px;font-size:1.05rem}
.entry-content>*+*{margin-top:1.4em}
.entry-content h2,.entry-content h3{font-family:var(--disp);font-weight:900;text-transform:uppercase;line-height:.95;margin-top:1.8em}
.entry-content a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.entry-content ul,.entry-content ol{padding-left:1.25em}.entry-content ul{list-style:disc}.entry-content ol{list-style:decimal}
.entry-content img{height:auto}
.post-list{display:grid;gap:30px;max-width:900px;margin-top:55px}.post-list article{padding-top:28px;border-top:3px solid var(--ink)}
.post-list article p{margin-top:16px}.post-list .d3 a:hover{color:var(--red)}

/* About page */
.about-hero{position:relative;width:100%;background:var(--navy);padding:0;color:#fff;overflow:hidden;isolation:isolate}
.about-hero-grid{position:relative;min-height:clamp(600px,80vh,840px);display:flex;align-items:center;padding-top:clamp(70px,8vw,110px);padding-bottom:clamp(70px,8vw,110px)}
.about-hero-content{position:relative;z-index:3;width:min(100%,650px);padding-right:24px}
.about-hero .kick,.about-expect .kick,.about-cta .kick{color:var(--red-lt);margin-bottom:18px}
.about-hero .d1{margin:0}
.about-hero .txt{color:#fff;max-width:590px;margin-top:26px;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.about-hero-content>.act{margin-top:30px}
.about-hero-shot,.about-story-shot{margin:0;position:relative}
.about-hero-shot{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.about-hero-shot::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,25,48,.94) 0%,rgba(8,25,48,.82) 28%,rgba(8,25,48,.4) 56%,rgba(8,25,48,.08) 82%,transparent 100%),linear-gradient(0deg,rgba(8,25,48,.28),transparent 45%);z-index:2}
.about-hero-shot img,.about-story-shot img,.about-intro-shot img{position:relative;z-index:1;width:100%;object-fit:cover}
.about-hero-shot img{height:100%;object-fit:cover;object-position:58% 46%}
.about-intro,.about-story{padding:clamp(70px,10vw,140px) 0}
.about-intro .kick,.about-story .kick{color:var(--red);margin-bottom:18px}
.about-intro-layout,.about-story-grid{display:grid;gap:clamp(38px,6vw,84px);align-items:center}
.about-intro-content .d2{max-width:12ch}
.about-copy{font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.7}
.about-copy p+p{margin-top:20px}.about-copy .act{margin-top:30px}
.about-content-media{margin:0;overflow:hidden;border-radius:3px;box-shadow:14px 14px 0 var(--kraft-dk)}
.about-content-media img{display:block;width:100%;height:100%;object-fit:cover}
.about-intro-shot{aspect-ratio:4/5;min-height:520px}
.about-intro-shot img{object-position:center 36%}
.about-expect{background:var(--red);padding:clamp(70px,9vw,125px) 0;color:#fff}
.about-expect .d2{max-width:13ch}
.about-values{display:grid;margin-top:clamp(40px,6vw,76px);border-top:2px solid rgba(255,255,255,.3)}
.about-value{padding:28px 0;border-bottom:2px solid rgba(255,255,255,.3)}
.about-value .num{display:block;color:var(--navy);font-size:1.1rem;margin-bottom:22px}
.about-value p{color:#FFE1DF;margin-top:12px;max-width:34ch}
.about-story-shot{aspect-ratio:1/1;min-height:500px}
.about-story-shot img{object-position:center 42%}
.about-cta{background:var(--navy);padding:clamp(70px,9vw,125px) 0;color:#fff}
.about-cta .d2{max-width:14ch}.about-cta .txt{color:#C6D2E1;margin-top:24px}
.about-cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.about-page .rv{opacity:1;transform:none}
@media(prefers-reduced-motion:no-preference){
  .js .about-page .rv{opacity:0;transform:translateY(26px)}
  .js .about-page .rv.in{opacity:1;transform:none}
}
@media(min-width:820px){
  .about-intro-layout{grid-template-columns:minmax(0,.92fr) minmax(360px,.78fr)}
  .about-values{grid-template-columns:repeat(2,1fr)}.about-value:nth-child(odd){padding-right:35px;border-right:2px solid rgba(255,255,255,.3)}.about-value:nth-child(even){padding-left:35px}
  .about-story-grid{grid-template-columns:minmax(360px,.82fr) minmax(0,1.08fr)}
}
@media(max-width:819px){
  .about-hero-grid{min-height:clamp(560px,74vh,700px);padding-top:82px;padding-bottom:64px}.about-hero-content{width:min(86%,600px)}.about-hero-shot::after{background:linear-gradient(90deg,rgba(8,25,48,.94) 0%,rgba(8,25,48,.72) 52%,rgba(8,25,48,.18) 100%),linear-gradient(0deg,rgba(8,25,48,.38),transparent 55%)}.about-hero-shot img{height:100%;object-position:62% 46%}
  .about-intro-layout,.about-story-grid{gap:38px}.about-intro-shot,.about-story-shot{width:min(100%,560px);min-height:0;margin-inline:auto}
  .about-story-shot{order:2}.about-content-media{box-shadow:9px 9px 0 var(--kraft-dk)}
}
@media(max-width:520px){.about-hero-grid{min-height:clamp(540px,72vh,650px);padding-top:72px;padding-bottom:48px;align-items:center}.about-hero-content{width:100%;padding-right:0}.about-hero .kick{margin-bottom:14px}.about-hero .d1{font-size:clamp(3rem,16vw,4.7rem)}.about-hero .txt{margin-top:18px;max-width:34ch}.about-hero-content>.act{margin-top:24px}.about-hero-shot::after{background:linear-gradient(0deg,rgba(8,25,48,.9) 0%,rgba(8,25,48,.58) 56%,rgba(8,25,48,.12) 100%),linear-gradient(90deg,rgba(8,25,48,.62),rgba(8,25,48,.08) 88%)}.about-hero-shot img{object-position:64% 48%}.about-intro-shot{aspect-ratio:4/5}.about-story-shot{aspect-ratio:1/1}.about-cta-actions .act{width:100%;justify-content:space-between}}

/* Moving Services page */
.services-hero{position:relative;min-height:clamp(590px,80vh,830px);display:flex;align-items:center;overflow:hidden;isolation:isolate;color:#fff}
.services-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,25,48,.95),rgba(8,25,48,.76) 38%,rgba(8,25,48,.12) 84%)}
.services-hero-img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.services-hero-inner{padding-block:80px}.services-hero-copy{max-width:720px}.services-hero .kick,.services-listing .kick,.services-cta .kick{color:var(--red-lt);margin-bottom:18px}.services-hero .txt{margin-top:26px}.services-hero .act{margin-top:30px}
.services-intro,.services-residential,.services-benefits,.services-difference{padding:clamp(72px,10vw,140px) 0}.services-split{display:grid;gap:clamp(30px,7vw,90px)}.services-intro .kick,.services-residential .kick,.services-benefits .kick,.services-difference .kick{color:var(--red);margin-bottom:18px}.services-copy{font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.72}.services-copy p+p{margin-top:20px}
.services-residential{background:#fff}.services-residential figure,.services-difference figure{margin:0;aspect-ratio:4/5;overflow:hidden}.services-residential figure img,.services-difference figure img{width:100%;height:100%;object-fit:cover}.services-residential figure img{object-position:center}.services-difference figure img{object-position:center 40%}
.services-listing{position:relative;isolation:isolate;background:var(--red);padding:clamp(72px,9vw,125px) 0;color:#fff;overflow:hidden}.services-listing::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(216,35,42,.97),rgba(216,35,42,.86))}.services-listing-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center}.services-listing .d2{max-width:14ch}.services-cards{display:grid;margin-top:clamp(42px,6vw,78px);border-top:2px solid rgba(255,255,255,.35)}.services-card{padding:30px 0;border-bottom:2px solid rgba(255,255,255,.35);color:#fff}.services-card>span{color:var(--navy);font-family:var(--disp);font-weight:900}.services-card .d3{margin-top:22px;color:#fff}.services-card p{max-width:44ch;margin-top:16px;color:#ffe1df}
.services-benefits{background:var(--paper)}.services-benefits a{color:var(--red);font-weight:800}.services-checks{display:grid;gap:12px;margin:26px 0}.services-checks li{position:relative;padding-left:28px}
.services-faq{padding:clamp(72px,9vw,120px) 0;background:var(--navy);color:#fff}.services-faq .kick{color:var(--red-lt);margin-bottom:18px}.services-faq .d2{max-width:13ch}.services-faq-grid{display:grid;gap:12px;margin-top:48px}.services-faq details{border:2px solid rgba(255,255,255,.22);padding:0 22px}.services-faq summary{cursor:pointer;padding:22px 32px 22px 0;font-family:var(--disp);font-weight:900;text-transform:uppercase;line-height:1.1}.services-faq details p{padding:0 0 22px;color:#c6d2e1;max-width:75ch}
.services-difference-list{display:grid;gap:22px;margin-top:30px}.services-difference-list>div{padding-top:20px;border-top:2px solid var(--kraft-dk)}.services-difference-list b{font-family:var(--disp);font-size:1.1rem;text-transform:uppercase}.services-difference-list p{margin-top:8px}
.services-cta{position:relative;isolation:isolate;padding:clamp(82px,11vw,150px) 0;background:var(--navy);color:#fff;overflow:hidden}.services-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,25,48,.96),rgba(8,25,48,.76) 50%,rgba(8,25,48,.2))}.services-cta>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center}.services-cta .wrap>div{max-width:680px}.services-cta .d2{max-width:13ch;color:#fff}.services-cta .txt{color:#c6d2e1;margin-top:24px}.services-cta .act{margin-top:30px}
@media(min-width:820px){.services-split{grid-template-columns:.9fr 1fr}.services-cards{grid-template-columns:repeat(2,1fr)}.services-card:nth-child(odd){padding-right:34px;border-right:2px solid rgba(255,255,255,.35)}.services-card:nth-child(even){padding-left:34px}.services-faq-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:819px){.services-hero{min-height:650px}.services-hero-img{object-position:64% center}.services-residential figure,.services-difference figure{width:min(100%,560px);margin-inline:auto}}
@media(max-width:520px){.services-hero{min-height:590px}.services-hero::after{background:linear-gradient(0deg,rgba(8,25,48,.94),rgba(8,25,48,.57) 68%,rgba(8,25,48,.14))}.services-hero-img{object-position:66% center}.services-hero .d1{font-size:clamp(3rem,15vw,4.5rem)}.services-card{padding:28px 0}}

/* Moving Services page — refinements */
.services-hero .d1{font-size:clamp(2.6rem,6.4vw,5.4rem)}
.services-intro .services-split>div:first-child .d2{max-width:16ch}
.services-copy{max-width:74ch}
.services-copy h3{margin-top:0}
.services-residential figure,.services-difference figure{align-self:start}
.services-listing .kick{color:var(--navy)}
a.services-card{display:block;text-decoration:none;transition:padding-left .3s var(--ez),background .3s}
a.services-card:hover,a.services-card:focus-visible{padding-left:16px;background:rgba(13,31,58,.14)}
a.services-card .d3{display:flex;align-items:center;justify-content:space-between;gap:16px}
a.services-card .d3::after{content:"→";font-size:.8em;opacity:.55;transition:transform .3s var(--ez)}
a.services-card:hover .d3::after{transform:translateX(6px);opacity:1}
.services-checks li{line-height:1.6}
.services-faq details p a{color:#8fb6ff;text-decoration:underline}
.services-faq details[open] summary{color:var(--red-lt)}
.services-faq .d3{color:#fff}
.services-cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.services-cta .txt a{color:var(--red-lt);font-weight:800}
@media(max-width:520px){.services-cta-actions .act{width:100%;justify-content:space-between}}
.services-faq summary{list-style:none;position:relative}
.services-faq summary::-webkit-details-marker{display:none}
.services-faq summary::after{content:"+";position:absolute;right:0;top:18px;font-size:1.6rem;line-height:1;color:var(--red-lt)}
.services-faq details[open] summary::after{content:"\2013"}

/* Moving Services — background image cropping (focal points per breakpoint) */
.services-hero-img{object-position:64% 42%}
.services-listing-bg{object-position:50% 42%}
.services-cta>img{object-position:56% 40%}
.services-residential figure img{object-position:52% 42%}
.services-difference figure img{object-position:50% 38%}
@media(max-width:899px){
  .services-hero-img{object-position:70% 44%}
  .services-listing-bg{object-position:62% 46%}
  .services-cta>img{object-position:62% 46%}
}
@media(max-width:520px){
  .services-hero-img{object-position:72% 48%}
  .services-listing-bg{object-position:66% 50%}
  .services-cta>img{object-position:66% 50%}
  .services-residential figure img,.services-difference figure img{object-position:50% 42%}
}

/* Moving Services — "Our Services" editorial detail */
.svcx-head{display:grid;gap:20px;padding-bottom:clamp(28px,3.6vw,44px);border-bottom:3px solid var(--ink)}
.svcx-head .txt{color:#4A5567}
@media(min-width:900px){.svcx-head{grid-template-columns:1fr minmax(0,400px);align-items:flex-end;gap:clamp(40px,6vw,90px)}.svcx-head .txt{padding-bottom:8px}}

.svcx-item{display:grid;gap:20px;padding:clamp(32px,4.2vw,56px) 0;border-bottom:2px solid var(--kraft-dk)}
@media(min-width:900px){.svcx-item{grid-template-columns:minmax(250px,.44fr) minmax(0,1fr);gap:clamp(36px,5vw,80px)}}
.svcx-mark .num{display:block;font-size:clamp(2.2rem,3.8vw,3.3rem);line-height:1;color:var(--kraft-dk);transition:color .3s var(--ez)}
.svcx-mark .d3{margin-top:12px;color:var(--navy)}
.svcx-sub{margin-top:12px;font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:.82rem;letter-spacing:.09em;color:var(--red)}
.svcx-item:hover .svcx-mark .num{color:var(--red)}
@media(min-width:900px){.svcx-mark{position:sticky;top:calc(var(--hdr) + 30px);align-self:start}}
.svcx-copy{font-size:clamp(1rem,1.25vw,1.12rem);line-height:1.72;max-width:66ch;color:#28364B}
.svcx-copy p+p{margin-top:18px}
@media(min-width:900px){.svcx-copy{padding-left:clamp(26px,3vw,44px);border-left:2px solid var(--kraft-dk)}}

.svcx-incl{margin-top:clamp(46px,6vw,84px);background:var(--navy);color:#fff;position:relative;overflow:hidden;
  padding:clamp(30px,4.4vw,62px);display:grid;gap:clamp(24px,3.2vw,44px)}
.svcx-incl::after{content:"";position:absolute;right:-70px;top:-70px;width:230px;height:230px;background:var(--red);opacity:.16;transform:rotate(45deg);pointer-events:none}
.svcx-incl>*{position:relative;z-index:1}
.svcx-incl .kick{color:var(--red-lt);margin-bottom:14px}
.svcx-incl-head .d3{color:#fff;max-width:30ch}
.svcx-incl .services-checks{margin:0}
.svcx-incl-cta p{color:#c6d2e1}
.svcx-incl-cta a:not(.act){color:var(--red-lt);font-weight:800}
.svcx-incl-cta .act{margin-top:22px}
@media(min-width:900px){
  .svcx-incl{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);grid-template-areas:"head head" "list cta";column-gap:clamp(40px,5vw,72px)}
  .svcx-incl-head{grid-area:head;padding-bottom:26px;border-bottom:2px solid rgba(255,255,255,.22)}
  .svcx-incl .services-checks{grid-area:list;grid-template-columns:repeat(2,1fr);column-gap:36px}
  .svcx-incl-cta{grid-area:cta;padding-left:clamp(26px,3vw,44px);border-left:2px solid rgba(255,255,255,.22)}
}
@media(max-width:899px){.svcx-incl-cta{padding-top:24px;border-top:2px solid rgba(255,255,255,.22)}}
@media(max-width:520px){.svcx-incl-cta .act{width:100%;justify-content:space-between}}

/* Moving Services — "Included as standard" panel fixes */
.svcx-incl .services-checks li{padding-left:30px}
.svcx-incl .services-checks li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;
  background:var(--red-lt);transform:rotate(45deg);font-weight:400}
.services-benefits .act{color:#fff}
.services-benefits .act>span,.services-benefits .act>i{color:#fff;font-weight:inherit}

/* Areas We Serve page */
.areas-page .services-difference-list,.commercial-page .services-difference-list,.junk-page .services-difference-list{margin-top:clamp(30px,4vw,50px)}
@media(min-width:900px){.areas-page .services-difference-list,.commercial-page .services-difference-list,.junk-page .services-difference-list{grid-template-columns:repeat(3,1fr);gap:clamp(28px,3vw,48px)}}
.areas-page .svcx-incl{grid-template-areas:none;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){
  .areas-page .svcx-incl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
  .areas-page .svcx-incl-head{padding-bottom:0;border-bottom:0}
}
.areas-page .svcx-incl-head,.areas-page .svcx-incl-cta{grid-area:auto}

/* "Let's Get Moving" CTA — show the full photo, no top/bottom crop on desktop.
   lets-get-moving.jpg is 3616x2411 (1.5:1), so a full-bleed cover needs 100/1.5 = 66.7vw of height. */
@media(min-width:900px){
  .services-cta{min-height:min(66.7vw,1000px);display:flex;align-items:center;padding-block:clamp(56px,6vw,96px)}
  .services-cta>.wrap{width:100%}
  .services-cta>img{object-position:center center}
}

/* Commercial Moving page */
.commercial-page .services-difference-list,.junk-page .services-difference-list{margin-top:clamp(30px,4vw,50px)}
.commercial-page .services-difference .services-split{margin-bottom:clamp(40px,5vw,70px)}
.commercial-page .svcx-incl{grid-template-areas:none;grid-template-columns:minmax(0,1fr)}
.commercial-page .svcx-incl-head,.commercial-page .svcx-incl-cta{grid-area:auto}
@media(min-width:900px){
  .commercial-page .svcx-incl{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center}
  .commercial-page .svcx-incl-head{padding-bottom:0;border-bottom:0}
}
/* diamond markers everywhere the checklist is used (matches the tape motif) */
.services-checks li{padding-left:30px}
.services-checks li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;
  background:var(--red);transform:rotate(45deg)}
.junk-page .services-difference-list{margin-top:clamp(30px,4vw,50px)}
.junk-page .services-difference .services-split{margin-bottom:clamp(40px,5vw,70px)}
.junk-page .svcx-incl{grid-template-areas:none;grid-template-columns:minmax(0,1fr)}
.junk-page .svcx-incl-head,.junk-page .svcx-incl-cta{grid-area:auto}
@media(min-width:900px){
  .junk-page .svcx-incl{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center}
  .junk-page .svcx-incl-head{padding-bottom:0;border-bottom:0}
}

/* FAQ page */
.faq-filter{display:grid;gap:12px;align-items:end}
.faq-filter .fld{background:#fff;border-bottom-color:var(--red)}
.faq-filter .act--navy{background:var(--red);border-color:var(--red)}
.faq-filter .act--navy:hover{background:var(--red-dk);border-color:var(--red-dk)}
.faq-filter .act svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:square}
.faq-page .services-faq-grid{margin-top:22px}
.faq-none{margin-top:26px;color:#c6d2e1}
@media(min-width:640px){.faq-filter{grid-template-columns:minmax(0,1fr) auto}}

/* Contact Us page */
.contact-grid{display:grid;gap:clamp(34px,5vw,70px);align-items:start}
@media(min-width:960px){.contact-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}}
.starter--contact{grid-template-columns:1fr}
@media(min-width:720px){.starter--contact{grid-template-columns:1fr 1fr}}
.starter--contact .fld--wide,.starter--contact .contact-consent,.starter--contact>.act{grid-column:1/-1}
@media(min-width:720px){.starter--contact .fld:nth-child(odd){border-right:3px solid var(--ink)}}
.starter--contact select,.starter--contact textarea{border:0;padding:0;background:none;color:var(--ink);
  font-family:var(--body);font-size:1rem;line-height:1.5;width:100%;resize:vertical}
.starter--contact select{height:30px;font-family:var(--disp);font-weight:900;font-stretch:90%;text-transform:uppercase}
.starter--contact select:focus,.starter--contact textarea:focus{outline:none}
.starter--contact textarea{min-height:96px;padding-top:4px}
.contact-consent{margin:0;padding:16px 18px;font-size:.8rem;line-height:1.55;color:#5A6678;
  border-bottom:3px solid var(--ink);background:var(--paper)}
.contact-consent a{color:var(--red);font-weight:700;text-decoration:underline}
.starter--contact>.act{justify-content:space-between;border:0}
.contact-side{display:grid;gap:clamp(22px,3vw,34px)}
.contact-side .label{position:static}
.contact-side .lrow span a:hover{color:var(--red)}
.contact-shot{margin:0;aspect-ratio:4/3;overflow:hidden;border:3px solid var(--ink)}
.contact-shot img{width:100%;height:100%;object-fit:cover;object-position:60% 45%}
.contact-page .close{padding-top:clamp(96px,10vw,150px)}
@media(max-width:520px){.starter--contact>.act{width:100%}}

/* Contact Us — light page, navy detail card */
.contact-close{background:var(--paper);color:var(--ink)}
.contact-close .d1{color:var(--ink)}
.contact-close p.txt{color:#4A5567}
.contact-close .kick{color:var(--red)}
.contact-close .close-alt{color:#5A6678}
.contact-close .close-alt a{color:var(--ink)}
.contact-close .close-alt a:hover{color:var(--red)}
.contact-page .svcx-incl{grid-template-areas:none;grid-template-columns:minmax(0,1fr);gap:clamp(20px,2.4vw,30px)}
.contact-page .svcx-incl-head,.contact-page .svcx-incl-cta{grid-area:auto;padding:0;border:0}
.contact-page .svcx-incl-head .d3{color:#fff;max-width:none}
.contact-rows{display:grid}
.contact-rows>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:baseline;
  padding:13px 0;border-top:2px solid rgba(255,255,255,.18)}
.contact-rows>div:first-child{border-top:0;padding-top:0}
.contact-rows em{font-style:normal;font-family:var(--disp);font-weight:800;font-size:.68rem;
  letter-spacing:.13em;text-transform:uppercase;color:#8FA6C2}
.contact-rows span{font-family:var(--disp);font-weight:900;font-stretch:88%;text-transform:uppercase;
  font-size:1.02rem;line-height:1.15;color:#fff}
.contact-rows a:hover{color:var(--red-lt)}
@media(max-width:420px){.contact-rows>div{grid-template-columns:1fr;gap:4px}}

/* Contact form — visible field boxes (scoped: homepage quote bar untouched) */
.starter--contact .fld{gap:9px;padding:16px 18px;border-bottom:0}
@media(min-width:720px){.starter--contact .fld:nth-child(odd){border-right:0}}
.starter--contact .fld input,
.starter--contact .fld select,
.starter--contact .fld textarea{
  width:100%;height:auto;padding:12px 14px;background:#fff;color:var(--ink);
  border:2px solid #BFC7D2;transition:border-color .2s,box-shadow .2s}
.starter--contact .fld input,.starter--contact .fld select{
  font-family:var(--disp);font-weight:900;font-stretch:90%;font-size:1.02rem;line-height:1.2}
.starter--contact .fld textarea{font-family:var(--body);font-size:1rem;line-height:1.55;min-height:132px}
.starter--contact .fld input:focus,
.starter--contact .fld select:focus,
.starter--contact .fld textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(216,35,42,.14);outline:none}
.starter--contact .fld input::placeholder{color:#AFB7C3}
.starter--contact .fld.err{background:none}
.starter--contact .fld.err input{border-color:var(--red);background:#FDECEC}
.starter--contact .contact-consent{border-top:3px solid var(--ink);border-bottom:0}

/* ============================================================
   SITEWIDE POLISH — balanced media/text rows, uniform ratios
   ============================================================ */
/* one media ratio for every in-flow content figure */
.services-residential figure,.services-difference figure,
.about-intro-shot,.about-story-shot,.contact-shot{aspect-ratio:4/5;margin:0;overflow:hidden;min-height:0}
.services-residential figure img,.services-difference figure img,
.about-intro-shot img,.about-story-shot img,.contact-shot img{width:100%;height:100%;object-fit:cover}
/* one offset shadow, no stray borders */
.services-residential figure,.services-difference figure,
.about-content-media,.contact-shot{border:0}

/* Balanced rows: short column centres against the tall one, and a media column
   shorter than its copy stays pinned in view instead of leaving dead space. */
@media(min-width:820px){
  .services-split,.about-intro-layout,.about-story-grid{align-items:center}
  .services-split>figure,.about-intro-shot,.about-story-shot{
    align-self:start;position:sticky;top:calc(var(--hdr) + 40px)}
}
/* keep the lighter mobile shadow */
@media(max-width:819px){
  .services-residential figure,.services-difference figure,
  .about-intro-shot,.about-story-shot,.contact-shot{width:min(100%,560px);margin-inline:auto}
}

/* Seam between two consecutive paper sections (Areas We Serve) */
.services-intro + .services-benefits{padding-top:clamp(18px,2.4vw,34px)}
/* Contact section vertical symmetry */

/* Individual service pages */
.service-detail .svcx-listlead{margin-top:22px;font-family:var(--disp);font-weight:900;text-transform:uppercase;
  font-stretch:90%;font-size:1.02rem;line-height:1.2;color:var(--navy)}
.service-detail .services-checks{margin-top:16px}
.service-detail .svcx-after{margin-top:22px}
.service-detail .svcx-callout{margin-top:22px;padding-top:20px;border-top:2px solid var(--kraft-dk);
  font-family:var(--disp);font-weight:900;text-transform:uppercase;font-stretch:90%;font-size:1.02rem;line-height:1.25}
.service-detail .svcx-callout a{color:var(--red)}
.service-detail .svcx-item .services-checks li{color:#28364B}
.service-detail .svcx-item .svcx-listlead{margin-top:20px}
.service-detail .svcx-siblings li::before{background:var(--red-lt)}
.service-detail .svcx-siblings a{color:#fff;border-bottom:2px solid transparent;transition:border-color .2s,color .2s}
.service-detail .svcx-siblings a:hover{color:var(--red-lt);border-bottom-color:var(--red-lt)}
.service-detail .svcx-siblings .is-current span{color:#8FA6C2}
.service-detail .svcx-incl{grid-template-areas:none;grid-template-columns:minmax(0,1fr)}
.service-detail .svcx-incl-head,.service-detail .svcx-incl-cta{grid-area:auto}
@media(min-width:900px){
  .service-detail .svcx-incl{grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(0,.9fr);align-items:start}
  .service-detail .svcx-incl-head{padding-bottom:0;border-bottom:0}
  .service-detail .svcx-siblings{grid-template-columns:1fr}
  .service-detail .svcx-incl-cta{padding-left:clamp(26px,3vw,44px);border-left:2px solid rgba(255,255,255,.22)}
}
@media(max-width:899px){.service-detail .svcx-incl-cta{padding-top:24px;border-top:2px solid rgba(255,255,255,.22)}}

/* Sibling panel on service + location pages: head and CTA on top, links across the base */
.service-detail .svcx-incl{grid-template-areas:none;grid-template-columns:minmax(0,1fr);gap:clamp(22px,3vw,34px)}
.service-detail .svcx-incl-head,.service-detail .svcx-incl-cta,.service-detail .svcx-siblings{grid-area:auto}
.service-detail .svcx-siblings{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  column-gap:34px;row-gap:14px;padding-top:26px;border-top:2px solid rgba(255,255,255,.22)}
.service-detail .svcx-siblings li{font-family:var(--disp);font-weight:900;font-stretch:90%;
  text-transform:uppercase;font-size:1.02rem;line-height:1.2}
@media(min-width:900px){
  .service-detail .svcx-incl{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .service-detail .svcx-incl-head{padding-bottom:0;border-bottom:0}
  .service-detail .svcx-incl-cta{padding-left:clamp(26px,3vw,44px);border-left:2px solid rgba(255,255,255,.22)}
  .service-detail .svcx-siblings{grid-column:1/-1}
}
@media(min-width:900px){
  .service-detail .svcx-incl{grid-template-areas:"head cta" "list list"}
  .service-detail .svcx-incl-head{grid-area:head}
  .service-detail .svcx-incl-cta{grid-area:cta}
  .service-detail .svcx-siblings{grid-area:list}
}
/* Legal pages: no sibling link row, single-column detail panel */
.legal-page .svcx-incl{grid-template-areas:none;grid-template-columns:minmax(0,1fr)}
.legal-page .svcx-incl-head,.legal-page .svcx-incl-cta{grid-area:auto}
@media(min-width:900px){
  .legal-page .svcx-incl{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center}
  .legal-page .svcx-incl-head{padding-bottom:0;border-bottom:0}
  .legal-page .svcx-incl-cta{padding-left:clamp(26px,3vw,44px);border-left:2px solid rgba(255,255,255,.22)}
}
/* SiteMap */
.sitemap-kids{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));column-gap:34px;row-gap:12px}
.sitemap-kids a,.svcx-mark .d3 a{color:inherit;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.sitemap-kids a:hover,.svcx-mark .d3 a:hover{color:var(--red);border-bottom-color:var(--red)}
.sitemap-single a{color:var(--red);font-weight:700;font-size:.92rem;word-break:break-all}
/* Site search */
.search-form{max-width:620px;margin-top:30px;align-items:stretch}
.search-form .fld{background:#fff}
.search-page .svcx-mark .d3 a{color:inherit;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.search-page .svcx-mark .d3 a:hover{color:var(--red);border-bottom-color:var(--red)}
.search-link{margin-top:14px}
.search-link a{color:var(--red);font-family:var(--disp);font-weight:900;text-transform:uppercase;font-size:.86rem;letter-spacing:.04em}
/* Search form: button matches the field block height */
.search-form .act>span{display:flex;align-items:center}
/* On a results page, keep the hero compact so results sit at the fold */
body.search-results .services-hero{min-height:clamp(380px,46vh,500px)}
body.search-results .services-hero .d1{font-size:clamp(2.2rem,4.4vw,3.4rem)}
body.search-results .services-hero .txt{display:none}
body.search-results .search-form{margin-top:22px}
/* Filter/search rows: action button matches the field block height */
.faq-filter{align-items:stretch}
.faq-filter .act{height:100%;margin-top:0}
.faq-filter .act>span{display:flex;align-items:center}

/* ============================================================
   SITEWIDE CONSISTENCY PASS — inner pages adopt the homepage
   spacing rhythm, 3px ink rules, card shadows and type scale.
   ============================================================ */

/* 1. Section rhythm: homepage sections sit at 86–95px, inner pages were at 136px */
.services-intro,.services-residential,.services-benefits,.services-difference,
.about-intro,.about-story{padding:clamp(56px,7.2vw,98px) 0}
.services-listing,.about-expect,.about-cta{padding:clamp(52px,6.6vw,90px) 0}
.services-faq{padding:clamp(56px,7vw,95px) 0}
.contact-close{padding:clamp(96px,8vw,120px) 0 clamp(56px,7vw,95px)}
.services-intro + .services-benefits{padding-top:clamp(14px,2vw,28px)}

/* 2. Structural rules: 3px ink on light, matching .row / .label / .gpill */
.svcx-item{border-bottom:3px solid var(--ink)}
.svcx-item:first-child{border-top:3px solid var(--ink)}
.services-difference-list>div{border-top:3px solid var(--ink)}
@media(min-width:900px){.svcx-copy{border-left:3px solid var(--kraft-dk)}}
.svcx-head{border-bottom:3px solid var(--ink)}
.services-card{border-bottom:3px solid rgba(255,255,255,.4)}
.services-cards{border-top:3px solid rgba(255,255,255,.4)}
@media(min-width:820px){.services-card:nth-child(odd){border-right:3px solid rgba(255,255,255,.4)}}
.services-faq details{border:3px solid rgba(255,255,255,.26)}
.contact-consent{border-top:3px solid var(--ink)}

/* 3. Cards: same border + soft offset shadow as the homepage .label */
.svcx-incl{border:3px solid var(--ink);box-shadow:14px 14px 0 rgba(11,22,38,.16)}
.services-residential figure,.services-difference figure,
.about-content-media,.about-intro-shot,.about-story-shot,.contact-shot{
  border:3px solid var(--ink);box-shadow:14px 14px 0 rgba(11,22,38,.16)}
.contact-close .starter{box-shadow:14px 14px 0 rgba(11,22,38,.16)}
@media(max-width:819px){
  .svcx-incl,.services-residential figure,.services-difference figure,
  .about-content-media,.about-intro-shot,.about-story-shot,.contact-shot,
  .contact-close .starter{box-shadow:9px 9px 0 rgba(11,22,38,.16)}
}

/* 4. Body copy matches the homepage .txt scale */
.services-copy,.svcx-copy{font-size:clamp(1rem,1.2vw,1.07rem);line-height:1.6}
.services-copy p+p,.svcx-copy .services-copy p+p{margin-top:16px}

/* 5. Homepage-style hover on the editorial rows */
.svcx-item{position:relative;transition:background .3s var(--ez)}
.svcx-item::after{content:"";position:absolute;left:0;bottom:-3px;height:3px;width:0;
  background:var(--red);transition:width .45s var(--ez)}
.svcx-item:hover::after{width:100%}
.svcx-item:hover .svcx-mark .d3{color:var(--red)}
.svcx-mark .d3{transition:color .25s}
