@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
.arrow-icon{display:inline-block;width:18px;height:18px;border:0;background-color:currentColor;position:relative;flex:0 0 auto;transform:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M9 5h10v10' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 19 19 5M9 5h10v10' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.arrow-icon:after{content:none}
.arrow-icon.arrow-up{transform:rotate(-45deg)}

.logo-link{display:flex;align-items:center;flex:0 0 auto}
.brand-logo{width:150px;height:auto}
.logo-light img{filter:brightness(0) invert(1);opacity:.98}
.footer-logo{width:120px;height:auto}
@media(max-width:650px){.brand-logo{width:124px}
.contact-band .brand-logo{width:150px}
.footer-logo{width:112px}
}

:root{--paper:#f7f4ed;--green:#123e2c;--orange:#d74c06;--line:#c9cec4;--muted:#4c5c51}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--paper);color:var(--green);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.55}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button,a,input{ -webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:5px}
img{max-width:100%;display:block}
button{color:inherit}
h1,h2,h3,p,figure{margin:0}
p{color:var(--muted)}
h2,h3,em{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400}
h2{font-size:clamp(38px,4.3vw,66px);line-height:1.05;letter-spacing:-1.8px}
h3{font-size:clamp(26px,2.4vw,36px);line-height:1.12;letter-spacing:-.5px}
em{font-style:italic}
.wrap{max-width:1400px;margin:auto;padding-inline:5%}
.nav{min-height:95px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #123e2c12}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:29px;letter-spacing:-1px}
.sun{font-size:48px;line-height:1;color:var(--orange);font-family:Georgia,serif}
.nav nav{display:flex;gap:38px;font-size:14px;font-weight:600}
.nav-phone{font-weight:700}
.nav-phone svg{display:none;width:18px;height:18px;fill:currentColor}
.menu-toggle{display:none}
.nav a:hover{color:var(--orange)}
.hero{display:grid;grid-template-columns:1fr 1.1fr;align-items:center;min-height:630px;position:relative;padding-block:55px 15px;overflow:hidden}
.hero-copy{z-index:1;padding-bottom:25px}
.eyebrow,.section-label{font-size:12px;font-weight:600;letter-spacing:2.6px}
.hero h1{font-size:clamp(48px,5.2vw,80px);line-height:1.01;letter-spacing:-4px;margin:28px 0 24px;font-weight:700}
.hero h1 em{white-space:nowrap;letter-spacing:-2.8px}
.intro{max-width:455px;font-size:18px;line-height:1.6}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.button{min-height:49px;border-radius:50px;padding:13px 23px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:14px;font-weight:600;border:1px solid transparent;transition:transform .2s,background .2s}
.button:hover{transform:translateY(-3px)}
.orange{background:var(--orange);color:white}
.outline{border-color:var(--green)}
.hero-note{display:flex;align-items:center;gap:20px;letter-spacing:3px;font-size:11px;margin-top:64px}
.hero-note span{width:60px;height:1px;background:var(--green)}
.hero-art{position:relative;margin-left:-40px;margin-right:-50px;align-self:stretch;display:flex;align-items:center}
.hero-art img{width:100%;height:auto;mix-blend-mode:multiply;animation:float 7s ease-in-out infinite}
.callout{position:absolute;font-size:13px;font-weight:600;border-bottom:1px solid var(--green);padding-bottom:8px}
.callout.solar{top:17%;left:12%}
.callout.water{top:12%;right:12%}
.callout.air{top:42%;right:2%}
.handwritten{font-family:'Libre Caslon Display',Georgia,serif;font-size:27px;font-style:italic;line-height:1.1;transform:rotate(-12deg)}
.hero-art .handwritten{position:absolute;bottom:6%;right:7%}
.section{padding-block:55px}
.section-label{display:flex;align-items:center;gap:26px;margin-bottom:25px;font-size:10px}
.section-label i{flex:1;height:1px;background:currentColor;opacity:.35}
.services h2,.process h2{margin-bottom:32px}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.services article{padding-bottom:10px;display:flex;flex-direction:column}
.service-image{position:relative;overflow:hidden;margin-bottom:21px}
.service-image img{width:100%;height:260px;object-fit:cover;transition:transform .7s}
.service-image:hover img{transform:scale(1.04)}
.service-image>span{position:absolute;z-index:1;top:12px;left:14px;color:var(--orange);font-family:Georgia,serif;font-size:32px;background:var(--paper);padding:0 10px}
.services h3{margin-bottom:12px}
.services article p{font-size:15px;max-width:350px;margin-bottom:22px}
.text-link{display:flex;align-items:center;gap:12px;font-weight:600;font-size:14px;border:0;background:none;padding:0;margin-top:auto;text-align:left}
.text-link:after{content:'';height:1px;background:var(--line);flex:1;margin-left:12px}
.projects{background:var(--green);color:var(--paper)}
.projects p{color:#d5dfd3;margin-top:24px;font-size:16px;max-width:310px}
.projects h2{font-size:clamp(34px,3.7vw,56px)}
.project-layout{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:34px;align-items:start}
.project-layout>div{display:flex;flex-direction:column;align-self:stretch}
.project-layout .text-link{margin-top:36px;color:var(--paper)}
.project-layout img{height:310px;width:100%;object-fit:cover}
.projects figcaption{font-size:11px;letter-spacing:2px;margin-top:14px}
.extra-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:35px}
.extra-projects[hidden]{display:none}
.extra-projects img{height:310px;width:100%;object-fit:cover}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.process article{display:flex;gap:20px;border-right:1px solid var(--line);padding-right:25px}
.process article:last-child{border:0}
.process article>span{font-family:Georgia,serif;color:var(--orange);font-size:32px}
.process h3{font-size:27px;margin-bottom:10px}
.process p{font-size:14px}
.availability{border-top:1px solid #123e2c12}
.availability-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px}
.availability-layout>div>p{margin-top:22px}
.big-phone{display:inline-block;border:1px solid var(--green);border-radius:40px;font-size:28px;font-weight:700;padding:7px 20px;margin-top:28px}
.availability .handwritten{margin-left:170px;margin-top:25px}
.calendar{background:#fffcf7;border:1px solid #123e210d;padding:27px;border-radius:12px;box-shadow:0 7px 35px #123e2109;min-width:0}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.calendar-head h3{font-size:28px}
.calendar-nav{display:flex;gap:6px;align-items:center}
.calendar-nav button{border:0;background:transparent;width:36px;height:40px;font-size:25px}
.calendar-nav strong{font-size:14px;min-width:105px;text-align:center;text-transform:capitalize}
.calendar-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:25px;margin-top:22px}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.days .weekday{font-size:12px;text-align:center;padding:5px}
.days button{border:0;background:transparent;border-radius:50%;aspect-ratio:1;min-width:0;font-size:13px;position:relative}
.days button.has-busy{background:#f6d1bd}
.days button.selected{background:var(--green);color:#fff}
.days button.today{box-shadow:inset 0 0 0 1px var(--green)}
.legend{display:flex;gap:15px;font-size:12px;margin-top:18px}
.legend span{display:flex;gap:6px;align-items:center}
.legend i{border-radius:50%;width:11px;height:11px;background:#dfede0}
.legend i.busy{background:#f6d1bd}
.selected-title{font-weight:600;font-size:14px;margin-bottom:12px;text-transform:capitalize}
.hours{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.hours span{background:#e2efe2;font-size:12px;padding:6px;text-align:center;border-radius:7px}
.hours span.busy{background:#f6d1bd;color:#74361b}
.calendar-note{font-size:12px;margin-top:12px;line-height:1.5}
.calendar .button{background:var(--green);color:white;width:100%;padding:10px 12px;margin-top:16px;font-size:12px;gap:4px}
.error{color:#91411a;font-size:14px;padding:12px;background:#fff1e7;border-radius:6px}
.calendar-status{margin-top:12px;font-size:13px}
.intervals{font-size:13px;margin-top:12px}
.contact-band{background:var(--orange);color:#fff;padding:35px 0}
.contact-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:35px}
.contact-band .sun{color:#fff}
.contact-band h2{font-style:italic;font-size:54px;text-align:center}
.contact-band p{font-size:13px;color:#fff;margin-top:10px}
.contact-band .wrap>a:last-child{font-size:25px;font-weight:700;white-space:nowrap}
footer{display:flex;justify-content:space-between;gap:20px;padding-block:22px!important;font-size:11px;letter-spacing:1px}
.floating-contact{display:none}
.owner{max-width:950px;padding-block:50px}
.owner h1{font-family:Georgia,serif;font-size:44px;margin:30px 0}
.owner .calendar{margin-top:30px}
.editor{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}
.editor label{display:block;margin-block:12px}
.editor input:not([type=checkbox]){padding:10px;border:1px solid var(--line);border-radius:5px;background:white;max-width:100%}
.time-fields{display:flex;gap:20px;flex-wrap:wrap}
.editor button{border:1px solid var(--green);padding:9px 15px;border-radius:6px;background:var(--green);color:white}
.blocked-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:8px}
.blocked-row button{font-size:13px;padding:5px 12px;background:white;border:1px solid var(--line);border-radius:6px}
button:disabled{opacity:.5;cursor:wait}
@keyframes float{50%{transform:translateY(-10px)}
}
@media(min-width:1500px){.hero{min-height:700px}
}
@media(max-width:1000px){.nav nav{gap:20px}
.hero h1{letter-spacing:-2px}
.hero h1 em{white-space:normal}
.hero-art{margin-left:-10px}
.service-image img{height:210px}
.availability-layout{grid-template-columns:1fr;gap:30px}
.availability-layout>div:first-child{max-width:650px}
.availability .handwritten{display:none}
.project-layout{gap:22px}
.contact-band .wrap{flex-wrap:wrap}
.hero-note{margin-top:35px}
.calendar-columns{grid-template-columns:1fr 1fr}
.days button{max-height:55px}
}
@media(max-width:650px){.wrap{padding-inline:6%}
.nav{min-height:80px;flex-wrap:wrap;gap:10px;padding-block:14px}
.brand{font-size:24px}
.sun{font-size:38px}
.nav-phone{font-size:14px}
.nav nav{order:3;width:100%;justify-content:space-between;padding-top:10px;font-size:13px}
.hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:0;min-height:0}
.hero h1{font-size:clamp(46px,10.8vw,68px);letter-spacing:-2px;margin-top:22px}
.hero h1 em{white-space:nowrap;font-size:.98em}
.eyebrow{font-size:10px;letter-spacing:2px}
.intro{font-size:16px}
.hero-copy{padding:0}
.hero-note{display:none}
.actions{gap:9px;margin-top:22px}
.button{padding:12px 17px;font-size:13px}
.hero-art{margin:0 -5%;min-height:320px}
.hero-art img{width:100%}
.callout.solar{top:18%;left:8%}
.callout.water{top:13%;right:10%}
.callout.air{right:0;top:44%}
.callout{font-size:11px}
.hero-art .handwritten{font-size:24px}
.section{padding-block:38px}
.section-label{font-size:9px;letter-spacing:1.5px;gap:14px}
.section-label>span:last-child{display:none}
h2{font-size:42px;letter-spacing:-1.2px}
.services-grid{grid-template-columns:1fr;gap:32px}
.service-image img{height:250px}
.services h3{font-size:32px}
.services article p{max-width:none;font-size:16px}
.project-layout{grid-template-columns:1fr 1fr;gap:18px}
.project-layout>div{grid-column:1/-1;margin-bottom:10px}
.projects h2{font-size:42px}
.projects p{max-width:100%;margin-top:18px}
.project-layout img{height:225px}
.project-layout .text-link{margin-top:20px}
.extra-projects{grid-template-columns:1fr;gap:25px}
.extra-projects img{height:320px}
.process-grid{grid-template-columns:1fr;gap:24px}
.process article{border-right:0;border-bottom:1px solid var(--line);padding:0 0 24px}
.process article:last-child{padding-bottom:0}
.process p{font-size:15px}
.process h3{font-size:28px}
.calendar{padding:18px}
.calendar-head h3{font-size:25px}
.calendar-nav strong{min-width:95px;font-size:12px}
.calendar-nav button{width:26px}
.calendar-columns{grid-template-columns:1fr;gap:24px}
.days button{font-size:14px;max-height:45px}
.hours{grid-template-columns:repeat(4,1fr)}
.big-phone{font-size:25px}
.contact-band .wrap{flex-direction:column;text-align:center;gap:24px}
.contact-band h2{font-size:52px}
footer{flex-direction:column;align-items:center;padding-bottom:90px!important}
.floating-contact{display:block;position:fixed;bottom:18px;right:18px;border-radius:40px;background:var(--green);color:white;padding:13px 19px;font-size:14px;box-shadow:0 5px 20px #0003;z-index:10}
.owner h1{font-size:35px}
.owner .calendar-head{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}
}

/* Hero integrado: la ilustración se funde con el mismo lienzo del texto. */
.hero{isolation:isolate;background:radial-gradient(circle at 69% 34%,rgba(244,173,67,.12),transparent 29%),radial-gradient(ellipse at 76% 62%,rgba(255,255,255,.7),transparent 55%)}
.hero-copy{position:relative;z-index:2}
.hero-art{margin-left:-92px;z-index:1}
.hero-art img{-webkit-mask-image:radial-gradient(ellipse 78% 82% at 54% 51%,#000 67%,transparent 100%);mask-image:radial-gradient(ellipse 78% 82% at 54% 51%,#000 67%,transparent 100%)}
@media(max-width:1000px){.hero-art{margin-left:-48px}}
@media(max-width:650px){
  .hero{background:radial-gradient(circle at 50% 70%,rgba(244,173,67,.12),transparent 38%)}
  .hero-art{margin:-22px -9% -6%;padding-top:12px}
  .hero-art img{-webkit-mask-image:radial-gradient(ellipse 85% 79% at 52% 52%,#000 64%,transparent 100%);mask-image:radial-gradient(ellipse 85% 79% at 52% 52%,#000 64%,transparent 100%)}
}

/* Movimiento editorial ligado al scroll. */
.hero{--copy-y:0px;--copy-opacity:1;--art-y:0px;--art-scale:1;--solar-x:0px;--water-x:0px;--air-x:0px;--label-y:0px;--cue-opacity:1}
.hero-copy{transform:translate3d(0,var(--copy-y),0);opacity:var(--copy-opacity);will-change:transform,opacity}
.hero-art img{transform:translate3d(0,var(--art-y),0) scale(var(--art-scale));animation:none;will-change:transform}
.hero-art .solar{transform:translate3d(var(--solar-x),var(--label-y),0)}
.hero-art .water{transform:translate3d(var(--water-x),var(--label-y),0)}
.hero-art .air{transform:translate3d(var(--air-x),var(--label-y),0)}
.hero-art .handwritten{transform:translate3d(0,var(--label-y),0) rotate(-12deg)}
.hero-copy,.hero-art img,.hero-art .callout,.hero-art .handwritten{transition:transform .08s linear,opacity .08s linear}
.scroll-cue{position:absolute;left:50%;bottom:14px;z-index:3;display:flex;align-items:center;gap:12px;color:var(--green);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;opacity:var(--cue-opacity);transform:translateX(-50%);transition:opacity .12s linear;white-space:nowrap}
.scroll-cue span{width:1px;height:34px;background:var(--orange);position:relative;overflow:hidden}
.scroll-cue span:after{content:'';position:absolute;inset:0;background:var(--green);animation:scrollPulse 1.7s ease-in-out infinite;transform:translateY(-100%)}
@keyframes scrollPulse{55%,100%{transform:translateY(100%)}}
.reveal-item{opacity:0;transform:translateY(34px);transition:opacity .75s ease,transform .85s cubic-bezier(.2,.75,.2,1)}
.reveal-item.is-visible{opacity:1;transform:none}
.services-grid .reveal-item:nth-child(2),.process-grid .reveal-item:nth-child(2){transition-delay:.09s}
.services-grid .reveal-item:nth-child(3),.process-grid .reveal-item:nth-child(3){transition-delay:.18s}
@media(max-width:650px){
  .hero-copy{transform:translate3d(0,var(--copy-y),0);opacity:var(--copy-opacity)}
  .hero-art img{transform:translate3d(0,var(--art-y),0) scale(var(--art-scale))}
  .scroll-cue{bottom:2px}
  .reveal-item{transform:translateY(22px)}
}
@media(prefers-reduced-motion:reduce){.hero-copy,.hero-art img,.hero-art .callout,.hero-art .handwritten,.reveal-item{transform:none!important;opacity:1!important;transition:none!important}.scroll-cue{display:none}}

/* Acciones del hero: escritorio conserva dos opciones; móvil usa una jerarquía única. */
.mobile-label,.hero-phone{display:none}
@media(max-width:650px){
  .hero{overflow:hidden;padding-bottom:20px}
  .hero-copy{z-index:3}
  .actions{display:block;width:100%;margin-top:24px}
  .actions .orange{width:100%;min-height:58px;padding:15px 22px;justify-content:space-between;font-size:16px}
  .actions .outline{display:none}
  .desktop-label{display:none}
  .mobile-label{display:inline}
  .hero-phone{display:flex;width:max-content;max-width:100%;align-items:center;gap:11px;margin:15px auto 0;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:5px}
  .phone-icon{display:block;width:20px;height:20px;fill:currentColor;flex:none}
  .hero-art{min-height:510px;margin:18px -3% 0;padding:48px 0 36px;display:block}
  .hero-art img{width:106%;max-width:none;margin:0 -3%;transform-origin:52% 52%}
  .callout{z-index:3;padding:8px 14px;border:1px solid var(--green);border-radius:999px;background:rgba(247,244,237,.94);font-size:12px;line-height:1.1;white-space:nowrap;box-shadow:0 5px 18px rgba(18,62,44,.06)}
  .callout.solar{top:12px;left:1%}
  .callout.water{top:12px;right:1%}
  .callout.air{top:43%;right:0}
  .callout:after{content:'';position:absolute;height:1px;width:34px;background:var(--green);top:50%}
  .callout.solar:after{left:100%;transform:rotate(30deg);transform-origin:left}
  .callout.water:after,.callout.air:after{right:100%;transform:rotate(-30deg);transform-origin:right}
  .hero-art .solar,.hero-art .water,.hero-art .air{transform:translate3d(0,var(--label-y),0)}
  .hero-art .handwritten{right:50%;bottom:0;transform:translate3d(50%,var(--label-y),0) rotate(-6deg);font-size:27px;text-align:center;white-space:nowrap}
  .scroll-cue{display:none}
  .floating-contact{transition:transform .3s ease,opacity .3s ease}
  .hero-in-view .floating-contact{transform:translateY(90px);opacity:0;pointer-events:none}
}
@media(max-width:390px){
  .hero-art{min-height:475px}
  .callout{font-size:11px;padding:7px 11px}
  .callout:after{width:24px}
  .hero-phone{font-size:14px}
}

/* Cabecera móvil compacta con navegación desplegable. */
@media(max-width:650px){
  .nav{position:sticky;top:0;z-index:30;min-height:88px;padding:10px 5%;display:grid;grid-template-columns:minmax(82px,1fr) auto 48px;gap:8px;align-items:center;flex-wrap:nowrap;background:rgba(247,244,237,.94);border-bottom:1px solid rgba(18,62,44,.1);box-shadow:0 5px 22px rgba(18,62,44,.045);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .nav .brand-logo{width:112px}
  .nav-phone{min-height:42px;padding:8px 12px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--green);border-radius:999px;font-size:12px;white-space:nowrap}
  .nav-phone svg{display:block;width:16px;height:16px}
  .menu-toggle{width:48px;height:48px;border:0;border-radius:50%;background:var(--orange);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;box-shadow:0 5px 14px rgba(215,76,6,.18)}
  .menu-toggle span{display:block;width:20px;height:2px;border-radius:2px;background:#fff;transition:transform .25s ease,opacity .2s ease}
  .menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav nav{position:absolute;top:calc(100% + 1px);left:0;right:0;width:100%;order:initial;padding:13px 5% 18px;display:grid;justify-content:stretch;gap:7px;background:var(--paper);border-bottom:1px solid rgba(18,62,44,.1);box-shadow:0 18px 28px rgba(18,62,44,.09);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px);transition:opacity .22s ease,transform .25s ease,visibility .22s}
  .nav nav.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}
  .nav nav a{min-height:48px;padding:11px 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(18,62,44,.12);font-family:'Libre Caslon Display',Georgia,serif;font-size:23px;font-weight:400}
  .nav nav a:after{content:'';width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg)}
}
@media(max-width:360px){
  .nav{grid-template-columns:minmax(72px,1fr) auto 44px;gap:6px;padding-inline:4%}
  .nav .brand-logo{width:88px}
  .nav-phone{padding-inline:9px;font-size:11px}
  .nav-phone svg{display:none}
  .menu-toggle{width:44px;height:44px}
}

/* Introducción de marca: visible solo una vez por sesión. */
.site-loader{display:none;position:fixed;inset:0;z-index:1000;place-items:center;background:var(--paper);overflow:hidden;opacity:1;transition:background-color .5s ease,opacity .5s ease;pointer-events:auto}
.loader-logo{position:relative;width:min(360px,76vw);aspect-ratio:1023/577;transform-origin:center;will-change:transform;transition:transform .78s cubic-bezier(.7,0,.2,1)}
.loader-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0}
.loader-snow{clip-path:inset(0 51% 53% 20%);animation:loaderDraw .36s .04s both}
.loader-sun{clip-path:inset(0 20% 53% 49%);animation:loaderGlow .4s .22s both}
.loader-panel{clip-path:inset(14% 30% 47% 31%);animation:loaderDraw .42s .42s both}
.loader-name{clip-path:inset(47% 5% 23%);animation:loaderRise .4s .72s both}
.loader-tagline{clip-path:inset(74% 4% 0);animation:loaderRise .4s .92s both}
.loader-full{animation:loaderFull .18s 1.2s both}
.loader-shine{position:absolute;z-index:2;left:30%;top:10%;width:38%;height:38%;opacity:0;transform:translateX(-120%) skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,185,67,.65),transparent);filter:blur(3px);animation:loaderSweep .55s .43s ease-out both;clip-path:polygon(0 30%,100% 0,100% 75%,0 100%)}
.site-loader.is-leaving{background:rgba(247,244,237,0)}
.site-loader.is-leaving .loader-logo{transform:translate3d(var(--loader-x),var(--loader-y),0) scale(var(--loader-scale))}
.site-loader.is-leaving .loader-layer:not(.loader-full),.site-loader.is-leaving .loader-shine{opacity:0;transition:opacity .12s ease}
.site-loader.is-gone{opacity:0;pointer-events:none}
@keyframes loaderDraw{from{opacity:0;transform:scale(.92);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes loaderGlow{0%{opacity:0;transform:scale(.82);filter:brightness(1.5)}70%{opacity:1;transform:scale(1.06);filter:brightness(1.25)}100%{opacity:1;transform:none;filter:none}}
@keyframes loaderRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes loaderFull{from{opacity:0}to{opacity:1}}
@keyframes loaderSweep{0%{opacity:0;transform:translateX(-120%) skewX(-18deg)}20%{opacity:1}100%{opacity:0;transform:translateX(170%) skewX(-18deg)}}
@media(max-width:650px){.loader-logo{width:min(300px,74vw)}}
@media(prefers-reduced-motion:reduce){.site-loader{display:none!important}.loader-layer,.loader-shine{animation:none!important}}

/* Identidad compacta: se muestra exclusivamente el símbolo del logotipo original. */
.brand-symbol{display:block;position:relative;width:78px;aspect-ratio:1.42;overflow:hidden;flex:0 0 auto}
body .brand-symbol .brand-logo{position:absolute;width:270%;max-width:none;height:auto;left:-84%;top:-10%;display:block}
.logo-light .brand-symbol img{filter:brightness(0) invert(1);opacity:.98}
.footer-symbol{width:60px}

/* Hero fotográfico orientado a mantenimiento y respuesta rápida. */
.hero.hero-service{--copy-y:0px;--copy-opacity:1;--art-y:0px;--art-scale:1;max-width:none;width:100%;min-height:clamp(650px,calc(100svh - 95px),820px);padding:0 0 92px;display:grid;grid-template-columns:1fr;align-items:center;position:relative;overflow:hidden;isolation:isolate;background:#123e2c;color:#fff}
.hero-service .hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-service .hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 47%;max-width:none;transform:translate3d(0,var(--art-y),0) scale(var(--art-scale));transform-origin:64% 50%;will-change:transform;transition:transform .08s linear}
.hero-service:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,43,31,.97) 0%,rgba(7,43,31,.87) 29%,rgba(7,43,31,.34) 57%,rgba(7,43,31,.04) 82%),linear-gradient(0deg,rgba(5,32,23,.32),transparent 45%)}
.hero-service .hero-copy{width:min(1400px,100%);margin-inline:auto;padding:48px 5% 72px;position:relative;z-index:2;color:#fff;transform:translate3d(0,var(--copy-y),0);opacity:var(--copy-opacity);will-change:transform,opacity}
.hero-service .urgency{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:7px;background:var(--orange);color:#fff;font-size:12px;font-weight:700;letter-spacing:2px;box-shadow:0 8px 24px rgba(0,0,0,.16)}
.hero-service .urgency span{color:#ffd59f}
.hero-service h1{max-width:720px;margin:24px 0 18px;color:#fff;font-family:'DM Sans',Arial,sans-serif;font-size:clamp(50px,5.35vw,84px);font-weight:700;line-height:.99;letter-spacing:-4px}
.hero-service h1 em{display:inline;color:#efc66b;font-family:inherit;font-style:normal;font-weight:700;letter-spacing:inherit;white-space:normal}
.hero-service .intro{max-width:610px;color:#fff;font-size:18px;line-height:1.5;text-shadow:0 2px 10px rgba(0,0,0,.15)}
.hero-service .actions{margin-top:28px;gap:14px}
.hero-service .button{min-height:56px;padding:14px 25px;font-size:15px}
.hero-service .orange{background:#efbf5d;color:#0b3a2a}
.hero-service .outline{border-color:rgba(255,255,255,.9);color:#fff;background:rgba(9,48,35,.22);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hero-benefits{position:absolute;left:0;right:0;bottom:0;z-index:3;min-height:92px;padding:0 max(5%,calc((100vw - 1400px)/2 + 5%));display:grid;grid-template-columns:repeat(3,1fr);align-items:center;background:rgba(8,53,38,.96);border-top:1px solid rgba(239,198,107,.35);color:#fff}
.hero-benefits>span{min-height:46px;padding:0 28px;display:flex;align-items:center;gap:16px;border-right:1px solid rgba(239,198,107,.35);font-size:14px;font-weight:600}
.hero-benefits>span:first-child{padding-left:0}
.hero-benefits>span:last-child{border-right:0}
.hero-benefits i{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #efc66b;border-radius:50%;color:#efc66b;font-family:Georgia,serif;font-size:12px;font-style:normal}

/* La introducción conserva el símbolo, sin nombre ni descriptor. */
.loader-logo{width:min(220px,52vw);aspect-ratio:1.42}
.loader-symbol{width:100%;height:100%;opacity:0;transform:scale(.86);filter:blur(5px);animation:loaderMarkReveal .9s .18s cubic-bezier(.2,.8,.2,1) forwards}
.loader-shine{left:4%;top:16%;width:92%;height:62%;clip-path:polygon(0 35%,100% 0,100% 70%,0 100%);animation-duration:.8s;animation-delay:.62s}
.site-loader.is-leaving .loader-symbol,.site-loader.is-leaving .loader-shine{opacity:1}
@keyframes loaderMarkReveal{60%{opacity:1;transform:scale(1.05);filter:none}100%{opacity:1;transform:none;filter:none}}

@media(max-width:1000px){
  .nav nav{gap:18px}
  .hero-service:after{background:linear-gradient(90deg,rgba(7,43,31,.96),rgba(7,43,31,.78) 42%,rgba(7,43,31,.2) 76%),linear-gradient(0deg,rgba(5,32,23,.34),transparent 45%)}
}
@media(min-width:651px) and (max-width:800px){
  .nav{gap:14px}
  .nav .brand-symbol{width:60px}
  .nav nav{gap:11px;font-size:12px}
  .nav-phone{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff}
  .nav-phone svg{display:block}
  .nav-phone span{display:none}
}
@media(max-width:650px){
  .nav{min-height:80px}
  .nav .brand-symbol{width:58px}
  .hero.hero-service{min-height:720px;padding:0 0 96px;display:flex;align-items:flex-end;background:#123e2c}
  .hero-service .hero-media img{object-position:62% center;transform-origin:64% 50%}
  .hero-service:after{background:linear-gradient(0deg,rgba(7,43,31,.98) 9%,rgba(7,43,31,.88) 43%,rgba(7,43,31,.2) 76%),linear-gradient(90deg,rgba(7,43,31,.25),transparent 60%)}
  .hero-service .hero-copy{padding:190px 6% 42px;transform:none;opacity:1}
  .hero-service .urgency{padding:8px 11px;font-size:9px;letter-spacing:1.25px}
  .hero-service h1{max-width:520px;margin:18px 0 15px;font-size:clamp(42px,12vw,60px);line-height:.98;letter-spacing:-2.5px}
  .hero-service .intro{font-size:16px;line-height:1.45}
  .hero-service .actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:22px}
  .hero-service .actions .button{display:flex;width:100%;min-height:54px;font-size:15px}
  .hero-service .actions .outline{display:flex}
  .hero-benefits{min-height:96px;padding:0 4%;grid-template-columns:repeat(3,1fr)}
  .hero-benefits>span{min-height:50px;padding:0 8px;justify-content:center;text-align:center;font-size:10px;line-height:1.25}
  .hero-benefits i{display:none}
  .contact-band .brand-symbol{width:74px}
  .footer-symbol{width:55px}
}
@media(max-width:390px){
  .hero.hero-service{min-height:690px}
  .hero-service .hero-copy{padding-top:170px;padding-bottom:34px}
  .hero-service h1{font-size:40px}
  .hero-benefits>span{padding-inline:6px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.hero-service .hero-media img,.hero-service .hero-copy{transform:none!important;opacity:1!important}}

/* Carrusel fotográfico de servicios. */
.hero-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s;pointer-events:none}
.hero-slide.is-active{opacity:1;visibility:visible}
.carousel-controls{position:absolute;right:5%;bottom:116px;z-index:4;display:flex;align-items:center;gap:10px;color:#fff}
.carousel-arrow{width:42px;height:42px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(7,43,31,.42);color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s,transform .2s}
.carousel-arrow:hover{background:var(--orange);transform:translateY(-2px)}
.carousel-arrow svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.carousel-dots{display:flex;align-items:center;gap:7px;padding:10px 11px;border-radius:999px;background:rgba(7,43,31,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.carousel-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);transition:width .25s,background .25s}
.carousel-dots button.is-active{width:24px;border-radius:10px;background:#efc66b}
.carousel-label{min-width:126px;font-size:12px;font-weight:700;letter-spacing:.8px;text-shadow:0 1px 5px rgba(0,0,0,.35)}

@media(max-width:650px){
  .hero.hero-service{min-height:650px}
  .hero-service .hero-copy{padding:245px 6% 116px}
  .hero-service h1{max-width:355px;margin:14px 0 11px;font-size:34px;line-height:1.02;letter-spacing:-1.6px}
  .hero-service .intro{max-width:355px;font-size:14px;line-height:1.4}
  .hero-service .urgency{padding:7px 10px;font-size:8px;letter-spacing:1.1px}
  .hero-service .actions{grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}
  .hero-service .actions .button{min-height:48px;padding:10px 11px;gap:7px;font-size:12px;text-align:center}
  .hero-service .actions .arrow-icon{width:15px;height:15px}
  .carousel-controls{top:17px;right:5%;bottom:auto;gap:7px}
  .carousel-arrow{width:36px;height:36px}
  .carousel-dots{padding:8px 9px;gap:6px}
  .carousel-label{position:absolute;top:43px;right:0;min-width:max-content;padding:4px 8px;border-radius:4px;background:rgba(7,43,31,.54);font-size:10px}
  .hero-benefits{min-height:86px}
}
@media(max-width:390px){
  .hero.hero-service{min-height:625px}
  .hero-service .hero-copy{padding-top:225px;padding-bottom:103px}
  .hero-service h1{font-size:31px}
  .hero-service .intro{font-size:13px}
  .hero-service .actions .button{font-size:11px}
  .hero-benefits{min-height:78px}
}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}.carousel-controls{display:none}}

/* En móvil, la fotografía y el mensaje viven en planos separados. */
@media(max-width:650px){
  .hero.hero-service{display:block;min-height:0;padding:0;background:#0a3b2a;overflow:hidden}
  .hero-service:after{display:none}
  .hero-service .hero-media{position:relative;inset:auto;z-index:1;width:100%;height:clamp(290px,78vw,350px);overflow:hidden;background:#dbe7e5}
  .hero-service .hero-media img{transform:none!important;object-position:58% 48%;filter:none}
  .hero-service .hero-slide:nth-child(2) img{object-position:67% center}
  .hero-service .hero-slide:nth-child(3) img{object-position:68% center}
  .hero-service .hero-copy{width:100%;margin:0;padding:23px 6% 27px;position:relative;z-index:2;background:#0a3b2a;transform:none!important;opacity:1!important}
  .hero-service .urgency{padding:6px 9px;background:transparent;border:1px solid rgba(239,198,107,.58);box-shadow:none;color:#efc66b;font-size:8px}
  .hero-service .urgency span{color:#efc66b}
  .hero-service h1{max-width:360px;margin:13px 0 10px;font-size:32px;line-height:1.02;letter-spacing:-1.5px}
  .hero-service .intro{max-width:360px;font-size:14px;line-height:1.4;color:rgba(255,255,255,.88)}
  .hero-service .actions{margin-top:16px}
  .carousel-controls{top:16px;right:5%;z-index:5}
  .carousel-arrow,.carousel-dots{background:rgba(7,43,31,.66)}
  .carousel-label{background:rgba(7,43,31,.78)}
  .hero-benefits{position:relative;left:auto;right:auto;bottom:auto;z-index:2;min-height:78px;padding-inline:4%;background:#082f22}
}
@media(max-width:390px){
  .hero-service .hero-media{height:290px}
  .hero-service .hero-copy{padding-top:20px;padding-bottom:24px}
  .hero-service h1{font-size:29px}
  .hero-service .intro{font-size:13px}
}
