.card,.hero{border:1px solid var(--line);background:rgba(17,24,39,.94);border-radius:24px;overflow:hidden;margin:14px 0;box-shadow:0 16px 44px rgba(0,0,0,.22)}.pad{padding:16px}.hero img,.place-img{width:100%;height:255px;object-fit:cover;display:block}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.pill{background:#0b1220;border:1px solid var(--line);border-radius:16px;padding:12px}.btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;background:#243b5f;border:1px solid #3b5278;padding:10px 12px;border-radius:14px;margin:6px 6px 0 0;font-weight:800}.price{color:#bbf7d0;font-weight:900}.warn{background:#302207;border:1px solid #a16207;color:#fde68a;border-radius:16px;padding:12px;margin:12px 0}
.desc-long{line-height:1.58;font-size:1rem}.place-img{background:#0f172a}.mapbox .map-actions{display:flex;gap:.6rem;flex-wrap:wrap}

.hike-box{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(15,23,42,.72)}.hike-box h4{margin:.1rem 0 .8rem}.hike-box ul{margin:.8rem 0 0;padding-left:1.2rem}

.mini-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.5rem}.mini-btn{font-size:.78rem;padding:.32rem .55rem;border:1px solid #4b5563;border-radius:999px;text-decoration:none;color:inherit;background:rgba(255,255,255,.06)}.mini-btn:hover{background:rgba(255,255,255,.12)}
.venue-icon{display:inline-block;margin-right:.25rem;font-size:1.05em;vertical-align:-.05em}
.restaurant b{letter-spacing:.01em}
.food-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:1rem 0 1.15rem}.food-filter{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);border-radius:16px;padding:.72rem .45rem;font-weight:800;font-size:.92rem;line-height:1.15}.food-filter span{display:inline-flex;align-items:center;justify-content:center;min-width:1.65rem;height:1.65rem;margin-left:.25rem;border-radius:999px;background:rgba(255,255,255,.08);font-size:.85rem}.food-filter.active{border-color:var(--accent);background:linear-gradient(180deg,rgba(68,196,255,.22),rgba(68,196,255,.08));color:#7dd3fc}.venue-kind{display:inline-block;margin:.15rem 0 .25rem;font-size:.92rem}@media(max-width:650px){.food-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.food-filter{font-size:.9rem;padding:.68rem .4rem}}
.food-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 10px}.food-tabs button{border:1px solid var(--line);background:#0d1629;color:#dbeafe;border-radius:16px;padding:10px 8px;font-weight:900;font-size:.92rem}.food-tabs button.active{background:#123a5a;border-color:#38bdf8;color:#67e8f9}.food-tabs span{display:inline-block;margin-left:4px;color:#9ca3af}.venue-kind{color:#67e8f9;font-weight:900}.food-note{margin:.25rem 0 1rem}@media(max-width:640px){.food-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.food-tabs button{font-size:.86rem;padding:9px 6px}}

/* v39: tiempo real y submenús de Tips */
.weather-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:10px;margin-top:12px}
.weather-day{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;background:#0b1220;padding:11px;min-height:96px}
.weather-icon{font-size:28px;line-height:1;min-width:34px;text-align:center}.weather-day b{text-transform:capitalize}.weather-day span{color:#dbeafe}.weather-day small{color:#9ca3af;font-weight:700}
.tips-tabs{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px}.tips-filter{border:1px solid var(--line);background:#0d1629;color:#dbeafe;border-radius:16px;padding:10px 8px;font-weight:900;font-size:.94rem}.tips-filter.active{background:#123a5a;border-color:#38bdf8;color:#67e8f9}.tips-panel{display:none}.tips-panel.active{display:block}@media(max-width:640px){.tips-tabs{grid-template-columns:1fr}.weather-grid{grid-template-columns:1fr}}

.home-cover img{height:auto;aspect-ratio:2/1;object-fit:cover}
.home-grid{align-items:start}
.flight-main-time{font-size:1.35rem;font-weight:950;color:#7dd3fc;margin:.25rem 0}
.flight-divider{border:0;border-top:1px solid var(--line);margin:1.15rem 0}
.flight-segments{display:grid;gap:.65rem}
.flight-segment{border:1px solid var(--line);background:#0b1220;border-radius:15px;padding:11px}
.flight-route{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.flight-route span{white-space:nowrap;color:#7dd3fc;font-weight:900}
.flight-meta{margin-top:.35rem;color:#9ca3af;font-size:.9rem}
.flight-note{color:#cbd5e1}
.flight-warning{margin-top:12px;padding:12px;border-radius:14px;background:#302207;border:1px solid #a16207;color:#fde68a}
.weather-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}

.weather-loading{height:96px;border-radius:16px;background:linear-gradient(90deg,#0b1220 25%,#172033 50%,#0b1220 75%);background-size:200% 100%;animation:weatherPulse 1.4s infinite}
@keyframes weatherPulse{from{background-position:200% 0}to{background-position:-200% 0}}
@media(max-width:640px){
  .home-cover img{aspect-ratio:2/1;height:auto}
  .flight-route{display:block}
  .flight-route span{display:block;margin-top:.2rem}
  .weather-heading{display:block}
  
}



.history-section{padding-bottom:24px}
.history-map-card,.history-period{overflow:hidden}
.history-map-image{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;object-position:center;background:#f6f3ec;border-bottom:1px solid var(--line)}
.history-intro h2{margin-bottom:8px}.history-intro p:last-child{margin-bottom:0}
.history-basics-card{margin-top:14px}.history-basics{margin-top:12px}
.history-timeline{display:grid;gap:14px;margin-top:14px}
.history-period .pad{padding:20px}
.history-period-head{display:grid;grid-template-columns:42px minmax(0,1fr);gap:13px;align-items:start;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.history-number{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--ink);color:#fff;font-weight:800;font-size:1rem;box-shadow:0 6px 18px rgba(21,31,43,.14)}
.history-dates{margin:0 0 4px;color:var(--accent);font-size:.78rem;line-height:1.25;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.history-period h3{margin:0 0 7px;font-size:1.28rem;line-height:1.18}
.history-lead{margin:0;color:var(--muted);font-size:.96rem;line-height:1.48}
.history-copy{font-size:1rem;line-height:1.72;color:var(--ink)}
.history-copy p{margin:0 0 15px}.history-copy p:last-child{margin-bottom:0}
.history-copy strong{color:var(--ink);font-weight:800}

@media(max-width:640px){
.history-map-image{max-height:none}
.history-period .pad{padding:17px}
.history-period-head{grid-template-columns:36px minmax(0,1fr);gap:11px}
.history-number{width:36px;height:36px;border-radius:12px;font-size:.9rem}
.history-period h3{font-size:1.18rem}
.history-copy{font-size:.97rem;line-height:1.68}
.history-context{margin:16px 0;padding:13px 14px}
}

/* Comer: filtros limpios y tarjetas de recomendación */
.food-summary{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin:-.35rem 0 1.05rem;
}
.food-summary span{
  display:inline-flex;
  align-items:center;
  min-height:1.9rem;
  padding:.3rem .65rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  color:var(--muted);
  font-size:.78rem;
  font-weight:750;
}
.venue-card{
  display:block;
  min-width:0;
}
.venue-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.08rem;
}
.venue-title-row b{
  min-width:0;
  font-size:1.02rem;
  line-height:1.35;
}
.venue-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:1.7rem;
  padding:.23rem .55rem;
  border:1px solid var(--accent);
  border-radius:999px;
  background:rgba(68,196,255,.12);
  color:#7dd3fc;
  font-size:.7rem;
  font-weight:850;
  line-height:1;
  letter-spacing:.025em;
  text-transform:uppercase;
}
.venue-price{
  margin:.32rem 0 .18rem;
  color:var(--accent);
  font-weight:850;
}
.venue-meta{
  line-height:1.45;
}
.venue-address,
.venue-hours{
  margin-top:.18rem;
  font-size:.88rem;
}
.venue-card p{
  margin:.7rem 0 .75rem;
  line-height:1.55;
}
@media(max-width:650px){
  .venue-title-row{
    align-items:flex-start;
  }
  .venue-badge{
    font-size:.64rem;
    padding:.22rem .48rem;
  }
}


/* Contexto europeo: tarjeta informativa oscura, legible y coherente con la PWA */
.history-context{
  position:relative;
  margin:20px 0;
  padding:17px 18px 17px 20px;
  overflow:hidden;
  border:1px solid #355071;
  border-left:5px solid var(--accent);
  border-radius:16px;
  background:#182a46;
  color:#f1f5f9;
  box-shadow:0 10px 28px rgba(0,0,0,.16);
  font-size:.96rem;
  line-height:1.65;
}
.history-context::after{
  content:"";
  position:absolute;
  top:-42px;
  right:-34px;
  width:118px;
  height:118px;
  border-radius:50%;
  background:rgba(125,211,252,.07);
  pointer-events:none;
}
.history-context strong{
  position:relative;
  z-index:1;
  color:#7dd3fc;
  font-weight:850;
}
.history-context > *{
  position:relative;
  z-index:1;
}
.venue-card[hidden]{
  display:none !important;
}
.food-filter{
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.food-filter:focus-visible{
  outline:3px solid rgba(125,211,252,.42);
  outline-offset:2px;
}
@media(max-width:640px){
  .history-context{
    margin:17px 0;
    padding:15px 16px 15px 17px;
    border-radius:14px;
    font-size:.94rem;
    line-height:1.62;
  }
}

/* Tips: navegación, idioma y recomendaciones */
.tips-filter{cursor:pointer;min-height:46px;transition:background .18s ease,border-color .18s ease,transform .18s ease}.tips-filter:hover{border-color:#4f6e98}.tips-filter:active{transform:translateY(1px)}.tips-filter:focus-visible{outline:3px solid rgba(56,189,248,.45);outline-offset:2px}.tips-panel[hidden]{display:none!important}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:16px;margin-top:14px}.language-table{width:100%;border-collapse:collapse;min-width:570px}.language-table th,.language-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}.language-table th{position:sticky;top:0;background:#10203a;color:#dbeafe;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.language-table tr:last-child td{border-bottom:0}.language-table tbody tr:nth-child(even){background:rgba(30,41,59,.34)}.pronunciation{color:#a5d8ff}.recommendation-card>.pad{padding:18px}.recommendation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.recommendation-item{display:flex;align-items:flex-start;gap:12px;background:#0b1220;border:1px solid var(--line);border-radius:18px;padding:14px}.recommendation-item p,.transport-list p{margin:.35rem 0 0;color:#cbd5e1}.rec-icon{display:grid;place-items:center;flex:0 0 42px;min-height:42px;border-radius:13px;background:#123a5a;border:1px solid #2d6286;color:#7dd3fc;font-weight:900;font-size:.77rem}.schedule-list,.transport-list{display:grid;gap:10px;margin-top:14px}.schedule-list>div{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:start;background:#0b1220;border:1px solid var(--line);border-radius:16px;padding:14px}.schedule-list time{font-weight:900;color:#7dd3fc}.rec-note{margin-top:12px}.transport-list>div{background:#0b1220;border:1px solid var(--line);border-radius:16px;padding:14px}.transport-list b{color:#e0f2fe}@media(max-width:720px){.recommendation-grid{grid-template-columns:1fr}.schedule-list>div{grid-template-columns:1fr;gap:5px}.recommendation-card>.pad{padding:16px}}@media(max-width:640px){.tips-tabs{grid-template-columns:1fr;overflow-x:visible}.tips-filter{font-size:.94rem;padding:10px 8px}.rec-icon{flex-basis:38px;min-height:38px}.language-table th,.language-table td{padding:11px 12px}}



/* Comer: jerarquía de filtros — Todos a ancho completo y categorías en parejas */
.food-filters{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.55rem;
}
.food-filters .food-filter[data-kind="all"]{
  grid-column:1 / -1;
}

/* v44: tarjeta de alquiler situada bajo el alojamiento */
@media(min-width:701px){.home-grid>.car-rental-card{grid-column:2}}
@media(max-width:700px){.home-grid>.car-rental-card{grid-column:auto}}
.warn-inline{margin-top:12px;padding:12px;border-radius:14px;background:#302207;border:1px solid #a16207;color:#fde68a;line-height:1.5}

.ticket-proof{margin:18px 0 0}.ticket-proof img{display:block;width:100%;height:auto;border-radius:16px;border:1px solid var(--line);background:#fff}.ticket-proof figcaption{margin-top:8px;color:#94a3b8;font-size:.82rem;text-align:center}
