/*
 * GR11 Viajes — Ficha de viaje template rules, copied literally from source/03-ficha-de-viaje/base.css.
 * Rules identical to approved/global.css (or global-mobile.css) and the color tokens (GP Global Colors) are removed.
 */
:root{
  --fs-price-lg:56px;
  --fs-price-card:50px;
  --fs-date-card:34px;
  --fs-route:28px;

  --radius-price:20px 56px 20px 20px;

  --shadow-float:0 24px 48px -20px rgba(9,24,40,.55);

  --band-h:420px;
}

ul,ol{margin:0;padding:0;list-style:none}
dl,dd{margin:0}
figure{margin:0}

/* Botones (home v3 + variante terracotta) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:56px;padding:0 var(--space-xl);border-radius:var(--radius-pill);font-family:var(--font-display);font-style:italic;font-size:var(--fs-btn);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;line-height:1;border:2px solid transparent;white-space:nowrap;cursor:pointer}
.btn--terracotta{background:var(--color-terracotta);color:var(--color-white);border-color:var(--color-terracotta)}
.btn--block{display:flex;width:100%}

/* Section head (home v3) */
.section-head{display:grid;grid-template-columns:1fr 440px;align-items:end;gap:var(--space-2xl);margin-bottom:var(--space-3xl)}
.section-head__intro{color:var(--color-muted);font-size:var(--fs-body)}
.section-head--center{display:block;text-align:center;max-width:820px;margin-left:auto;margin-right:auto}
.section-head--center .eyebrow{justify-content:center}

/* ===== Hero de viaje ===== */
.trip-hero{position:relative;min-height:84vh;display:flex;align-items:flex-end;overflow:hidden;color:var(--color-white);background:var(--color-navy)}
.trip-hero__media{position:absolute;inset:0;overflow:hidden}
.trip-hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.trip-hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,24,40,.55) 0%,rgba(9,24,40,.05) 26%,rgba(9,24,40,.25) 52%,rgba(9,24,40,.82) 100%),linear-gradient(90deg,rgba(9,24,40,.45) 0%,rgba(9,24,40,0) 55%)}
.trip-hero__content{position:relative;z-index:4;display:grid;grid-template-columns:1fr 400px;grid-template-areas:"text card" "actions card";column-gap:var(--space-4xl);row-gap:var(--space-xl);align-items:end;padding-top:180px;padding-bottom:calc(var(--curve-h) + var(--space-lg))}
.trip-hero__text{grid-area:text;max-width:720px}
.trip-hero__title{font-family:var(--font-display);font-weight:400;font-style:italic;text-transform:uppercase;font-size:var(--fs-h1);line-height:.9;letter-spacing:.01em;color:var(--color-white);margin-bottom:var(--space-lg);text-shadow:0 2px 24px rgba(0,0,0,.3)}
.trip-hero__title span{display:block;color:var(--color-terracotta-soft)}
.trip-hero__lead{font-size:var(--fs-lead);line-height:1.6;max-width:560px;color:rgba(255,255,255,.94)}
.trip-hero__actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:var(--space-md);align-self:start}
.trip-hero__card{grid-area:card;background:var(--color-white);color:var(--color-ink);border-radius:var(--radius-newsletter);padding:var(--space-xl);box-shadow:var(--shadow-float)}
.booking-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);padding-bottom:var(--space-lg);border-bottom:1.5px dashed var(--color-line)}
.booking-facts dt{font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-terracotta);margin-bottom:2px}
.booking-facts dd{font-family:var(--font-display);font-style:italic;font-size:28px;line-height:1;color:var(--color-brand-deep);text-transform:uppercase}
.booking-price{display:flex;flex-direction:column;padding:var(--space-lg) 0}
.booking-price__label{font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}
.booking-price__value{font-family:var(--font-display);font-size:var(--fs-price-lg);line-height:1;color:var(--color-ink);margin:var(--space-2xs) 0;white-space:nowrap}
.booking-price__note{font-size:var(--fs-small);color:var(--color-text)}
.booking-card__mail{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:var(--space-xs);font-size:var(--fs-small);font-weight:500;color:var(--color-brand-deep);text-underline-offset:3px}

/* ===== Intro + fila de enlaces integrada ===== */
.trip-intro{position:relative;background:var(--color-cream);padding:var(--space-md) 0 calc(var(--space-4xl) + var(--space-xl))}
.trip-subnav{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-3xl)}
.trip-subnav__label{flex:none;font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted)}
.trip-subnav__list{display:flex;align-items:center;flex-wrap:wrap}
.trip-subnav__list li{display:flex;align-items:center}
.trip-subnav__list li+li::before{content:"·";margin:0 var(--space-md);font-weight:600;font-size:20px;line-height:1;color:var(--color-terracotta)}
.trip-subnav__list a{display:inline-flex;align-items:center;min-height:44px;font-weight:500;font-size:var(--fs-small);color:var(--color-brand-deep);text-decoration:none;text-underline-offset:5px;text-decoration-thickness:2px;white-space:nowrap}
.trip-subnav__list a:hover,.trip-subnav__list a:focus-visible{text-decoration-line:underline;text-decoration-color:var(--color-terracotta)}
.trip-subnav__list a:focus-visible{outline:2px solid var(--color-brand);outline-offset:4px;border-radius:4px}
.trip-intro__grid{display:grid;grid-template-columns:7fr 5fr;gap:var(--space-4xl);align-items:start}
.trip-intro__text .h2{margin-bottom:var(--space-lg)}
#el-viaje{scroll-margin-top:var(--space-4xl)}
#el-viaje:focus{outline:none}
.trip-intro__text p{margin-bottom:var(--space-md);max-width:620px}
.trip-intro__lead{font-size:var(--fs-lead);font-weight:500;color:var(--color-ink);line-height:1.55}
.trip-intro__text .text-link{margin-top:var(--space-md)}
.facts{padding-top:var(--space-xs)}
.facts__title{font-family:var(--font-display);font-weight:400;font-style:italic;text-transform:uppercase;font-size:var(--fs-h3);line-height:1;color:var(--color-brand-deep);margin-bottom:var(--space-md)}
.facts__item{display:grid;grid-template-columns:44px 1fr;gap:var(--space-md);align-items:center;padding:var(--space-sm) 0;border-top:1px solid var(--color-line)}
.facts__item:last-child{border-bottom:1px solid var(--color-line)}
.facts__icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--color-white);color:var(--color-brand)}
.facts__label{display:block;font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}
.facts__value{display:block;font-weight:500;font-size:var(--fs-small);color:var(--color-ink);line-height:1.4}

/* ===== Dificultad ===== */
.difficulty{position:relative;background:var(--color-white);padding:calc(var(--curve-h) + var(--space-3xl)) 0 calc(var(--curve-h) + var(--space-4xl))}
.difficulty__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}
.diff-card{display:flex;flex-direction:column;background:var(--color-cream);border:1.5px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-xl)}
.diff-card__head{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-lg)}
.diff-card__icon{flex:none;width:96px;height:72px}
.diff-card__title{font-family:var(--font-display);font-weight:400;font-style:italic;text-transform:uppercase;font-size:var(--fs-h3);line-height:1;color:var(--color-brand-deep)}
.diff-card__sub{font-size:var(--fs-small);color:var(--color-muted);margin-top:var(--space-2xs)}
.level{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}
.level__bars{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.level__bar{height:10px;border-radius:var(--radius-pill);background:var(--color-line)}
.level__bar.is-on{background:var(--color-brand)}
.level__text{flex:none;font-weight:600;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-brand-deep)}
.diff-card__label{align-self:flex-start;display:inline-flex;align-items:center;min-height:36px;padding:0 var(--space-lg);border-radius:var(--radius-pill);background:var(--color-brand-deep);color:var(--color-white);font-family:var(--font-display);font-style:italic;font-size:22px;letter-spacing:.05em;text-transform:uppercase;line-height:1;margin-bottom:var(--space-md)}
.diff-card__text{font-size:var(--fs-small);line-height:1.55;color:var(--color-text)}
.difficulty__note{display:flex;align-items:flex-start;gap:var(--space-md);margin-top:var(--space-xl);padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-md);background:var(--color-cream);font-size:14px;line-height:1.6;color:var(--color-muted)}
.difficulty__note svg{flex:none}
.difficulty__note strong{color:var(--color-ink);font-weight:600}

/* ===== Información del viaje ===== */
.trip-info{position:relative;background:var(--color-cream);padding:var(--space-3xl) 0 var(--space-4xl)}
.info-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2xl);align-items:start}

/* Tarjeta de precios y fechas (componente repetible) */
.price-card{background:var(--color-brand-deep);color:var(--color-white);border-radius:var(--radius-price);padding:calc(var(--space-xl) + var(--space-xs)) var(--space-xl) var(--space-xl)}
.price-card__eyebrow{font-family:var(--font-body);font-weight:600;font-size:14px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;color:var(--color-sand);margin-bottom:var(--space-lg)}
.price-card__prices{display:grid;grid-template-columns:max-content minmax(104px,1fr);column-gap:var(--space-lg);row-gap:var(--space-md)}
.price-row{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:center}
.price{font-family:var(--font-display);font-weight:400;font-style:normal;font-size:var(--fs-price-card);line-height:.95;letter-spacing:.01em;white-space:nowrap;color:var(--color-white)}
.price-row__concept{font-size:16px;line-height:1.4;color:rgba(255,255,255,.92)}
.price-row__concept span{display:block}
.price-card__rule{border:0;height:1px;margin:var(--space-xl) 0;background:rgba(255,255,255,.25)}
.price-card__dates{display:grid;gap:var(--space-lg)}
.departure{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}
.departure dt{font-size:16px;line-height:1.3;color:rgba(255,255,255,.88);margin-bottom:var(--space-xs)}
.departure dd{font-family:var(--font-display);font-style:italic;font-size:var(--fs-date-card);line-height:1;letter-spacing:.01em;text-transform:uppercase;white-space:nowrap;color:var(--color-white)}
.price-card__cta{margin-top:var(--space-xl);min-height:64px;font-size:23px}
.price-card__cta:focus-visible{outline:3px solid var(--color-terracotta-soft);outline-offset:3px}

/* Incluye / No incluye (sobre crema, sin cajas) */
.inclusions__col{padding-top:var(--space-xs)}
.inclusions__title{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-weight:400;font-style:italic;text-transform:uppercase;font-size:var(--fs-h3-lg);line-height:1;color:var(--color-brand-deep);margin-bottom:var(--space-lg)}
.inclusions__badge{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%}
.inclusions__badge--yes{background:var(--color-brand-deep);color:var(--color-white)}
.inclusions__badge--no{background:var(--color-terracotta-soft);color:var(--color-terracotta)}
.list-check li,.list-cross li{display:grid;grid-template-columns:28px 1fr;gap:var(--space-md);align-items:start;padding:var(--space-md) 0;border-top:1px solid var(--color-line);font-size:16px;line-height:1.5;color:var(--color-text)}
.list-check li:last-child,.list-cross li:last-child{border-bottom:1px solid var(--color-line)}
.list-check strong,.list-cross strong{color:var(--color-ink);font-weight:600}
.list-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:-1px;border-radius:50%}
.list-icon--check{background:rgba(26,107,179,.12);color:var(--color-brand-deep)}
.list-icon--cross{background:var(--color-terracotta-soft);color:var(--color-terracotta)}

/* Tabla de conceptos */
.concepts{margin-top:var(--space-4xl)}
.concepts__title{font-family:var(--font-display);font-weight:400;font-style:italic;text-transform:uppercase;font-size:var(--fs-h3);line-height:1;color:var(--color-brand-deep);margin-bottom:var(--space-lg)}
.concept-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-3xl)}
.concept-table__row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:var(--space-md);align-items:baseline;min-height:56px;padding:var(--space-md) 0;border-bottom:1px solid var(--color-line)}
.concept-table__row:nth-child(-n+2){border-top:1px solid var(--color-line)}
.concept-table dt{font-weight:600;font-size:var(--fs-small);color:var(--color-ink)}
.concept-table dd{font-size:var(--fs-small);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== Itinerario (fondo blanco, curvas crema de entrada y salida) ===== */
.itinerary{position:relative;background:var(--color-white);padding:calc(var(--curve-h) + var(--space-3xl)) 0 calc(var(--curve-h) + var(--space-4xl))}
.itinerary .section-head{margin-bottom:var(--space-2xl)}

/* La ruta: destinos con chevrons, salta de línea sin cortar */
.route-strip{margin-bottom:var(--space-3xl)}
.route-strip__label{font-weight:600;font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-sm)}
.route-list{display:flex;flex-wrap:wrap;align-items:center;row-gap:var(--space-sm);padding:var(--space-lg) 0;border-top:1px solid var(--color-hairline);border-bottom:1px solid var(--color-hairline)}
.route-list__item{display:inline-flex;align-items:center;flex:none;white-space:nowrap;font-family:var(--font-display);font-weight:400;font-style:italic;font-size:var(--fs-route);line-height:1.1;letter-spacing:.03em;text-transform:uppercase;color:var(--color-brand-deep)}
.route-list__item+.route-list__item::before{content:"";flex:none;width:10px;height:10px;margin:0 var(--space-lg) 0 calc(var(--space-lg) - 6px);border-top:3px solid var(--color-terracotta);border-right:3px solid var(--color-terracotta);border-radius:1px;transform:rotate(45deg)}

.itinerary__layout{display:grid;grid-template-columns:1fr;gap:var(--space-3xl);align-items:start}
.itinerary__layout.has-map{grid-template-columns:5fr 7fr}
.route-map{position:sticky;top:var(--space-xl)}
.route-map__frame{aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-sand)}
.route-map__frame img,.route-map__frame iframe{display:block;width:100%;height:100%;border:0;object-fit:cover;object-position:50% 50%}

/* Desplegables: cards blancas con borde gris fino, una sola línea (número + título), padding simétrico */
.days{display:grid;gap:var(--space-sm)}
.day{background:var(--color-white);border:1px solid var(--color-hairline);border-radius:var(--radius-md)}
.day__head{display:grid;grid-template-columns:52px 1fr 18px;align-items:center;gap:var(--space-md);min-height:68px;padding:calc(var(--space-md) + var(--space-2xs)) var(--space-lg);list-style:none;cursor:pointer;border-radius:var(--radius-md)}
.day__head::-webkit-details-marker{display:none}
.day__head:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}
.day__num{font-family:var(--font-display);font-size:36px;line-height:1;color:var(--color-brand)}
.day[open] .day__num{color:var(--color-terracotta)}
.day__title{font-family:var(--font-display);font-style:italic;text-transform:uppercase;font-size:26px;line-height:1;letter-spacing:.01em;color:var(--color-ink)}
.day__chev{color:var(--color-brand-deep)}
.day[open] .day__chev{transform:rotate(180deg)}
.day__body{padding:var(--space-2xs) var(--space-lg) var(--space-lg) calc(var(--space-lg) + 52px + var(--space-md))}
.day__body p{font-size:var(--fs-small);line-height:1.6;max-width:560px}

/* ===== Sobre la ruta (sin fondo) ===== */
.route-text{padding:var(--space-3xl) 0 var(--space-4xl)}
.route-text__inner{max-width:760px;margin:0 auto;padding-top:var(--space-3xl);border-top:1px solid var(--color-line)}
.route-text__inner .h2{margin-bottom:var(--space-lg)}
.route-text__inner p:not(.eyebrow){font-size:var(--fs-lead);line-height:1.7;color:var(--color-text);margin-bottom:var(--space-md)}

/* ===== Foto separadora ===== */
.photo-band{position:relative;height:var(--band-h);background:var(--color-sand);overflow:hidden}
.photo-band__grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.photo-band__item{overflow:hidden;background:var(--color-line)}
.photo-band__item img{width:100%;height:100%;object-fit:cover}

/* ===== Galería ===== */
.trip-gallery{position:relative;background:var(--color-sand);padding:var(--space-4xl) 0 var(--space-section)}
.gallery__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-xl);margin-bottom:var(--space-2xl)}
.trip-gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.trip-gallery__item{aspect-ratio:4/3;border-radius:20px;overflow:hidden;background:var(--color-line)}
.trip-gallery__item img{width:100%;height:100%;object-fit:cover}

/* ===== Vídeo ===== */
.trip-video{position:relative;background:var(--color-cream);padding:var(--space-section) 0 calc(var(--space-section) + var(--curve-h))}
.trip-video .section-head{margin-bottom:var(--space-2xl)}
.video-facade{position:relative;max-width:960px;margin:0 auto;aspect-ratio:16/9;border-radius:var(--radius-xl);overflow:hidden;background:var(--color-navy);box-shadow:var(--shadow-card)}
.video-facade img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.video-facade__veil{position:absolute;inset:0;background:rgba(9,24,40,.32)}
.video-facade__play{position:absolute;left:50%;top:50%;width:104px;height:104px;margin:-52px 0 0 -52px;display:flex;align-items:center;justify-content:center;padding:0 0 0 6px;border:6px solid rgba(255,255,255,.9);border-radius:50%;background:var(--color-terracotta);cursor:pointer;box-shadow:var(--shadow-float)}

/* ===== Contacto ===== */
.trip-contact{position:relative;overflow:hidden;color:var(--color-white);padding:calc(var(--curve-h) + var(--space-4xl)) 0 calc(var(--curve-h) + var(--space-4xl))}
.trip-contact__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.trip-contact__veil{position:absolute;inset:0;background:var(--color-veil-blue)}
.trip-contact__inner{position:relative;z-index:2;display:grid;grid-template-columns:7fr 5fr;gap:var(--space-4xl);align-items:center}
.trip-contact__text .h2{margin-bottom:var(--space-lg)}
.trip-contact__text p:last-child{font-size:var(--fs-lead);color:rgba(255,255,255,.92);max-width:520px}
.trip-contact__actions{display:grid;gap:var(--space-lg)}
.contact-links{display:grid;gap:var(--space-sm)}
.contact-link{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:var(--space-md);min-height:64px;padding:var(--space-xs) var(--space-lg) var(--space-xs) var(--space-xs);border-radius:var(--radius-pill);border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06);text-decoration:none;color:var(--color-white)}
.contact-link__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--color-white);color:var(--color-brand-deep)}
.contact-link__label{display:block;font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-terracotta-soft)}
.contact-link__value{display:block;font-weight:500;font-size:var(--fs-body);line-height:1.3}


/* Barra de reserva (solo mobile) */
.booking-bar{display:none}

/* Tablet */
@media (min-width:768px) and (max-width:1100px){
  :root{--fs-route:26px}
  .section-head{grid-template-columns:1fr}
  .trip-hero__content{grid-template-columns:1fr 360px;column-gap:var(--space-2xl)}
  .trip-intro__grid,.trip-contact__inner{gap:var(--space-2xl)}
  .difficulty__grid{grid-template-columns:1fr}
  .info-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl)}
  .price-card{grid-row:span 2}
  .concept-table{grid-template-columns:1fr}
  .concept-table__row:nth-child(2){border-top:0}
  .itinerary__layout.has-map{grid-template-columns:1fr}
  .itinerary__layout.has-map .route-map{order:2;position:static}
  .route-map__frame{aspect-ratio:4/3}
  .trip-gallery__grid{grid-template-columns:repeat(3,1fr)}
}
