:root{--color-primary:#ee6102;--color-primary-hover:#d95400;--color-primary-soft:#ffd8bf;--color-primary-light:#fff3eb;--color-primary-rgb:238,97,2;--color-primary-hover-rgb:217,84,0;--color-night:#283049;--color-night-deep:#1a2030;--color-steel:#4f657e;--color-slate:#455664;--color-cream:#f7f8f6;--color-cream-deep:#eef0ec;--color-text:#283049;--color-text-secondary:#455664;--color-muted:#64748b;--color-background:#f7f8f6;--color-surface:#ffffff;--color-surface-muted:#f3f4f2;--color-border:rgba(69,86,100,0.18);--color-border-strong:rgba(69,86,100,0.28);--color-white:#ffffff;--color-danger:#b42318;--color-danger-soft:#fff1f0;--color-success:#12643f;--color-success-soft:#eaf8f0;--color-dark:var(--color-night);--color-surface-gray:var(--color-surface-muted);--color-text-rgb:40,48,73;--color-text-secondary-rgb:69,86,100;--color-muted-rgb:100,116,139;--ink:var(--color-text);--paper:var(--color-white);--accent:var(--color-primary);--primary:var(--color-primary);--blue:var(--color-primary);--deep:var(--color-night);--font-heading:"Manrope","Inter","Avenir Next","Helvetica Neue",Arial,sans-serif;--font-body:"Inter","Avenir Next","Helvetica Neue",Arial,sans-serif;--text-xs:clamp(0.72rem,0.9vw,0.75rem);--text-sm:clamp(0.8125rem,1vw,0.875rem);--text-base:clamp(0.9375rem,1.05vw,1rem);--text-lg:clamp(1.0625rem,1.2vw,1.125rem);--text-xl:clamp(1.25rem,1.6vw,1.375rem);--text-2xl:clamp(1.5rem,2.2vw,1.75rem);--text-3xl:clamp(1.875rem,3vw,2.25rem);--text-4xl:clamp(2.25rem,4.5vw,3rem);--space-xs:0.375rem;--space-sm:0.625rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.25rem;--space-2xl:3.5rem;--space-3xl:5rem;--section-y:clamp(3.5rem,7vw,6.25rem);--section-x:clamp(1.125rem,4vw,3.5rem);--container:min(1180px,100%);--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-pill:999px;--shadow-xs:0 2px 8px rgba(40,48,73,0.05);--shadow-sm:0 8px 24px rgba(40,48,73,0.07);--shadow-md:0 16px 40px rgba(40,48,73,0.1);--shadow-lg:0 24px 56px rgba(40,48,73,0.13);--shadow-xl:0 32px 72px rgba(40,48,73,0.16);--shadow-glow:0 12px 32px rgba(238,97,2,0.22);--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--transition-fast:160ms var(--ease-out);--transition-normal:260ms var(--ease-out);--transition-slow:420ms var(--ease-out);--header-height:84px;--header-height-scrolled:72px;--z-header:80;--z-overlay:120;--z-modal:140}.roofingSite{--roof-font-heading:var(--font-heading);--roof-font-body:var(--font-body);--roof-night:var(--color-night);--roof-orange:var(--color-primary);--roof-steel:var(--color-steel);--roof-slate:var(--color-slate);--roof-cream:var(--color-cream);--roof-line:var(--color-border);--roof-shadow:var(--shadow-md);--roof-radius:var(--radius-sm);--home-night:var(--color-night);--home-orange:var(--color-primary);--home-steel:var(--color-steel);--home-slate:var(--color-slate);--home-cream:var(--color-cream);--home-white:var(--color-white);--home-line:var(--color-border);--home-shadow-sm:var(--shadow-sm);--home-shadow-md:var(--shadow-md);--home-shadow-lg:var(--shadow-lg);--home-radius:var(--radius-md);--home-radius-lg:var(--radius-lg);--home-container:var(--container);--home-ease:var(--ease-out);color:var(--color-text);background:var(--color-background);font-family:var(--font-body);font-size:var(--text-base);line-height:1.68;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-reveal-stagger]>*,[data-reveal]{opacity:1;transform:none;transition:opacity .72s var(--ease-out),transform .72s var(--ease-out),-webkit-clip-path .82s var(--ease-out);transition:opacity .72s var(--ease-out),transform .72s var(--ease-out),clip-path .82s var(--ease-out);transition:opacity .72s var(--ease-out),transform .72s var(--ease-out),clip-path .82s var(--ease-out),-webkit-clip-path .82s var(--ease-out);transition-delay:var(--reveal-delay,0s)}html.reveal-enhanced [data-reveal-stagger]:not(.is-visible)>*,html.reveal-enhanced [data-reveal]:not(.is-visible):not([data-reveal-static]){opacity:0;transform:translateY(24px);will-change:opacity,transform}[data-reveal].is-visible,html.reveal-enhanced [data-reveal-stagger].is-visible>*{opacity:1;transform:translateY(0)}html.reveal-enhanced [data-reveal=left]:not(.is-visible):not([data-reveal-static]){transform:translateX(-32px)}html.reveal-enhanced [data-reveal=left].is-visible{transform:translateX(0)}html.reveal-enhanced [data-reveal=right]:not(.is-visible):not([data-reveal-static]){transform:translateX(32px)}html.reveal-enhanced [data-reveal=right].is-visible{transform:translateX(0)}html.reveal-enhanced [data-reveal=scale]:not(.is-visible):not([data-reveal-static]){transform:scale(.96)}html.reveal-enhanced [data-reveal=scale].is-visible{transform:scale(1)}html.reveal-enhanced [data-reveal=fade]:not(.is-visible):not([data-reveal-static]){transform:none}html.reveal-enhanced [data-reveal=mask]:not(.is-visible):not([data-reveal-static]){-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);transform:none}html.reveal-enhanced [data-reveal=mask].is-visible{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0)}[data-reveal=line]{transform:none}[data-reveal=line]:after{content:"";display:block;width:48px;height:3px;margin-top:14px;background:var(--color-primary);border-radius:var(--radius-pill);transform:scaleX(0);transform-origin:left center;transition:transform .68s var(--ease-out);transition-delay:var(--reveal-delay,80ms)}[data-reveal=line].is-visible:after{transform:scaleX(1)}[data-reveal-static]{opacity:1!important;transform:none!important;-webkit-clip-path:none!important;clip-path:none!important;transition:none!important}[data-reveal-stagger]>*{opacity:1;transform:none;transition:opacity .64s var(--ease-out),transform .64s var(--ease-out)}html.reveal-enhanced [data-reveal-stagger]:not(.is-visible)>*{opacity:0;transform:translateY(18px)}[data-reveal-stagger].is-visible>*{opacity:1;transform:translateY(0)}[data-reveal-stagger].is-visible>:first-child{transition-delay:0s}[data-reveal-stagger].is-visible>:nth-child(2){transition-delay:80ms}[data-reveal-stagger].is-visible>:nth-child(3){transition-delay:.16s}[data-reveal-stagger].is-visible>:nth-child(4){transition-delay:.24s}[data-reveal-stagger].is-visible>:nth-child(5){transition-delay:.32s}[data-reveal-stagger].is-visible>:nth-child(6){transition-delay:.4s}@keyframes mcFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes mcShimmer{0%{transform:translateX(-120%)}to{transform:translateX(120%)}}@keyframes mcPulseGlow{0%,to{opacity:.45}50%{opacity:.85}}.mcDecorOrb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(40px);animation:mcPulseGlow 8s ease-in-out infinite}.roofingSite .articlePage,.roofingSite .contactLayout,.roofingSite .dashboardLayout,.roofingSite .helpLayout,.roofingSite .newsGrid,.roofingSite .reviewsPage,.roofingSite .serviceShowcaseGrid,.roofingSite .tableSection,.roofingSite main>article,.roofingSite main>div.legalPage,.roofingSite main>section{animation:none!important}@media (prefers-reduced-motion:reduce){[data-reveal-stagger]>*,[data-reveal]{opacity:1!important;transform:none!important;-webkit-clip-path:none!important;clip-path:none!important;transition:none!important}[data-reveal=line]:after{transform:scaleX(1)!important;transition:none!important}.mcDecorOrb{animation:none!important}html{scroll-behavior:auto}}.roofingSite h1,.roofingSite h2,.roofingSite h3,.roofingSite h4{font-family:var(--font-heading);font-weight:760;line-height:1.12;letter-spacing:-.015em;color:var(--color-text)}.roofingSite li,.roofingSite p{line-height:1.72}.roofingSite a:focus-visible,.roofingSite button:focus-visible,.roofingSite input:focus-visible,.roofingSite select:focus-visible,.roofingSite textarea:focus-visible{outline:3px solid rgba(var(--color-primary-rgb),.28);outline-offset:2px}.roofingSite .btnPrimary,.roofingSite .primaryAction,.roofingSite .primaryButton,.roofingSite .roofingButton,.roofingSite .submitButton,.roofingSite button[type=submit]:not(.language-option):not(.roofingClose){position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:0 1.35rem;color:var(--color-white)!important;background:linear-gradient(145deg,var(--color-primary) 0,#e05a00 100%)!important;border:1px solid transparent!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-glow)!important;font-family:var(--font-body);font-size:var(--text-sm);font-weight:650;letter-spacing:.01em;white-space:nowrap;cursor:pointer;overflow:hidden;transition:transform var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}.roofingSite .primaryAction:before,.roofingSite .roofingButton:before,.roofingSite .submitButton:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(255,255,255,.16) 50%,transparent 65%);transform:translateX(-130%);transition:transform .68s var(--ease-out);pointer-events:none}.roofingSite .primaryAction:hover,.roofingSite .roofingButton:hover,.roofingSite .submitButton:hover,.roofingSite button[type=submit]:not(.language-option):hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(var(--color-primary-rgb),.32)!important;background:linear-gradient(145deg,var(--color-primary-hover) 0,#c24e00 100%)!important}.roofingSite .primaryAction:hover:before,.roofingSite .roofingButton:hover:before,.roofingSite .submitButton:hover:before{transform:translateX(130%)}.roofingSite .primaryAction:active,.roofingSite .roofingButton:active,.roofingSite .submitButton:active{transform:translateY(0)}.roofingSite .roofingButton:disabled,.roofingSite .submitButton:disabled{opacity:.62;cursor:not-allowed;transform:none!important;box-shadow:none!important}.roofingSite .btnSecondary,.roofingSite .roofingButtonSecondary,.roofingSite .secondaryAction,.roofingSite .secondaryButton{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:0 1.35rem;color:var(--color-white)!important;background:var(--color-night)!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-md)!important;font-weight:650;white-space:nowrap;transition:transform var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}.roofingSite .roofingButtonSecondary:hover,.roofingSite .secondaryAction:hover,.roofingSite .secondaryButton:hover{transform:translateY(-2px);background:var(--color-night-deep)!important;box-shadow:var(--shadow-lg)!important}.roofingSite .roofingButtonSecondary.light,.roofingSite .secondaryAction.light{color:var(--color-text)!important;background:var(--color-white)!important;border:1px solid var(--color-border-strong)!important;box-shadow:var(--shadow-sm)!important}.roofingSite .roofingButtonSecondary.light:hover{background:var(--color-surface-muted)!important;color:var(--color-night)!important}.roofingSite .roofingButtonGhost,.roofingSite .textButton{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:0 .75rem;color:var(--color-primary);background:transparent;border:0;font-weight:650;transition:color var(--transition-fast)}.roofingSite .roofingButtonGhost:hover{color:var(--color-primary-hover)}.roofingSite .roofingButtonDanger{color:var(--color-white)!important;background:var(--color-danger)!important;box-shadow:0 10px 24px rgba(180,35,24,.22)!important}.roofingSite .authForm input,.roofingSite .authForm select,.roofingSite .authForm textarea,.roofingSite .contactForm input,.roofingSite .contactForm select,.roofingSite .contactForm textarea,.roofingSite .roofingQuoteField input:not(.communeAutocomplete__input),.roofingSite .roofingQuoteField select,.roofingSite .roofingQuoteField textarea,.roofingSite input:not([type=checkbox]):not([type=radio]):not([type=file]),.roofingSite select,.roofingSite textarea{width:100%;min-height:52px;padding:0 1rem;color:var(--color-text);background:var(--color-surface-muted);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;font-weight:500;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.roofingSite .roofingQuoteField textarea,.roofingSite textarea{min-height:148px;padding-top:.875rem;line-height:1.6;resize:vertical}.roofingSite input::placeholder,.roofingSite textarea::placeholder{color:var(--color-muted);opacity:.85}.roofingSite input:focus,.roofingSite select:focus,.roofingSite textarea:focus{background:var(--color-white);border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.12)}.roofingSite input[aria-invalid=true],.roofingSite select[aria-invalid=true],.roofingSite textarea[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 4px rgba(180,35,24,.1)}.roofingSite .fieldError,.roofingSite .formError,.roofingSite .roofingFieldError{margin:.25rem 0 0;color:var(--color-danger);font-size:var(--text-sm);font-weight:650}.roofingSite .roofingFormMessage.success{color:var(--color-success);background:var(--color-success-soft);border:1px solid #b8e5c8}.roofingSite .roofingFormMessage.error{color:var(--color-danger);background:var(--color-danger-soft);border:1px solid #f4c7c3}.roofingSite .checkbox-row,.roofingSite .checkboxField,.roofingSite .roofingConsent{display:inline-flex;width:-moz-fit-content;width:fit-content;max-width:100%;gap:.625rem;align-items:center;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.55;cursor:pointer}.roofingSite input[type=checkbox],.roofingSite input[type=radio]{width:18px;height:18px;flex:0 0 auto;margin:0;accent-color:var(--color-primary)}.roofingSite .checkbox-row span,.roofingSite .checkboxField span,.roofingSite .roofingConsent span{min-width:0;line-height:1.4}.roofingSite .checkbox-row:focus-within,.roofingSite .checkboxField:focus-within,.roofingSite .roofingConsent:focus-within{outline:none;box-shadow:none}.roofingSite input[type=checkbox]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.roofingSite .homeContentBlock,.roofingSite .homeServiceCard,.roofingSite .homeWhyCard,.roofingSite .mcCard,.roofingSite .roofingAdviceGrid article,.roofingSite .roofingProcessLine article{position:relative;display:grid;grid-gap:var(--space-md);gap:var(--space-md);padding:clamp(1.25rem,2.5vw,1.75rem);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal)}.roofingSite .homeServiceCard:hover,.roofingSite .homeWhyCard:hover,.roofingSite .mcCard:hover,.roofingSite .roofingAdviceGrid article:hover,.roofingSite .roofingProcessLine article:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:rgba(var(--color-primary-rgb),.22)}.roofingSite .mcCardElevated{box-shadow:var(--shadow-md)}.roofingSite .mcCardDark{color:var(--color-white);background:linear-gradient(155deg,var(--color-night) 0,var(--color-night-deep) 100%);border-color:rgba(255,255,255,.08)}.roofingSite .mcCardDark h2,.roofingSite .mcCardDark h3,.roofingSite .mcCardDark p{color:inherit}.roofingSite .roofingQuoteFormCard{gap:var(--space-lg);padding:clamp(1.5rem,3.5vw,2.625rem);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.roofingSite .roofingQuoteFormSection{background:radial-gradient(ellipse 80% 50% at 10% 0,rgba(var(--color-primary-rgb),.07),transparent 50%),linear-gradient(180deg,var(--color-cream) 0,var(--color-cream-deep) 100%)}.roofingSite .roofingQuoteReassurance{position:-webkit-sticky;position:sticky;top:calc(var(--header-height-scrolled) + 24px);gap:var(--space-lg);padding:clamp(1.5rem,3vw,2.25rem);color:var(--color-white);background:radial-gradient(ellipse 90% 60% at 100% 0,rgba(var(--color-primary-rgb),.18),transparent 55%),linear-gradient(160deg,var(--color-night) 0,var(--color-night-deep) 100%);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);transform:none}.roofingSite .roofingQuoteReassurance .roofingEyebrow,.roofingSite .roofingQuoteReassurance h2,.roofingSite .roofingQuoteReassurance h3{color:var(--color-white)!important}.roofingSite .roofingQuoteReassurance p{color:rgba(255,255,255,.78)!important}.roofingSite .roofingReassuranceList article{padding:1rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.roofingSite .roofingReassuranceList h3{color:var(--color-white)!important}.roofingSite .accordionList,.roofingSite .faqAccordion,.roofingSite .homeFaqList{display:grid;grid-gap:.75rem;gap:.75rem}.roofingSite .accordionItem,.roofingSite .faqItem,.roofingSite .homeFaqItem{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);overflow:visible;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.roofingSite .accordionItem[open],.roofingSite .faqItem[open],.roofingSite .homeFaqItem[open]{border-color:rgba(var(--color-primary-rgb),.28);box-shadow:var(--shadow-sm)}.roofingSite .accordionItem summary,.roofingSite .faqItem summary,.roofingSite .homeFaqItem summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:58px;padding:1rem 1.25rem;color:var(--color-text);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:700;cursor:pointer;list-style:none}.roofingSite .faqItem summary::-webkit-details-marker,.roofingSite .homeFaqItem summary::-webkit-details-marker{display:none}.roofingSite .faqItem summary svg,.roofingSite .homeFaqItem summary svg{flex-shrink:0;color:var(--color-primary);transition:transform var(--transition-normal)}.roofingSite .faqItem[open] summary svg,.roofingSite .homeFaqItem[open] summary svg{transform:rotate(180deg)}.roofingSite .accordionContent,.roofingSite .faqAnswer,.roofingSite .homeFaqAnswer{padding:0 1.25rem 1.25rem;color:var(--color-text-secondary);line-height:1.72}.roofingSite table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-xs)}.roofingSite th{color:var(--color-text);background:var(--color-surface-muted);font-weight:700;text-align:left}.roofingSite td,.roofingSite th{padding:.875rem 1rem;border-bottom:1px solid var(--color-border);font-size:var(--text-sm)}.roofingSite td{color:var(--color-text-secondary)}.roofingSite tr:last-child td{border-bottom:0}.roofingSite .emptyState,.roofingSite .errorFallback,.roofingSite .roofingErrorPanel{padding:clamp(2rem,4vw,3rem);text-align:center;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.roofingSite .legalPage,.roofingSite .legalPageLayout{padding:var(--section-y) var(--section-x);background:var(--color-cream)}.roofingSite .legalContent,.roofingSite .legalPageContent{max-width:820px;margin-inline:auto;padding:clamp(1.5rem,3vw,2.5rem);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.roofingSite .legalPageContent h2{margin-top:2rem;font-size:var(--text-2xl)}.roofingSite .legalPageContent h2:first-child{margin-top:0}.roofingSite .adminPortal,.roofingSite .clientDashboardReal,.roofingSite .dashboardLayout{background:linear-gradient(180deg,var(--color-cream) 0,var(--color-surface-muted) 100%)}.roofingSite .adminDataPanel,.roofingSite .clientStatCard,.roofingSite .dashboardCard{background:var(--color-white)!important;border:1px solid var(--color-border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important}.roofingSite .mcImageFrame{overflow:hidden;border-radius:var(--radius-md)}.roofingSite .mcImageFrame img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .68s var(--ease-out)}.roofingSite .mcImageFrame:hover img{transform:scale(1.04)}.roofingSite .siteFooter,.roofingSite footer:not(.roofingFooter){background:var(--color-night)!important;border-top:4px solid var(--color-primary)!important}.roofingSite .heroActions a:first-child,.roofingSite .primaryAction{background:linear-gradient(145deg,var(--color-primary),#e05a00)!important;border-color:transparent!important}.roofingSite .heroActions a:last-child,.roofingSite .secondaryAction{color:var(--color-text)!important;background:var(--color-white)!important;border:1px solid var(--color-border-strong)!important}.roofingSite .roofingHeaderShell{display:block;position:-webkit-sticky;position:sticky;top:0;z-index:220;width:100%;background:rgba(255,255,255,.82);border-bottom:1px solid var(--color-border);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);overflow:visible;transition:background var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal)}.roofingSite .roofingHeaderShell.isScrolled{background:rgba(255,255,255,.96);border-color:rgba(69,86,100,.14);box-shadow:var(--shadow-sm)}.roofingSite .roofingTopBar{color:var(--color-white);background:linear-gradient(90deg,var(--color-night-deep),var(--color-night));max-height:36px;overflow:hidden;transition:max-height var(--transition-normal),opacity var(--transition-normal)}.roofingSite .roofingHeaderShell.isScrolled .roofingTopBar{max-height:0;opacity:0}.roofingSite .roofingHeader{display:flex;align-items:center;gap:clamp(1rem,3vw,2.625rem);min-height:var(--header-height);padding:.5rem var(--section-x);overflow:visible;transition:min-height var(--transition-normal),padding var(--transition-normal)}.roofingSite .roofingHeaderShell.isScrolled .roofingHeader{min-height:var(--header-height-scrolled)}.roofingSite .roofingBrand img{width:clamp(64px,8vw,88px);height:clamp(64px,8vw,88px);object-fit:contain;transition:transform var(--transition-normal)}.roofingSite .roofingBrand:hover img{transform:scale(1.03)}.roofingSite .roofingNav a,.roofingSite .roofingNavDropdown>button{position:relative;min-height:42px;padding:0 .35rem;color:var(--color-text);font-size:var(--text-sm);font-weight:620;transition:color var(--transition-fast)}.roofingSite .roofingNav a:after,.roofingSite .roofingNavDropdown>button:after{content:"";position:absolute;right:0;bottom:2px;left:0;height:2px;background:var(--color-primary);border-radius:var(--radius-pill);opacity:0;transform:scaleX(.3);transition:opacity var(--transition-fast),transform var(--transition-normal)}.roofingSite .roofingNav a.active,.roofingSite .roofingNav a:hover,.roofingSite .roofingNavDropdown>button.active,.roofingSite .roofingNavDropdown>button:hover{color:var(--color-primary)}.roofingSite .roofingNav a.active:after,.roofingSite .roofingNav a:hover:after,.roofingSite .roofingNavDropdown>button.active:after,.roofingSite .roofingNavDropdown>button:hover:after{opacity:1;transform:scaleX(1)}.roofingSite .roofingDropdownPanel{padding:.75rem;background:rgba(255,255,255,.98);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.roofingSite .roofingDropdownPanel a{min-height:42px;padding:0 .75rem;border-radius:var(--radius-xs);font-weight:600;transition:background var(--transition-fast),color var(--transition-fast)}.roofingSite .roofingDropdownPanel a.active,.roofingSite .roofingDropdownPanel a:hover{color:var(--color-primary);background:rgba(var(--color-primary-rgb),.07)}.roofingSite .roofingHeaderCta{min-height:44px;padding-inline:1.125rem;font-size:var(--text-sm)}.roofingSite .roofingMobileLayer{position:fixed;inset:0;z-index:var(--z-overlay);display:grid;grid-template-columns:1fr min(420px,92vw)}.roofingSite .roofingMobileOverlay{background:rgba(26,32,48,.52);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:0;cursor:pointer;animation:mcOverlayIn .28s var(--ease-out) both}@keyframes mcOverlayIn{0%{opacity:0}to{opacity:1}}.roofingSite .roofingMobilePanel{position:relative;display:grid;grid-template-rows:auto 1fr auto;grid-gap:1.5rem;gap:1.5rem;padding:1.5rem 1.25rem 2rem;background:var(--color-white);border-left:1px solid var(--color-border);box-shadow:-24px 0 64px rgba(40,48,73,.18);overflow-y:auto;animation:mcPanelIn .32s var(--ease-out) both}@keyframes mcPanelIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.roofingSite .roofingClose{position:fixed;top:1rem;right:calc(min(420px, 92vw) - 3.25rem);z-index:calc(var(--z-overlay) + 1);display:grid;place-items:center;width:44px;height:44px;color:var(--color-white);background:var(--color-night);border:0;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.roofingSite .roofingClose:hover{background:var(--color-primary);transform:scale(1.04)}.roofingSite .roofingMobileNav{display:grid;grid-gap:.35rem;gap:.35rem}.roofingSite .roofingMobileGroup summary,.roofingSite .roofingMobileNav a{min-height:48px;padding:0 .75rem;color:var(--color-text);border-radius:var(--radius-sm);font-weight:650;transition:background var(--transition-fast),color var(--transition-fast)}.roofingSite .roofingMobileGroup.active summary,.roofingSite .roofingMobileNav a.active,.roofingSite .roofingMobileNav a:hover{color:var(--color-primary);background:rgba(var(--color-primary-rgb),.08)}.roofingSite .roofingMobileGroup a{padding-left:1.5rem;font-weight:600;font-size:var(--text-sm)}.roofingSite .roofingFooter{margin-top:auto;padding:0;color:rgba(255,255,255,.88);background:linear-gradient(180deg,var(--color-night) 0,var(--color-night-deep) 100%);border-top:4px solid var(--color-primary)}.roofingSite .roofingFooterBrand{gap:.65rem}.roofingSite .roofingFooterBrand .roofingFooterLogo{width:clamp(72px,8vw,96px);height:auto;margin-bottom:.35rem;object-fit:contain;background:transparent;border:0;border-radius:0;filter:none}.roofingSite .roofingFooterGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:clamp(1.5rem,3vw,2.5rem);gap:clamp(1.5rem,3vw,2.5rem);padding:clamp(2rem,4vw,3rem) var(--section-x)}.roofingSite .roofingFooterColumn h3{margin:0 0 1rem;color:var(--color-white);font-size:var(--text-lg)}.roofingSite .roofingFooterColumn a,.roofingSite .roofingFooterColumn p,.roofingSite .roofingFooterColumn span{display:block;margin-bottom:.5rem;color:rgba(255,255,255,.78);font-size:var(--text-sm);line-height:1.6;transition:color var(--transition-fast)}.roofingSite .roofingFooterColumn a:hover{color:var(--color-primary-soft)}.roofingSite .roofingFooterSignature{padding:1.25rem var(--section-x) 1.75rem;border-top:1px solid rgba(255,255,255,.08);text-align:left}.roofingSite .roofingFooterSignature .developerSignature{justify-content:flex-start;width:100%}.roofingSite .roofingFooterSignature .developerSignatureDivider{display:none}.roofingSite .homeSection,.roofingSite .roofingSection{padding:var(--section-y) var(--section-x)}.roofingSite .homeSectionAlt,.roofingSite .roofingSection.alt{background:radial-gradient(ellipse 70% 50% at 0 0,rgba(var(--color-primary-rgb),.05),transparent 50%),var(--color-cream)}.roofingSite .homeFaqHeader,.roofingSite .homeMethodHeader,.roofingSite .homeServicesHeader,.roofingSite .homeWhyHeader,.roofingSite .roofingSectionHeader{max-width:720px;margin-bottom:clamp(1.75rem,3vw,2.75rem)}.roofingSite .homeFaqHeader,.roofingSite .homeServicesHeader,.roofingSite .homeWhyHeader,.roofingSite .roofingSectionHeader.center{margin-inline:auto;text-align:center}.roofingSite .homeServicesHeader p,.roofingSite .homeWhyHeader p,.roofingSite .roofingSectionHeader.center p{margin-inline:auto}.roofingSite .homeEyebrow,.roofingSite .roofingEyebrow{display:inline-flex;align-items:center;gap:.625rem;margin-bottom:1rem;padding:.35rem .75rem;color:var(--color-primary);background:rgba(var(--color-primary-rgb),.08);border:1px solid rgba(var(--color-primary-rgb),.18);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.roofingSite .homeEyebrow:before,.roofingSite .roofingEyebrow:before{content:none}.roofingSite .innerHero.pageHero,.roofingSite .pageHero{position:relative;overflow:hidden;min-height:clamp(280px,36vw,420px)}.roofingSite .pageHero>.heroTextPanel{position:relative;z-index:2;max-width:640px;padding:clamp(1.25rem,2.5vw,2rem);background:rgba(255,255,255,.94);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.roofingSite .pageHero>.heroTextPanel h1{font-size:clamp(1.75rem,4vw,2.75rem);line-height:1.1}.roofingSite .pageHero>.heroTextPanel p{color:var(--color-text-secondary);font-size:var(--text-lg);line-height:1.65}.roofingSite .roofingHero,.roofingSite .roofingQuoteHero{position:relative;overflow:hidden;min-height:clamp(280px,38vw,440px)}.roofingSite .roofingHeroContent,.roofingSite .roofingQuoteHeroContent{position:relative;z-index:2;max-width:640px;padding:clamp(1.25rem,2.5vw,2rem);background:rgba(255,255,255,.94);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.roofingSite .homeContentSplit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:clamp(2rem,4vw,4rem);gap:clamp(2rem,4vw,4rem);align-items:center}.roofingSite .homeContentSplit.reverse{direction:rtl}.roofingSite .homeContentSplit.reverse>*{direction:ltr}.roofingSite .homeStatsBand{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:1rem;gap:1rem;padding:clamp(1.5rem,3vw,2rem);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.roofingSite .homeStatItem{text-align:center;padding:.75rem}.roofingSite .homeStatItem strong{display:block;color:var(--color-primary);font-family:var(--font-heading);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:800;line-height:1}.roofingSite .homeStatItem span{display:block;margin-top:.35rem;color:var(--color-text-secondary);font-size:var(--text-sm)}@media (max-width:1024px){.roofingSite .roofingFooterGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.roofingSite .homeContentSplit{grid-template-columns:1fr}.roofingSite .homeStatsBand{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.roofingSite .roofingHeaderActions,.roofingSite .roofingNav{display:none}.roofingSite .roofingMenuButton{display:grid;place-items:center;margin-left:auto}.roofingSite .roofingQuoteLayout{grid-template-columns:1fr}.roofingSite .roofingQuoteReassurance{position:static}.roofingSite .roofingClose{right:1rem}.roofingSite .roofingMobileLayer{grid-template-columns:1fr}.roofingSite .roofingMobilePanel{grid-column:1;width:min(420px,92vw);margin-left:auto}}@media (max-width:560px){.roofingSite .homeStatsBand,.roofingSite .roofingFooterGrid,.roofingSite .roofingQuoteFields{grid-template-columns:1fr}}@media (min-width:1400px){.roofingSite .homeSection,.roofingSite .roofingSection{padding-inline:calc((100% - var(--container)) / 2 + var(--section-x))}}:root{--tg-topbar-height:90px;--tg-logo-gap:4px;--tg-section-x:clamp(16px,4vw,72px);--tg-section-y:clamp(32px,5vw,72px);--tg-bp-xl:1180px;--tg-bp-lg:1024px;--tg-bp-md:768px;--tg-bp-sm:640px;--tg-bp-xs:480px}html{-webkit-text-size-adjust:100%}body,html{overflow-x:clip}.grid,.siteMain,[class*=Grid],[class*=Layout],[class*=Panel],[class*=Shell],article,body,footer,form,header,main,section{min-width:0}img,svg,video{max-width:100%}@media (max-width:1024px){:root{--tg-topbar-height:86px}.contactLayout,.helpGrid,.homeTariffGrid,.newsGrid,.serviceDirectoryGrid,.serviceShowcaseGrid,.signupBenefitsGrid,.tariffGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}.contactSection,.helpSection,.serviceDirectorySection,.serviceShowcaseSection,.signupBenefitsSection{padding-inline:clamp(16px,4vw,40px)!important}.sectionIntro{text-align:left}.sectionIntro h2{font-size:clamp(24px,3.2vw,32px)!important}.dashboardLayout{grid-template-columns:1fr!important;gap:16px!important;padding:clamp(20px,3vw,32px) clamp(16px,3vw,28px)!important}.adminNav,.clientSideMenu{position:static!important;top:auto!important}.adminMessagingLayout{grid-template-columns:1fr!important}.conversationList{max-height:280px}.taxiBookingSection{padding-inline:clamp(16px,4vw,32px)!important}.customerTaxiFields,.taxiFields:not(.taxiTripMetrics),.taxiOptionGrid{grid-template-columns:1fr 1fr!important}.taxiTripMetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.homeHeroDock{width:min(100%,calc(100% - 32px))!important;padding-inline:clamp(16px,4vw,32px)!important}.homeHeroBookingPanel .heroBookingField{min-height:auto!important}}@media (max-width:768px){:root{--tg-topbar-height:84px}.topbar{min-height:var(--tg-topbar-height)!important;padding:6px 14px 6px 10px!important;gap:10px!important}.brand{width:auto!important;max-width:calc(100% - 100px)!important}.brand img{max-width:100%!important;height:auto!important;max-height:calc(var(--tg-topbar-height, 84px) - var(--tg-logo-gap, 4px))!important;height:calc(var(--tg-topbar-height, 84px) - var(--tg-logo-gap, 4px))!important}.mobileDrawerPanel{top:calc(var(--tg-topbar-height) + 8px)!important;right:10px!important;left:10px!important;bottom:10px!important;max-width:none!important;max-height:calc(100dvh - var(--tg-topbar-height) - 18px)!important}.drawerHeader{padding:14px 16px!important}.drawerContent{padding:10px 12px!important}.drawerLanguages a,.drawerLink,.drawerLogout{min-height:48px!important;padding-inline:14px!important;border-radius:10px!important;font-size:clamp(15.5px,3.5vw,16.5px)!important;font-weight:600!important;letter-spacing:.01em!important}.drawerLink span{font-size:inherit!important;font-weight:600!important}.drawerFooter{padding:12px!important;gap:8px!important}:where(h1,.hero h1,.innerHero h1,.pageHero h1,.plainPageHeader h1){font-size:clamp(26px,7.2vw,34px)!important;line-height:1.1!important;max-width:100%!important}:where(h2,.sectionIntro h2,.widePanel h2,.featurePanel h2){font-size:clamp(22px,5.5vw,28px)!important;line-height:1.15!important}:where(h3){font-size:clamp(18px,4.5vw,22px)!important}.hero h1,.heroActions,.heroText{max-width:100%!important}.heroContent{width:calc(100% - 32px)!important;margin-inline:16px!important}.homeTransportHeroStage{align-items:flex-start!important;padding:18px 16px 120px!important}.homeTransportHeroMediaImg{object-position:48% 12%!important}.homeTransportHeroCopy{max-width:100%!important;padding:16px!important;border-radius:12px!important}.homeTransportHeroCopy h1{font-size:clamp(24px,6.8vw,32px)!important}.homeHeroDock{width:calc(100% - 32px)!important;margin-top:calc(-1 * var(--tg-topbar-height, 84px))!important;padding-inline:0!important}.pageHero>.heroTextPanel,.servicesHero>.heroTextPanel{max-width:100%!important;padding:clamp(16px,3vw,24px)!important}.pageHero>.heroTextPanel h1,.servicesHero .heroTextPanel h1{font-size:clamp(24px,6.5vw,32px)!important}.pageHero>.heroTextPanel p,.servicesHero .heroTextPanel p{font-size:clamp(15px,3.8vw,17px)!important}.pageHero .primaryAction,.pageHero .secondaryAction,.servicesHero .primaryAction{width:100%;justify-content:center}.siteMain>section:not(.hero):not(.innerHero):not(.pageHero):not(.servicesHero),main>section:not(.hero):not(.innerHero):not(.pageHero):not(.servicesHero){padding-inline:16px!important}.clientSummaryGrid,.eventGrid,.helpGrid,.homeTariffGrid,.newsGrid,.pricing-grid,.reviewGrid,.serviceDirectoryGrid,.serviceShowcaseGrid,.signupBenefitsGrid,.statGrid{grid-template-columns:1fr!important;gap:14px!important}.bookingBand,.newsPage,.nextStepsSection,.portalBand,.reviewsPage,.serviceDirectorySection,.serviceShowcaseSection,.tariffs{padding:var(--tg-section-y) 16px!important}.newsCard,.pricing-card,.reviewCard,.serviceDirectoryCard>div,.serviceShowcaseCard,.signupBenefitCard{padding:16px!important}.newsCard img,.serviceDirectoryCard img,.serviceShowcaseCard img{aspect-ratio:16/10;object-fit:cover}.conversationComposer textarea,.heroAddressField input,.heroBookingField input,.hotelSearchField input,.hotelSearchField select,.loginCard input,.phoneCountryField input,.phoneCountryField select,.signupGrid input,.taxiFields input,.taxiFields select,.taxiFields textarea,input,select,textarea{font-size:16px!important}.homeHeroCountField input{font-size:18px!important}.heroBookingField,.phoneCountryField,input,select,textarea{min-height:48px!important}.homeHeroBookingPanel .heroAddressField,.homeHeroBookingPanel .heroBookingField,.homeHeroCountField,.homeHeroDateTime{min-height:auto!important}.homeHeroCountField{min-height:62px!important}.homeHeroDateTime{min-height:auto!important}.signupPageShell{grid-template-columns:1fr!important;padding:clamp(24px,5vw,40px) 16px!important;gap:20px!important}.signupVisualPanel{position:relative!important;top:auto!important;min-height:clamp(280px,55vw,360px)!important;order:-1}.authLoginPortal,.compactSignupGrid,.signupGrid{grid-template-columns:1fr!important}.authLoginPortal{padding:clamp(24px,5vw,40px) 16px!important;gap:20px!important}.authLoginPortal .authLoginCard,.authLoginPortal .authPreview.signupVisualPanel{min-height:auto!important}.authLoginPortal .authPreview.signupVisualPanel{min-height:clamp(260px,50vw,340px)!important;order:-1}.loginCard,.signupFormCard{padding:20px 16px!important}.heroPriceButton,.homeHeroPriceButton,.navCta,.priceLookupButton,.primaryAction,.quick-estimate-button,.secondaryAction,.serviceBookingButton,.serviceDirectoryCard .serviceBookingButton,.submitButton,.taxiSubmit{width:100%;max-width:100%;min-height:48px!important;justify-content:center;text-align:center;white-space:normal!important;line-height:1.35!important}.bookingStepsActions,.heroActions,.homePage .homePrimaryActions,.homeTransportActions,.reservationActions,.rideActionButtons,.taxiSubmitRow{display:grid!important;grid-template-columns:1fr!important;grid-gap:10px!important;gap:10px!important;width:100%}.pricing-table{display:none!important}.pricing-mobile-list{display:grid!important;grid-gap:12px!important;gap:12px!important}.pricing-examples,.pricing-hero,.pricing-section{padding-inline:16px!important}.customerTaxiFields,.taxiFields:not(.taxiTripMetrics),.taxiOptionGrid,.taxiTripMetrics{grid-template-columns:1fr!important}.taxiBookingHero.isImageHero{min-height:clamp(360px,62vw,420px)!important;padding:24px 16px!important}.taxiBookingHero.isImageHero>div{max-width:100%!important;padding:0!important}.taxiBookingHero.isImageHero h1{font-size:clamp(24px,6.5vw,32px)!important}.bookingEstimatePanel,.taxiBookingCard,.taxiHelpPanel{padding:16px!important;border-radius:14px!important}.taxiHelpTrust{grid-template-columns:1fr!important}.taxiHelpFooterLinks a{width:100%;justify-content:center}.clientDashboardReal .clientDashboardHeader{grid-template-columns:1fr!important;padding:18px 16px!important}.clientStatCards{grid-template-columns:1fr!important}.clientMessageAlert{grid-template-columns:auto minmax(0,1fr)!important}.clientMessageAlertAction{grid-column:1/-1!important;width:100%!important}.adminDashboardReal .adminTopbar{flex-wrap:wrap;gap:12px;padding:16px!important}.adminDataTable{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.adminDataRow{min-width:0}.siteShell>footer.siteFooter{padding:clamp(32px,6vw,48px) 16px 24px!important;gap:24px!important;grid-template-columns:minmax(0,1fr)!important}.siteShell>footer.siteFooter .footerBottom{flex-direction:column;align-items:flex-start;gap:12px}.developerSignature{gap:12px}.developerSignatureDivider{display:none}.cookieBanner{flex-direction:column!important;align-items:stretch!important;gap:12px!important;padding:14px 16px!important;margin:12px!important;width:auto!important;max-width:calc(100% - 24px)!important}.cookieBanner button{width:100%!important}.chatBot{right:14px!important;bottom:14px!important}.chatBotPanel{width:min(100vw - 20px,400px);max-height:min(78dvh,620px)}.chatBotQuickReplies{max-height:108px}}@media (max-width:640px){.booking-steps-grid:not(.homeNextStepsGrid),.homeProcessLayout .booking-steps-grid,.homeProcessLayout .homeNextStepsGrid{grid-template-columns:1fr!important}.heroTripModes{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}.heroTripModes button{justify-content:center;min-height:44px!important}.hotelSearchBar{grid-template-columns:1fr!important;padding:16px!important;margin-bottom:20px!important}.hotelSearchBar label:first-child{grid-column:auto!important}.dataTable article,.formGrid,.quickBookingGrid,.returnGrid{grid-template-columns:1fr!important}.articlePageShell,.articlePageWithHero .articlePageShell{width:calc(100% - 32px)!important;padding-inline:0!important}.compactSectionIntro{text-align:left}}@media (max-width:480px){:root{--tg-topbar-height:82px}.topbar{padding:6px 12px 6px 8px!important}.brand{max-width:calc(100% - 50px)!important}.brand img{max-height:calc(var(--tg-topbar-height, 82px) - var(--tg-logo-gap, 4px))!important;height:calc(var(--tg-topbar-height, 82px) - var(--tg-logo-gap, 4px))!important}.iconButton.shellMenu{width:42px!important;height:42px!important}.homeHeroDock{margin-top:calc(-1 * var(--tg-topbar-height, 82px))!important;width:calc(100% - 24px)!important}.authLoginCard h1,.loginCard h1,.signupFormCard h2{font-size:clamp(22px,6vw,26px)!important}.drawerLink span,.drawerLogout span{font-size:inherit!important;font-weight:600!important}.drawerGroup h3{font-size:12px!important;font-weight:600!important}}@media (min-width:1181px){.mobileDrawerLayer{display:none!important}.desktopNavSlot{display:flex!important}.shellMenu{display:none!important}}.topbar{justify-content:flex-end!important;padding:5px clamp(14px,3vw,40px) 5px 6px!important}.brand{order:-1;display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;flex:0 0 auto!important;height:auto!important;margin-right:auto!important;margin-left:0!important;overflow:visible!important}.brand,.brand img{width:auto!important;max-width:none!important;max-height:calc(var(--tg-topbar-height, 90px) - var(--tg-logo-gap, 4px))!important}.brand img{display:block!important;height:calc(var(--tg-topbar-height, 90px) - var(--tg-logo-gap, 4px))!important;object-fit:contain!important;object-position:left center!important;transform:none!important}@media (max-width:768px){.topbar{padding-left:8px!important}.brand{flex:1 1 auto!important;min-width:0!important;max-width:calc(100% - 56px)!important}.brand img{max-width:100%!important;height:auto!important;max-height:calc(var(--tg-topbar-height, 84px) - var(--tg-logo-gap, 4px))!important;height:calc(var(--tg-topbar-height, 84px) - var(--tg-logo-gap, 4px))!important}}@media (max-width:480px){.topbar{padding-left:6px!important}.brand{max-width:calc(100% - 50px)!important}.brand img{max-height:calc(var(--tg-topbar-height, 82px) - var(--tg-logo-gap, 4px))!important;height:calc(var(--tg-topbar-height, 82px) - var(--tg-logo-gap, 4px))!important}}