/* =========================================================================
   Gino's Deli – Elementor layer
   Maps the original site's inline styles onto Elementor containers/widgets.
   Every Elementor container we generate carries .gd-raw (zero padding/gap)
   plus a semantic class. Widgets carry a semantic class on their wrapper.
   ========================================================================= */

/* ---------- Elementor neutralisation ---------- */
body.gd-site { background: var(--gd-green); color: var(--gd-white); font-family: var(--font-body); }
body.gd-site .site-main, body.gd-site .page-content { margin: 0; padding: 0; max-width: none; }
body.gd-site .e-con.gd-raw {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --widgets-spacing: 0px;
  --width: 100%; --content-width: 100%; --min-height: 0;
  padding: 0; gap: 0; margin: 0; min-height: 0; max-width: none;
  flex-wrap: nowrap;
}
body.gd-site .e-con.gd-raw > .elementor-widget { margin: 0; --container-widget-width: 100%; }
body.gd-site .e-con.gd-raw > .e-con { --container-widget-width: 100%; }
body.gd-site .elementor-widget:not(:last-child) { margin-block-end: 0; margin-bottom: 0; }
body.gd-site .elementor-widget-container { margin: 0; padding: 0; }
:where(body.gd-site) .elementor-heading-title { margin: 0; padding: 0; font-family: inherit; color: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; }
body.gd-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body.gd-site .elementor img { border-radius: 0; box-shadow: none; }
:where(body.gd-site) .elementor-button { background: none; border-radius: 0; padding: 0; font-size: inherit; line-height: 1; fill: currentColor; }
:where(body.gd-site) .elementor-button .elementor-button-content-wrapper { display: inline; }
:where(body.gd-site) a { color: inherit; }

/* absolute decoration layer (HTML widget that fills its parent section) */
body.gd-site .e-con > .gd-abs { position: absolute !important; inset: 0; width: auto !important; max-width: none; margin: 0; pointer-events: none; }
body.gd-site .gd-abs .elementor-widget-container { position: static; }
.gd-deco-img { position: absolute; pointer-events: none; user-select: none; }

/* colour helpers used inside headings */
.c-cream { color: var(--gd-cream); }
.c-red   { color: var(--gd-red); }
.c-white { color: var(--gd-white); }
.c-green { color: var(--gd-green); }

/* =========================================================================
   HEADER  (shortcode [gd_header] inside the Theme Builder header)
   ========================================================================= */
.gd-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: clamp(96px,24vw,120px); display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(20px,5vw,48px); background-color: transparent; border-bottom: 1px solid transparent; transition: background-color .5s ease, backdrop-filter .5s ease, border-color .5s ease; }
.gd-nav.is-scrolled { background-color: rgba(23,80,55,.94); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); border-bottom-color: rgba(255,255,255,.06); }
.gd-nav.is-light { background-color: rgba(240,235,224,.96); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); border-bottom-color: rgba(23,80,55,.12); }
body.gd-site .gd-nav.is-light .gd-nav-logo { filter: none; }
.gd-nav.is-light .gd-nav-link { color: rgba(23,80,55,.65); }
.gd-nav.is-light .gd-nav-link:hover, .gd-nav.is-light .gd-nav-link.is-active { color: var(--gd-green); }
.gd-nav.is-light .gd-burger span { background: var(--gd-green); }
.gd-menu-open .gd-nav.is-light .gd-burger span { background: #fff; }
body.admin-bar .gd-nav { top: 32px; }
@media (max-width: 782px) { body.admin-bar .gd-nav { top: 46px; } }
.gd-nav-brand { display: flex; align-items: center; text-decoration: none; z-index: 2; }
body.gd-site .gd-nav .gd-nav-logo { height: clamp(80px,22vw,120px) !important; width: auto !important; max-width: none !important; aspect-ratio: 1 / 1; filter: brightness(0) invert(1); }
.gd-desktop-nav { display: flex; align-items: center; gap: clamp(12px,1.55vw,24px); }
.gd-nav-link { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.65); text-decoration: none; transition: color .25s; }
.gd-nav-link:hover, .gd-nav-link.is-active { color: var(--gd-white); }
.gd-nav-order { font-family: var(--font-body); font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gd-black) !important; background: var(--gd-white); text-decoration: none; padding: 10px 22px; border-radius: 2px; transition: background .25s, color .25s; }
.gd-nav-order:hover { background: var(--gd-cream); }
.gd-mobile-right { display: flex; align-items: center; gap: 16px; }
.gd-nav-order--sm { font-size: 9px; padding: 8px 14px; }
.gd-burger { background: none; border: none; cursor: pointer; padding: 8px; display: flex; flex-direction: column; gap: 5px; align-items: flex-end; min-width: 44px; min-height: 44px; justify-content: center; z-index: 101; }
.gd-burger span { display: block; width: 22px; height: 1.5px; background: #fff; border-radius: 1px; transition: transform .35s var(--ease-snappy), opacity .35s ease, width .35s; }
.gd-burger span:nth-child(2) { width: 14px; }
.gd-menu-open .gd-burger span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.gd-menu-open .gd-burger span:nth-child(2) { opacity: 0; }
.gd-menu-open .gd-burger span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
@media (min-width: 1050px) { .gd-desktop-nav { display: flex !important; } .gd-mobile-right { display: none !important; } }
@media (max-width: 1049px) { .gd-desktop-nav { display: none !important; } .gd-mobile-right { display: flex !important; } }

.gd-mobile-menu { position: fixed; inset: 0; z-index: 99; background: var(--gd-green); display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: calc(clamp(40px,10vw,80px) + env(safe-area-inset-top)) clamp(40px,10vw,80px) calc(clamp(48px,12vw,80px) + env(safe-area-inset-bottom)); opacity: 0; pointer-events: none; transition: opacity .4s var(--ease-snappy); }
.gd-menu-open .gd-mobile-menu { opacity: 1; pointer-events: auto; }
.gd-mobile-menu-sticker { position: absolute; top: 10%; right: -5%; width: clamp(180px,45vw,320px); opacity: .12; pointer-events: none; user-select: none; transform: rotate(8deg); }
.gd-mobile-links { display: flex; flex-direction: column; gap: clamp(16px,4vw,26px); position: relative; z-index: 2; }
.gd-mobile-links a { font-family: var(--font-heading); font-size: clamp(38px,10.5vw,66px); font-weight: 700; color: var(--gd-white); text-decoration: none; line-height: .9; letter-spacing: var(--gd-display-tracking); text-transform: uppercase; transform: translateX(-30px); opacity: 0; transition: transform .5s var(--ease-out), opacity .5s var(--ease-out); }
.gd-menu-open .gd-mobile-links a { transform: none; opacity: 1; }
.gd-menu-open .gd-mobile-links a:nth-child(2) { transition-delay: 50ms; }
.gd-menu-open .gd-mobile-links a:nth-child(3) { transition-delay: 100ms; }
.gd-menu-open .gd-mobile-links a:nth-child(4) { transition-delay: 150ms; }
.gd-menu-open .gd-mobile-links a:nth-child(5) { transition-delay: 200ms; }
.gd-menu-open .gd-mobile-links a:nth-child(6) { transition-delay: 250ms; }
.gd-mobile-foot { margin-top: clamp(32px,8vw,48px); border-top: 1px solid rgba(255,255,255,.2); padding-top: clamp(24px,6vw,32px); width: 100%; display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 2; }
.gd-mobile-foot .gd-nav-order { font-size: 12px; color: var(--gd-green) !important; padding: 14px 32px; }
.gd-mobile-foot span { font-family: var(--font-body); font-size: 11px; letter-spacing: .1em; color: rgba(255,255,255,.4); text-transform: uppercase; }
html.gd-lock, html.gd-lock body { overflow: hidden; }

/* =========================================================================
   SHARED WIDGET STYLES
   ========================================================================= */
.gd-eyebrow-w { font-family: var(--font-body); letter-spacing: .28em; text-transform: uppercase; color: rgba(255,255,255,.54); margin-bottom: clamp(16px,3vw,24px) !important; font-size: 10px; font-weight: 700; line-height: 1.2; }
.gd-eyebrow-w.is-olive { color: var(--gd-olive); }

/* generic buttons (Elementor Button widget) */
.gd-btn .elementor-button { font-family: var(--font-body); font-weight: 700; text-transform: uppercase; text-decoration: none; border-radius: 2px; display: inline-flex; align-items: center; position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.gd-btn .elementor-button:active { transform: scale(.96); transition: transform .1s var(--ease-snappy); }
.gd-btn--white .elementor-button { color: var(--gd-green); background: var(--gd-white); }
.gd-btn--green .elementor-button { color: var(--gd-white); background: var(--gd-green); }
.gd-cta-fill .elementor-button::before { content: ""; position: absolute; inset: 0; background: var(--gd-cream); transform: translateX(-100%); transition: transform .4s cubic-bezier(.23,1,.32,1); z-index: 0; }
.gd-cta-fill .elementor-button:hover::before { transform: translateX(0); }
.gd-cta-fill .elementor-button:hover { color: var(--gd-green); }
.gd-cta-fill .elementor-button .elementor-button-text, .gd-cta-fill .elementor-button-content-wrapper { position: relative; z-index: 1; }

/* =========================================================================
   HOME – HERO
   ========================================================================= */
body.gd-site .e-con.gd-hero { position: relative; min-height: 100svh; background: var(--gd-green); display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; padding-top: clamp(96px,24vw,120px); }
.gd-hero-vignette { position: absolute; inset: 0; background: radial-gradient(90% 70%, rgba(0,0,0,0) 0%, rgba(0,0,0,.35) 100%); pointer-events: none; z-index: 1; }
.gd-hero-sticker { position: absolute; will-change: margin; opacity: .95; pointer-events: none; user-select: none; z-index: 2; filter: drop-shadow(rgba(0,0,0,.4) 0 8px 24px); }
.gd-sticker-0 { --rot: -8deg; top: 12%; left: 4%; width: clamp(82px,23vw,116px); }
.gd-sticker-1 { --rot: 10deg; top: 12%; right: 4%; width: clamp(82px,23vw,116px); }
.gd-sticker-2 { --rot: -5deg; top: 20%; left: 5%; width: clamp(70px,20vw,98px); }
.gd-sticker-3 { --rot: 7deg; top: 20%; right: 5%; width: clamp(70px,20vw,98px); }
.gd-sticker-4 { --rot: -12deg; display: none; }
@media (min-width: 768px) {
  .gd-sticker-0 { top: 7%; left: 3%; width: clamp(160px,20vw,280px); }
  .gd-sticker-1 { top: 6%; right: 3%; width: clamp(150px,18vw,260px); }
  /* matches the original: top:20% from the mobile rule still applies, so these sit under the top pair */
  .gd-sticker-2 { bottom: 8%; left: 3%; width: clamp(140px,17vw,240px); }
  .gd-sticker-3 { bottom: 7%; right: 3%; width: clamp(140px,17vw,240px); }
  .gd-sticker-4 { top: 40%; right: 2%; width: clamp(100px,12vw,180px); }
}
.gd-scroll-indicator { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; z-index: 3; opacity: .4; }
.gd-scroll-indicator span { font-family: var(--font-body); font-size: 8px; letter-spacing: .3em; text-transform: uppercase; color: #fff; }
.gd-scroll-indicator i { display: block; width: 1px; height: 36px; background: linear-gradient(#fff, transparent); animation: scrollPulse 2s ease-in-out infinite; }
@keyframes scrollPulse { 0% { opacity: 0; transform: scaleY(0); transform-origin: top; } 40% { opacity: 1; transform: scaleY(1); transform-origin: top; } 60% { opacity: 1; transform: scaleY(1); transform-origin: bottom; } 100% { opacity: 0; transform: scaleY(0); transform-origin: bottom; } }
@media (max-height: 600px) { .gd-scroll-indicator { display: none; } }

body.gd-site .e-con.gd-hero-content { position: relative; z-index: 3; display: flex; flex-direction: column; align-items: center; text-align: center; width: 100%; padding: 0 20px; max-width: 600px; }
@media (min-width: 768px) { body.gd-site .e-con.gd-hero-content { padding: 0 clamp(80px,16vw,180px); max-width: 920px; } }
.gd-hero-logo { margin-bottom: clamp(24px,6vw,44px) !important; }
.gd-hero-logo img { width: clamp(140px,52vw,280px); filter: brightness(0) invert(1); }
.gd-hero-title .elementor-heading-title { font-family: var(--font-heading); font-size: clamp(48px,14vw,120px); font-weight: 700; color: var(--gd-white); line-height: .88; letter-spacing: var(--gd-display-tracking); text-transform: uppercase; display: flex; flex-direction: column; align-items: center; gap: .04em; }
.gd-hero-title .elementor-heading-title > span { display: block; }
.gd-hero-title { margin-bottom: clamp(18px,4vw,28px) !important; }
.gd-hero-sub { font-family: var(--font-body); font-size: clamp(13px,3.5vw,16px); font-weight: 300; color: rgba(255,255,255,.6); line-height: 1.7; letter-spacing: .03em; margin-bottom: clamp(32px,7vw,48px) !important; max-width: 340px; }
.gd-hero-cta .elementor-button { font-size: clamp(11px,3vw,13px); letter-spacing: .22em; padding: clamp(15px,4vw,18px) clamp(32px,10vw,56px); display: inline-block; }
@media (max-width: 480px) { .gd-hero-cta, .gd-hero-cta .elementor-button { display: block; width: 100%; text-align: center; } }

/* hero load-in */
.gd-load { opacity: 0; transform: translateY(24px); transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out); }
.gd-loaded .gd-load { opacity: 1; transform: none; }
.gd-loaded .gd-load.d1 { transition-delay: .15s; } .gd-loaded .gd-load.d2 { transition-delay: .3s; } .gd-loaded .gd-load.d3 { transition-delay: .45s; } .gd-loaded .gd-load.d4 { transition-delay: .6s; }
body.elementor-editor-active .gd-load, body.elementor-editor-active .reveal, body.elementor-editor-active .gd-vibe-sticker { opacity: 1 !important; transform: none !important; }

/* =========================================================================
   TICKER  (shortcode [gd_ticker])
   ========================================================================= */
.gd-ticker { overflow: hidden; padding: clamp(12px,2.5vw,16px) 0; border-top: 1px solid rgba(255,255,255,.07); border-bottom: 1px solid rgba(255,255,255,.07); background-color: #103d2c; }
.gd-ticker--mid { background-color: #1c6144; }
.gd-ticker .t-item { font-family: var(--font-body); font-size: clamp(11px,2.5vw,13px); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #fff; white-space: nowrap; padding: 0 clamp(20px,4vw,32px); display: inline-block; }
.gd-ticker .t-dot { font-family: serif; font-size: 16px; font-weight: 300; color: #fff; white-space: nowrap; padding: 0 12px; opacity: .3; display: inline-block; }
.gd-ticker--mid .t-item, .gd-ticker--mid .t-dot { color: var(--gd-cream); }
.gd-ticker .ticker-track { align-items: center; }

/* =========================================================================
   HOME – PANUOZZO FEATURE (containers carry the original class names)
   ========================================================================= */
body.gd-site .e-con.gd-panuozzo-feature { display: block; padding: clamp(68px,12vw,142px) 0; }
body.gd-site .e-con.gd-panuozzo-feature-shell { display: grid; gap: clamp(36px,8vw,100px); width: min(100%,1200px); margin: 0 auto; padding: 0 clamp(20px,5vw,80px); }
body.gd-site .e-con.gd-panuozzo-feature-copy { display: block; }
body.gd-site .e-con.gd-panuozzo-feature-images { display: grid; grid-template-columns: minmax(0,1.16fr) minmax(0,.84fr); align-items: stretch; gap: clamp(10px,2.5vw,24px); }
body.gd-site .e-con.gd-panuozzo-image-rail { display: grid; align-content: end; gap: clamp(9px,2vw,18px); }
@media (min-width: 700px) { body.gd-site .e-con.gd-panuozzo-feature-shell { grid-template-columns: minmax(0,1.06fr) minmax(390px,.94fr); align-items: center; gap: clamp(48px,6vw,80px); } }
@media (max-width: 699px) {
  body.gd-site .e-con.gd-panuozzo-feature-images { gap: 10px; }
  body.gd-site .e-con.gd-panuozzo-image-rail { grid-template-rows: repeat(3,minmax(0,1fr)); align-content: stretch; gap: 10px; display: grid; }
}
.gd-pf-title .elementor-heading-title { color: var(--gd-green); font-family: var(--font-heading); letter-spacing: var(--gd-display-tracking); word-spacing: var(--gd-display-word-spacing); text-transform: uppercase; font-size: clamp(46px,12vw,124px); font-weight: 700; line-height: .84; }
.gd-pf-title { margin-top: 8px !important; }
.gd-pf-title .elementor-heading-title span { color: var(--gd-red); }
@media (min-width: 700px) { .gd-pf-title .elementor-heading-title { font-size: clamp(54px,7.8vw,112px); } }
@media (max-width: 699px) { .gd-pf-title .elementor-heading-title { word-spacing: .035em; } }
.gd-pf-text { color: rgba(23,80,55,.72); max-width: 490px; margin-top: clamp(20px,4vw,30px) !important; font-size: clamp(15px,3.8vw,18px); font-weight: 300; line-height: 1.68; }
.gd-panuozzo-image .elementor-widget-container, .gd-panuozzo-image > img { height: 100%; }
.gd-panuozzo-image img { object-fit: cover; width: 100% !important; height: 100% !important; max-width: none !important; display: block; transition: transform .7s var(--ease-out); }
body.gd-site .gd-panuozzo-image { box-shadow: 0 22px 45px #103d2c29; }

/* =========================================================================
   HOME – ABOUT / OUR STORY
   ========================================================================= */
body.gd-site .e-con.gd-about { display: block; background: var(--gd-dark); padding: clamp(72px,14vw,140px) clamp(20px,5vw,80px); position: relative; overflow: hidden; }
.gd-about-bg { right: -10%; bottom: -5%; width: clamp(160px,50vw,480px); opacity: .04; transform: rotate(-10deg); }
body.gd-site .e-con.gd-wrap { display: block; max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }
.gd-line-eyebrow { margin-bottom: clamp(36px,8vw,60px) !important; }
.gd-line-eyebrow .elementor-heading-title { font-family: var(--font-body); font-size: 10px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--gd-olive); line-height: 1.2; }
.gd-line-eyebrow .elementor-heading-title::after { content: ""; display: block; margin-top: 12px; width: 32px; height: 1px; background: var(--gd-olive); transform-origin: left center; animation: line-grow .8s var(--ease-out) .3s both; }
body.gd-site .e-con.gd-about-grid { display: flex; flex-direction: column; gap: clamp(40px,10vw,80px); }
@media (min-width: 768px) { body.gd-site .e-con.gd-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(48px,8vw,100px); align-items: start; } }
body.gd-site .e-con.gd-col { display: block; }
body.gd-site .e-con.gd-about-list { display: flex; flex-direction: column; }
.gd-about-title .elementor-heading-title { font-family: var(--font-heading); font-size: clamp(40px,11vw,80px); font-weight: 700; color: var(--gd-white); line-height: .9; letter-spacing: var(--gd-display-tracking); text-transform: uppercase; }
.gd-about-title { margin-bottom: clamp(20px,5vw,32px) !important; }
.gd-about-text { font-family: var(--font-body); font-size: clamp(14px,3.5vw,17px); font-weight: 300; color: rgba(255,255,255,.65); line-height: 1.8; margin-bottom: clamp(28px,6vw,40px) !important; }
.gd-about-feature { padding: clamp(16px,3.5vw,22px) 0 !important; border-bottom: 1px solid rgba(255,255,255,.08); }
.gd-about-feature .elementor-heading-title { font-family: var(--font-heading); font-size: clamp(20px,5.5vw,32px); font-weight: 700; color: var(--gd-white); text-transform: uppercase; letter-spacing: var(--gd-display-tracking); line-height: 1; }
.gd-about-feature:nth-child(2) { transition-delay: 80ms; } .gd-about-feature:nth-child(3) { transition-delay: 160ms; } .gd-about-feature:nth-child(4) { transition-delay: 240ms; }

body.gd-site .e-con.gd-stats-bar { display: block; margin-top: clamp(56px,12vw,96px); background: var(--gd-green); border-radius: clamp(12px,3vw,20px); position: relative; overflow: hidden; }
body.gd-site .e-con.gd-stats-grid { display: grid; grid-template-columns: 1fr 1fr; padding: clamp(24px,5vw,40px) clamp(16px,4vw,48px); gap: 0; position: relative; z-index: 2; }
body.gd-site .e-con.gd-stat { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: clamp(16px,4vw,24px) 8px; border-right: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); }
body.gd-site .e-con.gd-stat:nth-child(2n) { border-right: none; }
body.gd-site .e-con.gd-stat:nth-child(3), body.gd-site .e-con.gd-stat:nth-child(4) { border-bottom: none; }
@media (min-width: 768px) {
  body.gd-site .e-con.gd-stats-grid { grid-template-columns: repeat(4,1fr); }
  body.gd-site .e-con.gd-stat { border-bottom: none; }
  body.gd-site .e-con.gd-stat:nth-child(2n) { border-right: 1px solid rgba(255,255,255,.12); }
  body.gd-site .e-con.gd-stat:nth-child(4) { border-right: none; }
}
.gd-stat-num .elementor-heading-title { font-family: var(--font-heading); font-size: clamp(28px,8vw,56px); font-weight: 700; color: var(--gd-white); line-height: 1; letter-spacing: var(--gd-display-tracking); text-align: center; }
.gd-stat-label .elementor-heading-title { font-family: var(--font-body); font-size: 9px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.45); text-align: center; line-height: 1.3; }

/* =========================================================================
   HOME – VIBES
   ========================================================================= */
body.gd-site .e-con.gd-vibes { display: block; background: var(--gd-cream); padding: clamp(76px,14vw,140px) clamp(20px,5vw,80px); position: relative; overflow: hidden; scroll-margin-top: clamp(96px,24vw,120px); }
body.gd-site .e-con.gd-vibes-head { display: block; margin-bottom: clamp(42px,9vw,76px); max-width: 620px; }
.gd-vibes-eyebrow .elementor-heading-title { display: block; font-family: var(--font-body); font-size: 10px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--gd-olive); line-height: 1.2; }
.gd-vibes-eyebrow { margin-bottom: 14px !important; }
.gd-vibes-title .elementor-heading-title { font-family: var(--font-heading); font-size: clamp(52px,12vw,110px); font-weight: 700; color: var(--gd-green); line-height: .88; letter-spacing: var(--gd-display-tracking); text-transform: uppercase; }
.gd-vibes-title .elementor-heading-title span { color: var(--gd-red); }
body.gd-site .e-con.gd-vibes-field { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: center; gap: clamp(10px,4vw,48px) clamp(8px,3vw,56px); }
body.gd-site .gd-vibe-sticker { min-height: clamp(188px,48vw,390px); margin: 0; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(34px) rotate(var(--sticker-rot)) scale(.92); transition: opacity .75s var(--ease-out), transform .75s var(--ease-out); will-change: transform, opacity; }
.gd-vibe-sticker .elementor-widget-container { display: flex; align-items: center; justify-content: center; width: 100%; }
body.gd-site .gd-vibe-sticker.is-visible { opacity: 1; transform: translateY(0) rotate(var(--sticker-rot)) scale(1); }
body.gd-site .gd-vibe-sticker img { display: block; width: min(150%,500px); max-width: 100%; max-height: clamp(220px,60vw,430px); object-fit: contain; filter: drop-shadow(0 14px 16px rgba(16,61,44,.2)); transform: scale(1.28); transition: transform .45s var(--ease-snappy), filter .45s ease; user-select: none; }
.gd-vibe-sticker:nth-child(1) { --sticker-rot: -6deg; } .gd-vibe-sticker:nth-child(2) { --sticker-rot: 5deg; } .gd-vibe-sticker:nth-child(3) { --sticker-rot: -3deg; }
.gd-vibe-sticker:nth-child(4) { --sticker-rot: 7deg; } .gd-vibe-sticker:nth-child(5) { --sticker-rot: -8deg; } .gd-vibe-sticker:nth-child(6) { --sticker-rot: 4deg; }
body.gd-site .gd-vibe-sticker:nth-child(2n) { transform: translateY(28px) rotate(var(--sticker-rot)) scale(.92); }
body.gd-site .gd-vibe-sticker:nth-child(2n).is-visible { transform: translateY(0) rotate(var(--sticker-rot)) scale(1); }
body.gd-site .gd-vibe-sticker:nth-child(3) { margin-top: clamp(0px,4vw,36px); }
body.gd-site .gd-vibe-sticker:nth-child(6) { margin-top: clamp(0px,5vw,48px); }
@media (hover: hover) { body.gd-site .gd-vibe-sticker:hover img { transform: scale(1.38) rotate(4deg); filter: drop-shadow(0 22px 26px rgba(16,61,44,.28)); } }
@media (min-width: 700px) {
  body.gd-site .e-con.gd-vibes-field { grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(20px,4vw,64px) clamp(20px,5vw,88px); }
  body.gd-site .gd-vibe-sticker { min-height: clamp(300px,29vw,440px); }
  body.gd-site .gd-vibe-sticker img { width: min(140%,500px); max-height: clamp(320px,31vw,460px); }
  body.gd-site .gd-vibe-sticker:nth-child(3) { margin-top: 0; }
  body.gd-site .gd-vibe-sticker:nth-child(4) { margin-top: clamp(0px,7vw,88px); }
  body.gd-site .gd-vibe-sticker:nth-child(6) { margin-top: clamp(0px,5vw,62px); }
}

/* =========================================================================
   FOOTER TEMPLATE – "HUNGRY? ORDER NOW." + FOOTER BAR
   ========================================================================= */
body.gd-site .e-con.gd-contact { display: block; background: var(--gd-green); position: relative; overflow: hidden; }
.gd-contact-bg { bottom: 8%; right: -6%; width: clamp(160px,50vw,420px); opacity: .07; transform: rotate(8deg); }
body.gd-site .e-con.gd-contact-inner { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(72px,16vw,160px) clamp(20px,5vw,80px) clamp(52px,10vw,100px); max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }
.gd-contact-eyebrow .elementor-heading-title { font-family: var(--font-body); font-size: 10px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: rgba(255,255,255,.45); line-height: 1.2; }
.gd-contact-eyebrow { margin-bottom: clamp(14px,3vw,24px) !important; }
.gd-contact-title .elementor-heading-title { font-family: var(--font-heading); font-size: clamp(56px,18vw,160px); font-weight: 700; color: var(--gd-white); line-height: .85; letter-spacing: var(--gd-display-tracking); text-transform: uppercase; }
.gd-contact-title .elementor-heading-title span { color: var(--gd-cream); }
.gd-contact-title { margin-bottom: clamp(36px,8vw,60px) !important; }
body.gd-site .gd-contact-btn { width: auto; }
.gd-contact-btn .elementor-button { font-size: 12px; letter-spacing: .22em; padding: clamp(16px,4vw,20px) clamp(36px,10vw,64px); min-height: 52px; transition: background .3s; }
.gd-contact-btn .elementor-button:hover { background: var(--gd-cream); }

.gd-footer { border-top: 1px solid rgba(255,255,255,.12); padding: clamp(28px,6vw,44px) clamp(20px,5vw,80px); position: relative; z-index: 1; }
.gd-footer-inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 768px) { .gd-footer-inner { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; } }
body.gd-site .gd-footer .gd-footer-logo { height: clamp(72px,18vw,100px) !important; width: auto !important; max-width: none !important; aspect-ratio: 1 / 1; filter: brightness(0) invert(1); opacity: .9; }
.gd-footer-row { display: flex; gap: clamp(20px,5vw,36px); align-items: center; flex-wrap: wrap; }
.gd-footer-row--links { gap: clamp(20px,5vw,32px); }
.gd-footer-row a { font-family: var(--font-body); font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.55); text-decoration: none; min-height: 44px; display: flex; align-items: center; transition: color .25s; }
.gd-footer-row a:hover { color: #fff; }
.gd-footer-meta { display: flex; flex-direction: column; gap: 6px; }
.gd-footer-meta a { font-family: var(--font-body); font-size: 11px; font-weight: 400; letter-spacing: .05em; color: rgba(255,255,255,.45); text-decoration: none; min-height: 44px; display: flex; align-items: center; transition: color .25s; }
.gd-footer-meta a:hover { color: #fff; }
.gd-footer-meta span { font-family: var(--font-body); font-size: 10px; color: rgba(255,255,255,.25); letter-spacing: .05em; }

/* =========================================================================
   INNER PAGE HEROES (Locations / Awards / Journal / FAQ / Article)
   Containers carry the original hero classes; widgets carry *-w classes.
   ========================================================================= */
body.gd-site .e-con.gd-page-hero,
body.gd-site .e-con.gd-journal-hero,
body.gd-site .e-con.gd-faq-hero,
body.gd-site .e-con.gd-article-hero { display: flex; flex-direction: row; align-items: flex-end; position: relative; overflow: hidden; min-height: min(780px,100svh); padding: clamp(150px,25vw,230px) 0 clamp(72px,12vw,140px); }
body.gd-site .e-con.gd-journal-hero, body.gd-site .e-con.gd-faq-hero { min-height: min(790px,100svh); }
body.gd-site .e-con.gd-article-hero { min-height: min(760px,90svh); }
@media (min-width: 700px) { body.gd-site .e-con.gd-page-hero, body.gd-site .e-con.gd-journal-hero, body.gd-site .e-con.gd-faq-hero, body.gd-site .e-con.gd-article-hero { align-items: center; } }
@media (max-width: 699px) { body.gd-site .e-con.gd-page-hero, body.gd-site .e-con.gd-journal-hero, body.gd-site .e-con.gd-faq-hero, body.gd-site .e-con.gd-article-hero { min-height: auto; padding: calc(98px + env(safe-area-inset-top)) 0 52px; align-items: flex-start; } }
body.gd-site .e-con.gd-page-shell { display: block; width: min(100%,1200px); margin: 0 auto; padding-left: clamp(20px,5vw,80px); padding-right: clamp(20px,5vw,80px); position: relative; z-index: 2; }
@media (min-width: 700px) { body.gd-site .e-con.gd-page-shell { padding-left: clamp(36px,6vw,80px); padding-right: clamp(36px,6vw,80px); } }
.gd-page-title-w .elementor-heading-title { max-width: 900px; font-family: var(--font-heading); letter-spacing: var(--gd-display-tracking); word-spacing: var(--gd-display-word-spacing); color: var(--gd-white); text-transform: uppercase; font-size: clamp(64px,16vw,170px); font-weight: 700; line-height: .78; }
.gd-page-title-w .elementor-heading-title span { color: var(--gd-cream); }
@media (max-width: 600px) { .gd-page-title-w .elementor-heading-title { letter-spacing: .022em; word-spacing: .04em; font-size: clamp(48px,12.8vw,54px); line-height: .84; } }
@media (max-width: 699px) { .gd-page-title-w .elementor-heading-title { letter-spacing: var(--gd-display-tracking); word-spacing: .035em; } }
@media (min-width: 700px) { .gd-awards-hero .gd-page-title-w .elementor-heading-title { max-width: 780px; font-size: clamp(70px,7.5vw,108px); line-height: .84; } }
@media (max-width: 600px) { .gd-awards-hero .gd-page-title-w .elementor-heading-title { letter-spacing: .018em; font-size: clamp(42px,11.2vw,47px); } }
.gd-page-lede-w { max-width: 515px; font-family: var(--font-body); color: rgba(255,255,255,.69); margin-top: clamp(30px,6vw,46px) !important; font-size: clamp(15px,3.8vw,19px); font-weight: 300; line-height: 1.7; }
@media (max-width: 699px) { .gd-page-lede-w { margin-top: 24px !important; } }
.gd-article-back-w a, a.gd-article-back-w { color: rgba(255,255,255,.64); }
.gd-article-back-w { margin-bottom: clamp(42px,8vw,80px) !important; }
@media (max-width: 699px) { .gd-article-back-w { margin-bottom: 28px !important; } }

/* =========================================================================
   MENU PAGE container
   ========================================================================= */
body.gd-site .e-con.gd-menu-content { display: block; }
.gd-menu-nav-scroll button:focus { outline: none; }

/* =========================================================================
   SINGLE JOURNAL POST (Theme Builder single template)
   ========================================================================= */
body.gd-site .e-con.gd-article-body { display: block; background: var(--gd-cream); color: var(--gd-green); padding: clamp(64px,12vw,130px) 0; }
body.gd-site .e-con.gd-article-copy { display: block; width: min(100% - 40px, 690px); margin: 0 auto; }
@media (min-width: 700px) { body.gd-site .e-con.gd-article-copy { width: min(100% - 72px, 690px); } }
.gd-article-copy .elementor-widget-theme-post-content p,
.gd-article-copy .gd-article-lead-w { color: rgba(23,80,55,.8); margin-bottom: clamp(25px,5vw,34px); font-size: clamp(17px,4.3vw,21px); font-weight: 300; line-height: 1.68; }
.gd-article-copy .gd-article-lead-w { color: var(--gd-green); font-size: clamp(24px,6vw,34px); font-weight: 400; line-height: 1.4; }
.gd-article-copy .elementor-widget-theme-post-content h2,
.gd-article-copy .elementor-widget-theme-post-content h3 { font-family: var(--font-heading); text-transform: uppercase; color: var(--gd-green); line-height: .95; margin: 1.4em 0 .6em; letter-spacing: var(--gd-display-tracking); }
.gd-article-copy .elementor-widget-theme-post-content img { max-width: 100%; height: auto; }
.gd-article-copy .elementor-widget-theme-post-content a { color: var(--gd-red); }

/* Hello Elementor fallbacks when no Theme Builder template matches */
body.gd-site #site-header, body.gd-site #site-footer, body.gd-site .site-header, body.gd-site .site-footer { display: none; }

/* Panuozzo collage: hero photo keeps its .93 ratio at full rail height, so it runs
   under the three small photos exactly like the original */
body.gd-site .e-con.gd-panuozzo-feature-images > .gd-panuozzo-image--hero { width: auto !important; max-width: none !important; justify-self: start; aspect-ratio: .93; position: relative; z-index: 0; }
body.gd-site .e-con.gd-panuozzo-image-rail { position: relative; z-index: 1; }
@media (max-width: 699px) { body.gd-site .e-con.gd-panuozzo-feature-images > .gd-panuozzo-image--hero { width: auto !important; } }

/* Menu page: content starts below the fixed header, sticky category bar sits under it */
body.gd-site .e-con.gd-menu-content { display: block; background: var(--gd-cream); color: var(--gd-green); padding-top: clamp(96px,24vw,120px); padding-bottom: clamp(76px,13vw,150px); overflow: visible; }
body.gd-site .e-con.gd-menu-content > .elementor-widget, body.gd-site .gd-menu-content .elementor-widget-container, body.gd-site .gd-menu-content .elementor-shortcode { overflow: visible; }
body.gd-site .gd-menu-sticky-nav { top: clamp(96px,24vw,120px); }
body.admin-bar.gd-site .gd-menu-sticky-nav { top: calc(clamp(96px,24vw,120px) + 32px); }
@media (max-width: 782px) { body.admin-bar.gd-site .gd-menu-sticky-nav { top: calc(clamp(96px,24vw,120px) + 46px); } }

/* Menu page: optional disclaimer + optional category numbers */
.gd-menu-sections--nodisc { border-top: 0; margin-top: clamp(10px,3vw,24px); }
.gd-menu-section-heading.gd-menu-section-heading--nonum { grid-template-columns: minmax(0,1fr); }

/* Section label can be a number or text: let its column grow to fit */
.gd-menu-section-heading:not(.gd-menu-section-heading--nonum) { grid-template-columns: minmax(35px,max-content) minmax(0,1fr); column-gap: 14px; }
.gd-menu-section-heading > span { white-space: nowrap; text-transform: uppercase; }
@media (min-width:700px) { .gd-menu-section-heading:not(.gd-menu-section-heading--nonum) { grid-template-columns: minmax(70px,max-content) minmax(0,1fr); column-gap: 18px; } }
