/*
Theme Name: Gentlemen Core
Theme URI: https://gentlemenplumbing.ca/
Author URI: https://gentlemenplumbing.ca/
Author: Jake Romano of Gentlemen Services
Description: Canonical shell phase 6 with stronger plugin-first booking handoff, continuity cleanup, and shell-only coordination.
Version: 0.9.4-538.3-shell-loading-hotfix
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: gentlemen-core
*/

:root{
--gp-black:#000;
--gp-gold:#C7A45E;
--gp-gold-light:#FFD782;
--gp-gold-soft:rgba(255,215,130,.25);
--gp-gold-glow:rgba(255,230,160,.30);
--gp-cream:#F9F5EE;
--gp-white:#FFF;

--tf-hero-height:100vh;
--tf-sticky-height:112px;
--tf-logo-optical-y:0px;

--morph-progress:0;

--tf-nav-height:100vh;
--tf-hero-spacer-height:100vh;
--tf-logo-h:320px;
--tf-logo-w:520px;
--tf-logo-mobile-op:1;
--tf-logo-desktop-op:0;
--tf-arrow-op:1;

--tf-ease:cubic-bezier(.37,0,.24,1);
--tf-dur:.45s;
--tf-dur-fast:.28s;

--cta-offset:80px;

--z-aura:150;
--z-sparkles:200;
--z-hero:250;
--z-arrow:350;
--z-hamburger:900;
--z-nav:5000;
--z-drawer:4500;
--z-cta:4400;
}

@supports (height:100svh){
:root{
--tf-hero-height:100svh;
--tf-nav-height:100svh;
--tf-hero-spacer-height:100svh;
}
}

:root{
--gp-black-000:#000;
--gp-black-premium:#0B0B0C;
--gp-black-base:var(--gp-black-premium);
--gp-black-deep:#070708;


--gp-rose:#C1121F;
--gp-rose-hover:#A00E19;

--gp-font-sans:Lato, Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
--gp-font-serif:"Libre Baskerville", Georgia, "Times New Roman", Times, serif;
--gp-font-strong:Inter, Lato, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

--gp-radius-card:18px;
--gp-radius-card-sm:16px;
--gp-radius-pill:20px;
--gp-radius-chip:999px;

--gp-ease:var(--tf-ease);
--gp-fast:300ms;
--gp-med:520ms;

--gp-focus-color:rgba(255,215,130,.75);
--gp-focus-width:2px;
--gp-focus-offset:6px;
--gp-focus-radius:12px;

--gp-reveal-y:10px;
--gp-reveal-dur:520ms;
--gp-reveal-ease:var(--tf-ease);

--secondary-nav-height:84px;
}

html, body{
margin:0;
padding:0;
background:var(--gp-black);
color:var(--gp-cream);
overflow-x:hidden;
scroll-behavior:smooth;
box-sizing:border-box;
overscroll-behavior:none;
}
*, *::before, *::after{ box-sizing:border-box; }

.screen-reader-text,
.skip-link{
position:absolute;
width:1px;
height:1px;
padding:0;
margin:-1px;
overflow:hidden;
clip:rect(0,0,0,0);
clip-path:inset(50%);
white-space:nowrap;
border:0;
}
.skip-link:focus,
.skip-link:active{
clip:auto;
clip-path:none;
width:auto;
height:auto;
margin:0;
overflow:visible;
left:12px;
top:12px;
padding:10px 14px;
border-radius:12px;
background:rgba(0,0,0,.92);
color:var(--gp-cream);
border:1px solid rgba(199,164,94,.45);
box-shadow:0 10px 24px rgba(0,0,0,.35);
z-index:200000;
text-decoration:none;
font:700 14px/1 var(--gp-font-sans);
}


.gp-hero{
position:relative;
width:100vw;
margin-left:calc(50% - 50vw);
margin-right:calc(50% - 50vw);
min-height:clamp(320px, 42vw, 620px);
padding:clamp(28px, 4vw, 48px) 0;
overflow:hidden;
background-image:linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.24) 100%), url("https://gentlemenplumbing.ca/wp-content/uploads/2026/01/gentlemen-plumbing-ottawa-hero.webp");
background-position:center center;
background-repeat:no-repeat;
background-size:cover;
}
@media (max-width:767.98px){
.gp-hero{
min-height:72svh;
padding:0;
background-image:linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.28) 100%), url("https://gentlemenplumbing.ca/wp-content/uploads/2026/01/gentlemen-plumbing-ottawa-hero-mobile.webp");
background-position:center 24%;
}
}

.elementor-section,
.elementor-container,
.elementor-widget-wrap,
.elementor-widget-container{
backface-visibility:hidden;
-webkit-backface-visibility:hidden;
transform-style:preserve-3d;
}

main#content h1,
.site-main h1,
.elementor-page h1,
.elementor-heading-title.elementor-size-default{
white-space:normal !important;
overflow-wrap:anywhere;
word-break:normal !important;
hyphens:auto;
line-height:1.15 !important;
height:auto !important;
}

.elementor-widget-heading,
.elementor-widget-heading .elementor-widget-container{
min-height:0 !important;
height:auto !important;
}

@media (max-width:767.98px){
main#content h1.elementor-heading-title,
.site-main h1.elementor-heading-title{
font-size:clamp(28px, 8.5vw, 44px) !important;
line-height:1.12 !important;
}
}

#main-nav, #secondary-nav, #mobile-sticky-cta{
position:relative;
overflow:visible !important;
isolation:isolate;
}
#main-nav > .e-con-inner,
#secondary-nav > .e-con-inner,
#mobile-sticky-cta > .e-con-inner{
display:contents !important;
}

#main-nav > .elementor-element{
display:contents !important;
}

#main-nav .elementor-nav-menu--dropdown,
#main-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown,
#secondary-nav .elementor-nav-menu--dropdown,
#secondary-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown{
display:none !important;
visibility:hidden !important;
opacity:0 !important;
pointer-events:none !important;
height:0 !important;
}

#main-nav .elementor-menu-toggle,
#secondary-nav .elementor-menu-toggle{
display:none !important;
}

#tf-nav-spacer{
width:100%;
height:var(--tf-hero-spacer-height, 100svh);
pointer-events:none;
background:transparent;
}
@media (max-width:767.98px){
#tf-nav-spacer{
display:none !important;
height:0 !important;
}
}

#main-nav{
width:100%;
background:var(--gp-black);
border-bottom:1px solid rgba(255,215,130,.25);
box-shadow:0 0 14px rgba(199,164,94,.35);
z-index:var(--z-nav);
margin:0;

height:var(--tf-hero-height);
max-height:var(--tf-hero-height);

display:flex !important;
flex-direction:column !important;
align-items:center !important;
justify-content:flex-start !important;
}

@media (min-width:768px){
body.trueflow-ready #main-nav{
position:fixed !important;
top:0;
left:0;
width:100%;
height:var(--tf-nav-height, 100svh) !important;
max-height:var(--tf-nav-height, 100svh) !important;

display:block !important;
padding:0 !important;

background:rgba(0,0,0, calc(0.92 + 0.06 * var(--morph-progress)));
backdrop-filter:blur(calc(12px * var(--morph-progress)));

box-shadow:
0 0 14px rgba(199,164,94, calc(0.28 + 0.18 * var(--morph-progress))),
0 4px 18px rgba(0,0,0, calc(0.10 + 0.45 * var(--morph-progress)));

overflow:hidden !important;
}

body.trueflow-ready #main-nav .e-con,
body.trueflow-ready #main-nav .elementor-widget,
body.trueflow-ready #main-nav .elementor-widget-container,
body.trueflow-ready #main-nav .elementor-element{
position:static !important;
transform:none !important;
filter:none !important;
}

body.trueflow-ready #main-nav #gp-logo,
body.trueflow-ready #main-nav #gp-hamburger,
body.trueflow-ready #main-nav #book-online-ottawa-plumbers,
body.trueflow-ready #main-nav #call-613-423-4321-for-ottawa-plumbing-services,
body.trueflow-ready #main-nav #gp-arrow-down{
position:absolute !important;
margin:0 !important;
right:auto !important;
bottom:auto !important;
will-change:top,left,opacity,width,height;
}

body.trueflow-ready #main-nav #gp-logo{
width:var(--tf-logo-w, 520px) !important;
height:var(--tf-logo-h, 320px) !important;
}

body.trueflow-ready #main-nav #gp-arrow-down{
opacity:var(--tf-arrow-op, 1);
}
}

@media (max-width:767.98px){
#main-nav{
position:relative;
height:var(--tf-hero-height) !important;
max-height:var(--tf-hero-height) !important;
min-height:var(--tf-hero-height) !important;
}
}

body:not(.trueflow-ready) #main-nav{
height:100vh !important;
min-height:100vh !important;
display:flex !important;
flex-direction:column !important;
justify-content:center !important;
align-items:center !important;
}

body.elementor-editor-active #main-nav .nav-logo-wrapper,
body.elementor-editor-preview #main-nav .nav-logo-wrapper,
body.elementor_library-template-default #main-nav .nav-logo-wrapper{
opacity:1 !important;
transition:none !important;
}

.nav-logo-wrapper{
position:relative;
display:grid;
place-items:center;
pointer-events:auto;
z-index:var(--z-hero);
isolation:isolate;

opacity:0;
transition:opacity .6s ease;
}
body.trueflow-ready .nav-logo-wrapper{ opacity:1; }

.nav-logo{
grid-area:1 / 1;
max-width:80vw;
height:auto;
user-select:none;
-webkit-user-drag:none;
pointer-events:none;
}

#main-nav .nav-logo.mobile-logo{ opacity:1; }
#main-nav .nav-logo.desktop-logo{ opacity:0; }

@media (min-width:768px){
body.trueflow-ready #main-nav #gp-logo .nav-logo{
width:100% !important;
height:100% !important;
max-width:none !important;
object-fit:contain;
}
body.trueflow-ready #main-nav #gp-logo .nav-logo.mobile-logo{
opacity:var(--tf-logo-mobile-op, 1) !important;
}
body.trueflow-ready #main-nav #gp-logo .nav-logo.desktop-logo{
opacity:var(--tf-logo-desktop-op, 0) !important;
}
}

@media (max-width:767.98px){
#main-nav .nav-logo.mobile-logo{
height:clamp(180px,50vh,360px) !important;
max-width:90vw !important;
filter:drop-shadow(0 0 20px var(--gp-gold-glow));
transform:scale(1.03);
}
#main-nav .nav-logo.desktop-logo{ opacity:0 !important; }
}

.glow-layer{
position:absolute;
inset:-90%;
border-radius:50%;
pointer-events:none;
mix-blend-mode:screen;
z-index:var(--z-aura);
animation:goldAura 14s ease-in-out infinite;
}
.glow-layer.glow-outer{
background:radial-gradient(circle, rgba(255,230,180,.18), rgba(255,215,130,.10) 40%, transparent 90%);
filter:blur(100px);
opacity:.5;
}
.glow-layer.glow-inner{
background:radial-gradient(circle, rgba(255,240,200,.10), rgba(255,255,255,.14) 50%, transparent 100%);
filter:blur(70px);
opacity:.45;
}

@media (min-width:768px){
#main-nav .glow-layer{
opacity:calc(.8 - 0.4 * var(--morph-progress));
}
}

.hover-glow-layer{
position:absolute;
inset:-65%;
border-radius:50%;
pointer-events:none;
background:radial-gradient(circle at center, rgba(255,215,130,.25) 0%, rgba(255,215,130,.05) 40%, transparent 80%);
opacity:0;
filter:blur(95px);
mix-blend-mode:screen;
transition:opacity 1s ease, transform 1.5s ease;
z-index:calc(var(--z-aura) + 5);
}
.hover-glow-layer.active,
.tf-glow-active .hover-glow-layer{
opacity:1 !important;
transform:scale(1.06);
}
@media (hover:hover){
#gp-logo:hover .hover-glow-layer{
opacity:1 !important;
transform:scale(1.08);
}
#gp-hamburger:hover{
color:var(--gp-gold-light);
filter:drop-shadow(0 0 10px rgba(255,215,130,.65));
}
}

.nav-logo-sparkles{
position:absolute;
inset:0;
z-index:var(--z-sparkles);
pointer-events:none;
}
.nav-sparkle{
position:absolute;
width:3px;
height:3px;
border-radius:50%;
background:radial-gradient(circle,#fff 0%,rgba(255,255,255,.4)60%,transparent 100%);
mix-blend-mode:screen;
filter:drop-shadow(0 0 2px rgba(255,230,160,.55));
animation:sparkleBlink 4s ease-in-out infinite, sparkleDrift 18s ease-in-out infinite;
opacity:0;
transform:scale(.6);
}

@keyframes logoBreath{
0%,100%{ filter:brightness(1) drop-shadow(0 0 4px var(--gp-gold-soft)); }
50%{ filter:brightness(1.08) drop-shadow(0 0 9px var(--gp-gold-glow)); }
}
@keyframes goldAura{
0%,100%{ opacity:.45; transform:scale(1); }
50%{ opacity:.9; transform:scale(1.06); }
}
@keyframes sparkleBlink{
0%,80%,100%{ opacity:0; transform:scale(.6); }
40%{ opacity:1; transform:scale(1.3); }
50%{ opacity:.7; transform:scale(.8); }
}
@keyframes sparkleDrift{
0%,100%{ transform:translate(0,0) scale(.6); }
50%{ transform:translate(3px,-4px) scale(.9); }
}

@media (min-width:768px){
body.trueflow-ready #main-nav #gp-logo .nav-logo{
transform:translateY(var(--tf-logo-optical-y, 0px));
}
}

.cursor-sparkle, .touch-comet{
position:fixed;
width:6px;
height:6px;
border-radius:50%;
pointer-events:none;
mix-blend-mode:screen;
background:radial-gradient(circle,var(--gp-gold-light) 0%,transparent 75%);
opacity:.9;
animation:cursorFade .85s ease-out forwards;
z-index:999999;
}
@keyframes cursorFade{
0%{ opacity:.9; transform:translate(-50%,-50%) scale(1); }
100%{ opacity:0; transform:translate(-50%,-50%) scale(.85); }
}

#gp-hamburger{
position:relative;
display:inline-flex;
align-items:center;
justify-content:center;
font-size:2.2rem;
color:var(--gp-gold);
cursor:pointer;
transform-origin:center;
transition: color .35s ease, transform .45s var(--tf-ease), filter .35s ease;
animation:toggleBreath 10s ease-in-out infinite;
z-index:var(--z-hamburger);

pointer-events:auto !important;
touch-action:manipulation;
-webkit-tap-highlight-color:transparent;
}
.hamburger-glow-layer{
position:absolute;
inset:-60%;
border-radius:50%;
pointer-events:none;
mix-blend-mode:screen;
filter:blur(65px);
background:radial-gradient(circle, rgba(255,220,150,.18), rgba(255,200,100,.12) 40%, transparent 75% );
opacity:.55;
z-index:-1;
animation:goldAura 14s ease-in-out infinite;
}

#gp-hamburger.spin-open{ transform:rotate(90deg) scale(1.06) !important; }
#gp-hamburger.spin-close{ transform:rotate(0deg) scale(1) !important; }
#gp-hamburger.tf-glow-active{
color:var(--gp-gold-light);
filter:drop-shadow(0 0 10px rgba(255,215,130,.65));
}

@keyframes toggleBreath{
0%,100%{
filter: drop-shadow(0 0 4px rgba(255,215,130,.30)) drop-shadow(0 0 8px rgba(255,215,130,.18));
}
50%{
filter: drop-shadow(0 0 10px rgba(255,215,130,.55)) drop-shadow(0 0 18px rgba(255,215,130,.30));
}
}

#book-online-ottawa-plumbers,
#call-613-423-4321-for-ottawa-plumbing-services{
display:flex !important;
align-items:center;
justify-content:center;
margin:12px auto !important;
z-index:var(--z-hero);
transition: transform .3s ease, opacity .3s ease, filter .3s ease;
will-change:transform, opacity;
}
@media (hover:hover){
#book-online-ottawa-plumbers:hover,
#call-613-423-4321-for-ottawa-plumbing-services:hover,
#book-online-ottawa-plumbers.tf-glow-active,
#call-613-423-4321-for-ottawa-plumbing-services.tf-glow-active{
transform:scale(1.06);
filter:drop-shadow(0 0 12px var(--gp-gold-glow));
}
}

#gp-arrow-down{
font-size:34px;
line-height:1;
color:var(--gp-gold-light);
text-shadow:0 0 10px var(--gp-gold-glow), 0 0 20px var(--gp-gold-soft);
z-index:var(--z-arrow);
pointer-events:auto;
animation:scrollBounce 1.9s ease-in-out infinite;
transform-origin:center;
cursor:pointer;
transition: filter .25s ease, text-shadow .25s ease, font-size .25s ease, opacity .25s ease;

user-select:none;
-webkit-user-select:none;
-webkit-tap-highlight-color:transparent;
}
#gp-arrow-down.tf-glow-active{
text-shadow: 0 0 14px rgba(255,215,130,.9), 0 0 30px rgba(255,215,130,.6);
}

@media (hover:hover){
#gp-arrow-down:hover{
animation-play-state:paused;
font-size:40px;
filter:drop-shadow(0 0 12px rgba(255,215,130,.75));
text-shadow: 0 0 18px rgba(255,215,130,.95), 0 0 34px rgba(255,215,130,.65);
}
}
#gp-arrow-down:focus-visible{
outline:2px solid rgba(255,215,130,.75);
outline-offset:6px;
border-radius:12px;
}

@keyframes scrollBounce{
0%,100%{ transform:translateY(0); }
25%{ transform:translateY(6px); }
50%{ transform:translateY(-4px); }
75%{ transform:translateY(3px); }
}

#secondary-nav{
width:100%;
opacity:0;
visibility:hidden;
transform:translateY(-14px);
pointer-events:none;

border-bottom:1px solid rgba(255,215,130,.25);
z-index:var(--z-drawer);

transition:
opacity var(--tf-dur) var(--tf-ease),
transform var(--tf-dur) var(--tf-ease),
max-height var(--tf-dur) var(--tf-ease),
padding var(--tf-dur) var(--tf-ease),
visibility 0s linear var(--tf-dur);
}

@media (min-width:768px){
body.trueflow-ready #secondary-nav{
position:fixed !important;
top:var(--tf-nav-height, var(--tf-sticky-height)) !important;
left:0 !important;
width:100% !important;

z-index:calc(var(--z-nav) - 1) !important;

display:flex !important;
flex-direction:row;
justify-content:center;
align-items:center;

overflow:hidden;
max-height:0;
padding:0;
background:linear-gradient(180deg, rgba(42,42,46,.95) 0%, rgba(18,18,20,.97) 100%);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
box-shadow:0 18px 34px rgba(0,0,0,.34), 0 0 18px rgba(199,164,94,.10);
}

body.trueflow-ready #secondary-nav.is-open{
opacity:1 !important;
visibility:visible !important;
transform:translateY(0) !important;
pointer-events:auto !important;

max-height:var(--secondary-nav-height, 84px);
padding:18px 0;

transition:
opacity var(--tf-dur) var(--tf-ease),
transform var(--tf-dur) var(--tf-ease),
max-height var(--tf-dur) var(--tf-ease),
padding var(--tf-dur) var(--tf-ease),
visibility 0s linear 0s;
}

#wp-secondary-nav,
#secondary-nav .elementor-nav-menu{
display:flex;
flex-direction:row;
gap:clamp(16px,2.2vw,32px);
list-style:none;
margin:0;
padding:0;
}

#wp-secondary-nav a,
#secondary-nav .elementor-nav-menu a{
color:var(--gp-cream);
text-decoration:none;
text-transform:uppercase;
letter-spacing:.08em;
font-size:clamp(13px,0.8vw + 0.35rem,16px);
font-family:var(--gp-font-sans);
font-weight:700;
position:relative;
padding:8px 2px;
transition:color .3s ease, text-shadow .3s ease;
}
#wp-secondary-nav a::after,
#secondary-nav .elementor-nav-menu a::after{
content:"";
position:absolute;
left:0;
right:0;
bottom:-2px;
height:1px;
background:linear-gradient(90deg, rgba(255,215,130,0) 0%, rgba(255,215,130,.9) 50%, rgba(255,215,130,0) 100%);
transform:scaleX(.42);
transform-origin:center;
opacity:0;
transition:transform .28s ease, opacity .28s ease;
}
#wp-secondary-nav a:hover,
#secondary-nav .elementor-nav-menu a:hover{
color:var(--gp-gold-light);
text-shadow: 0 0 6px rgba(255,215,130,.7), 0 0 12px rgba(255,200,100,.35);
}
#wp-secondary-nav a:hover::after,
#secondary-nav .elementor-nav-menu a:hover::after,
#wp-secondary-nav .current-menu-item > a::after,
#secondary-nav .current-menu-item > a::after{
transform:scaleX(1);
opacity:1;
}
}

@media (max-width:767.98px){
#secondary-nav{
position:relative;
min-height:100svh !important;
display:none;
flex-direction:column;
justify-content:flex-start;
align-items:center;
padding:24px 16px;
background:linear-gradient(180deg, rgba(36,36,40,.96) 0%, rgba(8,8,10,.98) 100%);
}
#secondary-nav.is-open{
display:flex !important;
opacity:1 !important;
visibility:visible !important;
transform:translateY(0) !important;
pointer-events:auto !important;

transition:
opacity var(--tf-dur) var(--tf-ease),
transform var(--tf-dur) var(--tf-ease),
visibility 0s linear 0s;
}

#secondary-nav .gp-secondary-nav-menu{
flex:1;
width:100%;
display:flex;
align-items:center;
justify-content:center;
}

#wp-secondary-nav,
#secondary-nav .elementor-nav-menu,
#secondary-nav .gp-secondary-nav-menu ul,
#secondary-nav .gp-secondary-nav-menu .menu{
flex:1;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:5vh;
list-style:none;
margin:0;
padding:0;
min-height:70vh;
width:100%;
}

#secondary-nav a,
#secondary-nav a:any-link,
#secondary-nav a:link,
#secondary-nav a:visited,
#wp-secondary-nav a,
#secondary-nav .elementor-nav-menu a{
color:var(--gp-cream) !important;
text-decoration:none !important;
text-transform:uppercase;
letter-spacing:.08em;
font-size:clamp(17px,4vw,22px);
font-family:var(--gp-font-sans);
font-weight:700;
text-align:center;
}
#secondary-nav a:hover,
#secondary-nav a:focus,
#secondary-nav a:focus-visible,
#secondary-nav a:active,
#wp-secondary-nav a:hover,
#wp-secondary-nav a:focus-visible,
#secondary-nav .elementor-nav-menu a:hover,
#secondary-nav .elementor-nav-menu a:focus-visible{
color:var(--gp-gold-light) !important;
}
}

#gp-secondary-up, #gp-secondary-down{
display:flex;
align-items:center;
justify-content:center;
width:100%;
text-align:center;
align-self:stretch;
font-size:32px;
color:var(--gp-gold-light);
text-shadow:0 0 10px var(--gp-gold-glow), 0 0 18px var(--gp-gold-soft);
animation:scrollBounce 1.9s ease-in-out infinite;
line-height:1;
cursor:pointer;

user-select:none;
-webkit-user-select:none;
-webkit-tap-highlight-color:transparent;
}
#gp-secondary-up{ font-size:30px; margin-bottom:24px; }
#gp-secondary-down{ margin-top:auto; margin-bottom:24px; }
#secondary-nav > #gp-secondary-up,
#secondary-nav > #gp-secondary-down,
#secondary-nav > .scroll-arrow-up,
#secondary-nav > .scroll-arrow-down{
width:100% !important;
display:flex;
align-items:center;
justify-content:center;
margin-left:auto;
margin-right:auto;
text-align:center;
}
@media (min-width:768px){
#gp-secondary-up, #gp-secondary-down{ display:none !important; }
}

#tf-mobile-cta-home{
width:100%;
height:0;
pointer-events:none;
background:transparent;
}

#mobile-sticky-cta{
position:relative;
top:0;
left:0;
width:100%;
display:flex !important;
flex-direction:row !important;
align-items:center;
justify-content:space-between;
gap:8px;
padding:8px 10px;
background:transparent !important;

opacity:1;
pointer-events:auto;

border:none !important;
box-shadow:none !important;
z-index:var(--z-cta);
transition: opacity var(--tf-dur-fast) ease, transform var(--tf-dur-fast) ease, filter var(--tf-dur-fast) ease;
}
#mobile-sticky-cta > .cta-cell{
flex:1;
display:flex;
align-items:center;
justify-content:center;
}
#mobile-sticky-cta img.center-logo{
height:54px;
width:auto;
object-fit:contain;
}

#mobile-sticky-cta.visible{ opacity:1; pointer-events:auto; }
#mobile-sticky-cta.hidden{
opacity:0;
pointer-events:none;
height:0 !important;
padding:0 !important;
overflow:hidden !important;
}

#mobile-sticky-cta.is-stuck{
position:fixed;
top:0;
left:0;
width:100%;
background:transparent !important;
filter:none;
transform:translate3d(0,0,0);
-webkit-transform:translate3d(0,0,0);
backface-visibility:hidden;
-webkit-backface-visibility:hidden;
will-change:transform, top;
contain:paint;
}

@media (min-width:768px){
#tf-mobile-cta-home{ display:none !important; height:0 !important; }
#mobile-sticky-cta{ display:none !important; }
}

@media (max-width:767.98px){
#mobile-sticky-cta.visible + .elementor-section,
#mobile-sticky-cta.visible + section{
margin-top:12px !important;
}
}

@media (max-width:767.98px){
body #main-nav + #secondary-nav,
body header #secondary-nav{
position:relative !important;
top:auto !important;
left:0 !important;
width:100% !important;
}
}

@media (prefers-reduced-motion:reduce){
*, *::before, *::after{
animation-duration:.001ms !important;
animation-iteration-count:1 !important;
transition-duration:.001ms !important;
}
html, body{
scroll-behavior:auto !important;
}
}

@media (max-width:767.98px){
#main-nav.hero-mode{
display:flex !important;
flex-direction:column !important;
align-items:center !important;
justify-content:flex-start !important;
padding:clamp(20px,6vh,32px) 16px 24px !important;

height:var(--tf-hero-height) !important;
min-height:var(--tf-hero-height) !important;
max-height:var(--tf-hero-height) !important;

position:relative !important;
}
#main-nav.hero-mode > *{
margin-left:auto !important;
margin-right:auto !important;
}
#main-nav.hero-mode #gp-logo{
margin-top:0 !important;
margin-bottom:clamp(16px,4vh,28px) !important;
}
#main-nav.hero-mode #gp-hamburger,
#main-nav.hero-mode #book-online-ottawa-plumbers,
#main-nav.hero-mode #call-613-423-4321-for-ottawa-plumbing-services{
margin-top:clamp(10px,2.4vh,18px) !important;
margin-bottom:0 !important;
}
#main-nav.hero-mode #call-613-423-4321-for-ottawa-plumbing-services{
margin-bottom:8px !important;
}

#book-online-ottawa-plumbers,
#call-613-423-4321-for-ottawa-plumbing-services{
display:flex !important;
opacity:1 !important;
visibility:visible !important;
position:relative !important;
z-index:var(--z-hero) !important;
}

#main-nav.hero-mode .elementor-element.elementor-absolute,
#main-nav.hero-mode .elementor-element.elementor-fixed{
position:static !important;
inset:auto !important;
top:auto !important;
right:auto !important;
bottom:auto !important;
left:auto !important;
}

#main-nav.hero-mode .elementor-widget-html,
#main-nav.hero-mode .elementor-widget-html > .elementor-widget-container{
display:contents !important;
position:static !important;
inset:auto !important;
top:auto !important;
right:auto !important;
bottom:auto !important;
left:auto !important;
}

#main-nav.hero-mode #gp-arrow-down{
opacity:1 !important;
visibility:visible !important;

position:absolute !important;
inset:auto !important;
top:auto !important;
right:auto !important;
bottom:calc(18px + env(safe-area-inset-bottom,0)) !important;
left:50% !important;

translate:-50% 0 !important;

margin:0 !important;

width:max-content !important;
text-align:center !important;

animation:scrollBounce 1.9s ease-in-out infinite !important;

z-index:var(--z-arrow) !important;
pointer-events:auto !important;
}
}

body.tf-hamburger-hot,
body.tf-hamburger-hot *{
cursor:pointer !important;
}

@media (max-width: 767.98px) {
#main-nav .nav-logo-wrapper{
opacity: 1 !important;
transition: none !important;
}

#main-nav .nav-logo.mobile-logo{
opacity: 1 !important;
display: block !important;
}

#main-nav .nav-logo.desktop-logo{
opacity: 0 !important;
display: none !important;
}
}

#secondary-nav .elementor-nav-menu a.elementor-item{
position: relative;
text-decoration: none !important; }

#secondary-nav .elementor-nav-menu a.elementor-item::after{
top:auto !important;
bottom:-6px !important; transform:none !important;
}

#secondary-nav .elementor-nav-menu a.elementor-item::before{
top: auto !important;
bottom: -6px !important;
transform: none !important;
}

.gp-reveal{
  opacity:0;
  transform:translateY(var(--gp-reveal-y, 10px));
}
.gp-reveal.gp-in{
  opacity:1;
  transform:none;
  transition:
    opacity var(--gp-reveal-dur, 520ms) var(--gp-reveal-ease, var(--tf-ease)),
    transform var(--gp-reveal-dur, 520ms) var(--gp-reveal-ease, var(--tf-ease));
  transition-delay:var(--gp-delay, 0ms);
}
.gp-reveal--wc{ will-change:opacity, transform; }

[data-gp-motion="1"] .gp-reveal--io{
  opacity:0;
  transform:translateY(var(--gp-reveal-y, 10px));
}
[data-gp-motion="1"] .gp-reveal--io.gp-in{
  opacity:1;
  transform:none;
  transition:
    opacity var(--gp-reveal-dur, 520ms) var(--gp-reveal-ease, var(--gp-ease, var(--tf-ease))),
    transform var(--gp-reveal-dur, 520ms) var(--gp-reveal-ease, var(--gp-ease, var(--tf-ease)));
  transition-delay:var(--gp-delay, 0ms);
}

[data-gp-motion="1"] .gp-reveal--io.gp-in.gp-reveal--card{
  transition:
    opacity var(--gp-reveal-dur, 520ms) var(--gp-reveal-ease, var(--gp-ease, var(--tf-ease))),
    transform var(--gp-reveal-dur, 520ms) var(--gp-reveal-ease, var(--gp-ease, var(--tf-ease))),
    box-shadow 180ms var(--gp-ease, var(--tf-ease)),
    border-color 180ms var(--gp-ease, var(--tf-ease));
  transition-delay:var(--gp-delay, 0ms);
}

.gp-ui-shell{ width:100%; max-width:1140px; margin-left:auto; margin-right:auto; }
.gp-ui-shell--wide{ max-width:1200px; }
.gp-ui-shell--narrow{ max-width:900px; }

.gp-ui-visually-hidden{
position:absolute !important;
width:1px !important;
height:1px !important;
padding:0 !important;
margin:-1px !important;
overflow:hidden !important;
clip:rect(0,0,0,0) !important;
white-space:nowrap !important;
border:0 !important;
}

.gp-ui-focus:focus-visible{
outline:var(--gp-focus-width,2px) solid var(--gp-focus-color, rgba(255,215,130,.75));
outline-offset:var(--gp-focus-offset,6px);
border-radius:var(--gp-focus-radius,12px);
}
.gp-focus-ring:focus-visible{
outline:var(--gp-focus-width,2px) solid var(--gp-focus-color, rgba(255,215,130,.75));
outline-offset:var(--gp-focus-offset,6px);
border-radius:var(--gp-focus-radius,12px);
}

.gp-ui-card{
background:var(--gp-card-bg, var(--gp-card, rgba(0,0,0,.60)));
border:1px solid var(--gp-card-stroke, var(--gp-stroke, rgba(199,164,94,.24)));
border-radius:var(--gp-card-radius, var(--gp-radius-card, 18px));
box-shadow:var(--gp-card-shadow, 0 0 18px rgba(199,164,94,.18), 0 18px 48px rgba(0,0,0,.45));
backdrop-filter:blur(var(--gp-card-blur, 10px));
-webkit-backdrop-filter:blur(var(--gp-card-blur, 10px));
}
.gp-ui-card--soft{ background:var(--gp-card-soft, rgba(0,0,0,.48)); }
.gp-ui-card--hard{ background:var(--gp-card-hard, rgba(0,0,0,.72)); }

.gp-ui-chip{
display:inline-flex;
align-items:center;
justify-content:center;
padding:var(--gp-chip-pad, 6px 12px);
border-radius:var(--gp-chip-radius, 999px);
border:1px solid rgba(199,164,94,.25);
background:rgba(0,0,0,.35);
color:var(--gp-cream);
text-decoration:none;
user-select:none;
-webkit-tap-highlight-color:transparent;
}
.gp-ui-chip:focus-visible{
outline:var(--gp-focus-width,2px) solid var(--gp-focus-color, rgba(255,215,130,.75));
outline-offset:var(--gp-focus-offset,6px);
border-radius:var(--gp-focus-radius,12px);
}

.gp-ui-btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:.55em;
padding:var(--gp-btn-pad, 10px 20px);
border-radius:var(--gp-btn-radius, 20px);
border:1px solid transparent;
font-family:var(--gp-font-sans);
font-weight:700;
letter-spacing:1px;
line-height:1;
text-decoration:none;
cursor:pointer;
user-select:none;
-webkit-tap-highlight-color:transparent;
transition: transform .3s ease, filter .3s ease, background-color .3s ease, color .3s ease, border-color .3s ease, opacity .3s ease;
will-change:transform;
}
@media (hover:hover){
.gp-ui-btn:hover{
transform:scale(1.06);
filter:drop-shadow(0 0 12px var(--gp-gold-glow));
}
}
.gp-ui-btn:focus-visible{
outline:var(--gp-focus-width,2px) solid var(--gp-focus-color, rgba(255,215,130,.75));
outline-offset:var(--gp-focus-offset,6px);
border-radius:var(--gp-focus-radius,12px);
}

.gp-ui-btn--cta{
background:var(--gp-rose, #C1121F);
color:#FFF;
}
@media (hover:hover){
.gp-ui-btn--cta:hover{
background:var(--gp-rose-hover, #A00E19);
border-color:var(--gp-gold);
color:var(--gp-gold);
}
}

.gp-ui-btn--call{
background:var(--gp-rose, #C1121F);
color:#FFF;
}
@media (hover:hover){
.gp-ui-btn--call:hover{
background:var(--gp-rose-hover, #A00E19);
border-color:var(--gp-gold);
color:var(--gp-gold);
}
}

.gp-ui-btn.gp-btn--gold{
background:linear-gradient(180deg, rgba(255,215,130,0.96), rgba(199,164,94,0.96));
color:rgba(11,11,12,0.96);
border-color:rgba(199,164,94,0.55);
}
@media (hover:hover){
.gp-ui-btn.gp-btn--gold:hover{
border-color:rgba(199,164,94,0.72);
filter:drop-shadow(0 0 12px var(--gp-gold-glow));
}
}
.gp-ui-btn.gp-btn--ghost{
background:rgba(0,0,0,.32);
color:var(--gp-cream);
border-color:rgba(199,164,94,.35);
}
@media (hover:hover){
.gp-ui-btn.gp-btn--ghost:hover{
border-color:rgba(199,164,94,.55);
}
}

.gp-ui-hoverlift{
transition: transform .35s var(--tf-ease), filter .35s var(--tf-ease);
will-change:transform;
}
@media (hover:hover){
.gp-ui-hoverlift:hover{
transform:translateY(-2px);
filter:drop-shadow(0 0 14px rgba(255,215,130,.22));
}
}

.gp-ui-toprule{
position:relative;
}
.gp-ui-toprule::before{
content:"";
position:absolute;
left:16px;
right:16px;
top:0;
height:1px;
background:linear-gradient(90deg, rgba(199,164,94,0.00), rgba(255,215,130,0.65), rgba(199,164,94,0.00));
box-shadow:0 0 16px rgba(199,164,94,.12);
pointer-events:none;
opacity:.95;
}

.gp-ui-sheen{
position:relative;
overflow:hidden;
}


.gp-ui-sheen::after{
content:"";
position:absolute;
inset:-40% -60%;
transform:rotate(18deg) translateX(-70%);
background:linear-gradient(120deg,
rgba(255,255,255,0.00) 0%,
rgba(255,255,255,0.20) 22%,
rgba(255,255,255,0.00) 45%
);
opacity:0;
pointer-events:none;
transition:transform var(--gp-med,520ms) var(--gp-ease), opacity 220ms var(--gp-ease);
}
@media (hover:hover){
.gp-ui-sheen:hover::after{
transform:rotate(18deg) translateX(70%);
opacity:1;
}
}

.gp-fx-spotlight{
position:relative;
overflow:hidden;
isolation:isolate;
}
.gp-fx-spotlight::before{
content:"";
position:absolute;
inset:-40%;
background:radial-gradient(circle at var(--gp-mx, 50%) var(--gp-my, 20%),
rgba(255,215,130,0.22) 0%,
rgba(255,215,130,0.10) 28%,
transparent 62%
);
mix-blend-mode:screen;
filter:blur(0px);
opacity:var(--gp-spotlight-op, 0);
transform:scale(1.02);
transition:opacity var(--gp-med,520ms) var(--gp-ease);
pointer-events:none;
z-index:0;
}

.gp-edge-fade{
position:relative;
isolation:isolate;
}
.gp-edge-fade::before,
.gp-edge-fade::after{
content:"";
position:absolute;
top:0;
bottom:0;
width:var(--gp-edge-fade-w, 34px);
pointer-events:none;
z-index:1;
}
.gp-edge-fade::before{
left:0;
background:linear-gradient(90deg, rgba(0,0,0,0.85), rgba(0,0,0,0.00));
}
.gp-edge-fade::after{
right:0;
background:linear-gradient(270deg, rgba(0,0,0,0.85), rgba(0,0,0,0.00));
}

.gp-ui-reveal{
opacity:0;
transform:translateY(10px);
transition: opacity var(--tf-dur,.45s) var(--tf-ease), transform var(--tf-dur,.45s) var(--tf-ease);
will-change:opacity, transform;
}
.gp-ui-reveal.gp-ui-in{
opacity:1;
transform:translateY(0);
}

.gp-ui-section{
--gp-ui-pad-x:16px;
--gp-ui-pad-y:clamp(52px, 6.6vw, 96px);
padding:var(--gp-ui-pad-y) var(--gp-ui-pad-x);
}
.gp-ui-section--tight{ --gp-ui-pad-y:clamp(36px, 5vw, 72px); }
.gp-ui-section--loose{ --gp-ui-pad-y:clamp(64px, 8vw, 120px); }

.gp-ui-stack{ --gp-ui-stack-gap:16px; }
.gp-ui-stack > * + *{ margin-top:var(--gp-ui-stack-gap); }
.gp-ui-stack--sm{ --gp-ui-stack-gap:10px; }
.gp-ui-stack--lg{ --gp-ui-stack-gap:24px; }

.gp-ui-eyebrow{
display:inline-flex;
align-items:center;
gap:10px;
margin:0;
font-family:var(--gp-font-sans);
font-weight:850;
letter-spacing:.12em;
text-transform:uppercase;
font-size:12px;
color:rgba(255,255,255,.70);
}
.gp-ui-eyebrow::before{
content:"";
width:42px;
height:1px;
background:linear-gradient(90deg, rgba(199,164,94,0.00), rgba(255,215,130,0.85), rgba(199,164,94,0.00));
box-shadow:0 0 16px rgba(199,164,94,.12);
opacity:.95;
flex:0 0 auto;
}

.gp-ui-heading-accent{
position:relative;
display:inline-block;
}
.gp-ui-heading-accent::after{
content:"";
position:absolute;
left:0;
right:0;
bottom:-0.22em;
height:2px;
border-radius:999px;
background:linear-gradient(90deg, rgba(199,164,94,0.00), rgba(255,215,130,0.85), rgba(199,164,94,0.00));
box-shadow:0 0 22px rgba(199,164,94,0.18);
pointer-events:none;
}

.gp-ui-cv-auto{
content-visibility:auto;
contain-intrinsic-size: 1px 900px;
}
.gp-ui-wrap{
  width:100%;
  max-width:1140px;
  margin-left:auto;
  margin-right:auto;
  padding-left:16px;
  padding-right:16px;
}

.gp-ui-grid{
  display:grid;
  gap:clamp(12px, 1.8vw, 18px);
  grid-template-columns:repeat(1, minmax(0,1fr));
}
@media (min-width:680px){
  .gp-ui-grid--2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (min-width:1020px){
  .gp-ui-grid--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}

.gp-ui-text{
  --gp-ui-text: rgba(232,229,222,0.90);
  --gp-ui-text-soft: rgba(232,229,222,0.78);

  color:var(--gp-ui-text);
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:clamp(15.5px, 0.45vw + 14px, 18px);
  line-height:1.65;
  text-shadow:0 1px 14px rgba(0,0,0,0.32);
}
.gp-ui-text p{ margin:0; }
.gp-ui-text p + p{ margin-top:12px; }

.gp-ui-text ul,
.gp-ui-text ol{
  margin:12px 0 0;
  padding-left:18px;
}
.gp-ui-text li{ margin:6px 0; }

.gp-ui-text a{
  color:rgba(255,215,130,0.92);
  text-decoration:none;
  border-bottom:1px solid rgba(255,215,130,0.32);
  transition:border-color var(--tf-dur-fast,.28s) var(--tf-ease), color var(--tf-dur-fast,.28s) var(--tf-ease);
}
.gp-ui-text a:hover{
  color:rgba(255,215,130,1);
  border-bottom-color:rgba(255,215,130,0.70);
}
.gp-ui-text a:focus-visible{
  outline:var(--gp-focus-width,2px) solid var(--gp-focus-color, rgba(255,215,130,.75));
  outline-offset:var(--gp-focus-offset,6px);
  border-radius:6px;
}

.gp-why .gp-why-actions .gp-btn,
.gp-services .gp-services-actions .gp-btn,
.gp-standard .gp-standard-actions .gp-btn,
.gp-pricing .gp-pr-actions .gp-btn{
  flex:1 1 220px;
}

.gp-faq .gp-faq-actions,
.gp-pricing .gp-pr-actions,
.gp-standard .gp-standard-actions,
.gp-services .gp-services-actions,
.gp-why .gp-why-actions{
  align-items:stretch;
}


.gp-site-footer{
  background:linear-gradient(180deg, rgba(9,9,10,.98) 0%, rgba(0,0,0,1) 100%);
  color:var(--gp-cream);
  border-top:1px solid rgba(199,164,94,.22);
  box-shadow:0 -10px 28px rgba(0,0,0,.28), 0 0 18px rgba(199,164,94,.06);
}
.gp-site-footer__inner{
  width:min(1200px, 92vw);
  margin:0 auto;
  padding:clamp(34px,5vw,64px) 0 22px;
}
.gp-site-footer__grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr) minmax(250px,.95fr);
  gap:clamp(20px, 3vw, 40px);
}
.gp-site-footer__eyebrow{
  margin:0 0 12px;
  color:var(--gp-gold);
  font-family:var(--gp-font-sans);
  font-size:12px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.gp-site-footer__title{
  margin:0 0 12px;
  font-family:var(--gp-font-serif);
  font-size:clamp(24px, 2.6vw, 34px);
  line-height:1.14;
  color:var(--gp-gold);
}
.gp-site-footer__text,
.gp-site-footer__contact p,
.gp-site-footer__contact address{
  margin:0 0 14px;
  font-family:var(--gp-font-sans);
  font-size:15px;
  line-height:1.7;
  color:rgba(240,232,219,.92);
  font-style:normal;
}
.gp-site-footer__promises{
  list-style:none;
  margin:18px 0 0;
  padding:0;
  display:grid;
  gap:10px;
}
.gp-site-footer__promises li{
  position:relative;
  padding-left:30px;
  font-family:var(--gp-font-sans);
  font-weight:700;
  font-size:14px;
  color:rgba(246,240,231,.96);
}
.gp-site-footer__promises li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:.1em;
  width:20px;
  height:20px;
  border-radius:999px;
  display:grid;
  place-items:center;
  font-size:12px;
  color:#080808;
  background:radial-gradient(circle, rgba(255,215,130,.98) 0%, rgba(199,164,94,.92) 72%, rgba(199,164,94,.2) 100%);
}
.gp-site-footer h3{
  margin:0 0 14px;
  font-family:var(--gp-font-strong);
  font-size:18px;
  font-weight:800;
  color:var(--gp-cream);
}
.gp-site-footer__nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.gp-site-footer a{
  color:rgba(255,215,130,.94);
  text-decoration:none;
  border-bottom:1px solid rgba(255,215,130,.18);
  transition:color .28s ease, border-color .28s ease, text-shadow .28s ease;
}
.gp-site-footer a:hover{
  color:rgba(255,215,130,1);
  border-bottom-color:rgba(255,215,130,.58);
  text-shadow:0 0 10px rgba(255,215,130,.18);
}
.gp-site-footer__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:16px;
}
.gp-site-footer__actions .gp-ui-btn{
  flex:1 1 220px;
}
.gp-site-footer__bottom{
  margin-top:26px;
  padding-top:18px;
  border-top:1px solid rgba(199,164,94,.18);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px 18px;
  font-family:var(--gp-font-sans);
  font-size:13px;
  color:rgba(240,232,219,.72);
}
.gp-site-footer__bottom p{
  margin:0;
}
@media (max-width:860px){
  .gp-site-footer__grid{
    grid-template-columns:1fr;
  }
}

@media (prefers-reduced-motion:reduce){
.gp-ui-btn,
.gp-ui-reveal,
.gp-ui-hoverlift,
.gp-ui-sheen::after,
.gp-fx-spotlight::before{
transition-duration:.001ms !important;
}


.gp-ui-reveal{
transform:none !important;
}
.gp-reveal,
.gp-reveal.gp-in,
[data-gp-motion="1"] .gp-reveal--io,
[data-gp-motion="1"] .gp-reveal--io.gp-in{
opacity:1 !important;
transform:none !important;
transition:none !important;
}
.gp-fx-spotlight::before{
opacity:0 !important;
}
}

.gp-areas .gp-area-btn--gold{
background:radial-gradient(circle, rgba(255,215,130,0.98) 0%, rgba(199,164,94,0.82) 60%, rgba(199,164,94,0.35) 100%);
}

html, body { overscroll-behavior:auto !important; scroll-behavior:auto !important; }

@media (max-width: 767.98px) {
  body #secondary-nav.is-open ~ #mobile-sticky-cta,
  body #mobile-sticky-cta.visible,
  body #mobile-sticky-cta.is-stuck {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    height: auto !important;
    overflow: visible !important;
    padding: 8px 10px !important;
    z-index: var(--z-cta) !important;
  }

  body #secondary-nav.is-open ~ #tf-mobile-cta-home {
    display: block !important;
    overflow: visible !important;
  }
}


@media (max-width: 767.98px) {
  body #mobile-sticky-cta,
  body #secondary-nav.is-open ~ #mobile-sticky-cta {
    display: flex !important;
    visibility: visible !important;
  }
}


@media (max-width: 767.98px) {
  body.gp-mobile-cta-portaled #mobile-sticky-cta {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    bottom: auto !important;
    z-index: var(--z-cta) !important;
    transform: translate3d(0,0,0) !important;
    -webkit-transform: translate3d(0,0,0) !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
    will-change: transform, top !important;
    contain: paint !important;
  }
}


/* ==========================================================
   PERFECT LOCK — compositor / below-the-fold no-regression pass
   ========================================================== */
.morph-target{
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:transform, opacity;
}

.nav-sparkle,
.glow-layer,
.hover-glow-layer,
#gp-hamburger,
#gp-arrow-down,
#gp-secondary-up,
#gp-secondary-down{
  will-change:transform, opacity;
}

#mobile-sticky-cta{
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}

@supports (content-visibility:auto){
  #gp-services.gp-ui-cv-auto,
  #gp-standard.gp-ui-cv-auto,
  #gp-pricing.gp-ui-cv-auto,
  #gp-areas.gp-ui-cv-auto,
  #gp-faq.gp-ui-cv-auto{
    content-visibility:auto;
    contain-intrinsic-size:1px 1200px;
  }
}


/* Premium booking / quote overlay (theme-owned presentation layer) */
html.gp-premium-modal-open,body.gp-premium-modal-open{overflow:hidden;height:100%;touch-action:none;}
.gp-premium-overlay-root[hidden]{display:none !important;}
.gp-premium-overlay-root{
position:fixed;
inset:0;
z-index:999995;
isolation:isolate;
pointer-events:none;
--gp-overlay-width:min(860px, calc(100vw - 48px));
--gp-overlay-height:min(860px, calc(100dvh - 32px));
}
.gp-premium-overlay-root.is-active{pointer-events:auto;}
.gp-premium-overlay__backdrop{
position:absolute;
inset:0;
background:radial-gradient(circle at 50% 50%, rgba(255,215,130,.10) 0%, rgba(10,10,12,.36) 42%, rgba(10,10,12,.58) 100%);
backdrop-filter:blur(22px) saturate(115%);
-webkit-backdrop-filter:blur(22px) saturate(115%);
opacity:0;
transition:opacity .42s var(--tf-ease);
}
.gp-premium-overlay-root.is-active .gp-premium-overlay__backdrop{opacity:1;}
.gp-premium-overlay__viewport{
position:absolute;
inset:0;
display:grid;
place-items:center;
padding:16px;
pointer-events:none;
}
.gp-premium-overlay__fx{
position:absolute;
inset:0;
pointer-events:none;
overflow:hidden;
}
.gp-premium-overlay__orb{
position:absolute;
left:50%;
top:50%;
width:72px;
height:72px;
border-radius:999px;
transform:translate(-50%,-50%) scale(.08);
opacity:0;
background:
radial-gradient(circle, rgba(255,215,130,.96) 0%, rgba(255,215,130,.42) 18%, rgba(199,164,94,.18) 42%, rgba(199,164,94,0) 76%),
linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,0));
filter:drop-shadow(0 0 24px rgba(255,215,130,.72)) drop-shadow(0 0 78px rgba(199,164,94,.46));
}
.gp-premium-overlay__sparkles{
position:absolute;
inset:0;
}
.gp-premium-overlay__sparkle{
position:absolute;
border-radius:999px;
background:radial-gradient(circle, rgba(255,255,255,.92) 0%, rgba(255,215,130,.88) 32%, rgba(255,215,130,0) 72%);
opacity:0;
transform:scale(.3);
box-shadow:0 0 20px rgba(255,215,130,.55);
}
.gp-premium-overlay__shell{
position:relative;
width:var(--gp-overlay-width);
max-height:var(--gp-overlay-height);
opacity:0;
transform:translateY(18px) scale(.98);
pointer-events:none;
}
.gp-premium-overlay__shell.is-active{pointer-events:auto;}
.gp-premium-overlay__frame{
position:relative;
display:flex;
flex-direction:column;
max-height:var(--gp-overlay-height);
overflow:hidden;
padding:clamp(18px, 2.3vw, 28px);
border-radius:32px;
border:1px solid rgba(199,164,94,.28);
background:
linear-gradient(180deg, rgba(18,18,22,.78) 0%, rgba(10,10,12,.82) 52%, rgba(8,8,10,.84) 100%),
radial-gradient(circle at top, rgba(199,164,94,.12), rgba(199,164,94,0) 58%);
backdrop-filter:blur(28px) saturate(118%);
-webkit-backdrop-filter:blur(28px) saturate(118%);
box-shadow:
0 0 24px rgba(255,215,130,.10),
0 28px 90px rgba(0,0,0,.44),
0 0 0 1px rgba(255,255,255,.06) inset;
}
.gp-premium-overlay__frame::before{
content:"";
position:absolute;
inset:-1px;
border-radius:inherit;
pointer-events:none;
background:linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,0) 18%, rgba(255,215,130,.06) 50%, rgba(255,255,255,0) 82%);
mix-blend-mode:screen;
opacity:.55;
}
.gp-premium-overlay__beam{
position:absolute;
inset:0;
pointer-events:none;
overflow:hidden;
border-radius:inherit;
}
.gp-premium-overlay__beam::after{
content:"";
position:absolute;
top:-20%;
bottom:-20%;
left:-42%;
width:38%;
transform:skewX(-18deg);
background:linear-gradient(115deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.08) 28%, rgba(255,255,255,.62) 50%, rgba(255,255,255,.08) 70%, rgba(255,255,255,0) 100%);
opacity:0;
}
.gp-premium-overlay__x{
position:absolute;
right:clamp(18px, 2vw, 26px);
top:clamp(16px, 1.8vw, 22px);
z-index:4;
width:48px;
height:48px;
border-radius:999px;
border:1px solid rgba(199,164,94,.24);
background:rgba(0,0,0,.28);
color:var(--gp-gold-light);
font:400 30px/1 var(--gp-font-serif);
cursor:pointer;
backdrop-filter:blur(10px);
-webkit-backdrop-filter:blur(10px);
transition:transform .25s var(--tf-ease), filter .25s var(--tf-ease), border-color .25s var(--tf-ease);
}
.gp-premium-overlay__x:hover{transform:scale(1.06);filter:drop-shadow(0 0 12px var(--gp-gold-glow));border-color:rgba(255,215,130,.46);}
.gp-premium-overlay__intro{
position:relative;
z-index:1;
padding-right:72px;
margin-bottom:18px;
}
.gp-premium-overlay__eyebrow{
margin:0 0 10px;
font:700 11px/1.1 var(--gp-font-sans);
letter-spacing:.22em;
text-transform:uppercase;
color:rgba(249,245,238,.66);
}
.gp-premium-overlay__title{
margin:0;
font-family:var(--gp-font-serif);
font-size:clamp(30px, 3vw + 12px, 52px);
line-height:1.05;
color:var(--gp-cream);
text-shadow:0 0 20px rgba(255,215,130,.06);
}
.gp-premium-overlay__lede{
margin:12px 0 0;
max-width:62ch;
font:500 clamp(14px, .65vw + 13px, 17px)/1.7 var(--gp-font-sans);
color:rgba(249,245,238,.78);
}
.gp-premium-overlay__recent,
.gp-premium-overlay__aftercare{
position:relative;
z-index:1;
margin:0 0 18px;
padding:14px 16px;
border-radius:16px;
border:1px solid rgba(199,164,94,.22);
background:rgba(255,255,255,.03);
color:rgba(249,245,238,.82);
font:500 14px/1.65 var(--gp-font-sans);
}
.gp-premium-overlay__recent strong{display:block;margin-bottom:4px;color:var(--gp-gold-light);font:700 11px/1.2 var(--gp-font-sans);letter-spacing:.16em;text-transform:uppercase;}
.gp-premium-overlay__recent span{display:block;}
.gp-premium-overlay__scroll{
position:relative;
z-index:1;
overflow:auto;
padding-right:4px;
}
.gp-premium-overlay__scroll::-webkit-scrollbar{width:10px;}
.gp-premium-overlay__scroll::-webkit-scrollbar-thumb{background:rgba(199,164,94,.25);border-radius:999px;}
.gp-premium-overlay__footer-actions{
position:relative;
z-index:1;
display:flex;
justify-content:center;
padding-top:14px;
}
.gp-premium-overlay__close-cta{
min-width:180px;
--gp-btn-radius:999px;
}
.gp-premium-overlay__form-host .gpb-form-wrap{position:static !important;}
.gp-premium-overlay__form-host .gpb-form-wrap .gpb-launch-button{display:none !important;}
.gp-premium-overlay__form-host .gpb-form-wrap .gpb-modal,
.gp-premium-overlay__form-host .gpb-form-wrap .gpb-modal.gpb-hidden{display:block !important;position:static !important;}
.gp-premium-overlay__form-host .gpb-form-wrap .gpb-modal__backdrop,
.gp-premium-overlay__form-host .gpb-form-wrap .gpb-modal__close{display:none !important;}
.gp-premium-overlay__form-host .gpb-form-wrap .gpb-modal__panel{
position:static !important;
left:auto !important;
top:auto !important;
transform:none !important;
width:auto !important;
max-height:none !important;
overflow:visible !important;
background:transparent !important;
border:0 !important;
padding:0 !important;
box-shadow:none !important;
}
.gp-premium-overlay__form-host .gpb-title{display:none !important;}
.gp-premium-overlay__form-host .gpb-form{
display:grid;
gap:1rem;
}
.gp-premium-overlay__form-host .gpb-form label,
.gp-premium-overlay__form-host .gpb-card,
.gp-premium-overlay__form-host .gpb-help,
.gp-premium-overlay__form-host .gpb-service-area-message,
.gp-premium-overlay__form-host .gpb-warning-box,
.gp-premium-overlay__form-host .gpb-notice,
.gp-premium-overlay__form-host .gpb-slot,
.gp-premium-overlay__form-host .gpb-availability-prompt{
font-family:var(--gp-font-sans);
}
.gp-premium-overlay__form-host .gpb-card,
.gp-premium-overlay__form-host .gpb-warning-box,
.gp-premium-overlay__form-host .gpb-slot,
.gp-premium-overlay__form-host .gpb-notice,
.gp-premium-overlay__form-host .gpb-booking-wrap{
background:rgba(255,255,255,.03);
border:1px solid rgba(199,164,94,.18);
color:var(--gp-cream);
box-shadow:none;
}
.gp-premium-overlay__form-host .gpb-booking-wrap{max-width:none;margin:0;padding:0;border:0;background:transparent;}
.gp-premium-overlay__form-host .gpb-card__eyebrow{color:var(--gp-gold-light);}
.gp-premium-overlay__form-host .gpb-help{color:rgba(249,245,238,.62);}
.gp-premium-overlay__form-host .gpb-form label{color:var(--gp-cream);font-weight:700;}
.gp-premium-overlay__form-host .gpb-form input,
.gp-premium-overlay__form-host .gpb-form textarea,
.gp-premium-overlay__form-host .gpb-form select{
background:rgba(0,0,0,.42);
border:1px solid rgba(199,164,94,.22);
color:var(--gp-cream);
border-radius:14px;
box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.gp-premium-overlay__form-host .gpb-form input::placeholder,
.gp-premium-overlay__form-host .gpb-form textarea::placeholder{color:rgba(249,245,238,.38);}
.gp-premium-overlay__form-host .gpb-form input:focus,
.gp-premium-overlay__form-host .gpb-form textarea:focus,
.gp-premium-overlay__form-host .gpb-form select:focus{
outline:none;
border-color:rgba(255,215,130,.58);
box-shadow:0 0 0 2px rgba(255,215,130,.12), inset 0 1px 0 rgba(255,255,255,.04);
}
.gp-premium-overlay__form-host .gpb-submit,
.gp-premium-overlay__form-host .button.gpb-toggle-more{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:48px;
padding:0 22px;
border-radius:999px;
border:1px solid rgba(199,164,94,.22);
background:linear-gradient(180deg, rgba(193,18,31,.98), rgba(144,9,20,.98));
color:#fff;
font-weight:800;
letter-spacing:.05em;
box-shadow:0 16px 34px rgba(0,0,0,.22);
}
.gp-premium-overlay__form-host .button.gpb-toggle-more{background:rgba(255,255,255,.04);color:var(--gp-cream);}
.gp-premium-overlay__form-host .gpb-submit:hover,
.gp-premium-overlay__form-host .button.gpb-toggle-more:hover{filter:brightness(1.03) drop-shadow(0 0 10px var(--gp-gold-glow));}
.gp-premium-overlay__form-host .gpb-check{color:var(--gp-cream);}
.gp-premium-overlay__form-host .gpb-check input{accent-color:var(--gp-rose);}
.gp-premium-overlay__form-host .gpb-service-area-message.is-ok{color:#9ee0a8;}
.gp-premium-overlay__form-host .gpb-service-area-message.is-warn{color:#ffb4b8;}
.gp-premium-overlay__form-host .gpb-warning-box{border-color:rgba(255,215,130,.26);color:rgba(249,245,238,.84);}
.gp-premium-overlay__form-host .gpb-notice{border-radius:18px;padding:16px 18px;}
.gp-premium-overlay__form-host .gpb-notice--success{background:linear-gradient(180deg, rgba(255,215,130,.95), rgba(199,164,94,.92));border-color:rgba(255,215,130,.55);color:rgba(17,17,18,.94);font-weight:800;}
.gp-premium-overlay__form-host .gpb-notice--error{background:rgba(193,18,31,.16);border-color:rgba(193,18,31,.4);color:#ffd9dc;}
.gp-premium-overlay__form-host .gpb-slot.is-primary{border-color:rgba(255,215,130,.58);box-shadow:0 0 0 1px rgba(255,215,130,.14) inset;}
.gp-premium-overlay__form-host .gpb-slot input{accent-color:var(--gp-rose);}
.gp-premium-overlay__form-host .gpb-grid--three{grid-template-columns:repeat(3,minmax(0,1fr));}
.gp-premium-overlay__form-host .gpb-grid--two{grid-template-columns:repeat(2,minmax(0,1fr));}
.gp-premium-overlay__form-host small{color:rgba(249,245,238,.58);}
.gp-premium-overlay-root[data-phase="opening"] .gp-premium-overlay__orb,
.gp-premium-overlay-root[data-phase="revealing"] .gp-premium-overlay__orb,
.gp-premium-overlay-root[data-phase="open"] .gp-premium-overlay__orb,
.gp-premium-overlay-root[data-phase="closing"] .gp-premium-overlay__orb{opacity:1;}
.gp-premium-overlay-root[data-phase="opening"] .gp-premium-overlay__orb{animation:gpPremiumOrbOpen 760ms cubic-bezier(.24,.88,.23,1) forwards;}
.gp-premium-overlay-root[data-phase="revealing"] .gp-premium-overlay__orb,
.gp-premium-overlay-root[data-phase="open"] .gp-premium-overlay__orb{width:var(--gp-overlay-width);height:var(--gp-overlay-height);border-radius:32px;transform:translate(-50%,-50%) scale(1);opacity:.92;}
.gp-premium-overlay-root[data-phase="closing"] .gp-premium-overlay__orb{animation:gpPremiumOrbClose 420ms cubic-bezier(.55,.08,.68,.53) forwards;}
.gp-premium-overlay-root[data-phase="revealing"] .gp-premium-overlay__beam::after,
.gp-premium-overlay-root[data-phase="open"] .gp-premium-overlay__beam::after,
.gp-premium-overlay-root[data-success="1"] .gp-premium-overlay__beam::after{animation:gpPremiumSweep 1.05s cubic-bezier(.25,.8,.25,1) forwards;}
.gp-premium-overlay-root[data-phase="revealing"] .gp-premium-overlay__shell.is-active,
.gp-premium-overlay-root[data-phase="open"] .gp-premium-overlay__shell.is-active,
.gp-premium-overlay-root[data-success="1"] .gp-premium-overlay__shell.is-active{
opacity:1;
transform:translateY(0) scale(1);
transition:opacity .34s var(--tf-ease), transform .34s var(--tf-ease);
}
.gp-premium-overlay-root[data-phase="opening"] .gp-premium-overlay__sparkle,
.gp-premium-overlay-root[data-phase="revealing"] .gp-premium-overlay__sparkle,
.gp-premium-overlay-root[data-success="1"] .gp-premium-overlay__sparkle{
animation:gpPremiumSparkle var(--gp-spark-blink,4.8s) ease-in-out infinite, gpPremiumSparkleFall var(--gp-spark-fall,18s) linear infinite;
animation-delay:var(--gp-spark-delay,0s), var(--gp-spark-delay,0s);
}
.gp-premium-overlay-root[data-success="1"] .gp-premium-overlay__title,
.gp-premium-overlay-root[data-success="1"] .gp-premium-overlay__lede{color:var(--gp-gold-light);text-shadow:0 0 12px rgba(255,215,130,.24);}
.gp-premium-overlay-root[data-success="1"] .gp-premium-overlay__frame{box-shadow:0 0 36px rgba(255,215,130,.22), 0 38px 120px rgba(0,0,0,.65), 0 0 0 1px rgba(255,255,255,.03) inset;}
@keyframes gpPremiumOrbOpen{
0%{width:72px;height:72px;border-radius:999px;transform:translate(-50%,-50%) scale(.08);opacity:.86;}
18%{width:112px;height:112px;border-radius:999px;transform:translate(-50%,-50%) scale(.52);opacity:1;}
56%{width:calc(var(--gp-overlay-width) * .36);height:calc(var(--gp-overlay-width) * .36);border-radius:999px;transform:translate(-50%,-50%) scale(.9);opacity:1;}
100%{width:var(--gp-overlay-width);height:var(--gp-overlay-height);border-radius:32px;transform:translate(-50%,-50%) scale(1);opacity:.92;}
}
@keyframes gpPremiumOrbClose{
0%{width:var(--gp-overlay-width);height:var(--gp-overlay-height);border-radius:32px;transform:translate(-50%,-50%) scale(1);opacity:.92;}
100%{width:84px;height:84px;border-radius:999px;transform:translate(-50%,-50%) scale(.12);opacity:0;}
}
@keyframes gpPremiumSweep{
0%{left:-48%;opacity:0;}
18%{opacity:.96;}
100%{left:126%;opacity:0;}
}
@keyframes gpPremiumSparkle{
0%,100%{opacity:0;transform:scale(.25);}
14%{opacity:.75;transform:scale(1);}
24%{opacity:.25;}
}
@keyframes gpPremiumSparkleFall{
0%{translate:0 0;}
100%{translate:0 120px;}
}
@media (prefers-reduced-motion: reduce){
.gp-premium-overlay__orb,
.gp-premium-overlay__sparkle,
.gp-premium-overlay__beam::after,
.gp-premium-overlay__shell{animation:none !important;transition:none !important;}
.gp-premium-overlay-root.is-active .gp-premium-overlay__backdrop{opacity:1;}
.gp-premium-overlay-root.is-active .gp-premium-overlay__shell.is-active{opacity:1;transform:none;}
.gp-premium-overlay-root.is-active .gp-premium-overlay__orb{width:var(--gp-overlay-width);height:var(--gp-overlay-height);border-radius:32px;transform:translate(-50%,-50%);opacity:.92;}
}
@media (max-width: 767.98px){
.gp-premium-overlay-root{--gp-overlay-width:min(100vw - 16px, 980px);--gp-overlay-height:min(100dvh - 16px, 980px);}
.gp-premium-overlay__viewport{padding:10px;}
.gp-premium-overlay__frame{padding:16px;border-radius:26px;}
.gp-premium-overlay__intro{padding-right:56px;margin-bottom:14px;}
.gp-premium-overlay__title{font-size:clamp(26px, 8vw, 38px);}
.gp-premium-overlay__x{width:42px;height:42px;font-size:28px;right:12px;top:12px;}
.gp-premium-overlay__form-host .gpb-grid--two,
.gp-premium-overlay__form-host .gpb-grid--three{grid-template-columns:1fr;}
.gp-premium-overlay__form-host .gpb-submit,
.gp-premium-overlay__form-host .button.gpb-toggle-more,
.gp-premium-overlay__close-cta{width:100%;}
}


/* === Premium booking overlay lazy-load polish (v0.9.4-507) === */
.gp-premium-overlay__loader{display:grid;place-items:center;gap:14px;min-height:240px;padding:28px 18px;border-radius:24px;background:linear-gradient(180deg,rgba(255,215,130,.08),rgba(255,215,130,.02));border:1px solid rgba(255,215,130,.18);text-align:center;}
.gp-premium-overlay__loader[hidden]{display:none !important;}
.gp-premium-overlay__loader-dot{width:18px;height:18px;border-radius:999px;background:radial-gradient(circle,var(--gp-gold-light) 0%, rgba(255,215,130,.82) 32%, rgba(255,215,130,.16) 72%, rgba(255,215,130,0) 100%);box-shadow:0 0 18px rgba(255,215,130,.45),0 0 42px rgba(255,215,130,.18);animation:gpPremiumLoaderPulse 1.2s ease-in-out infinite;}
.gp-premium-overlay__loader-text{margin:0;color:rgba(249,245,238,.88);font-size:15px;line-height:1.6;}
.gp-premium-overlay__loader.is-error .gp-premium-overlay__loader-dot{background:radial-gradient(circle,rgba(193,18,31,.95) 0%, rgba(193,18,31,.35) 58%, rgba(193,18,31,0) 100%);box-shadow:0 0 18px rgba(193,18,31,.35),0 0 38px rgba(193,18,31,.16);}
.gp-premium-overlay__success-summary{margin-top:14px;padding:14px 16px;border-radius:18px;background:linear-gradient(180deg,rgba(255,215,130,.12),rgba(255,215,130,.04));border:1px solid rgba(255,215,130,.24);color:var(--gp-cream);display:grid;gap:4px;}
.gp-premium-overlay__success-summary strong{color:var(--gp-gold-light);font-size:12px;letter-spacing:.12em;text-transform:uppercase;}
.gp-premium-overlay__success-summary span{font-size:16px;line-height:1.5;}
.gp-premium-overlay__form-host .gpb-slot.gpb-hidden,
.gp-premium-overlay__form-host .gpb-card.gpb-hidden,
.gp-premium-overlay__form-host .gpb-referral-fields.gpb-hidden,
.gp-premium-overlay__form-host [data-gpb-qualifying-wrap].gpb-hidden{display:none !important;}
.gp-premium-overlay__form-host .gpb-slot.is-primary{position:relative;padding:1.05rem 1.1rem 1.1rem;border-color:rgba(255,215,130,.78);box-shadow:0 0 0 1px rgba(255,215,130,.24) inset,0 0 28px rgba(255,215,130,.14);animation:gpPremiumPrimarySlotGlow 1.8s ease-in-out infinite;}
.gp-premium-overlay__form-host .gpb-slot.is-primary span{font-size:1.02rem;font-weight:800;color:var(--gp-cream);}
.gp-premium-overlay__form-host .gpb-slot.gpb-slot--alt{border-color:rgba(255,255,255,.12);box-shadow:none;}
.gp-premium-overlay__form-host .gpb-notice--success{margin-bottom:14px;}
@keyframes gpPremiumLoaderPulse{0%,100%{transform:scale(.92);opacity:.88;}50%{transform:scale(1.12);opacity:1;}}
@keyframes gpPremiumPrimarySlotGlow{0%,100%{box-shadow:0 0 0 1px rgba(255,215,130,.24) inset,0 0 22px rgba(255,215,130,.12);}50%{box-shadow:0 0 0 1px rgba(255,215,130,.34) inset,0 0 34px rgba(255,215,130,.24),0 0 52px rgba(255,215,130,.12);}}
@media (max-width:767.98px){
  .gp-premium-overlay__success-summary{padding:13px 14px;}
  .gp-premium-overlay__loader{min-height:200px;padding:22px 16px;}
}


/* Phase 118 overlay bridge */
.gp-premium-overlay__form-host .gpb-nav-button,
.gp-premium-overlay__form-host .gpb-day-chip,
.gp-premium-overlay__form-host .gpb-day-option,
.gp-premium-overlay__form-host .gpb-secondary-button,
.gp-premium-overlay__form-host .gpb-optional-toggle{
  background:rgba(255,255,255,.04);
  color:var(--gp-cream);
  border:1px solid rgba(255,215,130,.22);
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.gp-premium-overlay__form-host .gpb-nav-button:hover,
.gp-premium-overlay__form-host .gpb-day-chip:hover,
.gp-premium-overlay__form-host .gpb-day-option:hover,
.gp-premium-overlay__form-host .gpb-secondary-button:hover,
.gp-premium-overlay__form-host .gpb-optional-toggle:hover{filter:brightness(1.03) drop-shadow(0 0 10px var(--gp-gold-glow));}
.gp-premium-overlay__form-host .gpb-day-option.is-current{background:rgba(255,215,130,.16);border-color:rgba(255,215,130,.38);color:var(--gp-gold-light);}
.gp-premium-overlay__form-host .gpb-availability-nav{justify-content:space-between;gap:.75rem;}
.gp-premium-overlay__form-host .gpb-day-chip{flex:1;}
.gp-premium-overlay__form-host .gpb-slot.is-featured{position:relative;min-height:108px;border-color:rgba(255,215,130,.78);box-shadow:0 0 0 1px rgba(255,215,130,.24) inset,0 0 28px rgba(255,215,130,.14);animation:gpPremiumPrimarySlotGlow 1.8s ease-in-out infinite;background:linear-gradient(180deg,rgba(255,215,130,.09),rgba(255,215,130,.03));}
.gp-premium-overlay__form-host .gpb-slot.is-secondary,
.gp-premium-overlay__form-host .gpb-slot.is-tertiary{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.12);box-shadow:none;}
.gp-premium-overlay__form-host .gpb-slot.is-selected{outline:2px solid rgba(255,215,130,.78);outline-offset:2px;}
.gp-premium-overlay__form-host .gpb-slot__time{color:var(--gp-cream);font-weight:800;}
.gp-premium-overlay__form-host .gpb-slot__date{color:rgba(249,245,238,.62);}
.gp-premium-overlay__form-host .gpb-returning-customer,
.gp-premium-overlay__form-host .gpb-optional-panel{background:rgba(255,215,130,.06);border-color:rgba(255,215,130,.2);color:var(--gp-cream);}
.gp-premium-overlay__form-host .gpb-success-actions{display:flex;flex-wrap:wrap;gap:.75rem;}
.gp-premium-overlay__form-host .gpb-success-detail strong{color:var(--gp-gold-light);}
@media (max-width:767.98px){
  .gp-premium-overlay__form-host .gpb-availability-nav{gap:.5rem;}
  .gp-premium-overlay__form-host .gpb-day-chip,
  .gp-premium-overlay__form-host .gpb-nav-button,
  .gp-premium-overlay__form-host .gpb-secondary-button,
  .gp-premium-overlay__form-host .gpb-optional-toggle{width:100%;}
  .gp-premium-overlay__form-host .gpb-optional-row{grid-template-columns:1fr;}
}


/* Phase 128 booking conversion layout */
.gp-premium-overlay__form-host .gpb-title{display:none;}
.gp-premium-overlay__form-host .gpb-stepper{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 .85rem;}
.gp-premium-overlay__form-host .gpb-stepper__button{display:inline-flex;align-items:center;gap:.55rem;padding:.78rem 1.08rem;border-radius:999px;border:1px solid rgba(255,215,130,.22);background:rgba(255,255,255,.04);color:var(--gp-cream);font-weight:700;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.18);}
.gp-premium-overlay__form-host .gpb-stepper__button.is-current{background:rgba(255,215,130,.16);border-color:rgba(255,215,130,.42);color:var(--gp-gold-light);}
.gp-premium-overlay__form-host .gpb-stepper__button.is-complete{border-color:rgba(255,215,130,.5);}
.gp-premium-overlay__form-host .gpb-stepper__num{display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border-radius:999px;background:rgba(255,255,255,.12);font-size:.82rem;font-weight:800;}
.gp-premium-overlay__form-host .gpb-step{display:none;gap:1rem;}
.gp-premium-overlay__form-host .gpb-step.is-active{display:grid;}
.gp-premium-overlay__form-host .gpb-step__kicker{margin:0 0 -.35rem;color:var(--gp-gold-light);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.gp-premium-overlay__form-host .gpb-step__title{margin:0;color:var(--gp-cream);font-size:1.12rem;line-height:1.3;}
.gp-premium-overlay__form-host .gpb-step__lede{margin:0;color:rgba(249,245,238,.72);font-size:.95rem;line-height:1.45;}
.gp-premium-overlay__form-host .gpb-step-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:.35rem;}
.gp-premium-overlay__form-host .gpb-step-actions .gpb-secondary-button[data-gpb-step-next="1"]{background:rgba(255,215,130,.14);border-color:rgba(255,215,130,.42);color:var(--gp-cream);}
.gp-premium-overlay__form-host .gpb-card--availability{display:flex;flex-direction:column;gap:1rem;padding:1.15rem 1.25rem;background:linear-gradient(180deg,rgba(255,215,130,.06),rgba(255,215,130,.03));border-color:rgba(255,215,130,.18);}
.gp-premium-overlay__form-host .gpb-availability-prompt{font-size:1.1rem;line-height:1.55;margin:0;color:var(--gp-cream);}
.gp-premium-overlay__form-host .gpb-slot-list--featured{display:grid;grid-template-columns:1fr;gap:.9rem;order:2;}
.gp-premium-overlay__form-host .gpb-slot-list--featured .gpb-slot.is-featured{min-height:132px;padding:1.45rem 1.55rem;order:1;}
.gp-premium-overlay__form-host .gpb-slot-list--featured .gpb-slot.is-featured .gpb-slot__time{font-size:1.34rem;line-height:1.12;}
.gp-premium-overlay__form-host .gpb-slot-list--featured .gpb-slot.is-secondary{min-height:82px;padding:1rem 1.1rem;}
.gp-premium-overlay__form-host .gpb-slot-list--featured .gpb-slot__date{display:block;margin-top:.28rem;}
.gp-premium-overlay__form-host .gpb-availability-nav{order:5;justify-content:center;gap:.85rem;margin-top:.15rem;}
.gp-premium-overlay__form-host .gpb-day-chip{min-width:320px;justify-content:center;}
.gp-premium-overlay__form-host .gpb-day-picker{order:6;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;}
.gp-premium-overlay__form-host [data-gpb-more-today="1"]{order:4;align-self:flex-start;}
.gp-premium-overlay__form-host .gpb-emergency-button{display:inline-flex;align-items:center;justify-content:center;padding:.95rem 1.25rem;border-radius:999px;border:1px solid rgba(193,18,31,.42);background:linear-gradient(180deg,#c1121f,#8a0b13);color:#fffdfa;font-weight:800;cursor:pointer;box-shadow:0 0 0 1px rgba(193,18,31,.12) inset,0 18px 32px rgba(193,18,31,.18);}
.gp-premium-overlay__form-host .gpb-emergency-button.is-active{box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 0 28px rgba(193,18,31,.32);}
.gp-premium-overlay__form-host .gpb-emergency-help{margin:0;color:rgba(249,245,238,.78);font-size:.92rem;line-height:1.5;}
.gp-premium-overlay__form-host .gpb-is-emergency .gpb-card--availability .gpb-slot-list--featured,
.gp-premium-overlay__form-host .gpb-is-emergency .gpb-card--availability [data-gpb-more-today],
.gp-premium-overlay__form-host .gpb-is-emergency .gpb-card--availability .gpb-slot-list--more,
.gp-premium-overlay__form-host .gpb-is-emergency .gpb-card--availability .gpb-availability-nav,
.gp-premium-overlay__form-host .gpb-is-emergency .gpb-card--availability .gpb-day-picker,
.gp-premium-overlay__form-host .gpb-is-emergency .gpb-card--availability .gpb-availability-prompt{display:none !important;}
@media (min-width:901px){
  .gp-premium-overlay__form-host .gpb-slot-list--featured{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gp-premium-overlay__form-host .gpb-slot-list--featured .gpb-slot.is-featured{grid-column:1 / -1;}
}
@media (max-width:767.98px){
  .gp-premium-overlay__form-host .gpb-day-chip{min-width:0;width:100%;}
  .gp-premium-overlay__form-host .gpb-stepper{display:grid;grid-template-columns:1fr 1fr;}
  .gp-premium-overlay__form-host .gpb-step-actions{flex-direction:column;}
  .gp-premium-overlay__form-host .gpb-step-actions .gpb-secondary-button,
  .gp-premium-overlay__form-host .gpb-step-actions .gpb-submit{width:100%;margin-left:0;}
}

/* Phase 129 booking layout refinement */
.gp-premium-overlay__form-host .gpb-stepper,
.gp-premium-overlay__form-host .gpb-step__kicker,
.gp-premium-overlay__form-host .gpb-step__title,
.gp-premium-overlay__form-host .gpb-step__lede{display:none !important;}
.gp-premium-overlay__form-host .gpb-card--availability{display:grid !important;gap:1rem;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--featured{display:grid !important;grid-template-columns:1fr !important;gap:1rem;justify-items:center;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--featured .gpb-slot.is-featured{order:0 !important;width:min(100%,960px);min-height:138px;padding:1.55rem 1.7rem;}
.gp-premium-overlay__form-host .gpb-card--availability [data-gpb-more-today="1"]{justify-self:center;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;justify-items:center;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more .gpb-slot{width:100%;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more.gpb-hidden,.gp-premium-overlay__form-host .gpb-card--availability .gpb-availability-nav.gpb-hidden,.gp-premium-overlay__form-host .gpb-card--availability .gpb-day-picker.gpb-hidden{display:none !important;}
.gp-premium-overlay__form-host .gpb-step-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.gp-premium-overlay__form-host .gpb-step-actions--availability .gpb-emergency-button{min-width:260px;}
@media (max-width:760px){
  .gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more{grid-template-columns:1fr;}
  .gp-premium-overlay__form-host .gpb-step-actions{flex-direction:column;align-items:stretch;}
}

/* Phase 130 booking shell alignment */
.gp-premium-overlay__form-host .gpb-card--availability{display:flex !important;flex-direction:column;align-items:stretch;gap:1rem;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-availability-prompt{order:1;margin:0;text-align:left;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--featured{order:2;display:grid !important;grid-template-columns:1fr !important;gap:1rem;justify-items:center;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--featured .gpb-slot.is-featured{width:min(100%,960px);min-height:144px;padding:1.6rem 1.8rem;order:0 !important;}
.gp-premium-overlay__form-host .gpb-card--availability [data-gpb-more-today="1"]{order:3;align-self:center;justify-self:center;min-width:240px;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more{order:4;display:grid;grid-template-columns:1fr;gap:.85rem;justify-items:center;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more .gpb-slot{width:min(100%,820px);}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more.gpb-hidden{display:none !important;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-availability-nav{order:5;display:flex;justify-content:center;align-items:center;gap:.85rem;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-day-chip{min-width:320px;justify-content:center;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-day-picker{order:6;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-day-picker.gpb-hidden,.gp-premium-overlay__form-host .gpb-card--availability .gpb-availability-nav.gpb-hidden{display:none !important;}
.gp-premium-overlay__form-host .gpb-step-actions--availability{display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.gp-premium-overlay__form-host .gpb-step-actions--availability .gpb-emergency-button{margin-right:auto;min-width:260px;}
.gp-premium-overlay__form-host .gpb-step-actions--availability .gpb-secondary-button[data-gpb-step-next="1"]{margin-left:auto;min-width:180px;}
.gp-premium-overlay__footer-actions[hidden],
.gp-premium-overlay__close-cta[hidden],
.gp-premium-overlay__aftercare[hidden],
.gp-premium-overlay__success-summary[hidden]{display:none !important;}
.gp-premium-overlay__form-host .gpb-step-actions__spacer{display:none !important;}
@media (max-width:760px){
  .gp-premium-overlay__form-host .gpb-step-actions--availability{flex-direction:column;align-items:stretch;}
  .gp-premium-overlay__form-host .gpb-step-actions--availability .gpb-emergency-button,
  .gp-premium-overlay__form-host .gpb-step-actions--availability .gpb-secondary-button[data-gpb-step-next="1"]{margin:0;min-width:0;width:100%;}
  .gp-premium-overlay__form-host .gpb-card--availability .gpb-day-chip{min-width:0;width:100%;}
}

.gp-premium-overlay__stack-badge{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:6px 10px;border-radius:999px;background:rgba(255,248,238,.08);border:1px solid rgba(255,248,238,.16);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,248,238,.8);}
.gp-premium-overlay__stack-badge code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:rgba(255,248,238,.08);padding:2px 6px;border-radius:999px;color:#fff8ee;}

.gp-premium-overlay__form-host .gpb-selected-summary{background:rgba(255,248,231,.08);border-color:rgba(255,215,130,.24);box-shadow:0 16px 28px rgba(0,0,0,.16),0 0 0 1px rgba(255,215,130,.04) inset;}
.gp-premium-overlay__form-host .gpb-selected-summary__label{color:var(--gp-gold-light);}
.gp-premium-overlay__form-host .gpb-selected-summary__value{color:var(--gp-cream);}
.gp-premium-overlay__form-host .gpb-selected-summary .gpb-secondary-button{background:rgba(255,255,255,.04);color:var(--gp-cream);border-color:rgba(255,255,255,.14);}
.gp-premium-overlay__form-host .gpb-selected-summary .gpb-secondary-button:hover{filter:brightness(1.05) drop-shadow(0 0 8px var(--gp-gold-glow));}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--featured .gpb-slot.is-featured{max-width:760px;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-slot-list--more .gpb-slot{max-width:620px;}
.gp-premium-overlay__form-host .gpb-card--availability [data-gpb-more-today="1"]{margin-top:.2rem;}
.gp-premium-overlay__form-host .gpb-card--availability .gpb-availability-nav{margin-top:.15rem;}


/* Phase 157 booking glass/mobile polish */
@media (min-width: 768px){
  .gp-premium-overlay-root{--gp-overlay-width:min(820px, calc(100vw - 64px));--gp-overlay-height:min(820px, calc(100dvh - 48px));}
}
@media (max-width: 767.98px){
  .gp-premium-overlay-root{--gp-overlay-width:min(calc(100vw - 12px), 100vw);--gp-overlay-height:min(calc(100dvh - 12px), 100dvh);} 
  .gp-premium-overlay__viewport{padding:6px;}
  .gp-premium-overlay__frame{padding:14px 14px 12px;border-radius:22px;}
  .gp-premium-overlay__title{font-size:clamp(32px, 8vw, 44px);}
  .gp-premium-overlay__lede{font-size:clamp(14px, 4vw, 16px);line-height:1.5;}
}
.gp-premium-overlay__frame{max-width:100%;}
.gp-premium-overlay__scroll{overscroll-behavior:contain;}
.gp-premium-overlay-root.is-active .gp-premium-overlay__backdrop{opacity:1;}

/* Phase 524 popup polish overrides */
.gp-premium-overlay-root{--gp-overlay-width:min(760px, calc(100vw - 64px));--gp-overlay-height:min(920px, calc(100dvh - 48px));}
@media (max-width: 980px){.gp-premium-overlay-root{--gp-overlay-width:min(92vw, 760px);--gp-overlay-height:min(94dvh, 900px);}}
.gp-premium-overlay__backdrop{background:rgba(10,10,12,.18) !important;backdrop-filter:blur(30px) saturate(120%) !important;-webkit-backdrop-filter:blur(30px) saturate(120%) !important;}
.gp-premium-overlay__frame{background:linear-gradient(180deg, rgba(18,18,22,.62) 0%, rgba(10,10,12,.70) 52%, rgba(8,8,10,.72) 100%), radial-gradient(circle at top, rgba(199,164,94,.10), rgba(199,164,94,0) 58%) !important;}

/* Phase 189 shell cleanup */
.gp-premium-overlay__frame{width:min(100%,920px);}
.gp-premium-overlay__form-host .gpb-card--qualifying,.gp-premium-overlay__form-host .gpb-request-review,.gp-premium-overlay__form-host .gpb-last-step-note,.gp-premium-overlay__form-host .gpb-recent-booking,.gp-premium-overlay__form-host .gpb-returning-customer{color:#201912 !important;}
.gp-premium-overlay__form-host .gpb-card--qualifying *, .gp-premium-overlay__form-host .gpb-request-review *, .gp-premium-overlay__form-host .gpb-last-step-note *, .gp-premium-overlay__form-host .gpb-recent-booking *, .gp-premium-overlay__form-host .gpb-returning-customer *{color:inherit !important;}
