/*
Theme Name:        Fork Restaurant
Theme URI:         https://forkrestaurant.com
Author:            High Street Hospitality Group
Author URI:        https://forkrestaurant.com
Description:       Custom WordPress theme for Fork Restaurant. Dark, warm, candlelit aesthetic built with Georgia serif and system sans. Features menu pages, private dining, press, reservations, and gift shop templates. All content editable via custom meta boxes and WordPress Customizer.
Version:           1.0.0
Requires at least: 6.0
Tested up to:      6.6
Requires PHP:      8.0
License:           Proprietary
Text Domain:       fork
*/

/* ─── CSS CUSTOM PROPERTIES ──────────────────────── */
:root {
  --fork-bg-primary:    #4a2020;
  --fork-bg-header:     #3d1a1a;
  --fork-bg-footer:     #3d1a1a;
  --fork-bg-alt:        #5a2828;
  --fork-text-primary:  #c8a96e;
  --fork-text-heading:  #d4bc8a;
  --fork-text-muted:    rgba(200,169,110,0.72);
  --fork-text-body:     rgba(200,169,110,0.85);
  --fork-border:        rgba(200,169,110,0.22);
  --fork-border-md:     rgba(200,169,110,0.40);
  --fork-btn-bg:        #e8d9b8;
  --fork-btn-text:      #3d1a1a;
  --fork-serif:         Georgia, 'Times New Roman', serif;
  --fork-sans:          'Helvetica Neue', system-ui, sans-serif;
}

/* ─── RESET ──────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background:              var(--fork-bg-primary);
  color:                   var(--fork-text-body);
  font-family:             var(--fork-sans);
  font-size:               16px;
  font-weight: 400;
  line-height:             1.75;
  -webkit-font-smoothing:  antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

/* ─── TYPOGRAPHY ──────────────────────────────────── */
.fork-eyebrow {
  font-family:     var(--fork-sans);
  font-size:       10px;
  letter-spacing:  0.18em;
  text-transform:  uppercase;
  color:           var(--fork-text-muted);
  font-weight:     400;
}

.fork-section-hed {
  font-family:  var(--fork-sans);
  font-size:    28px;
  font-weight:  300;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color:        var(--fork-text-heading);
  line-height:  1.2;
}

.fork-subhed {
  font-family:  var(--fork-sans);
  font-size:    13px;
  font-weight:  300;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color:        var(--fork-text-primary);
}

.fork-body {
  font-family:  var(--fork-sans);
  font-size:    15px;
  line-height:  1.85;
  color:        var(--fork-text-body);
  font-weight: 400;
}

.fork-italic {
  font-style:  italic;
  color:       var(--fork-text-muted);
  font-size:   13px;
}

/* ─── BUTTONS ────────────────────────────────────── */
.fork-btn {
  display:         inline-block;
  font-family:     var(--fork-sans);
  font-size:       10px;
  letter-spacing:  0.14em;
  text-transform:  uppercase;
  padding:         12px 28px;
  cursor:          pointer;
  text-decoration: none;
  line-height:     1;
  transition:      opacity .2s, background .2s, color .2s, border-color .2s;
}
.fork-btn-filled {
  background: var(--fork-btn-bg);
  color:      var(--fork-btn-text);
  border:     1px solid var(--fork-btn-bg);
}
.fork-btn-filled:hover { opacity: .85; }

.fork-btn-outline {
  font-family:     var(--fork-sans);
  font-size:       11px;
  font-weight:     400;
  letter-spacing:  0.2em;
  text-transform:  uppercase;
  text-decoration: none;
  display:         inline-block;
  color:           #c8a96e;
  background:      rgba(200, 169, 110, 0.18);
  border:          1px solid #c8a96e;
  padding:         0.65rem 2.25rem;
  transition:      background .25s;
  white-space:     nowrap;
}
.fork-btn-outline:hover {
  background: rgba(200, 169, 110, 0.35);
}

.fork-btn-ghost {
  background:   transparent;
  color:        var(--fork-text-muted);
  border:       1px solid var(--fork-border);
}
.fork-btn-ghost:hover {
  border-color: var(--fork-text-primary);
  color:        var(--fork-text-primary);
}

.fork-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.75rem; }

/* ─── HAIRLINE DIVIDER ───────────────────────────── */
.fork-divider {
  height:     1px;
  background: var(--fork-border);
  margin:     2rem auto;
  max-width:  640px;
}

/* ─── NAVIGATION ─────────────────────────────────── */
.fork-nav {
  background:      var(--fork-bg-header);
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         0 3rem;
  height:          80px;
  position:        sticky;
  top:             0;
  z-index:         100;
  border-bottom:   1px solid var(--fork-border);
}

.fork-nav-logo {
  font-family:     var(--fork-serif);
  font-size:       22px;
  font-weight:     300;
  letter-spacing:  0.28em;
  color:           var(--fork-text-primary);
  text-decoration: none;
}

/* Toggle button and mobile nav — hidden on desktop */
.fork-nav-toggle { display: none; }
.fork-mobile-nav  { display: none; }

.fork-nav-links {
  display:     flex;
  gap:         2.5rem;
  list-style:  none;
  align-items: center;
}

.fork-nav-links a {
  font-family:    var(--fork-sans);
  font-size:      15px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--fork-text-primary);
  opacity:        0.85;
  transition:     opacity .2s;
}
.fork-nav-links a:hover { opacity: 1; }

.fork-nav-cta {
  font-family:     var(--fork-sans);
  font-size:       11px;
  font-weight:     400;
  letter-spacing:  0.2em;
  text-transform:  uppercase;
  text-decoration: none;
  color:           #c8a96e;
  background:      rgba(200, 169, 110, 0.18);
  border:          1px solid #c8a96e;
  padding:         0.45rem 1.25rem;
  transition:      background .25s;
  white-space:     nowrap;
}
.fork-nav-cta:hover {
  background: rgba(200, 169, 110, 0.35);
}

/* ─── HERO ───────────────────────────────────────── */
.fork-hero {
  position:   relative;
  width:      100%;
  max-height: 92vh;
  overflow:   hidden;
}
.fork-hero img {
  width:      100%;
  height:     92vh;
  object-fit: cover;
}
.fork-hero-badge {
  position: absolute;
  top:      2rem;
  left:     2rem;
  width:    100px;
}

/* ─── SECTION WRAPPER ────────────────────────────── */
.fork-section {
  background: var(--fork-bg-primary);
  padding:    5rem 3rem;
}
.fork-section-alt { background: var(--fork-bg-alt); }

.fork-section-inner {
  max-width: 1200px;
  margin:    0 auto;
}

.fork-section-header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  margin-bottom:   2.5rem;
  padding-bottom:  1rem;
  border-bottom:   1px solid var(--fork-border);
}

/* ─── TWO-COLUMN LAYOUT ──────────────────────────── */
.fork-two-col {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   5rem;
  align-items:           center;
}
.fork-two-col-text { max-width: 540px; }
.fork-image-mosaic {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   8px;
}
.fork-image-mosaic img {
  width:      100%;
  height:     260px;
  object-fit: cover;
}

/* ─── MENU PAGE ──────────────────────────────────── */
.fork-menu-section {
  max-width:   700px;
  margin:      0 auto;
  text-align:  center;
  padding:     4rem 2rem;
}
.fork-menu-hours {
  font-family:  var(--fork-serif);
  font-style:   italic;
  font-size:    13px;
  color:        var(--fork-text-muted);
  margin:       0.5rem 0 1.25rem;
}
.fork-menu-desc {
  font-size:   14px;
  line-height: 1.85;
  color:       var(--fork-text-body);
  margin-bottom: 1.75rem;
}

/* ─── DINNER / LUNCH / BRUNCH MENU ITEMS ─────────── */
.fork-menu-items {
  list-style:  none;
  text-align:  left;
  max-width:   640px;
  margin:      2rem auto;
}
.fork-menu-items li {
  display:       flex;
  justify-content: space-between;
  align-items:   baseline;
  gap:           1rem;
  padding:       0.6rem 0;
  border-bottom: 1px solid var(--fork-border);
  font-family:   var(--fork-serif);
  font-size:     14px;
  color:         var(--fork-text-body);
}
.fork-menu-items li:last-child { border-bottom: none; }
.fork-menu-item-name { flex: 1; }
.fork-menu-item-desc {
  font-style:  italic;
  color:       var(--fork-text-muted);
  font-size:   13px;
  display:     block;
  margin-top:  2px;
}
.fork-menu-item-price {
  font-family:  var(--fork-sans);
  font-size:    12px;
  color:        var(--fork-text-muted);
  white-space:  nowrap;
}
.fork-menu-category {
  font-family:    var(--fork-sans);
  font-size:      9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
  margin:         2.5rem 0 0.75rem;
}

/* ─── PRESS PAGE ─────────────────────────────────── */
.fork-press-list {
  list-style:  none;
  max-width:   700px;
  margin:      0 auto;
}
.fork-press-item {
  border-bottom: 1px solid var(--fork-border);
  padding:       1.5rem 0;
}
.fork-press-item:first-child { border-top: 1px solid var(--fork-border); }
.fork-press-pub {
  font-family:    var(--fork-sans);
  font-size:      10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
  margin-bottom:  0.4rem;
}
.fork-press-title {
  font-family:  var(--fork-serif);
  font-style:   italic;
  font-size:    17px;
  color:        var(--fork-text-primary);
}
.fork-press-title a {
  color:      inherit;
  transition: opacity .2s;
}
.fork-press-title a:hover { opacity: .75; }

/* ─── PRIVATE DINING ─────────────────────────────── */
.fork-private-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   4rem;
  align-items:           start;
}
.fork-private-detail {
  border-top:    1px solid var(--fork-border);
  padding-top:   1rem;
  margin-top:    1.5rem;
}
.fork-private-label {
  font-family:    var(--fork-sans);
  font-size:      9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
  margin-bottom:  4px;
}
.fork-capacity-row {
  display:     flex;
  gap:         2.5rem;
  margin:      1.5rem 0;
}
.fork-capacity-num {
  font-family:  var(--fork-serif);
  font-size:    36px;
  font-weight: 400;
  color:        var(--fork-text-heading);
  line-height:  1;
}
.fork-capacity-label {
  font-family:    var(--fork-sans);
  font-size:      9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
  margin-top:     4px;
}

/* ─── RESERVATIONS PAGE ──────────────────────────── */
.fork-reservations {
  max-width:  700px;
  margin:     0 auto;
  text-align: center;
  padding:    4rem 2rem;
}
.fork-hours-grid {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   2rem;
  margin:                2.5rem 0;
  text-align:            left;
}
.fork-hours-service {
  font-family:    var(--fork-sans);
  font-size:      9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
  margin-bottom:  6px;
}
.fork-hours-time {
  font-family:  var(--fork-serif);
  font-size:    14px;
  color:        var(--fork-text-primary);
  line-height:  1.6;
}
.fork-resy-embed {
  margin:        2rem auto;
  max-width:     400px;
  background:    white;
  border-radius: 4px;
  overflow:      hidden;
}

/* ─── SHOP / GIFTS ───────────────────────────────── */
.fork-shop-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:                   2rem;
  max-width:             900px;
  margin:                2.5rem auto;
}
.fork-product-card {
  text-align: center;
}
.fork-product-card img {
  width:        100%;
  aspect-ratio: 1;
  object-fit:   cover;
  margin-bottom: 1rem;
}
.fork-product-name {
  font-family:    var(--fork-sans);
  font-size:      10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color:          var(--fork-text-primary);
  margin-bottom:  6px;
}
.fork-product-price {
  font-family:  var(--fork-serif);
  font-style:   italic;
  font-size:    14px;
  color:        var(--fork-text-muted);
  margin-bottom: 1rem;
}

/* ─── LOCAL PARTNERS ─────────────────────────────── */
.fork-partners-list { max-width: 800px; margin: 0 auto; }
.fork-partner-item {
  border-bottom: 1px solid var(--fork-border);
  padding:       1.5rem 0;
}
.fork-partner-item:first-child { border-top: 1px solid var(--fork-border); }
.fork-partner-name {
  font-family:  var(--fork-serif);
  font-size:    16px;
  color:        var(--fork-text-heading);
  margin-bottom: 4px;
}
.fork-partner-location {
  font-family:    var(--fork-sans);
  font-size:      9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
  margin-bottom:  8px;
}
.fork-partner-desc {
  font-size:   13px;
  color:       var(--fork-text-body);
  line-height: 1.75;
}

/* ─── FOOTER ─────────────────────────────────────── */
.fork-footer {
  background:  #b7b38a;
  padding:     1.5rem 3rem 1rem;
  border-top:  none;
}

/* Footer text colors — dark on light tan background */
.fork-footer,
.fork-footer .fork-footer-logo,
.fork-footer .fork-footer-tagline,
.fork-footer .fork-footer-address,
.fork-footer .fork-footer-col-label,
.fork-footer .fork-footer-links a,
.fork-footer .fork-footer-copy,
.fork-footer .fork-eyebrow {
  color: #3d1a1a;
}
.fork-footer .fork-footer-links a:hover { opacity: .65; }
.fork-footer .fork-btn-outline {
  color:        #3d1a1a;
  border-color: #3d1a1a;
}
.fork-footer .fork-btn-outline:hover {
  background: #3d1a1a;
  color:      #b7b38a;
}
.fork-footer-bottom {
  border-top: 1px solid rgba(61,26,26,0.2);
}
.fork-footer-inner {
  max-width:   100%;     /* full width — no centering constraint */
  display:     flex;
  justify-content: flex-end;  /* push content to right edge */
  padding:     0 0;
}

/* Content in rightmost position, right-aligned */
.fork-footer-inner > div:first-child {
  text-align: right;
}
.fork-footer-logo {
  font-family:    var(--fork-serif);
  font-size:      20px;
  font-weight: 400;
  letter-spacing: 0.28em;
  color:          var(--fork-text-primary);
  margin-bottom:  0.5rem;
}

.fork-footer-logo-img {
  display:      block;
  width:        auto;
  height:       40px;
  max-width:    200px;
  object-fit:   contain;
  margin-bottom: 1rem;
  margin-left:  auto; /* push image to right when text-align:right */
}

/* Right-align all footer text content */
.fork-footer-inner > div {
  text-align: right;
}
.fork-footer-tagline {
  font-family:  var(--fork-serif);
  font-style:   italic;
  font-size:    13px;
  color:        var(--fork-text-muted);
}
.fork-footer-col-label {
  font-family:    var(--fork-sans);
  font-size:      9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
  margin-bottom:  1rem;
}
.fork-footer-links {
  list-style: none;
  display:    flex;
  flex-direction: column;
  gap:        0.6rem;
}
.fork-footer-links a {
  font-family:  var(--fork-serif);
  font-size:    14px;
  color:        var(--fork-text-primary);
  opacity:      0.8;
  transition:   opacity .2s;
}
.fork-footer-links a:hover { opacity: 1; }
.fork-footer-address {
  font-family:  var(--fork-serif);
  font-style:   italic;
  font-size:    13px;
  color:        var(--fork-text-muted);
  line-height:  1.8;
}
.fork-footer-bottom {
  margin-top:  1.5rem;
  padding-top: 1rem;
  border-top:  1px solid rgba(61,26,26,0.15);
  display:     flex;
  justify-content: space-between;
  align-items: center;
  gap:         2rem;
}
.fork-footer-copy {
  font-family:    var(--fork-sans);
  font-size:      10px;
  letter-spacing: 0.1em;
  color:          var(--fork-text-muted);
}

/* ─── AWARDS BAR ─────────────────────────────────── */
.fork-awards-bar {
  background:     var(--fork-bg-alt);
  border-top:     1px solid var(--fork-border);
  border-bottom:  1px solid var(--fork-border);
  padding:        1.25rem 3rem;
  display:        flex;
  gap:            3rem;
  align-items:    center;
  overflow:       hidden;
}
.fork-award-item { white-space: nowrap; }
.fork-award-pub {
  font-family:    var(--fork-sans);
  font-size:      9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--fork-text-muted);
}
.fork-award-quote {
  font-family:  var(--fork-serif);
  font-style:   italic;
  font-size:    12px;
  color:        var(--fork-text-primary);
  margin-top:   2px;
}

/* ─── ADMIN META BOX STYLES ──────────────────────── */
.fork-meta-section {
  border-top:  1px solid #ddd;
  margin-top:  1.25rem;
  padding-top: 1rem;
}
.fork-meta-section h4 {
  color:          #888;
  font-size:      11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom:  .75rem;
}
.fork-meta-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   .75rem 1.5rem;
}
.fork-meta-field label {
  display:       block;
  font-weight:   600;
  margin-bottom: 3px;
  font-size:     12px;
}
.fork-meta-field input,
.fork-meta-field textarea { width: 100%; }

/* ─── RESPONSIVE ─────────────────────────────────── */
@media (max-width: 900px) {
  .fork-nav { padding: 0 1.5rem; }
  .fork-nav-cta   { display: none; }
  .fork-nav-links { display: none; }  /* hide desktop nav on mobile */

  /* ── Hamburger toggle button ── */
  .fork-nav-toggle {
    display:         flex;
    flex-direction:  column;
    justify-content: center;
    gap:             5px;
    background:      none;
    border:          none;
    cursor:          pointer;
    padding:         0.5rem;
    margin-left:     auto;
    flex-shrink:     0;
  }

  .fork-nav-toggle span {
    display:          block;
    width:            24px;
    height:           1px;
    background:       var(--fork-text-primary);
    transition:       transform .25s, opacity .25s;
    transform-origin: center;
  }

  /* Animate to X when open */
  .fork-nav-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .fork-nav-toggle.is-open span:nth-child(2) { opacity: 0; }
  .fork-nav-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  /* ── Mobile nav dropdown — opaque, full width ── */
  .fork-mobile-nav {
    display:    none;
    position:   absolute;
    top:        100%;
    left:       0;
    right:      0;
    background: #3d1a1a;          /* solid oxblood — fully opaque */
    z-index:    999;
    border-top: 1px solid rgba(200,169,110,0.2);
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  }

  .fork-mobile-nav--open {
    display: block;
  }

  .fork-mobile-nav__links {
    list-style: none;
    margin:     0;
    padding:    1rem 0 1.5rem;
  }

  .fork-mobile-nav__links li {
    display: block;
  }

  .fork-mobile-nav__links a {
    display:        block;
    padding:        0.85rem 2rem;
    font-family:    var(--fork-sans);
    font-size:      13px;
    font-weight: 400;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color:          var(--fork-text-primary);
    text-align:     center;
    text-decoration: none;
    transition:     opacity .2s;
  }

  .fork-mobile-nav__links a:hover { opacity: 0.7; }

  /* Keep desktop nav-links visible on mobile — they're already hidden by existing rule */

  .fork-section { padding: 3rem 1.5rem; }
  .fork-two-col { grid-template-columns: 1fr; gap: 2.5rem; }
  .fork-private-grid { grid-template-columns: 1fr; }
  .fork-footer { padding: 1.5rem; }
  .fork-footer-inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .fork-hours-grid { grid-template-columns: 1fr; }
}

/* ─── CUSTOM LOGO ─────────────────────────────────── */
/* Force the logo to display at a usable size regardless of
   the natural pixel dimensions of the uploaded file.
   WordPress outputs width/height HTML attributes — we override
   them here so the logo scales up properly in the nav. */
.custom-logo-link {
  display:     flex;
  align-items: center;
  flex-shrink: 0;
  overflow:    visible;
  line-height: 0;
}

.custom-logo {
  /* Override WordPress's hardcoded width/height attributes */
  width:      auto  !important;
  height:     40px  !important;  /* fixed nav height so logo is consistent */
  max-width:  none  !important;  /* don't cap — let height drive the size */
  display:    block;
  object-fit: contain;
}

/* ═══════════════════════════════════════════════════
   HOMEPAGE HERO — full width, JB badge top-left
═══════════════════════════════════════════════════ */
/* Hero — background-image fills the section, min-height ~85vh */
.fork-hero-full {
  display:             block;
  width:               100%;
  min-height:          85vh;       /* matches live site ~575px / 677px viewport */
  background-size:     cover;
  background-position: center center;
  background-repeat:   no-repeat;
  background-color:    var(--fork-bg-alt); /* fallback while image loads */
  position:            relative;
  /* No overflow:hidden — badge content sits naturally inside */
}

/* Badge wrapper — pads the badge away from the edge, top-left of hero */
.fork-hero-full__badge-wrap {
  display:    inline-block;
  padding:    2rem 0 0 2rem;  /* top and left breathing room */
  line-height: 0;              /* no gap under the img */
}

/* Badge image — plain content, sized to match live site (150px displayed) */
.fork-hero-full__badge-img {
  display: block;
  width:   clamp(90px, 10vw, 150px);
  height:  auto;
}

/* ═══════════════════════════════════════════════════
   HOMEPAGE SPLIT WRAPPER — gap + divider above grid
═══════════════════════════════════════════════════ */
.fork-home-split-wrap {
  margin-top: 35px;
}

/* Divider row — centered hairline matching live site */
.fork-home-divider-row {
  padding:   0 16%;       /* matches live site ~68% width line */
  margin-bottom: 35px;
}

.fork-home-hr {
  border:        none;
  border-bottom: 1px solid rgb(182, 179, 139);
  margin:        0;
}

/* ═══════════════════════════════════════════════════
   HOMEPAGE SPLIT — 50/50 text + slideshow
═══════════════════════════════════════════════════ */
.fork-home-split {
  display:   grid;
  grid-template-columns: 1fr 1fr;
  min-height: 600px;
}

/* Left text column */
.fork-home-split__text {
  background:  var(--fork-bg-primary);
  padding:     5rem 4rem 5rem 5rem;
  display:     flex;
  flex-direction: column;
  justify-content: center;
  text-align:  right;
}

.fork-home-split__eyebrow  { margin-bottom: 1.25rem; }
.fork-home-split__h1       { margin-bottom: 1.5rem; }
.fork-home-split__subhed   { margin-top: 2rem; margin-bottom: .6rem; }
.fork-home-split__body     { margin-bottom: .5rem; }
.fork-home-split__actions  { margin-top: 2.5rem; justify-content: flex-end; }

/* Right slideshow column */
.fork-home-split__slideshow {
  position:   relative;
  overflow:   hidden;
  background: var(--fork-bg-alt);
  min-height: 560px;
}

/* ═══════════════════════════════════════════════════
   FADE SLIDESHOW — no controls, 10-second auto-advance
═══════════════════════════════════════════════════ */
.fork-slideshow {
  position: absolute;
  inset:    0; /* top/right/bottom/left: 0 */
  width:    100%;
  height:   100%;
}

.fork-slideshow__slide {
  position:   absolute;
  inset:      0;
  opacity:    0;
  transition: opacity 1.4s ease-in-out; /* smooth 1.4s cross-fade */
  z-index:    1;
}

.fork-slideshow__slide.is-active {
  opacity: 1;
  z-index: 2;
}

.fork-slideshow__slide img {
  display:     block;
  width:       100%;
  height:      100%;
  object-fit:  cover;
  object-position: center center;
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE — stack on mobile
═══════════════════════════════════════════════════ */
@media (max-width: 860px) {
  .fork-hero-full {
    min-height: 55vw;   /* scales naturally on narrow screens */
  }
  .fork-hero-full__badge-wrap {
    padding: 1rem 0 0 1rem;
  }
  .fork-hero-full__badge-img {
    width: clamp(70px, 14vw, 110px);
  }
  .fork-home-split {
    grid-template-columns: 1fr;
  }
  .fork-home-split__text {
    padding: 3rem 1.75rem;
    order:   2; /* text below image on mobile */
  }
  .fork-home-split__slideshow {
    min-height: 280px;
    height:     56vw;
    order:      1;
  }
}

/* ═══════════════════════════════════════════════════
   ABOUT PAGE LAYOUT
═══════════════════════════════════════════════════ */
.fork-about-layout {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   5rem;
  align-items:           start;
}

/* Left column: stacked photos */
.fork-about-layout__images {
  display:        flex;
  flex-direction: column;
  gap:            1rem;
}

.fork-about-layout__img {
  display:    block;
  width:      100%;
  height:     auto;
  object-fit: cover;
}

/* Right column: all text content */
.fork-about-layout__content {
  display:        flex;
  flex-direction: column;
}

.fork-about-layout__eyebrow  { margin-bottom: 1rem; }

/* About page — all text at weight 300 */
.fork-about-layout__content,
.fork-about-layout__content h1,
.fork-about-layout__content h2,
.fork-about-layout__content p,
.fork-about-partner-entry { font-weight: 400; }
.fork-about-layout__h1       { margin-bottom: 1.5rem; }
.fork-about-layout__subhed   { margin-bottom: 1rem; }
.fork-about-layout__body     { margin-bottom: 1.25rem; }

.fork-about-layout__partners-hed {
  margin-top: 3.5rem;  /* extra breathing room between about text and partner list */
}

/* Partners — inline paragraphs, no dividers, matching live site */
.fork-about-partners {
  margin-top: 1rem;
}

.fork-about-partner-entry {
  margin-bottom: 1.5rem;
  line-height:   1.75;
}

.fork-about-partner-name {
  font-weight: 500; /* slightly heavier than 300 body so name stands out */
  color:       var(--fork-text-heading);
}

.fork-about-partner-name a {
  color:           inherit;
  text-decoration: none;
  transition:      opacity .2s;
}
.fork-about-partner-name a:hover { opacity: .75; }

/* Responsive */
@media (max-width: 900px) {
  .fork-about-layout {
    grid-template-columns: 1fr;
    gap:                   2.5rem;
  }
}

/* ─── FOOTER TIGHTENED SPACING ──────────────────── */
.fork-footer-col { line-height: 1.5; }
.fork-footer-tagline { margin-bottom: 0.6rem; font-size: 13px; }
.fork-footer-address { margin-top: 0.6rem; font-size: 13px; line-height: 1.65; }
.fork-footer-address a { color: inherit; opacity: .8; text-decoration: none; }
.fork-footer-instagram { margin-top: 0.5rem; font-size: 12px; }
.fork-footer-instagram a { color: inherit; opacity: .7; text-decoration: none; letter-spacing: 0.08em; }
.fork-footer-facebook { margin-top: 0.5rem; font-size: 12px; }
.fork-footer-facebook a { color: inherit; opacity: .7; text-decoration: none; letter-spacing: 0.08em; }

/* ═══════════════════════════════════════════════════
   MENUS PAGE — matches forkrestaurant.com/menu/
═══════════════════════════════════════════════════ */
.fork-menus-inner {
  max-width:  760px;
  margin:     0 auto;
  padding:    1rem 2rem 4rem;
  text-align: center;
}

/* Page H1 */
.fork-menus-header__h1 {
  font-weight: 400;
  margin-bottom: 1.5rem;
}

/* All menus page text at weight 300 */
.fork-menus-inner,
.fork-menus-inner h1,
.fork-menus-inner h2,
.fork-menus-inner p { font-weight: 400; }

/* Intro paragraph */
.fork-menus-header__intro {
  font-weight: 400;
  line-height:   1.85;
  margin-bottom: 0;
  padding-bottom: 0;
}

/* First menu section sits closer to the intro */
.fork-menu-section:first-of-type {
  margin-top: 0.5rem;
}

/* Individual menu section — tight vertical spacing */
.fork-menu-section {
  margin-top: 0.75rem;
}

.fork-menu-section__hed {
  font-weight:   300;
  margin-bottom: 0.3rem;
}

/* Hours — italic, centered, between heading and description */
.fork-menu-section__hours {
  font-style:    italic;
  font-size:     14px;
  font-weight: 400;
  color:         var(--fork-text-body);
  margin-bottom: 0.4rem;
  opacity:       0.85;
}

.fork-menu-section__desc {
  font-weight: 400;
  line-height:   1.75;
  margin-bottom: 0;
}

.fork-menu-section__btn-wrap {
  margin-top: 0.85rem;
}

/* ── Menu button — soft warm fill, clean and refined ── */
.fork-btn-menu {
  display:          inline-block;
  padding:          0.65rem 2.25rem;
  font-family:      var(--fork-sans);
  font-size:        11px;
  font-weight:      400;
  letter-spacing:   0.2em;
  text-transform:   uppercase;
  text-decoration:  none;
  color:            #c8a96e;                          /* full aged gold */
  background:       rgba(200, 169, 110, 0.18);        /* visible warm fill */
  border:           1px solid #c8a96e;                /* solid gold border */
  transition:       background .25s;
  white-space:      nowrap;
}

.fork-btn-menu:hover {
  background: rgba(200, 169, 110, 0.35);
}

/* Dietary note */
.fork-menus-dietary {
  text-align:   center;
  margin-top:   4rem;
  font-size:    13px;
  font-weight: 400;
  font-style:   italic;
  opacity:      0.6;
}

/* ═══════════════════════════════════════════════════
   MENU DOCUMENT PAGE (single-fork_menu.php)
   Matches forkrestaurant.com/fork-brunch-menu/ layout
═══════════════════════════════════════════════════ */
.fork-menu-doc__inner {
  max-width:  640px;
  margin:     0 auto;
  padding:    1rem 2rem 5rem;
  text-align: center;
}

/* Header */
.fork-menu-doc__title {
  font-weight: 400;
  margin-bottom: 0.5rem;
}

.fork-menu-doc__hours {
  font-size:     14px;
  font-weight: 400;
  color:         var(--fork-text-body);
  margin-bottom: 0.25rem;
}

.fork-menu-doc__notes-top {
  font-style:    italic;
  font-size:     13px;
  font-weight: 400;
  opacity:       0.7;
  margin-bottom: 0;
}

/* Intro */
.fork-menu-doc__intro {
  margin:      2.5rem auto;
  max-width:   520px;
  font-weight: 400;
  line-height: 1.85;
}

/* Content rows */
.fork-menu-doc__content {
  margin-top: 1rem;
}

/* Subcategory heading */
.fork-menu-doc__subcat {
  font-family:    var(--fork-serif);
  font-size:      15px;
  font-weight:    300;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color:          var(--fork-text-heading);
  margin:         2.75rem 0 1.25rem;
}

/* First subcategory — no top margin */
.fork-menu-doc__content > .fork-menu-doc__subcat:first-child {
  margin-top: 0;
}

/* Menu item */
.fork-menu-doc__item {
  margin-bottom: 1rem;
  line-height:   1.5;
  text-align:    center;
}

/* Single inline row: NAME desc   price */
.fork-menu-doc__item-row {
  margin: 0;
}

.fork-menu-doc__item-name {
  font-size:      13px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color:          var(--fork-text-heading);
}

.fork-menu-doc__item-desc {
  font-size:   13px;
  font-weight: 400;
  color:       var(--fork-text-body);
  margin-left: 0.4em;
}

.fork-menu-doc__item-price {
  font-size:   13px;
  font-weight: 700;
  color:       var(--fork-text-heading);
  margin-left: 0.6em;
}

/* Note on its own line beneath the item row */
.fork-menu-doc__item-note {
  display:    block;
  font-size:  12px;
  font-style: italic;
  opacity:    0.6;
  margin-top: 1px;
  text-align: center;
}

/* Bottom note */
.fork-menu-doc__notes-bottom {
  margin-top:  3.5rem;
  font-style:  italic;
  font-size:   13px;
  font-weight: 400;
  opacity:     0.65;
}

/* ─── MENUS PAGE — Ingredients note section ──────── */
.fork-menus-ingredients {
  margin-top:   3rem;
  padding-top:  2.5rem;
  border-top:   1px solid rgba(200, 169, 110, 0.2);
  text-align:   center;
}

.fork-menus-ingredients__hed {
  font-weight: 400;
  margin-bottom: 1rem;
}

.fork-menus-ingredients__body {
  font-weight: 400;
  line-height:  1.85;
  margin-bottom: 0.75rem;
}

.fork-menus-ingredients__dietary {
  font-style:  italic;
  font-size:   13px;
  font-weight: 400;
  opacity:     0.7;
}

/* ═══════════════════════════════════════════════════
   PRIVATE DINING PAGE
   Matches forkrestaurant.com/fork-private-dining/
═══════════════════════════════════════════════════ */
.fork-private-layout {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   5rem;
  align-items:           start;
}

/* Left column: stacked photos */
.fork-private-layout__images {
  display:        flex;
  flex-direction: column;
  gap:            1rem;
}

.fork-private-layout__img {
  display:    block;
  width:      100%;
  height:     auto;
  object-fit: cover;
}

/* Right column: text */
.fork-private-layout__content {
  display:        flex;
  flex-direction: column;
}

.fork-private-layout__h1 {
  font-weight: 400;
  margin-bottom: 1.5rem;
}

.fork-private-layout__subhed {
  font-weight: 400;
  margin-bottom: 1rem;
}

.fork-private-layout__body {
  font-weight: 400;
  line-height:   1.85;
  margin-bottom: 1.25rem;
}

.fork-private-layout__btn-wrap {
  margin-top: 1.5rem;
}

/* Button — matches live site outlined style */
.fork-private-layout__btn {
  display:         inline-block;
  padding:         0.65rem 2.25rem;
  font-family:     var(--fork-sans);
  font-size:       11px;
  font-weight:     400;
  letter-spacing:  0.2em;
  text-transform:  uppercase;
  text-decoration: none;
  color:           #c8a96e;
  background:      rgba(200, 169, 110, 0.18);
  border:          1px solid #c8a96e;
  transition:      background .25s;
  white-space:     nowrap;
}

.fork-private-layout__btn:hover {
  background: rgba(200, 169, 110, 0.35);
}

@media (max-width: 900px) {
  .fork-private-layout {
    grid-template-columns: 1fr;
    gap:                   2.5rem;
  }
}

/* ── OpenTable widget ─────────────────────────────── */
.fork-opentable-embed {
  margin-bottom: 0;
  text-align:    center;
}

/* Reservations page spacing */
.fork-res__h1    { margin-bottom: 1rem; }
.fork-res__intro { margin-bottom: 1.25rem; }
.fork-res__phone { font-size: 13px; margin-top: 1rem; }
.fork-res__walkin { margin-top: 1.5rem; }

/* ── Reservations page content ───────────────────── */
.fork-reservations {
  max-width:  640px;
  margin:     0 auto;
  padding:    1rem 2rem 4rem;
  text-align: center;
}

.fork-res__phone-note {
  font-weight: 400;
  font-size:     14px;
  margin-bottom: 1.25rem;
  line-height:   1.75;
}

.fork-res__phone-note a {
  color:           var(--fork-text-primary);
  font-weight:     500;
  text-decoration: none;
}
.fork-res__phone-note a:hover { opacity: .75; }

.fork-res__block {
  margin-bottom: 1rem;
}

.fork-res__service {
  font-family:    var(--fork-serif);
  font-size:      15px;
  font-weight:    300;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color:          var(--fork-text-heading);
  margin-bottom:  0.4rem;
}

.fork-res__hours {
  font-weight: 400;
  font-size:     14px;
  margin-bottom: 0.1rem;
  color:         var(--fork-text-body);
}

.fork-res__hours--link a {
  color:           var(--fork-text-primary);
  font-weight:     500;
  text-decoration: none;
}
.fork-res__hours--link a:hover { opacity: .75; }

.fork-res__social {
  font-weight: 400;
  font-size:      14px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color:          var(--fork-text-body);
}

.fork-res__social a {
  color:           var(--fork-text-primary);
  font-weight:     500;
  text-decoration: none;
  margin-left:     0.35em;
}
.fork-res__social a:hover { opacity: .75; }

/* ═══════════════════════════════════════════════════
   WOOCOMMERCE — Fork theme overrides
═══════════════════════════════════════════════════ */

/* Shop page wrapper */
.fork-shop-page .woocommerce,
.fork-shop-page .woocommerce-page { width: 100%; }

/* Page heading */
.fork-shop-page h1.page-title,
.fork-shop-page .woocommerce-products-header__title {
    font-family:    var(--fork-serif);
    font-size:      28px;
    font-weight: 400;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          var(--fork-text-heading);
    text-align:     center;
    margin-bottom:  2.5rem;
}

/* Product grid — constrained, centered, side by side */
.fork-shop-page .woocommerce,
.fork-shop-page .woocommerce-page {
    max-width: 800px;
    margin:    0 auto;
}

.fork-shop-page ul.products {
    display:   flex !important;
    flex-wrap: nowrap !important;
    gap:       2rem !important;
    list-style: none !important;
    margin:    0 !important;
    padding:   0 !important;
    width:     100% !important;
}

/* Each product — equal width, no WC floats */
.fork-shop-page ul.products li.product {
    float:     none !important;
    width:     0 !important;
    flex:      1 1 0 !important;
    min-width: 0 !important;
    margin:    0 !important;
}

/* Constrain product images */
.fork-shop-page ul.products li.product img {
    width:      100% !important;
    height:     auto !important;
    max-width:  none !important;
    display:    block !important;
}

/* Individual product */
.fork-shop-page ul.products li.product {
    text-align: center;
    background: transparent;
    border:     none;
    padding:    0;
    margin:     0;
    box-sizing: border-box;
    float:      none !important;
}

/* Product image */
.fork-shop-page ul.products li.product a img {
    display:       block;
    width:         100%;
    height:        auto;
    margin-bottom: 1rem;
}

/* Product title */
.fork-shop-page ul.products li.product .woocommerce-loop-product__title {
    font-family:    var(--fork-serif);
    font-size:      15px;
    font-weight: 400;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color:          var(--fork-text-heading);
    margin-bottom:  0.4rem;
    padding:        0;
}

/* Price */
.fork-shop-page ul.products li.product .price,
.fork-shop-page ul.products li.product .price .amount {
    font-family: var(--fork-serif);
    font-size:   14px;
    font-weight: 400;
    color:       var(--fork-text-body);
}

/* Add to cart / Read more buttons */
.fork-shop-page ul.products li.product .button,
.fork-shop-page .woocommerce a.button,
.fork-shop-page .woocommerce button.button,
.fork-shop-page .woocommerce input.button {
    display:         inline-block;
    margin-top:      0.75rem;
    padding:         0.55rem 1.75rem;
    font-family:     var(--fork-sans);
    font-size:       11px;
    font-weight:     400;
    letter-spacing:  0.2em;
    text-transform:  uppercase;
    text-decoration: none;
    color:           #c8a96e !important;
    background:      rgba(200, 169, 110, 0.18) !important;
    border:          1px solid #c8a96e !important;
    border-radius:   0 !important;
    box-shadow:      none !important;
    transition:      background .25s;
    white-space:     nowrap;
}

.fork-shop-page ul.products li.product .button:hover,
.fork-shop-page .woocommerce a.button:hover {
    background: rgba(200, 169, 110, 0.35) !important;
    color:      #c8a96e !important;
}

/* Result count & ordering */
.fork-shop-page .woocommerce-result-count,
.fork-shop-page .woocommerce-ordering select {
    font-family: var(--fork-sans);
    font-size:   12px;
    font-weight: 400;
    color:       var(--fork-text-body);
    background:  transparent;
    border:      1px solid rgba(200,169,110,.3);
}

/* Single product */
.fork-shop-page .woocommerce div.product .product_title {
    font-family:    var(--fork-serif);
    font-size:      24px;
    font-weight: 400;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          var(--fork-text-heading);
}

.fork-shop-page .woocommerce div.product .price {
    color:       var(--fork-text-primary);
    font-weight: 400;
}

/* Responsive */
@media (max-width: 600px) {
    .fork-shop-page ul.products {
        grid-template-columns: 1fr;
    }
}

/* Hide WooCommerce sidebar / widget area on shop pages */
.woocommerce-page .widget-area,
.woocommerce-page aside.woocommerce-sidebar,
.fork-shop-page .widget-area,
.fork-shop-page aside { display: none !important; }

/* ═══════════════════════════════════════════════════
   MOBILE RESET — prevent overflow and fix layout
═══════════════════════════════════════════════════ */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

* { box-sizing: border-box; }

img, video, iframe {
  max-width: 100%;
}

@media (max-width: 900px) {

  /* ── General layout ── */
  .fork-section-inner {
    padding-left:  1.25rem;
    padding-right: 1.25rem;
  }

  /* ── Homepage hero ── */
  .fork-hero-full {
    min-height: 55vw;
  }

  /* ── Homepage two-column split ── */
  .fork-home-split-wrap { margin-top: 0; }
  .fork-home-split {
    grid-template-columns: 1fr !important;
  }
  .fork-home-split__text {
    padding:    2rem 1.25rem;
    text-align: center !important;
  }
  .fork-slideshow-wrap {
    height: 60vw;
    min-height: unset;
  }

  /* ── About page ── */
  .fork-about-layout {
    grid-template-columns: 1fr !important;
    gap: 1.5rem;
  }

  /* ── Private dining ── */
  .fork-private-layout {
    grid-template-columns: 1fr !important;
    gap: 1.5rem;
  }

  /* ── Menus ── */
  .fork-menus-inner {
    padding: 1rem 1.25rem 3rem;
  }

  /* ── Single menu ── */
  .fork-menu-doc__inner {
    padding: 1rem 1.25rem 3rem;
  }

  /* ── Reservations ── */
  .fork-reservations {
    padding: 0.5rem 1.25rem 3rem;
  }

  /* ── Shop ── */
  .fork-shop-page ul.products {
    flex-direction: column !important;
  }
  .fork-shop-page ul.products li.product {
    width: 100% !important;
    flex: none !important;
  }
  .fork-shop-page .woocommerce {
    max-width: 100%;
  }

  /* ── Footer ── */
  .fork-footer-inner {
    justify-content: center !important;
  }
  .fork-footer-inner > div:first-child {
    text-align: center !important;
  }
  .fork-footer-logo-img { margin-left: auto; margin-right: auto; }

  /* ── WooCommerce override ── */
  .woocommerce-page .woocommerce,
  .woocommerce { min-width: 0 !important; }
}

/* ── Private Dining — page editor content styles ───── */
.fork-private-layout__body p {
  font-family:   var(--fork-sans);
  font-size:     15px;
  font-weight: 400;
  line-height:   1.85;
  color:         var(--fork-text-body);
  margin-bottom: 1.25rem;
}

.fork-private-layout__body p:last-child { margin-bottom: 0; }

.fork-private-layout__body a {
  color:           var(--fork-text-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.fork-private-layout__body a:hover { opacity: 0.75; }

.fork-private-layout__body strong { font-weight: 600; }
.fork-private-layout__body em     { font-style: italic; }
