/* ==========================================================================
   CSD Experience — Fase 2: landings, líneas de producto, grupos, especialidades,
   receptivo, A la Carta, reserva, blog y guías. Valores = clases Tailwind de cada
   componente Base44 (LandingPageTemplate, ModuloHeader, CircuitosExpediciones,
   ExperienciasLujo, ViajesIncentivo, GruposCatalogo, LineaProductoTemplate,
   ReceptivoInternacional, CatalogoViajesMinorista, ReservaResultado, Blog, GuiaDetalle).
   ========================================================================== */

.csd-container--2xl { max-width: 42rem; }
.csd-clamp3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.csd-inline-ico { display: inline-block; vertical-align: -2px; margin-right: .25rem; }

/* Migas de pan */
.csd-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .75rem; font-size: .875rem; line-height: 1.25rem; }
.csd-crumbs a { color: rgb(255 255 255 / .5); transition: color .15s; }
.csd-crumbs a:hover { color: var(--dk-teal); }
.csd-crumbs > span:last-child, .csd-crumbs [aria-current] { color: var(--dk-teal); }
.csd-crumbs .csd-icon { color: rgb(255 255 255 / .3); }
.csd-crumbs--center { justify-content: center; margin-bottom: 1rem; }
.csd-crumbs--trip [aria-current] { max-width: min(60vw, 32rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csd-crumbs--slash { margin: 0 0 .25rem; }
.csd-crumbs--slash > span[aria-hidden] { color: rgb(255 255 255 / .5); }
.csd-crumbs__last { color: rgb(255 255 255 / .7) !important; max-width: 60vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Etiqueta oscura (tag) */
.csd-tagdk { display: inline-block; background: rgb(184 151 42 / .2); border: 1px solid rgb(184 151 42 / .6); color: var(--dk-gold-light); font-size: .75rem; line-height: 1rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .25rem .75rem; border-radius: 9999px; margin-bottom: .75rem; }
.csd-tagdk--xs { font-size: 10px; }
.csd-kicker-dk { color: var(--dk-teal); font-size: .75rem; line-height: 1rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.csd-dkhead { text-align: center; margin-bottom: 2.5rem; }
.csd-dkhead h2 { font-size: 1.5rem; line-height: 2rem; font-weight: 700; margin-top: .5rem; color: #fff; }
@media (min-width: 768px) { .csd-dkhead h2 { font-size: 1.875rem; line-height: 2.25rem; } }
.csd-rule-dk--sm { width: 3rem; margin-top: .75rem; }

/* ---------- Landing (LandingPageTemplate) ---------- */
.csd-land-hero { position: relative; height: 70vh; min-height: 500px; display: flex; align-items: flex-end; overflow: hidden; background: #0a1f44; }
.csd-land-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--dk-bg), rgb(3 14 31 / .4), transparent); }
.csd-land-hero__content { position: relative; z-index: 10; width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 1rem 3.5rem; }
.csd-land-h1 { font-size: 2.25rem; line-height: 1.25; font-weight: 900; color: #fff; margin-bottom: .75rem; }
@media (min-width: 768px) { .csd-land-h1 { font-size: 3.75rem; line-height: 1; } }
.csd-land-sub { color: rgb(255 255 255 / .7); font-size: 1.125rem; line-height: 1.75rem; max-width: 42rem; }
.csd-land-paqs { padding: 4rem 1rem; }
.csd-land-paqs .csd-container { padding: 0; }
.csd-tabs { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-bottom: 2rem; }
.csd-tab { padding: .5rem 1rem; border-radius: 9999px; font-size: .875rem; line-height: 1.25rem; font-weight: 600; border: 1px solid rgb(184 151 42 / .3); color: rgb(255 255 255 / .7); transition: all .15s; }
.csd-tab:hover { border-color: var(--dk-teal); color: var(--dk-teal); }
.csd-tab.is-active { background: var(--dk-gold); border-color: var(--dk-gold); color: var(--dk-bg); }
.csd-land-paq { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 768px) { .csd-land-paq { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.csd-land-paq__img { border-radius: 1rem; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--shadow-2xl); }
.csd-land-paq__img img, .csd-land-paq__img .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; }
.csd-land-paq h3 { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: #fff; margin-bottom: .5rem; }
.csd-land-paq__meta { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; font-size: .875rem; color: rgb(255 255 255 / .6); line-height: 1.25rem; }
.csd-land-paq__meta span { display: flex; align-items: center; gap: .25rem; }
.csd-land-paq__meta .csd-icon { color: var(--dk-teal); }
.csd-land-paq__desc { color: rgb(255 255 255 / .7); line-height: 1.625; margin-bottom: 1.5rem; }
.csd-land-paq__inc { margin-bottom: 1.5rem; }
.csd-land-paq__inc h4 { color: var(--dk-gold-light); font-weight: 700; font-size: .875rem; margin-bottom: .75rem; line-height: 1.25rem; }
.csd-land-paq__inc ul { display: grid; gap: .25rem; }
.csd-land-paq__inc li { display: flex; align-items: center; gap: .5rem; font-size: .875rem; color: rgb(255 255 255 / .7); line-height: 1.25rem; }
.csd-land-paq__inc .csd-icon { color: var(--dk-teal); }
.csd-land-paq__ficha { margin-top: 1rem; }
.csd-land-paq__ficha a { display: inline-flex; align-items: center; gap: .25rem; color: var(--dk-teal); font-weight: 600; font-size: .875rem; line-height: 1.25rem; }
.csd-land-paq__ficha a:hover { text-decoration: underline; }
.csd-pricebox { background: var(--dk-card); border: 1px solid rgb(184 151 42 / .3); border-radius: .75rem; padding: 1rem; margin-bottom: 1.5rem; }
.csd-pricebox__lbl { color: rgb(255 255 255 / .5); font-size: .75rem; margin-bottom: .125rem; line-height: 1rem; }
.csd-pricebox__num { font-size: 1.875rem; line-height: 2.25rem; font-weight: 900; color: var(--dk-gold-light); }
.csd-pricebox__num span { font-size: .875rem; font-weight: 400; color: rgb(255 255 255 / .5); line-height: 1.25rem; }
.csd-land-itin { margin-top: 2.5rem; }
.csd-land-itin > h4 { color: var(--dk-gold-light); font-weight: 700; font-size: .875rem; margin-bottom: 1.25rem; letter-spacing: .1em; text-transform: uppercase; line-height: 1.25rem; }
.csd-days { display: grid; gap: 1rem; }
.csd-day { display: flex; gap: .75rem; }
.csd-day__media { flex-shrink: 0; width: 8rem; aspect-ratio: 4 / 3; border-radius: .75rem; overflow: hidden; position: relative; border: 1px solid rgb(184 151 42 / .2); }
.csd-day__media img, .csd-day__media .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; }
.csd-day__num { position: absolute; top: .375rem; left: .375rem; background: rgb(184 151 42 / .9); color: var(--dk-bg); font-size: 10px; font-weight: 700; padding: .125rem .5rem; border-radius: 9999px; }
.csd-day__txt { min-width: 0; flex: 1 1 0%; padding-top: .125rem; }
.csd-day__txt h4 { color: #fff; font-weight: 600; font-size: .875rem; line-height: 1.25; }
.csd-day__txt p { color: rgb(255 255 255 / .55); font-size: .75rem; line-height: 1.625; margin-top: .25rem; }
.csd-days--sep .csd-day { padding-bottom: 1rem; border-bottom: 1px solid rgb(255 255 255 / .1); }
.csd-days--sep .csd-day:last-child { border-bottom: 0; }
.csd-days--sep .csd-day__txt p { color: rgb(255 255 255 / .6); }
.csd-land-info { padding: 3.5rem 1rem; background: rgb(10 31 68 / .3); }
.csd-land-info .csd-container { padding: 0; }
.csd-infocard { background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: 1rem; padding: 1.25rem; }
.csd-land-todos { text-align: center; margin-top: 2rem; }
.csd-land-todos a { display: inline-flex; align-items: center; gap: .375rem; padding: .75rem 1.5rem; border: 1px solid var(--dk-teal); color: var(--dk-teal); font-weight: 600; border-radius: 9999px; text-decoration: none; }
.csd-land-todos a:hover, .csd-land-todos a:focus-visible { background: var(--dk-teal); color: #fff; }
.csd-infocard h3, .csd-infocard h4 { color: var(--dk-teal); font-weight: 700; font-size: .875rem; margin-bottom: .5rem; line-height: 1.25rem; }
.csd-infocard p { color: rgb(255 255 255 / .6); font-size: .875rem; line-height: 1.625; }
.csd-land-faq { padding: 4rem 1rem; }
.csd-faq { display: grid; gap: .5rem; }
.csd-faq__item { background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: .75rem; overflow: hidden; }
.csd-faq__q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; text-align: left; color: #fff; font-weight: 500; font-size: .875rem; transition: color .15s; line-height: 1.25rem; }
.csd-faq__q:hover { color: var(--dk-teal); }
.csd-faq__chev { color: rgb(255 255 255 / .4); transition: transform .15s; }
.csd-faq__q[aria-expanded="true"] .csd-faq__chev { transform: rotate(90deg); color: var(--dk-teal); }
.csd-faq__a { padding: 0 1.25rem 1rem; color: rgb(255 255 255 / .6); font-size: .875rem; line-height: 1.625; border-top: 1px solid rgb(184 151 42 / .1); }
.csd-land-cta { padding: 4rem 1rem; background: rgb(10 31 68 / .5); text-align: center; }
.csd-land-cta h2 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; color: #fff; margin-bottom: 1rem; }
.csd-land-cta h2 span { color: var(--dk-gold-light); }
.csd-land-cta p { color: rgb(255 255 255 / .6); margin-bottom: 2rem; }
.csd-cta-row--center { justify-content: center; max-width: 42rem; margin: 0 auto; }

/* ---------- Cabecera de módulo (ModuloHeader) ---------- */
.csd-modhead { position: relative; padding: 7rem 1rem 2.5rem; overflow: hidden; }
.csd-modhead__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .25; }
.csd-modhead__shade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgb(3 14 31 / .9), rgb(3 14 31 / .85), var(--dk-bg)); }
.csd-modhead__inner { position: relative; z-index: 10; max-width: 56rem; margin: 0 auto; text-align: center; }
.csd-modhead .csd-eyebrow { margin-bottom: 1rem; }
.csd-modhead h1 { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; color: #fff; }
@media (min-width: 768px) { .csd-modhead h1 { font-size: 3rem; line-height: 1; } }
.csd-modhead p { color: rgb(255 255 255 / .7); margin: 1rem auto 0; font-size: 1rem; max-width: 42rem; }
@media (min-width: 768px) { .csd-modhead p { font-size: 1.125rem; line-height: 1.75rem; } }

/* ---------- Líneas: circuitos / experiencias / empresas ---------- */
.csd-linea-sec { padding: 4rem 1rem; }
.csd-linea-sec .csd-container { padding: 0; }
.csd-dkchips { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-bottom: 2.5rem; }
.csd-dkchip { display: flex; align-items: center; gap: .375rem; padding: .5rem 1rem; border-radius: 9999px; font-size: .875rem; line-height: 1.25rem; font-weight: 600; border: 1px solid rgb(184 151 42 / .3); color: rgb(255 255 255 / .7); transition: all .15s; }
.csd-dkchip:hover { border-color: var(--dk-teal); color: var(--dk-teal); }
.csd-dkchip.is-active { background: var(--dk-gold); border-color: var(--dk-gold); color: var(--dk-bg); }
.csd-counter { text-align: center; color: rgb(255 255 255 / .4); font-size: .75rem; margin-bottom: 1.5rem; line-height: 1rem; }
.csd-lcard { display: flex; flex-direction: column; border-radius: 1rem; overflow: hidden; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); box-shadow: var(--shadow-lg); transition: all .15s; color: #fff; }
.csd-lcard[hidden] { display: none; }
.csd-lcard--hover:hover { border-color: rgb(78 205 196 / .6); transform: translateY(-.25rem); }
.csd-lcard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.csd-lcard__media img, .csd-lcard__media .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.csd-lcard:hover .csd-lcard__media img { transform: scale(1.1); }
.csd-lcard__badge { position: absolute; top: .75rem; left: .75rem; background: rgb(184 151 42 / .9); color: var(--dk-bg); font-size: 10px; font-weight: 700; padding: .25rem .5rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: .05em; }
.csd-lcard__badge--static { position: static; display: inline-block; padding: .25rem .75rem; margin-bottom: .75rem; }
.csd-lcard__price { position: absolute; bottom: .75rem; right: .75rem; background: rgb(3 14 31 / .85); backdrop-filter: blur(8px); color: var(--dk-gold-light); font-weight: 700; font-size: .875rem; padding: .375rem .75rem; border-radius: 9999px; line-height: 1.25rem; }
.csd-lcard__body { padding: 1.25rem; display: flex; flex-direction: column; flex: 1 1 0%; }
.csd-lcard__body h3 { color: #fff; font-weight: 700; font-size: 1.125rem; line-height: 1.25; margin-bottom: .25rem; }
.csd-lcard__body h3 a:hover { color: var(--dk-teal); }
.csd-lcard__loc { display: flex; align-items: center; gap: .25rem; color: rgb(255 255 255 / .5); font-size: .75rem; margin-bottom: .75rem; line-height: 1rem; }
.csd-lcard__desc { color: rgb(255 255 255 / .6); font-size: .875rem; line-height: 1.625; margin-bottom: .5rem; }
.csd-lcard--link .csd-lcard__desc { margin-bottom: 1rem; }
.csd-lcard__cta { margin-top: auto; }
.csd-lcard__more { margin-top: auto; display: inline-flex; align-items: center; gap: .25rem; color: var(--dk-teal); font-size: .875rem; font-weight: 600; line-height: 1.25rem; }
.csd-lcard--link:hover .csd-lcard__more .csd-icon { transform: translateX(.25rem); }
.csd-lcard--link .csd-icon { transition: transform .15s; }
.csd-btn-prop { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; background: rgb(78 205 196 / .1); border: 1px solid rgb(78 205 196 / .4); color: var(--dk-teal); font-weight: 600; font-size: .875rem; padding: .5rem 1rem; border-radius: 9999px; transition: background .15s; line-height: 1.25rem; }
.csd-btn-prop:hover { background: rgb(78 205 196 / .2); }
.csd-reveal { margin-top: 1rem; }
.csd-reveal__btn { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 1px solid rgb(184 151 42 / .4); color: var(--dk-gold-light); font-weight: 600; font-size: .75rem; padding: .5rem .75rem; border-radius: 9999px; transition: border-color .15s; line-height: 1rem; }
.csd-reveal__btn:hover { border-color: var(--dk-gold); }
.csd-reveal__chev { transition: transform .15s; }
.csd-reveal__btn[aria-expanded="true"] .csd-reveal__chev { transform: rotate(180deg); }
.csd-reveal__panel { margin-top: 1rem; border-radius: 1rem; border: 1px solid rgb(184 151 42 / .2); background: rgb(3 14 31 / .6); padding: 1rem; animation: csd-fade .35s ease-out; }
.csd-reveal__msg { margin-bottom: 1rem; border-radius: .75rem; border: 1px solid rgb(184 151 42 / .3); background: rgb(10 31 68 / .6); padding: .75rem; }
.csd-reveal__msg p { color: rgb(255 255 255 / .75); font-size: .75rem; line-height: 1.625; margin-bottom: .125rem; }
.csd-reveal__msg span { color: var(--dk-teal); margin-right: .25rem; }
.csd-reveal .csd-day__txt p { color: rgb(255 255 255 / .6); }
@keyframes csd-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Desplegable (Experiencias / Grupos) */
.csd-selwrap { display: flex; justify-content: center; margin-bottom: 2rem; }
.csd-sel { position: relative; }
.csd-sel__btn { display: flex; align-items: center; gap: .5rem; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .4); color: #fff; font-weight: 600; padding: .75rem 1.25rem; border-radius: 9999px; box-shadow: var(--shadow-lg); transition: border-color .15s; }
.csd-sel__btn:hover { border-color: var(--dk-gold); }
.csd-sel__btn > span:nth-child(2) { font-size: .875rem; line-height: 1.25rem; }
.csd-sel__ico { font-size: 1.125rem; line-height: 1; }
.csd-sel__chev { transition: transform .15s; }
.csd-sel__btn[aria-expanded="true"] .csd-sel__chev { transform: rotate(180deg); }
.csd-sel__btn[aria-expanded="true"] .csd-sel__chev--r { transform: rotate(90deg); }
.csd-sel__menu { position: absolute; top: calc(100% + .5rem); left: 50%; transform: translateX(-50%); width: 18rem; z-index: 30; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .4); border-radius: 1rem; box-shadow: var(--shadow-2xl); padding: .5rem; animation: csd-fade .35s ease-out; }
.csd-sel__menu::before { content: ""; position: absolute; top: -.5rem; left: 0; right: 0; height: .5rem; }
.csd-sel__menu--scroll { max-height: 60vh; overflow-y: auto; }
.csd-sel__opt { width: 100%; display: flex; align-items: center; gap: .625rem; padding: .625rem .75rem; border-radius: .75rem; font-size: .875rem; text-align: left; color: rgb(255 255 255 / .8); transition: all .15s; line-height: 1.25rem; }
.csd-sel__opt:hover, .csd-sel__opt:focus-visible { background: rgb(255 255 255 / .05); color: var(--dk-teal); }
.csd-sel__opt.is-active { background: rgb(184 151 42 / .2); color: var(--dk-gold-light); font-weight: 600; }

/* Ficha de circuito (?circ=ID) */
.csd-circ { display: grid; gap: 2rem; align-items: start; margin-top: 1.5rem; }
@media (min-width: 768px) { .csd-circ { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.csd-circ__img { border-radius: 1rem; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--shadow-2xl); border: 1px solid rgb(184 151 42 / .2); }
.csd-circ__img img, .csd-circ__img .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; }
.csd-circ__h1 { font-size: 1.5rem; line-height: 1.25; font-weight: 900; color: #fff; margin-bottom: .75rem; }
@media (min-width: 768px) { .csd-circ__h1 { font-size: 1.875rem; line-height: 2.25rem; } }
.csd-circ__loc { display: flex; align-items: center; gap: .25rem; color: rgb(255 255 255 / .6); font-size: .875rem; margin-bottom: 1rem; line-height: 1.25rem; }
.csd-circ__loc .csd-icon { color: var(--dk-teal); }
.csd-circ__desc { color: rgb(255 255 255 / .7); line-height: 1.625; margin-bottom: 1.5rem; }
.csd-linea-sec .csd-land-itin { margin-top: 2rem; }

/* ---------- Grupos (GruposCatalogo) ---------- */
.csd-grupos { padding: 3rem 1rem; }
.csd-grupos .csd-container { padding: 0; }
.csd-lcard--link { text-decoration: none; }
.csd-gdet { border-radius: 1.5rem; overflow: hidden; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .3); box-shadow: var(--shadow-2xl); }
.csd-gdet__hero { position: relative; height: 40vh; min-height: 280px; }
.csd-gdet__hero img, .csd-gdet__hero .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; }
.csd-gdet__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--dk-card), rgb(10 31 68 / .3), transparent); }
.csd-gdet__head { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.5rem; }
@media (min-width: 768px) { .csd-gdet__head { padding: 2rem; } }
.csd-gdet__head h1 { font-size: 1.5rem; line-height: 1.25; font-weight: 700; color: #fff; }
@media (min-width: 768px) { .csd-gdet__head h1 { font-size: 2.25rem; line-height: 2.5rem; } }
.csd-gdet__meta { display: flex; align-items: center; gap: .375rem; color: rgb(255 255 255 / .7); font-size: .875rem; margin-top: .5rem; line-height: 1.25rem; }
.csd-gdet__body { padding: 1.5rem; }
@media (min-width: 768px) { .csd-gdet__body { padding: 2rem; } }
.csd-gdet__desc { color: rgb(255 255 255 / .75); line-height: 1.625; font-size: 1rem; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .csd-gdet__desc { font-size: 1.125rem; line-height: 1.75rem; } }
.csd-gdet__msg { margin-bottom: 2rem; border-radius: .75rem; border: 1px solid rgb(184 151 42 / .3); background: rgb(3 14 31 / .5); padding: 1rem; }
.csd-gdet__msg p { color: rgb(255 255 255 / .75); font-size: .875rem; line-height: 1.625; margin-bottom: .125rem; }
.csd-gdet__msg span { color: var(--dk-teal); margin-right: .25rem; }
.csd-gdet__h3 { color: var(--dk-teal); font-weight: 700; font-size: .875rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .75rem; line-height: 1.25rem; }
.csd-gdet__inc { display: grid; gap: .5rem; margin-bottom: 2rem; }
@media (min-width: 640px) { .csd-gdet__inc { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.csd-gdet__inc div { display: flex; align-items: flex-start; gap: .5rem; color: rgb(255 255 255 / .7); font-size: .875rem; line-height: 1.25rem; }
.csd-gdet__inc .csd-icon { color: var(--dk-teal); margin-top: .125rem; }

/* ---------- Especialidades (LineaProductoTemplate) ---------- */
.csd-esp-hero { position: relative; height: 60vh; min-height: 440px; display: flex; align-items: flex-end; overflow: hidden; padding-top: 5rem; }
.csd-esp-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.csd-esp-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--dk-bg), rgb(3 14 31 / .5), transparent); }
.csd-esp-h1 { font-size: 2.25rem; line-height: 1.25; font-weight: 700; color: #fff; margin-bottom: .75rem; }
@media (min-width: 768px) { .csd-esp-h1 { font-size: 3rem; line-height: 1; } }
.csd-esp-intro { padding: 4rem 1rem; text-align: center; }
.csd-esp-intro .csd-container { padding-inline: 0; } /* section px-4 > div max-w-3xl (sin relleno propio) */
.csd-esp-intro p { color: rgb(255 255 255 / .8); font-size: 1.125rem; line-height: 1.625; }
.csd-esp-feat { padding: 3rem 1rem; background: rgb(10 31 68 / .3); }
.csd-esp-feat .csd-container, .csd-esp-gal .csd-container, .csd-esp-rel .csd-container { padding: 0; }
.csd-featcard { background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: 1rem; padding: 1.5rem; }
.csd-featcard__ico { font-size: 1.875rem; line-height: 2.25rem; margin-bottom: .75rem; }
.csd-featcard h3 { color: var(--dk-teal); font-weight: 700; font-size: 1.125rem; margin-bottom: .5rem; line-height: 1.75rem; }
.csd-featcard p { color: rgb(255 255 255 / .6); font-size: .875rem; line-height: 1.625; }
.csd-esp-gal { padding: 4rem 1rem; }
.csd-gal3 { display: grid; gap: 1rem; }
@media (min-width: 768px) { .csd-gal3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.csd-gal3__item { border-radius: 1rem; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--shadow-xl); }
.csd-gal3__item img, .csd-gal3__item .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.csd-gal3__item img:hover { transform: scale(1.05); }
.csd-esp-rel { padding: 4rem 1rem; background: rgb(10 31 68 / .4); }
.csd-dcard--dk .csd-dcard__shade { background: linear-gradient(to top, var(--dk-bg), rgb(3 14 31 / .2), transparent); }
.csd-dcard__cta { display: flex; align-items: center; gap: .25rem; margin-top: .25rem; color: var(--dk-teal); font-size: .875rem; font-weight: 600; line-height: 1.25rem; }

/* ---------- Receptivo internacional ---------- */
.csd-recep-hero { position: relative; padding: 8rem 1rem 4rem; overflow: hidden; }
.csd-recep-hero__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .2; }
.csd-recep-hero .csd-page__head { margin-bottom: 0; }
.csd-recep-list { padding: 0 1rem 5rem; }
.csd-recep-list .csd-container { display: grid; gap: 1rem; padding: 0; }
.csd-recep-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: 1rem; padding: 1.5rem; transition: all .15s; }
.csd-recep-item:hover { border-color: rgb(78 205 196 / .6); box-shadow: var(--shadow-xl); }
.csd-recep-item h3 { color: #fff; font-weight: 700; font-size: 1.125rem; transition: color .15s; line-height: 1.75rem; }
.csd-recep-item:hover h3 { color: var(--dk-teal); }
.csd-recep-item p { color: rgb(255 255 255 / .6); font-size: .875rem; margin-top: .25rem; line-height: 1.25rem; }
.csd-recep-item > .csd-icon { color: var(--dk-gold); transition: transform .15s; }
.csd-recep-item:hover > .csd-icon { transform: translateX(.25rem); }

/* ---------- A la Carta (CatalogoViajesMinorista) ---------- */
.csd-min-top { padding: 7rem 1rem .5rem; }
.csd-min-top .csd-container { padding: 0; }
.csd-min-top__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.csd-btn-ghost { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; background: rgb(255 255 255 / .05); border: 1px solid rgb(255 255 255 / .15); color: rgb(255 255 255 / .8); padding: .625rem 1.25rem; border-radius: 9999px; transition: background .15s; line-height: 1.25rem; }
.csd-btn-ghost:hover { background: rgb(255 255 255 / .1); }
.csd-min { padding: .5rem 1rem 1rem; }
.csd-min .csd-container { padding: 0; }
.csd-min-hero { position: relative; border-radius: 1.5rem; overflow: hidden; border: 1px solid rgb(184 151 42 / .3); margin-bottom: .75rem; box-shadow: var(--shadow-2xl); height: 16rem; }
@media (min-width: 768px) { .csd-min-hero { height: 20rem; } }
.csd-min-hero__shade { position: absolute; inset: 0; background: linear-gradient(to right, rgb(3 14 31 / .95), rgb(3 14 31 / .7), transparent); }
.csd-min-hero__txt { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 1.5rem; }
@media (min-width: 768px) { .csd-min-hero__txt { padding: 0 2.5rem; } }
.csd-min-hero__txt h2, .csd-min-hero__txt h1 { margin: 0; font-size: 1.5rem; line-height: 1.25; font-weight: 700; display: flex; align-items: center; gap: .5rem; max-width: 48rem; }
@media (min-width: 768px) { .csd-min-hero__txt h2, .csd-min-hero__txt h1 { margin: 0; font-size: 2.25rem; } }
.csd-min-hero__ico { color: var(--dk-teal); }
.csd-gradtxt { background: linear-gradient(to right, var(--dk-teal), var(--dk-gold-light), var(--dk-gold)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.csd-min-hero__txt p { color: rgb(255 255 255 / .75); font-size: .875rem; line-height: 1.625; margin-top: .75rem; max-width: 42rem; }
@media (min-width: 768px) { .csd-min-hero__txt p { font-size: 1rem; } }
.csd-btn--dkgold2 { align-self: flex-start; background: var(--dk-gold); color: var(--dk-bg); font-size: .875rem; padding: .625rem 1.25rem; margin-top: .75rem; box-shadow: var(--shadow-lg); line-height: 1.25rem; }
.csd-btn--dkgold2:hover { background: var(--dk-gold-light); }
.csd-min-chips { display: flex; flex-wrap: wrap; gap: .375rem; margin-bottom: 1.25rem; }
.csd-min-chip { display: inline-flex; align-items: center; gap: .375rem; padding: .375rem .875rem; border-radius: 9999px; font-size: .875rem; font-weight: 600; border: 1px solid rgb(255 255 255 / .15); background: rgb(255 255 255 / .05); color: rgb(255 255 255 / .75); transition: all .15s; line-height: 1.25rem; }
.csd-min-chip:hover { background: rgb(255 255 255 / .1); color: #fff; }
.csd-min-chip__ico { color: var(--c); }
.csd-min-chip.is-active { background: var(--dk-gold); color: var(--dk-bg); border-color: var(--dk-gold); }
.csd-min-chip.is-active .csd-min-chip__ico { color: var(--dk-bg); }
.csd-min-chip--all.is-active { background: var(--dk-gold-light); border-color: var(--dk-gold-light); }
.csd-grid-min { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) { .csd-grid-min { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .csd-grid-min { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.csd-mcard { border-radius: 1rem; overflow: hidden; border: 1px solid rgb(255 255 255 / .1); background: var(--dk-card); display: flex; flex-direction: column; transition: border-color .15s; }
.csd-mcard[hidden] { display: none; }
.csd-mcard:hover { border-color: rgb(184 151 42 / .5); }
.csd-mcard__media { position: relative; height: 9rem; overflow: hidden; }
.csd-mcard__media img, .csd-mcard__media .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.csd-mcard:hover .csd-mcard__media img { transform: scale(1.05); }
.csd-mcard__badge { position: absolute; top: .5rem; left: .5rem; display: inline-flex; align-items: center; gap: .25rem; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .025em; background: rgb(3 14 31 / .85); color: #fff; border: 1px solid rgb(255 255 255 / .15); padding: .25rem .5rem; border-radius: 9999px; }
.csd-mcard__body { padding: .75rem; display: flex; flex-direction: column; flex: 1 1 0%; }
.csd-mcard__body h3 { font-size: .875rem; font-weight: 700; color: #fff; line-height: 1.375; }
.csd-mcard__lugar { font-size: 11px; color: var(--dk-teal); margin-top: .125rem; }
.csd-mcard__txt { font-size: .75rem; color: rgb(255 255 255 / .6); margin-top: .375rem; line-height: 1.625; flex: 1 1 0%; }
.csd-mcard__foot { display: flex; align-items: flex-end; justify-content: space-between; margin-top: .75rem; }
.csd-mcard__precio { font-size: 1.125rem; font-weight: 800; color: var(--dk-gold-light); line-height: 1; }
.csd-mcard__btn { display: inline-flex; align-items: center; gap: .25rem; font-size: .75rem; font-weight: 700; background: rgb(78 205 196 / .15); border: 1px solid rgb(78 205 196 / .4); color: var(--dk-teal); padding: .375rem .75rem; border-radius: 9999px; transition: background .15s; line-height: 1rem; }
.csd-mcard__btn:hover { background: rgb(78 205 196 / .3); }

/* ---------- Resultado de reserva ---------- */
.csd-reserva { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 8rem 1rem 5rem; }
.csd-reserva__box { max-width: 36rem; width: 100%; text-align: center; }
.csd-reserva__ico { width: 5rem; height: 5rem; border-radius: 9999px; display: flex; align-items: center; justify-content: center; margin: 0 auto 1.5rem; }
.csd-reserva__ico .csd-icon { width: 2.75rem; height: 2.75rem; }
.csd-reserva__ico--ok { background: rgb(16 185 129 / .15); border: 1px solid rgb(52 211 153 / .4); color: #6ee7b7; }
.csd-reserva__ico--ko { background: rgb(244 63 94 / .15); border: 1px solid rgb(251 113 133 / .4); color: #fda4af; }
.csd-reserva h1 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; margin-bottom: .75rem; }
.csd-reserva p { color: rgb(255 255 255 / .7); margin-bottom: 2rem; }
.csd-reserva__btns { display: flex; flex-direction: column; gap: .75rem; justify-content: center; }
@media (min-width: 640px) { .csd-reserva__btns { flex-direction: row; } }
.csd-btn--dkline { border: 1px solid rgb(184 151 42 / .6); color: var(--dk-gold-light); padding: .75rem 1.5rem; }
.csd-btn--dkline:hover { background: rgb(184 151 42 / .1); }
.csd-btn--dkgold { background: var(--dk-gold); color: var(--dk-bg); padding: .75rem 1.5rem; }
.csd-btn--dkgold:hover { background: var(--dk-gold-hover); }
.csd-page--center .csd-page__head { margin-top: 3rem; }

/* ---------- Blog y guías ---------- */
.csd-blog-hero { position: relative; padding: 8rem 1rem 3rem; text-align: center; }
.csd-blog-hero .csd-eyebrow { margin-bottom: 1rem; }
.csd-blog-hero h1 { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; margin-bottom: .75rem; }
@media (min-width: 768px) { .csd-blog-hero h1 { font-size: 3rem; line-height: 1; } }
.csd-blog-hero > p { color: rgb(255 255 255 / .6); max-width: 42rem; margin: 0 auto; }
.csd-search { position: relative; max-width: 36rem; margin: 2rem auto 0; }
.csd-search__ico { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: rgb(255 255 255 / .4); pointer-events: none; }
.csd-search input { width: 100%; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .3); color: #fff; border-radius: 9999px; padding: .75rem 2.5rem .75rem 3rem; font-size: .875rem; outline: none; transition: border-color .15s; line-height: 1.25rem; }
.csd-search input::placeholder { color: rgb(255 255 255 / .4); }
.csd-search input:focus { border-color: var(--dk-teal); }
.csd-blog { padding: 0 1rem 5rem; }
/* Blog.jsx: <section class="max-w-6xl mx-auto px-4"> → rejilla de 70rem (1120px). */
.csd-blog .csd-container { padding: 0; max-width: 70rem; }
.csd-empty-dk { text-align: center; padding: 5rem 0; color: rgb(255 255 255 / .5); }
.csd-gcard { display: flex; flex-direction: column; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: 1rem; overflow: hidden; transition: all .15s; }
.csd-gcard[hidden] { display: none; }
.csd-gcard:hover { border-color: rgb(78 205 196 / .6); transform: translateY(-.25rem); }
.csd-gcard__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.csd-gcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.csd-gcard:hover .csd-gcard__media img { transform: scale(1.05); }
.csd-gcard__ph { width: 100%; height: 100%; background: linear-gradient(to bottom right, rgb(13 148 136 / .4), var(--dk-card)); }
.csd-gcard__body { padding: 1.25rem; display: flex; flex-direction: column; flex: 1 1 0%; }
.csd-gcard__date { display: inline-flex; align-items: center; gap: .25rem; color: var(--dk-teal); font-size: .75rem; margin-bottom: .5rem; line-height: 1rem; }
.csd-gcard h2 { font-size: 1.125rem; line-height: 1.75rem; font-weight: 700; margin-bottom: .5rem; transition: color .15s; }
.csd-gcard:hover h2 { color: var(--dk-teal); }
.csd-gcard__body > p { color: rgb(255 255 255 / .6); font-size: .875rem; flex: 1 1 0%; line-height: 1.25rem; }
.csd-gcard__more { margin-top: .75rem; display: inline-flex; align-items: center; gap: .25rem; color: var(--dk-gold); font-size: .875rem; font-weight: 600; line-height: 1.25rem; }
.csd-guia { max-width: 48rem; margin: 0 auto; padding: 7rem 1rem 4rem; }
.csd-guia__img { border-radius: 1rem; overflow: hidden; margin-bottom: 2rem; aspect-ratio: 16 / 9; }
.csd-guia__img img { width: 100%; height: 100%; object-fit: cover; }
.csd-guia h1 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; margin-bottom: .75rem; }
@media (min-width: 768px) { .csd-guia h1 { font-size: 2.25rem; line-height: 2.5rem; } }
.csd-guia__date { display: inline-flex; align-items: center; gap: .25rem; color: var(--dk-teal); font-size: .875rem; margin-bottom: 1.5rem; line-height: 1.25rem; }
.csd-guia__cta { margin-top: 3rem; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .25); border-radius: 1rem; padding: 1.5rem; text-align: center; }
.csd-guia__cta > p { color: rgb(255 255 255 / .6); font-size: .875rem; margin-bottom: 1rem; line-height: 1.25rem; }
/* .guia-html — copiado de src/index.css de Base44 */
.guia-html h1, .guia-html h2, .guia-html h3, .guia-html h4 { color: #fff; font-weight: 700; line-height: 1.2; margin-top: 1.6em; margin-bottom: .6em; }
.guia-html h2 { font-size: 1.5rem; }
.guia-html h3 { font-size: 1.25rem; }
.guia-html h4 { font-size: 1.1rem; }
.guia-html p { color: rgb(255 255 255 / .78); line-height: 1.75; margin-bottom: 1.1em; }
.guia-html ul, .guia-html ol { color: rgb(255 255 255 / .78); margin-bottom: 1.1em; padding-left: 1.4em; }
.guia-html ul { list-style: disc; }
.guia-html ol { list-style: decimal; }
.guia-html li { margin-bottom: .4em; }
.guia-html a { color: #4ecdc4; text-decoration: underline; }
.guia-html img { max-width: 100%; height: auto; border-radius: .75rem; margin: 1.2em auto; display: block; }
.guia-html strong, .guia-html b { color: #fff; font-weight: 700; }
.guia-html blockquote { border-left: 3px solid #b8972a; padding-left: 1em; color: rgb(255 255 255 / .7); font-style: italic; margin: 1.2em 0; }
.guia-html figure { margin: 1.2em 0; }
.guia-html figcaption { color: rgb(255 255 255 / .5); font-size: .85rem; text-align: center; }

/* LegalPage.jsx: cabecera max-w-5xl, h1 text-3xl md:text-4xl mb-2, fecha text-sm, separador mt-4, mb-10. */
.csd-page--legal .csd-page__head { max-width: 64rem; margin-bottom: 2.5rem; }
.csd-page--legal .csd-page__head h1 { font-size: 1.875rem; line-height: 2.25rem; margin-bottom: .5rem; }
@media (min-width: 768px) { .csd-page--legal .csd-page__head h1 { font-size: 2.25rem; line-height: 2.5rem; } }
.csd-page--legal .csd-page__head p { line-height: 1.25rem; }
.csd-page--legal .csd-legal > p:first-child { font-size: 1rem; }

/* LandingPageTemplate.jsx FAQ: h2 text-2xl en todos los anchos; botón justify-between sin gap. */
.csd-land-faq .csd-dkhead h2 { font-size: 1.5rem; line-height: 2rem; margin-top: 0; }
.csd-land-faq .csd-faq__q { gap: 0; }

/* Base44: <div absolute top-3 left-3 / bottom-3 right-3><span inline …></div> (caja de línea de 24px). */
.csd-lcard__pos { position: absolute; line-height: 1.5rem; }
.csd-lcard__pos--tl { top: .75rem; left: .75rem; }
.csd-lcard__pos--br { bottom: .75rem; right: .75rem; }
.csd-lcard__pos .csd-lcard__badge, .csd-lcard__pos .csd-lcard__price { position: static; display: inline; }
.csd-lcard__pos .csd-lcard__badge { line-height: 15px; }
