/* Backyard Roo professional responsive UI */
@font-face{font-family:'Inter';font-style:normal;font-weight:300 800;font-display:swap;src:url('../fonts/inter-var-latin.woff2')format('woff2-variations'),url('../fonts/inter-var-latin.woff2')format('woff2')}
:root{
  color-scheme:dark;
  --bg-dark:#07110d;--bg-panel:#0f1b15;--accent-green:#2e7d32;--accent-bright:#58c46b;--accent-earth:#b08a62;
  --text-light:#f6faf7;--text-muted:#bfd0c5;--card-bg:rgba(12,24,18,.82);--card-border:rgba(255,255,255,.14);--focus-ring:rgba(88,196,107,.45);
  --space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;
  --text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.55rem;--text-3xl:clamp(2rem,4vw,3rem);--text-5xl:clamp(2rem,4.4vw,3.6rem);
  --radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:26px;--radius-full:999px;
  --shadow-sm:0 4px 14px rgba(0,0,0,.25);--shadow-md:0 16px 36px rgba(0,0,0,.35);--shadow-lg:0 28px 70px rgba(0,0,0,.45);--shadow-glow:0 0 28px rgba(88,196,107,.28);
  --z-utility:100;--z-nav:200;--z-floating-cta:300;--z-modal:400;
  --interactive-state-bg:rgba(88,196,107,.18);--interactive-state-border:rgba(88,196,107,.45);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg-dark);color:var(--text-light);line-height:1.6;overflow-x:hidden} a{color:inherit} img{max-width:100%;height:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:absolute;top:-100%;left:1rem;background:var(--accent-bright);color:#061008;padding:.6rem 1rem;border-radius:8px;z-index:999}.skip-link:focus{top:1rem}
.utility-bar{position:fixed;inset:0 0 auto 0;z-index:var(--z-utility);display:flex;justify-content:space-between;gap:1rem;padding:.4rem 1.5rem;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;font-size:.78rem;color:var(--text-muted);border-bottom:none;}.utility-bar .u-left,.utility-bar .u-right,.utility-bar .u-social{display:flex;align-items:center;gap:1rem}.utility-bar a{text-decoration:none;color:var(--text-muted)}.utility-bar a:hover{color:var(--accent-bright)}
.site-nav{position:fixed;top:30px;left:0;right:0;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem clamp(1rem,4vw,3rem);background: transparent;backdrop-filter: none;-webkit-backdrop-filter: none;border-bottom: none;transition:background .25s ease,box-shadow .25s ease}.site-nav.scrolled{top:0;background:transparent;box-shadow:none}.site-nav.scrolled:after{display:none}.brand-lockup{display:flex;align-items:center;text-decoration:none}.brand-lockup img{width:clamp(114px,15.6vw,195px);height:clamp(114px,15.6vw,195px);object-fit:contain;filter:drop-shadow(0 10px 24px rgba(0,0,0,.4))}.nav-links{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.mobile-menu-toggle{display:none;min-width:48px;min-height:48px;border:1px solid rgba(255,255,255,.25);border-radius:12px;background:rgba(20,30,25,.88);color:#fff;font-size:1.5rem;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.85rem 1.25rem;border-radius:12px;font-weight:700;text-decoration:none;border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-1px);background:var(--interactive-state-bg);border-color:var(--interactive-state-border);box-shadow:0 6px 16px rgba(0,0,0,.25)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--accent-green),var(--accent-bright));color:#fff;box-shadow:var(--shadow-glow)}.btn-secondary{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:#fff}.btn-secondary:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25)}.btn-group{display:flex;gap:1rem;flex-wrap:wrap}.btn-arrow{display:inline-block;transition:transform .18s}.btn-primary:hover .btn-arrow{transform:translateX(4px)}
h1,h2,h3,p{margin-top:0} h1{font-size:var(--text-5xl);line-height:1.02;font-weight:800;letter-spacing:-.04em;margin-bottom:1.25rem} h2{font-size:var(--text-3xl);line-height:1.1;font-weight:800;letter-spacing:-.03em;margin-bottom:1rem}h3{font-size:var(--text-xl);line-height:1.2;color:var(--text-light);margin-bottom:.6rem} p{font-size:1.05rem;color:var(--text-muted);margin-bottom:1rem}.hero-headline{max-width:920px}.hero-reveal{max-width:760px}.hero-word{display:inline-block}
.scroll-container{position:relative;width:100%;overflow-x:hidden} section{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;padding:clamp(2.25rem,4.5vw,4rem) clamp(1rem,4vw,3rem);overflow:hidden}#hero{min-height:min(92vh,780px);padding-top:clamp(9.5rem,15vw,14.5rem)}.bg-layer{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2}.bg-layer:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(88,196,107,.18),transparent 35%),linear-gradient(180deg,rgba(7,17,13,.62),rgba(7,17,13,.88))}.glass-card{width:min(100%,1200px);margin:auto;padding:clamp(1.25rem,4vw,3rem);border-radius:var(--radius-xl);background:linear-gradient(145deg,rgba(14,28,20,.82),rgba(9,18,14,.68));border:1px solid var(--card-border);box-shadow:var(--shadow-lg);backdrop-filter:blur(18px)}.container{width:min(1200px,100% - 2rem);margin:0 auto;padding:10rem 0 4rem}.page-header{text-align:center;margin:0 auto 3rem;max-width:780px}.page-header p{font-size:1.15rem}
.status-badge,.service-kicker,.info-label{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent-bright);background:rgba(88,196,107,.12);border:1px solid rgba(88,196,107,.28);border-radius:999px;padding:.35rem .8rem;font-size:.85rem;font-weight:700;margin-bottom:1rem}.status-dot{position:relative;width:.55rem;height:.55rem;border-radius:50%;background:var(--accent-bright);box-shadow:0 0 0 6px rgba(88,196,107,.15)}.hero-info-strip{display:grid;grid-template-columns:1fr auto 1fr auto 90px;gap:1rem;align-items:center;margin-top:2rem;padding:1rem;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}.info-col{display:flex;flex-direction:column}.info-value{font-weight:800;color:#fff;text-decoration:none}.info-divider{width:1px;height:44px;background:rgba(255,255,255,.14)}.info-thumb{height:70px;border-radius:14px;background-size:cover;background-position:center}
.services-cards-grid,.gallery-grid,.ethics-grid,.testimonial-grid,.trust-grid,.why-grid,.step-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:1.5rem}.service-card-item,.ethics-card,.testimonial-card,.trust-badge,.why-card,.step-card,details,.service-detail-card{background:rgba(16,30,22,.78);border:1px solid rgba(255,255,255,.1);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden}.service-card-img-wrap{position:relative;height:210px}.service-card-img,.gallery-item{height:210px;background-size:cover;background-position:center}.service-card-badge{position:absolute;bottom:.75rem;left:.75rem;width:2.75rem;height:2.75rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(9,18,14,.85);border:1px solid rgba(255,255,255,.15);font-size:1.3rem;backdrop-filter:blur(4px)}.why-card-img{height:130px;margin:-1.25rem -1.25rem 1rem;background-size:cover;background-position:center top}.service-card-body,.ethics-card,.testimonial-card,.trust-badge,.why-card,.step-card{padding:1.25rem}.service-card-btn{display:inline-flex;margin-top:auto;color:var(--accent-bright);font-weight:800;text-decoration:none}.gallery-item{position:relative}.gallery-item span{position:absolute;inset:auto 0 0 0;padding:.8rem 1rem;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);font-weight:700}.area-tags{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}.area-tag{padding:.55rem .8rem;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#fff;text-decoration:none}.area-tag:hover{background:var(--interactive-state-bg);border-color:var(--interactive-state-border)}.area-tag:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.area-tag:disabled{opacity:.6;cursor:not-allowed}.rating-summary{display:flex;align-items:center;gap:1rem}.big-num{font-size:3rem;font-weight:800;color:#fff}.stars{color:#f7c948;letter-spacing:2px}.faq-accordion{display:grid;gap:1rem} details{padding:1rem 1.25rem} summary{cursor:pointer;font-weight:800;color:#fff}details p{margin:.75rem 0 0}.service-detail-card{display:grid;grid-template-columns:1fr 1.15fr;margin-bottom:2rem}.service-detail-card.reverse{grid-template-columns:1.15fr 1fr}.service-detail-card.reverse .service-img-col{order:2}.service-img-col{min-height:320px;background-size:cover;background-position:center}.service-content-col{padding:clamp(1.25rem,4vw,2.5rem)}.service-list{list-style:none;padding:0;margin:1rem 0}.service-list li{position:relative;padding-left:1.5rem;margin:.5rem 0;color:var(--text-light)}.service-list li:before{content:"✓";position:absolute;left:0;color:var(--accent-bright);font-weight:900}
form{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;text-align:left}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.4rem} label{font-size:.92rem;font-weight:700;color:#e9f4ed} input,textarea,select{width:100%;min-height:48px;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#fff;font:inherit} input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-bright);box-shadow:0 0 0 4px var(--focus-ring)} input:hover,textarea:hover,select:hover{background:rgba(255,255,255,.1)} input:disabled,textarea:disabled,select:disabled{opacity:.6;cursor:not-allowed;background:rgba(255,255,255,.03)} textarea{resize:vertical;min-height:120px} select{cursor:pointer;color-scheme:dark;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2358c46b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem} select option{background-color:#0c1c14;color:#ffffff;padding:10px} #form-success{display:none;color:var(--accent-bright);font-weight:800;margin-top:1rem}
.floating-cta{display:none;position:fixed;right:1rem;bottom:1rem;z-index:var(--z-floating-cta);padding:.9rem 1.2rem;border-radius:999px;background:linear-gradient(135deg,var(--accent-green),var(--accent-bright));color:#fff;text-decoration:none;font-weight:800;box-shadow:var(--shadow-lg),var(--shadow-glow)} footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:2rem clamp(1rem,4vw,3rem);border-top:1px solid rgba(255,255,255,.12);color:var(--text-muted);font-size:.9rem} footer p{font-size:.9rem;margin:.25rem 0}
.bg-hero{background-image:url('../images/hero-backyard-finished.jpg');background-image:image-set(url('../images/hero-backyard-finished.webp') type('image/webp'),url('../images/hero-backyard-finished.jpg') type('image/jpeg'))}
.bg-loaded.bg-about{background-image:url('../images/about-tradesperson.jpg');background-image:image-set(url('../images/about-tradesperson.webp') type('image/webp'),url('../images/about-tradesperson.jpg') type('image/jpeg'))}
.bg-loaded.bg-gallery{background-image:url('../images/gallery-garden-refresh.jpg');background-image:image-set(url('../images/gallery-garden-refresh.webp') type('image/webp'),url('../images/gallery-garden-refresh.jpg') type('image/jpeg'))}
.bg-loaded.bg-lawn{background-image:url('../images/service-lawn.jpg');background-image:image-set(url('../images/service-lawn.webp') type('image/webp'),url('../images/service-lawn.jpg') type('image/jpeg'))}
.bg-loaded.bg-labour{background-image:url('../images/service-labour.jpg');background-image:image-set(url('../images/service-labour.webp') type('image/webp'),url('../images/service-labour.jpg') type('image/jpeg'))}
.bg-loaded.bg-ethics{background-image:url('../images/trust-bg.jpg');background-image:image-set(url('../images/trust-bg.webp') type('image/webp'),url('../images/trust-bg.jpg') type('image/jpeg'))}
.bg-loaded.bg-testimonials{background-image:url('../images/testimonials-bg.jpg');background-image:image-set(url('../images/testimonials-bg.webp') type('image/webp'),url('../images/testimonials-bg.jpg') type('image/jpeg'))}
.bg-loaded.bg-areas{background-image:url('../images/service-areas-bg.jpg');background-image:image-set(url('../images/service-areas-bg.webp') type('image/webp'),url('../images/service-areas-bg.jpg') type('image/jpeg'))}
.bg-loaded.bg-quote{background-image:url('../images/quote-bg.jpg');background-image:image-set(url('../images/quote-bg.webp') type('image/webp'),url('../images/quote-bg.jpg') type('image/jpeg'))}
.bg-loaded.bg-why{background-image:url('../images/why-choose-bg.jpg');background-image:image-set(url('../images/why-choose-bg.webp') type('image/webp'),url('../images/why-choose-bg.jpg') type('image/jpeg'))}
/* Hero: tighter headline size + staggered entrance animation */
#hero .hero-headline{font-size:clamp(1.9rem,3.4vw,2.85rem)}
#hero .bg-hero{animation:heroZoom 16s ease-out forwards}
#hero .status-dot:after{content:"";position:absolute;inset:-6px;border-radius:50%;background:rgba(88,196,107,.35);animation:heroPulse 2.4s ease-out infinite;will-change:transform,opacity}
#hero .status-badge.hero-reveal{opacity:0;animation:heroFadeUp .7s ease forwards .05s}
#hero .hero-word{opacity:0;animation:heroFadeUp .6s ease forwards}
#hero .hero-word:nth-child(1){animation-delay:.18s}
#hero .hero-word:nth-child(2){animation-delay:.24s}
#hero .hero-word:nth-child(3){animation-delay:.3s}
#hero .hero-word:nth-child(4){animation-delay:.36s}
#hero .hero-word:nth-child(5){animation-delay:.42s}
#hero .hero-word:nth-child(6){animation-delay:.48s}
#hero .hero-word:nth-child(7){animation-delay:.54s}
#hero .hero-word:nth-child(8){animation-delay:.6s}
#hero .hero-word:nth-child(9){animation-delay:.66s}
#hero p.hero-reveal{opacity:0;animation:heroFadeUp .7s ease forwards .95s}
#hero .btn-group.hero-reveal{opacity:0;animation:heroFadeUp .7s ease forwards 1.1s}
#hero .hero-info-strip.hero-reveal{opacity:0;animation:heroFadeUp .7s ease forwards 1.25s}
@keyframes heroFadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes heroPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
/* Homepage sections: 3D scroll-reveal + parallax backgrounds + card tilt */
.section-3d-reveal{perspective:1400px}
.section-3d-reveal .bg-layer{transform:scale(1.12);will-change:transform}
.section-3d-reveal>.glass-card{opacity:0;transform:translateY(64px) rotateX(8deg) scale(.96);transform-origin:50% 100%;transition:opacity .9s cubic-bezier(.16,.84,.44,1),transform .9s cubic-bezier(.16,.84,.44,1);will-change:opacity,transform}
.section-3d-reveal.in-view>.glass-card{opacity:1;transform:translateY(0) rotateX(0) scale(1)}
.section-3d-reveal .services-cards-grid>*,.section-3d-reveal .gallery-grid>*,.section-3d-reveal .ethics-grid>*,.section-3d-reveal .testimonial-grid>*,.section-3d-reveal .trust-grid>*,.section-3d-reveal .why-grid>*,.section-3d-reveal .step-grid>*{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}
.section-3d-reveal.in-view .services-cards-grid>*,.section-3d-reveal.in-view .gallery-grid>*,.section-3d-reveal.in-view .ethics-grid>*,.section-3d-reveal.in-view .testimonial-grid>*,.section-3d-reveal.in-view .trust-grid>*,.section-3d-reveal.in-view .why-grid>*,.section-3d-reveal.in-view .step-grid>*{opacity:1;transform:none;transition-delay:calc(var(--reveal-i,0) * .08s)}
.service-card-item,.ethics-card,.testimonial-card,.trust-badge,.why-card,.step-card{transition:transform .35s cubic-bezier(.16,.84,.44,1),box-shadow .35s ease}
.service-card-item:hover,.ethics-card:hover,.testimonial-card:hover,.trust-badge:hover,.why-card:hover,.step-card:hover{transform:perspective(900px) rotateX(3deg) translateY(-8px);box-shadow:var(--shadow-lg)}
@media (max-width:1024px){.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.nav-links{display:none;position:absolute;top:100%;left:1rem;right:1rem;flex-direction:column;align-items:stretch;padding:1rem;background:rgba(7,17,13,.98);border:1px solid rgba(255,255,255,.14);border-radius:0 0 18px 18px;box-shadow:var(--shadow-md)}.nav-links.active{display:flex}.nav-links .btn{width:100%}.brand-lockup img{width:112px;height:112px}.site-nav{top:0}.utility-bar{display:none}#hero{padding-top:9.5rem}}
@media (max-width:768px){section{min-height:auto;padding:2.75rem 1rem}.glass-card{border-radius:20px;padding:1.35rem 1.15rem}.btn-group{flex-direction:column}.btn-group .btn{width:100%;font-size:1rem}.hero-info-strip{grid-template-columns:1fr;gap:.8rem}.info-divider,.info-thumb{display:none}.form-row,.service-detail-card,.service-detail-card.reverse{grid-template-columns:1fr}.service-detail-card.reverse .service-img-col{order:0}.service-img-col{min-height:230px}.floating-cta{display:inline-flex;align-items:center}.container{width:min(100% - 1.25rem,1200px);padding:7rem 0 3rem} footer{flex-direction:column;text-align:center}.trust-grid,.why-grid{grid-template-columns:1fr}.section-3d-reveal>.glass-card{transform:translateY(40px)scale(.98)}.section-3d-reveal .bg-layer{transform:scale(1.05)}.service-card-item:hover,.ethics-card:hover,.testimonial-card:hover,.trust-badge:hover,.why-card:hover,.step-card:hover{transform:translateY(-4px)} h1{font-size:clamp(1.85rem,6.5vw,2.5rem);line-height:1.18;letter-spacing:-0.02em} h2{font-size:clamp(1.4rem,5.2vw,1.95rem);line-height:1.25;letter-spacing:-0.01em} h3{font-size:clamp(1.18rem,4vw,1.45rem);line-height:1.3} p,.page-header p{font-size:clamp(.95rem,3.8vw,1.08rem);line-height:1.6} input,textarea,select{font-size:16px!important}}
@media (max-width:480px){body{font-size:16px} h1{font-size:clamp(1.75rem,7vw,2.2rem)}.service-card-img-wrap,.service-card-img,.gallery-item{height:190px}.floating-cta{left:1rem;right:1rem;justify-content:center}.site-nav{padding:.5rem .75rem}.brand-lockup img{width:92px;height:92px} label{font-size:.95rem}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#hero .hero-word,#hero .status-badge.hero-reveal,#hero p.hero-reveal,#hero .btn-group.hero-reveal,#hero .hero-info-strip.hero-reveal{opacity:1!important}.section-3d-reveal>.glass-card,.section-3d-reveal .services-cards-grid>*,.section-3d-reveal .gallery-grid>*,.section-3d-reveal .ethics-grid>*,.section-3d-reveal .testimonial-grid>*,.section-3d-reveal .trust-grid>*,.section-3d-reveal .why-grid>*,.section-3d-reveal .step-grid>*{opacity:1!important;transform:none!important}.section-3d-reveal .bg-layer{transform:none!important}}

/* Quote page: calendar + slot picker */
.gcal-badge{display:inline-flex;align-items:center;gap:.5rem;background:rgba(88,196,107,.15);border:1px solid rgba(88,196,107,.4);color:var(--accent-bright);padding:.4rem .95rem;border-radius:999px;font-size:.85rem;font-weight:600;margin-bottom:1rem}
.trust-bullets{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem .85rem;margin:1rem 0 1.5rem}
.trust-bullet-item{display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:var(--text-light);padding:.35rem .75rem;border-radius:999px;font-size:.82rem;font-weight:600}
.quote-booking-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem;text-align:left;margin-top:1.5rem}
.quote-calendar{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1rem}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;font-weight:800}
.cal-header button{min-height:36px;min-width:36px;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;font-size:1.1rem}
.cal-header button:hover{background:var(--interactive-state-bg)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin-top:.5rem;width:100%}
.cal-dow{text-align:center;font-size:.75rem;color:var(--text-muted);padding:.3rem 0;font-weight:700}
.cal-day{min-height:42px;aspect-ratio:1;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#fff;cursor:pointer;font-weight:600;display:flex;align-items:center;justify-content:center}
.cal-day:hover:not(:disabled){background:var(--interactive-state-bg);border-color:var(--interactive-state-border)}
.cal-day-disabled{visibility:hidden;pointer-events:none;opacity:0;cursor:default}
.cal-day-selected{background:linear-gradient(135deg,var(--accent-green),var(--accent-bright));border-color:transparent;font-weight:800}
.quote-duration{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1.25rem}
.quote-duration-label{font-weight:700;color:var(--text-muted);font-size:.92rem}
.duration-btn{min-height:40px;padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;font:inherit;font-weight:700}
.duration-btn:hover:not(.duration-selected){background:var(--interactive-state-bg);border-color:var(--interactive-state-border)}
.duration-selected{background:linear-gradient(135deg,var(--accent-green),var(--accent-bright));border-color:transparent}
.quote-slots{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1rem}
.slot-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.slot-btn{min-height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;font:inherit;font-weight:700}
.slot-btn:hover:not(:disabled){background:var(--interactive-state-bg);border-color:var(--interactive-state-border)}
.slot-busy{display:none!important}
.slot-selected{background:linear-gradient(135deg,var(--accent-green),var(--accent-bright));border-color:transparent}
.slots-placeholder,.slots-note,.slots-error{color:var(--text-muted);font-size:.92rem;margin:0}
.slots-error{color:#ffb199}
#quote-selected-summary{margin-top:1.25rem;padding:.85rem 1rem;border-radius:12px;background:rgba(88,196,107,.12);border:1px solid rgba(88,196,107,.3);color:var(--accent-bright);font-weight:700}
@media (max-width:768px){.quote-booking-grid{grid-template-columns:1fr}}

/* Footer: stable grid, no inherited flex layout */
.site-footer{
  display:block;
  padding:0;
  position:relative;
  border-top:1px solid rgba(255,255,255,.12);
  background:#09140e;
  color:var(--text-muted);
  font-size:.9rem;
}
.site-footer:before{
  content:"";
  position:absolute;
  inset:-1px 0 auto 0;
  height:3px;
  background:linear-gradient(90deg,transparent,var(--accent-bright),transparent);
  opacity:.7;
}
.site-footer .footer-grid{
  width:min(100%,1200px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(230px,1.35fr) repeat(3,minmax(160px,1fr));
  gap:clamp(1.5rem,3vw,3rem);
  padding:clamp(2rem,4vw,3.25rem) clamp(1.25rem,5vw,4rem) 2rem;
}
.site-footer .footer-col{min-width:0;min-height:0;display:block;align-items:stretch;justify-content:flex-start;padding:0;overflow:visible}
.site-footer .footer-col h2{
  margin:0 0 1rem;
  color:var(--text-light);
  font-size:1rem;
  line-height:1.3;
  font-weight:800;
}
.site-footer .footer-brand h2{font-size:1.5rem;letter-spacing:-.01em;color:var(--accent-bright)}
.site-footer p{margin:0 0 .7rem;max-width:35ch}
.site-footer address{font-style:normal;margin-top:1rem}
.site-footer .footer-label{display:inline-block;min-width:3.5rem;color:#fff;font-weight:700}
.site-footer ul{display:grid;gap:.45rem;list-style:none;margin:0;padding:0}
.site-footer a{color:var(--text-muted);text-decoration:none;text-underline-offset:.2em}
.site-footer a:hover{color:var(--accent-bright);text-decoration:underline}
.site-footer a:focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px;border-radius:2px}
.site-footer .footer-bottom{
  width:min(100%,1200px);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem 2rem;
  flex-wrap:wrap;
  padding:1rem clamp(1.25rem,5vw,4rem) 1.15rem;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:.82rem;
}
.site-footer .footer-bottom p{margin:0;max-width:none}
.site-footer .footer-legal{display:flex;gap:1rem}
.site-footer .footer-credit{margin-left:auto}
.site-footer .footer-credit a{color:var(--accent-bright);font-weight:700}
@media (max-width:900px){
  .site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-footer .footer-brand{grid-column:1 / -1;max-width:42rem}
}
@media (max-width:560px){
  .site-footer .footer-grid{grid-template-columns:1fr;padding-top:2.25rem}
  .site-footer .footer-brand{grid-column:auto}
  .site-footer .footer-bottom{align-items:flex-start;flex-direction:column;gap:.75rem}
  .site-footer .footer-credit{margin-left:0}
}


/* Extra components and footer helpers */
.lazy-bg {
  background-size: cover;
  background-position: center;
  transition: background-image 0.4s ease;
}
.brand-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.footer-logo {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  object-fit: cover;
}
.footer-brand-name {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--text-light);
  margin: 0;
}
.footer-tagline {
  font-size: 0.875rem;
  color: var(--accent-bright);
  font-weight: 600;
  margin: 0.15rem 0 0 0;
}
.footer-desc {
  font-size: 0.9rem;
  color: var(--text-muted);
  line-height: 1.5;
  margin: 0.75rem 0 1rem 0;
}
.footer-rating-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(88, 196, 107, 0.12);
  border: 1px solid rgba(88, 196, 107, 0.28);
  color: var(--accent-bright);
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.footer-contact-info {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.footer-contact-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-muted);
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 0.2s ease;
}
.footer-contact-link:hover {
  color: var(--accent-bright);
}
.testimonial-author {
  font-weight: 700;
  color: var(--text-light);
  font-size: 1rem;
  margin-top: 0.5rem;
}
.ethics-icon {
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
  display: inline-block;
}
