/* Dirección de arte — Espino Residential Cleaning
1. Paleta: carbón #19191a, marfil #f2eee6, rosa Espino #ef5c9c, arena #c2a99a.
2. Tipografía: Instrument Serif y DM Sans (Google Fonts).
3. Idea visual: la satisfacción de recuperar un espacio; fotografía real y contraste antes/después.
4. Movimiento: entrada de portada y una comparación deslizable; scroll suave que respeta reduced motion.
5. Propio del oficio: la transformación visual de limpieza, no metáforas genéricas de construcción.
*/
:root{--ink:#19191a;--cream:#f2eee6;--rose:#ef5c9c;--sand:#c2a99a;--line:rgba(242,238,230,.18);--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--gutter:clamp(18px,5.2vw,78px)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:82px}
body{margin:0;font:400 16px/1.55 var(--sans);background:var(--ink);color:var(--cream);-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}
img{max-width:100%;display:block}h1,h2,h3,p{margin:0}a{color:inherit}h1,h2,h3{font-weight:400;text-wrap:balance}
:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
.skip-link{position:absolute;z-index:1000;top:-100px;left:20px;padding:10px 15px;color:var(--ink);background:var(--cream)}.skip-link:focus{top:12px}
.demo-band{background:var(--cream);color:var(--ink);text-align:center;font-size:.72rem;padding:7px var(--gutter)}
.header{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px var(--gutter);position:sticky;z-index:60;top:0;background:rgba(25,25,26,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.brand{width:clamp(170px,17vw,235px);flex:none;display:block}.brand img{width:100%;height:auto}
.site-nav{display:flex;align-items:center;gap:clamp(13px,2.6vw,32px)}.site-nav a,.mobile-menu a{font-size:.85rem;text-decoration:none;transition:color .2s}.site-nav a:hover,.mobile-menu a:hover{color:var(--rose)}
.header-right{display:flex;align-items:center;gap:12px}.language{border:1px solid rgba(242,238,230,.48);background:transparent;color:var(--cream);border-radius:50%;width:42px;height:42px;font-size:.8rem;font-weight:700}.header-phone{min-height:44px;text-decoration:none;background:var(--rose);color:var(--ink);border-radius:2px;padding:11px 16px;font-weight:700;font-size:.82rem}.header-phone span:first-child{display:none}.header-phone:hover,.btn-rose:hover{background:#ff87b9}
.menu-button,.mobile-menu{display:none}.section-pad{padding:clamp(75px,10vw,150px) var(--gutter)}.quiet-caption{font-size:.92rem;color:var(--sand);margin-bottom:18px}.dark-caption{color:#975078}
h2{font-family:var(--serif);font-size:clamp(3.1rem,7.3vw,7.2rem);line-height:.97;letter-spacing:-.015em}
.btn{min-height:54px;display:inline-flex;gap:20px;justify-content:space-between;align-items:center;padding:15px 22px;text-decoration:none;font-size:.9rem;font-weight:700;border:1px solid transparent;transition:background .2s,color .2s,transform .16s}.btn:hover{transform:translateY(-1px)}.btn-rose{background:var(--rose);color:var(--ink)}.btn-outline{border-color:rgba(242,238,230,.6);color:var(--cream)}.btn-outline:hover{background:rgba(242,238,230,.12)}.btn-dark{background:var(--ink);color:var(--cream);min-width:215px}.btn-dark:hover{background:#363337}
.hero{position:relative;isolation:isolate;min-height:min(850px,calc(100svh - 105px));display:flex;align-items:center;padding:90px var(--gutter) 105px;overflow:hidden}.hero-image{position:absolute;z-index:-3;right:0;top:0;height:100%;width:55%;object-fit:cover;object-position:center 48%;filter:saturate(.75)}.hero-shade{z-index:-2;position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,rgba(25,25,26,.99) 27%,rgba(25,25,26,.86) 48%,rgba(25,25,26,.09) 90%),linear-gradient(0deg,rgba(25,25,26,.45),transparent 40%)}.hero-content{max-width:1060px;position:relative}.hero-pre{display:flex;gap:15px;align-items:center;font-size:clamp(.8rem,1.3vw,.97rem);color:#f9d3e3;margin-bottom:20px}.pink-rule{display:block;background:var(--rose);height:2px;width:33px;flex:none}.hero h1{font:400 clamp(4rem,9.2vw,9.1rem)/.88 var(--serif);letter-spacing:-.023em;max-width:1010px}.hero h1 span{display:block}.hero-italic{font-style:italic;color:#ffafd1}.hero-copy{max-width:470px;margin-top:25px;font-size:clamp(.99rem,1.5vw,1.11rem);color:#e7e0db}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}.hero-rating{display:flex;gap:10px;align-items:center;font-size:.86rem;margin-top:25px;color:#e8e0da}.starline{color:var(--rose);letter-spacing:2px}.hero-side-note{position:absolute;right:var(--gutter);bottom:30px;font-size:.76rem;text-shadow:0 1px 9px #111}
.hero .hero-pre,.hero h1,.hero-copy,.hero-actions,.hero-rating{animation:rise .9s cubic-bezier(.22,.8,.24,1) both}.hero h1{animation-delay:.1s}.hero-copy{animation-delay:.22s}.hero-actions{animation-delay:.33s}.hero-rating{animation-delay:.42s}@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#222123}.facts>div{display:flex;flex-direction:column;gap:6px;padding:22px var(--gutter);border-right:1px solid var(--line)}.facts>div:not(:first-child){padding-left:28px}.facts>div:last-child{border-right:0}.facts span{font-size:.73rem;color:var(--sand)}.facts strong{font:400 clamp(1.25rem,2.2vw,1.8rem)/1.05 var(--serif)}
.intro{background:var(--cream);color:var(--ink);display:grid;grid-template-columns:1.4fr .6fr;gap:8vw;align-items:end}.intro-title{position:relative}.section-accent{color:var(--rose);font-size:2.5rem;display:block;line-height:1;margin-bottom:18px}.intro h2{font-size:clamp(3.5rem,7vw,7rem)}.intro-text{max-width:420px;padding-bottom:12px}.intro-text p{font-size:1.05rem;color:#3b3535}.text-link{font-weight:700;text-underline-offset:6px;text-decoration-color:var(--rose);margin-top:24px;display:inline-flex;gap:30px}
.services{background:var(--ink)}.services-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:60px}.services-heading h2{max-width:790px}.services-heading>p{max-width:330px;color:#cfc4bb}.services-heading .quiet-caption{display:none}
.service-grid{display:grid;grid-template-columns:1.18fr .76fr;gap:26px;align-items:start}.service-grid article{position:relative;overflow:hidden;background:#242223}.service-grid img{width:100%;object-fit:cover;transition:transform .65s cubic-bezier(.22,.8,.24,1)}.service-grid article:hover img{transform:scale(1.025)}.service-feature{grid-row:span 2}.service-feature img{height:min(770px,64vw);min-height:560px;object-position:center}.service-small img{height:min(367px,30vw);min-height:280px}.photo-bar{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:10px;padding:35px 22px 19px;background:linear-gradient(0deg,rgba(0,0,0,.68),transparent);font:400 clamp(1.35rem,2.4vw,2.2rem)/1.1 var(--serif)}.photo-bar span:last-child{font:.72rem var(--sans);align-self:end;color:#eee}
.services-detail{display:grid;grid-template-columns:.85fr 1.15fr;gap:10vw;margin-top:75px;padding-top:42px;border-top:1px solid var(--line)}.services-detail h3{font:400 clamp(2.3rem,4.2vw,4.1rem)/1.04 var(--serif);max-width:510px}.services-detail ul{display:grid;grid-template-columns:1fr 1fr;gap:10px 32px;padding:0;margin:0;list-style:none}.services-detail li{display:flex;gap:12px;align-items:flex-start;font-size:.91rem;color:#e2dada;padding:0 0 12px;border-bottom:1px solid var(--line)}.services-detail li::before{content:'✳';color:var(--rose);font-size:.9rem}
.comparison{background:var(--cream);color:var(--ink)}.compare-top{display:flex;align-items:end;justify-content:space-between;gap:34px}.compare-top h2{max-width:800px}.compare-description{width:270px;flex:none;color:#4c4444}.compare-tabs{display:flex;gap:10px;margin:40px auto 18px;width:min(100%,1050px)}.compare-tab{background:transparent;border:1px solid #b7aaa7;color:var(--ink);padding:9px 28px;font-weight:700;min-height:43px}.compare-tab.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.comparison-frame{width:min(100%,1050px);margin:auto;position:relative;isolation:isolate;aspect-ratio:16/9;background:#c6bcb2;overflow:hidden;touch-action:pan-y;user-select:none}.compare-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 50%;pointer-events:none}.before-img{z-index:2;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}.compare-label{position:absolute;top:20px;z-index:4;background:var(--ink);color:var(--cream);padding:7px 13px;font-weight:700;font-size:.77rem}.before-label{left:18px}.after-label{right:18px}.compare-divider{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;transform:translateX(-50%);z-index:5;pointer-events:none;background:var(--cream)}.compare-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;border:3px solid var(--cream);background:var(--ink);color:var(--cream);display:flex;align-items:center;justify-content:center;gap:10px;font:400 2rem var(--serif);box-shadow:0 2px 15px #0006}.compare-range{position:absolute;z-index:10;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}.compare-bottom{width:min(100%,1050px);margin:18px auto 0;display:flex;justify-content:space-between;align-items:center;gap:22px}.compare-bottom p{font-size:.8rem;color:#655657;text-align:right}.compare-dots{display:flex;gap:6px}.compare-dots span{display:block;width:28px;height:3px;background:#cdbdb6}.compare-dots span.on{background:var(--rose)}
.experience{display:grid;grid-template-columns:1fr .85fr;gap:clamp(60px,9vw,150px);align-items:center}.experience-photo{position:relative}.experience-photo img{width:100%;aspect-ratio:1.17;object-fit:cover;object-position:center}.experience-photo p{background:var(--rose);color:var(--ink);padding:12px 20px;font-size:.85rem;max-width:max-content;position:relative;margin:-20px 0 0 24px}.experience-copy{max-width:560px}.experience-copy h2{font-size:clamp(3.5rem,6vw,6.4rem)}.experience-copy>p:not(.quiet-caption){margin:24px 0 28px;color:#d4cbc5;max-width:480px}
.reviews{background:#222123}.reviews-intro{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:50px}.review-number{display:flex;gap:18px;align-items:center}.review-number>span{font:400 clamp(4rem,8vw,8rem)/.8 var(--serif);color:var(--rose)}.review-number>div{display:flex;flex-direction:column;color:var(--rose)}.review-number small{color:#e0d8d2;margin-top:8px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.review-grid figure{margin:0;padding:30px 28px;border-top:2px solid var(--rose);min-height:250px;display:flex;flex-direction:column;justify-content:space-between;background:rgba(242,238,230,.04)}.review-grid blockquote{font:italic 400 clamp(1.7rem,2.65vw,2.75rem)/1.1 var(--serif);margin:0}.review-grid figcaption{font-size:.78rem;color:#bfb5b0}.review-grid b{color:var(--cream)}.review-fine{color:#ac9f9a;font-size:.75rem;margin-top:18px}
.where{background:var(--ink)}.where-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:12vw;align-items:center}.where h2{max-width:770px}.where p:not(.quiet-caption){color:#e0d9d4;margin:20px 0}.cities{line-height:2;font-size:1.2rem!important}.cities span{color:var(--rose);padding:0 3px}.address-panel{border-left:2px solid var(--rose);padding-left:25px;display:flex;flex-direction:column;gap:12px}.address-panel>span:first-child{color:var(--sand);font-size:.8rem}.address-panel address{font:400 2.4rem/1.14 var(--serif)}.address-panel a{text-underline-offset:5px;color:#f7b2ce;font-size:.84rem}.hours-note{font-size:.75rem;color:#edc1d4;border:1px dashed var(--rose);padding:8px;align-self:flex-start;margin-top:8px}
.estimate{background:var(--cream);color:var(--ink)}.estimate-heading{max-width:800px;margin-bottom:50px}.estimate-heading h2{font-size:clamp(3.5rem,7vw,7rem)}.estimate-heading p:last-child{margin-top:20px;max-width:590px;color:#615454}.estimate-form{max-width:950px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.estimate-form label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:.82rem}.estimate-form input,.estimate-form select,.estimate-form textarea{color:var(--ink);background:#faf7f1;border:1px solid #9b8f88;padding:15px;border-radius:0;width:100%;min-height:53px;outline-offset:3px}.estimate-form input:focus,.estimate-form select:focus,.estimate-form textarea:focus{border-color:#b62b6d;outline:1px solid #b62b6d}.textarea-label{margin-top:22px}.estimate-form textarea{resize:vertical}.form-actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:25px}.direct-call{display:flex;flex-direction:column;font-size:.8rem;color:#6b5f59}.direct-call strong{font-size:1.04rem;text-decoration:underline;text-underline-offset:4px;color:var(--ink)}.form-explainer{font-size:.78rem;color:#655754;margin-top:20px}.sms-fallback{margin-top:22px;background:#faf7f1;border:1px solid #b1a39b;padding:18px;max-width:620px}.sms-fallback p{margin-bottom:10px}.sms-fallback button{background:var(--ink);color:var(--cream);border:0;padding:10px 17px;margin-top:10px}
.footer{padding:55px var(--gutter) 25px}.footer-inner{display:flex;justify-content:space-between;gap:40px}.footer-inner img{width:min(320px,100%);height:auto}.footer-inner p{color:#bcb0ac;max-width:350px;margin-top:15px;font-size:.84rem}.footer-inner>div:last-child{display:flex;flex-direction:column;gap:10px;font-size:.82rem}.footer-inner>div:last-child>a{font:400 2rem var(--serif)}.footer-inner>div:last-child>span{color:#c6b9b2}.footer-bottom{display:flex;gap:20px;justify-content:space-between;padding-top:27px;margin-top:60px;border-top:1px solid var(--line);font-size:.74rem;color:#afa5a0}.footer-bottom a{margin-left:20px}.mobile-call{display:none}
@media (max-width:1090px){.site-nav{gap:16px}.header-phone{padding:12px}.hero h1{font-size:clamp(4rem,9vw,7rem)}}
@media (max-width:850px){.site-nav{display:none}.header-phone{display:none}.menu-button{width:44px;height:44px;border:1px solid var(--line);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.menu-button span{width:19px;height:2px;background:var(--cream)}.mobile-menu{position:absolute;display:flex;flex-direction:column;top:100%;left:0;right:0;background:#222123;padding:15px var(--gutter) 20px;border-bottom:1px solid var(--line)}.mobile-menu[hidden]{display:none}.mobile-menu a{padding:13px;border-bottom:1px solid var(--line)}.hero h1{font-size:clamp(4rem,10.4vw,7rem)}.intro{grid-template-columns:1fr}.intro-text{padding:0}.services-heading{display:block}.services-heading>p{margin-top:20px}.services-detail{gap:32px;grid-template-columns:1fr}.compare-top{display:block}.compare-description{width:auto;max-width:600px;margin-top:22px}.where-inner{gap:40px;grid-template-columns:1fr}.review-grid{gap:8px}.review-grid figure{padding:24px 18px}.review-grid blockquote{font-size:1.7rem}}
@media (max-width:680px){.header{min-height:62px}.brand{width:175px}.demo-band{font-size:.67rem}.hero{min-height:calc(100svh - 97px);padding:110px var(--gutter) 80px;align-items:flex-end}.hero-image{width:100%;object-position:center 40%}.hero-shade{background:linear-gradient(0deg,rgba(25,25,26,.98) 3%,rgba(25,25,26,.82) 42%,rgba(25,25,26,.26) 83%),linear-gradient(90deg,rgba(25,25,26,.45),transparent)}.hero h1{font-size:clamp(3.9rem,15vw,7rem)}.hero-copy{font-size:.98rem;margin-top:20px}.hero-actions{gap:8px}.hero-actions .btn{font-size:.85rem}.hero-side-note{display:none}.facts{grid-template-columns:repeat(2,1fr)}.facts>div{padding:18px var(--gutter)!important}.facts>div:nth-child(2){border-right:0}.facts>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.section-pad{padding-block:75px}.intro h2,.services h2,.comparison h2,.experience h2,.reviews h2,.where h2,.estimate h2{font-size:clamp(3rem,11vw,4.8rem)}.service-grid{display:block}.service-grid article{margin-bottom:15px}.service-feature img,.service-small img{height:auto;min-height:0;aspect-ratio:1.2;object-fit:cover}.service-feature img{aspect-ratio:1.1}.services-heading{margin-bottom:35px}.services-detail{margin-top:38px}.services-detail ul{grid-template-columns:1fr 1fr;gap:10px 14px}.services-detail li{font-size:.8rem}.comparison-frame{aspect-ratio:4/5}.compare-label{top:12px}.compare-handle{width:50px;height:50px}.compare-bottom{align-items:start}.compare-bottom p{max-width:80%}.experience{grid-template-columns:1fr;gap:52px}.reviews-intro{display:block}.review-number{margin-top:30px}.review-grid{grid-template-columns:1fr}.review-grid figure{min-height:185px}.review-grid blockquote{font-size:2.1rem}.cities{font-size:1.05rem!important}.form-grid{grid-template-columns:1fr}.footer-inner,.footer-bottom{display:block}.footer-inner>div:last-child{margin-top:32px}.footer-bottom div{margin-top:18px}.footer-bottom a:first-child{margin-left:0}.footer{padding-bottom:95px}.mobile-call{display:flex;align-items:center;justify-content:space-between;position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--rose);color:var(--ink);font-size:.87rem;font-weight:700;text-decoration:none;padding:15px var(--gutter);box-shadow:0 -2px 25px #0004}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero .hero-pre,.hero h1,.hero-copy,.hero-actions,.hero-rating{animation:none}.btn,.service-grid img{transition:none}}
/* Secondary legal and not-found pages */
.legal-main{max-width:960px;margin:auto;padding:clamp(65px,10vw,130px) var(--gutter);color:var(--cream)}.legal-main h1{font:400 clamp(3.7rem,8vw,7rem)/.96 var(--serif);margin-bottom:28px}.legal-main h2{font:400 2.2rem var(--serif);margin:35px 0 9px}.legal-main p,.legal-main li{color:#d7cbc4;margin:12px 0;line-height:1.8}.legal-main a{color:#f7aed0;text-underline-offset:4px}.legal-main .lang-separator{border-top:1px solid var(--line);margin:70px 0}.legal-main .legal-preface{font-size:.86rem;color:#d3a4b9}.back-link{display:inline-block;color:var(--ink);background:var(--rose);padding:12px 18px;text-decoration:none;font-weight:700;margin-top:30px}
