.party-header-photo {
  object-position: 55% 50%;
}

.home-location-map {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border-radius: 30px;
  background: #ffffff;
  box-shadow: 0 6px 18px rgba(35, 31, 28, 0.05);
}

.home-location-map iframe {
  display: block;
  flex: 1;
  width: 100%;
  min-height: 320px;
  border: 0;
}

.home-location-map-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 4px 16px;
  box-sizing: border-box;
  color: #1f6fa8;
  font: 600 15px var(--font-outfit), sans-serif;
  text-underline-offset: 3px;
}

.home-location-map-link:focus-visible {
  outline: 3px solid #b8405a;
  outline-offset: -4px;
  border-radius: 8px;
}

.pn-menu [hidden] {
  display: none !important;
}

.menu-search-field:focus-within {
  outline: 2px solid #b8405a;
  outline-offset: 2px;
}

.menu-search-field input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
}

.menu-search-clear {
  flex: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #5c534c;
  font-size: 28px;
  cursor: pointer;
}

.menu-search-results {
  min-width: 0;
}

.menu-search-status {
  margin: 0 0 8px;
  color: #5c534c;
  font-size: 14px;
  overflow-wrap: anywhere;
}

.menu-search-results ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.menu-search-results a {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 14px 4px;
  border-bottom: 1px solid #e3d6c8;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.menu-search-results strong {
  font-family: var(--font-bricolage), sans-serif;
  font-size: 21px;
  line-height: 1.2;
}

.menu-search-results a span {
  color: #5c534c;
  font-size: 14px;
  line-height: 1.45;
}

.menu-search-results a:hover {
  background: #ffffff;
}

.menu-search-results a:focus-visible,
.menu-search-clear:focus-visible {
  outline: 2px solid #b8405a;
  outline-offset: 2px;
  border-radius: 8px;
}

/* Party packages can be compared with touch, trackpad or keyboard scrolling. */
.package-scroll-hint {
  margin: -10px 0 -14px;
  color: #5c534c;
  font-family: var(--font-outfit), sans-serif;
  font-size: 14px;
}

.party-packages {
  display: flex !important;
  flex-wrap: nowrap;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 2px;
  padding: 16px 2px 14px;
  scrollbar-color: #b8405a #efe6dc;
  scrollbar-width: thin;
}

.party-packages:focus-visible {
  outline: 2px solid #b8405a;
  outline-offset: 4px;
  border-radius: 8px;
}

.party-packages > article {
  box-sizing: border-box;
  flex: 0 0 clamp(270px, 28vw, 340px);
  min-width: 0;
  scroll-snap-align: start;
}

.party-packages[data-pagination-ready] {
  scrollbar-width: none;
}

.party-packages[data-pagination-ready]::-webkit-scrollbar {
  display: none;
}

.package-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-top: -10px;
}

.package-pagination[hidden] {
  display: none;
}

.package-dot-button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  flex: none;
}

.package-dot {
  display: block;
  width: 13px;
  height: 13px;
  border: 1px solid #84766b;
  border-radius: 50%;
  background: var(--package-dot-colour);
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.package-dot-button[aria-current="true"] .package-dot {
  transform: scale(1.3);
  border-color: #b8405a;
  box-shadow: 0 0 0 2px #fffaf4, 0 0 0 4px #b8405a;
}

.package-dot-button:focus-visible {
  outline: 2px solid #b8405a;
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .package-dot {
    transition: none;
  }
}

@media (max-width: 600px) {
  .party-packages > article {
    flex-basis: min(300px, 86%);
    padding: 24px 18px !important;
  }
}

/* Keep Home booking choices side by side, with text spanning each card. */
@media (max-width: 720px) {
  main section[aria-label="Book"] { grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:10px !important;padding:16px 12px 24px !important; }
  main section[aria-label="Book"] > a { min-width:0;gap:10px !important;padding:8px 8px 12px !important;border-radius:22px !important; }
  main section[aria-label="Book"] > a > div:first-child { aspect-ratio:1 !important;padding:0 !important;border-radius:999px 999px 14px 14px !important; }
  main section[aria-label="Book"] > a > div:first-child > span {left:5px !important;right:5px;bottom:8px !important;padding:5px 3px !important;font-size:10px !important;line-height:1.2;text-align:center;}
  main section[aria-label="Book"] > a > span {top:8px !important;right:8px !important;width:62px !important;height:62px !important;font-size:9px !important;}
  main section[aria-label="Book"] > a > span > strong {font-size:16px !important;}
  main section[aria-label="Book"] > a > div:last-child {display:block !important;padding:0 2px !important;}
  main section[aria-label="Book"] > a > div:last-child > svg {display:none;}
  main section[aria-label="Book"] > a > div:last-child > span {width:auto;min-width:0;gap:5px;}
  main section[aria-label="Book"] > a > div:last-child > span > strong {font-size:clamp(17px,4.6vw,22px) !important;line-height:1.1 !important;}
  main section[aria-label="Book"] > a > div:last-child > span > span {font-size:12px !important;line-height:1.35;}
}

/* Native FAQ disclosures remain usable without JavaScript. */
.faq-page [hidden] {
  display: none !important;
}

.faq-page .faq-search-field {
  position: relative;
  width: min(560px, 100%);
}

.faq-page .faq-search-field #faq-search {
  width: 100% !important;
  padding-right: 64px !important;
}

.faq-page .faq-search-field #faq-search::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.faq-page .faq-search-field:focus-within {
  outline: 2px solid #b8405a;
  outline-offset: 3px;
  border-radius: 999px;
}

.faq-page .faq-search-clear {
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fbf6f1;
  color: #231f1c;
  font: 500 26px/1 system-ui, sans-serif;
  cursor: pointer;
}

.faq-page .faq-search-clear:hover {
  background: #f7d3d6;
}

.faq-page .faq-search-clear:focus-visible,
.faq-page #faq-content summary:focus-visible {
  outline: 2px solid #b8405a;
  outline-offset: 3px;
}

.faq-page .faq-search-status {
  width: min(560px, 100%);
  margin: 0;
  color: #5c534c;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.faq-page #faq-content section[id] {
  scroll-margin-top: 190px;
}

.home-promotion {
  box-sizing: border-box;
  width: fit-content;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  padding: 12px;
  border: 0;
  border-radius: 22px;
  background: #fbf6f1;
  color: #231f1c;
  box-shadow: 0 20px 80px #231f1c55;
  overflow: auto;
  overscroll-behavior: contain;
}

.home-promotion::backdrop {
  background: #231f1cbf;
}

.home-promotion-close {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 0 10px auto;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #231f1c;
  box-shadow: 0 2px 10px #231f1c14;
  font: 500 30px/1 system-ui, sans-serif;
  cursor: pointer;
}

.home-promotion-close:hover {
  background: #f7d3d6;
}

.home-promotion-poster {
  display: block;
  width: auto;
  height: auto;
  max-width: min(500px, calc(100vw - 48px));
  max-height: calc(100vh - 162px);
  max-height: calc(100dvh - 162px);
  margin: 0 auto;
  border-radius: 10px;
  object-fit: contain;
}

.home-promotion-actions {
  display: flex;
  justify-content: center;
  margin-top: 12px;
}

.home-promotion-book {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 10px 22px;
  border-radius: 999px;
  background: #f7c559;
  color: #231f1c;
  font: 700 16px/1.4 var(--font-outfit), sans-serif;
  text-decoration: none;
  text-align: center;
}

.home-promotion-book:hover {
  background: #fbe3a1;
}

.home-promotion-close:focus-visible,
.home-promotion-book:focus-visible {
  outline: 3px solid #b8405a;
  outline-offset: 3px;
}

/* Keep the poster readable in short landscape windows; the dialog scrolls. */
@media (max-height: 540px) {
  .home-promotion-poster {
    width: min(440px, calc(100vw - 48px));
    max-height: none;
  }
}

.cafe-menu-page {
  background: #fbf6f1;
  color: #231f1c;
  font: 17px/1.6 var(--font-nunito), sans-serif;
}
.cafe-menu-page * { box-sizing: border-box; }
.cafe-menu-page [hidden] { display: none !important; }
.cafe-menu-page h1, .cafe-menu-page h2, .cafe-menu-page h3, .cafe-menu-page h4 {
  font-family: var(--font-bricolage), sans-serif;
  letter-spacing: -.035em;
}
.cafe-menu-page a { color: inherit; }
.cafe-menu-page a:focus-visible, .cafe-menu-page button:focus-visible {
  outline: 3px solid #b8405a;
  outline-offset: 4px;
}
.cafe-menu-hero {
  max-width: 1240px;
  padding: 46px 20px 54px;
  margin: auto;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  align-items: center;
  gap: 58px;
}
.menu-eyebrow {
  margin: 0 0 10px;
  color: #b8405a;
  font: 700 12px/1.5 var(--font-outfit), sans-serif;
  letter-spacing: .19em;
}
.cafe-menu-hero h1 {
  margin: 0 0 22px;
  font-weight: 800;
  font-size: clamp(52px, 6.7vw, 88px);
  line-height: .98;
}
.cafe-menu-hero h1 span { color: #b8405a; }
.cafe-menu-hero-copy > p:not(.menu-eyebrow) { max-width: 510px; margin: 0; color: #5c534c; }
.cafe-menu-hero-links { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 28px; }
.cafe-menu-hero-links a { font: 600 15px var(--font-outfit), sans-serif; text-underline-offset: 4px; }
.cafe-menu-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 14px 22px;
  gap: 22px;
  border-radius: 40px;
  background: #f7c559;
  text-decoration: none;
}
.cafe-menu-hero-photo { position: relative; padding: 12px 12px 26px; background: #f7d3d6; border-radius: 240px 240px 28px 28px; }
.cafe-menu-hero-photo img { display: block; width: 100%; height: 340px; object-fit: cover; border-radius: 240px 240px 18px 18px; }
.cafe-menu-hero-photo > span { display: block; text-align: center; padding-top: 14px; font: 700 16px var(--font-outfit), sans-serif; }
.cafe-menu-body { max-width: 1240px; padding: 0 20px 60px; margin: auto; }
.menu-tools { padding: 28px; background: #fff; border-radius: 28px; border: 1px solid #efe6dc; }
.menu-tools-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; }
.menu-tools-heading h2 { margin: 0; font-size: 30px; font-weight: 800; line-height: 1.1; }
.menu-tools-heading .menu-eyebrow { margin-bottom: 6px; }
.cafe-menu-search-field { display: flex; align-items: center; margin-top: 22px; border: 1px solid #ded0c2; border-radius: 99px; background: #fbf6f1; overflow: hidden; }
.cafe-menu-search-field:focus-within { outline: 2px solid #b8405a; outline-offset: 2px; }
.cafe-menu-search-field input { min-width: 0; width: 100%; min-height: 52px; padding: 12px 20px; background: transparent; border: 0; color: #231f1c; font: 16px var(--font-nunito), sans-serif; outline: none; }
.cafe-menu-search-field input::-webkit-search-cancel-button { appearance: none; }
.cafe-menu-search-field button { flex: none; border: 0; background: transparent; font-size: 28px; width: 44px; height: 44px; color: #5c534c; cursor: pointer; }
.menu-categories { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.menu-categories a { padding: 10px 17px; min-height: 44px; border-radius: 99px; background: #f7d3d6; font: 600 14px/1.7 var(--font-outfit), sans-serif; text-decoration: none; }
.menu-categories a:nth-child(2), .menu-categories a:nth-child(5) { background: #fbe3a1; }
.menu-categories a:nth-child(3), .menu-categories a:nth-child(6) { background: #d3e8f6; }
.menu-categories a:nth-child(4) { background: #d9ebd1; }
.menu-categories a:hover { box-shadow: inset 0 0 0 2px #b8405a; }
.menu-image-note { margin: 16px 0 0; max-width: 760px; font-size: 13px; color: #6b625b; line-height: 1.6; }
.menu-tools .menu-search-status { margin: 14px 0 0; color: #5c534c; font-size: 15px; }
.menu-section { padding-top: 52px; scroll-margin-top: 172px; }
.menu-section-heading { margin-bottom: 22px; }
.menu-section-heading h3 { margin: 0 0 9px; font-size: clamp(26px, 2.7vw, 34px); font-weight: 800; line-height: 1.08; }
.menu-section-heading > p:last-child { margin: 0; color: #5c534c; }
.menu-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.menu-card { min-width: 0; display: flex; flex-direction: column; border-radius: 24px; background: #fff; overflow: hidden; border: 1px solid #eee4da; box-shadow: 0 5px 18px rgba(35,31,28,.035); }
.menu-card-image { aspect-ratio: 1.15; overflow: hidden; background: #efe6dc; }
.menu-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.menu-card-copy { padding: 18px; display: flex; flex: 1; flex-direction: column; gap: 12px; }
.menu-card-title { display: flex; flex-direction: column; gap: 8px; }
.menu-card h4 { font-size: 22px; font-weight: 800; line-height: 1.13; margin: 0; }
.menu-card-price { margin: 0; color: #b8405a; font: 700 18px var(--font-outfit), sans-serif; }
.menu-card-description, .menu-card-options { margin: 0; color: #5c534c; font-size: 14px; line-height: 1.5; }
.menu-card-options { padding-top: 10px; border-top: 1px solid #f1eae2; }
.menu-card-sizes { margin: 0; color: #5c534c; font-size: 14px; }
.menu-card-sizes > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.menu-card-sizes dd { margin: 0; color: #b8405a; font-weight: 800; white-space: nowrap; }
.platter-details { margin-bottom: 22px; padding: 18px 22px; background: #fbe3a1; border-radius: 20px; }
.platter-details strong { font-family: var(--font-outfit), sans-serif; }
.platter-details p { margin: 4px 0 0; font-size: 15px; }
.cafe-menu-contact { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 56px; padding: 32px; border-radius: 28px; background: #b8405a; color: #fff; }
.cafe-menu-contact .menu-eyebrow { color: #fbe3a1; }
.cafe-menu-contact h2 { font-weight: 800; font-size: 32px; margin: 0 0 8px; line-height: 1.1; }
.cafe-menu-contact p:last-child { margin: 0; max-width: 630px; }
.cafe-menu-contact a { flex: none; display: inline-flex; align-items: center; gap: 18px; min-height: 52px; border-radius: 99px; padding: 12px 22px; background: #f7c559; color: #231f1c; font: 700 16px var(--font-outfit), sans-serif; text-decoration: none; }
.menu-no-results { padding: 64px 24px; text-align: center; }
.menu-no-results h2 { font-size: 30px; line-height: 1.2; }
.menu-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 1000px) {
  .menu-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .cafe-menu-hero { gap: 30px; }
  .cafe-menu-hero-photo img { height: 300px; }
}
@media (max-width: 720px) {
  .cafe-menu-hero { grid-template-columns: 1fr; gap: 30px; padding: 30px 20px 34px; }
  .cafe-menu-hero h1 { font-size: clamp(48px, 12vw, 74px); }
  .cafe-menu-hero-photo { max-width: 430px; width: 100%; margin: auto; }
  .cafe-menu-hero-photo img { height: 240px; }
  .cafe-menu-hero-links { gap: 16px; }
  .menu-tools { padding: 20px; }
  .menu-tools-heading { gap: 10px; }
  .menu-tools-heading h2 { font-size: 27px; }
  .menu-categories { gap: 7px; }
  .menu-categories a { padding: 9px 13px; }
  .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .menu-card { border-radius: 18px; }
  .menu-card-image { aspect-ratio: 1; }
  .menu-card-copy { padding: 14px; gap: 10px; }
  .menu-card h4 { font-size: 18px; }
  .menu-card-price { font-size: 17px; }
  .menu-card-description, .menu-card-options, .menu-card-sizes { font-size: 13px; }
  .menu-section { padding-top: 34px; scroll-margin-top: 140px; }
  .menu-section-heading > p:last-child { font-size: 15px; }
  .cafe-menu-contact { flex-direction: column; align-items: flex-start; padding: 26px; margin-top: 36px; gap: 22px; }
}
@media (max-width: 360px) {
  .cafe-menu-body { padding-inline: 14px; }
  .menu-tools { padding: 16px; }
  .menu-card-copy { padding: 12px; }
  .menu-card h4 { font-size: 17px; }
  .menu-grid { gap: 10px; }
}

.menu-navigation {
  position: sticky;
  top: var(--menu-sticky-top, 135px);
  z-index: 20;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 12px;
  padding: 12px 0;
  background: #fbf6f1;
}
.menu-navigation a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 52px;
  padding: 10px 12px;
  border: 2px solid transparent;
  border-radius: 99px;
  background: #f7d3d6;
  font: 600 16px/1.3 var(--font-outfit), sans-serif;
  text-decoration: none;
  white-space: nowrap;
}
.menu-navigation #tab-cafe-menu { background: #fbe3a1; }
.menu-navigation #tab-adult-food-platters { background: #d9ebd1; white-space: normal; text-wrap: balance; }
.menu-navigation a[aria-selected="true"] { border-color: #b8405a; font-weight: 800; }
.menu-navigation a:focus-visible { outline-offset: 2px; }
.menu-panel { padding-top: 20px; scroll-margin-top: calc(var(--menu-sticky-top, 135px) + 85px); outline: none; }
.menu-panel:focus-visible { outline: 2px solid #b8405a; outline-offset: 6px; }
.menu-panel-heading h2 { margin: 0 0 8px; font-size: clamp(32px, 3.5vw, 48px); font-weight: 800; line-height: 1.08; }
.menu-panel-heading p { margin: 0; max-width: 820px; color: #5c534c; }
.menu-panel .menu-section { padding-top: 30px; scroll-margin-top: calc(var(--menu-sticky-top, 135px) + 85px); }
.menu-panel .platter-details { margin-top: 22px; }
.menu-availability { margin-top: 22px; padding: 20px 22px; border-radius: 20px; background: #fbe3a1; border: 1px solid #e8cf8b; color: #231f1c; }
.menu-availability > strong { display: block; font: 800 clamp(20px, 2.3vw, 26px)/1.2 var(--font-outfit), sans-serif; }
.menu-availability p { margin: 7px 0 0; font-size: 16px; line-height: 1.5; }
.menu-availability .menu-availability-emphasis { color: #9b2944; font-weight: 800; }
.menu-availability-adults { background: #e9efdf; border-color: #cad8b9; }
.menu-section > .menu-availability, .menu-section > .platter-details { margin: 0 0 24px; }
#sharing-platters .menu-card-image { background: #fff; }
#sharing-platters .menu-card-image img { object-fit: contain; }
.menu-price-unit { display: block; margin-top: 3px; color: #5c534c; font: 400 13px var(--font-nunito), sans-serif; }
.cafe-menu-body > .menu-image-note { margin: 8px 0 14px; }
@media (max-width: 720px) {
  .menu-navigation { gap: 6px; padding-block: 10px; grid-template-columns: minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.5fr); }
  .menu-navigation a { min-height: 46px; padding: 8px 4px; font-size: clamp(11px, 3.15vw, 16px); }
  .menu-panel { scroll-margin-top: calc(var(--menu-sticky-top, 115px) + 76px); }
  .menu-panel-heading p { font-size: 15px; }
  .menu-panel .menu-section { padding-top: 24px; }
}
@media (max-width: 360px) {
  .menu-navigation { gap: 4px; }
  .menu-navigation a { padding-inline: 2px; font-size: clamp(10px, 3.125vw, 11.25px); }
}

/* Approved October design list: all component styles are scoped. */
.list-eyebrow {
  color: #b8405a;
  font: 600 12px var(--font-outfit), sans-serif;
  letter-spacing: .18em;
}

.list-more,
.list-party-menus {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px 48px;
}

.list-more-heading {
  max-width: 920px;
  margin: 0 auto 26px;
  text-align: center;
}

.list-more-heading h2,
.list-party-menu-heading h2 {
  margin: 7px 0 0;
  font: 800 clamp(38px, 5.2cqi, 68px)/1.02 var(--font-bricolage), sans-serif;
  letter-spacing: -.035em;
  color: #466343;
}

.list-more-heading h2 > span {
  color: #cf706b;
}

.list-more-heading h2 em {
  color: #d99514;
  font-style: normal;
}

.list-more-heading .list-more-tagline {
  margin: 10px 0 12px;
  color: #b75b56;
  font: 700 clamp(20px, 2.7cqi, 31px)/1.2 var(--font-bricolage), sans-serif;
}

.list-more-heading > p:last-child {
  margin: 0;
  color: #4d4540;
  font-size: 17px;
  line-height: 1.55;
}

.list-more-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 3px;
}

.list-more-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 10px;
  border-radius: 30px;
  text-decoration: none;
  color: var(--list-card-ink);
  background: var(--list-card-background);
}

.list-more-cafe {
  --list-card-ink: #663e32;
  --list-card-background: #fbe9e3;
  --list-card-note: #f6d7cf;
}

.list-more-paint {
  --list-card-ink: #76449c;
  --list-card-background: #f3eaf8;
  --list-card-note: #e8d5f2;
}

.list-more-photo {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 23px;
  background: #eee1d4;
}

.list-more-photo > img,
.list-cafe-collage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.list-more-photoshoots {
  --list-card-ink: #42664c;
  --list-card-background: #eaf0e7;
  --list-card-note: #dce7d8;
}

.list-cafe-collage {
  display: grid;
  width: 100%;
  height: 100%;
  grid-template-columns: 1.4fr .8fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 7px;
  background: #fbe9e3;
}

.list-cafe-collage > img:first-child {
  grid-row: 1 / 3;
}

.list-cafe-collage > img {
  min-height: 0;
  border-radius: 15px;
}

.list-more-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 17px 7px 6px;
  text-align: center;
}

.list-more-copy h3 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font: 800 clamp(25px, 2.7cqi, 34px)/1.05 var(--font-bricolage), sans-serif;
  letter-spacing: -.03em;
}

.list-more-copy h3 svg {
  flex: none;
  width: 38px;
  height: 38px;
}

.list-more-copy p {
  max-width: 24ch;
  margin: 0 0 6px;
  color: #4d4540;
  line-height: 1.4;
}

.list-more-note {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  margin-top: auto;
  padding: 9px 12px;
  border-radius: 999px;
  background: var(--list-card-note);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
}

.list-more-card:focus-visible,
.list-more-cards:focus-visible,
.list-party-menu-card:focus-visible {
  outline: 3px solid #b8405a;
  outline-offset: 3px;
}

.list-more-dots {
  justify-content: center;
  gap: 3px;
  margin-top: 7px;
}

.list-more-dots[hidden] {
  display: none;
}

.list-more-dot-button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}

.list-more-dot-button > span {
  width: 11px;
  height: 11px;
  border: 2px solid #9c8f82;
  border-radius: 50%;
  background: var(--list-dot-colour);
}

.list-more-dot-button[aria-current="true"] > span {
  width: 15px;
  height: 15px;
  border-color: #52453d;
  outline: 2px solid var(--list-dot-colour);
  outline-offset: 3px;
}

.list-more-dot-button:focus-visible {
  outline: 2px solid #b8405a;
  outline-offset: 0;
}

.list-party-header-photo {
  object-position: center !important;
}

.list-party-menus {
  padding-bottom: 40px;
}

.list-party-menu-heading {
  max-width: 800px;
  margin: 0 auto 26px;
  text-align: center;
}

.list-party-menu-heading h2 {
  font-size: clamp(34px, 4.2cqi, 54px);
  color: #231f1c;
}

.list-party-menu-heading h2 span {
  display: block;
  color: #b8405a;
}

.list-party-menu-heading p {
  margin: 14px 0 0;
  color: #5c534c;
  font-size: clamp(17px, 1.8cqi, 21px);
}

.list-party-menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.list-party-menu-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border-radius: 30px;
  text-decoration: none;
  background: var(--list-menu-background);
  color: var(--list-menu-ink);
}

.list-party-menu-kids {
  --list-menu-background: #fbe4e8;
  --list-menu-ink: #b8405a;
}

.list-party-menu-adults {
  --list-menu-background: #e9efdf;
  --list-menu-ink: #62784c;
}

.list-party-menu-card > img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.list-party-menu-card > div {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 12px;
  padding: 25px;
  text-align: center;
}

.list-party-menu-card h3 {
  margin: 0;
  font: 800 clamp(24px, 3.5cqi, 44px)/1.05 var(--font-bricolage), sans-serif;
  letter-spacing: -.03em;
}

.list-party-menu-card p {
  max-width: 23ch;
  margin: 0 auto 10px;
  color: #5c534c;
  font-size: clamp(16px, 2.1cqi, 24px);
  line-height: 1.4;
}

.list-menu-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  min-height: 54px;
  margin-top: auto;
  padding: 10px 15px;
  border-radius: 999px;
  color: #fff;
  background: var(--list-menu-ink);
  font: 700 clamp(14px, 1.8cqi, 22px)/1.25 var(--font-outfit), sans-serif;
}

.list-menu-cta > span {
  font-size: 1.5em;
}

.list-party-extras-inner {
  display: block !important;
}

.list-venue-minimum {
  margin-top: 6px;
  color: #5c534c;
  font-size: 14px;
  font-weight: 600;
}

@media (max-width: 720px) {
  .list-more {
    padding-right: 12px;
    padding-left: 12px;
  }

  .list-more-heading > p:last-child {
    font-size: 15px;
  }

  .list-more-cards {
    display: flex;
    overflow-x: auto;
    gap: 12px;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 3px;
    overscroll-behavior-x: contain;
  }

  .list-more-card {
    flex: 0 0 min(330px, 86%);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .list-more-copy h3 {
    font-size: 30px;
  }

  .list-more-cards[data-pagination-ready] {
    scrollbar-width: none;
  }

  .list-more-cards[data-pagination-ready]::-webkit-scrollbar {
    display: none;
  }

  .list-more-dots:not([hidden]) {
    display: flex;
  }

  .list-party-menus {
    padding-right: 12px;
    padding-left: 12px;
  }

  .list-party-menu-grid {
    gap: 10px;
  }

  .list-party-menu-card {
    border-radius: 22px;
  }

  .list-party-menu-card > img {
    aspect-ratio: 1;
  }

  .list-party-menu-card > div {
    gap: 9px;
    padding: 15px 10px 12px;
  }

  .list-party-menu-card h3 {
    font-size: clamp(21px, 5vw, 28px);
  }

  .list-party-menu-card p {
    font-size: 14px;
  }

  .list-menu-cta {
    gap: 6px;
    min-height: 48px;
    padding: 8px;
    font-size: 12px;
  }
}
#explore, #more-than-play-title, #party-menus-title, #party-extras {
  scroll-margin-top: 176px;
}

@media (max-width: 720px) {
  #explore, #more-than-play-title, #party-menus-title, #party-extras {
    scroll-margin-top: 134px;
  }
}


/* The approved Gallery photos keep their original aspect ratios. */
.pn-gallery-photos {
  box-sizing: border-box;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px 48px;
}

.pn-gallery-photo-grid {
  column-count: 4;
  column-gap: 18px;
}

.pn-gallery-photo {
  display: inline-block;
  width: 100%;
  margin: 0 0 22px;
  break-inside: avoid;
  vertical-align: top;
}

.pn-gallery-photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 24px;
  background: #FBE3A1;
}

.pn-gallery-photo:nth-child(3n + 2) img { background: #F7D3D6; }
.pn-gallery-photo:nth-child(3n) img { background: #D9EBD1; }

.pn-gallery-photo figcaption {
  padding: 8px 6px 0;
  color: #5C534C;
  font-family: var(--font-outfit), sans-serif;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}

@media (max-width: 1050px) {
  .pn-gallery-photo-grid { column-count: 3; }
}

@media (max-width: 760px) {
  .pn-gallery-photo-grid { column-count: 2; column-gap: 14px; }
}

@media (max-width: 460px) {
  .pn-gallery-photo-grid { column-count: 1; }
  .pn-gallery-photo { margin-bottom: 20px; }
}

/* Shared service cards and restrained promotion styling. */
.list-more-cards { align-items: stretch; }
.list-more-card { box-sizing: border-box; }
.list-more-photo { flex-shrink: 0; }
.list-more-card .list-more-copy { gap: 16px; padding: 20px 13px 10px; }
.final-home-card-prose { flex: 1; text-align: left; }
.final-home-card-prose p { max-width: none; margin: 0; font-size: 16px; line-height: 1.6; }
.final-home-card-prose p + p { margin-top: 12px; }
.list-more-card .list-more-note { margin-top: 4px; }
.final-home-promotions { scroll-margin-top: 176px; max-width: 1240px; margin: 0 auto; padding: 0 20px 48px; }
.final-home-promotions-heading { margin-bottom: 26px; }
.final-home-promotions-heading h2 { margin: 7px 0 10px; color: #231f1c; font: 800 clamp(38px,5.2cqi,68px)/1.05 var(--font-bricolage),sans-serif; letter-spacing: -.04em; }
.final-home-promotions-heading p { margin: 0; color: #5c534c; font-size: 17px; line-height: 1.55; }
.final-home-promotion-track { display: flex; position: relative; align-items: stretch; gap: 18px; padding: 3px 3px 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 3px; overscroll-behavior-x: contain; }
.final-home-promotion-card { display: flex; position: relative; flex: 0 0 calc((100% - 36px)/3); flex-direction: column; align-items: stretch; box-sizing: border-box; min-width: 280px; gap: 16px; padding: 26px; border: 1px solid #eee4da; border-radius: 28px; background: #fff; color: #231f1c; box-shadow: 0 5px 18px rgba(35,31,28,.035); scroll-snap-align: start; scroll-snap-stop: always; }
.final-home-promo-party { --promo-surface: #f7d3d6; --promo-accent: #b8405a; }
.final-home-promo-play { --promo-surface: #fbe3a1; --promo-accent: #836011; }
.final-home-promo-venue { --promo-surface: #d3e8f6; --promo-accent: #42664c; }
.final-home-promo-category { display: flex; align-items: center; gap: 12px; color: var(--promo-accent); font: 600 12px/1.4 var(--font-outfit),sans-serif; letter-spacing: .12em; }
.final-home-promo-icon { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--promo-surface); }
.final-home-promo-icon svg { width: 30px; height: 30px; }
.final-home-promotion-card h3 { margin: 0; color: #231f1c; font: 800 clamp(26px,2.6vw,32px)/1.08 var(--font-bricolage),sans-serif; letter-spacing: -.03em; }
.final-home-promotion-card p { margin: 0; }
.final-home-promo-description { color: #5c534c; font-size: 16px; line-height: 1.5; }
.final-home-promo-offer { display: flex; flex-direction: column; gap: 5px; padding: 16px; border-radius: 18px; background: #fbf6f1; }
.final-home-promo-offer strong { color: var(--promo-accent); font: 800 27px/1.15 var(--font-outfit),sans-serif; }
.final-home-promo-offer span { color: #5c534c; font-size: 15px; line-height: 1.4; }
.final-home-entry-offers { display: grid; gap: 8px; }
.final-home-entry-offers p { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 5px 10px; padding: 12px 14px; border-radius: 14px; background: #fbf6f1; font-size: 15px; }
.final-home-entry-offers strong { color: #b8405a; font-family: var(--font-outfit),sans-serif; font-size: 18px; }
.final-home-promotion-card .final-home-promo-combo { color: #5c534c; font-size: 14px; line-height: 1.5; }
.final-home-promo-cta { display: flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 48px; width: 100%; margin-top: auto; padding: 12px 18px; border-radius: 999px; background: #ffcb66; color: #231f1c; text-decoration: none; font: 700 15px/1.3 var(--font-outfit),sans-serif; }
.final-home-promo-cta:hover { background: #f7bd50; }
.final-home-promo-dots { display: flex; justify-content: center; gap: 3px; margin-top: 5px; }
.final-home-promo-dots[hidden] { display: none; }
.final-home-promotion-track[data-pagination-ready] { scrollbar-width: none; }
.final-home-promotion-track[data-pagination-ready]::-webkit-scrollbar { display: none; }
.final-home-promo-cta:focus-visible,.final-home-promotion-track:focus-visible { outline: 3px solid #b8405a; outline-offset: 3px; }
@media (max-width: 720px) {
  .final-home-promotions { scroll-margin-top: 134px; padding-right: 12px; padding-left: 12px; }
  .final-home-promotion-track { gap: 12px; }
  .final-home-promotion-card { flex-basis: min(350px,90%); min-width: 0; padding: 22px; }
  .list-more-card .list-more-copy { padding-right: 11px; padding-left: 11px; }
}
/* Promotions: a warm backdrop, pastel cards and prominent rewards. */
.final-home-promotions {box-sizing:border-box;max-width:1240px;padding:40px 26px 30px;margin:12px auto 48px;background:#fff0bf;border-radius:36px;}
.final-home-promotions-heading {text-align:center;margin-bottom:30px;}
.final-home-promotions-heading h2 {font-size:clamp(42px,5.8vw,76px);}
.final-home-promotions-heading h2 span {color:#b8405a;}
.final-home-promotion-card {background:var(--promo-surface);border:1px solid rgba(70,60,45,.08);box-shadow:none;gap:18px;}
.final-home-promo-party {--promo-surface:#f9dce1;--promo-accent:#a6314e;}
.final-home-promo-play {--promo-surface:#e1edda;--promo-accent:#346348;}
.final-home-promo-venue {--promo-surface:#d8eaf5;--promo-accent:#315d71;}
.final-home-promo-icon {background:rgba(255,255,255,.65);}
.final-home-promo-description {font-size:15px;}
.final-home-promo-offer {background:rgba(255,255,255,.7);padding:22px 16px;gap:8px;}
.final-home-promo-offer strong {font:800 clamp(28px,3vw,38px)/1.05 var(--font-bricolage),sans-serif;letter-spacing:-.03em;}
.final-home-entry-offers {gap:10px;}
.final-home-entry-offers p {display:flex;flex-direction:column;align-items:flex-start;gap:7px;background:rgba(255,255,255,.7);padding:15px 16px;}
.final-home-entry-offers strong {color:var(--promo-accent);font:800 clamp(25px,2.6vw,32px)/1.05 var(--font-bricolage),sans-serif;letter-spacing:-.025em;}
@media(max-width:720px){
 .final-home-promotions {margin:8px 10px 36px;padding:30px 12px 20px;border-radius:28px;}
 .final-home-promotions-heading h2 {font-size:clamp(36px,9vw,48px);}
 .final-home-promotion-card {padding:22px 18px;}
 .final-home-promo-offer strong {font-size:30px;}
 .final-home-entry-offers strong {font-size:26px;}
}
