/* Localised responsive and motion refinements. Original design remains in each page. */
:root{--header-offset:112px}
.home-page .hero>.eyebrow:before,.home-page .hero>div>.eyebrow:before{content:none!important;display:none!important}
#summaryBtn[hidden]{display:none!important}
.consultation-info{display:grid;gap:12px}
.consultation-info h3{margin:0;color:#0d4652;font-size:24px}
.consultation-info p{margin:0}
.consultation-info .info-block{padding:16px;border:1px solid rgba(13,70,82,.12);border-radius:18px;background:rgba(255,255,255,.85)}
.consultation-info .info-block strong{display:block;color:#0d4652;margin-bottom:6px}
.consultation-info .result-actions{display:flex;flex-wrap:wrap;gap:10px}
html{scroll-padding-top:var(--header-offset)}
html,body{overflow-x:clip!important;overflow-y:visible}
main [id]{scroll-margin-top:var(--header-offset)}
img{max-width:100%}
:where(.hero,.nav,.nav-right,.contact-grid,.contact-method,.form-row,.assistant-shell,.footer-premium,.grid,.contactbox)>*{min-width:0}
.contact-method a,.method a,.footer a{overflow-wrap:anywhere}
.contact-method>div:last-child{min-width:0}
html[data-lang="es"] body .contact-method strong[data-lang="es"],html[data-lang="en"] body .contact-method strong[data-lang="en"],html[data-lang="es"] body .visual-caption strong[data-lang="es"],html[data-lang="en"] body .visual-caption strong[data-lang="en"],html[data-lang="es"] body .visual-caption span[data-lang="es"],html[data-lang="en"] body .visual-caption span[data-lang="en"]{display:block!important}
html[data-lang="es"] body .hero-social[data-lang="es"],html[data-lang="en"] body .hero-social[data-lang="en"]{display:flex}
.field input:invalid:not(:placeholder-shown),.field textarea:invalid:not(:placeholder-shown){border-color:rgba(13,70,82,.18)!important}
.field input:user-invalid,.field textarea:user-invalid{border-color:#b36b4b!important}
.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-page .hero{max-width:1180px!important;grid-template-columns:minmax(0,1fr) minmax(0,.82fr)!important;padding-left:24px!important;padding-right:24px!important;gap:48px!important}
.home-page .hero:before{inset:38px 0 auto!important}
.home-page .portrait{width:100%;min-width:0;min-height:0!important}
.portrait-card picture{display:block}
.portrait-card img{object-position:center 32%}
.nav{height:auto!important;min-height:88px;padding:10px 24px!important}
.nav-right,.navlinks{min-width:0}
.skip-link{position:fixed;left:16px;top:-120px;z-index:200;padding:12px 18px;border-radius:12px;background:#fff;color:#0d4652;box-shadow:0 8px 24px #102b3333}
.skip-link:focus{top:42px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #157a80;outline-offset:4px}
.nav-toggle{display:none;min-height:44px;font:700 14px/1.2 inherit;white-space:nowrap}
.mobile-nav[hidden]{display:none!important}
/* Keep the floating CTA clear of the open navigation; closing restores its existing rules. */
.home-page:has(#mobile-navigation:not([hidden])) .mobile-sticky-cta{display:none!important}
.mobile-nav{padding:10px 24px 20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:calc(100dvh - var(--header-offset));overflow-y:auto;overscroll-behavior:contain}
.mobile-nav a{display:flex;align-items:center;min-height:46px;padding:12px 14px;border:1px solid rgba(13,70,82,.13);border-radius:14px;color:#0d4652;background:rgba(255,255,255,.84);font-size:15px;font-weight:650}
.mobile-nav a:hover,.mobile-nav a[aria-current=page]{background:#eaf8f5;border-color:#2d9b92}
.nav-toggle[aria-expanded=true]{background:#0d4652!important;color:white!important}
.home-page .visual-card,.home-page .image-panel,.home-page .service-photo,.home-page .method-image{display:grid;align-items:end}
.home-page .visual-card>img,.home-page .image-panel>img,.home-page .service-photo>img,.home-page .method-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-page .visual-caption{position:relative;inset:auto;align-self:end;margin:72px 20px 20px;max-width:calc(100% - 40px);z-index:2}
.home-page .visual-stack .visual-card{min-height:184px!important}
.home-page .visual-stack .visual-caption{margin-top:28px}
.visual-card,.image-panel,.service-photo,.method-image,.btn{will-change:auto}
.final-cta:after,.hero:after{pointer-events:none}
/* These washes use the site's existing aqua, violet and gold palette. */
.ambient-shift{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;opacity:.6;transition:opacity 1.2s ease;contain:strict}
.ambient-shift:before,.ambient-shift:after{content:"";position:absolute;inset:-18%;will-change:transform;pointer-events:none}
.ambient-shift:before{background:radial-gradient(ellipse at 20% 28%,rgba(45,155,146,.40),transparent 48%),radial-gradient(ellipse at 80% 72%,rgba(199,163,107,.34),transparent 47%);animation:ambientTide 16s ease-in-out infinite alternate}
.ambient-shift:after{background:radial-gradient(ellipse at 78% 20%,rgba(121,210,198,.48),transparent 44%),radial-gradient(ellipse at 22% 85%,rgba(13,70,82,.18),transparent 43%);animation:ambientReturn 21s ease-in-out infinite alternate}
@keyframes ambientTide{from{transform:translate3d(-5%,-3%,0) scale(1)}to{transform:translate3d(7%,6%,0) scale(1.08)}}
@keyframes ambientReturn{from{transform:translate3d(5%,4%,0) scale(1.04)}to{transform:translate3d(-6%,-5%,0) scale(1)}}
html.page-hidden .ambient-shift:before,html.page-hidden .ambient-shift:after{animation-play-state:paused}
.home-page .hero:before{background:linear-gradient(135deg,rgba(255,255,255,.68),rgba(235,251,247,.42));transition:background .6s ease}
.polish-reveal{animation:polishEnter .65s cubic-bezier(.2,.7,.2,1) both}
@keyframes polishEnter{from{opacity:.45;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1201px){.nav-right{flex-wrap:nowrap}.nav-right .nav-social{display:none!important}.nav-toggle{display:inline-flex}.navlinks{flex-wrap:nowrap}}
@media(max-width:1200px){
 .nav-toggle{display:inline-flex!important}
 .nav-right .nav-page,.nav-right .nav-social,.navlinks>a:not(.primary){display:none!important}
 .nav-right,.navlinks{flex-wrap:nowrap;gap:8px!important;flex:0 1 auto}
 .nav{align-items:center!important}
 .mobile-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:960px){
 .home-page .hero{grid-template-columns:minmax(0,1fr)!important;gap:34px!important}
 .home-page .portrait{max-width:560px!important}
 .credential-float{left:auto!important;right:auto!important;bottom:auto!important;position:relative;margin:0 8px!important;transform:translateY(-8px)}
 .footer-premium{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:640px){
 .nav{padding:10px 16px!important;min-height:76px;gap:10px;flex-wrap:wrap}
 .nav>.logo-link{max-width:calc(100% - 90px)}
 .logo-link .logo{width:148px!important;max-width:42vw!important}
 .nav-right{display:contents}
 .nav-right>.lang{order:2;margin-left:0}
 .nav-right>.nav-toggle{order:1;margin-left:auto}
 .nav-right>.btn.primary{order:3;margin-left:auto}
 .navlinks{display:contents}
 .navlinks>.btn.primary{order:3;margin-left:auto}
 .navlinks>.nav-toggle{order:1;margin-left:auto}
 .nav-right .nav-toggle,.navlinks .nav-toggle{min-height:44px!important;padding:10px 14px!important}
 .mobile-nav{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 16px 16px}
 .home-page .hero{padding:34px 16px 20px!important;gap:28px!important}
 .home-page .hero h1{font-size:clamp(33px,9.7vw,38px)!important;line-height:1.07!important;letter-spacing:-1.2px!important}
 .home-page .hero .eyebrow{font-size:11px;letter-spacing:.10em;line-height:1.5}
 .home-page .portrait{overflow:visible!important}
 .credential-float{padding:18px!important;margin:0!important}
 .hero-actions>.btn{justify-content:center;max-width:100%;white-space:normal}
 .hero-social{justify-content:flex-start!important}
 .home-page .visual-caption{margin:68px 14px 14px;max-width:calc(100% - 28px)}
 .home-page .visual-stack .visual-caption{margin-top:28px}
 .home-page .contact-grid,.home-page .assistant-shell,.home-page .form-row{grid-template-columns:minmax(0,1fr)!important}
 .home-page .contact-card{min-width:0;width:100%}
 .chat-top,.chat-actions,.result-actions{flex-wrap:wrap;gap:10px}
 .scale{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-page .footer-premium{grid-template-columns:minmax(0,1fr)!important}
 .mobile-sticky-cta{bottom:calc(12px + env(safe-area-inset-bottom))!important;min-height:48px}
 body.home-page{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
 .footer-legal{overflow-wrap:anywhere}
 .content{padding:22px 18px!important}
 .hero h1{overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .ambient-shift{display:none!important}
 .polish-reveal{opacity:1;transform:none}
}
