/* araucania.tours: estilos propios de la plataforma (se cargan después de diseno/site.css y diseno/portal.css).
   Usa solo las variables del sistema de la landing: un acento verde, fondo blanco en claro, mismo modo oscuro. */

/* cabecera: en celular el botón de cuenta queda como ícono (la landing lo oculta) */
.page-portal .top .user-btn{display:inline-flex}
@media (max-width:900px){
  .page-portal .top .user-btn{width:40px;height:40px;padding:0;justify-content:center;font-size:0;gap:0;border-width:1.5px}
  .page-portal .top .user-btn .ico{width:20px;height:20px}
}
.page-portal .top .brand{margin-right:auto}
.sample{font-size:.84rem}

/* portada: puntos de la base */
.p-hero .eyebrow{color:#cfe9cf;margin-bottom:14px}
.p-hero .ctas{display:flex;flex-wrap:wrap;gap:12px}
.p-hero .btn-ghost{color:#fff}
.puntos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.punto{background:var(--surface-2);border-radius:var(--r-card);padding:28px 26px;display:grid;gap:10px;align-content:start}
.punto .ico{width:30px;height:30px;color:var(--accent)}
.punto p{color:var(--muted)}
@media (max-width:900px){.puntos{grid-template-columns:minmax(0,1fr)}}

/* páginas de acceso: foto + formulario */
.acceso{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:calc(100dvh - 72px)}
.acceso-media{position:relative;overflow:hidden;background:var(--surface-2)}
.acceso-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.acceso-panel{display:flex;align-items:center;justify-content:center;padding:clamp(32px,6vw,72px) var(--gutter)}
.acceso-caja{width:100%;max-width:460px}
.acceso-caja h1{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.4rem)}
.acceso-caja .lead{margin:10px 0 24px;font-size:1.05rem}
.acceso .form{box-shadow:none}
.acceso .form-simple{padding:0;border:0;background:none}
@media (max-width:900px){
  .acceso{grid-template-columns:minmax(0,1fr);min-height:0}
  .acceso-media{display:none}
}

/* formularios */
.field .ayuda{color:var(--muted);font-size:.86rem}
.check.bad{color:var(--err)}
.err-suelto{color:var(--err);font-size:.88rem;margin:-12px 0 16px}
.enlaces{margin-top:16px;text-align:center;font-size:.95rem}
.enlaces a,.cambio a{color:var(--accent);font-weight:600;text-underline-offset:4px}
.cambio{margin-top:20px;text-align:center;color:var(--muted);font-size:.95rem}
.link{background:none;border:0;padding:0;font:inherit;color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.correo-destino{display:flex;align-items:center;gap:10px;font-weight:600;background:var(--surface-2);border-radius:var(--r-field);padding:12px 16px;margin-bottom:18px;overflow-wrap:anywhere}
.correo-destino .ico{color:var(--accent)}

/* avisos */
.aviso{display:flex;gap:10px;align-items:flex-start;border-radius:var(--r-field);padding:12px 16px;margin:0 0 20px;font-size:.95rem}
.aviso .ico{margin-top:2px}
.aviso.ok{background:var(--accent-soft);color:var(--ink)}
.aviso.ok .ico{color:var(--accent)}

/* mi cuenta */
.cuenta h1{font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem)}
.cuenta-cabeza{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:flex-end;margin-bottom:32px}
.cuenta-cabeza .lead{margin-top:10px}
.cuenta-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:start}
.caja{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(20px,3vw,30px)}
.caja h2{font-size:1.25rem;margin-bottom:16px}
.vacio{display:flex;gap:10px;align-items:center;color:var(--muted);background:var(--surface-2);border-radius:var(--r-field);padding:18px}
.vacio .ico{color:var(--accent)}
.datos{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 18px;margin:0 0 20px}
.datos dt{color:var(--muted);font-size:.92rem}
.datos dd{margin:0;font-weight:600;overflow-wrap:anywhere}
@media (max-width:900px){.cuenta-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.datos{grid-template-columns:minmax(0,1fr);gap:2px}.datos dd{margin-bottom:10px}}

/* documentos legales */
.doc h1{font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem);margin-bottom:20px}
.doc .pending{background:var(--accent-soft);border-radius:var(--r-field);padding:14px 18px;max-width:70ch}

/* ======================= etapa 1: portal ======================= */

/* cabecera: menú y menú del celular */
.page-portal .nav a.on{color:var(--accent);opacity:1}
.menu-movil{display:none;position:relative}
.menu-movil summary{list-style:none}
.menu-movil summary::-webkit-details-marker{display:none}
.menu-panel{position:absolute;right:0;top:calc(100% + 10px);min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);padding:8px;display:grid;z-index:60}
.menu-panel a{padding:12px 14px;border-radius:10px;text-decoration:none;font-weight:600}
.menu-panel a:hover{background:var(--surface-2)}
@media (max-width:900px){.menu-movil{display:block}}
@media (max-width:420px){.top .tools{gap:6px}.top .icon-btn{width:36px;height:36px}}
.page-portal .nav{gap:22px}
@media (max-width:1100px) and (min-width:901px){.page-portal .nav{gap:16px}.page-portal .nav a{font-size:.92rem}}

/* bloques generales */
.sec-pegada{padding-top:0}
.sec-head.fila{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;max-width:none}
.eyebrow-acento{color:var(--accent);margin-bottom:14px}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.lista-temporada{margin:22px 0 0}
.join-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.estrecho{max-width:860px}
.bloque{padding:36px 0 0}
.bloque > h2{font-size:clamp(1.4rem,1.1rem + 1vw,1.8rem);margin-bottom:18px;display:flex;align-items:center;gap:10px}
.bloque > h2 .ico{color:var(--accent)}
.bloque > .lead{margin:-8px 0 18px}
.prosa{color:var(--ink);max-width:70ch}
.prosa p + p{margin-top:1em}
.prosa h2{font-size:1.4rem;margin:1.6em 0 .6em}
.prosa h3{font-size:1.15rem;margin:1.4em 0 .5em}
.prosa ul,.prosa ol{padding-left:1.3em}
.prosa a{color:var(--accent)}
.meta-linea{color:var(--muted);font-size:.92rem;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.empty p{margin-top:6px}
.fine a{color:var(--accent)}

/* héroes de sección */
.t-hero .crumbs{color:#e6efe7}
.t-hero .crumbs a{color:#fff}
.hero-comunas{display:flex;align-items:center;gap:8px;font-size:.95rem}
.hero-comunas .ico{flex:none}
.crumbs span[aria-hidden]{opacity:.6;margin:0 2px}

/* buscador */
.buscador{grid-template-columns:minmax(0,1fr) auto;max-width:720px}
.buscador-pagina{margin:20px 0 28px;box-shadow:none}
.buscar h1{font-size:clamp(1.9rem,1.3rem + 2vw,2.8rem)}
.resultados-n{margin-bottom:8px}

/* mosaico de territorios como enlace */
a.tile{text-decoration:none}
.tile:focus-visible{outline-offset:4px}
.tile-n{display:inline-block;margin-top:12px;font-size:.84rem;font-weight:600;opacity:.85}
.comunas-lista{margin-top:28px;display:grid;gap:6px;color:var(--muted);font-size:.95rem}
.comunas-lista b{color:var(--ink)}

/* tarjetas sin foto: ícono grande sobre color suave */
.card .media-icono{display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-soft),var(--surface-2))}
.card .media-icono .ico{width:56px;height:56px;color:var(--accent);opacity:.9}
.card .resumen{color:var(--muted);font-size:.93rem;margin-top:2px}
.card .flag{max-width:100%}

/* listado con filtros */
.filters .field{margin:0}
.filters select,.filters input[type=search]{min-height:44px}
.filters .check{margin:0;color:var(--ink)}
.filters .btn{justify-content:center}
.link-limpiar{color:var(--accent);font-weight:600;text-align:center}
.grid-ad .anuncio{margin:4px 0}

/* paginación */
.paginacion{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px}
.pag-btn{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:var(--r-pill);padding:.6em 1.1em;font-weight:600;text-decoration:none}
a.pag-btn:hover{border-color:var(--accent);color:var(--accent)}
span.pag-btn{opacity:.45}
.pag-n{color:var(--muted)}

/* contenido + columna lateral (P4) */
.contenido-con-lado{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;padding-bottom:80px}
.lado{padding-top:36px}
.lado .anuncio{position:sticky;top:96px}
@media (max-width:1000px){.contenido-con-lado{grid-template-columns:minmax(0,1fr)}.lado{padding-top:0}.lado .anuncio{position:static}}
.principal > .prosa:first-child{padding-top:36px}

/* condiciones del día */
.condiciones{margin-top:36px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(18px,3vw,26px)}
.block .condiciones{margin-top:0}
.condiciones h2{font-size:1.25rem;display:flex;align-items:center;gap:10px;margin-bottom:14px}
.condiciones h2 .ico{color:var(--accent)}
.cond-lista{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:12px}
.cond{display:flex;gap:12px;padding:12px 14px;border-radius:var(--r-field);background:var(--surface-2)}
.cond > .ico{width:24px;height:24px;flex:none;margin-top:2px}
.cond-cabeza{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cond p{color:var(--muted)}
.cond-cabeza b{color:var(--ink)}
.cond-fuente{font-size:.85rem;margin-top:4px}
.cond-fuente a{color:var(--accent)}
.cond-ok > .ico{color:var(--accent)}
.cond-warn > .ico,.cond-viejo{color:#9a6100}
.cond-bad > .ico{color:var(--err)}
.cond-warn .cond-nivel{background:#fff3d6;color:#7a4b00}
.cond-bad .cond-nivel{background:color-mix(in srgb,var(--err) 14%,transparent);color:var(--err)}
.cond-ok .cond-nivel{background:var(--accent-soft);color:var(--accent)}
.cond-vacio{color:var(--muted);background:var(--surface-2);border-radius:var(--r-field);padding:14px 16px}
:root[data-theme="dark"] .cond-warn .cond-nivel{background:#3a2c0c;color:#ffd27a}
:root[data-theme="dark"] .cond-warn > .ico,:root[data-theme="dark"] .cond-viejo{color:#ffd27a}
.grupo-titulo{display:flex;align-items:center;gap:8px;font-size:1.05rem;margin:26px 0 14px;color:var(--ink)}
.grupo-titulo:first-of-type{margin-top:0}
.grupo-titulo .ico{color:var(--accent)}
.grupo-titulo span{color:var(--muted);font-weight:500}

/* fichas (atractivo, negocio, guía) */
.ficha-cabeza{padding-top:22px}
.ficha-cabeza .crumbs{color:var(--muted)}
.ficha-cabeza .crumbs a{color:var(--accent)}
.ficha-foto{margin-top:6px;border-radius:var(--r-card);overflow:hidden;aspect-ratio:21/9;background:var(--surface-2)}
.ficha-foto img{width:100%;height:100%;object-fit:cover}
.ficha-h1{font-size:clamp(1.9rem,1.3rem + 2.4vw,2.8rem);margin-top:24px}
.en-breve{background:var(--accent-soft);border-radius:var(--r-card);padding:20px 22px;border-top:0;margin-top:18px}
.en-breve h2{font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.en-breve p,.en-breve li{color:var(--ink);font-size:1.05rem}
.datos a{color:var(--accent)}
.gallery-1{grid-template-columns:minmax(0,1fr);grid-template-rows:1fr}
.gallery-1 img:first-child{grid-row:auto}
.gallery-2{grid-template-columns:2fr 1fr;grid-template-rows:1fr}
.gallery-2 img:first-child{grid-row:auto}
.contacto{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:12px}
.contacto li{display:flex;align-items:center;gap:10px;overflow-wrap:anywhere}
.contacto li .ico{color:var(--accent)}
.contacto a{color:var(--ink)}
.contacto .btn{width:100%;justify-content:center;color:var(--accent-ink)}
.aviso.warn{background:#fff3d6;color:#5c3a00}
:root[data-theme="dark"] .aviso.warn{background:#3a2c0c;color:#ffe2a3}
.page-portal > main > .wrap > .aviso.warn{margin-top:22px}
.guia-foto{border-radius:var(--r-card);margin:20px 0 0;width:100%}
.faq{border-bottom:1px solid var(--line);padding:14px 0}
.faq summary{font-weight:600;cursor:pointer}
.faq p{margin-top:8px;color:var(--muted)}

/* temporadas */
.temporadas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.temporada-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s}
.temporada-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.temporada-card .media{min-height:220px;background:var(--surface-2)}
.temporada-card .media img{width:100%;height:100%;object-fit:cover}
.temporada-card .body{padding:22px;display:grid;gap:10px;align-content:start}
.temporada-card h2{font-size:1.5rem}
.temporada-card .ticks li{font-size:.94rem;color:var(--muted)}
@media (max-width:900px){.temporadas-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.temporada-card{grid-template-columns:minmax(0,1fr)}.temporada-card .media{aspect-ratio:16/9;min-height:0}}
.patrocinio{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:18px 0 0}
.patrocinio > span{font-weight:600;color:var(--muted)}
.patrocinio .anuncio{flex:1 1 320px}

/* publicidad real y espacio libre (tamaño reservado: no mueve el contenido) */
.anuncio{position:relative;border-radius:var(--r-card);overflow:hidden}
.anuncio-rotulo{position:absolute;top:8px;left:8px;z-index:2;background:rgba(10,20,14,.72);color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:var(--r-pill)}
.anuncio a{display:block;text-decoration:none;color:inherit}
.anuncio picture,.anuncio picture img{display:block;width:100%;height:100%;object-fit:cover}
.anuncio-p1{aspect-ratio:970/250}
.anuncio-p4{aspect-ratio:300/250;max-width:300px}
.grid-ad .anuncio-p4{max-width:none;aspect-ratio:728/90}
.anuncio-p3{min-height:64px}
.anuncio-texto{display:flex;align-items:center;gap:16px;height:100%;padding:20px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card)}
.anuncio-texto b{display:block;font-family:"Montserrat",sans-serif;font-size:1.05rem}
.anuncio-texto > .ico{margin-left:auto;color:var(--accent)}
.anuncio-logo{max-height:48px;width:auto;max-width:140px;object-fit:contain}
.anuncio-p3 .anuncio-texto{padding:14px 18px 14px 110px}
.anuncio-p1 .anuncio-texto{padding-top:34px}
@media (max-width:700px){.anuncio-p1{aspect-ratio:300/250;max-width:420px;margin:0 auto}.grid-ad .anuncio-p4{aspect-ratio:320/100}}
.anuncio-libre{display:flex;align-items:center;gap:18px;padding:18px 22px;border:1.5px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface))}
.anuncio.anuncio-libre{aspect-ratio:auto;max-width:none;margin:0}
.anuncio-libre > .ico{width:30px;height:30px;color:var(--accent);flex:none}
.anuncio-libre b{display:block;font-family:"Montserrat",sans-serif}
.anuncio-libre p{color:var(--muted);font-size:.93rem}
.anuncio-libre .ad-code{margin-left:auto;text-decoration:none}
.lado .anuncio-libre{flex-direction:column;align-items:flex-start;min-height:250px;justify-content:center}
.lado .anuncio-libre .ad-code{margin:8px 0 0}
@media (max-width:640px){.anuncio-libre{flex-wrap:wrap}.anuncio-libre .ad-code{margin-left:0}}

/* anúnciate */
.space{justify-content:space-between}
.space:first-child{flex-direction:column;align-items:stretch;grid-column:auto}
.space h3{margin-top:10px}
.formatos{display:flex;gap:8px;align-items:center;font-size:.9rem;margin-top:8px}
.formatos .ico{color:var(--accent);width:18px;height:18px}
.precio{padding-top:14px;border-top:1px solid var(--line);color:var(--muted)}
.precio b{font:800 1.4rem/1 "Montserrat",sans-serif;color:var(--ink)}
.precio span{display:block;margin-top:6px;font-size:.92rem}
.precio span b{font-size:1.1rem}
.precio .minimo{font-weight:600}
.politica{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.politica li{color:var(--muted)}
@media (max-width:760px){.politica{grid-template-columns:minmax(0,1fr)}}
.form textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--r-field);padding:.75em .9em;resize:vertical}
.form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}
.form .aviso{margin-bottom:16px}

/* mi negocio */
.cuenta .crumbs{color:var(--muted)}
.cuenta .crumbs a{color:var(--accent)}
.cuenta h1 + .lead{margin:10px 0 24px}
.form-negocio{margin-top:8px;box-shadow:none}
.form-negocio fieldset{border:0;padding:0;margin:0 0 26px;min-width:0}
.form-negocio legend{font:700 1.15rem/1.2 "Montserrat",sans-serif;margin-bottom:14px}
.form-negocio > .btn{width:auto}
.field.bad textarea{border-color:var(--err)}
.field input[type=file]{padding:.6em;min-height:0}
.estado-negocio{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}
.estado-negocio a{color:var(--accent);font-weight:600}
.fotos-actuales{list-style:none;padding:0;margin:0 0 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.fotos-actuales img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;width:100%}
.fotos-actuales .link{margin-top:6px;font-size:.9rem}
.pila{display:grid;gap:20px;align-content:start}
.caja .lead{font-size:1rem;margin-bottom:16px}
.caja .vacio{margin-bottom:16px}

/* cabecera en celular: buscar y tema pasan al menú */
.menu-extra{display:none}
@media (max-width:560px){
  .top .solo-ancho{display:none}
  .menu-panel .menu-extra{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;font:600 1rem/1.3 "Figtree",sans-serif;background:none;border:0;color:inherit;cursor:pointer;text-align:left;text-decoration:none}
  .menu-panel .menu-extra:hover{background:var(--surface-2)}
  .menu-panel .menu-extra .ico{width:20px;height:20px;color:var(--accent)}
  .page-portal .brand svg{height:19px}
}

/* tarjetas sin foto: franja baja con ícono (no una foto vacía alta) */
.card .media.media-icono{aspect-ratio:auto;height:88px}
.card .media-icono .ico{width:40px;height:40px}
.principal .cards{grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr))}
.ad-strip + .sec{padding-top:clamp(56px,7vw,88px)}

/* ======================= etapa 2: experiencias y reservas ======================= */
.sin-borde{border-top:0}
.sub{font-size:1rem;margin:16px 0 8px}
.book .usd{font-size:.86rem;color:var(--muted);margin-top:4px}
.book .aviso{margin:14px 0 0}
.form-reserva fieldset{border:0;padding:0;margin:16px 0 0;min-width:0}
.form-reserva legend{font-weight:600;font-size:.95rem;margin-bottom:8px}
.salidas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:236px;overflow-y:auto;padding:2px}
.salida{position:relative;display:block;cursor:pointer}
.salida input{position:absolute;opacity:0;inset:0}
.salida span{display:block;border:1.5px solid var(--line);border-radius:var(--r-field);padding:.55em .7em;font-size:.92rem;line-height:1.3}
.salida small{display:block;color:var(--muted);font-size:.78rem}
.salida input:checked + span{border-color:var(--accent);background:var(--accent-soft)}
.salida input:focus-visible + span{outline:3px solid var(--accent);outline-offset:2px}
.qty-fila{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1.5px solid var(--line);border-radius:var(--r-field);padding:6px 6px 6px 14px;margin-bottom:8px}
.qty-fila small{display:block;color:var(--muted);font-size:.82rem}
.qty-fila input{width:72px;min-height:40px;font:inherit;text-align:center;border:1.5px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.form-reserva .check{margin:6px 0}
.total-sub{display:flex;justify-content:space-between;font-size:.92rem;color:var(--muted);margin:-6px 0 10px}
.form-reserva .btn{width:100%;justify-content:center;margin-top:6px}
.sello-clima{display:flex;gap:10px;align-items:flex-start;background:var(--accent-soft);border-radius:var(--r-field);padding:12px 14px;margin-top:12px;color:var(--ink)}
.sello-clima .ico{color:var(--accent);margin-top:2px}
a.seller{text-decoration:none}
a.seller:hover b{color:var(--accent)}
.aviso-fecha{display:block;color:var(--muted);font-size:.86rem;margin-top:4px}
@media (max-width:420px){.salidas{grid-template-columns:minmax(0,1fr)}}

/* checkout y resultado */
.form-checkout{box-shadow:none}
.form-checkout .btn{width:100%;justify-content:center}
.mini-titulo{margin-bottom:14px;color:var(--muted)}
.mini-titulo b{color:var(--ink)}
.ficha-cabeza .aviso{margin-top:14px}
.resultado{text-align:center;display:grid;justify-items:center;gap:14px}
.resultado h1{font-size:clamp(1.8rem,1.3rem + 2vw,2.6rem)}
.resultado .ctas{justify-content:center;margin-top:8px}
.ico.grande{width:64px;height:64px;color:var(--accent)}
.ico.grande.mal{color:var(--err)}
.codigo-reserva{color:var(--muted)}
.texto-izq{text-align:left;width:100%}

/* mis reservas */
.lista-reservas{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.lista-reservas a{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 18px;text-decoration:none;transition:border-color .2s}
.lista-reservas a:hover{border-color:var(--accent)}
.lr-fecha{display:grid;place-items:center;width:56px;flex:none;color:var(--muted);font-size:.8rem;text-transform:uppercase;line-height:1.1}
.lr-fecha b{font:800 1.5rem/1 "Montserrat",sans-serif;color:var(--ink)}
.lr-info{flex:1;min-width:0}
.lr-info b{display:block}
.lr-info small{color:var(--muted)}
@media (max-width:520px){.lista-reservas a{flex-wrap:wrap}.lista-reservas .flag{margin-left:72px}}
.caja.suspendida{border-color:#e9b949;margin-bottom:20px;display:grid;gap:14px}
.caja.suspendida h2{display:flex;gap:10px;align-items:center}
.caja.suspendida h2 .ico{color:#9a6100}
.salidas-form{display:grid;gap:12px}
.confirmar summary{list-style:none;width:max-content;cursor:pointer}
.confirmar summary::-webkit-details-marker{display:none}
.confirmar form{margin-top:14px;display:grid;gap:4px}
.confirmar .btn{width:max-content}
.caja h2 + p{margin-bottom:14px;color:var(--muted)}

/* barra fija «Reservar» en celular */
.barra-reservar{display:none}
@media (max-width:980px){
  .barra-reservar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:center;justify-content:space-between;gap:12px;padding:10px var(--gutter);padding-bottom:max(10px,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
  .barra-reservar b{font:800 1.15rem/1 "Montserrat",sans-serif}
  .barra-reservar .btn{padding:.75em 1.4em}
  body:has(.barra-reservar) .foot{padding-bottom:96px}
  .book{scroll-margin-top:84px}
}

/* ======================= etapa 3 ======================= */
.pestanas{display:flex;flex-wrap:wrap;gap:8px;padding-top:24px}
.pestanas a{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:var(--r-pill);padding:.55em 1.1em;font-weight:600;text-decoration:none}
.pestanas a.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.pestanas .ico{width:18px;height:18px}
.recursos{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.recursos li{display:grid;gap:2px;background:var(--surface-2);border-radius:var(--r-field);padding:12px 14px}
.recursos span,.recursos small{color:var(--muted)}
.recursos .precio-rec b{color:var(--ink)}
.form-fechas{display:grid;gap:4px;margin-top:14px}
.form-fechas .field{margin-bottom:8px}
.form-fechas .btn{justify-content:center}
.form-fechas .grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.form-fechas input{width:100%;min-width:0;box-sizing:border-box}
.disponibles{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.disponibles li{display:grid;gap:8px;border:1.5px solid var(--line);border-radius:var(--r-field);padding:12px}
.disponibles li.ocupada{opacity:.6}
.disponibles small{display:block;color:var(--muted)}
.disponibles form{display:flex;align-items:center;justify-content:space-between;gap:10px}
.disponibles .precio-total{font:800 1.15rem/1 "Montserrat",sans-serif}
.disponibles .btn{width:auto;padding:.6em 1.1em}
.salida .faltan{color:#9a6100;font-weight:600}
.salida .dcto{color:var(--accent);font-weight:600}
:root[data-theme="dark"] .salida .faltan{color:#ffd27a}
.promedio{display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:14px}
.promedio .ico{color:#d99a00}
.promedio b{font:800 1.4rem/1 "Montserrat",sans-serif;color:var(--ink)}
.opiniones{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.opiniones li{border-bottom:1px solid var(--line);padding-bottom:14px}
.op-cabeza{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;color:var(--ink)}
.op-cabeza small{color:var(--muted)}
.estrellas{color:#d99a00;letter-spacing:2px}
.respuesta{margin-top:8px;background:var(--surface-2);border-radius:var(--r-field);padding:10px 12px}
.reportar{margin-top:6px;font-size:.85rem}
.reportar summary{cursor:pointer;color:var(--muted)}
.reportar form{display:flex;gap:8px;margin-top:6px}
.reportar input{flex:1;min-width:0;font:inherit;border:1.5px solid var(--line);border-radius:8px;padding:.4em .6em;background:var(--bg);color:var(--ink)}
.estrellas-input{border:0;padding:0;margin:0 0 12px;display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.estrellas-input legend{font-weight:600;margin-bottom:6px;float:left;width:100%}
.estrellas-input input{position:absolute;opacity:0;width:1px;height:1px}
.estrellas-input label{font-size:2rem;line-height:1;color:var(--line);cursor:pointer}
.estrellas-input input:checked ~ label,.estrellas-input label:hover,.estrellas-input label:hover ~ label{color:#d99a00}
.estrellas-input input:focus-visible + label{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.form-opinion .btn{width:auto}

/* ---------- Etapa 4: grupos, gift cards, itinerario, socios ---------- */
.book-extras{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.book-extras .btn{justify-content:center;white-space:normal;text-align:center}
.guardar-viaje{display:flex;flex-wrap:wrap;gap:8px}
.guardar-viaje select,.viaje-mover-dia select,.form select{font:inherit;font-size:.95rem;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:var(--r-field);padding:.55em .7em;min-height:44px;max-width:100%}
.guardar-viaje .btn{flex:1 1 auto;justify-content:center}
.guardar-viaje + .aviso{margin-top:4px}
.cta-linea{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(20px,3vw,32px)}
.cta-linea h2{margin-bottom:8px}
.cta-linea .fine{margin-top:8px}
@media (max-width:700px){.cta-linea{grid-template-columns:minmax(0,1fr)}}
.gift-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:8px}
.gift-form .btn{justify-content:center}
.precio-grande{font:700 1.8rem/1.2 "Montserrat",sans-serif;margin:6px 0 10px}
.precio-grande small{font:400 .9rem "Figtree",sans-serif;color:var(--muted)}
.caja blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 var(--r-field) var(--r-field) 0}
.caja + .caja,.caja + .aviso{margin-top:16px}
.caja-enlace{display:block;text-decoration:none;color:inherit;transition:border-color .2s}
.caja-enlace:hover{border-color:var(--accent)}
.caja-enlace h2{margin-bottom:10px}
.enlaces-cuenta{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.enlaces-cuenta a{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:var(--r-field);background:var(--surface-2);color:var(--ink);text-decoration:none;font-weight:500}
.enlaces-cuenta a:hover{color:var(--accent)}
.enlaces-cuenta .ico{color:var(--accent)}
.enlace-copiar code{display:block;overflow-x:auto;white-space:pre-wrap;word-break:break-all;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-field);padding:10px 12px;font-size:.88rem}
.cifras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 6px}
.cifras div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px;text-align:center}
.cifras b{display:block;font:700 1.4rem/1.2 "Montserrat",sans-serif}
.cifras span{color:var(--muted);font-size:.85rem}
.lista-simple{list-style:none;margin:0;padding:0}
.lista-simple li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
/* itinerario */
.viaje{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin:22px 0}
.viaje-dia{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:18px}
.viaje-dia h2{font-size:1.15rem;margin-bottom:12px}
.viaje-dia h2 small{display:block;font:400 .88rem "Figtree",sans-serif;color:var(--muted);margin-top:2px}
.viaje-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.viaje-item{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:start;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-field);padding:10px}
.viaje-ico{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent)}
.viaje-info{display:grid;gap:4px;min-width:0}
.viaje-info a{color:var(--ink);text-decoration:none}
.viaje-info a:hover{color:var(--accent)}
.viaje-info small{color:var(--muted)}
.viaje-info .flag{justify-self:start}
.viaje-acciones{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.viaje-acciones form{margin:0}
.viaje-mover-dia select{min-height:36px;padding:.3em .5em;font-size:.85rem}
.btn-icono{width:36px;height:36px;display:inline-grid;place-items:center;border:1.5px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);cursor:pointer}
.btn-icono:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.btn-icono:disabled{opacity:.35;cursor:default}
.viaje-tramo{text-align:center;font-size:.85rem}
.viaje-tramo a{display:inline-flex;gap:6px;align-items:center;color:var(--muted)}
.viaje-ajustes{margin-top:24px}
.btn.peligro{color:var(--err);border-color:color-mix(in srgb,var(--err) 40%,transparent);margin-top:12px}
.viaje-mapa{display:inline-flex;gap:4px;align-items:center;font-size:.85rem;color:var(--muted)!important}
.viaje-mapa:hover{color:var(--accent)!important}
.viaje-ajustes .fine a,.viaje-ajustes .fine span{overflow-wrap:anywhere;min-width:0}
.cuenta h1 + .caja,.cuenta h1 + .aviso + .caja,.cuenta .lead + .caja{margin-top:20px}
.caja .precio-grande{color:var(--ink)}
