
  /* ============ Marca Viajes Veracruz — mismo lineamiento del manual de ventas ============ */
  :root{
    --blue:#1E428A; --blue-600:#183868; --blue-800:#0f2750; --blue-900:#0a1c3d;
    --blue-200:#a9c0e8; --blue-100:#d6e2f6; --blue-50:#eef3fb;
    --gold:#FFB819; --gold-2:#FFC656; --gold-deep:#a8730a; --gold-50:#fff6e2;
    --ink:#20242f; --ink-2:#5B5B5F; --ink-3:#8c8d96; --line:#dde2ec;
    --surface:#ffffff; --surface-2:#f3f6fc; --surface-3:#e9eff8; --chat-bg:#e7edf7;
    --font-head:'Avenir Next','Mulish',system-ui,sans-serif;
    --font-body:'Roboto',system-ui,sans-serif;
    --shadow-card:0 2px 12px -5px rgba(10,28,61,.18);
    --shadow-lift:0 14px 34px -18px rgba(10,28,61,.4);
    --ease:cubic-bezier(.22,1,.36,1);
  }
  *{ box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
  html{ font-size:17px; }
  body{
    font-family:var(--font-body); color:var(--ink); line-height:1.5; min-height:100dvh;
    background:
      radial-gradient(1100px 560px at 82% -12%, rgba(30,66,138,.12), transparent 60%),
      radial-gradient(820px 460px at -12% 112%, rgba(255,184,25,.10), transparent 55%),
      var(--surface-3);
    -webkit-font-smoothing:antialiased;
  }
  a{ color:var(--blue); }
  img{ display:block; }

  /* ---------- header ---------- */
  .top{
    background:linear-gradient(120deg,var(--blue-800) 0%,var(--blue) 80%);
    padding:calc(12px + env(safe-area-inset-top)) 20px 12px;
    display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; z-index:20;
    box-shadow:0 6px 18px -12px rgba(10,28,61,.55);
  }
  .top img{ height:26px; }
  .top span{ font:700 10.5px/1 var(--font-body); letter-spacing:.15em; text-transform:uppercase; color:var(--blue-200); }

  main{ max-width:640px; margin:0 auto; padding:20px 16px calc(100px + env(safe-area-inset-bottom)); }
  section[hidden]{ display:none; }

  /* ---------- piezas comunes ---------- */
  .eyebrow{
    font:700 11.5px/1 var(--font-body); letter-spacing:.18em; text-transform:uppercase;
    color:var(--gold-deep); display:flex; align-items:center; gap:8px; margin:28px 0 12px;
  }
  .eyebrow:first-child{ margin-top:2px; }
  .eyebrow .ico{ width:12px; height:12px; fill:var(--gold); flex:none; }
  .card{
    background:var(--surface); border:1px solid var(--line); border-radius:14px;
    padding:17px 18px; margin-bottom:12px; box-shadow:var(--shadow-card);
  }
  .callout{
    background:var(--gold-50); border:1px solid #ffe2a6; border-radius:12px;
    padding:13px 16px; margin-top:14px; font:400 .9rem/1.5 var(--font-body); color:var(--ink);
  }
  .callout b{ color:var(--gold-deep); }
  .reservada{
    display:inline-flex; align-items:center; gap:6px;
    background:var(--gold-50); color:var(--gold-deep); border:1px solid #ffe2a6;
    font:700 .76rem/1.3 var(--font-body); border-radius:999px; padding:4px 12px;
  }
  .reservada .ico{ width:11px; height:11px; fill:var(--gold); }
  h2{ font:800 1.32rem/1.2 var(--font-head); letter-spacing:-.015em; color:var(--blue); }
  h3{ font:800 1.02rem/1.25 var(--font-head); letter-spacing:-.01em; color:var(--blue); }

  /* ---------- animaciones ---------- */
  @media (prefers-reduced-motion: no-preference){
    /* Initial content stays still; feedback is tied to the user's action. */
    @keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
    .acc-h, .sug, .manana, .btn-wa, .chat-send{ transition:transform .15s var(--ease); }
    .acc-h:active, .sug:active, .manana:active, .btn-wa:active, .chat-send:active{ transform:scale(.98); }
    @keyframes pop{ from{ opacity:0; transform:translateY(8px) scale(.98); } to{ opacity:1; transform:none; } }
    /* Only a newly added message animates, through animateUI. */
    @keyframes puntito{ 0%,60%,100%{ transform:none; opacity:.45; } 30%{ transform:translateY(-4px); opacity:1; } }
    .puntos i{ animation:puntito 1.1s infinite; }
    .puntos i:nth-child(2){ animation-delay:.15s; } .puntos i:nth-child(3){ animation-delay:.3s; }
  }

  /* ---------- hero (Hoy) ---------- */
  .hero-foto{
    position:relative; border-radius:18px; overflow:hidden; margin-bottom:14px;
    box-shadow:var(--shadow-lift);
  }
  .hero-foto img{ width:100%; height:clamp(250px, 62vw, 350px); object-fit:cover; }
  .hero-foto .velo{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,28,61,.16) 30%, rgba(10,28,61,.86)); }
  .hero-txt{ position:absolute; left:0; right:0; bottom:0; padding:18px 20px; color:#fff; }
  .hpill{
    display:inline-block; background:var(--gold); color:var(--blue-900);
    font:800 .76rem/1 var(--font-head); border-radius:999px; padding:6px 13px; margin-bottom:9px;
  }
  .hfecha{ font:700 10.5px/1 var(--font-body); letter-spacing:.17em; text-transform:uppercase; color:var(--gold-2); margin-bottom:6px; }
  .hero-txt h2{ color:#fff; font-size:1.5rem; text-shadow:0 2px 14px rgba(10,28,61,.5); }
  .hlugar{ margin-top:5px; font:700 .86rem/1 var(--font-body); color:var(--blue-100); display:flex; align-items:center; gap:6px; }
  .hlugar .ico{ width:12px; height:12px; fill:var(--gold-2); }

  .hero-band{
    position:relative; overflow:hidden; border-radius:18px; margin-bottom:14px;
    background:linear-gradient(150deg,var(--blue-800),var(--blue)); color:#fff;
    padding:26px 22px; box-shadow:var(--shadow-lift);
  }
  .hero-band .bstar{ position:absolute; right:-28px; top:-32px; width:170px; height:170px; object-fit:contain; opacity:.24; pointer-events:none; }
  .hero-band .hfecha{ margin-bottom:10px; }
  .hero-band h2{ color:#fff; font-size:1.5rem; position:relative; }
  .hero-band .num{ font:900 4.4rem/1 var(--font-head); letter-spacing:-.03em; color:var(--gold); position:relative; }
  .hero-band .bsub{ position:relative; margin-top:8px; font:400 .93rem/1.5 var(--font-body); color:var(--blue-100); }

  /* point cards (tips) */
  .point{ display:flex; gap:14px; align-items:flex-start; padding:13px 0; border-top:1px solid var(--line); }
  .point:first-of-type{ border-top:0; padding-top:3px; }
  .point .pic{
    flex:none; width:36px; height:36px; border-radius:10px; display:grid; place-items:center;
    background:var(--blue-50); color:var(--blue); font:800 15px/1 var(--font-head);
  }
  .point h4{ font:800 .96rem/1.3 var(--font-head); color:var(--blue); margin-bottom:2px; }
  .point p{ font-size:.9rem; line-height:1.5; color:var(--ink-2); }

  .manana{
    display:flex; align-items:center; gap:13px; width:100%; text-align:left;
    background:var(--surface); border:1px solid var(--line); border-radius:14px;
    padding:12px 14px; font:inherit; cursor:pointer; box-shadow:var(--shadow-card); overflow:hidden;
  }
  .manana img{ width:56px; height:56px; border-radius:10px; object-fit:cover; flex:none; }
  .manana small{ display:block; font:700 10px/1.4 var(--font-body); letter-spacing:.12em; text-transform:uppercase; color:var(--gold-deep); }
  .manana b{ font:800 .98rem/1.3 var(--font-head); color:var(--blue); }
  .manana .flecha{ margin-left:auto; color:var(--blue); font-weight:800; font-size:1.2rem; }

  /* datos grid */
  .datos{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:4px; }
  .dato{ background:var(--surface); border:1px solid var(--line); border-radius:13px; padding:12px 15px; box-shadow:var(--shadow-card); }
  .dato small{ font:700 9.5px/1.6 var(--font-body); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
  .dato b{ display:block; font:800 1rem/1.3 var(--font-head); color:var(--blue); }
  .dato.clima{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
  .dato.clima .clima-icon{ font-size:2rem; line-height:1; flex:none; }
  .dato.clima div > span{ display:block; font-size:.82rem; color:var(--ink-2); }

  /* flow rail (recorrido) */
  .fstep{ display:flex; gap:15px; align-items:flex-start; }
  .fstep .rail2{ display:flex; flex-direction:column; align-items:center; flex:none; align-self:stretch; }
  .fstep .dot{
    width:34px; height:34px; border-radius:50%; background:var(--blue); color:#fff;
    display:grid; place-items:center; font:800 13px/1 var(--font-head); box-shadow:0 0 0 4px var(--blue-50);
  }
  .fstep .line{ width:2px; flex:1; background:repeating-linear-gradient(var(--blue-200) 0 6px, transparent 6px 12px); min-height:14px; }
  .fstep:last-child .line{ display:none; }
  .fstep .fc{ padding:5px 0 16px; flex:1; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
  .fstep .fc h4{ font:800 .98rem/1.25 var(--font-head); color:var(--blue); }
  .fstep .fc small{ color:var(--ink-3); font-size:.82rem; }
  .fstep .fc .noches{ margin-left:auto; font:700 .78rem/1.3 var(--font-body); color:var(--gold-deep); white-space:nowrap; }

  /* ---------- acordeones ---------- */
  .acc{ background:var(--surface); border:1px solid var(--line); border-radius:14px; margin-bottom:10px; box-shadow:var(--shadow-card); transition:border-color .25s; }
  .acc.open{ border-color:var(--blue-200); }
  .acc-h{
    width:100%; font:inherit; text-align:left; background:none; border:0; cursor:pointer;
    display:flex; align-items:center; gap:13px; padding:14px 16px; min-height:52px;
  }
  .acc-h .chev{ margin-left:auto; flex:none; width:20px; height:20px; color:var(--blue); transition:transform .25s var(--ease); }
  .acc.open .chev{ transform:rotate(90deg); }
  .acc-b{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s var(--ease); }
  .acc.open .acc-b{ grid-template-rows:1fr; }
  .acc-inner{ overflow:hidden; min-height:0; }
  .acc-pad{ padding:2px 16px 16px; }
  .acc-foto{ width:100%; height:170px; object-fit:cover; border-radius:11px; margin-bottom:13px; }

  .dia-n{
    flex:none; width:38px; height:38px; border-radius:10px; background:var(--blue-50);
    color:var(--blue); display:grid; place-items:center; font:800 15px/1 var(--font-head);
  }
  .acc.es-hoy .dia-n{ background:var(--gold); color:var(--blue-900); }
  .acc.es-hoy{ border-color:var(--gold); }
  .acc-h .tit{ min-width:0; }
  .acc-h .tit small{ display:block; font:700 10px/1.5 var(--font-body); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); }
  .acc-h .tit small .hoytag{ color:var(--gold-deep); }
  .acc-h .tit b{ font:800 1rem/1.3 var(--font-head); color:var(--blue); }
  .foto-mini{ flex:none; width:52px; height:52px; border-radius:11px; object-fit:cover; }
  .destacados{ font:700 .85rem/1.5 var(--font-body); color:var(--gold-deep); margin-bottom:8px; }
  .acc-pad > p{ color:var(--ink-2); font-size:.93rem; }

  .hotelito{ border-top:1px solid var(--line); margin-top:15px; padding-top:13px; }
  .hotelito .hrow{ display:flex; gap:12px; align-items:center; margin-bottom:8px; }
  .hotelito .hrow img{ width:58px; height:58px; border-radius:11px; object-fit:cover; flex:none; }
  .hotelito small.label{ font:700 9.5px/1.7 var(--font-body); letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); display:block; }
  .hotelito b.hn{ font:800 .98rem/1.25 var(--font-head); color:var(--blue); display:block; }
  .hotelito .fechas{ font:400 .8rem/1.4 var(--font-body); color:var(--ink-3); }
  .hotelito > p{ font-size:.9rem; color:var(--ink-2); }

  /* ---------- horarios (tcard) ---------- */
  .tcard{ border:1px solid var(--line); border-radius:13px; overflow:hidden; box-shadow:var(--shadow-card); margin-bottom:12px; background:var(--surface); }
  .tcard .th{ background:var(--blue); color:#fff; padding:10px 16px; font:800 .88rem/1.2 var(--font-head); display:flex; align-items:center; gap:8px; }
  .tcard .th .ico{ width:13px; height:13px; fill:var(--gold); flex:none; }
  .tcard .tb{ padding:6px 16px 12px; }
  .horario{ display:flex; align-items:baseline; gap:10px; padding:10px 0; border-top:1px solid var(--line); flex-wrap:wrap; }
  .horario:first-child{ border-top:0; }
  .horario b{ font:800 .92rem/1.3 var(--font-head); color:var(--blue); display:block; }
  .horario small{ display:block; color:var(--ink-3); font-size:.78rem; }
  .horario .hh{ margin-left:auto; text-align:right; font:500 .88rem/1.35 var(--font-body); color:var(--ink); white-space:nowrap; }

  /* actividades */
  .actv small.band{ font:700 10px/1.6 var(--font-body); letter-spacing:.13em; text-transform:uppercase; color:var(--gold-deep); display:block; }
  .actv h3{ margin:2px 0 1px; }
  .actv .op{ font:500 .78rem/1.4 var(--font-body); color:var(--ink-3); }
  .actv p{ margin-top:7px; font-size:.9rem; color:var(--ink-2); }

  /* barco */
  .barco-card{ border-radius:16px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-card); background:var(--surface); margin-bottom:12px; }
  .barco-card img{ width:100%; height:180px; object-fit:cover; }
  .barco-card .bc{ padding:15px 18px 17px; }
  .barco-card .chipf{ display:inline-block; margin-top:6px; font:700 .76rem/1.3 var(--font-body); color:var(--blue); background:var(--blue-50); border-radius:999px; padding:3px 11px; }
  .barco-card p{ margin-top:9px; font-size:.92rem; color:var(--ink-2); }

  /* agencia (quote) */
  .agencia{
    position:relative; overflow:hidden; border-radius:16px; margin-top:26px;
    background:linear-gradient(150deg,var(--blue-800),var(--blue)); color:#fff; padding:24px 22px;
    box-shadow:var(--shadow-lift);
  }
  .agencia .qstar{ position:absolute; right:-22px; top:-26px; width:140px; height:140px; fill:rgba(255,184,25,.14); }
  .agencia h3{ color:#fff; font-size:1.15rem; position:relative; }
  .agencia p{ position:relative; margin-top:6px; font-size:.92rem; color:var(--blue-100); }
  .btn-wa{
    position:relative; display:block; text-align:center; background:var(--gold); color:var(--blue-900);
    font:800 1rem/1.2 var(--font-head); text-decoration:none; border-radius:12px; padding:14px; margin-top:16px;
  }
  .agencia .tel{ position:relative; display:block; text-align:center; color:#fff; margin-top:13px; font-size:.9rem; }

  /* ---------- chat ---------- */
  .chat-zona{
    background:var(--chat-bg);
    background-image:radial-gradient(rgba(10,28,61,.05) 1px, transparent 1px);
    background-size:16px 16px;
    border:1px solid var(--line); border-radius:16px; padding:14px;
    display:flex; flex-direction:column; gap:9px; min-height:46vh; box-shadow:var(--shadow-card);
  }
  .chat-dia{ align-self:center; background:#fff; color:var(--ink-3); font:600 10.5px/1 var(--font-body); letter-spacing:.06em; text-transform:uppercase; padding:6px 13px; border-radius:20px; box-shadow:var(--shadow-card); }
  .msg{ max-width:84%; padding:10px 13px; border-radius:14px; font:400 .95rem/1.45 var(--font-body); white-space:pre-wrap; overflow-wrap:break-word; box-shadow:0 1px 1px rgba(10,28,61,.08); }
  .msg.user{ align-self:flex-end; background:var(--blue-100); color:var(--ink); border-top-right-radius:4px; }
  .msg.bot{ align-self:flex-start; background:#fff; color:var(--ink); border-top-left-radius:4px; }
  .puntos{ display:inline-flex; gap:4px; padding:4px 2px; }
  .puntos i{ width:7px; height:7px; border-radius:50%; background:var(--ink-3); display:inline-block; }
  .sugerencias{ display:flex; flex-direction:column; gap:8px; margin-top:4px; }
  .sug{
    font:700 .93rem/1.35 var(--font-body); text-align:left; background:#fff;
    border:1px solid var(--line); color:var(--blue); border-radius:999px;
    padding:12px 17px; cursor:pointer; min-height:48px; box-shadow:var(--shadow-card);
  }
  .chat-form{ display:flex; gap:9px; margin-top:12px; align-items:center; }
  .chat-form input{
    flex:1; font:400 1rem/1.4 var(--font-body); padding:13px 17px; min-height:50px;
    border:1.5px solid var(--line); border-radius:999px; background:var(--surface); color:var(--ink);
  }
  .chat-form input:focus{ outline:2px solid var(--blue); border-color:var(--blue); }
  .chat-send{
    flex:none; width:50px; height:50px; border-radius:50%; border:0; cursor:pointer;
    background:var(--blue); color:#fff; display:grid; place-items:center;
  }
  .chat-send:disabled{ opacity:.5; }
  .chat-send svg{ width:22px; height:22px; margin-left:2px; }
  .chat-nota{ text-align:center; color:var(--ink-3); font-size:.78rem; margin-top:11px; }
  .chat-nota button{ font:inherit; background:none; border:0; color:var(--blue); text-decoration:underline; cursor:pointer; }

  /* ---------- tab bar ---------- */
  .tabbar{
    position:fixed; bottom:0; left:0; right:0; z-index:20;
    background:rgba(255,255,255,.92); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
    border-top:1px solid var(--line); display:flex; padding-bottom:env(safe-area-inset-bottom);
  }
  .tabbar .ind{
    position:absolute; top:-1px; left:0; width:20%; height:3px; background:var(--gold);
    border-radius:0 0 3px 3px; transition:left .3s var(--ease);
  }
  .tabbar button{
    flex:1; font:700 .68rem/1 var(--font-body); background:none; border:0; cursor:pointer;
    padding:10px 0 9px; color:var(--ink-3);
    display:flex; flex-direction:column; align-items:center; gap:4px; min-height:62px;
    transition:color .2s;
  }
  .tabbar button svg{ width:23px; height:23px; }
  .tabbar button[aria-selected="true"]{ color:var(--blue); font-weight:800; }

  :focus-visible{ outline:2px solid var(--blue); outline-offset:2px; }
/* Stitch: Mediterranean Horizon, adaptado a la paleta oficial Veracruz. */
:root{--font-head:'Plus Jakarta Sans','Avenir Next',system-ui,sans-serif;--font-body:'Plus Jakarta Sans','Avenir Next',system-ui,sans-serif;--ink:#15243b;--ink-2:#526178;--ink-3:#62718a;--line:#e1e7f1;--surface-2:#f6f8ff;--surface-3:#f4f6fc;--gold-deep:#87560a;--header-height:76px;--nav-height:76px}
html{font-size:16px;scroll-padding-top:90px}body{background:var(--surface-2)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a,button,summary{outline-offset:4px}button,a,summary{transition:background-color .18s,color .18s,box-shadow .18s}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}h1{font:800 clamp(1.45rem,3vw,2.15rem)/1.2 var(--font-head);letter-spacing:-.035em;color:var(--blue-800);text-wrap:balance}h2{font-size:1.12rem;letter-spacing:-.035em}h3{font-size:1rem;line-height:1.4}p{text-wrap:pretty}img{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:#fff;padding:12px;border-radius:8px}.skip-link:focus{top:12px}
.top{height:calc(var(--header-height) + env(safe-area-inset-top));background:var(--blue-800);padding:env(safe-area-inset-top) max(20px,calc((100vw - 1100px)/2)) 0;box-shadow:0 8px 26px -20px #0f2750}.brand{display:flex;align-items:center;gap:20px}.brand img{width:116px;height:auto}.brand>div{border-left:1px solid #ffffff30;padding-left:18px}.brand b{display:block;font-size:.7rem;letter-spacing:.05em;color:var(--gold);text-transform:uppercase}.brand span{display:block;font-size:.78rem;color:#e0e7f5;margin-top:7px;letter-spacing:.015em;text-transform:none;font-weight:500}.header-help{min-height:44px;border:1px solid #ffffff30;border-radius:12px;background:#ffffff0c;color:white;padding:0 13px;font-size:.8rem;font-weight:600}.header-help:hover{background:#ffffff20}.header-help span{display:inline;color:var(--gold);margin-left:8px}
main{max-width:1100px;padding:26px 24px calc(110px + env(safe-area-inset-bottom));min-width:0}main:focus{outline:none}section[role=tabpanel]:focus{outline:none}.card{border:0;box-shadow:none;border-radius:18px;padding:20px}.eyebrow{font-size:.68rem;letter-spacing:.1em;margin:24px 0 12px}.callout{border:0;border-radius:16px;background:#fff8e6;font-size:.86rem;line-height:1.65}.callout p{margin-top:6px}.badge{display:inline-flex;align-items:center;background:#eaf0ff;color:var(--blue);border-radius:8px;padding:5px 9px;font-size:.68rem;line-height:1.4;font-weight:700;white-space:nowrap}.badge.gold{background:var(--gold);color:var(--blue-800)}.muted{color:var(--ink-2)}.label{display:block;font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:26px 0 14px}.section-title>span{font-size:.75rem;color:var(--ink-2);white-space:nowrap}.text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:0;background:transparent;color:var(--blue);font-weight:700;font-size:.8rem;text-decoration:none;padding:8px;gap:8px}.text-button:hover{background:var(--blue-50);border-radius:8px}.primary-button,.secondary-button,.gold-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;min-height:48px;padding:13px 18px;font-size:.85rem;font-weight:700;line-height:1.4;text-decoration:none}.primary-button{background:var(--blue);color:white}.primary-button:hover{background:var(--blue-800)}.secondary-button{background:var(--blue-50);color:var(--blue)}.secondary-button:hover{background:var(--blue-100)}.gold-button{background:var(--gold);color:var(--blue-800)}.gold-button:hover{background:var(--gold-2)}.map-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 12px;background:var(--blue-50);color:var(--blue);font-size:.78rem;font-weight:700;border-radius:10px;text-decoration:none;white-space:nowrap}.map-link:hover{background:var(--blue-100)}
/* Home */
#tab-hoy{max-width:800px;margin:auto}.hero-band{padding:32px;border-radius:22px;box-shadow:none;background:radial-gradient(ellipse at 100% 0%,#315790 0%,transparent 65%),var(--blue-800)}.hero-band .num{font-size:5rem;font-variant-numeric:tabular-nums;margin:8px 0 10px}.hero-band h2{font-size:1.8rem}.hero-band .bsub{font-size:.86rem;max-width:500px}.hero-band .hfecha{max-width:70%;line-height:1.8;letter-spacing:.08em;font-size:.65rem}.hero-band .bstar{width:156px;height:200px;top:22px;right:20px}.datos{grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.dato{border:0;background:#eaf0fb;box-shadow:none;padding:16px;border-radius:14px}.dato small{color:var(--ink-2);font-size:.62rem}.dato b{font-size:.95rem;margin-top:4px}.home-actions{display:flex;gap:12px;margin:20px 0 28px}.route-list{background:white;border-radius:18px;overflow:hidden}.route-step{display:flex;align-items:center;width:100%;text-align:left;border:0;background:white;padding:16px 20px;gap:16px;border-bottom:1px solid var(--surface-3)}.route-step:last-child{border-bottom:0}.route-step:hover{background:var(--blue-50)}.route-step img{width:60px;height:60px;object-fit:cover;border-radius:12px}.route-step>span:not(.route-arrow){display:grid;gap:4px}.route-step small{font-size:.6rem;font-weight:700;letter-spacing:.08em;color:var(--gold-deep)}.route-step b{font-size:.95rem;color:var(--blue-800)}.route-step span span{font-size:.75rem;color:var(--ink-2)}.route-arrow{margin-left:auto;font-size:1.4rem;color:var(--blue)}.hero-foto{box-shadow:none;border-radius:22px}.hero-foto img{height:320px}.point p{font-size:.9rem}.point{padding:16px 0}.point .pic{background:#edf2ff}
/* Day picker and itinerary */
.day-picker{background:var(--blue-800);border-radius:18px;padding:18px 0 14px;color:white;margin-bottom:26px}.picker-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px;margin-bottom:14px;font-weight:700;font-size:.95rem}.picker-heading .badge{background:#ffffff20;color:white;font-weight:600}.day-rail,.stage-rail,.destination-rail{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#a9c0e8 transparent;overscroll-behavior-x:contain;padding:2px 20px 8px}.day-rail{position:relative}.day-chip{position:relative;flex:0 0 100px;display:grid;gap:6px;align-content:center;min-height:68px;border:0;background:#ffffff10;color:white;border-radius:12px;text-align:center;padding:10px 8px}.day-chip:hover{background:#ffffff20}.day-chip[aria-pressed=true]{background:var(--gold);color:var(--blue-800)}.day-chip small{font-size:.68rem;font-weight:600}.day-chip b{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-dot{position:absolute;top:6px;right:6px;width:5px;height:5px;border-radius:50%;background:currentColor}.page-heading .eyebrow{margin:0 0 9px;color:var(--ink-2)}.page-heading h1{max-width:800px}.day-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0}.day-select{max-width:70%;min-width:0}.day-select select{background:white;color:var(--blue);font-size:.8rem;font-weight:600;border:1px solid var(--line);border-radius:10px;min-height:44px;width:100%;max-width:100%;padding:8px 30px 8px 12px}.disclosure{background:white;border-radius:14px;margin:12px 0;overflow:hidden}.disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;list-style:none;padding:17px 18px;min-height:58px;font-size:.87rem;font-weight:600}.disclosure>summary::-webkit-details-marker,.tip-card>summary::-webkit-details-marker{display:none}.disclosure>summary small{display:block;font-weight:400;color:var(--ink-2);font-size:.76rem;margin-top:4px}.disclosure>summary>span:last-child{transition:transform .2s}.disclosure[open]>summary>span:last-child{transform:rotate(180deg)}.detail-body{padding:0 18px 18px;font-size:.88rem;line-height:1.65;color:var(--ink-2)}.detail-body>p+p{margin-top:12px}.logistics{background:#fff8e6;margin:0 0 22px}.logistics>summary{color:#744909}.logistics>summary small{color:#78664b}.logistics-hotel{border-top:1px solid #e9dbbe;padding-top:12px}.day-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:24px;align-items:start}.day-main,.day-aside{min-width:0}.day-aside{position:sticky;top:96px}.day-photo{position:relative;border-radius:18px;overflow:hidden}.day-photo img{width:100%;height:190px;object-fit:cover}.day-photo:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#0f2750b0)}.day-photo span{position:absolute;z-index:1;bottom:16px;left:18px;color:white;font-size:.76rem;font-weight:600}.day-summary{color:var(--ink-2);font-size:.89rem;line-height:1.7;margin-bottom:18px}.transfer-card{display:flex;align-items:center;gap:18px;background:white;border-radius:14px;padding:16px;margin:10px 0}.transfer-time{min-width:60px;border-right:1px solid var(--line);padding-right:16px;font-size:1.2rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--blue)}.transfer-time span{display:block;font-size:.6rem;font-weight:500;color:var(--ink-2);margin-top:3px}.transfer-card small{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--gold-deep)}.transfer-card h3{margin:3px 0;font-size:.88rem}.transfer-card p{font-size:.72rem;color:var(--ink-2);line-height:1.7}.booking-card{background:white;border-radius:16px;padding:18px;margin-bottom:12px;border:1px solid var(--line)}.card-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-meta>small{color:var(--ink-2);font-size:.7rem}.booking-card>.muted{font-size:.75rem;margin-top:6px}.booking-card .disclosure{margin:10px 0 0;background:var(--surface-2);border-radius:10px}.booking-card .disclosure summary{padding:12px;min-height:44px;font-size:.74rem}.booking-card .detail-body{padding:0 12px 14px}.tip-card{background:white;border-radius:14px;margin:10px 0}.tip-card summary{display:flex;align-items:start;gap:12px;list-style:none;padding:18px;cursor:pointer}.tip-number{display:grid;place-items:center;flex:none;width:30px;height:30px;background:var(--blue-50);border-radius:9px;color:var(--blue);font-size:.66rem;font-weight:800}.tip-card summary>span:nth-child(2){flex:1;min-width:0}.tip-card summary b{font-size:.86rem;line-height:1.45;display:block;color:var(--blue-800)}.tip-preview{font-size:.79rem;line-height:1.6;color:var(--ink-2);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:5px}.detail-arrow{color:var(--blue);font-size:1.15rem}.tip-card[open] .tip-preview{display:none}.tip-card[open] .detail-arrow{transform:rotate(45deg)}.tip-card>p{padding:0 18px 20px 60px;color:var(--ink-2);font-size:.87rem;line-height:1.7}.tip-card summary:hover{background:#f0f4fc;border-radius:14px}.ask-banner{display:flex;flex-wrap:wrap;align-items:center;gap:16px;justify-content:space-between;background:var(--blue-800);color:white;border-radius:16px;padding:20px;margin-top:20px}.ask-banner>div{flex:1;min-width:160px}.ask-banner b{font-size:.95rem;line-height:1.5}.ask-banner p{font-size:.77rem;color:#d4e0f5;margin-top:5px}.ask-banner .gold-button{font-size:.8rem;min-height:44px}.day-pager{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.day-pager button{flex:1;font-size:.78rem}.hotel-disclosure{margin-top:0}.hotel-disclosure .hotel-card{box-shadow:none}.hotel-disclosure .hotel-card>div{padding:16px 0 0}.hotel-disclosure .hotel-card h2{font-size:1rem}
/* Destinations */
.destinations-heading{margin:0 0 20px}.destinations-heading h1{font-size:1.45rem}.stage-rail{padding:2px 0 12px;gap:10px;margin-bottom:8px;position:relative}.stage-chip{background:#eaf0ff;color:#395777;border:0;border-radius:999px;padding:10px 20px;white-space:nowrap;min-height:46px;font-size:.9rem;font-weight:700}.stage-chip[aria-pressed=true]{background:var(--blue-800);color:white}.stage-chip:hover{box-shadow:inset 0 0 0 1px var(--blue-200)}.destination-rail{padding:0 0 14px;gap:6px;position:relative}.destination-chip{border:1px solid var(--line);background:transparent;color:var(--ink-2);border-radius:8px;padding:8px 12px;font-size:.74rem;min-height:44px;white-space:nowrap}.destination-chip[aria-pressed=true]{border-color:var(--blue);background:white;color:var(--blue);font-weight:700}.city-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:28px;align-items:start}.city-overview{position:sticky;top:96px}.city-hero{height:330px;border-radius:20px;overflow:hidden;position:relative;background:var(--blue-800);color:white}.city-hero>img{width:100%;height:100%;object-fit:cover}.city-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0f275010 15%,#0f275035 35%,#0f2750f0 100%)}.city-hero-top{position:absolute;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;gap:8px;z-index:1}.city-hero-top .badge:not(.gold){background:#0f2750d9;color:white}.city-hero-bottom{position:absolute;left:24px;right:24px;bottom:24px;z-index:1}.city-hero-bottom small{font-size:.65rem;font-weight:700;letter-spacing:.08em;color:var(--gold)}.city-hero-bottom h2{color:white;font-size:2rem;line-height:1.15;margin:10px 0 8px;letter-spacing:-.035em}.city-hero-bottom p{font-size:.85rem;color:#e1e9fb}.city-tabs{display:flex;gap:4px;padding:5px;border-radius:14px;background:#eaf0ff;margin:0 0 20px}.city-tabs button{flex:1;border:0;background:transparent;color:#365373;min-height:48px;border-radius:10px;font-size:.78rem;font-weight:600;white-space:nowrap}.city-tabs button[aria-selected=true]{background:white;color:var(--blue-800);box-shadow:0 2px 5px #0f275008}.city-intro{font-size:.89rem;line-height:1.8;color:var(--ink-2);margin-bottom:20px}.progress-line{display:flex;align-items:center;gap:16px;justify-content:space-between;background:#eaf0ff;color:#3f5977;border-radius:12px;padding:13px 14px;font-size:.75rem;margin-bottom:16px}.progress-track{height:4px;width:56px;flex:none;border-radius:10px;background:#cfdaee;overflow:hidden}.progress-track i{display:block;height:100%;background:var(--blue);border-radius:10px}.attraction{display:flex;align-items:center;gap:12px;background:white;padding:14px;border-radius:15px;margin:10px 0;min-height:86px}.attraction>div{flex:1;min-width:0}.attraction h3{font-size:.88rem;line-height:1.45;color:var(--blue-800)}.attraction small{font-size:.68rem;color:var(--ink-2);display:block;margin-top:4px}.check-button{width:44px;height:44px;border:8px solid white;border-radius:15px;flex:none;background:#e5edfc;color:white;font-weight:700;box-sizing:border-box;font-size:.9rem;padding:0}.check-button[aria-pressed=true]{background:var(--blue)}.check-button:hover{box-shadow:0 0 0 1px var(--blue-200)}.attraction .map-link{font-size:.65rem;padding:8px;background:#f0f4fc;min-width:44px}.local-note{font-size:.7rem;color:var(--ink-2);line-height:1.6;margin:14px 0}.route-day-link{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;border:0;background:white;border-radius:14px;padding:17px 18px;gap:12px;color:var(--blue);margin-top:14px}.route-day-link small{font-size:.6rem;letter-spacing:.08em;color:var(--gold-deep);display:block;margin-bottom:4px}.route-day-link b{font-size:.85rem}.route-day-link:hover{background:#eaf0ff}.map-banner{display:flex;align-items:center;gap:12px;padding:18px 0}.map-banner>span{font-size:1.8rem;color:var(--blue)}.map-banner>div{flex:1}.map-banner b{display:block;color:var(--blue);font-size:.8rem}.map-banner small{font-size:.68rem;line-height:1.5;color:var(--ink-2);display:block;margin-top:4px}.hotel-card{background:white;border-radius:16px;overflow:hidden}.hotel-card>img{height:180px;width:100%;object-fit:cover}.hotel-card>div{padding:22px}.hotel-card h2{margin:10px 0;line-height:1.35}.hotel-card p{font-size:.87rem;color:var(--ink-2);line-height:1.75}.hotel-dates{margin-bottom:16px;font-weight:600}.hotel-card .map-link{display:flex;margin-top:16px}.next-destination{width:100%;display:flex;align-items:center;gap:14px;background:white;border:0;border-radius:16px;padding:16px;margin-top:24px;text-align:left}.next-destination>img{width:62px;height:62px;object-fit:cover;border-radius:12px}.next-destination>span:nth-child(2){flex:1;display:grid;gap:4px}.next-destination small{font-size:.6rem;color:var(--gold-deep);font-weight:700;letter-spacing:.07em}.next-destination b{color:var(--blue-800);font-size:.95rem}.next-destination span span{color:var(--ink-2);font-size:.75rem}.empty-state{padding:24px;background:white;border-radius:16px}.empty-state p{font-size:.88rem;line-height:1.75;color:var(--ink-2);margin-top:10px}
/* Chat */
#tab-chat{max-width:760px;margin:auto}.guide-heading{display:flex;align-items:center;gap:14px;background:white;border-radius:16px;padding:18px;margin-bottom:16px}.guide-avatar{display:grid;place-items:center;background:var(--blue);color:white;width:44px;height:44px;flex:none;border-radius:14px;font-size:1.4rem}.guide-heading h1{font-size:1.1rem;letter-spacing:-.035em}.guide-heading p{font-size:.73rem;margin-top:5px;color:var(--ink-2)}.connection{margin-left:auto;color:#25634d;background:#e9f5ed;padding:4px 7px;border-radius:6px;font-size:.6rem;white-space:nowrap;font-weight:700}.connection.offline{background:#fff3d7;color:#825500}.sugerencias{flex-direction:row;overflow-x:auto;margin:0 0 20px;gap:8px;padding:2px 0 8px;scrollbar-width:thin}.sug{flex:none;padding:10px 15px;font-size:.76rem;min-height:44px;border:0;box-shadow:none;color:var(--blue-800)}.sug:hover{background:#e5edfc}.chat-reminder{display:flex;gap:14px;align-items:flex-start;width:100%;background:#fff8e6;border:0;text-align:left;border-radius:16px;padding:20px;color:var(--blue-800);margin-bottom:24px}.reminder-icon{background:#ffebbd;border-radius:10px;width:34px;height:34px;flex:none;display:grid;place-items:center;font-size:1.2rem}.chat-reminder>span:nth-child(2){flex:1;min-width:0;display:grid;gap:7px}.chat-reminder small{color:#805612;font-size:.65rem;letter-spacing:.06em;font-weight:700}.chat-reminder b{font-size:.95rem}.chat-reminder span span{font-size:.79rem;line-height:1.65;color:#776345}.chat-zona{background:none;border:0;box-shadow:none;border-radius:0;padding:0 0 20px;min-height:240px}.chat-zona #mensajes{display:flex;flex-direction:column;gap:8px}.message-label{color:#567091;font-size:.6rem;font-weight:700;letter-spacing:.08em;margin-top:12px}.message-label.user-label{align-self:flex-end;color:var(--blue)}.msg{font-size:.91rem;line-height:1.75;padding:18px 20px;max-width:90%;box-shadow:none;white-space:normal;border-radius:16px}.msg p+p{margin-top:12px}.msg.user{background:var(--blue);color:white;border-top-right-radius:5px;margin-bottom:10px}.msg.bot{border-top-left-radius:5px;background:white}.composer{position:sticky;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--surface-2) 15%);padding:16px 0 8px;z-index:5;margin-top:8px}.chat-form{margin:0;border:1px solid var(--line);background:white;border-radius:18px;padding:6px;box-shadow:0 4px 18px #0f275008;gap:6px}.chat-form input{width:0;min-width:0;border:0;background:transparent;border-radius:12px;min-height:48px;padding:12px;font-size:1rem}.chat-form input:focus{outline:2px solid var(--blue-200)}.chat-send{width:44px;height:44px;border-radius:13px;align-self:center}.chat-send svg{margin:0}.chat-nota{font-size:.65rem;margin-top:8px;line-height:1.5}.chat-nota button{min-height:28px}.chat-nota button:disabled{opacity:.45}.msg,#chat-error{scroll-margin-bottom:calc(210px + env(safe-area-inset-bottom));scroll-margin-top:100px}#chat-error{padding:18px;background:#fff3e8;border-radius:14px;margin-bottom:16px;font-size:.85rem;color:#714319}#chat-error p{margin-bottom:10px}#chat-error button{font-size:.75rem}
/* Navigation, help */
.tabbar{height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:0 max(0px,calc((100vw - 600px)/2)) env(safe-area-inset-bottom);background:#fffffff5;border-color:#e7ecf5;box-shadow:0 -8px 24px #0f275005}.tabbar .ind{display:none}.tabbar button{min-height:76px;font-size:.7rem;gap:7px;padding:12px 0;position:relative;color:#667690}.tabbar button svg{width:23px;height:23px;padding:0;overflow:visible}.tabbar button[aria-selected=true]{color:var(--blue)}.tabbar button[aria-selected=true]:before{content:'';position:absolute;top:6px;width:50px;height:35px;border-radius:12px;background:#eaf0ff;z-index:-1}.tabbar button:hover{background:#f4f7fc}.icon-button{display:grid;place-items:center;border:0;background:#eaf0ff;color:var(--blue);font-size:1.5rem;border-radius:12px;min-width:44px;min-height:44px}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:14px;background:white;position:sticky;top:0;padding:20px 22px;border-bottom:1px solid var(--line);z-index:1}.dialog-top h2{font-size:1.05rem}dialog{margin:auto;border:0;border-radius:22px;background:var(--surface-2);color:var(--ink);padding:0;max-height:85dvh;width:min(620px,calc(100% - 28px));box-shadow:0 20px 80px #0f275030}dialog::backdrop{background:#071a3980;backdrop-filter:blur(3px)}#info-content{padding:22px}.agency-contact{padding:20px;background:white;border-radius:16px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.agency-contact>.label,.agency-contact>h3,.agency-contact>p{width:100%}.agency-contact>p{font-size:.8rem;color:var(--ink-2);margin-bottom:6px}.agency-contact .primary-button{font-size:.78rem}.info-section-title{margin:26px 0 16px}.schedule-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 0;border-top:1px solid var(--line);font-size:.8rem}.schedule-row>span:last-child{text-align:right;font-weight:600}.schedule-row small{display:block;font-size:.72rem;color:var(--ink-2);margin-top:5px}.schedule-row:first-child{border-top:0}#toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);background:var(--blue-800);color:white;padding:14px 20px;z-index:40;font-size:.8rem;max-width:calc(100% - 32px);width:max-content;border-radius:12px}
@media(min-width:1000px){main{padding-top:32px}.day-picker{padding:20px 0 14px}.day-chip{flex-basis:105px}.city-detail{min-width:0}.city-tabs{position:sticky;top:90px;z-index:2;box-shadow:0 -10px 0 0 var(--surface-2)}.day-aside .ask-banner{margin-top:16px}}
@media(max-width:760px){:root{--header-height:72px}.top{padding-left:18px;padding-right:18px}.brand{gap:13px}.brand img{width:102px}.brand>div{padding-left:13px}.brand b{font-size:.6rem}.brand span{font-size:.72rem}.header-help{font-size:.7rem;padding:0 9px}main{padding:20px 16px calc(100px + env(safe-area-inset-bottom));max-width:640px}.day-layout,.city-layout{display:block}.day-aside,.city-overview{position:static}.day-aside{margin-top:24px}.day-picker{margin:-20px -16px 24px;border-radius:0;padding:12px 0 10px}.picker-heading{padding:0 16px;font-size:.87rem;margin-bottom:12px}.day-rail{padding-left:16px;padding-right:16px}.day-chip{flex-basis:84px;min-height:62px}.day-chip b{font-size:.77rem}.page-heading h1{font-size:1.48rem}.day-photo img{height:170px}.city-hero{height:270px}.city-hero-bottom{left:20px;bottom:20px}.city-hero-bottom h2{font-size:1.8rem}.city-detail{margin-top:20px}.city-tabs{position:sticky;top:calc(var(--header-height) + env(safe-area-inset-top));z-index:3;box-shadow:0 -8px 0 var(--surface-2),0 8px 0 var(--surface-2);margin-bottom:22px}.destinations-heading{margin-bottom:16px}.destinations-heading h1{font-size:1.25rem}.stage-chip{font-size:.82rem;padding:10px 18px}.day-aside .hotel-card{display:grid;grid-template-columns:80px 1fr;gap:14px}.day-aside .hotel-card>img{height:85px;border-radius:10px}.day-aside .hotel-card>div{padding:0}.day-aside .hotel-card h2{font-size:.88rem}.hero-band{padding:26px 22px}.hero-band .num{font-size:4.5rem}.hero-band h2{font-size:1.5rem}.datos{grid-template-columns:repeat(2,1fr);gap:10px}.dato{padding:13px 16px}.home-actions{gap:8px}.home-actions>*{flex:1;font-size:.74rem;padding:12px}.route-step{padding:14px 16px;gap:12px}.route-step b{font-size:.87rem}.hero-foto img{height:275px}.guide-heading{padding:16px 12px;gap:10px}.guide-heading h1{font-size:1rem}.guide-heading p{font-size:.66rem}.guide-avatar{width:36px;height:36px;border-radius:11px}.connection{font-size:.55rem;padding:4px 6px}.chat-reminder{padding:17px 14px;gap:11px}.chat-reminder b{font-size:.88rem}.chat-reminder small{font-size:.58rem}.chat-reminder span span{font-size:.77rem}.msg{max-width:92%;padding:16px;font-size:.89rem}.chat-zona{min-height:200px}.attraction{padding:12px 10px;gap:8px}.attraction h3{font-size:.85rem}.attraction small{font-size:.65rem}.check-button{width:42px;height:44px}.tip-card summary{padding:16px 14px}.tip-card>p{padding:0 16px 18px 56px}.tip-preview{font-size:.79rem}.ask-banner{padding:18px}.ask-banner>div{min-width:150px}.ask-banner b{font-size:.9rem}.map-banner{padding-bottom:0}.map-banner b{font-size:.76rem}.map-banner small{font-size:.63rem}.transfer-card{gap:12px;padding:15px}.transfer-time{font-size:1.1rem}.transfer-card p{font-size:.69rem}.guide-heading+.sugerencias{margin-bottom:14px}#info-content{padding:16px}.dialog-top{padding:16px}.schedule-row{font-size:.75rem;gap:12px}}
@media(max-width:360px){.brand b{font-size:.53rem}.brand img{width:84px}.brand{gap:10px}.brand>div{padding-left:10px}.brand span{font-size:.64rem}.header-help{padding:0 7px}.header-help span{margin-left:3px}.connection{display:none}.progress-line{font-size:.68rem;padding:12px}.progress-track{width:40px}.city-tabs button{font-size:.73rem}.ask-banner>div{min-width:130px}.ask-banner .gold-button{padding:10px}.attraction .map-link{padding:6px;font-size:.6rem}.attraction h3{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:760px){.city-layout{display:flex;flex-direction:column;gap:0}.city-overview{display:contents}.city-hero{order:0;width:100%;flex:none}.city-detail{order:1;width:100%}.city-support{order:2;width:100%}.city-tabs{margin-top:0}.city-intro{font-size:.91rem}.map-banner small{font-size:.7rem}.city-tabs button{font-size:.84rem}.tip-card summary b{font-size:.91rem}.day-photo img{height:140px}}

/* Documentos de viaje */
#tab-vouchers{max-width:800px;margin:auto}.voucher-heading{margin:4px 0 24px}.voucher-heading .eyebrow{margin:0 0 12px}.voucher-heading>p:not(.eyebrow){color:var(--ink-2);font-size:.92rem;line-height:1.6;margin:12px 0 16px}.voucher-search{display:flex;align-items:center;gap:12px;padding:0 16px;min-height:54px;border:1px solid var(--line);border-radius:14px;background:white;margin-bottom:22px}.voucher-search:focus-within{outline:2px solid var(--blue);outline-offset:3px}.voucher-search>svg{width:20px;height:20px;flex:none;color:var(--ink-2)}.voucher-search input{border:0;background:none;min-height:52px;width:100%;min-width:0;font:inherit;font-size:.88rem;color:var(--ink);outline:none}.voucher-groups{display:grid;gap:12px}.voucher-group{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.voucher-group>summary{display:flex;align-items:center;gap:16px;padding:20px;cursor:pointer;list-style:none;min-height:88px}.voucher-group>summary::-webkit-details-marker{display:none}.voucher-group>summary:hover{background:#f7f9fe}.voucher-category-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#edf2ff;color:var(--blue);flex:none}.voucher-category-icon svg{width:26px;height:26px}.voucher-category-title{display:grid;gap:5px;flex:1;min-width:0}.voucher-category-title b{font-size:1rem;color:var(--blue-800)}.voucher-category-title small{font-size:.75rem;line-height:1.4;color:var(--ink-2)}.voucher-count{display:grid;place-items:center;background:#f0f3f9;border-radius:8px;min-width:28px;height:28px;font-size:.72rem;font-weight:700;color:var(--ink-2);flex:none}.voucher-group>summary>.chev{width:16px;height:16px;flex:none;color:var(--ink-2);transition:transform .18s}.voucher-group[open]>summary>.chev{transform:rotate(90deg)}.voucher-group[open]>summary{border-bottom:1px solid var(--line)}.voucher-document+.voucher-document{border-top:1px solid var(--line)}.voucher-link{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:var(--ink);padding:18px 22px;min-height:84px}.voucher-link:hover{background:#f6f8ff}.voucher-paper{display:grid;place-items:center;border:1px solid #cbd6e9;border-radius:7px;width:32px;height:40px;font-size:.6rem;font-weight:800;color:var(--blue);flex:none;margin-top:4px}.voucher-document-info{display:grid;gap:5px;min-width:0}.voucher-date{color:var(--gold-deep);font-size:.7rem;font-weight:700}.voucher-document-info>b{font-size:.91rem;line-height:1.4}.voucher-document-info>span{font-size:.78rem;color:var(--ink-2);line-height:1.5}.voucher-open{font-size:.74rem;color:var(--blue);font-weight:700;margin-top:4px}.voucher-note{margin:0 20px 16px 68px;padding:10px 12px;background:#fff7e4;border-radius:10px;color:#78510f;font-size:.75rem;line-height:1.5}.voucher-empty{background:white;border-radius:18px;padding:28px;text-align:center}.voucher-empty p{color:var(--ink-2);font-size:.9rem;margin:12px 0 20px}
@media(max-width:520px){.voucher-group>summary{gap:10px;padding:16px 12px}.voucher-category-icon{width:40px;height:44px;border-radius:12px}.voucher-category-icon svg{width:23px;height:23px}.voucher-category-title b{font-size:.92rem}.voucher-category-title small{font-size:.69rem}.voucher-count{min-width:24px;height:24px}.voucher-link{padding:17px 14px;gap:12px}.voucher-document-info>b{font-size:.86rem}.voucher-note{margin-left:14px;margin-right:14px}.voucher-heading h1{font-size:1.65rem}.voucher-search{padding:0 12px}.voucher-search input{font-size:.8rem}.tabbar button{font-size:.64rem}}

/* El control de retorno permanece fuera del contenido desplazable del PDF. */
#pdf-viewer{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border-radius:0;padding:0;background:#e5eaf2;overflow:hidden}
#pdf-viewer[open]{display:flex;flex-direction:column}.pdf-header{flex:none;background:white;border-bottom:1px solid var(--line);padding:calc(12px + env(safe-area-inset-top)) 16px 12px;display:flex;align-items:center;gap:18px}.pdf-header h2{font-size:.9rem;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-header button{flex:none;font-size:.8rem}.pdf-toolbar{flex:none;display:flex;align-items:center;justify-content:center;gap:12px;background:white;padding:8px 16px;border-bottom:1px solid var(--line)}.pdf-toolbar button{border:1px solid var(--line);border-radius:9px;background:var(--blue-50);color:var(--blue);width:44px;height:44px}.pdf-toolbar select{min-height:44px;border:1px solid var(--line);border-radius:9px;padding:0 10px;background:white;color:var(--blue);font-size:.8rem}#pdf-page-label{min-width:65px;text-align:center;font-size:.8rem;color:var(--ink-2)}#pdf-body{flex:1;min-height:0;overflow:auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}#pdf-page{width:max-content;min-width:100%}#pdf-page canvas{display:block;margin:0 auto;background:white;box-shadow:0 3px 16px #10254520;max-width:none}#pdf-status{padding:20px;max-width:560px;margin:0 auto;line-height:1.6;color:var(--ink-2)}#pdf-retry{display:block;margin:12px auto}
@media(max-width:520px){.pdf-header{display:block;padding:calc(10px + env(safe-area-inset-top)) 12px 10px}.pdf-header h2{margin-top:8px;font-size:.8rem}.pdf-header button{min-height:44px}.pdf-toolbar{gap:8px;padding:6px 12px}}

/* Identificación del tren visible antes de abrir el billete. */
.train-journey+.train-journey{border-top:8px solid var(--surface-2)}.train-journey-heading{padding:20px 22px 16px;background:#f2f6ff;border-bottom:1px solid var(--line)}.train-identity{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.train-identity small{font-size:.6rem;letter-spacing:.07em;font-weight:700;color:var(--ink-2)}.train-number{display:block;font-size:2.25rem;font-weight:800;line-height:1.2;letter-spacing:.025em;color:var(--blue-800);font-variant-numeric:tabular-nums}.train-identity>span{font-size:.82rem;font-weight:700;color:var(--blue);text-align:right}.train-journey-heading h3{font-size:.96rem;line-height:1.5}.train-schedule{font-size:.88rem;font-weight:700;color:var(--blue);margin-top:6px;font-variant-numeric:tabular-nums}.train-class{color:var(--ink-2);font-size:.75rem;margin-top:8px;line-height:1.5}.train-journey .voucher-link{min-height:76px;padding-top:14px;padding-bottom:14px}.train-seat strong{color:var(--blue-800);font-size:.88rem}.train-note{margin:0 16px 16px}.transfer-train{margin-bottom:8px}.transfer-train small{display:block}.transfer-train>b{display:block;font-size:1.25rem;color:var(--blue-800);letter-spacing:.02em;font-variant-numeric:tabular-nums}.train-vouchers-button{margin-top:8px;padding-left:0}
@media(max-width:520px){.train-journey-heading{padding:18px 14px 14px}.train-identity{gap:10px}.train-identity small{font-size:.55rem}.train-identity>span{font-size:.75rem;max-width:115px}.train-number{font-size:2.1rem}.train-journey-heading h3{font-size:.9rem}.train-schedule{font-size:.82rem}}
.guide-update-card{background:white;border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:18px;display:flex;flex-wrap:wrap;align-items:center;gap:16px}.guide-update-card>div{flex:1;min-width:180px}.guide-update-card h3{margin:6px 0}.guide-update-card p{font-size:.78rem;color:var(--ink-2);line-height:1.5}.guide-update-card button{font-size:.8rem}#guide-update-banner{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:30;display:flex;align-items:center;gap:12px;width:min(480px,calc(100% - 28px));padding:12px 16px;background:var(--blue-800);color:white;border-radius:14px;box-shadow:0 5px 24px #10254530;font-size:.82rem}#guide-update-banner>span{flex:1}#guide-update-banner button{flex:none;font-size:.78rem}

/* Lo necesario para presentarse a cada tour sin abrir el PDF. */
.tour-meeting{padding:0 22px 22px}.tour-times{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#edf3ff;border-radius:12px;padding:16px}.tour-times small{display:block;font-size:.59rem;font-weight:700;letter-spacing:.05em;color:var(--ink-2);margin-bottom:5px}.tour-times b{display:block;font-size:1.65rem;line-height:1.2;color:var(--blue-800);font-variant-numeric:tabular-nums}.tour-times>div:first-child b{color:#825408}.tour-times>div+div{border-left:1px solid #d5dfef;padding-left:16px}.tour-time-note{font-size:.7rem;color:var(--ink-2);margin:8px 0 16px}.tour-meeting dl{display:grid;gap:16px;margin:0 0 16px}.tour-meeting dt{font-size:.69rem;font-weight:800;color:var(--blue);margin-bottom:4px}.tour-meeting dd{font-size:.82rem;line-height:1.6;margin:0;color:var(--ink)}.tour-operator{display:block;color:var(--ink-2);margin-top:4px}.tour-change-note{font-size:.73rem;line-height:1.6;padding:12px;background:#fff7e4;border-radius:10px;color:#78510f;margin-top:14px}
#chat-latest{height:1px;scroll-margin-bottom:calc(220px + env(safe-area-inset-bottom))}#chat-jump-latest{position:absolute;right:8px;bottom:calc(100% + 8px);display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #dbe3ef;border-radius:50%;background:var(--blue-800);color:white;box-shadow:0 3px 12px #0f275035;z-index:6}#chat-jump-latest:hover{background:var(--blue)}#chat-jump-latest svg{width:25px;height:25px}
@media(max-width:520px){.tour-meeting{padding:0 14px 18px}.tour-times{padding:14px;gap:10px}.tour-times small{font-size:.54rem}.tour-times b{font-size:1.5rem}.tour-meeting dd{font-size:.8rem}}

/* Impeccable: a travelling navigation marker, precise touch feedback, quiet reading. */
:root{--motion-fast:120ms;--motion-state:200ms;--ease-out:cubic-bezier(.16,1,.3,1)}
.tabbar{isolation:isolate;background:#fff}
.tabbar .ind{display:block;top:6px;width:50px;height:35px;border-radius:12px;background:#eaf0ff;transition:none;pointer-events:none;z-index:0}
.tabbar button{z-index:1}
.tabbar button[aria-selected=true]:before{content:none}
.tabbar button:hover{background:transparent}
.tabbar button:active:not(:disabled){transform:none}
.tabbar button svg{transition:transform var(--motion-fast) var(--ease-out)}
.tabbar button:active svg{transform:scale(.9)}
button,a,summary{transition:background-color var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast),transform var(--motion-fast) var(--ease-out)}
:is(.primary-button,.secondary-button,.gold-button,.sug,.chat-send,.icon-button,.map-link):active:not(:disabled){transform:scale(.97)}
:is(.voucher-link,.route-step,.route-day-link,.next-destination,.chat-reminder):active{background:var(--blue-50)}
.disclosure>summary>span:last-child,.detail-arrow,.voucher-group>summary>.chev{transition:transform var(--motion-state) var(--ease-out)}
.voucher-group[open]{border-color:var(--blue-200)}
.voucher-group[open]>summary{background:#f2f6ff}
.voucher-group[open] .voucher-category-icon{background:var(--blue);color:white}
.voucher-category-icon{transition:background-color var(--motion-state),color var(--motion-state)}
.voucher-search{margin-bottom:10px}
.voucher-search input,.day-select select,.pdf-toolbar select{font-size:1rem}
input::placeholder{color:var(--ink-2);opacity:1}
.voucher-results{font-size:.8rem;color:var(--ink-2);min-height:20px;margin:0 0 14px}
.voucher-results:empty{min-height:0;margin-bottom:16px}
.chat-form:focus-within{border-color:var(--blue)}
.chat-nota button{min-height:44px;padding:8px 4px}
.check-button{width:44px;min-width:44px}
.progress-track i{width:100%;transform-origin:left;transition:transform 240ms var(--ease-out)}
.attraction:has(.check-button[aria-pressed=true]){background:#f0f5fc}
.day-chip,.stage-chip,.destination-chip{scroll-snap-align:center}
.day-rail,.stage-rail,.destination-rail{scroll-snap-type:x proximity}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.top :focus-visible,.day-picker :focus-visible,.ask-banner :focus-visible{outline-color:var(--gold)}
#toast{line-height:1.6}
@media(hover:hover) and (pointer:fine){
  .voucher-link:hover .voucher-open span,.route-step:hover .route-arrow{transform:translateX(3px)}
  .voucher-open span,.route-arrow{display:inline-block;transition:transform var(--motion-state) var(--ease-out)}
}
@media(prefers-reduced-motion:no-preference){
  #trip-info[open]{animation:help-open 240ms var(--ease-out)}
  #pdf-viewer[open]{animation:document-open 150ms var(--ease-out)}
  dialog[open]::backdrop{animation:document-open 180ms ease-out}
  #toast:not([hidden]){animation:document-open 150ms ease-out}
  @keyframes help-open{from{opacity:.6;transform:translateY(12px) scale(.99)}to{opacity:1;transform:none}}
  @keyframes document-open{from{opacity:0}to{opacity:1}}
}
@media(max-width:520px){
  .voucher-search input{font-size:1rem}
  .tour-meeting dd{font-size:.85rem}
  .tour-meeting dt{font-size:.75rem}
  .tour-times small{font-size:.61rem}
}
/* Notifications: explicit opt-in, local times, device-level controls. */
.push-settings{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:18px;scroll-margin-top:80px}
.push-heading{display:flex;gap:12px;align-items:center;margin-bottom:16px}.push-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--blue-50);color:var(--blue)}.push-icon svg{width:23px;height:23px}.push-heading p{font-size:.8rem;color:var(--ink-2);margin-top:4px}
#push-status{font-size:.85rem;line-height:1.65;color:var(--ink);margin:12px 0 16px}.push-actions{display:flex;gap:10px;flex-wrap:wrap}.push-actions button{font-size:.8rem}.push-note{font-size:.75rem;line-height:1.65;color:var(--ink-2);margin-top:16px}.push-agenda{border-top:1px solid var(--line);border-radius:0;margin-top:18px}.push-agenda>summary{padding:16px 0;font-size:.8rem}.push-agenda .detail-body{padding:0}.push-event{display:block;padding:12px 0;text-decoration:none;border-top:1px solid var(--line)}.push-event:first-child{border:0}.push-event small{display:block;color:var(--ink-2);font-size:.73rem}.push-event b{display:block;font-size:.82rem;line-height:1.5;margin-top:5px}.push-invite{display:flex;align-items:center;gap:12px;width:100%;max-width:800px;margin:0 auto 20px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:white;text-align:left;color:var(--blue-800)}.push-invite>span:nth-child(2){flex:1}.push-invite b{display:block;font-size:.86rem}.push-invite small{display:block;margin-top:4px;font-size:.75rem;color:var(--ink-2)}body:not([data-tab=hoy]) #push-invite{display:none}.push-invite:active{background:var(--blue-50)}
@media(max-width:520px){.push-settings{padding:16px}.push-actions{gap:8px}.push-actions .primary-button,.push-actions .secondary-button{flex:1}.push-note{font-size:.76rem}}

/* ---------- Clima típico y pronóstico ---------- */
.dato.clima .text-button{margin-left:auto;font-size:.75rem;white-space:nowrap}
.clima-card,.clima-pron,.clima-ciudad{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow-card)}
.clima-card .label,.clima-pron .label{display:block;font:700 9.5px/1.7 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.clima-mes{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;padding:10px 0;border-top:1px solid var(--line);font-size:.88rem;color:var(--ink-2)}
.clima-mes:first-of-type{border-top:0}
.clima-mes b{min-width:84px;color:var(--blue);font-family:var(--font-head)}
.clima-mes strong{color:var(--ink)}
.clima-pack{margin-top:10px;font-size:.9rem;color:var(--ink)}
.clima-pack b{color:var(--gold-deep)}
.clima-dia{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:.86rem}
.clima-dia:first-of-type{border-top:0}
.clima-dia .clima-icon{font-size:1.5rem}
.clima-dia small{display:block;font-size:.74rem;color:var(--ink-2)}
.clima-dia > span:last-child{text-align:right;font-weight:700;color:var(--blue)}
.clima-ciudad-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.clima-ciudad-top small{display:block;font:700 9.5px/1.7 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.clima-ciudad-top b{font:800 1rem/1.3 var(--font-head);color:var(--blue)}
.clima-rango{text-align:right;font:800 1rem/1.3 var(--font-head);color:var(--ink);white-space:nowrap}
.clima-rango small{letter-spacing:0;text-transform:none;font:500 .72rem/1.4 var(--font-body);color:var(--ink-2)}
.clima-ciudad > p{margin-top:8px;font-size:.86rem;color:var(--ink-2)}
.clima-slot .clima-pron{box-shadow:none;margin:10px 0 0;padding:6px 0 0;border:0;border-top:1px solid var(--line);border-radius:0}
.clima-todo{width:100%;margin-top:4px}
#clima-viaje-content{padding:22px}
#clima-viaje-content .callout ul{margin:6px 0 0 18px}
@media(max-width:760px){#clima-viaje-content{padding:16px}.clima-rango{font-size:.9rem}}

/* ---------- Restaurantes recomendados y asistencia médica ---------- */
.resto-list{display:grid;gap:10px;margin-bottom:8px}
.resto-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-card)}
.resto-card h3{font:800 .98rem/1.3 var(--font-head);color:var(--blue);margin:6px 0 4px}
.resto-card p{font-size:.86rem;color:var(--ink)}
.resto-card small{display:block;font-size:.76rem;color:var(--ink-2);margin:4px 0 6px}
.assist-card{background:white;border:1px solid var(--line);border-left:4px solid #c0392b;border-radius:16px;padding:18px 20px;margin-bottom:16px}
.assist-card h3{margin:4px 0 6px}
.assist-card > p{font-size:.84rem;color:var(--ink-2)}
.assist-phones{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.assist-phones a{font-size:.76rem}
.assist-cards{list-style:none;margin:0 0 10px;padding:0}
.assist-cards li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line);font-size:.8rem}
.assist-cards li span{font-variant-numeric:tabular-nums;color:var(--ink-2)}
.assist-card .muted{font-size:.76rem;color:var(--ink-2)}
.assist-card .detail-body ul{margin:4px 0 0 18px;font-size:.8rem}
