/* ILR brand: strategy brief — light UI #E8E1D5, green #336633, grey #333, brown #66503D */
:root{--bs-primary:#336633;--bs-primary-rgb:51,102,51;--bs-link-color:#336633;--bs-link-hover-color:#2a522a;--primary:#336633;--primary-deep:#2a522a;--bg-warm:#E8E1D5;--brown:#66503D;--slogan:#1C1C1C;--accent:#666666;--ink:#333333;--muted:#555555;--motion-ease:cubic-bezier(0.16,1,0.3,1);--motion-delay-base:0s;--reveal-y:50px;--reveal-duration:2.5s;--hero-duration:2.25s;--hero-img-duration:3.075s;--hero-img-ease:ease-out;--hero-slogan-fade-duration:2.5s;--hero-slogan-sync-offset:0s;--hero-slogan-flash-lead:1.75s;--hero-slogan-flash-duration:0.75s;--nav-logo-pad-x:0.6875rem;--nav-logo-pad-t:0.625rem;--nav-logo-pad-b:1.25rem;--nav-logo-max-h:2.875rem;--site-nav-h:max(92px,calc(var(--nav-logo-max-h) + var(--nav-logo-pad-t) + var(--nav-logo-pad-b)));--card-hover-lift:6px;--section-head-gap:3rem;--why-choose-stack-gap:3rem;--why-choose-split-gap:2rem;--testimonial-hover-duration:1.15s;--testimonial-hover-ease:cubic-bezier(0.42,0,0.58,1);--testimonial-bg-layer-duration:1.15s;--testimonial-card-lift-duration:0.42s;--photo-tint-top:rgba(102,80,61,0.58);--photo-tint-bottom:rgba(78,61,46,0.7);--photo-brown-tint-gradient:linear-gradient(165deg,var(--photo-tint-top) 0%,var(--photo-tint-bottom) 100%);--services-evidence-green-wash:linear-gradient(90deg,rgba(51,102,51,.14) 0%,rgba(51,102,51,.04) 38%,transparent 72%);--services-evidence-green-overlay:linear-gradient(to bottom,var(--primary) 0%,var(--primary) 100%) left top / 8px 100% no-repeat,var(--services-evidence-green-wash);--hero-inner-title-size:clamp(2rem,5vw,3rem)}
/* Nav padding: fixed rem per breakpoint only (no vw) so --site-nav-h stays constant between breakpoints */
@media (min-width:992px){:root{--nav-logo-pad-x:0.8125rem;--nav-logo-pad-t:1.375rem;--nav-logo-pad-b:2.25rem;--nav-logo-max-h:3.25rem;--site-nav-h:calc(var(--nav-logo-max-h) + var(--nav-logo-pad-t) + var(--nav-logo-pad-b))}}
@media (min-width:1200px){:root{--nav-logo-pad-x:0.9375rem;--nav-logo-pad-t:2.125rem;--nav-logo-pad-b:3rem;--nav-logo-max-h:3.5rem;--site-nav-h:calc(var(--nav-logo-max-h) + var(--nav-logo-pad-t) + var(--nav-logo-pad-b))}}
@media (min-width:1400px){:root{--nav-logo-pad-x:1rem;--nav-logo-pad-t:2.25rem;--nav-logo-pad-b:3.25rem;--nav-logo-max-h:3.75rem;--site-nav-h:calc(var(--nav-logo-max-h) + var(--nav-logo-pad-t) + var(--nav-logo-pad-b))}}
html{scroll-padding-top:var(--site-nav-h)}
/* Scope hero: image + line start together; CTA → subtitle → title stagger so title ends when image wipe ends */
body.page-scope{
  /* Copy / line / CTA (shorter image wipe than index; --hero-duration must stay ≤ --hero-img-duration for stagger) */
  --hero-duration:2.1s;
  --hero-img-duration:2.4s;
  /* Equal gaps between four starts (line, CTA, subtitle, title); last segment ends with image */
  --scope-hero-stagger:calc((var(--hero-img-duration) - var(--hero-duration)) / 3);
}
/* Scope — Range of Work: full-width green band (same gradient family as CTA / contact hero) */
.page-scope .scope-range-of-work{
  background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);
  color:#fff;
}
.page-scope .scope-range-of-work .section-title{color:#fff}
.page-scope .scope-range-of-work .section-subtitle{color:rgba(255,255,255,.92)}
/* Scope bands: same vertical rhythm as homepage (.services-preview, .why-choose, .testimonials) */
.page-scope main > section:not(.services-hero.hero-layout):not(.cta-section){
  padding:var(--section-head-gap) 0 64px;
}
/* Band intros (Range of Work, Core Services, Process, FAQ): title→subtitle gap + no extra sub margin before content */
.page-scope .scope-section-intro{margin-bottom:var(--section-head-gap)}
.page-scope .scope-section-intro .section-subtitle{margin-bottom:0}
@media (max-width: 767.98px){
.page-scope .scope-section-intro .section-subtitle{font-size:1rem}
}

/* Homepage load (hero) + scroll reveals below — same easing family; hero is slower / clearer stagger */
/* Hero image: top-to-bottom clip wipe + blur + slight scale (inset bottom 100%→0 reveals downward) */
@keyframes home-hero-img-in{
from{opacity:0;clip-path:inset(0 0 100% 0);filter:blur(8px);transform:scale(1.04)}
to{opacity:1;clip-path:inset(0 0 0 0);filter:blur(0);transform:scale(1)}
}
@keyframes home-hero-fade-up{from{opacity:0;transform:translateY(var(--reveal-y))}to{opacity:1;transform:translateY(0)}}
@keyframes home-hero-fade-down{from{opacity:0;transform:translateY(calc(-1 * var(--reveal-y)))}to{opacity:1;transform:translateY(0)}}
@keyframes home-hero-fade-in{from{opacity:0}to{opacity:1}}
@keyframes hero-eyebrow-chunk-pulse{
0%,100%{color:#fff;text-shadow:none;filter:brightness(1)}
45%{color:#fff;text-shadow:0 0 6px rgba(255,255,255,.45),0 0 14px rgba(255,255,255,.2);filter:brightness(1.18)}
}
/* Instagram CTA: same glow curve + underline + body color fade together (used after pointer leave; delay set in JS) */
@keyframes hero-instagram-pulse{
0%{color:#fff;text-shadow:none;filter:brightness(1);text-decoration-color:rgba(255,255,255,0)}
45%{color:#fff;text-shadow:0 0 6px rgba(255,255,255,.45),0 0 14px rgba(255,255,255,.2);filter:brightness(1.18);text-decoration-color:rgba(255,255,255,1)}
100%{color:rgba(255,255,255,.75);text-shadow:none;filter:brightness(1);text-decoration-color:rgba(255,255,255,0)}
}
@media (prefers-reduced-motion:no-preference){
/* Hero: stagger uses --hero-duration; scroll sections use --reveal-duration. img → stats → cta → subtitle → title → eyebrow */
.page-home .hero-motion--img,.page-scope .hero-motion--img{animation:home-hero-img-in var(--hero-img-duration) var(--hero-img-ease) var(--motion-delay-base) forwards}
.page-home .hero-motion--stats{animation:home-hero-fade-up var(--hero-duration) var(--motion-ease) calc(var(--motion-delay-base) + (var(--hero-duration) * 0.16)) both}
.page-home .hero-motion--cta{animation:home-hero-fade-down var(--hero-duration) var(--motion-ease) calc(var(--motion-delay-base) + (var(--hero-duration) * 0.36)) both}
.page-home .hero-motion--subtitle{animation:home-hero-fade-down var(--hero-duration) var(--motion-ease) calc(var(--motion-delay-base) + (var(--hero-duration) * 0.55)) both}
.page-home .hero-motion--title{animation:home-hero-fade-down var(--hero-duration) var(--motion-ease) calc(var(--motion-delay-base) + (var(--hero-duration) * 0.73)) both}
/* Scope: vertical rule with image (t=0), then CTA, subtitle, title — same duration each, staggered delays */
.page-scope .services-hero.hero-layout .services-hero__content-inner::before{animation:home-hero-fade-in var(--hero-duration) var(--motion-ease) var(--motion-delay-base) both}
.page-scope .hero-motion--cta{animation:home-hero-fade-down var(--hero-duration) var(--motion-ease) calc(var(--motion-delay-base) + var(--scope-hero-stagger)) both}
.page-scope .hero-motion--subtitle{animation:home-hero-fade-down var(--hero-duration) var(--motion-ease) calc(var(--motion-delay-base) + 2 * var(--scope-hero-stagger)) both}
.page-scope .hero-motion--title{animation:home-hero-fade-down var(--hero-duration) var(--motion-ease) calc(var(--motion-delay-base) + 3 * var(--scope-hero-stagger)) both}
/* Slogan fade starts when hero image wipe ends (same delay base + --hero-img-duration); tweak --hero-slogan-sync-offset if needed */
.page-home .hero-motion--eyebrow{animation:home-hero-fade-in var(--hero-slogan-fade-duration) var(--motion-ease) calc(var(--motion-delay-base) + var(--hero-img-duration) + var(--hero-slogan-sync-offset)) both}
/* After slogan fade (minus --hero-slogan-flash-lead): each phrase flashes white; duration/spacing = --hero-slogan-flash-duration */
.page-home .hero__eyebrow-chunk--pulse-1{animation:hero-eyebrow-chunk-pulse var(--hero-slogan-flash-duration) var(--motion-ease) calc(var(--motion-delay-base) + var(--hero-img-duration) + var(--hero-slogan-sync-offset) + var(--hero-slogan-fade-duration) - var(--hero-slogan-flash-lead)) both}
.page-home .hero__eyebrow-chunk--pulse-2{animation:hero-eyebrow-chunk-pulse var(--hero-slogan-flash-duration) var(--motion-ease) calc(var(--motion-delay-base) + var(--hero-img-duration) + var(--hero-slogan-sync-offset) + var(--hero-slogan-fade-duration) - var(--hero-slogan-flash-lead) + var(--hero-slogan-flash-duration)) both}
.page-home .hero__eyebrow-chunk--pulse-3{animation:hero-eyebrow-chunk-pulse var(--hero-slogan-flash-duration) var(--motion-ease) calc(var(--motion-delay-base) + var(--hero-img-duration) + var(--hero-slogan-sync-offset) + var(--hero-slogan-fade-duration) - var(--hero-slogan-flash-lead) + var(--hero-slogan-flash-duration) + var(--hero-slogan-flash-duration)) both}
}
@media (prefers-reduced-motion:reduce){
.page-home .hero-motion--img,.page-scope .hero-motion--img,.page-home .hero-motion--eyebrow,.page-home .hero-motion--title,.page-scope .hero-motion--title,.page-home .hero-motion--subtitle,.page-scope .hero-motion--subtitle,.page-home .hero-motion--cta,.page-scope .hero-motion--cta,.page-home .hero-motion--stats{animation:none!important;opacity:1!important;transform:none!important}
.page-home .hero-motion--img,.page-scope .hero-motion--img{clip-path:none!important;filter:none!important}
.page-scope .services-hero.hero-layout .services-hero__content-inner::before{opacity:1!important;animation:none!important}
.page-home .hero__eyebrow-chunk--pulse-1,.page-home .hero__eyebrow-chunk--pulse-2,.page-home .hero__eyebrow-chunk--pulse-3{animation:none!important;color:inherit!important;text-shadow:none!important;filter:none!important}
}
/* Scroll reveals: hidden only when motion is OK (avoid invisible content if MQ unsupported) */
@media (prefers-reduced-motion:no-preference){
.reveal:not(.is-visible),.animate-on-scroll:not(.animate-in){opacity:0;transform:translateY(var(--reveal-y));transition:opacity var(--reveal-duration) var(--motion-ease),transform var(--reveal-duration) var(--motion-ease)}
.reveal.is-visible,.animate-on-scroll.animate-in{opacity:1;transform:translateY(0);transition:opacity var(--reveal-duration) var(--motion-ease),transform var(--reveal-duration) var(--motion-ease)}
.reveal--stagger-1,.animate-on-scroll.reveal--stagger-1{transition-delay:var(--motion-delay-base)}
.reveal--stagger-2,.animate-on-scroll.reveal--stagger-2{transition-delay:calc(var(--motion-delay-base) + 0.12s)}
.reveal--stagger-3,.animate-on-scroll.reveal--stagger-3{transition-delay:calc(var(--motion-delay-base) + 0.26s)}
.reveal--cta-1{transition-delay:var(--motion-delay-base)}
.reveal--cta-1b{transition-delay:calc(var(--motion-delay-base) + 0.05s)}
.reveal--cta-2{transition-delay:calc(var(--motion-delay-base) + 0.1s)}
.reveal--cta-3{transition-delay:calc(var(--motion-delay-base) + 0.22s)}
.reveal--cta-4{transition-delay:calc(var(--motion-delay-base) + 0.34s)}
.reveal--why-head{transition-delay:var(--motion-delay-base)}
.reveal--why-text{transition-delay:calc(var(--motion-delay-base) + 0.08s)}
.reveal--why-img{transition-delay:calc(var(--motion-delay-base) + 0.14s)}
.reveal--services-head,.reveal--testimonials-head{transition-delay:var(--motion-delay-base)}
/* .reveal only transitioned opacity/transform, so box-shadow on these cards never animated */
.services-preview .service-card.reveal{
  transition:opacity var(--reveal-duration) var(--motion-ease),
              transform var(--reveal-duration) var(--motion-ease),
              box-shadow 0.5s var(--motion-ease),
              border-color 0.35s ease;
}
.testimonials .testimonial-card{
  transition:transform var(--testimonial-card-lift-duration) var(--testimonial-hover-ease),box-shadow var(--testimonial-card-lift-duration) var(--testimonial-hover-ease),border-color var(--testimonial-card-lift-duration) var(--testimonial-hover-ease);
}
.services-preview .service-card-wrap:hover .service-card.reveal,
.testimonials .testimonial-card-wrap:hover .testimonial-card{transition-delay:0s}
/* Quote cards: lift on hover — bottom buffer is wrap::after (out-of-flow), not padding */
.testimonials .testimonial-card-wrap:hover .testimonial-card{
  transform:translateY(calc(-1 * var(--card-hover-lift)));
  transition:transform var(--testimonial-card-lift-duration) var(--testimonial-hover-ease),box-shadow var(--testimonial-card-lift-duration) var(--testimonial-hover-ease),border-color var(--testimonial-card-lift-duration) var(--testimonial-hover-ease);
}
/* Homepage service pillars: lift + shadow; wrap:hover includes bottom buffer (same as testimonials) */
.services-preview .service-card-wrap:hover .service-card.reveal.is-visible{
  transform:translateY(calc(-1 * var(--card-hover-lift)));
  box-shadow:
    0 4px 8px rgba(0,0,0,0.06),
    0 16px 32px rgba(0,0,0,0.1),
    0 32px 64px -16px rgba(0,0,0,0.12);
  z-index:1;
  transition:transform var(--testimonial-card-lift-duration) var(--testimonial-hover-ease),
              box-shadow var(--testimonial-card-lift-duration) var(--testimonial-hover-ease),
              opacity var(--reveal-duration) var(--motion-ease),
              border-color 0.35s ease;
}
}
@media (prefers-reduced-motion:reduce){
.reveal,.animate-on-scroll{opacity:1!important;transform:none!important;transition:none!important}
.feature-item-wrap:hover .feature-item{transform:none}
.feature-item-wrap:hover::after,
.testimonial-card-wrap:hover::after,
.services-preview .service-card-wrap:hover::after,
.service-detail-card-wrap:hover::after{height:0!important;pointer-events:none!important}
}
a{color:var(--ink)}
a:hover{color:var(--primary)}
.nav-link{color:var(--ink)!important}
.nav-link:hover,.nav-link:focus{color:var(--primary)!important}
.nav-link.active{color:var(--primary)!important;font-weight:600}
.btn-outline-primary{border-color:var(--primary);color:var(--primary)!important}
.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary);color:#fff!important}
.btn-outline-secondary{border-color:var(--muted);color:var(--ink)!important}
.btn-outline-secondary:hover{background:#e0dcd4;border-color:#c9c2b6;color:var(--ink)!important}
.btn-outline-light{color:#fff;border-color:rgba(255,255,255,.5)}
.btn-outline-light:hover{background:#fff;border-color:#fff;color:var(--ink)!important}
/* FAQ accordion (scope): light green when open + left accent; collapsed = white; focus = outline not fuzzy halo */
.page-scope #faqAccordion .accordion-button{
  background-color:#fff;
}
.page-scope #faqAccordion .accordion-button:not(.collapsed){
  background-color:rgba(51,102,51,.12);
  color:var(--ink);
  box-shadow:inset 4px 0 0 var(--primary),inset 0 -1px 0 rgba(0,0,0,.125);
}
.page-scope #faqAccordion .accordion-button:focus{
  box-shadow:inset 0 -1px 0 rgba(0,0,0,.125);
}
.page-scope #faqAccordion .accordion-button:not(.collapsed):focus{
  box-shadow:inset 4px 0 0 var(--primary),inset 0 -1px 0 rgba(0,0,0,.125);
}
.page-scope #faqAccordion .accordion-button:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
}
/* Scope FAQ: keep “FAQs” readable (not forced to all-caps like other .section-title) */
.page-scope .scope-faq__title{text-transform:none}
/* Scope FAQ: expanded chevron = 180° clockwise (Bootstrap default uses -180deg) */
.page-scope #faqAccordion .accordion-button::after{transform:rotate(0deg)!important}
.page-scope #faqAccordion .accordion-button:not(.collapsed)::after{transform:rotate(180deg)!important}
.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 .25rem rgba(51,102,51,.22)}
*{box-sizing:border-box}
body{font-family:'Poppins',sans-serif;color:var(--ink);background:var(--bg-warm);}
h1,h2,h3,h4,h5{font-family:'Montserrat',sans-serif}
.section-title{text-transform:uppercase;letter-spacing:.04em;font-weight:700}
/* Site nav: --nav-logo-pad-b larger than --nav-logo-pad-t (space mostly under the lockup) */
.site-nav.navbar{--bs-navbar-padding-x:0;padding:0;align-items:center;background:rgba(232,225,213,.97)!important}
.site-nav .container{display:flex;flex-wrap:wrap;align-items:center}
.site-nav .navbar-brand{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:var(--nav-logo-pad-t) var(--nav-logo-pad-x) var(--nav-logo-pad-b) var(--nav-logo-pad-x);margin:0;flex-shrink:0;position:relative;z-index:2;overflow:visible}
/* Logo: height fixed per breakpoint (no vw width) so bar height does not track viewport width */
.site-nav .nav-logo{display:block;box-sizing:content-box;height:var(--nav-logo-max-h);width:auto;max-width:100%;object-fit:contain;object-position:left center;vertical-align:middle;transform-origin:center center;transition:transform 1.45s cubic-bezier(0.22,1,0.36,1),filter .35s ease}
.site-nav .navbar-brand:hover .nav-logo{transform:scale(1.06);filter:drop-shadow(0 0 2px rgba(255,255,255,.88)) drop-shadow(0 0 6px rgba(255,255,255,.78)) drop-shadow(0 0 11px rgba(255,255,255,.62)) drop-shadow(0 0 18px rgba(255,255,255,.4)) drop-shadow(0 0 28px rgba(255,255,255,.22))}
@media (max-width:991px){
.site-nav .navbar-brand:hover .nav-logo{transform:translateX(0) scale(1.06)}
}
@media (prefers-reduced-motion:reduce){
.site-nav .nav-logo{transition:none}
.site-nav .navbar-brand:hover .nav-logo{transform:none;filter:none}
}
@media (prefers-reduced-motion:reduce) and (max-width:991px){
.site-nav .navbar-brand:hover .nav-logo{transform:translateX(0)}
}
@media (min-width:992px){
.site-nav .container{flex-wrap:nowrap;column-gap:1rem}
.site-nav .navbar-nav{flex-wrap:nowrap;white-space:nowrap}
.site-nav .nav-item .nav-link{padding-left:.5rem;padding-right:.5rem}
.site-nav .nav-item .btn{padding:.35rem .75rem;font-size:.9rem}
.site-nav .navbar-top-row{display:flex;flex:0 0 auto;align-items:center;min-width:0}
.site-nav .navbar-brand{justify-content:flex-start}
}
.site-nav .navbar-collapse{flex-basis:auto;flex-grow:1;align-items:center;justify-content:flex-end;min-width:0}
.site-nav .navbar-nav{align-items:center}
.site-nav .nav-item .nav-link{padding-left:.75rem;padding-right:.75rem}
.site-nav .nav-item .btn{padding:.4rem .9rem}
@media (max-width:991px){
.site-nav.navbar{min-height:var(--site-nav-h);padding:0;align-items:flex-start}
.site-nav .container{position:relative;display:flex;flex-wrap:wrap;align-items:flex-start}
.site-nav .navbar-top-row{display:flex;align-items:center;justify-content:flex-end;position:relative;height:var(--site-nav-h);width:100%;flex:0 0 100%}
.site-nav .navbar-brand{position:absolute;left:50%;margin-left:-50vw;width:100vw;top:0;height:var(--site-nav-h);flex:none;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:var(--nav-logo-pad-t) max(var(--nav-logo-pad-x),env(safe-area-inset-left,0px)) var(--nav-logo-pad-b) max(var(--nav-logo-pad-x),env(safe-area-inset-right,0px));box-sizing:border-box}
.site-nav .navbar-brand .nav-logo{position:relative;left:0;transform:translateX(0);pointer-events:auto;height:var(--nav-logo-max-h);width:auto;max-width:min(100%,16.25rem);object-fit:contain}
/* No button frame: Bootstrap’s toggler uses border + focus box-shadow (reads as dark/light rings around the rounded square) */
.site-nav .navbar-toggler{position:relative;z-index:2;border:none!important;box-shadow:none!important;outline:0;border-radius:0.375rem;background:transparent;transition:color .3s ease;-webkit-tap-highlight-color:transparent}
.site-nav .navbar-toggler:focus,.site-nav .navbar-toggler:focus-visible,.site-nav .navbar-toggler:hover,.site-nav .navbar-toggler[aria-expanded="true"]{border:none!important;box-shadow:none!important;outline:none!important}
.site-nav .navbar-toggler .navbar-toggler-icon{transition:filter .3s ease}
/* Glow: menu open on all devices; :hover only where real hover exists (avoids stuck “hover” on touch after tap) */
.site-nav .navbar-toggler[aria-expanded="true"]{color:#fff}
.site-nav .navbar-toggler[aria-expanded="true"] .navbar-toggler-icon{filter:brightness(0) invert(1) drop-shadow(0 0 6px rgba(51,102,51,.65)) drop-shadow(0 0 14px rgba(51,102,51,.4)) drop-shadow(0 0 22px rgba(51,102,51,.22))}
@media (hover: hover) and (pointer: fine){
.site-nav .navbar-toggler:hover{color:#fff}
.site-nav .navbar-toggler:hover .navbar-toggler-icon{filter:brightness(0) invert(1) drop-shadow(0 0 6px rgba(51,102,51,.65)) drop-shadow(0 0 14px rgba(51,102,51,.4)) drop-shadow(0 0 22px rgba(51,102,51,.22))}
}
.site-nav .navbar-toggler:focus-visible{color:#fff}
.site-nav .navbar-toggler:focus-visible .navbar-toggler-icon{filter:brightness(0) invert(1) drop-shadow(0 0 6px rgba(51,102,51,.65)) drop-shadow(0 0 14px rgba(51,102,51,.4)) drop-shadow(0 0 22px rgba(51,102,51,.22))}
/* Mouse: click leaves :focus without :focus-visible — clear icon; keep glow if still hovering or menu open */
.site-nav .navbar-toggler:focus:not(:focus-visible):not(:hover):not([aria-expanded="true"]) .navbar-toggler-icon{filter:none}
.site-nav .navbar-collapse{flex-basis:100%;flex-grow:1;margin-top:0;padding-top:0;border-top:1px solid rgba(0,0,0,.08)}
.site-nav .navbar-collapse .navbar-nav{padding-top:.75rem}
.site-nav .navbar-nav{flex-direction:column;align-items:stretch;text-align:center}
.site-nav .nav-item{margin-left:0;margin-right:0}
.site-nav .nav-item .nav-link{padding:.5rem 1rem}
.site-nav .nav-item .btn{display:block;width:100%;max-width:280px;margin:0 auto;text-align:center}
.site-nav .nav-item.ms-lg-3{margin-top:.5rem;margin-bottom:.75rem;margin-left:0!important}
}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;white-space:nowrap}
.navbar .btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.navbar .btn-primary:hover{background:#43901b;border-color:#43901b;color:#fff;filter:none}
.navbar .nav-cta,.nav-cta{transition:background .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}
.navbar .nav-cta:hover,.nav-cta:hover,.navbar .nav-cta:focus,.nav-cta:focus,#contact-form button.nav-cta:hover,#contact-form button.nav-cta:focus{background:#fff!important;border:1px solid var(--muted)!important;color:var(--ink)!important;filter:none!important;box-shadow:0 0 20px rgba(51,102,51,.35),0 0 40px rgba(51,102,51,.2)}
.site-nav .navbar-nav .nav-link:not(.btn){transition:text-shadow .3s ease,color .3s ease}
.site-nav .navbar-nav .nav-link:not(.btn):hover,.site-nav .navbar-nav .nav-link:not(.btn):focus-visible{color:#fff!important;text-shadow:0 0 12px rgba(51,102,51,.55),0 0 26px rgba(51,102,51,.35)}
.site-nav .navbar-nav .nav-link:not(.btn):focus-visible{outline:none}
.contact-form__call:hover{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}
.btn-primary:hover{filter:brightness(.95)}
.hero .btn-primary,.cta-section .btn-primary{background:#fff;color:var(--ink);border-color:#fff;transition:box-shadow .3s ease}
.hero .btn-primary:hover,.cta-section .btn-primary:hover{background:#fff;color:var(--primary);border-color:#fff;filter:none}
.hero .btn-primary:hover{box-shadow:0 0 20px rgba(255,255,255,.6),0 0 40px rgba(255,255,255,.3)}
.cta-section .btn-primary,.cta-section .btn-light{transition:box-shadow .3s ease}
.cta-section .btn-primary:hover,.cta-section .btn-light:hover{box-shadow:0 0 20px rgba(255,255,255,.6),0 0 40px rgba(255,255,255,.3)}

/* Hero – cohesive, responsive; on small screens image touches nav (no green above); desktop aligns below nav */
.hero{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);color:#fff;padding-top:var(--site-nav-h);padding-bottom:2.5rem;min-height:calc(100vh - var(--site-nav-h));min-height:calc(100lvh - var(--site-nav-h));display:flex;align-items:center}
.hero .container{width:100%}
.hero__inner{display:grid;gap:1.5rem;align-items:center}
.hero__content{text-align:center}
.hero__eyebrow{font-family:'Montserrat',sans-serif;font-size:clamp(0.65rem,.35vw + 0.55rem,.8rem)}
/* One-line vs stacked: below 480px the line is too tight; from 480px up (incl. 480–575) full-width hero fits the single line */
.hero__eyebrow-desktop{display:none;letter-spacing:.12em;white-space:nowrap}
.hero__eyebrow-mobile{display:block}
.hero__eyebrow-mobile .hero__eyebrow-line{display:block;letter-spacing:.12em;line-height:1.5}
.hero__eyebrow-mobile .hero__eyebrow-line--mid{letter-spacing:.14em}
@media (min-width:480px){
.hero__eyebrow-desktop{display:block}
.hero__eyebrow-mobile{display:none}
}
.hero__title{font-family:'Montserrat',sans-serif;font-size:clamp(1.75rem,5vw + 1rem,2.75rem);font-weight:700;line-height:1.2;margin:0 0 0.75rem;color:#fff;min-height:1.2em;text-transform:uppercase;letter-spacing:.06em}
.hero .hero__title--sentence{text-transform:none;letter-spacing:.02em;line-height:1.28;max-width:100%}
.hero__title-line{display:inline}
.page-home .hero__title-line--b{white-space:nowrap}
/* Slogan + title share one shrink-wrapped width (matches the wider of the two) */
.page-home .hero__headline{display:flex;flex-direction:column;align-items:stretch;width:fit-content;max-width:100%;min-width:0;margin-left:auto;margin-right:auto;box-sizing:border-box}
.page-home .hero__headline .hero__title--sentence{display:flex;flex-direction:column;align-items:flex-start;gap:0.15em;min-width:0}
.page-home .hero__headline .hero__title-line--join{display:none}
@media (max-width:991.98px){
.page-home .hero__headline{align-items:center;width:100%;max-width:100%;container-type:inline-size}
.page-home .hero__headline .hero__title--sentence{align-items:center;text-align:center}
.page-home .hero__headline .hero__eyebrow{text-align:center}
}
/* Homepage hero title: same clamps as before (phone vs tablet); when nowrap line B would overflow, cap with container width */
@media (max-width:767.98px){
.page-home .hero__title{font-size:clamp(1.75rem,5vw + 1rem,2.75rem)}
}
@media (min-width:768px) and (max-width:991.98px){
.page-home .hero__title{font-size:clamp(1.5rem,1.15rem + 2.35vw,2.45rem)}
}
@supports (container-type:inline-size){
@media (max-width:767.98px){
.page-home .hero__title{font-size:min(clamp(1.75rem,5vw + 1rem,2.75rem),calc(100cqi / 14))}
}
@media (min-width:768px) and (max-width:991.98px){
.page-home .hero__title{font-size:min(clamp(1.5rem,1.15rem + 2.35vw,2.45rem),calc(100cqi / 14))}
}
}
/* Skinny phones: one uniform scale keeps headline / sub / stats / CTAs in the same proportions */
@media (max-width:499px){
.page-home .hero{--hero-skinny:0.9}
/* Match .cta-title / .cta-subtitle / .cta-buttons (bottom CTA band); titles synced with .page-home .cta-section .cta-title */
.page-home .hero__title,.page-home .cta-section .cta-title{font-size:2rem;font-weight:700}
.page-home .hero .hero__inner{gap:calc(1.5rem * var(--hero-skinny))}
.page-home .hero .hero__subtitle{font-size:1.1rem;line-height:1.5;margin-bottom:calc(1.5rem * var(--hero-skinny))}
/* One horizontal slogan line (same as ≥480px); scale to fit narrow width */
.page-home .hero .hero__eyebrow-desktop{display:block;letter-spacing:0.06em}
.page-home .hero .hero__eyebrow-mobile{display:none}
.page-home .hero .hero__eyebrow{font-size:clamp(0.38rem,0.26rem + 2vw,0.65rem)}
.page-home .hero .hero__actions{display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;align-items:center;margin-bottom:calc(1.5rem * var(--hero-skinny))}
.page-home .hero .hero__actions .btn{min-width:min(100%,12rem);width:auto;max-width:none}
.page-home .hero .hero__actions .btn.btn-lg{font-size:1.0625rem;line-height:1.5;padding:0.5625rem 1.125rem}
.page-home .hero .hero__stats{--hero-stat-line-gap:calc(0.32rem * var(--hero-skinny));column-gap:calc(clamp(0.65rem,2.2vw,1.15rem) * var(--hero-skinny));row-gap:calc(0.75rem * var(--hero-skinny));padding-top:calc(1rem * var(--hero-skinny))}
.page-home .hero .hero__stat{padding:calc(0.2rem * var(--hero-skinny)) calc(0.55rem * var(--hero-skinny))}
.page-home .hero .hero__stat-plain-text{font-size:calc(clamp(0.53rem,1.57vw + 0.41rem,1.02rem) * var(--hero-skinny))}
}
@supports (container-type:inline-size){
@media (max-width:499px){
.page-home .hero .hero__eyebrow{font-size:min(0.65rem, calc(100cqi / 28))}
}
}
@media (min-width:992px){
/* Full text-column width on desktop so the slogan line spans wider than shrink-wrapped title */
.page-home .hero__headline{width:100%;max-width:100%;margin-left:0;margin-right:0}
.page-home .hero__headline .hero__title--sentence{align-items:flex-start;text-align:left}
.page-home .hero__headline .hero__eyebrow{text-align:left}
}
.hero__subtitle{font-size:clamp(0.9375rem,1.5vw + 0.65rem,1.1rem);line-height:1.5;margin:0 0 1.5rem;opacity:0.95;max-width:42ch;margin-left:auto;margin-right:auto}
.hero__subtitle-line{display:block;margin-top:0.5em}
.hero__subtitle-line:first-child{margin-top:0}
.hero__actions{display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;margin-bottom:1.5rem}
.hero__actions .btn{min-width:min(100%,12rem)}
/* Slightly under Bootstrap .btn-lg (~1.25rem); tuned a touch larger than default .btn-lg */
.hero__actions .btn.btn-lg{font-size:1.0625rem;line-height:1.5;padding:0.5625rem 1.125rem}
/* Three equal columns; stretch rows; same line-gap for all stat stacks */
.hero__stats{--hero-stat-line-gap:0.32rem;list-style:none;margin:0;padding:1rem 0 0;border-top:1px solid rgba(255,255,255,.3);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:stretch;align-items:stretch;column-gap:clamp(0.65rem, 2.2vw, 1.15rem);row-gap:0.75rem}
.hero__stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--hero-stat-line-gap);text-align:center;min-width:0;width:100%;min-height:0;align-self:stretch;padding:0.2rem 0.55rem;box-sizing:border-box;container-type:inline-size;container-name:hero-stat}
.hero__stat--plain{min-width:0;max-width:none}
/* ~15% smaller than prior clamp; softer than headline + subtitle so stats read as supporting */
.hero__stat-plain-text{display:block;font-family:'Montserrat',sans-serif;font-size:clamp(0.53rem,1.57vw + 0.41rem,1.02rem);font-weight:700;color:#fff;line-height:1.25;opacity:0.9;text-align:center}
@media (prefers-reduced-motion:no-preference){
/* Class toggled in main.js so pulse finishes after pointer leaves */
.page-home .hero__stat-plain-text.ilr-slogan-pulse--active{
  animation:hero-eyebrow-chunk-pulse var(--hero-slogan-flash-duration) var(--motion-ease) 0s 1 both;
}
/* Instagram: pulse + its underline live on inner span (not :hover) so animation runs after pointer leaves */
.page-home .cta-instagram__pulse.ilr-slogan-pulse--active{
  text-decoration-line:underline;
  text-underline-offset:0.14em;
  animation:hero-instagram-pulse var(--hero-slogan-flash-duration) var(--motion-ease) 0s 1 both;
}
}
.hero__media{margin:0;order:-1;overflow:hidden}
/* Inner wraps the img so hover zoom doesn’t fight hero load animation (forwards keeps transform on the img) */
.hero__media-inner{display:block;width:100%;overflow:hidden;transform-origin:center center;transition:transform 1.45s cubic-bezier(0.22,1,0.36,1)}
.hero__img{width:100%;height:auto;box-shadow:0 10px 40px rgba(0,0,0,.2);object-fit:cover;object-position:center;max-height:min(45vh,260px);transform-origin:center center}
.hero__media:hover .hero__media-inner{transform:scale(1.06)}
@media (prefers-reduced-motion:reduce){
.hero__media:hover .hero__media-inner{transform:none}
}
@media (max-width:991px){
.hero{padding-top:var(--site-nav-h);padding-bottom:2.5rem;min-height:100vh;min-height:100lvh;align-items:flex-start;overflow-x:hidden;background-image:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);background-position:0 var(--site-nav-h);background-size:100% calc(100% - var(--site-nav-h));background-repeat:no-repeat}
.hero__inner{margin-top:0;max-width:100%;min-width:0}
.hero__content{min-width:0}
/* Full-bleed image: 100vw + gutter math mismatches real layout on some Android widths */
.hero__media{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:none;box-sizing:border-box}
.hero__img{box-shadow:none;max-height:min(65vh,420px);min-height:min(40vh,220px);object-fit:cover;max-width:100%;width:100%}
}
@media (max-width:767px){
.hero__img{max-height:min(57vh,368px);min-height:min(35vh,192px)}
}
@media (min-width:992px){
.hero{padding-top:0;padding-bottom:3rem;min-height:100vh;min-height:100lvh;background-image:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);background-position:0 var(--site-nav-h);background-size:100% calc(100% - var(--site-nav-h));background-repeat:no-repeat}
.hero__inner{margin-top:var(--site-nav-h);grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;max-width:100%;min-height:max(18rem,calc(100vh - var(--site-nav-h) - 3rem));min-height:max(18rem,calc(100lvh - var(--site-nav-h) - 3rem))}
.hero__content{text-align:left;margin-top:0.75rem;display:flow-root}
.hero__eyebrow{margin-top:10px;font-size:clamp(0.72rem,0.38vw + 0.58rem,0.88rem)}
.hero__subtitle{margin-left:0;margin-right:0}
.hero__actions{justify-content:flex-start}
.hero__stats{column-gap:1.25rem;row-gap:1rem;padding-top:1.25rem}
.hero__media{order:0;align-self:stretch;display:flex;max-height:75vh}
.hero__media-inner{flex:1;min-height:0;display:flex;align-items:stretch;align-self:stretch}
.hero__media .hero__img,.hero__media-inner .hero__img{height:100%;object-fit:cover;max-height:none;max-width:100%}
}
@media (min-width:992px) and (max-width:1199.98px){
.hero__eyebrow{font-size:clamp(0.68rem,0.3vw + 0.52rem,0.8rem)}
}
@media (min-width:1200px){
.hero__title{font-size:clamp(2.25rem,2.5vw + 1.5rem,3.5rem)}
.hero__subtitle{font-size:1.2rem;margin-bottom:1.75rem}
.hero__actions{margin-bottom:2rem}
}
@media (min-width:1400px){
.hero__inner{gap:3rem}
}

/* Service Cards — homepage: 1 col below lg, 2 cols from lg up */
/* Homepage section bands: do not add Bootstrap .py-5 on these — its padding uses !important and overrides this. */
.services-preview{--reveal-y:75px;--reveal-duration:3s;padding:var(--section-head-gap) 0 64px}
.section-title{font-size:2.5rem;font-weight:700;margin-bottom:1rem}
.section-subtitle{font-size:1.1rem;color:var(--muted)}
/* Homepage: same outer spacing for How we deliver / ILR Standard / Impressions heading blocks (replaces ad-hoc mb-5 drift) */
.page-home .section-head{margin-top:0;margin-bottom:var(--section-head-gap)}
.page-home .section-head .section-subtitle{margin-bottom:0}
.service-card{position:relative;background:white;border-radius:15px;padding:2rem;box-shadow:0 5px 20px rgba(0,0,0,0.1);text-align:center;height:100%;transition:box-shadow 0.35s var(--motion-ease),border-color 0.35s ease;border:1px solid #f0f0f0}
/* Wrap: lift buffer is .service-card-wrap::after (see shared block below) — no padding reflow */
.services-preview .service-card-wrap{
  display:flex;
  flex-direction:column;
  height:100%;
  margin-bottom:0;
  overflow:visible;
}
/* Homepage pillars: image flush to top + sides; body copy keeps inset */
.services-preview .service-card{padding:0 0 2rem 0}
.services-preview .service-card h4,
.services-preview .service-card p,
.services-preview .service-card .service-link{padding-left:2rem;padding-right:2rem;box-sizing:border-box}
.service-icon{margin-bottom:1.5rem;border-radius:0;overflow:hidden}
.services-preview .service-icon{border-radius:15px 15px 0 0}
/* Same zoom pattern as .hero__media-inner — scale wrapper so image doesn’t fight other transforms */
.service-icon__inner{display:block;width:100%;overflow:hidden;transform-origin:center center;transition:transform 1.45s cubic-bezier(0.22,1,0.36,1)}
.service-icon img{display:block;width:100%;height:200px;object-fit:cover}
.services-preview .service-card-wrap:hover .service-icon__inner{transform:scale(1.06)}
@media (prefers-reduced-motion:reduce){
.services-preview .service-card-wrap:hover .service-icon__inner{transform:none}
}
.service-icon img.img-top,.service-image.img-top{object-position:top}
/* Complete Landscapes (home): shift crop right so pavilion/kitchen sit centred in the card */
.service-icon img.img-pos-complete{object-position:58% 57%}
.service-image.img-pos-75{object-position:50% 25%}
.service-image.img-pos-75-down{object-position:50% 75%}
.service-card h4{color:var(--ink);margin-bottom:1rem;font-weight:600}
.service-card p{color:var(--muted);line-height:1.6;margin-bottom:1.5rem}
.service-link{color:var(--primary);text-decoration:none;font-weight:600;transition:color .3s ease,text-shadow .3s ease}
/* Identical to .site-nav .navbar-nav .nav-link:not(.btn):hover / :focus-visible */
.service-link:hover,.service-link:focus-visible{color:#fff!important;text-shadow:0 0 12px rgba(51,102,51,.55),0 0 26px rgba(51,102,51,.35);outline:none}
.service-link__arrow{display:inline-block;transition:transform .3s var(--motion-ease),filter .3s ease}
.service-link:hover .service-link__arrow,.service-link:focus-visible .service-link__arrow{transform:translateX(4px);filter:drop-shadow(0 0 5px rgba(51,102,51,.68)) drop-shadow(0 0 9px rgba(51,102,51,.48)) drop-shadow(0 0 16px rgba(51,102,51,.32)) drop-shadow(0 0 24px rgba(51,102,51,.2)) drop-shadow(0 0 34px rgba(51,102,51,.1))}
@media (prefers-reduced-motion:reduce){
.service-link:hover .service-link__arrow,.service-link:focus-visible .service-link__arrow{transform:none}
}

/* Why Choose Us */
.why-choose{padding:var(--section-head-gap) 0 64px}
.why-choose .section-title,.why-choose .section-subtitle{text-align:center}
/* Pair height = pillar row only; image slot is out of flow (lg+) so wide breakpoints can’t grow the row taller than the cards */
.why-choose__pair{position:relative}
.why-choose__row{align-items:stretch}
.why-choose__media{overflow:hidden;border-radius:0}
/* Zoom the img, not the wrapper — scales inside a fixed frame (even clip on all sides; wrapper scale fights overflow with object-fit:contain) */
.why-choose__img{transform-origin:center center;transition:transform 1.45s cubic-bezier(0.22,1,0.36,1)}
.why-choose__media:hover .why-choose__img{transform:scale(1.06)}
@media (prefers-reduced-motion:reduce){
.why-choose__media:hover .why-choose__img{transform:none}
}
@media (max-width:991.98px){
/* Stack: more air between checkpoints and image; at lg+ gap is horizontal (image column beside text) */
.why-choose__img-slot{
  position:relative;
  width:100%;
  margin-top:var(--why-choose-stack-gap);
  padding-left:calc(var(--bs-gutter-x, 1.5rem) * 0.5);
  padding-right:calc(var(--bs-gutter-x, 1.5rem) * 0.5);
  box-sizing:border-box;
}
.why-choose__media{display:block;width:100%}
.why-choose__media-inner{display:block;width:100%;overflow:hidden}
.why-choose__img{display:block;width:100%;height:auto}
}
@media (min-width:992px){
.why-choose__pair{--bs-gutter-x:1.5rem}
/* Horizontal air between checklist column and image (stack gap is --why-choose-stack-gap on small screens) */
.why-choose__img-slot{
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  margin-left:var(--why-choose-split-gap);
  right:0;
  min-height:0;
  padding-left:calc(var(--bs-gutter-x) * 0.5);
  padding-right:calc(var(--bs-gutter-x) * 0.5);
  box-sizing:border-box;
}
/* Fixed viewport: clip on both axes; scale only the img inside (see global .why-choose__img hover rules) */
.why-choose__img-slot{min-width:0}
.why-choose__img-slot .why-choose__media{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  max-width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  overflow:hidden;
  border-radius:0;
  contain:paint;
}
.why-choose__img-slot .why-choose__media-inner{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
/* cover fills the frame at every column width/height; contain letterboxes and which side has gaps flips by breakpoint, so scale() looks like only some edges move */
.why-choose__img-slot .why-choose__img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
}
/* Last pillar: no margin below so column bottom matches image slot bottom */
.why-choose .features-list .feature-item-wrap:last-child{margin-bottom:0}
.feature-item-wrap{
  margin-bottom:2rem;
  overflow:visible;
}
/* Card lift wraps: bottom hit buffer = abs ::after (hover only, out-of-flow — no layout push). Image zoom still uses wrap:hover. */
.feature-item-wrap,
.testimonial-card-wrap,
.services-preview .service-card-wrap,
.service-detail-card-wrap{position:relative}
.feature-item-wrap::after,
.testimonial-card-wrap::after,
.services-preview .service-card-wrap::after,
.service-detail-card-wrap::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:100%;
  height:0;
  pointer-events:none;
}
.feature-item-wrap:hover::after,
.testimonial-card-wrap:hover::after,
.services-preview .service-card-wrap:hover::after,
.service-detail-card-wrap:hover::after{
  height:var(--card-hover-lift);
  pointer-events:auto;
}
.feature-item-wrap:hover,
.testimonial-card-wrap:hover,
.services-preview .service-card-wrap:hover,
.service-detail-card-wrap:hover{z-index:1}
.feature-item{display:flex;align-items:flex-start;padding:1rem;background:white;border-radius:10px;border:1px solid #f0f0f0;box-shadow:0 5px 20px rgba(0,0,0,0.1);position:relative;transition:box-shadow 0.5s var(--motion-ease),transform 0.35s var(--motion-ease),border-color 0.35s ease}
.feature-item-wrap:hover .feature-item{box-shadow:0 12px 28px rgba(0,0,0,0.12);transform:translateY(calc(-1 * var(--card-hover-lift)));z-index:1}
.feature-item--flagged{opacity:0.6}
.feature-item--flagged .feature-content h5,.feature-item--flagged .feature-content p{color:var(--muted)}
.feature-icon{width:40px;height:40px;background:var(--primary);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:1rem;flex-shrink:0;font-weight:700}
.feature-content h5{margin-bottom:0.5rem;color:var(--ink)}
.feature-content p{margin:0;color:var(--muted)}

/* Testimonials — Brown tint + photo on ::before/slide (idle .3 → hover 1). ::after is green wash only (no second brown). */
.testimonials{
  padding:var(--section-head-gap) 0 64px;
  --testimonial-evidence-overlay-idle:var(--photo-brown-tint-gradient);
}
.testimonial-card-wrap{
  display:flex;
  flex-direction:column;
  margin-bottom:0;
  overflow:visible;
}
/* Soft diffuse shadow (not a sharp offset box) */
.testimonial-card{
  position:relative;
  overflow:hidden;
  background:white;
  padding:2rem;
  border-radius:15px;
  border:1px solid rgba(0,0,0,0.06);
  box-shadow:
    0 2px 4px rgba(0,0,0,0.04),
    0 8px 24px rgba(0,0,0,0.08),
    0 24px 48px -12px rgba(0,0,0,0.06);
  height:100%;
}
.testimonial-card::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  background-image:var(--testimonial-evidence-overlay-idle),url(../img/cont/prio/IMG_20161007_154424.jpg);
  background-size:cover;
  background-position:center;
  opacity:0.3;
  transition:opacity var(--testimonial-bg-layer-duration) var(--testimonial-hover-ease);
  pointer-events:none;
  z-index:0;
}
.testimonial-card--carousel::before{display:none}
.testimonial-card-wrap:hover .testimonial-card::before{opacity:1}
.testimonial-card::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  z-index:1;
  background-image:var(--services-evidence-green-wash);
  background-size:cover;
  background-position:center;
  transition:opacity var(--testimonial-bg-layer-duration) var(--testimonial-hover-ease);
}
.testimonial-card-wrap:hover .testimonial-card::after{opacity:1}
.testimonial-card-wrap:hover .testimonial-card{
  box-shadow:
    0 4px 8px rgba(0,0,0,0.06),
    0 16px 32px rgba(0,0,0,0.1),
    0 32px 64px -16px rgba(0,0,0,0.12);
  z-index:1;
}
.testimonial-card > *{position:relative;z-index:2}
.testimonial-content{margin-bottom:1.5rem}
.testimonial-content p{font-style:italic;color:var(--ink);line-height:1.6;transition:color var(--testimonial-hover-duration) var(--testimonial-hover-ease)}
.testimonial-author{display:flex;flex-direction:column;gap:0.25rem}
.testimonial-author strong{color:var(--ink);transition:color var(--testimonial-hover-duration) var(--testimonial-hover-ease)}
.testimonial-author span{color:var(--muted);font-size:0.9rem;transition:color var(--testimonial-hover-duration) var(--testimonial-hover-ease)}
.testimonial-card-wrap:hover .testimonial-card .testimonial-content p,
.testimonial-card-wrap:hover .testimonial-card .testimonial-author strong{color:#fff}
.testimonial-card-wrap:hover .testimonial-card .testimonial-author span{color:rgba(255,255,255,.88)}
.testimonial-card-wrap:hover .testimonial-card .testimonials-carousel__btn{color:#fff}
.testimonial-card-wrap:hover .testimonial-card .testimonials-carousel__chev{opacity:1}
/* Carousel: per-slide evidence photo (same asset as legacy ::before) */
.testimonial-slide__bg{
  position:absolute;
  inset:0;
  border-radius:inherit;
  --testimonial-evidence-overlay:var(--testimonial-evidence-overlay-idle);
  background-image:var(--testimonial-evidence-overlay),url(../img/cont/prio/IMG_20161007_154424.jpg);
  background-size:cover;
  background-position:center;
  opacity:0.3;
  transition:opacity var(--testimonial-bg-layer-duration) var(--testimonial-hover-ease);
  pointer-events:none;
  z-index:0;
}
/* Unique evidence photo per slide (paths relative to this stylesheet) */
.testimonial-slide__bg--1{background-image:var(--testimonial-evidence-overlay),url(../img/cont/prio/IMG_20161101_141843.jpg)}
.testimonial-slide__bg--2{
  background-image:var(--testimonial-evidence-overlay),url(../img/cont/serv/IMG_20150902_111520.jpg);
  background-position:50% 38%;
}
.testimonial-slide__bg--3{background-image:var(--testimonial-evidence-overlay),url(../img/cont/serv/IMG_20160504_150943.jpg)}
.testimonial-slide__body{position:relative;z-index:1}
/* Shared bg stack (cross-fades between slides; not tied to slide opacity) */
.testimonial-carousel-bgs{
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:inherit;
  overflow:hidden;
  pointer-events:none;
}
.testimonial-carousel-bgs .testimonial-slide__bg{
  opacity:0;
  transition:opacity var(--testimonial-bg-layer-duration) var(--testimonial-hover-ease);
  z-index:0;
}
.testimonial-carousel-bgs .testimonial-slide__bg.is-active{
  opacity:0.3;
  z-index:1;
}
.testimonial-card-wrap:hover .testimonial-carousel-bgs .testimonial-slide__bg.is-active{opacity:1}
@media (prefers-reduced-motion:reduce){
.testimonial-card::before,.testimonial-card::after,.testimonial-slide__bg{transition:none}
.testimonial-carousel-bgs .testimonial-slide__bg{transition:none}
.testimonial-content p,.testimonial-author strong,.testimonial-author span{transition:none}
.testimonials-carousel .testimonial-slide,.testimonials-carousel .testimonial-slide__body{transition:none!important}
}

/* Impressions: one card per slide, minimal prev/next — shell + card widen at lg/xl */
.testimonials-carousel-shell{max-width:min(48rem,100%);margin-left:auto;margin-right:auto}
@media (min-width:992px){.testimonials-carousel-shell{max-width:min(59rem,100%)}}
@media (min-width:1200px){.testimonials-carousel-shell{max-width:min(67rem,100%)}}
@media (min-width:1400px){.testimonials-carousel-shell{max-width:min(78rem,100%)}}
.testimonials-carousel{width:100%}
/* Row is a single full-width strip; prev/next live inside the card */
.testimonials-carousel-row{display:block}
.testimonials-carousel .carousel-inner{
  position:relative;
  overflow:visible;
  flex:1 1 auto;min-width:0;width:100%;max-width:min(36rem,100%);margin-left:auto;margin-right:auto;
  padding-top:0.25rem;padding-bottom:0.25rem;
  box-sizing:border-box;
}
@media (min-width:768px){.testimonials-carousel .carousel-inner{max-width:min(45rem,100%)}}
@media (min-width:992px){.testimonials-carousel .carousel-inner{max-width:min(54rem,100%)}}
@media (min-width:1200px){.testimonials-carousel .carousel-inner{max-width:min(62rem,100%)}}
@media (min-width:1400px){.testimonials-carousel .carousel-inner{max-width:min(68rem,100%)}}
.testimonials-carousel__track{width:100%}
/* Full-bleed bg on card; gutter is slide padding + arrow centers (see --testimonial-arrow-gutter) */
.testimonials-carousel .testimonial-card--carousel{
  --testimonial-arrow-gutter:clamp(3rem,6.5vw,4rem);
  padding:0;
  box-sizing:border-box;
  height:auto;
}
.testimonials-carousel .testimonial-card--carousel .testimonial-carousel-bgs{z-index:0}
.testimonials-carousel .testimonial-card--carousel .testimonial-card__slides{z-index:2}
.testimonial-card__slides{
  position:relative;
  width:100%;
  /* Small fallback before JS measures; inline min-height from JS replaces this */
  min-height:min(10rem, 40vw);
}
.testimonial-slide{
  position:absolute;
  left:0;
  right:0;
  top:0;
  bottom:auto;
  min-height:100%;
  height:auto;
  margin:0;
  padding:1.6rem 1.5rem;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  overflow:hidden;
  border-radius:inherit;
  visibility:visible;
  pointer-events:none;
  z-index:0;
}
/* Carousel: bg fills card edge-to-edge; text inset matches arrow gutter */
.testimonials-carousel .testimonial-slide{
  padding:1.6rem var(--testimonial-arrow-gutter);
}
.testimonials-carousel .testimonial-slide .testimonial-slide__body{
  opacity:0;
  transition:opacity 420ms ease;
}
.testimonials-carousel .testimonial-slide--active{
  pointer-events:auto;
  z-index:2;
}
.testimonials-carousel .testimonial-slide--active .testimonial-slide__body{
  opacity:1;
}
/* Height comes from .testimonial-card__slides min-height (measured); avoid % height collapse in flex row */
.testimonials-carousel .testimonial-content{margin-bottom:1rem}
/* Match .service-link / .service-link__arrow — white icon + green glow on hover & focus */
.testimonials-carousel .testimonials-carousel__btn{
  position:absolute;
  top:50%;
  z-index:4;
  flex-shrink:0;
  width:2.5rem;
  height:2.5rem;
  border:0;
  background:transparent;
  color:var(--muted);
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  transition:color var(--testimonial-hover-duration) var(--testimonial-hover-ease);
}
/* Center each arrow in its side gutter (half gutter from card edge = middle of padding strip) */
.testimonials-carousel .testimonials-carousel__btn--prev{
  left:calc(var(--testimonial-arrow-gutter) / 2);
  transform:translate(-50%,-50%);
}
.testimonials-carousel .testimonials-carousel__btn--next{
  right:calc(var(--testimonial-arrow-gutter) / 2);
  transform:translate(50%,-50%);
}
.testimonials-carousel__btn:hover,
.testimonials-carousel__btn:focus-visible{
  color:#fff!important;
  outline:none;
}
.testimonials-carousel .testimonials-carousel__chev{
  width:1.375rem;
  height:1.375rem;
  opacity:.88;
  display:block;
  transition:transform .3s var(--motion-ease),filter .3s ease,opacity var(--testimonial-hover-duration) var(--testimonial-hover-ease);
}
.testimonials-carousel__btn:hover .testimonials-carousel__chev,
.testimonials-carousel__btn:focus-visible .testimonials-carousel__chev{
  opacity:1;
  filter:drop-shadow(0 0 5px rgba(51,102,51,.68)) drop-shadow(0 0 9px rgba(51,102,51,.48)) drop-shadow(0 0 16px rgba(51,102,51,.32)) drop-shadow(0 0 24px rgba(51,102,51,.2)) drop-shadow(0 0 34px rgba(51,102,51,.1));
}
.testimonials-carousel__btn--prev:hover .testimonials-carousel__chev,
.testimonials-carousel__btn--prev:focus-visible .testimonials-carousel__chev{transform:translateX(-4px)}
.testimonials-carousel__btn--next:hover .testimonials-carousel__chev,
.testimonials-carousel__btn--next:focus-visible .testimonials-carousel__chev{transform:translateX(4px)}
@media (prefers-reduced-motion:reduce){
.testimonials-carousel__btn--prev:hover .testimonials-carousel__chev,
.testimonials-carousel__btn--prev:focus-visible .testimonials-carousel__chev,
.testimonials-carousel__btn--next:hover .testimonials-carousel__chev,
.testimonials-carousel__btn--next:focus-visible .testimonials-carousel__chev{transform:none}
}

/* CTA Section */
.cta-section{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);color:white;padding:var(--section-head-gap) 0 64px}
.cta-title{font-size:2.5rem;font-weight:700;margin-bottom:0.5rem}
.cta-subtitle{
  font-size:1.1rem;
  margin:0 auto 1rem;
  max-width:36rem;
  color:rgba(255,255,255,.92);
  line-height:1.5;
  opacity:0.95;
}
.cta-buttons{display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;align-items:center;margin-top:0}
.cta-instagram{margin-top:1.25rem;font-size:0.9375rem;line-height:1.5}
.cta-instagram__link{
  color:rgba(255,255,255,.75);
  text-decoration:none;
  font-weight:400;
  transition:color .2s ease,opacity .2s ease;
}
.page-home .cta-instagram__link{transition:none}
.cta-instagram__stack{position:relative;display:inline-block}
.cta-instagram__pulse{
  color:inherit;
  display:inline-flex;
  align-items:center;
  gap:0.4em;
}
.cta-instagram__icon{flex-shrink:0;display:block}
/* Hover: duplicate text + underline above pulse layer so pulse can fade to muted underneath while pointer is still over the link */
.cta-instagram__hover-overlay{
  position:absolute;
  left:0;
  top:0;
  right:0;
  bottom:0;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:0.4em;
  pointer-events:none;
  opacity:0;
  color:#fff;
  text-decoration:underline;
  text-underline-offset:0.22em;
  font:inherit;
  line-height:inherit;
  white-space:nowrap;
  z-index:1;
}
.cta-section .cta-instagram__link:hover .cta-instagram__hover-overlay,
.cta-section .cta-instagram__link:focus-visible .cta-instagram__hover-overlay{opacity:1}
.cta-section .cta-instagram__link:hover,
.cta-section .cta-instagram__link:focus-visible{text-decoration:none;color:rgba(255,255,255,.75)}
.cta-instagram__link:hover{color:#fff;text-decoration:underline;text-underline-offset:0.22em}
.cta-instagram__link:focus-visible{
  outline:2px solid rgba(255,255,255,.85);
  outline-offset:3px;
  border-radius:2px;
}
/* Match homepage hero primary/secondary buttons (see .hero__actions .btn) */
.cta-buttons .btn{min-width:min(100%,12rem)}
.cta-buttons .btn.btn-lg{font-size:1.0625rem;line-height:1.5;padding:0.5625rem 1.125rem}

/* Services Hero – same layout as index (content left, image right), light background */
.services-hero.hero-layout{background:linear-gradient(135deg, #ebe4d8 0%, #e0d9cc 100%);color:var(--ink);padding-top:var(--site-nav-h);padding-bottom:2.5rem;min-height:calc(100vh - var(--site-nav-h));min-height:calc(100lvh - var(--site-nav-h));display:flex;align-items:center;overflow-x:hidden}
/* Match index hero: contain clip-path / blur wipe on the hero image */
.page-scope .services-hero.hero-layout .hero__media,
.page-scope .services-hero.hero-layout .hero__media-inner{overflow:hidden}
.services-hero.hero-layout .container{width:100%}
.services-hero.hero-layout .hero__title{color:var(--ink);text-transform:uppercase;letter-spacing:.06em}
.services-hero.hero-layout .hero__title--sentence{text-transform:none;letter-spacing:.02em;line-height:1.28;max-width:100%}
.services-hero.hero-layout .hero__subtitle{color:var(--muted);opacity:1}
/* Scope hero title: uses shared inner-page title scale; skinny-phone cap */
@media (max-width:991.98px){
.page-scope .services-hero.hero-layout .hero__title{font-size:var(--hero-inner-title-size)}
}
@supports (container-type:inline-size){
@media (max-width:991.98px){
.page-scope .services-hero.hero-layout .hero__title{font-size:min(var(--hero-inner-title-size),calc(100cqi / 14))}
}
}
@media (max-width:499px){
.page-scope .services-hero.hero-layout .hero__title{font-size:2rem;font-weight:700}
}
.services-hero.hero-layout .services-hero__content-inner{padding-left:1.25rem;border-left:1px solid var(--primary)}
/* Scope hero: equal space left and right of the vertical rule (line is 1px; gaps use --scope-line-gap) */
.page-scope .services-hero.hero-layout .services-hero__content-inner{
  position:relative;
  border-left:none;
  box-sizing:border-box;
  --scope-line-gap:clamp(1.25rem,0.75rem + 1.5vw,1.75rem);
  padding-left:calc(var(--scope-line-gap) * 2 + 1px);
  padding-right:var(--scope-line-gap);
}
.page-scope .services-hero.hero-layout .services-hero__content-inner::before{
  content:'';
  position:absolute;
  left:var(--scope-line-gap);
  top:0;
  bottom:0;
  width:1px;
  background:var(--primary);
  pointer-events:none;
}
@media (min-width:992px){
.page-scope .services-hero.hero-layout .services-hero__content-inner{
  --scope-line-gap:2.5rem;
  padding-left:calc(var(--scope-line-gap) + 1px);
  padding-right:0;
}
.page-scope .services-hero.hero-layout .services-hero__content-inner::before{
  left:0;
}
}
@media (min-width:1400px){
.page-scope .services-hero.hero-layout .services-hero__content-inner{
  --scope-line-gap:3rem;
}
}
@media (max-width:991px){
.services-hero.hero-layout{min-height:100vh;min-height:100lvh;padding-top:var(--site-nav-h);padding-bottom:2.5rem;background-image:linear-gradient(135deg, #ebe4d8 0%, #e0d9cc 100%);background-position:0 var(--site-nav-h);background-size:100% calc(100% - var(--site-nav-h));background-repeat:no-repeat;align-items:flex-start;display:flex;flex-direction:column}
.services-hero.hero-layout .container{flex:1;display:flex;flex-direction:column;min-height:0}
.services-hero.hero-layout .hero__inner{margin-top:0;max-width:100%;flex:1;display:grid;grid-template-rows:auto 1fr;align-items:stretch}
.services-hero.hero-layout .hero__content{display:flex;align-items:center;justify-content:center;padding:1rem 0;text-align:center}
.services-hero.hero-layout .hero__content .hero__actions{justify-content:center}
.services-hero.hero-layout .hero__content .services-hero__content-inner{margin:0 auto;text-align:center}
.page-scope .services-hero.hero-layout .hero__content .services-hero__content-inner{width:100%;max-width:100%;margin-left:0;margin-right:0}
.services-hero.hero-layout .hero__media{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:none;box-sizing:border-box}
.services-hero.hero-layout .hero__img{box-shadow:none;max-height:min(50vh,360px);min-height:min(35vh,200px);object-fit:cover;width:100%}
}
@media (max-width:767px){
.services-hero.hero-layout .hero__img{max-height:min(43vh,304px);min-height:min(30.5vh,170px)}
}
@media (min-width:992px){
.services-hero.hero-layout{padding-top:var(--site-nav-h);padding-bottom:3rem;min-height:calc(100vh - var(--site-nav-h));min-height:calc(100lvh - var(--site-nav-h));background-image:linear-gradient(135deg, #ebe4d8 0%, #e0d9cc 100%);background-position:0 var(--site-nav-h);background-size:100% calc(100% - var(--site-nav-h));background-repeat:no-repeat}
.services-hero.hero-layout .hero__inner{margin-top:0;grid-template-columns:1fr 1fr;gap:2.5rem;min-height:max(18rem,calc(100vh - var(--site-nav-h) - 3rem));min-height:max(18rem,calc(100lvh - var(--site-nav-h) - 3rem))}
.services-hero.hero-layout .hero__content{text-align:left;margin-top:0.75rem}
.services-hero.hero-layout .hero__subtitle{margin-left:0;margin-right:0}
.services-hero.hero-layout .hero__actions{justify-content:flex-start}
.services-hero.hero-layout .hero__media{order:0;align-self:stretch;display:flex;max-height:75vh}
.services-hero.hero-layout .hero__media-inner{flex:1;min-height:0;display:flex;align-items:stretch;align-self:stretch}
.services-hero.hero-layout .hero__media .hero__img,.services-hero.hero-layout .hero__media-inner .hero__img{height:100%;max-height:none;max-width:100%}
.services-hero.hero-layout .hero__title{font-size:var(--hero-inner-title-size)}
}
@media (min-width:1200px){
.services-hero.hero-layout .hero__subtitle{font-size:1.2rem;margin-bottom:1.75rem}
.services-hero.hero-layout .hero__actions{margin-bottom:2rem}
}
@media (min-width:1400px){
.services-hero.hero-layout .hero__inner{gap:3rem}
}

/* About Hero – like index/services: min-height to viewport, min space for content, no scroll, grows if content longer */
.about-hero{position:relative;min-height:100vh;min-height:100lvh;padding-top:var(--site-nav-h);display:grid;grid-template-columns:1fr;grid-template-rows:min(45vh,320px) minmax(max(18rem,55vh),auto);overflow-x:hidden}
.about-hero__media{position:relative;overflow:hidden;align-self:stretch}
.about-hero__img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.about-hero__overlay{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%)}
.about-hero__content{display:flex;align-items:center;background:linear-gradient(180deg, var(--bg-warm) 0%, #fff 25%);padding-bottom:2.5rem}
.about-hero__content-inner{flex:1;padding:2rem 1.5rem 0}
.about-hero__title{font-family:'Montserrat',sans-serif;font-size:var(--hero-inner-title-size);font-weight:700;color:var(--ink);margin:0 0 0.5rem;text-transform:uppercase;letter-spacing:.06em}
.about-hero__tagline{font-size:1.05rem;color:var(--muted);margin:0 0 1.5rem;line-height:1.5}
.about-hero__story{margin-bottom:1.75rem}
.about-hero__subtitle{font-family:'Montserrat',sans-serif;font-size:1.25rem;font-weight:600;color:var(--ink);margin:0 0 0.75rem}
.about-hero__story p{margin:0 0 0.75rem;color:var(--ink);line-height:1.6}
.about-hero__story p:last-child{margin-bottom:0}
.about-hero__values{display:grid;gap:1rem;margin-bottom:2rem}
.about-hero__value{background:#fff;border-radius:10px;padding:1rem 1.25rem;box-shadow:0 2px 10px rgba(0,0,0,0.06);border-left:3px solid var(--primary)}
.about-hero__value h5{font-family:'Montserrat',sans-serif;font-size:1rem;font-weight:600;color:var(--ink);margin:0 0 0.35rem}
.about-hero__value p{font-size:0.9rem;color:var(--muted);margin:0;line-height:1.5}
@media (min-width:992px){
.about-hero{grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding-top:var(--site-nav-h);min-height:100vh;min-height:100lvh}
.about-hero__content{order:1}
.about-hero__media{order:2;display:flex;align-items:stretch}
.about-hero__img{height:100%;min-height:100%}
.about-hero__overlay{background:linear-gradient(to left, rgba(0,0,0,0.15) 0%, transparent 50%)}
.about-hero__content{background:#fff;align-items:center;justify-content:center;padding-bottom:3rem}
.about-hero__content-inner{max-width:32rem;margin:0 auto;padding:3rem 2.5rem 0}
}
@media (min-width:1200px){
.about-hero__content-inner{padding:3.5rem 3rem 0}
}
@media (min-width:1400px){
.about-hero__content-inner{max-width:36rem}
}

/* Gallery Hero – image-dominant with overlay (portfolio style, different from index/services) */
.gallery-hero{position:relative;min-height:100vh;min-height:100lvh;padding-top:var(--site-nav-h);display:flex;align-items:center;justify-content:center;overflow:hidden}
.gallery-hero__img-wrap{position:absolute;inset:0;overflow:hidden;background-color:var(--bg-warm)}
.gallery-hero__img{width:100%;height:100%;object-fit:cover;transform-origin:center center;transition:transform 0.2s ease-out;transform:scale(1.06);background-color:var(--bg-warm)}
.gallery-hero__overlay{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%)}
.gallery-hero__content{position:relative;z-index:2;text-align:center;padding:2rem;max-width:36rem}
/* Inner pages: one shared fluid title scale (Contact, Capability, Projects, About) */
.gallery-hero__title{font-family:'Montserrat',sans-serif;font-size:var(--hero-inner-title-size);font-weight:700;color:#fff;margin:0 0 0.5rem;text-shadow:0 2px 8px rgba(0,0,0,0.3);text-transform:uppercase;letter-spacing:.06em}
.gallery-hero__subtitle{font-size:1.1rem;color:rgba(255,255,255,0.95);margin:0 0 1.5rem;text-shadow:0 1px 4px rgba(0,0,0,0.3)}
/* Contact Hero – map + contact info, green like index hero */
.contact-hero{position:relative;min-height:100vh;min-height:100lvh;padding-top:var(--site-nav-h);display:grid;grid-template-columns:1fr;grid-template-rows:min(45vh,320px) minmax(max(18rem,55vh),auto);overflow-x:hidden;background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);color:#fff}
.contact-hero__map{position:relative;overflow:hidden;align-self:stretch}
.contact-hero__map-inner{width:100%;height:100%;min-height:280px}
.contact-hero__map .leaflet-control-attribution{display:none}
.contact-hero__content{display:flex;align-items:center;background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);padding-bottom:2.5rem}
.contact-hero__content-inner{flex:1;padding:2rem 1.5rem 0}
.contact-hero__title{font-family:'Montserrat',sans-serif;font-size:var(--hero-inner-title-size);font-weight:700;color:#fff;margin:0 0 0.5rem;text-transform:uppercase;letter-spacing:.06em}
.contact-hero__tagline{font-size:1.05rem;color:rgba(255,255,255,0.95);margin:0 0 0.75rem;line-height:1.5}
.contact-hero__area{font-size:0.95rem;color:rgba(255,255,255,0.9);margin:0 0 1.25rem}
.contact-hero__actions{display:flex;flex-wrap:wrap;gap:0.75rem}
.contact-hero .btn-primary{background:#fff;color:var(--ink);border-color:#fff;transition:box-shadow .3s ease}
.contact-hero .btn-primary:hover{background:#fff;color:var(--primary);border-color:#fff;filter:none;box-shadow:0 0 20px rgba(255,255,255,.6),0 0 40px rgba(255,255,255,.3)}
@media (min-width:992px){
.contact-hero{grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding-top:var(--site-nav-h);min-height:100vh;min-height:100lvh}
.contact-hero__map{display:flex;align-items:stretch}
.contact-hero__map-inner{min-height:100%}
.contact-hero__content{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-deep) 100%);align-items:center;justify-content:center;padding-bottom:3rem}
.contact-hero__content-inner{max-width:32rem;margin:0 auto;padding:3rem 2.5rem 0}
}
@media (min-width:1200px){
.contact-hero__content-inner{padding:3.5rem 3rem 0}
}
@media (min-width:1400px){
.contact-hero__content-inner{max-width:36rem}
}

.service-detail-card-wrap{
  display:flex;
  flex-direction:column;
  margin-bottom:0;
  height:100%;
  overflow:visible;
}
.service-detail-card{background:#fff;color:var(--ink);border-radius:15px;overflow:hidden;box-shadow:0 5px 20px rgba(0,0,0,0.1);height:100%;transition:box-shadow var(--testimonial-card-lift-duration) var(--testimonial-hover-ease),transform var(--testimonial-card-lift-duration) var(--testimonial-hover-ease)}
.service-image{width:100%;height:250px;object-fit:cover;display:block;transform-origin:center center;transition:transform 1.45s cubic-bezier(0.22,1,0.36,1)}
.service-detail-card-wrap:hover .service-detail-card .service-image{transform:scale(1.06)}
.service-content{padding:2rem}
.service-content h3{color:var(--ink);margin-bottom:1rem;font-weight:600}
.service-description{color:var(--muted);margin-bottom:1.5rem;line-height:1.6}
.service-features{list-style:none;padding:0;margin-bottom:1.5rem}
.service-features li{padding:0.5rem 0;border-bottom:1px solid #f0f0f0;position:relative;padding-left:1.5rem}
.service-features li:before{content:"✓";color:var(--primary);font-weight:700;position:absolute;left:0}
.service-features li:last-child{border-bottom:none}
.service-price-range{color:var(--muted);font-size:0.9rem;font-weight:500;margin-top:1rem;padding:0.5rem 0}

/* Process Steps */
.process-step{text-align:center;padding:1.5rem}
.process-number{width:60px;height:60px;background:var(--primary);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;margin:0 auto 1rem}
.page-scope .process-number{font-size:1.1rem;letter-spacing:0.05em;line-height:1}
.process-step h4{margin-bottom:1rem;color:var(--ink)}
.process-step p{color:var(--muted);margin:0}
@supports (text-wrap:pretty){
.page-scope #process .process-step p{text-wrap:pretty}
}
.page-scope #process .process-step p{
  max-width:36ch;
  margin-left:auto;
  margin-right:auto;
  min-height:calc(1.55em * 3);
}
@media (max-width: 767.98px){
.page-scope #process .section-title,
.page-scope .section-title.scope-heading-md{font-size:1.65rem}
.page-scope #process .section-subtitle{font-size:1rem}
.page-scope #core-services .scope-services-shell__lead{font-size:1rem}
.page-scope #process .process-step{padding:1rem 0.65rem}
.page-scope #process .process-step h4{font-size:1rem;margin-bottom:0.65rem}
.page-scope #process .process-step p{font-size:0.85rem}
.page-scope #process .process-number{width:52px;height:52px;font-size:1rem;margin-bottom:0.75rem}
.page-scope #process span.rounded-pill.bg-secondary{font-size:0.78rem}
.page-scope #process .process-standard-note{font-size:0.8125rem;line-height:1.5}
}

/* Buttons: crisp hover/focus, no ripple */
.btn{position:relative;transition:background-color 0.2s ease,border-color 0.2s ease,color 0.2s ease,box-shadow 0.25s var(--motion-ease)}
.btn:focus-visible{box-shadow:0 0 0 .2rem rgba(51,102,51,.35)}
.service-detail-card-wrap:hover .service-detail-card{
  transform:translateY(calc(-1 * var(--card-hover-lift)));
  box-shadow:
    0 4px 8px rgba(0,0,0,0.06),
    0 16px 32px rgba(0,0,0,0.1),
    0 32px 64px -16px rgba(0,0,0,0.12);
}
@media (prefers-reduced-motion:reduce){
.service-detail-card,.service-detail-card-wrap:hover .service-detail-card{transform:none}
.service-detail-card-wrap:hover .service-detail-card .service-image{transform:none}
}

/* Gallery – clear layout with visible captions */
.gallery-filters{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem}
.gallery-filters__label{font-size:0.875rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em}
.gallery-filters__btns{display:flex;flex-wrap:wrap;gap:0.5rem}
.gallery-filter-btn{font-size:0.9rem;padding:0.5rem 1rem;border-radius:2rem;border:1px solid #ddd;background:#fff;color:var(--ink);cursor:pointer;transition:all 0.2s ease}
.gallery-filter-btn:hover{background:#f5f5f5;border-color:var(--primary);color:var(--primary)}
.gallery-filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}

.gallery-section{padding:2rem 0 3rem}
@media (min-width:768px){.gallery-section{padding:2.5rem 0 4rem}}
.gallery-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media (min-width:576px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:992px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:2rem}}

.gallery-card{display:block;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,0.08);transition:box-shadow 0.25s ease}
.gallery-card:hover{box-shadow:0 8px 24px rgba(0,0,0,0.12)}
.gallery-card__link{display:block;position:relative;width:100%;padding:0;border:none;background:none;cursor:pointer;text-align:left}
.gallery-card__img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 0.3s ease;background-color:var(--bg-warm)}
.gallery-card:hover .gallery-card__img{transform:scale(1.02)}
.gallery-card__badge{position:absolute;top:0.75rem;left:0.75rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;padding:0.25rem 0.6rem;background:rgba(0,0,0,0.6);color:#fff;border-radius:4px}
.gallery-card__info{padding:1rem 1.25rem;border-top:1px solid #f0f0f0}
.gallery-card__title{font-family:'Montserrat',sans-serif;font-size:1.1rem;font-weight:600;color:var(--ink);margin:0 0 0.25rem}
.gallery-card__desc{font-size:0.9rem;color:var(--muted);margin:0;line-height:1.4}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem;background:rgba(0,0,0,0.9);opacity:0;visibility:hidden;transition:opacity 0.25s ease,visibility 0.25s ease}
.lightbox.open{opacity:1;visibility:visible}
.lightbox__backdrop{position:absolute;inset:0;cursor:pointer}
.lightbox__inner{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}
.lightbox__close{position:absolute;top:-2.5rem;right:0;width:2.5rem;height:2.5rem;border:none;background:none;color:#fff;font-size:2rem;line-height:1;cursor:pointer;opacity:0.8;transition:opacity 0.2s}
.lightbox__close:hover{opacity:1}
.lightbox__img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:8px;display:block;background:linear-gradient(145deg,#2f2f2f,#1a1a1a);min-height:min(50vh,360px)}
.lightbox__caption{background:#fff;padding:1.25rem 1.5rem;border-radius:0 0 8px 8px;text-align:center;margin-top:-4px}
.lightbox__caption h4{font-size:1.1rem;font-weight:600;color:var(--ink);margin:0 0 0.25rem}
.lightbox__caption p{font-size:0.9rem;color:var(--muted);margin:0}

/* Mobile responsiveness */
@media (max-width: 768px) {
  .section-title{font-size:2rem}
  .gallery-filters{flex-direction:column;align-items:flex-start}
}

/* Service tiles */
.service-tile{position:relative;display:block;text-decoration:none;color:inherit}
.service-tile img{display:block;width:100%;}
.service-tile .tile-caption{position:absolute;left:0;right:0;bottom:0;padding:1rem 1.25rem;color:#fff;background:linear-gradient(transparent, rgba(0,0,0,.65));border-bottom-left-radius:.6rem;border-bottom-right-radius:.6rem}
.service-tile h5{margin:0}
.service-tile span{opacity:.9;font-size:.95rem}

/* CTA band */
.cta-band{background:linear-gradient(90deg,var(--primary),var(--primary-deep))}

/* Site footer — minimal; contact + quiet Instagram; meta row copyright / legal / Canadian */
.page-privacy-main{padding-top:calc(var(--site-nav-h) + 2rem)!important;}
.site-footer{
  --site-footer-edge:rgba(102,80,61,.1);
  background:linear-gradient(180deg,#faf8f5 0%,#f2ebe2 100%);
  border-top:1px solid var(--site-footer-edge);
  padding:clamp(1.25rem,2.5vw,1.5rem) 0 clamp(1.1rem,2vw,1.35rem);
  font-family:'Poppins',sans-serif;
}
@media (min-width:768px) and (max-width:991px){
  /* Extra bottom padding uses same footer gradient (not body bg) so the call FAB doesn’t sit over warm page color */
  .site-footer{
    padding-bottom:calc(clamp(1.1rem,2vw,1.35rem) + 56px + 1rem + env(safe-area-inset-bottom,0px) - 5px);
  }
}
.site-footer__primary{display:flex;flex-direction:column;align-items:flex-start;width:100%}
.site-footer__contact--split{
  display:flex;
  flex-direction:row;
  justify-content:space-between;
  align-items:baseline;
  gap:1rem 1.5rem;
  width:100%;
  flex-wrap:wrap;
}
.site-footer__link--end{text-align:right;margin-left:auto}
.site-footer__link{
  color:var(--primary);
  text-decoration:none;
  font-size:0.9375rem;
  font-weight:500;
  line-height:1.45;
  transition:color .2s ease,opacity .2s ease;
}
.site-footer__link:hover{color:var(--primary-deep);text-decoration:underline;text-underline-offset:0.22em}
.site-footer__link:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:3px;
  border-radius:2px;
}
.site-footer__meta{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid rgba(0,0,0,.055);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.75rem;
  text-align:center;
}
.site-footer__meta-start{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.75rem;
}
.site-footer__copyright{
  margin:0;
  padding:0;
  font-size:0.8125rem;
  color:var(--muted);
  line-height:1.5;
}
.site-footer__legal{
  font-size:0.8125rem;
  color:var(--muted);
  text-decoration:none;
  font-weight:400;
  line-height:1.5;
  transition:color .2s ease,opacity .2s ease;
}
.site-footer__legal:hover{color:var(--ink);text-decoration:underline;text-underline-offset:0.22em}
.site-footer__legal:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:3px;
  border-radius:2px;
}
.site-footer__canada-text{
  margin:0;
  font-size:0.8125rem;
  color:var(--muted);
  line-height:1.45;
  letter-spacing:.01em;
}
.site-footer__canada-leaf{
  display:inline-block;
  vertical-align:-0.14em;
  width:0.95em;
  height:0.95em;
  margin:0 0.28em;
}
.site-footer__canada-loc{white-space:nowrap}
@media (min-width:768px){
  .site-footer__meta{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    text-align:left;
  }
  .site-footer__meta-start{
    flex-direction:row;
    align-items:baseline;
    flex-wrap:wrap;
    gap:0.65rem 1.25rem;
    justify-content:flex-end;
    text-align:right;
  }
  .site-footer__canada-text{text-align:left}
}
@media (min-width:768px) and (max-width:991px){
  /* No extra row gap when Privacy wraps under © on tablet */
  .site-footer__meta-start{gap:0 1.25rem}
}

/* Scope — Core Services: vertical process-style explorer (single-open; panel shell, not card grid)
   Layer stack (back → front), all within .scope-services-shell (white #fff):
   1) Shell background — full card fill (lowest).
   2) .scope-service-explorer__item — row chrome; transparent so shell shows through when closed.
   3) ::before (z-index 0) — brown-tinted photo; fades in/out with --open.
   4) ::after  (z-index 1) — left primary accent bar + soft green wash (both painted above photo); below text.
   5) .scope-service-explorer__trigger + .scope-service-explorer__collapse (z-index 2) — title, body,
      bullets, notes (black or white copy always paints above photo + green). */
.page-scope .scope-services-shell__lead{
  max-width:36rem;
  line-height:1.5;
  font-size:1.1rem;
}
.page-scope .scope-services-shell{
  background:#fff;
  border:1px solid rgba(51,102,51,.14);
  border-radius:12px;
  box-shadow:0 6px 32px rgba(0,0,0,.06),0 1px 0 rgba(255,255,255,.8) inset;
  overflow:hidden;
}
.page-scope .scope-service-explorer{
  /* Panel: slower, symmetric ease-in-out; row chrome: slightly quicker, soft ease-out */
  --scope-explorer-duration:2s;
  --scope-explorer-ease:cubic-bezier(0.65,0,0.35,1);
  --scope-explorer-ui-duration:1.35s;
  --scope-explorer-ui-ease:cubic-bezier(0.4,0,0.2,1);
  --scope-z-photo:0;
  --scope-z-green:1;
  --scope-z-content:2;
  /* Default panel photo if an item has no slug override */
  --scope-panel-bg-image:url('../img/cont/prio/IMG_20161101_141843.jpg');
}
/* One background per core category (matches data-service-slug on each row) */
.page-scope .scope-service-explorer__item[data-service-slug="site-correction-drainage"]{
  --scope-panel-bg-image:url('../img/cont/prio/IMG_20161101_141831.jpg');
}
.page-scope .scope-service-explorer__item[data-service-slug="hardscaping-surface-work"]{
  --scope-panel-bg-image:url('../img/cont/prio/IMG_20161007_154424.jpg');
}
.page-scope .scope-service-explorer__item[data-service-slug="outdoor-structures-features"]{
  --scope-panel-bg-image:url('../img/cont/prio/IMG_20160824_145605_-_Copy.jpg');
}
.page-scope .scope-service-explorer__item[data-service-slug="softscaping-planting"]{
  --scope-panel-bg-image:url('../img/cont/serv/IMG_20150902_111520.jpg');
}
.page-scope .scope-service-explorer__item{
  position:relative;
  z-index:0;
  border-bottom:1px solid rgba(0,0,0,.08);
  transition:background-color var(--scope-explorer-ui-duration) var(--scope-explorer-ui-ease),box-shadow var(--scope-explorer-ui-duration) var(--scope-explorer-ui-ease);
}
.page-scope .scope-service-explorer__item::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:var(--scope-z-photo);
  background-image:var(--photo-brown-tint-gradient),var(--scope-panel-bg-image);
  background-size:cover,cover;
  background-position:center,center;
  opacity:0;
  transition:opacity var(--testimonial-bg-layer-duration) var(--testimonial-hover-ease);
  pointer-events:none;
}
.page-scope .scope-service-explorer__item.scope-service-explorer__item--open::before,
.page-scope .scope-service-explorer__item:hover:not(.scope-service-explorer__item--open)::before{
  opacity:1;
}
.page-scope .scope-service-explorer__item:last-of-type{
  border-bottom:none;
}
.page-scope .scope-service-explorer__item::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:var(--scope-z-green);
  pointer-events:none;
  opacity:0;
  background:var(--services-evidence-green-overlay);
  transition:opacity var(--testimonial-bg-layer-duration) var(--testimonial-hover-ease);
}
.page-scope .scope-service-explorer__item.scope-service-explorer__item--open{
  background:transparent;
}
.page-scope .scope-service-explorer__item.scope-service-explorer__item--open::after,
.page-scope .scope-service-explorer__item:hover:not(.scope-service-explorer__item--open)::after{
  opacity:1;
}
.page-scope .scope-service-explorer__item:hover:not(.scope-service-explorer__item--open) .scope-service-explorer__trigger{
  background-color:transparent;
}
.page-scope .scope-service-explorer__trigger,
.page-scope .scope-service-explorer__collapse{
  position:relative;
  z-index:var(--scope-z-content);
}
.page-scope .scope-service-explorer__trigger{
  display:block;
  text-align:left;
  width:100%;
  padding:1.15rem 1.5rem 1.15rem 1rem;
  margin:0;
  background:transparent;
  color:var(--ink);
  cursor:default;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  transition:background-color var(--scope-explorer-ui-duration) var(--scope-explorer-ui-ease);
  border-radius:0;
  font-family:inherit;
}
.page-scope .scope-service-explorer__trigger-main{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.4rem;
  width:100%;
  min-width:0;
}
.page-scope .scope-service-explorer__title-row{
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:space-between;
  gap:0.85rem;
  width:100%;
  min-width:0;
}
.page-scope .scope-service-explorer__chev-wrap{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
}
.page-scope .scope-service-explorer__chev{
  width:1.75rem;
  height:1.75rem;
  display:block;
  color:var(--ink);
  opacity:0.88;
  transform:rotate(90deg);
  transform-origin:center center;
  transition:transform var(--scope-explorer-duration) var(--scope-explorer-ease),
              opacity var(--scope-explorer-duration) var(--scope-explorer-ease),
              color var(--testimonial-hover-duration) var(--testimonial-hover-ease);
}
.page-scope .scope-service-explorer__item--open .scope-service-explorer__chev{
  transform:rotate(180deg);
  opacity:0;
}
@media (prefers-reduced-motion:reduce){
.page-scope .scope-service-explorer__chev{transition:opacity var(--scope-explorer-duration) var(--scope-explorer-ease)}
}
@media (hover:none){
.page-scope .scope-service-explorer__trigger{cursor:pointer}
}
@media (min-width:768px){
.page-scope .scope-service-explorer__trigger{padding:1.25rem 1.75rem 1.25rem 1.35rem}
}
.page-scope .scope-service-explorer__title{
  display:block;
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  font-size:1.0625rem;
  letter-spacing:.02em;
  line-height:1.35;
  flex:1;
  min-width:0;
  text-align:left;
  color:var(--ink);
  transition:color var(--testimonial-hover-duration) var(--testimonial-hover-ease),
              text-shadow var(--testimonial-hover-duration) var(--testimonial-hover-ease);
}
.page-scope .scope-service-explorer__title-row .scope-service-explorer__title{
  padding-right:0.25rem;
}
@media (min-width:768px){
.page-scope .scope-service-explorer__title{font-size:1.125rem}
}
.page-scope .scope-service-explorer__descriptor{
  display:block;
  width:100%;
  font-size:0.9rem;
  color:var(--muted);
  font-weight:400;
  line-height:1.55;
  max-width:48ch;
  transition:color var(--testimonial-hover-duration) var(--testimonial-hover-ease),
              text-shadow var(--testimonial-hover-duration) var(--testimonial-hover-ease);
}
/* Smooth expand/collapse without Bootstrap height JS — grid 0fr → 1fr (see scope explorer markup). */
.page-scope .scope-service-explorer__collapse{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows var(--scope-explorer-duration) var(--scope-explorer-ease);
  overflow:hidden;
}
.page-scope .scope-service-explorer__collapse.is-expanded{
  grid-template-rows:1fr;
}
.page-scope .scope-service-explorer__collapse-inner{
  min-height:0;
  overflow:hidden;
}
@media (prefers-reduced-motion:reduce){
.page-scope .scope-service-explorer__collapse{transition:none}
.page-scope .scope-service-explorer__item::before{transition:none}
.page-scope .scope-service-explorer__item::after{transition:none}
.page-scope .scope-service-explorer__item,.page-scope .scope-service-explorer__trigger{transition:none}
.page-scope .scope-service-explorer__title,
.page-scope .scope-service-explorer__descriptor,
.page-scope .scope-service-explorer__panel,
.page-scope .scope-service-explorer__bullets,
.page-scope .scope-service-explorer__bullets li,
.page-scope .scope-service-explorer__note{transition:none}
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__title,
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__descriptor,
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__panel,
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__bullets,
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__bullets li,
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__note{animation:none!important}
}
.page-scope .scope-service-explorer__panel{
  padding:0 1rem 1.35rem 1.15rem;
  margin:0;
  border-left:none;
  background:transparent;
}
.page-scope .scope-service-explorer__item--open .scope-service-explorer__title,
.page-scope .scope-service-explorer__item:hover:not(.scope-service-explorer__item--open) .scope-service-explorer__title{
  color:rgba(255,252,246,0.98);
  text-shadow:0 1px 3px rgba(0,0,0,.4);
}
.page-scope .scope-service-explorer__item--open .scope-service-explorer__descriptor,
.page-scope .scope-service-explorer__item:hover:not(.scope-service-explorer__item--open) .scope-service-explorer__descriptor{
  color:rgba(245,236,224,0.9);
  text-shadow:0 1px 2px rgba(0,0,0,.32);
}
.page-scope .scope-service-explorer__item:hover:not(.scope-service-explorer__item--open) .scope-service-explorer__chev{
  color:#fff;
  opacity:1;
}
.page-scope .scope-service-explorer__item--open .scope-service-explorer__panel{
  color:rgba(255,252,246,0.96);
  text-shadow:0 1px 3px rgba(0,0,0,.35);
}
.page-scope .scope-service-explorer__item--open .scope-service-explorer__bullets{
  color:rgba(255,250,245,0.95);
  text-shadow:0 1px 2px rgba(0,0,0,.3);
}
.page-scope .scope-service-explorer__item--open .scope-service-explorer__note{
  color:rgba(228,218,204,0.68);
  text-shadow:0 1px 2px rgba(0,0,0,.2);
}
/* Close path: continuous chromatic blend (opacity stays 1) — matches panel-to-panel where copy never “goes out” */
@keyframes scopeExplorerFadeToInk{
  0%{opacity:1;color:rgba(255,252,246,0.98);text-shadow:0 1px 3px rgba(0,0,0,.4)}
  30%{opacity:1;color:rgba(190,180,168,0.97);text-shadow:0 1px 2px rgba(0,0,0,.22)}
  58%{opacity:1;color:rgba(92,90,86,0.98);text-shadow:0 1px 1px rgba(0,0,0,.12)}
  100%{opacity:1;color:#333333;text-shadow:none}
}
@keyframes scopeExplorerPanelFadeToInk{
  0%{opacity:1;color:rgba(255,252,246,0.96);text-shadow:0 1px 3px rgba(0,0,0,.35)}
  30%{opacity:1;color:rgba(188,178,168,0.96);text-shadow:0 1px 2px rgba(0,0,0,.2)}
  58%{opacity:1;color:rgba(90,88,84,0.98);text-shadow:0 1px 1px rgba(0,0,0,.12)}
  100%{opacity:1;color:#333333;text-shadow:none}
}
@keyframes scopeExplorerFadeBulletToInk{
  0%{opacity:1;color:rgba(255,250,245,0.95);text-shadow:0 1px 2px rgba(0,0,0,.3)}
  30%{opacity:1;color:rgba(188,182,174,0.96);text-shadow:0 1px 2px rgba(0,0,0,.18)}
  58%{opacity:1;color:rgba(90,88,84,0.98);text-shadow:0 1px 1px rgba(0,0,0,.1)}
  100%{opacity:1;color:#333333;text-shadow:none}
}
@keyframes scopeExplorerFadeToMuted{
  0%{opacity:1;color:rgba(245,236,224,0.9);text-shadow:0 1px 2px rgba(0,0,0,.32)}
  30%{opacity:1;color:rgba(150,142,128,0.95);text-shadow:0 1px 2px rgba(0,0,0,.18)}
  58%{opacity:1;color:rgba(96,92,86,0.96);text-shadow:0 1px 1px rgba(0,0,0,.1)}
  100%{opacity:1;color:#555555;text-shadow:none}
}
@keyframes scopeExplorerNoteFadeToMuted{
  0%{opacity:1;color:rgba(228,218,204,0.68);text-shadow:0 1px 2px rgba(0,0,0,.2)}
  30%{opacity:1;color:rgba(148,140,128,0.88);text-shadow:0 1px 2px rgba(0,0,0,.14)}
  58%{opacity:1;color:rgba(118,114,108,0.92);text-shadow:0 1px 1px rgba(0,0,0,.08)}
  100%{opacity:1;color:#848484;text-shadow:none}
}
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__title{
  transition:none;
  animation:scopeExplorerFadeToInk var(--scope-explorer-duration) var(--scope-explorer-ease) forwards;
}
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__panel{
  transition:none;
  animation:scopeExplorerPanelFadeToInk var(--scope-explorer-duration) var(--scope-explorer-ease) forwards;
}
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__bullets,
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__bullets li{
  transition:none;
  animation:scopeExplorerFadeBulletToInk var(--scope-explorer-duration) var(--scope-explorer-ease) forwards;
}
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__descriptor{
  transition:none;
  animation:scopeExplorerFadeToMuted var(--scope-explorer-duration) var(--scope-explorer-ease) forwards;
}
.page-scope .scope-service-explorer__item--closing-text .scope-service-explorer__note{
  transition:none;
  animation:scopeExplorerNoteFadeToMuted var(--scope-explorer-duration) var(--scope-explorer-ease) forwards;
}
.page-scope .scope-service-explorer__bullets{
  margin:0 0 1.15rem 0;
  padding-left:1.15rem;
  color:var(--ink);
  font-size:0.925rem;
  line-height:1.55;
}
.page-scope .scope-service-explorer__bullets li{margin-bottom:0.35rem}
.page-scope .scope-service-explorer__bullets li:last-child{margin-bottom:0}
.page-scope .scope-service-explorer__note{
  font-size:0.8125rem;
  color:#848484;
  line-height:1.55;
  margin:0;
  max-width:none;
}
@media (min-width:768px){
.page-scope .scope-service-explorer__panel{padding-left:1.35rem;padding-right:1.35rem;padding-bottom:1.5rem}
.page-scope .scope-service-explorer__bullets{margin-bottom:1.25rem}
}
.page-scope .scope-service-explorer__title,
.page-scope .scope-service-explorer__descriptor,
.page-scope .scope-service-explorer__panel,
.page-scope .scope-service-explorer__bullets,
.page-scope .scope-service-explorer__bullets li,
.page-scope .scope-service-explorer__note{
  text-shadow:none;
  transition:color var(--scope-explorer-duration) var(--scope-explorer-ease),
              text-shadow var(--scope-explorer-duration) var(--scope-explorer-ease);
}
.page-scope .scope-supporting-block{
  padding:1.35rem 1.25rem 1.5rem;
  border-top:1px solid rgba(51,102,51,.12);
  background:linear-gradient(180deg,rgba(51,102,51,.04) 0%,rgba(232,225,213,.35) 100%);
}
@media (min-width:768px){
.page-scope .scope-supporting-block{padding:1.5rem 1.5rem 1.65rem}
}
.page-scope .scope-supporting-block__heading{
  font-family:'Montserrat',sans-serif;
  font-size:0.8125rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--ink);
  margin:0 0 0.35rem 0;
}
.page-scope .scope-supporting-block__note{
  margin:0;
  max-width:40rem;
  line-height:1.5;
}
.page-scope .scope-supporting-block__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:0;
}
@media (min-width:576px){
.page-scope .scope-supporting-block__list{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:2.25rem;
  row-gap:0.25rem;
}
}
.page-scope .scope-supporting-block__list li{
  position:relative;
  padding:0.35rem 0 0.35rem 0.9rem;
  color:var(--ink);
  font-size:0.9375rem;
  line-height:1.55;
}
.page-scope .scope-supporting-block__list li::before{
  content:'';
  position:absolute;
  left:0;
  top:0.72rem;
  width:4px;
  height:4px;
  background:var(--primary);
  opacity:0.45;
}

/* Utilities */
.gap-2{gap:.5rem}

/* Mobile sticky call FAB: touch-first; hidden at lg+ (footer / contact cover desktop) */
.mobile-cta-wrap{position:fixed;left:0;right:0;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:1030;display:none;pointer-events:none}
.mobile-cta-wrap .container{display:flex;justify-content:flex-end;pointer-events:none}
.mobile-cta{pointer-events:auto}
@media (max-width:991px){
  .mobile-cta-wrap{display:block}
  .mobile-cta__btn{
    display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;
    background:#fff;color:var(--primary);border:1px solid rgba(0,0,0,.1);
    box-shadow:0 4px 16px rgba(0,0,0,.2);
    text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
    transition:transform .18s ease,box-shadow .2s ease,background .2s ease;
  }
  .mobile-cta__btn svg{flex-shrink:0}
  @media (hover: hover) and (pointer: fine){
    .mobile-cta__btn:hover{
      background:#fff;color:var(--primary);
      box-shadow:0 0 20px rgba(51,102,51,.35),0 0 40px rgba(51,102,51,.2);
      transform:scale(1.04);
    }
  }
  .mobile-cta__btn:active{background:#f4f1ea;color:var(--primary);transform:scale(0.96);box-shadow:0 2px 10px rgba(0,0,0,.18),inset 0 2px 5px rgba(0,0,0,.1)}
  .mobile-cta__btn:focus{outline:none}
  .mobile-cta__btn:focus-visible{
    outline:none;
    box-shadow:0 4px 16px rgba(0,0,0,.2),0 0 0 3px var(--primary),0 0 0 6px rgba(232,225,213,.95);
  }
}
