/* ---------- Mi viaje, Cerca mío, itinerarios ---------- */
.fav{ display:inline-flex; align-items:center; gap:6px; background:none; border:1px solid var(--line); color:var(--ink); border-radius:999px; padding:5px 12px 5px 9px; font:inherit; font-size:.8rem; cursor:pointer; transition:background .2s, color .2s, border-color .2s, transform .15s var(--ease-out); }
.fav svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; transition:fill .2s, transform .3s var(--ease-out); }
.fav:hover{ border-color:var(--gold); color:var(--gold); }
.fav:active{ transform:scale(.95); }
.fav[aria-pressed="true"]{ background:var(--gold); border-color:var(--gold); color:var(--bg); }
.fav[aria-pressed="true"] svg{ fill:currentColor; }
.fav.pop svg{ animation:heart .45s var(--ease-out); }
@keyframes heart{ 40%{ transform:scale(1.35); } }
.links .fav{ margin-right:6px; }

.topnav .trip-link{ display:inline-flex; align-items:center; gap:6px; }
.topnav .trip-link svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.topnav .trip-link b{ font-weight:600; font-size:.72rem; background:var(--gold); color:var(--bg); border-radius:999px; min-width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; padding:0 5px; }
.subnav-out{ margin-left:auto; }
.subnav-out + .subnav-out{ margin-left:0; }
@media (max-width:760px){ .hide-sm{ display:none; } .subnav-out{ margin-left:0; } }

/* Mi viaje */
.trip-shared{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; background:var(--bg-2); padding:16px 20px; border-radius:6px; margin-bottom:28px; }
.trip-shared p{ margin:0; }
.trip-tools{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:32px; }
.trip-tools .btn-ghost{ margin:0; color:var(--ink); border-color:var(--ink); }
.trip-tools .btn-ghost:hover{ background:var(--ink); color:var(--bg); }
.trip-msg{ color:var(--ink-soft); font-size:.92rem; }
.trip-empty p{ color:var(--ink-soft); font-size:1.05rem; }
.trip-city{ padding:28px 0 40px; border-top:1px solid var(--line); }
.trip-city-head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:18px; }
.trip-city-head h2{ font-size:calc(clamp(1.8rem,4vw,2.8rem) * var(--cf-scale, 1)); margin:0; }
.trip-city-head h2 a{ text-decoration:none; color:color-mix(in srgb, var(--city-accent) 60%, #151311); }
.trip-city-head label{ font-size:.9rem; color:var(--ink-soft); display:flex; gap:8px; align-items:center; }
.trip-city-head select{ font:inherit; padding:6px 10px; border-radius:6px; border:1px solid var(--line); background:var(--panel); color:var(--ink); }
.trip-city-in{ display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.trip-day h3{ font-size:1rem; letter-spacing:.12em; text-transform:uppercase; color:color-mix(in srgb, var(--city-accent) 60%, #151311); margin:18px 0 8px; font-family:var(--sans); font-weight:600; }
.trip-day ol{ list-style:none; padding:0; margin:0; }
.trip-item{ display:grid; grid-template-columns:64px 1fr auto; gap:14px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.trip-item img,.trip-noimg{ width:64px; height:64px; object-fit:cover; border-radius:4px; background:var(--bg-2); display:block; }
.trip-item a{ color:var(--ink); text-decoration:none; font-weight:500; }
.trip-item a:hover{ text-decoration:underline; }
.trip-item small{ display:block; color:var(--ink-soft); font-size:.8rem; margin-top:2px; }
.trip-item .stamp{ margin:0 0 0 6px; font-size:.58rem; vertical-align:middle; }
.trip-item .fav span{ display:none; }
.trip-item .fav{ padding:7px; }
.trip-map{ height:360px; border-radius:6px; overflow:hidden; position:sticky; top:130px; background:var(--bg-2); }
.trip-map .leaflet-tile-pane,.itin-map .leaflet-tile-pane{ filter:grayscale(.75) sepia(.15) contrast(.95); }

/* Cerca mío */
.near-list{ list-style:none; padding:0; margin:0; }
.near-item{ display:grid; grid-template-columns:96px 1fr auto; gap:18px; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.near-item img{ width:96px; height:96px; object-fit:cover; border-radius:4px; }
.near-item a{ color:var(--ink); font-size:1.15rem; text-decoration:none; font-weight:500; }
.near-item small{ color:var(--ink-soft); margin-left:6px; }
.near-item p{ margin:4px 0 0; color:var(--ink-soft); font-size:.92rem; }
.near-d{ display:block; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:color-mix(in srgb, var(--city-accent) 60%, #151311); font-weight:600; }

/* Itinerario */
.itin-in{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(24px,4vw,56px); align-items:start; }
.itin-day{ border-top:1px solid var(--line); padding:26px 0 30px; }
.itin-n{ font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:var(--gold); }
.itin-day h2{ font-size:clamp(1.25rem,2.4vw,1.7rem); margin:6px 0 6px; }
.itin-day header p{ color:var(--ink-soft); margin:0 0 14px; font-size:.92rem; }
.itin-day ol{ list-style:none; padding:0; margin:0; }
.itin-day li{ display:grid; grid-template-columns:30px 1fr auto; gap:14px; align-items:start; padding:12px 0; }
.itin-dot{ width:28px; height:28px; border-radius:50%; background:var(--day, var(--gold)); color:#151311; font-weight:600; font-size:.85rem; display:flex; align-items:center; justify-content:center; }
.itin-day li a{ color:var(--ink); font-weight:500; font-size:1.05rem; text-decoration:none; }
.itin-day li a:hover{ text-decoration:underline; }
.itin-day li p{ margin:4px 0; color:var(--ink-soft); font-size:.92rem; }
.itin-day li small{ color:var(--ink-soft); font-size:.8rem; }
.itin-day .stamp{ font-size:.58rem; margin:0 0 0 6px; vertical-align:middle; }
.itin-day .fav span{ display:none; }
.itin-day .fav{ padding:7px; }
.itin-map{ position:sticky; top:90px; }
.itin-map .map{ height:min(78vh,640px); }
.pin-day{ width:auto !important; min-width:34px; height:24px !important; border-radius:999px !important; font-size:.66rem !important; padding:0 6px; }

@media (max-width:860px){
  .trip-city-in,.itin-in{ grid-template-columns:1fr; }
  .trip-map,.itin-map{ position:relative; top:0; order:-1; }
  .itin-map .map{ height:340px; }
  .near-item{ grid-template-columns:72px 1fr; }
  .near-item img{ width:72px; height:72px; }
  .near-item .fav{ grid-column:2; justify-self:start; }
}

[hidden]{ display:none !important; }

.sheet-light .leaflet-tile-pane{ filter:grayscale(.75) sepia(.15) contrast(.95) !important; }
