/* Final editorial art direction, shared with the Hero. */
#nosotros,#servicios,#proceso,#preguntas,#contacto{isolation:isolate}
.editorial-notes{position:absolute;top:var(--section-label-top);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;pointer-events:none;z-index:2;color:var(--navy-200);font-size:clamp(.55rem,.65vw,.75rem);font-weight:600;line-height:1.8;letter-spacing:.2em}
.editorial-notes p:last-child{text-align:right}
.section-wordmark{position:absolute;z-index:-1;bottom:-.08em;left:50%;transform:translateX(-50%);font-size:20vw;font-weight:900;letter-spacing:-.06em;line-height:.85;color:var(--navy-200);opacity:.045;pointer-events:none;white-space:nowrap}
#nosotros .section-wordmark{bottom:12%;font-size:16.5vw}
#contacto .section-wordmark{top:25%;bottom:auto;font-size:20vw}
.editorial-guard{position:absolute;z-index:-1;right:-3vw;bottom:0;width:35vw;height:78%;pointer-events:none;mask-image:linear-gradient(to right,transparent,black 30%),linear-gradient(to top,transparent,black 15%);mask-composite:intersect;opacity:.65}
.editorial-guard img{width:100%;height:100%;object-fit:cover;object-position:top center}
.about-principles{position:absolute;z-index:2;bottom:4svh;left:50%;transform:translateX(-50%);width:55%;display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:0;padding:0}
.about-principles li{display:flex;align-items:center;justify-content:center;gap:1rem;padding:0 1rem}.about-principles li+li{border-left:1px solid var(--border)}
.about-principles svg{width:34px;height:34px;flex-shrink:0;fill:none;stroke:var(--gold-500);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.about-principles strong{display:block;color:var(--navy-200);font-size:.6rem;letter-spacing:.15em;font-weight:600}.about-principles span{display:block;font-size:.65rem;color:var(--navy-200);line-height:1.4;margin-top:.25rem}
.faq-list{max-width:62rem;display:flex;flex-direction:column;gap:.45rem}.faq-item{border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--navy-900) 55%,transparent);overflow:hidden;transition:border-color .4s}.faq-item.is-open{border-color:color-mix(in srgb,var(--gold-500) 65%,var(--navy-300))}.faq-item::after{display:none}
.faq-item button{padding:.9rem 1.3rem;grid-template-columns:2.3rem 1fr 1.2rem;gap:1.2rem}.faq-number{border-right:1px solid var(--navy-300);padding-right:1rem}.is-open .faq-number{color:var(--gold-500);border-color:var(--gold-500)}.faq-answer p{padding:.2rem 2rem 1rem 4.8rem}.faq-item button:hover{translate:0;color:var(--gold-300)}
#contact-form{border-radius:12px;padding:1.6rem;border-color:color-mix(in srgb,var(--navy-300) 30%,transparent)}
.contact-details>div:not(.social-links){padding:.4rem 0 1rem;border-bottom:1px solid var(--border)}
@media(min-width:1024px){
 .nosotros .nosotros-portrait{width:34vw;max-height:76svh}
 .nosotros .section-container{padding-top:calc(var(--section-label-top) + 3rem);padding-bottom:8rem}
 .nosotros-stage{gap:clamp(1.25rem,3svh,2.4rem)}
 .nosotros-description p{max-width:61ch}
 .services-container{padding-top:calc(var(--section-label-top) + 2.5rem)}
 .service-widget{max-width:90rem;flex-basis:32rem}.services-heading{margin-bottom:.8rem}.service-copy{padding-left:clamp(3rem,7vw,8rem)}
 .process-container{padding-bottom:2rem}.process-list{max-width:86rem}.process-media{width:min(58%,43rem)}
 .contact-layout{max-width:70rem;grid-template-columns:1.7fr 1fr}
}
@media(min-width:1400px) and (min-height:760px){
 .nosotros h2,.services-heading h2,.standard-heading h2{font-size:clamp(3.3rem,3.6vw,4.5rem)}
 .nosotros-description p,.nosotros-description .nosotros-closing{font-size:1rem}
 .nosotros .nosotros-lock{margin-top:1rem}
 .faq-item button{font-size:1rem}.faq-answer p{font-size:.95rem}
}
@media(max-width:1023px){.editorial-notes{display:none}.about-principles{width:80%}.about-principles li{padding:0 .5rem;gap:.5rem}.editorial-guard{opacity:.22;width:45vw}.section-wordmark{font-size:24vw}}
@media(max-width:767px){.about-principles{display:none}.editorial-guard{display:none}.section-wordmark{bottom:1rem;opacity:.035}#nosotros .section-wordmark{bottom:2rem}.faq-item button{padding:.55rem .6rem;grid-template-columns:1.5rem 1fr 1rem;gap:.5rem}.faq-answer p{padding:.2rem .75rem .65rem 2.6rem}.faq-number{padding-right:.4rem}#contact-form{padding:.9rem}}
@media(max-height:700px){.about-principles{bottom:1rem}.about-principles svg{width:25px;height:25px}.faq-item button{padding:.45rem .7rem}.faq-answer p{padding-bottom:.5rem;font-size:.68rem}}
/* Contain decorative artwork, without widening the layout viewport. */
html,body{max-width:100%;overflow-x:clip}
#nosotros,#servicios,#proceso,#preguntas,#contacto{overflow-x:clip}
.standard-container,.contact-layout,.form-grid,.field,#contact-form,.contact-details{min-width:0;max-width:100%}
#preguntas .editorial-guard{left:-3vw;right:auto;mask-image:linear-gradient(to left,transparent,black 35%),linear-gradient(to top,transparent,black 15%)}
#contacto .editorial-guard{right:-3vw;left:auto}
@media(min-width:768px){.nosotros .nosotros-portrait--left{left:-5vw}.nosotros .nosotros-portrait--right{right:-5vw}}
.process-overlay{background:linear-gradient(to top,color-mix(in srgb,var(--navy-900) 30%,transparent),transparent 50%)}
#contacto .contact-layout{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);max-width:72rem;align-items:center}
#contact-form .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1.3rem}
#contact-form .message-field{grid-column:1/-1;margin-top:.5rem}
#contact-form .message-field textarea{min-height:108px;max-height:180px;padding-top:1.8rem}
#contact-form .form-actions{margin-top:1rem;align-items:center;justify-content:flex-end}
#contact-form .form-status:empty{display:none}
.phone-prefix{position:absolute;left:.4rem;top:1.35rem;display:flex;align-items:center;gap:.4rem;font-size:.8rem;pointer-events:none}
.phone-prefix svg{width:22px;height:15px}
#contact-form .phone-field input{padding-left:5.2rem}
#contact-form .phone-field label{top:.25rem;transform:none;font-size:.6rem;color:var(--gold-500)}
.contact-details .contact-detail{display:grid;grid-template-columns:46px minmax(0,1fr);gap:1rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--border)}
.detail-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--gold-500);border-radius:50%;color:var(--gold-500)}
.detail-icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.contact-detail p{margin:0;overflow-wrap:anywhere}.contact-detail .detail-label{margin-bottom:.4rem}
.field select:disabled{opacity:.5;cursor:not-allowed}
#contacto{height:auto;min-height:100svh}#contacto .standard-container{min-height:100svh;height:auto;padding-bottom:2rem}
@media(max-width:767px){#contacto .contact-layout{display:flex}#contact-form .form-grid{gap:.55rem .7rem}#contact-form .message-field textarea{min-height:120px}.phone-prefix{font-size:.7rem}#contact-form .phone-field input{padding-left:4.8rem}}
/* Contact stays within one viewport; compact screens use the existing two steps. */
#contacto{height:100svh;min-height:0;overflow:clip}
#contacto .standard-container{height:100%;min-height:0;padding-bottom:1rem;gap:clamp(.65rem,1.6svh,1.2rem)}
#contacto .contact-layout{min-height:0;flex:0 1 auto}
#contact-form{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
#contacto .editorial-guard,#preguntas .editorial-guard{height:85%;width:36vw;opacity:.55}
#contacto .editorial-guard img,#preguntas .editorial-guard img{object-fit:cover;object-position:center top}
.footer-legal{align-items:center}.site-footer .footer-top{margin-left:auto;display:inline-flex;align-items:center;gap:1rem;min-height:48px;padding:.7rem 1.25rem;border:1px solid var(--gold-500);border-radius:30px;color:var(--gold-500);font-size:.85rem;font-weight:600;white-space:nowrap}.footer-top span{font-size:1.4rem}.site-footer .footer-top:hover{background:var(--gold-500);color:var(--navy-900);text-decoration:none}
@media(min-height:821px) and (min-width:768px){#contact-form{padding:1.1rem 1.4rem}#contact-form .form-grid{gap:.35rem 1rem}#contact-form .message-field textarea{min-height:90px;height:90px}#contact-form .form-actions{margin-top:.6rem}}
@media(max-height:820px){#contacto .standard-heading h2{font-size:clamp(1.5rem,3vw,2.6rem)}#contact-form .message-field textarea{min-height:80px;height:80px}#contact-form{padding:.85rem 1rem}#contacto .contact-layout{max-height:calc(100svh - var(--section-label-top) - 9rem)}}
@media(max-width:767px){#contacto .contact-layout{flex:1;max-height:100%;justify-content:center}#contacto .editorial-guard,#preguntas .editorial-guard{display:none}.site-footer .footer-top{margin-left:auto}}
/* Single-page contact form: no hero heading or stepped fields. */
#contacto .standard-container{padding-top:calc(var(--section-label-top) + 2.5rem);justify-content:center}
#contacto .contact-layout{max-height:100%;align-items:center;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}
#contacto .contact-details{align-self:center;justify-content:center}
#contact-form{padding:1.15rem 1.4rem}
#contact-form .form-step{display:contents}
#contact-form .form-step[hidden]{display:contents}
#contact-form .form-grid{gap:.35rem 1rem}
#contact-form .form-actions{margin-top:.6rem}
#contact-form .message-field textarea{height:100px;min-height:100px}
#contact-form .form-progress,#contact-form .form-back,#contact-form .form-next{display:none}
@media(max-height:700px){#contact-form{padding:.65rem 1rem}#contact-form .form-grid{gap:.15rem .8rem}#contact-form .message-field textarea{height:75px;min-height:75px}#contact-form .field input,#contact-form .field select{min-height:42px}}
@media(max-width:767px){#contacto .contact-layout{display:flex;min-height:0;justify-content:center}#contact-form{padding:.75rem;flex:0 1 auto}#contact-form .form-grid{gap:.3rem .6rem}#contact-form .message-field textarea{min-height:85px;height:85px}}
/* Artwork deliberately enters from outside each side of the viewport. */
#preguntas .editorial-guard{left:-12vw;right:auto;width:40vw}
#contacto .editorial-guard{right:-12vw;left:auto;width:40vw}
@media(min-width:768px) and (max-width:1023px){#preguntas .editorial-guard{left:-18vw;width:50vw}#contacto .editorial-guard{right:-18vw;width:50vw}}
/* Mobile alignment and breathing room. */
@media(max-width:767px){
 #contacto .contact-layout{gap:0}
 #contacto .details-toggle{align-self:center;flex-shrink:0;margin:clamp(1.4rem,3.5svh,2rem) auto .4rem;padding:.65rem 1.15rem;text-align:center;min-height:48px}
 .nosotros .nosotros-portraits{height:clamp(12rem,34svh,21rem);flex-basis:clamp(12rem,34svh,21rem);min-height:10rem}
 .nosotros .nosotros-portrait{width:84vw;height:100%;object-fit:contain;object-position:center top}
 .nosotros .nosotros-portrait--left{left:-23vw}
 .nosotros .nosotros-portrait--right{right:-23vw}
 .site-footer{text-align:center}
 .footer-columns{justify-items:center;gap:2rem}
 .footer-columns>div{width:100%;max-width:30rem}
 .footer-brand>a,.footer-brand nav{justify-content:center}
 .footer-legal{justify-content:center;text-align:center}
 .site-footer .footer-top{margin:.5rem auto 0}
 .hero-copy{left:var(--gutter);right:var(--gutter);max-width:none;text-align:center;top:18%}
 .hero .eyebrow{justify-content:center}
 .hero-topline{justify-content:center;text-align:center}
 .hero .topline-right{display:none}
 .hero .professional{left:var(--gutter);right:var(--gutter);bottom:12%;text-align:center;max-width:none}
 .hero .detail-line{margin-inline:auto}
 .hero .hero-bottom{justify-content:center;text-align:center}
 .hero .edition>span{display:block;margin:.3rem 0 0}
 .hero .explore{bottom:3rem}
 .hero .portrait{left:50%;width:100%;height:55%;bottom:13%}
}
@media(max-width:767px) and (max-height:700px){
 .nosotros .nosotros-portraits{height:29svh;flex-basis:29svh;min-height:8rem}
 #contacto .details-toggle{margin-top:1.2rem}
 .hero .professional{bottom:13%}
 .hero .professional-note{display:none}
}
/* Compact Hero: dedicated rows prevent copy, portrait and cue from overlapping. */
@media(max-width:767px),(max-height:600px){
 .hero{display:grid;grid-template-rows:auto minmax(0,1fr) 48px;gap:clamp(.25rem,1.5svh,.75rem);padding-top:clamp(76px,12svh,96px);padding-bottom:max(.75rem,env(safe-area-inset-bottom));height:100svh}
 .hero .tagline,.hero .hero-link,.hero .professional,.hero .hero-topline,.hero .eyebrow,.hero .edition,.hero .bottom-note{display:none}
 .hero .hero-copy{position:relative;inset:auto;grid-row:1;width:100%;max-width:none;text-align:center;align-self:center}
 .hero h1{font-size:clamp(2rem,min(14vw,8svh),4.8rem);line-height:.92}
 .hero .portrait{position:relative;grid-row:2;inset:auto;left:auto;bottom:auto;transform:none;width:100%;height:100%;min-height:0;align-self:stretch;mask-image:linear-gradient(to bottom,var(--white) 70%,transparent 100%)}
 .hero .portrait img{height:100%;width:100%;object-fit:contain;object-position:center top}
 .hero .hero-bottom{position:relative;inset:auto;grid-row:3;width:100%;min-height:48px;padding:0;border:0;justify-content:center}
 .hero .explore{bottom:0;left:50%;height:48px;min-height:48px}
 .hero .backdrop-word{top:48%;pointer-events:none}
}
@media(max-height:400px){.hero{padding-top:68px;padding-bottom:.25rem;gap:.2rem;grid-template-rows:auto minmax(0,1fr) 44px}.hero h1{font-size:clamp(1.25rem,7svh,2rem)}.hero .explore{height:44px;min-height:44px}}
/* Phone-only refinements: separate content from imagery and keep controls in flow. */
@media(max-width:767px){
 .nosotros{justify-content:flex-start;padding-bottom:0}
 .nosotros .section-container{flex:1 1 auto;min-height:0;justify-content:center;padding-bottom:1rem}
 .nosotros-stage{gap:clamp(1rem,2.6svh,1.6rem)}
 .nosotros-description p{line-height:1.55}
 .nosotros-description p+p{margin-top:clamp(1rem,2.5svh,1.6rem)}
 .nosotros-description .nosotros-closing{margin-top:clamp(1rem,2.5svh,1.6rem)}
 .nosotros .nosotros-portraits{flex:0 1 32svh;height:32svh;min-height:9rem;margin-top:0}
 .nosotros .nosotros-portrait{bottom:0;object-position:center bottom}
 .hero{grid-template-rows:auto minmax(0,1fr) auto}
 .hero .hero-bottom{display:flex;flex-direction:column;gap:1rem;min-height:108px;padding-top:.3rem}
 .hero .hero-bottom .hero-link{display:inline-flex;justify-content:center;background:var(--grad-gold);color:var(--navy-900);border:1px solid var(--gold-500);border-radius:5px;min-height:44px;padding:.65rem 1.1rem;margin:0;font-size:.6rem;letter-spacing:.08em}
 .hero .hero-bottom .hero-link span{color:inherit}
 .hero .explore{position:relative;left:auto;bottom:auto;transform:none;animation:mobile-explore 2s ease-in-out infinite;height:44px;min-height:44px}
 .process-media{width:86%;aspect-ratio:4/3;border-radius:10px}
 #preguntas .standard-container{gap:clamp(1.6rem,4svh,2.2rem)}
 #contacto .contact-details.is-visible{position:relative;inset:auto;display:flex;order:0;width:100%;flex:1;min-height:0;justify-content:center;overflow-y:auto}
 #contacto .details-toggle{order:1}
 #contacto .contact-layout.showing-details{justify-content:center}
}
@keyframes mobile-explore{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(max-width:767px) and (max-height:700px){
 .nosotros-stage{gap:.8rem}.nosotros-description p+p,.nosotros-description .nosotros-closing{margin-top:.85rem}
 .nosotros .nosotros-portraits{height:27svh;flex-basis:27svh;min-height:7rem}
 .hero .hero-bottom{gap:.65rem;min-height:100px}
 #preguntas .standard-container{gap:1.25rem}
}
/* Final phone spacing: center the copy in the space between label and portraits. */
@media(max-width:767px){
 .nosotros{padding-top:calc(var(--section-label-top) + 1.1rem);padding-bottom:0}
 .nosotros .section-container{flex:1 1 0;justify-content:center;padding-block:.75rem;min-height:0}
 .nosotros .nosotros-portraits{flex:0 0 28svh;height:28svh;margin:0;min-height:0}
 #preguntas .standard-container{gap:clamp(2rem,5.5svh,3rem)}
 #preguntas .standard-heading{position:relative;top:-.5rem}
}
@media(max-width:767px) and (max-height:650px){
 .nosotros .nosotros-portraits{height:24svh;flex-basis:24svh}
 .nosotros .section-container{padding-block:.4rem}
 #preguntas .standard-container{gap:1.6rem}
 #preguntas .standard-heading{top:-.25rem}
}
/* Final optical alignment of the mobile about copy, including the lock. */
@media(max-width:767px){.nosotros .nosotros-stage{position:relative;top:clamp(.65rem,1.7svh,1rem)}}
@media(max-width:767px) and (max-height:650px){.nosotros .nosotros-stage{top:.4rem}}
