@font-face{font-family:"Montserrat Variable";src:url("../fonts/montserrat-variable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--navy:#172442;--navy2:#0d1730;--blue:#5fc3e1;--pale:#eaf7fa;--ink:#111827;--muted:#607080;--line:#dce4e8;--max:1280px}
*{box-sizing:border-box}html{width:100%;max-width:100%;scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}body{width:100%;max-width:100%;margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6;overflow-x:hidden;overflow-x:clip}main,header,footer,section{max-width:100%}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}.container{width:min(var(--max),calc(100% - 80px));min-width:0;margin-inline:auto}.section{padding:120px 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-100px;left:16px;z-index:1000;background:#fff;padding:10px 16px}.skip-link:focus{top:16px}
.admin-bar .site-header{top:32px}.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-notice{padding:14px 16px;margin:0 0 24px;border-left:4px solid}.form-notice.success{background:#e6f7ef;border-color:#27885f}.form-notice.error{background:#fff0f0;border-color:#b73737}.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:8px}.contact-form .check{display:flex;align-items:flex-start;gap:12px}.contact-form .check input{width:auto;margin-top:5px}.contact-form .check a{text-decoration:underline}.gallery-item{border:0;padding:0;cursor:pointer}.lightbox[hidden]{display:none!important}.lightbox{position:fixed!important;z-index:9999!important}.site-header,.nav,.services-submenu,.lightbox{pointer-events:auto}.hero-shade,.cta-shade,.water-scene:before,.water-scene:after{pointer-events:none!important}@media(max-width:782px){.admin-bar .site-header{top:46px}}@media(max-width:600px){#wpadminbar{position:fixed}.container{width:min(var(--max),calc(100% - 36px))}}
.site-header{height:88px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;background:#fff;position:relative;z-index:50;border-bottom:1px solid rgba(17,24,39,.08)}.brand img{width:156px;height:auto}.nav{display:flex;align-items:center;gap:34px;font-size:14px;font-weight:700}.nav>a:not(.button){padding:31px 0 27px;border-bottom:3px solid transparent}.nav>a:not(.button):hover,.nav>a.active{color:#2186a5;border-color:var(--blue)}.nav .lang{margin-left:8px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;background:var(--blue);color:var(--navy2);padding:16px 22px;min-height:54px;font-weight:800;font-size:14px;transition:.25s}.button:hover{background:#fff;transform:translateY(-2px)}.button-small{padding:11px 16px;min-height:44px}.nav .button:hover{background:var(--navy);color:#fff}.menu-toggle{display:none;background:none;border:0;padding:10px}.menu-toggle span:not(.sr-only){display:block;width:25px;height:2px;background:var(--navy);margin:5px}
.hero{min-height:calc(100svh - 88px);height:780px;position:relative;display:flex;align-items:flex-end;color:#fff;isolation:isolate}.hero-image,.cta-section>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero-image{object-position:center 58%}.hero-shade,.cta-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,18,38,.82),rgba(8,18,38,.30) 60%,rgba(8,18,38,.1));z-index:-1;pointer-events:none}.hero-content{width:min(900px,calc(100% - 160px));margin:0 0 82px 6.5vw}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:#318dab;margin:0 0 22px}.eyebrow.light{color:#99e5f5}.hero h1,.section h2,.cta-section h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:.98;letter-spacing:-.045em;margin:0}.hero h1{font-size:clamp(54px,7.2vw,108px)}.hero h1 em{color:#a9e7f4;font-weight:400}.hero-lead{max-width:650px;font-size:19px;line-height:1.65;margin:28px 0 34px;color:rgba(255,255,255,.9)}.actions{display:flex;align-items:center;gap:28px}.text-link{display:inline-flex;gap:24px;align-items:center;font-weight:800;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:4px}.text-link:hover span{transform:translateX(4px)}.text-link span{transition:.2s}.text-link.light{color:#fff}.hero-note{position:absolute;right:5vw;bottom:64px;border-left:1px solid rgba(255,255,255,.5);padding-left:24px;display:flex;align-items:center;gap:14px}.hero-note strong{font-family:Georgia,serif;font-size:54px;font-weight:400;line-height:1}.hero-note span{font-size:12px;text-transform:uppercase;letter-spacing:.1em;line-height:1.5}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:80px}.section h2,.cta-section h2{font-size:clamp(44px,5vw,74px);color:var(--navy2)}.intro-copy{padding-top:42px;max-width:570px}.intro-copy p{font-size:18px;color:#4f5f6c;margin:0 0 20px}.intro-copy .text-link{margin-top:16px}.services-section{background:var(--pale)}.section-heading{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;margin-bottom:64px}.section-heading>p{max-width:430px;color:var(--muted);font-size:17px;margin:0 0 6px}.service-grid{border-top:1px solid #bfcfd5}.service-card{display:grid;grid-template-columns:70px 1fr 40px;gap:34px;align-items:center;padding:31px 10px;border-bottom:1px solid #bfcfd5;transition:.25s}.service-card>span{font-size:12px;color:#5794a6}.service-card h3{font-family:Georgia,serif;font-size:30px;font-weight:400;color:var(--navy2);margin:0 0 5px}.service-card p{color:var(--muted);margin:0}.service-card b{font-size:20px;font-weight:400}.service-card:hover{background:#fff;padding-left:28px;padding-right:28px}
.project-grid{display:grid;grid-template-columns:1.18fr .82fr;grid-template-rows:360px 360px;gap:24px}.project-card{position:relative;overflow:hidden;background:#ddd}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .55s}.project-card:hover img{transform:scale(1.035)}.project-1{grid-row:span 2}.project-card>span{position:absolute;left:0;right:0;bottom:0;padding:50px 26px 24px;color:#fff;background:linear-gradient(transparent,rgba(6,16,34,.72));font-size:18px;font-weight:700}.project-card small{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.15em;color:#9fe5f4}.project-card b{float:right}.dark{background:var(--navy2);color:#fff}.dark h2{color:#fff}.process-top{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end}.process-top>p{color:#bdc8d6;font-size:18px;max-width:480px}.steps{padding:0;margin:80px 0 0;display:grid;grid-template-columns:repeat(4,1fr);list-style:none;border-top:1px solid rgba(255,255,255,.22)}.steps li{padding:28px 28px 0 0;border-right:1px solid rgba(255,255,255,.15);min-height:210px}.steps li+li{padding-left:28px}.steps span{font-size:11px;color:var(--blue)}.steps h3{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:28px 0 8px}.steps p{color:#aebccc;font-size:14px}
.cta-section{height:620px;position:relative;isolation:isolate;display:flex;align-items:center;background:var(--navy2);color:#fff}.process+.cta-section{margin-top:-1px}.cta-section>div:last-of-type{width:min(var(--max),calc(100% - 80px));margin:auto}.cta-section h2{color:#fff}.cta-section p:not(.eyebrow){max-width:540px;font-size:17px;color:rgba(255,255,255,.84);margin:26px 0 30px}footer{background:#0a1226;color:#dbe4ed;padding-top:70px}.footer-main{display:grid;grid-template-columns:2fr 1fr 1.25fr 1fr;gap:50px;padding-bottom:58px}.footer-main img{width:170px;margin-bottom:22px}.footer-main h3{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#7f91a7;margin:0 0 18px}.footer-main a{display:block;font-size:14px;margin:8px 0}.footer-main a:hover{color:var(--blue)}.footer-brand p{max-width:330px;color:#92a2b4;font-size:14px}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;padding-top:22px;padding-bottom:24px;font-size:12px;color:#78889b}
@media(max-width:1024px){.site-header{padding:0 24px}.nav{gap:20px}.container{width:min(var(--max),calc(100% - 48px))}.hero-content{width:calc(100% - 80px);margin-left:40px}.hero-note{display:none}.section{padding:90px 0}.project-grid{grid-template-rows:300px 300px}}
@media(max-width:768px){.site-header{height:76px}.brand img{width:130px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:22px 24px 28px;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);box-shadow:0 20px 30px rgba(0,0,0,.12)}.nav.open{display:flex}.nav>a:not(.button){padding:13px 0;border-bottom:1px solid var(--line)}.nav .button{margin-top:18px}.hero{height:720px;min-height:calc(100svh - 76px)}.hero-content{width:calc(100% - 48px);margin:0 24px 52px}.hero h1{font-size:clamp(48px,14vw,72px)}.hero-lead{font-size:16px}.actions{align-items:flex-start;flex-direction:column;gap:18px}.intro,.process-top{grid-template-columns:1fr;gap:18px}.intro-copy{padding-top:0}.section-heading{align-items:flex-start;flex-direction:column;gap:26px;margin-bottom:42px}.project-grid{grid-template-columns:1fr;grid-template-rows:460px 340px 340px}.project-1{grid-row:auto}.steps{grid-template-columns:1fr 1fr}.steps li{border-bottom:1px solid rgba(255,255,255,.15)}.footer-main{grid-template-columns:1.4fr 1fr}.cta-section{height:600px}}
@media(max-width:480px){.container,.cta-section>div:last-of-type{width:calc(100% - 36px)}.section{padding:72px 0}.site-header{padding:0 18px}.hero-content{width:calc(100% - 36px);margin-left:18px}.hero h1{font-size:49px}.section h2,.cta-section h2{font-size:42px}.service-card{grid-template-columns:36px 1fr 20px;gap:12px}.service-card h3{font-size:24px}.service-card p{font-size:14px}.service-card:hover{padding-left:10px;padding-right:10px}.project-grid{grid-template-rows:390px 280px 280px}.steps{grid-template-columns:1fr}.steps li{min-height:auto;padding-bottom:25px;border-right:0}.steps li+li{padding-left:0}.footer-main{grid-template-columns:1fr 1fr;gap:34px 22px}.footer-brand{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Header integrado sobre el hero */
.site-header.overlay{position:absolute;top:0;left:0;right:0;background:transparent;color:#fff;border-bottom:1px solid rgba(255,255,255,.28);z-index:60}
.site-header.overlay .nav>a:not(.button){color:#fff}
.site-header.overlay .nav>a:not(.button):hover,.site-header.overlay .nav>a.active{color:#9fe5f4;border-color:#5fc3e1}
.site-header.overlay .nav .button{background:rgba(95,195,225,.94);color:#0d1730}
.site-header.overlay .nav .button:hover{background:#fff;color:#0d1730}
.site-header.overlay .menu-toggle span:not(.sr-only){background:#fff}
.site-header.overlay+main .hero{height:820px;min-height:100svh}
.site-header.overlay+main .inner-hero{height:650px;padding-top:88px}
@media(max-width:768px){.site-header.overlay+main .hero{height:740px;min-height:100svh}.site-header.overlay+main .inner-hero{height:570px;padding-top:76px}.site-header.overlay .nav.open{background:#fff;color:#172442}.site-header.overlay .nav.open>a:not(.button){color:#172442}.site-header.overlay .nav.open>a.active{color:#2186a5}}

/* Header centrado y estados de scroll */
.site-header{height:80px;justify-content:center;gap:clamp(72px,9vw,132px);transition:background-color .45s ease,color .35s ease,box-shadow .45s ease,transform .55s cubic-bezier(.22,1,.36,1),opacity .3s ease;will-change:transform,background-color}
.site-header .brand{flex:0 0 auto}.site-header .brand img{width:142px}
.site-header .brand{position:relative;width:142px}.site-header .brand .logo-dark{display:block}.site-header .brand .logo-light{display:none}.site-header.overlay.phase-top .brand .logo-dark,.site-header.overlay.phase-hidden .brand .logo-dark{display:none}.site-header.overlay.phase-top .brand .logo-light,.site-header.overlay.phase-hidden .brand .logo-light{display:block}.site-header.overlay.phase-solid .brand .logo-dark{display:block}.site-header.overlay.phase-solid .brand .logo-light{display:none}
.site-header .nav{flex:0 0 auto}.site-header .nav .button-small{display:none}
.site-header.overlay.phase-top{position:absolute;transform:translateY(0);opacity:1;background:transparent;border-bottom-color:transparent;box-shadow:none}
.site-header.overlay.phase-hidden{position:fixed;transform:translateY(-115%);opacity:0;background:transparent;border-bottom-color:transparent;box-shadow:none;pointer-events:none}
.site-header.overlay.phase-solid{position:fixed;transform:translateY(0);opacity:1;background:#fff;color:#172442;border-bottom-color:rgba(17,24,39,.09);box-shadow:0 8px 28px rgba(13,23,48,.10)}
.site-header.overlay.phase-solid .nav>a:not(.button){color:#172442}
.site-header.overlay.phase-solid .nav>a:not(.button):hover,.site-header.overlay.phase-solid .nav>a.active{color:#2186a5;border-color:#5fc3e1}
.site-header.overlay.phase-solid .menu-toggle span:not(.sr-only){background:#172442}
.site-header.overlay+main .inner-hero{padding-top:80px}
@media(max-width:768px){.site-header{height:76px;justify-content:space-between;gap:0}.site-header .brand img{width:130px}.site-header.overlay+main .inner-hero{padding-top:76px}.site-header.overlay.phase-solid .nav.open>a:not(.button){color:#172442}}

/* Inner pages */
.inner-hero{height:570px;position:relative;isolation:isolate;color:#fff;display:flex;align-items:flex-end}.inner-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.inner-hero .container{padding-bottom:64px}.inner-hero h1,.contact-hero h1,.legal-head h1{font:400 clamp(48px,6vw,86px)/1 Georgia,serif;letter-spacing:-.045em;margin:0;max-width:940px}.inner-hero>div>p:last-child{max-width:670px;font-size:18px;color:rgba(255,255,255,.88);margin:22px 0 0}.anchor-nav{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.anchor-nav a{font-size:12px;font-weight:800;padding:22px 15px;border-right:1px solid var(--line);color:#4c6070}.anchor-nav a:hover{background:var(--pale);color:#177e9e}.service-details{padding:60px 0 120px}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;padding:75px 0;scroll-margin-top:20px;border-bottom:1px solid var(--line)}.service-detail:nth-child(even) .service-media{order:2}.service-media{height:560px;position:relative}.service-media img{width:100%;height:100%;object-fit:cover}.service-media span{position:absolute;top:18px;left:18px;background:#fff;color:var(--navy2);padding:9px 14px;font-size:12px;font-weight:800}.service-copy h2,.gallery-intro h2,.contact-layout h2,.legal-content h2{font:400 clamp(38px,4.3vw,62px)/1.06 Georgia,serif;letter-spacing:-.04em;color:var(--navy2);margin:0}.service-copy .lead{font-size:18px;color:var(--muted);margin:25px 0}.service-copy ul{list-style:none;padding:0;margin:28px 0}.service-copy li{padding:13px 0 13px 28px;border-bottom:1px solid var(--line);position:relative}.service-copy li:before{content:"";width:8px;height:8px;border:2px solid var(--blue);border-radius:50%;position:absolute;left:0;top:22px}.service-copy .text-link{margin-top:20px}
.gallery-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end;margin-bottom:60px}.gallery-intro p{color:var(--muted);font-size:17px}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:260px;gap:18px}.gallery-item{grid-column:span 4;border:0;padding:0;position:relative;overflow:hidden;background:#ddd;cursor:pointer}.gallery-item.g1,.gallery-item.g8{grid-column:span 8}.gallery-item.g1{grid-row:span 2}.gallery-item.g4,.gallery-item.g8{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.gallery-item:hover img{transform:scale(1.04)}.gallery-item>span{position:absolute;left:15px;right:15px;bottom:12px;color:#fff;text-shadow:0 1px 5px #000;font-size:12px;font-weight:800;text-align:left}.gallery-item b{float:right;font-size:18px}.lightbox{position:fixed;inset:0;background:rgba(6,14,30,.94);z-index:100;display:flex;align-items:center;justify-content:center;padding:50px}.lightbox img{max-height:88vh;max-width:92vw}.lightbox button{position:absolute;right:25px;top:15px;color:#fff;background:none;border:0;font-size:44px;cursor:pointer}.compact{height:500px}
.contact-hero,.legal-head{padding:110px 0;background:var(--pale)}.contact-hero h1{max-width:800px;color:var(--navy2)}.contact-hero>div>p:last-child{font-size:18px;max-width:650px;color:var(--muted)}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;padding-top:90px;padding-bottom:110px}.contact-layout aside>p{color:var(--muted)}.contact-layout aside>a{display:block;font:400 25px/1.3 Georgia,serif;padding:18px 0;border-bottom:1px solid var(--line)}.contact-layout aside small{display:block;font:800 10px/1.2 Arial,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:#348ca7;margin-bottom:6px}.contact-layout aside img{width:100%;height:260px;object-fit:cover;margin-top:38px}.contact-form{background:#f5f8f9;padding:42px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px 20px}.form-grid label{font-size:12px;font-weight:800;color:#34485a}.form-grid .full{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;background:#fff;border:1px solid #cad7dc;margin-top:8px;padding:14px 13px;font:400 15px Arial;color:var(--ink);border-radius:0}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:3px solid rgba(95,195,225,.35);border-color:#3fa8c7}.check{display:flex;gap:10px;font-size:12px;margin:24px 0}.check input{width:18px;height:18px}.contact-form .button{border:0;cursor:pointer}.contact-form .button:hover{background:var(--navy);color:#fff}.form-success{color:#167b52;font-weight:700;font-size:13px}.legal-head{padding:90px 0}.legal-head h1{color:var(--navy2)}.legal-content{max-width:920px!important;padding-top:75px;padding-bottom:100px}.legal-content>section{display:grid;grid-template-columns:50px 1fr;gap:25px;padding:35px 0;border-bottom:1px solid var(--line)}.legal-content>section>span{font-size:11px;color:#469bb3}.legal-content h2{font-size:32px}.legal-content p{color:#4f5f6c;font-size:16px;line-height:1.85}.legal-content ul{color:#4f5f6c}
@media(max-width:900px){.anchor-nav{grid-template-columns:1fr 1fr}.service-detail{gap:45px}.service-media{height:470px}.gallery-item,.gallery-item.g1,.gallery-item.g8{grid-column:span 6}.contact-layout{gap:45px}.contact-form{padding:30px}}
@media(max-width:768px){.inner-hero{height:520px}.inner-hero .container{padding-bottom:42px}.inner-hero h1,.contact-hero h1,.legal-head h1{font-size:48px}.anchor-nav{grid-template-columns:1fr}.anchor-nav a{border-right:0;border-bottom:1px solid var(--line)}.service-detail{grid-template-columns:1fr;padding:55px 0}.service-detail:nth-child(even) .service-media{order:0}.service-media{height:440px}.gallery-intro,.contact-layout{grid-template-columns:1fr;gap:32px}.gallery-grid{grid-auto-rows:260px}.gallery-item,.gallery-item.g1,.gallery-item.g8{grid-column:1/-1;grid-row:span 1}.gallery-item.g1{grid-row:span 2}.contact-hero,.legal-head{padding:75px 0}.contact-layout{padding-top:60px}.lightbox{padding:20px}}
@media(max-width:480px){.inner-hero{height:500px}.inner-hero h1,.contact-hero h1,.legal-head h1{font-size:42px}.service-media{height:360px}.service-details{padding-top:20px}.gallery-grid{grid-auto-rows:230px}.gallery-item.g1{grid-row:span 1}.contact-form{padding:22px 18px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.legal-content>section{grid-template-columns:1fr;gap:8px}.legal-content h2{font-size:28px}}

/* Hero vivo: profundidad, agua y vegetación animadas por capas */
.hero{overflow:hidden}
.hero .hero-image{animation:hero-camera-drift 20s ease-in-out infinite alternate;will-change:transform}
.hero::before,.hero::after{content:"";position:absolute;inset:-1%;z-index:-2;background:url("../images/pool-hero.webp") center 58%/cover no-repeat;pointer-events:none;will-change:transform}
.hero::before{clip-path:polygon(2% 37%,40% 34%,87% 60%,74% 73%,57% 86%,18% 97%,7% 76%);animation:hero-water-drift 6.8s ease-in-out infinite alternate;filter:saturate(1.08) brightness(1.025)}
.hero::after{clip-path:polygon(0 0,100% 0,100% 49%,68% 46%,45% 38%,28% 35%,0 31%);transform-origin:62% 38%;animation:hero-wind 7.6s ease-in-out infinite alternate;filter:saturate(1.025)}
.hero .hero-shade::after{content:"";position:absolute;inset:38% 8% 2% 3%;clip-path:polygon(0 0,43% 0,100% 48%,69% 79%,15% 100%);opacity:.18;mix-blend-mode:screen;background:repeating-radial-gradient(ellipse at 48% 55%,rgba(220,253,255,.78) 0 1px,transparent 2px 12px);background-size:108% 104%;animation:hero-caustics 7s linear infinite;filter:blur(.35px)}
@keyframes hero-camera-drift{from{transform:scale(1.018) translate3d(-.18%,0,0)}to{transform:scale(1.028) translate3d(.22%,-.15%,0)}}
@keyframes hero-water-drift{0%{transform:scale(1.008) translate3d(-.18%,0,0) skewX(-.04deg)}48%{transform:scale(1.013) translate3d(.22%,.08%,0) skewX(.06deg)}100%{transform:scale(1.009) translate3d(-.04%,-.14%,0) skewX(-.02deg)}}
@keyframes hero-wind{0%,100%{transform:scale(1.006) rotate(-.035deg) translate3d(-.06%,0,0)}52%{transform:scale(1.012) rotate(.12deg) translate3d(.14%,-.06%,0)}}
@keyframes hero-caustics{from{background-position:0 0;transform:translate3d(-.3%,0,0) scale(1.01)}to{background-position:46px 28px;transform:translate3d(.3%,.15%,0) scale(1.025)}}
@media(prefers-reduced-motion:reduce){.hero .hero-image,.hero::before,.hero::after,.hero .hero-shade::after{animation:none!important}}

/* Tipografía de marca */
body,button,input,select,textarea{font-family:"Montserrat Variable",Montserrat,Arial,sans-serif}
.hero h1,.section h2,.cta-section h2,.hero-note strong,.service-card h3,.steps h3,.inner-hero h1,.contact-hero h1,.legal-head h1,.service-copy h2,.gallery-intro h2,.contact-layout h2,.legal-content h2,.contact-layout aside>a{font-family:"Montserrat Variable",Montserrat,Arial,sans-serif}
.hero h1,.section h2,.cta-section h2,.inner-hero h1,.contact-hero h1,.legal-head h1{font-weight:500}

/* Navegación legible sobre fotografía */
.site-header.overlay.phase-top .nav>a:not(.button){color:#fff;font-weight:800;letter-spacing:.012em;text-shadow:0 1px 9px rgba(3,10,24,.92),0 0 2px rgba(3,10,24,.9)}
.site-header.overlay.phase-top .nav>a:not(.button):hover,.site-header.overlay.phase-top .nav>a.active{color:#c7f3fc;border-color:#8ee4f4;text-shadow:0 1px 10px rgba(3,10,24,1),0 0 3px rgba(3,10,24,.95)}
@media(max-width:768px){.site-header.overlay.phase-top .nav.open>a:not(.button){color:#172442;text-shadow:none}}

/* Render GPU continuo; la imagen original queda como fallback */
.hero .hero-image{z-index:-3;animation:none}
.hero::before,.hero::after,.hero .hero-shade::after{display:none}
.hero-motion-canvas,.cta-motion-canvas,.inner-hero-motion-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2;display:block;pointer-events:none!important;touch-action:auto;contain:strict}
.water-motion-disabled .hero-motion-canvas,.water-motion-disabled .cta-motion-canvas,.water-motion-disabled .inner-hero-motion-canvas{display:none!important}

/* Estados de interacción para todos los enlaces */
a{transition:color .24s ease,background-color .24s ease,border-color .24s ease,box-shadow .24s ease,opacity .24s ease,transform .24s cubic-bezier(.22,1,.36,1),padding .24s ease}
a:focus-visible,button:focus-visible{outline:3px solid rgba(95,195,225,.72);outline-offset:4px}
.brand{transition:opacity .24s ease,transform .24s cubic-bezier(.22,1,.36,1)}
.brand:hover{opacity:.84;transform:translateY(-2px)}
.nav>a:not(.button):hover{transform:translateY(-2px)}
.button:hover{box-shadow:0 10px 26px rgba(13,23,48,.18)}
.text-link:hover{color:#2186a5}
.text-link.light:hover{color:#bdeef8}
.service-card b,.project-card b{transition:transform .3s cubic-bezier(.22,1,.36,1)}
.service-card:hover b,.project-card:hover b{transform:translate(4px,-4px)}
.project-card>span{transition:background .3s ease,padding .3s ease}
.project-card:hover>span{padding-bottom:29px;background:linear-gradient(transparent,rgba(6,16,34,.86))}
.anchor-nav a:hover{box-shadow:inset 0 -3px 0 var(--blue);transform:translateY(-2px)}
.contact-layout aside>a:hover{color:#2186a5;padding-left:10px;border-color:#5fc3e1}
.footer-main a,.footer-bottom a{width:max-content}
.footer-main a:hover,.footer-bottom a:hover{color:#8edff1;transform:translateX(4px)}
.skip-link:hover{background:var(--pale);color:#176f8b}
@media(hover:none){.brand:hover,.nav>a:not(.button):hover,.anchor-nav a:hover,.footer-main a:hover,.footer-bottom a:hover{transform:none}}

/* Ritmo vertical de lectura */
main h1+p:not(.hero-lead),main h2+p:not(.lead),main h3+p{margin-top:clamp(18px,2vw,26px)}
main p+p{margin-top:16px}
.service-card h3{margin-bottom:12px}
.contact-hero>div>p:last-child{margin-top:28px;line-height:1.8}
.legal-content h2+p{margin-top:20px}
.legal-content p+p{margin-top:15px}

/* Contacto: tarjeta editorial integrada */
.contact-layout{grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:42px;align-items:start}
.contact-layout aside{position:sticky;top:112px;align-self:start;background:var(--navy2);color:#fff;padding:44px 44px 0;overflow:hidden;box-shadow:0 22px 55px rgba(13,23,48,.14)}
.contact-layout aside:before{content:"";display:block;width:54px;height:4px;background:var(--blue);margin-bottom:30px}
.contact-water-photo{position:relative;height:310px;margin:42px -44px 0;overflow:hidden;isolation:isolate;background:#17324b}
.contact-water-photo>img{position:absolute;inset:0;display:block!important;width:100%;height:100%!important;margin:0!important;object-fit:cover;object-position:center 48%;z-index:-3}
.contact-water-photo:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(13,23,48,.04),rgba(13,23,48,.04));pointer-events:none}
.contact-layout aside h2{color:#fff;line-height:1.08;margin:0}
.contact-layout aside>p{color:#bac8d5;line-height:1.8;margin:22px 0 30px}
.contact-layout aside>a{color:#fff;padding:19px 0;border-color:rgba(255,255,255,.2)}
.contact-layout aside>a:hover{color:#9fe5f4;padding-left:10px;border-color:#5fc3e1}
.contact-layout aside small{color:#7dd8ef;margin-bottom:8px}
.contact-layout aside>img{display:none}
.contact-form{padding:48px;background:#f3f8fa;box-shadow:0 16px 45px rgba(13,23,48,.07)}
.contact-form .form-grid{gap:30px 22px}
.contact-form .check{margin:30px 0}
.contact-form .wpcf7-form{display:block}.contact-form .wpcf7-form label{display:block;font-size:12px;font-weight:800;color:#34485a}.contact-form .wpcf7-form-control-wrap{display:block}.contact-form .wpcf7-form-control:not(.wpcf7-submit){display:block;width:100%;background:#fff;border:1px solid #cad7dc;margin-top:8px;padding:14px 13px;font:400 15px Arial;color:var(--ink);border-radius:0}.contact-form .wpcf7-form-control:not(.wpcf7-submit):focus{outline:3px solid rgba(95,195,225,.35);border-color:#3fa8c7}.contact-form .wpcf7-list-item{margin:0}.contact-form .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:10px;font-weight:400}.contact-form .wpcf7-acceptance input{width:18px;margin:2px 0 0;padding:0}.contact-form .wpcf7-submit{border:0;cursor:pointer}.contact-form .wpcf7-not-valid-tip{margin-top:7px;color:#b73737;font-size:12px}.contact-form .wpcf7-response-output{margin:24px 0 0!important;padding:14px 16px!important;border-width:0 0 0 4px!important}.contact-form .wpcf7-spinner{vertical-align:middle}
@media(max-width:900px){.contact-layout{gap:30px}.contact-layout aside{padding:34px 34px 0}.contact-water-photo{margin:36px -34px 0;height:280px}.contact-form{padding:34px}}
@media(max-width:768px){.contact-layout{grid-template-columns:1fr;gap:34px}.contact-layout aside{position:relative;top:auto}.contact-water-photo{height:300px}.contact-form{padding:32px 26px}}
@media(max-width:480px){.contact-layout aside{padding:28px 24px 0}.contact-water-photo{margin:32px -24px 0;height:250px}.contact-form{padding:28px 20px}.contact-form .form-grid{gap:24px}}

/* Serveis: composición editorial moderna */
.anchor-nav{position:relative;z-index:12;margin-top:-30px;margin-bottom:22px;padding:10px;gap:8px;background:rgba(255,255,255,.96);border:1px solid rgba(95,195,225,.22);border-radius:18px;box-shadow:0 20px 50px rgba(13,23,48,.13);backdrop-filter:blur(14px)}
.anchor-nav a{display:flex;align-items:center;min-height:62px;padding:14px 16px;border:0;border-radius:12px;line-height:1.35;background:#f5fafb}
.anchor-nav a:hover{background:var(--navy2);color:#fff;box-shadow:none;transform:translateY(-3px)}
.service-details{display:grid;gap:74px;padding:76px 0 140px}
.service-detail{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:clamp(34px,5vw,76px);align-items:center;min-height:590px;padding:28px;border:1px solid #dce9ed;border-radius:28px;background:linear-gradient(145deg,#fff 0%,#f7fbfc 100%);box-shadow:0 16px 46px rgba(13,23,48,.07);overflow:hidden;scroll-margin-top:100px;transition:border-color .4s ease,box-shadow .4s ease}
.service-detail:nth-child(even){grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);background:linear-gradient(145deg,#edf8fa 0%,#fff 72%)}
.service-detail:nth-child(even) .service-media{order:2}
.service-detail:hover{border-color:rgba(95,195,225,.62);box-shadow:0 28px 70px rgba(13,23,48,.13)}
.service-detail:before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-120px;top:-120px;background:radial-gradient(circle,rgba(95,195,225,.18),transparent 68%);pointer-events:none}
.service-media{position:relative;height:clamp(470px,43vw,590px);overflow:hidden;border-radius:20px;background:#dfe9eb;isolation:isolate}
.service-media:after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;background:linear-gradient(180deg,rgba(4,13,29,.02) 52%,rgba(4,13,29,.42));box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);pointer-events:none}
.service-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.22,1,.36,1),filter .6s ease;will-change:transform}
.service-detail:hover .service-media img{transform:scale(1.055);filter:saturate(1.08) contrast(1.02)}
.service-media span{top:22px;left:22px;z-index:2;display:grid;place-items:center;width:58px;height:58px;padding:0;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(255,255,255,.82);box-shadow:0 10px 30px rgba(13,23,48,.16);backdrop-filter:blur(12px);font-size:13px}
.service-copy{padding:clamp(16px,2vw,34px) clamp(8px,2.4vw,38px)}
.service-copy .eyebrow{display:inline-flex;align-items:center;min-height:30px;padding:6px 12px;margin-bottom:20px;border-radius:999px;background:rgba(95,195,225,.15);color:#197b99}
.service-copy h2{font-size:clamp(29px,2.7vw,38px);line-height:1.1;letter-spacing:-.03em}
.service-copy .lead{max-width:54ch;margin:24px 0 28px;font-size:17px;line-height:1.75}
.service-copy ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:0 0 32px}
.service-copy li{min-height:54px;padding:14px 12px 14px 34px;border:0;border-radius:10px;background:rgba(255,255,255,.72);color:#465968;font-size:14px;line-height:1.45}
.service-copy li:before{width:8px;height:8px;left:14px;top:22px;border:0;background:var(--blue);box-shadow:0 0 0 4px rgba(95,195,225,.18)}
.service-copy .text-link{margin-top:0;padding:10px 0 7px;color:var(--navy2)}
.service-copy .text-link:hover{color:#197b99;gap:30px}
@keyframes service-media-in-left{from{opacity:.25;transform:translateX(-34px) scale(.985)}to{opacity:1;transform:none}}
@keyframes service-media-in-right{from{opacity:.25;transform:translateX(34px) scale(.985)}to{opacity:1;transform:none}}
@keyframes service-copy-in{from{opacity:.1;transform:translateY(26px)}to{opacity:1;transform:none}}
@supports(animation-timeline:view()){
  @media(prefers-reduced-motion:no-preference){
    .service-detail .service-media{animation:service-media-in-left linear both;animation-timeline:view();animation-range:entry 5% cover 34%}
    .service-detail:nth-child(even) .service-media{animation-name:service-media-in-right}
    .service-detail .service-copy{animation:service-copy-in linear both;animation-timeline:view();animation-range:entry 10% cover 38%}
  }
}
@media(max-width:1024px){.service-detail,.service-detail:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(330px,.9fr);gap:32px;min-height:540px;padding:22px}.service-media{height:500px}.service-copy ul{grid-template-columns:1fr}.service-copy li{min-height:48px}}
@media(max-width:768px){.anchor-nav{margin-top:-20px;padding:8px;border-radius:14px}.anchor-nav a{min-height:54px}.service-details{gap:38px;padding:44px 0 90px}.service-detail,.service-detail:nth-child(even){grid-template-columns:1fr;gap:0;min-height:0;padding:14px;border-radius:22px}.service-detail:nth-child(even) .service-media{order:0}.service-media{height:420px;border-radius:15px}.service-copy{padding:34px 16px 28px}.service-copy ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.service-media{height:360px}.service-copy{padding:30px 10px 24px}.service-copy h2{font-size:28px}.service-copy ul{grid-template-columns:1fr}.service-copy .lead{font-size:16px}.service-media span{top:16px;left:16px;width:50px;height:50px}}

/* Cómo trabajamos: especialidades explicadas fuera del hero */
.how-we-work{display:grid;grid-template-columns:minmax(300px,.76fr) minmax(0,1.24fr);gap:clamp(48px,7vw,100px);align-items:start;padding-top:100px;padding-bottom:52px}
.how-we-work-intro{position:sticky;top:112px}
.how-we-work-intro h2{margin:0;color:var(--navy2);font-size:clamp(40px,4.5vw,64px);font-weight:500;line-height:1.04;letter-spacing:-.045em}
.how-we-work-intro>p:last-child{max-width:560px;margin:28px 0 0;color:var(--muted);font-size:17px;line-height:1.82}
.how-we-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.how-we-work-grid article{position:relative;min-height:250px;padding:30px;border:1px solid #d8e7eb;border-radius:20px;background:linear-gradient(145deg,#fff,#f4fafb);box-shadow:0 12px 34px rgba(13,23,48,.055);transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .35s ease,box-shadow .35s ease}
.how-we-work-grid article:hover{transform:translateY(-6px);border-color:rgba(95,195,225,.72);box-shadow:0 22px 46px rgba(13,23,48,.11)}
.how-we-work-grid span{display:grid;place-items:center;width:42px;height:42px;margin-bottom:34px;border-radius:50%;background:var(--navy2);color:#8ee4f4;font-size:11px;font-weight:800;letter-spacing:.06em}
.how-we-work-grid h3{margin:0;color:var(--navy2);font-size:22px;font-weight:700;line-height:1.2}
.how-we-work-grid h3+p{margin-top:16px;color:#5b6d7a;font-size:14px;line-height:1.72}
.how-we-work+.anchor-nav{margin-top:28px}
@media(max-width:900px){.how-we-work{grid-template-columns:1fr;gap:42px;padding-top:76px}.how-we-work-intro{position:relative;top:auto}.how-we-work-grid article{min-height:230px}}
@media(max-width:600px){.how-we-work{padding-top:62px;padding-bottom:34px}.how-we-work-grid{grid-template-columns:1fr}.how-we-work-grid article{min-height:0;padding:26px}.how-we-work-grid span{margin-bottom:24px}.how-we-work+.anchor-nav{margin-top:22px}}

/* Projectes: galería uniforme y editorial */
.gallery-section{position:relative;padding-top:96px;padding-bottom:130px}
.gallery-intro{position:relative;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:clamp(42px,7vw,96px);align-items:center;margin-bottom:56px;padding:52px 56px;border:1px solid #d9e8ec;border-radius:26px;background:linear-gradient(135deg,#eef9fb 0%,#fff 72%);box-shadow:0 16px 48px rgba(13,23,48,.07);overflow:hidden}
.gallery-intro:after{content:"";position:absolute;right:-100px;top:-110px;width:270px;height:270px;border-radius:50%;background:radial-gradient(circle,rgba(95,195,225,.22),transparent 68%);pointer-events:none}
.gallery-intro h2{position:relative;z-index:1;font-size:clamp(40px,4.6vw,64px);line-height:1.04}
.gallery-intro p{position:relative;z-index:1;margin:0;color:#536674;font-size:16px;line-height:1.82}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:22px}
.gallery-item,.gallery-item.g1,.gallery-item.g4,.gallery-item.g8{grid-column:auto;grid-row:auto;aspect-ratio:4/3;border-radius:18px;background:#dce8eb;box-shadow:0 12px 32px rgba(13,23,48,.08);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s ease}
.gallery-item:after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;background:linear-gradient(180deg,transparent 48%,rgba(6,16,34,.64));pointer-events:none;transition:background .4s ease}
.gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1),filter .5s ease}
.gallery-item>span{z-index:2;left:18px;right:18px;bottom:16px;padding:0;background:none;font-size:12px;letter-spacing:.08em;text-shadow:0 2px 10px rgba(0,0,0,.7)}
.gallery-item b{display:grid;place-items:center;width:36px;height:36px;margin-top:-9px;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(255,255,255,.14);backdrop-filter:blur(8px)}
.gallery-item:hover{transform:translateY(-7px);box-shadow:0 24px 50px rgba(13,23,48,.16)}
.gallery-item:hover img{transform:scale(1.065);filter:saturate(1.08) contrast(1.025)}
.gallery-item:hover:after{background:linear-gradient(180deg,rgba(6,16,34,.03) 35%,rgba(6,16,34,.78))}
@keyframes project-card-in{from{opacity:.12;transform:translateY(32px) scale(.985)}to{opacity:1;transform:none}}
@supports(animation-timeline:view()){
  @media(prefers-reduced-motion:no-preference){.gallery-item{animation:project-card-in linear both;animation-timeline:view();animation-range:entry 5% cover 28%}}
}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-intro{grid-template-columns:1fr;gap:26px;padding:42px}}
@media(max-width:600px){.gallery-section{padding-top:68px;padding-bottom:90px}.gallery-intro{padding:32px 26px;border-radius:20px;margin-bottom:38px}.gallery-grid{grid-template-columns:1fr;gap:18px}.gallery-item,.gallery-item.g1,.gallery-item.g4,.gallery-item.g8{aspect-ratio:4/3}}

/* CTA: aire entre titular y acción */
.cta-section.compact .button{margin-top:clamp(30px,3vw,44px)}

/* Legal: contenido largo y escaneable */
.legal-content>section>div{min-width:0}
.legal-content p{margin:0}
.legal-content ul{margin:22px 0 0;padding-left:22px;display:grid;gap:10px}
.legal-content li{padding-left:7px;line-height:1.75}
.legal-content li::marker{color:var(--blue)}
.legal-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.legal-links a{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;color:var(--navy2);font-size:13px;font-weight:700}
.legal-links a:hover{border-color:var(--blue);background:var(--pale);transform:translateY(-2px)}
.legal-content p>a,.legal-content li>a{color:#176f8b;font-weight:700;text-decoration:underline;text-decoration-color:rgba(23,111,139,.35);text-underline-offset:4px;overflow-wrap:anywhere}
.legal-content p>a:hover,.legal-content li>a:hover{color:var(--navy2);text-decoration-color:var(--blue)}
.footer-credit{line-height:1.7;padding-right:24px}
.footer-credit a{display:inline;width:auto;color:#a9ddea;text-decoration:underline;text-underline-offset:3px}
.footer-credit a:hover{color:#fff;transform:none}
@media(max-width:600px){.footer-bottom{align-items:flex-start;gap:22px}.footer-credit{padding-right:0}}

/* Hero responsive: contenido centrado y libre del header */
@media(max-width:1024px){
  .site-header.overlay+main .hero{align-items:center}
  .hero-content{margin:0 0 0 40px}
  .site-header.overlay+main .inner-hero{padding-top:0}
  .inner-hero{align-items:center}
  .inner-hero .container{padding-bottom:0}
}
@media(max-width:768px){
  .hero-content{width:calc(100% - 48px);margin:28px 24px 0}
  .inner-hero .container{padding-bottom:0}
  .inner-hero>div>p:last-child{margin-top:18px;line-height:1.65}
}
@media(max-width:480px){
  .hero-content{width:calc(100% - 36px);margin:22px 18px 0}
  .inner-hero h1{font-size:clamp(38px,11vw,46px);line-height:1.04}
}

/* Entradas modernas y accesibles */
.motion-reveal{opacity:0;filter:blur(4px);transform:translate3d(0,28px,0);transition:opacity .72s ease,filter .72s ease,transform .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-delay,0ms);will-change:opacity,filter,transform}
.motion-reveal.is-visible{opacity:1;filter:none;transform:translate3d(0,0,0)}
.hero-content>.motion-reveal,.inner-hero .motion-reveal{transform:translate3d(0,20px,0)}
.hero-content>.motion-reveal.is-visible,.inner-hero .motion-reveal.is-visible{transform:translate3d(0,0,0)}
.how-we-work-grid>article.motion-reveal:hover{transform:translateY(-6px)}
@media(prefers-reduced-motion:reduce){.motion-reveal,.motion-reveal.is-visible{opacity:1;filter:none;transform:none;transition:none;will-change:auto}}

/* Inicio: hero alineado con el contenedor general y titular más horizontal */
.hero-content{width:min(var(--max),calc(100% - 80px));max-width:none;margin:0 auto 82px}
.hero-content h1{max-width:1120px;font-size:clamp(48px,5.5vw,82px);line-height:1.02}
.hero-lead{max-width:780px;font-size:17px}
@media(max-width:1024px){.hero-content{width:calc(100% - 48px);margin:0 auto}.hero-content h1{max-width:900px;font-size:clamp(46px,7vw,68px)}}
@media(max-width:768px){.hero-content{width:calc(100% - 48px);margin:28px auto 0}.hero-content h1{font-size:clamp(42px,8.5vw,58px);line-height:1.04}.hero-lead{max-width:650px;font-size:16px}}
@media(max-width:480px){.hero-content{width:calc(100% - 36px);margin:22px auto 0}.hero-content h1{font-size:40px;line-height:1.06}}

/* Inicio: piscinas de hormigón */
.concrete-feature{background:linear-gradient(135deg,#eef8fa 0%,#fff 68%)}
.concrete-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:clamp(42px,5vw,72px);align-items:center}
.concrete-media{position:relative;height:640px;overflow:hidden;border-radius:24px;background:#dce8eb;box-shadow:0 24px 60px rgba(13,23,48,.14)}
.concrete-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(7,17,35,.48));pointer-events:none}
.concrete-media img{width:100%;height:100%;object-fit:cover;object-position:center 54%;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.concrete-media:hover img{transform:scale(1.035)}
.concrete-media span{position:absolute;left:24px;bottom:22px;z-index:1;padding:10px 14px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(13,23,48,.32);color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(10px)}
.concrete-copy h2{margin:0;color:var(--navy2);font-size:clamp(36px,3.5vw,54px);font-weight:500;line-height:1.06;letter-spacing:-.04em}
.concrete-copy>p:not(.eyebrow){margin:28px 0;color:#526674;font-size:17px;line-height:1.82}
.concrete-copy ul{display:grid;gap:0;margin:0 0 32px;padding:0;list-style:none;border-top:1px solid #cddde2}
.concrete-copy li{position:relative;padding:16px 0 16px 28px;border-bottom:1px solid #cddde2;color:#344b5b;font-size:14px;font-weight:650}
.concrete-copy li:before{content:"";position:absolute;left:2px;top:24px;width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(95,195,225,.18)}
@media(max-width:900px){.concrete-layout{grid-template-columns:1fr 1fr;gap:36px}.concrete-media{height:540px}}
@media(max-width:768px){.concrete-layout{grid-template-columns:1fr}.concrete-media{height:480px}.concrete-copy h2{font-size:40px}}
@media(max-width:480px){.concrete-media{height:390px;border-radius:18px}.concrete-copy h2{font-size:34px}.concrete-copy>p:not(.eyebrow){font-size:16px}}

/* Submenú de servicios */
.nav-services{position:relative;align-self:stretch;display:flex;align-items:center}
.nav-services>a{display:flex;align-items:center;gap:7px;padding:31px 0 27px;border-bottom:3px solid transparent;color:inherit;font-size:14px;font-weight:700}
.nav-services>a>span{font-size:15px;transition:transform .25s ease}
.nav-services:hover>a>span,.nav-services:focus-within>a>span{transform:rotate(180deg)}
.nav-services>a:hover,.nav-services>a.active{color:#2186a5;border-color:var(--blue);transform:translateY(-2px)}
.services-submenu{position:absolute;top:calc(100% - 4px);left:50%;z-index:80;width:360px;padding:10px;border:1px solid rgba(95,195,225,.25);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 22px 55px rgba(13,23,48,.18);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,10px);transition:opacity .24s ease,visibility .24s ease,transform .3s cubic-bezier(.22,1,.36,1);backdrop-filter:blur(14px)}
.nav-services:hover .services-submenu,.nav-services:focus-within .services-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.services-submenu a{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;padding:12px 13px;border-radius:10px;color:var(--navy2);font-size:12px;font-weight:750;line-height:1.35;text-shadow:none}
.services-submenu a.active{background:#e8f6f9;color:#176f8b}
.services-submenu a:hover{background:var(--pale);color:#176f8b;transform:translateX(3px)}
.services-submenu small{color:#368faa;font-size:10px;font-weight:800}
.site-header.overlay.phase-top .nav-services>a{color:#fff;font-weight:800;letter-spacing:.012em;text-shadow:0 1px 9px rgba(3,10,24,.92),0 0 2px rgba(3,10,24,.9)}
.site-header.overlay.phase-top .nav-services>a:hover,.site-header.overlay.phase-top .nav-services>a.active{color:#c7f3fc;border-color:#8ee4f4}
.site-header.overlay.phase-solid .nav-services>a{color:#172442}
.site-header.overlay.phase-solid .nav-services>a:hover,.site-header.overlay.phase-solid .nav-services>a.active{color:#2186a5;border-color:#5fc3e1}
@media(max-width:768px){.nav.open .nav-services{display:block}.nav.open .nav-services>a{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);color:#172442!important;text-shadow:none!important}.nav.open .nav-services>a.active{color:#2186a5!important;border-color:#5fc3e1}.nav.open .services-submenu{position:static;width:100%;padding:7px 0 9px;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:1;visibility:visible;pointer-events:auto;transform:none;backdrop-filter:none}.nav.open .services-submenu a{padding:10px 12px 10px 18px;background:#f5fafb;border-bottom:1px solid #e2ecef}.nav.open .services-submenu a.active{background:#e8f6f9;color:#176f8b}.nav.open .nav-services>a>span{display:none}}

/* Páginas individuales de servicios */
.individual-service-hero h1{max-width:990px;font-size:clamp(36px,4vw,58px);line-height:1.04;letter-spacing:-.035em}
.individual-service-hero .container>p:last-child{max-width:760px;font-size:17px}
.individual-service{position:relative;background:linear-gradient(180deg,#f3fafb 0,#fff 32%,#f6fafb 100%)}
.service-overview{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);gap:clamp(34px,5vw,72px);align-items:start}
.service-overview-copy{position:relative;padding:clamp(34px,4vw,56px);border:1px solid #d9e8ec;border-radius:26px;background:#fff;box-shadow:0 18px 55px rgba(13,23,48,.075)}
.service-overview-copy:before{content:"";position:absolute;left:clamp(34px,4vw,56px);top:0;width:86px;height:5px;border-radius:0 0 5px 5px;background:var(--blue)}
.service-overview-copy h2{max-width:720px;margin:0;color:var(--navy2);font-size:clamp(30px,3vw,42px);font-weight:500;line-height:1.1;letter-spacing:-.035em}
.service-overview-copy .lead{margin:30px 0 20px;color:#30495a;font-size:20px;font-weight:600;line-height:1.65}
.service-overview-copy>p:last-child{margin:0;color:#60717e;font-size:16px;line-height:1.85}
.service-overview>aside{position:sticky;top:106px;padding:38px;border-radius:22px;background:linear-gradient(145deg,#0d1730,#172a49);color:#fff;box-shadow:0 22px 55px rgba(13,23,48,.15)}
.service-overview>aside>span{display:grid;place-items:center;width:48px;height:48px;margin-bottom:28px;border:1px solid rgba(255,255,255,.28);border-radius:50%;color:#8ee4f4;font-size:11px;font-weight:800}
.service-overview>aside h3{margin:0 0 22px;font-size:24px}
.service-overview>aside ul{display:grid;gap:0;margin:0;padding:0;list-style:none}
.service-overview>aside li{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.14);color:#c6d2dd;font-size:14px}
.service-showcase{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:20px;margin-top:72px}
.service-showcase figure{position:relative;height:440px;margin:0;overflow:hidden;border-radius:22px;background:#dce8eb;box-shadow:0 18px 46px rgba(13,23,48,.11)}
.service-showcase .service-showcase-main{height:540px}
.service-showcase img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.service-showcase figure:hover img{transform:scale(1.04)}
.service-showcase figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;gap:14px;align-items:center;padding:52px 24px 22px;background:linear-gradient(transparent,rgba(6,16,34,.78));color:#fff;font-size:13px;font-weight:700;line-height:1.45}
.service-showcase figcaption span{color:#8ee4f4;font-size:10px;letter-spacing:.08em}
.service-process{margin-top:86px;padding:48px 52px;border:1px solid #d8e8ec;border-radius:26px;background:linear-gradient(135deg,#eaf7fa,#fff);box-shadow:0 16px 45px rgba(13,23,48,.06)}
.service-process-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:36px}
.service-process-heading .eyebrow{margin-bottom:8px}
.service-process-heading h2{max-width:580px;margin:0;color:var(--navy2);font-size:clamp(30px,3vw,44px);font-weight:500;line-height:1.08;letter-spacing:-.035em;text-align:right}
.service-process>div:last-child{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #c8dade}
.service-process article{min-height:150px;padding:25px 28px 10px 0;border-right:1px solid var(--line)}
.service-process article+article{padding-left:28px}
.service-process article span{color:#2589a7;font-size:11px;font-weight:800}
.service-process article p{margin:24px 0 0;color:#405767;font-size:16px;font-weight:650;line-height:1.55}
.service-budget-cta{position:relative;overflow:hidden;padding:86px 0;background:linear-gradient(120deg,#0b152d,#193657);color:#fff}
.service-budget-cta:after{content:"";position:absolute;right:-120px;top:-190px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(95,195,225,.2),transparent 67%);pointer-events:none}
.service-budget-cta .container{display:flex;align-items:center;justify-content:space-between;gap:50px}
.service-budget-cta h2{max-width:780px;margin:0;color:#fff;font-size:clamp(36px,4vw,58px);font-weight:500;line-height:1.05;letter-spacing:-.04em}
.service-budget-cta .button{flex:0 0 auto;min-width:230px}
@media(max-width:900px){.service-overview{grid-template-columns:1fr;gap:32px}.service-overview>aside{position:relative;top:auto;max-width:none}.service-showcase{grid-template-columns:1.1fr .9fr}.service-showcase figure,.service-showcase .service-showcase-main{height:420px}.service-process-heading{align-items:start;flex-direction:column;gap:10px}.service-process-heading h2{text-align:left}.service-budget-cta .container{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.individual-service-hero h1{font-size:34px}.individual-service-hero .container>p:last-child{font-size:16px}.service-overview-copy{padding:34px 26px}.service-overview-copy:before{left:26px}.service-overview-copy h2{font-size:30px}.service-overview-copy .lead{font-size:18px}.service-overview>aside{padding:28px 24px}.service-showcase{grid-template-columns:1fr;margin-top:46px}.service-showcase figure,.service-showcase .service-showcase-main{height:340px}.service-process{margin-top:54px;padding:34px 24px}.service-process>div:last-child{grid-template-columns:1fr}.service-process article{min-height:0;padding:22px 0 24px;border-right:0;border-bottom:1px solid var(--line)}.service-process article+article{padding-left:0}.service-budget-cta{padding:62px 0}.service-budget-cta .button{width:100%}}

/* Galería accesible y datos de contacto */
.lightbox{padding:64px 100px;background:rgba(6,14,30,.96)}
.lightbox figure{margin:0;display:grid;justify-items:center;gap:16px}
.lightbox img{max-height:78vh;max-width:min(1120px,82vw);object-fit:contain}
.lightbox figcaption{color:#d8e6ee;font-size:13px;text-align:center}
.lightbox button{position:absolute;display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(13,23,48,.64);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.lightbox button:hover,.lightbox button:focus-visible{background:var(--blue);color:var(--navy2);outline:3px solid #fff;outline-offset:3px}
.lightbox .lightbox-close{right:25px;top:20px;font-size:36px}
.lightbox .lightbox-prev{left:28px;right:auto;top:50%;transform:translateY(-50%)}
.lightbox .lightbox-next{right:28px;top:50%;transform:translateY(-50%)}
.contact-areas{padding:22px 0 4px}
.contact-areas small{font:800 10px/1.2 Arial,sans-serif;text-transform:uppercase;letter-spacing:.14em;color:#7dd8ef}
.contact-areas p{margin:8px 0 0;color:#bac8d5;font-size:14px;line-height:1.65}
.check a{color:#176f8b;text-decoration:underline;text-underline-offset:3px}
.check a:hover{color:var(--navy2)}
@media(max-width:768px){.lightbox{padding:68px 18px}.lightbox img{max-width:94vw;max-height:72vh}.lightbox .lightbox-prev{left:14px;top:auto;bottom:18px;transform:none}.lightbox .lightbox-next{right:14px;top:auto;bottom:18px;transform:none}.lightbox .lightbox-close{right:14px;top:14px}}

/* WordPress motion parity. Last in cascade intentionally. */
.hero-motion-canvas,.cta-motion-canvas,.inner-hero-motion-canvas{pointer-events:none!important;user-select:none!important;touch-action:auto!important}
.contact-water-photo>img{z-index:0!important;animation:none!important}
.contact-water-photo>.inner-hero-motion-canvas{z-index:1!important}
.contact-water-photo:after{z-index:2}

/* Contacte: hero fotográfico real */
.contact-photo-hero{height:620px;padding:0;background:#0d1730;overflow:hidden;isolation:isolate}
.contact-photo-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 54%;z-index:-3}
.contact-photo-hero>.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(6,15,34,.86),rgba(6,15,34,.38) 62%,rgba(6,15,34,.14))}
.contact-photo-hero>.container{padding-bottom:64px}
.contact-photo-hero h1{max-width:820px;color:#fff}
.contact-photo-hero>.container>p:last-child{max-width:690px;margin-top:24px;color:rgba(255,255,255,.88);font-size:18px;line-height:1.75}
@media(max-width:768px){.contact-photo-hero{height:560px}.contact-photo-hero>.container{padding-bottom:46px}.contact-photo-hero h1{font-size:48px}}
@media(max-width:480px){.contact-photo-hero{height:520px}.contact-photo-hero h1{font-size:42px}.contact-photo-hero>.container>p:last-child{font-size:16px}}

/* Hero móvil: las fuentes verticales conservan un recorte próximo al desktop. */
@media(max-width:768px){
  .hero.portrait-hero-source,.inner-hero.portrait-hero-source{overflow:hidden}
  .hero.portrait-hero-source>.hero-image,
  .inner-hero.portrait-hero-source>img{transform:scale(1.45);transform-origin:center center}
}
@media(max-width:480px){
  .hero.portrait-hero-source>.hero-image,
  .inner-hero.portrait-hero-source>img{transform:scale(1.65)}
}

/* Hero móvil: contraste estable sobre fotografías claras o saturadas. */
@media(max-width:768px){
  .hero>.hero-shade,
  .inner-hero>.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(8,18,38,.86) 0%,rgba(8,18,38,.48) 68%,rgba(8,18,38,.32) 100%)}
  .hero-content,
  .inner-hero>.container{position:relative;z-index:2;color:#fff}
  .hero-content h1,
  .inner-hero h1,
  .hero-lead,
  .inner-hero>.container>p{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.42)}
}
@media(max-width:480px){
  .hero>.hero-shade,
  .inner-hero>.hero-shade{background:linear-gradient(90deg,rgba(8,18,38,.88) 0%,rgba(8,18,38,.54) 72%,rgba(8,18,38,.38) 100%)}
}
@media(max-width:768px){
  .hero-motion-canvas,
  .cta-motion-canvas,
  .inner-hero-motion-canvas{display:none}
  .site-header.overlay.phase-top{position:fixed}
  .site-header.overlay+main .hero{height:var(--aigoo-mobile-hero-height,100svh);min-height:var(--aigoo-mobile-hero-height,100svh);max-height:var(--aigoo-mobile-hero-height,100svh)}
  .button>span,
  .text-link>span,
  .service-card>b,
  .gallery-item b,
  .lightbox button{font-family:"Montserrat Variable",Montserrat,sans-serif;font-variant-emoji:text}
}

/* Contact Form 7: diseño controlado por el tema */
.contact-layout .contact-form{position:relative;overflow:hidden;padding:clamp(30px,4vw,54px);border:1px solid rgba(23,36,66,.09);border-radius:28px;background:linear-gradient(145deg,#fff 0%,#f2f9fb 100%);box-shadow:0 24px 70px rgba(13,23,48,.10)}
.contact-layout .contact-form:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--blue),#2384a4 58%,var(--navy2))}
.contact-layout .contact-form>h2{max-width:620px;margin:0 0 34px;color:var(--navy2);font-size:clamp(32px,3.5vw,48px);line-height:1.04;letter-spacing:-.04em}
.contact-layout .contact-form .wpcf7-form{margin:0}
.contact-layout .contact-form .wpcf7-form p{margin:0}
.contact-layout .contact-form .wpcf7-form br{display:none}
.contact-layout .contact-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}
.contact-layout .contact-form .form-grid>*{min-width:0;margin:0}
.contact-layout .contact-form .form-grid>.full,.contact-layout .contact-form .form-grid>label:has([data-name="servicio"]),.contact-layout .contact-form .form-grid>label:has([data-name="mensaje"]),.contact-layout .contact-form .form-grid>p:has([data-name="servicio"]),.contact-layout .contact-form .form-grid>p:has([data-name="mensaje"]),.contact-layout .contact-form .form-grid>p:has(.wpcf7-acceptance),.contact-layout .contact-form .form-grid>p:has(.wpcf7-submit){grid-column:1/-1}
.contact-layout .contact-form .wpcf7-form label{display:block;color:#263b50;font-size:12px;font-weight:800;line-height:1.35;letter-spacing:.02em}
.contact-layout .contact-form .wpcf7-form-control-wrap{display:block;margin:8px 0 0}
.contact-layout .contact-form :is(input,select,textarea).wpcf7-form-control:not(.wpcf7-submit){display:block;width:100%;min-height:56px;margin:0;padding:15px 17px;border:1px solid #c8d8de;border-radius:12px;outline:0;background:#fff;color:var(--navy2);font:500 15px/1.45 "Montserrat Variable",Montserrat,Arial,sans-serif;box-shadow:0 3px 12px rgba(13,23,48,.025);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.contact-layout .contact-form :is(input,select,textarea).wpcf7-form-control:not(.wpcf7-submit):hover{border-color:#8eafb9}
.contact-layout .contact-form :is(input,select,textarea).wpcf7-form-control:not(.wpcf7-submit):focus{border-color:#258eae;background:#fff;box-shadow:0 0 0 4px rgba(95,195,225,.22)}
.contact-layout .contact-form .wpcf7-form-control::placeholder{color:#7d8a95;opacity:1}
.contact-layout .contact-form select.wpcf7-form-control{appearance:none;cursor:pointer;padding-right:46px;background-image:linear-gradient(45deg,transparent 50%,#246f87 50%),linear-gradient(135deg,#246f87 50%,transparent 50%);background-position:calc(100% - 20px) 25px,calc(100% - 15px) 25px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.contact-layout .contact-form textarea.wpcf7-form-control{min-height:148px;resize:vertical}
.contact-layout .contact-form .check{display:block;margin:2px 0 0;padding:16px 18px;border:1px solid rgba(49,159,190,.22);border-radius:12px;background:rgba(255,255,255,.82)}
.contact-layout .contact-form .wpcf7-acceptance .wpcf7-list-item{display:block;margin:0}
.contact-layout .contact-form .wpcf7-acceptance label{display:flex;align-items:center;gap:12px;color:#405366;font-size:12px;font-weight:500;line-height:1.5;letter-spacing:0}
.contact-layout .contact-form .wpcf7-acceptance input{flex:0 0 19px;width:19px;min-height:19px;margin:0;padding:0;accent-color:#2188a7}
.contact-layout .contact-form .check a{color:#176f8b;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.contact-layout .contact-form .wpcf7-submit{display:flex;width:100%;min-height:58px;align-items:center;justify-content:center;margin:2px 0 0;padding:0 28px;border:0;border-radius:12px;background:var(--navy2);color:#fff;font:800 13px/1 "Montserrat Variable",Montserrat,Arial,sans-serif;letter-spacing:.025em;cursor:pointer;box-shadow:0 12px 28px rgba(13,23,48,.18);transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.contact-layout .contact-form .wpcf7-submit:hover{transform:translateY(-2px);background:#2188a7;box-shadow:0 16px 34px rgba(33,136,167,.24)}
.contact-layout .contact-form .wpcf7-submit:focus-visible{outline:3px solid rgba(95,195,225,.62);outline-offset:3px}
.contact-layout .contact-form .wpcf7-submit:disabled{cursor:not-allowed;opacity:.6;transform:none}
.contact-layout .contact-form .wpcf7-spinner{position:absolute;margin:18px 0 0 14px}
.contact-layout .contact-form .wpcf7-not-valid{border-color:#bd3f3f!important;box-shadow:0 0 0 3px rgba(189,63,63,.10)!important}
.contact-layout .contact-form .wpcf7-not-valid-tip{display:block;margin-top:7px;color:#a52e2e;font-size:11px;font-weight:700}
.contact-layout .contact-form .wpcf7-response-output{margin:24px 0 0!important;padding:14px 16px!important;border:0!important;border-left:4px solid #2188a7!important;border-radius:8px;background:#fff;color:#263b50;font-size:13px}
@media(max-width:680px){.contact-layout .contact-form{padding:30px 22px;border-radius:20px}.contact-layout .contact-form>h2{margin-bottom:28px}.contact-layout .contact-form .form-grid{grid-template-columns:1fr;gap:19px}.contact-layout .contact-form .form-grid>*{grid-column:1/-1}.contact-layout .contact-form textarea.wpcf7-form-control{min-height:132px}.contact-layout .contact-form .wpcf7-submit{min-height:56px}}
