/* Site-level additions: replaces behaviour previously provided by the hosted app bundle
   and adds responsive refinements. Loaded after public.css. */

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
img { max-width: 100%; }
.tsw-app-wrapper { overflow-x: clip; }
#footer { scroll-margin-top: 90px; }

/* ---------- Navigation ---------- */
.navWrapper .navLinks { display: flex; flex-wrap: nowrap; }
.navWrapper .navLinks a.link { color: inherit; font-size: 1rem; }
.navWrapper .navLinks a.link[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; }
@media screen and (min-width: 48em) and (max-width: 63.99em) {
  .navWrapper .navLinks { padding-right: 8px; }
  .navWrapper .navLinks a.link { padding: 0 8px; font-size: .9rem; }
}

/* Mobile drawer */
.mobileNavOverlay[hidden], .gg-modal[hidden] { display: none !important; }
.mobileNavOverlay .content { position: relative; border-radius: 6px; overflow-y: auto; box-shadow: 0 10px 30px rgba(0, 0, 0, .35); }
.gg-close { background: none; border: 0; color: inherit; cursor: pointer; padding: 8px; line-height: 0; }
.gg-drawer-links { display: flex; flex-direction: column; padding: 4px 24px 24px; }
.gg-drawer-links a { color: inherit; text-decoration: none; font-size: 1.15rem; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .2); }
.gg-drawer-links a[aria-current="page"] { font-weight: 700; }
.gg-drawer-links a.gg-drawer-cta { border: 0; margin-top: 16px; padding: 0; }
.gg-drawer-links a.gg-drawer-cta .button { width: 100%; text-align: center; box-sizing: border-box; }
body.gg-locked { overflow: hidden; }

/* ---------- Carousels ---------- */
.imageScroller .images { touch-action: pan-y; }
.carouselArrows .carouselArrow { cursor: pointer; }
.carouselArrows .carouselArrow.inactive { opacity: .4; cursor: default; }

/* ---------- Hours / footer ---------- */
.locationDescription .status .circle { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: middle; background: #3fb950; }
.locationDescription .status .circle.closed { background: #e5534b; }
.mapFrame iframe { display: block; }
.gg-modal { position: fixed; inset: 0; z-index: 30; display: flex; align-items: center; justify-content: center; padding: 16px; }
.gg-modal .modalOverlay { position: fixed; inset: 0; background: rgba(0, 0, 0, .5); }
.gg-modal .allHoursModal { position: relative; z-index: 1; box-sizing: border-box; max-height: calc(100vh - 32px); overflow-y: auto; }
.gg-modal-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.gg-modal-head button { cursor: pointer; line-height: 0; padding: 6px; }
.allHoursModal .schedule > div.gg-today { font-weight: 700; }

/* ---------- Rich text: scale large inline font sizes on small screens ---------- */
@media screen and (max-width: 47.99em) {
  .heroText h1, .cardHeader h1, .gg-page h1 { font-size: 2.25rem !important; line-height: 2.75rem !important; }
  .heroText h2, .gg-page h2 { font-size: 1.9rem !important; line-height: 2.4rem !important; }
  .sectionHeader h3, .cardHeader h3 { font-size: 1.6rem !important; line-height: 2.1rem !important; }
  [style*="font-size:40pt"] { font-size: 30pt !important; }
  [style*="font-size:30pt"] { font-size: 21pt !important; }
  [style*="font-size:25pt"] { font-size: 17pt !important; }
  [style*="font-size:20pt"] { font-size: 16pt !important; }
  .fullScreenSection .text-box-area { padding: 1rem; }
  .fullScreenSection .text-box-area .text-box-row .text-box { max-width: 100%; }
  .templateFooter .locations { display: block; }
  .locationDescription .foodLinks { flex-wrap: wrap; }
}
@media screen and (max-width: 35.49em) {
  [style*="font-size:40pt"] { font-size: 26pt !important; }
  .hero.templateHero .heroWrapper .image, .hero .heroBoxWrapper { height: 360px; }
  .hero .heroBoxWrapper.overImageScroller { height: auto; }
}

/* ---------- Sub pages ---------- */
.gg-single-card .carouselWrapper .carousel .itemsWrapper > div { flex-basis: 100%; max-width: 760px; margin: 0 auto; }
.gg-single-card .cardWrapper { border-radius: 24px; overflow: hidden; }
.gg-single-card .cardText { text-align: center; }
.gg-single-card .cardImageWrapper { height: auto !important; }
.gg-contain img { object-fit: contain !important; height: auto !important; width: 100%; max-height: 720px; display: block; }

.calendarSection .sectionHeader { margin-bottom: 24px; }
.calendarSection .sectionHeader h2 { text-align: center; }
.gg-empty { text-align: center; padding: 32px 16px; border-top: 1px solid rgba(255, 255, 255, .35); border-bottom: 1px solid rgba(255, 255, 255, .35); font-size: 1.1rem; }

.gg-split-hero .gg-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.gg-split-hero .gg-hero-img img { width: 100%; height: auto; display: block; border-radius: 8px; }
.gg-split-hero .heroText { text-align: center; line-height: normal; }
@media screen and (max-width: 47.99em) {
  .gg-split-hero .gg-hero-grid { grid-template-columns: 1fr; gap: 24px; }
}

.gg-info { text-align: center; max-width: 760px; margin: 0 auto; line-height: 1.6; }
.gg-info p { font-size: 1.1rem; margin: 0 0 12px; }
.gg-info .gg-banner { width: 100%; max-height: 420px; object-fit: cover; border-radius: 8px; margin-bottom: 32px; display: block; }
.gg-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }
.gg-actions a { text-decoration: none; }
.gg-notice { display: inline-block; margin-top: 8px; padding: 12px 18px; border-radius: 8px; background: rgba(255, 255, 255, .12); }
