/* ===================================================
   GAUTAM'S O DINE — style.css
   =================================================== */

/* ===== TOKENS ===== */
:root{
  --bg:#F1EEE5;
  --bg-2:#E5E0D2;
  --ink:#1F2A38;
  --ink-soft:#5B6572;
  --indigo:#2C3E63;
  --indigo-2:#3C5480;
  --copper:#B5651D;
  --copper-soft:#D9A468;
  --jade:#2F6F5E;
  --line: rgba(31,42,56,0.14);
  --surface: #FFFFFF;
  --shadow: 0 20px 50px -25px rgba(31,42,56,0.35);
  --shadow-lg: 0 32px 80px -20px rgba(31,42,56,0.45);
  --radius-card: 16px;

  /* Footer tokens */
  --footer-bg: #111827;
  --footer-bg-2: #1a2236;
  --footer-ink: #E8E6DC;
  --footer-ink-soft: rgba(232,230,220,0.55);
  --footer-ink-muted: rgba(232,230,220,0.38);
  --footer-line: rgba(255,255,255,0.08);
  --footer-icon-bg: rgba(255,255,255,0.07);
  --footer-logo-border: rgba(255,255,255,0.12);
}

[data-theme="dark"]{
  --bg:#141B26;
  --bg-2:#1C2531;
  --ink:#E8E6DC;
  --ink-soft:#AEB7C4;
  --indigo:#8CA0D6;
  --indigo-2:#A6B7E0;
  --copper:#E0904D;
  --copper-soft:#F0C08A;
  --jade:#6FBF9E;
  --line: rgba(232,230,220,0.14);
  --surface:#1A2230;
  --shadow: 0 20px 50px -20px rgba(0,0,0,0.6);

  /* Footer tokens — lighter in dark mode so it contrasts with dark page */
  --footer-bg: #0D111B;
  --footer-bg-2: #131928;
  --footer-ink: #EAE8E0;
  --footer-ink-soft: rgba(234,232,224,0.6);
  --footer-ink-muted: rgba(234,232,224,0.35);
  --footer-line: rgba(255,255,255,0.06);
  --footer-icon-bg: rgba(255,255,255,0.06);
  --footer-logo-border: rgba(255,255,255,0.1);
  --shadow-lg: 0 32px 80px -20px rgba(0,0,0,0.75);
}

/* ===== BASE ===== */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  transition:background .4s ease, color .4s ease;
  overflow-x:hidden;
}
h1,h2,h3,h4,.display-font{
  font-family:'Cormorant Garamond', serif;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.2px;
}
.eyebrow{
  font-family:'Work Sans',sans-serif;
  font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--indigo); font-weight:600;
}
[data-theme="dark"] .eyebrow{ color:var(--copper); }
.lede{ color:var(--ink-soft); font-weight:400; }
a{ color:inherit; }

/* ===== BUTTONS ===== */
.btn-indigo{
  background:var(--indigo); border:1px solid var(--indigo); color:#fff;
  border-radius:4px; padding:.75rem 1.6rem; font-weight:500; letter-spacing:.03em;
  transition:all .25s ease;
}
.btn-indigo:hover{ background:transparent; color:var(--indigo); }
.btn-indigo.btn-sm{ padding:.5rem 1.1rem; font-size:.88rem; }
.btn-outline-luxe{
  background:transparent; border:1px solid var(--ink); color:var(--ink);
  border-radius:4px; padding:.75rem 1.6rem; font-weight:500; letter-spacing:.03em;
  transition:all .25s ease;
}
.btn-outline-luxe:hover{ background:var(--ink); color:var(--bg); }

/* ===== NAV ===== */
.navbar-luxe{
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:background .4s ease, box-shadow .3s ease;
}
.navbar-luxe.scrolled{ box-shadow:0 4px 24px rgba(0,0,0,.12); }
.navbar-luxe .navbar-brand{ display:flex; align-items:center; gap:.65rem; text-decoration:none; }
.brand-logo{
  height:44px; width:44px; object-fit:contain; border-radius:8px;
  box-shadow:0 2px 10px rgba(0,0,0,.15); transition:transform .3s ease;
}
.navbar-luxe .navbar-brand:hover .brand-logo{ transform:scale(1.08) rotate(-2deg); }
.brand-name{
  font-family:'Cormorant Garamond',serif;
  font-size:1.45rem; font-weight:600; color:var(--ink); line-height:1;
}
.brand-name em{ font-style:italic; color:var(--indigo); }
[data-theme="dark"] .brand-name em{ color:var(--copper); }
.navbar-luxe .nav-link{
  color:var(--ink-soft) !important; font-size:.85rem; letter-spacing:.05em;
  font-weight:500; margin:0 .5rem; position:relative; padding:.3rem 0;
}
.navbar-luxe .nav-link::after{
  content:""; position:absolute; left:0; bottom:-4px; width:0; height:1px;
  background:var(--indigo); transition:width .25s ease;
}
.navbar-luxe .nav-link:hover::after{ width:100%; }
.theme-toggle{
  width:52px; height:28px; border-radius:20px; border:1px solid var(--line);
  background:var(--bg-2); position:relative; cursor:pointer; flex-shrink:0;
}
.theme-toggle .knob{
  position:absolute; top:2px; left:2px; width:22px; height:22px; border-radius:50%;
  background:var(--indigo); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:.7rem; transition:left .3s ease, background .3s ease;
}
[data-theme="dark"] .theme-toggle .knob{ left:26px; background:var(--copper); }

/* ===== HERO THEME REACTIVITY ===== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden;
  transition:background .4s ease, color .4s ease;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg-img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  display:block; transition:transform 8s ease, filter .4s ease;
}
.hero:hover .hero-bg-img{ transform:scale(1.04); }

.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(135deg, rgba(241,238,229,.93) 0%, rgba(241,238,229,.78) 55%, rgba(241,238,229,.4) 100%),
    linear-gradient(to top, rgba(241,238,229,.95) 0%, transparent 40%);
  transition:background .4s ease;
}

[data-theme="dark"] .hero-overlay{
  background:
    linear-gradient(135deg, rgba(20,26,38,.92) 0%, rgba(20,26,38,.75) 55%, rgba(20,26,38,.35) 100%),
    linear-gradient(to top, rgba(20,26,38,.95) 0%, transparent 40%);
}

.hero-content{ position:relative; z-index:1; padding:9rem 0 5rem; }
.min-vh-hero{ min-height:80vh; }

.hero-rating-chip{
  display:inline-flex; align-items:center; gap:.5rem;
  background:rgba(255,255,255,0.75); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--line); padding:.45rem 1rem; border-radius:40px;
  font-size:.82rem; color:var(--ink); font-weight:500; margin-bottom:1.4rem;
  box-shadow:0 4px 15px rgba(0,0,0,0.06);
  transition:all .4s ease;
}
.hero-rating-chip .stars{ color:var(--copper); letter-spacing:2px; }

[data-theme="dark"] .hero-rating-chip{
  background:rgba(255,255,255,0.12);
  border-color:rgba(255,255,255,0.22);
  color:#fff;
  box-shadow:none;
}
[data-theme="dark"] .hero-rating-chip .stars{ color:#F0C08A; }

.hero-content h1{
  font-size:clamp(2.8rem, 6vw, 5rem); line-height:1.02; margin:0 0 1.4rem;
  color:var(--ink); transition:color .4s ease;
}
.hero-content h1 em{ font-style:italic; color:var(--copper); transition:color .4s ease; }
[data-theme="dark"] .hero-content h1{ color:#fff; }
[data-theme="dark"] .hero-content h1 em{ color:var(--copper-soft); }

.hero-lede{
  color:var(--ink-soft); font-size:1.1rem; max-width:520px; line-height:1.65;
  transition:color .4s ease;
}
[data-theme="dark"] .hero-lede{ color:rgba(255,255,255,.8); }

.btn-hero-primary{
  background:var(--indigo); border:2px solid var(--indigo); color:#fff;
  border-radius:4px; padding:.8rem 1.8rem; font-weight:600; letter-spacing:.03em;
  transition:all .25s ease;
}
.btn-hero-primary:hover{ background:transparent; color:var(--indigo); }

[data-theme="dark"] .btn-hero-primary{
  background:#fff; border-color:#fff; color:var(--indigo-2);
}
[data-theme="dark"] .btn-hero-primary:hover{ background:transparent; color:#fff; }

.btn-hero-outline{
  background:transparent; border:2px solid var(--indigo); color:var(--indigo);
  border-radius:4px; padding:.8rem 1.8rem; font-weight:500; letter-spacing:.03em;
  transition:all .25s ease;
}
.btn-hero-outline:hover{ background:var(--indigo); color:#fff; }

[data-theme="dark"] .btn-hero-outline{
  border-color:rgba(255,255,255,.55); color:#fff;
}
[data-theme="dark"] .btn-hero-outline:hover{ background:rgba(255,255,255,0.12); border-color:#fff; }

.hero-badges{ display:flex; flex-wrap:wrap; gap:.8rem; }
.hero-badge-item{
  display:flex; align-items:center; gap:.5rem;
  background:rgba(255,255,255,0.75); backdrop-filter:blur(8px);
  border:1px solid var(--line); padding:.45rem 1rem; border-radius:30px;
  color:var(--ink); font-size:.82rem; font-weight:500;
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
  transition:all .4s ease;
}
.hero-badge-item i{ color:var(--copper); font-size:.9rem; transition:color .4s ease; }

[data-theme="dark"] .hero-badge-item{
  background:rgba(255,255,255,0.1);
  border-color:rgba(255,255,255,0.2);
  color:rgba(255,255,255,.88);
  box-shadow:none;
}
[data-theme="dark"] .hero-badge-item i{ color:var(--copper-soft); }

.hero-image-card{
  position:relative;
  border-radius:20px;
  overflow:hidden;
  border:2px solid var(--line);
  box-shadow:var(--shadow-lg);
  backdrop-filter:blur(10px);
  transition:transform .4s ease, box-shadow .4s ease, border-color .4s ease;
}
[data-theme="dark"] .hero-image-card{
  border-color:rgba(255,255,255,0.25);
  box-shadow:0 30px 60px rgba(0,0,0,0.65);
}

.hero-card-img{
  width:100%;
  height:380px;
  object-fit:cover;
  display:block;
}

.hero-card-badge{
  position:absolute;
  bottom:1rem;
  left:1rem;
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--line);
  color:var(--ink);
  padding:.5rem 1rem;
  border-radius:30px;
  font-size:.85rem;
  font-weight:500;
  box-shadow:0 4px 15px rgba(0,0,0,0.1);
  transition:all .4s ease;
}
[data-theme="dark"] .hero-card-badge{
  background:rgba(20,26,38,0.8);
  border-color:rgba(255,255,255,0.2);
  color:#fff;
  box-shadow:0 4px 15px rgba(0,0,0,0.3);
}
.hero-card-badge em{ font-style:italic; color:var(--copper); }
[data-theme="dark"] .hero-card-badge em{ color:var(--copper-soft); }
.hero-scroll-cue{
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  z-index:1; color:rgba(255,255,255,.5); font-size:1.1rem;
  animation:bobScroll 2s ease-in-out infinite;
}
@keyframes bobScroll{
  0%,100%{ transform:translateX(-50%) translateY(0); }
  50%{ transform:translateX(-50%) translateY(8px); }
}

/* ===== TICKET STRIP ===== */
.ticket-strip{
  background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  position:relative;
}
.ticket-strip::before,.ticket-strip::after{
  content:""; position:absolute; top:50%; width:22px; height:22px; border-radius:50%;
  background:var(--bg); transform:translateY(-50%);
}
.ticket-strip::before{ left:-11px; }
.ticket-strip::after{ right:-11px; }
.ticket-item{ text-align:center; padding:1.6rem .8rem; border-right:1px dashed var(--line); }
.ticket-item:last-child{ border-right:none; }
.ticket-item i{ font-size:1.3rem; color:var(--indigo); }
[data-theme="dark"] .ticket-item i{ color:var(--copper); }
.ticket-item .val{ font-family:'Cormorant Garamond',serif; font-size:1.35rem; font-weight:600; margin-top:.3rem; }
.ticket-item .lab{ font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }

/* ===== SCALLOP DIVIDER ===== */
.scallop-divider{
  height:26px;
  background-image: radial-gradient(circle at 13px 0, transparent 13px, var(--surface) 13.5px);
  background-size: 26px 26px; background-repeat: repeat-x; background-position: center top;
}
.scallop-divider.flip{ transform:scaleY(-1); }
section{ padding:5.5rem 0; }
.section-surface{ background:var(--surface); }

/* ===== TASTING COUNTER ===== */
.tasting-counter{
  display:flex; gap:1.1rem; overflow-x:auto; overflow-y:hidden; padding:1rem .2rem 1.6rem;
  scroll-snap-type:x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE/Edge */
}
.tasting-counter::-webkit-scrollbar{ display: none; width: 0; height: 0; }
.taste-card{
  flex:0 0 auto; width:210px; scroll-snap-align:start;
  background:var(--surface); border:1px solid var(--line); border-radius:10px;
  padding:1.4rem 1.2rem; position:relative; transition:transform .25s ease, box-shadow .25s ease;
}
.taste-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.taste-card .flag{
  font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; color:var(--indigo);
  border:1px solid var(--indigo); display:inline-block; padding:.15rem .5rem; border-radius:20px; margin-bottom:.9rem;
}
[data-theme="dark"] .taste-card .flag{ color:var(--copper); border-color:var(--copper); }
.taste-card h4{ font-size:1.25rem; margin-bottom:.2rem; }
.taste-card .popular{
  position:absolute; top:-10px; right:14px; background:var(--indigo); color:#fff;
  font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; padding:.25rem .55rem; border-radius:20px;
}

/* ===== MENU — WITH PHOTO VIEWER ===== */
.menu-pills{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.6rem; }
.menu-pill{
  border:1px solid var(--line); background:transparent; color:var(--ink-soft);
  padding:.55rem 1.3rem; border-radius:30px; font-size:.88rem; letter-spacing:.03em; cursor:pointer;
  transition:all .25s ease;
}
.menu-pill.active,.menu-pill:hover{ background:var(--indigo); border-color:var(--indigo); color:#fff; }
.menu-course{ display:none; }
.menu-course.active{ display:block; animation:fadein .4s ease; }
@keyframes fadein{ from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);} }

/* Menu photo feature */
.menu-photo-feature{
  border-radius:14px; overflow:hidden; position:relative;
  height:320px; background:var(--bg-2);
  box-shadow:var(--shadow-lg); border:1px solid var(--line); margin-bottom:1rem;
}
.menu-hero-img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s ease;
}
.menu-photo-feature:hover .menu-hero-img{ transform:scale(1.04); }

/* Menu thumbnails */
.menu-thumb-strip{
  display:flex; gap:.5rem; overflow-x:auto; overflow-y:hidden; padding:.2rem 0 .4rem;
  scrollbar-width: none; -ms-overflow-style: none;
}
.menu-thumb-strip::-webkit-scrollbar{ display: none; width: 0; height: 0; }
.menu-thumb{
  width:60px; height:60px; object-fit:cover; border-radius:8px; cursor:pointer; flex-shrink:0;
  border:2px solid transparent; opacity:.7;
  transition:opacity .2s ease, border-color .2s ease, transform .2s ease;
}
.menu-thumb:hover{ opacity:1; transform:translateY(-2px); }
.menu-thumb.active{ border-color:var(--indigo); opacity:1; }
[data-theme="dark"] .menu-thumb.active{ border-color:var(--copper); }

/* Menu rows */
.menu-row{
  display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  padding:1rem 0; border-bottom:1px dotted var(--line);
}
.menu-row .name{ font-family:'Cormorant Garamond',serif; font-size:1.35rem; font-weight:600; }
.menu-row .tag{ font-size:.68rem; color:var(--jade); letter-spacing:.08em; text-transform:uppercase; margin-left:.5rem; }
.menu-row .dots{ flex:1; border-bottom:1px dotted var(--line); margin:0 .5rem; transform:translateY(-6px); opacity:.5; }

/* ===== DRINKS GRID ===== */
.drink-card{
  background:var(--surface); border:1px solid var(--line); border-radius:14px;
  overflow:hidden; transition:transform .3s ease, box-shadow .3s ease; cursor:default;
}
.drink-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.drink-img-wrap{
  height:180px; overflow:hidden; background:var(--bg-2);
}
.drink-img-wrap img{
  width:100%; height:100%; object-fit:cover; transition:transform .5s ease;
}
.drink-card:hover .drink-img-wrap img{ transform:scale(1.07); }
.drink-name{
  text-align:center; padding:.85rem .6rem; font-family:'Cormorant Garamond',serif;
  font-size:1.15rem; font-weight:600; color:var(--ink);
}

/* ===== EVENTS ===== */
.event-card{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--radius-card); overflow:hidden; height:100%;
  transition:transform .35s ease, box-shadow .35s ease; box-shadow:var(--shadow);
}
.event-card:hover{ transform:translateY(-10px); box-shadow:var(--shadow-lg); }
.event-card-img{ position:relative; height:300px; overflow:hidden; }
.event-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; display:block; }
.event-card:hover .event-card-img img{ transform:scale(1.07); }
.event-card-img-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,26,38,.55) 0%, transparent 50%);
  pointer-events:none;
}
.event-card-body{ padding:1.8rem; }
.event-tag{
  font-size:.68rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--indigo); font-weight:600; display:inline-block; margin-bottom:.5rem;
}
[data-theme="dark"] .event-tag{ color:var(--copper); }
.event-title{ font-size:1.65rem; margin-bottom:.7rem; }
.event-desc{ color:var(--ink-soft); font-size:.92rem; line-height:1.65; margin-bottom:1.4rem; }

/* ===== REVIEWS ===== */
.rating-big{ font-family:'Cormorant Garamond',serif; font-size:5rem; line-height:1; font-weight:600; }
.bar-row{ display:flex; align-items:center; gap:.7rem; margin-bottom:.5rem; font-size:.8rem; color:var(--ink-soft); }
.bar-track{ flex:1; height:6px; background:var(--bg-2); border-radius:10px; overflow:hidden; }
.bar-fill{ height:100%; background:var(--copper); border-radius:10px; }
.quote-card{
  background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:1.8rem;
  height:100%; position:relative; transition:box-shadow .25s ease;
}
.quote-card:hover{ box-shadow:var(--shadow); }
.quote-card i.bi-quote{ font-size:1.6rem; color:var(--copper-soft); }
.quote-card p{ font-family:'Cormorant Garamond',serif; font-size:1.2rem; font-style:italic; margin:.8rem 0 0; }

/* ===== GALLERY — MASONRY GRID ===== */
.gallery-filters{
  display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center;
}
.gallery-filter{
  border:1px solid var(--line); background:transparent; color:var(--ink-soft);
  padding:.5rem 1.4rem; border-radius:30px; font-size:.85rem; cursor:pointer;
  transition:all .25s ease;
}
.gallery-filter.active,.gallery-filter:hover{
  background:var(--indigo); border-color:var(--indigo); color:#fff;
}

.gallery-masonry{
  columns:4 220px; gap:1rem;
}
.gallery-item{
  break-inside:avoid; margin-bottom:1rem;
  border-radius:12px; overflow:hidden; position:relative; cursor:pointer;
  box-shadow:var(--shadow); border:1px solid var(--line);
  transition:transform .35s ease, box-shadow .35s ease;
}
.gallery-item.hidden,
.gallery-item.hidden-by-limit{ display:none !important; }
.gallery-item img{
  width:100%; display:block; transition:transform .5s ease;
}
.gallery-item:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.gallery-item:hover img{ transform:scale(1.06); }
.gallery-item-overlay{
  position:absolute; inset:0;
  background:rgba(20,26,38,0); display:flex; align-items:center; justify-content:center;
  transition:background .3s ease;
}
.gallery-item-overlay i{
  font-size:1.8rem; color:#fff; opacity:0;
  transition:opacity .3s ease, transform .3s ease;
  transform:scale(.7);
}
.gallery-item:hover .gallery-item-overlay{ background:rgba(20,26,38,.4); }
.gallery-item:hover .gallery-item-overlay i{ opacity:1; transform:scale(1); }

/* ===== LIGHTBOX ===== */
.lightbox{
  position:fixed; inset:0; z-index:9999; display:none;
  align-items:center; justify-content:center;
}
.lightbox.open{ display:flex; }
.lightbox-backdrop{
  position:absolute; inset:0; background:rgba(10,14,20,.95); cursor:pointer;
}
.lb-img-wrap{
  position:relative; z-index:1; max-width:90vw; max-height:88vh;
  display:flex; align-items:center; justify-content:center;
}
.lb-img-wrap img{
  max-width:90vw; max-height:86vh; border-radius:10px;
  box-shadow:0 40px 100px rgba(0,0,0,.8);
  object-fit:contain;
  animation:lbFadeIn .25s ease;
}
@keyframes lbFadeIn{ from{opacity:0;transform:scale(.95);}to{opacity:1;transform:scale(1);} }
.lb-close,.lb-arrow{
  position:fixed; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
  color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .2s ease, transform .2s ease; z-index:2;
}
.lb-close{
  top:1.4rem; right:1.4rem; width:44px; height:44px; font-size:1.1rem;
}
.lb-close:hover{ background:rgba(255,255,255,.25); transform:rotate(90deg); }
.lb-arrow{ top:50%; transform:translateY(-50%); width:48px; height:48px; font-size:1.4rem; }
.lb-prev{ left:1.4rem; }
.lb-next{ right:1.4rem; }
.lb-arrow:hover{ background:rgba(255,255,255,.2); }
.lb-counter{
  position:fixed; bottom:1.4rem; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.6); font-size:.82rem; letter-spacing:.08em; z-index:2;
}

/* ===== VISIT ===== */
.visit-card{ background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:2.4rem; }
.visit-row{ display:flex; gap:1rem; padding:.9rem 0; border-bottom:1px solid var(--line); }
.visit-row:last-child{ border-bottom:none; }
.visit-row i{ color:var(--indigo); font-size:1.1rem; width:20px; }
[data-theme="dark"] .visit-row i{ color:var(--copper); }
.map-wrapper{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:var(--surface);
  height:330px;
  display:flex;
  flex-direction:column;
  transition:border-color .4s ease, box-shadow .4s ease;
}
.map-iframe{
  width:100%;
  height:260px;
  border:0;
  flex:1;
  transition:filter .4s ease;
}
[data-theme="dark"] .map-iframe{
  filter:brightness(0.85) contrast(1.1) invert(0.9) hue-rotate(180deg);
}
.map-bar{
  background:var(--surface);
  border-top:1px solid var(--line);
  padding:.75rem 1.1rem;
  font-size:.85rem;
  color:var(--ink);
}
.text-copper{ color:var(--copper); }

/* Location Features Card (Fills empty space) */
.location-features-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  padding:1.4rem 1.6rem;
  box-shadow:var(--shadow);
  transition:border-color .4s ease, background .4s ease;
}
.loc-feature-item{
  display:flex;
  align-items:flex-start;
  gap:.85rem;
}
.loc-icon{
  width:38px;
  height:38px;
  border-radius:10px;
  background:color-mix(in srgb, var(--indigo) 10%, transparent);
  color:var(--indigo);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.1rem;
  flex-shrink:0;
  transition:background .4s ease, color .4s ease;
}
[data-theme="dark"] .loc-icon{
  background:color-mix(in srgb, var(--copper) 16%, transparent);
  color:var(--copper);
}

/* ===== OUR BRANCHES ===== */
.branch-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  height:100%;
  display:flex;
  flex-direction:column;
  box-shadow:var(--shadow);
  transition:transform .35s ease, box-shadow .35s ease, border-color .4s ease;
}
.branch-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-lg);
}
.branch-img-wrap{
  position:relative;
  height:210px;
  overflow:hidden;
  background:var(--bg-2);
}
.branch-img-wrap img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease;
}
.branch-card:hover .branch-img-wrap img{
  transform:scale(1.06);
}
.branch-badge{
  position:absolute; top:12px; right:12px;
  background:var(--indigo); color:#fff;
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  padding:.3rem .75rem; border-radius:20px; font-weight:600;
  box-shadow:0 2px 8px rgba(0,0,0,0.2);
}
[data-theme="dark"] .branch-badge{ background:var(--copper); }
.branch-card-body{
  padding:1.6rem;
  display:flex; flex-direction:column; flex:1;
}
.branch-city{
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--indigo); font-weight:600;
}
[data-theme="dark"] .branch-city{ color:var(--copper); }
.branch-rating{
  font-size:.85rem; font-weight:600; color:var(--ink);
}
.branch-title{
  font-size:1.45rem; margin-bottom:.3rem; font-family:'Cormorant Garamond',serif;
}
.branch-price{
  color:var(--copper); font-size:.88rem; font-weight:600; margin-bottom:.7rem;
}
.branch-address{
  color:var(--ink-soft); font-size:.85rem; line-height:1.5; margin-bottom:.9rem;
}
.branch-tags{
  display:flex; flex-wrap:wrap; gap:.4rem;
}
.branch-tag{
  font-size:.68rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-soft); border:1px solid var(--line);
  padding:.2rem .6rem; border-radius:20px; background:var(--bg);
}
.branch-hours{
  font-size:.82rem; color:var(--ink-soft); font-weight:500;
}

/* ===== FOOTER ===== */
footer{
  background:var(--footer-bg);
  color:var(--footer-ink);
  padding:4rem 0 0;
  position:relative;
  transition:background .4s ease, color .4s ease;
}
footer::before{
  content:"";
  display:block;
  height:3px;
  background:linear-gradient(90deg, var(--indigo), var(--copper), var(--jade));
}
.footer-inner{
  padding:3.5rem 0 2rem;
}
footer h5{
  font-family:'Cormorant Garamond',serif;
  color:var(--footer-ink);
  font-size:1.35rem;
  font-weight:600;
  margin-bottom:1.2rem;
  padding-bottom:.6rem;
  border-bottom:1px solid var(--footer-line);
}
footer p{
  color:var(--footer-ink-soft);
  font-size:.88rem;
  line-height:1.7;
}
footer a{
  color:var(--footer-ink-soft) !important;
  text-decoration:none;
  font-size:.88rem;
  transition:color .2s ease;
  display:inline-flex;
  align-items:center;
}
footer a:hover{ color:var(--copper-soft) !important; }
footer a i{ color:var(--copper-soft); font-size:.9rem; }
.footer-brand{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-bottom:1rem;
}
.footer-logo{
  height:48px;
  width:48px;
  object-fit:contain;
  border-radius:10px;
  border:1px solid var(--footer-logo-border);
  padding:3px;
  background:var(--footer-icon-bg);
  transition:border-color .4s ease, background .4s ease;
}
.footer-brand-name{
  font-family:'Cormorant Garamond',serif;
  font-size:1.5rem;
  font-weight:600;
  color:var(--footer-ink);
  line-height:1.1;
}
.footer-brand-name em{
  font-style:italic;
  color:var(--copper-soft);
}
.footer-tagline{
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--footer-ink-muted);
  margin-top:.15rem;
}
.footer-links{
  display:flex;
  flex-direction:column;
  gap:.75rem;
  margin-top:.4rem;
}
.footer-links a{
  padding:.2rem 0;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.footer-links a:hover{
  border-bottom-color:var(--copper-soft);
  opacity:.7;
}
.footer-contact-item{
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  padding:.5rem 0;
  border-bottom:1px solid var(--footer-line);
  transition:border-color .4s ease;
}
.footer-contact-item:last-child{ border-bottom:none; }
.footer-contact-item .fc-icon{
  width:32px; height:32px; border-radius:8px;
  background:var(--footer-icon-bg);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  color:var(--copper-soft);
  font-size:.95rem;
  transition:background .4s ease;
}
.footer-contact-item .fc-text{ display:flex; flex-direction:column; }
.footer-contact-item .fc-label{
  font-size:.65rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--footer-ink-muted); margin-bottom:.1rem;
}
.footer-contact-item a,
.footer-contact-item span{
  font-size:.88rem !important;
  color:var(--footer-ink-soft) !important;
}
.footer-contact-item a:hover{ color:var(--copper-soft) !important; }
.footer-bottom{
  border-top:1px solid var(--footer-line);
  padding:1.4rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.8rem;
  transition:border-color .4s ease;
}
.foot-copy{
  font-size:.78rem;
  color:var(--footer-ink-muted);
}
.foot-badges{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}
.foot-badge{
  font-size:.7rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--footer-ink-muted);
  border:1px solid var(--footer-line);
  padding:.25rem .7rem;
  border-radius:20px;
  transition:color .4s ease, border-color .4s ease;
}

/* ===== RESPONSIVE & MOBILE TEXT CENTERING ===== */
@media (max-width: 991.98px){
  .hero-content{
    text-align:center;
    padding-top:7rem;
  }
  .hero-content .d-flex,
  .hero-badges{
    justify-content:center !important;
  }
  .hero-rating-chip,
  .hero-lede{
    margin-left:auto;
    margin-right:auto;
  }
  .gallery-masonry{ columns:3 180px; }
}

@media (max-width: 767.98px){
  section{ padding:3.2rem 0; }
  
  /* Mobile Text Centering Rule for Better View */
  .hero-content h1, 
  .hero-lede,
  section h2, 
  section .eyebrow, 
  section .lede,
  .visit-card,
  .event-card-body,
  .quote-card,
  footer,
  .footer-brand,
  .footer-contact-item,
  .map-bar{
    text-align:center !important;
  }

  .hero-content h1{ font-size:clamp(2.1rem, 7.5vw, 3rem); }
  .min-vh-hero{ min-height:auto; }
  
  .hero-image-card{
    max-width:100%;
    margin:0 auto;
  }
  .hero-card-img{
    height:250px;
  }
  .hero-card-badge{
    left:50%;
    transform:translateX(-50%);
    white-space:nowrap;
  }
  
  .ticket-item{
    border-right:none;
    border-bottom:1px dashed var(--line);
  }
  .ticket-item:last-child{
    border-bottom:none;
  }

  /* Centering buttons & flex elements on mobile */
  .menu-pills, 
  .gallery-filters, 
  .foot-badges, 
  .hero-badges,
  .hero-content .d-flex,
  .visit-card .d-flex,
  .map-bar .d-flex{
    justify-content:center !important;
  }

  .visit-row{
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:.4rem;
  }

  .location-features-card,
  .branch-card-body{
    text-align:center !important;
  }
  .loc-feature-item{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .branch-tags,
  .branch-card-body .d-flex{
    justify-content:center !important;
  }

  .footer-brand{
    justify-content:center;
  }

  .footer-contact-item{
    flex-direction:column;
    align-items:center;
  }

  .footer-links{
    align-items:center;
  }

  .footer-bottom{
    justify-content:center;
    text-align:center;
  }

  .menu-photo-feature{ height:220px; }
  .gallery-masonry{ columns:2 140px; }
  .map-wrapper{ height:270px; }
  .map-iframe{ height:200px; }
}

@media (max-width: 480px){
  .gallery-masonry{ columns:2 120px; }
  .hero-card-img{ height:210px; }
  .taste-card{ width:185px; padding:1.1rem .9rem; }
}

@media (prefers-reduced-motion: reduce){
  .hero-bg-img,.gallery-item img,.menu-hero-img{ transition:none; }
  .hero:hover .hero-bg-img{ transform:none; }
  .hero-scroll-cue{ animation:none; }
}
