*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f1e7;color:#111;font-family:"DM Sans",sans-serif}a{color:inherit}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:16px 5vw;background:#f6f1e7e8;backdrop-filter:blur(14px);border-bottom:1px solid #0001}.brand{display:flex;align-items:center;gap:10px;font-weight:700;text-decoration:none}.clock{width:34px;height:34px;border:2px solid #b58b3f;border-radius:50%;position:relative;display:inline-block}.clock.small{width:28px;height:28px}.clock i,.clock b{position:absolute;left:50%;top:50%;width:2px;background:#b58b3f;transform-origin:50% 0}.clock i{height:9px;transform:rotate(225deg)}.clock b{height:12px;transform:rotate(180deg)}nav{display:flex;gap:22px;align-items:center}nav a{text-decoration:none;font-size:.9rem}.login{border:1px solid #111;border-radius:999px;padding:9px 13px}.hero{padding:9vw 6vw 70px;min-height:70vh;background:radial-gradient(circle at 85% 20%,#b58b3f22,transparent 30%),linear-gradient(#fbf8f1,#f1eadc)}.eyebrow{color:#b58b3f;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:800}h1,h2{font-family:"Playfair Display",serif;letter-spacing:-.04em}h1{font-size:clamp(3.8rem,8vw,8rem);line-height:.9;margin:18px 0 28px}h1 em{color:#b58b3f;font-weight:500}.lead{max-width:650px;color:#625d55;font-size:1.15rem;line-height:1.6}.search{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr auto;max-width:1120px;background:#fff;border:1px solid #0002;border-radius:18px;overflow:hidden;box-shadow:0 18px 60px #0001;margin-top:34px}.search label{padding:15px 17px;border-right:1px solid #0001}.search label span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:#6d675f;font-weight:800;margin-bottom:5px}.search input,.search select{border:0;outline:0;width:100%;background:transparent}.search button{border:0;background:#111;color:#fff;padding:0 28px;font-weight:700}.live{font-size:.85rem;color:#6d675f}.live span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b58b3f;margin-right:8px}.section{padding:84px 6vw}.dark{background:#111;color:#fff}.heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px}.heading h2,.cta h2{font-size:clamp(2.3rem,5vw,4.8rem);line-height:1;margin:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fffdf8;border:1px solid #0002;border-radius:22px;overflow:hidden}.dark .card{background:#181818;border-color:#fff2}.pic{height:220px;background:linear-gradient(135deg,#b58b3f33,#1112),#ddd5c6;background-size:cover;background-position:center}.body{padding:21px}.meta{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#b58b3f}.body h3{font-family:"Playfair Display",serif;font-size:1.7rem;margin:8px 0}.desc{color:#6d675f;line-height:1.5}.dark .desc{color:#bbb}.actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.actions a{text-decoration:none;font-weight:700}.slot{font-size:.82rem;color:#b58b3f;background:#b58b3f22;padding:7px 10px;border-radius:999px}.mini{display:flex;gap:8px}.mini input,.mini select,.mini button{border:1px solid #fff2;background:#1c1c1c;color:#fff;border-radius:999px;padding:10px 13px}.chips{display:flex;gap:10px;flex-wrap:wrap}.chip{border:1px solid #0002;background:#fff8;border-radius:999px;padding:12px 17px;font-weight:700}.chip span{color:#777;margin-left:5px}.empty{border:1px dashed #0002;border-radius:18px;padding:28px;color:#6d675f}.darkempty{border-color:#fff2;color:#aaa}.cta{margin:0 5vw 70px;padding:70px;border-radius:30px;background:radial-gradient(circle at 85% 20%,#b58b3f33,transparent 30%),#0e0e0e;color:#fff;display:flex;justify-content:space-between;align-items:end;gap:30px}.cta p:not(.eyebrow){color:#bbb;max-width:620px}.cta a{background:#b58b3f;color:#111;text-decoration:none;font-weight:800;padding:14px 18px;border-radius:999px}footer{display:flex;justify-content:space-between;align-items:center;padding:34px 6vw;border-top:1px solid #0001;color:#6d675f}.hidden{display:none!important}.linkbtn{border:0;background:none;font-weight:700}@media(max-width:900px){nav a:not(.login){display:none}.search{grid-template-columns:1fr 1fr}.search button{grid-column:1/-1;min-height:56px}.grid{grid-template-columns:1fr 1fr}.cta{flex-direction:column;align-items:flex-start}}@media(max-width:600px){.hero,.section{padding-left:18px;padding-right:18px}.search{grid-template-columns:1fr}.search button{grid-column:auto}.grid{grid-template-columns:1fr}.heading{align-items:flex-start;flex-direction:column}.mini{flex-wrap:wrap}.cta{margin:0 18px 45px;padding:38px 24px}footer{align-items:flex-start;flex-direction:column;gap:18px}}


/* ===== Table O'Clock Premium Reservation Panel ===== */

.booking-panel{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(249,245,237,.96));
  border:1px solid rgba(176,132,47,.30);
  border-radius:24px;
  padding:30px;
  box-shadow:
    0 18px 45px rgba(23,21,18,.08),
    0 2px 8px rgba(23,21,18,.04);
}

.booking-panel .eyebrow{
  color:#9c762d;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:11px;
  font-weight:700;
  margin-bottom:8px;
}

.booking-panel h2{
  font-size:30px;
  line-height:1.05;
  margin:0 0 10px;
  letter-spacing:-.03em;
}

.booking-intro{
  margin:0 0 24px;
  color:#706b62;
  font-size:14px;
  line-height:1.55;
}

.booking-panel label{
  display:block;
  font-size:12px;
  font-weight:650;
  margin-bottom:7px;
  color:#2b2925;
}

.booking-panel input,
.booking-panel select{
  width:100%;
  min-height:48px;
  border:1px solid #d9d4ca;
  border-radius:13px;
  background:#fff;
  padding:0 14px;
  font:inherit;
  color:#191816;
  transition:border-color .18s ease, box-shadow .18s ease;
}

.booking-panel input:focus,
.booking-panel select:focus{
  outline:none;
  border-color:#b58a3d;
  box-shadow:0 0 0 3px rgba(181,138,61,.12);
}

.booking-panel .booking-grid{
  gap:14px;
}

.booking-panel .book-now,
.booking-panel #bookNow{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  border-radius:14px;
  background:#171613;
  color:#fff;
  font-weight:700;
  text-decoration:none;
  margin-top:18px;
  transition:transform .16s ease, opacity .16s ease;
}

.booking-panel .book-now:hover,
.booking-panel #bookNow:hover{
  transform:translateY(-1px);
}

.booking-panel .book-now[aria-disabled="true"],
.booking-panel #bookNow[aria-disabled="true"]{
  opacity:.42;
  pointer-events:none;
}

.booking-panel::after{
  content:"Instant confirmation • Powered by Table O’Clock";
  display:block;
  text-align:center;
  margin-top:14px;
  font-size:11px;
  color:#8c857a;
}

@media (max-width: 900px){
  .booking-panel{
    padding:24px;
    border-radius:20px;
  }
}


/* ===== Reservation CTA refinement ===== */

.booking-panel #bookNow{
  border:1px solid rgba(188,145,62,.55);
  letter-spacing:.02em;
  box-shadow:0 8px 20px rgba(0,0,0,.14);
}

.booking-panel #bookNow:not([aria-disabled="true"]){
  background:linear-gradient(180deg,#1d1b18,#11100e);
  color:#fff;
}

.booking-panel #bookNow:not([aria-disabled="true"]):hover{
  border-color:#c99a44;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
  transform:translateY(-1px);
}

.booking-panel #bookNow[aria-disabled="true"]{
  background:#1a1917;
  color:#8c867d;
  border-color:rgba(255,255,255,.06);
  box-shadow:none;
}


/* ===== Table O'Clock Restaurant Profile Premium Restyle ===== */

/* HERO */
.restaurant-hero{
  position:relative;
  min-height:390px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}

.restaurant-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(8,8,7,.86) 0%,rgba(8,8,7,.60) 42%,rgba(8,8,7,.18) 100%),
    linear-gradient(0deg,rgba(8,8,7,.48),rgba(8,8,7,.05) 55%);
}

.restaurant-hero > *{
  position:relative;
  z-index:1;
}

.restaurant-hero .hero-content{
  max-width:1200px;
  width:100%;
  margin:0 auto;
  padding:46px 60px 42px;
}

.restaurant-hero .eyebrow{
  color:#c9a454;
  letter-spacing:.19em;
  text-transform:uppercase;
  font-size:11px;
  font-weight:700;
  margin-bottom:13px;
}

.restaurant-hero h1{
  max-width:820px;
  margin:0 0 10px;
  font-size:clamp(48px,6vw,82px);
  line-height:.94;
  letter-spacing:-.045em;
  color:#fff;
}

.restaurant-hero .hero-meta{
  color:rgba(255,255,255,.84);
  font-size:14px;
  letter-spacing:.01em;
}

.restaurant-hero .back-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-bottom:18px;
  color:rgba(255,255,255,.78);
  text-decoration:none;
  font-size:13px;
}

.restaurant-hero .back-link:hover{
  color:#fff;
}

/* MAIN LAYOUT */
.restaurant-copy{
  padding-top:54px;
  padding-bottom:58px;
}

.restaurant-copy .content-grid{
  gap:42px;
  align-items:start;
}

/* ABOUT */
.restaurant-copy .eyebrow{
  color:#8c6a2b;
  letter-spacing:.17em;
  text-transform:uppercase;
  font-size:11px;
  font-weight:700;
}

.restaurant-copy h2{
  font-size:clamp(32px,3.5vw,46px);
  line-height:1.05;
  letter-spacing:-.035em;
  margin:8px 0 18px;
}

.restaurant-copy .lead{
  font-size:16px;
  line-height:1.75;
  color:#5f5a51;
  max-width:760px;
}

/* AMENITIES */
#amenities{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:24px;
}

#amenities .amenity{
  border:1px solid rgba(29,27,23,.14);
  background:rgba(255,255,255,.56);
  border-radius:999px;
  padding:8px 13px;
  font-size:12px;
  color:#36322c;
  box-shadow:0 2px 8px rgba(25,22,18,.025);
}

/* INFO GRID */
.restaurant-details,
.info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:30px;
}

.restaurant-details > *,
.info-grid > *{
  background:rgba(255,255,255,.54);
  border:1px solid rgba(33,29,23,.10);
  border-radius:15px;
  padding:15px 16px;
  min-height:76px;
  box-shadow:0 6px 20px rgba(28,24,19,.025);
}

.restaurant-details .label,
.info-grid .label{
  display:block;
  margin-bottom:6px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#8c806d;
}

.restaurant-details a,
.info-grid a{
  color:#22201c;
  text-decoration-color:rgba(34,32,28,.35);
  text-underline-offset:3px;
}

/* BOOKING PANEL HARMONY */
.booking-panel{
  position:sticky;
  top:96px;
}

/* FOOTER */
footer{
  border-top:1px solid rgba(30,27,22,.08);
  margin-top:0;
  padding-top:26px;
  padding-bottom:26px;
}

footer .brand{
  opacity:.82;
}

footer #year,
footer .copyright{
  color:#827a6d;
  font-size:12px;
}

/* GLOBAL SOFTENING */
body{
  background:#f5f0e6;
}

.restaurant-copy,
main{
  background:transparent;
}

/* MOBILE */
@media (max-width: 900px){
  .restaurant-hero{
    min-height:340px;
  }

  .restaurant-hero .hero-content{
    padding:34px 24px 30px;
  }

  .restaurant-hero h1{
    font-size:clamp(42px,12vw,62px);
  }

  .restaurant-copy{
    padding-top:38px;
  }

  .restaurant-copy .content-grid{
    grid-template-columns:1fr;
    gap:30px;
  }

  .booking-panel{
    position:static;
  }

  .restaurant-details,
  .info-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 560px){
  .restaurant-hero{
    min-height:315px;
  }

  .restaurant-hero .hero-content{
    padding-left:20px;
    padding-right:20px;
  }

  .restaurant-copy h2{
    font-size:34px;
  }
}


/* ===== Profile final polish ===== */

.restaurant-hero h1{
  font-size:clamp(44px,5vw,68px);
  max-width:760px;
}

.restaurant-hero .hero-content{
  padding-left:58px;
  padding-right:58px;
}

.booking-panel{
  min-width:300px;
  padding:32px 30px;
}

.restaurant-details > *,
.info-grid > *{
  background:rgba(255,255,255,.46);
  border-color:rgba(33,29,23,.085);
  box-shadow:0 4px 14px rgba(28,24,19,.02);
}

@media (max-width:900px){
  .restaurant-hero h1{
    font-size:clamp(42px,10vw,58px);
  }

  .restaurant-hero .hero-content{
    padding-left:24px;
    padding-right:24px;
  }

  .booking-panel{
    min-width:0;
  }
}


/* ===== Hero title final balance ===== */

.restaurant-hero h1{
  font-size:clamp(40px,4.4vw,60px);
  max-width:680px;
  line-height:.98;
}

.restaurant-hero .hero-content{
  padding-left:72px;
  padding-right:56px;
}

@media (max-width:900px){
  .restaurant-hero h1{
    font-size:clamp(38px,9vw,54px);
  }

  .restaurant-hero .hero-content{
    padding-left:28px;
    padding-right:24px;
  }
}


/* ===== Official restaurant logo in hero ===== */

.restaurant-logo-wrap{
  margin:8px 0 14px;
}

.restaurant-logo-official{
  display:block;
  width:min(430px,72vw);
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 22px rgba(0,0,0,.28));
}

@media (max-width:900px){
  .restaurant-logo-official{
    width:min(360px,82vw);
  }
}


/* ===== Soul official hero logo ===== */

.restaurant-logo-wrap{
  margin:8px 0 16px;
}

.restaurant-logo-official{
  display:block;
  width:min(400px,60vw);
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.32));
}

@media (max-width:900px){
  .restaurant-logo-official{
    width:min(330px,78vw);
  }
}


.restaurant-name-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}



/* ==== Soul transparent logo top-left ==== */
.restaurant-logo-wrap{
  margin: 14px 0 18px;
  line-height: 0;
}

.restaurant-logo-official{
  display: block;
  width: clamp(180px, 22vw, 260px);
  height: auto;
  background: transparent;
  filter: drop-shadow(0 8px 22px rgba(0,0,0,.28));
}

@media (max-width: 900px){
  .restaurant-logo-wrap{
    margin: 10px 0 14px;
  }

  .restaurant-logo-official{
    width: clamp(140px, 40vw, 190px);
  }
}


/* ===== Table O'Clock Marketplace Premium Home ===== */

/* HOME HERO */
.hero{
  padding:86px 0 64px;
  background:
    radial-gradient(circle at 75% 20%, rgba(190,145,59,.10), transparent 34%),
    linear-gradient(180deg,#f7f2e9 0%,#f2ecdf 100%);
  border-bottom:1px solid rgba(31,27,21,.07);
}

.hero .wrap{
  max-width:1180px;
}

.hero .eyebrow{
  color:#9c762d;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:11px;
  font-weight:700;
  margin-bottom:16px;
}

.hero h1{
  max-width:850px;
  font-size:clamp(54px,7vw,88px);
  line-height:.94;
  letter-spacing:-.05em;
  margin:0 0 20px;
}

.hero .lead{
  max-width:680px;
  font-size:18px;
  line-height:1.65;
  color:#615b52;
  margin-bottom:34px;
}

/* SEARCH */
.search{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr .8fr auto;
  gap:10px;
  padding:12px;
  border:1px solid rgba(31,27,21,.10);
  background:rgba(255,255,255,.82);
  border-radius:18px;
  box-shadow:0 18px 50px rgba(35,29,21,.08);
  backdrop-filter:blur(10px);
}

.search input,
.search select{
  min-height:52px;
  border:1px solid rgba(31,27,21,.12);
  border-radius:12px;
  background:#fff;
  padding:0 14px;
  font:inherit;
}

.search button{
  min-height:52px;
  border:0;
  border-radius:12px;
  padding:0 24px;
  background:#171613;
  color:#fff;
  font-weight:700;
  white-space:nowrap;
  box-shadow:0 8px 20px rgba(0,0,0,.12);
}

/* SECTION RHYTHM */
.section{
  padding:70px 0;
}

.section .heading{
  margin-bottom:28px;
}

.section .eyebrow{
  color:#9a762f;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:10px;
  font-weight:700;
  margin-bottom:8px;
}

.section h2{
  margin:0;
  font-size:clamp(34px,4vw,48px);
  line-height:1.02;
  letter-spacing:-.035em;
}

/* RESTAURANT CARDS */
.grid{
  gap:20px;
}

.card{
  overflow:hidden;
  border:1px solid rgba(28,24,18,.10);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 34px rgba(25,21,17,.055);
  transition:transform .18s ease, box-shadow .18s ease;
}

.card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 42px rgba(25,21,17,.09);
}

.card .pic{
  min-height:240px;
  background-size:cover;
  background-position:center;
}

.card .body{
  padding:20px;
}

.card .meta{
  color:#8a7d6b;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.10em;
  margin-bottom:8px;
}

.card h3{
  font-size:26px;
  margin:0 0 8px;
  letter-spacing:-.025em;
}

.card .desc{
  color:#625c52;
  line-height:1.55;
  min-height:48px;
}

.card .actions{
  margin-top:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.card .actions a{
  color:#171613;
  font-weight:700;
  text-decoration:none;
}

.card .slot{
  border:1px solid rgba(173,129,46,.30);
  background:#faf6ee;
  color:#8c6726;
  border-radius:999px;
  padding:6px 10px;
  font-size:11px;
  font-weight:700;
}

/* TONIGHT */
#tonight.dark{
  background:#11100e;
  color:#fff;
}

#tonight.dark .eyebrow{
  color:#c59b4a;
}

#tonight.dark h2{
  color:#fff;
}

#tonight.dark .card{
  background:#181714;
  border-color:rgba(255,255,255,.08);
  box-shadow:none;
}

#tonight.dark .card h3,
#tonight.dark .card .actions a{
  color:#fff;
}

#tonight.dark .card .desc{
  color:#aaa399;
}

#tonight.dark .card .meta{
  color:#a89a84;
}

/* CUISINES */
.chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.chips button,
.chips .chip{
  border:1px solid rgba(28,24,18,.12);
  background:rgba(255,255,255,.7);
  border-radius:999px;
  padding:10px 16px;
  font-weight:600;
  transition:all .16s ease;
}

.chips button:hover,
.chips .chip:hover{
  border-color:#b58b3f;
  background:#fffaf0;
}

/* FOR RESTAURANTS */
.cta{
  margin:56px auto 72px;
  max-width:1180px;
  border-radius:26px;
  padding:48px 52px;
  background:
    radial-gradient(circle at 85% 30%, rgba(202,156,70,.15), transparent 34%),
    #171613;
  color:#fff;
  box-shadow:0 24px 60px rgba(20,17,14,.14);
}

.cta .eyebrow{
  color:#c99c48;
}

.cta h2{
  color:#fff;
  font-size:clamp(36px,4vw,54px);
  max-width:700px;
  margin:8px 0 14px;
}

.cta p{
  max-width:680px;
  color:#b8b0a5;
  font-size:16px;
  line-height:1.65;
}

.cta a{
  display:inline-flex;
  margin-top:18px;
  padding:13px 18px;
  border-radius:12px;
  background:#fff;
  color:#171613;
  font-weight:700;
  text-decoration:none;
}

/* FOOTER */
footer{
  border-top:1px solid rgba(28,24,18,.08);
  padding:26px 0 30px;
  color:#857b6d;
}

/* MOBILE */
@media (max-width:900px){
  .hero{
    padding:60px 0 48px;
  }

  .hero h1{
    font-size:clamp(46px,12vw,66px);
  }

  .search{
    grid-template-columns:1fr 1fr;
  }

  .search button{
    grid-column:1/-1;
  }

  .section{
    padding:52px 0;
  }

  .cta{
    margin:34px 18px 48px;
    padding:34px 28px;
  }
}

@media (max-width:560px){
  .search{
    grid-template-columns:1fr;
  }

  .search button{
    grid-column:auto;
  }

  .card .pic{
    min-height:210px;
  }
}


/* ===== Home horizontal breathing room ===== */

.hero .wrap,
.section > .wrap,
footer > .wrap{
  padding-left:48px;
  padding-right:48px;
}

@media (max-width:900px){
  .hero .wrap,
  .section > .wrap,
  footer > .wrap{
    padding-left:24px;
    padding-right:24px;
  }
}

@media (max-width:560px){
  .hero .wrap,
  .section > .wrap,
  footer > .wrap{
    padding-left:18px;
    padding-right:18px;
  }
}


/* ===== Marketplace real horizontal margins ===== */

main > .hero,
main > .section{
  padding-left:56px;
  padding-right:56px;
}

main > .hero > *,
main > .section > *{
  max-width:1180px;
}

@media (max-width:900px){
  main > .hero,
  main > .section{
    padding-left:40px;
    padding-right:40px;
  }
}

@media (max-width:560px){
  main > .hero,
  main > .section{
    padding-left:22px;
    padding-right:22px;
  }
}


/* ===== Marketplace hero image ===== */

.hero{
  position:relative;
  min-height:560px;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.58) 42%,rgba(0,0,0,.24) 100%),
    url("./assets/hero_marketplace.png") center center / cover no-repeat;
}

.hero h1{
  color:#fff;
}

.hero .lead{
  color:rgba(255,255,255,.88);
}

.hero .eyebrow{
  color:#d0a24b;
}

.hero .live{
  color:rgba(255,255,255,.82);
}



/* ===== Hero image definitive fix ===== */

.hero{
  background-color:#111 !important;

  background-image:
    linear-gradient(
      90deg,
      rgba(0,0,0,.76) 0%,
      rgba(0,0,0,.54) 46%,
      rgba(0,0,0,.16) 100%
    ),
    url("/assets/hero_marketplace.png") !important;

  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}


/* ===== Hero search final glass polish ===== */

.hero .search{
  background:rgba(246,242,234,.88);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 18px 42px rgba(0,0,0,.22);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}

.hero .search input,
.hero .search select{
  background:rgba(255,255,255,.82);
  border-color:rgba(35,31,25,.10);
}

.hero .search button{
  background:#151411;
  border:1px solid rgba(196,151,68,.32);
}


/* ===== Premium Restaurant Cards v2 ===== */

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  gap:24px;
}

.card{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  background:#fffdf9;
  border:1px solid rgba(30,26,20,.09);
  box-shadow:
    0 12px 30px rgba(22,18,14,.055),
    0 2px 6px rgba(22,18,14,.025);
  transition:
    transform .20s ease,
    box-shadow .20s ease;
}

.card:hover{
  transform:translateY(-4px);
  box-shadow:
    0 22px 44px rgba(22,18,14,.10),
    0 4px 10px rgba(22,18,14,.04);
}

.card .pic{
  min-height:250px;
  aspect-ratio:16/10;
  background-size:cover;
  background-position:center;
  transition:transform .35s ease;
}

.card:hover .pic{
  transform:scale(1.015);
}

.card .body{
  padding:21px 22px 22px;
}

.card .meta{
  margin-bottom:9px;
  color:#98763b;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.card h3{
  margin:0 0 9px;
  font-size:27px;
  line-height:1.04;
  letter-spacing:-.03em;
}

.card h3 a{
  color:#1b1916;
}

.card .desc{
  color:#6a6359;
  font-size:14px;
  line-height:1.6;
  min-height:44px;
}

.card .actions{
  padding-top:17px;
  margin-top:17px;
  border-top:1px solid rgba(30,26,20,.07);
}

.card .actions a{
  font-size:13px;
  font-weight:700;
  color:#1a1815;
}

.card .slot{
  background:#f7f0e2;
  border:1px solid rgba(182,138,54,.30);
  color:#8c6829;
  padding:7px 11px;
  border-radius:999px;
  font-size:11px;
}

/* SEARCH RESULTS */
#results{
  background:#f6f0e5;
}

#results .heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
}

#results .grid{
  margin-top:10px;
}

/* FEATURED */
#featured{
  background:#faf7f1;
}

/* TONIGHT */
#tonight .card{
  background:#181714;
}

#tonight .card .actions{
  border-top-color:rgba(255,255,255,.08);
}

/* RESTAURANTS DIRECTORY */
#restaurants{
  background:#f5efe4;
}

@media (max-width:700px){
  .grid{
    grid-template-columns:1fr;
  }

  .card .pic{
    min-height:220px;
  }

  .card h3{
    font-size:24px;
  }
}


/* ===== Restaurant card width balance ===== */

.grid{
  grid-template-columns:repeat(auto-fill,minmax(320px,360px));
  justify-content:start;
}

.card{
  width:100%;
  max-width:360px;
}

@media (max-width:700px){
  .grid{
    grid-template-columns:1fr;
  }

  .card{
    max-width:none;
  }
}


/* ===== For Restaurants + Footer Final Polish ===== */

.cta{
  max-width:1180px;
  margin:70px auto;
  padding:54px 58px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:42px;

  border:1px solid rgba(197,151,69,.22);
  border-radius:28px;

  background:
    radial-gradient(circle at 85% 20%, rgba(199,154,72,.17), transparent 30%),
    linear-gradient(135deg,#171613 0%,#0e0d0b 100%);

  box-shadow:0 24px 60px rgba(20,17,14,.15);
}

.cta > div{
  max-width:720px;
}

.cta .eyebrow{
  color:#c79a47;
  font-size:10px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.cta h2{
  margin:10px 0 16px;
  color:#fff;
  font-size:clamp(38px,4.6vw,58px);
  line-height:.98;
  letter-spacing:-.04em;
}

.cta p{
  margin:0;
  max-width:630px;
  color:#b9b1a6;
  font-size:16px;
  line-height:1.65;
}

.cta > a{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 22px;

  border-radius:13px;
  border:1px solid rgba(198,152,69,.35);

  background:#fffaf1;
  color:#181612;

  font-size:13px;
  font-weight:700;
  text-decoration:none;

  transition:transform .18s ease, box-shadow .18s ease;
}

.cta > a:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(0,0,0,.22);
}


/* FOOTER */

footer{
  max-width:1180px;
  margin:0 auto;
  padding:30px 48px 34px;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;

  border-top:1px solid rgba(31,27,21,.09);
  color:#837b70;
  font-size:12px;
}

footer .brand{
  display:flex;
  align-items:center;
  gap:9px;
  color:#34302a;
  font-weight:650;
}

footer .clock.small{
  opacity:.85;
}


/* MOBILE */

@media (max-width:900px){
  .cta{
    margin:48px 24px;
    padding:38px 30px;
    align-items:flex-start;
    flex-direction:column;
  }

  .cta > a{
    width:100%;
  }

  footer{
    padding-left:24px;
    padding-right:24px;
  }
}

@media (max-width:560px){
  .cta{
    margin:38px 18px;
    padding:32px 24px;
  }

  footer{
    flex-direction:column;
    align-items:flex-start;
    padding-left:18px;
    padding-right:18px;
  }
}


/* ===== Final home vertical rhythm ===== */

#restaurants{
  padding-bottom:42px;
}

.cta{
  margin-top:24px;
}


/* ===== Public Guest Reviews ===== */

.public-reviews{
  padding:68px 56px 74px;
  background:#f8f3e9;
  border-top:1px solid rgba(31,27,21,.07);
}

.reviews-shell{
  max-width:1180px;
  margin:0 auto;
}

.reviews-heading{
  margin-bottom:30px;
}

.reviews-heading .eyebrow{
  margin:0 0 8px;
  color:#9a762f;
  font-size:10px;
  font-weight:700;
  letter-spacing:.17em;
  text-transform:uppercase;
}

.reviews-heading h2{
  margin:0 0 10px;
  font-size:clamp(34px,4vw,48px);
  line-height:1.02;
  letter-spacing:-.035em;
}

.reviews-heading > p:last-child{
  margin:0;
  color:#746c60;
  font-size:14px;
}

.reviews-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.review-card{
  display:flex;
  flex-direction:column;
  min-height:230px;
  padding:25px 24px 22px;

  background:#fffdf9;
  border:1px solid rgba(33,29,23,.09);
  border-radius:19px;

  box-shadow:
    0 10px 28px rgba(26,22,17,.045),
    0 2px 6px rgba(26,22,17,.025);
}

.review-stars{
  margin-bottom:18px;
  color:#b88932;
  font-size:19px;
  line-height:1;
  letter-spacing:.08em;
}

.review-copy{
  flex:1;
  margin:0 0 24px;
  color:#37322c;
  font-family:"Playfair Display",serif;
  font-size:18px;
  line-height:1.5;
}

.review-footer{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;

  padding-top:16px;
  border-top:1px solid rgba(31,27,21,.07);
}

.review-footer strong{
  display:block;
  color:#25211d;
  font-size:13px;
}

.review-footer span{
  display:block;
  margin-top:3px;
  color:#8a8175;
  font-size:11px;
}

.verified-review{
  padding:5px 8px;
  border:1px solid rgba(181,137,55,.25);
  border-radius:999px;
  background:#faf4e8;
  color:#8b6829 !important;
  font-size:9px !important;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.reviews-actions{
  margin-top:25px;
  text-align:center;
}

.see-all-reviews{
  min-height:44px;
  padding:0 18px;

  border:1px solid rgba(31,27,21,.16);
  border-radius:12px;

  background:transparent;
  color:#1d1a16;

  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}

.see-all-reviews:hover{
  background:#fff;
}

@media (max-width:900px){

  .public-reviews{
    padding:52px 24px 58px;
  }

  .reviews-grid{
    grid-template-columns:1fr;
  }

  .review-card{
    min-height:0;
  }
}

@media (max-width:560px){

  .public-reviews{
    padding-left:18px;
    padding-right:18px;
  }
}


/* ===== Marketplace Card Review Ratings ===== */

.card-review-summary{
  display:flex;
  align-items:center;
  gap:6px;
  margin:3px 0 11px;
  color:#766d61;
  font-size:11px;
  line-height:1;
}

.card-review-stars{
  color:#b88932;
  font-size:13px;
  letter-spacing:.035em;
}

.card-review-summary strong{
  color:#29251f;
  font-size:11px;
  font-weight:700;
}

#tonight .card-review-summary{
  color:#a9a094;
}

#tonight .card-review-summary strong{
  color:#eee7dc;
}

#tonight .card-review-stars{
  color:#c99a43;
}


/* ===== Restaurant Hero Rating ===== */

.restaurant-rating-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:11px;

  color:rgba(255,255,255,.88);
  font-size:12px;
  text-decoration:none;

  transition:opacity .16s ease;
}

.restaurant-rating-link:hover{
  opacity:.78;
}

.restaurant-rating-stars{
  color:#c99a43;
  font-size:15px;
  letter-spacing:.035em;
}

.restaurant-rating-link strong{
  color:#fff;
  font-size:12px;
  font-weight:700;
}

.restaurant-rating-link > span:last-child{
  color:rgba(255,255,255,.72);
}



/* ===== Full Restaurant Reviews Page ===== */

.reviews-page{
  background:#f6f0e5;
}

.reviews-page-hero{
  position:relative;
  min-height:360px;

  display:flex;
  align-items:flex-end;

  background-color:#12110f;
  background-size:cover;
  background-position:center;

  overflow:hidden;
}

.reviews-page-overlay{
  position:absolute;
  inset:0;

  background:
    linear-gradient(
      90deg,
      rgba(7,7,6,.88) 0%,
      rgba(7,7,6,.60) 48%,
      rgba(7,7,6,.25) 100%
    );
}

.reviews-page-hero-inner{
  position:relative;
  z-index:2;

  width:100%;
  max-width:1180px;

  margin:0 auto;
  padding:58px 56px 44px;

  color:#fff;
}

.reviews-back{
  display:inline-block;

  margin-bottom:28px;

  color:rgba(255,255,255,.72);

  font-size:12px;
  text-decoration:none;
}

.reviews-back:hover{
  color:#fff;
}

.reviews-page-hero .eyebrow{
  margin:0 0 8px;

  color:#c99a43;

  font-size:10px;
  font-weight:700;

  letter-spacing:.18em;
  text-transform:uppercase;
}

.reviews-page-hero h1{
  margin:0 0 18px;

  max-width:760px;

  color:#fff;

  font-size:clamp(44px,6vw,72px);
  line-height:.98;

  letter-spacing:-.045em;
}

.reviews-overall{
  display:inline-flex;
  align-items:center;
  gap:8px;

  color:rgba(255,255,255,.78);

  font-size:13px;
}

.reviews-overall-stars{
  color:#c99a43;

  font-size:18px;
  letter-spacing:.04em;
}

.reviews-overall strong{
  color:#fff;
}

.reviews-page-content{
  padding:64px 56px 76px;
}

.reviews-page-shell{
  max-width:1180px;
  margin:0 auto;
}

.reviews-page-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;

  margin-bottom:30px;
}

.reviews-page-heading .eyebrow{
  margin:0 0 8px;

  color:#987331;

  font-size:10px;
  font-weight:700;

  letter-spacing:.16em;
  text-transform:uppercase;
}

.reviews-page-heading h2{
  margin:0;

  font-size:clamp(34px,4vw,48px);
  line-height:1.03;

  letter-spacing:-.035em;
}

#reviewsCountLabel{
  color:#847a6c;
  font-size:12px;
}

.all-reviews-grid{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:18px;
}

.all-review-card{
  min-height:250px;

  display:flex;
  flex-direction:column;

  padding:28px 27px 24px;

  border:1px solid rgba(31,27,21,.09);
  border-radius:20px;

  background:#fffdf9;

  box-shadow:
    0 12px 30px rgba(24,20,16,.045),
    0 2px 6px rgba(24,20,16,.025);
}

.all-review-stars{
  margin-bottom:20px;

  color:#b88932;

  font-size:19px;
  line-height:1;

  letter-spacing:.07em;
}

.all-review-copy{
  flex:1;

  margin:0 0 28px;

  color:#312d27;

  font-family:"Playfair Display",serif;

  font-size:20px;
  line-height:1.55;
}

.all-review-footer{
  display:flex;

  justify-content:space-between;
  align-items:flex-end;

  gap:15px;

  padding-top:17px;

  border-top:
    1px solid rgba(31,27,21,.07);
}

.all-review-footer strong{
  display:block;

  color:#27231e;

  font-size:13px;
}

.all-review-footer span{
  display:block;

  margin-top:4px;

  color:#8a8175;

  font-size:11px;
}

.reviews-empty{
  padding:34px;

  border:1px dashed rgba(31,27,21,.14);
  border-radius:18px;

  color:#82786a;

  text-align:center;
}

@media(max-width:900px){

  .reviews-page-hero-inner{
    padding:
      44px 24px 34px;
  }

  .reviews-page-content{
    padding:
      48px 24px 58px;
  }

  .all-reviews-grid{
    grid-template-columns:1fr;
  }

}

@media(max-width:560px){

  .reviews-page-hero{
    min-height:310px;
  }

  .reviews-page-hero h1{
    font-size:42px;
  }

  .reviews-page-hero-inner,
  .reviews-page-content{
    padding-left:18px;
    padding-right:18px;
  }

  .reviews-page-heading{
    align-items:flex-start;
    flex-direction:column;
  }

}


/* ===== Google Review CTA ===== */

.reviews-page-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:12px;
}

.google-review-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-height:44px;
  padding:0 17px;

  border:1px solid rgba(184,137,50,.32);
  border-radius:12px;

  background:#171613;
  color:#fff;

  font-size:12px;
  font-weight:700;
  text-decoration:none;

  box-shadow:0 8px 20px rgba(24,20,16,.10);

  transition:
    transform .16s ease,
    border-color .16s ease;
}

.google-review-button:hover{
  transform:translateY(-1px);
  border-color:#c99a43;
}

@media(max-width:560px){
  .reviews-page-actions{
    width:100%;
    align-items:flex-start;
  }

  .google-review-button{
    width:100%;
  }
}


/* ===== iPhone true centering fix ===== */

@media (max-width:560px){

  .hero{
    width:100% !important;
    box-sizing:border-box !important;

    padding-left:20px !important;
    padding-right:20px !important;
    padding-top:38px !important;
    padding-bottom:32px !important;

    margin:0 !important;
  }

  .hero > *{
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .hero .search{
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  .hero h1,
  .hero .lead,
  .hero .eyebrow,
  .hero .live{
    max-width:100% !important;
  }
}

/* ===== iPhone Search Layout Reset ===== */
@media (max-width:560px){

  .hero .search{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    box-sizing:border-box !important;
  }

  .hero .search label{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    box-sizing:border-box !important;
  }

  .hero .search label > span{
    display:block !important;
    width:100% !important;
    margin:0 0 6px 0 !important;
    padding:0 !important;
  }

  .hero .search input,
  .hero .search select{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  .hero .search button{
    width:100% !important;
    margin:0 !important;
  }

}

/* ===== Table O'Clock iPhone Search FINAL ===== */
@media (max-width:560px){

  .hero form.search{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:12px !important;
    width:100% !important;
    padding:14px !important;
  }

  /* WHERE */
  .hero form.search > label:nth-of-type(1){
    grid-column:1 / -1 !important;
  }

  /* DATE + TIME */
  .hero form.search > label:nth-of-type(2){
    grid-column:1 !important;
  }

  .hero form.search > label:nth-of-type(3){
    grid-column:2 !important;
  }

  /* GUESTS */
  .hero form.search > label:nth-of-type(4){
    grid-column:1 !important;
  }

  /* FIND A TABLE */
  .hero form.search > button{
    grid-column:2 !important;
    align-self:end !important;
  }

  .hero form.search > label{
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
  }

  .hero form.search input,
  .hero form.search select,
  .hero form.search button{
    width:100% !important;
    height:48px !important;
    min-height:48px !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  .hero form.search label > span{
    margin:0 0 6px !important;
  }

}

/* ===== iOS DATE/TIME overlap fix ===== */
@media (max-width:560px){

  .hero form.search{
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) !important;
  }

  .hero form.search input[type="date"],
  .hero form.search input[type="time"]{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;

    font-size:16px !important;
    padding-left:10px !important;
    padding-right:10px !important;

    overflow:hidden !important;
  }

  .hero form.search > label:nth-of-type(2),
  .hero form.search > label:nth-of-type(3){
    min-width:0 !important;
    overflow:hidden !important;
  }

}
