/* StayGo design tokens
   Lagoon teal for trust/navigation, marigold for money & primary booking actions,
   cool mist surfaces so photography carries the colour. One family: Figtree. */
:root{
  --ink:#14212B; --ink-2:#33434F; --muted:#5C6B78; --line:#E2E7EC; --mist:#F4F6F8; --surface:#fff;
  --teal:#0B5D5E; --teal-2:#0E7576; --teal-tint:#E5F1F0;
  --gold:#F2A93B; --gold-2:#E0922000; --gold-ink:#3A2600; --gold-tint:#FDF3E1;
  --ok:#1F8A5B; --ok-tint:#E4F4EC; --warn:#A66300; --warn-tint:#FFF3DC; --bad:#C2412D; --bad-tint:#FBE9E5;
  --r-sm:8px; --r:12px; --r-lg:18px; --shadow:0 1px 2px rgba(20,33,43,.06),0 8px 24px rgba(20,33,43,.06);
  --font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --safe-b:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;font:400 16px/1.55 var(--font);color:var(--ink);background:var(--mist);overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .5em;font-weight:700;letter-spacing:-.01em}
h1{font-size:clamp(1.6rem,3.6vw,2.4rem)}h2,.h2{font-size:1.35rem}h3,.h3{font-size:1.1rem}
p{margin:0 0 .8em}
.muted{color:var(--muted)}.small,small{font-size:.86rem}.center{text-align:center}.right{text-align:right}.mono{font-variant-numeric:tabular-nums;letter-spacing:.04em;font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.wrap{max-width:1240px;margin:0 auto;padding:0 1rem}.narrow{max-width:820px}
.section{padding:2rem 0}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.row-wrap{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.5rem 0}.row-wrap.tight{margin:0;gap:.3rem}
.row-end{display:flex;justify-content:flex-end;gap:.5rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.stack{display:grid;gap:.8rem}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.line{padding:.55rem 0;border-bottom:1px solid var(--line)}
.only-sm{display:none!important}
@media (max-width:760px){.hide-sm{display:none!important}.only-sm{display:inline-flex!important}.grid2,.grid3{grid-template-columns:1fr}}

/* Buttons & form controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:.6rem 1.1rem;border-radius:var(--r);border:1px solid transparent;font:600 .95rem var(--font);cursor:pointer;text-decoration:none!important;transition:background .15s,border-color .15s}
.btn-sm{min-height:36px;padding:.35rem .8rem;font-size:.88rem}
.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-2)}
.btn-cta{background:var(--gold);color:var(--gold-ink)}.btn-cta:hover{filter:brightness(.96)}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--teal);color:var(--teal)}
.btn-danger{background:var(--bad);color:#fff}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.block{width:100%}
.link{background:none;border:0;padding:0;color:var(--teal);font:inherit;cursor:pointer;font-weight:600}.link.danger,.danger{color:var(--bad)}
.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;position:relative;font-size:1rem}
.icon-btn .dot{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--bad)}
input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #CBD3DA;border-radius:var(--r-sm);padding:.6rem .7rem;min-height:44px;width:100%;max-width:100%}
textarea{min-height:auto;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--teal);outline:2px solid var(--teal-tint)}
input[type=checkbox],input[type=radio]{width:auto;min-height:auto;accent-color:var(--teal)}
.row-wrap input,.row-wrap select{width:auto;flex:1 1 140px}
.field{display:grid;gap:.3rem}.field>span{font-size:.86rem;font-weight:600;color:var(--ink-2)}
.field-error{color:var(--bad);font-size:.86rem;margin:.2rem 0 0}
.check{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;cursor:pointer}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem;margin-bottom:1rem}.span2{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}
fieldset{border:0;padding:0;margin:0 0 1rem}legend{font-weight:700;margin-bottom:.4rem}
.chip{display:inline-flex;margin:0 .3rem .4rem 0;cursor:pointer}.chip input{position:absolute;opacity:0}
.chip span{padding:.35rem .75rem;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.9rem}
.chip input:checked+span{background:var(--teal);border-color:var(--teal);color:#fff}.chip input:focus-visible+span{outline:3px solid var(--gold)}

/* Badges, pills, notices, toasts */
.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}
.badge-ok{background:var(--ok-tint);color:var(--ok)}.badge-warn{background:var(--warn-tint);color:var(--warn)}.badge-bad{background:var(--bad-tint);color:var(--bad)}.badge-neutral{background:var(--mist);color:var(--muted)}
.pill{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:var(--teal-tint);color:var(--teal);font-size:.78rem;font-weight:700}.pill.warn{background:var(--warn-tint);color:var(--warn)}
.pri-urgent{background:var(--bad-tint);color:var(--bad)}.pri-high{background:var(--warn-tint);color:var(--warn)}
.notice{padding:.8rem 1rem;border-radius:var(--r);background:var(--teal-tint);margin:0 0 1rem}.notice.warn{background:var(--warn-tint)}
.toasts{position:fixed;top:72px;right:1rem;z-index:80;display:grid;gap:.5rem;max-width:min(420px,calc(100vw - 2rem))}
.toast{display:flex;gap:.6rem;align-items:flex-start;padding:.8rem 1rem;border-radius:var(--r);background:#fff;box-shadow:var(--shadow);border-left:4px solid var(--ok);animation:slide .25s ease-out}
.toast-bad{border-left-color:var(--bad)}.toast-ok i{color:var(--ok)}.toast-bad i{color:var(--bad)}
.toast-x{margin-left:auto;background:none;border:0;font-size:1.3rem;line-height:1;cursor:pointer;color:var(--muted)}
@keyframes slide{from{transform:translateY(-8px);opacity:0}}

/* Top bar & footer */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.topbar-in{display:flex;align-items:center;gap:1.5rem;height:64px}
.brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none!important}
.brand-mark{width:34px;height:34px;flex:none;display:block}
.brand-word{font-weight:800;font-size:1.2rem;letter-spacing:-.02em}
.topnav{display:flex;gap:1.2rem}.topnav a{color:var(--ink-2);font-weight:600}.topnav a.on{color:var(--teal)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:.5rem}
@media (max-width:760px){.topnav{display:none}}
.menu{position:relative}.menu summary{list-style:none;cursor:pointer}.menu summary::-webkit-details-marker{display:none}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:700}.avatar.sm{width:32px;height:32px;font-size:.85rem}
.menu-pop{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:230px;padding:.6rem;display:grid;z-index:60}
.menu-pop strong{padding:.3rem .6rem 0}.menu-pop small{padding:0 .6rem .5rem;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:.3rem}
.menu-pop a,.menu-pop button{display:flex;gap:.6rem;align-items:center;padding:.55rem .6rem;border-radius:var(--r-sm);color:var(--ink);background:none;border:0;font:inherit;cursor:pointer;text-align:left;width:100%}
.menu-pop a:hover,.menu-pop button:hover{background:var(--mist);text-decoration:none}
.footer{background:#fff;border-top:1px solid var(--line);margin-top:3rem;padding:2.5rem 0 6rem}
.footer-in{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:1.5rem}.footer-in a{display:block;color:var(--ink-2);padding:.2rem 0}.footer h4{font-size:.95rem}
.footer-bottom{margin-top:2rem;font-size:.85rem}
@media (max-width:760px){.footer-in{grid-template-columns:1fr 1fr}}
.tabbar{display:none}
@media (max-width:760px){
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:55;background:#fff;border-top:1px solid var(--line);padding:.35rem 0 calc(.35rem + var(--safe-b))}
  .tabbar a{display:grid;justify-items:center;gap:.15rem;font-size:.72rem;color:var(--muted);text-decoration:none}.tabbar a i{font-size:1.15rem}.tabbar a.on{color:var(--teal);font-weight:700}
  body.site{padding-bottom:64px}
}
.install-bar{position:fixed;left:1rem;right:1rem;bottom:calc(76px + var(--safe-b));z-index:56;display:flex;gap:.6rem;align-items:center;background:var(--ink);color:#fff;padding:.6rem .8rem;border-radius:var(--r);box-shadow:var(--shadow);max-width:520px;margin:auto}
.install-bar .toast-x{color:#fff}

/* Hero & search box: the hero leads with the search itself */
.hero{background:linear-gradient(180deg,var(--teal) 0%,#0A4E4F 100%);color:#fff;padding:3rem 0 4.5rem;position:relative}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:40px;background:var(--mist);border-radius:40px 40px 0 0}
.hero-small{padding:2rem 0 4rem}.hero h1{font-weight:800;max-width:18ch}.hero-sub{max-width:56ch;opacity:.88;margin-bottom:1.6rem}
.hero .crumbs a{color:#CFE7E5}.hero .crumbs{color:#CFE7E5}
.hero-in{position:relative;z-index:1}
.searchbox{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr auto;gap:2px;background:var(--line);border-radius:var(--r-lg);overflow:visible;box-shadow:0 12px 40px rgba(0,0,0,.18);color:var(--ink)}
.sb-field{background:#fff;padding:.55rem .9rem;display:grid;position:relative;cursor:text}
.sb-field:first-child{border-radius:var(--r-lg) 0 0 var(--r-lg)}
.sb-label{font-size:.72rem;font-weight:700;text-transform:none;color:var(--muted)}
.sb-field input{border:0;padding:.1rem 0;min-height:32px;font-weight:600;outline:0}
.sb-guests summary{list-style:none;cursor:pointer;display:grid;font-weight:600}.sb-guests summary::-webkit-details-marker{display:none}
.guest-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:250px;background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:.6rem .9rem;z-index:30;border:1px solid var(--line)}
.stepper{display:grid;grid-template-columns:1fr 36px 44px 36px;align-items:center;gap:.3rem;padding:.35rem 0}
.stepper button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.1rem;cursor:pointer}
.stepper input{text-align:center;border:0;min-height:32px;padding:0;font-weight:700}
.sb-go{border-radius:0 var(--r-lg) var(--r-lg) 0;min-height:64px;padding:0 1.6rem;font-size:1rem}
.suggest{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:var(--r);box-shadow:var(--shadow);z-index:40;border:1px solid var(--line);overflow:hidden}
.suggest button{display:flex;gap:.6rem;width:100%;text-align:left;padding:.6rem .8rem;border:0;background:#fff;cursor:pointer;font:inherit}.suggest button:hover,.suggest button.on{background:var(--mist)}
.suggest small{color:var(--muted)}
@media (max-width:900px){
  .searchbox{grid-template-columns:1fr 1fr;border-radius:var(--r-lg)}
  .sb-where,.sb-guests{grid-column:1/-1}.sb-field:first-child{border-radius:var(--r-lg) var(--r-lg) 0 0}
  .sb-go{grid-column:1/-1;border-radius:0 0 var(--r-lg) var(--r-lg);min-height:52px}
}
.searchbox-compact{box-shadow:none;border:1px solid var(--line)}
.search-top{background:#fff;border-bottom:1px solid var(--line);padding:.8rem 0}

/* Home sections */
.rail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.4rem}
.banner{flex:0 0 min(360px,86vw);scroll-snap-align:start;border-radius:var(--r-lg);overflow:hidden;background:var(--teal);color:#fff;position:relative;min-height:150px;display:flex;align-items:flex-end;text-decoration:none!important}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6}.banner div{position:relative;padding:1rem;display:grid}
.dest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.dest{position:relative;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;background:linear-gradient(160deg,var(--teal-2),var(--ink));color:#fff;text-decoration:none!important}
.dest::before,.hcard-media::before,.placeholder-media::before,.trip-media::before{content:attr(data-initial);position:absolute;inset:0;display:grid;place-items:center;font-size:4rem;font-weight:800;opacity:.18;color:#fff}
.dest img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dest-label{position:absolute;inset:auto 0 0 0;padding:1rem;background:linear-gradient(transparent,rgba(0,0,0,.7));display:grid}.dest-label span{font-size:.85rem;opacity:.9}
@media (max-width:760px){.dest-grid{grid-template-columns:repeat(2,1fr)}}
.offer-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.offer{background:#fff;border-radius:var(--r-lg);padding:1.1rem;border:1px dashed #E7C48A}
.offer-amt{font-size:1.5rem;font-weight:800;color:var(--teal)}
.code{border:1px solid var(--gold);background:var(--gold-tint);color:var(--gold-ink);border-radius:var(--r-sm);padding:.35rem .7rem;font:700 .9rem var(--font);letter-spacing:.06em;cursor:pointer}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.1rem}
.hcard{background:#fff;border-radius:var(--r-lg);overflow:hidden;color:var(--ink);text-decoration:none!important;box-shadow:var(--shadow);display:flex;flex-direction:column}
.hcard-media{position:relative;aspect-ratio:4/3;background:linear-gradient(150deg,var(--teal-2),#0A3D3E)}
.hcard-media img{width:100%;height:100%;object-fit:cover;position:relative}
.hcard-score{position:absolute;top:.6rem;left:.6rem;background:var(--teal);color:#fff;font-weight:800;padding:.2rem .5rem;border-radius:8px;font-size:.9rem}
.hcard-body{padding:.9rem 1rem 1rem;display:grid;gap:.2rem}.hcard-body h3{margin:0;font-size:1.05rem}
.hcard-kicker{font-size:.8rem;color:var(--muted);margin:0}.stars{color:var(--gold);letter-spacing:1px}
.hcard-price{margin:.4rem 0 0}.hcard-price strong{font-size:1.15rem}
.promise{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.promise>div{background:#fff;border-radius:var(--r-lg);padding:1.3rem}.promise i{color:var(--teal);font-size:1.4rem;margin-bottom:.6rem}
@media (max-width:760px){.promise{grid-template-columns:1fr}}

/* Search results */
.search-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;padding-top:1.2rem;padding-bottom:2rem}
.filters form{background:#fff;border-radius:var(--r-lg);padding:1.1rem;position:sticky;top:80px;max-height:calc(100vh - 100px);overflow:auto}
.filters-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.8rem}.filters-head h2{margin:0;font-size:1.1rem;margin-right:auto}
.results-bar{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem;flex-wrap:wrap}
.results-tools{display:flex;gap:.5rem;align-items:center}.sort select{min-height:38px;padding:.3rem .6rem}
.result-list{display:grid;gap:1rem}
.rcard{display:grid;grid-template-columns:260px 1fr;background:#fff;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);color:var(--ink);text-decoration:none!important;min-height:190px}
.rcard-media{position:relative;background:linear-gradient(150deg,var(--teal-2),#0A3D3E)}.rcard-media img{width:100%;height:100%;object-fit:cover}
.rcard-body{padding:1rem 1.1rem;display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem}
.rcard-body h3{margin:0}.rcard-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.tag{font-size:.78rem;padding:.15rem .5rem;border-radius:6px;background:var(--mist);color:var(--ink-2)}.tag.ok{background:var(--ok-tint);color:var(--ok);font-weight:600}
.rcard-price{text-align:right;align-self:end}.rcard-price strong{font-size:1.35rem;display:block}
.rcard-score{display:inline-flex;align-items:center;gap:.4rem}.rcard-score b{background:var(--teal);color:#fff;padding:.15rem .45rem;border-radius:7px}
.rcard.soldout{opacity:.6}
@media (max-width:900px){
  .search-layout{grid-template-columns:1fr}
  .filters{position:fixed;inset:0;z-index:70;background:rgba(20,33,43,.45);display:none}
  .filters.open{display:block}
  .filters form{position:absolute;left:0;right:0;bottom:0;top:auto;max-height:86vh;border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:calc(1rem + var(--safe-b));animation:up .25s ease-out}
  .rcard{grid-template-columns:1fr}.rcard-media{aspect-ratio:16/9}
}
@keyframes up{from{transform:translateY(40px);opacity:.6}}
.skeleton{pointer-events:none}.skeleton .sk-img{background:#E6EBEF;min-height:180px}
.sk-lines{padding:1rem;display:grid;gap:.6rem}.sk-lines span{height:14px;border-radius:6px;background:linear-gradient(90deg,#E6EBEF 0,#F2F5F7 50%,#E6EBEF 100%);background-size:200% 100%;animation:sh 1.2s infinite}
.sk-lines span:nth-child(2){width:70%}.sk-lines span:nth-child(3){width:40%}
@keyframes sh{to{background-position:-200% 0}}
.empty-state{text-align:center;padding:2.5rem 1rem;background:#fff;border-radius:var(--r-lg)}.empty-state.slim{padding:1.2rem}
.empty-icon{width:64px;height:64px;border-radius:50%;background:var(--teal-tint);color:var(--teal);display:grid;place-items:center;margin:0 auto 1rem;font-size:1.5rem}
.pager{display:flex;justify-content:center;align-items:center;gap:1rem;margin:1.2rem 0}.pager a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;background:#fff}

/* Hotel page */
.crumbs{font-size:.85rem;color:var(--muted);margin:1rem 0}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:200px 200px;gap:6px;border-radius:var(--r-lg);overflow:hidden}
.gallery>*{border:0;padding:0;background:#DCE3E8;cursor:zoom-in;position:relative;overflow:hidden}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery-main{grid-row:span 2}.gallery-few{grid-template-columns:1fr;grid-template-rows:380px}.gallery-few .gallery-tile{display:none}
.placeholder-media{background:linear-gradient(150deg,var(--teal-2),#0A3D3E);min-height:300px}
.gallery .more{position:absolute;inset:0;background:rgba(20,33,43,.55);color:#fff;display:grid;place-items:center;font-weight:700}
@media (max-width:760px){.gallery{grid-template-columns:1fr;grid-template-rows:260px;margin:0 -1rem;border-radius:0}.gallery-tile{display:none}}
.lightbox{border:0;padding:0;background:rgba(10,16,20,.94);width:100vw;height:100vh;max-width:none;max-height:none}
.lightbox[open]{display:grid;place-items:center}.lightbox img{max-width:92vw;max-height:84vh;object-fit:contain}
.lb-close,.lb-prev,.lb-next{position:fixed}.lb-close{top:1rem;right:1rem}.lb-prev{left:1rem;top:50%}.lb-next{right:1rem;top:50%}
.hotel-grid{display:grid;grid-template-columns:1fr 330px;gap:2rem;margin-top:1.5rem}
.hotel-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.head-actions{display:flex;gap:.5rem;align-items:center}
.heart.on{color:var(--bad)}
.score{display:flex;gap:.5rem;align-items:center;color:var(--ink);text-decoration:none!important}.score strong{background:var(--teal);color:#fff;padding:.4rem .55rem;border-radius:10px 10px 10px 0;font-size:1.1rem}.score span{display:grid;font-weight:700;font-size:.9rem}.score small{font-weight:400;color:var(--muted)}
.anchor-tabs{position:sticky;top:64px;z-index:20;background:var(--mist);display:flex;gap:1.2rem;overflow-x:auto;padding:.7rem 0;border-bottom:1px solid var(--line);margin:1rem 0}
.anchor-tabs a{color:var(--ink-2);font-weight:600;white-space:nowrap}
.block{padding:1.2rem 0 1.6rem;border-bottom:1px solid var(--line);scroll-margin-top:120px}
.date-bar{display:grid;grid-template-columns:1.3fr 1.3fr .8fr .8fr .8fr auto;gap:.5rem;align-items:end;background:#fff;padding:.8rem;border-radius:var(--r-lg);margin-bottom:1rem}
.date-bar label{display:grid;font-size:.78rem;font-weight:700;color:var(--muted);gap:.2rem}
@media (max-width:760px){.date-bar{grid-template-columns:1fr 1fr 1fr}.date-bar label:nth-child(1),.date-bar label:nth-child(2){grid-column:span 1}.date-bar button{grid-column:1/-1}}
.room-list{display:grid;gap:1rem}
.room{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.room-head{padding:1rem 1.1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.room-head h3{margin:0}.room-meta{display:flex;flex-wrap:wrap;gap:.8rem;font-size:.86rem;color:var(--muted)}
.scarcity{color:var(--bad);font-weight:700;font-size:.85rem}
.plan{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}.plan:last-child{border-bottom:0}
.plan ul{list-style:none;margin:.3rem 0 0;padding:0;display:grid;gap:.15rem;font-size:.9rem}.plan li i{width:1.2rem;color:var(--ok)}.plan li.no i{color:var(--muted)}
.plan-price{text-align:right;display:grid;justify-items:end;align-content:center;gap:.2rem}
.plan-price strong{font-size:1.3rem}.strike{text-decoration:line-through;color:var(--muted);font-size:.9rem}
.plan-off{color:var(--muted);font-size:.9rem}
@media (max-width:560px){.plan{grid-template-columns:1fr}.plan-price{justify-items:start;text-align:left}}
.prose{max-width:70ch}.prose p{margin-bottom:1em}
.facts{display:flex;gap:1.2rem;list-style:none;padding:0;color:var(--ink-2)}
.amenity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;list-style:none;padding:0}.amenity-grid i{color:var(--teal);width:1.4rem}
.policies{display:grid;grid-template-columns:160px 1fr;gap:.5rem 1rem}.policies dt{font-weight:700}.policies dd{margin:0}
@media (max-width:560px){.policies{grid-template-columns:1fr}}
.review-summary{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;margin-bottom:1rem}
.big-score strong{font-size:2.6rem;font-weight:800;color:var(--teal);display:block;line-height:1}
.bars{display:grid;gap:.4rem}.bar{display:grid;grid-template-columns:100px 1fr 34px;gap:.6rem;align-items:center;font-size:.9rem}
.track{height:8px;background:var(--line);border-radius:4px;overflow:hidden}.track span{display:block;height:100%;background:var(--teal)}
@media (max-width:560px){.review-summary{grid-template-columns:1fr}}
.reviews{display:grid;gap:1rem}
.review{background:#fff;border-radius:var(--r);padding:1rem;margin-bottom:.8rem}.review header{display:flex;gap:.6rem;align-items:center;margin-bottom:.5rem;flex-wrap:wrap}.review header div{display:grid}.review header .pill{margin-left:auto}
.reply{margin:.6rem 0 0;padding:.6rem .9rem;border-left:3px solid var(--teal);background:var(--mist);border-radius:0 var(--r-sm) var(--r-sm) 0}
.map-card{display:flex;gap:.6rem;align-items:center;justify-content:center;height:160px;border-radius:var(--r-lg);background:repeating-linear-gradient(45deg,var(--teal-tint),var(--teal-tint) 12px,#fff 12px,#fff 24px);font-weight:700;font-size:1.05rem}
.nearby{padding-left:1.1rem}
.hotel-side .side-card{position:sticky;top:130px;background:#fff;border-radius:var(--r-lg);padding:1.2rem;box-shadow:var(--shadow);display:grid;gap:.4rem}
.side-from strong{font-size:1.4rem}
@media (max-width:980px){.hotel-grid{grid-template-columns:1fr}.hotel-side{display:none}}
.sticky-cta{position:fixed;left:0;right:0;bottom:calc(60px + var(--safe-b));z-index:54;background:#fff;border-top:1px solid var(--line);padding:.6rem 1rem;justify-content:space-between;align-items:center;gap:1rem}
.sticky-cta strong{font-size:1.15rem}

/* Bottom sheet & modal */
.sheet,.modal{position:fixed;inset:0;z-index:90;background:rgba(20,33,43,.5);display:grid;align-items:end;justify-items:center}
.sheet[hidden],.modal[hidden]{display:none}
.sheet-card{background:#fff;width:min(640px,100%);max-height:92vh;overflow:auto;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:1.4rem 1.2rem calc(1.2rem + var(--safe-b));position:relative;animation:up .25s ease-out}
@media (min-width:761px){.sheet{align-items:center}.sheet-card{border-radius:var(--r-lg)}}
.sheet-x{position:absolute;top:.8rem;right:.8rem}
.modal{align-items:center}.modal-card{background:#fff;border-radius:var(--r-lg);padding:1.4rem;width:min(440px,92vw)}
.coupon-row{display:flex;gap:.5rem;margin:.8rem 0 0}
.breakdown{margin:1rem 0;border-top:1px solid var(--line);padding-top:.6rem}
.price-table{width:100%;border-collapse:collapse;margin:.6rem 0}.price-table td{padding:.35rem 0}.price-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.price-table .minus td{color:var(--ok)}.price-table .total td{border-top:1px solid var(--line);padding-top:.7rem;font-weight:800;font-size:1.15rem}
.saving{color:var(--ok);font-weight:700}
.policy-note{font-size:.9rem;padding:.6rem .8rem;border-radius:var(--r-sm);background:var(--mist)}.policy-note.ok{background:var(--ok-tint)}.policy-note.warn{background:var(--warn-tint)}

/* Checkout & trips */
.steps{display:flex;list-style:none;padding:0;margin:0 0 1.2rem;gap:.4rem;counter-reset:s;font-size:.85rem}
.steps li{flex:1;padding-top:.6rem;border-top:3px solid var(--line);color:var(--muted)}.steps li.done{border-color:var(--teal);color:var(--teal)}.steps li.now{border-color:var(--gold);color:var(--ink);font-weight:700}
.hold-timer{background:var(--gold-tint);border-radius:var(--r);padding:.7rem 1rem;margin-bottom:1rem;font-weight:600}.hold-timer.urgent{background:var(--bad-tint);color:var(--bad)}
.checkout-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width:760px){.checkout-grid{grid-template-columns:1fr}}
.card{background:#fff;border-radius:var(--r-lg);padding:1.2rem;margin-bottom:1rem;box-shadow:var(--shadow)}
.card summary{cursor:pointer}
.stay-dates{display:grid;grid-template-columns:1fr auto 1fr;gap:.8rem;align-items:center;background:var(--mist);border-radius:var(--r);padding:.8rem;margin:.8rem 0}
.stay-dates div{display:grid}.stay-dates small{color:var(--muted)}.stay-dates .nights{font-size:.8rem;background:#fff;border-radius:999px;padding:.2rem .6rem;color:var(--ink-2)}
.paymethods{display:grid;gap:.5rem;margin:1rem 0}.paymethod{display:flex;gap:.6rem;align-items:center;border:1px solid var(--line);border-radius:var(--r);padding:.7rem .9rem;cursor:pointer}
.paymethod:has(input:checked){border-color:var(--teal);background:var(--teal-tint)}
.confirm-hero{text-align:center;padding:1.5rem;background:var(--ok-tint);border-radius:var(--r-lg);margin-bottom:1rem}.confirm-hero i{font-size:2.6rem;color:var(--ok);margin-bottom:.4rem;animation:pop .4s ease-out}
@keyframes pop{from{transform:scale(.5);opacity:0}}
.danger-zone summary{color:var(--bad)}
.trip-list{display:grid;gap:.8rem;margin-bottom:1.5rem}
.trip{display:grid;grid-template-columns:120px 1fr;background:#fff;border-radius:var(--r-lg);overflow:hidden;color:var(--ink);text-decoration:none!important;box-shadow:var(--shadow)}
.trip-media{position:relative;background:linear-gradient(150deg,var(--teal-2),#0A3D3E);min-height:110px}.trip-media img{width:100%;height:100%;object-fit:cover;position:relative}
.trip-body{padding:.8rem 1rem}.trip-body h3{margin:0}
.rating-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem}
.stars-input{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:.15rem}.stars-input legend{width:100%;font-size:.9rem}
.stars-input input{position:absolute;opacity:0}.stars-input label{font-size:1.6rem;color:#CBD3DA;cursor:pointer;line-height:1}
.stars-input input:checked~label,.stars-input label:hover,.stars-input label:hover~label{color:var(--gold)}
.stars-input input:focus-visible+label{outline:2px solid var(--teal)}
.list{display:grid;gap:.5rem}
.list-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .9rem;background:#fff;border-radius:var(--r);color:var(--ink);text-decoration:none!important;border:1px solid var(--line);margin-bottom:.4rem}
.list-row span:first-child{display:grid}.list-row i.ok{color:var(--ok)}
.notif-list{list-style:none;padding:0;display:grid;gap:.5rem}.notif-list li{background:#fff;border-radius:var(--r);padding:.8rem 1rem}.notif-list li.unread{border-left:4px solid var(--gold)}.notif-list a{color:var(--ink);text-decoration:none}
.thread{display:grid;gap:.7rem;margin:1rem 0}.msg{background:#fff;border-radius:var(--r);padding:.8rem 1rem;max-width:85%}.msg.staff{background:var(--teal-tint);justify-self:start}.msg.me{justify-self:end}
.faq summary{list-style:none}
.auth-wrap{min-height:70vh;display:grid;place-items:center;padding:2rem 1rem}
.auth-card{background:#fff;border-radius:var(--r-lg);padding:2rem;width:min(460px,100%);box-shadow:var(--shadow);display:grid;gap:1rem}
.auth-alt{display:flex;justify-content:space-between;font-size:.9rem;flex-wrap:wrap;gap:.5rem}
.otp-input{font-size:1.5rem;letter-spacing:.5em;text-align:center;font-weight:700}

/* Dashboards (partner & admin) */
body.dash{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.sidebar{background:var(--ink);color:#CBD5DD;padding:1rem .8rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar .brand{color:#fff;padding:.3rem .5rem}.side-sub{font-size:.85rem;color:#93A3AF;padding:0 .5rem;margin:.3rem 0 1rem}
.side-status{padding:0 .5rem}
.sidebar nav{display:grid;gap:2px}.sidebar nav a{display:flex;gap:.7rem;align-items:center;padding:.55rem .6rem;border-radius:var(--r-sm);color:#CBD5DD;font-weight:500}
.sidebar nav a i{width:1.1rem;text-align:center;color:#7F919E}
.sidebar nav a:hover{background:rgba(255,255,255,.06);text-decoration:none}.sidebar nav a.on{background:var(--teal);color:#fff}.sidebar nav a.on i{color:var(--gold)}
.sidebar hr{border:0;border-top:1px solid rgba(255,255,255,.08);margin:.6rem 0}
.switcher{padding:0 .4rem .8rem}.switcher select{background:#22323E;color:#fff;border-color:#33434F}
.dash-main{min-width:0}
.dash-top{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:1rem;padding:.6rem 1.2rem;height:62px}
.dash-title{font-size:1.2rem;margin:0}
.dash-search{margin-left:auto;display:flex;align-items:center;gap:.5rem;background:var(--mist);border-radius:999px;padding:0 .9rem;width:min(380px,40vw)}
.dash-search input{border:0;background:transparent;min-height:38px}
.dash-body{padding:1.2rem;display:grid;gap:1rem;align-content:start}
.scrim{display:none}
@media (max-width:900px){
  body.dash{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:80;transform:translateX(-100%);transition:transform .2s}
  .nav-toggle:checked~.sidebar{transform:none}
  .nav-toggle:checked~.scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:70}
  .dash-search{display:none}.dash-top .menu{margin-left:auto}
}
.panel{background:#fff;border-radius:var(--r-lg);padding:1.1rem 1.2rem;box-shadow:var(--shadow);min-width:0}
.panel h2{font-size:1.05rem}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;list-style:none}.panel-head h2{margin:0}
details.panel>summary{cursor:pointer}details.panel>summary::-webkit-details-marker{display:none}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.8rem}
.kpi{background:#fff;border-radius:var(--r-lg);padding:.9rem 1rem;display:grid;gap:.15rem;box-shadow:var(--shadow)}
.kpi span{font-size:.82rem;color:var(--muted);font-weight:600}.kpi strong{font-size:1.45rem;font-variant-numeric:tabular-nums}.kpi small{color:var(--muted)}
.attention{display:flex;flex-wrap:wrap;gap:.6rem}
.attn{display:flex;gap:.5rem;align-items:center;background:var(--gold-tint);color:var(--gold-ink);border-radius:999px;padding:.45rem .9rem;font-size:.9rem;text-decoration:none!important}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{width:100%;border-collapse:collapse;font-size:.92rem}
.table th{text-align:left;font-size:.78rem;color:var(--muted);font-weight:700;padding:.55rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}
.table td{padding:.6rem;border-bottom:1px solid var(--line);vertical-align:top}
.table tr:hover td{background:#FAFBFC}
.table .actions{white-space:nowrap}.table .actions form{display:inline-block;margin-left:.6rem}
code.clip{font-size:.78rem;color:var(--ink-2);word-break:break-all;white-space:normal}
.tabs{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.tabs a{padding:.4rem .9rem;border-radius:999px;background:#fff;color:var(--ink-2);font-weight:600}.tabs a.on{background:var(--teal);color:#fff}
.dl{display:grid;grid-template-columns:130px 1fr;gap:.4rem 1rem;margin:0 0 1rem}.dl dt{color:var(--muted);font-size:.88rem}.dl dd{margin:0}
.timeline{list-style:none;padding:0;margin:0;border-left:2px solid var(--line)}.timeline li{padding:0 0 .6rem .9rem;position:relative}.timeline li::before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--teal)}
.spark{display:flex;align-items:flex-end;gap:3px;height:160px;padding-top:.5rem}
.spark-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:4px}
.spark-col span{display:block;width:100%;background:var(--teal);border-radius:4px 4px 0 0;min-height:2px}.spark-col:hover span{background:var(--gold)}
.spark-col small{font-size:.65rem;color:var(--muted)}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;margin-bottom:1rem}
.photo-grid figure{margin:0;background:var(--mist);border-radius:var(--r);overflow:hidden;border:2px solid transparent}.photo-grid figure.featured{border-color:var(--gold)}
.photo-grid img{aspect-ratio:4/3;object-fit:cover;width:100%}.photo-grid figcaption{display:flex;justify-content:space-between;padding:.3rem .5rem}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.2rem .8rem;margin-bottom:1rem}
.room-chips,.room-board{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
.room-chip{padding:.3rem .6rem;border-radius:8px;font-weight:700;font-size:.85rem;background:var(--ok-tint);color:var(--ok)}
.room-tile{width:150px;padding:.6rem;border-radius:var(--r);display:grid;gap:.3rem;background:var(--ok-tint);border:1px solid transparent}
.room-tile select{min-height:34px;padding:.2rem .4rem;font-size:.85rem}
.st-occupied{background:var(--teal-tint);color:var(--teal)}.st-dirty{background:var(--warn-tint);color:var(--warn)}.st-cleaning{background:#FFF8E7}.st-inspected{background:#E8F0FE}
.st-maintenance,.st-out_of_order{background:var(--bad-tint);color:var(--bad)}
.cal-wrap{overflow-x:auto;margin:.8rem 0;border:1px solid var(--line);border-radius:var(--r)}
.cal{border-collapse:collapse;font-size:.82rem;min-width:100%}
.cal th,.cal td{padding:.4rem .5rem;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}
.cal tbody th{text-align:left;position:sticky;left:0;background:#fff;z-index:1;font-weight:600}
.cal thead th{background:var(--mist);font-weight:600}.cal .wknd{background:#FFF6E6}
.cal td.full{background:var(--bad-tint);color:var(--bad)}.cal td.low{background:var(--warn-tint)}.cal td.closed{background:repeating-linear-gradient(45deg,#F4F6F8,#F4F6F8 4px,#E6EBEF 4px,#E6EBEF 8px);color:var(--muted)}
.price-row td{color:var(--teal);font-weight:600}

/* Voucher / print */
.print-body{background:#fff}
.voucher{max-width:820px;margin:1.5rem auto;padding:1.5rem;display:grid;gap:1.2rem}
.v-head{display:flex;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:1rem}.v-ref{font-size:1.6rem;font-weight:800;letter-spacing:.06em;margin:0}
.v-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.v-grid h3{font-size:.85rem;color:var(--muted);margin-bottom:.3rem}
.v-table{width:100%;border-collapse:collapse}.v-table th,.v-table td{border-bottom:1px solid var(--line);padding:.5rem;text-align:left}
@media print{
  .no-print,.topbar,.tabbar,.footer,.sidebar,.dash-top,.toasts,.install-bar,form .btn,.results-tools{display:none!important}
  body,body.dash{background:#fff;display:block}.panel,.card{box-shadow:none;border:1px solid var(--line)}
  .voucher{margin:0;padding:0}a{color:inherit}
}

/* ---- Polish layer ---- */
.hero{background:radial-gradient(1200px 500px at 85% -10%,rgba(242,169,59,.28),transparent 60%),radial-gradient(900px 400px at -10% 110%,rgba(255,255,255,.08),transparent 60%),linear-gradient(180deg,var(--teal) 0%,#0A4E4F 100%)}
.hero h1{letter-spacing:-.025em}
.trust-row{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;list-style:none;padding:0;margin:1.1rem 0 0;font-size:.9rem;color:#D8ECEA}
.trust-row i{color:var(--gold);margin-right:.35rem}
.hcard,.rcard,.dest,.trip,.offer{transition:transform .18s ease,box-shadow .18s ease}
.hcard:hover,.rcard:hover,.trip:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(20,33,43,.06),0 16px 36px rgba(20,33,43,.12)}
.dest:hover{transform:translateY(-3px)}
.dest img,.hcard-media img,.rcard-media img{transition:transform .5s ease}
.dest:hover img,.hcard:hover .hcard-media img,.rcard:hover .rcard-media img{transform:scale(1.04)}
.hcard-media,.rcard-media,.dest{overflow:hidden}
.section-head h2{font-size:clamp(1.25rem,2.4vw,1.6rem);letter-spacing:-.015em}
.btn-cta{box-shadow:0 6px 16px rgba(242,169,59,.35)}
.btn-primary{box-shadow:0 4px 12px rgba(11,93,94,.22)}
.recovery{border:2px dashed var(--gold);background:var(--gold-tint)}
.code-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;list-style:none;padding:0;font:600 1rem ui-monospace,SFMono-Regular,Menlo,monospace}
.code-grid li{background:#fff;border-radius:8px;padding:.45rem .7rem;text-align:center}
.setup-steps{padding-left:1.2rem;display:grid;gap:1rem}
.qr{width:200px;height:200px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;margin:.6rem 0;display:grid;place-items:center;color:var(--muted);font-size:.8rem;text-align:center}
.qr img,.qr canvas{width:184px!important;height:184px!important}
code.key{font-size:1rem;letter-spacing:.08em;background:var(--mist);padding:.15rem .4rem;border-radius:6px}
@media print{.recovery{border:1px solid #000}}
