/*
 * destino.css — piezas comunes de las páginas de destinos/ (generado a partir de ellas).
 * Cada página conserva en su <style> su paleta (:root) y da valor a las variables
 * --pd-* de esta hoja; solo lo que es propio de una página se queda en ella.
 */
.pd-wrap { max-width: 1180px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px); }
.pd-eyebrow { display: inline-flex; align-items: center; gap: 0.7rem; font: 700 12px/1 "Archivo", sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--pd-eyebrow); }
.pd-eyebrow--light { color: var(--pd-claro); }
.pd-display { font-family: "Instrument Serif", Georgia, serif; font-weight: 400; letter-spacing: -0.015em; line-height: 1.03; color: var(--pd-ink); font-size: clamp(40px, 6.2vw, 82px); }
.pd-display em { font-style: italic; color: var(--pd-acento); }
.pd-h2 { font-family: "Instrument Serif", Georgia, serif; font-weight: 400; letter-spacing: -0.01em; line-height: 1.08; color: var(--pd-ink); font-size: clamp(29px, 4vw, 50px); }
.pd-h2--light { color: #fff; }
.pd-lead { font: 400 clamp(16px, 1.35vw, 19px)/1.68 "Archivo", sans-serif; color: var(--pd-muted); }
.pd-serif-body { font-family: "Instrument Serif", Georgia, serif; font-size: clamp(19px, 1.9vw, 24px); line-height: 1.6; color: var(--pd-muted); }
.pd-body { font: 400 15px/1.72 "Archivo", sans-serif; color: var(--pd-muted); }
.pd-rule { height: 1px; background: var(--pd-hair); width: 100%; }
.pd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem; border-radius: 999px; padding: 1rem 2rem; font: 700 12px/1 "Archivo", sans-serif; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; cursor: pointer; border: 0; transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease, border-color 0.25s ease; }
.pd-btn--solid { background: var(--pd-terra); color: #fff; }
.pd-btn--ghost { border: 1px solid var(--pd-ink); color: var(--pd-ink); }
.pd-btn--light { border: 1px solid rgba(255, 255, 255, 0.4); color: #fff; }
.pd-link { color: var(--pd-acento); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 2px; transition: background-size 0.3s ease; }
.pd-link--terra { color: var(--pd-terra); }
.pd-hero { background: var(--pd-hero-fondo); }
.pd-factor { border-top: 1px solid var(--pd-hair); padding: 1.15rem 0; display: grid; grid-template-columns: auto 1fr; gap: 1rem; }
.pd-factor:last-child { border-bottom: 1px solid var(--pd-hair); }
.pd-factor__n { font-family: "Instrument Serif", Georgia, serif; font-size: 15px; color: var(--pd-faint); }
.pd-factor__t { font: 600 15px/1.4 "Archivo", sans-serif; color: var(--pd-ink); }
.pd-factor__d { margin-top: 0.25rem; font: 400 14px/1.65 "Archivo", sans-serif; color: var(--pd-muted); max-width: 60ch; }
.pd-step { position: relative; border-left: 1px solid var(--pd-hair); padding: 0 0 clamp(34px, 5vw, 56px) clamp(22px, 4vw, 44px); }
.pd-step:last-child { padding-bottom: 0; }
.pd-step::before { content: ""; position: absolute; left: -5px; top: 6px; width: 9px; height: 9px; border-radius: 999px; background: var(--pd-acento); }
.pd-step__n { font: 700 11px/1 "Archivo", sans-serif; letter-spacing: 0.16em; text-transform: uppercase; color: var(--pd-numero); }
.pd-step__t { font-family: "Instrument Serif", Georgia, serif; font-size: clamp(20px, 2.4vw, 26px); line-height: 1.2; color: var(--pd-ink); margin: 0.45rem 0 0.55rem; }
.pd-step__d { font: 400 15px/1.7 "Archivo", sans-serif; color: var(--pd-muted); max-width: 48ch; }
.pd-spec { background: var(--pd-oscuro); color: var(--pd-sobre-oscuro); }
.pd-spec__ph { width: 100%; aspect-ratio: 4 / 5; border-radius: 18px; background: var(--pd-ph-fondo); display: flex; align-items: flex-end; padding: 1.5rem; font: 500 11px/1.4 "Archivo", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pd-ph-texto); }
.pd-spec__quote { font-family: "Instrument Serif", Georgia, serif; font-style: italic; font-size: clamp(22px, 3vw, 34px); line-height: 1.32; color: #fff; }
.pd-fact { border-top: 1px solid rgba(255,255,255,0.16); padding-top: 0.9rem; }
.pd-fact dt { font: 600 10px/1 "Archivo", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pd-claro); }
.pd-fact dd { margin: 0.4rem 0 0; font: 400 14px/1.5 "Archivo", sans-serif; color: var(--pd-dato); }
.pd-trip { border: 1px solid var(--pd-hair); border-radius: 16px; background: var(--pd-tarjeta); overflow: hidden; }
.pd-trip + .pd-trip { margin-top: 1.25rem; }
.pd-trip > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: 1rem 1.5rem; align-items: start; padding: clamp(1.4rem, 3vw, 2.1rem); }
.pd-trip > summary::-webkit-details-marker { display: none; }
.pd-trip__kicker { font: 700 11px/1 "Archivo", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pd-etiqueta); display: block; margin-bottom: 0.6rem; }
.pd-trip__t { font-family: "Instrument Serif", Georgia, serif; font-size: clamp(22px, 2.8vw, 30px); line-height: 1.15; color: var(--pd-ink); }
.pd-trip__d { margin-top: 0.5rem; font: 400 14px/1.6 "Archivo", sans-serif; color: var(--pd-muted); max-width: 54ch; }
.pd-trip__meta { text-align: right; white-space: nowrap; }
.pd-trip__price span { display: block; font: 600 10px/1.4 "Archivo", sans-serif; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pd-faint); margin-top: 0.3rem; }
.pd-trip__toggle { margin-top: 0.9rem; font: 600 11px/1 "Archivo", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pd-toggle); }
.pd-trip[open] .pd-trip__toggle-open { display: none; }
.pd-trip__toggle-close { display: none; }
.pd-trip[open] .pd-trip__toggle-close { display: inline; }
.pd-trip__body { padding: 0 clamp(1.4rem, 3vw, 2.1rem) clamp(1.6rem, 3vw, 2.2rem); border-top: 1px solid var(--pd-hair); }
.pd-tl { margin-top: 1.5rem; }
.pd-tl__row { display: grid; grid-template-columns: 92px 1fr; gap: 1rem; padding: 0.7rem 0; border-top: 1px solid var(--pd-hair); }
.pd-tl__row:first-child { border-top: 0; }
.pd-tl__day { font: 700 11px/1.4 "Archivo", sans-serif; letter-spacing: 0.06em; text-transform: uppercase; color: var(--pd-etiqueta); padding-top: 2px; }
.pd-tl__place { font: 400 14px/1.6 "Archivo", sans-serif; color: var(--pd-muted); }
.pd-tl__place b { color: var(--pd-ink); font-weight: 600; }
.pd-way { border: 1px solid var(--pd-hair); border-radius: 16px; background: var(--pd-cream); overflow: hidden; }
.pd-way + .pd-way { margin-top: 1.25rem; }
.pd-way > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: 1rem 1.5rem; align-items: start; padding: clamp(1.4rem, 3vw, 2.1rem); }
.pd-way > summary::-webkit-details-marker { display: none; }
.pd-way__kicker { font: 700 11px/1 "Archivo", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pd-way-etiqueta); display: block; margin-bottom: 0.6rem; }
.pd-way__t { font-family: "Instrument Serif", Georgia, serif; font-size: clamp(22px, 2.8vw, 30px); line-height: 1.15; color: var(--pd-ink); }
.pd-way__d { margin-top: 0.5rem; font: 400 14px/1.6 "Archivo", sans-serif; color: var(--pd-muted); max-width: 54ch; }
.pd-way__meta { text-align: right; white-space: nowrap; }
.pd-way__price span { display: block; font: 600 10px/1.4 "Archivo", sans-serif; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pd-faint); margin-top: 0.3rem; }
.pd-way__toggle { margin-top: 0.9rem; font: 600 11px/1 "Archivo", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pd-way-toggle); }
.pd-way[open] .pd-way__toggle-open { display: none; }
.pd-way__toggle-close { display: none; }
.pd-way[open] .pd-way__toggle-close { display: inline; }
.pd-way__body { padding: 0 clamp(1.4rem, 3vw, 2.1rem) clamp(1.6rem, 3vw, 2.2rem); border-top: 1px solid var(--pd-hair); }
.pd-way__body ul { margin-top: 1.1rem; display: flex; flex-direction: column; gap: 0.55rem; }
.pd-way__body li { font: 400 14px/1.6 "Archivo", sans-serif; color: var(--pd-muted); padding-left: 1.1rem; position: relative; }
.pd-way__body li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 5px; height: 5px; border-radius: 999px; background: var(--pd-way-toggle); }
.pd-season { border: 1px solid var(--pd-hair); border-radius: 14px; padding: 1.6rem 1.5rem; background: var(--pd-temporada); }
.pd-season__t { font-family: "Instrument Serif", Georgia, serif; font-size: 23px; color: var(--pd-acento); line-height: 1.1; }
.pd-season__w { display: block; margin-top: 0.3rem; font: 600 10px/1.4 "Archivo", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--pd-faint); }
.pd-season__d { margin-top: 0.9rem; font: 400 13.5px/1.68 "Archivo", sans-serif; color: var(--pd-muted); }
.pd-rate { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem 1rem; align-items: baseline; padding: 0.95rem 0; border-top: 1px solid var(--pd-hair); }
.pd-rate:last-child { border-bottom: 1px solid var(--pd-hair); }
.pd-rate__t { font: 500 15px/1.4 "Archivo", sans-serif; color: var(--pd-ink); }
.pd-rate__t span { display: block; font-weight: 400; font-size: 13px; color: var(--pd-faint); margin-top: 0.15rem; }
.pd-rate__p { font-family: "Instrument Serif", Georgia, serif; font-size: 21px; color: var(--pd-tarifa); white-space: nowrap; }
.pd-stay { border: 1px solid var(--pd-hair); border-radius: 14px; padding: 1.7rem 1.6rem; background: var(--pd-tarjeta); display: flex; flex-direction: column; }
.pd-stay__loc { font: 600 10px/1 "Archivo", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pd-etiqueta); }
.pd-stay__n { font-family: "Instrument Serif", Georgia, serif; font-size: 24px; line-height: 1.1; color: var(--pd-ink); margin-top: 0.5rem; }
.pd-stay__d { margin-top: 0.7rem; font: 400 13.5px/1.68 "Archivo", sans-serif; color: var(--pd-muted); flex: 1; }
.pd-resort { border: 1px solid var(--pd-hair); border-radius: 14px; padding: 1.7rem 1.6rem; background: var(--pd-cream); display: flex; flex-direction: column; }
.pd-resort__tier { font: 600 10px/1 "Archivo", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pd-way-etiqueta); }
.pd-resort__n { font-family: "Instrument Serif", Georgia, serif; font-size: 24px; line-height: 1.1; color: var(--pd-ink); margin-top: 0.5rem; }
.pd-resort__loc { margin-top: 0.15rem; font: 400 12px/1.4 "Archivo", sans-serif; color: var(--pd-faint); }
.pd-resort__d { margin-top: 0.7rem; font: 400 13.5px/1.68 "Archivo", sans-serif; color: var(--pd-muted); flex: 1; }
.pd-combo { display: grid; grid-template-columns: auto 1fr auto; gap: 1.1rem; align-items: center; padding: 1.4rem 0; border-top: 1px solid var(--pd-hair); text-decoration: none; color: var(--pd-ink); transition: padding 0.3s ease; }
.pd-combo:last-child { border-bottom: 1px solid var(--pd-hair); }
.pd-combo__n { font-family: "Instrument Serif", Georgia, serif; font-size: clamp(20px, 2.4vw, 27px); line-height: 1.1; }
.pd-combo__d { display: block; margin-top: 0.3rem; font: 400 13.5px/1.55 "Archivo", sans-serif; color: var(--pd-muted); }
.pd-combo__idx { font-family: "Instrument Serif", Georgia, serif; font-size: 15px; color: var(--pd-faint); width: 1.4rem; }
.pd-combo__arrow { color: var(--pd-flecha); transition: transform 0.3s ease; }
.pd-quote { font-family: "Instrument Serif", Georgia, serif; font-style: italic; line-height: 1.34; color: var(--pd-ink); font-size: clamp(21px, 2.9vw, 33px); }
.pd-faq details { border-top: 1px solid var(--pd-hair); padding: 1.5rem 0; }
.pd-faq details:last-child { border-bottom: 1px solid var(--pd-hair); }
.pd-faq summary { display: flex; gap: 1rem; align-items: baseline; cursor: pointer; list-style: none; }
.pd-faq summary::-webkit-details-marker { display: none; }
.pd-faq .pd-faq__n { font-family: "Instrument Serif", Georgia, serif; font-size: 15px; color: var(--pd-numero); }
.pd-faq .pd-faq__q { flex: 1; margin: 0; font-family: "Instrument Serif", Georgia, serif; font-weight: 400; font-size: clamp(18px, 2vw, 23px); line-height: 1.28; color: var(--pd-ink); }
.pd-faq .pd-faq__pm { color: var(--pd-numero); font-size: 22px; line-height: 1; }
.pd-faq details[open] .pd-faq__pm-plus { display: none; }
.pd-faq .pd-faq__pm-minus { display: none; }
.pd-faq details[open] .pd-faq__pm-minus { display: inline; }
.pd-faq details p { margin: 0.9rem 0 0; padding-left: calc(15px + 1rem); font: 400 15px/1.72 "Archivo", sans-serif; color: var(--pd-muted); }
.pd-form-band { background: var(--pd-oscuro); color: var(--pd-sobre-oscuro); }
.pd-l { display: block; margin-bottom: 0.5rem; font: 600 11px/1 "Archivo", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pd-form-label); }
.pd-in { width: 100%; border: 0; border-bottom: 1px solid rgba(255,255,255,0.22); border-radius: 0; background-color: transparent; background-image: var(--pd-form-linea); background-size: 0% 2px; background-position: 0 100%; background-repeat: no-repeat; padding: 0.7rem 0; font: 400 16px/1.4 "Archivo", sans-serif; color: #fff; transition: background-size 0.35s cubic-bezier(0.16, 1, 0.3, 1); }
.pd-in::placeholder { color: var(--pd-ph-texto); }
.pd-in:focus { outline: none; background-size: 100% 2px; }
select.pd-in { appearance: none; padding-right: 1.5rem; }
select.pd-in option { color: var(--pd-form-option); }
textarea.pd-in { resize: vertical; min-height: 96px; }
.pd-select-wrap { position: relative; }
.pd-select-wrap::after { content: ""; position: absolute; right: 2px; top: 1rem; width: 8px; height: 8px; border-right: var(--pd-form-select-flecha); border-bottom: var(--pd-form-select-flecha); transform: rotate(45deg); pointer-events: none; }
.pd-submit { width: 100%; border: 0; cursor: pointer; background: var(--pd-terra); color: #fff; border-radius: 999px; padding: 1.15rem 2rem; font: 700 12px/1 "Archivo", sans-serif; letter-spacing: 0.16em; text-transform: uppercase; display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; transition: background-color 0.25s ease, transform 0.25s ease; }
.pd-mobilebar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; gap: 0.5rem; padding: 0.6rem 0.8rem calc(0.6rem + env(safe-area-inset-bottom, 0px)); background: var(--pd-barra-fondo); backdrop-filter: blur(12px); border-top: 1px solid var(--pd-hair); }
.pd-mobilebar a { flex: 1; text-align: center; border-radius: 999px; padding: 0.9rem; font: 700 11px/1 "Archivo", sans-serif; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }
.pd-mobilebar .is-primary { background: var(--pd-terra); color: #fff; }
.pd-mobilebar .is-ghost { border: 1px solid var(--pd-ink); color: var(--pd-ink); }

@media (min-width: 1024px) {
    .pd-mobilebar { display: none; }
}

@media (hover: hover) {
    .pd-btn--solid:hover { background: var(--pd-terra-dk); transform: translateY(-2px); }
    .pd-btn--ghost:hover { border-color: var(--pd-ghost-hover); color: var(--pd-ghost-hover); }
    .pd-btn--light:hover { background: #fff; color: var(--pd-oscuro); }
    .pd-link:hover { background-size: 0% 1px; }
    .pd-trip:hover { border-color: var(--pd-faint); }
    .pd-way:hover { border-color: var(--pd-faint); }
    .pd-combo:hover { padding-left: 0.8rem; }
    .pd-combo:hover .pd-combo__arrow { transform: translate(4px, -4px); }
    .pd-submit:hover { background: var(--pd-terra-dk); transform: translateY(-2px); }
}

@media (max-width: 640px) {
    .pd-trip > summary { grid-template-columns: 1fr; }
    .pd-trip__meta { text-align: left; }
    .pd-tl__row { grid-template-columns: 78px 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .pd-btn, .pd-link, .pd-trip, .pd-combo, .pd-combo__arrow, .pd-submit, .pd-in { transition: none !important; }
}

@media (max-width: 640px) {
    .pd-way > summary { grid-template-columns: 1fr; }
    .pd-way__meta { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
    .pd-btn, .pd-link, .pd-way, .pd-combo, .pd-combo__arrow, .pd-submit, .pd-in { transition: none !important; }
}

/* Formulario de solicitud (componente formulario-destino) */
.pd-form-legal { color: var(--pd-form-label); }
.pd-form-nota { color: var(--pd-form-nota); }
.pd-form-legal .pd-link, .pd-form-nota .pd-link { color: var(--pd-claro); }
