:root{--ink:#111820;--deep:#1e4655;--harbour:#2f6578;--harbour-dark:#244f5f;--zinc:#e3e8e4;--cloud:#f7f8f5;--paper:#ffffff;--muted:#59686c;--line:#d7dfda;--safety:#f1b84b;--leaf:#4d7357;--roof:#788487;--shadow:0 18px 45px rgba(17,24,32,0.16);--c-dark:#0b1220;--c-dark-2:#111827;--c-primary-soft:rgba(241,184,75,0.14);--shadow-primary:0 12px 26px rgba(47,101,120,0.42);--shadow-card:0 12px 28px rgba(11,18,32,0.42),0 24px 48px rgba(11,18,32,0.28);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease:cubic-bezier(0.2,0.8,0.2,1);--t-fast:150ms;--t-med:280ms;--f-body-stack:var(--f-body,"Inter"),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--f-display-stack:var(--f-display,"Calistoga"),Georgia,"Times New Roman",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{overflow-x:hidden}body{margin:0;color:var(--ink);background:var(--cloud);font-family:var(--f-body-stack);line-height:1.6;-webkit-font-smoothing:antialiased}body.nav-open{overflow:hidden}img,video{display:block;max-width:100%}a{color:inherit}article,aside,div,footer,form,header,li,main,nav,section,ul{min-width:0}a,button,h1,h2,h3,h4,label,li,p,span,strong{overflow-wrap:break-word}button,input,select,textarea{font:inherit;max-width:100%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.site-header{position:sticky;top:0;z-index:50;height:76px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:0 6vw;background:rgba(247,248,245,.92);border-bottom:1px solid rgba(215,223,218,.82);backdrop-filter:blur(16px);transition:box-shadow .18s ease,background .18s ease}.site-header.is-scrolled{background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(17,24,32,.08)}.brand{display:inline-flex;align-items:center}.brand img{width:120px;height:auto}.site-nav{justify-self:center;display:flex;align-items:center;gap:8px}.header-call,.site-nav a{padding:10px 12px;color:var(--ink);font-size:.94rem;font-weight:700;text-decoration:none;border-radius:6px}.header-call:hover,.site-nav a:hover{color:var(--harbour-dark);background:rgba(47,101,120,.09)}.header-call{justify-self:end;border:1px solid rgba(47,101,120,.32)}.nav-toggle{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:6px;background:var(--paper)}.nav-toggle span:not(.sr-only){display:block;width:18px;height:2px;margin:4px auto;background:var(--ink)}.hero{position:relative;min-height:min(92vh,940px);display:grid;align-items:end;overflow:hidden;isolation:isolate;background:var(--c-dark)}.hero-bg{z-index:-3;background:url(/assets/roofing-banner.webp) 50%/cover;opacity:.38;filter:blur(18px) saturate(.9);transform:scale(1.12);will-change:transform}.hero-bg,.hero-scrim{position:absolute;inset:0}.hero-scrim{z-index:-1;background:rgba(11,18,32,.62);pointer-events:none}.hero:after{content:none}.hero-content{position:relative;z-index:1;width:min(1240px,92vw);margin:0 auto;padding:200px 0 64px;color:var(--paper);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,420px);gap:56px;align-items:end}.hero-text{min-width:0}.hero-form-wrap{display:flex;justify-content:flex-end;align-self:end}.eyebrow,.section-kicker{margin:0 0 14px;color:var(--safety);font-size:.82rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.hero h1{max-width:760px;margin:0;font-family:var(--f-display-stack);font-weight:400;font-size:3.75rem;line-height:1.02;letter-spacing:0}.hero-copy{max-width:650px;margin:24px 0 0;color:rgba(255,255,255,.88);font-size:1.18rem}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.button{display:inline-flex;min-height:52px;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border:1.5px solid transparent;border-radius:999px;font-weight:700;letter-spacing:0;text-decoration:none;cursor:pointer;position:relative;overflow:hidden;transition:transform var(--t-fast) var(--ease-out),background var(--t-med) var(--ease-out),border-color var(--t-fast) ease,box-shadow var(--t-med) var(--ease-out)}.button:hover{transform:translateY(-2px)}.button:active{transform:scale(.98)}.button:focus-visible{outline:3px solid rgba(241,184,75,.7);outline-offset:3px}.button-arrow{display:inline-block;transition:transform var(--t-med) var(--ease-out)}.button:hover .button-arrow{transform:translateX(5px)}.button-primary{color:var(--ink);background:var(--safety);border-color:var(--safety);box-shadow:var(--shadow-primary)}.button-primary:hover{background:#ffd16e;border-color:#ffd16e;box-shadow:0 16px 36px rgba(241,184,75,.55),0 0 0 1px rgba(241,184,75,.6)}.button-secondary{color:var(--paper);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.42);backdrop-filter:blur(10px)}.button-secondary:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.7)}.hero-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:760px;margin:40px 0 0}.hero-proof div{min-height:112px;padding:20px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.07);backdrop-filter:blur(14px);transition:transform var(--t-med) var(--ease-out),background var(--t-med) ease}.hero-proof div:hover{transform:translateY(-2px);background:rgba(255,255,255,.11)}.hero-proof dt{font-family:var(--f-display-stack);color:var(--safety);font-size:2.2rem;line-height:1;font-weight:400;letter-spacing:0}.hero-proof dd{margin:10px 0 0;color:rgba(255,255,255,.86);font-size:.92rem}.hero-info-card{display:inline-flex;align-items:center;gap:12px;margin:32px 0 0;padding:10px 18px 10px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:999px;backdrop-filter:blur(14px);color:rgba(255,255,255,.92);font-size:.9rem}.hero-info-card strong{color:var(--paper);font-weight:700}.hero-info-card__sep{color:rgba(255,255,255,.4)}.hero-info-card__pulse{position:relative;display:inline-block;width:8px;height:8px;border-radius:50%;background:#4ade80;flex:0 0 auto}.hero-info-card__pulse:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:rgba(74,222,128,.45);animation:greenpulse 2s ease-out infinite}@keyframes greenpulse{0%{transform:scale(1);opacity:.55}to{transform:scale(2.4);opacity:0}}.hero-stars{display:inline-flex;gap:2px;color:var(--safety);letter-spacing:1px;font-size:.78rem}.hero-form-card{width:100%;max-width:420px;padding:28px;background:rgba(255,251,246,.97);border:1px solid rgba(255,255,255,.32);border-radius:22px;backdrop-filter:blur(18px);box-shadow:0 32px 80px rgba(11,18,32,.45),inset 0 0 0 1px rgba(241,184,75,.18),0 0 0 6px rgba(255,255,255,.06);color:var(--ink)}.hero-form-card__head{padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid rgba(231,226,218,.8)}.hero-form-card__kicker{margin:0 0 8px;color:var(--harbour-dark);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero-form-card__title{margin:0 0 6px;font-family:var(--f-display-stack);font-weight:400;font-size:1.55rem;line-height:1.1;letter-spacing:0;color:var(--ink)}.hero-form-card__copy{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.hero-form{display:grid;gap:12px}.hero-form__row{display:grid;gap:4px}.hero-form__row label{font-size:.78rem;font-weight:700;letter-spacing:.01em;color:var(--ink)}.hero-form__row input,.hero-form__row select,.hero-form__row textarea{width:100%;min-height:42px;padding:10px 14px;border:1px solid rgba(231,226,218,.9);border-radius:12px;background:var(--paper);color:var(--ink);font-family:var(--f-body-stack);font-size:.92rem;transition:border-color var(--t-fast) ease,background var(--t-fast) ease,box-shadow var(--t-fast) ease}.hero-form__row textarea{resize:vertical;min-height:88px;line-height:1.45}.hero-form__row input::placeholder,.hero-form__row textarea::placeholder{color:rgba(89,104,108,.6)}.hero-form__row input:focus,.hero-form__row select:focus,.hero-form__row textarea:focus{outline:none;border-color:var(--harbour);background:#fffbf6;box-shadow:0 0 0 3px rgba(47,101,120,.16)}.hero-form__submit{width:100%;margin-top:6px;min-height:50px;font-size:.96rem}.hero-form__foot{margin:6px 0 0;font-size:.78rem;color:var(--muted);text-align:center}.hero-form__foot a{color:var(--harbour-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid rgba(47,101,120,.32)}.hero-form__foot a:hover{border-bottom-color:var(--harbour-dark)}.hero-form__error{margin:6px 0 0;padding:10px 14px;border-radius:12px;background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.32);color:#991b1b;font-size:.82rem;font-weight:600;text-align:center}.hero-form__error a{color:#991b1b;font-weight:700}.hero-form__success{display:grid;gap:10px;padding:18px 4px;text-align:center}.hero-form__success strong{font-family:var(--f-display-stack);font-weight:400;font-size:1.28rem;letter-spacing:0;color:var(--harbour-dark)}.hero-form__success p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}.hero-form__success a{color:var(--harbour-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid rgba(47,101,120,.32)}.hero-form__reset{justify-self:center;margin-top:6px;padding:8px 16px;border:1.5px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font-family:var(--f-body-stack);font-size:.86rem;font-weight:700;cursor:pointer;transition:background var(--t-fast) ease}.hero-form__reset:hover{background:var(--cloud)}.quote-form--success{display:grid;gap:14px;align-content:center;text-align:center}.quote-form--success h3{font-size:1.6rem;color:var(--harbour-dark)}.quote-form--success p{margin:0;color:var(--muted);font-size:1rem}.quote-form--success a{color:var(--harbour-dark);font-weight:700}.quote-form--success .form-submit{justify-self:center;width:auto;padding-left:24px;padding-right:24px}.form-status:not(:empty){color:#991b1b;font-weight:600}.hero-marquee{position:absolute;inset:0;z-index:-2;flex-direction:column;justify-content:center;gap:18px;padding:0 12px;transform:rotate(-4deg) scale(1.18);transform-origin:center;-webkit-mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.9) 14%,rgba(0,0,0,.95) 56%,transparent);mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.9) 14%,rgba(0,0,0,.95) 56%,transparent);pointer-events:none}.hero-marquee,.hero-marquee__row{display:flex;will-change:transform}.hero-marquee__row{gap:14px;width:max-content;flex:0 0 auto;animation:marqueeL var(--dur,55s) linear infinite}.hero-marquee__row--1{--dur:55s}.hero-marquee__row--2{--dur:38s}.hero-marquee__row--3{--dur:68s}.hero-marquee__row--reverse{animation-name:marqueeR}.hero-marquee.is-paused .hero-marquee__row{animation-play-state:paused}@keyframes marqueeL{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@keyframes marqueeR{0%{transform:translate3d(-50%,0,0)}to{transform:translateZ(0)}}.hero-marquee__group{display:flex;gap:14px;flex:0 0 auto}.hero-marquee__card{position:relative;flex:0 0 auto;border-radius:16px;overflow:hidden;background:var(--c-dark-2);box-shadow:var(--shadow-card);isolation:isolate}.hero-marquee__card:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(241,184,75,.18),inset 0 -40px 60px -20px rgba(11,18,32,.5);pointer-events:none}.hero-marquee__card--sm{width:180px;aspect-ratio:3/4}.hero-marquee__card--md{width:280px;aspect-ratio:4/3}.hero-marquee__card--lg{width:380px;aspect-ratio:16/10}.hero-marquee__card img,.hero-marquee__card video{width:100%;height:100%;object-fit:cover;animation:kenburns 14s ease-in-out infinite alternate;will-change:transform}.hero-marquee__card--md img,.hero-marquee__card--md video{animation-duration:16s}.hero-marquee__card--lg img,.hero-marquee__card--lg video{animation-duration:18s}@keyframes kenburns{0%{transform:scale(1.05)}to{transform:scale(1.18)}}.hero-marquee__live{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 8px;border-radius:999px;background:rgba(11,18,32,.72);color:#fff;font:700 .66rem/1 var(--f-body-stack);letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(6px);z-index:2}.hero-marquee__live:before{content:"";width:7px;height:7px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 0 rgba(239,68,68,.65);animation:livepulse 1.6s ease-out infinite}@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.65)}to{box-shadow:0 0 0 10px rgba(239,68,68,0)}}.trust-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}.trust-strip p{margin:0;padding:18px 24px;color:var(--paper);background:var(--harbour);font-weight:800;text-align:center}.section{width:min(1120px,88vw);margin:0 auto;padding:92px 0}.intro-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:58px;align-items:start}h2{color:var(--ink);font-size:2.35rem;line-height:1.12}h2,h3{margin:0;font-family:var(--f-display-stack);font-weight:400;letter-spacing:0}h3{font-size:1.32rem;line-height:1.3}.intro-layout p,.media-copy p,.proof-copy p,.quote-copy p,.section-heading p{color:var(--muted);font-size:1.02rem}.feature-list,.feature-list div{display:grid;gap:14px}.feature-list div{grid-template-columns:18px 1fr;align-items:start;padding-bottom:18px}.feature-list p{margin:0}.feature-mark{width:14px;height:14px;margin-top:5px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 6px rgba(77,115,87,.14)}.media-section{position:relative;display:grid;grid-template-columns:minmax(280px,.78fr) minmax(420px,1.22fr);gap:56px;align-items:center;padding:110px 6vw;color:var(--paper);background:var(--deep);overflow:hidden;isolation:isolate}.media-section:after,.media-section:before{content:none}.media-copy h2{color:var(--paper)}.media-copy p{color:rgba(255,255,255,.82)}.text-link{display:inline-flex;margin-top:14px;color:var(--safety);font-weight:800;text-decoration:none;border-bottom:2px solid}.video-shell{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:22px;background:var(--ink);box-shadow:0 28px 70px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.05);aspect-ratio:16/10;transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out)}.video-shell:after{content:none}.video-shell:hover{transform:translateY(-3px);box-shadow:0 36px 88px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.06)}.video-shell img,.video-shell video{width:100%;height:100%;object-fit:cover}.project-media-section{padding:130px 6vw;background:var(--cloud)}.project-media-head{width:min(1200px,100%);margin:0 auto 64px;display:grid;gap:14px;text-align:center;justify-items:center}.project-media-head h2{max-width:760px;margin:0 auto}.project-media-head p:not(.section-kicker){max-width:640px;margin:0 auto;color:var(--muted);font-size:1.04rem}.project-media-stack{width:min(1200px,100%);margin:0 auto;display:grid;gap:40px}.project-media-group{display:grid;gap:28px;padding:36px 36px 40px;background:var(--paper);border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 60px rgba(17,24,32,.08);transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out)}.project-media-group:hover{transform:translateY(-3px);box-shadow:0 32px 72px rgba(17,24,32,.12)}.project-group-header{display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px 32px;padding-bottom:26px;border-bottom:1px solid var(--line)}.project-group-copy{position:static;display:grid;gap:10px;max-width:720px}.project-group-copy .section-kicker{margin:0}.project-group-copy h3{margin:0;font-size:clamp(1.7rem,3vw,2.15rem);line-height:1.12;letter-spacing:0}.project-group-copy p:not(.section-kicker){margin:0;color:var(--muted);font-size:1rem;line-height:1.5}.media-counts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}.media-counts span{padding:8px 14px;color:var(--paper);background:var(--harbour-dark);border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em}.media-counts span:nth-child(2){background:var(--ink)}.project-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.gallery-image{position:relative;overflow:hidden;margin:0;border-radius:14px;background:var(--cloud);aspect-ratio:4/3;transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out)}.gallery-image:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(17,24,32,.14);z-index:1}.gallery-image.is-featured{grid-column:auto;grid-row:auto;aspect-ratio:4/3}.gallery-image-button{display:block;width:100%;height:100%;padding:0;overflow:hidden;background:transparent;border:0;cursor:zoom-in;border-radius:inherit}.gallery-image-button:focus-visible{outline:3px solid var(--safety);outline-offset:-5px}.gallery-image img{width:100%;height:100%;object-fit:cover;background:#e7ece8;transition:transform .6s var(--ease-out);border-radius:inherit}.gallery-image:hover img{transform:scale(1.06)}.gallery-image figcaption{display:none}.gallery-more{display:grid;align-content:center;justify-items:center;gap:8px;aspect-ratio:4/3;border-radius:14px;background:var(--ink);color:var(--paper);border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:transform var(--t-med) var(--ease-out),border-color var(--t-med) ease}.gallery-more:hover{transform:translateY(-2px);border-color:rgba(241,184,75,.45)}.gallery-more span{font-family:var(--f-display-stack);font-weight:400;font-size:clamp(1.8rem,3vw,2.4rem);letter-spacing:0;line-height:1;color:var(--safety)}.gallery-more small{color:rgba(255,255,255,.82);font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.gallery-more--video{aspect-ratio:16/10;cursor:default}.gallery-more--video:hover{transform:none;box-shadow:none}.project-video-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.project-video-grid>*{flex:0 1 calc((100% - 28px) / 3);min-width:0}.gallery-video{position:relative;overflow:hidden;margin:0;border-radius:16px;background:var(--ink);aspect-ratio:16/10;box-shadow:0 14px 32px rgba(17,24,32,.12)}.gallery-video video{width:100%;height:100%;object-fit:cover}.gallery-video figcaption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.media-lightbox{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:76px minmax(0,1fr) 76px;gap:18px;align-items:center;padding:34px;background:rgba(11,17,23,.94);backdrop-filter:blur(10px)}.media-lightbox-frame{width:min(100%,1320px);height:min(82vh,900px);justify-self:center;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:14px}.media-lightbox-image{width:100%;height:100%;object-fit:contain;border-radius:8px;background:#080d12;box-shadow:0 20px 65px rgba(0,0,0,.38)}.media-lightbox-caption{display:flex;justify-content:flex-end;gap:18px;color:var(--paper)}.media-lightbox-caption span,.media-lightbox-caption strong{overflow-wrap:anywhere}.media-lightbox-caption span{color:rgba(255,255,255,.76);font-weight:800}.lightbox-arrow,.lightbox-close{display:inline-flex;align-items:center;justify-content:center;color:var(--paper);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.34);border-radius:8px;cursor:pointer}.lightbox-arrow:focus-visible,.lightbox-arrow:hover,.lightbox-close:focus-visible,.lightbox-close:hover{background:rgba(255,255,255,.22)}.lightbox-arrow:focus-visible,.lightbox-close:focus-visible{outline:3px solid var(--safety);outline-offset:3px}.lightbox-close{position:absolute;top:18px;right:18px;width:44px;height:44px;font-size:1.2rem;font-weight:900}.lightbox-arrow{width:54px;height:72px;justify-self:center;font-size:2rem;font-weight:900;line-height:1}.section-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:44px;align-items:end;margin-bottom:34px}.service-grid{gap:16px}.service-card{min-height:238px;padding:24px;border-radius:8px;box-shadow:0 10px 28px rgba(17,24,32,.06)}.service-mark{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;margin-bottom:22px;color:var(--paper);background:var(--harbour);border-radius:50%;font-size:.82rem;font-weight:900}.service-card p{margin:12px 0 0;color:var(--muted)}.process-band{padding:80px 6vw}.products-section{padding:86px 6vw 96px;background:#eef3ef}.products-head{width:min(1120px,100%);margin:0 auto 36px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:44px;align-items:end}.products-head p{margin:0;color:var(--muted)}.catalogue-panel{width:min(1120px,100%);margin:0 auto}.catalogue-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px;color:var(--muted)}.catalogue-summary strong{color:var(--ink);font-size:1.08rem}.cart-summary-button{min-height:42px;padding:9px 14px;color:var(--paper);background:var(--harbour-dark);border:1px solid var(--harbour-dark);border-radius:6px;cursor:pointer;font-weight:900}.cart-summary-button strong{margin-left:6px;color:var(--paper);font-size:.95rem}.cart-summary-button:focus-visible,.cart-summary-button:hover{background:var(--ink)}.cart-summary-button:focus-visible{outline:3px solid var(--safety);outline-offset:3px}.catalogue-controls{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(190px,.8fr) minmax(170px,.7fr);gap:14px;margin-bottom:20px;padding:18px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.72)}.catalogue-controls div{display:grid;gap:8px}.product-grid{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.product-card{display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;min-height:100%;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:0 10px 28px rgba(17,24,32,.06);transition:transform .18s ease,box-shadow .18s ease}.product-card:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(17,24,32,.12)}.product-card-button{display:grid;grid-template-rows:190px 1fr;width:100%;min-height:100%;padding:0;color:inherit;background:transparent;border:0;text-decoration:none;text-align:left;cursor:pointer}.product-card-button:focus-visible{outline:3px solid var(--safety);outline-offset:-5px}.product-card img{width:100%;height:100%;object-fit:cover;background:#e7ece8}.product-card-body{display:grid;grid-template-rows:auto auto 1fr auto auto;gap:10px;padding:18px}.product-type{width:fit-content;padding:5px 8px;color:var(--paper);background:var(--harbour);border-radius:999px;font-size:.72rem;font-weight:900;text-transform:uppercase}.product-card h3{font-size:1.02rem}.product-card p{margin:0;color:var(--muted);font-size:.92rem}.product-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.product-meta strong{color:var(--harbour-dark);font-size:1.1rem}.product-meta span{color:var(--leaf);font-size:.8rem;font-weight:800}.product-action{width:fit-content;padding-bottom:2px;color:var(--harbour-dark);border-bottom:2px solid var(--safety);font-size:.86rem;font-weight:900}.product-detail-modal{position:fixed;inset:0;z-index:190;display:grid;place-items:center;padding:24px;background:rgba(11,17,23,.76);backdrop-filter:blur(10px)}.product-detail-card{position:relative;width:min(980px,100%);max-height:min(88vh,820px);display:grid;grid-template-columns:minmax(260px,.92fr) minmax(0,1.08fr);overflow:auto;border-radius:8px;background:var(--paper);box-shadow:0 24px 70px rgba(0,0,0,.32)}.product-detail-close{position:absolute;top:12px;right:12px;z-index:1;width:40px;height:40px;color:var(--ink);background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-weight:900}.product-detail-close:focus-visible,.product-detail-close:hover{background:var(--paper)}.product-detail-close:focus-visible{outline:3px solid var(--safety);outline-offset:3px}.product-detail-image{min-height:100%;background:#e7ece8}.product-detail-image img{width:100%;height:100%;min-height:520px;object-fit:cover}.product-detail-copy{display:grid;align-content:start;gap:18px;padding:38px}.product-detail-copy h3{margin:0;font-size:clamp(1.6rem,3vw,2.35rem);line-height:1.1}.product-detail-copy p{margin:0;color:var(--muted)}.product-detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.product-detail-meta div{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--cloud)}.product-detail-meta span{display:block;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.product-detail-meta strong{color:var(--ink)}.product-detail-tags{display:flex;flex-wrap:wrap;gap:8px}.product-detail-tags span{padding:6px 9px;color:var(--harbour-dark);background:rgba(47,101,120,.1);border-radius:999px;font-size:.78rem;font-weight:900}.product-add-button{min-height:42px;margin:0 18px 18px;color:var(--ink);background:var(--safety);border:1px solid var(--safety);border-radius:6px;cursor:pointer;font-weight:900}.product-add-button:focus-visible,.product-add-button:hover{background:#f4c76a}.product-add-button:focus-visible{outline:3px solid var(--harbour-dark);outline-offset:3px}.product-detail-add{min-height:48px;width:fit-content;padding:12px 18px;color:var(--ink);background:var(--safety);border:1px solid var(--safety);border-radius:6px;cursor:pointer;font-weight:900}.product-detail-add:focus-visible,.product-detail-add:hover{background:#f4c76a}.product-detail-add:focus-visible{outline:3px solid var(--harbour-dark);outline-offset:3px}.cart-drawer-overlay{position:fixed;inset:0;z-index:210;display:flex;justify-content:flex-end;background:rgba(11,17,23,.58);backdrop-filter:blur(8px)}.cart-drawer{width:min(460px,100%);height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--paper);box-shadow:-20px 0 60px rgba(0,0,0,.25)}.cart-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px;border-bottom:1px solid var(--line)}.cart-drawer-head h3{margin:0;font-size:1.55rem}.cart-close{width:40px;height:40px;color:var(--ink);background:var(--cloud);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-weight:900}.cart-close:focus-visible,.cart-close:hover{background:var(--zinc)}.cart-close:focus-visible{outline:3px solid var(--safety);outline-offset:3px}.cart-empty{display:grid;align-content:center;justify-items:center;gap:16px;padding:30px;color:var(--muted);text-align:center}.cart-clear,.cart-empty button{min-height:42px;padding:9px 14px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;cursor:pointer;font-weight:900}.cart-clear:focus-visible,.cart-clear:hover,.cart-empty button:focus-visible,.cart-empty button:hover{background:var(--cloud)}.cart-clear:focus-visible,.cart-empty button:focus-visible{outline:3px solid var(--safety);outline-offset:3px}.cart-items{min-height:0;overflow:auto;padding:18px}.cart-item{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line)}.cart-item img{width:86px;height:86px;object-fit:cover;border-radius:8px;background:#e7ece8}.cart-item-copy{display:grid;gap:8px}.cart-item-copy h4{margin:0;font-size:.98rem;line-height:1.25}.cart-item-copy p{margin:0;color:var(--harbour-dark);font-weight:900}.cart-quantity{display:inline-grid;grid-template-columns:34px 40px 34px;align-items:center;width:fit-content;overflow:hidden;border:1px solid var(--line);border-radius:6px}.cart-quantity button{width:34px;height:34px;color:var(--ink);background:var(--cloud);border:0;cursor:pointer;font-weight:900}.cart-quantity button:focus-visible,.cart-quantity button:hover{background:var(--zinc)}.cart-quantity button:focus-visible{outline:2px solid var(--safety);outline-offset:-2px}.cart-quantity span{text-align:center;font-weight:900}.cart-remove{padding:0;color:var(--muted);background:transparent;border:0;cursor:pointer;font-size:.78rem;font-weight:900}.cart-remove:focus-visible,.cart-remove:hover{color:var(--ink);text-decoration:underline}.cart-footer{display:grid;gap:12px;padding:18px;border-top:1px solid var(--line);background:var(--cloud)}.cart-estimate{display:flex;align-items:center;justify-content:space-between;gap:12px}.cart-estimate span{color:var(--muted);font-weight:800}.cart-estimate strong{color:var(--ink);font-size:1.15rem}.cart-checkout{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:12px 18px;color:var(--ink);background:var(--safety);border-radius:6px;font-weight:900;text-decoration:none}.cart-checkout:focus-visible,.cart-checkout:hover{background:#f4c76a}.cart-checkout:focus-visible{outline:3px solid var(--harbour-dark);outline-offset:3px}.product-image-fallback{object-fit:contain;padding:42px}.catalogue-empty{margin-top:18px;padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--muted);font-weight:800;text-align:center}.pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:28px}.page-button{min-height:42px;padding:9px 14px;border:1px solid rgba(47,101,120,.32);border-radius:6px;color:var(--ink);background:var(--paper);font-weight:800;cursor:pointer}.page-button:hover:not(:disabled){background:rgba(47,101,120,.09)}.page-button:disabled{opacity:.48;cursor:not-allowed}#page-status{color:var(--muted);font-weight:800}.process-inner{width:min(1120px,100%);grid-template-columns:minmax(280px,.9fr) minmax(420px,1.1fr);gap:52px}.process-inner h2{color:var(--paper)}.process-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.process-list li{display:grid;grid-template-columns:44px 1fr;gap:12px 18px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.16)}.process-list span{grid-row:span 2;display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;color:var(--ink);background:var(--safety);border-radius:50%;font-weight:900}.process-list strong{font-size:1.05rem}.process-list p{margin:0;color:rgba(255,255,255,.72)}.proof-section{grid-template-columns:minmax(320px,.9fr) minmax(320px,1.1fr);gap:52px}.image-panel{overflow:hidden;border-radius:8px;box-shadow:var(--shadow);aspect-ratio:1/1}.check-list{gap:12px;margin:26px 0 0}.check-list li{padding-left:30px;font-weight:800}.check-list li:before{left:0;top:9px;width:16px;height:8px}.quote-section{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(420px,1.18fr);gap:52px;padding:86px 6vw;background:var(--cloud);border-top:1px solid var(--line)}.quote-copy,.quote-form{width:100%;max-width:680px}.quote-copy h2{font-size:2.4rem}.contact-lines{display:grid;gap:8px;margin-top:26px}.contact-lines a,.contact-lines span{color:var(--ink);font-weight:800}.quote-form{justify-self:end;padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--paper);box-shadow:var(--shadow)}.form-row{display:grid;gap:8px;margin-bottom:16px}.two-up{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label{color:var(--ink);font-size:.92rem;font-weight:800}input,select,textarea{width:100%;min-height:46px;color:var(--ink);background:#fbfcfa;border:1px solid #cdd8d2;border-radius:6px;padding:10px 12px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(241,184,75,.42);border-color:var(--harbour)}.form-submit{width:100%}.form-status{min-height:22px;margin:12px 0 0;color:var(--leaf);font-weight:800}.site-footer{display:grid;grid-template-columns:minmax(250px,1.1fr) minmax(210px,.9fr) minmax(170px,.7fr) minmax(170px,.7fr);gap:36px;padding:44px 6vw;color:rgba(255,255,255,.78);background:var(--deep)}.site-footer img{width:150px;margin-bottom:18px}.site-footer h2{margin-bottom:12px;color:var(--paper);font-size:1rem}.site-footer p{margin:0}.site-footer a{display:block;margin-bottom:8px;color:var(--paper);text-decoration:none}.site-footer a:hover{color:var(--safety)}@media (prefers-reduced-motion:reduce){.hero-marquee{transform:rotate(-2deg) scale(1.04)}.button,.button-arrow,.hero-info-card__pulse:before,.hero-marquee__card img,.hero-marquee__card video,.hero-marquee__live:before,.hero-marquee__row{animation:none!important;transition:none!important}.hero-marquee__row--2,.hero-marquee__row--3{display:none}.credentials-marquee__track,.final-cta__video,.stat__num{animation:none!important}}.announcement-bar{position:relative;z-index:60;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 6vw;color:var(--paper);background:var(--deep);font-size:.86rem;font-weight:600}.announcement-bar__dot{position:relative;width:8px;height:8px;border-radius:50%;background:#4ade80;flex:0 0 auto}.announcement-bar__dot:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:rgba(74,222,128,.45);animation:greenpulse 2s ease-out infinite}.announcement-bar a{color:var(--safety);text-decoration:none;border-bottom:1px solid rgba(241,184,75,.4)}.announcement-bar a:hover{border-bottom-color:var(--safety)}.credentials-marquee{overflow:hidden;padding:22px 0;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.credentials-marquee__track{display:flex;gap:56px;width:max-content;animation:marqueeL 38s linear infinite;will-change:transform}.credentials-marquee__item{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font-family:var(--f-body-stack);font-size:.96rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.credentials-marquee__icon{width:22px;height:22px;flex:0 0 auto;color:var(--harbour)}.credentials-marquee__divider{width:6px;height:6px;border-radius:50%;background:var(--safety);flex:0 0 auto}.stats-section{padding:64px 6vw;background:var(--paper)}.stats-inner{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.stat{display:grid;gap:8px;border-left:2px solid var(--line);padding:20px 0 20px 22px}.stat:first-child{border-left:2px solid var(--safety)}.stat__num{font-family:var(--f-display-stack);font-size:clamp(2.2rem,4.5vw,3.4rem);line-height:1;letter-spacing:0;color:var(--ink);font-feature-settings:"tnum" 1}.stat__label{color:var(--muted);font-size:.92rem;font-weight:600;letter-spacing:.005em}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.service-card{position:relative;display:grid;grid-template-rows:180px 1fr;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 14px 36px rgba(17,24,32,.06);transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out)}.service-card:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(17,24,32,.12)}.service-card__media{position:relative;overflow:hidden;background:var(--cloud)}.service-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}.service-card:hover .service-card__media img{transform:scale(1.06)}.service-card__media:after{content:none}.service-card__media--icon{display:grid;place-items:center;background:var(--deep)}.service-card__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.08) contrast(1.04);z-index:0}.service-card__media--icon:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,18,32,.1),rgba(11,18,32,.26));pointer-events:none}.service-card__media--icon:after{content:none}.service-card__icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:rgba(47,101,120,.1);border:1px solid rgba(47,101,120,.18);color:var(--harbour-dark);flex:0 0 auto}.service-card__icon svg{width:20px;height:20px}.service-card__tag{position:absolute;top:14px;left:14px;z-index:2;padding:6px 12px;color:var(--ink);background:rgba(255,251,246,.95);border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;backdrop-filter:blur(8px)}.service-card__num{position:absolute;bottom:14px;left:16px;z-index:2;color:var(--safety);font-family:var(--f-display-stack);font-size:1.4rem;font-weight:400;letter-spacing:0;text-shadow:0 2px 10px rgba(11,18,32,.6)}.service-card__body{display:grid;align-content:start;gap:12px;padding:24px 24px 22px}.service-card__body h3{font-size:1.32rem}.service-card__description{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start}.service-card__body p{margin:0;color:var(--muted);font-size:.96rem}.service-card__link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;color:var(--harbour-dark);font-weight:700;text-decoration:none;letter-spacing:0}.service-card__link:after{content:"→";transition:transform var(--t-med) var(--ease-out)}.service-card:hover .service-card__link:after{transform:translateX(5px)}.process-band{padding:110px 6vw;color:var(--paper);background:var(--ink)}.process-inner{width:min(1200px,100%);margin:0 auto;display:grid;grid-template-columns:1fr;gap:56px}.process-head{display:grid;gap:18px;max-width:760px}.process-head h2{color:var(--paper)}.process-head p{margin:0;color:rgba(255,255,255,.74);font-size:1.04rem}.process-steps{position:relative;--process-gap:32px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px var(--process-gap);margin:0;padding:0;list-style:none}.process-steps:before{content:"";position:absolute;top:36.5px;left:38px;right:calc((100% - 96px) / 4 - 38px);height:3px;background:var(--safety);border-radius:999px;z-index:0;opacity:.55}.step{position:relative;z-index:1;display:grid;gap:18px;padding:0;justify-items:start}.step__num{position:relative;display:inline-flex;width:76px;height:76px;align-items:center;justify-content:center;color:var(--ink);background:var(--safety);border:4px solid var(--ink);border-radius:50%;font-size:1.55rem;box-shadow:0 0 0 6px rgba(241,184,75,.18)}.step__num,.step__title{font-family:var(--f-display-stack);font-weight:400;letter-spacing:0}.step__title{font-size:1.35rem;line-height:1.2;color:var(--paper)}.step__body{margin:0;color:rgba(255,255,255,.72);font-size:.96rem;line-height:1.55}.proof-section{position:relative;width:min(1200px,92vw);margin:0 auto;padding:130px 0;display:grid;grid-template-columns:minmax(340px,1fr) minmax(320px,1fr);gap:88px;align-items:center;isolation:isolate}.proof-section:after,.proof-section:before{content:none}.image-panel{position:relative;overflow:visible;border-radius:28px;aspect-ratio:4/5}.image-panel:before{content:"";position:absolute;inset:-22px -22px -22px 14px;border:1.5px solid rgba(47,101,120,.28);border-radius:32px;z-index:-1;pointer-events:none}.image-panel img{width:100%;height:100%;object-fit:cover;border-radius:28px;box-shadow:0 32px 80px rgba(17,24,32,.26),0 12px 28px rgba(17,24,32,.12)}.proof-badge{position:absolute;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:14px;padding:16px 22px 16px 18px;background:rgba(255,255,255,.96);border:1px solid rgba(231,226,218,.9);border-radius:18px;box-shadow:0 22px 56px rgba(17,24,32,.18),inset 0 0 0 1px rgba(255,255,255,.7);backdrop-filter:blur(8px);animation:floaty 5s ease-in-out infinite;z-index:2}.proof-badge__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:rgba(47,101,120,.12);color:var(--harbour-dark);flex:0 0 auto}.proof-badge__icon svg{width:22px;height:22px}.proof-badge__copy{display:grid;gap:2px}.proof-badge--warranty{top:-34px;right:18px;animation-delay:0s}.proof-badge--certified{top:calc(100% + 18px);bottom:auto;left:12px;animation-delay:.6s}.proof-badge--tidy{top:calc(100% + 18px);bottom:auto;right:12px;animation-delay:1.4s}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.proof-badge strong{font-family:var(--f-display-stack);font-size:1.45rem;font-weight:400;letter-spacing:0;color:var(--harbour-dark);line-height:1}.proof-badge span{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.005em;white-space:nowrap}.proof-copy h2{margin-bottom:22px}.proof-copy .section-kicker{margin-bottom:16px}.check-list{display:grid;gap:14px;margin:30px 0 0;padding:0;list-style:none}.check-list li{position:relative;padding:12px 16px 12px 44px;color:var(--ink);font-weight:700;background:rgba(255,255,255,.6);border:1px solid rgba(231,226,218,.7);border-radius:14px;transition:transform var(--t-fast) var(--ease-out),background var(--t-fast) ease}.check-list li:hover{transform:translateX(4px);background:rgba(255,255,255,.92)}.check-list li:before{content:"";position:absolute;left:16px;top:50%;margin-top:-8px;width:18px;height:9px;border-left:3px solid var(--leaf);border-bottom:3px solid var(--leaf);transform:rotate(-45deg)}.testimonials-section{padding:110px 6vw;background:var(--cloud)}.testimonials-head{width:min(1120px,100%);margin:0 auto 48px;display:grid;gap:14px;text-align:center;justify-items:center}.testimonials-head p:not(.section-kicker){max-width:620px;color:var(--muted);font-size:1.04rem}.testimonials-grid{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.testimonial{position:relative;display:grid;gap:18px;padding:32px;background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 32px rgba(17,24,32,.06)}.testimonial:before{content:"“";position:absolute;top:18px;right:28px;font-family:var(--f-display-stack);font-size:4rem;line-height:1;color:var(--safety);opacity:.7}.testimonial__stars{color:var(--safety);letter-spacing:2px;font-size:.95rem}.testimonial__quote{margin:0;font-family:var(--f-display-stack);font-weight:400;font-size:1.18rem;line-height:1.5;letter-spacing:0;color:var(--ink)}.testimonial__author{display:flex;align-items:center;gap:14px;padding-top:18px;border-top:1px solid var(--line)}.testimonial__avatar{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--harbour);color:var(--paper);font-family:var(--f-display-stack);font-weight:400;font-size:1.05rem}.testimonial__name{display:grid;gap:2px}.testimonial__name strong{color:var(--ink);font-size:1rem}.testimonial__name span{color:var(--muted);font-size:.84rem;font-weight:600}.areas-section{padding:110px 6vw;background:var(--paper)}.areas-head{width:min(1120px,100%);margin:0 auto 44px;display:grid;gap:14px;max-width:760px}.areas-head p:not(.section-kicker){color:var(--muted);font-size:1.04rem}.areas-grid{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;list-style:none;padding:0}.area-card{display:grid;gap:4px;padding:22px 22px 24px;background:var(--cloud);border:1px solid var(--line);border-radius:16px;transition:transform var(--t-med) var(--ease-out),background var(--t-med) ease,border-color var(--t-med) ease}.area-card:hover{transform:translateY(-3px);background:var(--paper);border-color:rgba(47,101,120,.32)}.area-card strong{font-family:var(--f-display-stack);font-weight:400;font-size:1.18rem;letter-spacing:0;color:var(--ink)}.area-card span{color:var(--muted);font-size:.86rem;font-weight:600}.areas-grid__cta{display:grid;align-content:center;gap:8px;padding:22px;color:var(--paper);background:var(--ink);border:1px solid transparent;border-radius:16px}.areas-grid__cta strong{font-family:var(--f-display-stack);font-weight:400;font-size:1.18rem;color:var(--paper)}.areas-grid__cta span{color:rgba(255,255,255,.78);font-size:.86rem}.areas-grid__cta a{margin-top:6px;color:var(--safety);font-weight:700;text-decoration:none;font-size:.9rem}.areas-grid__cta a:hover{text-decoration:underline;text-underline-offset:4px}.final-cta{position:relative;overflow:hidden;padding:110px 6vw;color:var(--paper);isolation:isolate;background:var(--ink)}.final-cta__media{position:absolute;inset:0;z-index:-2}.final-cta__poster,.final-cta__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.45}.final-cta__video{animation:ctafadein .6s ease-out both}@keyframes ctafadein{0%{opacity:0}to{opacity:.45}}.final-cta:after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(11,18,32,.78)}.final-cta__inner{width:min(960px,100%);margin:0 auto;text-align:center;display:grid;gap:22px;justify-items:center}.final-cta__inner .eyebrow{margin:0}.final-cta__inner h2{margin:0;color:var(--paper);font-size:clamp(2rem,5vw,3.4rem);line-height:1.04;letter-spacing:0;max-width:720px}.final-cta__inner p{margin:0;color:rgba(255,255,255,.84);font-size:1.1rem;max-width:560px}.final-cta__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;justify-content:center}.product-teaser{width:min(1200px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;padding:0}.product-teaser li{display:block}.product-teaser__card{position:relative;display:grid;grid-template-rows:auto 1fr;overflow:hidden;border-radius:20px;background:var(--paper);border:1px solid var(--line);box-shadow:0 16px 40px rgba(17,24,32,.06);text-decoration:none;color:inherit;height:100%;transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out)}.product-teaser__card:hover{transform:translateY(-4px);box-shadow:0 26px 56px rgba(17,24,32,.14)}.product-teaser__card:focus-visible{outline:3px solid var(--safety);outline-offset:3px}.product-teaser__media{position:relative;overflow:hidden;background:var(--cloud);aspect-ratio:4/3;width:100%}.product-teaser__media-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:scale(1.02);transition:opacity .9s var(--ease-out),transform 6s var(--ease-out);will-change:opacity,transform}.product-teaser__media-img.is-active{opacity:1;transform:scale(1.06)}.product-teaser__card:hover .product-teaser__media-img.is-active{transform:scale(1.1)}@media (prefers-reduced-motion:reduce){.product-teaser__media-img{transition:opacity .2s linear;transform:none}.product-teaser__media-img.is-active{transform:none}}.product-teaser__overlay{display:none}.product-teaser__body{display:grid;align-content:start;gap:8px;padding:24px 24px 22px}.product-teaser__body strong{font-family:var(--f-display-stack);font-weight:400;font-size:1.32rem;line-height:1.2;letter-spacing:0;color:var(--ink)}.product-teaser__body span{color:var(--muted);font-size:.94rem;line-height:1.5}.product-teaser__cta{margin-top:4px;color:var(--harbour-dark);font-weight:700;font-size:.9rem;letter-spacing:0}.product-teaser-cta{width:min(1200px,100%);margin:44px auto 0;display:grid;gap:10px;justify-items:center}.product-teaser-cta__note{color:var(--muted);font-size:.86rem;font-weight:600}.shop-page{background:var(--cloud)}.shop-hero{position:relative;padding:130px 6vw 96px;color:var(--paper);isolation:isolate;overflow:hidden}.shop-hero__bg{position:absolute;inset:0;z-index:-2;background:var(--ink) url(/assets/roofing-banner.webp) center /cover}.shop-hero__bg:after{content:"";position:absolute;inset:0;background:rgba(11,18,32,.72)}.shop-hero:before{content:none}.shop-hero__inner{width:min(1200px,100%);margin:0 auto;display:grid;gap:18px;max-width:880px}.shop-hero__inner .eyebrow{color:var(--safety);margin:0}.shop-hero__inner h1{margin:0;max-width:720px;font-family:var(--f-display-stack);font-weight:400;font-size:clamp(2.6rem,6.5vw,4.2rem);line-height:1.04;letter-spacing:0}.shop-hero__inner>p{margin:0;max-width:620px;color:rgba(255,255,255,.86);font-size:1.08rem;line-height:1.55}.shop-hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.shop-hero__stats{display:flex;flex-wrap:wrap;gap:36px;margin:36px 0 0;padding:26px 0 0;border-top:1px solid rgba(255,255,255,.2);list-style:none}.shop-hero__stats li{display:grid;gap:2px}.shop-hero__stats strong{font-family:var(--f-display-stack);font-weight:400;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:0;color:var(--safety);line-height:1}.shop-hero__stats span{color:rgba(255,255,255,.78);font-size:.84rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.shop-catalogue-section{padding:80px 6vw 110px}.catalogue-skeleton{width:min(1120px,100%);margin:0 auto;padding:80px 32px;border:1px dashed var(--line);border-radius:18px;background:rgba(255,255,255,.6);color:var(--muted);font-weight:600;text-align:center}.project-media-skeleton{min-height:480px;margin:0 auto;background:linear-gradient(90deg,rgba(11,18,32,.04),rgba(11,18,32,.08) 50%,rgba(11,18,32,.04));background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sticky-mobile-cta{display:none}@media (max-width:720px){.sticky-mobile-cta{position:fixed;bottom:14px;left:14px;right:14px;z-index:90;display:grid;grid-template-columns:1fr 1fr;gap:10px}.sticky-mobile-cta a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:10px 14px;border-radius:999px;font-weight:700;text-decoration:none;box-shadow:0 12px 28px rgba(11,18,32,.28)}.sticky-mobile-cta__call{color:var(--harbour-dark);background:var(--paper);border:1.5px solid rgba(47,101,120,.32)}.sticky-mobile-cta__quote{color:var(--ink);background:var(--safety);border:1.5px solid var(--safety)}body{padding-bottom:88px}}.site-nav a{position:relative}.site-nav a:after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;background:var(--harbour);border-radius:999px;transform:scaleX(0);transform-origin:left center;transition:transform var(--t-med) var(--ease-out)}.site-nav a:focus-visible:after,.site-nav a:hover:after{transform:scaleX(1)}.cart-checkout,.cart-clear,.cart-close,.cart-empty button,.cart-quantity,.cart-summary-button,.dark-link,.lightbox-arrow,.lightbox-close,.page-button,.product-add-button,.product-detail-add,.product-detail-close,.text-link{border-radius:999px!important}.text-link{border-bottom:0;padding:8px 16px;color:var(--harbour-dark);background:rgba(47,101,120,.09);font-weight:700;letter-spacing:0;transition:background var(--t-fast) ease,color var(--t-fast) ease}.text-link:hover{background:rgba(47,101,120,.16)}.dark-link{color:var(--harbour-dark);background:rgba(47,101,120,.12)}.media-section .text-link{color:var(--ink);background:var(--safety)}.media-section .text-link:hover{background:#ffd16e}.intro-section,.services-section{padding:110px 0}.feature-list div{border-radius:14px;padding:18px;background:var(--paper);border-bottom:1px solid var(--line);border:1px solid var(--line);box-shadow:0 8px 24px rgba(17,24,32,.04)}.section-heading{margin-bottom:44px}.media-section{border-radius:0}.trust-strip p{font-family:var(--f-body-stack);font-weight:700;letter-spacing:.005em}.site-footer{padding:64px 6vw 48px;background:var(--ink)}.site-footer h2{font-family:var(--f-body-stack);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--safety)}.site-footer a{transition:color var(--t-fast) ease}@media (max-width:940px){.product-teaser{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.product-teaser__card{grid-template-rows:auto 1fr}.shop-hero{padding:96px 6vw 72px}.shop-hero__stats{gap:22px}.shop-catalogue-section{padding:60px 6vw 88px}.proof-section{gap:60px;padding:88px 0}.proof-section:before{width:280px;height:280px;left:-10%}.proof-section:after{width:220px;height:220px}.image-panel{aspect-ratio:4/3;max-width:560px;margin:0 auto 48px}.proof-badge--warranty{right:14px;top:-24px}.proof-badge--certified{left:14px}.proof-badge--tidy{right:14px;bottom:auto;top:calc(100% + 14px)}.media-section{gap:36px}.media-section,.project-media-section{padding:88px 6vw}.project-media-group{padding:28px 22px 32px;border-radius:22px}.project-group-header{grid-template-columns:1fr;gap:14px}.project-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.project-video-grid>*{flex:0 1 calc((100% - 14px) / 2)}.process-steps,.service-grid,.stats-inner{grid-template-columns:repeat(2,minmax(0,1fr))}.process-steps{gap:36px 24px}.process-steps:before{display:none}.proof-section{grid-template-columns:1fr;gap:40px}.proof-badge:nth-child(2){right:8px}.proof-badge:nth-child(3){left:8px}.testimonials-grid{grid-template-columns:1fr}.areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.product-teaser{grid-template-columns:1fr;gap:14px}.product-teaser__card{grid-template-rows:auto 1fr}.product-teaser__media{aspect-ratio:16/10}.shop-hero{padding:80px 20px 60px}.shop-hero__actions .button{width:100%}.shop-hero__stats{gap:16px}.shop-catalogue-section{padding:48px 20px 72px}.proof-section{padding:64px 0;gap:44px}.image-panel{aspect-ratio:5/4;margin-bottom:132px}.proof-badge{grid-template-columns:36px 1fr;padding:12px 16px 12px 14px;gap:10px}.proof-badge__icon{width:36px;height:36px}.proof-badge__icon svg{width:18px;height:18px}.proof-badge strong{font-size:1.2rem}.proof-badge span{font-size:.72rem}.proof-badge--warranty{right:10px;top:-18px}.proof-badge--certified{left:10px;bottom:auto;top:calc(100% + 14px)}.proof-badge--tidy{right:10px;bottom:auto;top:calc(100% + 76px)}.media-section{grid-template-columns:1fr;padding:64px 20px}.video-shell{aspect-ratio:16/11;border-radius:18px}.project-media-section{padding:64px 20px}.project-media-stack{gap:28px}.project-media-group{padding:24px 18px 28px;border-radius:20px}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gallery-image.is-featured{grid-column:span 2;grid-row:auto;aspect-ratio:16/9}.project-video-grid>*{flex:0 1 100%}.announcement-bar{font-size:.78rem;padding:9px 16px;text-align:center}.stats-section{padding:48px 20px}.stats-inner{grid-template-columns:1fr;gap:18px}.stat{padding:16px 0 16px 18px}.service-grid{grid-template-columns:1fr}.process-band{padding:72px 20px}.process-steps{grid-template-columns:1fr;gap:24px}.proof-section{width:calc(100% - 40px);padding:72px 0}.areas-section,.final-cta,.testimonials-section{padding:72px 20px}.areas-grid{grid-template-columns:1fr}.testimonial{padding:24px}}@media (max-width:940px){.site-header{grid-template-columns:auto auto;gap:14px}.brand img{width:112px}.nav-toggle{display:block;justify-self:end}.site-nav{position:fixed;inset:76px 0 auto;display:none;grid-template-columns:1fr;gap:0;padding:14px 6vw 22px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 20px 40px rgba(17,24,32,.13)}body.nav-open .site-nav{display:grid}.site-nav a{padding:14px 0;border-bottom:1px solid var(--line)}.header-call{display:none}.hero{min-height:auto}.hero-content{grid-template-columns:1fr;gap:36px;padding:170px 0 64px;align-items:start}.hero-form-wrap{justify-content:stretch;width:100%}.hero-form-card{max-width:100%}.hero h1{font-size:2.85rem}.hero-marquee{gap:14px;transform:rotate(-3deg) scale(1.3)}.hero-marquee__row--3{display:none}.hero-marquee__card--lg{width:300px}.hero-proof,.intro-layout,.media-section,.process-inner,.products-head,.project-media-group,.proof-section,.quote-section,.section-heading,.site-footer,.trust-strip{grid-template-columns:1fr}.media-section,.quote-section{padding:72px 6vw}.quote-form{justify-self:start;max-width:none}.product-grid,.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-group-copy{position:static}.project-video-grid{grid-column:1}.project-video-grid>*{flex:0 1 calc((100% - 14px) / 2)}.catalogue-controls{grid-template-columns:1fr}}@media (max-width:640px){.site-header{height:70px;padding:0 20px}.site-nav{inset-block-start:70px;padding-inline:20px}.hero{min-height:auto}.hero-content{grid-template-columns:1fr;gap:28px;width:calc(100% - 40px);padding:150px 0 48px}.hero-form-card{padding:22px;border-radius:18px}.hero-form-card__title{font-size:1.38rem}.hero h1{font-size:2.28rem}.hero-copy{font-size:1rem}.button,.hero-actions{width:100%}.hero-info-card{width:100%;justify-content:flex-start;font-size:.85rem}.hero-marquee{gap:10px;transform:rotate(-3deg) scale(1.55)}.hero-marquee__card--lg{width:240px}.hero-marquee__card--md{width:200px}.hero-marquee__card--sm{width:140px}.hero-proof{gap:8px}.hero-proof div{min-height:auto;padding:14px}.hero-proof dt{font-size:1.75rem}.trust-strip p{padding:14px 20px;text-align:left}.section{width:calc(100% - 40px);padding:64px 0}.project-media-section{padding:64px 20px}.project-gallery{grid-template-columns:1fr}.project-video-grid>*{flex:0 1 100%}.gallery-image.is-featured{grid-column:auto;grid-row:auto}.gallery-image img,.gallery-image.is-featured img{min-height:260px}.media-lightbox{grid-template-columns:48px minmax(0,1fr) 48px;gap:8px;padding:72px 12px 18px}.media-lightbox-frame{height:min(74vh,640px)}.media-lightbox-caption{flex-direction:column;gap:4px}.lightbox-close{top:14px;right:14px}.lightbox-arrow{width:44px;height:58px;font-size:1.5rem}.quote-copy h2,h2{font-size:1.82rem}.product-grid,.service-grid,.two-up{grid-template-columns:1fr}.products-section{padding:64px 20px 70px}.product-card-button{grid-template-rows:210px 1fr}.product-detail-modal{padding:12px}.product-detail-card{max-height:90vh;grid-template-columns:1fr}.product-detail-image img{min-height:280px;max-height:360px}.product-detail-copy{padding:24px}.product-detail-meta{grid-template-columns:1fr}.catalogue-summary,.pagination,.product-meta{align-items:stretch;flex-direction:column}.pagination{gap:10px}.page-button{width:100%}.service-card{min-height:auto}.quote-form{padding:20px}.site-footer{padding:38px 20px}}.chat-fab{position:fixed;bottom:24px;right:24px;z-index:95;display:inline-flex;align-items:center;gap:8px;min-height:56px;padding:14px 22px 14px 18px;color:var(--ink);background:var(--safety);border:0;border-radius:999px;font-family:var(--f-body-stack);font-weight:700;font-size:.95rem;cursor:pointer;box-shadow:0 18px 42px rgba(241,184,75,.42),inset 0 0 0 1px rgba(241,184,75,.5);transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out),background var(--t-fast) ease}.chat-fab:hover{transform:translateY(-2px);background:#ffd16e;box-shadow:0 24px 56px rgba(241,184,75,.55),inset 0 0 0 1px rgba(241,184,75,.6)}.chat-fab:active{transform:scale(.96)}.chat-fab:focus-visible{outline:3px solid var(--harbour-dark);outline-offset:3px}.chat-fab.is-open{min-height:48px;padding:12px;background:var(--ink);color:var(--paper);box-shadow:0 18px 42px rgba(17,24,32,.42)}.chat-fab.is-open:hover{background:var(--harbour-dark)}.chat-fab__label{font-weight:700;letter-spacing:0}.chat-panel{position:fixed;bottom:96px;right:24px;z-index:96;width:min(380px,calc(100vw - 32px));height:min(580px,calc(100vh - 130px));display:grid;grid-template-rows:auto 1fr auto auto;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 80px rgba(17,24,32,.28),0 0 0 1px rgba(17,24,32,.04);animation:chatpanel-enter .28s var(--ease-out) both}@keyframes chatpanel-enter{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-panel__head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 18px;background:var(--harbour);color:var(--paper)}.chat-panel__avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.14);color:var(--safety)}.chat-panel__title{display:grid;gap:2px}.chat-panel__title strong{font-family:var(--f-display-stack);font-weight:400;font-size:1.02rem;letter-spacing:0;line-height:1.1}.chat-panel__title span{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.8);font-size:.74rem;font-weight:600}.chat-panel__dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.7);animation:chatdot 2s ease-out infinite}@keyframes chatdot{0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}to{box-shadow:0 0 0 8px rgba(74,222,128,0)}}.chat-panel__close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:var(--paper);cursor:pointer;transition:background var(--t-fast) ease}.chat-panel__close:hover{background:rgba(255,255,255,.24)}.chat-panel__close:focus-visible{outline:2px solid var(--safety);outline-offset:2px}.chat-panel__messages{overflow-y:auto;padding:18px 18px 6px;display:flex;flex-direction:column;gap:10px;background:var(--cloud);scroll-behavior:smooth}.chat-msg{max-width:86%;padding:12px 16px;border-radius:18px;font-size:.92rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;animation:chatmsg-in .18s var(--ease-out) both}@keyframes chatmsg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-msg--user{align-self:flex-end;background:var(--safety);color:var(--ink);border-bottom-right-radius:4px;font-weight:600}.chat-msg--assistant{align-self:flex-start;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:4px}.chat-msg__typing{display:inline-block;letter-spacing:4px;color:var(--muted);animation:chattyping 1.2s ease-in-out infinite}@keyframes chattyping{0%,to{opacity:.3}50%{opacity:1}}.chat-error{align-self:stretch;margin:4px 0;padding:10px 14px;border-radius:12px;background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.32);color:#991b1b;font-size:.86rem;font-weight:600}.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:4px 18px 12px}.chat-suggestion{padding:8px 12px;background:var(--paper);border:1px solid var(--line);border-radius:999px;color:var(--harbour-dark);font-size:.8rem;font-weight:600;cursor:pointer;transition:background var(--t-fast) ease,transform var(--t-fast) var(--ease-out)}.chat-suggestion:hover{background:rgba(47,101,120,.08);transform:translateY(-1px)}.chat-suggestion:focus-visible{outline:2px solid var(--safety);outline-offset:2px}.chat-panel__form{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--paper)}.chat-input{width:100%;min-height:44px;max-height:120px;padding:12px 14px;resize:none;border:1px solid var(--line);border-radius:18px;background:var(--cloud);font-family:var(--f-body-stack);font-size:.92rem;color:var(--ink);line-height:1.4;transition:border-color var(--t-fast) ease,background var(--t-fast) ease}.chat-input:focus{outline:none;border-color:var(--harbour);background:var(--paper);box-shadow:0 0 0 3px rgba(47,101,120,.12)}.chat-input::placeholder{color:var(--muted)}.chat-send{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--safety);color:var(--ink);cursor:pointer;transition:transform var(--t-fast) var(--ease-out),background var(--t-fast) ease}.chat-send:hover:not(:disabled){background:#ffd16e;transform:translateY(-1px)}.chat-send:focus-visible{outline:2px solid var(--harbour-dark);outline-offset:2px}.chat-send:disabled{opacity:.42;cursor:not-allowed}.chat-panel__foot{padding:10px 16px 12px;background:var(--cloud);border-top:1px solid var(--line);font-size:.74rem;color:var(--muted);text-align:center}.chat-panel__foot a{color:var(--harbour-dark);font-weight:700;text-decoration:none;border-bottom:1.5px solid rgba(47,101,120,.32)}.chat-panel__foot a:hover{border-bottom-color:var(--harbour-dark)}@media (max-width:640px){.chat-fab{bottom:90px;right:16px;padding:12px 18px 12px 16px;min-height:50px}.chat-fab.is-open{bottom:16px}.chat-fab__label{display:none}.chat-panel{bottom:16px;right:16px;left:16px;width:auto;height:min(640px,calc(100vh - 32px));border-radius:22px}}@media (prefers-reduced-motion:reduce){.chat-msg,.chat-panel,.chat-panel__dot{animation:none!important}}[id]{scroll-margin-top:88px}@media (max-width:480px){[id]{scroll-margin-top:78px}body{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.site-header{justify-content:space-between;padding:0 16px}.brand img{width:104px}.nav-toggle{width:40px;height:40px}.site-nav{left:0;right:0;justify-self:stretch;width:100%;max-height:calc(100dvh - 70px);overflow-y:auto;padding-inline:16px}.hero-content{width:calc(100% - 32px);padding:132px 0 42px}.hero h1,.shop-hero__inner h1{font-size:2.05rem;line-height:1.08}.areas-head p:not(.section-kicker),.hero-copy,.intro-layout p,.media-copy p,.project-media-head p:not(.section-kicker),.proof-copy p,.quote-copy p,.section-heading p,.shop-hero__inner>p,.testimonials-head p:not(.section-kicker){font-size:.96rem}.hero-actions{gap:10px}.button{min-height:48px;padding:12px 16px;border-radius:18px;line-height:1.25;text-align:center;white-space:normal}.hero-info-card{flex-wrap:wrap;gap:7px 9px;padding:12px 14px;border-radius:18px;font-size:.82rem;line-height:1.35}.hero-info-card__sep{display:none}.hero-stars{letter-spacing:0}.hero-proof{display:none}.hero-form-card{padding:18px;border-radius:16px}.hero-form__row textarea{min-height:78px}.section{width:calc(100% - 32px)}.quote-copy h2,h2{font-size:1.72rem;line-height:1.16}h3{line-height:1.22}.intro-section,.services-section{padding:64px 0}.section-heading{gap:16px;margin-bottom:28px}.areas-section,.final-cta,.media-section,.process-band,.quote-section,.testimonials-section{padding:60px 16px}.products-section,.project-media-section,.shop-catalogue-section{padding-left:16px;padding-right:16px}.shop-hero{padding:72px 16px 52px}.shop-hero__actions{display:grid}.shop-hero__stats{display:none}.product-teaser__body,.service-card__body{padding:20px}.service-card{grid-template-rows:150px 1fr;border-radius:16px}.service-card__tag{max-width:calc(100% - 28px);white-space:normal;line-height:1.2}.service-card__icon{width:36px;height:36px;border-radius:11px}.service-card__icon svg{width:19px;height:19px}.project-media-group{padding:20px 14px 24px;border-radius:16px}.project-gallery,.project-video-grid{gap:10px}.gallery-image img,.gallery-image.is-featured img{min-height:220px}.media-lightbox{grid-template-columns:1fr;padding:64px 10px 14px}.media-lightbox-frame{width:100%;height:min(76dvh,620px)}.lightbox-arrow{position:absolute;top:50%;z-index:2;width:42px;height:54px;transform:translateY(-50%)}.lightbox-prev{left:8px}.lightbox-next{right:8px}.catalogue-controls{padding:14px}.cart-summary-button,.catalogue-summary>*{width:100%}.product-card-button{grid-template-rows:180px 1fr}.product-card-body{padding:16px}.product-type{max-width:100%;line-height:1.25;overflow-wrap:anywhere}.product-add-button{margin:0 14px 14px}.product-detail-modal{padding:8px}.product-detail-card{width:100%;max-height:calc(100dvh - 16px)}.product-detail-image img{min-height:220px;max-height:280px}.product-detail-copy{padding:20px 16px}.product-detail-copy h3{font-size:1.45rem;line-height:1.14}.cart-drawer,.product-detail-add{width:100%}.cart-drawer-head{padding:18px 16px}.cart-items{padding:12px 16px}.cart-item{grid-template-columns:64px minmax(0,1fr);gap:10px 12px}.cart-item img{width:64px;height:64px}.cart-remove{grid-column:2;justify-self:start}.cart-estimate{align-items:flex-start;flex-direction:column}.proof-section{width:calc(100% - 32px);gap:36px}.image-panel{margin-bottom:152px}.image-panel:before{inset:-12px -10px -12px 8px}.proof-badge{max-width:min(100%,270px)}.proof-badge span{white-space:normal}.proof-badge--certified{top:calc(100% + 12px)}.proof-badge--tidy{top:calc(100% + 82px)}.testimonial{padding:20px}.testimonial:before{right:18px;font-size:3rem}.testimonial__author{align-items:flex-start}.areas-grid{gap:10px}.area-card,.areas-grid__cta{padding:18px}.final-cta__actions,.final-cta__actions .button{width:100%}.quote-form{padding:18px}.site-footer{padding:34px 16px}.sticky-mobile-cta{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));gap:8px;grid-template-columns:minmax(78px,.75fr) minmax(0,1fr)}.sticky-mobile-cta a{min-height:48px;padding:8px 10px;font-size:.88rem;line-height:1.2;text-align:center}.chat-fab{right:12px;bottom:calc(78px + env(safe-area-inset-bottom))}.chat-panel{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));height:min(620px,calc(100dvh - 20px));border-radius:18px}.chat-panel__head{padding:14px}.chat-panel__messages{padding:14px 14px 6px}.chat-panel__form{padding:10px}}@media (max-width:360px){body{padding-bottom:calc(82px + env(safe-area-inset-bottom))}.site-header{padding:0 12px}.brand img{width:94px}.hero-content{width:calc(100% - 24px);padding-top:124px}.hero h1,.shop-hero__inner h1{font-size:1.9rem}.hero-form-card{padding:16px}.button{padding:11px 14px;font-size:.95rem}.proof-section,.section{width:calc(100% - 24px)}.areas-section,.final-cta,.media-section,.process-band,.products-section,.project-media-section,.quote-section,.shop-catalogue-section,.shop-hero,.testimonials-section{padding-left:12px;padding-right:12px}.shop-hero__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shop-hero__stats span{font-size:.66rem}.image-panel{margin-bottom:166px}.proof-badge{max-width:min(100%,250px)}.proof-badge--tidy{top:calc(100% + 88px)}.gallery-image img,.gallery-image.is-featured img{min-height:200px}.product-card-button{grid-template-rows:160px 1fr}.cart-item{grid-template-columns:56px minmax(0,1fr)}.cart-item img{width:56px;height:56px}.sticky-mobile-cta{left:8px;right:8px;grid-template-columns:76px minmax(0,1fr)}.sticky-mobile-cta a{font-size:.84rem}.chat-panel{left:8px;right:8px}}@media (max-width:480px){[id]{scroll-margin-top:68px}body{padding-bottom:calc(74px + env(safe-area-inset-bottom))}.site-header{height:60px;padding:0 14px}.brand img{width:88px}.nav-toggle{width:36px;height:36px}.site-nav{inset-block-start:60px;max-height:calc(100dvh - 60px);padding:8px 14px 12px}.site-nav a{padding:10px 0;font-size:.96rem}.hero-content{width:calc(100% - 28px);gap:18px;padding:70px 0 30px}.hero h1,.shop-hero__inner h1{font-size:1.78rem;line-height:1.08}.eyebrow,.section-kicker{margin-bottom:8px;font-size:.72rem}.areas-head p:not(.section-kicker),.hero-copy,.intro-layout p,.media-copy p,.project-group-copy p:not(.section-kicker),.project-media-head p:not(.section-kicker),.proof-copy p,.quote-copy p,.section-heading p,.shop-hero__inner>p,.testimonials-head p:not(.section-kicker){font-size:.9rem;line-height:1.45}.hero-copy{margin-top:14px}.hero-actions{margin-top:22px}.button{min-height:42px;padding:9px 14px;font-size:.9rem;border-radius:14px}.hero-info-card{margin-top:16px;padding:9px 11px;gap:6px 8px;font-size:.78rem}.hero-form-wrap,.hero-stars{display:none}.hero-form-card,.quote-form{padding:14px}.hero-form-card__head{margin-bottom:12px;padding-bottom:12px}.hero-form-card__title{font-size:1.16rem}.check-list,.feature-list,.hero-form{gap:10px}.hero-form__row input,.hero-form__row select,.hero-form__row textarea,input,select,textarea{min-height:38px;padding:8px 10px;font-size:16px}.hero-form__row textarea{min-height:62px}.section{width:calc(100% - 28px);padding:42px 0}.quote-copy h2,h2{font-size:1.45rem}h3{font-size:1.12rem}.intro-section,.services-section{padding:44px 0}.areas-section,.final-cta,.media-section,.process-band,.products-section,.project-media-section,.quote-section,.shop-catalogue-section,.testimonials-section{padding:42px 14px}.areas-head,.products-head,.project-media-head,.section-heading,.testimonials-head{gap:10px;margin-bottom:22px}.shop-hero{padding:42px 14px 34px}.shop-hero__inner{gap:12px}.shop-hero__actions{gap:8px;margin-top:8px}.stats-section{padding:34px 14px}.stats-inner{gap:10px}.stat{gap:4px;padding:10px 0 10px 12px}.stat__num{font-size:1.72rem}.stat__label{font-size:.8rem}.areas-grid,.product-teaser,.project-media-stack,.service-grid,.testimonials-grid{gap:12px}.service-card{grid-template-rows:104px 1fr}.product-card-body,.product-teaser__body,.service-card__body{padding:14px}.service-card__icon{width:34px;height:34px;border-radius:10px}.service-card__icon svg{width:18px;height:18px}.service-card__description{grid-template-columns:34px 1fr;gap:10px}.service-card__tag{top:10px;left:10px;padding:5px 8px;font-size:.64rem}.product-teaser__body strong,.service-card__body h3{font-size:1.08rem}.product-teaser__body span,.service-card__body p{font-size:.86rem;line-height:1.4}.product-teaser__media{aspect-ratio:2/1}.product-teaser-cta{margin-top:26px}.product-teaser-cta__note{font-size:.78rem;text-align:center}.process-band{padding-top:46px;padding-bottom:46px}.process-inner,.process-steps,.step{gap:14px}.step__num{width:52px;height:52px;font-size:1.1rem;border-width:3px}.step__title{font-size:1.12rem}.step__body{font-size:.86rem}.project-media-head{margin-bottom:28px}.project-media-group{gap:16px;padding:16px 12px 18px}.project-group-header{padding-bottom:16px}.project-group-copy h3{font-size:1.28rem}.media-counts span{padding:6px 10px;font-size:.7rem}.gallery-image img,.gallery-image.is-featured img{min-height:150px}.gallery-more,.gallery-video{border-radius:12px}.proof-section{width:calc(100% - 28px);padding:44px 0}.image-panel{margin-bottom:120px}.proof-badge{grid-template-columns:30px 1fr;gap:8px;padding:9px 11px;border-radius:12px}.proof-badge__icon{width:30px;height:30px;border-radius:8px}.proof-badge strong{font-size:1rem}.proof-badge span{font-size:.66rem}.proof-badge--tidy{top:calc(100% + 62px)}.area-card,.areas-grid__cta,.check-list li,.feature-list div,.testimonial{padding:14px}.check-list li{padding-left:38px}.testimonial{gap:12px}.testimonial__quote{font-size:1rem;line-height:1.42}.testimonial__author{gap:10px;padding-top:12px}.testimonial__avatar{width:38px;height:38px}.final-cta__inner{gap:14px}.final-cta__inner h2{font-size:1.6rem}.final-cta__inner p{font-size:.9rem}.catalogue-summary{gap:6px;margin-bottom:12px}.catalogue-summary strong{font-size:.98rem}.catalogue-controls{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.catalogue-controls div:first-child{grid-column:1/-1}.catalogue-controls label{font-size:.82rem}.product-grid{gap:12px}.product-card-button{grid-template-rows:108px 1fr}.product-card h3{font-size:.96rem;line-height:1.22;-webkit-line-clamp:2}.product-card h3,.product-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.product-card p{font-size:.82rem;line-height:1.35;-webkit-line-clamp:1}.product-meta{gap:6px}.product-meta strong{font-size:.98rem}.product-meta span{font-size:.74rem}.cart-summary-button,.page-button,.product-add-button{min-height:38px;font-size:.86rem}.product-add-button{margin:0 12px 12px}.pagination{margin-top:18px}.product-detail-card{border-radius:14px}.product-detail-close{width:34px;height:34px}.product-detail-image img{min-height:150px;max-height:190px}.product-detail-copy{gap:12px;padding:16px 14px}.product-detail-copy h3{font-size:1.2rem}.product-detail-copy p{font-size:.9rem;line-height:1.45}.product-detail-meta div{padding:10px}.cart-drawer-head{padding:14px}.cart-drawer-head h3{font-size:1.25rem}.cart-footer,.cart-items{padding:12px 14px}.cart-empty{padding:22px 14px}.site-footer{gap:22px;padding:28px 14px}.sticky-mobile-cta{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom))}.sticky-mobile-cta a{min-height:42px;padding:7px 9px;font-size:.82rem}.chat-fab{display:none}}@media (max-width:360px){body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}.site-header{padding:0 10px}.brand img{width:82px}.hero-content{width:calc(100% - 20px);padding-top:58px}.hero h1,.shop-hero__inner h1{font-size:1.62rem}.shop-hero{padding:34px 10px 28px}.proof-section,.section{width:calc(100% - 20px)}.areas-section,.final-cta,.media-section,.process-band,.products-section,.project-media-section,.quote-section,.shop-catalogue-section,.testimonials-section{padding:36px 10px}.product-card-button{grid-template-rows:96px 1fr}.gallery-image img,.gallery-image.is-featured img{min-height:138px}.product-detail-image img{min-height:132px;max-height:170px}.sticky-mobile-cta{left:6px;right:6px}}