/* Legibilidad e interacción a partir de UI/UX Pro Max. */
:root{--text-body:16px;--text-small:12px;--text-label:12px;--target-size:44px;--orange:#a24a23;--muted:#5f6353;--olive:#5d654b}
body{font-size:var(--text-body)}
.desktop-nav{font-size:12px;gap:28px}.desktop-nav a{min-height:44px;display:flex;align-items:center}.header-contact{font-size:12px;min-height:44px}
.button,.hero .button,.stage-contact,.contact-form>.button{font-size:14px}.button:active{transform:translateY(0)}.hero-intro{font-size:16px}
.eyebrow,.small-label,.hero-eyebrow,.land-heading .eyebrow,.location .eyebrow,.faq .eyebrow,.contact-copy>.eyebrow{font-size:11px}
.land-heading>p:not(.eyebrow),.location-copy>p:not(.eyebrow),.faq-intro>p:last-child,.faq-list details p,.contact-copy>p:not(.eyebrow){font-size:16px;line-height:1.8}.text-link{font-size:14px;min-height:44px}.amenity-note,.simulation-note,.form-note,.location-copy .location-note,.consent{font-size:12px!important;line-height:1.75}
.stage-detail>.small-label{font-size:11px}.stage-tabs button span{font-size:10px}.stage-facts>span{font-size:12px}.stage-facts strong{font-size:13px}.stage-facts{flex-wrap:wrap;gap:15px 20px}.simulator-heading{flex-wrap:wrap;gap:10px}.simulator-heading>span{font-size:10px;max-width:none;text-align:left}.simulator-row,.payment-result>span{font-size:13px}.term-row select{font-size:14px;min-height:44px}.payment-result small{font-size:11px}input[type=range]{height:6px;margin:24px 0 27px}input[type=range]::-webkit-slider-thumb{height:20px;width:20px}
.location-map{min-height:440px}.map-label,.map-bottom{font-size:10px}.faq-list summary{font-size:16px;line-height:1.6}
.contact-phone>span{font-size:12px}.contact-phone strong{font-size:17px}.form-field label{font-size:13px}.form-field input,.form-field select{font-size:16px}.consent input{width:20px;height:20px;min-width:20px}.consent input:checked:after{font-size:14px;line-height:18px;left:3px}.consent .privacy-link{display:inline-block;padding:5px 0}
.footer-bottom{font-size:11px;align-items:flex-start}.footer-bottom>span:last-child{font-size:9px;max-width:310px}.back-top{font-size:10px;line-height:1.8}.concept-caption{font-size:9px}.hero-coordinate{font-size:9px}.scroll-link{font-size:10px}dialog p:not(.eyebrow){font-size:16px}.dialog-close{width:44px;height:44px}
@media(max-width:1100px){.land-section{gap:38px}.hero-coordinate{display:none}}
@media(max-width:900px){.menu-toggle{width:44px;height:44px}.contact{gap:35px}.footer-top{flex-wrap:wrap}.back-top{max-width:160px}.stage-facts{flex-direction:column}.footer-bottom{flex-wrap:wrap}}
@media(max-width:640px){.hero{min-height:760px}.hero-content{padding-top:155px}.hero-eyebrow{font-size:10px}.hero-intro{font-size:16px}.hero .button{font-size:14px}.hero-bottom{bottom:26px}.hero-bottom .concept-caption{font-size:8px;max-width:170px}.scroll-link{font-size:9px;max-width:130px;line-height:1.8}.eyebrow{letter-spacing:.15em}.amenity-note{padding:20px 24px}.stage-detail,.simulator{padding-left:20px;padding-right:20px}.stage-tabs button span{font-size:9px}.stage-facts{flex-direction:column}.stage-facts strong{font-size:14px}.stage-price small{font-size:13px}.simulator-heading{display:block}.simulator-heading>span{display:block;margin-top:9px}.payment-result{align-items:flex-start;flex-direction:column;gap:12px}.payment-result>span{font-size:13px}.stage-contact{margin:20px;font-size:13px}.location-map{min-height:380px}.map-label,.map-bottom{font-size:9px}.faq-intro>p:last-child{max-width:100%}.faq-list summary{font-size:16px}.contact-copy>.eyebrow{max-width:100%}.contact-form>.button{font-size:13px}.footer-top{grid-template-columns:1fr;gap:25px}.footer-top>p{grid-row:auto}.back-top{max-width:none;font-size:10px}.footer-bottom{display:flex;padding-right:25px}.footer-bottom>span:last-child{font-size:9px}.floating-wa{bottom:max(16px,env(safe-area-inset-bottom))}.concept-caption{letter-spacing:.08em}}
@media(prefers-reduced-motion:reduce){.button:hover{transform:none}}

/* Auditoría P1: contraste AA,imagen optimizada y mínimo de 12 px. La leyenda del logotipo queda fuera porque forma parte de la marca. */
.form-field input::placeholder{color:var(--muted)}
.hero-picture{background-image:image-set(url('assets/plan-maestro-aereo.avif') type('image/avif'),url('assets/plan-maestro-aereo.webp') type('image/webp'))}
.eyebrow,.small-label,.hero-eyebrow,.land-heading .eyebrow,.location .eyebrow,.faq .eyebrow,.contact-copy>.eyebrow,dialog .eyebrow,.scroll-link,.concept-caption,.hero-bottom .concept-caption,.hero-coordinate,.stage-tabs button span,.stage-detail>.small-label,.simulator-heading>span,.stage-price small,.payment-result small,.map-label,.map-bottom,.back-top,.footer-bottom,.footer-bottom>span:last-child{font-size:var(--text-label);letter-spacing:.14em}
.map-place,.map-state,.map-sea{fill:var(--olive);letter-spacing:1px}
.map-place{font-size:15px}.map-state,.map-sea{font-size:13px}
.footer-bottom{color:#e7e3d4a8}
@media(max-width:900px){.map-place{font-size:21px}.map-state,.map-sea{font-size:20px}.map-mani{font-size:36px}}

/* Auditoría P2: aparición breve con curva de salida suave,en lugar del desvanecido largo y uniforme. */
.will-reveal{transform:translateY(12px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
.will-reveal.visible{opacity:1;transform:none}
/* Áreas táctiles de 44 px sin alterar el diseño: el deslizador dibuja su pista de 6 px dentro de una caja más alta. */
input[type=range]{height:44px;margin:3px 0 6px;background-size:100% 6px;background-position:center;background-repeat:no-repeat;background-color:transparent}
.footer-bottom .privacy-link{padding:12px 0;margin:-12px 0}
@media(prefers-reduced-motion:reduce){.will-reveal{opacity:1;transform:none}}

/* Polish: íconos SVG de un solo trazo (antes eran caracteres de texto que dependían de la fuente). */
.i{display:inline-block;width:1em;height:1em;flex:none;background-color:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat;vertical-align:-.14em}
.i-arrow{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M9 7h8v8'/%3E%3C/svg%3E")}
.i-right{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.i-left{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5'/%3E%3Cpath d='M11 6l-6 6 6 6'/%3E%3C/svg%3E")}
.i-up{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5'/%3E%3Cpath d='M6 11l6-6 6 6'/%3E%3C/svg%3E")}
.i-reset{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12a7.5 7.5 0 1 0 2.2-5.3'/%3E%3Cpath d='M4 4.5v4.5h4.5'/%3E%3C/svg%3E")}
.i-pause{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6v12'/%3E%3Cpath d='M15 6v12'/%3E%3C/svg%3E")}
.i-play{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 6v12l9-6z'/%3E%3C/svg%3E")}
.i-plus{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14'/%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E")}
.i-close{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12'/%3E%3Cpath d='M18 6 6 18'/%3E%3C/svg%3E")}
.button .i,.text-link .i,.header-contact .i,.back-top .i{font-size:20px}.faq-list summary .i{font-size:18px;color:var(--olive)}.dialog-close .i{font-size:22px}
.mobile-nav .i{font-size:20px;vertical-align:-.05em}.contact-phone strong .i{font-size:.8em}.hero-offer .i{font-size:1.1em}.buy-nav .text-link .i{font-size:16px}
.consent input:checked:after{content:'';inset:2px;left:2px;width:auto;height:auto;background:var(--cream);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat}

/* Polish: superficies del navegador con la paleta. */
html{accent-color:var(--green);caret-color:var(--orange);scrollbar-color:#a3aa8c var(--paper)}
::selection{background:#ddcfa9;color:var(--deep)}
.legal ::selection,.offer-featured ::selection,.footer ::selection,.hero ::selection{background:#e0b789;color:var(--deep)}
a{text-underline-offset:.22em}
h1,h2,h3{text-wrap:balance}p,li,summary{text-wrap:pretty}
.hero-intro{max-width:27em;text-wrap:balance}

/* Polish: cifras que cambian sin mover el diseño; pasos con números alineados. */
#down-output,#stage-availability,.lot strong,.lot span,.buy-summary dd{font-variant-numeric:tabular-nums}
.footer-bottom>span:first-child{letter-spacing:.03em}

/* Polish: elevar al pasar el mouse solo con puntero; ligera presión al tocar. */
@media(hover:none){.button:hover,.floating-wa:hover{transform:none}.button:hover span,.text-link:hover span{transform:none}}
.button:active{transform:scale(.98)}
.lot,.pay-option,.stage-picker button{transition:background-color .15s,border-color .15s,color .15s,transform .12s ease-out}
.lot:active:not(:disabled),.pay-option:active,.stage-picker button:active{transform:scale(.97)}

/* Polish: los cuadros de diálogo entran con suavidad en lugar de aparecer de golpe. */
dialog[open]{animation:dialog-in .24s cubic-bezier(.16,1,.3,1)}
dialog[open]::backdrop{animation:fade-in .24s ease-out}
@keyframes dialog-in{from{opacity:0;transform:translateY(10px) scale(.985)}}
@media(prefers-reduced-motion:reduce){dialog[open],dialog[open]::backdrop{animation:none}.button:active,.lot:active,.pay-option:active{transform:none}}
