/* ToGo Reservas — estilos con alcance .togo-r para no chocar con el tema */
.togo-r{
  --togo-p:#0f5c63; --togo-a:#f08a24;
  --togo-ink:#14232b; --togo-muted:#5b6b73; --togo-line:#e7e1d7; --togo-soft:#f2ece2; --togo-wa:#25d366; --togo-bg:#fff;
  --togo-cols:3;
  box-sizing:border-box; color:var(--togo-ink); line-height:1.5;
}
.togo-r *,.togo-r *::before,.togo-r *::after{box-sizing:border-box}

/* ---------- Botones ---------- */
.togo-r .togo-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  border:0; cursor:pointer; font-weight:600; font-size:.95rem; line-height:1.2;
  padding:12px 18px; border-radius:10px; text-decoration:none !important; transition:filter .2s, transform .1s;
}
.togo-r .togo-btn:hover{filter:brightness(.93)}
.togo-r .togo-btn:active{transform:translateY(1px)}
.togo-r .togo-btn:disabled{opacity:.45; cursor:not-allowed; filter:none}
.togo-r .togo-btn--wa{background:var(--togo-wa); color:#fff !important; width:100%; padding:14px; border-radius:999px; font-size:1rem}
.togo-r .togo-btn--p{background:var(--togo-p); color:#fff !important}
.togo-r .togo-btn--line{background:transparent; border:1px solid var(--togo-line); color:var(--togo-ink) !important}

/* ---------- Buscador ---------- */
.togo-book{
  background:var(--togo-bg); border-radius:20px; padding:26px; max-width:520px; width:100%;
  box-shadow:0 24px 60px rgba(0,0,0,.18); text-align:left;
}
.togo-book__head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px}
.togo-book__head .togo-book__title{flex:1; min-width:0}
.togo-book .togo-book__title{margin:0 0 4px; font-size:1.4rem; color:var(--togo-ink)}
.togo-lang{display:inline-flex; flex:none; border:1px solid var(--togo-line); border-radius:999px; overflow:hidden; background:var(--togo-bg)}
.togo-lang button{border:0; margin:0; background:none; box-shadow:none; padding:6px 11px; font-size:.78rem; font-weight:700; letter-spacing:.04em; color:var(--togo-muted); cursor:pointer; line-height:1}
.togo-lang button.is-on{background:var(--togo-p); color:#fff}
.togo-book .togo-book__sub{margin:0; color:var(--togo-muted); font-size:.9rem}
.togo-tabs{display:grid; grid-template-columns:1fr 1fr; background:var(--togo-soft); border-radius:12px; padding:4px; margin:18px 0}
.togo-tabs button{
  border:0; background:none; padding:10px; border-radius:9px; font-weight:600; font-size:.95rem;
  cursor:pointer; color:var(--togo-muted); box-shadow:none; margin:0;
}
.togo-tabs button.is-on{background:var(--togo-bg); color:var(--togo-p); box-shadow:0 2px 8px rgba(0,0,0,.08)}
.togo-grid2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.togo-field{margin-bottom:12px}
.togo-field label{display:block; font-size:.8rem; font-weight:600; color:var(--togo-muted); margin:0 0 5px}
.togo-field input,.togo-field select{
  width:100%; height:46px; padding:10px 12px; margin:0;
  border:1px solid var(--togo-line); border-radius:10px; background:#fff; color:var(--togo-ink);
  font-size:.98rem; font-family:inherit;
}
.togo-field input:focus,.togo-field select:focus{outline:2px solid var(--togo-p); border-color:transparent}
.togo-field input.is-invalid{border-color:#d93025}
.togo-price{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  background:#fff6ec; border:1px dashed #f3c08e; border-radius:12px; padding:12px 14px; margin:6px 0 14px;
}
.togo-price > span:first-child{font-size:.9rem; color:var(--togo-ink)}
.togo-price__right{text-align:right; line-height:1.15; flex:none}
.togo-price b{display:block; font-size:1.5rem; font-weight:800; color:var(--togo-a)}
.togo-price small{color:var(--togo-muted); font-size:.75rem}
.togo-note{font-size:.78rem; color:var(--togo-muted); margin:10px 0 0; text-align:center}
.togo-error{color:#d93025; font-size:.85rem; margin:0 0 10px}
.togo-info{background:var(--togo-soft); border-radius:10px; padding:10px 12px; font-size:.85rem; margin:-4px 0 14px}
.togo-r [hidden]{display:none !important}

/* ---------- Tarjetas de rutas ---------- */
/* Columnas máximas = --togo-cols; si no caben (mín. 250px c/u) bajan solas */
.togo-routes{display:grid; gap:22px;
  grid-template-columns:repeat(auto-fill,minmax(max(250px,calc((100% - (var(--togo-cols) - 1) * 22px) / var(--togo-cols))),1fr))}
.togo-route{
  background:var(--togo-bg); border-radius:16px; overflow:hidden; display:flex; flex-direction:column;
  box-shadow:0 10px 30px rgba(20,35,43,.08); margin:0;
}
.togo-route__img{height:var(--togo-img-h,200px); background:var(--togo-p); position:relative; overflow:hidden}
.togo-r img.togo-route__photo{position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; margin:0; border-radius:0; transition:transform .5s ease}
.togo-route:hover .togo-route__photo{transform:scale(1.04)}
.togo-route__time{
  position:absolute; z-index:1; left:12px; top:12px; background:rgba(255,255,255,.95); color:var(--togo-ink);
  padding:5px 10px; border-radius:999px; font-size:.8rem; font-weight:600;
}
.togo-route__body{padding:18px; display:flex; flex-direction:column; flex:1}
.togo-route__from{font-size:.8rem; color:var(--togo-muted)}
.togo-route .togo-route__title{font-size:1.3rem; margin:2px 0 14px; line-height:1.2; color:var(--togo-ink)}
.togo-prices{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:16px}
.togo-prices > div{background:var(--togo-soft); border-radius:10px; padding:10px}
.togo-prices small{display:block; font-size:.7rem; color:var(--togo-muted); text-transform:uppercase; letter-spacing:.06em; font-weight:600}
.togo-prices b{display:block; font-size:1.15rem; line-height:1.3}
.togo-prices span{display:block; font-size:.75rem; color:var(--togo-muted); line-height:1.3}
.togo-prices .togo-q{font-size:.9rem; color:var(--togo-p); font-weight:600}
.togo-prices .togo-na{font-size:.85rem; color:var(--togo-muted); font-style:italic}
.togo-route__inc{font-size:.85rem; color:var(--togo-muted); margin:-8px 0 12px}
.togo-tiers{margin:-6px 0 14px; font-size:.85rem}
.togo-tiers summary{cursor:pointer; color:var(--togo-p); font-weight:600}
.togo-tiers table{width:100%; border-collapse:collapse; margin-top:8px}
.togo-tiers td{padding:5px 4px; border-bottom:1px solid var(--togo-line); color:var(--togo-ink); font-size:.82rem}
.togo-tiers td:last-child{text-align:right; white-space:nowrap}
.togo-route__acts{margin-top:auto; display:flex; gap:8px}
.togo-route__acts .togo-btn{flex:1 1 0; min-width:0; white-space:nowrap; padding:12px 10px}

.togo-aviso{background:#fff6ec; border:1px solid #f3c08e; padding:10px 14px; border-radius:8px}

@media (max-width:600px){
  .togo-grid2{grid-template-columns:1fr}
  .togo-routes{grid-template-columns:1fr}
  .togo-book{padding:20px}
}
