/* ---- Base (mobile-first) ---- */
:root
{
  /* Olive Garden Green */
  --og-green-900: #a8ad00;
  --og-green-800: #989C00;
  --og-green-700: #303e1e;
  --og-green-500: #babf69;
  --og-green-400: #d2d598;
  --og-green-100: #e8eacd;

  /* Pasta Yellow */
  --pasta-yellow-900: #f0a74c;
  --pasta-yellow-500: #f4bd79;
  --pasta-yellow-400: #f7d3a5;
  --pasta-yellow-100: #fbe9d2;

  /* Tomato Red */
  --tomato-red-900: #f15a3d;
  --tomato-red-500: #f4836d;
  --tomato-red-400: #f8ac9e;
  --tomato-red-100: #fbd6ce;

  /* Mediterranean Blue */
  --med-blue-900: #9ac9cd;
  --med-blue-500: #aed4d7;
  --med-blue-400: #c2dfe1;
  --med-blue-100: #d7e9eb;

  /* Oregano (Dark/Earthy) */
  --oregano-900: #303e1e;
  --oregano-500: #546548;
  --oregano-400: #838878;
  --oregano-100: #acb2a5;

  /* Parmesan (Light/Cream) */
  --parmesan-900: #ffedd8;
  --parmesan-500: #fcf0e1;
  --parmesan-400: #fdf4e8;
  --parmesan-100: #fdf7f0;

  /* Additional Colors */
  --og-orange: #fda330;
  --og-orange-hover: #e59329;
  --og-orange-light: #ffe8ce;
  --og-red: #da291c;
  --og-green-bg: #304732;
  --og-green-footer: #2e3d2d;
  --text-dark: #333333;
  --text-light: #ffffff;
  --text-black: #000000;
  --bg-light: #f8f8f8;
  --bg-peach: #ffecd6;
  --og-error-red: #D30000;
  /* Families */
  --ff-display: "Neulis Cursive", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ff-heading: "Neulis Cursive", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ff-subheading: "Neulis Neue", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --ff-body: "Neulis Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --ff-accent: "Royal Palms", "Neulis Cursive", cursive;

  /* Weights (adjust if your files differ) */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-black: 800;

  /* Line-heights & tracking defaults */
  --lh-tight: 1.05;
  --lh-normal: 1.4;
  --lh-loose: 1.6;
  --ls-tight: -0.02em;
  --ls-normal: 0;

  /* ===== Size tokens (mobile default) ===== */
  /* Display/Hero (your requirement) */
  --fs-display: 3.375rem;
  /* mobile */
  --lh-display: var(--lh-tight);

  /* Headings (Neulis Cursive) – based on the guide, downscaled for mobile */
  --fs-h1: 2.625rem;
  --fs-h2: 2.25rem;
  --fs-h3: 2rem;
  --fs-h4: 1.25rem;
  --fs-h5: 1.125rem;
  --fs-h6: 1rem;

  /* Subheading (Neulis Neue) */
  --fs-sub-xl: 1.125rem;
  --fs-sub-lg: 1rem;

  /* Body (Neulis Sans) */
  --fs-body-lg: 0.875rem;
  --fs-body-md: 0.875rem;
  --fs-body-sm: 0.8125rem;

  /* Caption */
  --fs-caption-lg: 0.625rem;
  --fs-caption-sm: 0.625rem;
}

/* ---- Tablet (e.g., 768–1199px) ---- */
@media (min-width: 768px)
{
  :root
  {
    /* Your explicit tablet target for Display */
    --fs-display: 3.75rem;

    /* Headings (step up slightly) */
    --fs-h1: 3rem;
    --fs-h2: 2.625rem;
    --fs-h3: 2rem;
    --fs-h4: 1.25rem;
    --fs-h5: 1.125rem;
    --fs-h6: 1rem;

    /* Subheading per guide */
    --fs-sub-xl: 1.125rem;
    /* md: 18px */
    --fs-sub-lg: 1rem;
    /* sm: 16px */

    /* Body per guide */
    --fs-body-lg: 0.875rem;
    /* md: 14px */
    --fs-body-md: 0.875rem;
    --fs-body-sm: 0.8125rem;

    /* Captions */
    --fs-caption-lg: 0.75rem;
    --fs-caption-sm: 0.625rem;
  }
}

/* ---- Desktop (≥1200px) ---- */
@media (min-width: 1200px)
{
  :root
  {
    /* Your explicit desktop target for Display */
    --fs-display: 6.25rem;

    /* Headings per guide */
    --fs-h1: 3.375rem;
    /* xl: 54px */
    --fs-h2: 3rem;
    --fs-h2-mobile: 1.75rem;
    /* lg: 48px */
    --fs-h3: 2.625rem;
    /* md: 42px */
    --fs-h4: 2rem;
    /* sm: 32px */
    --fs-h5: 1.25rem;
    /* xs: 20px */
    --fs-h6: 1.125rem;

    /* Subheading per guide */
    --fs-sub-xl: 1.5rem;
    /* xl: 24px */
    --fs-sub-lg: 1.25rem;
    /* lg: 20px */

    /* Body per guide */
    --fs-body-lg: 1rem;
    /* lg: 16px */
    --fs-body-md: 0.875rem;
    /* md: 14px */
    --fs-body-sm: 0.875rem;
    /* sm: 14px */

    /* Captions per guide */
    --fs-caption-lg: 0.75rem;
    /* lg: 12px */
    --fs-caption-sm: 0.625rem;
    /* sm: 10px */
  }
}

/* =========================
   Neulis Cursive (Display/Headings)
   Weights used: 400, 500, 600, 700, 800, 900
   ========================= */
@font-face
{
  font-family: "Neulis Cursive";
  src:
    local("Neulis Cursive Regular"),
    url("https://media.olivegarden.com/fonts/neulis-cursive/neulis_cursive_regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Cursive";
  src:
    local("Neulis Cursive Medium"),
    url("https://media.olivegarden.com/fonts/neulis-cursive/neulis_cursive_medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Cursive";
  src:
    local("Neulis Cursive Semi Bold"),
    url("https://media.olivegarden.com/fonts/neulis-cursive/neulis_cursive_semi_bold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Cursive";
  src:
    local("Neulis Cursive Bold"),
    url("https://media.olivegarden.com/fonts/neulis-cursive/neulis_cursive_bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Cursive";
  src:
    local("Neulis Cursive Extra Bold"),
    url("https://media.olivegarden.com/fonts/neulis-cursive/neulis_cursive_extra_bold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Cursive";
  src:
    local("Neulis Cursive Black"),
    url("https://media.olivegarden.com/fonts/neulis-cursive/neulis_cursive_black.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* =========================
   Neulis Neue (Subheadings)
   Weights used: 400, 500, 700, 900
   ========================= */
@font-face
{
  font-family: "Neulis Neue";
  src:
    local("Neulis Neue Regular"),
    url("https://media.olivegarden.com/fonts/neulis-neue/neulis_neue_regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Neue";
  src:
    local("Neulis Neue Medium"),
    url("https://media.olivegarden.com/fonts/neulis-neue/neulis_neue_medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Neue";
  src:
    local("Neulis Neue Bold"),
    url("https://media.olivegarden.com/fonts/neulis-neue/neulis_neue_bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Neue";
  src:
    local("Neulis Neue Black"),
    url("https://media.olivegarden.com/fonts/neulis-neue/neulis_neue_black.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* =========================
   Neulis Sans (Body/Caption)
   Weights used: 400, 500, 600, 700, 800, 900
   ========================= */
@font-face
{
  font-family: "Neulis Sans";
  src:
    local("Neulis Sans Regular"),
    url("https://media.olivegarden.com/fonts/neulis-sans/neulis_sans_regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Sans";
  src:
    local("Neulis Sans Medium"),
    url("https://media.olivegarden.com/fonts/neulis-sans/neulis_sans_medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Sans";
  src:
    local("Neulis Sans Semi Bold"),
    url("https://media.olivegarden.com/fonts/neulis-sans/neulis_sans_semi_bold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Sans";
  src:
    local("Neulis Sans Bold"),
    url("https://media.olivegarden.com/fonts/neulis-sans/neulis_sans_bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Sans";
  src:
    local("Neulis Sans Extra Bold"),
    url("https://media.olivegarden.com/fonts/neulis-sans/neulis_sans_extra_bold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Neulis Sans";
  src:
    local("Neulis Sans Black"),
    url("https://media.olivegarden.com/fonts/neulis-sans/neulis_sans_black.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* =========================
   Royal Palms (Accent)
   Your files look like style variants, not weights. 
   Use distinct family names OR map to weights if the foundry recommends it.
   ========================= */

/* If each file is a distinct style, define separate families: */
@font-face
{
  font-family: "Royal Palms";
  src:
    local("Royal Palms"),
    url("https://media.olivegarden.com/fonts/royal-palms/royalpalms-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Royal Palms";
  src:
    local("Royal Palms"),
    url("https://media.olivegarden.com/fonts/royal-palms/royalpalms-signature.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face
{
  font-family: "Royal Palms";
  src:
    local("Royal Palms"),
    url("https://media.olivegarden.com/fonts/royal-palms/royalpalms-signaturealt.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}



.font-neulis-cursive
{
  font-family: var(--ff-heading);
}

.font-neulis-neus
{
  font-family: var(--ff-subheading);
}

.font-neulis-sans
{
  font-family: var(--ff-body);
}

.font-royal-palms
{
  font-family: var(--ff-accent);
}

.btn
{
  font-family: var(--ff-body, "Neulis Sans", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif);
  text-transform: uppercase;
  border-radius: 30px;
  font-size: 0.875rem;
  font-weight: 700;
  border: none;
}

.btn--green
{
  background-color: #a8ad00;
  color: #000000;

}

.btn--green:hover,
.btn--green:focus,
.btn--green:active
{
  background-color: #98982f;
}

.btn--light-pink
{
  background-color: #ffedd8;
  color: #000;
}

.btn--light-pink:hover,
.btn--light-pink:focus,
.btn--light-pink:active
{
  background-color: var(--btn-hover-bg, #000);
  color: var(--btn-hover-color, #fff);
}

/* Display / Hero */
.typo-display
{
  font-family: var(--ff-display);
  font-weight: var(--fw-bold);
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  letter-spacing: var(--ls-tight);
}


/* Headings (Neulis Cursive) */
.typo-h1
{
  font-family: var(--ff-heading);
  font-weight: var(--fw-bold);
  font-size: var(--fs-h1);
  line-height: 1.1;
  letter-spacing: var(--ls-tight);
}

.typo-h2
{
  font-family: var(--ff-heading);
  font-weight: var(--fw-bold);
  font-size: var(--fs-h2);
  line-height: 1.15;
  letter-spacing: var(--ls-tight);
}

.typo-h3
{
  font-family: var(--ff-heading);
  font-weight: var(--fw-bold);
  font-size: var(--fs-h3);
  line-height: 1.2;
  letter-spacing: var(--ls-tight);
}

.typo-h4
{
  font-family: var(--ff-heading);
  font-weight: var(--fw-bold);
  font-size: var(--fs-h4);
  line-height: 1.2;
}

.typo-h5
{
  font-family: var(--ff-heading);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-h5);
  line-height: 1.25;
}

.typo-h6
{
  font-family: var(--ff-heading);
  font-weight: var(--fw-medium);
  font-size: var(--fs-h6);
  line-height: 1.3;
}

/* Subheadings (Neulis Neue) */
.typo-sub-xl
{
  font-family: var(--ff-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-sub-xl);
  line-height: 1.25;
  letter-spacing: var(--ls-tight);
}

.typo-sub-lg
{
  font-family: var(--ff-subheading);
  font-weight: var(--fw-bold);
  font-size: var(--fs-sub-lg);
  line-height: 1.3;
}

.typo-sub-sm
{
  font-family: var(--ff-subheading);
  font-weight: var(--fw-bold);
  font-size: var(--fs-body-lg);
  line-height: 1.2;
}

/* Body (Neulis Sans) */
.typo-body-lg
{
  font-family: var(--ff-body);
  font-weight: var(--fw-medium);
  font-size: var(--fs-body-lg);
  line-height: var(--lh-normal);
}

.typo-body-md
{
  font-family: var(--ff-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-body-md);
  line-height: var(--lh-loose);
}

.typo-body-sm
{
  font-family: var(--ff-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-loose);
}

/* Caption */
.typo-caption-lg
{
  font-family: var(--ff-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-caption-lg);
  line-height: 1.35;
  opacity: .85;
}

.typo-caption-sm
{
  font-family: var(--ff-body);
  font-weight: var(--fw-regular);
  font-size: var(--fs-caption-sm);
  line-height: 1.35;
  opacity: .85;
}

/* Accent (Royal Palms) – freestyle size; use utilities below or set inline */
.typo-accent
{
  font-family: var(--ff-accent);
  font-weight: var(--fw-regular);
  line-height: 1.1;
}

.fnt-w5
{
  font-weight: 600;
}

.fnt-w6
{
  font-weight: 600;
}

.fnt-w7
{
  font-weight: 700;
}

button
{
  font-family: var(--ff-subheading);
}


/* .typo-h2 {
  font-size: var(--font-desktop);
} */

@media (max-width: 767px)
{
  .typo-h1
  {
    font-size: 2.5rem;
  }

  .typo-h2
  {
    font-size: var(--font-mobile);
  }
}


/* ============================================
   Typography
   ============================================ */
body
{
  color: var(--text-black);
  font-size: 1rem;
  line-height: 1.6;
}


/* Offset utilities to mimic Bootstrap 5 */
.bottom-0
{
  bottom: 0 !important;
}

/* Logical start/end for LTR & RTL support */
.start-0
{
  left: 0 !important;
}

.end-0
{
  right: 0 !important;
}

/* ===============================
   Bootstrap-like Gap Utilities
   Scale: 0, .25rem, .5rem, 1rem, 1.5rem, 3rem
   Breakpoints: sm (≥576px), md (≥768px), lg (≥992px), xl (≥1200px), xxl (≥1400px)
   =============================== */

/* ---- Base scale (no breakpoint) ---- */
.gap-0
{
  gap: 0;
}

.gap-1
{
  gap: 0.25rem;
}

.gap-2
{
  gap: 0.5rem;
}

.gap-3
{
  gap: 1rem;
}

.gap-4
{
  gap: 1.5rem;
}

.gap-5
{
  gap: 3rem;
}

.row
{
  margin-right: -15px;
  margin-left: -15px;
}

.row-gap-0
{
  row-gap: 0;
}

.row-gap-1
{
  row-gap: 0.25rem;
}

.row-gap-2
{
  row-gap: 0.5rem;
}

.row-gap-3
{
  row-gap: 1rem;
}

.row-gap-4
{
  row-gap: 1.5rem;
}

.row-gap-5
{
  row-gap: 3rem;
}

.column-gap-0
{
  column-gap: 0;
}

.column-gap-1
{
  column-gap: 0.25rem;
}

.column-gap-2
{
  column-gap: 0.5rem;
}

.column-gap-3
{
  column-gap: 1rem;
}

.column-gap-4
{
  column-gap: 1.5rem;
}

.column-gap-5
{
  column-gap: 3rem;
}

/* ====================================
   Responsive variants
   (Use the same pattern for row-gap-* and column-gap-*)
   ==================================== */

/* >= 576px (sm) */
@media (min-width: 576px)
{
  .gap-sm-0
  {
    gap: 0;
  }

  .gap-sm-1
  {
    gap: 0.25rem;
  }

  .gap-sm-2
  {
    gap: 0.5rem;
  }

  .gap-sm-3
  {
    gap: 1rem;
  }

  .gap-sm-4
  {
    gap: 1.5rem;
  }

  .gap-sm-5
  {
    gap: 3rem;
  }

  .row-gap-sm-0
  {
    row-gap: 0;
  }

  .row-gap-sm-1
  {
    row-gap: 0.25rem;
  }

  .row-gap-sm-2
  {
    row-gap: 0.5rem;
  }

  .row-gap-sm-3
  {
    row-gap: 1rem;
  }

  .row-gap-sm-4
  {
    row-gap: 1.5rem;
  }

  .row-gap-sm-5
  {
    row-gap: 3rem;
  }

  .column-gap-sm-0
  {
    column-gap: 0;
  }

  .column-gap-sm-1
  {
    column-gap: 0.25rem;
  }

  .column-gap-sm-2
  {
    column-gap: 0.5rem;
  }

  .column-gap-sm-3
  {
    column-gap: 1rem;
  }

  .column-gap-sm-4
  {
    column-gap: 1.5rem;
  }

  .column-gap-sm-5
  {
    column-gap: 3rem;
  }
}

/* >= 768px (md) */
@media (min-width: 768px)
{
  .gap-md-0
  {
    gap: 0;
  }

  .gap-md-1
  {
    gap: 0.25rem;
  }

  .gap-md-2
  {
    gap: 0.5rem;
  }

  .gap-md-3
  {
    gap: 1rem;
  }

  .gap-md-4
  {
    gap: 1.5rem;
  }

  .gap-md-5
  {
    gap: 3rem;
  }

  .row-gap-md-0
  {
    row-gap: 0;
  }

  .row-gap-md-1
  {
    row-gap: 0.25rem;
  }

  .row-gap-md-2
  {
    row-gap: 0.5rem;
  }

  .row-gap-md-3
  {
    row-gap: 1rem;
  }

  .row-gap-md-4
  {
    row-gap: 1.5rem;
  }

  .row-gap-md-5
  {
    row-gap: 3rem;
  }

  .column-gap-md-0
  {
    column-gap: 0;
  }

  .column-gap-md-1
  {
    column-gap: 0.25rem;
  }

  .column-gap-md-2
  {
    column-gap: 0.5rem;
  }

  .column-gap-md-3
  {
    column-gap: 1rem;
  }

  .column-gap-md-4
  {
    column-gap: 1.5rem;
  }

  .column-gap-md-5
  {
    column-gap: 3rem;
  }
}

/* >= 992px (lg) */
@media (min-width: 992px)
{
  .gap-lg-0
  {
    gap: 0;
  }

  .gap-lg-1
  {
    gap: 0.25rem;
  }

  .gap-lg-2
  {
    gap: 0.5rem;
  }

  .gap-lg-3
  {
    gap: 1rem;
  }

  .gap-lg-4
  {
    gap: 1.5rem;
  }

  .gap-lg-5
  {
    gap: 3rem;
  }

  .row-gap-lg-0
  {
    row-gap: 0;
  }

  .row-gap-lg-1
  {
    row-gap: 0.25rem;
  }

  .row-gap-lg-2
  {
    row-gap: 0.5rem;
  }

  .row-gap-lg-3
  {
    row-gap: 1rem;
  }

  .row-gap-lg-4
  {
    row-gap: 1.5rem;
  }

  .row-gap-lg-5
  {
    row-gap: 3rem;
  }

  .column-gap-lg-0
  {
    column-gap: 0;
  }

  .column-gap-lg-1
  {
    column-gap: 0.25rem;
  }

  .column-gap-lg-2
  {
    column-gap: 0.5rem;
  }

  .column-gap-lg-3
  {
    column-gap: 1rem;
  }

  .column-gap-lg-4
  {
    column-gap: 1.5rem;
  }

  .column-gap-lg-5
  {
    column-gap: 3rem;
  }
}

/* >= 1200px (xl) */
@media (min-width: 1200px)
{
  .gap-xl-0
  {
    gap: 0;
  }

  .gap-xl-1
  {
    gap: 0.25rem;
  }

  .gap-xl-2
  {
    gap: 0.5rem;
  }

  .gap-xl-3
  {
    gap: 1rem;
  }

  .gap-xl-4
  {
    gap: 1.5rem;
  }

  .gap-xl-5
  {
    gap: 3rem;
  }

  .row-gap-xl-0
  {
    row-gap: 0;
  }

  .row-gap-xl-1
  {
    row-gap: 0.25rem;
  }

  .row-gap-xl-2
  {
    row-gap: 0.5rem;
  }

  .row-gap-xl-3
  {
    row-gap: 1rem;
  }

  .row-gap-xl-4
  {
    row-gap: 1.5rem;
  }

  .row-gap-xl-5
  {
    row-gap: 3rem;
  }

  .column-gap-xl-0
  {
    column-gap: 0;
  }

  .column-gap-xl-1
  {
    column-gap: 0.25rem;
  }

  .column-gap-xl-2
  {
    column-gap: 0.5rem;
  }

  .column-gap-xl-3
  {
    column-gap: 1rem;
  }

  .column-gap-xl-4
  {
    column-gap: 1.5rem;
  }

  .column-gap-xl-5
  {
    column-gap: 3rem;
  }
}

/* >= 1400px (xxl) */
@media (min-width: 1400px)
{
  .gap-xxl-0
  {
    gap: 0;
  }

  .gap-xxl-1
  {
    gap: 0.25rem;
  }

  .gap-xxl-2
  {
    gap: 0.5rem;
  }

  .gap-xxl-3
  {
    gap: 1rem;
  }

  .gap-xxl-4
  {
    gap: 1.5rem;
  }

  .gap-xxl-5
  {
    gap: 3rem;
  }

  .row-gap-xxl-0
  {
    row-gap: 0;
  }

  .row-gap-xxl-1
  {
    row-gap: 0.25rem;
  }

  .row-gap-xxl-2
  {
    row-gap: 0.5rem;
  }

  .row-gap-xxl-3
  {
    row-gap: 1rem;
  }

  .row-gap-xxl-4
  {
    row-gap: 1.5rem;
  }

  .row-gap-xxl-5
  {
    row-gap: 3rem;
  }

  .column-gap-xxl-0
  {
    column-gap: 0;
  }

  .column-gap-xxl-1
  {
    column-gap: 0.25rem;
  }

  .column-gap-xxl-2
  {
    column-gap: 0.5rem;
  }

  .column-gap-xxl-3
  {
    column-gap: 1rem;
  }

  .column-gap-xxl-4
  {
    column-gap: 1.5rem;
  }

  .column-gap-xxl-5
  {
    column-gap: 3rem;
  }
}

@media (max-width: 768px)
{
  .mobile-px-20
  {
    padding-left: 20px;
    padding-right: 20px;
  }
}


.text-transform-none
{
  text-transform: none !important;
}

/* ============================================
   Buttons
   ============================================ */
.btn
{
  font-family: var(--ff-subheading);
  border-radius: 50px;
  padding: 12px 20px;
  font-weight: var(--fw-bold);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 0.875rem;
  transition: all 0.3s ease;
  border: none;
}

@media (max-width: 768px)
{
  .btn
  {
    padding: 12px 20px;
  }
}

.btn-large
{
  padding-top: 9px !important;
  padding-bottom: 9px !important;
  width: 100% !important;
}

.btn-small
{
  padding: 9px 12px !important;
}

.btn-primary-og
{
  background-color: var(--og-orange);
  color: var(--text-black);
}

.btn-primary-og:hover
{
  background-color: var(--og-orange-hover);
  color: var(--text-light);
}

.btn-secondary-og
{
  background-color: var(--og-green-dark);
  color: var(--text-light);
}

.btn-secondary-og:hover
{
  background-color: var(--og-green-medium);
  color: var(--text-light);
}

.btn-outline-og
{
  background-color: transparent;
  color: var(--text-black);
  border: 2px solid var(--text-black);
}

.btn-outline-og:hover
{
  background-color: var(--text-dark);
  color: var(--text-light) !important;
  border: 2px solid var(--text-light);
}

.btn-outline-light-og
{
  background-color: transparent;
  color: var(--text-light);
  border: 2px solid var(--text-light);
}

.btn-outline-light-og:hover
{
  background-color: var(--text-light);
  color: var(--text-dark);
}

.btn-white-og
{
  background-color: var(--text-light);
  color: var(--text-dark);
}

.btn-white-og:hover
{
  background-color: var(--og-orange-light);
  color: var(--text-dark);
}

.btn-peach-og
{
  background-color: var(--bg-peach);
  color: var(--text-black);
}

.btn-peach-og:hover
{
  background-color: var(--og-orange-light);
  color: var(--text-black);
}

.btn-blue-og
{
  background-color: var(--med-blue-100);
  color: var(--text-black);
}

.btn-blue-og:hover
{
  background-color: var(--bg-light);
}


.btn-blue-900-og
{
  background-color: var(--med-blue-900);
  color: var(--text-black);
}

.btn-blue-900-og:hover
{
  background-color: var(--bg-light);
}

.btn-green-og
{
  background-color: var(--og-green-100);
  color: var(--text-black);
}

.btn-green-og:hover
{
  background-color: var(--bg-light);
}

.btn-outline-parmesan-og
{
  color: var(--parmesan-900);
  border: 2px solid var(--parmesan-900);
  background-color: rgba(0, 0, 0, 0.5);
}

.btn-outline-parmesan-og:hover
{
  color: var(--parmesan-900);
}

.btn-parmesan-og
{
  background-color: var(--parmesan-900);
  color: var(--text-black);
}

.btn-parmesan-og:hover
{
  background-color: var(--og-orange-light);
}

.btn-tomato-100-og
{
  background-color: var(--tomato-red-100);
  color: var(--text-black);
}

.btn-tomato-100-og:hover
{
  background-color: var(--tomato-red-400);
  /* TODO: NEED TO BE CHANGE AS PER CLIENT UPDATE */
}

.btn-green-900-og
{
  background-color: var(--og-green-900);
  color: var(--text-black);
}

.btn-green-900-og:hover
{
  background-color: var(--og-green-800);
}

/* ============================================
   Background Colors
   ============================================ */
.bg-parmesan
{
  background-color: var(--parmesan-900);
}

.bg-og-green
{
  background-color: var(--og-green-dark);
}

.bg-og-green-light
{
  background-color: var(--og-green-pale);
}

.bg-og-green-dark
{
  background-color: var(--og-green-bg);
}

.bg-footer
{
  background-color: var(--og-green-footer);
}

.bg-pasta-yellow
{
  background-color: var(--pasta-yellow-pale);
}

.bg-tomato-red
{
  background-color: var(--tomato-red-pale);
}

.bg-med-blue
{
  background-color: var(--med-blue-pale);
}

/* ============================================
   Text Colors
   ============================================ */
.text-og-green
{
  color: var(--og-green-dark);
}

.text-og-orange
{
  color: var(--og-orange);
}

.text-oregano-dark
{
  color: var(--oregano-dark);
}

/* ============================================
   Cards
   ============================================ */
.card-og
{
  border-radius: 12px;
  overflow: hidden;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  border: none;
  height: 100%;
}

.card-og:hover
{
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.card-og .card-img-top
{
  transition: transform 0.3s ease;
  overflow: hidden;
}

.card-og:hover .card-img-top
{
  transform: scale(1.1);
}

.w-fit-content
{
  width: fit-content;
}

@media (max-width: 768px)
{
  .page--home
  {
    background-color: #fff;
  }
}

.navbar-og
{
  border: 1px solid #d0d0d0;
  padding: 1rem 0;
}

.navbar-og .navbar-brand
{
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--og-green-dark);
}

.navbar-og .nav-link
{
  color: var(--text-dark);
  font-weight: 600;
  text-transform: uppercase;
  padding: 0.5rem 1rem;
  transition: color 0.3s ease;
}

.navbar-og .nav-link:hover
{
  color: var(--og-orange);
}

/* Hamburger Menu Styles */
.hamburger-menu
{
  padding: 1.75rem;
  position: fixed;
  top: 0;
  right: -100%;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 9999;
  transition: right 0.3s ease;
  overflow-y: auto;
  box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
}

.hamburger-menu.active
{
  right: 0;
}

.hamburger-menu-header
{
  padding: 1.5rem;
  border-bottom: 1px solid #e0e0e0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hamburger-menu-header h5
{
  margin: 0;
  color: var(--text-dark);
  font-size: 1.1rem;
}

.hamburger-menu-close
{
  background: none;
  border: none;
  font-size: 1.5rem;
  color: var(--text-dark);
  cursor: pointer;
  padding: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hamburger-menu-user
{
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-dark);
  font-weight: 600;
  padding: 0 1.5rem;
  margin-top: 1rem;
}

.hamburger-menu-content
{
  padding: 1.5rem 0;
}

.nav-primary
{
  list-style: none;
  padding: 0;
  margin: 0;
}

.nav-primary li a
{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0rem;
  color: var(--text-dark);
  text-decoration: none;
  font-weight: 700;
  font-size: 1rem;
  transition: background-color 0.3s ease;
}

.nav-primary li a:hover
{
  background-color: var(--parmesan-pale);
}

.nav-primary li a::after
{
  content: ">";
  font-weight: 700;
}

.nav-secondary
{
  list-style: none;
  padding: 0;
  margin: 1rem 0;
  border-top: 2px dotted #d0d0d0;
  padding-top: 1rem;
}

.nav-secondary li a
{
  display: block;
  padding: 0.75rem 0rem;
  color: var(--text-dark);
  text-decoration: none;
  font-weight: 400;
  font-size: 0.95rem;
  transition: background-color 0.3s ease;
}

.nav-secondary li a:hover
{
  background-color: var(--parmesan-pale);
}

.hamburger-menu-actions
{
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.5rem;
  background-color: #fff;
  border-top: 1px solid #e0e0e0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.hamburger-menu-actions .btn
{
  width: 100%;
  border-radius: 50px;
  padding: 12px 24px;
}

.menu-overlay
{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 9998;
  display: none;
}

.menu-overlay.active
{
  display: block;
}

/* Generic Component Styles */
.heading-container-h2
{
  margin-bottom: 2rem;
}

@media (max-width: 768px)
{
  .heading-container-h2
  {
    margin-bottom: 1.5rem;
  }

  .heading-container-h2 h2
  {
    font-size: 1.75rem;
  }
}

/* ============================================
   Hero Section
   ============================================ */
.hero-section
{
  position: relative;
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hero-overlay
{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
}

.hero-content
{
  position: relative;
  z-index: 2;
  text-align: center;
  color: var(--text-light);
}

.hero-content h1
{
  color: var(--text-light);
  font-size: 3rem;
  margin-bottom: 1.5rem;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

/* ============================================
   Section Styles
   ============================================ */
.section-title
{
  text-align: center;
  margin-bottom: 3rem;
}

.section-title .script-font
{
  font-size: 2rem;
  display: block;
  margin-bottom: 0.5rem;
}

.section-title h2
{
  font-size: 2.5rem;
  margin: 0;
}

/* ============================================
   Form Styles
   ============================================ */
.form-control-og
{
  border-radius: 50px;
  border: 1px solid #ddd;
  padding: 12px 20px;
  font-size: 0.875rem;
}

.form-control-og:focus
{
  border-color: var(--og-orange);
  box-shadow: 0 0 0 0.2rem rgba(228, 141, 46, 0.25);
}

/* ============================================
   Badges
   ============================================ */
.badge-new
{
  background-color: var(--tomato-red-dark);
  color: var(--text-light);
  padding: 0.5rem 1rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 10;
}

/* ============================================
   Responsive Utilities
   ============================================ */

/* ============================================
   Spacing Utilities
   ============================================ */
.menu-highlites-og
{
  margin: 0 auto;
  margin-top: calc(var(--ml-top-mobile, 0) * 1px);
  margin-bottom: calc(var(--ml-bottom-mobile, 0) * 1px);
}

.section-og
{
  max-width: 1200px;
  margin: 0 auto;
  margin-top: calc(var(--ml-top-mobile, 0) * 1px);
  margin-bottom: calc(var(--ml-bottom-mobile, 0) * 1px);
  padding-top: calc(var(--padding-top-desktop, 0) * 1px);
  padding-bottom: calc(var(--padding-bottom-desktop, 0) * 1px);
}

@media (max-width: 992px)
{

  .section-og,
  .menu-highlites-og
  {
    max-width: calc(100% - 32px);
  }
}

/* Desktop breakpoint (adjust to your project’s breakpoint) */
@media (min-width: 992px)
{

  .section-og,
  .menu-highlites-og
  {
    margin-top: calc(var(--ml-top-desktop, var(--ml-top-mobile, 0)) * 1px);
    margin-bottom: calc(var(--ml-bottom-desktop, var(--ml-bottom-mobile, 0)) * 1px);
  }
}

@media (max-width: 768px)
{
  .section-og
  {
    margin-top: calc(var(--ml-top-mobile, 0) * 1px);
    margin-bottom: calc(var(--ml-bottom-mobile, 0) * 1px);
    padding-top: calc(var(--padding-top-mobile, 0) * 1px);
    padding-bottom: calc(var(--padding-bottom-mobile, 0) * 1px);
  }
}



/* ============================================
   Home Page
   ============================================ */

.hero-section
{
  background-image: url("https://images.unsplash.com/photo-1621996346565-e3dbc646d9a9?w=1366&h=768&fit=crop");
  min-height: 500px;
}

@media (max-width: 768px)
{
  .hero-section
  {
    min-height: 400px;
  }
}

.menu-highlites-container
{
  margin: 0 84px;
}

/* Base card layout */
.menu-highlight-card
{
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  color: #fff;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  max-width: 390px;
  height: 390px;
  display: flex;
  align-items: end;
  justify-content: flex-start;
  padding: 32px;
  background-image: var(--desktop-img);
  background-size: cover;
  background-position: center;
  aspect-ratio: 1 / 1;
  width: clamp(200px, 40vw, 392px);
}

.menu-highlight h2:first-of-type
{
  margin-bottom: 24px;
}

.menu-highlight-card img
{
  position: absolute;
  top: 0;
  right: 0;
  width: 390px;
  height: 198px;
  object-fit: cover;
  z-index: 1;
  transition: transform 0.3s ease;
}

@media (max-width: 768px)
{
  .menu-highlight-card
  {
    border-radius: 12px;
    min-width: calc(100% - 32px);
    color: white;
    transition: transform 0.3s ease;
  }

  .menu-highlight-card img
  {
    width: 100%;
    height: auto;
  }

  .menu-highlight-card h4
  {
    font-size: 1.5rem !important;
  }
}

.menu-highlight-card:hover img
{
  transform: scale(1.1);
}

.menu-highlight-card .content
{
  position: relative;
  margin: 32px 0 0 32px;
}

.promotion-card-img
{
  margin-bottom: 20px;
}

.special-card
{
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2rem;
  color: white;
  aspect-ratio: 389 / 435;
  background-size: cover;
  background-position: center;
  max-width: 389px;
  max-height: 435px;
}

.special-card::before
{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

.special-card .content
{
  position: relative;
  z-index: 2;
}

/* Specials slider */
.specials-slider
{
  position: relative;
}

.specials-slider .slick-slide
{
  padding: 0 16px 0 0;
}

/* .specials-slider .special-card {
  min-height: 360px;
} */

.specials-slider .slick-list
{
  margin: 0 -12px;
}

.specials-slider .slick-prev,
.specials-slider .slick-next
{

  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  /* THIS MUST ALWAYS STAY */
  z-index: 2;
  background: #ffecd6;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.15);
  transform-origin: center center;
  transition: transform 0.25s ease;
  will-change: transform;
}

.slick-next:before,
.slick-prev:before
{
  color: #000;
  content: "";
}

.specials-slider .slick-prev:hover,
.specials-slider .slick-next:hover
{
  transform: translateY(-50%) scale(1.1);
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.18);
}

.specials-slider .slick-prev
{
  left: -20px;
}

.specials-slider .slick-next
{
  right: -20px;
}

/* Completely hide arrows when Slick marks them as disabled (at ends) */
.specials-slider .slick-prev.slick-disabled,
.specials-slider .slick-next.slick-disabled
{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@media (max-width: 991.98px)
{

  .specials-slider .slick-prev,
  .specials-slider .slick-next
  {
    display: none !important;
  }
}

@media (max-width: 768px)
{
  .slick-slide
  {
    width: 280px !important;
  }

  .special-card
  {
    aspect-ratio: 280 / 312;
    max-width: 280px;
    max-height: 312px;
    padding: 1rem;
  }
}

.specials-slider
{
  gap: 16px;
  width: 100%;
  height: 100%;
}

.engagement-card
{
  flex: 1 1 calc(25% - 16px);
  /* 4 cards in one row */
}

/* Tablet: 2 cards per row */
@media (max-width: 1024px)
{
  .engagement-card
  {
    flex: 1 1 calc(50% - 16px);
  }
}

/* Mobile: 1 card per row */
@media (max-width: 600px)
{
  .engagement-card
  {
    flex: 1 1 100%;
  }
}

.engagement-card
{
  background-color: var(--og-orange);
  border-radius: 1rem;
  padding-bottom: 2rem;
  text-align: center;
  transition: transform 0.3s ease;
  width: 100%;
  max-width: 288px;
  aspect-ratio: 288 / 350;
  max-height: 350px;
  position: relative;
}

.engagement-card .text-btn-section
{
  bottom: 32px;
  position: absolute;
  width: 100%;
}

.engagement-card:hover
{
  transform: translateY(-5px);
}

.engagement-card i
{
  font-size: 3rem;
  color: var(--oregano-dark);
  margin-bottom: 1rem;
}

.engagement-card h5
{
  color: var(--oregano-dark);
  margin-bottom: 1rem;
}

@media (max-width: 600px)
{
  .engagement-card
  {
    border-radius: 1rem;
    padding: 12px;
    text-align: center;
    width: 100%;
    max-width: 343px;
    aspect-ratio: 343 / 132;
    max-height: 132px;
    display: flex;
    gap: 0 16px;
  }

  .engagement-card h5
  {
    text-align: left;
    margin-bottom: 0;
  }

  .engagement-card a
  {
    padding: 9px 32px;
    font-size: 0.875rem;
    margin-top: 12px;
  }
}

/*  ============================================
    Header  Page
    ============================================ */

.header-wrapper
{
  padding: 0.73rem 5.18rem;
  box-shadow: rgb(204, 204, 204) 0.125rem 0.125rem 0.5rem;
  height: 100px;
  background: #fff;
}

.header .desktop-nav-wrapper
{
  font-family: var(--ff-subheading);
  font-weight: var(--fw-bold);
  margin-left: 2.65rem;
}

.header .desktop-nav-wrapper .desktop-nav .desktop-nav-link
{
  color: #000;
}

.header .cart-location-wrapper .cart-location-item .cart-location-link
{
  color: #000;
  font-family: var(--ff-subheading);
  font-weight: var(--fw-bold);
}

.header .cart-location-wrapper .cart-location
{
  gap: 1rem;
}

.header .visually-hidden
{
  position: absolute;
  overflow: hidden;
  clip: rect(0px, 0px, 0px, 0px);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0px;
  border: 0px;
}

.ae-img-tir
{
  width: 224px;
  top: 32%;
  right: 0;
}

@media (max-width: 600px)
{
  .ae-img-cart
  {
    width: 34px;
  }

  .ae-img-logo
  {
    width: 5rem;
  }

  .header .cart-location-wrapper .cart-location
  {
    gap: 12px;
  }

  .header-wrapper
  {
    padding: 1.57rem 26px;
    height: 84px;
  }
}

.header .hamburger-button
{
  background: transparent;
  border: none;
  margin: 0 20px 0 0;
  padding: 0px;
}

.header .hamburger-button:focus,
.header .hamburger-button:focus-within,
.header .hamburger-button:active
{
  outline: none;
}

.header .hamburger-button .hamburger
{
  width: 20px;
  height: 14px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: top 0.5s ease 0s;
}

.header .hamburger-button .hamburger i
{
  width: 100%;
  height: 0.16rem;
  opacity: 1;
  background-color: #000;
  transition:
    transform 0.175s cubic-bezier(0.215, 0.61, 0.355, 1) 0s,
    -webkit-transform 0.175s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
}

.header .hamburger-button .hamburger i.middle
{
  align-self: flex-start;
}

.header .hamburger-button .hamburger.slider-open i.top
{
  transform: translateY(6px) rotate(45deg);
}

.header .hamburger-button .hamburger.slider-open i.middle
{
  opacity: 0;
}

.header .hamburger-button .hamburger.slider-open i.bottom
{
  transform: translateY(-5px) rotate(-45deg);
}

.header .mobile-nav-slider-wrapper
{
  font-family: var(--ff-subheading);
  font-weight: var(--fw-bold);
  width: 100vw;
  height: 100vh;
  top: 84px;
  left: 0;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
  z-index: 1030;
  overflow-y: auto;
  box-shadow: rgb(204, 204, 204) -2px 7px 6px -6px inset;
  background-image: url("https://media.olivegarden.com/images/OG_Redesign_Assets/Mobile/Mobile_Hamburger_Menu_Illustration.png");
  background-size: 15rem;
  background-repeat: no-repeat;
  background-position: right 0% bottom 20%;
  padding: 1.5rem 1.5rem 5rem;
}

@media (min-width: 360px)
{
  .header .mobile-nav-slider-wrapper
  {
    background-position: right 0% bottom 50%;
  }
}

@media (min-width: 56.25em)
{
  .header .mobile-nav-slider-wrapper
  {
    display: none;
  }
}

@media (min-height: 50.75em) and (min-width: 23.4375em)
{
  .header .mobile-nav-slider-wrapper .mobile-nav-item
  {
    margin-bottom: 1.5rem;
  }


  .header .mobile-nav-slider-wrapper .mobile-nav-item:last-child
  {
    margin-bottom: 0;
  }

}

.header .mobile-nav-slider-wrapper .login-wrap__mobile .login-link
{
  position: relative;
  padding-right: 1rem;
}

.header .mobile-nav-slider-wrapper .login-wrap__mobile .login-link::after
{
  content: "/";
  display: inline-flex;
  position: absolute;
  right: 0;
}

.header .mobile-nav-slider-wrapper .login-wrap__mobile .logout-link
{
  padding-left: 0.5rem;
}

.header .mobile-nav-slider-wrapper .mobile-nav-link
{
  font-weight: 600;
  font-size: 1.25rem;
  line-height: 1.6;
  text-transform: uppercase;
  color: #000;
}

.header .mobile-nav-slider-wrapper.is-open
{
  transform: translateX(0);
}


.header .mobile-nav-slider-wrapper .mobile-nav.mobile-nav-primary
{
  border-bottom: 0.1rem solid rgb(204, 204, 204);
  padding-bottom: 1rem;
}

.header .mobile-nav-slider-wrapper .mobile-nav.mobile-nav-secondary
{
  margin-bottom: 5rem;
}


#no-location-selected
{
  font-family: var(--ff-subheading);
}

/* ___________________________ */

@media (min-width: 992px)
{

  /* lg and up */
  .brand
  {
    position: static;
    transform: none;
  }
}

/* Round “LOGIN” button look */
/* .btn-login {
  border: 2px solid #000;
  border-radius: 30px;
  padding: 13px 19px;
} */

/* Cart icon circle look */
.btn-cart
{
  width: 40px;
  height: 40px;
  border: 2px solid #000;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  position: relative;
}

.btn-cart .badge
{
  position: absolute;
  top: -6px;
  right: -6px;
}

/* Simple hamburger icon lines (if not using an svg) */
.hamburger span
{
  display: block;
  width: 22px;
  height: 2px;
  background: #000;
  margin: 4px 0;
}

/* Desktop Nav Menu */

.desktop-nav-menu
{
  align-items: center;
  margin: 0 60px;
  gap: 32px;
  color: #000;
}

.desktop-nav-menu a
{
  color: #000;
  font-weight: 700;
}

/* Desktop Nav Menu */

.desktop-nav-menu
{
  align-items: center;
  margin: 0 60px;
  gap: 32px;
  color: #000;
}

.desktop-nav-menu a
{
  color: #000;
  font-weight: 700;
}


/* MOBILE FOOTER */
#mobile-footer
{
  height: 82px;
  z-index: 10;
}

@media (max-width: 767px)
{
  .mb-mobile-footer
  {
    margin-bottom: 82px;
  }
}

/* VIDEO BANNER */
.video-banner
{
  min-height: 768px;
  width: 100%;
  background-color: #000;
}

/* Media container (video + overlay) */
.video-media
{
  position: absolute;
  inset: 0;
  z-index: 0;
}

video
{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Content stack */
.video-content
{
  position: relative;
  z-index: 1;
  min-height: 768px;
  padding: 4rem 1rem;
  justify-content: center;
}

.video-title
{
  font-family: "og_neulis_bold";
  font-weight: 700;
  font-size: 6.25rem;
  line-height: 90%;
  text-align: center;
  color: #fff;
}

.vide-banner-btn
{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
}

/* ===== Responsive Type ===== */
@media (max-width: 1200px)
{
  .video-content
  {
    min-height: 620px;
  }
}

@media (max-width: 992px)
{

  /* tablets */
  .video-content
  {
    min-height: 520px;
  }

  .video-title
  {
    font-size: 3.5rem;
  }
}

@media (max-width: 768px)
{

  .vide-banner-btn
  {
    flex-direction: column;
  }

  /* phones */
  .video-content
  {
    min-height: 420px;
    padding: 3rem 1rem;
  }

  .video-title
  {
    font-size: 3.75rem;
    line-height: 112.00000000000001%;
    white-space: nowrap;
  }

  .video-cta
  {
    padding: 0.75rem 1.25rem;
  }
}

/* ========= ECLUB SECTION START ========== */

.eclub-section
{
  background: var(--og-green-900);
  padding: 24px 48px;
  display: flex;
  align-items: center;
}


.eclub-input
{
  padding: 8px 16px;
  border-radius: 26px;
  border: 1px solid var(--og-green-900);
  background: #fff;
  font-size: 0.875rem;
  font-family: "Neulis Sans";
  line-height: 1.2;
}

.eclub-input::placeholder
{
  color: #979797 !important;
}

.eclub-btn
{
  display: flex;
  border-radius: 30px;
  height: 52px;
  padding: 20px 28px;
  justify-content: center;
  align-items: center;
  font-family: "Neulis Neue";
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 700;
  line-height: 18px;
}

.eclub-btn:hover
{
  color: #000000;
}

.invalid-feedback
{
  color: var(--text-black);
}

/* has() ONLY WORK IN LATEST BROWSER */
.eclub-section:has(.eclub-input.is-invalid) .invalid-feedback-mobile
{
  margin-top: 12px;
  margin-bottom: 12px;
}

.eclub-input.is-invalid
{
  border-color: var(--og-error-red);
  border: 2px solid;
  color: var(--og-error-red);
}

.eclub-input.is-invalid::placeholder
{
  color: var(--og-error-red);
}

.eclub-success-msg
{
  display: flex;
  flex-direction: row;
  align-items: center;
  text-align: left;
  justify-content: center;
  gap: 16px;
}

.eclub-success-icon
{
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.eclub-success-content
{
  max-width: 640px;
}

.eclub-desktop-line
{
  gap: 16px !important;
}

.eclub-gap-16
{
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.eclub-form-layout
{
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  justify-content: center;
}

.eclub-heading-block
{
  grid-area: heading;
}

.eclub-fields-row
{
  grid-area: fields;
}

.eclub-errors-mobile
{
  grid-area: errors;
}

.eclub-submit-wrap
{
  grid-area: submit;
}

.eclub-footnote--mobile
{
  grid-area: footnote;
}

.eclub-heading-block
{
  flex: 0 0 auto;
  margin-right: 37px;
}

.eclub-fields-row
{
  display: flex;
  gap: 16px;
  min-width: 0;
}

.eclub-submit-wrap
{
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}

.eclub-footnote--desktop
{
  display: block;
}


.eclub-errors-mobile
{
  display: none;
}

.eclub-footnote--mobile
{
  display: none;
}

@media (max-width: 991px)
{
  .eclub-section
  {
    background: var(--og-green-900);
    padding: 24px 16px;
    display: flex;
    align-items: center;

    .container-fluid
    {
      padding-left: 0;
      padding-right: 0;
    }
  }

  .eclub-title
  {
    font-size: 1.125rem;
  }

  .eclub-input
  {
    height: 48px;
    border-radius: 24px;
    font-size: 0.75rem;
  }

  .eclub-btn
  {
    display: flex;
    height: 48px;
    padding: 6px 24px;
    justify-content: center;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    align-self: stretch;

    font-size: 1rem;
    font-weight: 600;
    line-height: normal;
    width: 100%;
  }

  .eclub-success-msg
  {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .eclub-success-content
  {
    max-width: 100%;
  }

  .eclub-form-layout
  {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "heading"
      "fields"
      "errors"
      "submit"
      "footnote";
    row-gap: 12px;
    align-items: start;
  }

  .eclub-heading-block
  {
    text-align: center;
    margin: 0;
  }

  .eclub-fields-row
  {
    gap: 8px;
    width: 100%;
  }

  .email-col
  {
    flex: 1 1 auto;
    min-width: 0;
  }

  .zip-col
  {
    flex: 0 0 40%;
    min-width: 120px;
    max-width: 260px;
  }

  .eclub-footnote--mobile
  {
    display: block;
    font-size: 0.75rem;
    font-weight: 500;
  }

  .eclub-footnote--desktop
  {
    display: none;
  }

  .eclub-errors-mobile
  {
    display: block;
  }
}

@media (min-width: 992px)
{
  .eclub-input
  {
    height: 52px;
  }

  .invalid-feedback
  {
    height: 0;
    position: relative;
    margin-top: 6px;
  }

  /* has() ONLY WORK IN LATEST BROWSER */
  .eclub-section:has(.eclub-input.is-invalid) #submit-ab-eclub
  {
    margin-bottom: 6px;
  }

  .eclub-submit-wrap
  {
    width: fit-content;
  }

  .zip-col
  {
    flex: 0 0 180px;
  }

  .email-col
  {
    width: 340px;
  }
}


@media (min-width: 1400px)
{
  #eclub_form .col-xxl-10
  {
    max-width: 1366px;
    margin: 0 auto;
  }
}

.visually-hidden
{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* ========= ECLUB SECTION END ========== */

/* ========= IMAGE BANNER SECTION START ========== */
.image-banner-section
{
  background-color: #ffedd8;
  padding-top: 64px;
  padding-bottom: 64px;
  gap: 24px;
}

.image-banner-wrapper
{
  width: 100%;
  height: 136px;
}

.image-banner
{
  max-width: 730px;
  max-height: 132px;
  display: block;
  margin: 0 auto;
}

.image-banner-title
{
  font-family: "Neulis Cursive";
  font-weight: 700;
  font-size: 5.625rem;
  line-height: 5.625rem;
  letter-spacing: 0;
  text-align: center;
  color: #000000;
  text-wrap: nowrap;
}

.image-banner-subtitle
{
  font-family: "Neulis Cursive";
  font-weight: 700;
  font-size: 2rem;
  line-height: 2rem;
  letter-spacing: 0;
  vertical-align: middle;
  color: #000000;
}

.image-banner-code
{
  display: none;
}

/* Mobile Eclub */
@media (max-width: 1023px)
{
  .image-banner-title
  {
    font-size: 3rem;
    line-height: 3rem;
    text-wrap: wrap;
  }

  .image-banner-section
  {
    height: 325px;
    padding-top: 17px;
    padding-bottom: 24px;
  }

  .image-banner-wrapper
  {
    height: 64px;
  }

  .image-banner-subtitle
  {
    display: none;
  }

  .image-banner-code
  {
    display: block;
    font-family: "Neulis Neue";
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 100%;
    letter-spacing: 0;
    color: #000000;
  }
}

/* ========= IMAGE BANNER SECTION END ========== */

/* ========= FAQS SECTION START ========== */
.faqs-holder
{
  max-width: 800px;
  margin-bottom: 4.5rem;
  width: 100%;
}

.faq-section
{
  .heading-container-h2
  {
    margin-top: 2.625rem;
  }
}

.faq-section
{
  background: #d3eaee;
  padding: 24px 0;
}

.faq-items
{
  border-bottom: 1px solid #c5c5c5;
  width: 100%;
  display: block;
}

.faq-inner
{
  width: 100%;
  display: flex;
  flex-direction: column;
}

.question
{
  width: 100%;
  display: flex;
  flex-direction: column;
}

.faqs-h2
{
  font-size: clamp(2rem, 3.125vw, 3rem);
  text-align: center;
  /* font-size: 3rem; */
  color: black;
}

.faqs-h3
{
  font-size: 1rem;
  font-weight: 500;
  color: black;
  cursor: pointer;
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.faqs-h3 .arrow
{
  transition: transform 0.1s ease;
}

.faqs-h3:not(.collapsed) .arrow
{
  transform: rotate(45deg);
}

.content.collapse
{
  width: 100% !important;
  transition: height 0.2s ease;
  overflow: hidden;
}

@media (max-width: 768px)
{
  .faqs-holder
  {
    max-width: calc(100% - 32px);
    padding: 0 8px;
  }

  .faq-items,
  .faq-inner,
  .question,
  .faqs-h3,
  .content.collapse
  {
    width: 100% !important;
    box-sizing: border-box;
  }
}

/* ========= FAQS SECTION END ========== */

/* ============================
   Carousel Section Home Page
============================ */

.carousel-section
{
  margin-bottom: 64px;
  padding: 60px 84px 0 60px;
}

.special-card
{
  background-image: var(--desktop-img);
}

@media (max-width: 767px)
{
  .carousel-section
  {
    margin-bottom: 0px;
    padding: 40px 16px 0 16px;
  }

  .special-card
  {
    background-image: var(--mobile-img);
  }
}

/* ============================
   MENU HIGHLIGHTS GRID LAYOUT
============================ */

.menu-highlight
{
  padding: 0 84px;
  margin-bottom: 64px;
}

.menu-grid-container
{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  max-width: 1220px;
  margin: 0 auto;
}



/* Content container */
.menu-card-content
{
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Title */
.menu-card-title
{
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.2;
  margin-bottom: 40px;
}

/* ============================
   DESKTOP (≥992px)
============================ */
@media (min-width: 992px)
{
  .menu-grid-container
  {
    justify-content: center;
  }

  .menu-highlight-card
  {
    max-width: 390px;
    height: 392px;
  }
}

@media (max-width: 767px)
{
  .menu-card-title
  {
    margin-bottom: 24px;
  }

  .menu-highlight-card
  {
    background-image: var(--mobile-img);
    max-height: 234px;
  }
}

/* ============================
   TABLET (600px–991px)
============================ */
@media (min-width: 600px) and (max-width: 991px)
{
  .menu-highlight
  {
    padding: 0 32px;
    margin-bottom: 32px;
  }

  .menu-highlight-card
  {
    max-width: 100%;
  }
}

/* ============================
   MOBILE (≤768px)
============================ */
@media (max-width: 768px)
{
  .menu-highlight
  {
    padding: 0;
  }

  .menu-highlight-card
  {
    width: 100%;
    max-width: 100%;
    height: 180px;
    padding: 20px 0 20px 20px;
    border-radius: 12px;
  }

  .menu-card-title
  {
    font-size: 1.5rem;
  }
}

@media (min-width: 769px)
{
  .menu-highlight-card
  {
    max-width: 390px;
  }
}

/* Icons */
.banner-icon
{
  width: 70px;
}

/* Heading */
.banner-heading
{
  font-size: 3rem;
  font-weight: 700;
  margin-top: 20px;
  margin-bottom: 10px;
}

/* Subheading text */
.banner-subtext
{
  font-family: var(--ff-heading);
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 20px;
}

/* CTA */
.banner-btn
{
  border-radius: 50px;
  font-weight: 600;
}

/* ============================= */
/* RESPONSIVE MOBILE OVERRIDES   */
/* ============================= */

@media (max-width: 767px)
{
  .banner-icon
  {
    width: 45px;
  }

  .dotted-line
  {
    width: 40px;
  }

  .banner-heading
  {
    font-size: 2rem;
    line-height: 1.2;
  }

  .banner-subtext
  {
    font-size: 1.25rem;
    margin-bottom: 20px;
  }
}

/* Main Section */
.image-banner-section
{
  display: flex;
  justify-content: center;
}

.image-banner-section
{
  background-image: var(--bg-desktop);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 750px auto;
  /* <-- do NOT stretch */
  padding: 140px 20px 60px;
}

/* MOBILE */
@media (max-width: 767px)
{
  .image-banner-section
  {
    background-size: 90% auto;
    /* smaller icons on mobile */
    padding-top: 120px;
    /* adjust as needed */
  }
}

.promo-banner img
{
  text-align: center;
  width: 100%;
}

/* Top Image */
/* .banner-image-wrapper {
  display: flex;
  justify-content: center;
} */

/* CTA Button */
.banner-btn
{
  padding: 10px 30px;
  font-size: 1rem;
  background: transparent;
  border: 2px solid #000;
  border-radius: 40px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s ease;
}

.banner-btn:hover
{
  background: #000;
  color: #fff;
}

/* ----------------------- */
/*      MOBILE VIEW        */
/* ----------------------- */
@media (max-width: 767px)
{
  .image-banner-section
  {
    padding: 100px 16px 28px 16px;
  }

  .banner-top-image
  {
    max-width: 160px;
  }

  .banner-btn
  {
    padding: 8px 24px;
    font-size: 0.875rem;
  }
}

/* Promo Cards */


.quickaction-grid
{
  display: grid;
  grid-template-columns: 1fr;
  /* Mobile 1×1 */
  gap: 20px;
  margin: 0 auto;
  max-width: 1212px;
}

/* Tablet: 2 × 2 matrix */
@media (min-width: 768px)
{

  .quickaction-grid
  {
    grid-template-columns: repeat(auto-fit, minmax(246px, 1fr));
  }
}

/* Desktop: single row (4 columns) */
@media (min-width: 1200px)
{

  .quickaction-grid
  {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* --- Card --- */
.quickaction-card
{
  position: relative;
  border-radius: 16px;
  overflow: hidden;

  /* Color fallback */
  background-color: var(--card-bg-color, #eee);

  /* Default: Mobile background image */
  background-image:
    linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0.1) 100%),
    var(--bg-mobile);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;

  aspect-ratio: 288 / 350;
  max-height: 350px;
  transition:
    transform 160ms ease,
    box-shadow 160ms ease;
}

.quickaction-card-btn
{
  min-width: 165px
}

/* Swap to desktop image at desktop breakpoint */
@media (min-width: 768px)
{
  .quickaction-card
  {
    background-image:
      linear-gradient(180deg, rgba(0, 0, 0, 0) 30%), var(--bg-desktop);
    aspect-ratio: 288 / 350;
    max-height: 350px;
  }
}

@media (max-width: 768px)
{
  .quickaction-card
  {
    aspect-ratio: 1;
    min-height: 132px;
    width: 100%;
    max-height: 150px;
  }

  .quickaction-card-btn
  {
    min-width: 151px;
  }
}

.quickaction-card:hover
{
  transform: translateY(-2px);
}

/* Extra overlay for readability */
.quickaction-card::after
{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* Content */

.quickaction-content
{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  /* center for mobile/tablet */
  gap: 14px;
  padding: 20px;
  text-align: center;
  color: var(--card-text, #111);
}

@media (max-width: 768px)
{
  .quickaction-content
  {
    width: 66%;
    left: 34%;
    place-items: baseline;
    padding: 24px 0;
  }

  .quickaction-title
  {
    text-align: left;
  }

  .quickaction-content-inner
  {
    display: flex;
    align-items: center;
    height: 100%;
  }
}

@media (min-width: 768px)
{
  .quickaction-content
  {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    /* push content to bottom */
    align-items: center;
    padding: 18px 22px 32px;
    /* <-- 32px bottom padding */
    gap: 12px;
    text-align: center;
  }
}

.quickaction-title
{
  margin: 0;
  font-weight: 700;
  line-height: 1.15;
  color: var(--card-text, #111);
  font-size: clamp(22px, 2.2vw, 22px);
}

/* ---------- Pair block behavior ---------- */
/* Mobile/Tablet: unwrap the pair so children act like normal grid items */
.card-pair
{
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.card-pair > .menu-card.is-half
{
  transition: transform 0.3s ease;
}

/* Desktop: keep both half cards inside one grid cell and stack */
@media (min-width: 1200px)
{
  .card-pair
  {
    display: flex;
    aspect-ratio: 1 / 1;
    flex-direction: column;
    max-width: 390px;
    gap: 20px;
  }

  /* Let each half fill its row inside the pair */
  .card-pair > .menu-card.is-half
  {
    max-height: 186px;
    max-width: 390px;
    padding: 32px;
  }
}

@media (min-width: 768px)
{
  .card-pair > .menu-card.is-half
  {
    padding: 32px;
  }
}

.menu-card
{
  border-radius: 16px;
  overflow: hidden;
  background-color: #ece7df;
  background-image: var(--mobile-img);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  aspect-ratio: 1 / 1;
  /* full block looks square */
  max-height: 188px;
  max-width: 390px;
  width: 390px;
  display: flex;
  align-items: end;
}

.menu-half-card-content
{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (max-width: 767px)
{
  .card-pair
  {
    width: 100%;
  }

  .menu-card
  {
    max-width: 100%;
    width: 100%;
  }

  .menu-half-card-content
  {
    padding: 20px;
    max-width: 60%;
  }
}

/* Footer Section */
.og-footer
{
  background: var(--og-green-700);
  color: #fff;
  font-family: var(--ff-body);
  position: relative;
  overflow: hidden;
}

.og-footer__inner
{
  margin: 0 auto;
  max-width: var(1200px);
  padding: 40px 16px;
  display: grid;
  gap: 40px;
  position: relative;
}

/* ===== Columns ===== */
.og-footer__cols
{
  display: grid;
  grid-template-columns: 1fr;
  /* mobile: 1 column */
  gap: 24px;
  /* vertical space between sections */
}

.og-footer__heading
{
  margin: 0 0 10px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  font-weight: 700;
  font-size: 1.25rem;
  font-family: var(--ff-display);
  color: #fff;
}

.og-footer__links
{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.og-footer__links a
{
  text-decoration: none;
  font-weight: 500;
  color: #fff;
}

.og-footer__links a:hover,
.og-footer__links a:focus-visible
{
  color: #fff;
  text-decoration: underline;
}

/* ===== Social & Apps ===== */
.og-footer__mid
{
  display: grid;
  gap: 24px;
}

.og-footer__subheading
{
  text-transform: uppercase;
  font-family: var(--ff-body);
  letter-spacing: 0.6px;
  margin: 0 0 12px;
  font-weight: 500;
  font-size: 1rem;
  color: #fff;
}

.og-social
{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 12px;
}

.og-social__btn
{
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--og-green-700);
  display: inline-block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px 20px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.og-social__btn:hover
{
  filter: brightness(1.1);
}

.og-badges
{
  display: flex;
  gap: 12px;
  align-items: center;
}

.og-badge
{
  display: inline-block;
  width: 105px;
  height: 35px;
  border-radius: 8px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

/* ===== Legal ===== */
.og-footer__legal
{
  display: grid;
  gap: 16px;
}

.og-footer__legal-links
{
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.og-footer__legal-links a
{
  color: #fff;
  text-decoration: none;
  font-weight: 400;
  font-size: 0.875rem;
  text-transform: capitalize;
  white-space: nowrap;
}

.og-footer__legal-links a:hover,
.og-footer__legal-links a:focus-visible
{
  color: #fff;
  text-decoration: underline;
}

.og-footer__copy
{
  margin: 0;
  color: #fff;
  font-size: 0.75rem;
}

/* ===== Brand mark bottom-right (desktop comp) ===== */
.og-footer__brand
{
  position: absolute;
  right: 0px;
  bottom: 24px;
  width: 160px;
  height: 120px;
  background: url("https://www.olivegarden.com/cmsdata/olivegarden/images/og_while_logo.svg") no-repeat right bottom / contain;
  pointer-events: none;
}

/* ===== Accessibility ===== */
.sr-only
{
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
}

/* ================== Tablet (iPad) ================== */
@media (min-width: 768px)
{
  .og-footer__inner
  {
    gap: 40px;
  }

  .og-footer__cols
  {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    column-gap: 36px;
    row-gap: 36px;
  }

  .og-footer__mid
  {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }

  .og-footer__legal-links
  {
    grid-template-columns: repeat(3, auto);
    column-gap: 24px;
    row-gap: 10px;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px)
{
  .og-footer__inner
  {
    padding-left: 60px;
    padding-right: 60px;
  }
}

@media (min-width: 1600px)
{

  /* {styles for wide monitors and large laptops */
  .og-footer__xl
  {
    max-width: 1344px;
    margin: 0 auto;
  }
}

/* ================== Desktop ================== */
@media (min-width: 1200px)
{
  .og-footer__inner
  {
    padding: 62px 84px 32px 84px;
    /* 84px top/bottom as per comp */
    gap: 36px;
    /* gap to legal row ~36px */
  }

  .og-footer__cols
  {
    grid-template-columns: repeat(4, 1fr);
    column-gap: 64px;
  }

  .og-footer__mid
  {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    column-gap: 64px;
    align-items: center;
  }

  .og-footer__legal-links
  {
    grid-template-columns: repeat(12, auto);
    column-gap: 22px;
    align-items: center;
  }

  .og-footer__brand
  {
    right: 0px;
    bottom: 136px;
    width: 220px;
    height: 150px;
  }
}

/* ================== Mobile (<= 767.98px) ================== */
@media (max-width: 767.98px)
{

  /* Center text for all headings, links, and paragraphs */
  .og-footer__inner,
  .og-footer__cols,
  .og-footer__col,
  .og-footer__heading,
  .og-footer__links,
  .og-footer__links li,
  .og-footer__links a,
  .og-footer__subheading,
  .og-footer__legal,
  .og-footer__legal-links,
  .og-footer__copy
  {
    text-align: center;
  }

  .og-footer__col
  {
    margin-bottom: 24px
  }

  .og-footer__heading
  {
    margin-bottom: 14px;
  }

  .og-footer__links
  {
    gap: 14px;
  }

  .og-footer__subheading
  {
    margin-bottom: 14px;
  }


  /* If your lists are CSS Grid, center their items */

  .og-footer__legal-links
  {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }

  /* Social icons centered in a row */
  .og-social
  {
    justify-content: center;
  }

  /* App badges centered */
  .og-badges
  {
    justify-content: center;
  }

  /* Optional: widen tap targets a bit for mobile */
  .og-footer__links a,
  .og-footer__legal-links a
  {
    display: inline-block;
    padding: 6px 0;
    line-height: 1;
  }

  /* If any columns used flex, normalize */
  .og-footer__mid
  {
    justify-items: center;
  }

  /* Ensure brand mark doesn’t overlap centered content on very small screens */
  .og-footer__brand
  {
    margin: 0 auto;
    position: inherit;
  }
}

.og-typography
{
  font-size: var(--font-desktop);
  font-weight: var(--weight-desktop);
  font-family: var(--font-family-desktop);
  line-height: var(--line-height-desktop, 1);
  text-align: var(--text-align-desktop);
  color: var(--color-desktop);
  margin-top: var(--margin-top-desktop, 0);
  margin-bottom: var(--margin-bottom-desktop, 0);
  width: var(--desktop-width, 100%);
}

.og-typography span
{
  width: 100% !important;
}

@media (max-width: 768px)
{
  .og-typography
  {
    font-size: var(--font-mobile);
    font-weight: var(--weight-mobile);
    font-family: var(--font-family-mobile);
    line-height: var(--line-height-mobile, 1);
    text-align: var(--text-align-mobile);
    color: var(--color-mobile);
    display: block;
    margin-top: var(--margin-top-mobile, 0);
    margin-bottom: var(--margin-bottom-mobile, 0);
    width: var(--mobile-width, 100%);
    /* margin: 0; */
  }
}

/* ========= CONTENT - POSITIONS ========== */

.banner-content
{
  position: absolute;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* VERTICAL ALIGNMENT */
.position-top
{
  top: 30px;
}

.position-middle
{
  top: 50%;
  transform: translateY(-50%);
}

.position-bottom
{
  bottom: 30px;
}

/* HORIZONTAL ALIGNMENT */
.position-left
{
  left: 30px;
  /* text-align: left; */
}

.position-center
{
  left: 50%;
  transform: translateX(-50%);
  /* text-align: center; */
}

.position-right
{
  right: 30px;
  /* text-align: right; */
}

.position-middle.position-center
{
  transform: translate(-50%, -50%);
}

/* ========= CONTENT - POSITIONS ========== */

.image-banner-container
{
  position: relative;
  width: 100%;
  display: flex;
  height: var(--desktop-height, auto);
}

.imagebanner-nocta
{
  width: 100%;
}

.image-banner-bg
{
  width: 100%;
  display: block;
  height: 100%;
}

/* Content Overlay */
.image-banner-content
{
  position: absolute;
  justify-content: var(--desktop-justify);
  align-items: var(--desktop-align);
  height: 100%;
  padding-top: var(--desktop-padding-top, 0);
  padding-bottom: var(--desktop-padding-bottom, 0);
  width: 100%;
}

.image-banner-container picture
{
  width: 100%;
}

@media (max-width: 768px)
{
  .image-banner-container
  {
    height: var(--mobile-height, auto);
  }

  .image-banner-content
  {
    padding-top: var(--mobile-padding-top, 0);
    padding-bottom: var(--mobile-padding-bottom, 0);
    padding-left: var(--mobile-padding-left, 0);
    padding-right: var(--mobile-padding-right, 0);
  }
}



.image-banner-title
{
  font-size: 3rem;
  font-weight: 800;
  color: black;
}

.image-banner-subtitle
{
  font-size: 1.125rem;
  margin-top: 12px;
  color: #333;
}

/* ============================================
  Dynamic Position Banner (use with HeroVideoBanner.jsx)
  ============================================ */

.dynamic-position-banner
{
  margin-top: 0;
}

.dynamic-position-banner__wrapper
{
  overflow: hidden;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  position: relative;
  aspect-ratio: 1;
  height: 100%;
  width: 100%;
}

.video-banner-section
{
  height: 750px;
}

@media (max-width: 769px)
{
  .video-banner-section
  {
    max-height: 650px;
  }
}

.dynamic-position-banner__content-overlay
{
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: var(--mobile-justify, center);
  align-items: var(--mobile-align, center);
  padding-left: var(--mobile-padding-left, 0px);
  padding-right: var(--mobile-padding-right, 0px);
  padding-top: var(--mobile-padding-top, 0px);
  padding-bottom: var(--mobile-padding-bottom, 0px);
}

@media (min-width: 769px)
{
  .dynamic-position-banner__content-overlay
  {
    justify-content: var(--desktop-justify, center);
    align-items: var(--desktop-align, center);

    padding-left: var(--desktop-padding-left, 0px);
    padding-right: var(--desktop-padding-right, 0px);
    padding-top: var(--desktop-padding-top, 0px);
    padding-bottom: var(--desktop-padding-bottom, 0px);
  }
}

.dynamic-position-banner__content-inner
{
  max-width: var(--desktop-width, 100%);
  color: #fff;
}

@media (max-width: 768px)
{
  .dynamic-position-banner__content-inner
  {
    max-width: var(--mobile-width, 100%);
  }
}

main.og-page-body
{
  margin-top: 100px;
  background-color: var(--parmesan-100);
}

@media (max-width: 767px)
{
  main.og-page-body
  {
    margin-top: 85px;
  }
}


/* ========== OG-BUTTON CSS ============== */
.og-button
{
  background: var(--btn-bg, transparent);
  color: var(--btn-color, #fff);
  font-size: var(--btn-font-size, 18px);
  font-weight: var(--btn-font-weight, 700);
  font-family: var(--btn-font-family, inherit);
  border-radius: var(--btn-radius, 30px);
  border: var(--btn-border);
  text-align: var(--btn-text-align);
  cursor: pointer;
  line-height: var(--desktop-line-height, normal);
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
  margin-top: var(--btn-margin-top, 0);
  margin-bottom: var(--btn-margin-bottom, 0);
  margin-left: var(--btn-margin-left, 0);
  margin-right: var(--btn-margin-right, 0);

}

.og-button:hover:not(:disabled)
{
  background: var(--btn-hover-bg, var(--btn-bg, transparent));
  color: var(--btn-hover-color, var(--btn-color, #fff));
  border: var(--btn-hover-border);
}

.og-button:disabled
{
  opacity: 0.6;
  cursor: not-allowed;
}

@media (max-width: 991px)
{
  .og-button
  {
    background: var(--btn-bg-mobile, var(--btn-bg, transparent));
    color: var(--btn-color-mobile, var(--btn-color, #fff));
    font-size: var(--btn-font-size-mobile, var(--btn-font-size, 18px));
    font-weight: var(--btn-font-weight-mobile, var(--btn-font-weight, 700));
    font-family: var(--btn-font-family-mobile, var(--btn-font-family, inherit));
    border-radius: var(--btn-radius-mobile, var(--btn-radius, 30px));
    border: var(--btn-border-mobile, var(--btn-border));
    text-align: var(--btn-text-align-mobile);
    line-height: var(--mobile-line-height, normal);
    margin-top: var(--btn-margin-top-mobile, 0);
    margin-bottom: var(--btn-margin-bottom-mobile, 0);
    margin-left: var(--btn-margin-left-mobile, 0);
    margin-right: var(--btn-margin-right-mobile, 0);
  }

  .og-button:hover:not(:disabled)
  {
    background: var(--btn-hover-bg-mobile, var(--btn-hover-bg, var(--btn-bg, transparent)));
    color: var(--btn-hover-color-mobile, var(--btn-hover-color, var(--btn-color, #fff)));
    border: var(--btn-hover-border-mobile);
  }
}

/* For Handling Zoom Effect in Image */

.smooth-zoom
{
  position: relative;
  overflow: hidden;
}

.smooth-zoom::before
{
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--mobile-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1);
  transition: transform 1.2s ease;
  will-change: transform;
}

/* ZOOM on hover */
.smooth-zoom:hover::before
{
  transform: scale(1.1);
  /* 20% zoom */
}

@media (min-width: 768px)
{
  .smooth-zoom::before
  {
    background-image: var(--desktop-img);
  }
}

/* .image-banner-with-text-image{
    background-image: var(--desktop-img);
    background-position: center;
    background-size: contain;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
} */


.image-banner-with-text
{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 400px;
  overflow: hidden;
}

.combo-image-container
{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.combo-image-container img
{
  object-fit: fill;
  width: 100%;
}

.combo-overlay
{
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: 1;
}




.banner-image-wrapper
{
  width: 100%;
  overflow: hidden;
  position: relative;
}

/* Desktop height */
@media (min-width: 768px)
{
  .banner-image-wrapper
  {
    height: var(--desktop-height);
  }
}

/* Mobile height */
/* @media (max-width: 767px) {
  .banner-image-wrapper {
    height: var(--mobile-height);
  }
} */

/* Make image cover the container */
.banner-image
{
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.multi-btn
{
  display: flex;
  gap: 16px;
  justify-content: var(--button-horizontal-position, center);
  align-items: center;
}

@media (max-width: 767px)
{
  .multi-btn
  {
    flex-wrap: wrap;
    justify-content: var(--mobile-button-horizontal-position, center);

  }
}

.slick-dotted.slick-slider
{
  margin-bottom: 56px !important;
}

.slick-dots
{
  bottom: -40px;
}

.slick-dots li.slick-active button:before
{
  color: #A8AD00;
}

/**** CART POPUP CSS STARTS*/

#cart-empty__content
{
  position: absolute;
  top: 5rem;
  right: 6rem;
  max-width: 25rem;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  z-index: 1070;
}


#cart-empty__content .cart-empty__header
{
  padding: 16px 14px;
  background-color: var(--og-green-700);
  border-radius: 14px 14px 0px 0px;
}

#cart-empty__content .cart-empty__header h4
{
  color: #FFF;
  font-family: "Neulis Sans";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  margin: 0px;
}

.btn-light-green
{
  border-radius: 30px;
  background: #A8AD00;
  padding: 8px 16px;
  justify-content: center;
  align-items: center;
  gap: 4px;
  align-self: stretch;
  width: 100%;
  margin-bottom: 8px;
}

.btn-light-green:last-child
{
  margin-bottom: 0px;
}



#cart-empty-popup .cart-empty__content p
{
  color: #303030;
  font-family: "Neulis Sans";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

/* === TRIANGLE POINTER ABOVE POPUP === */
#cart-empty-popup::before
{
  content: "";
  position: absolute;
  top: -12px;
  /* moves triangle above the popup */
  right: 20px;
  /* adjust horizontally to match your design */
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-bottom: 12px solid var(--og-green-700);
  ;
  /* same as popup background */
  filter: drop-shadow(0 -2px 2px rgba(0, 0, 0, 0.08));
  /* subtle shadow */
}

.close-cart-empty
{
  position: absolute;
  top: 12px;
  right: 12px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
}

.close-cart-empty img
{
  width: 20px;
  height: 20px;
}

/**** CART POPUP CSS ENDS*/

/******Location popup starts******/

#header-location-name
{
  color: #000;
  font-family: "Neulis Neue";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-decoration-line: underline;
}

#header-location-number
{
  color: #000;
  font-family: "Neulis Sans";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.header-change-location-link
{
  color: #000;
  font-family: "Neulis Neue";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.header-change-location-link:hover
{
  color: #000;
}

.location-dropdown
{
  background-color: #ffffff;
  border: 1px solid #d6d6d6;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  -ms-border-radius: 0;
  -o-border-radius: 0;
  border-radius: 0;
  box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.08);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  position: absolute;
  top: 5.25rem;
  right: 0;
  z-index: 1000;
}

.arrow-down
{
  width: 0px;
  height: 0px;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #54301a;
  display: inline-block;

}

.arrow-up
{
  width: 0px;
  height: 0px;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #54301a;
  display: inline-block;
  border-top: none;
}

.cart-item-count
{
  color: #fff;
  font-family: "Neulis Neue";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  display: flex;
  width: 24px;
  height: 24px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12.5px;
  border-radius: 25px;
  background: #F15A3D;
  position: absolute;
  top: -25%;
  left: 55%;
  text-align: center;
  padding-top: 3px;
}

.location-popup-title
{
  color: #303e1e;
  font-family: 'Neulis Neue', 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
  margin: 0;
}

.location-dropdown__details
{
  display: flex;
  flex-direction: column;
  gap: .875rem;
}

.location-dropdown__img img
{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.header .mobile-location-information .location-dropdown__address h3
{
  margin: 0;
  line-height: 1;
}

.header .mobile-location-information .location-dropdown__address h3,
.header .mobile-location-information .location-dropdown__address h3 a,
.header .mobile-location-information .location-dropdown__address h3 a:visited,
.location-name
{
  color: #f15a3d;
  font-family: 'Neulis Sans', 'Montserrat', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
}

.header .mobile-location-information .location-dropdown__address h3 a:hover,
.header .mobile-location-information .location-dropdown__address h3 a:focus,
.header .mobile-location-information .location-dropdown__address h3 a:active
{
  color: #B03D27;
}



.location-address
{
  color: #2a2c25;
  font-family: 'Neulis Sans', 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: normal;
  margin: 0;
  white-space: nowrap;
}

/* .location-hours {
  display: flex;
  flex-direction: column;
  gap: 4px;
} */

.location-dropdown__hours #popRestHrs
{
  color: #212529;
  font-family: 'Neulis Sans', 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: normal;
}

.hours-row p
{
  margin: 0;
}

.view-hours-link
{
  color: #f15a3d;
  font-family: 'Neulis Sans', 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  text-decoration: underline;
  cursor: pointer;
  margin: 0;
  background: none;
  border: none;
  padding: 0;
}

.location-divider
{
  height: 1px;
  background-color: #d6d6d6;
}

.location-actions
{
  display: flex;
  gap: 48px;
}

.action-column
{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.action-link
{
  color: #f15a3d;
  font-family: 'Neulis Sans', 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  text-decoration: underline;
  cursor: pointer;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  text-align: left;
}

.action-link:visited
{
  color: #f15a3d;
}

.action-link:hover,
.action-link:focus,
.action-link:active
{
  color: #B03D27;
}

.view-hours-link
{
  text-align: left;
}

.find-location-btn
{
  background-color: #a8ad00;
  color: #000000;
  border: none;
  border-radius: 30px;
  padding: 8px 16px;
  font-family: 'Neulis Sans', 'Montserrat', sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: normal;
  cursor: pointer;
  transition: background-color 0.3s ease;
  width: 100%;
  text-transform: uppercase;
}

.find-location-btn:hover
{
  background-color: #98982f;
}

@media (min-width:992px)
{
  .location-dropdown
  {
    border-radius: 8px;
    padding: 16px;
    max-width: 20rem;
    top: 4rem;
    right: 12rem;
    z-index: 1000;
  }
}

/******Location popup ends******/





/* ========== Content Pages CSS ========== */
/* this is common css rule property apply to all content pages.  */
.content-page-cms
{
  background: #E8EACD;
  color: #2a2c25;
  font-family: 'Neulis Sans', Arial, sans-serif;
  padding: 24px 8px 48px 8px;
  max-width: 100%;
  margin: 0 auto;
}

.content-page-cms section
{
  max-width: 1140px;
  margin: 0 auto;
}

/* Headings */
.content-page-cms h1
{
  text-align: center;
  font-family: "Neulis Cursive";
  font-size: 3rem;
  font-weight: 700;
  margin: 64px 0 50px;
}

.content-page-cms h2
{
  font-family: "Neulis Cursive";
  font-size: 2rem;
  font-weight: 700;
  margin: 24px 0 8px;
}

/* Paragraphs */
.content-page-cms p
{
  font-size: 1rem;
  margin-bottom: 16px;
}

/* Links */
.content-page-cms a
{
  color: #f15a3d;
  text-decoration: underline;
}

/* Cards/Section wrapper */
.content-page-cms section
{
  background: #fff;
  border-radius: 12px;
  padding: 32px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

/* Lists */
.content-page-cms ul
{
  list-style: disc;
  padding-inline-start: 48px;
  margin: 8px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.content-page-cms li
{
  font-size: 1rem;
  line-height: 1.5;
}

/* International separator (special h2 text) */
.content-page-cms h2:first-of-type
{
  border-bottom: 2px solid #e6e6e6;
  padding-bottom: 8px;
}

/* Mobile */
@media (max-width: 600px)
{
  .content-page-cms section
  {
    border-radius: 0;
  }

  .content-page-cms
  {
    padding: 12px 2vw 24px;
  }

  .content-page-cms section
  {
    padding: 32px 16px;
  }

  .content-page-cms h1
  {
    font-size: 1.5rem;
    margin-bottom: 18px;
  }

  .content-page-cms h2
  {
    font-size: 1.75rem;
  }

  .content-page-cms li
  {
    font-size: 0.95rem;
  }
}


.order-online-container
{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}

.order-online-card
{
  max-width: 428px;
}

.order-online-card .classic-card
{
  background-position: center !important
}

/* #location-show-arrow {
  position: relative;
  top: -30px;
  left: 100%;
}

#header-location-number {
  margin-top: -20px;
} */

#header-login-link a
{

  display: block;
  margin: 2px 0;
  color: #000;
  text-transform: uppercase;
  font-family: "Neulis Neue";
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;

}


/* Catering.css */
/* ========= CATERING-CARD-SECTION START ========== */

.common-heading
{
  margin-top: 72px;
  margin-bottom: 32px;
}

.common-heading h2
{
  margin-bottom: 0;
}

@media (max-width: 992px)
{
  .common-heading
  {
    margin-top: 64px;
    margin-bottom: 24px;
  }
}

.catering-cards-container
{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 16px;
}

@media (max-width: 992px)
{
  .catering-cards-container
  {
    flex-wrap: wrap;
  }
}

.occasion-cards
{
  padding: 2.5rem 1rem 3rem;
  background-color: var(--parmesan-pale, #fdf7f0);
}

.occasion-cards__grid
{
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}

.occasion-card
{
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  min-height: var(--mobile-height, 200px);
  min-width: var(--mobile-width, 343px);
  display: flex;
  flex-direction: column;
}

.occasion-card__bg
{
  position: absolute;
  inset: 0;
  background-size: cover;
  background-repeat: no-repeat;
  pointer-events: none;
  background-position: center;
}

.occasion-card__bg--desktop
{
  display: none;
}

.occasion-card__bg--mobile
{
  display: none;
}

/* ============ Mobile ============ */
@media (max-width: 768px)
{
  .occasion-card__bg--mobile
  {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 12px;
    overflow: hidden;
    background-position: left;
    background-size: cover;
  }

  .occasion-card
  {
    flex-direction: row;
    min-height: var(--mobile-height, 220px);
    min-width: var(--mobile-width, 343px);
    overflow: hidden;
    width: 100%;
    /* Use variables controlled by data attributes */
    justify-content: var(--mobile-horizontal,
        center);
    /* left/center/right -> flex-start/center/flex-end */
    align-items: var(--mobile-vertical,
        center);
    /* top/center/bottom  -> flex-start/center/flex-end */
  }

  .occasion-card__content
  {
    position: relative;
    z-index: 1;
    width: var(--mobile-width, 70%);
    min-width: 220px;
    padding-top: var(--mobile-padding-top);
    padding-left: var(--mobile-padding-left);
    padding-right: var(--mobile-padding-right);
    padding-bottom: var(--mobile-padding-bottom);
    display: flex;
    flex-direction: column;

    /* text alignment comes from variable */
    text-align: var(--mobile-content-text-align, center);
  }

  .occasion-card__content ul
  {
    padding-left: 20px;
  }
}

/* ============ Desktop ============ */
@media (min-width: 769px)
{
  .occasion-cards__grid
  {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }

  .occasion-card__bg--desktop
  {
    display: block;
  }

  .occasion-card__bg--mobile
  {
    display: none;
  }

  .occasion-card
  {
    flex-direction: column;
    overflow: hidden;
    min-height: var(--desktop-height, 450px);
    min-width: var(--desktop-width, 390px);

    /* Map variables to proper axes for column */
    align-items: var(--desktop-horizontal,
        center);
    /* left/center/right -> flex-start/center/flex-end */
    justify-content: var(--desktop-vertical,
        center);
    /* top/center/bottom -> flex-start/center/flex-end */
  }

  .occasion-card__content
  {
    position: relative;
    z-index: 1;
    padding-top: var(--desktop-padding-top);
    padding-left: var(--desktop-padding-left);
    padding-right: var(--desktop-padding-right);
    padding-bottom: var(--desktop-padding-bottom);
    background: transparent;

    /* text alignment comes from variable */
    text-align: var(--desktop-content-text-align, center);
    max-width: 100%;

    h4,
    p
    {
      margin-bottom: 20px;
    }
  }

  .occasion-card__content ul
  {
    padding-left: 20px;
  }
}

/* ========= CATERING-CARD-SECTION END ========== */

/* ========= DELIVERY-CARD-SECTION START ========== */
/* ---------- GRID CONTAINER ---------- */
.delivery-cards-container
{
  margin: 0 auto;
  max-width: 1200px;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, 1fr);
  align-items: stretch;
}

/* ---------- CARD WRAPPER ---------- */
.delivery-card-box
{
  display: flex;
  border-radius: 16px;
  background: #fff;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 3px 8px rgba(0, 0, 0, 0.06);
  min-width: 0;
  overflow: hidden;
  min-width: var(--desktop-width);
}

.delivery-card-body
{
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 0;
  width: 100%;
  height: 100%;
}

/* ---------- IMAGE ---------- */
.delivery-card-body picture
{
  width: 100%;
  height: auto;
  display: block;
}

.delivery-card-icon
{
  width: 100%;
  height: 205px;
  display: block;
  object-fit: cover;
}

.delivery-card-content
{
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-top: var(--desktop-padding-top);
  padding-right: var(--desktop-padding-right);
  padding-bottom: var(--desktop-padding-bottom);
  padding-left: var(--desktop-padding-left);

  justify-content: var(--desktop-vertical);
  align-items: var(--desktop-horizontal);
}

.delivery-foot-note
{
  margin-top: 8px;
}

@media (max-width: 1023px)
{
  .delivery-cards-container
  {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px)
{
  .delivery-cards-container
  {
    grid-template-columns: 1fr;
  }

  .delivery-card-box
  {
    min-width: var(--mobile-width);
  }

  .delivery-card-body
  {
    display: grid;
    grid-template-columns: 1fr 3fr;
    align-items: stretch;
    gap: 0;
    padding: 0;
    width: 100%;
  }

  .delivery-card-icon
  {
    width: 100%;
    height: var(--mobile-height);
    object-fit: cover;
    display: block;
    border-top-left-radius: 16px;
    border-bottom-left-radius: 16px;
  }

  .delivery-card-content
  {
    padding-top: var(--mobile-padding-top);
    padding-left: var(--mobile-padding-left);
    padding-right: var(--mobile-padding-right);
    padding-bottom: var(--mobile-padding-bottom);
    justify-content: var(--mobile-vertical);
    align-items: var(--mobile-horizontal);
  }

  .delivery-card-content p
  {
    overflow-wrap: anywhere;
  }

  .delivery-foot-note
  {
    margin-top: 12px;
  }
}

/* ========= DELIVERY-CARD-SECTION START ========== */

/* ========= CATERING-MENU-HIGHLIGHTS START ========== */
section.catering-menu-highlights
{
  .catering-menu-container
  {
    margin: 0 auto;
    max-width: 1200px;

    ul
    {
      padding-left: 16px;
    }
  }

  .catering-menu-card
  {
    min-width: var(--desktop-width, auto);
    min-height: var(--desktop-height, auto);

    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    margin-bottom: 24px;
  }

  .catering-menu-card:last-child
  {
    margin-bottom: 0;
  }

  .catering-menu-content
  {
    display: flex;
    flex-direction: row;
    width: 100%;
    align-items: stretch;
  }

  .catering-menu-text
  {
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    align-items: var(--desktop-horizontal, flex-start);
    justify-content: var(--desktop-vertical, center);
    padding-top: var(--desktop-padding-top);
    padding-right: var(--desktop-padding-right);
    padding-bottom: var(--desktop-padding-bottom);
    padding-left: var(--desktop-padding-left);
  }

  .catering-view-menu-btn
  {
    display: inline-flex;
    align-self: auto;
    /* let align-items control this by default */
    width: auto;
    max-width: 100%;
    flex: 0 0 auto;
    white-space: nowrap;
    margin-top: 24px;
    margin-bottom: 24px;
  }

  .catering-menu-image
  {
    flex: 1 1 50%;
    position: relative;
    min-height: var(--desktop-height, auto);
  }

  .catering-menu-image img,
  .catering-menu-image picture
  {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  @media (max-width: 1023px)
  {
    .catering-menu-content
    {
      flex-direction: column-reverse;
      /* your original behavior */
    }

    .catering-menu-card
    {
      min-width: var(--mobile-width, 100%);
      margin-bottom: 16px;
    }

    .catering-menu-card:last-child
    {
      margin-bottom: 0;
    }

    .catering-menu-text
    {
      width: 100%;
      align-items: var(--mobile-horizontal, flex-start);
      justify-content: var(--mobile-vertical, center);
      text-align: var(--mobile-content-text-align, left);
      padding-top: var(--mobile-padding-top);
      padding-right: var(--mobile-padding-right);
      padding-bottom: var(--mobile-padding-bottom);
      padding-left: var(--mobile-padding-left);
    }

    .catering-menu-image
    {
      width: 100%;
      min-height: auto;
    }

    .catering-menu-image img
    {
      height: auto;
      width: 100%;
      aspect-ratio: 16 / 9;
      object-fit: cover;
    }

    .catering-view-menu-btn
    {
      margin-top: 12px;
      margin-bottom: 12px;
    }
  }
}

/* ========= CATERING-MENU-HIGHLIGHTS END ========== */

/* ============================================
   Classics Cards - Perfect For Any Classics
   Responsive: desktop 3-col, mobile stacked.
   Bg + icon: separate desktop/mobile images.
   Content-driven height; desktop content position configurable.
   ============================================ */

/* Container grid unchanged */
.classic-cards-container
{
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 16px;
  align-items: stretch;
}

@media (max-width: 1024px)
{
  .classic-cards-container
  {
    flex-wrap: wrap;
    margin: 0 auto;
    justify-content: center;
  }
}

/* Card */
.classic-card
{
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  min-height: var(--desktop-height);
  width: 100%;
  display: flex;
  /* flex container for positioning */
  flex-direction: column;
  /* ↓↓↓ Use variables to position .classic-card-content ↓↓↓ */
  justify-content: var(--desktop-content-vertical, center);
  /* vertical */
  align-items: var(--desktop-content-align, center);
  /* horizontal */
  background: none;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  background-image: var(--desktop-bg);
}

.classic-card-content
{
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  margin-top: 0;
  text-align: var(--desktop-content-text-align, center);
  padding-top: var(--desktop-padding-top);
  padding-left: var(--desktop-padding-left);
  padding-right: var(--desktop-padding-right);
  padding-bottom: var(--desktop-padding-bottom);
}

.classic-card-actions
{
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
}

.classic-card-actions a
{
  width: fit-content;
}

@media (max-width: 450px)
{
  .classic-card
  {
    aspect-ratio: 343 / 313;
  }
}

@media (max-width: 768px)
{
  .classic-card
  {
    max-width: 343px;
    min-width: var(--mobile-width, 343px);
    background-position: unset;
    background-image: var(--mobile-bg);
    justify-content: var(--mobile-content-vertical, center);
    align-items: var(--mobile-content-align, center);
    min-height: var(--mobile-height);
  }

  .classic-card-content
  {
    text-align: var(--mobile-content-text-align, center);
    padding-top: var(--mobile-padding-top);
    padding-left: var(--mobile-padding-left);
    padding-right: var(--mobile-padding-right);
    padding-bottom: var(--mobile-padding-bottom);
  }

  .classic-card-actions
  {
    flex-direction: column;
    gap: 8px;
  }
}

/* Map data-attributes to variables on the article (inherited by children) */
.classic-card[data-desktop-content-position="left"]
{
  --desktop-content-align: flex-start;
  /* cross-axis (horizontal) */
  --desktop-content-text-align: left;
}

.classic-card[data-desktop-content-position="center"]
{
  --desktop-content-align: center;
  --desktop-content-text-align: center;
}

.classic-card[data-desktop-content-position="right"]
{
  --desktop-content-align: flex-end;
  --desktop-content-text-align: right;
}

.classic-card[data-desktop-content-vertical="top"]
{
  --desktop-content-vertical: flex-start;
  /* main-axis (vertical) */
}

.classic-card[data-desktop-content-vertical="center"]
{
  --desktop-content-vertical: center;
}

.classic-card[data-desktop-content-vertical="bottom"]
{
  --desktop-content-vertical: flex-end;
}

/* Mobile */
.classic-card[data-mobile-content-position="left"]
{
  --mobile-content-align: flex-start;
  --mobile-content-text-align: left;
}

.classic-card[data-mobile-content-position="center"]
{
  --mobile-content-align: center;
  --mobile-content-text-align: center;
}

.classic-card[data-mobile-content-position="right"]
{
  --mobile-content-align: flex-end;
  --mobile-content-text-align: right;
}

.classic-card[data-mobile-content-vertical="top"]
{
  --mobile-content-vertical: flex-start;
}

.classic-card[data-mobile-content-vertical="center"]
{
  --mobile-content-vertical: center;
}

.classic-card[data-mobile-content-vertical="bottom"]
{
  --mobile-content-vertical: flex-end;
}

/* New half Banner */

.half-image-banner,
.new-hero-banner
{
  position: relative;
  width: 100%;
  overflow: hidden;
}

.rounded-card
{
  border-radius: 16px;
  max-width: 1200px;
  margin: 0 auto;
}

.half-image-banner picture,
.new-hero-banner picture
{
  display: block;
}

.half-image,
.new-hero-banner-image
{
  width: 100%;
  object-fit: fill;
  display: block;
  height: var(--desktop-height, auto);
}

.half-image-footer-note
{
  width: 345px;
}

.half-image-banner::before
{
  content: "";
  position: absolute;
  inset: 0;
}

.half-image-text
{
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  padding: 40px 20px 40px 60px;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.half-banner-btn-wrapper
{
  display: flex;
  justify-content: var(--justify-content, center);
  align-items: center;
  gap: 24px;
  margin-top: calc(var(--margin-top-desktop, 0) * 1px);
  margin-bottom: calc(var(--margin-bottom-desktop, 0) * 1px);
}

.half-image-text
{
  padding-top: calc(var(--padding-top-desktop, 0) * 1px);
  padding-bottom: calc(var(--padding-bottom-desktop, 0) * 1px);
}

.half-image-text.left
{
  left: 0;
}

.half-image-text.right
{
  right: 0;
}

.half-banner-btn
{

  width: fit-content;
}

.half-image-btn-group
{
  display: flex;
  gap: 16px;
  justify-content: var(--button-horizontal-position, center);
  align-items: center;
}

@media (max-width: 768px)
{

  .half-image
  {
    height: 500px;
  }

  .rounded-card
  {
    max-width: calc(100% - 32px);
  }

  .half-banner-btn-wrapper
  {
    margin-top: calc(var(--margin-top-mobile, 0) * 1px);
    margin-bottom: calc(var(--margin-bottom-mobile, 0) * 1px);
  }

  .half-image-text
  {
    padding-top: calc(var(--padding-top-mobile, 0) * 1px);
    padding-bottom: calc(var(--padding-bottom-mobile, 0) * 1px);
  }

  .half-image-text.right,
  .half-image-text.mobile-bottom
  {
    top: 40%;
  }

  .half-image-text,
  .half-image-text.mobile-top
  {
    width: 100%;
    padding: 24px;
    height: 60%;
  }

  .half-image-text.mobile-top
  {
    top: 0;
  }

  .half-image-footer-note
  {
    width: 100%;
    text-align: center;
  }

  .half-image,
  .new-hero-banner-image
  {
    height: var(--mobile-height, auto);
  }

  .half-banner-btn
  {
    margin: 0 auto;
    width: fit-content;
  }
}


/* Aboutus.css */
/* -------------------- */
/* Base (Mobile First)  */
/* -------------------- */

.card-bg
{
  background-color: var(--bg-color) !important
}

.bg-img
{
  background-image: var(--bg-mobile);
  background-size: 100% 100%;
}

.og-hero-banner
{
  min-height: 400px;
}



.hero-banner-wrapper p,
.mixed-layout p
{
  margin: 0
}

.hero-banner-wrapper
{
  display: flex;
  flex-direction: column;
  justify-content: var(--mobile-align, center);
  align-items: var(--mobile-justify, center);
  padding-left: var(--mobile-padding-left, 0px);
  padding-right: var(--mobile-padding-right, 0px);
  padding-top: var(--mobile-padding-top, 0px);
  padding-bottom: var(--mobile-padding-bottom, 0px);
  height: var(--mobile-height, auto);
  width: 100%;
}

/* -------------------- */
/* Tablet ≥ 576px       */
/* -------------------- */


/* -------------------- */
/* Tablet Large ≥ 768px */
/* -------------------- */
@media (min-width: 768px)
{
  .hero-banner-wrapper
  {
    justify-content: var(--desktop-align, center);
    align-items: var(--desktop-justify, center);
    padding-left: var(--desktop-padding-left, 0px);
    padding-right: var(--desktop-padding-right, 0px);
    padding-top: var(--desktop-padding-top, 0px);
    padding-bottom: var(--desktop-padding-bottom, 0px);
    /* max-width: var(--desktop-width, 100%); */
    height: var(--desktop-height, 100%);
    width: 100%;
  }



  .bg-img
  {
    background-image: var(--bg-desktop);
  }
}

/* -------------------- */
/* Desktop ≥ 992px      */
/* -------------------- */


/* -------------------- */
/* Large Desktop ≥ 1200px */
/* -------------------- */



/* -------------------- */
/* Connect With us card */
/* -------------------- */

/* Overall card rounding */
.connect-card
{
  max-width: 1200px;
  border-radius: 1rem;
  overflow: hidden;
}

.connect-outer
{
  display: flex;
  flex-direction: column;
  justify-content: var(--mobile-align);
  align-items: var(--mobile-justify);
  height: 100%;
  padding-top: var(--mobile-padding-top);
  padding-right: var(--mobile-padding-right);
  padding-bottom: var(--mobile-padding-bottom);
  padding-left: var(--mobile-padding-left);
}

@media (min-width: 576px)
{
  .connect-outer
  {
    justify-content: var(--desktop-align);
    align-items: var(--desktop-justify);
    padding-top: var(--desktop-padding-top);
    padding-right: var(--desktop-padding-right);
    padding-bottom: var(--desktop-padding-bottom);
    padding-left: var(--desktop-padding-left);
  }

  .connect-inner
  {
    max-width: var(--desktop-width);
  }
}

/* Ensure the media fills its column nicely */
.connect-image-wrap
{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 220px;
  /* mobile fallback height */
}

.connect-card .object-cover
{
  object-fit: cover;
  object-position: center;
}

/* Social buttons: circular, outlined */
.connect-card .social-btn
{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid #000;
  border-radius: 50%;
  text-decoration: none;
  transition: all 0.2s ease;
}

/* Desktop enhancements */
@media (min-width: 992px)
{
  .connect-image-wrap
  {
    min-height: 320px;
    /* taller visual on desktop */
  }
}


/* -------------------- */
/* Mixed kayout section card */
/* -------------------- */

/* ===== Grid container: columns of "pairs" on desktop ===== */
.mixed-layout .rcg-grid
{
  max-width: 1200px;
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}

/* Desktop: 2 columns & equal heights */
.mixed-layout .rcg-pair
{
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  align-items: stretch !important;
  /* Equal height */
}

.rcg-inner-description
{
  display: flex;
  justify-content: var(--desktop-justify);
}

.rcg-footnote
{
  margin-top: auto;
}

@media (min-width: 425px)
{
  .rcg-inner-description p
  {
    max-width: 368px;
  }
}

@media (max-width: 767px)
{
  .og-hero-banner
  {
    min-height: 300px;
  }
}

.mixed-layout .rcg-card.rcg-content
{
  background-color: var(--bg-color);
  background-image: var(--bg-desktop-image);
  background-size: cover;
}

/* ===== MOBILE & TABLET FIX (equal height) ===== */
@media (max-width: 992px)
{

  /* ===== Mobile: stack pairs in one column, reorder inside each pair ===== */
  .mixed-layout .rcg-grid
  {
    max-width: 526px;
    grid-auto-flow: row;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .mixed-layout .rcg-pair
  {
    display: grid;
    grid-template-columns: 1fr;
    grid-auto-rows: 1fr;
    gap: 16px;
  }

  /* Maintain ordering */
  .mixed-layout .rcg-pair .rcg-card.rcg-image
  {
    order: 0;
  }

  .mixed-layout .rcg-pair .rcg-card.rcg-content
  {
    order: 1;
  }

  .mixed-layout .rcg-card.rcg-content
  {
    background-image: var(--bg-mobile-image);
  }
}

.mixed-layout .rcg-card
{
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid #eef0f3;
  height: 100%;
}

/* Image card matches height of row */
.mixed-layout .rcg-image .rcg-media
{
  height: 100%;
}

.mixed-layout .rcg-media img,
.mixed-layout .rcg-media picture
{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Content card */
.mixed-layout .rcg-outer-content
{
  display: flex;
  justify-content: var(--desktop-justify);
  align-items: var(--desktop-align);
  padding-top: var(--desktop-padding-top);
  padding-right: var(--desktop-padding-right);
  padding-bottom: var(--desktop-padding-bottom);
  padding-left: var(--desktop-padding-left);
  height: 100%;
}

.mixed-layout .rcg-inner-content
{
  display: flex;
  flex-direction: column;
  gap: 24px;
  height: 100%;
  max-width: 100%;
}

@media (max-width: 992px)
{
  .mixed-layout .rcg-outer-content
  {
    justify-content: var(--mobile-justify);
    align-items: var(--mobile-align);
    padding-top: var(--mobile-padding-top);
    padding-right: var(--mobile-padding-right);
    padding-bottom: var(--mobile-padding-bottom);
    padding-left: var(--mobile-padding-left);
  }

  .mixed-layout .rcg-inner-content
  {
    gap: 16px;
  }
}




.mixed-layout .rcg-title
{
  margin: 0;
  word-break: break-word;
  overflow-wrap: anywhere;
  display: block;
}

.mixed-layout .rcg-desc
{
  margin: 0;
  display: block;
  overflow-wrap: anywhere;
  max-width: 52ch;
}



.community-engagement-section ul
{
  padding-inline-start: 22px;
}

.community-engagement-section .row
{
  margin-right: 0;
  margin-left: 0;
}

@media (min-width: 481px) and (max-width: 1200px)
{
  .mixed-layout h2.og-typography
  {
    font-size: clamp(var(--font-mobile),
        calc((var(--font-desktop) * (100vw - 992px) + var(--font-mobile) * (1200px - 100vw)) / 208px),
        var(--font-desktop));
  }

  .mixed-layout p.og-typography
  {
    font-size: var(--font-mobile);
  }

  .mixed-layout .rcg-outer-content
  {
    padding-top: max(16px, calc(var(--desktop-padding-top, 20px) - 20px));
    padding-right: max(16px, calc(var(--desktop-padding-right, 20px) - 20px));
    padding-bottom: max(16px, calc(var(--desktop-padding-bottom, 20px) - 20px));
    padding-left: max(16px, calc(var(--desktop-padding-left, 20px) - 20px));
  }

  .mixed-layout .rcg-inner-content
  {
    gap: 16px
  }
}


/* Orderonline.css */
.gap-2
{
  gap: 0.5rem;
}

.font-og-bro-xtra-bold
{
  font-family: "Neulis Cursive";
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  color: #000;
}

@media (min-width: 768px)
{
  .font-og-bro-xtra-bold
  {
    font-size: 1.25rem;
  }
}

#togoModal
{
  background-color: #00000080;

  a:hover
  {
    text-decoration: none;
  }
}

#togoModal .modal-dialog
{
  margin: 0;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 300px;
}

#togoModal .modal-content
{
  border-radius: 12px;
}

#togoModal .modal-header
{
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  text-align: center;
  border-bottom: none;

  h5
  {
    display: inline-block;
    padding-left: 32px;
  }

  .close
  {
    margin: -1rem 0rem -1rem 0;
    padding: 1rem 0;
  }
}

#togoModal .modal-body
{
  text-align: center;

  p.text-balance
  {
    font-family: "Neulis Sans";
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 0.75rem 0 1.25rem;
  }

  .togo-options
  {
    padding: 0 16px;
  }

  .pickup-cta
  {
    background-image: url('https://media.olivegarden.com/images/OG_Redesign_Assets/Desktop/Desktop_Order_Triage_Popup_Pickup.png');
  }

  .delivery-cta
  {
    background-image: url('https://media.olivegarden.com/images/OG_Redesign_Assets/Desktop/Desktop_Order_Triage_Popup_Delivery.png');
  }

  .order-card
  {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: 128px;
    height: 154px;
    padding-bottom: 28px;
    background-size: cover;
    background-repeat: no-repeat;
    text-align: center;
    color: #000;
    font-family: "Neulis Neue";
    font-size: 0.875rem;
    font-weight: 700;
  }

}

#togoModal .modal-footer
{
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
  border-top: none;
  text-align: center;

  p
  {
    color: #606060;
    font-family: "Neulis Neue";
    font-size: 1rem;
    font-weight: 700;
    line-height: normal;
  }

  .separator
  {
    border-bottom: 1px solid #00000033;
    width: 100%;
  }

  a
  {
    color: #B03D27;
    text-align: center;
    font-family: "Neulis Neue";
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: auto;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    text-underline-position: from-font;
  }
}

@media (min-width: 768px)
{
  .font-og-bro-xtra-bold
  {
    font-size: 1.25rem;
  }

  #togoModal .modal-body
  {
    .order-card
    {
      font-size: 1rem;
    }
  }

  #togoModal .modal-footer
  {
    p
    {
      font-size: 1.125rem;
    }

    a
    {
      font-size: 1rem;
    }
  }
}

@media (min-width: 992px)
{
  #togoModal .modal-body
  {
    text-align: center;

    .gap-lg-3
    {
      gap: 1rem;
    }

    p.text-balance
    {
      font-size: 0.875rem;
    }
  }
}

.text-balance
{
  text-wrap: balance !important;
  color: #606060;
}

#cateringModal
{
  background-color: #00000080;

  a:hover
  {
    text-decoration: none;
  }
}

#cateringModal .modal-dialog
{
  margin: 0;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 300px;
}

#cateringModal .modal-content
{
  border-radius: 12px;
}

#cateringModal .modal-header
{
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  text-align: center;
  border-bottom: none;

  h5
  {
    display: inline-block;
    padding-left: 32px;
  }

  .close
  {
    margin: -1rem 0rem -1rem 0;
    padding: 1rem 0;
  }
}

#cateringModal .modal-body
{
  text-align: center;

  .catering-card
  {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    height: 76px;
    border-radius: 12px;
    color: #000;
    font-family: "Neulis Neue";
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    background-repeat: no-repeat;
    background-size: 100%;
    padding-left: 60px;
  }

  .pickup-cta
  {
    background-image: url('https://media.olivegarden.com/images/OG_Redesign_Assets/Mobile/Mobile_Order_Triage_Popup_Catering_Pickup.png');
  }

  .delivery-cta
  {
    background-image: url('https://media.olivegarden.com/images/OG_Redesign_Assets/Mobile/Mobile_Order_Triage_Popup_Catering_Delivery.png');
  }

  p.text-balance
  {
    /* text-align: center; */
    font-family: "Neulis Sans";
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 0.75rem 0 1.25rem;
  }

  .catering-card:first-of-type
  {
    margin-bottom: 15px;
  }

  .catering-options
  {
    padding: 0 16px 24px 16px;
  }

  .catering-disclaimer
  {
    padding: 8px 16px;
    text-align: left;
    color: #606060;
    font-family: "Neulis Sans";
    font-size: 0.75rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;

    h6
    {
      color: #303030;
      font-family: "Neulis Neue";
      font-size: 1rem;
      font-style: normal;
      font-weight: 700;
      line-height: normal;
    }

    ul
    {
      padding-left: 1.5rem;
    }
  }
}

#cateringModal .modal-footer
{
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
  text-align: center;
  border-top: none;

  p
  {
    color: #606060;
    font-family: "Neulis Neue";
    font-size: 1rem;
    font-weight: 700;
    line-height: normal;
  }

  .separator
  {
    border-bottom: 1px solid #00000033;
    width: 100%;
  }

  a
  {
    color: #B03D27;
    text-align: center;
    font-family: "Neulis Neue";
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    text-decoration-line: underline;
    text-decoration-style: solid;
    text-decoration-skip-ink: auto;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    text-underline-position: from-font;
  }
}

@media (min-width: 768px)
{
  #cateringModal .modal-body
  {
    .catering-card
    {
      font-size: 1rem;
      background-size: contain;
    }

    .catering-disclaimer
    {
      h6
      {
        font-size: 1.125rem;
      }
    }

    .pickup-cta
    {
      background-image: url('https://media.olivegarden.com/images/OG_Redesign_Assets/Desktop/Desktop_Order_Triage_Popup_Catering_Pickup.png');
    }

    .delivery-cta
    {
      background-image: url('https://media.olivegarden.com/images/OG_Redesign_Assets/Desktop/Desktop_Order_Triage_Popup_Catering_Delivery.png');
    }
  }

  #cateringModal .modal-dialog
  {
    max-width: 396px;
  }
}

@media (min-width: 992px)
{
  #cateringModal
  {
    li
    {
      font-size: 0.875rem;
    }
  }

  #cateringModal .modal-body
  {
    .catering-options
    {
      padding: 0 16px 32px 16px;
    }

    p.text-balance
    {
      font-size: 0.875rem;
    }
  }

  #cateringModal .modal-footer
  {
    p
    {
      font-size: 1.125rem;
    }

    a
    {
      font-size: 1rem;
    }
  }
}


.header .mobile-location-information
{
  display: none;
  font-size: 0.875rem;

}

.header .mobile-location-information.is-open
{
  display: block;
}

.light-background
{
  background: rgb(250, 250, 250);
  color: rgb(2, 0, 1);
}



.header .mobile-location-information a
{
  color: #f15a3d;
  font-family: 'Neulis Sans', 'Montserrat', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  text-decoration: underline;
}

.header .mobile-location-information a:visited
{
  color: #f15a3d;
}

.header .mobile-location-information a:hover,
.header .mobile-location-information a:focus,
.header .mobile-location-information a:active
{
  color: #B03D27;
}


.header .mobile-location-information #mobile-holiday_restaurant_message
{
  color: #212529;
  font-family: "Neulis Sans";
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-align: right;
}

.header .cart-location-item__shopping-bag
{
  position: relative;
}

.header .cart-location-item__pin img,
.header .cart-location-item__shopping-bag img
{
  width: 35px;
}

.header .cart-location-item__shopping-bag a,
.header .cart-location-item__shopping-bag #cart-location-trigger
{
  display: block;
}

@media(min-width:576px)
{

  .header .cart-location-item__pin img,
  .header .cart-location-item__shopping-bag img
  {
    width: 42px;
  }
}

.login-link
{
  color: #000;
  font-family: "Neulis Neue";
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.logout-link
{
  color: #000;
  font-family: "Neulis Neue";
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.login-link:hover
{
  color: #000;
}

.logout-link:hover
{
  color: #000;
}

#cart-empty-popup
{
  position: absolute;
  top: 88px;
  right: 72px;
  z-index: 1;
  border-radius: 10px;

}

#cart-empty-popup h4
{
  background: #303E1E;
  color: #fff;
  font-family: "Neulis Sans";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  padding: 12px 16px;
  border-radius: 10px 10px 0px 0px;
}

.cart-empty-popup-close-btn
{
  margin-right: 5px;
  width: 20px !important;
  height: 20px !important;
  margin-top: -5px;
}

.empty-cart-btn
{
  color: #000;
  font-family: "Neulis Neue";
  font-size: 1rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

@media (max-width: 600px)
{

  #cart-empty-popup
  {
    position: absolute;
    top: 80px;
    right: 10px;
    z-index: 1;
    border-radius: 10px;

  }

  #cart-empty-popup h4
  {
    font-size: 0.75rem;
  }

  #cart-empty-popup .cart-empty__content p
  {
    font-size: 0.75rem;
  }
}

.fixed-bottom
{
  position: fixed !important;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 1020;
}

.sticky-header
{
  position: fixed !important;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1020;
}

.select-location .no-location-selected-btn
{
  color: #000 !important;
  font-family: "Neulis Neue";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-decoration: none !important;
}

.location-selected .location-selected-btn
{
  color: #000 !important;
  font-family: "Neulis Neue";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-decoration: none !important;
}

.global-alert
{
  background-color: #b03d27;
}

.global-alert p,
.global-alert a
{
  color: #fff;
}

/* NRO (locations/new-locations Page ------------------------------------------------------------ START*/

.locations-page
{
  margin: 0;
  padding: 32px 0;
  background: #E8EACD;
  min-height: calc(100vh - 706px);

  .new-locations.container
  {
    max-width: 880px;
    background: #ffffff;
    border-radius: 12px;
    padding: 24px;
  }

  .new-locations p.no-record
  {
    text-align: center;
    font-family: 'Neulis Neue';
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1.5;
  }

  /* Tabs */
  .new-locations .tabs
  {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    max-width: 680px;
    width: 100%;
    padding: 3px;
    background: #e7e7e7;
    border-radius: 40px;
  }

  .new-locations .tab
  {
    flex: 1;
    padding: 8px 0;
    text-align: center;
    font-family: 'Neulis Neue';
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 700;
    color: #606060;
    border-radius: 40px;
    cursor: pointer;
    transition: background 0.25s ease;
  }

  .new-locations .tab a
  {
    text-decoration: none;
    color: inherit !important;
  }

  .new-locations .tab:not(.active):hover
  {
    background: #dcdcdc;
  }

  .new-locations .tab.active
  {
    background: #303E1E;
    color: #ffffff;
  }


  .new-locations a
  {
    color: #B03D27;
  }

  .location-card
  {
    display: flex;
    gap: 20px;
    min-height: 150px;
    margin-bottom: 16px;
    background: #FDF7F0;
    border: 1px solid #D6D6D6;
    border-radius: 16px;
    overflow: hidden;
  }

  .location-card .card-image
  {
    flex: 0 0 145px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }

  .location-card .card-image img
  {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .card-content
  {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 32px;
    width: 100%;
  }

  .loc-title
  {
    font-family: 'Neulis Neue';
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 700;
    color: #B03D27;
    margin: 0 0 10px;
  }

  a .loc-title:hover
  {
    color: var(--og-green-700);
  }

  .card-text a
  {
    text-decoration: underline !important;
    color: #B03D27;
  }

  .card-text a:hover
  {
    text-decoration: none !important;
  }

  .address
  {
    margin: 0;
    font-family: 'Neulis Sans';
    font-weight: 400;
    font-size: 1rem;
    line-height: 1.5;
    color: #303030;
  }

  .card-status
  {
    display: flex;
    align-items: center;
  }

  .status-pill
  {
    padding: 8px 32px;
    border: 2px solid #000000;
    border-radius: 30px;
    background: #E8EACD;
    font-family: 'Neulis Sans';
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 400;
    text-transform: uppercase;
    color: #000000;
  }

  .comingsoon .status-pill
  {
    background: #D7E9EB;
  }
}

/* ================= MOBILE ONLY ================= */

@media (max-width: 767px)
{
  .locations-page
  {
    padding: 20px 0;

    .new-locations.container
    {
      padding: 16px;
    }

    .new-locations .tabs
    {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 8px;
      background: transparent;
      padding: 8px;
    }

    .new-locations .tab
    {
      background: #e7e7e7;
      padding: 12px 0;
    }

    .new-locations .tab.active:hover
    {
      background: #303E1E;
    }

    .location-card
    {
      gap: 10px;
    }

    .card-content
    {
      display: grid;
      grid-template-rows: auto auto;
      gap: 16px;
      padding: 20px 20px 20px 0;
      justify-content: center;
    }

    .card-text
    {
      text-align: center;
    }

    .card-status
    {
      justify-content: center;
      width: 100%;
    }

    .status-pill
    {
      padding: 6px 14px;
    }
  }
}


/* NRO (locations/new-locations  Page ------------------------------------------------------------END*/

/* accessibility-statement Page ------------------------------------------------------------ START*/
.page--accessibility {
    background: #E8EACD;
}

.page--accessibility .container--iframe {
    max-width: 960px;
    padding: 48px 0;
}

.page--accessibility h1 {
    font-family: 'Neulis Cursive';
    font-size: 48px;
    font-weight: 700;
    line-height: normal;
    letter-spacing: 1px;
    color: #000;
    padding: 8px 0 12px;
    margin-bottom: 40px;
}

@media(max-width: 768px) {
    .page--accessibility h1 {
        font-size: 24px;
        padding: 0 40px;
    }
}
/* accessibility-statement Page ------------------------------------------------------------ END*/