/* ==========================================================================
   CSD Experience — hoja de estilos
   Reproduce Base44/Experience:
   - Design System V2 "Matte Premium" (src/index.css + tailwind.config.js → colors.csd.*)
   - Paleta oscura heredada de fichas/landings (#030e1f · #0a1f44 · #b8972a · #4ecdc4 · #e8c547)
   Escala, radios, sombras y breakpoints = valores Tailwind 3 usados por Base44
   (sm 640 · md 768 · lg 1024). Sin dependencias de compilación.
   ========================================================================== */

:root {
	/* V2 Matte Premium */
	--csd-ivory: #F7F6F2;
	--csd-ivory2: #F1F0EB;
	--csd-soft: #FAF9F6;
	--csd-card: #FFFFFF;
	--csd-turquoise: #18A7A0;
	--csd-turquoise-dark: #117D78;
	--csd-turquoise-soft: #E4F5F3;
	--csd-navy: #102A43;
	--csd-navy-dark: #081E33;
	--csd-navy-soft: #E8EDF2;
	--csd-gold: #C5A253;
	--csd-gold-dark: #9E7D35;
	--csd-gold-soft: #F4ECD8;
	--csd-line: #DDDAD2;
	--csd-line-soft: #ECE9E2;
	--csd-ink: #17212B;
	--csd-ink-2: #59636E;
	--csd-ink-3: #7A838C;
	/* Paleta oscura heredada (PaqueteDetalle, LandingPageTemplate, Contacto, Legal) */
	--dk-bg: #030e1f;
	--dk-card: #0a1f44;
	--dk-gold: #b8972a;
	--dk-gold-light: #e8c547;
	--dk-gold-hover: #d4af37;
	--dk-teal: #4ecdc4;
	--dk-teal-hover: #3bb8af;
	/* Tipografía (index.css) */
	--font-body: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
	--font-display: 'Playfair Display', 'Georgia', ui-serif, serif;
	--radius: 0.625rem;
	/* Sombras Tailwind */
	--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);
	--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
	--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);
	--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);
}

/* --- Preflight (equivalente Tailwind) ------------------------------------ */
*, ::before, ::after { box-sizing: border-box; border: 0 solid var(--csd-line); }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; font-family: var(--font-body); scroll-behavior: smooth; }
body { margin: 0; line-height: inherit; font-family: var(--font-body); background: var(--csd-ivory); color: var(--csd-navy); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; margin: 0; }
p, blockquote, figure, dl, dd, ul, ol { margin: 0; }
ul, ol { list-style: none; padding: 0; }
a { color: inherit; text-decoration: inherit; }
img, svg, video { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; margin: 0; }
button { background: transparent; cursor: pointer; padding: 0; }
button:disabled { cursor: default; }
input::placeholder, textarea::placeholder { color: #9ca3af; opacity: 1; }
:focus-visible { outline: 2px solid var(--csd-turquoise); outline-offset: 2px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.csd-skip { position: absolute; left: -9999px; top: .5rem; z-index: 200; background: var(--csd-navy); color: #fff; padding: .5rem 1rem; border-radius: 9999px; }
.csd-skip:focus { left: .5rem; }

body.csd-theme-dark { background: var(--dk-bg); color: #fff; }
body.csd-modal-open { overflow: hidden; }

/* --- Utilidades ----------------------------------------------------------- */
.csd-container { width: 100%; max-width: 72rem; margin-inline: auto; padding-inline: 1rem; }
.csd-container--7xl { max-width: 80rem; }
.csd-container--5xl { max-width: 64rem; }
.csd-container--4xl { max-width: 56rem; }
.csd-container--3xl { max-width: 48rem; }
.csd-icon { flex-shrink: 0; width: 1rem; height: 1rem; }
.csd-i-3 { width: .75rem; height: .75rem; }
.csd-i-35 { width: .875rem; height: .875rem; }
.csd-i-4 { width: 1rem; height: 1rem; }
.csd-i-5 { width: 1.25rem; height: 1.25rem; }
.csd-i-6 { width: 1.5rem; height: 1.5rem; }
.csd-i-7 { width: 1.75rem; height: 1.75rem; }
.csd-i-8 { width: 2rem; height: 2rem; }
.csd-rule-gold { width: 4rem; height: .125rem; background: var(--csd-gold); margin: 1rem auto 0; }
.csd-rule-dk { width: 4rem; height: .125rem; background: var(--dk-gold); margin: 1rem auto 0; }
.csd-spin { animation: csd-spin 1s linear infinite; }
@keyframes csd-spin { to { transform: rotate(360deg); } }
@keyframes csd-pulse { 50% { opacity: .5; } }

/* SmartImage fallback */
.csd-img-fallback { display: flex; align-items: center; justify-content: center; background: linear-gradient(to bottom right, #0a1f44, #030e1f); color: rgb(184 151 42 / .4); }
.csd-img-fallback__icon { width: 2rem; height: 2rem; }

/* --- Etiquetas / badges --------------------------------------------------- */
.csd-eyebrow { display: inline-block; font-size: .75rem; line-height: 1rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .375rem 1rem; border-radius: 9999px; }
.csd-eyebrow--light { background: rgb(197 162 83 / .15); border: 1px solid rgb(197 162 83 / .5); color: var(--csd-gold-dark); }
.csd-eyebrow--hero { background: rgb(197 162 83 / .2); border: 1px solid rgb(197 162 83 / .6); color: var(--csd-gold-soft); letter-spacing: .25em; }
.csd-eyebrow--dk { background: rgb(184 151 42 / .2); border: 1px solid rgb(184 151 42 / .6); color: var(--dk-gold-light); }
.csd-kicker { color: var(--csd-turquoise-dark); font-size: .875rem; line-height: 1.25rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.csd-badge-gold { background: rgb(197 162 83 / .9); color: var(--csd-navy-dark); font-size: 10px; font-weight: 700; padding: .25rem .5rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: .05em; }
.csd-section-head { text-align: center; margin-bottom: 3.5rem; }
.csd-section-head h2 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; margin-top: .75rem; color: var(--csd-navy); }
@media (min-width: 768px) { .csd-section-head h2 { font-size: 2.25rem; line-height: 2.5rem; } }

/* --- Botones -------------------------------------------------------------- */
.csd-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 700; border-radius: 9999px; transition: all .15s cubic-bezier(.4,0,.2,1); white-space: nowrap; }
.csd-btn--gold { background: var(--csd-gold); color: var(--csd-navy-dark); padding: .75rem 1.25rem; box-shadow: var(--shadow-lg); }
.csd-btn--gold:hover { background: var(--csd-gold-dark); }
.csd-btn--outline-gold { border: 2px solid rgb(197 162 83 / .6); color: var(--csd-gold-dark); padding: .75rem 1.25rem; }
.csd-btn--outline-gold:hover { background: rgb(197 162 83 / .1); }
/* Botón principal del hero — WCAG AA (decisión del propietario, Fase 2).
   Base44: borde dorado + texto dorado oscuro #9E7D35 sobre imagen oscura (≈2,6:1, no cumple).
   Ahora: fondo azul marino 88 % + texto marfil dorado #F4ECD8 (≈13:1) y borde dorado corporativo;
   hover: fondo dorado + texto azul marino (≈7,6:1). */
.csd-btn--hero-primary { background: rgb(8 30 51 / .88); border: 2px solid var(--csd-gold); color: var(--csd-gold-soft); padding: 1rem 2rem; font-size: 1.125rem; line-height: 1.75rem; box-shadow: var(--shadow-lg); }
.csd-btn--hero-primary:hover, .csd-btn--hero-primary:focus-visible { background: var(--csd-gold); color: var(--csd-navy-dark); }
.csd-btn--turq { background: var(--csd-turquoise-dark); color: #fff; padding: .75rem 1.5rem; }
.csd-btn--turq:hover { background: var(--csd-navy); }
.csd-btn--hero-outline { border: 2px solid rgb(255 255 255 / .4); color: #fff; padding: 1rem 2rem; font-size: 1.125rem; line-height: 1.75rem; }
.csd-btn--hero-outline:hover { border-color: var(--csd-turquoise); color: var(--csd-turquoise-soft); }
.csd-btn--line-gold { border: 1px solid var(--csd-gold); color: var(--csd-gold-dark); padding: .75rem 2rem; }
.csd-btn--line-gold:hover { background: rgb(197 162 83 / .1); }
.csd-btn--wa { background: #25D366; color: #fff; padding: .75rem 1.5rem; }
.csd-btn--wa:hover { background: #20ba58; }
.csd-btn--tel { border: 1px solid rgb(24 167 160 / .5); color: var(--csd-turquoise-dark); padding: .75rem 1.5rem; }
.csd-btn--tel:hover { background: rgb(24 167 160 / .1); }
.csd-btn--dk-gold { background: var(--dk-gold); color: var(--dk-bg); padding: .5rem 1rem; font-size: .875rem; line-height: 1.25rem; }
.csd-btn--dk-gold:hover { background: var(--dk-gold-light); }
.csd-btn[disabled] { opacity: .5; }
.csd-cta-row { display: flex; flex-direction: column; gap: .75rem; }
@media (min-width: 640px) { .csd-cta-row { flex-direction: row; } }
.csd-cta-row > .csd-btn { flex: 1 1 0%; min-width: 0; white-space: normal; text-align: center; }

/* --- Cabecera (WebNav.jsx) ----------------------------------------------- */
.csd-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: rgb(247 246 242 / .95); border-bottom: 1px solid rgb(197 162 83 / .4); transition: all .3s; }
.csd-header.is-scrolled { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: var(--shadow-sm); }
body.admin-bar .csd-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .csd-header { top: 46px; } }
.csd-header__navybar { background: var(--csd-navy); height: .375rem; }
.csd-topbar { display: none; background: var(--csd-turquoise); border-bottom: 1px solid rgb(17 125 120 / .3); }
@media (min-width: 768px) { .csd-topbar { display: block; } }
.csd-topbar__inner { max-width: 80rem; margin: 0 auto; padding: .625rem 1rem; display: flex; align-items: center; justify-content: space-between; font-size: .75rem; line-height: 1rem; color: #fff; }
.csd-topbar__group { display: flex; align-items: center; gap: .75rem; }
.csd-topbar__group--r { gap: 1rem; }
.csd-topbar a { display: flex; align-items: center; gap: .25rem; transition: color .15s; }
.csd-topbar a:hover { color: var(--csd-gold-soft); }
.csd-topbar__brand { font-weight: 500; }
.csd-topbar__sep { color: rgb(255 255 255 / .3); }
.csd-topbar__intranet { font-weight: 600; }
.csd-nav { max-width: 80rem; margin: 0 auto; padding: .375rem 1rem; display: flex; align-items: center; justify-content: space-between; } /* 13/10: barra blanca 104 → 84 px (−19 %) */
.csd-logo { display: flex; align-items: center; flex-shrink: 0; }
.csd-logo img { height: 4.5rem; width: auto; object-fit: contain; border-radius: .75rem; background: rgb(255 255 255 / .6); padding: .375rem; box-shadow: 0 0 0 1px rgb(197 162 83 / .3); }
.csd-menu { display: none; align-items: center; gap: .25rem; }
@media (min-width: 1024px) { .csd-menu { display: flex; } }
.csd-menu__item { position: relative; }
.csd-menu__link { display: flex; align-items: center; gap: .25rem; padding: .5rem .625rem; border-radius: var(--radius); font-size: .875rem; line-height: 1.25rem; font-weight: 500; color: var(--csd-navy); transition: all .15s; }
.csd-menu__link:hover, .csd-menu__item:focus-within > .csd-menu__link { color: var(--csd-turquoise); background: rgb(228 245 243 / .6); }
.csd-menu__link.is-current { color: var(--csd-turquoise-dark); }
.csd-menu__link .csd-icon.csd-i-3 { opacity: .6; }
.csd-drop { display: none; position: absolute; top: 100%; left: 0; padding-top: .5rem; min-width: 200px; z-index: 50; }
.csd-drop--right { left: auto; right: 0; min-width: 190px; }
.csd-menu__item.is-open > .csd-drop, .csd-menu__item:focus-within > .csd-drop { display: block; }
.csd-drop__panel { background: #fff; border: 1px solid var(--csd-line); border-radius: .75rem; box-shadow: var(--shadow-lg), 0 0 0 1px rgb(197 162 83 / .2); padding: .5rem 0; }
.csd-drop__link { display: flex; align-items: center; gap: .625rem; padding: .5rem 1rem; font-size: .875rem; line-height: 1.25rem; color: var(--csd-ink-2); white-space: nowrap; transition: color .15s, background .15s; }
.csd-drop__link:hover, .csd-drop__link:focus { color: var(--csd-turquoise-dark); background: rgb(228 245 243 / .5); }
.csd-flag { font-size: 1rem; line-height: 1; }
.csd-burger { display: inline-flex; color: var(--csd-navy); padding: .5rem; border-radius: var(--radius); transition: background .15s; }
.csd-burger:hover { background: rgb(228 245 243 / .6); }
@media (min-width: 1024px) { .csd-burger { display: none; } }
.csd-mobile { display: none; background: #fff; border-top: 1px solid rgb(197 162 83 / .3); padding: 1rem; max-height: calc(100vh - 7rem); overflow-y: auto; }
.csd-mobile.is-open { display: block; }
@media (min-width: 1024px) { .csd-mobile, .csd-mobile.is-open { display: none; } }
.csd-mobile__link { display: block; padding: .75rem; color: var(--csd-navy); font-weight: 500; border-bottom: 1px solid var(--csd-line-soft); }
.csd-mobile__link:hover { color: var(--csd-turquoise-dark); }
.csd-mobile__sub { display: block; padding: .5rem 1.5rem; color: var(--csd-ink-3); font-size: .875rem; line-height: 1.25rem; border-bottom: 1px solid var(--csd-line-soft); }
.csd-mobile__sub:hover { color: var(--csd-turquoise); }
.csd-mobile__langs { padding: .75rem; border-bottom: 1px solid var(--csd-line-soft); }
.csd-mobile__langs p { color: var(--csd-gold-dark); font-weight: 700; font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .25rem; line-height: 1rem; }
.csd-mobile__langs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; margin-top: .5rem; }
.csd-mobile__langs-grid a { display: flex; align-items: center; gap: .375rem; padding: .375rem .5rem; font-size: .75rem; color: var(--csd-ink-2); border-radius: .25rem; line-height: 1rem; }
.csd-mobile__actions { margin-top: 1rem; display: grid; gap: .5rem; }
.csd-mobile__btn { display: flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 700; padding: .75rem; border-radius: 9999px; color: #fff; transition: background .15s; }
.csd-mobile__btn--navy { background: var(--csd-navy); }
.csd-mobile__btn--navy:hover { background: var(--csd-navy-dark); }
.csd-mobile__btn--turq { background: var(--csd-turquoise); }
.csd-mobile__btn--turq:hover { background: var(--csd-turquoise-dark); }

/* --- Pie (WebFooter.jsx) -------------------------------------------------- */
.csd-footer { background: var(--csd-navy); color: #fff; }
.csd-footer__grid { max-width: 80rem; margin: 0 auto; padding: 4rem 1rem; display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
@media (min-width: 768px) { .csd-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .csd-footer__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.csd-footer__logo { height: 8rem; width: auto; object-fit: contain; border-radius: .75rem; background: rgb(255 255 255 / .1); padding: .5rem; box-shadow: 0 0 0 1px rgb(197 162 83 / .3); margin-bottom: 1.25rem; }
.csd-footer__text { color: rgb(255 255 255 / .7); font-size: .875rem; line-height: 1.625; margin-bottom: 1.5rem; }
.csd-footer__social { display: flex; gap: .75rem; }
.csd-footer__social > * { width: 2rem; height: 2rem; border-radius: 9999px; background: rgb(255 255 255 / .1); border: 1px solid rgb(197 162 83 / .3); display: flex; align-items: center; justify-content: center; color: rgb(255 255 255 / .7); transition: all .15s; }
.csd-footer__social > a:hover { color: var(--csd-gold-soft); border-color: rgb(197 162 83 / .6); }
.csd-footer h4, .csd-footer .csd-footer__h { color: var(--csd-gold); font-weight: 700; font-size: .875rem; line-height: 1.25rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 1.25rem; }
.csd-footer__list { display: grid; gap: .5rem; }
.csd-footer__list a, .csd-footer__contact a, .csd-footer__contact div { color: rgb(255 255 255 / .7); font-size: .875rem; line-height: 1.25rem; transition: color .15s; }
.csd-footer__list a:hover, .csd-footer__contact a:hover { color: var(--csd-turquoise-soft); }
.csd-footer__contact { display: grid; gap: .75rem; }
.csd-footer__contact a, .csd-footer__contact div { display: flex; align-items: flex-start; gap: .75rem; }
.csd-footer__contact .csd-icon { color: var(--csd-turquoise-soft); margin-top: .125rem; }
button.csd-footer__wa { cursor: pointer; border: 0; font: inherit; font-weight: 700; font-size: .875rem; line-height: 1.25rem; }
.csd-footer__wa { margin-top: 1.5rem; display: inline-flex; align-items: center; gap: .625rem; background: var(--csd-gold); color: var(--csd-navy-dark); font-weight: 700; padding: .375rem 1.25rem .375rem .375rem; border-radius: 9999px; font-size: .875rem; transition: background .15s; line-height: 1.25rem; }
.csd-footer__wa:hover { background: var(--csd-gold-dark); }
.csd-footer__wa-logo { width: 2rem; height: 2rem; border-radius: 9999px; overflow: hidden; background: var(--csd-navy); box-shadow: 0 0 0 1px rgb(197 162 83 / .5); display: flex; align-items: center; justify-content: center; }
.csd-footer__wa-logo img { width: 100%; height: 100%; object-fit: contain; padding: .125rem; }
.csd-footer__wa-txt { display: flex; flex-direction: column; line-height: 1.25; text-align: left; }
.csd-footer__wa-txt small { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.csd-footer__wa-txt span { display: flex; align-items: center; gap: .375rem; }
.csd-footer__bottom { border-top: 1px solid rgb(197 162 83 / .4); }
.csd-footer__bottom-inner { max-width: 80rem; margin: 0 auto; padding: 1rem; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: .5rem; font-size: .75rem; color: rgb(255 255 255 / .5); line-height: 1rem; }
@media (min-width: 640px) { .csd-footer__bottom-inner { flex-direction: row; } }
.csd-footer__legal { display: flex; gap: 1rem; }
.csd-footer__legal a:hover { color: rgb(255 255 255 / .8); }

/* Botón flotante (sustituye al lanzador del chat Andrea, no migrado en la Fase 1) */
.csd-float-wa { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 90; width: 3.5rem; height: 3.5rem; border-radius: 9999px; background: #25D366; color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-xl), 0 0 0 3px rgb(197 162 83 / .5); transition: transform .15s; }
.csd-float-wa:hover { transform: scale(1.05); }

/* --- Home (WebHome.jsx) --------------------------------------------------- */
/* Carrusel bajo la cabecera fija: --csd-cab-h (altura real de la cabecera) y --csd-cab-fin (su borde inferior en pantalla, con la
   barra de WordPress) los mide csd.js; los valores de reserva son los de la cabecera sin JS. El padding garantiza 24 px mínimos
   entre la cabecera y la etiqueta, y deja libres los puntos inferiores. */
.csd-hero { --cab: var(--csd-cab-h, 128px); position: relative; margin-top: var(--cab); min-height: max(600px, calc(100vh - var(--csd-cab-fin, var(--cab)))); padding: 1.5rem 0 4.5rem; display: flex; align-items: center; justify-content: center; overflow: hidden; }
@media (max-width: 767px) { .csd-hero { --cab: var(--csd-cab-h, 91px); } }
.csd-hero__slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1s cubic-bezier(.4,0,.2,1); }
.csd-hero__slide.is-active { opacity: 1; }
.csd-hero__shade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgb(8 30 51 / .6), rgb(8 30 51 / .3), rgb(8 30 51 / .8)); }
.csd-hero__content { position: relative; z-index: 10; text-align: center; padding: 0 1rem; max-width: 56rem; margin: 0 auto; }
.csd-hero__content .csd-eyebrow { margin-bottom: 1.5rem; }
.csd-hero__title { font-size: 2.25rem; line-height: 1.25; font-weight: 700; margin-bottom: 1.5rem; white-space: pre-line; color: #fff; }
@media (min-width: 768px) { .csd-hero__title { font-size: 3.75rem; line-height: 1; } }
@media (min-width: 1024px) { .csd-hero__title { font-size: 4.5rem; line-height: 1; } }
.csd-hero__sub { font-size: 1.125rem; line-height: 1.75rem; color: rgb(255 255 255 / .85); margin: 0 auto 2.5rem; max-width: 42rem; }
@media (min-width: 768px) { .csd-hero__sub { font-size: 1.25rem; line-height: 1.75rem; } }
.csd-hero__ctas { display: flex; flex-direction: column; gap: 1rem; justify-content: center; align-items: center; }
@media (min-width: 640px) { .csd-hero__ctas { flex-direction: row; } }
.csd-dots { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; gap: .5rem; }
.csd-dot { width: .625rem; height: .625rem; border-radius: 9999px; background: rgb(255 255 255 / .4); transition: all .3s; }
.csd-dot:hover { background: rgb(255 255 255 / .7); }
.csd-dot.is-active { background: var(--csd-gold); width: 2rem; }

.csd-stats { background: var(--csd-navy); border-block: 1px solid rgb(197 162 83 / .3); }
.csd-stats__grid { max-width: 72rem; margin: 0 auto; padding: 1.5rem 1rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; text-align: center; }
@media (min-width: 768px) { .csd-stats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.csd-stat { display: flex; flex-direction: column; align-items: center; gap: .25rem; }
.csd-stat .csd-icon { color: var(--csd-turquoise-soft); width: 1.25rem; height: 1.25rem; }
.csd-stat__num { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--csd-gold-soft); }
.csd-stat__label { color: rgb(255 255 255 / .6); font-size: .875rem; line-height: 1.25rem; }

/* Paquetes destacados (PaquetesDestacados.jsx) */
.csd-destacados { position: relative; background: var(--csd-ivory); }
.csd-destacados__intro { text-align: center; padding: 5rem 1rem 2.5rem; max-width: 48rem; margin: 0 auto; }
.csd-destacados__intro .csd-eyebrow { margin-bottom: 1rem; }
.csd-destacados__intro h2 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; color: var(--csd-navy); margin-bottom: .75rem; }
@media (min-width: 768px) { .csd-destacados__intro h2 { font-size: 2.25rem; line-height: 2.5rem; } }
.csd-destacados__intro p { color: var(--csd-ink-2); }
.csd-destacados__intro .csd-rule-gold { margin-top: 1.25rem; }
.csd-tramo { position: relative; min-height: 88vh; display: flex; align-items: center; overflow: hidden; background-size: cover; background-position: center; background-attachment: fixed; }
@media (hover: none), (max-width: 1023px) { .csd-tramo { background-attachment: scroll; } }
.csd-tramo__shade { position: absolute; inset: 0; background: linear-gradient(to right, rgb(8 30 51 / .9), rgb(8 30 51 / .8), rgb(8 30 51 / .4)); }
.csd-tramo__inner { position: relative; z-index: 10; width: 100%; max-width: 72rem; margin: 0 auto; padding: 4rem 1rem; }
.csd-tramo__card { max-width: 36rem; background: rgb(255 255 255 / .95); backdrop-filter: blur(12px); border: 1px solid rgb(197 162 83 / .3); border-radius: 1.5rem; padding: 1.75rem; box-shadow: var(--shadow-2xl); }
@media (min-width: 768px) { .csd-tramo__card { padding: 2.25rem; } }
.csd-tramo__top { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.csd-tramo__flag { font-size: 1.875rem; line-height: 2.25rem; }
.csd-tramo__cont { display: block; color: var(--csd-turquoise-dark); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1rem; }
.csd-tramo__num { display: block; color: var(--csd-ink-3); font-size: .75rem; line-height: 1rem; }
.csd-tramo h3 { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--csd-navy); margin-bottom: 1rem; }
@media (min-width: 768px) { .csd-tramo h3 { font-size: 1.875rem; line-height: 2.25rem; } }
.csd-tramo__info { color: var(--csd-ink-2); font-size: .875rem; line-height: 1.625; margin-bottom: 1.25rem; }
.csd-tramo__facts { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.25rem; font-size: .875rem; line-height: 1.25rem; }
.csd-tramo__facts span { display: flex; align-items: center; gap: .375rem; }
.csd-tramo__dias { color: var(--csd-turquoise-dark); font-weight: 600; }
.csd-tramo__precio { color: var(--csd-gold-dark); font-weight: 700; }
.csd-tramo__label { color: var(--csd-ink-3); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .5rem; display: flex; align-items: center; gap: .25rem; line-height: 1rem; }
.csd-tramo__itin { display: grid; gap: .375rem; margin-bottom: 1.25rem; }
.csd-tramo__itin li { color: var(--csd-ink-2); font-size: .75rem; line-height: 1rem; display: flex; gap: .5rem; }
.csd-tramo__itin li span:first-child { color: var(--csd-gold); flex-shrink: 0; }
.csd-tramo__chips { display: flex; flex-wrap: wrap; gap: .375rem; margin-bottom: 1.5rem; }
.csd-chip-turq { display: inline-flex; align-items: center; gap: .25rem; background: var(--csd-turquoise-soft); border: 1px solid rgb(24 167 160 / .3); color: var(--csd-turquoise-dark); font-size: 10px; font-weight: 600; padding: .25rem .625rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: .025em; }
.csd-tramo__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.csd-tramo__actions .csd-btn { padding: .625rem 1.5rem; font-size: .875rem; line-height: 1.25rem; }
/* Base44: botón secundario flex-1 (text-base, py-3) */
.csd-tramo__actions .csd-btn--outline-gold { flex: 1 1 auto; justify-content: center; padding: .75rem 1.25rem; font-size: 1rem; line-height: 1.5rem; }

/* Catálogo home (PaquetesCatalogo.jsx) */
.csd-catalogo { padding: 4rem 1rem; background: var(--csd-soft); }
/* Base44: section px-4 > div max-w-6xl (sin relleno propio) */
.csd-catalogo .csd-container, .csd-destinos .csd-container, .csd-testi .csd-container, .csd-cat-grid .csd-container { padding-inline: 0; }
.csd-catalogo__head { text-align: center; margin-bottom: 2.5rem; }
.csd-catalogo__head .csd-eyebrow { margin-bottom: 1rem; }
.csd-catalogo__head h2 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; color: var(--csd-navy); margin-bottom: .75rem; }
@media (min-width: 768px) { .csd-catalogo__head h2 { font-size: 2.25rem; line-height: 2.5rem; } }
.csd-catalogo__head p { color: var(--csd-ink-2); max-width: 42rem; margin: 0 auto 1.5rem; }
.csd-accent { color: var(--csd-turquoise-dark); }
.csd-chips { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.csd-chipbtn { padding: .375rem 1rem; border-radius: 9999px; font-size: .875rem; line-height: 1.25rem; font-weight: 600; border: 1px solid rgb(197 162 83 / .3); color: var(--csd-ink-2); transition: all .15s; }
.csd-chipbtn:hover { border-color: var(--csd-turquoise); color: var(--csd-turquoise-dark); }
.csd-chipbtn.is-active { background: var(--csd-gold); border-color: var(--csd-gold); color: var(--csd-navy-dark); }
.csd-grid3 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) { .csd-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .csd-grid3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.csd-pcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--csd-line); border-radius: 1rem; overflow: hidden; transition: all .15s; }
.csd-pcard:hover { border-color: rgb(24 167 160 / .6); transform: translateY(-.25rem); box-shadow: var(--shadow-xl); }
.csd-pcard[hidden] { display: none; }
.csd-pcard__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.csd-pcard__media img, .csd-pcard__media .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.csd-pcard:hover .csd-pcard__media img { transform: scale(1.1); }
.csd-pcard__cont { position: absolute; top: .5rem; left: .5rem; background: rgb(16 42 67 / .85); backdrop-filter: blur(4px); color: var(--csd-turquoise-soft); font-size: 10px; font-weight: 700; padding: .25rem .5rem; border-radius: 9999px; text-transform: uppercase; letter-spacing: .05em; border: 1px solid rgb(24 167 160 / .3); }
.csd-pcard__price { position: absolute; top: .5rem; right: .5rem; background: rgb(197 162 83 / .95); color: var(--csd-navy-dark); font-size: .75rem; font-weight: 700; padding: .25rem .625rem; border-radius: 9999px; line-height: 1rem; }
.csd-pcard__body { padding: 1.25rem; display: flex; flex-direction: column; flex: 1 1 0%; }
.csd-pcard__pais { display: flex; align-items: center; gap: .375rem; color: var(--csd-ink-3); font-size: .75rem; margin-bottom: .5rem; line-height: 1rem; }
.csd-pcard h3 { color: var(--csd-navy); font-weight: 700; font-size: 1.125rem; line-height: 1.75rem; margin-bottom: .5rem; transition: color .15s; }
.csd-pcard:hover h3 { color: var(--csd-turquoise-dark); }
.csd-pcard__desc { color: var(--csd-ink-2); font-size: .875rem; line-height: 1.625; margin-bottom: 1rem; flex: 1 1 0%; }
.csd-pcard__foot { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--csd-line); padding-top: .75rem; }
.csd-pcard__foot span { display: flex; align-items: center; gap: .25rem; font-size: .875rem; line-height: 1.25rem; }
.csd-pcard__dias { color: var(--csd-turquoise-dark); font-weight: 600; }
.csd-pcard__eur { color: var(--csd-gold-dark); font-weight: 700; }
.csd-pcard__more { margin-top: .75rem; display: flex; align-items: center; gap: .25rem; color: var(--csd-gold-dark); font-size: .875rem; font-weight: 600; line-height: 1.25rem; }
.csd-center { text-align: center; margin-top: 2.5rem; }

/* Líneas */
.csd-lineas { padding: 5rem 1rem; max-width: 72rem; margin: 0 auto; }
.csd-linea { display: block; background: #fff; border: 1px solid var(--csd-line); border-radius: 1rem; padding: 1.5rem; transition: all .15s; }
.csd-linea:hover { border-color: rgb(24 167 160 / .6); transform: translateY(-.25rem); box-shadow: var(--shadow-xl); }
.csd-linea__icon { font-size: 2.25rem; line-height: 2.5rem; margin-bottom: 1rem; }
.csd-linea h3 { color: var(--csd-navy); font-weight: 700; font-size: 1.125rem; line-height: 1.75rem; margin-bottom: .5rem; transition: color .15s; }
.csd-linea:hover h3 { color: var(--csd-turquoise-dark); }
.csd-linea p { color: var(--csd-ink-2); font-size: .875rem; line-height: 1.625; }
.csd-linea__more { margin-top: 1rem; display: flex; align-items: center; gap: .25rem; color: var(--csd-gold-dark); font-size: .875rem; font-weight: 600; line-height: 1.25rem; }

/* Destinos home */
.csd-destinos { padding: 5rem 1rem; background: var(--csd-soft); }
.csd-grid4 { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .csd-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .csd-grid4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.csd-dcard { position: relative; display: block; border-radius: 1rem; overflow: hidden; aspect-ratio: 3 / 4; box-shadow: var(--shadow-lg); }
.csd-dcard img, .csd-dcard .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.csd-dcard:hover img { transform: scale(1.1); }
.csd-dcard__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--csd-navy-dark), rgb(8 30 51 / .2), transparent); }
.csd-dcard__badge { position: absolute; top: .75rem; left: .75rem; }
.csd-dcard__body { position: absolute; bottom: 0; left: 0; right: 0; padding: 1rem; }
.csd-dcard h3 { color: #fff; font-weight: 700; font-size: 1.125rem; line-height: 1.75rem; }
.csd-dcard__row { display: flex; align-items: center; justify-content: space-between; margin-top: .25rem; font-size: .875rem; line-height: 1.25rem; }
.csd-dcard__row span:first-child { color: rgb(255 255 255 / .6); }
.csd-dcard__row span:last-child { color: var(--csd-gold-soft); font-weight: 700; }

/* Por qué */
.csd-porque { padding: 5rem 1rem; }
.csd-porque__grid { max-width: 72rem; margin: 0 auto; display: grid; gap: 3rem; align-items: center; }
@media (min-width: 768px) { .csd-porque__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.csd-porque h2 { font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; margin-top: .75rem; color: var(--csd-navy); margin-bottom: 1.5rem; }
@media (min-width: 768px) { .csd-porque h2 { font-size: 2.25rem; line-height: 2.5rem; } }
.csd-porque h2 .csd-goldtxt { color: var(--csd-gold-dark); }
.csd-porque__lead { color: var(--csd-ink-2); line-height: 1.625; margin-bottom: 2rem; }
.csd-porque__item { display: flex; gap: .75rem; margin-bottom: 1rem; }
.csd-porque__dot { width: .5rem; height: .5rem; border-radius: 9999px; background: var(--csd-turquoise); margin-top: .5rem; flex-shrink: 0; }
.csd-porque__item strong { display: block; color: var(--csd-navy); font-weight: 600; font-size: .875rem; line-height: 1.25rem; }
.csd-porque__item div > span { display: block; color: var(--csd-ink-3); font-size: .875rem; line-height: 1.25rem; }
.csd-porque__btns { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 1rem; } /* 13/10: wrap — con nowrap desbordaba a 360 px y desplazaba la cabecera */
.csd-porque__media { position: relative; }
.csd-porque__media img { border-radius: 1rem; width: 100%; object-fit: cover; aspect-ratio: 4 / 3; box-shadow: var(--shadow-2xl); }
.csd-porque__seal { position: absolute; bottom: -1rem; left: -1rem; background: #fff; border: 1px solid rgb(197 162 83 / .4); border-radius: .75rem; padding: 1rem; box-shadow: var(--shadow-xl); }
.csd-stars { display: flex; align-items: center; gap: .25rem; color: var(--csd-gold); }
.csd-stars .csd-icon { fill: var(--csd-gold); }
.csd-porque__seal p { color: var(--csd-navy); font-size: .75rem; margin-top: .25rem; font-weight: 600; line-height: 1rem; }

/* Testimonios */
.csd-testi { padding: 5rem 1rem; background: var(--csd-soft); }
.csd-testi__card { background: #fff; border: 1px solid var(--csd-line); border-radius: 1rem; padding: 1.5rem; }
.csd-testi__card .csd-stars { margin-bottom: .75rem; }
.csd-testi__card blockquote { color: var(--csd-ink-2); font-size: .875rem; line-height: 1.625; margin-bottom: 1rem; font-style: italic; }
.csd-testi__who { border-top: 1px solid var(--csd-line); padding-top: .75rem; }
.csd-testi__who strong { display: block; color: var(--csd-navy); font-weight: 700; font-size: .875rem; line-height: 1.25rem; }
.csd-testi__who span { display: block; color: var(--csd-turquoise-dark); font-size: .75rem; line-height: 1rem; }
.csd-grid-testi { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 768px) { .csd-grid-testi { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* CTA final */
.csd-ctafinal { position: relative; padding: 7rem 1rem; text-align: center; overflow: hidden; background-size: cover; background-position: center; }
.csd-ctafinal__shade { position: absolute; inset: 0; background: rgb(8 30 51 / .8); }
.csd-ctafinal__inner { position: relative; z-index: 10; max-width: 48rem; margin: 0 auto; }
.csd-ctafinal h2 { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; color: #fff; margin-bottom: 1rem; }
@media (min-width: 768px) { .csd-ctafinal h2 { font-size: 3rem; line-height: 1; } }
.csd-ctafinal h2 span { color: var(--csd-gold-soft); }
.csd-ctafinal p { color: rgb(255 255 255 / .8); font-size: 1.125rem; line-height: 1.75rem; margin-bottom: 2.5rem; }
.csd-ctafinal .csd-btn--gold { padding: 1rem 2.5rem; font-size: 1.125rem; box-shadow: var(--shadow-xl); line-height: 1.75rem; }

/* --- Catálogo (DestinosIndex.jsx) ---------------------------------------- */
.csd-cat-hero { position: relative; height: 68vh; min-height: 520px; display: flex; align-items: flex-end; overflow: hidden; background: #0a1f44; }
.csd-cat-hero__slides { position: absolute; inset: 0; overflow: hidden; }
.csd-cat-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s; }
.csd-cat-hero__slide.is-active { opacity: 1; }
.csd-cat-hero__slide img, .csd-cat-hero__slide .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; }
.csd-cat-hero__empty { position: absolute; inset: 0; background: linear-gradient(to bottom right, rgb(13 148 136 / .6), #0a1f44, #0a1f44); }
.csd-cat-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--csd-navy-dark), rgb(8 30 51 / .45), rgb(8 30 51 / .2)); }
.csd-cat-hero__content { position: relative; z-index: 10; width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 1rem 3.5rem; text-align: center; }
.csd-cat-hero__content .csd-eyebrow { margin-bottom: 1rem; letter-spacing: .1em; }
.csd-cat-title { font-family: var(--font-display); font-weight: 600; line-height: 1.05; margin-bottom: 1rem; letter-spacing: -.025em; text-shadow: 0 2px 12px rgb(8 30 51 / .85); }
.csd-cat-title__a { font-size: 3rem; text-transform: uppercase; color: #fff; }
.csd-cat-title__b { font-size: 2.25rem; font-style: italic; text-transform: lowercase; color: var(--csd-turquoise); }
.csd-cat-title__c { font-size: 1.875rem; font-style: italic; text-transform: lowercase; color: var(--csd-gold-soft); line-height: 2.25rem; }
@media (min-width: 768px) { .csd-cat-title__a { font-size: 4.5rem; } .csd-cat-title__b { font-size: 3.75rem; } .csd-cat-title__c { font-size: 3rem; } }
.csd-cat-hero__lead { color: rgb(255 255 255 / .85); font-size: 1.125rem; line-height: 1.75rem; max-width: 42rem; margin: 0 auto 2rem; }
.csd-cat-chips { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.csd-cat-chip { padding: .5rem 1.25rem; border-radius: 9999px; font-size: .875rem; line-height: 1.25rem; font-weight: 600; border: 1px solid rgb(197 162 83 / .3); color: rgb(255 255 255 / .85); transition: all .15s; }
.csd-cat-chip:hover { border-color: var(--csd-turquoise); color: var(--csd-turquoise-soft); }
.csd-cat-chip.is-active { background: var(--csd-gold); border-color: var(--csd-gold); color: var(--csd-navy-dark); }
.csd-cat-hero .csd-dots { bottom: 1rem; }
.csd-cat-hero .csd-dot.is-active { background: var(--dk-gold-light); }

/* Filtros adicionales (extensión WordPress sobre Base44) */
.csd-filters { padding: 2rem 1rem 0; }
.csd-filters__form { max-width: 72rem; margin: 0 auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; background: #fff; border: 1px solid var(--csd-line); border-radius: 1rem; padding: 1rem; }
@media (min-width: 768px) { .csd-filters__form { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .csd-filters__form { grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: end; } }
.csd-filters label { display: block; font-size: 11px; font-weight: 600; color: var(--csd-turquoise-dark); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .25rem; }
.csd-filters select, .csd-filters input { width: 100%; border-radius: .5rem; background: var(--csd-soft); border: 1px solid var(--csd-line); color: var(--csd-ink); padding: .5rem .75rem; font-size: .875rem; line-height: 1.25rem; }
.csd-filters select:focus, .csd-filters input:focus { outline: none; border-color: var(--csd-turquoise); }
.csd-filters__actions { display: flex; gap: .5rem; grid-column: 1 / -1; }
@media (min-width: 1024px) { .csd-filters__actions { grid-column: auto; } }
.csd-filters__actions .csd-btn { flex: 1; padding: .5rem 1rem; font-size: .875rem; line-height: 1.25rem; }
.csd-filters__reset { color: var(--csd-ink-3); font-size: .875rem; align-self: center; text-decoration: underline; line-height: 1.25rem; }
.csd-cat-status { padding: 2.5rem 1rem 2rem; }
.csd-cat-status__inner { max-width: 72rem; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; font-size: .875rem; color: var(--csd-ink-2); line-height: 1.25rem; }
.csd-cat-grid { padding: 0 1rem 3rem; }
.csd-vcard { position: relative; display: block; border-radius: 1rem; overflow: hidden; aspect-ratio: 4 / 5; box-shadow: var(--shadow-lg); background: var(--csd-navy-soft); }
.csd-vcard__img, .csd-vcard .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.csd-vcard:hover .csd-vcard__img { transform: scale(1.1); }
.csd-vcard__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--csd-navy-dark), rgb(8 30 51 / .3), transparent); }
.csd-vcard__badges { position: absolute; top: .75rem; left: .75rem; display: flex; gap: .25rem; }
.csd-vcard__body { position: absolute; bottom: 0; left: 0; right: 0; padding: 1.25rem; display: block; }
.csd-vcard__pais { display: block; color: rgb(255 255 255 / .7); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .25rem; line-height: 1rem; }
.csd-vcard__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #fff; font-weight: 700; font-size: 1.125rem; line-height: 1.25; margin-bottom: .25rem; }
.csd-vcard__meta { display: flex; align-items: center; justify-content: space-between; }
.csd-vcard__dias { color: rgb(255 255 255 / .6); font-size: .875rem; line-height: 1.25rem; }
.csd-vcard__precio { color: var(--csd-gold-soft); font-weight: 700; font-size: .875rem; line-height: 1.25rem; }
.csd-vcard__cta { margin-top: .5rem; display: flex; align-items: center; gap: .25rem; color: var(--csd-turquoise-soft); font-size: .875rem; font-weight: 600; line-height: 1.25rem; }
.csd-empty { text-align: center; padding: 5rem 0; color: var(--csd-ink-3); }
.csd-empty p { font-size: 1.125rem; margin-bottom: .5rem; line-height: 1.75rem; }
.csd-empty a { display: inline-block; margin-top: .75rem; color: var(--csd-turquoise-dark); font-weight: 600; }
.csd-empty a:hover { text-decoration: underline; }
.csd-pager { padding: 0 1rem 5rem; }
.csd-pager ul { max-width: 72rem; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: .25rem; flex-wrap: wrap; }
.csd-pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 2.25rem; padding: 0 .5rem; border-radius: .5rem; font-size: .875rem; font-weight: 600; border: 1px solid rgb(197 162 83 / .3); color: var(--csd-ink-2); transition: all .15s; line-height: 1.25rem; }
.csd-pager a.page-numbers:hover { border-color: var(--csd-turquoise); color: var(--csd-turquoise-dark); }
.csd-pager .page-numbers.current { background: var(--csd-gold); border-color: var(--csd-gold); color: var(--csd-navy-dark); }
.csd-pager .page-numbers.dots { border: 0; }

/* --- Ficha de viaje (PaqueteDetalle.jsx, paleta oscura) ------------------ */
.csd-loading { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.csd-trip-hero { position: relative; padding-top: 6rem; }
.csd-trip-hero__bg { position: absolute; inset: 0; overflow: hidden; }
.csd-trip-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.csd-trip-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, var(--dk-bg), rgb(3 14 31 / .7), rgb(3 14 31 / .4)); }
.csd-trip-hero__inner { position: relative; z-index: 10; max-width: 72rem; margin: 0 auto; padding: 5rem 1rem; }
.csd-back { display: inline-flex; align-items: center; gap: .5rem; color: rgb(255 255 255 / .7); font-size: .875rem; margin-bottom: 1.5rem; transition: color .15s; line-height: 1.25rem; }
.csd-back:hover { color: var(--dk-teal); }
.csd-trip-badges { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-bottom: .75rem; }
.csd-trip-badge-cont { background: rgb(184 151 42 / .2); border: 1px solid rgb(184 151 42 / .6); color: var(--dk-gold-light); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .25rem .75rem; border-radius: 9999px; line-height: 1rem; }
.csd-trip-badge-dest { background: #fbbf24; color: #78350f; font-size: .75rem; font-weight: 700; padding: .25rem .75rem; border-radius: 9999px; display: inline-flex; align-items: center; gap: .25rem; line-height: 1rem; }
.csd-trip-badge-dest .csd-icon { fill: #78350f; }
.csd-trip-title { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; margin-bottom: .75rem; filter: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1)); }
@media (min-width: 768px) { .csd-trip-title { font-size: 3rem; line-height: 1; } }
.csd-trip-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem; color: rgb(255 255 255 / .8); }
.csd-trip-facts span { display: inline-flex; align-items: center; gap: .375rem; }
.csd-trip-facts .csd-icon { color: var(--dk-teal); width: 1.25rem; height: 1.25rem; }
.csd-trip-facts .csd-trip-price { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--dk-gold-light); }
.csd-trip-facts .csd-trip-price .csd-icon { color: var(--dk-gold-light); }
.csd-trip-body { max-width: 72rem; margin: 0 auto; padding: 3rem 1rem; }
.csd-trip-desc { color: rgb(255 255 255 / .75); font-size: 1.125rem; line-height: 1.625; white-space: pre-line; margin-bottom: 2.5rem; }
.csd-trip-grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .csd-trip-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .csd-trip-main { grid-column: span 2 / span 2; } }
.csd-itin-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.25rem; }
.csd-itin-head h2 { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--dk-gold-light); }
.csd-itin-list { display: grid; gap: 1rem; }
.csd-itin-day { display: flex; gap: .75rem; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .25); border-radius: 1rem; padding: .75rem; }
.csd-itin-day__media { position: relative; flex-shrink: 0; width: 8rem; aspect-ratio: 4 / 3; border-radius: .75rem; overflow: hidden; border: 1px solid rgb(184 151 42 / .3); }
.csd-itin-day__media img, .csd-itin-day__media .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; }
.csd-itin-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-itin-day__txt { min-width: 0; flex: 1 1 0%; align-self: center; }
.csd-itin-day__txt h3 { font-weight: 600; color: #fff; font-size: .875rem; line-height: 1.25; }
.csd-itin-day__txt p { color: rgb(255 255 255 / .6); font-size: .75rem; line-height: 1.625; margin-top: .25rem; white-space: pre-line; }
.csd-box { background: var(--dk-card); border: 1px solid rgb(184 151 42 / .25); border-radius: 1rem; padding: 1.25rem; }
.csd-side { display: grid; gap: 1.25rem; align-content: start; }
/* QA-LAB-02A: la columna lateral no puede ensanchar su pista (desbordaba 768–1024 px) y sus 2 botones van apilados (en fila partían el texto). Móvil ya era columna: sin cambios. */
.csd-side { grid-template-columns: minmax(0, 1fr); }
.csd-side .csd-cta-row { flex-direction: column; }
.csd-box h3 { font-weight: 700; color: var(--dk-gold-light); margin-bottom: .75rem; }
.csd-box ul { display: grid; gap: .5rem; }
.csd-box li { display: flex; align-items: flex-start; gap: .5rem; font-size: .875rem; color: rgb(255 255 255 / .75); line-height: 1.25rem; }
.csd-box li .csd-icon { color: var(--dk-teal); margin-top: .125rem; }
.csd-box__lead { color: rgb(255 255 255 / .6); font-size: .875rem; margin-bottom: 1rem; text-align: center; line-height: 1.25rem; }
.csd-btn-pdf { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; margin-bottom: .75rem; background: rgb(78 205 196 / .15); border: 1px solid rgb(78 205 196 / .4); color: var(--dk-teal); font-weight: 700; font-size: .875rem; padding: .625rem; border-radius: 9999px; transition: background .15s; line-height: 1.25rem; }
.csd-btn-pdf:hover { background: rgb(78 205 196 / .25); }
.csd-btn-pdf[disabled] { opacity: .5; }


.csd-pago-nota { margin-top: .75rem; font-size: 11px; color: rgb(255 255 255 / .45); text-align: center; }
.csd-variantes { max-width: 72rem; margin: 0 auto; padding: 2.5rem 1rem; }
.csd-variantes h2 { font-size: 1.5rem; line-height: 2rem; font-weight: 700; color: var(--dk-gold-light); margin-bottom: .25rem; }
.csd-variantes > p { color: rgb(255 255 255 / .5); font-size: .875rem; margin-bottom: 1.25rem; line-height: 1.25rem; }
.csd-var-grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .csd-var-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .csd-var-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.csd-var { display: flex; gap: .75rem; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .25); border-radius: 1rem; padding: .75rem; transition: all .15s; }
.csd-var:hover { border-color: rgb(78 205 196 / .6); transform: translateY(-.125rem); }
.csd-var__media { flex-shrink: 0; width: 6rem; height: 5rem; border-radius: .75rem; overflow: hidden; border: 1px solid rgb(184 151 42 / .3); }
.csd-var__media img, .csd-var__media .csd-img-fallback { width: 100%; height: 100%; object-fit: cover; }
.csd-var__txt { min-width: 0; flex: 1; align-self: center; }
.csd-var__txt h3 { font-weight: 600; color: #fff; font-size: .875rem; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.csd-var:hover h3 { color: var(--dk-teal); }
.csd-var__meta { display: flex; align-items: center; gap: .75rem; margin-top: .375rem; font-size: .75rem; line-height: 1rem; }
.csd-var__meta span { display: inline-flex; align-items: center; gap: .25rem; }
.csd-var__meta span:first-child { color: var(--dk-teal); }
.csd-var__meta span:last-child { color: var(--dk-gold-light); font-weight: 700; }
.csd-var > .csd-icon { align-self: center; color: var(--dk-gold); }

/* --- Páginas oscuras: contacto, legal, pendientes, 404 ------------------- */
.csd-page { padding: 8rem 1rem 4rem; }
.csd-page__head { max-width: 56rem; margin: 0 auto 3rem; text-align: center; }
.csd-page__head .csd-eyebrow { margin-bottom: 1rem; }
.csd-page__head h1 { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; margin-bottom: 1rem; }
@media (min-width: 768px) { .csd-page__head h1 { font-size: 3rem; line-height: 1; } }
.csd-page__head h1 span { color: var(--dk-teal); }
.csd-page__head p { color: rgb(255 255 255 / .7); font-size: 1.125rem; line-height: 1.75rem; max-width: 42rem; margin: 0 auto; }
.csd-contact-grid { max-width: 64rem; margin: 0 auto; display: grid; gap: 2rem; }
@media (min-width: 768px) { .csd-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.csd-contact-list { display: grid; gap: 1.25rem; align-content: start; }
.csd-contact-item { display: flex; align-items: center; gap: 1rem; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: 1rem; padding: 1.25rem; transition: border-color .15s; }
.csd-contact-item:hover { border-color: rgb(78 205 196 / .6); }
.csd-contact-item__ico { width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: rgb(184 151 42 / .2); border: 1px solid rgb(184 151 42 / .4); display: flex; align-items: center; justify-content: center; color: var(--dk-teal); }
.csd-contact-item small { display: block; color: rgb(255 255 255 / .5); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; line-height: 1rem; }
.csd-contact-item strong { color: #fff; font-weight: 600; }
.csd-dkform { background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: 1rem; padding: 1.5rem; display: grid; gap: 1rem; }
.csd-dkform label { display: block; color: rgb(255 255 255 / .6); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .375rem; line-height: 1rem; }
.csd-dkform input:not([type=checkbox]), .csd-dkform textarea { width: 100%; background: var(--dk-bg); border: 1px solid rgb(184 151 42 / .2); border-radius: .5rem; padding: .625rem 1rem; color: #fff; outline: none; }
.csd-dkform input:focus, .csd-dkform textarea:focus { border-color: var(--dk-teal); }
.csd-dkform textarea { resize: none; }
.csd-dkform .csd-btn { width: 100%; background: var(--dk-gold); color: var(--dk-bg); padding: .75rem; }
.csd-dkform .csd-btn:hover { background: var(--dk-gold-hover); }
.csd-consent { display: flex; align-items: flex-start; gap: .5rem; font-size: .75rem; color: rgb(255 255 255 / .6); line-height: 1rem; }
.csd-consent input { margin-top: .125rem; accent-color: var(--dk-teal); }
.csd-consent a { text-decoration: underline; color: var(--dk-teal); }
/* El atributo hidden siempre gana a display:grid/flex de los componentes (p. ej. aviso de envío correcto). */
[hidden] { display: none !important; }
.csd-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.csd-form-error { color: #f87171; font-size: .875rem; line-height: 1.25rem; }
.csd-field-error { color: #f87171; font-size: .75rem; margin-top: .25rem; line-height: 1rem; }
.csd-form-ok { text-align: center; display: grid; justify-items: center; gap: 1rem; padding: 2rem; }
.csd-form-ok .csd-icon { width: 3.5rem; height: 3.5rem; color: var(--dk-teal); }
.csd-form-ok h2 { font-size: 1.5rem; font-weight: 700; line-height: 2rem; }
.csd-form-ok p { color: rgb(255 255 255 / .7); }

.csd-legal-nav { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-bottom: 2.5rem; }
.csd-legal-nav a { padding: .5rem 1rem; border-radius: 9999px; font-size: .875rem; font-weight: 600; border: 1px solid rgb(184 151 42 / .3); color: rgb(255 255 255 / .7); transition: all .15s; line-height: 1.25rem; }
.csd-legal-nav a:hover { border-color: var(--dk-teal); color: var(--dk-teal); }
.csd-legal-nav a.is-active { background: var(--dk-gold); border-color: var(--dk-gold); color: var(--dk-bg); }
.csd-legal { max-width: 64rem; margin: 0 auto; background: var(--dk-card); border: 1px solid rgb(184 151 42 / .2); border-radius: 1rem; padding: 2rem; }
@media (min-width: 768px) { .csd-legal { padding: 3rem; } }
.csd-legal .csd-legal__intro, .csd-legal > p:first-child { color: rgb(255 255 255 / .7); line-height: 1.625; margin-bottom: 2rem; font-style: italic; }
.csd-legal h2 { color: var(--dk-teal); font-weight: 700; font-size: 1.125rem; margin: 1.5rem 0 .5rem; line-height: 1.75rem; }
.csd-legal p { color: rgb(255 255 255 / .7); font-size: .875rem; line-height: 1.625; }
.csd-legal__foot { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgb(184 151 42 / .2); text-align: center; color: rgb(255 255 255 / .5); font-size: .875rem; line-height: 1.25rem; }
.csd-legal__foot a { color: var(--dk-teal); }
.csd-pendiente-dato { background: rgb(232 197 71 / .15); color: var(--dk-gold-light); padding: 0 .25rem; border-radius: .25rem; font-style: normal; }
.csd-prose { max-width: 56rem; margin: 0 auto; color: rgb(255 255 255 / .75); line-height: 1.75; }
.csd-prose p { margin-bottom: 1.1em; }
.csd-notice { max-width: 56rem; margin: 0 auto 2rem; background: var(--dk-card); border: 1px dashed rgb(232 197 71 / .5); border-radius: 1rem; padding: 1.25rem 1.5rem; color: rgb(255 255 255 / .8); font-size: .875rem; line-height: 1.25rem; }
.csd-notice strong { color: var(--dk-gold-light); }
.csd-notice a { color: var(--dk-teal); text-decoration: underline; }

/* --- Modal de solicitud (WebCtaButtons.SolicitudViajeModal) -------------- */
.csd-modal { position: fixed; inset: 0; z-index: 100; display: none; align-items: center; justify-content: center; padding: 1rem; background: rgb(0 0 0 / .7); backdrop-filter: blur(4px); }
.csd-modal.is-open { display: flex; }
.csd-modal__panel { width: 100%; max-width: 32rem; max-height: 90vh; overflow-y: auto; border-radius: 1rem; background: #fff; border: 1px solid rgb(197 162 83 / .4); box-shadow: var(--shadow-2xl); color: var(--csd-ink); }
.csd-modal__head { position: sticky; top: 0; display: flex; align-items: center; gap: .5rem; padding: 1rem 1.25rem; background: var(--csd-turquoise-soft); border-bottom: 1px solid rgb(197 162 83 / .3); }
.csd-modal__head .csd-icon { color: var(--csd-turquoise-dark); }
.csd-modal__head h3 { font-size: .875rem; font-weight: 700; color: var(--csd-navy); flex: 1; line-height: 1.25rem; }
.csd-modal__close { width: 1.75rem; height: 1.75rem; border-radius: 9999px; background: var(--csd-navy-soft); display: flex; align-items: center; justify-content: center; color: var(--csd-ink-2); }
.csd-modal__close:hover { background: var(--csd-line); }
.csd-modal__body { padding: 1.25rem; display: grid; gap: .75rem; }
.csd-modal__row2 { display: grid; grid-template-columns: 1fr; gap: .75rem; }
@media (min-width: 640px) { .csd-modal__row2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.csd-modal__row3 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (min-width: 640px) { .csd-modal__row3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.csd-lbl { display: block; font-size: 11px; font-weight: 600; color: var(--csd-turquoise-dark); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .25rem; }
.csd-field { width: 100%; border-radius: .5rem; background: var(--csd-soft); border: 1px solid var(--csd-line); color: var(--csd-ink); padding: .5rem .75rem; font-size: .875rem; transition: border-color .15s; line-height: 1.25rem; }
.csd-field:focus { outline: none; border-color: var(--csd-turquoise); }
.csd-modal .csd-consent { color: var(--csd-ink-2); }
.csd-modal .csd-consent a { color: var(--csd-turquoise-dark); }
.csd-modal .csd-form-error, .csd-modal .csd-field-error { color: #dc2626; }
.csd-modal__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.csd-modal__cancel { border: 2px solid rgb(197 162 83 / .5); color: var(--csd-gold-dark); padding: .75rem 1rem; }
.csd-modal__cancel:hover { background: rgb(197 162 83 / .1); }
.csd-modal__send { background: var(--csd-turquoise); color: #fff; padding: .75rem 1.25rem; }
.csd-modal__send:hover { background: var(--csd-turquoise-dark); }
.csd-modal__send:disabled { opacity: .6; }
.csd-modal__note { font-size: 11px; color: var(--csd-ink-3); text-align: center; }
.csd-modal__ok { padding: 2rem; text-align: center; }
.csd-modal__ok-ico { width: 3.5rem; height: 3.5rem; border-radius: 9999px; background: #ecfdf5; border: 1px solid #a7f3d0; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; color: #059669; }
.csd-modal__ok h4 { color: var(--csd-navy); font-weight: 700; font-size: 1.125rem; margin-bottom: .5rem; line-height: 1.75rem; }
.csd-modal__ok p { color: var(--csd-ink-2); font-size: .875rem; margin-bottom: 1.5rem; line-height: 1.25rem; }
.csd-modal__ok .csd-btn { background: var(--csd-gold); color: var(--csd-navy-dark); padding: .625rem 1.5rem; font-size: .875rem; line-height: 1.25rem; }

/* --- Banner de cookies (CookieConsentBanner.jsx) ------------------------- */
.csd-cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 120; padding: 0 .75rem .75rem; display: none; }
.csd-cookies.is-open { display: block; }
.csd-cookies__panel { max-width: 64rem; margin: 0 auto; border-radius: 1rem; background: var(--dk-bg); border: 1px solid rgb(184 151 42 / .4); box-shadow: var(--shadow-2xl); padding: 1rem; display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
@media (min-width: 640px) { .csd-cookies__panel { flex-direction: row; align-items: center; padding: 1.25rem; } }
.csd-cookies__txt { display: flex; align-items: flex-start; gap: .75rem; flex: 1; }
.csd-cookies__ico { width: 2.5rem; height: 2.5rem; border-radius: 9999px; background: rgb(184 151 42 / .2); border: 1px solid rgb(184 151 42 / .4); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--dk-teal); }
.csd-cookies p { color: rgb(255 255 255 / .8); font-size: .75rem; line-height: 1.625; }
@media (min-width: 640px) { .csd-cookies p { font-size: .875rem; line-height: 1.25rem; } }
.csd-cookies p a { text-decoration: underline; color: var(--dk-teal); }
.csd-cookies__btns { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; width: 100%; }
@media (min-width: 640px) { .csd-cookies__btns { width: auto; } }
.csd-cookies__btns button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: .375rem; padding: .625rem 1rem; border-radius: 9999px; font-size: .75rem; line-height: 1rem; }
@media (min-width: 640px) { .csd-cookies__btns button { flex: none; } }
.csd-cookies__no { border: 1px solid rgb(255 255 255 / .2); color: rgb(255 255 255 / .7); font-weight: 600; }
.csd-cookies__no:hover { background: rgb(255 255 255 / .1); }
.csd-cookies__yes { background: var(--dk-gold); color: var(--dk-bg); font-weight: 700; padding-inline: 1.25rem !important; }
.csd-cookies__yes:hover { background: var(--dk-gold-hover); }

@media (prefers-reduced-motion: reduce) {
	*, ::before, ::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Etapas sin imagen verificada (validación integral 08/10): sin marcador vacío, con el número del día como insignia. */
.csd-itin-day__badge { display: inline-block; margin-right: .4rem; padding: .05rem .5rem; border-radius: 999px; background: var(--gold, #b8972a); color: #111; font-size: .75em; font-weight: 700; vertical-align: middle; }
.csd-itin-day--sinfoto .csd-itin-day__txt, .csd-day--sinfoto .csd-day__txt { flex: 1 1 auto; }

/* Estado de validación del LAB (orden de cierre total, 08/10): EN REVISIÓN, contenido e imágenes pendientes. */
.csd-revision-aviso { margin: 0 0 1.25rem; padding: .9rem 1.1rem; border: 2px solid #d97706; border-radius: .75rem; background: #fff7ed; color: #7c2d12; }
.csd-revision-aviso strong { display: block; letter-spacing: .03em; }
.csd-revision-aviso ul { margin: .4rem 0 0 1.1rem; padding: 0; }
.csd-revision-cta { margin: 0; padding: .6rem .8rem; border: 1px dashed #d97706; border-radius: .5rem; color: #b45309; font-weight: 600; background: rgb(217 119 6 / .08); }
.csd-badge-revision { display: inline-block; padding: .1rem .5rem; border-radius: 999px; background: #d97706; color: #fff; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.csd-img-pendiente { display: flex; align-items: center; justify-content: center; text-align: center; padding: .4rem; background: repeating-linear-gradient(45deg, rgb(120 120 120 / .15), rgb(120 120 120 / .15) 8px, rgb(120 120 120 / .25) 8px, rgb(120 120 120 / .25) 16px); color: #ddd; font-size: .75rem; font-weight: 600; }
.csd-pendiente-box { border: 1px dashed rgb(184 151 42 / .5); border-radius: 1rem; padding: 1rem; opacity: .9; }

/* Foto genérica del banco conservada tras revisión: rótulo visible «Imagen ilustrativa» (corrección BANCO_ILUSTRATIVO 08/10) */
.csd-itin-day__media, .csd-day__media { position: relative; }
/* Crédito de foto de fuente acreditada (Wikimedia Commons; licencia CC exige autor y licencia visibles) — optimización 08/10 */
.csd-img-credito { display: block; margin-top: .5rem; font-size: .7rem; line-height: 1.35; opacity: .75; }
.csd-img-credito a { color: inherit; text-decoration: underline; }
.csd-img-ilustrativa { position: absolute; left: .5rem; bottom: .5rem; z-index: 2; background: rgb(0 0 0 / .72); color: #fff; font-size: .7rem; font-weight: 600; letter-spacing: .02em; padding: .2rem .5rem; border-radius: .25rem; pointer-events: none; }
/* Fondos optimizados (08/10): WebP 800 en móvil y 1600 en pantallas grandes; las diapositivas no visibles y los fondos bajo el pliegue
   reciben sus variables (data-bg → style) desde csd.js justo antes de mostrarse. */
.csd-hero__slide, .csd-tramo, .csd-ctafinal { background-image: var(--bg-s, none); }
@media (min-width: 768px) { .csd-hero__slide, .csd-tramo, .csd-ctafinal { background-image: var(--bg-l, var(--bg-s, none)); } }
/* Crédito de las fotos de portada verificadas (Wikimedia Commons, 08/10): discreto, legible y enlazado */
.csd-foto-credito { position: absolute; right: .5rem; bottom: .5rem; z-index: 3; max-width: calc(100% - 1rem); background: rgb(0 0 0 / .55); color: #fff; padding: .15rem .45rem; border-radius: .25rem; font-size: .65rem; line-height: 1.3; text-align: right; }
.csd-foto-credito .csd-img-credito { margin: 0; opacity: 1; font-size: inherit; display: inline; }
.csd-foto-credito a { color: #fff; }
.csd-hero__slide .csd-foto-credito { bottom: 4.5rem; }
@media (max-width: 639px) { .csd-hero__slide .csd-foto-credito { bottom: .25rem; } .csd-hero .csd-dots { bottom: 3rem; } } /* 13/10: en móvil los botones apilados llegaban a la altura del crédito; el crédito baja al pie y los puntos quedan encima */
.csd-dcard-wrap { position: relative; }
.csd-dcard-wrap .csd-foto-credito { top: .5rem; bottom: auto; max-width: calc(100% - 6rem); }