/* ═══════════════════════════════════════════════════════════
   Vinny's Italian Grill & Pizzeria – Main Stylesheet v4.0
   © 2025 Vinny's / Webtech-NET. All rights reserved.
═══════════════════════════════════════════════════════════ */

:root {
  --red:    #c0341e; --red2:   #a02a16;
  --green:  #2e6b35; --green2: #1e4a24;
  --ochre:  #c4892a; --ochre2: #e8b060;
  --wood:   #3d2410; --cream:  #faf6ef;
  --cream2: #f0e8d8; --cream3: #fdf3e3;
  --warm:   #fffdf8; --char:   #2c2218;
  --gray:   #7a6a58; --check:  #3a5a30;
  --sh:  0 4px 24px rgba(44,34,24,.13);
  --shL: 0 12px 50px rgba(44,34,24,.22);
  --r:   6px;
  --tr:  .28s ease;
  --ff-d: "Playfair Display","Georgia","Times New Roman",serif;
  --ff-b: "Lato","Trebuchet MS","Helvetica Neue",Arial,sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--cream); color: var(--char); font-family: var(--ff-b); line-height: 1.7; overflow-x: hidden; }
img  { max-width: 100%; display: block; }
a    { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; font-family: var(--ff-b); }

/* ── Utility ── */
.tag-l    { display:inline-block;font-size:10px;font-weight:700;letter-spacing:3.5px;text-transform:uppercase;color:var(--ochre); }
.ht       { font-family:var(--ff-d);font-size:clamp(2rem,4.5vw,3.4rem);font-weight:700;line-height:1.15; }
.ht em    { font-style:italic;color:var(--green); }
.ht.lt    { color:#fff; }
.ht.lt em { color:var(--ochre2); }
.divider  { display:block;width:48px;height:3px;background:var(--ochre);border-radius:2px;margin:14px 0; }
.fav-badge { display:inline-block;background:var(--red);color:#fff;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:3px 9px;border-radius:20px;margin-bottom:6px; }
.screen-reader-text { position:absolute;clip:rect(1px,1px,1px,1px);overflow:hidden;height:1px;width:1px; }

/* ── Buttons ── */
.btn-r  { display:inline-block;background:var(--red);color:#fff;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:13px 32px;border-radius:var(--r);transition:all var(--tr);box-shadow:0 4px 16px rgba(192,52,30,.3); }
.btn-r:hover { background:var(--red2);transform:translateY(-2px); }
.btn-g  { display:inline-block;background:var(--green);color:#fff;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:13px 32px;border-radius:var(--r);transition:all var(--tr); }
.btn-g:hover { background:var(--green2);transform:translateY(-2px); }
.btn-o  { display:inline-block;background:transparent;color:var(--char);border:2px solid #c49a6c;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:11px 28px;border-radius:var(--r);transition:all var(--tr); }
.btn-o:hover { border-color:var(--green);color:var(--green);transform:translateY(-2px); }
.btn-ol { display:inline-block;background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:11px 28px;border-radius:var(--r);transition:all var(--tr); }
.btn-ol:hover { border-color:var(--ochre2);color:var(--ochre2); }
.order-btn { display:inline-block;background:var(--red);color:#fff;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:8px 18px;border-radius:var(--r);transition:all var(--tr); }
.order-btn:hover { background:var(--red2);transform:translateY(-1px); }
.btn-gift-ft  { display:block;background:var(--ochre);color:#fff;text-align:center;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:9px 16px;border-radius:var(--r);transition:background var(--tr); }
.btn-gift-ft:hover { background:#a5711e; }
.btn-order-ft { display:block;background:var(--red);color:#fff;text-align:center;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:9px 16px;border-radius:var(--r);transition:background var(--tr); }
.btn-order-ft:hover { background:var(--red2); }

/* ── Navbar ── */
.nav { position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 4%;height:68px;transition:background .4s,box-shadow .4s; }
.nav.sc { background:rgba(250,246,239,.97);box-shadow:0 2px 20px rgba(44,34,24,.12); }
.nav-logo img, .nav-logo .custom-logo { height:46px;width:auto;background:#fff;border-radius:50%;padding:2px;box-shadow:0 2px 8px rgba(0,0,0,.15); }
.nav-logo-text { font-family:var(--ff-d);font-size:1.1rem;font-weight:700;color:#fff; }
.nav.sc .nav-logo-text { color:var(--char); }
.nav-links { display:flex;align-items:center;gap:22px;list-style:none; }
.nav-links a, .nav-links li a { font-size:10.5px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;color:rgba(255,255,255,.9);transition:color var(--tr);position:relative;cursor:pointer; }
.nav.sc .nav-links a, .nav.sc .nav-links li a { color:var(--char); }
.nav-links a::after { content:"";position:absolute;bottom:-3px;left:0;width:0;height:2px;background:var(--green);transition:width var(--tr); }
.nav-links a:hover::after, .nav-links a.current-menu-item::after { width:100%; }
.nav-links a:hover { color:var(--green) !important; }
.nav-links .nav-cta { background:var(--red) !important;color:#fff !important;padding:8px 18px;border-radius:var(--r); }
.nav-links .nav-cta::after { display:none !important; }
.nav-links .nav-cta:hover { background:var(--red2) !important; }
.social-links--nav { display:flex;gap:8px; }
.social-links--nav a { display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);transition:all var(--tr); }
.nav.sc .social-links--nav a { border-color:rgba(44,34,24,.2); }
.social-links--nav a:hover { border-color:var(--green); }
.social-links--nav svg { width:13px;height:13px;fill:rgba(255,255,255,.8); }
.nav.sc .social-links--nav svg { fill:var(--gray); }
.hamburger { display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:none; }
.hamburger span { display:block;width:24px;height:2px;background:#fff;transition:all .3s;border-radius:2px; }
.nav.sc .hamburger span { background:var(--char); }
.mobile-menu { display:none;position:fixed;top:68px;left:0;right:0;background:rgba(250,246,239,.98);box-shadow:0 8px 30px rgba(44,34,24,.15);z-index:999;padding:20px 5%; }
.mobile-menu.open { display:block; }
.mobile-menu a, .mobile-menu li a { display:block;padding:12px 0;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--char);border-bottom:1px solid rgba(44,34,24,.08);cursor:pointer; }
.mobile-menu a:hover { color:var(--green); }

/* ── Hero ── */
.hero { position:relative;height:100vh;min-height:580px;display:flex;align-items:center;overflow:hidden;background-size:cover;background-position:center; }
.hero-ov { position:absolute;inset:0;background:linear-gradient(105deg,rgba(44,34,24,.87) 0%,rgba(100,60,20,.65) 52%,rgba(44,34,24,.5) 100%); }
.hero-cnt { position:relative;z-index:2;padding:0 5%;max-width:680px;animation:fadeUp 1s ease both; }
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
.hero-badge { display:inline-flex;align-items:center;gap:12px;margin-bottom:18px; }
.hero-badge span { font-size:10px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--ochre2); }
.hero-badge::before, .hero-badge::after { content:"";display:block;width:24px;height:1px;background:var(--ochre2); }
.hero-h { font-family:var(--ff-d);font-size:clamp(2.8rem,8vw,5.4rem);font-weight:700;line-height:1;color:#fff;margin-bottom:12px; }
.hero-h .it { display:block;font-style:italic;font-weight:400;color:var(--ochre2);font-size:.78em; }
.hero-s { font-family:var(--ff-d);font-size:1.1rem;font-style:italic;color:rgba(255,255,255,.7);margin-bottom:32px; }
.hero-btns { display:flex;gap:12px;flex-wrap:wrap; }
.hero-rib { position:absolute;bottom:0;left:0;right:0;height:9px;background:repeating-linear-gradient(90deg,#3a5a30 0,#3a5a30 10px,#fff 10px,#fff 20px);opacity:.45; }

/* ── Marquee ── */
.mq { background:var(--green);padding:11px 0;overflow:hidden;white-space:nowrap; }
.mq-t { display:inline-block;animation:mq 28s linear infinite; }
.mq span { font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:#fff;padding:0 28px; }
.mq .dot { color:rgba(255,255,255,.38);padding:0; }
@keyframes mq { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

/* ── Sections ── */
.sec { padding:72px 5%; }
.sec-inner { max-width:1220px;margin:0 auto; }

/* ── About ── */
.about-grid { display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center; }
.about-photos { position:relative;height:470px; }
.ap-main { height:83%;width:72%;object-fit:cover;position:absolute;top:0;left:0;border-radius:6px;box-shadow:var(--shL); }
.ap-sec  { width:54%;height:51%;object-fit:cover;position:absolute;bottom:0;right:0;border-radius:6px;box-shadow:var(--shL);border:5px solid var(--cream); }
.ap-badge { position:absolute;bottom:60px;left:-12px;background:var(--red);color:#fff;width:82px;height:82px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--sh); }
.ap-badge strong { font-family:var(--ff-d);font-size:1.65rem;font-weight:700;line-height:1; }
.ap-badge small  { font-size:7px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;opacity:.85;text-align:center; }
.about-txt p { color:var(--gray);font-size:.93rem;margin-top:14px;line-height:1.75; }
.stats { display:flex;gap:26px;margin-top:28px;padding-top:28px;border-top:2px solid var(--cream2); }
.st strong { display:block;font-family:var(--ff-d);font-size:1.85rem;font-weight:700;color:var(--green); }
.st small  { font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray); }

/* ── Category grid ── */
.cats-sec { background:var(--wood); }
.cats-hd  { text-align:center;margin-bottom:46px; }
.cats-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:3px;max-width:1020px;margin:0 auto; }
.cat-item { position:relative;aspect-ratio:3/4;overflow:hidden;cursor:pointer;display:block; }
.cat-item img { width:100%;height:100%;object-fit:cover;transition:transform .6s,filter .4s;filter:brightness(.46); }
.cat-item:hover img { transform:scale(1.07);filter:brightness(.62); }
.cat-ov  { position:absolute;inset:0;background:linear-gradient(to top,rgba(44,34,24,.9) 0%,transparent 54%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:24px 16px; }
.cat-n   { font-family:var(--ff-d);font-size:1.25rem;font-weight:600;color:#fff;text-align:center;margin-bottom:4px; }
.cat-l   { font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ochre2);opacity:0;transform:translateY(5px);transition:all .3s; }
.cat-item:hover .cat-l { opacity:1;transform:translateY(0); }

/* ── Dish cards ── */
.dishes { display:grid;grid-template-columns:repeat(3,1fr);gap:20px; }
.dish-card { background:var(--warm);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);transition:transform var(--tr),box-shadow var(--tr);cursor:pointer; }
.dish-card:hover { transform:translateY(-4px);box-shadow:var(--shL); }
.dish-card img { width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s; }
.dish-card:hover img { transform:scale(1.05); }
.dish-body  { padding:18px 18px 22px; }
.dish-name  { font-family:var(--ff-d);font-size:1.08rem;font-weight:600;margin-bottom:6px; }
.dish-desc  { font-size:.8rem;color:var(--gray);line-height:1.6;margin-bottom:12px; }
.dish-ft    { display:flex;justify-content:space-between;align-items:center; }
.dish-price { font-family:var(--ff-d);font-size:1.15rem;font-weight:700;color:var(--green); }

/* ── Atmosphere ── */
.atm-grid { display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto auto;gap:12px; }
.atm-c    { position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh); }
.atm-c img { width:100%;object-fit:cover;display:block;transition:transform .5s; }
.atm-c:hover img { transform:scale(1.04); }
.atm-c:first-child { grid-row:span 2; }
.atm-c:first-child img { height:100%; }
.atm-c:not(:first-child) img { height:190px; }
.atm-cap { position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(44,34,24,.75),transparent);padding:16px 12px 10px;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.85); }

/* ── Pizza CTA ── */
.pizza-cta  { position:relative;min-height:440px;display:flex;align-items:center;overflow:hidden; }
.pcta-bg    { position:absolute;inset:0;background-size:cover;background-position:center; }
.pcta-ov    { position:absolute;inset:0;background:linear-gradient(to right,rgba(44,34,24,.94) 36%,rgba(44,34,24,.42) 100%); }
.pcta-cnt   { position:relative;z-index:2;padding:72px 5%;max-width:540px; }
.pcta-cnt p { color:rgba(255,255,255,.62);margin:12px 0 28px;font-size:.92rem; }

/* ── Gift Card banner ── */
.gift-sec   { background:var(--green2);display:flex;align-items:center;justify-content:space-between;gap:36px;flex-wrap:wrap;padding:64px 5%; }
.gift-t h2  { font-family:var(--ff-d);font-size:clamp(1.7rem,3vw,2.5rem);font-weight:600;color:var(--cream);margin-bottom:8px; }
.gift-t p   { color:rgba(255,255,255,.55);font-size:.88rem;margin-bottom:22px; }

/* ── Loc mini ── */
.locs-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;max-width:1120px;margin:0 auto 38px; }
.loc-card  { background:var(--warm);border:2px solid transparent;border-radius:var(--r);padding:22px 18px;box-shadow:var(--sh);transition:border-color var(--tr),transform var(--tr);position:relative;overflow:hidden; }
.loc-card::before { content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--green) 33%,#fff 33% 66%,var(--red) 66%); }
.loc-card:hover { border-color:var(--green);transform:translateY(-3px); }
.loc-card h3 { font-family:var(--ff-d);font-size:.95rem;font-weight:600;margin-bottom:4px;margin-top:6px; }
.loc-card p  { font-size:.78rem;color:var(--gray);margin-bottom:10px; }
.loc-link    { font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--green);display:inline-flex;align-items:center;gap:4px;transition:gap var(--tr); }
.loc-link:hover { gap:8px; }
.loc-link svg { width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.5; }

/* ── Social section ── */
.soc-sec { background:var(--ochre);text-align:center; }
.soc-sec h2 { font-family:var(--ff-d);font-size:clamp(1.7rem,3vw,2.5rem);font-weight:600;color:#fff;margin-bottom:8px; }
.soc-sec p  { color:rgba(255,255,255,.68);font-size:.88rem;margin-bottom:28px; }
.soc-btns   { display:flex;gap:14px;justify-content:center;flex-wrap:wrap; }
.soc-btn    { display:flex;align-items:center;gap:10px;padding:13px 28px;border-radius:var(--r);font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;transition:transform var(--tr),box-shadow var(--tr); }
.soc-btn:hover { transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3); }
.soc-btn svg { width:17px;height:17px;fill:currentColor; }
.soc-fb { background:#1877F2;color:#fff; }
.soc-ig { background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff; }

/* ── Footer ── */
.site-footer { background:var(--wood); }
.ft-top  { padding:56px 5%;display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:40px;max-width:1220px;margin:0 auto; }
.ft-bn   { font-family:var(--ff-d);font-size:1.5rem;font-weight:700;color:var(--cream); }
.ft-bs   { font-size:9px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--ochre);margin-bottom:14px; }
.ft-brand p { font-size:.82rem;color:rgba(255,255,255,.4);line-height:1.8;margin-bottom:20px; }
.social-links--footer { display:flex;gap:8px;margin-top:4px; }
.social-links--footer a { display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:50%;transition:all var(--tr); }
.social-links--footer a:hover { background:var(--green);border-color:var(--green); }
.social-links--footer svg { width:13px;height:13px;fill:rgba(255,255,255,.4); }
.social-links--footer a:hover svg { fill:#fff; }
.ft-col h4 { font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--ochre);margin-bottom:15px; }
.ft-col ul { list-style:none; }
.ft-col li { margin-bottom:8px; }
.ft-col li a, .ft-col li span { font-size:.82rem;color:rgba(255,255,255,.42);transition:color var(--tr);cursor:pointer; }
.ft-col li a:hover, .ft-col li span:hover { color:var(--cream); }
.ft-col address { font-style:normal;font-size:.82rem;color:rgba(255,255,255,.42);line-height:1.9; }
.ft-nl-d { font-size:.8rem;color:rgba(255,255,255,.4);margin-bottom:11px; }
.ft-nl input { width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--cream);font-family:inherit;font-size:.82rem;padding:9px 12px;margin-bottom:8px;border-radius:var(--r);outline:none;transition:border-color var(--tr); }
.ft-nl input::placeholder { color:rgba(255,255,255,.26); }
.ft-nl input:focus { border-color:var(--ochre); }
.ft-nl button { width:100%;background:var(--red);color:#fff;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:10px;border-radius:var(--r);transition:background var(--tr);border:none;cursor:pointer; }
.ft-nl button:hover { background:var(--red2); }
.ft-bot { border-top:1px solid rgba(255,255,255,.06);padding:18px 5%;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;max-width:1220px;margin:0 auto; }
.ft-bot p, .ft-bot a { font-size:.74rem;color:rgba(255,255,255,.26); }
.ft-bot a:hover { color:var(--ochre2); }
.ft-rate { display:flex;align-items:center;gap:5px; }
.ft-rate svg { width:13px;height:13px;fill:#fbbc04; }

/* ── Page hero ── */
.pg-hero     { position:relative;height:320px;display:flex;align-items:flex-end;overflow:hidden;margin-top:68px; }
.pg-hero-bg  { position:absolute;inset:0;background-size:cover;background-position:center; }
.pg-hero-ov  { position:absolute;inset:0;background:linear-gradient(to top,rgba(44,34,24,.94) 0%,rgba(44,34,24,.4) 65%,rgba(44,34,24,.25) 100%); }
.pg-hero-cnt { position:relative;z-index:2;padding:0 5% 42px;width:100%; }
.pg-hero-cnt .tag-l { margin-bottom:8px;color:var(--ochre2); }

/* ── Menu page ── */
.menu-nav-bar { background:var(--green);padding:0 5%;display:flex;flex-wrap:nowrap;overflow-x:auto;position:sticky;top:68px;z-index:100;scrollbar-width:none; }
.menu-nav-bar::-webkit-scrollbar { display:none; }
.menu-nav-bar a { font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.72);padding:14px 16px;white-space:nowrap;border-bottom:3px solid transparent;transition:all .2s;cursor:pointer; }
.menu-nav-bar a:hover, .menu-nav-bar a.active { color:#fff;border-bottom-color:var(--ochre2); }
.menu-photo-strip { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:var(--cream2);padding:30px 5%; }
.menu-strip-item { border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);aspect-ratio:4/3; }
.menu-strip-item img { width:100%;height:100%;object-fit:cover; }
.menu-section { padding:46px 5%;max-width:1220px;margin:0 auto; }
.menu-section-title { font-family:var(--ff-d);font-size:1.5rem;font-weight:700;color:var(--char);margin-bottom:4px;padding-bottom:12px;border-bottom:2px solid var(--cream2);display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.menu-section-title .chip { font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ochre);background:rgba(196,137,42,.1);padding:3px 9px;border-radius:20px; }
.menu-section-note { font-size:.8rem;color:var(--gray);margin-bottom:18px;font-style:italic; }

/* ── Menu Items ── */
.mi { display:flex;align-items:flex-start;padding:12px 10px;border-bottom:1px solid rgba(44,34,24,.06);transition:background var(--tr);gap:12px;cursor:pointer; }
.mi:hover { background:rgba(196,137,42,.04); }
.mi-thumb { position:relative;width:72px;min-width:72px;height:60px;border-radius:5px;overflow:hidden;flex-shrink:0;box-shadow:0 2px 8px rgba(44,34,24,.15); }
.mi-img   { width:100%;height:100%;object-fit:cover;transition:transform .4s;display:block; }
.mi-thumb:hover .mi-img { transform:scale(1.08); }
.mi-zoom  { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(44,34,24,.3);color:#fff;font-size:16px;opacity:0;transition:opacity .2s; }
.mi-thumb:hover .mi-zoom { opacity:1; }
.mi-l     { flex:1; }
.mi-name  { font-family:var(--ff-d);font-size:.96rem;font-weight:600;color:var(--char);line-height:1.3; }
.mi-name .fv { font-size:8px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--red);background:rgba(192,52,30,.1);padding:2px 7px;border-radius:12px;margin-left:6px;vertical-align:middle; }
.mi-desc  { font-size:.75rem;color:var(--gray);margin-top:3px;line-height:1.5;display:block; }
.mi-add-opts { font-size:.72rem;color:var(--ochre);display:block;margin-top:2px; }
.mi-price { font-family:var(--ff-d);font-size:.95rem;font-weight:700;color:var(--green);white-space:nowrap;padding-top:2px;min-width:52px;text-align:right; }
.mi-grid  { display:grid;grid-template-columns:1fr 1fr; }
.no-items { padding:20px;color:var(--gray);font-style:italic;font-size:.88rem; }
.pizza-sizes { display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:20px; }
.ps { padding:16px;border-radius:var(--r);text-align:center; }
.ps-featured { background:var(--green);color:#fff; }
.ps-plain    { background:var(--cream2); }
.ps h4 { font-family:var(--ff-d);font-size:.95rem;font-weight:700;margin-bottom:4px; }
.ps p  { font-size:.76rem;opacity:.8; }
.toppings-grid { display:flex;flex-wrap:wrap;gap:8px;margin-top:12px; }
.topping-tag   { font-size:.76rem;background:var(--cream2);color:var(--gray);padding:5px 11px;border-radius:20px;border:1px solid rgba(44,34,24,.08); }
.menu-sep  { height:1px;background:linear-gradient(to right,transparent,var(--ochre),transparent);margin:30px 5%;opacity:.35; }
.menu-cta  { background:var(--wood);padding:50px 5%;text-align:center; }
.menu-cta h3 { font-family:var(--ff-d);font-size:1.7rem;color:var(--cream);margin-bottom:8px; }
.menu-cta p  { color:rgba(255,255,255,.52);margin-bottom:24px;font-size:.88rem; }

/* ── Dish modal ── */
.dish-modal { position:fixed;inset:0;z-index:9999;background:rgba(44,34,24,.88);display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px); }
.dish-modal.open { display:flex; }
.dish-modal-inner { background:var(--warm);border-radius:10px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.5);animation:popIn .25s ease; }
@keyframes popIn { from{opacity:0;transform:scale(.92)} to{opacity:1;transform:scale(1)} }
.dish-modal-body  { padding:22px 24px 26px; }
.dish-modal-name  { font-family:var(--ff-d);font-size:1.35rem;font-weight:700;color:var(--char);margin-bottom:6px; }
.dish-modal-price { font-family:var(--ff-d);font-size:1.3rem;font-weight:700;color:var(--green);margin-bottom:10px; }
.dish-modal-desc  { font-size:.87rem;color:var(--gray);line-height:1.7;margin-bottom:18px; }
.dish-modal-close { position:absolute;top:16px;right:16px;width:36px;height:36px;background:rgba(255,255,255,.15);border:none;border-radius:50%;color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s; }
.dish-modal-close:hover { background:rgba(255,255,255,.3); }
.dish-modal-footer { display:flex;gap:10px;flex-wrap:wrap; }

/* ── Locations page ── */
.loc-big { background:var(--warm);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;margin-bottom:18px;display:grid;grid-template-columns:260px 1fr;transition:box-shadow var(--tr); }
.loc-big:hover { box-shadow:var(--shL); }
.loc-big-img { overflow:hidden;min-height:160px; }
.loc-big-img img { width:100%;height:100%;object-fit:cover;transition:transform .5s; }
.loc-big:hover .loc-big-img img { transform:scale(1.04); }
.loc-big-body { padding:26px 28px;display:flex;flex-direction:column;justify-content:center;border-left:4px solid var(--green); }
.loc-big h3   { font-family:var(--ff-d);font-size:1.15rem;font-weight:700;margin-bottom:6px; }
.loc-big p    { font-size:.83rem;color:var(--gray);margin-bottom:14px;line-height:1.7; }
.loc-big-btns { display:flex;gap:10px;flex-wrap:wrap; }

/* ── Specials page ── */
.special-card { background:var(--warm);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);display:grid;grid-template-columns:1fr 1.4fr;margin-bottom:22px;transition:box-shadow var(--tr); }
.special-card:hover { box-shadow:var(--shL); }
.special-card.rev { grid-template-columns:1.4fr 1fr; }
.special-card.rev .sp-img  { order:2; }
.special-card.rev .sp-body { order:1; }
.sp-img  { overflow:hidden;min-height:260px; }
.sp-img img { width:100%;height:100%;object-fit:cover;transition:transform .5s; }
.special-card:hover .sp-img img { transform:scale(1.04); }
.sp-body { padding:32px;display:flex;flex-direction:column;justify-content:center; }
.sp-badge { display:inline-block;background:var(--red);color:#fff;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:4px 11px;border-radius:20px;margin-bottom:12px; }
.sp-body h3 { font-family:var(--ff-d);font-size:1.55rem;font-weight:700;margin-bottom:9px; }
.sp-body p  { color:var(--gray);font-size:.88rem;line-height:1.75;margin-bottom:18px; }
.sp-price   { font-family:var(--ff-d);font-size:1.75rem;font-weight:700;color:var(--green);margin-bottom:18px; }
.dsb { background:var(--wood);border-radius:var(--r);padding:36px 40px;margin-bottom:22px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px; }
.dsb h3 { font-family:var(--ff-d);font-size:1.4rem;color:var(--cream);margin-bottom:6px; }
.dsb p  { font-size:.86rem;color:rgba(255,255,255,.55);line-height:1.7; }
.kids-banner { background:var(--green2);border-radius:var(--r);padding:36px;text-align:center;margin-top:10px; }
.kids-banner h3 { font-family:var(--ff-d);font-size:1.7rem;color:#fff;margin-bottom:8px; }
.kids-banner p  { color:rgba(255,255,255,.62);font-size:.88rem;margin-bottom:22px; }

/* ── History / Timeline (z-index fix) ── */
.hist-inner  { max-width:880px;margin:0 auto; }
.hist-intro  { font-family:var(--ff-d);font-size:1.1rem;font-style:italic;color:var(--gray);line-height:1.9;text-align:center;margin-bottom:50px; }
.timeline    { position:relative;padding:10px 0; }
.timeline::before { content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(to bottom,var(--green),var(--ochre),var(--red));transform:translateX(-50%);z-index:0; }
.tl-item   { display:grid;grid-template-columns:1fr 60px 1fr;gap:0;margin-bottom:40px;align-items:center;position:relative; }
.tl-dot    { width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto;box-shadow:var(--sh);position:relative;z-index:1;border:3px solid var(--cream); }
.tl-dot span { font-family:var(--ff-d);font-size:.58rem;font-weight:700;color:#fff;text-align:center;line-height:1.2; }
.tl-content { background:var(--warm);border-radius:var(--r);padding:20px 22px;box-shadow:var(--sh); }
.tl-year    { font-family:var(--ff-d);font-size:1.4rem;font-weight:700;color:var(--green);margin-bottom:4px; }
.tl-content h4 { font-family:var(--ff-d);font-size:1.05rem;font-weight:600;margin-bottom:6px; }
.tl-content p  { font-size:.83rem;color:var(--gray);line-height:1.7; }
.tl-left  { text-align:right;padding-right:24px; }
.tl-right { text-align:left;padding-left:24px; }
.hist-promise { background:var(--wood);border-radius:var(--r);padding:40px;margin-top:50px;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center; }
.hist-imgs { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.hist-imgs img { border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover; }

/* ── Careers ── */
.careers-inner { max-width:800px;margin:0 auto; }
.job-positions { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px; }
.job-pos { background:var(--warm);border-radius:var(--r);padding:20px 22px;box-shadow:var(--sh);border-left:4px solid var(--green);transition:box-shadow var(--tr); }
.job-pos:hover { box-shadow:var(--shL); }
.jp-tag { display:inline-block;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ochre);background:rgba(196,137,42,.1);padding:3px 9px;border-radius:20px;margin-bottom:8px; }
.job-pos h3 { font-family:var(--ff-d);font-size:1.05rem;font-weight:700;color:var(--char);margin-bottom:6px; }
.job-pos p  { font-size:.8rem;color:var(--gray);line-height:1.6; }
.form-group { margin-bottom:16px; }
.form-group label { display:block;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray);margin-bottom:6px; }
.form-group input, .form-group select, .form-group textarea { width:100%;padding:11px 14px;border:2px solid var(--cream2);border-radius:var(--r);font-family:inherit;font-size:.88rem;color:var(--char);background:var(--warm);outline:none;transition:border-color var(--tr); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--green); }
.form-group textarea { resize:vertical;min-height:90px; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:14px; }
.form-check-group { display:flex;flex-wrap:wrap;gap:10px; }
.form-check { display:flex;align-items:center;gap:6px;font-size:.83rem;color:var(--gray);cursor:pointer; }
.form-check input { width:16px;height:16px;accent-color:var(--green); }
.submit-btn { width:100%;background:var(--green);color:#fff;border:none;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:14px;border-radius:var(--r);cursor:pointer;transition:background var(--tr);margin-top:8px; }
.submit-btn:hover { background:var(--green2); }
.submit-btn:disabled { background:#aaa;cursor:not-allowed; }

/* ── Gift cards page ── */
.gc-page-inner { max-width:900px;margin:0 auto; }
.gc-why { display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0; }
.gc-why-item { background:var(--warm);border-radius:var(--r);padding:20px;box-shadow:var(--sh);display:flex;gap:12px;align-items:flex-start; }
.gc-why-icon { font-size:1.5rem;line-height:1; }
.gc-why-item h4 { font-family:var(--ff-d);font-size:1rem;font-weight:700;margin-bottom:4px; }
.gc-why-item p  { font-size:.8rem;color:var(--gray);line-height:1.6; }
.gc-occasions { display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 30px; }
.gc-occ { background:var(--cream2);padding:8px 16px;border-radius:20px;font-size:.82rem;color:var(--gray); }

/* ── Responsive ── */
@media (max-width:1024px) {
  .about-grid { grid-template-columns:1fr;gap:40px; }
  .about-photos { max-width:440px; }
  .cats-grid { grid-template-columns:repeat(2,1fr); }
  .dishes    { grid-template-columns:repeat(2,1fr); }
  .ft-top    { grid-template-columns:1fr 1fr; }
  .atm-grid  { grid-template-columns:1fr 1fr; }
  .atm-c:first-child { grid-row:auto; }
  .atm-c:first-child img { height:190px; }
  .mi-grid   { grid-template-columns:1fr; }
  .loc-big   { grid-template-columns:1fr; }
  .loc-big-img { min-height:200px; }
  .special-card, .special-card.rev { grid-template-columns:1fr; }
  .special-card.rev .sp-img  { order:1; }
  .special-card.rev .sp-body { order:2; }
  .hist-promise { grid-template-columns:1fr; }
  .gc-why { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .nav-links { display:none; }
  .social-links--nav { display:none; }
  .hamburger { display:flex; }
  .about-photos { height:280px; }
  .ap-sec { display:none; }
  .cats-grid { grid-template-columns:1fr; }
  .cat-item  { aspect-ratio:16/9; }
  .dishes    { grid-template-columns:1fr; }
  .atm-grid  { grid-template-columns:1fr; }
  .ft-top    { grid-template-columns:1fr;gap:28px; }
  .gift-sec  { flex-direction:column;text-align:center; }
  .pg-hero   { height:240px; }
  .menu-photo-strip { grid-template-columns:1fr 1fr; }
  .pizza-sizes { grid-template-columns:1fr; }
  .form-row  { grid-template-columns:1fr; }
  /* Timeline single column on mobile */
  .timeline::before { left:26px; }
  .tl-item   { grid-template-columns:52px 1fr; }
  .tl-left, .tl-right { text-align:left !important;padding-left:18px !important;padding-right:0 !important; }
  .tl-item > .tl-empty { display:none; }
  .dsb       { grid-template-columns:1fr; }
  .hist-promise { padding:24px; }
  .hist-imgs { display:none; }
  .job-positions { grid-template-columns:1fr; }
  .sec       { padding:52px 4%; }
  .dish-modal-inner { max-width:100%; }
  .loc-big-body { padding:18px; }
}
