/*
Theme Name: Raleigh Sprinklers
Theme URI: https://raleighsprinklers.com
Author: Raleigh Sprinklers
Description: Local-SEO theme for Raleigh Sprinklers — irrigation, drainage & backflow across Raleigh, Wake Forest, Rolesville, Chapel Hill & the Triangle. Blue/amber brand. Built to match the static build.
Version: 2.7
License: GNU General Public License v2 or later
Text Domain: raleigh-sprinklers
*/

:root{--ink:#14181b;--spruce:#14343f;--turf:#16748c;--turf-lo:#0f5567;--mist:#7fb8bb;--sun:#c8761a;--sun-ink:#9e5c15;--sun-lite:#e28522;--paper:#faf7f2;--paper-2:#f1ebe1;--line:#e3dbcd;--muted:#6d6659;--display:"IBM Plex Serif",Georgia,serif;--body:"IBM Plex Sans",system-ui,sans-serif;--mono:"IBM Plex Mono",monospace;--wrap:1180px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--paper);line-height:1.6}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--display);line-height:1.2;font-weight:600;letter-spacing:-.005em}
.shell{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.kicker{font-family:var(--body);font-weight:700;font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;color:var(--turf-lo);display:inline-block;border-top:3px solid var(--sun);padding-top:.5rem}
.kicker::before{content:none}
.act{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--body);font-weight:700;font-size:1.05rem;letter-spacing:-.005em;padding:.8rem 1.35rem;border-radius:7px;border:1.5px solid transparent;cursor:pointer;transition:.18s;white-space:nowrap}
.act-go{background:var(--turf);color:#fff}.act-go:hover{background:var(--turf-lo)}
.act-alt{color:var(--turf-lo);border-color:var(--turf)}.act-alt:hover{background:var(--turf);color:#fff}
header{position:sticky;top:0;z-index:100;background:rgba(242,247,249,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:var(--wrap);margin:0 auto;padding:.85rem 22px}
.navstrip{border-top:1px solid var(--line);background:var(--paper-2)}
.navstrip .shell{display:flex;align-items:center;gap:1.6rem;padding-top:0;padding-bottom:0}
.mark{display:flex;align-items:center;gap:.65rem;font-family:var(--display);font-weight:600;color:var(--spruce);letter-spacing:-.005em;line-height:1;font-size:1.3rem}
.mark>svg{width:48px;height:48px;flex:none}
.mark .marktext{white-space:nowrap}
.mark .marktext span{font-family:var(--body);font-size:.63rem;letter-spacing:.15em;color:var(--turf-lo);text-transform:uppercase;display:block;font-weight:400;margin-top:4px;white-space:nowrap}
.navlist{display:flex;align-items:center;gap:1.9rem;list-style:none}
.navlist>li>a{padding:.75rem 0}
.navlist>li{position:relative}
.navlist>li>a{font-family:var(--display);font-weight:600;font-size:.92rem;color:var(--spruce);padding:.4rem 0;display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap}
.navlist>li>a:hover{color:var(--turf-lo)}
.chev{width:8px;height:8px;border-right:2px solid var(--turf);border-bottom:2px solid var(--turf);transform:rotate(45deg);margin-top:-3px;transition:.15s}
.dropdown{position:absolute;top:calc(100% + 2px);left:-14px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px rgba(15,58,85,.14);padding:8px;min-width:260px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.16s}
.navlist>li:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.navlist>li:hover .chev{transform:rotate(225deg);margin-top:2px}
.dropdown a{display:block;padding:.55rem .7rem;border-radius:5px;font-size:.9rem;color:var(--ink)}
.dropdown a:hover{background:var(--paper-2);color:var(--turf-lo)}
.dropdown a small{display:block;font-size:.74rem;color:var(--muted);font-weight:400}
.topbar-r{display:flex;align-items:center;gap:1rem}
.topbar-tel{font-family:var(--mono);font-weight:700;color:var(--spruce);font-size:.9rem;white-space:nowrap}
.topbar-switch,.topbar-switch-label{display:none}
@media(max-width:900px){
  .topbar-tel{display:none}
  .topbar-r .act{display:none}
  .topbar-switch-label{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:6px}
  .topbar-switch-label span{width:24px;height:2px;background:var(--spruce);border-radius:2px}
  /* Hangs off the header itself, so it follows the header height instead of a
     hardcoded offset that breaks the moment the logo size changes. */
  .navstrip{position:absolute;top:100%;left:0;right:0;z-index:99}
  .navlist{position:static;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:0;padding:0 22px;max-height:0;overflow:hidden;transition:max-height .25s ease}
  .topbar-switch:checked~.navstrip .navlist{max-height:90vh;overflow:auto;padding:8px 22px 18px;border-bottom:1px solid var(--line)}
  .navlist>li>a{padding:.85rem 0;border-bottom:1px solid var(--line)}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 .5rem 1rem;min-width:0}
  .chev{display:none}
}
.trail{font-family:var(--body);font-size:.78rem;color:var(--muted);padding:.85rem 0;letter-spacing:.02em}
.trail a{color:var(--turf-lo)}
.trail a:hover{color:var(--turf-lo)}
.masthead{position:relative;overflow:hidden;background:var(--spruce);color:#e8e0d2;border-bottom:0;padding:64px 0 68px}
.masthead h1{font-size:clamp(2.15rem,5vw,3.25rem);letter-spacing:-.022em;color:var(--spruce);margin:.85rem 0 .95rem;max-width:22ch}
.masthead p.deck{color:var(--muted);max-width:60ch;font-size:1.08rem}
.masthead-act{display:flex;gap:.8rem;margin-top:1.6rem;flex-wrap:wrap}
/* The masthead is a dark field, so the note has to be light. It was inheriting
   a dark teal that only ever got corrected inside a mobile media query. */
.masthead-note{margin-top:1.2rem;font-family:var(--body);font-size:.74rem;color:#a99e8b}
.topo{position:absolute;right:-90px;bottom:-170px;width:620px;height:620px;pointer-events:none;opacity:.30}
.topo path{fill:none;stroke:var(--spruce);vector-effect:non-scaling-stroke}
.strip{background:var(--ink)}
.striprow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:0}
.stripitem{padding:18px 0 18px 20px;border-left:1px solid rgba(255,255,255,.14)}
.stripitem:first-child{border-left:0;padding-left:0}
.stripitem{display:flex;align-items:center;gap:.55rem;font-family:var(--body);font-size:.73rem;color:#b9ad98}
.stripitem b{font-family:var(--display);color:#fff;font-size:.92rem}
section{padding:74px 0}
.hd{color:var(--spruce);font-size:clamp(1.62rem,3.2vw,2.25rem);letter-spacing:-.018em;margin-bottom:.5rem}
section .hd{position:relative}
.standfirst{color:var(--muted);max-width:66ch;margin-bottom:1.4rem}
.copy p{max-width:66ch;margin-bottom:1rem}
.copy a{color:var(--turf-lo);border-bottom:1px solid var(--line)}
.copy a:hover{border-color:var(--turf)}
.svcgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 44px;margin-top:1.8rem;counter-reset:silo}
.svc{background:none;border:0;border-top:2px solid var(--line);border-radius:0;padding:20px 0 24px;transition:.16s;display:flex;flex-direction:column;position:relative;counter-increment:silo}
.svc::before{content:counter(silo,decimal-leading-zero);position:absolute;top:16px;right:0;font-family:var(--body);font-size:.78rem;color:var(--sun);letter-spacing:.08em}
@media(hover:hover){.svc:hover .more{color:var(--sun)}.svc:hover h3{color:var(--turf-lo)}}
.svc h3{color:var(--spruce);font-size:1.1rem;margin-bottom:.35rem}
.svc p{font-size:.9rem;color:var(--muted);flex:1}
.svc .more{font-family:var(--body);font-size:.74rem;color:var(--turf-lo);margin-top:.9rem;font-weight:700}
.tier{background:var(--paper-2)}
.duo{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:start}
.bio{display:grid;grid-template-columns:1fr .8fr;gap:38px;align-items:start}
.bio .bionote p{max-width:60ch;margin-bottom:1rem;font-size:1.02rem}
.bio .bionote .bioname{font-family:var(--display);font-weight:600;color:var(--spruce);margin-top:.6rem}
.bio .bionote .bioname span{display:block;font-family:var(--body);font-size:.72rem;color:var(--muted);font-weight:400;letter-spacing:.04em}
.sidenote{background:var(--spruce);color:#f3ede3;border-radius:12px;padding:28px;position:sticky;top:90px}
.sidenote .pull{font-family:var(--display);font-size:1.25rem;line-height:1.35;color:#fff}
.sidenote .pull b{color:#e6b877}
.sidenote .figure{display:flex;gap:1.6rem;margin-top:1.2rem;font-family:var(--body);font-size:.72rem;color:#a99b85}
.sidenote .figure b{display:block;font-family:var(--display);color:#e6b877;font-size:1.3rem}
.aside{background:#fff;border:1px dashed var(--sun);border-radius:10px;padding:16px 18px;color:var(--muted);font-size:.9rem;max-width:70ch}
.aside b{color:var(--sun);font-family:var(--body);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.3rem}
.eqgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:1.4rem}
.eqcard{background:#fff;border:0;border-left:3px solid var(--line);border-radius:0;padding:6px 0 6px 20px}
.eqcard .n{font-family:var(--body);color:var(--turf-lo);font-size:.72rem;letter-spacing:.08em}
.eqcard h3{color:var(--spruce);font-size:1.08rem;margin:.35rem 0 .4rem}
.eqcard p{font-size:.93rem;color:var(--muted)}
.localnotes{background:#fff;border:1px solid var(--line);border-left:4px solid var(--turf);border-radius:6px;padding:26px 28px;margin-top:1.4rem}
.localnotes h3{color:var(--spruce);font-size:1.15rem;margin-bottom:.9rem}
.localnotes ul{list-style:none;display:grid;gap:.9rem}
.localnotes li{font-size:.96rem;color:var(--muted)}
.localnotes li b{color:var(--spruce)}
.flow{display:grid;gap:34px 30px;margin-top:2rem;counter-reset:cstep}
.flowitem{display:block;counter-increment:cstep;border-top:1px solid var(--line);padding-top:18px}
.flowitem .flownum{display:block;font-family:var(--display);font-weight:600;font-size:2.1rem;line-height:1;color:var(--sun);margin-bottom:.5rem;background:none;width:auto;height:auto;border-radius:0}
.flowitem .flownum::before{content:counter(cstep,decimal-leading-zero)}
.flowitem h3{margin:.1rem 0 .3rem;font-size:1.05rem;color:var(--spruce)}
.flowitem p{margin:0;color:var(--muted);font-size:.95rem}
@media(min-width:720px){.flow{grid-template-columns:repeat(4,1fr)}}
@media(max-width:719px){.flow{grid-template-columns:1fr 1fr;gap:24px 20px}}
.placehead{font-family:var(--display);font-weight:600;font-size:1.05rem;color:var(--spruce);margin-top:1.8rem}
.placehead+.placerow{margin-top:.8rem}
.placerow{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin-top:1.4rem}
.placechip{font-family:var(--body);font-weight:600;font-size:.84rem;border:0;border-bottom:2px solid var(--sun);background:none;border-radius:0;padding:.2rem .1rem;color:var(--spruce)}
.linklist{list-style:none;margin:1.3rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 2.4rem;border-top:1px solid var(--line)}
.linklist li a{display:block;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.7rem 0 .7rem 1.1rem;font-weight:600;color:var(--spruce);position:relative}
.linklist li a::before{content:"\203A";position:absolute;left:0;color:var(--sun);font-size:1.05rem;line-height:1.35}
.linklist li a:hover{border-color:var(--turf);color:var(--turf-lo)}
.qa{border-top:1px solid var(--line)}
.qa details{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:2px 0;margin-bottom:0}
.qa summary{font-family:var(--display);font-weight:600;color:var(--spruce);padding:18px 0;cursor:pointer;list-style:none;display:flex;gap:1rem}
.qa summary::-webkit-details-marker{display:none}
.qa summary::before{content:"+";color:var(--sun);font-family:var(--body);font-size:1.15rem;line-height:1.4;flex:0 0 22px}
.qa details[open] summary::before{content:"\2013"}
.qa p{padding:0 0 18px 22px;color:var(--muted);font-size:.95rem;max-width:70ch}
.reqform{background:var(--ink);color:#e8e0d2;border-top:0}
.reqform .hd{color:#fff}
.reqform .standfirst{color:#c3b9a7}
.reqform .kicker{color:var(--sun-lite)}
.reqform .kicker{border-top-color:var(--sun)}
.reqform .reqlist li{color:#c3b9a7}
.reqform .reqfields{background:var(--paper);border-radius:10px;padding:22px}
.reqgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:start}
.reqlist{list-style:none;margin-top:1rem;display:grid;gap:.5rem}
.reqlist li{font-size:.93rem;color:var(--muted);padding-left:1.55rem;position:relative}
.reqlist li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;background:var(--sun)}
.reqfields{background:#fff;border:0;border-radius:4px;padding:26px}
.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{margin-bottom:12px}
.field label{display:block;font-family:var(--body);font-weight:600;font-size:.78rem;letter-spacing:.01em;color:var(--muted);margin-bottom:.35rem}
.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1.5px solid var(--line);border-radius:0;padding:.6rem .1rem;font-family:var(--body);font-size:.95rem;background:var(--paper);color:var(--ink)}
.closer{background:var(--spruce);color:#f3ede3;text-align:center}
.closer h2{color:#fff;font-size:clamp(1.7rem,3vw,2.2rem);margin-bottom:.6rem}
.closer p{color:#ded3c2;margin-bottom:1.4rem}
.closer .masthead-act{justify-content:center}
.closer .act-alt{color:#fff;border-color:rgba(255,255,255,.6)}.closer .act-alt:hover{background:#fff;color:var(--spruce)}
footer{background:var(--ink);color:#cabfaa;font-size:.9rem;padding:48px 0 40px}
.footgrid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:30px 40px;margin-bottom:26px;border-top:2px solid var(--sun);padding-top:24px}
.footcol h3{color:#fff;font-size:.95rem;font-family:var(--body);font-weight:700;letter-spacing:.01em;margin-bottom:.85rem}
.footcol a{display:block;color:#cabfaa;padding:.2rem 0;font-size:.88rem}
.footcol a:hover{color:#e6b877}
.formnote{font-family:var(--body);font-size:.72rem;color:var(--muted);text-align:center;margin-top:.9rem;line-height:1.5}
.formnote a{color:var(--turf-lo);font-weight:700;border-bottom:1px solid var(--turf)}
.contactblock{font-family:var(--body);font-size:.82rem;line-height:1.9}
.contactblock a{display:inline;padding:0}
.contactblock b{color:#e6b877;font-family:var(--display)}
.ph{background:#3a2f10;color:#ffd98a;border-radius:4px;padding:0 .3rem}
.footrule{border-top:1px solid rgba(255,255,255,.1);padding-top:16px;font-family:var(--body);font-size:.72rem;color:#8e8472}
/* Sticky mobile action bar. Two unequal buttons floating on a margin with the
   phone number visible, rather than three equal full-bleed blocks. The bar this
   replaced shared byte-identical declarations with the Cary theme's. */
.calldock{position:fixed;left:12px;right:12px;bottom:12px;z-index:120;display:flex;gap:8px;
  filter:drop-shadow(0 6px 18px rgba(20,24,27,.28))}
.calldock a{display:flex;align-items:center;justify-content:center;gap:.45rem;
  font-family:var(--body);font-weight:700;border-radius:11px;padding:.95rem .5rem;
  line-height:1;white-space:nowrap}
.calldock .dial{flex:2;background:#a25e15;color:#fff;font-size:1.05rem}
.calldock .dial .num{font-family:var(--mono);font-weight:700;font-size:1.02rem}
.calldock .book{flex:1.5;background:var(--spruce);color:#fff;font-size:1.05rem}
.calldock svg{width:17px;height:17px;flex:none}
@media(min-width:761px){.calldock{display:none}}
@media(max-width:900px){.svcgrid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.svcgrid,.reqgrid,.fieldrow,.footgrid,.duo,.bio,.eqgrid{grid-template-columns:1fr}.sidenote{position:static}footer{padding-bottom:80px}}

/* ---- homepage-specific silo variants (featured service card) ---- */
/* The old 3px orange border-top here rendered as a mystery underline on
   whichever card sat above the highlighted one. The flag text carries the
   emphasis; the border misled. */
.svc.highlight .flag{font-weight:700}
/* Out of flow: as a block it pushed its own heading down and broke the baseline against the item beside it. Sits next to the counter now. */
.svc .flag{position:absolute;top:14px;right:32px;margin:0;font-family:var(--body);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sun-ink);background:none;border:0;padding:0}
@media(max-width:620px){.svc .flag{position:static;display:block;margin-bottom:.4rem}}

/* Brand name "Raleigh Sprinklers & Irrigation" is longer than the original
   two-word name; without this the header overflows narrow phones and the
   page scrolls sideways. Allows the name to wrap and trims the mark/type
   scale below 600px. */
@media(max-width:600px){
  /* chips wrap ragged as inline flex on a narrow screen; two aligned columns */
  .placerow{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.3rem;align-items:start}
  .placechip{justify-self:start;font-size:.98rem;padding:.3rem .1rem}
  .placehead{font-size:1.15rem}

  .mark{font-size:1.1rem;gap:.55rem}
  .mark>svg{width:44px;height:44px}
  .mark .marktext{white-space:normal;line-height:1.14;max-width:56vw}
  .mark .marktext span{font-size:.64rem;letter-spacing:.13em;margin-top:4px}
}

/* Mid-range nav fix. Between the 900px hamburger breakpoint and ~1280px the
   header row was wider than the viewport (pre-existing; the longer brand name
   widened the affected range). Tightens type, gaps and padding so the row fits. */
@media(min-width:901px) and (max-width:1279px){
  .mark{font-size:1.12rem}
  .mark>svg{width:34px;height:34px}
  .mark .marktext span{display:none}
  .topbar{gap:.6rem;padding-left:16px;padding-right:16px}
  .navlist{gap:.8rem}
  .navlist>li>a{font-size:.85rem}
  .topbar-r{gap:.6rem}
  .topbar-tel{font-size:.82rem}
  .topbar-r .act{padding:.68rem .9rem;font-size:.86rem}
}

/* Below ~1100px the five nav items, phone and button still exceed the row;
   drop the header phone there (it remains in the hero, footer and call bar). */
@media(min-width:901px) and (max-width:1099px){
  .topbar-tel{display:none}
  .navlist{gap:.7rem}
  .navlist>li>a{font-size:.82rem}
  .topbar-r .act{padding:.62rem .8rem;font-size:.84rem}
}

/* Value-prop badges: two columns on phones instead of an uneven wrap.
   Each badge stacks its figure over its label so the grid reads as tiles. */
@media(max-width:600px){
  .striprow{display:grid;grid-template-columns:1fr 1fr;gap:1rem .9rem;padding:18px 0}
  .stripitem{flex-direction:column;align-items:flex-start;gap:.12rem;line-height:1.32}
  .stripitem b{font-size:.95rem}
}

/* Area-link list: put the descriptor on its own line under the area name. */
.linklist li a small{display:block;font-family:var(--body);font-size:.78rem;color:var(--muted);font-weight:400;margin-top:.18rem;line-height:1.35}

/* Recent Work gallery — native [gallery] shortcode, no plugin required.
   Overrides WordPress core's table-ish default with a responsive grid. */
.worktier .shell{text-align:center}
.rs-gallery-inner{margin-top:1.4rem}
.rs-gallery-inner .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0}
.rs-gallery-inner .gallery-item{margin:0!important;width:auto!important;float:none!important;text-align:left}
.rs-gallery-inner .gallery-item img{width:100%;height:220px;object-fit:cover;display:block;border:1px solid var(--line);border-radius:10px;transition:transform .25s ease,box-shadow .25s ease}
.rs-gallery-inner .gallery-item img:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(12,42,64,.14)}
.rs-gallery-inner .gallery-caption{font-size:.78rem;color:var(--muted);padding:.45rem .1rem 0;line-height:1.4}
.rs-gallery-inner .gallery-icon{margin:0}
@media(max-width:900px){.rs-gallery-inner .gallery{grid-template-columns:repeat(3,1fr)}.rs-gallery-inner .gallery-item img{height:180px}}
@media(max-width:640px){.rs-gallery-inner .gallery{grid-template-columns:repeat(2,1fr);gap:10px}.rs-gallery-inner .gallery-item img{height:140px}}

/* Reversed hero. Cary's is white-to-pale with dark text; this is the largest
   single difference available on the first screen, and it is four declarations. */
.masthead h1{color:#fff}
.masthead p.deck{color:#cfc6b6}
.masthead .kicker{color:var(--sun-lite)}
.masthead .kicker{border-top-color:var(--sun)}
/* Word-for-word the same four claims as the trust strip directly below it.
   Fine side by side on a wide screen, reads as a duplication bug on a phone. */
.masthead-note{display:none}
.masthead .act-go{background:var(--sun);color:#20160a;border-color:var(--sun)}
.masthead .act-go:hover{background:#e0912c}
.masthead .act-alt{color:#fff;border-color:rgba(255,255,255,.45)}
.masthead .act-alt:hover{background:#fff;color:var(--spruce)}
.topo path{stroke:#7fb8bb}
.masthead+.strip,.trail+.masthead{border-top:0}

@media(max-width:900px){
  /* The second tier is where the collapsed menu lives, so it must stay in the
     DOM on mobile. Strip its bar styling instead, or a bare rule shows. */
  .navstrip{border-top:0;background:none}
  .navstrip .shell{padding:0;display:block}
  .svcgrid{grid-template-columns:1fr;gap:0 0}
}

.flowitem h3{margin:.15rem 0 .35rem;font-size:1rem}
.flowitem p{font-size:.9rem}
@media(max-width:560px){.flow{grid-template-columns:1fr}}

/* the kicker is a block now, so it needs clearance from the heading under it */
.kicker+h1,.kicker+h2,.kicker+.hd{margin-top:.7rem}
.qa summary::before{margin-top:.1rem}
@media(max-width:720px){
  .striprow{grid-template-columns:repeat(2,1fr)}
  .stripitem:nth-child(3){border-left:0;padding-left:0}
}
@media(max-width:430px){
  .striprow{grid-template-columns:1fr 1fr;gap:.9rem .8rem}
  .stripitem{border-left:0;padding-left:0;padding-top:6px;padding-bottom:6px}
  .stripitem b{font-size:.9rem}
}

/* ---- two-column body shell ------------------------------------------
   The page sections used to run full width, one after another, exactly as
   Cary's do. They now sit in a main column with the quote form sticky
   beside them, so the form is visible while you read instead of waiting at
   the bottom. Pages with no quote form get .solo and stay single column. */
.body-split{max-width:var(--wrap);margin:0 auto;padding:0 22px;display:grid;
  grid-template-columns:minmax(0,1fr) 340px;gap:0 54px;align-items:start}
.body-split.solo{grid-template-columns:minmax(0,1fr)}
.body-split .shell{max-width:none;padding:0}
.col-main>section{padding:40px 0}
.col-main>section:first-child{padding-top:34px}
.col-main>section+section{border-top:1px solid var(--line)}
/* a full-bleed tinted band cannot work inside a column, so the same class
   becomes an editorial left rule — which Cary has nowhere */
.col-main>section.tier{background:none;border-left:3px solid var(--sun);
  padding-left:26px;margin-left:-29px}
.col-side{position:sticky;top:126px;padding-top:34px}
.col-side>.reqform{background:var(--ink);border-radius:6px;padding:24px}
.col-side .reqgrid{display:block}
.col-side .reqfields{padding:0;background:none}
.col-side .reqfields .field label{color:#a99b85}
.col-side .reqfields input,.col-side .reqfields select,.col-side .reqfields textarea{
  background:transparent;color:#f3ede3;border-bottom-color:rgba(255,255,255,.25)}
.col-side .reqlist{margin-bottom:1.2rem}
.col-side .standfirst{font-size:.92rem;margin-bottom:.8rem}
.col-side .hd{font-size:1.2rem}
.col-side .act-go{width:100%;justify-content:center;background:var(--sun);color:#20160a}
/* The form submit is the primary action on the page, so it takes a
   deliberate step up. Every other button on the site is 1.05rem. */
.reqfields .act,.col-side .act-go{font-size:1.2rem}
@media(max-width:980px){
  .body-split{grid-template-columns:minmax(0,1fr);gap:0}
  .col-side{position:static;padding-top:0}
  .col-side>.reqform{border-radius:0;margin:0 -22px;padding:30px 22px}
  .col-main>section.tier{margin-left:0}
}
