/* Final layout and readability sanity layer */
html,body{max-width:100%;overflow-x:hidden}main,main>*,.hero-booking-layout>*,.service-hero>*,.contact-layout>*,.enquiry-section>*,.form-grid>*{min-width:0}
/* A completed reveal must return to a true rectangular layout. */
.motion.shown,.reveal.motion.shown,[data-motion].shown{transform:none!important;filter:none!important;opacity:1!important}
main>.section,.brands-we-serve,.service-disclaimer,footer{content-visibility:visible!important;contain:none!important}
header{background:#fffdf7!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.brand-logo-image{display:block;object-fit:contain;object-position:left center}
header .brand{display:flex;align-items:center;flex:0 0 220px;width:220px;min-width:220px;height:72px;overflow:visible}
header .brand-logo-image{width:220px;height:72px}
footer .footer-brand{display:inline-flex;width:min(260px,80vw);height:auto;margin-bottom:12px}
footer .brand-logo-image{width:100%;height:auto}
.service-grid article{display:flex;flex-direction:column;height:100%}.service-grid article>.photo{flex:0 0 220px}.service-grid article>div{display:flex;flex:1;flex-direction:column}.service-grid article .more,.gallery-page article .more{margin-top:auto;padding-top:12px}
.content-cards article,.area-grid article,.steps article,.cards article,.gallery-page article,.review-page article,.principle-grid article{height:100%}.gallery-page article,.review-page article{display:flex;flex-direction:column}.review-page article strong{margin-top:auto}.principle-grid{align-items:stretch}
.gallery-grid span{z-index:5;color:#fff!important;background:rgba(4,31,22,.9);text-shadow:0 1px 3px rgba(0,0,0,.45)}.gallery-grid a:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(3,27,19,.48));pointer-events:none;transition:background .35s}.gallery-grid a:hover:after{background:linear-gradient(180deg,transparent 38%,rgba(3,27,19,.7))}
.hero-booking{width:min(370px,calc(100vw - 48px));max-width:370px;min-width:0}.enquiry-form{width:100%;min-width:0}.hero-enquiry-form,.enquiry-form,.form-grid{min-width:0}.hero-enquiry-form input,.hero-enquiry-form select,.enquiry-form input,.enquiry-form select{max-width:100%;min-width:0}.hero-enquiry-form .btn,.enquiry-form .btn{white-space:normal;text-align:center}.contact-page b,.contact-page em,footer p,footer a{overflow-wrap:anywhere}.contact-page em{font-size:12px;color:var(--muted)}
.hero-booking label,.enquiry-form label{line-height:1.35}.hero-booking input,.hero-booking select,.enquiry-form input,.enquiry-form select{font-size:16px}.hero-booking select,.enquiry-form select{text-overflow:ellipsis}.hero-booking .btn,.enquiry-form .btn{min-height:48px}
.enquiry-section,.contact-safety,.contact-service,.intro-content,.process,.problems,.why-us,.areas,.faq{transform-origin:center center;clip-path:none;border-radius:0}
.enquiry-section{align-items:start}.enquiry-section>div,.enquiry-section>form{min-width:0}.enquiry-form{height:auto;align-self:start}.form-grid label{min-width:0}.form-grid input,.form-grid select{display:block}
.reviews :is(h2,h3),.cta h2{color:#fff!important}.reviews label,.cta label{color:#ffe09a!important}.reviews>div>p,.reviews .review-list p{color:#e2eee8!important}.reviews .more{color:#83e0b7!important}
.service-hero>img{width:100%;height:auto;aspect-ratio:4/3;max-height:430px;object-fit:cover;object-position:center}.about-image img,.gallery-page img,.service-grid .photo img{object-position:center}
.service-hero+.benefits{position:relative;z-index:2;width:min(90%,1120px);margin:24px auto 0;transform:none!important}
@media(min-width:701px) and (max-width:1000px){.hero-booking-layout{min-height:0;padding-bottom:42px}.hero-booking-layout .hero-image:after{background:linear-gradient(180deg,#071b14f3 0%,#0c3024e8 60%,#071b14d8)}.hero-copy{width:auto;padding:62px 5vw 34px}.hero-booking{position:relative;top:auto;right:auto;width:min(560px,90%);max-width:560px;min-width:0;margin:0 auto;padding:26px;transform:none}.hero-benefits{width:94%;grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.service-hero>img{max-height:320px}.service-grid article>.photo{flex-basis:205px}.gallery-grid span{max-width:calc(100% - 26px);white-space:normal}.contact-page>a,.contact-page>div{min-width:0}.contact-page b{font-size:14px}}

/* Definitive contrast and grid correction */
.intro-content>div:first-child :is(label,h2,h3,p,strong,span){color:#fff!important}
.intro-content>div:first-child label{color:#ffe29a!important}
.intro-content>div:first-child h2:after{background:linear-gradient(90deg,#fff,#f3b53f)}

.service-grid,.content-cards,.steps,.cards,.gallery-page,.review-page,.principle-grid{align-items:stretch;grid-auto-rows:1fr}
.service-grid article,.content-cards article,.area-grid article,.steps article,.cards article,.gallery-page article,.review-page article,.principle-grid article{
 position:relative;isolation:isolate;overflow:hidden;min-width:0;width:100%;height:100%;
}
.content-cards article,.area-grid article,.steps article,.cards article,.principle-grid article{display:flex;flex-direction:column}
.content-cards article p,.area-grid article p,.steps article p,.cards article p,.principle-grid article p{margin-bottom:0}
/* Card reveals may change opacity, never card geometry or grid dimensions. */
.service-grid article.motion,.content-cards article.motion,.area-grid article.motion,.steps article.motion,.cards article.motion,.gallery-page article.motion,.review-page article.motion,.principle-grid article.motion,.review-list article.motion{transform:none!important}
.service-grid article.shown,.content-cards article.shown,.area-grid article.shown,.steps article.shown,.cards article.shown,.gallery-page article.shown,.review-page article.shown,.principle-grid article.shown,.review-list article.shown{transform:none!important}
.content-cards article,.steps article,.cards article,.principle-grid article{min-height:245px;padding:28px}
.area-grid{align-items:stretch;grid-auto-rows:1fr}.area-grid article{height:100%;min-height:150px}
.review-list{align-items:stretch;grid-auto-rows:1fr}.review-list article{display:flex;flex-direction:column;width:100%;height:100%;min-height:210px}.review-list article strong{margin-top:auto}
.service-grid article :is(h2,h3,h4,p,li,a,strong,small,span,label),
.content-cards article :is(h2,h3,h4,p,li,a,strong,small,span,label),
.area-grid article :is(h2,h3,h4,p,li,a,strong,small,span,label),
.steps article :is(h2,h3,h4,p,li,a,strong,small,span,label),
.cards article :is(h2,h3,h4,p,li,a,strong,small,span,label),
.gallery-page article :is(h2,h3,h4,p,li,a,strong,small,span,label),
.review-page article :is(h2,h3,h4,p,li,a,strong,small,span,label),
.principle-grid article :is(h2,h3,h4,p,li,a,strong,small,span,label){transition:color .3s ease,background-color .3s ease,border-color .3s ease}

@media(hover:hover) and (pointer:fine){
 .service-grid article:hover,.content-cards article:hover,.area-grid article:hover,.steps article:hover,.cards article:hover,.gallery-page article:hover,.review-page article:hover,.principle-grid article:hover{
  background:linear-gradient(145deg,#3d8a6c,#123e30 62%,#071f17)!important;color:#fff!important;
 }
 .service-grid article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label),
 .content-cards article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label),
 .area-grid article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label),
 .steps article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label),
 .cards article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label),
 .gallery-page article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label),
 .review-page article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label),
 .principle-grid article:hover :is(h2,h3,h4,p,li,a,strong,small,span,label){color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.22)}
 .content-cards article:hover>span,.principle-grid article:hover>span{background:#fff!important;color:#286f56!important;border-color:#fff!important;text-shadow:none}
 .gallery-page article:hover .gallery-label,.review-page article:hover>span{color:#ffe39c!important}
}

.service-detail>*{min-width:0}.service-detail aside{height:max-content}.service-detail aside .btn{width:100%;margin-top:10px}.service-detail h2,.service-detail h3,.service-detail p,.service-detail li{overflow-wrap:anywhere}
.benefits span{min-width:0;overflow-wrap:anywhere}.heading>*{min-width:0}

@media(min-width:1001px){
 .hero-booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;column-gap:44px;min-height:690px;padding:0 5vw;align-items:center}
 .hero-booking-layout .hero-image{position:absolute;inset:0}
 .hero-copy{width:auto;max-width:720px;padding:68px 0}
 .hero-booking{position:relative;top:auto;right:auto;width:370px;max-width:370px;min-width:0;max-height:none;margin:48px 0;padding:28px;overflow:visible;transform:none!important;justify-self:end;align-self:center}
 .service-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
 .service-grid article,.service-grid article:nth-child(4),.service-grid article:nth-child(5){grid-column:span 2}
 .service-grid article:nth-child(4){grid-column:2/span 2}.service-grid article:nth-child(5){grid-column:4/span 2}
 .content-cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}
 .steps{grid-template-columns:repeat(4,minmax(0,1fr))}
 .cards,.gallery-page{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:701px) and (max-width:1000px){
 .hero-booking{max-height:none;overflow:visible}
 .service-grid,.content-cards,.content-cards.four,.steps,.cards,.gallery-page,.review-page,.principle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-grid article,.service-grid article:nth-child(4),.service-grid article:nth-child(5){grid-column:auto}
 .service-grid article:last-child:nth-child(odd){grid-column:1/-1;width:calc((100% - 20px)/2);justify-self:center}
}
@media(max-width:700px){
 .hero-booking{width:auto;max-width:none;max-height:none;margin-left:24px;margin-right:24px;overflow:visible}
 .hero-enquiry-form{grid-template-columns:minmax(0,1fr)}
 .service-grid,.content-cards,.content-cards.four,.steps,.cards,.gallery-page,.review-page,.principle-grid{grid-template-columns:minmax(0,1fr)}
 .service-grid,.content-cards,.steps,.cards,.gallery-page,.review-page,.principle-grid,.area-grid,.review-list{grid-auto-rows:auto}
 .service-grid article,.service-grid article:nth-child(4),.service-grid article:nth-child(5){grid-column:auto;width:100%}
 .section{overflow:hidden}.heading h2,.section h2{overflow-wrap:anywhere}
 .steps article,.cards article,.content-cards article,.area-grid article{padding:21px}
 .content-cards article,.steps article,.cards article,.principle-grid article,.area-grid article,.review-list article{min-height:0}
 .service-detail aside{padding:22px}
 .service-hero+.benefits{width:calc(100% - 48px);margin:20px 24px 0;border-radius:14px;overflow:hidden}
 .enquiry-section{padding-left:24px;padding-right:24px}.enquiry-form{padding:20px;border-radius:13px}
 header .brand{flex:0 0 168px;width:168px;min-width:168px;height:58px}.brand strong{font-size:19px}.brand small{font-size:8px}.mark{flex:0 0 42px}
 header .brand-logo-image{width:168px;height:58px}
 header nav{max-height:calc(100vh - 108px);overflow-y:auto}.dropdown>div{display:none!important}.dropdown.open>div{display:block!important}.dropdown.open>a{color:var(--emerald-dark)}
}

/* Centered home hero and premium section entrance treatment. */
.home-page .hero-copy{text-align:center}
.home-page .hero-copy>label{margin-inline:auto}
.home-page .hero-copy h1,.home-page .hero-copy>p{margin-left:auto;margin-right:auto}
.home-page .hero-copy .offers,.home-page .hero-copy .ticks,.home-page .hero-copy .hero-contact-actions{justify-content:center;margin-left:auto;margin-right:auto}
.home-page .hero-copy .ticks span{justify-content:center}
.home-page .motion[data-motion=depth]{transform:perspective(1100px) translateZ(-170px) translateY(30px) scale(.88)}
.home-page .motion[data-motion=left]{transform:translate3d(-70px,20px,0) scale(.97)}
.home-page .motion[data-motion=right]{transform:translate3d(70px,20px,0) scale(.97)}
.home-page .motion[data-motion=up]{transform:translate3d(0,58px,0) scale(.98)}
.home-page .motion.shown{transform:none!important}
.nav-backdrop{display:none}
.menu{width:46px;height:46px;padding:0;border:1px solid rgba(61,138,108,.22);border-radius:14px;background:linear-gradient(145deg,#fff,#edf7f2);box-shadow:0 10px 24px rgba(11,61,44,.12);align-items:center;justify-content:center;flex-direction:column;gap:5px}
.menu span{display:block;width:22px;height:2px;border-radius:99px;background:#164b39;transition:transform .28s ease,opacity .2s ease,width .28s ease}
.menu.is-open span:first-child{transform:translateY(7px) rotate(45deg)}
.menu.is-open span:nth-child(2){width:0;opacity:0}
.menu.is-open span:last-child{transform:translateY(-7px) rotate(-45deg)}
.hero-booking-layout .hero-image{overflow:hidden}
.hero-booking-layout .hero-image .hero-slide{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;opacity:1;transform:translate3d(100%,0,0);animation:texacoHeroFlow 12s linear infinite;will-change:transform}
.hero-booking-layout .hero-image .hero-slide:nth-child(1){animation-delay:-4s}
.hero-booking-layout .hero-image .hero-slide:nth-child(2){animation-delay:0s}
.hero-booking-layout .hero-image .hero-slide:nth-child(3){animation-delay:-8s}
.hero-booking-layout .hero-image:after{z-index:2;pointer-events:none}
@keyframes texacoHeroFlow{from{transform:translate3d(100%,0,0)}to{transform:translate3d(-200%,0,0)}}
.gallery-grid{grid-auto-rows:220px}
@media(max-width:700px){
 .home-page .hero-copy{text-align:center}
 .home-page .hero-copy .offers{justify-content:stretch}
 .home-page .hero-copy .ticks{display:grid;justify-items:center}
 .home-page .motion[data-motion=left],.home-page .motion[data-motion=right],.home-page .motion[data-motion=depth],.home-page .motion[data-motion=up]{transform:translate3d(0,34px,0) scale(.96)}
 body.menu-open{overflow:hidden;touch-action:none}
 .menu{display:flex;position:relative;z-index:54;flex:0 0 46px}
 .nav-backdrop{display:block;position:fixed;inset:0;z-index:48;border:0;background:rgba(2,22,15,.58);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
 body.menu-open .nav-backdrop{opacity:1;visibility:visible;pointer-events:auto}
 header nav{display:flex!important;position:absolute;top:calc(100% + 10px);left:12px;right:12px;z-index:53;max-height:calc(100dvh - 158px);padding:14px;gap:7px;overflow-y:auto;overscroll-behavior:contain;border:1px solid rgba(61,138,108,.22);border-radius:22px;background:linear-gradient(160deg,#fffefb 0%,#f0f8f4 100%);box-shadow:0 28px 70px rgba(3,35,24,.3);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px) scale(.98);transform-origin:top right;transition:opacity .25s ease,visibility .25s ease,transform .32s cubic-bezier(.16,1,.3,1)}
 header nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:none}
 header nav>a,.dropdown>a{display:flex;align-items:center;min-height:48px;padding:11px 14px!important;border:1px solid rgba(61,138,108,.12);border-radius:13px;background:rgba(255,255,255,.82);color:#173b2f;font-size:15px;font-weight:800;box-shadow:0 5px 13px rgba(14,65,47,.045)}
 header nav>a:after{content:'›';margin-left:auto;color:#3d8a6c;font-size:21px;line-height:1}
 .dropdown>a{background:linear-gradient(135deg,#276f56,#3d8a6c);color:#fff;border-color:transparent}
 .dropdown>a:after{content:'⌄';margin-left:auto;font-size:18px;transition:transform .25s ease}
 .dropdown.open>a:after{transform:rotate(180deg)}
 .dropdown>div{position:static;width:100%;margin-top:7px;padding:7px;gap:3px;border:1px solid rgba(61,138,108,.18);border-radius:15px;background:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 10px 25px rgba(10,61,43,.06);opacity:1;visibility:visible;transform:none}
 .dropdown.open>div{display:grid!important}
 .dropdown>div a{display:flex;align-items:center;min-height:42px;padding:9px 11px;border-radius:10px;color:#254a3d;font-size:13px;font-weight:750}
 .dropdown>div a:before{content:'';width:7px;height:7px;margin-right:10px;border-radius:50%;background:linear-gradient(135deg,#f3b53f,#3d8a6c);box-shadow:0 0 0 4px rgba(61,138,108,.09)}
 .dropdown>div a:hover,.dropdown>div a:focus-visible{background:#eaf5ef;color:#18523d}
 .gallery-grid{grid-template-rows:none;grid-auto-rows:210px}
}
@media(prefers-reduced-motion:reduce){
 .hero-booking-layout .hero-image .hero-slide{display:none;animation:none;will-change:auto}
 .hero-booking-layout .hero-image .hero-slide:first-child{display:block;opacity:1;transform:none}
}
