
:root{
  --blue:#0d57c7;--blue-dark:#083f9d;--blue-soft:#eaf4ff;
  --ink:#172033;--muted:#667085;--line:#dce7f5;--panel:#fff;
  --yellow:#ffd052;--pink:#ff6ca8;--cyan:#67dcff;
  --shadow:0 18px 55px rgba(17,78,150,.10)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f7fbff;color:var(--ink);font-family:Inter,Arial,sans-serif}
button,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
.announce{background:#07377f;color:#fff;text-align:center;padding:9px 12px;font-size:13px;font-weight:800}

.site-header{
  position:sticky;top:0;z-index:30;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);
  min-height:82px;display:grid;grid-template-columns:minmax(210px,280px) minmax(260px,1fr) auto;
  align-items:center;gap:22px;padding:10px clamp(16px,4vw,58px);border-bottom:1px solid var(--line)
}
.brand{display:flex;align-items:center;min-width:0}
.brand img{display:block;width:100%;max-width:260px;height:auto}
.searchbar{display:flex;width:100%;max-width:680px;justify-self:center}
.searchbar input{width:100%;min-width:0;border:1px solid var(--line);border-right:0;border-radius:14px 0 0 14px;padding:13px 14px;background:#f9fcff;color:var(--ink);outline:0}
.searchbar input:focus{border-color:#9fc4f3;box-shadow:0 0 0 3px rgba(13,87,199,.08)}
.searchbar button{border:0;background:var(--blue);color:#fff;border-radius:0 14px 14px 0;padding:0 20px;font-weight:900}
.header-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}
.account-btn,.reserve-btn{border:1px solid var(--line);border-radius:12px;padding:11px 14px;text-decoration:none;font-weight:900;cursor:pointer}
.account-btn{background:#fff;color:var(--ink)}
.reserve-btn{background:var(--blue);color:#fff;border-color:var(--blue)}
.reserve-btn span{display:inline-grid;place-items:center;min-width:22px;height:22px;background:#fff;color:var(--blue);border-radius:999px;margin-left:4px;padding:0 6px}

.page{width:min(1240px,92vw);margin:0 auto}
.hero{
  margin:30px 0 28px;border-radius:30px;min-height:390px;overflow:hidden;position:relative;
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);
  background:linear-gradient(135deg,#135fcf 0%,#0b49af 58%,#083b8d 100%);
  box-shadow:var(--shadow)
}
.hero-copy{position:relative;z-index:4;padding:56px 38px 52px 48px;align-self:center}
.hero-copy h1{max-width:720px;margin:9px 0 18px;color:#fff;font-size:clamp(38px,5vw,66px);line-height:1.02;letter-spacing:-1.5px}
.hero-copy p{max-width:630px;margin:0;color:#deebff;font-size:18px;line-height:1.6}
.eyebrow{font-size:12px;font-weight:950;letter-spacing:2px;color:var(--yellow)}
.eyebrow.blue{color:var(--blue)}
.hero-actions{display:flex;align-items:center;gap:14px;margin-top:26px}
.primary{border:0;border-radius:13px;background:linear-gradient(135deg,var(--yellow),#ffb62e);color:#49360b;padding:13px 18px;font-weight:950;cursor:pointer}
.secondary-link{color:#fff;text-decoration:none;font-weight:900}

.hero-art{
  position:relative;z-index:2;min-height:390px;
  background:
    radial-gradient(circle at 72% 28%,rgba(255,255,255,.10),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0))
}
.hero-art:before{
  content:"";position:absolute;inset:0 0 0 0;
  background:linear-gradient(90deg,rgba(9,66,155,.0),rgba(5,46,116,.22));
  pointer-events:none
}
.sun{position:absolute;width:110px;height:110px;border-radius:50%;background:rgba(255,208,82,.18);right:38px;top:28px}
.balloon{position:absolute;width:92px;height:118px;border-radius:50% 50% 48% 48%;filter:drop-shadow(0 15px 20px rgba(0,0,0,.16))}
.balloon:after{content:"";position:absolute;left:50%;top:100%;height:122px;border-left:2px solid rgba(255,255,255,.78)}
.balloon-1{left:35px;top:38px;background:var(--yellow);transform:rotate(-7deg)}
.balloon-2{left:134px;top:82px;background:var(--pink);transform:rotate(7deg)}
.balloon-3{left:234px;top:32px;background:var(--cyan);transform:rotate(10deg)}
.cloud{position:absolute;height:40px;border-radius:999px;background:rgba(255,255,255,.16)}
.cloud-1{width:125px;right:18px;bottom:82px}
.cloud-2{width:92px;left:20px;bottom:40px}

.catalog-tools{margin-top:8px}
.section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}
.section-title h2{font-size:30px;margin:5px 0}
.result-count{font-size:13px;color:var(--muted)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.chip{border:1px solid var(--line);background:#fff;color:#344054;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}
.chip.active{background:#ddecff;color:#0a4aa8;border-color:#aacdf7}

.catalog-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;align-items:start}
.date-card{position:sticky;top:104px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 10px 30px rgba(17,78,150,.06)}
.date-card h3{margin-top:0}
.date-card label{display:block;font-size:12px;font-weight:900;margin:12px 0}
.date-card input{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfdff}
.date-card small,.small-muted{color:var(--muted);font-size:12px;line-height:1.45}
.catalog-area{min-width:0}
.api-status{background:#fff4e5;color:#8a4b08;border:1px solid #ffd29a;border-radius:14px;padding:12px 14px;margin-bottom:14px}
.hidden{display:none!important}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:60px}
.loading-card{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;text-align:center;color:var(--muted)}
.card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:19px;overflow:hidden;box-shadow:0 12px 32px rgba(17,78,150,.06);display:flex;flex-direction:column}
.card-media{aspect-ratio:4/3;background:linear-gradient(145deg,#e7f3ff,#c9e5ff);display:grid;place-items:center;overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover;display:block}
.placeholder{font-size:52px}
.card-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body small{color:#0a55bd;font-weight:900}
.card-body h3{font-size:19px;line-height:1.2;margin:0;word-break:break-word}
.card-body p{margin:0;color:var(--muted);font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.price{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:auto}
.price strong{font-size:22px;color:#093f91}.price span{font-size:11px;color:var(--muted)}
.card-actions{display:flex;gap:8px;margin-top:4px}
.card-actions button{flex:1;border:0;border-radius:10px;padding:10px;font-weight:900;cursor:pointer}
.details{background:#edf5ff;color:#0a4aa8}.add{background:var(--blue);color:#fff}

.drawer-backdrop,.modal-backdrop{position:fixed;inset:0;background:rgba(5,20,44,.40);opacity:0;pointer-events:none;transition:.2s;z-index:50}
.drawer-backdrop.show,.modal-backdrop.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;z-index:60;top:0;right:-480px;bottom:0;width:min(460px,96vw);background:#fff;padding:22px;box-shadow:-24px 0 60px rgba(0,0,0,.13);overflow:auto;transition:.24s}
.drawer.show{right:0}
.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head h2{margin:2px 0}
.icon-btn{width:40px;height:40px;border:0;border-radius:50%;background:#edf5ff;color:#184276;font-size:26px;cursor:pointer}
.date-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.date-row label{font-size:12px;font-weight:900}.date-row input{width:100%;margin-top:5px;border:1px solid var(--line);border-radius:10px;padding:10px}
.cart-items{margin-top:10px}
.cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:13px 0;border-bottom:1px solid var(--line)}
.qty{display:flex;align-items:center;gap:6px}.qty button{width:28px;height:28px;border:1px solid var(--line);background:#fff;border-radius:8px}
.coupon-row{display:flex;margin-top:16px}.coupon-row input{min-width:0;flex:1;border:1px solid var(--line);border-radius:10px 0 0 10px;padding:11px}.coupon-row button{border:0;background:#ddecff;color:#0a4aa8;border-radius:0 10px 10px 0;font-weight:900}
.totals{margin:16px 0}.totals>div{display:flex;justify-content:space-between;padding:7px 0}.grand{border-top:1px solid var(--line);font-size:19px;margin-top:7px;padding-top:13px!important}.full{width:100%}

.modal-backdrop{display:grid;place-items:center;padding:18px}
.modal{background:#fff;border-radius:20px;width:min(760px,96vw);max-height:90vh;overflow:auto;padding:22px;box-shadow:0 25px 75px rgba(0,0,0,.17)}
.modal h2{margin-top:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-grid label{font-size:12px;font-weight:900}
.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:10px;padding:10px}
.form-grid .wide{grid-column:1/-1}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.ghost{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font-weight:900;cursor:pointer}

footer{margin-top:60px;background:#07377f;color:#dceaff;text-align:center;padding:34px}
footer img{width:280px;max-width:82vw}

@media(max-width:1050px){
  .site-header{grid-template-columns:230px minmax(200px,1fr) auto;gap:12px}
  .hero{grid-template-columns:minmax(0,1fr) 340px}
  .hero-copy{padding-left:36px;padding-right:24px}
  .balloon-3{left:215px}
}
@media(max-width:840px){
  .site-header{position:relative;grid-template-columns:1fr auto;padding:10px 16px}
  .brand img{max-width:215px}
  .searchbar{grid-column:1/-1;grid-row:2}
  .header-actions{grid-column:2;grid-row:1}
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-copy{padding:38px 28px 34px}
  .hero-copy h1{font-size:clamp(36px,9vw,54px)}
  .hero-art{display:none}
  .catalog-layout{grid-template-columns:1fr}
  .date-card{position:static}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .announce{font-size:12px}
  .site-header{gap:8px}
  .brand img{max-width:175px}
  .account-btn{display:none}
  .reserve-btn{padding:10px 12px}
  .searchbar input{font-size:14px}
  .page{width:min(94vw,1240px)}
  .hero{margin-top:16px;border-radius:22px}
  .hero-copy{padding:30px 22px}
  .hero-copy h1{font-size:38px;line-height:1.04}
  .hero-copy p{font-size:16px}
  .hero-actions{align-items:flex-start;flex-direction:column}
  .grid{grid-template-columns:1fr}
  .date-row,.form-grid{grid-template-columns:1fr}
}
