/* V20: corrections from the responsive audit. All content retained. */
:root{--space:clamp(48px,5vw,80px);--header-height:78px}
html{scroll-padding-top:calc(var(--header-height) + 16px)}body{overflow-x:clip}
.site-header{height:var(--header-height);background:rgba(5,17,26,.96);gap:24px}
.site-header .main-nav{min-width:0}.site-header .main-nav a{padding:10px 0}.site-header .main-nav a:after{bottom:3px}
main>section,.service-grid>*,.local-copy,.van-copy,.reviews-intro,.review-cards{min-width:0}
.section,.works{padding-top:var(--space);padding-bottom:var(--space)}.local-works{padding-top:var(--space)}
.hero{min-height:0;padding-top:0;grid-template-columns:1.02fr .98fr;align-items:stretch}
.hero-copy{padding:clamp(56px,6vw,100px) max(5vw,24px);align-self:center}
.hero h1{font-size:clamp(44px,4.8vw,82px);line-height:1.02;max-width:820px}
.hero-photo{min-height:620px;max-height:860px}.hero-photo img{position:absolute;inset:0;display:block;object-position:50% 42%;animation:none;transform:none}
.local-hero{min-height:0;padding-top:clamp(48px,5vw,80px);padding-bottom:var(--space);gap:clamp(24px,4vw,60px)}
.local-copy h1{font-size:clamp(42px,5vw,80px);line-height:1.01;letter-spacing:-.05em}.local-visual{height:clamp(360px,34vw,540px)}
.page-trail{flex-wrap:wrap;line-height:1.5;padding-top:18px;padding-bottom:18px}.page-trail [aria-current]{color:#425c69}
.service-grid{margin-top:32px;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}.service-grid-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.service-card{display:flex;flex-direction:column;min-height:0;padding:24px;cursor:default}.service-card .num{position:relative}
.service-card .icon{margin:22px 0 12px;width:44px;height:44px;flex:none}.service-card h3{font-size:21px;line-height:1.2;margin:16px 0 12px;overflow-wrap:break-word}
.service-card p{margin:0 0 16px;font-size:15px}.service-card>a{position:static;align-self:flex-start;margin-top:auto;min-height:44px;align-items:center;line-height:1.45}
.service-card.feature{border-color:#0c4358!important}.intro h2,.works-head h2,.contact h2{line-height:1.05}
.local-feature{min-height:0;align-items:stretch}.feature-photo{position:relative;min-height:480px;max-height:620px;overflow:hidden}.feature-photo img{position:absolute;inset:0;object-position:center;display:block}
.feature-copy{padding:clamp(40px,4.5vw,72px)}.feature-copy h2{font-size:clamp(34px,3.5vw,56px);line-height:1.05}
.local-portfolio{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:320px}.local-portfolio figure:first-child,.local-portfolio figure:nth-child(4){grid-column:auto}
.local-portfolio img{object-position:center}.local-portfolio figure:first-child img{object-fit:contain;background:#0b1b24}
.mosaic figcaption{transform:none;padding:64px 18px 18px}.mosaic figcaption b{font-size:17px;line-height:1.25}.mosaic figcaption span{color:#d1dfe7;line-height:1.5}
.contact{padding:var(--space) 24px}.contact-glow{width:min(700px,100%);pointer-events:none}
.contact-reviews{position:relative;isolation:isolate;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:32px;align-items:start;max-width:1120px;margin-top:40px;padding:36px!important}
.contact-reviews:after{position:absolute;z-index:-1;pointer-events:none;width:460px;height:460px;right:-220px;top:-180px}
.contact-reviews .reviews-intro h2{font-size:clamp(32px,3vw,48px);line-height:1.06}.contact-reviews .reviews-intro p{font-size:16px;line-height:1.65}
.contact-reviews .real-reviews{grid-template-columns:minmax(0,1fr);gap:16px;width:100%;max-width:100%}.contact-reviews .review-card{width:100%;min-width:0;padding:22px;box-shadow:none}
.contact-reviews blockquote{margin:16px 0 20px;line-height:1.65;overflow-wrap:anywhere}
.contact-reviews .review-author{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:6px;font-size:14px;line-height:1.5}
.review-author strong,.review-author span{display:block;max-width:100%;overflow-wrap:anywhere}.contact-reviews .review-author span{text-align:left;opacity:1;color:#b8cbd4}
.review-card-top{flex-wrap:wrap}.verified-review{color:#ffd33d}.review-button{white-space:normal;align-items:center;gap:6px;min-height:48px;max-width:100%;font-size:15px;line-height:1.4}.rating-panel{margin:24px 0}
.service-areas{padding-top:48px;padding-bottom:48px}.service-areas h2{font-size:clamp(30px,3vw,46px);line-height:1.12}
.faq-list{margin-top:28px}.faq-list summary,.faq-grid summary{min-height:48px;line-height:1.5}.seo-local-nav,.seo-service-nav{margin:0;line-height:1.5}
footer{flex-wrap:wrap;gap:22px}.footer-legal{flex-basis:100%;padding-top:0;color:#a9bdc8}
.mobilebar a:last-child,.van-whatsapp,.whatsapp-top{background:#087b47;color:#fff}
a:focus-visible,summary:focus-visible{outline:3px solid #087da4;outline-offset:5px;border-radius:5px}
.site-header a:focus-visible,.contact a:focus-visible,.local-faq a:focus-visible,.local-faq summary:focus-visible,.mobilebar a:focus-visible{outline-color:#ffd527}
/* Animation failure must never leave invisible content. */
.js-reveal .reveal,.reveal{opacity:1;transform:none;transition:none}.reveal.is-entering{animation:content-enter .45s ease-out both}
@keyframes content-enter{from{opacity:.35;transform:translateY(12px)}to{opacity:1;transform:none}}
.progress{pointer-events:none;width:100%;transform:scaleX(0);transform-origin:left;animation:none}
@supports(animation-timeline:scroll()){.progress{animation:reading-progress linear both;animation-timeline:scroll(root)}@keyframes reading-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}}
@media(max-width:1179px){.service-grid,.service-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}.service-grid-five>.service-card:last-child{grid-column:1/-1}}
@media(max-width:1000px){
.hero{grid-template-columns:minmax(0,1fr)}.hero-copy{padding:56px 26px 40px}.hero h1{max-width:720px;font-size:clamp(44px,6.5vw,64px)}.hero-photo{min-height:0;height:clamp(360px,60vw,560px)}
.local-hero{grid-template-columns:minmax(0,1fr);gap:32px}.local-visual{height:420px}.local-feature{grid-template-columns:minmax(0,1fr)}.feature-photo{height:420px;min-height:0}
.local-portfolio{grid-template-columns:repeat(2,minmax(0,1fr))}.local-portfolio figure:last-child{grid-column:1/-1}
.contact-reviews{grid-template-columns:minmax(0,1fr)}.contact-reviews .reviews-intro{max-width:680px}.contact-reviews .real-reviews{grid-template-columns:repeat(2,minmax(0,1fr))}
.van-section{padding-top:var(--space)!important;padding-bottom:var(--space)!important}footer{padding-bottom:88px}}
@media(max-width:760px){
:root{--header-height:112px;--space:48px}.site-header{height:auto;min-height:var(--header-height);padding:8px 20px 6px;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;align-items:center;max-width:100%}
.site-header .real-brand{grid-column:1;grid-row:1;justify-self:start}.header-actions{grid-column:2;grid-row:1;justify-self:end}.site-header>.whatsapp-top,.site-header>.call{grid-column:2;grid-row:1;justify-self:end}
.site-header .main-nav{grid-column:1/-1;grid-row:2;order:3;width:100%;min-width:0;max-width:100%;margin:0;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;padding:0 2px;scrollbar-width:thin;scrollbar-color:#6ca2b3 transparent}
.site-header .main-nav::-webkit-scrollbar{display:block;height:3px}.site-header .main-nav::-webkit-scrollbar-thumb{background:#6ca2b3;border-radius:3px}
.site-header .main-nav a{flex:none;min-height:40px;display:inline-flex;align-items:center;font-size:13px}header .real-brand img{height:54px;width:54px}
.page-trail{padding:14px 20px;font-size:12px}.contact-reviews{padding:24px!important;gap:28px}.local-copy h1{font-size:clamp(40px,7vw,56px)}
.location-card{left:16px;right:16px;bottom:16px;padding:14px}.location-card b{font-size:18px}.local-proof{gap:12px}.local-proof span{white-space:normal}.zone-list a{gap:12px}.van-section{padding:48px 20px!important}}
@media(max-width:620px){
.hero-copy{padding:40px 24px 36px}.hero h1{font-size:44px}.hero-photo{height:420px}.local-hero{padding:32px 20px 48px;gap:28px}.local-copy h1{font-size:42px}.local-visual{height:360px}
.service-grid,.service-grid-five{grid-template-columns:minmax(0,1fr);gap:16px}.service-grid-five>.service-card:last-child{grid-column:auto}.service-card{padding:24px;min-height:0}.service-card p{font-size:16px}
.local-portfolio{grid-template-columns:minmax(0,1fr);grid-auto-rows:300px}.local-portfolio figure:last-child{grid-column:auto}.feature-photo{height:340px}.feature-copy{padding:40px 24px}
.contact{padding:48px 20px}.contact h2{font-size:36px}.contact-reviews{margin-top:32px;padding:24px 18px!important;border-radius:20px}.contact-reviews .real-reviews{grid-template-columns:minmax(0,1fr)}
.contact-reviews .review-card{padding:20px}.contact-reviews .reviews-intro h2{font-size:32px}.contact-reviews .review-author{font-size:14px}.contact-reviews .rating-count{line-height:1.55}
.contact .facebook{width:auto}.contact .actions{gap:12px}.service-areas{padding:40px 20px}.area-links{gap:10px}.area-links a{padding:12px 14px}.intro h2,.works-head h2{font-size:36px}.zone-list b{font-size:19px}
.seo-service-nav,.seo-local-nav{padding:28px 20px}footer{padding:32px 24px 90px}.footer-legal{text-align:left;font-size:12px}.mobilebar{padding-bottom:env(safe-area-inset-bottom);background:#07131d}}
@media(prefers-reduced-motion:reduce){.reveal.is-entering,.progress{animation:none!important}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}

/* Official PROFECA mark: one discreet placement, original proportions. */
.credentials-v18 .credential-profeca{flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;padding:24px clamp(14px,2vw,32px)}
.credential-profeca .profeca-logo{display:block;width:180px;max-width:100%;height:auto;object-fit:contain;background:#fff;border:6px solid #fff;border-radius:6px;flex:none}
.credential-profeca>span{font-size:11px;line-height:1.5;letter-spacing:.04em}
@media(max-width:620px){.credentials-v18 .credential-profeca{padding:18px 10px;gap:10px}.credential-profeca .profeca-logo{width:160px}}
