/* Adaptación común de contenido y controles, manteniendo la identidad ALPIN. */
:root{--radius:12px}
.button,.menu-toggle,.service-tab,.carousel-toggle,.carousel-toggle:hover,.back-top span{border-radius:var(--radius)}
.button{font-size:1rem;max-width:100%;min-height:48px}
.button-small{font-size:.875rem}
.button>span:last-child,.text-link>span{flex-shrink:0}
.text-link,.back-top{min-height:44px}
.field input,.field textarea,.field select,.faq-search input{border-radius:9px;font-size:1rem;min-height:48px}
.field label{font-size:.875rem}
.contact-form-shell{border-radius:16px;min-width:0}
.service-panel,.gallery-item{border-radius:12px}
.about-image>img{border-radius:12px}
.about-grid>*,.service-layout>*,.faq-grid>*,.contact-grid>*,.form-row>*,.contact-details>div>div{min-width:0}
h1,h2,h3,p,label,a,summary{overflow-wrap:break-word}
.contact-details a{overflow-wrap:anywhere}
.hero-actions{flex-wrap:wrap}
.hero h1{font-size:clamp(2.35rem,4.65vw,4.65rem)}
.hero-description,.about-copy>p:not(.eyebrow),.section-heading>p,.faq-intro>p:not(.eyebrow),.contact-copy>p:not(.eyebrow){font-size:1rem}
.service-tab{margin-bottom:5px}
.service-tab>span:nth-child(2){min-width:0;font-size:1rem}
.service-tab small{font-size:.875rem}
.service-panel p:not(.panel-kicker),.faq-content details>p,.about-details details>p{font-size:.9375rem}
.service-panel .text-link,.hero-actions .text-link,.gallery-footer .text-link{font-size:.875rem}
.contact-form-shell h3{font-size:clamp(1.5rem,2.1vw,1.85rem);line-height:1.35}
.mail-explainer{font-size:.875rem;line-height:1.65;color:var(--muted);margin:2px 0 20px}
.mail-options{margin-top:22px;text-align:center}
.mail-options>p{font-size:.8125rem;color:var(--muted);margin-bottom:12px}
.mail-providers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.mail-providers button,.copy-query{background:white;color:var(--blue);border:1px solid #c8d6e0;border-radius:9px;min-height:46px;padding:10px 8px;font-size:.875rem;font-weight:800;transition:background .2s,border-color .2s}
.mail-providers button:hover,.copy-query:hover{background:#edf4f8;border-color:var(--blue)}
.copy-query{border:0;margin-top:7px;padding:10px 16px;display:inline-flex;gap:14px;align-items:center}
.form-status{border-radius:6px;font-size:.875rem}
.copy-draft{margin-top:20px}
.form-alternative{font-size:.8125rem;line-height:1.9}
.form-alternative a{display:inline-block;padding:3px 0}
.legal-page h1{font-size:clamp(2rem,4vw,2.8rem)}
.legal-page p{font-size:1rem}
@media(max-width:1080px){
  :root{--header:80px}
  .utility{display:none}.header{background:#fff}.header-inner{min-height:80px}
  .brand{width:103px}.brand img{height:73px}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;background:transparent;border:1px solid var(--line);width:46px;height:46px;padding:11px;order:2}
  .menu-toggle span{display:block;background:var(--blue);height:2px;width:100%;transition:transform .2s}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
  .header nav{display:none;position:absolute;left:0;right:0;top:100%;background:white;padding:18px 24px 28px;box-shadow:0 12px 20px #07335715;border-top:1px solid var(--line);align-items:stretch;gap:0;max-height:calc(100dvh - 80px);overflow-y:auto}
  .header nav.is-open{display:flex;flex-direction:column}
  .nav-link{font-size:1rem;padding:15px 0;border-bottom:1px solid var(--line)}
  .nav-link:after{display:none}.nav-contact{margin:20px 0 0;font-size:1rem;padding:15px 20px}
  .contact-grid{grid-template-columns:1fr;gap:44px}
  .contact-details{grid-template-columns:1fr 1fr;gap:28px}
  .contact-form-shell{padding:clamp(24px,4vw,40px)}
}
@media(max-width:800px){
  .hero h1{font-size:clamp(2.35rem,7vw,3.5rem)}
  .hero-actions .button{font-size:.9375rem;min-height:50px}
  .service-tab>span:nth-child(2){font-size:.9375rem}
  .footer-bottom{flex-wrap:wrap;gap:12px 24px}
  .footer-bottom a{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:520px){
  .wrap{width:calc(100% - 40px)}
  .hero-inner{padding-top:42px}
  .hero h1{letter-spacing:-1.2px}
  .hero-actions{gap:10px 18px}
  .hero-actions .button{padding:14px 18px}
  .contact-details{grid-template-columns:1fr}
  .contact h2{font-size:clamp(2.15rem,9vw,2.75rem)}
  .contact-form-shell{padding:26px 20px}
  .service-panel-content{padding:28px 22px}
  .gallery-grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:270px;gap:14px}
  .gallery-main{grid-column:auto}
  .gallery-caption,.gallery-main .gallery-caption{font-size:1rem;left:20px;right:20px;bottom:20px}
  .gallery-caption small{font-size:.8125rem}
  .gallery-caption .expand-icon{width:38px;height:38px}
  .faq-content summary,.about-details summary{font-size:1rem}
  .footer-main{gap:18px}.footer-main>p{max-width:calc(100% - 110px)}
  .back-top{font-size:.875rem}.back-top span{width:40px;height:40px}
  .legal-page{padding:55px 0}
  .legal-page h1{overflow-wrap:anywhere}
}
@media(max-width:360px){
  .hero-actions{align-items:flex-start;flex-direction:column;gap:8px}
  .hero-actions .button{width:100%}
  .contact-form-shell{padding:24px 16px}
  .mail-providers{gap:6px}.mail-providers button{font-size:.8125rem;padding:10px 4px}
}
@media print{.mail-options{display:none}}
