:root{--navy-900:#0b1c2e;--navy:#102840;--navy-700:#1a3a5c;--blue:#285088;--blue-600:#2f62a6;--blue-500:#3b74bf;--glass:#c8e0f8;--sky:#7cb2f2;--glass-100:#e6f0fb;--frost:#f4f8fd;--white:#fff;--ink:#17212e;--ink-2:#4a5666;--ink-3:#6f7a89;--line:#dbe4ef;--line-2:#c6d3e2;--success:#1f7a4d;--error:#b42323;--font-display:"Sora", "Segoe UI", Arial, sans-serif;--font-body:"Instrument Sans", "Segoe UI", Arial, sans-serif;--container:1240px;--gutter:clamp(16px, 4vw, 40px);--radius:6px;--radius-lg:12px;--shadow-sm:0 1px 2px #1028400f, 0 2px 8px #1028400f;--shadow:0 6px 20px #1028401a, 0 2px 6px #1028400f;--shadow-lg:0 24px 50px #1028402e;--ease:cubic-bezier(.2, .7, .2, 1);--header-offset:194px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.65}img,svg,video{max-width:100%;height:auto;display:block}a{color:var(--blue);text-decoration:none}a:hover{color:var(--navy)}ul,ol.breadcrumb,ol.steps,ol.process-grid{margin:0;padding:0;list-style:none}p{margin:0 0 1em}h1,h2,h3,h4{font-family:var(--font-display);color:var(--navy);letter-spacing:-.015em;margin:0 0 .5em;font-weight:700;line-height:1.15}h1{font-size:clamp(2.25rem,4.6vw,3.6rem)}h2{font-size:clamp(1.75rem,3.2vw,2.5rem)}h3{font-size:1.3rem}h4{font-size:1.1rem}strong{font-weight:600}:focus-visible{outline:3px solid var(--blue-500);outline-offset:3px;border-radius:3px}[id]{scroll-margin-top:90px}.skip-link{z-index:2000;background:var(--navy);color:#fff;border-radius:var(--radius);padding:10px 16px;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.container{width:min(100% - 2 * var(--gutter), var(--container));margin-inline:auto}.section{padding-block:clamp(64px,8vw,112px)}.section--tight{padding-block:clamp(48px,6vw,80px)}.section--frost{background:var(--frost)}.section--glass{position:relative;overflow:clip}.section--glass>.container{z-index:1;position:relative}.section--navy{background:var(--navy);color:#d9e6f5}.section--navy h2,.section--navy h3{color:#fff}.section-head{max-width:720px;margin-bottom:clamp(32px,4vw,56px)}.section-head--center{text-align:center;margin-inline:auto}.eyebrow{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);align-items:center;gap:10px;margin-bottom:14px;font-size:.8rem;font-weight:600;display:inline-flex}.eyebrow:before,.section-head--center .eyebrow:after{content:"";background:var(--glass);border-radius:2px;width:26px;height:3px}.section--navy .eyebrow{color:var(--glass)}.section-head p{color:var(--ink-2);margin:0;font-size:1.1rem}.section--navy .section-head p{color:#b9cce3}.btn{border-radius:var(--radius);font-family:var(--font-display);cursor:pointer;transition:transform .25s var(--ease), background .25s, color .25s, border-color .25s, box-shadow .25s;white-space:nowrap;border:2px solid #0000;justify-content:center;align-items:center;gap:10px;padding:15px 26px;font-size:.95rem;font-weight:600;line-height:1;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn i{font-size:.9em}.btn--primary{background:var(--navy);color:#fff;box-shadow:0 8px 18px #10284038}.btn--primary:hover{background:var(--navy-700);color:#fff}.btn--glass{background:var(--glass);color:var(--navy)}.btn--glass:hover{color:var(--navy);background:#d7e9fa}.btn--outline{border-color:var(--line-2);color:var(--navy);background:#fff}.btn--outline:hover{border-color:var(--navy);color:var(--navy)}.btn--outline-light{color:#fff;background:0 0;border-color:#ffffff73}.btn--outline-light:hover{color:#fff;background:#ffffff14;border-color:#fff}.btn--sm{padding:11px 18px;font-size:.85rem}.btn--block{width:100%}.text-link{font-family:var(--font-display);color:var(--blue);align-items:center;gap:8px;font-size:.95rem;font-weight:600;display:inline-flex}.text-link i{transition:transform .25s var(--ease)}.text-link:hover i{transform:translate(4px)}.header-wrap{z-index:1000;background:0 0;padding-block:6px 0;position:absolute;top:0;left:0;right:0}.header-wrap.is-scrolled{box-shadow:none;border-bottom:1px solid var(--line);animation:header-in .35s var(--ease);background:#fff;padding-block:0;position:fixed}.header-wrap.is-scrolled .header-float{width:100%;max-width:none;box-shadow:none;border-radius:0}.header-wrap.is-scrolled .header-brand,.header-wrap.is-scrolled .navbar{box-shadow:none}.header-wrap.is-scrolled .header-brand{border-right:1px solid var(--line);border-radius:0;grid-row:1;padding:10px 28px}.header-wrap.is-scrolled .header-rows .navbar{grid-row:1}.header-wrap.is-scrolled .header-brand img{width:150px}.header-wrap.is-scrolled .navbar{background:#fff;border-radius:0;min-height:70px}.header-wrap.is-scrolled .navbar nav{flex:1;justify-content:flex-end}.header-wrap.is-scrolled .nav>li>a[aria-current=page],.header-wrap.is-scrolled .nav>li:hover>a,.header-wrap.is-scrolled .nav>li>a:hover{background:var(--glass-100)}.header-wrap.is-scrolled .header__cta{border-radius:0}@keyframes header-in{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.header-float{border-radius:var(--radius);grid-template-rows:auto 1fr;grid-template-columns:236px 1fr;align-items:stretch;display:grid}.header-brand{border-radius:var(--radius) 0 0 var(--radius);background:#fff;grid-area:2/1;justify-content:center;align-items:center;padding:16px 24px;display:flex;box-shadow:0 18px 40px #00000047}.logo{display:block}.logo img{width:176px;height:auto}.header-rows{display:contents}.header-rows .topbar{grid-area:1/1/auto/-1}.header-rows .navbar{grid-area:2/2}.topbar{color:var(--navy);background:0 0;border-radius:0;font-size:.84rem}.header-wrap.is-scrolled .topbar{display:none}.topbar__inner{justify-content:space-between;align-items:center;gap:16px;min-height:46px;padding:4px 12px;display:flex}.topbar__list{white-space:nowrap;flex-wrap:nowrap;gap:6px 36px;display:flex}.topbar__list a,.topbar__list span{color:var(--navy);align-items:center;gap:9px;font-weight:500;display:inline-flex}.topbar__list a:hover{color:var(--blue)}.topbar__list i{color:var(--blue);font-size:.85em}.topbar__social{gap:4px;display:flex}.topbar__social a{width:32px;height:32px;color:var(--navy);border-radius:50%;place-items:center;transition:background .2s,color .2s;display:grid}.topbar__social a:hover{background:var(--glass-100);color:var(--blue)}body:has(.page-title) .topbar__list a,body:has(.page-title) .topbar__list span,body:has(.page-title) .topbar__social a{color:#dbe7f5}body:has(.page-title) .topbar__list a:hover,body:has(.page-title) .topbar__social a:hover{color:#fff}body:has(.page-title) .topbar__list i{color:var(--glass)}body:has(.page-title) .topbar__social a:hover{background:#ffffff1f}.navbar{background:var(--glass);border-radius:0 var(--radius) var(--radius) 0;justify-content:flex-end;align-items:stretch;min-height:74px;display:flex;box-shadow:0 18px 40px #00000047}.navbar nav{align-items:center;min-width:0;padding:0 14px;display:flex}.nav{align-items:center;gap:2px;display:flex}.nav>li{position:relative}.nav>li>a{border-radius:var(--radius);font-family:var(--font-display);color:var(--navy);align-items:center;gap:6px;padding:10px 14px;font-size:.95rem;font-weight:600;transition:background .2s;display:inline-flex}.nav>li>a i{color:var(--blue);font-size:.65rem;transition:transform .25s}.nav>li:hover>a,.nav>li>a:hover{background:#fff9}.nav>li>a[aria-current=page]{background:#fff}.nav>li:hover>a i{transform:rotate(180deg)}.nav__sub{border:1px solid var(--line);border-radius:var(--radius-lg);min-width:260px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;z-index:5;background:#fff;padding:8px;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(8px)}.nav__sub:before{content:"";height:10px;position:absolute;top:-10px;left:0;right:0}.nav>li:hover .nav__sub,.nav>li:focus-within .nav__sub{opacity:1;visibility:visible;transform:translateY(0)}.nav__sub a{border-radius:var(--radius);color:var(--ink);align-items:center;gap:12px;padding:11px 12px;font-size:.95rem;font-weight:500;display:flex}.nav__sub a i{text-align:center;width:22px;color:var(--blue);font-size:.9rem}.nav__sub a:hover{background:var(--frost);color:var(--navy)}.nav__sub-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:8px 12px 4px;font-size:.72rem;font-weight:600}.header__cta{background:var(--navy);color:#fff;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;border-radius:0 var(--radius) var(--radius) 0;white-space:nowrap;align-items:center;gap:16px;padding:0 36px;font-size:.92rem;font-weight:700;transition:background .2s;display:inline-flex}.header__cta i{transition:transform .25s var(--ease);font-size:1.15rem}.header__cta:hover{background:var(--blue);color:#fff}.header__cta:hover i{transform:translate(5px)}.nav-toggle{border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer;width:46px;height:46px;color:var(--navy);background:#fff;place-items:center;font-size:1.15rem;display:none}.mobile-nav{z-index:1500;visibility:hidden;pointer-events:none;position:fixed;inset:0}.mobile-nav__backdrop{opacity:0;background:#0b1c2e8c;transition:opacity .3s;position:absolute;inset:0}.mobile-nav__panel{width:min(92vw,400px);height:100%;transition:transform .35s var(--ease);background:#fff;flex-direction:column;display:flex;position:absolute;top:0;right:0;overflow-y:auto;transform:translate(100%)}.mobile-nav.is-open{visibility:visible;pointer-events:auto}.mobile-nav.is-open .mobile-nav__backdrop{opacity:1}.mobile-nav.is-open .mobile-nav__panel{transform:translate(0)}.mobile-nav__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.mobile-nav__head img{width:130px}.mobile-nav__close{border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer;width:42px;height:42px;color:var(--navy);background:#fff;font-size:1.1rem}.mobile-nav__list{padding:10px 12px}.mobile-nav__list>li{border-bottom:1px solid var(--line)}.mobile-nav__list>li>a,.mobile-nav__list>li>button{width:100%;font-family:var(--font-display);color:var(--navy);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:15px 10px;font-size:1.05rem;font-weight:600;display:flex}.mobile-nav__list>li>button i{color:var(--blue-500);font-size:.8rem;transition:transform .25s}.mobile-nav__list>li>button[aria-expanded=true] i{transform:rotate(180deg)}.mobile-nav__sub{padding:0 0 10px 12px;display:none}.mobile-nav__sub.is-open{display:block}.mobile-nav__sub a{color:var(--ink-2);border-radius:var(--radius);align-items:center;gap:10px;padding:10px;display:flex}.mobile-nav__sub a i{color:var(--blue);text-align:center;width:20px}.mobile-nav__sub a:hover{background:var(--frost);color:var(--navy)}.mobile-nav__foot{background:var(--frost);gap:10px;margin-top:auto;padding:20px;display:grid}.mobile-nav__foot a.contact{color:var(--navy);align-items:center;gap:10px;font-weight:600;display:flex}.mobile-nav__foot a.contact i{color:var(--blue)}.hero{background:linear-gradient(180deg, #fff 0%, var(--frost) 100%);padding-top:var(--header-offset);position:relative;overflow:clip}.hero:before,.section--glass:before{content:"";background:linear-gradient(160deg, var(--glass-100), var(--glass));z-index:0;opacity:.9;pointer-events:none;width:52%;height:120%;position:absolute;top:-10%;right:-8%;transform:skew(-9deg)}.hero__inner{z-index:1;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(32px,5vw,72px);padding-block:clamp(24px,3vw,48px) clamp(96px,9vw,140px);display:grid;position:relative}.hero__badge{border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--navy);background:#fff;border-radius:999px;align-items:center;gap:10px;margin-bottom:22px;padding:8px 14px 8px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.hero__badge i{background:var(--navy);width:24px;height:24px;color:var(--glass);border-radius:50%;place-items:center;font-size:.7rem;display:grid}.hero h1{margin-bottom:18px}.hero h1 span{color:var(--blue);letter-spacing:0;margin-top:.45em;font-size:.5em;font-weight:600;line-height:1.3;display:block}.hero__lead{color:var(--ink-2);max-width:560px;margin-bottom:30px;font-size:1.15rem}.hero__cta{flex-wrap:wrap;gap:14px;margin-bottom:34px;display:flex}.hero__proof{flex-wrap:wrap;gap:10px 28px;display:flex}.hero__proof li{color:var(--navy);align-items:center;gap:9px;font-size:.92rem;font-weight:600;display:flex}.hero__proof li i{color:var(--blue-500)}.window-frame{aspect-ratio:4/5;border-radius:var(--radius-lg);width:min(100%,520px);box-shadow:var(--shadow-lg), 0 0 0 10px #fff, 0 0 0 11px var(--line);background:#fff;margin-inline:auto;position:relative;overflow:hidden}.window-frame img{object-fit:cover;width:100%;height:100%}.hero__media{position:relative}.hero__reviews{z-index:3;max-width:320px;position:absolute;bottom:36px;left:-28px}.quick-contact{z-index:2;margin-top:-64px;position:relative}.quick-contact__grid{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line);background:#fff;grid-template-columns:1fr 1fr 1.4fr 1fr;display:grid;overflow:hidden}.quick-contact__item{border-right:1px solid var(--line);color:var(--ink);align-items:center;gap:14px;padding:22px 24px;transition:background .2s;display:flex}.quick-contact__item:last-child{border-right:0}.quick-contact__item:hover{background:var(--frost)}.quick-contact__item i{background:var(--glass-100);width:44px;height:44px;color:var(--blue);border-radius:10px;flex:none;place-items:center;font-size:1.05rem;display:grid}.quick-contact__item small{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.74rem;font-weight:600;display:block}.quick-contact__item strong{font-family:var(--font-display);color:var(--navy);overflow-wrap:anywhere;font-size:.95rem}.quick-contact__item--cta{background:var(--navy);color:#fff;font-family:var(--font-display);justify-content:center;font-weight:600}.quick-contact__item--cta:hover{background:var(--navy-700);color:var(--glass)}.quick-contact__item--cta:hover i{color:#fff}.quick-contact__item--cta i{color:var(--glass);background:#ffffff1f}.services__grid{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.service-card{border:1px solid var(--line);border-radius:var(--radius-lg);transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .3s;background:#fff;flex-direction:column;display:flex;overflow:hidden}.service-card:hover{box-shadow:var(--shadow-lg);border-color:#0000;transform:translateY(-6px)}.service-card__media{aspect-ratio:4/3;position:relative;overflow:hidden}.service-card__media img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}.service-card:hover .service-card__media img{transform:scale(1.05)}.service-card__body{flex-direction:column;flex:1;padding:26px 26px 28px;display:flex}.service-card__body h3{margin-bottom:10px}.service-card__body h3 a{color:var(--navy)}.service-card__body p{color:var(--ink-2);flex:1;font-size:.98rem}.service-card__body .text-link{margin-top:6px}.services__grid--materials{margin-top:28px}.lead-copy{grid-template-columns:1fr 1fr;gap:0 clamp(28px,4vw,56px);max-width:1040px;margin-inline:auto;display:grid}.lead-copy p{color:var(--ink-2)}.about__grid{grid-template-columns:1fr 1.05fr;align-items:center;gap:clamp(36px,6vw,88px);display:grid}.about__media{isolation:isolate;position:relative}.about__media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.about__media:before{content:"";background:repeating-linear-gradient(135deg, var(--glass) 0 6px, transparent 6px 16px);border-radius:var(--radius-lg);z-index:-1;opacity:.8;width:55%;height:55%;position:absolute;bottom:-22px;left:-22px}.about__badges{gap:12px;display:flex;position:absolute;bottom:-22px;right:-14px}.about__badges span{box-shadow:var(--shadow-lg);background:#fff;border-radius:10px;place-items:center;padding:10px 14px;display:grid}.about__badges img{width:auto;height:44px}.about__text p{color:var(--ink-2)}.checklist{grid-template-columns:1fr 1fr;gap:12px 24px;margin:26px 0 32px;display:grid}.checklist li{color:var(--navy);align-items:flex-start;gap:10px;font-size:.97rem;font-weight:600;display:flex}.checklist li i{color:var(--blue-500);margin-top:5px;font-size:.85rem}.about__text .checklist{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.about__text .checklist li{white-space:nowrap}@media (width<=380px){.about__text .checklist li{white-space:normal}}.about__cta{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.designer{position:relative;overflow:hidden}.designer:before{content:"";background:linear-gradient(160deg,#c8e0f81a,#c8e0f800);width:45%;height:150%;position:absolute;top:-20%;left:-10%;transform:skew(-9deg)}.designer__grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(36px,6vw,80px);display:grid;position:relative}.designer>.container{position:relative}.steps{counter-reset:step;gap:18px;margin:28px 0 34px;display:grid}.steps li{grid-template-columns:52px 1fr;align-items:start;gap:16px;display:grid}.steps li:before{counter-increment:step;content:counter(step, decimal-leading-zero);width:52px;height:52px;font-family:var(--font-display);color:var(--glass);background:#ffffff14;border:1px solid #c8e0f840;border-radius:12px;place-items:center;font-weight:700;display:grid}.steps h3{margin-bottom:4px;font-size:1.08rem}.steps p{color:#b9cce3;margin:0;font-size:.97rem}ol.steps{margin-bottom:44px}.designer__cta{flex-wrap:wrap;gap:14px;display:flex}.designer__media{position:relative}.designer__media .window-frame{box-shadow:var(--shadow-lg), 0 0 0 10px #ffffff0f}.designer__tag{background:var(--glass);color:var(--navy);font-family:var(--font-display);box-shadow:var(--shadow-lg);z-index:4;border-radius:999px;padding:10px 16px;font-size:.85rem;font-weight:700;position:absolute;top:26px;right:-10px}.gallery__grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.gallery__item{aspect-ratio:1;border-radius:var(--radius-lg);margin:0;display:block;position:relative;overflow:hidden}.gallery__item img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}.gallery__item:hover img{transform:scale(1.06)}.gallery__item span,.gallery__item figcaption{color:#fff;opacity:0;transition:opacity .3s, transform .3s var(--ease);background:linear-gradient(#10284000,#102840d9);padding:40px 16px 14px;font-size:.88rem;font-weight:600;position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.gallery__item:hover span,.gallery__item:hover figcaption{opacity:1;transform:translateY(0)}@media (hover:none){.gallery__item figcaption{opacity:1;transform:none}}.gallery__foot{text-align:center;margin-top:36px}.why__grid{grid-template-columns:repeat(4,1fr);gap:22px;display:grid}.why__grid--three{grid-template-columns:repeat(3,1fr)}.why-card{border:1px solid var(--line);border-top:4px solid var(--glass);border-radius:var(--radius-lg);transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-top-color .3s;background:#fff;padding:30px 26px}.why-card:hover{box-shadow:var(--shadow);border-top-color:var(--blue);transform:translateY(-4px)}.why-card i{color:var(--blue);margin-bottom:18px;font-size:1.5rem;display:block}.why-card h3{margin-bottom:8px;font-size:1.1rem}.why-card p{color:var(--ink-2);margin:0;font-size:.95rem}.reviews__grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(32px,5vw,72px);display:grid}.reviews__grid>div>p{color:var(--ink-2)}.review-links{gap:12px;display:grid}.review-links a{border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--navy);transition:transform .25s var(--ease), box-shadow .25s;background:#fff;align-items:center;gap:16px;padding:18px 20px;display:flex}.review-links a:hover{box-shadow:var(--shadow);transform:translate(4px)}.review-links .brand{border-radius:12px;flex:none;place-items:center;width:50px;height:50px;display:grid;overflow:hidden}.review-links .brand img{object-fit:contain;width:28px;height:28px}.review-links .brand--google,.review-links .brand--facebook,.review-links .brand--checkatrade{border:1px solid var(--line-2);background:#fff}.review-links .brand--facebook img{width:32px;height:32px}.review-links .brand--checkatrade img{width:30px;height:29px}.review-links .brand--ldm{background:var(--glass-100);color:var(--blue);font-size:1.25rem}.review-links strong{font-family:var(--font-display);display:block}.review-links small{color:var(--ink-3);font-size:.85rem}.review-links .fa-arrow-right{color:var(--blue-500);margin-left:auto}.accreditations{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}.accreditations span{border:1px solid var(--line);background:#fff;border-radius:10px;place-items:center;padding:12px 16px;display:grid}.accreditations img{width:auto;height:46px}.accreditations--center{justify-content:center;margin-top:40px}.areas__grid{grid-template-columns:minmax(0,600px) 1fr;align-items:start;gap:clamp(32px,5vw,72px);display:grid}.areas__content p{color:var(--ink-2)}.counties{gap:12px;margin-top:24px;display:grid}.counties li{font-family:var(--font-display);color:var(--navy);align-items:center;gap:12px;font-weight:600;display:flex}.counties li i{background:var(--glass-100);width:36px;height:36px;color:var(--blue);border-radius:10px;place-items:center;font-size:.9rem;display:grid}.towns{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.towns a,.towns li{border:1px solid var(--line);border-radius:var(--radius);color:var(--navy);transition:border-color .2s, box-shadow .2s, transform .2s var(--ease);background:#fff;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-weight:600;display:flex}.towns a i,.towns li i{color:var(--blue-500);font-size:.8rem}.towns a:hover{border-color:var(--blue-500);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.areas{position:relative;overflow:hidden}.areas__map{opacity:.85;pointer-events:none;z-index:0;width:min(58%,760px);height:auto;position:absolute;top:50%;right:-2%;transform:translateY(-50%)}.areas__grid{z-index:1;position:relative}.areas__content{position:relative}.areas__content:before{content:"";background:radial-gradient(ellipse at 40% 50%, var(--frost) 55%, #f4f8fd00 100%);z-index:-1;position:absolute;inset:-40px -60px -40px -40px}.areas__towns-label{font-family:var(--font-display);color:var(--navy);margin:30px 0 12px;font-size:.9rem;font-weight:600}.towns--chips{flex-wrap:wrap;gap:10px;display:flex}.towns--chips a,.towns--chips li{border-radius:999px;padding:10px 14px;font-size:.92rem}@media (width<=991px){.areas__map{opacity:.9;width:100%;max-width:640px;margin:8px auto 0;display:block;position:relative;top:auto;right:auto;transform:none}.areas__grid{grid-template-columns:1fr}.areas__content:before{display:none}}.faq{width:100%}.faq details{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;margin-bottom:12px;overflow:hidden}.faq details[open]{border-color:var(--line-2);box-shadow:var(--shadow-sm)}.faq summary{cursor:pointer;grid-template-columns:32px 1fr 32px;align-items:center;gap:16px;padding:20px 22px;list-style:none;display:grid}.faq summary::-webkit-details-marker{display:none}.faq summary h3{text-align:center;grid-column:2;margin:0;font-size:1.05rem}.faq summary i{background:var(--glass-100);width:32px;height:32px;color:var(--blue);transition:transform .3s var(--ease);border-radius:50%;grid-column:3;place-items:center;font-size:.75rem;display:grid}.faq details[open] summary i{background:var(--navy);color:#fff;transform:rotate(45deg)}.faq__answer{color:var(--ink-2);text-align:center;max-width:820px;margin-inline:auto;padding:0 22px 22px}.faq__answer p:last-child{margin:0}.contact__grid{grid-template-columns:.9fr 1.1fr;align-items:start;gap:clamp(32px,5vw,72px);display:grid}.contact__grid>div>p{color:var(--ink-2)}.contact__details{gap:14px;margin:26px 0;display:grid}.contact__details>a,.contact__details>div{border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--ink);background:#fff;align-items:center;gap:14px;padding:16px 18px;transition:box-shadow .2s;display:flex}.contact__details>a:hover{box-shadow:var(--shadow)}.contact__details i{background:var(--glass-100);width:42px;height:42px;color:var(--blue);border-radius:10px;flex:none;place-items:center;display:grid}.contact__details small{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:.74rem;font-weight:600;display:block}.contact__details strong{font-family:var(--font-display);color:var(--navy);word-break:break-word}.map{border-radius:var(--radius-lg);border:1px solid var(--line);aspect-ratio:16/9;background:var(--frost);overflow:hidden}.map iframe{border:0;width:100%;height:100%;display:block}.form-card{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;padding:clamp(24px,3.5vw,40px)}.form-card h3{font-size:1.35rem}.form-card>p{color:var(--ink-2);margin-bottom:22px}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid .full{grid-column:1/-1}.field label{color:var(--navy);margin-bottom:6px;font-size:.9rem;font-weight:600;display:block}.field input,.field textarea,.field select{border:1px solid var(--line-2);border-radius:var(--radius);width:100%;font:inherit;color:var(--ink);background:#fff;padding:13px 14px;transition:border-color .2s,box-shadow .2s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue-500);outline:none;box-shadow:0 0 0 4px #3b74bf26}.field textarea{resize:vertical;min-height:130px}.form-note{color:var(--ink-3);align-items:flex-start;gap:8px;margin:14px 0 0;font-size:.84rem;display:flex}.form-note i{color:var(--blue-500);margin-top:4px}.form-status{margin:14px 0 0;font-weight:600}.form-status.is-error{color:var(--error)}.hp{opacity:0;height:0;position:absolute;left:-9999px;overflow:hidden}.cta-banner{color:#fff;background:linear-gradient(120deg,#102840f0 0%,#285088d6 100%),url(/images/window-installation-cambridge-detached-house.webp) 50%/cover no-repeat;position:relative}@media (hover:hover) and (width>=900px){.cta-banner{background-size:auto,cover;background-attachment:fixed,fixed}}.cta-banner__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;padding-block:clamp(36px,5vw,56px);display:flex}.cta-banner h2{color:#fff;margin-bottom:6px;font-size:clamp(1.5rem,2.6vw,2rem)}.cta-banner p{color:#d3e2f4;margin:0}.cta-banner__actions{flex-wrap:wrap;gap:12px;display:flex}.footer{background:var(--navy-900);color:#b7c7da;font-size:.95rem;position:relative;overflow:hidden}.footer__mark{opacity:.07;pointer-events:none;width:clamp(110px,11vw,170px);height:auto;position:absolute;bottom:-14px;right:24px}.footer>.container{position:relative}.has-mark{position:relative;overflow:hidden}.section-mark{opacity:.06;pointer-events:none;z-index:0;width:clamp(120px,14vw,200px);height:auto;position:absolute}.section-mark--hero{right:24px;top:calc(50% + var(--header-offset) / 2);opacity:.12;width:clamp(100px,11vw,150px);transform:translateY(-50%)}.has-mark>.container{z-index:1;position:relative}.footer a{color:#b7c7da}.footer a:hover{color:#fff}.footer__main{grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-block:clamp(48px,6vw,72px) 40px;display:grid}.footer__brand img{width:180px;margin-bottom:18px}.footer__brand p{max-width:380px}.footer h2{color:#fff;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px;font-size:.95rem}.footer__list li{margin-bottom:9px}.footer__list a{align-items:center;gap:8px;display:inline-flex}.footer__list a i{color:var(--blue-500);font-size:.7rem}.footer__contact li{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.footer__contact i{color:var(--glass);text-align:center;width:18px;margin-top:5px}.footer__contact a{overflow-wrap:anywhere}.footer__social{gap:8px;margin-top:18px;display:flex}.footer__social a{color:#fff;background:#ffffff12;border-radius:10px;place-items:center;width:38px;height:38px;transition:background .2s;display:grid}.footer__social a:hover{background:var(--blue)}.footer__areas{border-top:1px solid #ffffff14;padding-block:28px}.footer__areas h2{margin-bottom:12px}.footer__areas ul{color:#93a7c0;flex-wrap:wrap;gap:6px 18px;font-size:.88rem;display:flex}.footer__bottom{color:#8ea2bb;border-top:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding-block:20px;font-size:.85rem;display:flex}.footer__bottom p{margin:0}.footer__bottom ul{gap:18px;display:flex}.to-top{z-index:900;cursor:pointer;background:var(--navy);color:#fff;width:46px;height:46px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .3s, transform .3s var(--ease), visibility .3s;border:0;border-radius:12px;position:fixed;bottom:20px;right:20px;transform:translateY(10px)}.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.call-bar{z-index:900;border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;gap:10px;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #1028401f}.call-bar .btn{flex:1;padding-inline:12px}.js .reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(22px)}.js .reveal.is-visible{opacity:1;transform:none}.reveal[data-delay="1"]{transition-delay:.12s}.reveal[data-delay="2"]{transition-delay:.24s}.reveal[data-delay="3"]{transition-delay:.36s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transition:none;transform:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.page-title{background:var(--navy);color:#fff;padding-block:calc(var(--header-offset) + 24px) clamp(48px, 6vw, 80px);position:relative;overflow:hidden}.page-title:before{content:"";background:linear-gradient(160deg,#c8e0f824,#c8e0f800);width:40%;height:150%;position:absolute;top:-20%;right:-8%;transform:skew(-9deg)}.page-title h1{color:#fff;margin-bottom:10px;font-size:clamp(2.1rem,4vw,3.2rem)}.page-title p{color:#c9d9ec;max-width:680px;margin:0;font-size:1.1rem}.page-title .page-title__text p+p{margin-top:1em}.page-title p a{color:var(--glass);font-weight:600}.page-title p a:hover{color:#fff}.breadcrumb{color:#9fb4cc;flex-wrap:wrap;gap:8px;margin-bottom:18px;font-size:.85rem;display:flex}.breadcrumb a{color:var(--glass)}.breadcrumb li+li:before{content:"/";color:#6f89a8;margin-right:8px}.page-title__grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(32px,5vw,72px);display:grid;position:relative}.page-title__media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:6px solid #ffffff14}.page-title__cta{flex-wrap:wrap;gap:14px;margin-top:28px;display:flex}.eyebrow--light{color:var(--glass)}.split{grid-template-columns:1fr 1fr;align-items:stretch;gap:clamp(32px,5vw,72px);display:grid}.split--reverse .split__media{order:-1}.split__media{display:flex}.split__media img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);object-fit:cover;width:100%;height:100%}.split__text p{color:var(--ink-2)}.split__text .checklist{margin:22px 0 28px}.process-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid;position:relative}.process-card{border-radius:var(--radius-lg);transition:transform .35s var(--ease), background .3s, border-color .3s, box-shadow .35s;cursor:default;background:#ffffff0f;border:1px solid #c8e0f838;padding:30px 28px;position:relative;overflow:hidden}.process-card:after{content:"";background:var(--glass);transform-origin:0;height:4px;transition:transform .45s var(--ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.process-card:hover,.process-card:focus-visible{background:#ffffff1c;border-color:#c8e0f899;outline:none;transform:translateY(-8px);box-shadow:0 22px 44px #00000047}.process-card:hover:after,.process-card:focus-visible:after{transform:scaleX(1)}.process-card__icon{color:#c8e0f859;transition:color .3s, transform .35s var(--ease);font-size:1.6rem;position:absolute;top:24px;right:24px}.process-card:hover .process-card__icon,.process-card:focus-visible .process-card__icon{color:var(--glass);transform:scale(1.15)rotate(-6deg)}.process-card:hover .process-card__num,.process-card:focus-visible .process-card__num{color:var(--sky);transform:translate(4px)}.process-card__num{color:#fff;font-family:var(--font-display);letter-spacing:-.02em;transition:color .3s, transform .3s var(--ease);margin-bottom:18px;font-size:2.6rem;font-weight:700;line-height:1;display:block}.process-card h3{margin-bottom:8px;font-size:1.12rem}.process-card p{color:#b9cce3;margin:0;font-size:.97rem}.process-card a{color:var(--glass);font-weight:600}.carousel{width:calc(100vw - 40px);margin-left:calc(50% - 50vw + 20px);position:relative}.carousel__viewport{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;overflow:auto hidden}.carousel__viewport::-webkit-scrollbar{display:none}.carousel__viewport.is-dragging{cursor:grabbing;scroll-snap-type:none}.carousel__track{gap:16px;width:max-content;padding:4px 0 8px;display:flex}.carousel__slide{scroll-snap-align:start;flex:0 0 clamp(260px,30vw,420px)}.carousel__slide .gallery__item{aspect-ratio:4/3}.carousel__nav{justify-content:center;gap:12px;margin-top:22px;display:flex}.carousel__btn{border:1px solid var(--line-2);width:48px;height:48px;color:var(--navy);cursor:pointer;transition:background .2s, color .2s, border-color .2s, transform .2s var(--ease);background:#fff;border-radius:50%;place-items:center;font-size:1rem;display:grid}.carousel__btn:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-2px)}.carousel__btn:disabled{opacity:.35;cursor:default;transform:none}@media (width<=991px){.page-title__grid,.split{grid-template-columns:1fr}.split__media img{aspect-ratio:4/3;height:auto}.split--reverse .split__media{order:0}.process-grid{grid-template-columns:1fr}}.quick-quote{background:var(--frost);border-top:1px solid var(--line)}.quick-quote__grid{grid-template-columns:minmax(0,420px) 1fr;align-items:center;gap:clamp(28px,4vw,64px);display:grid}.quick-quote h2{font-size:clamp(1.5rem,2.4vw,1.9rem)}.quick-quote p{color:var(--ink-2)}.quick-quote__cta{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.quick-quote__form{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;grid-template-columns:repeat(3,1fr);gap:12px 14px;padding:22px;display:grid}.quick-quote__form .field label{margin-bottom:4px;font-size:.82rem}.quick-quote__form .field input,.quick-quote__form .field textarea{padding:11px 12px}.quick-quote__msg{grid-column:1/-1}.quick-quote__msg textarea{min-height:64px}.quick-quote__submit{grid-column:1/-1;justify-self:start}.quick-quote__note,.quick-quote .form-status{grid-column:1/-1;margin:0}.quick-quote--photo{color:#fff;background:linear-gradient(120deg,#102840f0 0%,#285088d6 100%),url(/images/windows-cambridge-home-with-new-windows.webp) 50%/cover no-repeat;border-top:0}.quick-quote--photo h2{color:#fff}.quick-quote--photo p{color:#d3e2f4}.quick-quote--photo .quick-quote__form p{color:var(--ink-3)}.quick-quote--photo .quick-quote__form .form-status.is-error{color:var(--error)}.quick-quote--photo .eyebrow{color:var(--glass)}.quick-quote--photo .quick-quote__form{border:0;box-shadow:0 24px 50px #0000004d}.contact-extra{grid-template-columns:1.3fr .7fr;align-items:start;gap:clamp(28px,4vw,64px);display:grid}.contact-extra p{color:var(--ink-2)}.contact-social{background:var(--frost);border-radius:var(--radius-lg);padding:26px}.contact-social h3{font-size:1.1rem}.contact-social ul{gap:10px;margin-top:14px;display:grid}.contact-social a{border:1px solid var(--line);border-radius:var(--radius);color:var(--navy);background:#fff;align-items:center;gap:12px;padding:10px 14px;font-weight:600;display:flex}.contact-social a:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm)}.contact-social a i{text-align:center;color:#c13584;width:24px;font-size:1.3rem}.contact-social img{flex:none}.btn img{width:18px;height:18px}.material-nav{border-bottom:1px solid var(--line);background:#fff}.material-nav__inner{scrollbar-width:none;align-items:center;gap:8px;padding-block:14px;display:flex;overflow-x:auto}.material-nav__inner::-webkit-scrollbar{display:none}.material-nav__label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;margin-right:10px;font-size:.74rem;font-weight:600}.material-nav__link{border:1px solid var(--line-2);color:var(--navy);font:600 .92rem/1 var(--font-display);white-space:nowrap;border-radius:999px;align-items:center;gap:9px;padding:10px 16px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.material-nav__link i{color:var(--blue-500)}.material-nav__link:hover{border-color:var(--navy);color:var(--navy)}.glance{background:var(--navy);color:#fff}.glance__grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.glance__item{border-left:1px solid #c8e0f829;grid-template-columns:auto 1fr;align-items:center;column-gap:14px;padding:28px 24px;display:grid}.glance__item:first-child{border-left:0;padding-left:0}.glance__item i{width:46px;height:46px;color:var(--glass);background:#c8e0f81f;border-radius:12px;grid-row:span 2;place-items:center;font-size:1.1rem;display:grid}.glance__item dt{letter-spacing:.12em;text-transform:uppercase;color:#9fb4cc;font-size:.72rem;font-weight:600}.glance__item dd{font-family:var(--font-display);color:#fff;white-space:nowrap;margin:2px 0 0;font-size:1.02rem;font-weight:600}.benefits{grid-template-columns:.85fr 1.15fr;align-items:start;gap:clamp(32px,5vw,80px);display:grid}.benefits__head{position:sticky;top:110px}.benefits__head p{color:var(--ink-2)}.benefits__head img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-top:28px}.benefits__list{display:grid}.benefit{border-top:1px solid var(--line-2);grid-template-columns:56px 1fr;gap:20px;padding:26px 0;display:grid}.benefit:first-child{border-top:0;padding-top:0}.benefit__icon{border:1px solid var(--line);width:56px;height:56px;color:var(--blue);background:#fff;border-radius:14px;place-items:center;font-size:1.25rem;transition:background .25s,color .25s;display:grid}.benefit:hover .benefit__icon{background:var(--navy);color:var(--glass)}.benefit h3{margin-bottom:6px;font-size:1.15rem}.benefit p{color:var(--ink-2);margin:0 0 .8em}.benefit p:last-child{margin:0}.link-cards{grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px;margin-inline:auto;display:grid}.link-cards a{border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--navy);font-family:var(--font-display);transition:transform .25s var(--ease), box-shadow .25s;background:#fff;align-items:center;gap:14px;padding:18px 20px;font-weight:600;display:flex}.link-cards a i:first-child{background:var(--glass-100);width:42px;height:42px;color:var(--blue);border-radius:10px;flex:none;place-items:center;display:grid}.link-cards a .fa-arrow-right{color:var(--blue-500);margin-left:auto}.link-cards a:hover{box-shadow:var(--shadow);transform:translateY(-3px)}@media (width<=1180px){.nav>li>a{padding:10px;font-size:.9rem}.header__cta{padding:0 24px}.glance__item{column-gap:10px;padding:22px 14px}.glance__item i{width:38px;height:38px;font-size:.95rem}.glance__item dd{font-size:.92rem}}@media (width<=1080px){.topbar__area,.topbar__social{display:none}}@media (width<=991px){:root{--header-offset:152px}.header-wrap{padding-block:12px 0}.header-float{grid-template-rows:none;grid-template-columns:1fr}.header-brand{border-radius:var(--radius);grid-area:1/1;justify-content:space-between;padding:10px 14px}.header-rows .topbar{grid-area:2/1}.logo img{width:140px}.navbar,.topbar__social{display:none}.nav-toggle{display:grid}.topbar{border-radius:0}.topbar__inner{justify-content:center;min-height:44px;padding:6px 14px}.topbar__list{flex-wrap:wrap;justify-content:center;gap:4px 18px;font-size:.82rem}.hero__inner{grid-template-columns:1fr;padding-bottom:110px}.hero:before,.section--glass:before{opacity:.55;width:70%;right:-30%}.hero__media{order:0;margin-top:8px}.window-frame{aspect-ratio:4/3.4;width:min(100%,440px)}.hero__reviews{max-width:calc(100% - 16px);bottom:16px;left:8px}.quick-contact__grid{grid-template-columns:repeat(2,1fr)}.quick-contact__item:nth-child(2){border-right:0}.quick-contact__item:nth-child(-n+2){border-bottom:1px solid var(--line)}.services__grid{grid-template-columns:1fr 1fr}.about__grid,.designer__grid,.reviews__grid,.areas__grid,.contact__grid{grid-template-columns:1fr}.about__badges{bottom:-18px;right:8px}.gallery__grid{grid-template-columns:repeat(3,1fr)}.why__grid,.why__grid--three,.footer__main{grid-template-columns:1fr 1fr}.lead-copy,.contact-extra,.quick-quote__grid{grid-template-columns:1fr}.glance__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.glance__item:nth-child(3){border-left:0;padding-left:0}.glance__item:nth-child(n+3){border-top:1px solid #c8e0f829}.benefits{grid-template-columns:1fr}.benefits__head{position:static}.link-cards{grid-template-columns:1fr}}@media (width<=640px){body{padding-bottom:72px;font-size:1rem}.topbar__list li:nth-child(3){display:none}.quick-contact{margin-top:-48px}.quick-contact__grid{grid-template-columns:1fr}.quick-contact__item{border-right:0;border-bottom:1px solid var(--line)}.why__grid,.why__grid--three,.towns,.form-grid,.quick-quote__form{grid-template-columns:1fr}.services__grid{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;grid-template-columns:none;grid-auto-columns:min(82%,320px);grid-auto-flow:column;gap:14px;margin-inline:-16px;padding:6px 16px 18px;scroll-padding-inline:16px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 64px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 64px),#0000)}.services__grid::-webkit-scrollbar{display:none}.services__grid .service-card{scroll-snap-align:start}.services__grid .service-card:hover{transform:none}.services__grid--materials{margin-top:8px}.gallery__grid{grid-template-columns:repeat(2,1fr);gap:10px}.checklist{grid-template-columns:1fr}.footer__main{grid-template-columns:1fr;gap:30px}.call-bar{display:flex}.to-top{bottom:84px}.designer__tag{top:12px;right:4px}.steps li{grid-template-columns:44px 1fr}.steps li:before{width:44px;height:44px}.glance__grid{grid-template-columns:1fr}.glance__item dd{white-space:normal}.glance__item,.glance__item:nth-child(3){border-left:0;padding:18px 0}.glance__item:nth-child(n+2){border-top:1px solid #c8e0f829}}.reviews__embed{margin-top:28px}.reviews-float iframe{z-index:900!important;bottom:16px!important;left:16px!important}@media (width<=640px){.reviews-float iframe{min-width:0!important;max-width:calc(100vw - 20px)!important;bottom:82px!important;left:10px!important}}
