*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f0ede8;--sf:#fff;--s2:#f7f5f1;--s3:#ece9e3;
  --bd:rgba(0,0,0,.09);--bd2:rgba(0,0,0,.16);
  --tx:#181816;--mu:#696762;--hi:#aaa89f;
  --blue:#1a6bbf;--blue-lt:#ddeeff;--blue-tx:#0a4a8c;
  --green:#2d6b0e;--green-lt:#e4f2d6;--green-tx:#1c4a08;
  --amber:#7a4509;--amber-lt:#fce9cc;--amber-tx:#5a3306;
  --red:#a02020;--red-lt:#fde8e8;--red-tx:#721616;
  --teal:#0a6b53;--teal-lt:#d8f2ea;--teal-tx:#075040;
  --purple:#5a35a0;--purple-lt:#ede5fa;--purple-tx:#3d2270;
  --accent:#1a6bbf;
  --card-shadow:0 2px 8px rgba(0,0,0,.07),0 0 0 1px rgba(0,0,0,.06);
  --card-shadow-hover:0 6px 20px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.08);
  --r:16px;--rs:10px;
}
@media(prefers-color-scheme:dark){
  :root{
    --bg:#141412;--sf:#1e1e1c;--s2:#252523;--s3:#2e2e2b;
    --bd:rgba(255,255,255,.07);--bd2:rgba(255,255,255,.15);
    --tx:#f0ede8;--mu:#a09e98;--hi:#666460;
    --blue:#4a95e8;--blue-lt:#0a2d52;--blue-tx:#b8d8f8;
    --green:#8ac444;--green-lt:#172f04;--green-tx:#c0df92;
    --amber:#f0a030;--amber-lt:#382003;--amber-tx:#f8c878;
    --red:#e04444;--red-lt:#3e0e0e;--red-tx:#f8c0c0;
    --teal:#24b088;--teal-lt:#052e24;--teal-tx:#98e2ce;
    --purple:#9e78e4;--purple-lt:#1e1038;--purple-tx:#d4c0f8;
    --card-shadow:0 2px 8px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.06);
    --card-shadow-hover:0 8px 24px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.1);
  }
}

/* ─── BASE ─── */
html{font-size:15px;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--tx);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;line-height:1.5;padding:0 0 5rem}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}

/* ─── HEADER ─── */
.hero{background:linear-gradient(135deg,#0f3d6e 0%,#1a6bbf 60%,#2a85d8 100%);padding:2rem 1.5rem 3.5rem;color:#fff;position:relative}
.hero::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.hero-inner{position:relative;z-index:1;max-width:900px;margin:0 auto}
.hero-brand{display:flex;align-items:center;gap:1rem}
.hero-logo{width:56px;height:56px;border-radius:14px;object-fit:cover;flex-shrink:0;box-shadow:0 2px 12px rgba(0,0,0,.3)}
.hero h1{font-size:1.6rem;font-weight:700;margin-bottom:.25rem;letter-spacing:-.02em}
.hero p{font-size:.9rem;opacity:.75}
@media(max-width:580px){.hero-logo{width:44px;height:44px;border-radius:10px}}
.wrap{max-width:900px;margin:0 auto;padding:0 1.25rem}
.search-outer{position:relative;z-index:10;margin-top:-2.25rem;padding:0}
.search-outer .wrap .sbox{box-shadow:0 4px 24px rgba(0,0,0,.14),0 0 0 1px rgba(0,0,0,.07)}

/* ─── SEARCH BOX ─── */
.sbox{background:var(--sf);border-radius:var(--r);box-shadow:var(--card-shadow);margin-bottom:1.5rem}
.sbox-top{border-radius:var(--r) var(--r) 0 0}
.sbox-opts{border-radius:0}
.adv-row{border-radius:0 0 var(--r) var(--r)}
.sbox-top{padding:1.25rem 1.375rem 1rem}
.rrow{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:end;margin-bottom:.875rem}
.field-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--mu);margin-bottom:4px;display:block}
.finput{width:100%;background:var(--s2);border:1.5px solid var(--bd2);border-radius:var(--rs);padding:10px 13px;font-size:.95rem;color:var(--tx);outline:none;transition:border-color .15s,box-shadow .15s}
.finput:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,107,191,.15)}
.finput::placeholder{color:var(--hi)}
.swap{background:var(--s2);border:1.5px solid var(--bd2);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--mu);flex-shrink:0;font-size:1.1rem;transition:all .15s}
.swap:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:rotate(180deg)}
.sbox-opts{padding:.75rem 1.375rem;background:var(--s2);border-top:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.trip-toggle{display:flex;gap:4px;background:var(--s3);border-radius:8px;padding:3px}
.trip-btn{font-size:.8rem;padding:5px 14px;border-radius:6px;border:none;cursor:pointer;background:transparent;color:var(--mu);font-weight:500;transition:all .15s}
.trip-btn.active{background:var(--sf);color:var(--tx);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.adv-btn{font-size:.8rem;color:var(--blue);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;gap:4px}
.status-pill{font-size:.75rem;color:var(--teal);background:var(--teal-lt);padding:3px 9px;border-radius:20px;white-space:nowrap;display:none}
.status-pill.show{display:inline-block}
.adv-row{display:flex;gap:10px;flex-wrap:wrap;padding:.875rem 1.375rem;border-top:1px solid var(--bd)}
.fld{flex:1;min-width:100px}

/* ─── AUTOCOMPLETE ─── */
.acwrap{position:relative}
.acdrop{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--sf);border:1px solid var(--bd2);border-radius:var(--rs);z-index:300;max-height:220px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.13)}
.acrow{padding:9px 14px;cursor:pointer;font-size:.875rem;border-bottom:1px solid var(--bd);transition:background .1s}
.acrow:last-child{border-bottom:none}
.acrow:hover{background:var(--s2)}
.acmeta{font-size:.72rem;color:var(--mu);margin-top:1px}

/* ─── STEPS ─── */
.step-hdr{display:flex;align-items:center;gap:10px;margin-bottom:.875rem}
.step-num{width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step-txt{font-size:.9rem;font-weight:600}
.step-sub{font-size:.78rem;color:var(--mu);margin-top:1px}

/* ─── CALENDAR ─── */
.cal-wrap{background:var(--sf);border-radius:var(--r);box-shadow:var(--card-shadow);overflow:hidden;margin-bottom:1.5rem}
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;border-bottom:1px solid var(--bd);gap:10px;flex-wrap:wrap}
.cal-nav-grp{display:flex;align-items:center;gap:6px}
.cal-month-label{font-size:1rem;font-weight:600;min-width:170px}
.cal-nav{background:var(--s2);border:1px solid var(--bd);border-radius:var(--rs);width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--mu);font-size:1rem;transition:all .15s}
.cal-nav:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.cal-legend{display:flex;gap:12px;flex-wrap:wrap}
.leg{display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--mu)}
.leg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cal-body{padding:1rem 1.25rem}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dow{padding:.35rem 0;text-align:center;font-size:.68rem;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.05em}
.cal-cell{border-radius:10px;padding:5px 4px 6px;min-height:82px;cursor:pointer;transition:background .12s,transform .12s,box-shadow .12s;position:relative}
.cal-cell:hover:not(.past):not(.empty){background:var(--s2);transform:translateY(-1px);box-shadow:var(--card-shadow)}
.cal-cell.empty{cursor:default;opacity:0}
.cal-cell.past{opacity:.28;cursor:default;pointer-events:none}
.cal-cell.today{background:var(--blue-lt)}
.cal-cell.today .cal-dn{color:var(--blue);font-weight:800}
.cal-cell.selected{background:var(--blue)!important;transform:translateY(-1px);box-shadow:var(--card-shadow-hover)}
.cal-cell.selected .cal-dn{color:#fff;font-weight:800}
.cal-cell.selected .pi-val{color:rgba(255,255,255,.9)!important}
.cal-cell.in-range{background:var(--blue-lt)}
.cal-cell.in-range .cal-dn{color:var(--blue-tx)}
.cal-dn{font-size:.8rem;font-weight:600;margin-bottom:4px;text-align:center}
.pi-list{display:flex;flex-direction:column;gap:2px}
.pi-row{display:flex;align-items:center;gap:3px;padding:1px 2px;border-radius:5px}
.pi-ico{font-size:.58rem;line-height:1;flex-shrink:0;width:12px;text-align:center}
.pi-val{font-size:.67rem;font-weight:600;line-height:1.3;white-space:nowrap}
.pi-val.cheap{color:var(--teal)}
.pi-val.mid{color:var(--amber)}
.pi-val.hi{color:var(--red)}
.pi-val.gray{color:var(--hi)}
.pi-val.est{font-style:italic;font-weight:400}
.shimmer{display:inline-block;background:linear-gradient(90deg,var(--s2) 25%,var(--s3) 50%,var(--s2) 75%);background-size:200%;animation:sh 1.3s infinite;border-radius:3px;height:8px;width:38px;vertical-align:middle}
@keyframes sh{from{background-position:200%}to{background-position:-200%}}
.cal-foot{display:flex;justify-content:space-between;align-items:center;padding:.625rem 1.25rem;background:var(--s2);border-top:1px solid var(--bd);font-size:.78rem;color:var(--mu);gap:8px;flex-wrap:wrap}
.cal-foot strong{color:var(--tx)}
.cal-data-note{padding:.5rem 1.25rem;font-size:.7rem;color:var(--hi);background:var(--s2);border-top:1px solid var(--bd)}
.cal-legend-mobile{display:none;gap:8px;flex-wrap:wrap;font-size:.7rem;color:var(--mu);padding:.5rem 1rem;background:var(--s2);border-top:1px solid var(--bd)}
.cal-legend-mobile span{display:flex;align-items:center;gap:3px}

/* ─── RESULTS ─── */
.res-wrap{padding-top:.25rem}
.leg-block{margin-bottom:1.5rem}
.leg-hdr{display:flex;align-items:center;gap:8px;margin-bottom:.75rem}
.leg-ico{font-size:1rem}
.leg-title{font-size:.9rem;font-weight:700}
.leg-date{font-size:.78rem;color:var(--mu);background:var(--s2);padding:2px 9px;border-radius:20px;border:1px solid var(--bd)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.card{background:var(--sf);border-radius:var(--r);box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:0;overflow:hidden;transition:box-shadow .15s,transform .15s;cursor:default}
.card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}
.card-accent{height:4px;background:var(--hi)}
.card.mode-flight .card-accent{background:linear-gradient(90deg,#1a6bbf,#4a95e8)}
.card.mode-train  .card-accent{background:linear-gradient(90deg,#2d6b0e,#7bc43a)}
.card.mode-car    .card-accent{background:linear-gradient(90deg,#7a4509,#f0a030)}
.card.mode-bus    .card-accent{background:linear-gradient(90deg,#5a35a0,#a07ee8)}
.card.cheapest{box-shadow:0 0 0 2px var(--green),var(--card-shadow-hover)}
.card.fastest {box-shadow:0 0 0 2px var(--blue), var(--card-shadow-hover)}
.card.loading{opacity:.5;pointer-events:none}
.card-body{padding:.95rem 1.1rem;display:flex;flex-direction:column;gap:7px;flex:1}
.ctop{min-height:20px;display:flex;gap:5px;flex-wrap:wrap}
.chdr{display:flex;gap:10px;align-items:center}
.cico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.cname{font-size:.95rem;font-weight:700;letter-spacing:-.01em}
.csub{font-size:.75rem;color:var(--mu)}
.price-row{display:flex;align-items:baseline;gap:6px}
.cprice{font-size:1.5rem;font-weight:800;letter-spacing:-.03em}
.cpnote{font-size:.75rem;color:var(--mu)}
.price-tag{font-size:.7rem;font-weight:600;padding:2px 7px;border-radius:4px}
.tag-oneway{background:var(--blue-lt);color:var(--blue-tx)}
.tag-return{background:var(--purple-lt);color:var(--purple-tx)}
.cbreak{font-size:.75rem;color:var(--mu);background:var(--s2);border-radius:8px;padding:6px 10px;line-height:1.5}
.cbreak b{color:var(--tx)}
.olist{display:flex;flex-direction:column;gap:1px}
.orow2{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid var(--bd);gap:6px}
.orow2:last-child{border-bottom:none}
.o-left{flex:1;min-width:0}
.o-airline{font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.o-meta{font-size:.68rem;color:var(--mu);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.o-time{font-size:.72rem;color:var(--hi);white-space:nowrap}
.o-price{font-weight:700;font-size:.82rem;color:var(--tx);white-space:nowrap}
.cmeta{display:flex;gap:8px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--bd)}
.mi{font-size:.75rem;color:var(--mu);display:flex;align-items:center;gap:3px}
.mi b{color:var(--tx);font-weight:600}
.card-foot{padding:.625rem 1.1rem;background:var(--s2);border-top:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.4rem}
.card-foot-actions{display:flex;gap:.5rem;align-items:center}
.csrc{font-size:.68rem;color:var(--hi)}
.bklink{font-size:.78rem;font-weight:600;color:var(--blue);display:flex;align-items:center;gap:3px}
.pick-transport-btn{font-size:.78rem;font-weight:600;padding:.3rem .7rem;border-radius:var(--rs);border:1.5px solid var(--blue);color:var(--blue);background:transparent;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.pick-transport-btn:hover,.pick-transport-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.badge{display:inline-block;font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:5px;letter-spacing:.01em}
.bg{background:var(--green-lt);color:var(--green-tx)}
.bb{background:var(--blue-lt);color:var(--blue-tx)}
.bt{background:var(--teal-lt);color:var(--teal-tx)}

/* ─── TOTAL BOX ─── */
.totbox{background:var(--sf);border-radius:var(--r);box-shadow:var(--card-shadow);overflow:hidden;margin-top:1rem}
.totbox-hdr{padding:.875rem 1.25rem;background:linear-gradient(135deg,#0f3d6e,#1a6bbf);color:#fff;font-size:.9rem;font-weight:700}
.totbox-body{padding:.75rem 1.25rem}
.totrow{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--bd);font-size:.85rem}
.totrow:last-child{border-bottom:none;font-weight:700;font-size:1rem;padding-top:10px}
.totrow .tl{color:var(--mu)}
.totrow .tv{font-weight:600;color:var(--tx)}
.totrow.best .tl{color:var(--green-tx);font-weight:600}
.totrow.best .tv{color:var(--green-tx);font-size:1.1rem}

.fnote{font-size:.7rem;color:var(--hi);padding:10px 0;border-top:1px solid var(--bd);margin-top:1rem}
.err{background:var(--red-lt);color:var(--red-tx);border-radius:var(--rs);padding:10px 14px;font-size:.875rem}
.warn{background:var(--amber-lt);color:var(--amber-tx);border-radius:var(--rs);padding:8px 13px;font-size:.82rem;margin-bottom:1rem}
.divider{height:1px;background:var(--bd);margin:1.5rem 0}

/* ─── MOBILE (≤700px) ─── */
@media(max-width:700px){
  .hotel-layout{grid-template-columns:1fr;min-height:unset}
  .hotel-map{min-height:260px;order:2}
  .hotel-list{max-height:none;order:1}
  .hotel-map-toggle{display:flex}
  .summary-grid{grid-template-columns:1fr}
}

/* ─── MOBILE (≤580px) ─── */
@media(max-width:580px){
  html{font-size:14px}
  .hero{padding:1.25rem 1rem 2.5rem}
  .hero h1{font-size:1.25rem}
  .hero p{font-size:.82rem}
  .wrap{padding:0 .75rem}
  .search-outer{margin-top:-1.75rem}

  /* Search: flexbox ipv grid zodat swap-knop netjes zit */
  .sbox-top{padding:1rem 1rem .875rem}
  .rrow{display:flex;flex-direction:column;gap:6px;margin-bottom:.6rem}
  .swap{align-self:center;transform:rotate(90deg);width:38px;height:38px;flex-shrink:0}
  .swap:hover{background:var(--blue);border-color:var(--blue);color:#fff}
  .sbox-opts{padding:.625rem 1rem;gap:6px}
  .adv-row{padding:.75rem 1rem;gap:8px}
  .fld{flex:1 1 calc(50% - 4px);min-width:0}
  .finput{padding:9px 11px;font-size:.9rem}

  /* Touch targets */
  .cal-nav{width:44px;height:44px}
  .trip-btn{padding:7px 12px;font-size:.8rem}

  /* Calendar */
  .cal-toolbar{flex-direction:column;align-items:flex-start;gap:8px;padding:.75rem 1rem}
  .cal-legend{display:none}
  .cal-legend-mobile{display:flex}
  .cal-month-label{font-size:.9rem;min-width:unset}
  .cal-body{padding:.5rem .35rem}
  .cal-grid{gap:2px}
  .cal-cell{min-height:62px;padding:4px 2px 4px;border-radius:7px}
  .cal-dn{font-size:.76rem;margin-bottom:3px}
  .pi-ico{display:none}
  .pi-row:first-child{justify-content:center}
  .pi-row:first-child .pi-val{font-size:.7rem;font-weight:700;white-space:nowrap}
  .pi-row:not(:first-child){display:none}
  .cal-foot{flex-direction:column;align-items:flex-start;gap:3px;padding:.5rem 1rem}
  .cal-data-note{font-size:.65rem;padding:.4rem 1rem}

  /* Resultatenkaarten: 1 kolom zodat footer-knoppen passen */
  .cards{grid-template-columns:1fr}
  .cprice{font-size:1.3rem}
  .card-body{padding:.85rem 1rem}
  .cico{width:34px;height:34px;font-size:1.05rem}

  /* Kaart-footer: netjes op 1 regel houden */
  .card-foot{flex-wrap:nowrap;align-items:center}
  .csrc{font-size:.62rem;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80px}
  .card-foot-actions{flex-shrink:0;gap:.35rem}
  .pick-transport-btn{padding:.35rem .55rem;font-size:.74rem}
  .bklink{font-size:.74rem}

  /* Hotel filters */
  .hotel-filters{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.6rem .75rem}
  .hotel-filters label{font-size:.75rem}
  .hotel-filters .finput{padding:7px 9px;font-size:.8rem}

  /* Hotel lijstkaarten */
  .hotel-card{padding:.7rem .85rem}
  .hotel-card .hname{font-size:.88rem}
  /* Nachten-totaal op eigen regel */
  .hotel-card .hrow .nights-total{display:block;width:100%;margin-top:.3rem;font-size:.78rem}

  /* Hotel detail: stapel verticaal */
  .hotel-detail{padding:.9rem}
  .hotel-detail-body{flex-direction:column!important}
  .hotel-detail-price{text-align:left!important;margin-top:.75rem}

  /* Deal-tips: geen overflow */
  .deal-tip{font-size:.76rem!important;word-break:break-word}

  /* Stap-headers */
  .step-num{width:22px;height:22px;font-size:.68rem}
  .step-txt{font-size:.85rem}
}

/* ─── MOBILE (≤380px) ─── */
@media(max-width:380px){
  .cards{grid-template-columns:1fr}
  .hotel-filters{grid-template-columns:1fr}
  .cal-cell{min-height:58px;padding:3px 1px}
  .pi-row:first-child .pi-val{font-size:.65rem}
}

/* ─── HOTELS (step 4) ─── */
.hotel-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1rem 0; min-height: 480px; }
.hotel-map { border-radius: var(--r); overflow: hidden; min-height: 480px; border: 1px solid var(--bd); }
.hotel-list { overflow-y: auto; max-height: 480px; display: flex; flex-direction: column; gap: .6rem; }
.hotel-map-toggle { display:none; align-items:center; justify-content:center; gap:.4rem; padding:.55rem 1rem; background:var(--sf); border:1px solid var(--bd); border-radius:var(--rs); font-size:.82rem; font-weight:600; cursor:pointer; color:var(--blue); margin-bottom:.5rem; width:100%; }
.hotel-map-toggle:hover { background:var(--blue-lt); }
.hotel-map.collapsed { display:none; }
.hotel-card { background: var(--sf); border: 1px solid var(--bd); border-radius: var(--rs); padding: .85rem 1rem; cursor: pointer; transition: box-shadow .15s; }
.hotel-card:hover, .hotel-card.selected { box-shadow: var(--card-shadow-hover); border-color: var(--blue); }
.hotel-card .hname { font-weight: 600; font-size: .95rem; margin-bottom: .2rem; }
.hotel-card .haddr { font-size: .78rem; color: var(--mu); margin-bottom: .4rem; }
.hotel-card .hrow { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.hotel-card .hprice { font-size: 1.1rem; font-weight: 700; color: var(--tx); }
.hotel-card .hrating { font-size: .8rem; color: var(--amber); }
.hotel-card .hamenity { font-size: .72rem; background: var(--s2); border-radius: 4px; padding: .1rem .4rem; }
.hotel-filters { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; align-items: center; padding: .75rem 1rem; background: var(--sf); border: 1px solid var(--bd); border-radius: var(--rs); }
.hotel-filters label { font-size: .8rem; color: var(--mu); }
.hotel-filters input[type=range] { width: 110px; }
.hotel-detail { background: var(--sf); border: 1px solid var(--bd2); border-radius: var(--r); padding: 1.25rem; margin-top: .75rem; }
.leaflet-popup-content { font-family: inherit; font-size: .85rem; }
.map-price-pin { display:inline-block; color: #fff; border-radius: 6px; padding: 3px 7px; font-size: .72rem; font-weight: 700; white-space: nowrap; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: translate(-50%, -50%); cursor: pointer; }
.map-cluster-pin { padding: 3px 9px; font-size: .73rem; }
.summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1rem 0; }
.summary-card { background: var(--sf); border: 1px solid var(--bd); border-radius: var(--r); padding: 1.25rem; }
.summary-total { font-size: 1.4rem; font-weight: 700; text-align: center; padding: 1rem; background: var(--green-lt); color: var(--green); border-radius: var(--rs); margin-top: .75rem; }
.summary-transport-opt { display:flex; justify-content:space-between; align-items:center; gap:.75rem; padding:.65rem .9rem; background:var(--sf); border:2px solid var(--bd); border-radius:var(--rs); cursor:pointer; transition:border-color .15s,box-shadow .15s; }
.summary-transport-opt:hover { border-color:var(--blue); }
.summary-transport-opt.sel { border-color:var(--blue); background:var(--s2); }
@media(max-width:700px) { .hotel-layout { grid-template-columns: 1fr; } .hotel-map { min-height: 300px; } .summary-grid { grid-template-columns: 1fr; } }
