:root{--red:#aa0827;--red-dark:#78051c;--paper:#fff;--soft:#f7f5f3;--ink:#202124;--muted:#66666a;--line:#e8e5e4;--display:Manrope,Arial,sans-serif;--body:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}::selection{background:var(--red);color:white}.skip-link{position:absolute;z-index:20;left:1rem;top:-4rem;background:var(--red);color:white;padding:12px}.skip-link:focus{top:1rem}.site-header{height:82px;position:sticky;top:0;z-index:10;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-inner{height:100%;max-width:1600px;margin:auto;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:6px}.brand img{width:56px;height:56px;object-fit:contain}.brand strong,.footer-brand>span{display:block;color:var(--red);font:800 20px/.95 var(--display);letter-spacing:.18em}.brand small,.footer-brand small{display:block;font:600 7px/1.8 var(--display);letter-spacing:.24em;color:var(--red);margin-top:5px}.nav{display:flex;align-items:center;gap:36px;font-size:12px;font-weight:600}.nav>a:not(.nav-contact):hover{color:var(--red)}.nav-contact{background:var(--red);color:#fff;padding:13px 19px;display:flex;gap:22px;align-items:center;transition:background .2s}.nav-contact:hover,.button-red:hover{background:var(--red-dark)}.menu-button{display:none}.hero{min-height:640px;display:grid;grid-template-columns:48% 52%;position:relative;overflow:hidden}.hero-copy{padding:clamp(80px,10vw,148px) 7% 62px 11.5%;display:flex;flex-direction:column;align-items:flex-start}.kicker,.eyebrow{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--red);margin:0}.kicker{display:flex;align-items:center;gap:10px}.kicker span{width:24px;height:1px;background:var(--red)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--display);letter-spacing:-.065em;font-weight:600}h1{font-size:clamp(50px,5.5vw,86px);line-height:1.07;margin:34px 0 29px;max-width:800px}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.065em;color:var(--red)}.hero-lead{max-width:450px;font-size:15px;line-height:1.8;color:#626267}.hero-actions{display:flex;align-items:center;gap:27px;margin-top:30px}.button{border:0;display:inline-flex;justify-content:space-between;align-items:center;gap:34px;padding:17px 20px;font-size:12px;font-weight:700;transition:transform .25s,background .25s}.button:hover{transform:translateY(-3px)}.button span,.under-link span,.text-cta span{font-size:18px;font-weight:400}.button-red{background:var(--red);color:white}.under-link,.text-cta{display:inline-flex;align-items:center;gap:16px;font-size:12px;font-weight:700}.under-link{border-bottom:1px solid #ccc;padding-bottom:7px}.under-link:hover,.text-cta:hover{color:var(--red)}.hero-foot{margin:auto 0 0;font-size:9px;font-weight:700;letter-spacing:.14em;color:#999}.hero-media{height:100%;min-height:640px;position:relative;overflow:hidden;background:#e7e2df}.hero-media:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.28))}.hero-media img{height:100%;width:100%;object-fit:cover;object-position:center}.media-label{position:absolute;z-index:1;bottom:23px;left:28px;right:28px;display:flex;justify-content:space-between;color:white;font-size:9px;font-weight:700;letter-spacing:.16em}.hero-side{position:absolute;right:5px;top:43%;writing-mode:vertical-rl;color:white;font-size:8px;letter-spacing:.2em;font-weight:700}.hero-side span{margin:10px 0}.trust-strip{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 5.5%;border-bottom:1px solid var(--line);color:#777;font-size:9px;font-weight:700;letter-spacing:.11em}.section{padding:104px max(5.5%,calc((100% - 1420px)/2)) 112px}.section-top{display:flex;align-items:center;gap:22px;font-size:9px;font-weight:700;letter-spacing:.16em;color:#888}.section-number{color:var(--red)}.rule{height:1px;background:#dedbda;flex:1}.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12%;margin:65px 0 69px}.intro h2,.section-heading h2,.process h2{font-size:clamp(40px,5vw,67px);line-height:1.12;margin:17px 0 0}.intro-text{padding-top:26px;font-size:14px;line-height:1.85;color:var(--muted)}.intro-text p{margin-bottom:17px}.text-cta{color:var(--red);margin-top:12px}.intro-media{height:400px;position:relative;overflow:hidden;background:var(--soft)}.intro-media img{width:100%;height:100%;object-fit:cover}.intro-caption{position:absolute;left:0;bottom:0;background:white;min-width:335px;padding:17px 23px;display:flex;flex-direction:column;gap:5px}.intro-caption span{color:var(--red);font-size:8px;font-weight:700;letter-spacing:.16em}.intro-caption strong{font-size:12px}.services{background:var(--soft)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin:46px 0 47px}.section-heading h2{margin:0}.section-heading>p{max-width:330px;color:var(--muted);font-size:13px;line-height:1.8;margin:0 0 5px}.service-list{border-top:1px solid #d9d5d3}.service{display:grid;grid-template-columns:55px 1fr 45px;gap:30px;align-items:start;padding:28px 12px;border-bottom:1px solid #d9d5d3;transition:background .25s,padding .25s}.service:hover{background:#fff;padding-left:20px;padding-right:20px}.service-index{font-size:11px;color:var(--red);font-weight:700}.service h3{font:600 clamp(21px,2.4vw,29px) var(--display);letter-spacing:-.045em;margin:-5px 0 9px}.service p{max-width:830px;font-size:12px;line-height:1.7;color:var(--muted);margin:0}.service>a{color:var(--red);font-size:23px;text-align:right}.service-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.service-tags span{color:#777;border:1px solid #d9d5d3;padding:5px 7px;font-size:8px;letter-spacing:.08em}.projects-heading{margin-bottom:32px}.projects-heading .eyebrow{margin-bottom:17px}.filters{display:flex;gap:8px;margin-bottom:23px}.filter{border:1px solid var(--line);background:white;color:#777;padding:10px 16px;font-size:10px;font-weight:700;transition:background .2s,color .2s}.filter:hover,.filter.active{background:var(--red);border-color:var(--red);color:white}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.project-card{padding:0;border:0;background:none;text-align:left;min-width:0;display:flex;flex-direction:column;color:inherit}.project-card[hidden]{display:none}.project-large{grid-column:span 2;grid-row:span 2}.project-image{height:238px;overflow:hidden;background:var(--soft);width:100%;display:block}.project-large .project-image{height:calc(476px + 68px)}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.project-card:hover img{transform:scale(1.045)}.project-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 0 12px}.project-meta>span:first-child{display:flex;flex-direction:column;gap:4px}.project-meta small{font-size:8px;font-weight:700;letter-spacing:.15em;color:var(--red)}.project-meta strong{font:600 17px var(--display);letter-spacing:-.03em}.project-arrow{font-size:20px;color:var(--red)}.projects-bottom{margin-top:35px;border-top:1px solid var(--line);padding-top:17px;display:flex;justify-content:space-between;align-items:center;gap:20px}.projects-bottom>span{color:#888;font-size:9px;letter-spacing:.11em;font-weight:700}.projects-bottom .text-cta{margin:0}.process{background:#f7f5f3}.process-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%;margin-top:56px}.process-grid>div:first-child>p{max-width:425px;font-size:13px;line-height:1.8;color:var(--muted);margin:25px 0 0}.steps{border-top:1px solid #d9d5d3}.steps>div{display:grid;grid-template-columns:40px 1fr;column-gap:20px;border-bottom:1px solid #d9d5d3;padding:19px 0}.steps span{grid-row:1/3;font-size:10px;font-weight:700;color:var(--red)}.steps h3{font:700 15px var(--display);margin:0 0 5px}.steps p{font-size:11px;line-height:1.7;color:var(--muted);margin:0}.contact{background:var(--red);color:white}.contact-inner{padding:57px max(5.5%,calc((100% - 1420px)/2)) 42px}.contact-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.16em;font-weight:700}.contact-head .eyebrow{color:#fff}.contact-grid{display:grid;grid-template-columns:1fr .72fr;gap:12%;padding:65px 0 70px}.contact h2{font-size:clamp(42px,5vw,67px);line-height:1.1;margin:0 0 24px}.contact h2 em{color:#fff;font-style:italic}.contact-copy>p{max-width:465px;font-size:13px;line-height:1.8;color:#f3dce1}.direct-contact{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:45px}.direct-contact a{font-size:17px;font-weight:600;border-bottom:1px solid #fff8;padding-bottom:7px}.direct-contact span{margin-left:13px}.contact-form{background:white;color:var(--ink);padding:27px 29px;display:flex;flex-direction:column;align-self:start;box-shadow:0 25px 50px #6a00172c}.contact-form label{font-size:10px;font-weight:700;margin:9px 0 7px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #dedbda;border-radius:0;background:white;color:var(--ink);outline:0;padding:12px;font-size:12px}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--red);box-shadow:0 0 0 2px #aa082722}.contact-form textarea{resize:vertical;min-height:88px}.button-white{background:var(--red);color:white;margin-top:18px;width:100%}.button-white:hover{background:var(--red-dark)}.form-note{font-size:9px;color:#777;line-height:1.5;margin:11px 0 0}.contact-bottom{border-top:1px solid #ffffff55;padding-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.contact-bottom>div{display:flex;flex-direction:column;gap:7px;font-size:12px;line-height:1.55}.contact-bottom span{font-size:9px;letter-spacing:.14em;color:#f0b6c3;font-weight:700}.contact-bottom p{margin:0}.contact-bottom a:hover{text-decoration:underline}.footer{min-height:104px;padding:20px 5.5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-brand{display:flex;align-items:center;gap:4px}.footer-brand>span{font-size:15px}.footer-brand small{font-size:5px}.footer p,.footer>span{color:#888;font-size:10px;margin:0}.mobile-contact{display:none}.project-dialog{border:0;padding:0;background:white;max-width:min(980px,90vw);max-height:90vh;box-shadow:0 25px 90px #0005}.project-dialog::backdrop{background:#141012bd}.project-dialog img{max-height:72vh;width:100%;object-fit:contain;background:#f2f1ef}.project-dialog>div{padding:15px 22px}.project-dialog>div span{font-size:9px;color:var(--red);letter-spacing:.12em}.project-dialog h3{margin:5px 0 0;font:700 18px var(--display)}.dialog-close{position:absolute;top:13px;right:13px;width:38px;height:38px;border:0;background:white;color:var(--red);font-size:27px;line-height:1}.dialog-close:hover{background:var(--red);color:white}
@media(max-width:1000px){.hero{grid-template-columns:50% 50%}.hero-copy{padding-left:9%;padding-right:7%}h1{font-size:clamp(48px,6vw,65px)}.hero-lead{font-size:13px}.hero-actions{flex-wrap:wrap}.section{padding-left:7%;padding-right:7%}.contact-inner{padding-left:7%;padding-right:7%}.intro-grid,.process-grid{gap:7%}.contact-grid{gap:7%}}
@media(max-width:700px){html{scroll-padding-top:70px}.site-header{height:70px}.header-inner{padding:0 5%}.brand img{width:46px;height:46px}.brand strong{font-size:17px}.brand small{font-size:6px}.menu-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:42px;height:42px;border:1px solid var(--line);background:white}.menu-button span{width:17px;height:1px;background:var(--red);transition:transform .2s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:white;padding:20px 5% 26px;box-shadow:0 18px 24px #0001;flex-direction:column;align-items:stretch;gap:0}.nav.open{display:flex}.nav>a{padding:13px 4px;border-bottom:1px solid var(--line)}.nav .nav-contact{margin-top:12px;padding:13px 16px;justify-content:space-between}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:62px 6% 39px}.kicker{font-size:8px}h1{font-size:clamp(47px,12vw,66px);margin:26px 0 17px}.hero-lead{font-size:13px}.hero-actions{gap:20px;margin-top:20px}.button{font-size:11px;padding:15px 16px}.hero-foot{margin:36px 0 0;font-size:7px}.hero-media{height:380px;min-height:0}.hero-side{display:none}.trust-strip{overflow-x:auto;justify-content:flex-start;gap:23px;white-space:nowrap;min-height:55px;padding:16px 6%;font-size:8px}.section{padding:75px 6% 82px}.section-top{font-size:8px;gap:10px}.section-top>span:last-child{display:none}.intro-grid,.process-grid{display:block;margin:40px 0}.intro h2,.section-heading h2,.process h2{font-size:clamp(39px,9vw,54px)}.intro-text{padding-top:20px;font-size:12px}.intro-media{height:260px}.intro-caption{min-width:0;width:85%;padding:12px 15px}.intro-caption strong{font-size:10px}.section-heading{display:block;margin:39px 0 28px}.section-heading>p{margin:18px 0 0;font-size:12px}.service{grid-template-columns:26px 1fr 22px;gap:10px;padding:21px 0}.service:hover{padding-left:5px;padding-right:5px}.service h3{font-size:21px}.service p{font-size:11px}.service-tags{gap:5px}.service-tags span{font-size:7px}.filters{overflow-x:auto;white-space:nowrap;margin-right:-6%;padding-right:6%;padding-bottom:7px}.filter{padding:9px 11px}.project-grid{grid-template-columns:1fr 1fr;gap:14px}.project-large{grid-column:span 2;grid-row:auto}.project-image,.project-large .project-image{height:190px}.project-large .project-image{height:290px}.project-meta strong{font-size:13px}.project-meta small{font-size:7px}.projects-bottom{display:block}.projects-bottom .text-cta{margin-top:14px;font-size:11px}.projects-bottom>span{font-size:8px}.process-grid>div:first-child>p{font-size:12px}.steps{margin-top:30px}.contact-inner{padding:36px 6% 40px}.contact-head{font-size:8px}.contact-grid{grid-template-columns:1fr;gap:40px;padding:45px 0}.contact h2{font-size:clamp(41px,9vw,57px)}.contact-copy>p{font-size:12px}.direct-contact{margin-top:27px}.direct-contact a{font-size:15px}.contact-form{padding:22px}.contact-bottom{grid-template-columns:1fr 1fr;gap:20px}.contact-bottom>div{font-size:10px}.footer{padding:20px 6% 85px;flex-wrap:wrap;min-height:0}.footer p{display:none}.footer>span{font-size:8px}.mobile-contact{display:flex;position:fixed;z-index:9;left:16px;right:16px;bottom:14px;justify-content:space-between;align-items:center;background:var(--red);color:white;padding:14px 18px;box-shadow:0 8px 25px #66001940;font-size:11px;font-weight:700}.mobile-contact span{font-size:17px}}
@media(max-width:420px){.hero-actions{align-items:flex-start;flex-direction:column}.hero-media{height:300px}.project-grid{grid-template-columns:1fr}.project-large{grid-column:auto}.project-image,.project-large .project-image{height:230px}.project-meta strong{font-size:16px}.contact-bottom{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.brand-signature{display:block;width:290px;max-width:100%;height:auto;margin:21px 0 0 -13px}

/* Ajustes de identidad y densidad solicitados tras la revisión visual. */
.brand{display:grid;grid-template-columns:58px auto;grid-template-rows:39px 15px;column-gap:5px;align-items:center;flex:none}
.brand img{grid-column:1;grid-row:1;width:58px;height:48px}
.brand strong{grid-column:2;grid-row:1;font:400 27px/1 Arial,Helvetica,sans-serif;letter-spacing:.22em;white-space:nowrap}
.brand small{grid-column:1/3;grid-row:2;margin:0 0 0 5px;font-size:11px;line-height:1;letter-spacing:.12em;font-weight:500;white-space:nowrap}
.header-inner{gap:32px}
.nav{gap:clamp(18px,2.5vw,34px);font-size:12px;font-weight:600}
.nav>a:not(.nav-contact){text-underline-offset:6px}
.nav>a:not(.nav-contact):hover,.nav>a:not(.nav-contact):focus-visible{text-decoration:underline}
.nav-contact{justify-content:center;min-width:126px;padding:14px 23px;font-size:12px}
.nav-contact,.button,.mobile-contact{border-radius:999px}
.filter,.menu-button{border-radius:999px}
.projects-heading h2{letter-spacing:-.035em}
.projects-heading h2 em{display:inline-block;margin-left:.11em;letter-spacing:-.035em}
.project-large{grid-column:auto;grid-row:auto}
.project-large .project-image,.project-image{height:225px}
.projects-bottom{justify-content:flex-end}
.service{grid-template-columns:55px minmax(0,1fr) 82px}
.service>a:last-child{font-size:11px;font-weight:700;align-self:center;text-align:right;text-decoration:underline;text-underline-offset:5px}
.service-certificate{grid-template-columns:55px minmax(0,1fr) 136px 82px;align-items:center}
.service-certificate .certificate-image{text-align:left;font-size:inherit;display:block;border:1px solid #ddd5d5;padding:4px;background:white}
.certificate-image img{width:100%;height:175px;object-fit:contain}
.certificate-image small{display:block;padding:6px 2px 1px;color:var(--red);font-size:7px;font-weight:700;letter-spacing:.05em;line-height:1.3}
.contact-bottom{grid-template-columns:1fr 1fr}
.honeypot{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1000px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-certificate{grid-template-columns:45px minmax(0,1fr) 118px 72px;gap:18px}.certificate-image img{height:154px}}
@media(max-width:700px){.brand{grid-template-columns:47px auto;grid-template-rows:34px 12px;column-gap:4px}.brand img{width:47px;height:42px}.brand strong{font-size:20px;letter-spacing:.16em}.brand small{font-size:8px;letter-spacing:.1em}.service,.service-certificate{grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:start}.service>a:last-child{grid-column:2;justify-self:start;margin-top:6px}.service-certificate .certificate-image{grid-column:2;grid-row:2;width:124px;margin-top:8px}.service-certificate>a:last-child{grid-column:2;grid-row:3}.certificate-image img{height:168px}.contact-bottom{grid-template-columns:1fr 1fr}.project-image{height:210px}.mobile-contact{justify-content:center}.nav{font-size:13px}.nav .nav-contact{min-width:0;justify-content:center;margin-top:14px}}
@media(max-width:420px){.project-grid{grid-template-columns:1fr}.project-image{height:225px}.brand strong{font-size:18px}.brand small{font-size:7.5px}.contact-bottom{grid-template-columns:1fr}}

/* Formularios e información legal. Las fuentes son locales al sistema del visitante. */
:root{--display:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;--body:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
.form-privacy{font-size:10px;line-height:1.6;color:#666;margin:17px 0 6px}
.form-note[hidden]{display:none}
.dialog-close{width:auto;min-width:68px;height:36px;padding:0 12px;font-size:11px;font-weight:700}
.footer-brand>span{font-family:Arial,Helvetica,sans-serif;font-weight:400;letter-spacing:.2em}
.footer-brand small{font-size:6px;font-weight:500;letter-spacing:.15em}
.form-privacy a,.legal-content a{text-decoration:underline;text-underline-offset:3px;color:var(--red)}
.privacy-check{display:flex!important;align-items:flex-start;gap:9px;font-size:10px!important;line-height:1.5;font-weight:500!important;cursor:pointer}
.privacy-check input{width:16px!important;height:16px;flex:0 0 16px;margin:0;accent-color:var(--red)}
.footer-legal{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;color:#666;font-size:10px}
.footer-legal a:hover,.legal-footer a:hover,.legal-back:hover{text-decoration:underline;text-underline-offset:4px;color:var(--red)}
.legal-page{background:#fff}
.legal-header{min-height:88px;padding:17px max(5.5%,calc((100% - 1420px)/2));display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}
.legal-brand{display:flex;align-items:center;gap:8px;color:var(--red);font:400 22px/1 Arial,Helvetica,sans-serif;letter-spacing:.2em}
.legal-brand img{width:43px;height:43px;object-fit:contain}
.legal-brand small{display:block;font-size:8px;letter-spacing:.15em;margin-top:6px}
.legal-back{font-size:12px;font-weight:700;white-space:nowrap}
.legal-back span{color:var(--red);font-size:18px;margin-left:10px}
.legal-main{max-width:1100px;margin:auto;padding:90px 5.5% 110px}
.legal-intro{padding-bottom:45px;border-bottom:1px solid var(--line)}
.legal-intro h1{font-size:clamp(43px,6vw,72px);margin:18px 0 15px;letter-spacing:-.055em}
.legal-intro>p:last-child{font-size:15px;line-height:1.7;color:var(--muted);max-width:650px;margin:0}
.legal-content{max-width:810px;margin:0 auto;padding-top:12px}
.legal-content section{padding:38px 0;border-bottom:1px solid var(--line)}
.legal-content h2{font-size:clamp(23px,3vw,31px);letter-spacing:-.035em;margin:0 0 20px}
.legal-content p,.legal-details{font-size:14px;line-height:1.85;color:#4f5053}
.legal-content p:last-child{margin-bottom:0}
.legal-details{margin:0 0 22px}
.legal-details>div{display:grid;grid-template-columns:175px 1fr;gap:15px;padding:11px 0;border-bottom:1px solid #f0eeee}
.legal-details dt{font-weight:700;color:#252428}
.legal-details dd{margin:0}
.legal-footer{min-height:90px;padding:22px 5.5%;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f7f5f3;color:#686568;font-size:11px}
.legal-footer nav{display:flex;flex-wrap:wrap;gap:10px 24px}
.legal-footer a[aria-current="page"]{color:var(--red);font-weight:700}
@media(max-width:700px){.footer{align-items:flex-start;gap:15px 25px}.footer-legal{order:3;width:100%;font-size:10px}.legal-header{padding:15px 6%;min-height:74px}.legal-brand{font-size:17px}.legal-brand img{width:36px;height:36px}.legal-brand small{font-size:6px}.legal-back{font-size:10px}.legal-main{padding:62px 6% 78px}.legal-intro{padding-bottom:30px}.legal-content section{padding:29px 0}.legal-details>div{display:block}.legal-details dt{margin-bottom:3px}.legal-footer{padding:25px 6%;align-items:flex-start;flex-direction:column}}

/* Tipografía local, logotipo original y trama arquitectónica. */
@font-face{font-family:Montserrat;src:url("assets/montserrat-site.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
:root{--display:Montserrat,Verdana,sans-serif;--body:Montserrat,Verdana,sans-serif}
h1,h2{letter-spacing:-.055em}
h1 em,h2 em{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;letter-spacing:-.055em}
.brand-wordmark{grid-column:2;grid-row:1;display:block;width:185px;height:32px;background:url("assets/ofimar-logo.webp") -23px -44px/230px 115px no-repeat}
.brand small{font-size:11px;letter-spacing:.1em;font-weight:500}
.hero{display:block;isolation:isolate;min-height:680px;background:#fcfbfa;overflow:hidden}
.hero-copy{position:relative;z-index:1;width:57%;min-height:680px;padding:clamp(85px,9vw,140px) 5% 62px 5.5%}
.hero-plan{position:absolute;inset:0 0 0 auto;width:63%;background:url("assets/architecture-lines.svg") center right/cover no-repeat;opacity:.64;mask-image:linear-gradient(90deg,transparent,#000 29%);pointer-events:none}
.hero-foot{color:#8d8988}
.intro,.projects{background-image:linear-gradient(#ffffffee,#ffffffee),url("assets/architecture-lines.svg");background-size:cover,900px auto;background-position:center;}
.services{background-image:linear-gradient(#f7f5f3ee,#f7f5f3ee),url("assets/architecture-lines.svg");background-size:cover,900px auto;background-position:center}
.trust-strip{display:block;min-height:0;padding:21px 5.5% 25px;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);letter-spacing:normal;white-space:normal}
.trust-title{display:block;color:var(--red);font-size:9px;font-weight:700;letter-spacing:.16em;margin-bottom:15px}
.trust-items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line)}
.trust-items>span{display:block;padding:13px 15px 2px;border-left:1px solid var(--line);color:#343033;font-size:11px;font-weight:600;line-height:1.45;letter-spacing:0}
.trust-items>span:first-child{border-left:0;padding-left:0}
.trust-items b{display:block;color:var(--red);font-size:9px;font-weight:700;margin-bottom:4px}
@media(max-width:1000px){.hero-copy{width:61%}.hero-plan{width:65%}.trust-items>span{font-size:10px;padding-left:12px;padding-right:12px}}
@media(max-width:700px){.brand-wordmark{width:153px;height:27px;background-size:190px 95px;background-position:-19px -36px}.brand small{font-size:9px;letter-spacing:.08em}.hero{min-height:0}.hero-copy{width:100%;min-height:625px;padding:68px 6% 48px}.hero-plan{width:100%;opacity:.18;mask-image:none;background-position:55% center}.hero-lead{max-width:470px}.trust-strip{padding:23px 6% 26px;overflow:visible}.trust-items{grid-template-columns:repeat(2,minmax(0,1fr))}.trust-items>span{padding:13px 10px 14px;font-size:10px;border-bottom:1px solid var(--line)}.trust-items>span:nth-child(odd){border-left:0;padding-left:0}.trust-items>span:last-child{grid-column:1/-1;border-bottom:0}.intro,.projects,.services{background-size:cover,700px auto}}
@media(max-width:420px){.brand-wordmark{width:138px;height:25px;background-size:172px 86px;background-position:-17px -33px}.brand small{font-size:8px}.hero-copy{min-height:650px}.trust-items>span{font-size:9px}}

/* Ritmo editorial y navegación compacta. */
.kicker{gap:0}
.intro,.services,.projects{padding-top:64px;padding-bottom:70px}
.intro-grid{margin:0 0 52px}
.section-heading{margin:0 0 42px}
.projects-heading{margin-bottom:30px}
.legal-header{position:sticky;top:0;z-index:10;background:#fff}
.legal-back{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 20px;border:1px solid var(--red);border-radius:999px;color:var(--red);text-decoration:none;transition:background .2s,color .2s}
.legal-back:hover,.legal-back:focus-visible{background:var(--red);color:#fff;text-decoration:none}
@media(max-width:700px){.intro,.services,.projects{padding-top:48px;padding-bottom:54px}.intro-grid{margin:0 0 36px}.section-heading{margin:0 0 32px}.brand{display:flex;align-items:center}.brand-wordmark,.brand small,.legal-brand span{display:none}.brand img{width:47px;height:47px}.legal-back{min-height:38px;padding:9px 15px}}

/* Marca sin isotipo en escritorio; el monograma permanece en la cabecera móvil. */
.brand{display:grid;grid-template-columns:185px;grid-template-rows:32px 14px;gap:1px;width:185px}
.brand img{display:none}
.brand-wordmark{grid-column:1;grid-row:1;margin:0 auto}
.brand small{grid-column:1;grid-row:2;display:block;width:185px;margin:0;font-size:10px;line-height:1;letter-spacing:.08em;text-align:justify;text-align-last:justify}
.footer-brand{display:flex;align-items:center;gap:11px;width:auto}
.footer-wordmark{display:block;flex:none;width:72px;height:55px;background:url("assets/ofimar-monograma.webp") center/contain no-repeat}
.footer-brand small{display:block;width:115px;margin:0;color:var(--red);font:500 8px/1.45 Montserrat,Verdana,sans-serif;letter-spacing:.08em;text-align:left;text-align-last:auto;white-space:normal}
.footer-instagram{display:inline-flex;align-items:center;gap:8px;color:var(--red);font-size:10px;font-weight:600;white-space:nowrap}
.footer-instagram svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.footer-instagram .instagram-dot{fill:currentColor;stroke:none}
.footer-instagram:hover{color:var(--red-dark)}
.footer-instagram:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.projects-empty{margin:28px 0;padding:24px;border:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.6}
.projects-empty[hidden]{display:none}
@media(max-width:700px){.brand{display:flex;width:auto;align-items:center}.brand img{display:block}.brand-wordmark,.brand small{display:none}}

/* Portada a pantalla completa y marca móvil centrada. */
.hero,.hero-copy{min-height:max(680px,calc(100svh - 82px))}
@media(max-width:700px){
  .header-inner{position:relative;justify-content:flex-end}
  .brand{position:absolute;left:50%;transform:translateX(-50%)}
  .menu-button{margin-left:auto}
  .hero,.hero-copy{min-height:max(610px,calc(100svh - 70px))}
  .hero-copy{padding-top:clamp(46px,8vh,76px);padding-bottom:35px}
  .hero h1{font-size:clamp(34px,9vw,56px);line-height:1.1}
}

/* Guías y artículos. */
.blog-preview{background:#f7f5f3}
.blog-preview .section-heading{margin-top:0}
.blog-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.blog-card{display:flex;flex-direction:column;min-width:0;border-top:1px solid #d8d2d0;padding-top:16px}
.blog-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#e8e7e5;margin-bottom:17px}
.blog-card:nth-child(2) img{object-fit:contain;background:#e1eaf0}
.blog-card>span:first-of-type,.article-kicker{color:var(--red);font-size:10px;font-weight:700;letter-spacing:.13em}
.blog-card h3{font:600 clamp(18px,1.7vw,24px)/1.25 var(--display);letter-spacing:-.04em;margin:10px 0 15px}
.blog-card-link{margin-top:auto;color:var(--red);font-size:12px;font-weight:700;border-bottom:1px solid currentColor;align-self:flex-start;padding-bottom:4px}
.blog-card:hover h3,.blog-card:focus-visible h3{color:var(--red)}
.blog-all-link{display:inline-flex;margin-top:30px}
.blog-nav{display:flex;align-items:center;gap:26px;font-size:12px;font-weight:700}
.blog-nav a:hover,.blog-nav a:focus-visible{color:var(--red)}
.blog-main{max-width:1320px;margin:auto;padding:58px 5.5% 90px}
.blog-breadcrumb{font-size:12px;color:#6d6868;margin-bottom:30px}
.blog-breadcrumb a{color:var(--red)}
.blog-intro{max-width:920px;margin-bottom:48px}
.blog-intro h1,.article-hero h1{font:600 clamp(38px,5vw,68px)/1.1 var(--display);letter-spacing:-.055em;margin:16px 0 22px}
.blog-intro p,.article-hero p{max-width:720px;font-size:17px;line-height:1.7;color:#5f5b5c}
.blog-index .blog-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:46px 30px}
.blog-index .blog-card img{aspect-ratio:16/9}
.article-page{max-width:1320px;margin:auto;padding:42px 5.5% 90px}
.article-hero{max-width:980px;margin-bottom:40px}
.article-hero h1{max-width:850px}
.article-hero time{display:block;color:#797374;font-size:11px;margin-top:12px}
.article-image{width:100%;max-height:560px;object-fit:cover;background:#e8e7e5;margin:0 0 42px}
.article-image.plan{width:min(100%,700px);max-height:none;object-fit:contain;background:#e1eaf0;margin-left:auto;margin-right:auto}
.article-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(220px,1fr);gap:8%;align-items:start}
.article-body{font-size:16px;line-height:1.8;color:#3d3b3c}
.article-body h2{font-size:clamp(27px,3vw,38px);line-height:1.18;letter-spacing:-.045em;margin:42px 0 16px}
.article-body h3{font:650 21px/1.3 var(--display);letter-spacing:-.03em;margin:28px 0 10px}
.article-body p,.article-body ul,.article-body ol{margin:0 0 20px}
.article-body li{margin-bottom:9px}
.article-body a,.article-sources a{text-decoration:underline;text-underline-offset:3px;color:var(--red)}
.article-body .article-summary{font-size:19px;line-height:1.7;color:#242225;padding-left:20px;border-left:3px solid var(--red)}
.article-aside{position:sticky;top:115px;border-top:2px solid var(--red);background:#f7f5f3;padding:22px}
.article-aside strong{display:block;font:600 22px/1.25 var(--display);letter-spacing:-.035em;margin-bottom:11px}
.article-aside p{font-size:13px;line-height:1.7;color:#686363}
.article-aside a{display:inline-block;color:var(--red);font-size:12px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:3px}
.article-sources{border-top:1px solid var(--line);margin-top:42px;padding-top:20px;font-size:12px;line-height:1.7;color:#706b6b}
.article-sources strong{color:#282627}
.article-sources ul{margin:8px 0 0;padding-left:20px}
.article-related{border-top:1px solid var(--line);margin-top:56px;padding-top:28px}
.article-related h2{font-size:28px;margin:0 0 20px}
.article-related .blog-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.blog-footer{border-top:1px solid var(--line);padding:28px 5.5%;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#666;font-size:11px}
.blog-footer a{color:var(--red);font-weight:700}

@media(max-width:900px){.blog-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{grid-template-columns:1fr;gap:30px}.article-aside{position:static}}
@media(max-width:700px){
  .trust-strip{padding:20px 6% 18px}
  .trust-title{margin-bottom:8px}
  .trust-items{display:block;border-top:0}
  .trust-items>span,.trust-items>span:last-child{display:flex;align-items:baseline;grid-column:auto;gap:15px;padding:11px 0;border-left:0;border-bottom:0;border-top:1px solid var(--line);font-size:12px;line-height:1.35}
  .trust-items b{flex:0 0 25px;margin:0;font-size:10px}
  .blog-preview{padding-top:54px;padding-bottom:58px}
  .blog-nav{margin-left:auto;font-size:11px}
  .blog-nav .blog-nav-contact{display:none}
  .blog-main,.article-page{padding:35px 6% 65px}
  .blog-intro h1,.article-hero h1{font-size:clamp(35px,9vw,49px)}
  .blog-intro p,.article-hero p{font-size:14px}
  .article-image{margin-bottom:28px}
  .article-body{font-size:14px}
  .article-body .article-summary{font-size:16px}
  .blog-footer{padding:24px 6%;flex-direction:column;align-items:flex-start}
}
@media(max-width:520px){.blog-cards,.blog-index .blog-cards,.article-related .blog-cards{grid-template-columns:1fr;gap:26px}.blog-card img,.blog-index .blog-card img{aspect-ratio:16/10}.blog-preview .section-heading h2{font-size:clamp(35px,9vw,48px)}}

.nav-contact{gap:9px}
.nav-contact svg{width:16px;height:16px;flex:none}
.direct-contact a{display:inline-flex;align-items:center;gap:11px}
.direct-contact a svg{width:19px;height:19px;flex:none}
.direct-contact a span{margin-left:0}
.contact-grid{padding-bottom:46px}
.contact-map{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:23px 0 28px;border-top:1px solid #ffffff55}
.contact-map>div>span{display:block;color:#f0b6c3;font-size:9px;font-weight:700;letter-spacing:.14em;margin-bottom:7px}
.contact-map p{margin:0;font-size:12px;line-height:1.5}
.contact-map-info>a{display:inline-flex;align-items:center;gap:9px;flex:none;border:1px solid #ffffff80;border-radius:999px;padding:12px 16px;font-size:11px;font-weight:700;transition:background .2s,color .2s}
.contact-map-info>a:hover,.contact-map-info>a:focus-visible{background:white;color:var(--red)}
.contact-map svg{width:17px;height:17px;flex:none}
@media(max-width:700px){.contact-grid{padding-bottom:32px}.contact-map{align-items:flex-start;flex-direction:column;gap:16px}.contact-map a{max-width:100%;white-space:normal}}

/* Mapa integrado y ubicación sin duplicados */
.contact-map{display:block;padding-bottom:32px}
.contact-map-info{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.contact-map-info>div>span{display:block;color:#f0b6c3;font-size:9px;font-weight:700;letter-spacing:.14em;margin-bottom:7px}
.contact-map iframe{display:block;width:100%;height:350px;border:0;border-radius:8px;background:#f7f5f3}
.map-frame{min-height:350px;border-radius:8px;overflow:hidden;background:#f7f5f3}
.map-consent{min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:24px;background:linear-gradient(30deg,#ece7e5 12%,transparent 12% 88%,#ece7e5 88%),repeating-linear-gradient(90deg,#f7f5f3 0 54px,#e8e3e1 55px 56px);text-align:center;color:var(--ink)}
.map-consent[hidden],.map-frame iframe[hidden]{display:none}
.map-consent button{border:0;border-radius:999px;background:var(--red);color:white;padding:13px 22px;font-size:12px;font-weight:700}
.map-consent button:hover,.map-consent button:focus-visible{background:var(--red-dark)}
.map-consent p{max-width:320px;margin:0;font-size:11px;line-height:1.5}
.map-consent a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.map-frame{position:relative}
.map-unload{position:absolute;right:12px;top:12px;z-index:1;border:1px solid var(--red);border-radius:999px;background:white;color:var(--red);padding:10px 16px;font-size:11px;font-weight:700;box-shadow:0 2px 10px #0001}
.map-unload[hidden]{display:none}
.map-unload:hover,.map-unload:focus-visible{background:var(--red);color:white}
.contact-bottom{grid-template-columns:1fr}
.contact-bottom>div{display:flex;flex-direction:column;align-items:flex-start}

/* Desplazadores con el color de OFIMAR */
html{scrollbar-color:var(--red) transparent;scrollbar-width:thin}
html::-webkit-scrollbar{width:9px}
html::-webkit-scrollbar-track{background:transparent}
html::-webkit-scrollbar-thumb{background:var(--red);border:2px solid transparent;background-clip:padding-box;border-radius:999px}
.filters{scrollbar-color:var(--red) transparent;scrollbar-width:thin}
.filters::-webkit-scrollbar{height:7px}
.filters::-webkit-scrollbar-track{background:transparent}
.filters::-webkit-scrollbar-thumb{background:var(--red);border-radius:999px}
.filters::-webkit-scrollbar-button{display:none}

@media(max-width:700px){
  .contact-map-info{align-items:flex-start;flex-direction:column;gap:16px}
  .contact-map iframe{height:260px}
  .map-frame,.map-consent{min-height:260px}
  .footer-legal{gap:10px 18px}
}

/* Páginas de servicio */
.service-hero{margin-bottom:35px}
.service-hero h1{max-width:900px}
.service-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:27px}
.service-actions .button{justify-content:center}
.service-figure{margin:0 0 48px}
.service-figure img{width:100%;height:clamp(260px,36vw,480px);object-fit:cover;background:#f3f1ef}
.service-figure figcaption{margin-top:8px;color:#777;font-size:11px}
.service-figure-label{background:#f4f4f4;padding:20px}
.service-figure-label img{height:clamp(250px,32vw,410px);object-fit:contain}
.service-graphic{min-height:230px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;margin-bottom:48px;padding:24px;background:#f7f5f3 url("assets/architecture-lines.svg") center/cover no-repeat}
.service-graphic span{padding:13px 18px;background:white;border:1px solid var(--line);color:var(--red);font-size:11px;font-weight:700;letter-spacing:.12em}
.service-aside-phone{margin:20px 0 0}
.service-aside-phone a{display:inline;border:0;text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){
  .service-actions{gap:20px}
  .service-figure,.service-graphic{margin-bottom:30px}
  .service-graphic{min-height:180px}
  .service-graphic span{font-size:9px;padding:10px 12px}
}

@media(min-width:701px){
  .hero-copy{padding-bottom:30px}
  .hero-foot{padding-top:70px}
}

.contact-page-breadcrumb{margin:0;color:#f3dce1;font-size:12px}
.contact-page-breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.contact-page .contact-grid{padding-top:48px}
.contact-page .contact-copy h1{font-size:clamp(42px,5vw,67px);line-height:1.1;margin:0 0 24px}
.contact-page .contact-copy h1 em{color:#fff;font-style:italic}
@media(max-width:700px){
  .contact-page .contact-grid{padding-top:36px}
  .contact-page .contact-copy h1{font-size:clamp(41px,9vw,57px)}
}


/* Ventanas de proyectos: portada y galerías */
.hero-windows{position:absolute;right:3%;top:50%;transform:translateY(-50%);width:46%;height:530px;z-index:2;background:radial-gradient(ellipse at center,#eee9e6 0,transparent 68%)}
.windows-caption{position:absolute;top:0;left:5%;font-size:10px;font-weight:700;letter-spacing:.14em;color:#a90928}
.windows-caption span{display:block;margin-top:9px;color:#777;font-size:10px;font-weight:400;letter-spacing:0}
.project-window{position:absolute;width:65%;padding:0;border:1px solid #d5cfcb;border-radius:10px;background:#fff;overflow:hidden;color:#232326;text-align:left;box-shadow:0 18px 48px #35272126;cursor:grab;user-select:none;font:inherit;transition:box-shadow .2s}
.project-window:hover,.project-window:focus-visible{box-shadow:0 20px 55px #35272142;outline:2px solid #a90928;outline-offset:3px}
.project-window.is-dragging{cursor:grabbing;box-shadow:0 24px 60px #35272155}
.window-1{left:0;top:100px;z-index:1}.window-2{left:34%;top:58px;z-index:2}.window-3{left:18%;top:265px;z-index:3}
.window-bar{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 12px;background:#faf8f6;border-bottom:1px solid #eee;font-size:9px;letter-spacing:.08em}.window-dots{color:#a90928;font-size:8px;letter-spacing:3px}
.project-window img{display:block;width:100%;height:175px;object-fit:cover;pointer-events:none}.window-title{display:block;padding:12px 14px;font-size:12px;font-weight:600}
.project-dialog #dialog-link{display:inline-flex;margin-top:20px;font-size:13px}.project-dialog>img{max-height:60vh;object-fit:contain;background:#f7f5f3}
.project-page{max-width:1250px;margin:auto;padding:45px 5.5% 80px}.project-breadcrumb{font-size:13px;margin-bottom:50px}.project-heading{margin-bottom:45px}.project-heading h1{font-size:clamp(32px,5vw,65px);line-height:1.12;letter-spacing:-.04em;margin:20px 0}.project-heading>p:last-child{color:#777}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:36px}.project-gallery figure{margin:0;min-width:0}.project-gallery figure:first-child{grid-column:1/-1}.project-gallery img{display:block;width:100%;height:auto;background:#f7f5f3}.project-gallery figcaption{font-size:10px;color:#a90928;padding:12px 0;border-bottom:1px solid #ddd;letter-spacing:.1em}.project-inquiry{border-top:1px solid #ddd;margin-top:65px;padding-top:35px;display:flex;gap:25px;align-items:center;flex-wrap:wrap}.project-inquiry h2{width:100%;font-size:28px}.project-footer{padding:35px 5.5%;border-top:1px solid #ddd;display:flex;justify-content:space-between;gap:25px;font-size:12px}.project-footer nav{display:flex;gap:20px;flex-wrap:wrap}
@media(min-width:901px){.hero-copy{width:53%;padding-right:3%}.hero h1{font-size:clamp(46px,5.3vw,80px)}}
@media(max-width:900px){.hero-copy{width:100%;min-height:0;padding-bottom:30px}.hero,.hero-copy{min-height:0}.hero-windows{position:relative;right:auto;top:auto;transform:none;width:90%;max-width:610px;margin:0 auto 50px;height:485px}.project-window{cursor:pointer}.windows-caption span{font-size:0}.windows-caption span:after{content:'Pulsa una ventana para ver el proyecto';font-size:10px}.window-1{top:85px}.window-2{top:55px}.window-3{top:240px}}
@media(max-width:500px){.hero-windows{height:370px}.project-window img{height:115px}.window-title{font-size:10px;padding:10px}.window-bar{height:26px;font-size:8px}.window-dots{font-size:6px}.window-3{top:195px}.project-gallery{grid-template-columns:1fr;gap:25px}.project-footer{flex-direction:column}.project-heading{margin-bottom:30px}}

/* Tarjetas con enlace directo y vista previa en forma de ventana */
.hero-windows{background:none}.hero-plan{z-index:0}.hero-copy{z-index:1}
.project-card{position:relative}.project-preview{display:block;width:100%;padding:0;border:0;background:transparent;text-align:left;color:inherit;font:inherit}.project-preview:hover .project-image img,.project-preview:focus-visible .project-image img{transform:scale(1.035)}.project-image{overflow:hidden}.project-image img{transition:transform .25s}.project-open{position:absolute;top:13px;right:13px;width:37px;height:37px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#aa0827;color:#fff;font-size:25px;font-weight:300;line-height:1;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;box-shadow:0 5px 16px #0003}.project-card:hover .project-open,.project-card:focus-within .project-open{opacity:1;transform:none}.project-open:hover,.project-open:focus-visible{background:#78051c;outline:2px solid #fff;outline-offset:2px}
.dialog-window-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#faf8f6;border-bottom:1px solid #e8e5e4;padding:8px 16px;font-size:10px;font-weight:700;letter-spacing:.08em;color:#777}.dialog-window-bar .dialog-close{position:static;width:auto;min-width:0;height:auto;margin:0;border:0;background:transparent;color:#aa0827;font-size:12px;font-weight:700;letter-spacing:0;padding:7px}.dialog-window-bar .dialog-close:hover{background:#f1e8e9}.project-dialog{border:1px solid #d5cfcb;border-radius:10px;overflow:hidden;box-shadow:0 20px 70px #0005}.project-dialog>img{width:100%;max-height:58vh;object-fit:cover}
.project-cover{margin:0 0 45px}.project-cover img{display:block;width:100%;max-height:700px;object-fit:cover}.project-details{display:grid;grid-template-columns:1.4fr 1fr;gap:10%;margin:0 0 50px;border-bottom:1px solid #ddd;padding-bottom:40px}.project-details h2{font-size:32px;margin:0 0 20px}.project-details p{line-height:1.75;color:#555}.project-source{font-size:12px}.project-source a{color:#aa0827;text-decoration:underline}.project-details dl{margin:0}.project-details dl>div{display:grid;grid-template-columns:100px 1fr;gap:15px;border-top:1px solid #ddd;padding:14px 0;font-size:13px}.project-details dt{color:#777}.project-details dd{margin:0;font-weight:600}
@media(max-width:900px){.project-open{opacity:1;transform:none}.project-details{grid-template-columns:1fr;gap:25px}.hero-plan{width:100%}}
.project-sources{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:24px;font-size:12px}.project-sources>span{font-weight:700;color:#777;margin-bottom:3px}.project-sources a{color:#aa0827;text-decoration:underline;text-underline-offset:3px}
.project-card[hidden]{display:none}

/* Vista previa: fotografías y navegación entre obras */
.project-dialog{width:min(900px,94vw);max-width:94vw;max-height:90vh}
.project-dialog>.dialog-window-bar{display:grid;grid-template-columns:1fr auto 1fr;padding:11px 20px;min-height:54px}
.dialog-window-label{justify-self:center;color:#aa0827!important;font-weight:700}
.dialog-window-bar .dialog-close{justify-self:end}
.dialog-traffic{display:flex;align-items:center;gap:8px}
.dialog-traffic-close,.dialog-traffic-min,.dialog-traffic-max{display:grid;place-items:center;width:13px;height:13px;border-radius:50%;border:1px solid #0002;padding:0}
.dialog-traffic-close{background:#ff6059;color:#651b18;font:700 12px/1 Arial,sans-serif;opacity:1}
.dialog-traffic-close:not(:hover):not(:focus-visible){font-size:0}
.dialog-traffic-close:hover,.dialog-traffic-close:focus-visible{outline:2px solid #aa0827;outline-offset:2px}
.dialog-traffic-min{background:#ffbd2e}.dialog-traffic-max{background:#28c840}
.project-dialog>.dialog-image-stage{position:relative;padding:0;background:#f2f1ef}
.dialog-image-link{display:block;width:100%;min-width:0;cursor:pointer}
.dialog-image-link:focus-visible{outline:3px solid var(--red);outline-offset:-3px}
.dialog-image-stage img{display:block;width:100%;height:min(52vh,520px);max-height:none;object-fit:contain;background:#f2f1ef}
.dialog-image-prev,.dialog-image-next{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:1px solid #fff8;border-radius:50%;background:#aa0827d9;color:#fff;font:300 30px/1 Arial,sans-serif;box-shadow:0 5px 16px #0003;backdrop-filter:blur(5px);transition:background .2s,transform .2s,box-shadow .2s}
.dialog-image-prev svg,.dialog-image-next svg{width:20px;height:20px;display:block;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.dialog-image-prev{left:14px}.dialog-image-next{right:14px}
.dialog-image-prev:hover,.dialog-image-next:hover,.dialog-image-prev:focus-visible,.dialog-image-next:focus-visible{background:#aa0827;color:#fff;transform:translateY(-50%) scale(1.08);box-shadow:0 7px 20px #0004;outline:2px solid #fff;outline-offset:2px}
.dialog-image-prev[hidden],.dialog-image-next[hidden]{display:none}
.project-dialog .dialog-image-count{position:absolute;right:16px;bottom:13px;padding:6px 9px;border-radius:4px;background:#fffefaec;color:#aa0827;font-size:11px;font-weight:700;letter-spacing:.06em;pointer-events:none}
.project-dialog>.dialog-info{padding:20px 24px 22px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;row-gap:6px}
.dialog-info #dialog-subtitle,.dialog-info #dialog-title{grid-column:1;min-width:0;overflow-wrap:anywhere}
.project-dialog #dialog-link{grid-column:2;grid-row:1 / span 2;justify-self:end;align-self:center;margin-top:0;max-width:100%}
.dialog-project-nav{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding-top:15px;border-top:1px solid #e8e5e4}
.dialog-project-nav button{border:0;background:transparent;color:#aa0827;font-size:12px;font-weight:700;padding:10px 0;text-align:left}
.dialog-project-nav button:last-child{text-align:right}
.dialog-project-nav button:hover,.dialog-project-nav button:focus-visible{text-decoration:underline;text-underline-offset:4px}
@media(max-width:600px){.project-dialog{width:96vw;max-width:96vw}.project-dialog>.dialog-window-bar{padding:9px 12px}.dialog-window-label{font-size:8px!important}.dialog-image-stage img{height:min(43vh,390px)}.dialog-image-prev,.dialog-image-next{width:38px;height:38px;font-size:27px}.dialog-image-prev{left:7px}.dialog-image-next{right:7px}.project-dialog>.dialog-info{padding:17px}.dialog-project-nav button{font-size:11px}}
@media(max-width:900px){
  .dialog-image-prev,.dialog-image-next{display:flex;align-items:center;justify-content:center;box-sizing:border-box;inline-size:38px;block-size:38px;min-width:38px;max-width:38px;min-height:38px;max-height:38px;aspect-ratio:1;padding:0;border:1px solid #aa08273d;border-radius:50%;background:#ffffffd9;color:#aa0827;box-shadow:0 2px 10px #0002;backdrop-filter:blur(3px);-webkit-appearance:none;appearance:none;line-height:0;touch-action:manipulation}
  .dialog-image-prev{left:10px}.dialog-image-next{right:10px}
  .dialog-image-prev svg,.dialog-image-next svg{width:16px;height:16px;stroke-width:2}
  .dialog-image-prev:hover,.dialog-image-next:hover,.dialog-image-prev:focus-visible,.dialog-image-next:focus-visible{background:#fff;color:#aa0827;transform:translateY(-50%);box-shadow:0 2px 10px #0002;outline:2px solid #aa0827;outline-offset:2px}
}
@media(max-width:600px){.dialog-image-prev{left:8px}.dialog-image-next{right:8px}}
@media(max-width:600px){.project-dialog>.dialog-info{grid-template-columns:minmax(0,1fr)}.project-dialog #dialog-link{grid-column:1;grid-row:auto;margin-top:12px}}
@media(max-width:700px){.site-header{background:#fff;backdrop-filter:none}.brand img{filter:none}}

/* Formulario de contacto más amplio en pantallas de dos columnas. */
@media(min-width:701px){.contact-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:5%}}

/* Regreso visible en páginas secundarias y fotografía de zonas. */
.blog-breadcrumb{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.blog-breadcrumb .breadcrumb-back{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid var(--red);border-radius:999px;color:var(--red);font-weight:700;line-height:1.2}
.breadcrumb-back svg{width:15px;height:15px;flex:none}
.blog-breadcrumb .breadcrumb-back:hover,.blog-breadcrumb .breadcrumb-back:focus-visible{background:var(--red);color:#fff}
.zones-figure{margin:32px 0 38px}
.zones-figure img{display:block;width:100%;max-height:390px;aspect-ratio:16/9;object-fit:cover}
.zones-figure figcaption{margin-top:9px;color:#716d6d;font-size:11px;line-height:1.5}

/* Datos de contacto en el pie de la portada. */
.footer-contact{display:flex;flex-direction:column;gap:5px;font-size:11px;line-height:1.4;color:#555}
.footer-contact a:hover,.footer-contact a:focus-visible{color:var(--red);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1000px){.footer-contact{order:2}.footer-legal{order:3}.footer>span{order:4}}
@media(max-width:700px){.footer-contact{width:100%;order:2}.footer-legal{order:3}.footer>span{order:4}}
@media(max-width:700px){.footer-contact{gap:12px}.footer-contact a{display:inline-flex;align-items:center;min-height:36px;padding:5px 0}}
.thanks{min-height:100svh;display:grid;place-items:center;padding:35px;text-align:center}.thanks-inner{max-width:550px}.thanks img{width:90px;height:90px;object-fit:contain;margin:0 auto 20px}.thanks h1{font-size:clamp(42px,8vw,65px);margin:0 0 18px}.thanks p{font-size:15px;line-height:1.7;color:#666;margin-bottom:28px}.thanks .button{border-radius:999px}

/* Índice de proyectos independiente, generado a partir de proyectos.json. */
.projects-page{max-width:1420px;margin:0 auto;padding:42px 5.5% 100px}
.projects-page-head{max-width:840px;margin:32px 0 18px}
.projects-page-head h1{font-size:clamp(44px,5.5vw,72px);line-height:1.08;margin:15px 0 20px}
.projects-page-head>p:last-child{max-width:720px;color:var(--muted);font-size:15px;line-height:1.8}
.projects-page-gallery .filters{margin-bottom:25px}
.projects-page-cta{margin-top:74px;padding:34px 0 0;border-top:1px solid var(--line)}
.projects-page-cta h2{font-size:clamp(30px,3vw,42px);margin:0 0 12px}
.projects-page-cta p{color:var(--muted);font-size:14px;line-height:1.7;margin-bottom:22px}
@media(max-width:700px){.projects-page{padding:32px 6% 75px}.projects-page-head{margin:38px 0 18px}.projects-page-head h1{font-size:clamp(40px,9vw,54px)}.projects-page-head>p:last-child{font-size:13px}.projects-page-cta{margin-top:50px}}

/* Evita que elementos decorativos o flexibles creen un scroll horizontal global. */
html,body{width:100%;max-width:100%;overflow-x:hidden;overflow-x:clip}
.honeypot[hidden]{display:none!important}
.contact-grid>*,.contact-form>*{min-width:0;max-width:100%}
.footer,.footer-legal,.contact-grid,.contact-form{min-width:0}
@media(max-width:1000px){
  .footer{flex-wrap:wrap;justify-content:flex-start}
  .footer-legal{width:100%}
  .footer>span{width:100%}
}
@media(max-width:1000px){
  .footer-contact{gap:2px}
  .footer-contact a{min-height:0;padding:2px 0;text-decoration:underline;text-underline-offset:3px}
}
@media(max-width:700px){
  .footer-contact{gap:2px}
  .footer-contact a{min-height:0;padding:2px 0}
}

/* Opiniones públicas de Google, seleccionadas de forma estática. */
.reviews-preview{margin:44px 0 0;color:#fff}
.reviews-preview-head{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:22px}
.reviews-preview-head h3{font-size:clamp(25px,3vw,38px);line-height:1.15;margin:0 0 8px;color:#fff}
.reviews-preview-rating{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:205px;padding:0}
.reviews-preview-rating strong{font-size:27px;line-height:1}
.reviews-preview-rating span{color:#fff0a1;letter-spacing:2px;font-size:16px}
.reviews-preview-rating small{width:100%;font-size:11px;opacity:.85}
.reviews-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.reviews-preview-grid blockquote{min-width:0;min-height:175px;margin:0;padding:21px 22px;background:#fff;border-radius:8px;color:#1c1c1c;display:flex;flex-direction:column}
.reviews-preview-grid blockquote>span{color:#ad092a;letter-spacing:2px;font-size:15px}
.reviews-preview-grid blockquote p{font-size:15px;line-height:1.45;font-weight:600;margin:13px 0 17px}
.reviews-preview-grid blockquote footer{margin-top:auto;font-size:11px;font-weight:700}
.reviews-preview-grid blockquote footer small{font-weight:400;color:#696969}
.reviews-preview-link{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding-bottom:4px;color:#fff;text-decoration:underline;text-underline-offset:4px;font-size:12px;font-weight:700}
.reviews-preview-link:hover,.reviews-preview-link:focus-visible{color:#ffe1e8}
@media(max-width:700px){.reviews-preview{margin-top:32px}.reviews-preview-head{align-items:start;flex-direction:column;gap:18px}.reviews-preview-grid{grid-template-columns:1fr;gap:10px}.reviews-preview-grid blockquote{min-height:130px;padding:17px 18px}.reviews-preview-grid blockquote p{margin:9px 0 12px}}

/* La consulta conserva el rojo; mapa y reseñas forman una franja blanca completa. */
.contact-inner{padding-bottom:0}
.contact-lower{background:#fff;color:var(--ink)}
.contact-lower-inner{max-width:1600px;margin:0 auto;padding:45px max(5.5%,calc((100% - 1420px)/2)) 65px}
.contact-lower .contact-map{border-top:1px solid var(--line)}
.contact-lower .contact-map-info>div>span{color:var(--red)}
.contact-lower .contact-map-info>a{border-color:var(--red);color:var(--red)}
.contact-lower .contact-map-info>a:hover,.contact-lower .contact-map-info>a:focus-visible{background:var(--red);color:#fff}
.contact-lower .reviews-preview{color:var(--ink)}
.contact-lower .reviews-preview-head h3{color:var(--ink)}
.contact-lower .reviews-preview-rating span{color:var(--red)}
.contact-lower .reviews-preview-grid blockquote{background:var(--soft)}
.contact-lower .reviews-preview-link{color:var(--red)}
.contact-lower .reviews-preview-link:hover,.contact-lower .reviews-preview-link:focus-visible{color:var(--red-dark)}
@media(max-width:1000px){.contact-lower-inner{padding-left:7%;padding-right:7%}}
@media(max-width:700px){.contact-lower-inner{padding:32px 6% 50px}}

/* Ajustes de la franja de ubicación y opiniones. */
.contact-lower-inner{padding-top:18px;padding-bottom:46px}
.contact-lower .contact-map{border-top:0;padding-top:0}
.contact-lower .reviews-preview{margin-top:20px}
.contact-lower .reviews-preview-head{align-items:center;margin-bottom:18px}
.contact-lower .reviews-preview-head h3{margin:0}
.contact-lower .reviews-preview-rating{font-size:1.2em}
.contact-lower .reviews-preview-rating strong{font-size:32px}
.contact-lower .reviews-preview-rating span{font-size:19px}
.contact-lower .reviews-preview-rating small{font-size:12px}
.reviews-preview-link svg{width:18px;height:18px;flex:none}
.projects-bottom .projects-all-link{gap:16px}
.projects-all-link>span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--red);color:#fff;font:500 24px/1 var(--display)}
.projects-all-link:hover>span,.projects-all-link:focus-visible>span{background:var(--red-dark)}
.services{padding-bottom:68px}
.blog-preview{padding-top:68px}
@media(max-width:700px){.contact-lower-inner{padding-top:18px;padding-bottom:38px}.contact-lower .reviews-preview-head{align-items:flex-start}}
.reviews-preview-summary{display:flex;align-items:center;gap:18px}
.reviews-preview-controls{display:flex;gap:7px}
.reviews-preview-controls button{width:35px;height:35px;border:1px solid var(--red);border-radius:50%;background:#fff;color:var(--red);font-size:19px;line-height:1}
.reviews-preview-controls button:hover,.reviews-preview-controls button:focus-visible{background:var(--red);color:#fff}
.reviews-preview-controls button:disabled{border-color:#d9d5d3;color:#aaa;background:#fff;cursor:default}
.reviews-preview-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 28px)/3);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}
.reviews-preview-grid::-webkit-scrollbar{display:none}
.reviews-preview-grid blockquote{scroll-snap-align:start}
@media(max-width:900px){.reviews-preview-grid{grid-auto-columns:calc((100% - 14px)/2)}}
@media(max-width:700px){.reviews-preview-summary{width:100%;justify-content:space-between}.reviews-preview-grid{grid-template-columns:none;grid-auto-columns:min(82%,310px)}}
.contact-lower .reviews-preview-head{align-items:flex-start}
.reviews-preview-heading{min-width:0}
.reviews-preview-heading .reviews-preview-link{margin-top:14px}
.footer{border-top:1px solid var(--line)}
@media(max-width:700px){.reviews-preview-heading .reviews-preview-link{margin-top:10px;font-size:10px;gap:6px}.reviews-preview-heading .reviews-preview-link svg{width:14px;height:14px}}
.reviews-preview-summary{min-width:225px;flex-direction:column;align-items:flex-end;gap:6px}
@media(max-width:700px){.reviews-preview-summary{width:100%;flex-direction:row;align-items:center}}
.contact-lower-inner{padding-top:32px}
@media(max-width:700px){.contact-lower-inner{padding-top:28px}}
.windows-caption{display:none}
.legal-breadcrumb,.project-breadcrumb{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legal-breadcrumb{margin:-34px 0 43px}
.legal-breadcrumb .breadcrumb-back,.project-breadcrumb .breadcrumb-back{display:inline-flex;align-items:center;border:1px solid var(--red);border-radius:999px;padding:10px 15px;color:var(--red);font-weight:700}
.legal-breadcrumb .breadcrumb-back:hover,.project-breadcrumb .breadcrumb-back:hover{background:var(--red);color:#fff}
.project-breadcrumb{margin:0 0 18px}
.project-breadcrumb-trail{display:inline-flex;align-items:center;flex-wrap:wrap;gap:9px}
.project-breadcrumb-trail a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.project-sibling-nav{display:flex;justify-content:space-between;gap:16px;margin-bottom:32px}
.project-sibling-nav a{color:var(--red);font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){.legal-breadcrumb{margin:-30px 0 35px}.project-breadcrumb{align-items:flex-start;flex-direction:column;gap:11px}.project-breadcrumb-trail{font-size:11px}.project-sibling-nav{margin-bottom:25px}}
.project-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.project-navigation .project-breadcrumb,.project-navigation .project-sibling-nav{margin:0}
.project-navigation .project-sibling-nav{flex:none;gap:18px}
@media(max-width:700px){.project-navigation{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:22px}}

