/* =========================================================================
   Altitude Home Solutions - Stage 1 HTML design system
   Sections:
   01 Fonts  02 Design tokens  03 Reset/base  04 Typography  05 Layout
   06 Buttons  07 Header & navigation  08 Mega menu  09 Mobile navigation
   10 Heroes  11 Trust bar  12 Section navigation & tabs  13 Components
   14 Projects & gallery  15 Reviews  16 Forms  17 CTA band & footer
   18 Review notes (prototype only)  19 Utilities  20 Responsive
   21 Motion & print  22 Page additions
   ========================================================================= */


/* 00 Oxygen compatibility layer ------------------------------------------
   Oxygen renders every inline <svg> inside <div class="oxy-svg-icon2"> sized 1em.
   display:contents removes the wrapper from layout so each icon keeps the size
   the design gives it, exactly as in the approved HTML. Keep this block first. */
.oxy-svg-icon2{display:contents}
.oxy-svg-icon2>svg{width:unset;height:unset;fill:unset;object-fit:unset}

/* 01 Fonts (self-hosted, SIL OFL) -------------------------------------- */
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-latin-800-normal.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../fonts/open-sans-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../fonts/open-sans-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Open Sans";src:url("../fonts/open-sans-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

/* 02 Design tokens ------------------------------------------------------ */
/* Design tokens (colors, type scale, layout) live in Oxygen > Global Variables.
   Font families stay here because the fonts are self-hosted. */
:root{
  --f-head:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --f-body:"Open Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}

/* 03 Reset / base ------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--subnav-h) + 16px)}
body{margin:0;background:var(--c-white);color:var(--c-text);font-family:var(--f-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,video{display:block;max-width:100%;height:auto}
svg{flex-shrink:0}
img{background:var(--c-gray-50)}
a{color:var(--c-navy-700);text-underline-offset:.18em}
a:hover{color:var(--c-red)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}
.skip-link{position:absolute;left:12px;top:-100px;z-index:200;background:var(--c-white);color:var(--c-navy-800);padding:10px 16px;font-family:var(--f-head);font-weight:700;border-radius:var(--radius)}
.skip-link:focus{top:12px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
hr{border:0;border-top:1px solid var(--c-border);margin:32px 0}
main:focus{outline:none}

/* 04 Typography --------------------------------------------------------- */
h1,h2,h3,h4{font-family:var(--f-head);color:var(--c-navy-800);margin:0 0 .5em;line-height:var(--lh-head)}
h1{font-size:var(--fs-h1);font-weight:800;text-transform:uppercase;letter-spacing:-.005em;line-height:var(--lh-tight)}
h2{font-size:var(--fs-h2);font-weight:800;text-transform:uppercase;letter-spacing:-.003em}
h3{font-size:var(--fs-h3);font-weight:700}
h4{font-size:1rem;font-weight:700}
p{margin:0 0 1em}
.lead{font-size:1.0625rem;color:var(--c-text);max-width:68ch}
.subhead{font-family:var(--f-head);font-weight:600;font-size:var(--fs-sub);text-transform:uppercase;color:var(--c-navy-800);line-height:1.3;letter-spacing:.005em;margin:0 0 .9em}
.muted{color:var(--c-muted)}
.small{font-size:var(--fs-small)}
.prose{max-width:72ch}
.prose h2{margin-top:1.6em;font-size:clamp(1.3rem,1rem + 1vw,1.7rem)}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.25em}
.prose li{margin:.3em 0}
.prose .checks{padding-left:0}
sup{font-size:.6em;line-height:0}

/* 05 Layout ------------------------------------------------------------- */
.container{width:100%;max-width:calc(var(--container) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.section--tight{padding-block:calc(var(--section-y)*.65)}
.section--pale{background:var(--c-pale-blue)}
.section--gray{background:var(--c-gray-50)}
.section--navy{background:var(--c-navy-800);color:#dfe7f1}
.section--navy h2,.section--navy h3{color:var(--c-white)}
.section-head{max-width:760px;margin-bottom:36px}
.section-head--center{margin-inline:auto;text-align:center}
.section-head p{color:var(--c-muted)}
.section-head p:last-child{margin-bottom:0}
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}
.split--reverse>:first-child{order:2}
.stack>*+*{margin-top:16px}

/* 06 Buttons ------------------------------------------------------------ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 26px;border-radius:var(--radius-sm);border:2px solid transparent;font-family:var(--f-head);font-weight:700;font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;line-height:1.1;transition:background-color .15s,border-color .15s,color .15s}
.btn svg{width:18px;height:18px}
.btn--red{background:var(--c-red);color:var(--c-white)}
.btn--red:hover{background:var(--c-red-hover);color:var(--c-white)}
.btn--ghost{background:transparent;border-color:rgba(255,255,255,.85);color:var(--c-white)}
.btn--ghost:hover{background:var(--c-white);color:var(--c-navy-800)}
.btn--navy{background:var(--c-navy-800);color:var(--c-white)}
.btn--navy:hover{background:var(--c-navy-700);color:var(--c-white)}
.btn--outline{background:transparent;border-color:var(--c-navy-800);color:var(--c-navy-800)}
.btn--outline:hover{background:var(--c-navy-800);color:var(--c-white)}
.btn--sm{min-height:40px;padding:9px 18px;font-size:.75rem}
.btn--block{width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}
.text-link{font-family:var(--f-head);font-weight:700;font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;color:var(--c-red);text-decoration:none}
.text-link:hover{text-decoration:underline;color:var(--c-red-hover)}

/* 07 Header & navigation ---------------------------------------------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--c-navy-800);color:var(--c-white);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.header-inner{display:flex;align-items:center;gap:28px;height:var(--header-h);transition:height .2s}
.brand{display:block;flex:none;line-height:0}
.brand img{height:78px;width:auto;background:none;transition:height .2s}
.site-header.is-compact{--header-h:76px}
.site-header.is-compact .brand img{height:58px}
.primary-nav{margin-left:auto;position:relative}
.primary-nav>ul{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.nav-link{display:flex;align-items:center;gap:6px;padding:10px 14px;background:none;border:0;color:var(--c-white);font-family:var(--f-head);font-weight:600;font-size:.84rem;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;border-radius:var(--radius-sm);white-space:nowrap}
.nav-link:hover,.nav-link[aria-expanded="true"]{color:var(--c-white);background:rgba(255,255,255,.08)}
.nav-link[aria-current="page"],.nav-link.is-section{box-shadow:inset 0 -2px 0 var(--c-red)}
.nav-link svg{width:12px;height:12px;transition:transform .15s}
.nav-link[aria-expanded="true"] svg{transform:rotate(180deg)}
.header-phone{display:flex;align-items:center;gap:8px;color:var(--c-white);text-decoration:none;font-family:var(--f-head);font-weight:700;font-size:.95rem;white-space:nowrap}
.header-phone svg{width:18px;height:18px;color:var(--c-steel)}
.header-phone:hover{color:var(--c-steel)}
.header-cta{flex:none}
.header-inner .menu-toggle,.header-inner .header-call{display:none}

/* 08 Mega menu ---------------------------------------------------------- */
.has-mega{position:static}
.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:min(900px,calc(100vw - 48px));background:var(--c-white);color:var(--c-text);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-pop);border-top:3px solid var(--c-red);visibility:hidden;opacity:0;transition:opacity .15s,visibility 0s linear .15s}
.mega.is-open{visibility:visible;opacity:1;transition:opacity .15s,visibility 0s}
.mega-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.mega-col{padding:24px 24px 22px;border-left:1px solid var(--c-border)}
.mega-col:first-child{border-left:0}
.mega-col h2{font-size:.8rem;font-weight:800;letter-spacing:.05em;margin:0 0 12px}
.mega-col h2 a{color:var(--c-navy-800);text-decoration:none}
.mega-col h2 a:hover{color:var(--c-red)}
.mega-col ul{list-style:none;margin:0;padding:0}
.mega-col li a{display:block;padding:5px 0;color:var(--c-text);text-decoration:none;font-size:.875rem;line-height:1.35}
.mega-col li a:hover{color:var(--c-red)}
.mega-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;background:var(--c-gray-50);border-top:1px solid var(--c-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);font-size:.875rem}
.mega-foot strong{font-family:var(--f-head);color:var(--c-navy-800)}
.mega-foot a{font-weight:600}

/* 09 Mobile navigation ------------------------------------------------- */
.mobile-nav{position:fixed;inset:0;z-index:150;visibility:hidden}
.mobile-nav.is-open{visibility:visible}
.mobile-nav__scrim{position:absolute;inset:0;background:rgba(9,24,43,.55);opacity:0;transition:opacity .2s}
.mobile-nav.is-open .mobile-nav__scrim{opacity:1}
.mobile-nav__panel{position:absolute;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--c-white);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s}
.mobile-nav.is-open .mobile-nav__panel{transform:none}
.mobile-nav__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--c-navy-800)}
.mobile-nav__head img{height:52px;width:auto;background:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:0;border-radius:var(--radius);background:rgba(255,255,255,.08);color:var(--c-white)}
.icon-btn svg{width:24px;height:24px}
.mobile-nav__body{flex:1;overflow-y:auto;padding:8px 0 24px;-webkit-overflow-scrolling:touch}
.m-list{list-style:none;margin:0;padding:0}
.m-list>li{border-bottom:1px solid var(--c-border)}
.m-link,.m-acc{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:54px;padding:12px 20px;background:none;border:0;text-align:left;color:var(--c-navy-800);font-family:var(--f-head);font-weight:700;font-size:.95rem;text-transform:uppercase;letter-spacing:.02em;text-decoration:none}
.m-acc svg{width:16px;height:16px;transition:transform .2s}
.m-acc[aria-expanded="true"] svg{transform:rotate(180deg)}
.m-sub{list-style:none;margin:0;padding:0 0 10px;background:var(--c-gray-50)}
.m-sub[hidden]{display:none}
.m-sub a{display:block;padding:11px 20px 11px 34px;color:var(--c-text);text-decoration:none;font-size:.95rem}
.m-sub a.m-hub{font-weight:700;color:var(--c-navy-800)}
.mobile-nav__foot{padding:16px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--c-border);display:grid;gap:10px}
.mobile-nav__foot .btn{width:100%}
.mobile-cta-bar{display:none}

/* 10 Heroes ------------------------------------------------------------- */
/* Home hero */
.hero{position:relative;color:var(--c-white);background:var(--c-navy-900);isolation:isolate;overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:62% 45%}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,26,48,.86) 0%,rgba(9,26,48,.66) 34%,rgba(9,26,48,.18) 62%,rgba(9,26,48,.05) 100%),linear-gradient(0deg,rgba(9,26,48,.55) 0%,rgba(9,26,48,0) 30%)}
.hero__inner{min-height:clamp(520px,68vh,660px);display:flex;flex-direction:column;justify-content:center;padding-block:64px 132px}
.hero h1{color:var(--c-white);margin:0}
.hero__title{display:block;font-size:var(--fs-display);line-height:1;letter-spacing:-.01em;font-weight:800}
.hero__title span{display:block}
.hero__sub{display:block;margin-top:22px;font-size:clamp(1.05rem,.8rem + 1vw,1.75rem);font-weight:600;line-height:1.25;letter-spacing:.01em;max-width:32ch}
.hero .btn-row{margin-top:32px}
.hero .trust-bar{position:absolute;left:0;right:0;bottom:0}

/* Inner page hero (roofing reference) */
.page-hero{position:relative;background:#f4f7fa;overflow:hidden;isolation:isolate;border-top:1px solid rgba(19,50,84,.08)}
.page-hero__media{position:absolute;top:0;right:0;bottom:0;width:64%;z-index:-2}
.page-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#f4f7fa 0%,#f4f7fa 36%,rgba(244,247,250,.92) 44%,rgba(244,247,250,.45) 56%,rgba(244,247,250,0) 68%)}
.page-hero__inner{min-height:340px;display:flex;flex-direction:column;justify-content:center;padding-block:24px 36px}
.page-hero__text{max-width:700px}
.page-hero h1{margin:6px 0 8px;font-size:clamp(2rem,1.2rem + 2.4vw,3.05rem)}
.section--first{padding-top:32px}
.page-hero .subhead{margin-bottom:14px}
.page-hero p{max-width:62ch}
.page-hero .btn-row{margin-top:8px}
.brand-badge{position:absolute;top:28px;right:max(24px,calc((100vw - var(--container))/2));z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:164px;min-height:104px;padding:14px 18px;background:var(--c-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center}
.brand-badge__name{font-family:var(--f-head);font-weight:800;font-size:1.05rem;line-height:1.1;color:var(--c-navy-800)}
.brand-badge__note{margin-top:6px;font-size:.6875rem;line-height:1.3;color:var(--c-muted);max-width:18ch}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0 0 8px;padding:0;font-size:var(--fs-xs);color:var(--c-muted)}
.breadcrumbs li+li::before{content:"/";margin:0 8px;color:#9aa6b4}
.breadcrumbs a{color:var(--c-text);text-decoration:none}
.breadcrumbs a:hover{color:var(--c-red);text-decoration:underline}
.breadcrumbs [aria-current]{color:var(--c-muted)}

/* Simple header band (legal, utility pages) */
.page-band{background:var(--c-pale-blue);padding-block:64px 68px;border-top:1px solid rgba(19,50,84,.08)}
.page-band h1{margin:6px 0 6px}

/* 11 Trust bar ---------------------------------------------------------- */
.trust-bar{background:rgba(14,39,69,.94);border-top:1px solid rgba(177,197,208,.2)}
.trust-bar ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;list-style:none;margin:0 auto;padding:18px var(--gutter);max-width:calc(var(--container) + var(--gutter)*2)}
.trust-bar li{display:flex;align-items:center;justify-content:center;gap:12px;font-size:.84rem;line-height:1.3;color:#e9eff6}
.trust-bar svg{width:34px;height:34px;color:var(--c-white)}
.trust-bar strong{display:block;font-weight:600;color:var(--c-white)}
.trust-bar--static{background:var(--c-navy-800)}

/* 12 Section navigation & tabs ---------------------------------------- */
.subnav{position:sticky;top:var(--header-h);z-index:50;background:var(--c-white);border-bottom:1px solid var(--c-border);box-shadow:0 2px 0 rgba(14,39,69,.02)}
.subnav__list{display:flex;margin:0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.subnav__list::-webkit-scrollbar{display:none}
.subnav__list>li{flex:1 0 auto;display:flex;position:relative}
.subnav__list>li+li::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:1px;background:var(--c-border-strong)}
.subnav__item{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:var(--subnav-h);padding:0 18px;background:none;border:0;color:var(--c-text);font-family:var(--f-head);font-weight:600;font-size:.84rem;white-space:nowrap;text-decoration:none}
.subnav__item:hover{color:var(--c-navy-800)}
.subnav__item.is-active,.subnav__item[aria-selected="true"]{color:var(--c-navy-800);font-weight:700}
.subnav__item.is-active::after,.subnav__item[aria-selected="true"]::after{content:"";position:absolute;left:22%;right:22%;bottom:8px;height:3px;border-radius:2px;background:var(--c-red)}
.pending-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c-flag);margin-left:6px;vertical-align:middle}
html.hide-review-notes .pending-dot{display:none}
.tabpanel[hidden]{display:none}
.tabs-static .tabpanel+.tabpanel{margin-top:56px}

/* 13 Components -------------------------------------------------------- */
/* Feature panel: image / text / CTA card (roofing reference) */
.feature{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.45fr) minmax(0,.9fr);gap:40px;align-items:start}
.feature__media img{width:100%;aspect-ratio:4/3.1;object-fit:cover;border-radius:var(--radius)}
.feature__media figcaption{margin-top:8px;font-size:var(--fs-xs);color:var(--c-muted)}
.feature__body h2,.feature__body h3{font-size:clamp(1.3rem,1rem + .9vw,1.65rem);font-weight:800;text-transform:uppercase;margin-bottom:12px}
.feature__body .text-link{display:inline-block;margin-top:6px}

.checks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.checks li{position:relative;padding-left:32px;line-height:1.45;margin:0}
.checks li::before{content:"";position:absolute;left:-1px;top:0;width:22px;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d63a2f' fill-rule='evenodd' d='M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM16.0303 8.96967C16.3232 9.26256 16.3232 9.73744 16.0303 10.0303L11.0303 15.0303C10.7374 15.3232 10.2626 15.3232 9.96967 15.0303L7.96967 13.0303C7.67678 12.7374 7.67678 12.2626 7.96967 11.9697C8.26256 11.6768 8.73744 11.6768 9.03033 11.9697L10.5 13.4393L12.7348 11.2045L14.9697 8.96967C15.2626 8.67678 15.7374 8.67678 16.0303 8.96967Z' clip-rule='evenodd'/%3E%3C/svg%3E") center/22px no-repeat}
.checks--2col{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}

.cta-card{background:var(--c-pale-blue);border-radius:var(--radius);padding:30px 26px;text-align:center}
.cta-card h2,.cta-card h3{font-size:1.15rem;font-weight:800;text-transform:uppercase;line-height:1.25;margin-bottom:10px}
.cta-card p{font-size:.92rem;color:var(--c-muted);margin-bottom:20px}
.cta-card .btn{width:100%;max-width:240px}
.cta-card__phone{display:block;margin-top:14px;font-family:var(--f-head);font-weight:700;color:var(--c-navy-800);text-decoration:none}
.cta-card--sticky{position:sticky;top:calc(var(--header-h) + var(--subnav-h) + 20px)}

/* Product / service cards */
.p-card{display:flex;flex-direction:column;background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden;height:100%}
.p-card__media{position:relative}
.p-card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:0}
.p-card__body{flex:1;display:flex;flex-direction:column;padding:16px 18px 20px}
.p-card__body>.oxy-svg-icon2>svg{width:36px;height:36px;color:var(--c-red)}
.p-card h3{font-size:1.1rem;margin:0 0 6px;line-height:1.25}
.grid-4 .p-card h3{font-size:1.15rem}
.p-card p{margin:0;font-size:.9rem;line-height:1.5;color:var(--c-muted)}
.p-card .checks{font-size:.9rem;margin:14px 0 4px}
.p-card .text-link{margin-top:auto;padding-top:14px}
.p-card a.p-card__link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
.p-card a.p-card__link:hover h2,.p-card a.p-card__link:hover h3,a.p-card--link:hover h3{color:var(--c-red)}
.p-card--link{transition:border-color .15s}
.p-card--link:hover{border-color:var(--c-border-strong)}
.media-tag{position:absolute;left:10px;bottom:10px;padding:4px 8px;background:rgba(14,39,69,.86);color:#fff;font-size:.7rem;font-weight:600;border-radius:var(--radius-sm)}

/* Service overview tiles (home) */
.service-tile{position:relative;display:block;color:var(--c-white);text-decoration:none;border-radius:var(--radius);overflow:hidden;isolation:isolate;min-height:320px}
.service-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .4s}
.service-tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(9,26,48,.92) 0%,rgba(9,26,48,.6) 45%,rgba(9,26,48,.1) 100%)}
.service-tile__body{position:absolute;left:0;right:0;bottom:0;padding:22px}
.service-tile h3{color:#fff;text-transform:uppercase;font-weight:800;font-size:1.15rem;margin:0 0 6px}
.service-tile p{margin:0 0 10px;font-size:.9rem;color:#e3eaf2}
.service-tile span.text-link{color:#fff}
.service-tile:hover{color:#fff}
.service-tile:hover img{transform:scale(1.03)}

/* Sub-service link list */
.link-list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--c-border)}
.link-list a{display:flex;justify-content:space-between;align-items:center;padding:12px 2px;border-bottom:1px solid var(--c-border);color:var(--c-navy-800);font-family:var(--f-head);font-weight:600;font-size:.92rem;text-decoration:none}
.link-list a:hover{color:var(--c-red)}
.link-list svg{width:14px;height:14px}

/* Steps (true sequences only) */
.steps{counter-reset:step;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--steps,5),minmax(0,1fr));gap:20px}
.steps li{position:relative;padding:22px 20px 22px;background:var(--c-white);border:1px solid var(--c-border);border-radius:var(--radius)}
.steps li::before{counter-increment:step;content:counter(step);display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-bottom:14px;border-radius:50%;background:var(--c-navy-800);color:#fff;font-family:var(--f-head);font-weight:800;font-size:.95rem}
.steps h3{font-size:1rem;margin-bottom:6px}
.steps p{margin:0;font-size:.9rem;color:var(--c-muted)}

/* Why choose list with icons */
.why{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 32px}
.why__item{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start}
.why__item svg{width:44px;height:44px;color:var(--c-red)}
.why__item h3{font-size:1rem;margin:4px 0 4px}
.why__item p{margin:0;font-size:.92rem;color:var(--c-muted)}

/* Comparison / spec table */
.table-wrap{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--radius)}
table.spec{width:100%;border-collapse:collapse;font-size:.92rem;min-width:560px;background:#fff}
.spec th,.spec td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--c-border);vertical-align:top}
.spec thead th{background:var(--c-navy-800);color:#fff;font-family:var(--f-head);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.spec tbody th{font-weight:600;color:var(--c-navy-800);width:30%}
.spec tbody tr:nth-child(even){background:var(--c-gray-50)}

/* Color swatches (OC colors installed by Altitude) */
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px}
.swatch{margin:0}
.swatch img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius)}
.swatch figcaption{margin-top:8px;font-size:.85rem;line-height:1.35;color:var(--c-muted)}
.swatch figcaption strong{display:block;font-family:var(--f-head);color:var(--c-navy-800)}

/* FAQ */
.faq{max-width:860px}
.faq details{border-bottom:1px solid var(--c-border)}
.faq details:first-child{border-top:1px solid var(--c-border)}
.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 4px;cursor:pointer;font-family:var(--f-head);font-weight:700;color:var(--c-navy-800);font-size:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;border-right:2px solid var(--c-red);border-bottom:2px solid var(--c-red);transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.faq .faq__a{padding:0 4px 18px;color:var(--c-text);max-width:72ch}

/* Info list (contact etc.) */
.info-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.info-list li{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start}
.info-list svg{width:40px;height:40px;padding:9px;border-radius:50%;background:var(--c-navy-800);color:#fff}
.info-list strong{display:block;font-family:var(--f-head);color:var(--c-navy-800);font-size:.9rem;text-transform:uppercase;letter-spacing:.03em}
.info-list a{font-weight:600}


/* Manufacturer systems (text placeholders until logos are approved) */
.mfr-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.mfr{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:120px;padding:18px;border:1px solid var(--c-border);border-radius:var(--radius);background:#fff;text-align:center;text-decoration:none;color:var(--c-navy-800)}
.mfr strong{font-family:var(--f-head);font-weight:800;font-size:1.05rem;line-height:1.15}
.mfr span{font-size:.8rem;color:var(--c-muted);margin-top:6px}
a.mfr:hover{border-color:var(--c-navy-800);color:var(--c-navy-800)}

/* 14 Projects & gallery ----------------------------------------------- */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filter-btn{min-height:42px;padding:8px 16px;border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:#fff;color:var(--c-navy-800);font-family:var(--f-head);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.filter-btn:hover{border-color:var(--c-navy-800)}
.filter-btn[aria-pressed="true"]{background:var(--c-navy-800);border-color:var(--c-navy-800);color:#fff}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.project-card[hidden]{display:none}
.project-card .p-card__media img{aspect-ratio:3/2}
.project-card h2,.project-card h3{font-size:1.08rem;text-transform:none;margin:0 0 4px;font-weight:700}
.project-card .meta{font-size:.85rem;color:var(--c-muted);margin:0 0 10px}
.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:10px 0 0;padding:0}
.tags li{padding:3px 8px;background:var(--c-pale-blue);border-radius:var(--radius-sm);font-size:.72rem;font-weight:600;color:var(--c-navy-800)}
.filter-status{font-size:.9rem;color:var(--c-muted);margin:-12px 0 20px}

ul.gallery{list-style:none;margin:0;padding:0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.gallery button{display:block;width:100%;height:100%;padding:0;border:0;background:none;border-radius:var(--radius);overflow:hidden}
.gallery img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:opacity .15s}
.gallery button:hover img{opacity:.88}
.gallery--lead{grid-template-columns:repeat(4,minmax(0,1fr))}
.gallery--lead>li:first-child{grid-column:span 2;grid-row:span 2}
.gallery--lead>li:first-child img{aspect-ratio:auto;height:100%}

.lightbox{width:min(1200px,96vw);max-height:94vh;padding:0;border:0;border-radius:var(--radius-lg);background:#0b1626;color:#fff}
.lightbox::backdrop{background:rgba(5,14,26,.86)}
.lightbox__fig{margin:0;position:relative}
.lightbox__fig img{width:100%;height:auto;max-height:80vh;object-fit:contain;background:#0b1626}
.lightbox__cap{padding:12px 64px 14px 18px;font-size:.9rem;color:#cfd9e5}
.lightbox__close{position:absolute;top:10px;right:10px}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%)}
.lightbox__prev{left:10px}.lightbox__next{right:10px}
.lightbox .icon-btn{background:rgba(9,24,43,.7)}

.project-facts{display:grid;gap:0;margin:0;border:1px solid var(--c-border);border-radius:var(--radius);background:#fff}
.project-facts div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:14px 18px;border-bottom:1px solid var(--c-border)}
.project-facts div:last-child{border-bottom:0}
.project-facts dt{font-family:var(--f-head);font-weight:700;font-size:.8rem;text-transform:uppercase;color:var(--c-navy-800);letter-spacing:.03em}
.project-facts dd{margin:0}
.project-hero-img img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius)}
.pager{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:40px;padding-top:24px;border-top:1px solid var(--c-border)}

/* 15 Reviews ------------------------------------------------------------ */
.reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.review{display:flex;flex-direction:column;padding:24px;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}
.review__stars{display:flex;gap:2px;color:var(--c-red);margin-bottom:12px}
.review__stars svg{width:18px;height:18px}
.review blockquote{margin:0;font-size:.95rem;line-height:1.6}
.review blockquote p{margin:0}
.review.is-clamped blockquote p{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.review__more{align-self:flex-start;margin-top:8px;padding:0;border:0;background:none;color:var(--c-navy-700);font-weight:600;font-size:.875rem;text-decoration:underline}
.review footer{margin-top:auto;padding-top:16px;font-size:.85rem;color:var(--c-muted)}
.review cite{display:block;font-style:normal;font-family:var(--f-head);font-weight:700;color:var(--c-navy-800)}
.reviews-foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-top:28px;font-size:.9rem;color:var(--c-muted)}

/* 16 Forms -------------------------------------------------------------- */
.form-card{background:#fff;border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:clamp(22px,3vw,36px)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.field{display:flex;flex-direction:column;gap:6px}
.field--full{grid-column:1/-1}
.field label,.field legend{font-family:var(--f-head);font-weight:700;font-size:.82rem;color:var(--c-navy-800);letter-spacing:.01em}
.field legend{margin-bottom:8px;padding:0}
.field .req{color:var(--c-red)}
.field .hint{font-size:.8rem;color:var(--c-muted)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:#fff;font-size:1rem;line-height:1.4}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-navy-700);box-shadow:0 0 0 3px rgba(29,111,214,.25)}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#b3261e}
.field .error{display:none;font-size:.82rem;color:#b3261e;font-weight:600}
.field.has-error .error{display:block}
fieldset.field{border:0;margin:0;padding:0;min-width:0}
.radio-row{display:flex;flex-wrap:wrap;gap:10px 20px}
.check-field{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font-size:.82rem;line-height:1.5;color:var(--c-muted)}
.check-field input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--c-navy-800)}
.choice{display:inline-flex;align-items:center;gap:8px;font-size:.95rem;font-family:var(--f-body)!important;font-weight:400!important;color:var(--c-text)!important}
.choice input{width:20px;height:20px;min-height:0;accent-color:var(--c-navy-800)}
.form-status{margin-top:18px;padding:14px 16px;border-radius:var(--radius);font-size:.92rem}
.form-status[hidden]{display:none}
.form-status--error{background:#fdecea;color:#7a1c14}
.form-status--info{background:var(--c-flag-bg);color:#5b3600;border:1px solid #f0d3a0}
.form-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:22px}

/* 17 CTA band & footer ------------------------------------------------- */
.cta-band{background:var(--c-navy-800);color:#dfe7f1;padding-block:44px;border-top:4px solid var(--c-red)}
.cta-band__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.cta-band h2{color:#fff;margin:0 0 6px;font-size:clamp(1.35rem,1rem + 1.2vw,2rem)}
.cta-band p{margin:0;max-width:60ch}
.cta-band__actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.cta-band .header-phone{font-size:1.15rem}

.site-footer{background:var(--c-navy-900);color:#c4d0de;font-size:.92rem}
.footer-main{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:40px;padding-block:56px 40px}
.footer-brand img{height:96px;width:auto;background:none;margin-bottom:16px}
.footer-brand p{max-width:34ch}
.site-footer h2{color:#fff;font-size:.82rem;letter-spacing:.06em;margin:0 0 14px}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site-footer a{color:#dfe7f1;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.footer-contact li{display:grid;grid-template-columns:20px 1fr;gap:10px}
.footer-contact svg{width:18px;height:18px;margin-top:3px;color:var(--c-steel)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-block:18px;font-size:.8rem}
.footer-bottom .container{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between}
.footer-bottom ul{display:flex;flex-wrap:wrap;gap:6px 18px}

/* 18 Review notes (prototype only - remove in Stage 2) ----------------- */
.review-note{display:flex;gap:10px;align-items:flex-start;margin:16px 0;padding:10px 14px;border:1px dashed #d9a441;border-left:4px solid var(--c-flag);background:var(--c-flag-bg);border-radius:var(--radius-sm);font-family:var(--f-body);font-size:.8rem;line-height:1.45;color:#5b3600;text-transform:none;letter-spacing:0;font-weight:400;text-align:left;max-width:none}
.review-note strong{font-weight:700;color:#5b3600}
.review-note::before{content:"!";flex:none;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--c-flag);color:#fff;font-weight:700;font-size:.75rem}
.review-note--inline{display:inline-flex;margin:8px 0 0}
.prototype-banner{background:#24364f;color:#dbe5f1;font-size:.78rem;text-align:center;padding:6px 12px}
.prototype-banner button{margin-left:10px;padding:2px 10px;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-sm);background:none;color:#fff;font-size:.75rem}
html.hide-review-notes .review-note{display:none}

/* 19 Utilities ---------------------------------------------------------- */
.center{text-align:center}
.mt-0{margin-top:0}.mt-s{margin-top:16px}.mt-m{margin-top:32px}.mt-l{margin-top:56px}
.mb-0{margin-bottom:0}
.rounded{border-radius:var(--radius)}
.img-cover{width:100%;height:100%;object-fit:cover}
.aspect-43{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:var(--radius)}
.aspect-32{aspect-ratio:3/2;object-fit:cover;width:100%;border-radius:var(--radius)}
.caption{margin-top:8px;font-size:var(--fs-xs);color:var(--c-muted)}

/* 20 Responsive --------------------------------------------------------- */
@media (max-width:1240px){
  .header-phone span{display:none}
  .header-inner{gap:18px}
  .nav-link{padding:10px 10px}
}
@media (max-width:1100px){
  html:root{--header-h:76px;--subnav-h:52px}
  .primary-nav,.header-cta,.header-inner>.header-phone{display:none}
  .brand img{height:58px}
  .site-header.is-compact .brand img{height:50px}
  .header-inner{gap:10px}
  .header-inner .header-call{display:inline-flex;margin-left:auto;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border-radius:var(--radius-sm);background:var(--c-red);color:#fff;font-family:var(--f-head);font-weight:700;font-size:.8rem;text-transform:uppercase;text-decoration:none}
  .header-call svg{width:18px;height:18px}
  .header-inner .menu-toggle{display:inline-flex}
  .feature{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
  .feature .cta-card{grid-column:1/-1}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mfr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-main{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .trust-bar li{flex-direction:column;text-align:center;gap:8px;font-size:.78rem}
  .trust-bar svg{width:28px;height:28px}
  .mobile-cta-bar{display:grid;grid-template-columns:1fr 1.4fr;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top:1px solid var(--c-border);box-shadow:0 -6px 18px rgba(14,39,69,.12);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px}
  .mobile-cta-bar .btn{min-height:46px;padding-inline:10px}
  body{padding-bottom:70px}
}
@media (max-width:900px){
  .split{grid-template-columns:1fr;gap:32px}
  .split--reverse>:first-child{order:0}
  .grid-3,.reviews,.project-grid,.why{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-hero{display:flex;flex-direction:column;background:#fff}
  .page-hero__media{position:relative;width:100%;height:auto;aspect-ratio:16/8}
  .page-hero::before{display:none}
  .page-hero__inner{min-height:0;padding-block:20px 32px}
  .brand-badge{position:relative;top:auto;right:auto;align-self:flex-end;margin:-46px 16px 0 0;min-width:130px;min-height:72px;padding:10px 12px}
  .gallery--lead{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  html:root{--gutter:16px}
  .grid-2,.grid-4,.mfr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature{grid-template-columns:1fr;gap:24px}
  .checks--2col{grid-template-columns:1fr}
  .trust-bar ul{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}
  .trust-bar li:last-child{grid-column:1/-1}
  .hero .trust-bar{position:static}
  .hero__inner{padding-block:48px 44px;min-height:0}
  .hero__media img{object-position:70% 50%}
  .hero::before{background:linear-gradient(90deg,rgba(9,26,48,.85) 0%,rgba(9,26,48,.55) 70%,rgba(9,26,48,.35) 100%)}
  .hero .btn-row .btn{flex:1 1 220px}
  .form-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .project-facts div{grid-template-columns:1fr;gap:4px}
  .cta-band__actions{width:100%}
  .cta-band__actions .btn{flex:1 1 100%}
  .subnav__item{padding:0 14px;font-size:.8rem}
}
@media (max-width:560px){
  .grid-3,.reviews,.project-grid,.why,.footer-main{grid-template-columns:1fr}
  .grid-4.cards-2-mobile{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .grid-4:not(.cards-2-mobile),.mfr-grid{grid-template-columns:1fr}
  .p-card__body{padding:14px 14px 16px}
  .cards-2-mobile .p-card h3{font-size:.95rem}
  .cards-2-mobile .p-card p{font-size:.84rem}
  .service-tile{min-height:260px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .gallery--lead>li:first-child{grid-column:1/-1;grid-row:auto}
  .brand img{height:52px}
  .header-call span{display:none}
  .header-inner .header-call{padding:8px 12px}
  h1{overflow-wrap:anywhere}
}

/* 21 Motion & print ----------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{
  .site-header,.mobile-cta-bar,.cta-band,.subnav,.prototype-banner,.mobile-nav{display:none!important}
}

/* 22 Page additions ----------------------------------------------------- */
.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:56px;align-items:start}
.mfr-feature{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.mfr-card{position:relative;background:#fff;border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}
.mfr-card>img{width:100%;aspect-ratio:16/7;object-fit:cover}
.mfr-card .brand-chip{position:absolute;top:14px;right:14px;padding:10px 14px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-card);font-family:var(--f-head);font-weight:800;color:var(--c-navy-800);font-size:.95rem}
.mfr-card__body{padding:18px 20px 22px}
.mfr-card h3{font-size:1.2rem;margin-bottom:6px}
.mfr-card p{color:var(--c-muted);margin-bottom:0}
.pending-banner{background:var(--c-flag-bg);border-bottom:2px dashed var(--c-flag);color:#5b3600;font-size:.88rem;padding:12px 0}
.pending-banner strong{color:#5b3600}
.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:240px;padding:24px;border:1px dashed var(--c-border-strong);border-radius:var(--radius);background:var(--c-gray-50);text-align:center;color:var(--c-muted)}
.map-placeholder svg{width:36px;height:36px;color:var(--c-navy-800)}
.town-intro{columns:2 320px;column-gap:48px}
.town-intro p{break-inside:avoid}
.legal h2{font-size:1.25rem;text-transform:none;margin-top:1.8em}
.legal h3{font-size:1.05rem;margin-top:1.4em}
@media (max-width:900px){.with-aside{grid-template-columns:1fr;gap:32px}.mfr-feature{grid-template-columns:1fr}.cta-card--sticky{position:static}}
.section--pale .text-link,.section--gray .text-link,.cta-card .text-link{color:var(--c-red-hover)}

/* 23 Design refinements (taste pass) ---------------------------------- */
/* Image captions sit below photos, never on them */
.p-card__note{margin:0 0 6px!important;font-size:.75rem!important;font-weight:600;color:var(--c-muted)!important;letter-spacing:.01em}
/* Tactile feedback */
.btn:active,.filter-btn:active,.icon-btn:active{transform:translateY(1px)}
.btn{transition:background-color .15s,border-color .15s,color .15s,transform .15s}
/* Asymmetric trio: one lead card + two horizontal cards (replaces 3 equal cards) */
.trio{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto auto;gap:24px}
.trio>:first-child{grid-row:span 2}
.trio>:first-child .p-card__media img{aspect-ratio:4/3}
.trio>:not(:first-child){flex-direction:row}
.trio>:not(:first-child) .p-card__media{flex:0 0 40%}
.trio>:not(:first-child) .p-card__media img{height:100%;aspect-ratio:auto;min-height:220px}
/* Text-only columns: no card chrome, a red rule carries the grouping */
.plain-cols .p-card{border:0;border-top:3px solid var(--c-red);border-radius:0;box-shadow:none;background:none}
.plain-cols .p-card__body{padding:18px 0 0}
.plain-cols a.p-card{transition:border-color .15s}
.plain-cols a.p-card:hover{border-top-color:var(--c-navy-800)}
/* Featured review + carousel */
.review-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:28px;align-items:stretch}
.review-feature__lead{margin:0;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4vw,48px);background:var(--c-navy-800);color:#fff;border-radius:var(--radius)}
.review-feature__lead .review__stars{color:#fff;margin-bottom:18px}
.review-feature__lead blockquote{margin:0}
.review-feature__lead blockquote p{font-family:var(--f-head);font-weight:600;font-size:clamp(1.25rem,1rem + 1vw,1.7rem);line-height:1.35;margin:0}
.review-feature__lead figcaption{margin-top:22px;font-size:.85rem;color:#c9d6e4}
.review-feature__lead cite{display:block;font-style:normal;font-family:var(--f-head);font-weight:700;color:#fff;font-size:1rem}
.review-carousel{position:relative;min-width:0;display:flex;flex-direction:column}
.review-track{display:flex;gap:18px;margin:0;padding:2px 2px 6px;list-style:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1}
.review-track::-webkit-scrollbar{display:none}
.review-slide{flex:0 0 min(320px,84%);scroll-snap-align:start;display:flex}
.review-slide .review{width:100%}
.review-slide .review.is-clamped blockquote p{-webkit-line-clamp:4}
.review-carousel__nav{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}
.icon-btn--light{background:#fff;color:var(--c-navy-800);border:1px solid var(--c-border-strong)}
.icon-btn--light:hover{border-color:var(--c-navy-800)}
.icon-btn--light[disabled]{opacity:.4;cursor:default}
/* Mega menu enters with a short drop */
.mega{transform:translate(-50%,8px);transition:opacity .2s,transform .2s cubic-bezier(.16,1,.3,1),visibility 0s linear .2s}
.mega.is-open{transform:translate(-50%,0);transition:opacity .2s,transform .2s cubic-bezier(.16,1,.3,1),visibility 0s}
/* Process line behind numbered steps (drawn on scroll by motion.js) */
.steps{position:relative}
.steps::before{content:"";position:absolute;left:38px;right:38px;top:40px;height:2px;background:var(--c-red);transform-origin:left center;transform:scaleX(var(--progress,1));z-index:0}
.steps li{z-index:1}
@media (max-width:1100px){.steps::before{display:none}}
/* Split-word and line masks */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.wi,.li{display:inline-block}
.hero__title .ln{display:block;overflow:hidden;padding-bottom:.04em}
@media (max-width:900px){.trio,.review-feature{grid-template-columns:1fr}.trio>:first-child{grid-row:auto}}
@media (max-width:560px){.trio>:not(:first-child){flex-direction:column}.trio>:not(:first-child) .p-card__media img{aspect-ratio:16/10;min-height:0}}

/* 24 Smooth scroll (Lenis) --------------------------------------------- */
html.lenis,html.lenis body{height:auto}
.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}

/* 25 Motion gate ---------------------------------------------------------
   html.motion is set by an inline head script only when JS runs and the user
   allows motion. motion.js takes over (html.motion-ready); a 2.5s failsafe
   removes the gate if the motion scripts never load. No JS = no hiding. */
html.motion:not(.motion-ready) .hero h1,
html.motion:not(.motion-ready) .hero .btn-row,
html.motion:not(.motion-ready) .hero .trust-bar li,
html.motion:not(.motion-ready) .page-hero__text>*,
html.motion:not(.motion-ready) .brand-badge,
html.motion:not(.motion-ready) .page-band .container>*{opacity:0}
.split>div:has(>img),.project-hero-img,.feature__media{overflow:hidden;border-radius:var(--radius)}


/* 26 WordPress / Oxygen integration ---------------------------------------- */
/* Logged-in admin bar: keep sticky and fixed UI below it (front end visitors: 0px) */
.site-header{top:var(--wp-admin--admin-bar--height,0px)}
.subnav{top:calc(var(--wp-admin--admin-bar--height,0px) + var(--header-h))}
.cta-card--sticky{top:calc(var(--wp-admin--admin-bar--height,0px) + var(--header-h) + var(--subnav-h) + 20px)}
.mobile-nav{top:var(--wp-admin--admin-bar--height,0px)}
/* Room for the sticky mobile CTA bar (design rule, raised above Oxygen's body reset) */
@media (max-width:1100px){html body{padding-bottom:70px}}

/* WordPress core gives lazy content images sizes="auto" plus contain-intrinsic-size:3000px 1500px,
   which inflates grid tiles that size from their image. The approved layout sizes images itself. */
img:is([sizes="auto" i],[sizes^="auto," i]){contain-intrinsic-size:1600px 900px}

/* Wrappers that carry bound dynamic data (project template + Recent Projects loop) stay out of layout */
.tags-slot,.project-summary{display:contents}
.project-cats{display:none!important}

/* 27 Ninja Forms skin: renders the forms in the approved .form-card design (values mirror section 16) */
.form-card .nf-form-title,.form-card .nf-form-fields-required,.form-card .nf-before-form-content{display:none}
.form-card .nf-form-content{padding:0;max-width:none;margin:0}
.form-card nf-fields-wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.form-card nf-field{display:block;min-width:0}
.form-card nf-field:has(.textarea-container),.form-card nf-field:has(.listselect-container),.form-card nf-field:has(.listradio-container),.form-card nf-field:has(.checkbox-container),.form-card nf-field:has(.recaptcha-container),.form-card nf-field:has(.html-container),.form-card nf-field:has(.hr-container){grid-column:1/-1}
.form-card nf-field:has(.submit-container){grid-column:1/-1;margin-top:4px}
.form-card .nf-field-container{margin:0!important;clear:none}
.form-card .nf-field-container .nf-before-field,.form-card .nf-field-container .nf-after-field .nf-input-limit{display:none}
.form-card .field-wrap{display:flex!important;flex-direction:column;gap:6px}
.form-card .field-wrap>div{width:100%!important;margin:0!important;padding:0!important;float:none!important}
.form-card .field-wrap .nf-field-label{order:0}
.form-card .field-wrap .nf-field-element{order:1}
.form-card .field-wrap .nf-field-description{order:2;font-size:.8rem;color:var(--c-muted);line-height:1.65}
.form-card .nf-field-description p{margin:0}
.form-card .nf-field-label label,.form-card .listradio-wrap .nf-field-label label{display:block;margin:0!important;padding:0;font-family:var(--f-head);font-weight:700;font-size:.82rem;line-height:1.65;color:var(--c-navy-800);letter-spacing:.01em}
.form-card .listradio-wrap .nf-field-label{margin-bottom:2px!important}
.form-card .listradio-wrap .nf-label-span{display:block;margin:0 0 2px;font-family:var(--f-head);font-weight:700;font-size:.82rem;line-height:1.65;color:var(--c-navy-800);letter-spacing:.01em}
.form-card .nf-field-label .muted{color:var(--c-muted)}
.form-card .ninja-forms-req-symbol{color:var(--c-red);font-weight:700}
.form-card .nf-field-element input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),.form-card .nf-field-element select,.form-card .nf-field-element textarea{width:100%;min-height:48px;height:auto;margin:0;padding:11px 14px;border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:#fff;color:var(--c-text);font-family:var(--f-body);font-size:1rem;line-height:1.4;box-shadow:none}
.form-card .nf-field-element textarea{min-height:130px;height:130px;resize:vertical}
.form-card .nf-field-element input:focus,.form-card .nf-field-element select:focus,.form-card .nf-field-element textarea:focus{outline:none;border-color:var(--c-navy-700);box-shadow:0 0 0 3px rgba(29,111,214,.25)}
.form-card .list-select-wrap .nf-field-element>div{border:0;background:none}
.form-card .list-select-wrap div:after{display:none}
.form-card .list-select-wrap select{appearance:auto;-webkit-appearance:menulist}
.form-card .listradio-wrap ul{display:flex;flex-wrap:wrap;gap:10px 20px;margin:0!important;padding:0;list-style:none}
.form-card .listradio-wrap li{display:inline-flex!important;align-items:center;gap:8px;margin:0!important;padding:0!important;width:auto!important}
.form-card .listradio-wrap li input[type=radio]{display:inline-block!important;position:static!important;opacity:1!important;width:20px!important;height:20px!important;min-height:0;margin:0!important;accent-color:var(--c-navy-800)}
.form-card .listradio-wrap li label{display:inline!important;margin:0!important;padding:0!important;font-family:var(--f-body)!important;font-weight:400!important;font-size:.95rem!important;letter-spacing:0;color:var(--c-text)!important}
.form-card .listradio-wrap li label:before,.form-card .listradio-wrap li label:after,.form-card .checkbox-wrap label:before,.form-card .checkbox-wrap label:after{display:none!important}
.form-card .checkbox-wrap{display:grid!important;grid-template-columns:22px 1fr;gap:10px!important;align-items:start}
.form-card .checkbox-wrap .nf-field-element{order:0;grid-column:1}
.form-card .checkbox-wrap .nf-field-label{order:1;grid-column:2;grid-row:1}
.form-card .checkbox-wrap input[type=checkbox]{display:block!important;position:static!important;opacity:1!important;width:20px;height:20px;margin:2px 0 0!important;accent-color:var(--c-navy-800)}
.form-card .checkbox-wrap .nf-field-label label{font-family:var(--f-body);font-weight:400;font-size:.82rem;line-height:1.5;color:var(--c-muted);letter-spacing:0}
.form-card .checkbox-wrap .nf-field-label label a{color:var(--c-navy-700);text-decoration:underline}
.form-card .checkbox-wrap .nf-field-label label a:hover{color:var(--c-red)}
.form-card .submit-wrap{margin-top:4px}
.form-card .submit-wrap input[type=submit]{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:48px;height:auto;padding:12px 26px;border-radius:var(--radius-sm);border:2px solid transparent;background:var(--c-red);color:var(--c-white);font-family:var(--f-head);font-weight:700;font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;line-height:1.1;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.form-card .submit-wrap input[type=submit]:hover{background:var(--c-red-hover);color:var(--c-white)}
.form-card .submit-wrap input[type=submit]:active{transform:translateY(1px)}
.form-card .nf-error .ninja-forms-field{border-color:#b3261e!important}
.form-card .nf-error-msg,.form-card .nf-error-wrap .nf-error-msg{font-size:.82rem;color:#b3261e;font-weight:600;margin-top:6px}
.form-card .nf-form-errors .nf-error-msg{margin-top:14px;padding:14px 16px;border-radius:var(--radius);background:#fdecea;color:#7a1c14;font-size:.92rem;font-weight:400}
.form-card .nf-response-msg p{margin:0 0 .5em}
.form-card .nf-response-msg:not(:empty){margin-top:4px;padding:14px 16px;border-radius:var(--radius);background:var(--c-pale-blue);color:var(--c-navy-800);font-size:.92rem}
.form-card .nf-pass .ninja-forms-field{border-color:var(--c-border-strong)!important}
.form-card .nf-pass.field-wrap .nf-field-element:after{display:none}
@media (max-width:760px){.form-card nf-fields-wrap{grid-template-columns:1fr}}

/* 28 Utility classes generated from the approved HTML inline styles */
/* Generated: replaces inline style="" attributes from the approved HTML (Oxygen drops inline styles) */
.u-is-5677b9{display:inline!important}
.u-is-2a4dac{align-items:start!important}
.u-is-ab66dd{font-size:1.4rem!important}
.u-is-cb25d7{font-size:1.35rem!important}
.u-is-cfd91f{margin:0!important;padding-left:1.1em!important}
.u-is-06fa12{max-width:760px!important}
.u-is-6e8efa{font-size:1.3rem!important}
.u-is-ae18a0{max-width:420px!important}
.u-is-1386d5{margin:0!important}
.u-is-125128{--steps:3!important}
