/* Construval 2000 — diseño editorial, sin fuentes ni librerías externas. */
:root{--paper:#fbf8f8;--white:#fff;--ink:#231d1f;--muted:#706166;--clay:#cf2027;--clay-dark:#ab171d;--sand:#f5ecec;--line:#eadbdd;--forest:#7c1118;--soft:#f2d8da;--serif:Georgia,"Times New Roman",serif;--sans:"Avenir Next",Avenir,"Segoe UI",Helvetica,Arial,sans-serif;--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:102px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.menu-open,body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}img{max-width:100%;display:block}svg{flex-shrink:0}p,h1,h2,h3,h4,figure{margin:0}h1,h2,h3,h4{font-weight:500}p{text-wrap:pretty}h1,h2{text-wrap:balance}button{color:inherit}::selection{color:white;background:var(--clay)}:focus-visible{outline:3px solid var(--clay);outline-offset:5px}[hidden]{display:none!important}.icon{width:22px;height:22px;vertical-align:middle}.container{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding:108px 0}.eyebrow{display:flex;align-items:center;gap:12px;font-size:10px;font-weight:650;line-height:1.5;letter-spacing:.18em;text-transform:uppercase;margin-bottom:25px}.eyebrow .line{height:1px;width:30px;background:currentColor}.section-no{color:var(--clay);letter-spacing:.04em;margin-right:6px}h2{font-size:clamp(36px,3.55vw,54px);line-height:1.13;letter-spacing:-.04em}h2 em,h1 em{font-family:var(--serif);font-weight:400;letter-spacing:-.05em}.button{min-height:52px;padding:13px 23px;display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid transparent;font-size:12px;font-weight:600;letter-spacing:.01em;line-height:1.4;transition:background .2s,color .2s,transform .2s;white-space:normal}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--forest);color:#fff}.button-dark:hover{background:#620c12}.button-clay{background:var(--clay);color:white}.button-clay:hover{background:var(--clay-dark)}.button-outline{border-color:#9b9e93;background:transparent;color:var(--ink)}.button-outline:hover{background:var(--forest);color:#fff}.text-link{display:inline-flex;align-items:center;gap:22px;font-size:12px;font-weight:600;line-height:1.6;min-height:44px}.text-link .icon{width:20px;height:20px;transition:transform .2s}.text-link:hover .icon{transform:translate(3px,-2px)}.skip-link{position:fixed;top:-80px;left:16px;background:var(--forest);color:white;padding:12px 18px;z-index:300}.skip-link:focus{top:12px}.image-surface{background:var(--sand);overflow:hidden}.image-surface>img{width:100%;height:100%;object-fit:cover}.image-surface.image-unavailable>img{opacity:0}
/* Cabecera */
.utility{background:var(--forest);color:#ebeee5;font-size:10px;letter-spacing:.025em}.utility-inner{display:flex;justify-content:space-between;align-items:center;min-height:33px}.utility-inner>span,.utility a{display:flex;align-items:center;gap:8px}.utility .icon{width:13px;height:13px}.utility a{color:#c9d1c9}.utility a span{color:white;margin-left:10px}.site-header{position:sticky;top:0;z-index:100;background:rgba(251,248,248,.97);border-bottom:1px solid rgba(124,17,24,.08);backdrop-filter:blur(14px)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;height:93px}.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{width:43px;height:43px}.brand-type{font-size:16px;letter-spacing:.025em;font-weight:600;line-height:1.2;white-space:nowrap}.brand-type b{font-weight:400}.brand-type small{display:block;font-size:7px;letter-spacing:.23em;font-weight:500;margin-top:7px}.desktop-nav{display:flex;gap:27px;align-items:center}.desktop-nav a{font-size:11px;position:relative;padding:10px 0}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:3px;height:1px;background:var(--clay);transition:right .2s}.desktop-nav a:hover:after{right:0}.header-cta{min-height:43px;font-size:11px;padding:10px 18px;gap:18px}.header-cta .icon{width:16px;height:16px}.menu-toggle{display:none;min-width:46px;height:46px;background:transparent;border:1px solid var(--line);padding:12px}.menu-toggle span{display:block;height:1px;background:var(--ink);margin:6px 0;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-menu{position:fixed;top:77px;left:0;right:0;background:var(--paper);padding:12px 24px 32px;border-bottom:1px solid var(--line);box-shadow:0 20px 35px #17231d22;max-height:calc(100dvh - 80px);overflow-y:auto}.mobile-menu a{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:18px}.mobile-menu a:last-child{font-size:14px;color:var(--clay);border:0}
/* Portada */
.hero{display:grid;grid-template-columns:46% 54%;min-height:655px;max-width:1920px;margin:0 auto}.hero-copy{padding:65px 45px 44px max(56px,calc((100vw - 1280px)/2));display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero .eyebrow{font-size:9px;margin-bottom:25px}.hero h1{font-size:clamp(60px,5.7vw,90px);font-weight:450;line-height:.99;letter-spacing:-.065em;margin-bottom:27px}.hero h1 em{font-size:.98em;color:var(--clay);white-space:nowrap;line-height:1.12}.hero-description{font-size:16px;line-height:1.75;letter-spacing:-.015em}.hero-location{color:var(--muted);font-size:12px;margin-top:10px}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:28px}.hero-actions .button{font-size:11px;gap:22px}.hero-actions .text-link{font-size:11px;gap:20px}.hero-actions .text-link .icon{width:15px;height:15px}.hero-note{margin-top:32px;display:flex;align-items:center;gap:13px}.small-circle{border:1px solid #cfcfc3;border-radius:50%;display:grid;place-items:center;width:37px;height:37px}.small-circle .icon{width:18px;height:18px}.hero-note p{font-size:10px;line-height:1.7;font-weight:600}.hero-note p span{display:block;color:var(--muted);font-size:9px;font-weight:400}.hero-visual{position:relative;min-width:0}.hero-visual>img{position:absolute;inset:0;object-position:53% center;filter:saturate(.68) contrast(.94)}.hero-image-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(22,38,31,.64))}.hero-image-title{position:absolute;left:39px;bottom:71px;color:white}.hero-image-title>span{font-size:9px;letter-spacing:.21em}.hero-image-title p{font-size:31px;letter-spacing:-.035em;margin-top:4px}.hero-image-title em{font-family:var(--serif);font-weight:400}.hero-visual figcaption{position:absolute;left:39px;bottom:25px;right:86px;color:#fff;font-size:8px;line-height:1.6;max-width:360px}.hero-down{position:absolute;right:30px;bottom:29px;color:#fff;width:44px;height:44px;border:1px solid #ffffff70;display:grid;place-items:center;border-radius:50%;transition:background .2s}.hero-down:hover{background:#ffffff25}.hero-down .icon{width:19px;height:19px}.region-strip{padding:27px 0;border-bottom:1px solid var(--line)}.region-strip .container{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px;font-weight:450}.strip-label{font-size:8px;letter-spacing:.15em;color:var(--muted);margin-right:40px}.region-strip i{display:block;width:3px;height:3px;background:#91988b;border-radius:50%}
/* Servicios */
.section-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:64px;margin-bottom:48px}.section-intro>div:first-child{flex:1}.intro-copy{font-size:14px;color:var(--muted);max-width:350px;line-height:1.9;flex:0 1 350px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.service-card{display:flex;flex-direction:column;padding:36px 32px 23px;min-height:330px;border-right:1px solid var(--line);transition:background .25s}.service-card:last-child{border:0}.service-card:hover{background:#f8efef}.service-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:35px}.service-icon{width:37px;height:37px;color:var(--clay)}.service-top>span{font-size:10px;color:#969a91}.service-card h3{font-size:26px;letter-spacing:-.035em;margin-bottom:12px}.service-card p{font-size:12px;color:var(--muted);line-height:1.9;max-width:290px;margin-bottom:23px}.service-rule{margin-top:auto;display:block;height:1px;background:var(--line)}.service-card .text-link{justify-content:space-between;padding-top:16px;min-height:54px;font-size:11px}
/* Galería */
.gallery-section{background:#f8f2f2}.gallery-intro{align-items:flex-end}.gallery-intro-right{max-width:360px}.reference-note{margin-top:16px;font-size:10px;line-height:1.75;color:#6c746c;padding-left:12px;border-left:2px solid #b7ac95}.gallery-toolbar{border-bottom:1px solid #cfcfc2;margin-bottom:30px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:20px}.gallery-filters{display:flex;gap:7px;flex-wrap:wrap}.filter-button{border:1px solid transparent;border-radius:0;background:transparent;font-size:11px;min-height:39px;padding:9px 15px;transition:background .2s}.filter-button:hover{background:#e3dfd5}.filter-button.is-active{background:var(--forest);color:white}.gallery-count{font-size:10px;color:var(--muted);white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project-card{min-width:0}.project-open{display:block}.project-open:focus-visible{outline-offset:8px}.project-image{position:relative;aspect-ratio:4/4.7}.project-image>img{transition:transform .7s var(--ease);filter:saturate(.72)}.project-card:hover .project-image>img{transform:scale(1.045)}.project-card:nth-child(2) .project-image>img{object-position:43% center}.image-tag{position:absolute;left:17px;top:17px;background:rgba(248,246,241,.94);padding:5px 9px;font-size:8px;letter-spacing:.1em;text-transform:uppercase}.project-plus{position:absolute;right:15px;bottom:15px;width:37px;height:37px;display:grid;place-items:center;background:var(--paper);border-radius:50%;transition:background .2s,color .2s}.project-plus .icon{width:18px;height:18px}.project-open:hover .project-plus{background:var(--forest);color:white}.project-info{padding:20px 0 0}.project-category{display:block;font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.project-info h3{font-size:20px;letter-spacing:-.035em;line-height:1.3}.project-detail{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:12px}.project-detail .icon{width:16px;height:16px}.gallery-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:42px;padding-top:20px;border-top:1px solid #d4d3c8;font-size:12px}.gallery-empty{padding:40px;border:1px dashed #a9b0a1;text-align:center;font-size:14px}
/* Nosotros */
.about{background:var(--forest);color:var(--paper);position:relative;overflow:hidden}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px}.about .section-no{color:#c4a486}.about .eyebrow{color:#cdd6ca}.about h2{font-size:clamp(46px,5.1vw,73px);line-height:1.06}.about h2 em{color:#c7b599}.about-heading{position:relative;display:flex;flex-direction:column;align-items:flex-start}.light-link{margin-top:39px;color:#e0e5d9;border-bottom:1px solid #a5b1a266;padding-bottom:9px}.about-content{padding-top:51px}.about-lead{font-size:23px;line-height:1.55;letter-spacing:-.025em;margin-bottom:20px;font-weight:400}.about-lead strong{font-weight:400;color:#d9c6a9}.about-content>p:not(.about-lead){font-size:13px;line-height:1.9;color:#c1cbbf}.value-list{margin-top:36px}.value-list>div{display:flex;gap:24px;border-top:1px solid #526357;padding:20px 0}.value-list>div>span{font-size:10px;padding-top:4px;color:#c6b79b}.value-list h3{font-size:15px;font-weight:500;margin-bottom:5px}.value-list p{font-size:11px;color:#bdc8ba;line-height:1.7}.architectural-lines{position:absolute;left:0;bottom:-10px;width:220px;height:105px;opacity:.22;pointer-events:none}.architectural-lines span{position:absolute;border:1px solid #cbd4bf;width:90px;height:90px;transform:skewY(-22deg)}.architectural-lines span:nth-child(2){left:55px;top:20px}.architectural-lines span:nth-child(3){left:110px;top:0}
/* Proceso */
.process .section-intro{margin-bottom:48px}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}.process-number{display:flex;align-items:center;gap:25px;color:var(--clay);font-family:var(--serif);font-size:31px;font-style:italic;margin-bottom:24px}.process-number span{display:block;height:1px;background:var(--line);flex:1}.process-grid h3{font-size:19px;letter-spacing:-.02em;margin-bottom:10px}.process-grid p{max-width:300px;color:var(--muted);font-size:12px;line-height:1.85}
/* Zona */
.area-section{padding:82px 0;background:var(--sand);border-top:1px solid #ddd9cc;border-bottom:1px solid #ddd9cc}.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.area-grid>div>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:355px;margin:25px 0 12px;line-height:1.9}.towns-panel{background:var(--paper);padding:35px}.towns-heading{display:flex;gap:12px;align-items:center;margin-bottom:22px;font-size:8px;font-weight:600;letter-spacing:.12em}.towns-heading .icon{width:18px;height:18px;color:var(--clay)}.towns-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.towns-grid a{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);font-size:19px;letter-spacing:-.03em}.towns-grid a .icon{width:16px;height:16px;color:var(--clay);transition:transform .2s}.towns-grid a:hover .icon{transform:translate(2px,-2px)}.towns-panel>p{font-size:9px!important;margin:20px 0 0!important}
/* FAQ */
.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:110px}.faq-grid>div>p:not(.eyebrow){font-size:12px;color:var(--muted);margin:24px 0 13px}.faq-list{padding-top:11px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:22px;list-style:none;cursor:pointer;padding:23px 0;font-size:14px;letter-spacing:-.015em}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary .icon{width:18px;height:18px;transition:transform .2s}.faq-list details[open] summary .icon{transform:rotate(45deg)}.faq-list details p{font-size:12px;color:var(--muted);line-height:1.9;padding:0 24px 24px 0}
/* Contacto */
.contact-section{background:#e5e4d9;padding:94px 0}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:85px;align-items:center}.contact-copy h2{font-size:clamp(45px,5.2vw,72px);line-height:1.04}.contact-copy h2 em{color:var(--clay)}.contact-copy>p:not(.eyebrow){font-size:14px;color:var(--muted);margin:29px 0 28px}.contact-phone{display:flex;align-items:center;justify-content:space-between;max-width:317px;font-size:32px;letter-spacing:-.04em;padding-bottom:11px;border-bottom:1px solid #b6baac}.contact-phone .icon{width:24px;height:24px}.contact-email{display:inline-block;font-size:13px;margin-top:14px}.contact-location{display:flex;gap:8px;align-items:center;font-size:10px;color:var(--muted);margin-top:35px}.contact-location .icon{width:16px;height:16px}.contact-form-card{background:var(--paper);padding:37px}.form-heading{display:flex;gap:13px;align-items:center;margin-bottom:29px}.form-icon{width:43px;height:43px;display:grid;place-items:center;background:#e5e9df;border-radius:50%}.form-heading h3{font-size:20px;letter-spacing:-.03em;line-height:1.3}.form-heading p{font-size:11px;color:var(--muted);margin-top:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;min-width:0}.field label{font-size:10px;font-weight:600}.field label span{font-weight:400;color:var(--muted);font-size:9px}.field input,.field select,.field textarea{width:100%;border:1px solid #d4d6c9;border-radius:0;background:transparent;padding:12px;color:var(--ink);font-size:12px;min-height:45px;line-height:1.5}.field textarea{resize:vertical;min-height:110px;max-height:350px}.field input::placeholder,.field textarea::placeholder{color:#83867c;opacity:1}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--forest)}.field-help{font-size:9px;color:var(--muted)}.service-choices{padding:0;margin:0 0 22px;border:0;display:flex;gap:7px;flex-wrap:wrap}.service-choices legend{font-size:10px;font-weight:600;margin-bottom:9px;padding:0}.service-choices label{position:relative}.service-choices input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}.service-choices label span{display:block;border:1px solid #d4d6c9;font-size:10px;padding:9px 11px;cursor:pointer;transition:background .2s,color .2s}.service-choices input:checked+span{background:var(--forest);color:#fff;border-color:var(--forest)}.service-choices input:focus-visible+span{outline:3px solid var(--clay);outline-offset:2px}.form-submit{display:flex;justify-content:space-between;width:100%;font-size:12px}.form-notice{font-size:9px;line-height:1.8;color:var(--muted);margin-top:13px}.form-notice a{text-decoration:underline;text-underline-offset:2px}.message-preview{margin-top:25px;padding:20px;background:#e8edde;border:1px solid #b7c1ac}.message-preview h4{font-size:16px;margin-bottom:12px}.message-preview>p{white-space:pre-wrap;font-size:12px;line-height:1.85;margin-bottom:17px;overflow-wrap:anywhere}.message-preview .button{width:100%;font-size:11px}.message-preview>span{display:block;margin-top:10px;font-size:9px}.contact-form-card noscript p{padding:12px;font-size:12px;background:var(--sand)}.contact-form-card noscript a{text-decoration:underline}
/* Pie */
.site-footer{background:#20322b;color:#eef0e7;padding-top:67px;overflow:hidden}.footer-top{display:grid;grid-template-columns:1.7fr .75fr 1fr;gap:40px;padding-bottom:53px}.site-footer .brand-type{font-size:17px}.footer-top>div>p{font-family:var(--serif);font-size:20px;font-style:italic;line-height:1.45;color:#c1cbbc;margin-top:21px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-size:11px}.footer-links>span{font-size:8px;letter-spacing:.18em;color:#9cab99;margin-bottom:10px}.footer-links a{min-height:25px;color:#dce4d7}.footer-links a:hover{color:white;text-decoration:underline;text-underline-offset:4px}.footer-links .icon{width:14px;height:14px;margin-left:10px}.footer-wordmark{font-size:clamp(42px,8.68vw,139px);font-weight:500;line-height:1.15;letter-spacing:-.065em;white-space:nowrap;color:#91a28c40;display:flex;justify-content:space-between;border-bottom:1px solid #455447;padding-bottom:21px;pointer-events:none}.footer-wordmark>span{font-weight:300;color:#bcc6b139}.footer-bottom{min-height:80px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:9px;color:#afbdab;padding:20px 0 26px}.footer-bottom nav{display:flex;gap:20px}.footer-bottom a:hover{color:#fff}.back-top{display:flex;align-items:center;gap:12px}.back-top .icon{width:15px;height:15px;transform:rotate(180deg)}.mobile-contact-bar{display:none}
/* Visor accesible */
.gallery-dialog{position:fixed;width:min(1030px,calc(100vw - 48px));max-height:calc(100dvh - 44px);margin:auto;padding:0;border:0;background:var(--paper);color:var(--ink);overflow:auto;box-shadow:0 24px 80px #0006}.gallery-dialog::backdrop{background:#111e18d9;backdrop-filter:blur(5px)}.dialog-head{height:59px;display:flex;align-items:center;justify-content:space-between;padding:9px 17px 9px 24px;border-bottom:1px solid var(--line)}.dialog-head>span{font-size:10px;letter-spacing:.12em;text-transform:uppercase}.icon-button{width:40px;height:40px;border:1px solid #c8cdc0;border-radius:50%;background:var(--paper);display:grid;place-items:center}.icon-button .icon{width:20px;height:20px}.icon-button:hover{background:var(--sand)}.dialog-image-wrap{height:min(56vh,570px);position:relative}.dialog-image-wrap>img{object-fit:contain;background:#e9e7dc}.dialog-prev,.dialog-next{position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 14px #0002}.dialog-prev{left:16px}.dialog-next{right:16px}.dialog-caption{padding:24px;display:flex;gap:22px;justify-content:space-between;align-items:flex-start}.dialog-caption h2{font-size:27px;line-height:1.2;letter-spacing:-.025em}.dialog-caption p{font-size:11px;line-height:1.8;color:var(--muted);max-width:740px;margin-top:10px}.dialog-caption #dialog-category{font-size:9px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 6px;color:var(--clay)}.dialog-caption>span{font-size:11px;white-space:nowrap}
/* Páginas auxiliares */
.simple-header{border-bottom:1px solid var(--line);padding:23px 0}.simple-header .container{display:flex;justify-content:space-between;align-items:center}.legal-page{max-width:830px;margin:auto;padding:75px 30px 100px}.legal-page h1{font-size:45px;line-height:1.1;letter-spacing:-.04em;margin-bottom:20px}.legal-page h2{font-size:23px;margin:35px 0 12px;letter-spacing:-.025em}.legal-page p,.legal-page li{font-size:14px;color:var(--muted);margin-bottom:14px;line-height:1.9}.legal-page a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.legal-page ul{padding-left:20px}.legal-warning{padding:22px;background:#eee4d2;border-left:3px solid var(--clay);margin:25px 0}.legal-warning p{color:var(--ink);margin-bottom:0}.simple-footer{padding:26px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
/* Movimiento discreto, nunca oculta contenido para usuarios sin JS */
@media (prefers-reduced-motion:no-preference){.hero-copy{animation:hero-in .85s var(--ease) both}.hero-image-title{animation:hero-in 1s .12s var(--ease) both}@keyframes hero-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}}
/* Adaptación */
@media(min-width:1600px){.hero-copy{padding-left:max(56px,calc((100vw - 1380px)/2))}.hero{min-height:750px}.hero-actions{flex-direction:row;align-items:center;gap:23px}.hero-actions .text-link{font-size:10px}.hero-note{margin-top:45px}}
@media(max-width:1200px){.container{width:calc(100% - 72px)}.header-inner{gap:20px}.desktop-nav{gap:20px}.brand-type{font-size:14px}.brand-mark{width:38px;height:38px}.header-cta{font-size:10px;padding:11px 14px}.hero-copy{padding-left:36px;padding-right:25px}.hero h1{font-size:clamp(53px,5.8vw,80px)}.hero h1 em{font-size:.94em}.strip-label{margin-right:10px}.region-strip .container{font-size:12px}.section-intro{gap:35px}.about-grid{gap:65px}.faq-grid{gap:70px}.contact-grid{gap:55px}.contact-form-card{padding:29px}.service-card{padding:29px 25px 20px}.service-card h3{font-size:24px}.project-grid{gap:20px}.project-info h3{font-size:18px}.area-grid{gap:60px}.service-choices label span{padding:9px;font-size:9px}}
@media(max-width:1000px){.desktop-nav{gap:16px}.desktop-nav a{font-size:10px}.header-inner{height:82px}.brand{gap:8px}.brand-type{font-size:12px}.brand-type small{font-size:6px}.brand-mark{width:34px;height:34px}.header-cta{gap:8px}.hero{min-height:630px;grid-template-columns:47% 53%}.hero-copy{padding:45px 25px 35px 36px}.hero h1{font-size:58px}.hero-description{font-size:14px}.hero-image-title{left:27px}.hero-visual figcaption{left:27px;right:75px;font-size:7px}.hero-note{margin-top:22px}.region-strip .container{gap:9px}.strip-label{font-size:7px}.section{padding:80px 0}.section-intro{gap:35px}.intro-copy{font-size:12px;max-width:285px}.service-grid{border:0;gap:12px}.service-card{border:1px solid var(--line);padding:25px 20px 18px}.service-card:last-child{border:1px solid var(--line)}.service-card h3{font-size:22px}.service-card p{font-size:11px}.gallery-intro-right{max-width:300px}.project-image{aspect-ratio:3/4}.about-grid{gap:50px}.about-lead{font-size:20px}.about-content{padding-top:33px}.architectural-lines{bottom:10px}.process-grid{gap:25px}.process-grid h3{font-size:17px}.area-grid{gap:45px}.towns-panel{padding:25px}.towns-grid a{font-size:18px}.faq-grid{gap:50px}.faq-list summary{font-size:12px}.contact-grid{gap:40px;grid-template-columns:.8fr 1.2fr}.contact-copy h2{font-size:51px}.contact-phone{font-size:27px}.contact-form-card{padding:26px}.form-row{grid-template-columns:1fr;gap:0}.footer-top{gap:30px;grid-template-columns:1.3fr .65fr 1fr}.footer-links{font-size:10px}}
@media(max-width:800px){.container{width:calc(100% - 48px)}.utility-inner{justify-content:center;min-height:29px}.utility-inner>a{display:none}.utility{font-size:9px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:block}.header-inner{height:77px}.brand-type{font-size:15px}.brand-type small{font-size:6.5px}.brand-mark{width:39px;height:39px}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:51px 24px 42px;align-items:flex-start}.hero .eyebrow{font-size:8px;margin-bottom:22px}.hero h1{font-size:clamp(62px,10vw,83px);margin-bottom:23px;line-height:1.01}.hero h1 em{font-size:.98em}.hero-description{font-size:15px}.hero-location{font-size:11px;margin-top:8px}.hero-actions{margin-top:25px;flex-direction:row;align-items:center;gap:23px}.hero-actions .button{font-size:11px;min-height:50px;padding-inline:18px}.hero-actions .text-link{font-size:10px;gap:11px}.hero-note{display:none}.hero-visual{height:450px}.hero-visual>img{object-position:center 50%}.hero-image-title{left:26px;bottom:64px}.hero-image-title p{font-size:30px}.hero-visual figcaption{left:26px;bottom:24px;font-size:8px}.region-strip{padding:20px 0}.region-strip .container{justify-content:center;gap:10px 19px;font-size:12px}.strip-label{flex-basis:100%;text-align:center;font-size:7px;margin-right:0}.region-strip i{display:none}.section{padding:72px 0}.section-intro{flex-direction:column;align-items:flex-start;gap:23px;margin-bottom:34px}.section-intro>div:first-child{flex:auto}.intro-copy{flex:auto;max-width:490px;font-size:13px}.eyebrow{font-size:8px;gap:8px;margin-bottom:20px}h2{font-size:40px}.service-grid{grid-template-columns:1fr;gap:0;border:1px solid var(--line)}.service-card,.service-card:last-child{border:0;border-bottom:1px solid var(--line);min-height:0;padding:28px 25px 21px}.service-card:last-child{border-bottom:0}.service-top{margin-bottom:22px}.service-icon{width:34px;height:34px}.service-card h3{font-size:27px}.service-card p{font-size:13px;max-width:480px;margin-bottom:20px}.service-card .text-link{font-size:12px}.gallery-intro-right{max-width:490px}.reference-note{font-size:10px;max-width:470px}.gallery-toolbar{align-items:flex-start;gap:10px;padding-bottom:17px}.filter-button{font-size:10px;padding:9px 13px}.gallery-count{padding-top:11px;font-size:9px}.gallery-filters{gap:3px}.project-grid{grid-template-columns:1fr;gap:37px}.project-image{aspect-ratio:4/3}.project-info{padding-top:18px}.project-info h3{font-size:23px}.project-category{font-size:9px}.project-detail{font-size:10px;margin-top:10px}.image-tag{font-size:8px}.gallery-bottom{margin-top:30px;gap:12px;font-size:11px}.gallery-bottom>span{max-width:230px}.gallery-bottom .text-link{font-size:11px;gap:12px;flex-shrink:0}.about-grid{grid-template-columns:1fr;gap:35px}.about h2{font-size:56px}.light-link{margin-top:25px;font-size:12px}.about-content{padding-top:0;max-width:540px}.about-lead{font-size:23px}.about-content>p:not(.about-lead){font-size:13px}.architectural-lines{right:10px;left:auto;bottom:6px;width:190px;height:150px;opacity:.15;z-index:0}.about-heading h2,.about-heading a{position:relative;z-index:1}.value-list{margin-top:28px}.value-list h3{font-size:17px}.value-list p{font-size:12px}.process-grid{grid-template-columns:1fr;gap:31px}.process-number{margin-bottom:17px;font-size:30px;gap:20px}.process-grid h3{font-size:22px}.process-grid p{max-width:490px;font-size:13px}.process .section-intro{gap:22px;margin-bottom:34px}.process .section-intro .button{font-size:11px;min-height:46px}.area-section{padding:67px 0}.area-grid{grid-template-columns:1fr;gap:33px}.area-grid>div>p:not(.eyebrow){max-width:470px;font-size:13px;margin-top:20px}.towns-panel{padding:29px}.towns-grid a{font-size:22px}.towns-heading{font-size:8px}.towns-panel>p{font-size:10px!important}.faq-grid{grid-template-columns:1fr;gap:31px}.faq-grid>div>p:not(.eyebrow){font-size:13px;margin-top:20px}.faq-list{padding-top:0}.faq-list summary{font-size:14px;padding:22px 0}.faq-list details p{font-size:13px}.contact-section{padding:67px 0}.contact-grid{grid-template-columns:1fr;gap:38px}.contact-copy h2{font-size:62px}.contact-copy>p:not(.eyebrow){font-size:14px;margin:24px 0}.contact-phone{font-size:33px;max-width:340px}.contact-email{font-size:14px}.contact-location{margin-top:23px;font-size:11px}.contact-form-card{padding:29px}.form-row{grid-template-columns:1fr 1fr;gap:16px}.field label{font-size:11px}.field label span{font-size:9px}.field input,.field select,.field textarea{font-size:16px;padding:12px 10px}.service-choices label span{font-size:11px;padding:9px 13px}.service-choices legend{font-size:11px}.form-notice{font-size:10px}.field-help{font-size:10px}.form-heading{margin-bottom:25px}.form-heading h3{font-size:21px}.form-heading p{font-size:12px}.message-preview>p{font-size:13px}.site-footer{padding-top:53px;padding-bottom:73px}.footer-top{grid-template-columns:1fr 1fr;gap:33px 24px;padding-bottom:33px}.footer-top>div:first-child{grid-column:1/-1}.footer-top>div>p{font-size:20px}.footer-links{font-size:11px;gap:7px}.footer-links>span{font-size:8px;margin-bottom:8px}.footer-wordmark{font-size:8.2vw;padding-bottom:18px}.footer-bottom{flex-wrap:wrap;gap:16px;font-size:9px;padding-bottom:18px}.footer-bottom nav{gap:17px}.back-top{display:none}.mobile-contact-bar{display:grid;grid-template-columns:1fr 1.25fr;position:fixed;bottom:0;left:0;right:0;z-index:110;background:var(--paper);padding:9px 13px calc(9px + env(safe-area-inset-bottom));gap:9px;border-top:1px solid var(--line);box-shadow:0 -3px 14px #1a27160a}.mobile-contact-bar>a{display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;min-height:43px;border:1px solid var(--forest)}.mobile-contact-bar>a:last-child{background:var(--forest);color:white}.mobile-contact-bar .icon{width:20px;height:20px}.gallery-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 28px);z-index:200}.dialog-head{height:54px}.dialog-image-wrap{height:43vh}.dialog-caption{padding:20px}.dialog-caption h2{font-size:24px}.dialog-caption p{font-size:12px}.dialog-head>span{font-size:9px}.legal-page{padding:52px 24px 85px}.legal-page h1{font-size:37px}.simple-header .container{gap:18px}.simple-header .text-link{font-size:11px;gap:8px}}
@media(max-width:480px){.hero-copy{padding-top:42px}.hero h1{font-size:59px}.hero h1 em{font-size:.98em}.hero-actions{flex-direction:column;align-items:flex-start;gap:8px}.hero-actions .text-link{min-height:40px}.hero-actions .button{font-size:12px;padding:15px 20px;gap:25px}.hero-visual{height:350px}.hero-image-title p{font-size:28px}.hero-visual figcaption{font-size:7px;right:72px;max-width:250px}.hero-down{width:38px;height:38px;right:22px;bottom:25px}.region-strip .container{font-size:11px;gap:10px 16px}.section{padding:62px 0}.section-intro{gap:21px}h2{font-size:36px}.service-grid{margin-inline:0}.service-card{padding:27px 23px 18px}.gallery-count{display:none}.gallery-toolbar{gap:0}.filter-button{font-size:9px;padding:10px 12px}.gallery-filters{gap:2px}.project-image{aspect-ratio:1/1.08}.project-info h3{font-size:23px}.project-grid{gap:32px}.gallery-bottom{align-items:flex-start;gap:20px}.gallery-bottom>span{max-width:195px}.gallery-bottom .text-link{min-height:35px;font-size:10px;gap:7px}.about h2{font-size:53px}.about-lead{font-size:22px}.architectural-lines{width:150px;right:30px;bottom:35px;opacity:.13}.architectural-lines span{width:75px;height:75px}.area-grid{gap:29px}.towns-panel{padding:25px 22px}.towns-grid{gap:0 22px}.towns-grid a{font-size:21px}.towns-heading{font-size:7px;letter-spacing:.1em;gap:8px}.faq-grid{gap:25px}.faq-list summary{font-size:13px}.contact-copy h2{font-size:57px}.contact-form-card{padding:26px 22px}.form-row{grid-template-columns:1fr;gap:0}.field{margin-bottom:18px}.form-heading h3{font-size:19px}.form-heading p{font-size:11px}.form-icon{width:38px;height:38px}.service-choices{gap:6px}.service-choices label span{font-size:10px;padding:9px 10px}.form-notice{font-size:9px}.contact-phone{font-size:32px}.footer-top{grid-template-columns:.8fr 1.2fr;gap:30px 18px}.footer-links{font-size:10px}.footer-links a{overflow-wrap:anywhere}.footer-bottom{display:block}.footer-bottom nav{margin-top:12px;font-size:9px}.footer-wordmark{font-size:8vw}.dialog-caption{gap:10px}.dialog-caption h2{font-size:22px}.dialog-image-wrap{height:37vh}.dialog-caption>span{font-size:10px}.simple-header .brand-type{font-size:12px}.simple-header .brand-mark{width:33px}.simple-header .text-link .icon{display:none}}
@media(max-width:350px){.container{width:calc(100% - 36px)}.hero-copy{padding-inline:18px}.hero h1{font-size:51px}.brand-type{font-size:13px}.hero-visual{height:310px}h2{font-size:33px}.contact-form-card{padding:23px 17px}.service-choices label span{font-size:9px;padding:9px}.towns-panel{padding:23px 18px}.contact-copy h2{font-size:53px}.footer-links{font-size:9px}.utility-inner>span{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.utility,.menu-toggle,.mobile-menu,.mobile-contact-bar,.hero-actions,.gallery-filters,.gallery-toolbar,.contact-form-card,.site-footer,.gallery-dialog{display:none!important}.site-header{position:static}.hero{min-height:0}.hero-copy{padding:25px}.hero-visual{height:300px}.section{padding:35px 0}.container{width:100%}.image-surface{break-inside:avoid}.about{color:#000;background:white}.about-content>p,.value-list p{color:#333!important}a[href^="tel:"]:after{content:" (" attr(href) ")";font-size:9px}}

/* V3: fotografías reales, obras por ubicación y contacto centrado en correo. */
.image-surface { background: #e5e2d9; background-image: none; }
.hero-visual { background: #dedfd4; }
.hero-visual > img { filter: none; }
.hero-empty { position: absolute; inset: 0; padding: 38px; display: flex; flex-direction: column; justify-content: space-between; color: #586454; }
.hero-empty-kicker { font-size: 9px; letter-spacing: .19em; }
.hero-empty-bottom { padding: 18px 0 6px; border-top: 1px solid #58645440; display: flex; justify-content: space-between; gap: 18px; margin-right: 62px; font-size: 11px; line-height: 1.5; }
.hero-empty-bottom > span:last-child { color: #697464; font-size: 10px; }
.hero-visual.has-no-photo .hero-down { color: var(--forest); border-color: #58645460; }
.hero-visual.has-no-photo .hero-down:hover { background: #ffffff40; }
.hero-image-title p { font-size: 29px; max-width: 470px; line-height: 1.2; }
.region-strip .container { justify-content: flex-start; gap: 24px; }
.region-towns { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 28px; flex: 1; font-size: 12px; }
.region-strip .strip-label { margin-right: 4px; }
.strip-more { display: inline-flex; gap: 8px; align-items: center; font-size: 12px; color: var(--clay-dark); white-space: nowrap; font-weight: 600; }
.strip-more .icon { width: 15px; height: 15px; }
.service-grid { gap: 18px; border: none; }
.service-card.service-editorial { min-height: 360px; padding: 29px 32px 23px; background: #efede5; border: 1px solid #d7dacd; }
.service-card.service-editorial:last-child { border: 1px solid #d7dacd; }
.service-card.service-editorial:nth-child(2) { background: var(--forest); color: var(--paper); border-color: var(--forest); }
.service-editorial .service-top { align-items: flex-start; margin-bottom: 31px; }
.service-editorial .service-number { font-family: var(--serif); font-size: 69px; font-weight: 400; line-height: 1; letter-spacing: -.08em; color: var(--clay); }
.service-editorial .service-kicker { max-width: 110px; font-size: 8px; letter-spacing: .13em; text-align: right; padding-top: 8px; color: var(--muted); }
.service-editorial:nth-child(2) .service-number { color: #d6c1a2; }
.service-editorial:nth-child(2) .service-kicker, .service-editorial:nth-child(2) p { color: #d0d7ca; }
.service-editorial:nth-child(2) .service-rule { background: #dae0d233; }
.service-editorial h3 { font-size: 29px; }
.service-editorial p { font-size: 13px; }
.service-editorial:hover { transform: translateY(-3px); }
.service-card { transition: transform .2s ease; }
.gallery-toolbar { align-items: flex-start; }
.gallery-filters { flex-wrap: wrap; row-gap: 8px; }
.filter-button { font-size: 11px; min-height: 42px; }
.gallery-count { flex-shrink: 0; padding-top: 12px; }
.project-grid.locations-view { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px 22px; }
.location-card { min-width: 0; }
.location-open { display: block; width: 100%; padding: 0; border: 0; background: none; text-align: left; }
.location-image { aspect-ratio: 1.6; position: relative; }
.location-image > img { transition: transform .5s ease; }
.location-open:hover .location-image > img { transform: scale(1.025); }
.location-index { position: absolute; top: 19px; left: 21px; color: #626d60; font-size: 9px; letter-spacing: .1em; }
.location-image:has(img) .location-index { background: #f5f3eacc; padding: 5px 8px; }
.empty-photo-caption { position: absolute; bottom: 19px; left: 21px; right: 21px; font-size: 10px; color: #626d60; }
.location-image.has-image .empty-photo-caption { display: none; }
.location-info { display: flex; justify-content: space-between; align-items: center; padding-top: 18px; gap: 15px; }
.location-info h3 { font-family: var(--serif); font-size: 32px; line-height: 1.2; letter-spacing: -.035em; }
.location-info .project-category { font-size: 8px; display: block; margin-bottom: 7px; color: var(--muted); }
.location-info > .icon { width: 20px; height: 20px; }
.location-heading { margin: 0 0 28px; }
.location-heading h3 { font-family: var(--serif); font-size: 36px; line-height: 1.3; }
.location-heading p { font-size: 12px; margin-top: 5px; color: var(--muted); }
.gallery-back { border: 0; padding: 0; background: none; margin-bottom: 12px; color: var(--clay-dark); font-size: 12px; }
.gallery-empty { margin: 0; min-height: 225px; padding: 45px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; background: #e7e5dd; text-align: left; }
.empty-kicker { font-size: 8px; letter-spacing: .19em; color: var(--muted); margin-bottom: 19px; }
.gallery-empty h3 { font-family: var(--serif); font-size: 34px; line-height: 1.2; letter-spacing: -.035em; margin-bottom: 10px; }
.gallery-empty p { font-size: 13px; color: var(--muted); }
.gallery-noscript { font-size: 12px; padding-top: 16px; }
.project-image .empty-photo-caption { font-size: 11px; }
.project-open { background: none; border: 0; padding: 0; width: 100%; text-align: left; color: inherit; }
.project-open:disabled { cursor: default; opacity: 1; }
.project-image { position: relative; }
.project-card .project-image { aspect-ratio: 4/3; }
.project-card .project-info { padding: 20px 0 0; }
.project-card .project-info h3 { overflow-wrap: anywhere; }
.towns-more { grid-column: 1 / -1; }
.towns-grid .towns-more { color: var(--clay-dark); font-family: var(--sans); font-size: 16px; padding-top: 19px; padding-bottom: 6px; }
.faq-plus { font-size: 22px; font-weight: 400; }
.faq-list details[open] .faq-plus { transform: rotate(45deg); }
.contact-grid { grid-template-columns: .92fr 1.08fr; gap: 60px; }
.contact-email { display: inline-flex; align-items: center; gap: 17px; font-size: clamp(15px,1.55vw,23px); font-weight: 550; border-bottom: 1px solid #b6baac; padding-bottom: 15px; margin: 0 0 20px; max-width: 100%; overflow-wrap: anywhere; }
.contact-phone { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; border: 0; padding: 0; letter-spacing: 0; }
.contact-phone > span { font-size: 11px; font-weight: 400; color: var(--muted); }
.contact-phone > strong { font-size: 22px; font-weight: 500; letter-spacing: -.025em; }
.form-heading h3 { font-size: 24px; }
.form-icon { border-radius: 0; color: var(--forest); background: #e8e9df; }
.field label { font-size: 11px; }
.field input,.field textarea { font-size: 13px; }
.field-help { font-size: 10px; }
.form-notice { font-size: 10px; }
.message-preview > .preview-recipient { white-space: normal; font-size: 11px; margin-bottom: 12px; }
.copy-message { border: 0; background: none; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; margin-top: 9px; padding: 0; }
.copy-status { font-size: 11px!important; white-space: normal!important; margin: 0!important; }
#prepared-text { max-height: 320px; overflow-y: auto; }
.message-preview > span { font-size: 10px; }



.mobile-contact-bar { display: none!important; }
.site-footer { padding-bottom: 0; }
@media (max-width:1100px) {
 .desktop-nav { gap: 18px; }.desktop-nav a { font-size: 10px; }
 .service-card.service-editorial { padding-inline: 22px; }
 .service-editorial h3 { font-size: 26px; }
 .service-editorial .service-number { font-size: 56px; }
 .contact-grid { gap: 34px; }
 .contact-email { font-size: 15px; gap: 8px; }
 .contact-email .icon { width: 18px; }
}
@media (max-width:800px) {
 .hero-empty { padding: 27px; }
 .hero-empty-bottom { font-size: 11px; margin-right: 57px; }
 .hero-empty-bottom > span:last-child { font-size: 9px; }
 .hero-visual { height: 310px; }
 .region-strip .container { gap: 13px; }
 .region-towns { flex: 1 1 100%; font-size: 12px; gap: 9px 19px; }
 .strip-more { margin-top: 3px; }
 .service-grid { gap: 13px; border: 0; }
 .service-card.service-editorial,.service-card.service-editorial:last-child { padding: 26px; min-height: 310px; border: 1px solid #d7dacd; }
 .service-card.service-editorial:nth-child(2) { border-color: var(--forest); }
 .service-editorial .service-top { margin-bottom: 25px; }
 .service-editorial .service-number { font-size: 62px; }
 .service-editorial h3 { font-size: 30px; }
 .service-editorial p { max-width: none; font-size: 13px; }
 .project-grid.locations-view { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px 17px; }
 .location-image { aspect-ratio: 1.2; }
 .location-info h3 { font-size: 28px; }
 .location-info { padding-top: 13px; }
 .empty-photo-caption { left: 14px; right: 10px; bottom: 13px; font-size: 9px; max-width: 90%; }
 .location-index { left: 14px; top: 15px; font-size: 8px; }
 .contact-grid { grid-template-columns: 1fr; gap: 34px; }
 .contact-email { font-size: 20px; gap: 18px; margin-top: 0; }
 .contact-phone > strong { font-size: 24px; }
 .form-heading h3 { font-size: 23px; }
 .field input,.field textarea { font-size: 16px; }
 .form-notice { font-size: 11px; }
 .field-help { font-size: 11px; }
 
 .site-footer { padding-bottom: 65px; }
 .gallery-empty { padding: 29px; min-height: 220px; }
 .gallery-empty h3 { font-size: 30px; }
 .filter-button { font-size: 11px; min-height: 44px; }
}
@media (max-width:480px) {
 .hero-visual { height: 245px; }
 .hero-empty-bottom { flex-direction: column; gap: 5px; margin-right: 58px; padding-top: 14px; }
 .hero-empty-kicker { font-size: 8px; }
 .hero-location { font-size: 12px; }
 .hero-visual figcaption { font-size: 9px; }
 .hero-image-title p { font-size: 25px; }
 .project-grid.locations-view { gap: 25px 14px; }
 .location-info h3 { font-size: 26px; }
 .location-info > .icon { width: 16px; height: 16px; }
 .location-info .project-category { font-size: 7px; }
 .location-image { aspect-ratio: 1.15; }
 .empty-photo-caption { font-size: 8px; }
 .gallery-toolbar { padding-bottom: 20px; }
 .filter-button { font-size: 10px; padding: 9px 11px; }
 .contact-email { font-size: 17px; gap: 11px; }
 .contact-copy h2 { font-size: 53px; }
 .form-heading h3 { font-size: 21px; }
 .service-editorial .service-kicker { font-size: 8px; }
 .gallery-empty { padding: 25px; }
 .gallery-empty h3 { font-size: 28px; }
 .gallery-bottom > span { font-size: 12px; }
 
}
@media print {  }

.clipboard-helper { position:fixed; left:-10000px; top:0; width:1px; height:1px; }
.location-image.has-image .empty-photo-caption,.project-image.has-image .empty-photo-caption { display:none; }

.brand-mark{color:var(--clay)}
.footer-wordmark span,.hero h1 em,.section-no,.service-number,.project-category,.location-index,.contact-location,.contact-phone strong{color:var(--clay)}
.utility a{color:#f4d4d6}.utility{color:#fff}.hero-empty,.location-image,.project-image{background:linear-gradient(180deg,#fff 0%,#f6ecec 100%)}
.header-cta,.button-dark{box-shadow:0 10px 20px rgba(171,23,29,.14)}

.filter-button.is-active{background:var(--forest);color:white}
.contact{background:linear-gradient(180deg,#8e141b 0%,#741018 100%)}
.footer-top,.site-footer{background:#201718;color:#fff}
.footer-links span,.footer-bottom,.footer-links a{color:#f4e9ea}
.footer-bottom a:hover,.footer-links a:hover{color:#fff}
.footer-wordmark{color:rgba(255,255,255,.08)}
.gallery-back,.text-link,.contact-email{color:var(--forest)}
.gallery-back:hover,.text-link:hover,.contact-email:hover{color:var(--clay)}



/* V6: único acceso a WhatsApp, con etiqueta visible y círculo sin margen.
   La imagen original mide 554 px: su disco verde ocupa aproximadamente 416 px.
   El recorte CSS de 410 px queda dentro del disco, excluyendo el fondo de cuadros.
   No se carga un widget externo ni se modifica el logotipo de la imagen. */
.floating-whatsapp {
  --whatsapp-size: 50px;
  position: fixed;
  right: max(22px, calc(env(safe-area-inset-right, 0px) + 12px));
  bottom: max(22px, calc(env(safe-area-inset-bottom, 0px) + 12px));
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  width: auto;
  height: var(--whatsapp-size);
  max-width: calc(100vw - 32px);
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #17482a;
  box-shadow: none;
  overflow: visible;
  text-decoration: none;
  transition: transform .18s ease;
}
.floating-whatsapp .whatsapp-label {
  display: block;
  padding: 9px 13px;
  border: 1px solid #dce8df;
  border-radius: 999px;
  background: #fff;
  color: #17482a;
  box-shadow: 0 3px 14px #163b2012;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.floating-whatsapp .whatsapp-badge {
  position: relative;
  display: block;
  flex: 0 0 var(--whatsapp-size);
  width: var(--whatsapp-size);
  height: var(--whatsapp-size);
  border: 0;
  border-radius: 50%;
  background: #02bb39;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 4px 15px #075d2426;
}
.floating-whatsapp .whatsapp-logo {
  position: absolute;
  display: block;
  left: 50%;
  top: 50%;
  width: 135.12195122%;
  height: 135.12195122%;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  object-fit: fill;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.floating-whatsapp:hover { transform: translateY(-2px); }
.floating-whatsapp:hover .whatsapp-label { border-color: #9fc6ab; }
.floating-whatsapp:focus-visible { outline: 3px solid #17652e; outline-offset: 5px; }
body.menu-open .floating-whatsapp { visibility: hidden; }
@media (max-width: 800px) {
  .floating-whatsapp {
    --whatsapp-size: 48px;
    right: max(16px, calc(env(safe-area-inset-right, 0px) + 10px));
    bottom: max(16px, calc(env(safe-area-inset-bottom, 0px) + 10px));
    gap: 8px;
  }
  .floating-whatsapp .whatsapp-label { font-size: 11px; padding: 8px 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .floating-whatsapp { transition: none; }
  .floating-whatsapp:hover { transform: none; }
}
@media print { .floating-whatsapp { display: none !important; } }

/* V7: únicamente estados sin carpetas/fotos. El diseño V6 con fotos no cambia. */
.hero.hero--without-photo { grid-template-columns: minmax(0, 1fr); min-height: 0; }
.hero--without-photo .hero-copy {
  align-items: center; text-align: center;
  padding: 74px max(24px, calc((100vw - 1280px) / 2)) 70px;
}
.hero--without-photo .hero-actions { align-items: center; }
.hero--without-photo .hero-note { text-align: left; }
.area-grid.area-grid--no-locations { grid-template-columns: minmax(0, 1fr); }
.location-card--text-only .location-open { padding: 24px 0; border-top: 1px solid var(--line); }
.location-card--text-only .location-info { padding-top: 0; }
.project-card--text-only { border-top: 1px solid var(--line); }
.location-info h3 { overflow-wrap: anywhere; }
.gallery-empty { min-height: 0; padding: 20px 0; background: transparent; }
.gallery-empty .empty-kicker { display: none; }
.gallery-empty h3 { font-size: 26px; }
@media (max-width: 800px) {
  .hero--without-photo .hero-copy { padding: 54px 24px 48px; }
}
@media (max-width: 480px) {
  .hero--without-photo .hero-copy { padding: 44px 22px 44px; }
}

/* V9 · Formulario: una sola línea de foco, sin doble marco rojo. */
#quote-form .field input:focus,
#quote-form .field input:focus-visible,
#quote-form .field textarea:focus,
#quote-form .field textarea:focus-visible,
#quote-form .field select:focus,
#quote-form .field select:focus-visible {
  outline:none; outline-offset:0; box-shadow:none; border-color:#80676b;
}
#quote-form .field input,#quote-form .field textarea,#quote-form .field select {
  transition:border-color .18s ease; background:#fffdfd;
}
#quote-form .service-choices input:focus-visible { outline:none; box-shadow:none; }
#quote-form .service-choices input:checked+span {
  background:#f3e9ea; color:#70141d; border-color:#bc999e;
}
#quote-form .service-choices input:focus-visible+span {
  outline:1px solid #80676b; outline-offset:2px; box-shadow:none;
}
.privacy-check{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.7;margin:0 0 18px;cursor:pointer;color:var(--muted)}
.privacy-check input{margin:3px 0 0;width:15px;height:15px;flex:0 0 15px;accent-color:#7c1118;cursor:pointer}
.privacy-check input:focus-visible{outline:1px solid #80676b;outline-offset:3px}
.privacy-check a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-feedback{font-size:12px;line-height:1.8;margin-top:17px;padding:12px 14px;border-left:2px solid #b4a0a4;background:#f1ecee;color:#443b3d;overflow-wrap:anywhere}
.form-feedback[data-kind="success"]{border-color:#68816e;background:#eef3ef;color:#294032}
.form-feedback[data-kind="error"]{border-color:#aa7c68;background:#f8f0e8;color:#68482f}
.form-fallback{font-size:11px;line-height:1.8;margin-top:10px;color:var(--muted);overflow-wrap:anywhere}
.form-fallback a{text-decoration:underline;text-underline-offset:3px}
.contact-new{margin-top:10px;background:none;border:0;padding:8px 0;gap:16px}
.form-security{margin:0 0 16px;max-width:100%}
.form-security p{font-size:10px;color:var(--muted);line-height:1.7}
#turnstile-contact:empty{display:none}
#quote-form[aria-busy="true"] .form-submit .icon{opacity:.4}
#quote-form[aria-busy="true"] .submit-label::after{content:"…"}
#quote-form .form-submit:disabled{opacity:.65;transform:none;cursor:wait}
@media(max-width:800px){.privacy-check{font-size:12px}.form-feedback{font-size:13px}.form-security p{font-size:11px}}

/* V10 · Marca: dos líneas decorativas iguales, sin cambiar la composición. */
.hero .hero-eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
}
.hero .hero-eyebrow .line {
  display: block;
  flex: 0 0 30px;
  width: 30px;
  height: 1px;
  background: currentColor;
}
.hero .hero-eyebrow .eyebrow-text {
  display: block;
  white-space: nowrap;
}

/* V12: enlace de Reformas legible sobre la tarjeta roja, también al interactuar. */
.service-card.service-editorial:nth-child(2) .text-link,
.service-card.service-editorial:nth-child(2) .text-link:visited,
.service-card.service-editorial:nth-child(2) .text-link:hover,
.service-card.service-editorial:nth-child(2) .text-link:focus-visible {
  color: #ffffff;
  text-underline-offset: 4px;
}
.service-card.service-editorial:nth-child(2) .text-link:hover {
  text-decoration: underline;
}
.service-card.service-editorial:nth-child(2) .text-link:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 4px;
}

/* V14 · Marca integrada. Sin fondo, sin tarjeta ni márgenes de una imagen pegada. */
.brand {
  display:inline-flex; align-items:center; justify-content:flex-start;
  flex:0 0 auto; gap:0; width:300px; max-width:100%;
  padding:0; border:0; border-radius:0; background:none; box-shadow:none;
  color:#231d1f;
}
.brand .brand-logo {
  display:block; flex:0 0 auto; width:100%; max-width:none; height:auto;
  aspect-ratio:900 / 204; overflow:visible; background:none;
}
.brand .brand-name-fill { fill:#d3131f; }
.site-header .brand { width:300px; }
.header-inner { height:93px; }
.simple-header .brand { width:260px; }
.footer-top .brand { width:300px; color:#f6eded; }
.footer-top .brand .brand-name-fill { fill:#f4555d; }
.footer-wordmark { letter-spacing:-.05em; }
.footer-wordmark span { margin-left:.08em; }
@media (max-width:1100px) {
  .site-header .brand { width:252px; }
  .header-inner { gap:20px; }
  .header-cta { padding-inline:14px; }
}
@media (min-width:801px) and (max-width:980px) {
  .container.header-inner { width:calc(100% - 48px); gap:15px; }
  .site-header .brand { width:225px; }
  .desktop-nav { gap:13px; }
  .desktop-nav a { font-size:10px; }
  .header-cta { gap:10px; font-size:10px; padding-inline:12px; }
}
@media (max-width:800px) {
  .header-inner { height:77px; min-height:0; padding-block:0; gap:18px; }
  .site-header .brand { width:220px; max-width:calc(100% - 65px); }
  .simple-header .brand { width:210px; max-width:calc(100% - 110px); }
  .footer-top .brand { width:270px; max-width:100%; }
}
@media (max-width:360px) {
  .site-header .brand { width:205px; }
}
