/* Canonical shared header geometry. This stylesheet is loaded after each page's theme CSS. */
/* Routed service-page heroes must cover the full viewport, overriding page-specific hero heights. */
body.service-page .service-detail-hero{min-height:100vh!important;min-height:100svh!important}
/* Video heroes use the same transparent, borderless header across every service route. */
body.service-page .service-detail-hero > .global-header.service-header{
  position:absolute!important;top:0;left:0;right:0;z-index:100;
  background:transparent!important;border:0!important;box-shadow:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important
}
.global-header{display:grid!important;grid-template-columns:minmax(350px,1fr) max-content minmax(350px,1fr)!important;align-items:center!important;column-gap:clamp(12px,1.6vw,26px)!important;width:100%!important;box-sizing:border-box!important;padding:26px clamp(48px,6.8vw,112px)!important}
.global-header.home-hero-header{padding-block:0!important;padding-inline:clamp(0px,3.4vw,64px)!important}
.global-header>.logo{grid-column:1;justify-self:start;min-width:max-content;white-space:nowrap}
.global-header>.logo strong{white-space:nowrap}
.global-header>.nav{grid-column:2;justify-self:center;position:relative;left:auto;right:auto;top:auto;display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:4px;white-space:nowrap}
.global-header>.nav>.l,.global-header .nav-service>.l{padding:8px 12px!important;font-size:14px!important;font-weight:500!important}
/* Keep the active navigation line; suppress the separate circular active marker. */
.nav a.l::after{content:none!important;display:none!important}
.global-header>.right,.global-header>.subpage-actions,.global-header>.service-header-actions,.global-header>.btn{grid-column:3;justify-self:end;display:flex;align-items:center;gap:10px;white-space:nowrap}
.global-header .right>.btn,.global-header .subpage-actions>.btn,.global-header .service-header-actions>.btn,.global-header>.btn{min-height:48px;padding:12px 20px;font-size:14px}
@media(max-width:1000px){
 .global-header{grid-template-columns:minmax(0,1fr) auto!important;column-gap:12px!important;padding:14px clamp(24px,4vw,42px)!important}
 .global-header.home-hero-header{padding-block:0!important;padding-inline:clamp(0px,3.4vw,64px)!important}
 .global-header>.logo{grid-column:1;min-width:0}
 .global-header>.right,.global-header>.subpage-actions,.global-header>.service-header-actions,.global-header>.btn{grid-column:2;grid-row:1}
 .global-header>.nav{position:absolute;top:calc(100% + 10px);left:0;right:0;z-index:110;display:flex;flex-direction:column;align-items:stretch;gap:2px;white-space:normal;opacity:0;visibility:hidden;transform:translateY(-10px)}
 .global-header>.nav.open{opacity:1;visibility:visible;transform:none}
}

/* Keep the quote action fully visible in compact mobile headers. */
@media(max-width:700px){
  .global-header{column-gap:8px!important;padding-inline:clamp(14px,4vw,28px)!important}
  .global-header>.logo{gap:6px;min-width:0}
  .global-header>.logo strong{font-size:10px;letter-spacing:.025em}
  .global-header>.logo small{font-size:7px}
  .global-header>.right,.global-header>.subpage-actions,.global-header>.service-header-actions{gap:6px;flex:none}
  .global-header .right>.btn,.global-header .subpage-actions>.btn,.global-header .service-header-actions>.btn,.global-header>.btn{
    display:inline-flex!important;align-items:center;justify-content:center;gap:5px;min-height:40px;padding:9px 10px;font-size:11px;white-space:nowrap
  }
  .global-header .burger{flex:0 0 40px;width:40px;height:40px}
  .sticky .in{gap:8px;padding-inline:clamp(12px,4vw,22px)}
  .sticky .logo{gap:6px;min-width:0}
  .sticky .logo strong{font-size:10px;letter-spacing:.025em}
  .sticky .logo small{font-size:7px}
  .sticky .subpage-actions{gap:6px;flex:none}
  .sticky .subpage-actions>.btn{min-height:40px;padding:9px 10px;font-size:11px;white-space:nowrap}
  .sticky .burger{flex:0 0 40px;width:40px;height:40px}
}
@media(max-width:420px){
  .global-header>.logo>span:last-child,.sticky .logo>span:last-child{display:none}
  .global-header>.logo .lm,.sticky .logo .lm{flex:0 0 38px;width:38px;height:36px}
  body.home>.global-header .service-header-actions>.btn{display:inline-flex!important}
}

/* The homepage header sits over a dark hero, so keep its mobile menu icon bright and legible. */
@media(max-width:1000px){
  body.home>.global-header.service-header .burger{
    color:#fff!important;
    background:#12271d!important;
    border-color:rgba(255,255,255,.7)!important;
  }
  body.home>.global-header.service-header .burger::before{
    background:#fff;
    box-shadow:0 -6px #fff,0 6px #fff;
  }
}

/* Reduce continuous decorative work and expensive blur compositing on phones. */
@media(max-width:700px){
  .about-bg i,.leaves span,.tm-blob,.tm-ring,
  .journey-panel,.journey-visual-ring,.journey-visual-line,.journey-node,
  .wf-glow,.wf-s1,.wf-s2,.wf-s3,.wf-ring,.pool-wave,.pool-ring,
  .fgw-orbit,.fgw-sprout,.fgw-spark{
    animation:none!important
  }
  .global-header,.sticky,.service-header,.hero-top{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important
  }
}
@media(max-width:640px){.global-header>.logo{font-size:11px;letter-spacing:.06em}.global-header>.logo .lm{width:42px;height:38px}.global-header .right>.btn,.global-header .subpage-actions>.btn,.global-header .service-header-actions>.btn,.global-header>.btn{min-height:42px;padding:10px 14px;font-size:12px}}

/* Keep long service labels inside the dropdown panel */
.nav-service-menu{box-sizing:border-box;width:min(480px,calc(100vw - 36px));grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:12px}
.nav-service-menu a{box-sizing:border-box;min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.45}
@media(max-width:640px){.nav-service-menu{width:min(100%,380px);grid-template-columns:1fr;padding:8px}.nav-service-menu a{padding:9px 10px}}

/* Keep service detail pages from leaving an oversized blank band before galleries. */
body.service-page .service-detail-steps{padding-bottom:clamp(56px,5vw,88px)}
body.service-page .service-detail-steps+section{padding-top:clamp(56px,5vw,88px)}
@media(max-width:620px){
  body.service-page .service-detail-steps{padding-bottom:46px}
  body.service-page .service-detail-steps+section{padding-top:44px}
}

/* Improve reading size throughout the services overview and service detail pages. */
body.service-page{font-size:17px}
body.service-page p:not(.service-kicker){font-size:18px;line-height:1.8}
body.service-page .service-kicker{font-size:14px}
body.service-page .service-header .nav>.l,
body.service-page .service-header .nav-service>.l{font-size:15px!important}
body.service-page .nav-service-menu a{font-size:14px}
body.service-page .service-detail-caption{font-size:12px}
body.service-page .service-back{font-size:13px}
body.service-page .service-detail-copy-block li{font-size:16px}
body.service-page .service-step-grid article>span{font-size:13px}
body.service-page .service-step-grid h3{font-size:23px}
body.service-page .service-step-grid p{font-size:16px}
body.service-page .service-detail-cta .service-process-link{font-size:15px}
body.service-page .services-overview-head>p,
body.service-page .service-method-inner>p{font-size:17px}
body.service-page .service-card-copy>span{font-size:11px}
body.service-page .service-card-copy h3{font-size:24px}
body.service-page .service-card-copy p{font-size:15px}
body.service-page .service-card-copy b{font-size:14px}
body.service-page.pathway-service .pw-table tbody th{font-size:20px}
body.service-page.pathway-service .pw-table tbody td,
body.service-page.pathway-service .pw-where-list p,
body.service-page.pathway-service .pw-build-list p,
body.service-page.pathway-service .pw-care-grid p{font-size:17px}
/* Keep long service names readable in the hero without overwhelming the page. */
body.service-page .service-detail-copy{max-width:min(1040px,90vw)}
body.service-page .service-detail-copy h1{max-width:1040px;font-size:clamp(48px,6.2vw,88px);line-height:1.02;letter-spacing:-.06em}
body.service-page p:not(.service-kicker){font-size:17px;line-height:1.78}
body.service-page .services-overview-head>p,
body.service-page .service-method-inner>p{font-size:16px}
body.service-page .service-card-copy p{font-size:14px}
body.service-page .service-card-copy h3{font-size:23px}
body.service-page .service-detail-copy-block li{font-size:15px}
body.service-page .service-step-grid p{font-size:15px}
@media(max-width:640px){
  body.service-page .service-detail-copy{max-width:100%}
  body.service-page .service-detail-copy h1{font-size:clamp(42px,10.5vw,62px);line-height:1.02}
  body.service-page p:not(.service-kicker){font-size:16px;line-height:1.7}
  body.service-page .service-kicker{font-size:13px}
  body.service-page .service-detail-caption{font-size:10px}
  body.service-page .service-step-grid h3{font-size:21px}
  body.service-page .service-step-grid p,
  body.service-page .service-detail-copy-block li{font-size:16px}
  body.service-page .service-card-copy h3{font-size:22px}
  body.service-page .services-overview-head>p,
  body.service-page .service-method-inner>p{font-size:16px}
}

/* Wider, more animated layouts for the Zen, pool and party terrace service pages. */
body.service-page:has(.zen-gallery) .wrap,
body.service-page:has(.pool-gallery) .wrap,
body.service-page:has(.party-gallery) .wrap{max-width:1920px;padding-inline:clamp(22px,3vw,56px)}
body.service-page:has(.zen-gallery) .service-detail-intro,
body.service-page:has(.pool-gallery) .service-detail-intro,
body.service-page:has(.party-gallery) .service-detail-intro{gap:clamp(32px,5vw,78px)}
body.service-page:has(.zen-gallery) .service-detail-copy-block,
body.service-page:has(.pool-gallery) .service-detail-copy-block,
body.service-page:has(.party-gallery) .service-detail-copy-block{max-width:760px}
body.service-page:has(.zen-gallery) .zen-gallery,
body.service-page:has(.pool-gallery) .pool-gallery,
body.service-page:has(.party-gallery) .party-gallery{padding-top:clamp(62px,7vw,100px);padding-bottom:clamp(72px,8vw,112px)}
body.service-page:has(.zen-gallery) .zen-grid,
body.service-page:has(.pool-gallery) .pool-grid,
body.service-page:has(.party-gallery) .party-gallery-grid{gap:clamp(12px,1.4vw,22px)}
body.service-page:has(.zen-gallery) .service-detail-intro>div,
body.service-page:has(.pool-gallery) .service-detail-intro>div,
body.service-page:has(.party-gallery) .service-detail-intro>div{animation:serviceContentRise .75s cubic-bezier(.22,.8,.24,1) both}
body.service-page:has(.zen-gallery) .service-detail-intro>div+div,
body.service-page:has(.pool-gallery) .service-detail-intro>div+div,
body.service-page:has(.party-gallery) .service-detail-intro>div+div{animation-delay:.12s}
body.service-page:has(.zen-gallery) .service-step-grid article,
body.service-page:has(.pool-gallery) .service-step-grid article,
body.service-page:has(.party-gallery) .service-step-grid article{padding-top:30px;padding-bottom:30px;transition:background .3s,transform .35s, padding .35s;animation:serviceContentRise .72s cubic-bezier(.22,.8,.24,1) both}
body.service-page:has(.zen-gallery) .service-step-grid article:nth-child(2),
body.service-page:has(.pool-gallery) .service-step-grid article:nth-child(2),
body.service-page:has(.party-gallery) .service-step-grid article:nth-child(2){animation-delay:.1s}
body.service-page:has(.zen-gallery) .service-step-grid article:nth-child(3),
body.service-page:has(.pool-gallery) .service-step-grid article:nth-child(3),
body.service-page:has(.party-gallery) .service-step-grid article:nth-child(3){animation-delay:.2s}
body.service-page:has(.zen-gallery) .service-step-grid article:hover,
body.service-page:has(.pool-gallery) .service-step-grid article:hover,
body.service-page:has(.party-gallery) .service-step-grid article:hover{transform:translateY(-5px);background:rgba(125,140,60,.06)}
body.service-page:has(.zen-gallery) .zen-grid figure,
body.service-page:has(.pool-gallery) .pool-grid figure,
body.service-page:has(.party-gallery) .party-gallery-grid figure{border-radius:clamp(14px,1.4vw,22px);box-shadow:0 15px 38px -30px rgba(13,28,19,.68);transition:transform .45s cubic-bezier(.22,.8,.24,1),box-shadow .45s}
body.service-page:has(.zen-gallery) .zen-grid figure:hover,
body.service-page:has(.pool-gallery) .pool-grid figure:hover,
body.service-page:has(.party-gallery) .party-gallery-grid figure:hover{transform:translateY(-6px);box-shadow:0 24px 42px -28px rgba(13,28,19,.72)}
body.service-page:has(.zen-gallery) .service-detail-cta .wrap,
body.service-page:has(.pool-gallery) .service-detail-cta .wrap,
body.service-page:has(.party-gallery) .service-detail-cta .wrap{animation:serviceContentRise .8s cubic-bezier(.22,.8,.24,1) both}
@keyframes serviceContentRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:640px){
  body.service-page:has(.zen-gallery) .wrap,
  body.service-page:has(.pool-gallery) .wrap,
  body.service-page:has(.party-gallery) .wrap{padding-inline:22px}
  body.service-page:has(.zen-gallery) .zen-gallery,
  body.service-page:has(.pool-gallery) .pool-gallery,
  body.service-page:has(.party-gallery) .party-gallery{padding-top:54px;padding-bottom:64px}
  body.service-page:has(.zen-gallery) .service-step-grid article,
  body.service-page:has(.pool-gallery) .service-step-grid article,
  body.service-page:has(.party-gallery) .service-step-grid article{padding-block:20px}
}
@media(min-width:641px) and (max-width:1100px){
  body.service-page:has(.zen-gallery) .wrap,
  body.service-page:has(.pool-gallery) .wrap,
  body.service-page:has(.party-gallery) .wrap{padding-inline:26px}
}
@media(prefers-reduced-motion:reduce){
  body.service-page:has(.zen-gallery) .service-detail-intro>div,
  body.service-page:has(.pool-gallery) .service-detail-intro>div,
  body.service-page:has(.party-gallery) .service-detail-intro>div,
  body.service-page:has(.zen-gallery) .service-step-grid article,
  body.service-page:has(.pool-gallery) .service-step-grid article,
  body.service-page:has(.party-gallery) .service-step-grid article,
  body.service-page:has(.zen-gallery) .service-detail-cta .wrap,
  body.service-page:has(.pool-gallery) .service-detail-cta .wrap,
  body.service-page:has(.party-gallery) .service-detail-cta .wrap{animation:none}
}

/* Scroll-triggered reveals for the three service routes called out in the latest request. */
body.service-zen-page .service-scroll-reveal,
body.service-pool-page .service-scroll-reveal,
body.service-party-page .service-scroll-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.8,.24,1),transform .7s cubic-bezier(.22,.8,.24,1)}
body.service-zen-page .service-scroll-reveal.is-inview,
body.service-pool-page .service-scroll-reveal.is-inview,
body.service-party-page .service-scroll-reveal.is-inview{opacity:1;transform:translateY(0)}
body.service-zen-page .wrap,
body.service-pool-page .wrap,
body.service-party-page .wrap{max-width:1920px;padding-inline:clamp(20px,2.2vw,40px)}
body.service-zen-page .service-detail-intro>div,
body.service-pool-page .service-detail-intro>div,
body.service-party-page .service-detail-intro>div,
body.service-zen-page .service-step-grid article,
body.service-pool-page .service-step-grid article,
body.service-party-page .service-step-grid article,
body.service-zen-page .zen-gallery-head,
body.service-pool-page .pool-gallery-head,
body.service-party-page .party-gallery-head,
body.service-zen-page .zen-grid figure,
body.service-pool-page .pool-grid figure,
body.service-party-page .party-gallery-grid figure,
body.service-zen-page .service-detail-cta .wrap,
body.service-pool-page .service-detail-cta .wrap,
body.service-party-page .service-detail-cta .wrap{animation:none!important}
@media(max-width:640px){
  body.service-zen-page .wrap,
  body.service-pool-page .wrap,
  body.service-party-page .wrap{padding-inline:20px}
}
@media(prefers-reduced-motion:reduce){
  body.service-zen-page .service-scroll-reveal,
  body.service-pool-page .service-scroll-reveal,
  body.service-party-page .service-scroll-reveal{opacity:1;transform:none;transition:none}
}

/* Small animated garden accent in the footer brand column */
.footer-garden-widget{position:relative;display:flex;align-items:center;gap:14px;width:min(100%,290px);min-height:102px;margin-top:27px;padding:13px 14px;overflow:hidden;border:1px solid rgba(201,214,138,.19);border-radius:19px;background:linear-gradient(120deg,rgba(255,255,255,.075),rgba(255,255,255,.018));box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.footer-garden-widget::after{content:"";position:absolute;right:-30px;bottom:-46px;width:100px;height:100px;border-radius:50%;background:rgba(139,157,59,.2);filter:blur(27px);pointer-events:none}
.fgw-art{position:relative;display:grid;place-items:center;flex:0 0 68px;width:68px;height:68px;border-radius:50%;background:radial-gradient(circle at 50% 48%,rgba(201,214,138,.17),rgba(201,214,138,.015) 67%)}
.fgw-orbit{position:absolute;inset:4px;border:1px solid rgba(201,214,138,.27);border-radius:50%;animation:fgw-orbit-spin 18s linear infinite}
.fgw-orbit::before{content:"";position:absolute;top:5px;left:8px;width:6px;height:6px;border-radius:50%;background:#dce9ab;box-shadow:0 0 12px rgba(220,233,171,.85)}
.fgw-orbit-inner{inset:12px;border-color:rgba(201,214,138,.18);border-style:dashed;animation-direction:reverse;animation-duration:26s}
.fgw-orbit-inner::before{top:auto;left:auto;right:1px;bottom:8px;width:4px;height:4px;background:#8b9d3b}
.fgw-sprout{position:absolute;left:50%;top:50%;width:3px;height:26px;border-radius:99px;background:linear-gradient(#dce9ab,#8b9d3b);transform:translate(-50%,-22%);transform-origin:50% 100%;animation:fgw-sway 3.8s ease-in-out infinite}
.fgw-sprout::after{content:"";position:absolute;left:50%;bottom:-3px;width:15px;height:7px;border-radius:50%;background:rgba(201,214,138,.38);transform:translateX(-50%)}
.fgw-sprout b{position:absolute;width:14px;height:8px;border-radius:100% 0 100% 0;background:linear-gradient(135deg,#dce9ab,#82973b)}
.fgw-sprout b:first-child{left:-12px;top:5px;transform:rotate(22deg)}
.fgw-sprout b:last-child{right:-12px;top:-2px;transform:scaleX(-1) rotate(22deg)}
.fgw-spark{position:absolute;width:3px;height:3px;border-radius:50%;background:#eef4c8;box-shadow:0 0 8px #c9d68a;animation:fgw-twinkle 2.8s ease-in-out infinite}
.fgw-spark-a{top:13px;right:7px}.fgw-spark-b{bottom:12px;left:9px;animation-delay:-1.4s}
.fgw-copy{position:relative;z-index:1;display:grid;gap:5px;min-width:0}
.fgw-copy small{color:#c9d68a;font-size:8px;font-weight:800;letter-spacing:.14em;line-height:1.3}
.fgw-copy strong{color:#fff;font-size:13px;font-weight:700;line-height:1.2;letter-spacing:-.015em}
.fgw-copy>span{color:rgba(255,255,255,.58);font-size:9px;line-height:1.4}
@keyframes fgw-orbit-spin{to{transform:rotate(360deg)}}
@keyframes fgw-sway{0%,100%{rotate:-4deg}50%{rotate:5deg}}
@keyframes fgw-twinkle{0%,100%{opacity:.35;scale:.75}50%{opacity:1;scale:1.25}}
@media(max-width:640px){.footer-garden-widget{margin-top:21px}}
@media(prefers-reduced-motion:reduce){.fgw-orbit,.fgw-sprout,.fgw-spark{animation:none!important}}

/* Keep the shared footer compact while preserving its content and column layout. */
.foot.foot-revamp{padding-top:28px;padding-bottom:16px}
.foot-revamp .foot-banner{min-height:0;padding:clamp(22px,3vw,36px) clamp(24px,4vw,48px);border-radius:24px}
.foot-revamp .foot-banner-copy h2{font-size:clamp(28px,3.8vw,46px)}
.foot-revamp .foot-grid{padding-top:28px;padding-bottom:20px;gap:clamp(20px,3vw,42px)}
.foot-revamp h4{margin-bottom:12px}
.foot-revamp a.fl{padding:4px 0;line-height:1.4}
.foot-revamp .ct{margin-bottom:8px;padding:8px 10px;line-height:1.5}
.foot-revamp .bar{padding-top:12px}
.footer-garden-widget{min-height:82px;margin-top:16px;padding:8px 11px;gap:10px}
.fgw-art{flex-basis:58px;width:58px;height:58px}
@media(max-width:900px){.foot-revamp .foot-grid{padding-top:24px;padding-bottom:18px}}
@media(max-width:640px){.foot.foot-revamp{padding:20px 16px 14px}.foot-revamp .foot-banner{padding:22px 20px;gap:16px}.foot-revamp .foot-banner-copy h2{font-size:32px}.foot-revamp .foot-grid{padding:25px 3px 20px;gap:22px 15px}.foot-revamp .bar{padding-top:12px;gap:8px}.footer-garden-widget{margin-top:14px}}

/* Further reduce the footer's vertical footprint, especially on desktop. */
.foot.foot-revamp{padding-top:18px;padding-bottom:12px}
.foot-revamp .foot-banner{padding:18px 28px;border-radius:20px}
.foot-revamp .foot-banner-copy>p{margin-bottom:6px}
.foot-revamp .foot-banner-copy h2{font-size:clamp(25px,3vw,38px)}
.foot-revamp .foot-banner-copy>span{margin-top:7px;font-size:13px;line-height:1.45}
.foot-revamp .foot-banner-link{padding:12px 17px}
.foot-revamp .foot-grid{padding:20px 6px 14px;gap:clamp(16px,2.4vw,34px)}
.foot-revamp .logo .lm{width:48px;height:44px}
.foot-revamp p.bl{margin-top:10px;font-size:12px;line-height:1.55}
.foot-revamp h4{margin-bottom:8px}
.foot-revamp a.fl{padding:3px 0;font-size:12px;line-height:1.32}
.foot-revamp .ct{margin-bottom:6px;padding:6px 9px;font-size:11px;line-height:1.4}
.foot-revamp .bar{padding-top:9px;font-size:10px}
.foot-revamp .bar span:last-child{padding:4px 8px}
.footer-garden-widget{min-height:68px;margin-top:11px;padding:6px 9px;gap:8px;border-radius:15px}
.fgw-art{flex-basis:48px;width:48px;height:48px}
.fgw-copy{gap:3px}
@media(max-width:900px){.foot-revamp .foot-grid{padding-top:18px;padding-bottom:12px}}
@media(max-width:640px){.foot.foot-revamp{padding:16px 14px 10px}.foot-revamp .foot-banner{padding:18px 17px;gap:13px}.foot-revamp .foot-banner-copy h2{font-size:29px}.foot-revamp .foot-grid{padding:20px 2px 14px;gap:18px 12px}.foot-revamp .bar{padding-top:9px;gap:7px}.footer-garden-widget{margin-top:10px}}

/* Shared phone-width safeguards for every site page. */
@media(max-width:640px){
  html{scroll-padding-top:76px}
  body{max-width:100%;overflow-x:hidden}
  img,video,svg,iframe{max-width:100%}
  .global-header{grid-template-columns:minmax(0,1fr) auto!important;column-gap:8px!important;padding-right:14px!important;padding-left:14px!important}
  .global-header>.logo{min-width:0;max-width:100%;gap:6px;letter-spacing:.035em}
  .global-header>.logo .lm{flex:0 0 38px;width:38px;height:36px}
  .global-header>.logo>span:last-child{min-width:0}
  .global-header>.logo strong{font-size:10px;letter-spacing:.035em}
  .global-header>.logo small{font-size:7px;letter-spacing:.2em}
  .global-header>.nav.open{max-height:calc(100svh - 88px);overflow-y:auto;overscroll-behavior:contain}
  .nav-service-menu{max-height:55svh;overflow-y:auto;overscroll-behavior:contain}
  .service-detail-caption{gap:8px 14px;flex-wrap:wrap;line-height:1.4}
  .foot-revamp .foot-grid>div{min-width:0}
  .foot-revamp .ct,.foot-revamp .fl{overflow-wrap:anywhere}
  .foot-revamp .bar{width:100%;flex-wrap:wrap}
  .enquiry-form input,.enquiry-form select,.enquiry-form textarea{font-size:16px}
  .global-header button,.process-menu,.burger{-webkit-tap-highlight-color:transparent}
  .global-header>.nav a.l,.global-header .nav-service-menu a,.global-header .nav-service-toggle{min-height:44px}
  .btn,.service-rail a,.process-nav a{min-height:44px}
  input,select,textarea,button{max-width:100%}
  iframe{display:block;width:100%;max-width:100%}
  .service-rail-wrap,.service-rail,.party-gallery-grid,.gx-grid,.pool-grid,.zen-grid,.pw-mosaic{max-width:100%;min-width:0}
}
@media(max-width:360px){
  .global-header{padding-right:10px!important;padding-left:10px!important}
  .global-header>.logo .lm{flex-basis:34px;width:34px;height:32px}
  .global-header>.logo strong{font-size:9px}
  .global-header .right>.btn,.global-header .subpage-actions>.btn,.global-header .service-header-actions>.btn,.global-header>.btn{padding:9px 10px;font-size:11px}
}

@media(max-width:1000px){
  /* Shared mobile navigation palette: preserve readable contrast on every page. */
  .global-header>.nav.open,
  .nav.open{
    color:#fff!important;
    background:rgba(13,28,19,.98)!important;
    border:1px solid rgba(201,214,138,.2);
    box-shadow:0 20px 44px rgba(0,0,0,.3)
  }
  .global-header>.nav.open a.l,
  .global-header>.nav.open .nav-service-toggle,
  .nav.open a.l,
  .nav.open .nav-service-toggle,
  .nav.open .nav-service-menu a{
    color:#fff!important;
    text-shadow:none!important
  }
  .global-header>.nav.open .nav-service-menu,
  .nav.open .nav-service-menu{
    background:rgba(255,255,255,.08)!important;
    border-color:rgba(255,255,255,.12)
  }
  .projects-hero>header.sticky.show .burger{color:#fff}
}

/* Shared recovery layout: keep service galleries and footer usable on narrow screens. */
.service-photo-gallery{padding-block:clamp(64px,8vw,112px);background:#f7f0e3}
.service-photo-gallery-head{max-width:760px;margin-bottom:36px}
.service-photo-gallery-head h2{margin:14px 0;font-size:clamp(40px,5.5vw,76px);line-height:1.02;letter-spacing:-.055em}
.service-photo-gallery-head h2 em{color:var(--olive);font-style:normal}
.service-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.service-photo-grid figure{position:relative;aspect-ratio:4/3;margin:0;overflow:hidden;border-radius:18px;background:var(--card)}
.service-photo-grid button{position:relative;width:100%;height:100%;overflow:hidden}
.service-photo-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.service-photo-grid figure:hover img{transform:scale(1.06)}
.site-footer>div{grid-template-columns:1.2fr 1fr 1fr!important}
@media(max-width:800px){.service-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer>div{grid-template-columns:1fr 1fr!important}}
@media(max-width:540px){.site-footer>div{grid-template-columns:1fr!important}.service-photo-grid{gap:9px}.service-photo-gallery{padding-block:56px}}


/* Compact, consistent site footer across all pages. */
.site-footer.foot{padding:18px var(--P,24px) 12px!important}
.site-footer .foot-grid{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1.05fr) minmax(0,.8fr) minmax(0,1.2fr)!important;gap:16px!important;padding:14px 4px 12px!important}
.site-footer .foot-grid>div+div{padding-left:14px!important}
.site-footer .foot-grid .logo .lm{width:44px!important;height:40px!important}
.site-footer .foot-grid .bl{margin:7px 0 0!important;font-size:11px!important;line-height:1.45!important}
.site-footer .foot-grid h4{margin:0 0 5px!important;font-size:11px!important}
.site-footer .foot-grid a.fl{display:block;padding:2px 0!important;font-size:11px!important;line-height:1.3!important}
.site-footer .foot-grid .ct{margin:0 0 4px!important;padding:0!important;font-size:11px!important;line-height:1.35!important;background:none!important;border:0!important}
.site-footer .bar{padding-top:8px!important;font-size:10px!important}
@media(max-width:900px){.site-footer .foot-grid{grid-template-columns:1fr 1fr!important;gap:14px 18px!important;padding:14px 2px 10px!important}.site-footer .foot-grid>div+div{padding-left:0!important;border-left:0!important}.site-footer .foot-grid>div:first-child{grid-column:1/-1}}
@media(max-width:540px){.site-footer.foot{padding:14px 14px 10px!important}.site-footer .foot-grid{grid-template-columns:1fr 1fr!important;gap:12px!important}.site-footer .foot-grid>div:first-child{grid-column:1/-1}.site-footer .bar{gap:6px!important}}

/* Preserve the original desktop header sizing; add a little right-edge room
   for the quote action on service pages without changing the homepage. */
@media(min-width:1001px){
  body.service-page .global-header>.service-header-actions{transform:translateX(-24px)}
}

/* Low-power mode keeps the design intact while stopping costly motion and
   compositor work on constrained devices. */
html.low-power{scroll-behavior:auto!important}
html.low-power *,html.low-power *::before,html.low-power *::after{
  animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;
  transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important;will-change:auto!important
}
html.low-power .global-header,html.low-power .sticky,html.low-power .nav.open,html.low-power .service-header{
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important
}
/* Reworked mobile menu control: a clear compact action pill instead of a faint circle. */
@media(max-width:1000px){
  .global-header .burger,.sticky .burger{
    position:relative;display:flex;align-items:center;justify-content:flex-start;gap:0;
    flex:0 0 88px;width:88px;height:44px;box-sizing:border-box;padding:0 12px 0 39px;
    border:1px solid rgba(213,229,157,.58);border-radius:999px;
    background:#10271d!important;color:#f7f4e9!important;
    box-shadow:0 5px 18px rgba(5,18,12,.24);font-size:0;line-height:1;
    -webkit-backdrop-filter:none;backdrop-filter:none;
    transition:background-color .2s ease,border-color .2s ease,transform .2s ease;
  }
  .global-header .burger::before,.sticky .burger::before{
    position:absolute;left:13px;top:50%;width:16px;height:2px;margin-top:-1px;
    border-radius:2px;background:#d5e59d;box-shadow:0 -5px #d5e59d,0 5px #d5e59d;
    transition:transform .2s ease,box-shadow .2s ease;
  }
  .global-header .burger::after,.sticky .burger::after{
    content:"MENU";display:block;color:currentColor;font-size:9px;font-weight:750;
    letter-spacing:.11em;line-height:1;
  }
  .global-header .burger[aria-expanded="true"]::before,.sticky .burger[aria-expanded="true"]::before{
    background:linear-gradient(currentColor,currentColor) center/16px 2px no-repeat,
      linear-gradient(currentColor,currentColor) center/2px 16px no-repeat;
    box-shadow:none;transform:rotate(45deg);color:#d5e59d;
  }
  .global-header .burger[aria-expanded="true"]::after,.sticky .burger[aria-expanded="true"]::after{content:"CLOSE"}
  .global-header .burger:hover,.sticky .burger:hover{background:#1b3a2a!important;border-color:#d5e59d;transform:translateY(-1px)}
  .global-header .burger:focus-visible,.sticky .burger:focus-visible{outline:3px solid #d5e59d;outline-offset:3px}
}
@media(max-width:700px){
  .global-header .burger,.sticky .burger{flex-basis:84px;width:84px;height:42px}
}
/* One shared header grid: match every page to the homepage's logo, nav and CTA positions. */
.global-header,.sticky .in{
  display:grid!important;
  grid-template-columns:minmax(350px,1fr) max-content minmax(350px,1fr)!important;
  align-items:center!important;
  column-gap:clamp(12px,1.6vw,26px)!important;
  box-sizing:border-box!important;
  min-height:88px;
  padding:0 clamp(48px,6.8vw,112px)!important;
}
.global-header{top:0!important}
.global-header>.logo,.sticky .in>.logo{grid-column:1;justify-self:start}
.global-header>.nav,.sticky .in>.nav{
  grid-column:2;justify-self:center;position:relative;left:auto;right:auto;top:auto;
  display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:4px;white-space:nowrap
}
.global-header>.right,.global-header>.subpage-actions,.global-header>.service-header-actions,.global-header>.btn,
.sticky .in>.right,.sticky .in>.subpage-actions,.sticky .in>.service-header-actions{
  grid-column:3;justify-self:end;display:flex;align-items:center;gap:10px;white-space:nowrap;transform:none!important
}
@media(max-width:1000px){
  .global-header,.sticky .in{
    grid-template-columns:minmax(0,1fr) auto!important;
    column-gap:12px!important;min-height:76px;padding:0 clamp(24px,4vw,42px)!important
  }
  .global-header>.logo,.sticky .in>.logo{grid-column:1;grid-row:1}
  .global-header>.right,.global-header>.subpage-actions,.global-header>.service-header-actions,.global-header>.btn,
  .sticky .in>.right,.sticky .in>.subpage-actions,.sticky .in>.service-header-actions{grid-column:2;grid-row:1;gap:8px}
  .global-header>.nav,.sticky .in>.nav{
    position:absolute;top:calc(100% + 10px);left:clamp(12px,4vw,42px);right:clamp(12px,4vw,42px);
    z-index:110;display:flex;flex-direction:column;align-items:stretch;gap:2px;white-space:normal;
    opacity:0;visibility:hidden;transform:translateY(-10px)
  }
  .global-header>.nav.open,.sticky .in>.nav.open{opacity:1;visibility:visible;transform:none}
}
@media(max-width:700px){
  .global-header,.sticky .in{column-gap:8px!important;padding-inline:clamp(14px,4vw,28px)!important}
}
