/* Approved Post Time Events design, scoped for the WordPress child theme. */
.tbd-grp-page {
  --tbd-grp-color-primary: #006140;
  --tbd-grp-color-action: #e12626;
  --tbd-grp-color-surface: #ffffff;
  --tbd-grp-color-highlight: #c6a445;
  --tbd-grp-color-subtle: #d3d3d3;
  --tbd-grp-color-ink: #333333;
  --tbd-grp-space-1: 0.5rem;
  --tbd-grp-space-2: 1rem;
  --tbd-grp-space-3: 1.5rem;
  --tbd-grp-space-4: 2rem;
  --tbd-grp-space-5: 3rem;
  --tbd-grp-section-space: clamp(3.5rem, 7vw, 7rem);
  --tbd-grp-gutter: clamp(1.25rem, 4vw, 4rem);
  --tbd-grp-site-header-space: 5rem;
  --tbd-grp-anchor-offset: calc(var(--tbd-grp-site-header-space) + 3rem);
  margin: 0;
  padding: var(--tbd-grp-site-header-space) 0 0;
  font-weight: 400;
  font-style: normal;
  text-transform: none;
  text-align: start;
  letter-spacing: normal;
  background: var(--tbd-grp-color-surface);
  color: var(--tbd-grp-color-ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.25rem;
  line-height: 1.65;
  font-synthesis: none;
  overflow-wrap: break-word;
}
/* The installed navigation overlays the body: reserve its space on this page.
   At the menu's 935px desktop breakpoint, its items can wrap onto two rows. */
@media (min-width: 935px) {
  .tbd-grp-page { --tbd-grp-site-header-space: 14rem; }
}
@media (min-width: 1024px) {
  .tbd-grp-page { --tbd-grp-site-header-space: 7.5rem; }
}
.tbd-grp-page,
.tbd-grp-page *,
.tbd-grp-page *::before,
.tbd-grp-page *::after { box-sizing: border-box; }
.tbd-grp-page :where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
  padding: 0;
  font-style: normal;
  color: var(--tbd-grp-color-primary);
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 600;
  line-height: 1.15;
  text-wrap: balance;
  text-transform: uppercase;
}
.tbd-grp-page :where(h2) { font-size: clamp(1.8rem, 3.6vw, 3rem); letter-spacing: -0.015em; }
.tbd-grp-page :where(h4) { font-size: 1.25rem; line-height: 1.35; }
.tbd-grp-page :where(p, figure) { margin: 0; padding: 0; }
.tbd-grp-page :where(p + p) { margin-block-start: var(--tbd-grp-space-2); }
.tbd-grp-page :where(a) { text-decoration-line: underline; color: var(--tbd-grp-color-primary); text-underline-offset: 0.22em; text-decoration-thickness: 1px; }
.tbd-grp-page a:hover { color: var(--tbd-grp-color-primary); font-family: inherit; text-decoration-thickness: 2px; }
.tbd-grp-page :where(button, input, select, textarea) { font: inherit; }
.tbd-grp-page :where(button) { cursor: pointer; }
.tbd-grp-page :where(img) { display: block; max-inline-size: 100%; block-size: auto; }
.tbd-grp-page :where(svg) { flex-shrink: 0; }
.tbd-grp-page :where([id]) { scroll-margin-block-start: var(--tbd-grp-anchor-offset); }
.tbd-grp-page :where(a, button, summary, [tabindex]):focus-visible { outline: 3px solid var(--tbd-grp-color-primary); outline-offset: 5px; }
.tbd-grp-page .tbd-grp-wrap { inline-size: min(100% - var(--tbd-grp-gutter) * 2, 1280px); margin-inline: auto; }
.tbd-grp-page .tbd-grp-eyebrow { font-size: 1.0625rem; font-weight: 700; line-height: 1.5; letter-spacing: 0.08em; text-transform: uppercase; }
.tbd-grp-page .tbd-grp-skip { position: fixed; inset-block-start: 0.75rem; inset-inline-start: 0.75rem; z-index: 10000000; padding: 0.75rem 1rem; max-inline-size: calc(100% - 1.5rem); background: var(--tbd-grp-color-surface); transform: translateY(calc(-100% - 2rem)); }
.tbd-grp-page .tbd-grp-skip:focus { transform: translateY(0); }

/* Page-level identity, to sit beneath the WordPress header in the template. */
.tbd-grp-page .tbd-grp-masthead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.5rem; border-block-end: 1px solid var(--tbd-grp-color-subtle); }
.tbd-grp-page .tbd-grp-wordmark { text-transform: uppercase; display: block; font-family: "Playfair Display", Georgia, serif; font-size: 1.3rem; font-weight: 700; line-height: 1.3; text-decoration: none; }
.tbd-grp-page .tbd-grp-wordmark:hover { font-family: "Playfair Display", Georgia, serif; }
.tbd-grp-page .tbd-grp-wordmark span { text-transform: none; display: block; margin-block-start: 0.25rem; font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400; font-size: 1.0625rem; color: var(--tbd-grp-color-ink); }
.tbd-grp-page .tbd-grp-header-links { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; margin: 0; padding: 0; list-style: none; }
.tbd-grp-page .tbd-grp-header-links a { display: inline-flex; align-items: center; gap: 0.6rem; min-block-size: 44px; font-size: 1.125rem; font-weight: 700; }

/* The opening composition lets the venue photography lead without text overlays. */
.tbd-grp-page .tbd-grp-hero { display: grid; gap: 2.5rem; padding-block: 2.75rem 3rem; }
.tbd-grp-page .tbd-grp-hero__copy { align-self: center; min-inline-size: 0; }
.tbd-grp-page .tbd-grp-hero .tbd-grp-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; color: var(--tbd-grp-color-primary); }
.tbd-grp-page .tbd-grp-season { padding: 0.25rem 0.5rem; background: var(--tbd-grp-color-highlight); color: var(--tbd-grp-color-ink); }
.tbd-grp-page .tbd-grp-hero h1 { margin-block: 1.4rem 1.75rem; font-size: clamp(2.15rem, 4.4vw, 4rem); font-weight: 500; font-style: italic; text-transform: none; letter-spacing: -0.015em; line-height: 1.12; }
.tbd-grp-page .tbd-grp-hero h1 > span { display: block; font-weight: 700; }
/* The green glyph outline provides contrast for the exact gold on white. */
.tbd-grp-page .tbd-grp-hero__accent { color: var(--tbd-grp-color-highlight); -webkit-text-stroke: 2px var(--tbd-grp-color-primary); paint-order: stroke fill; }
.tbd-grp-page .tbd-grp-hero__intro { font-weight: 700; }
.tbd-grp-page .tbd-grp-hero__copy > p { max-inline-size: 42ch; }
.tbd-grp-page .tbd-grp-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-block-size: 56px; margin-block-start: 1.75rem; padding: 0.875rem 1.4rem; border: 2px solid var(--tbd-grp-color-action); background: var(--tbd-grp-color-action); color: var(--tbd-grp-color-surface); font-size: 1.25rem; line-height: 1.5; font-weight: 700; text-decoration: none; }
.tbd-grp-page .tbd-grp-button:hover { border-color: var(--tbd-grp-color-primary); background: var(--tbd-grp-color-primary); text-decoration: underline; }
.tbd-grp-page .tbd-grp-button > span { font-size: 1.4rem; }
.tbd-grp-page .tbd-grp-hero__phone { margin-block-start: 1.25rem; font-size: 1.125rem; }
.tbd-grp-page .tbd-grp-hero__phone a { display: inline-block; min-block-size: 24px; font-weight: 700; }
.tbd-grp-page .tbd-grp-hero__phone span { font-size: 1.0625rem; }
.tbd-grp-page .tbd-grp-hero__figure { display: flex; flex-direction: column; min-inline-size: 0; border-block-end: 4px solid var(--tbd-grp-color-primary); }
.tbd-grp-page .tbd-grp-hero__figure img { inline-size: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.tbd-grp-page .tbd-grp-hero__figure figcaption { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; justify-content: space-between; padding-block: 1rem; font-size: 1.0625rem; }
.tbd-grp-page .tbd-grp-hero__figure figcaption > :first-child { color: var(--tbd-grp-color-primary); font-weight: 700; }
@media (min-width: 900px) {
  .tbd-grp-page .tbd-grp-hero { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(2rem, 4vw, 4rem); padding-block: 3.5rem 4rem; }
  .tbd-grp-page .tbd-grp-hero__figure img { flex: 1; min-block-size: 570px; object-position: 58% center; }
}
.tbd-grp-page .tbd-grp-overview { display: grid; gap: 1.5rem; padding-block: 1.75rem; border-block: 1px solid var(--tbd-grp-color-subtle); }
.tbd-grp-page .tbd-grp-overview > p { text-transform: uppercase; color: var(--tbd-grp-color-primary); font-family: "Playfair Display", Georgia, serif; font-size: 1.375rem; font-weight: 500; line-height: 1.4; }
.tbd-grp-page .tbd-grp-overview ul { display: flex; flex-wrap: wrap; gap: 1.5rem 3rem; margin: 0; padding: 0; list-style: none; }
.tbd-grp-page .tbd-grp-overview li { display: grid; font-size: 1.125rem; }
.tbd-grp-page .tbd-grp-overview strong { font-weight: 700; }
@media (min-width: 900px) { .tbd-grp-page .tbd-grp-overview { grid-template-columns: 0.9fr 1.1fr; gap: clamp(2rem, 4vw, 4rem); align-items: center; } }

/* A venue directory, with native disclosures and a compact navigation rail. */
.tbd-grp-page .tbd-grp-spaces { padding-block: var(--tbd-grp-section-space); }
.tbd-grp-page .tbd-grp-section-heading { display: grid; gap: 1.5rem; margin-block-end: 3rem; }
.tbd-grp-page .tbd-grp-section-heading .tbd-grp-eyebrow { margin-block-end: 1rem; }
.tbd-grp-page .tbd-grp-section-heading > p { max-inline-size: 44ch; align-self: end; }
.tbd-grp-page .tbd-grp-directory { display: grid; gap: 2rem; align-items: start; }
.tbd-grp-page .tbd-grp-guide__label { text-transform: uppercase; margin-block-end: 0.75rem; font-family: "Playfair Display", Georgia, serif; color: var(--tbd-grp-color-primary); font-size: 1.25rem; font-weight: 700; }
.tbd-grp-page .tbd-grp-guide ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; margin: 0; padding: 0; list-style: none; }
.tbd-grp-page .tbd-grp-guide li a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-block-size: 48px; padding-block: 0.6rem; border-block-end: 1px solid var(--tbd-grp-color-subtle); font-size: 1.125rem; }
.tbd-grp-page .tbd-grp-guide__planning { margin-block-start: 2rem; padding-inline-start: 1.25rem; border-inline-start: 3px solid var(--tbd-grp-color-highlight); }
.tbd-grp-page .tbd-grp-guide__planning p { font-weight: 700; font-size: 1.125rem; }
.tbd-grp-page .tbd-grp-guide__planning a { display: block; padding-block: 0.5rem; font-size: 1.125rem; }
.tbd-grp-page .tbd-grp-venues { min-inline-size: 0; }
.tbd-grp-page .tbd-grp-venues__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; min-block-size: 48px; margin-block-end: 0.5rem; font-size: 1.0625rem; }
.tbd-grp-page .tbd-grp-text-button { padding: 0.5rem 0; min-block-size: 44px; border: 0; background: var(--tbd-grp-color-surface); color: var(--tbd-grp-color-primary); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.0625rem; font-weight: 700; text-align: start; text-decoration: underline; text-underline-offset: 0.25em; }
.tbd-grp-page .tbd-grp-text-button span { margin-inline-start: 0.4rem; }
.tbd-grp-page .tbd-grp-venue { border-block-start: 1px solid var(--tbd-grp-color-subtle); }
.tbd-grp-page .tbd-grp-venue:last-child { border-block-end: 1px solid var(--tbd-grp-color-subtle); }
.tbd-grp-page .tbd-grp-venue summary { padding-block: 1.6rem; list-style: none; cursor: pointer; }
.tbd-grp-page .tbd-grp-venue summary::-webkit-details-marker { display: none; }
.tbd-grp-page .tbd-grp-venue summary::marker { content: ""; }
.tbd-grp-page .tbd-grp-venue summary:hover .tbd-grp-venue__heading > :first-child { text-decoration: underline; text-underline-offset: 0.15em; }
.tbd-grp-page .tbd-grp-venue summary h3 { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) 24px; align-items: start; gap: 1rem; font-size: clamp(1.25rem, 2.1vw, 1.7rem); line-height: 1.3; }
.tbd-grp-page .tbd-grp-venue__number { padding-block-start: 0.4rem; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.0625rem; font-weight: 400; }
.tbd-grp-page .tbd-grp-venue__meta { text-transform: none; display: block; margin-block-start: 0.45rem; color: var(--tbd-grp-color-ink); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.125rem; font-weight: 400; line-height: 1.5; }
.tbd-grp-page .tbd-grp-venue__toggle { align-self: center; stroke: currentColor; stroke-width: 1.5; fill: none; }
.tbd-grp-page .tbd-grp-venue[open] .tbd-grp-venue__plus { display: none; }
.tbd-grp-page .tbd-grp-venue__content { padding-block-end: 2.5rem; }
.tbd-grp-page .tbd-grp-venue__content figure { margin-block-end: 1.75rem; }
.tbd-grp-page .tbd-grp-venue__content img { inline-size: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.tbd-grp-page .tbd-grp-venue__lead { text-transform: uppercase; color: var(--tbd-grp-color-primary); font-family: "Playfair Display", Georgia, serif; font-size: 1.25rem; font-weight: 700; }
.tbd-grp-page .tbd-grp-venue__information { display: grid; gap: 1.5rem; margin-block: 1.75rem; }
.tbd-grp-page .tbd-grp-venue__information h4 { margin-block-end: 0.65rem; }
.tbd-grp-page .tbd-grp-inclusions { list-style: disc outside; margin-block: 0.5rem 1rem; padding-inline-start: 1.25rem; }
.tbd-grp-page .tbd-grp-inclusions li { padding-inline-start: 0.25rem; margin-block: 0.5rem; }
.tbd-grp-page .tbd-grp-inclusions li::marker { color: var(--tbd-grp-color-primary); }
.tbd-grp-page .tbd-grp-pricing { border-inline-start: 3px solid var(--tbd-grp-color-primary); padding-inline-start: 1.25rem; }
.tbd-grp-page .tbd-grp-pricing p + h4 { margin-block-start: 1.75rem; }
.tbd-grp-page .tbd-grp-pricing__amount { margin-block-start: 0.5rem; font-family: "Cormorant Garamond", Georgia, serif; color: var(--tbd-grp-color-primary); font-size: 2rem; font-weight: 700; line-height: 1.25; }
.tbd-grp-page .tbd-grp-pricing__amount span { font-size: 1.125rem; font-weight: 400; color: var(--tbd-grp-color-ink); }
.tbd-grp-page .tbd-grp-pricing__amount + p { margin-block-start: 0.5rem; }
.tbd-grp-page .tbd-grp-note { border-inline-start: 4px solid var(--tbd-grp-color-highlight); padding: 1rem 1.25rem; background: var(--tbd-grp-color-subtle); }
.tbd-grp-page .tbd-grp-venue__inquire { display: inline-flex; align-items: center; gap: 1rem; min-block-size: 44px; margin-block-start: 1.5rem; font-weight: 700; }
@media (min-width: 600px) {
  .tbd-grp-page .tbd-grp-venue__information { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 2rem; }
}
@media (min-width: 900px) {
  .tbd-grp-page .tbd-grp-section-heading { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 4rem; }
  .tbd-grp-page .tbd-grp-directory { grid-template-columns: minmax(0, 0.75fr) minmax(0, 2.25fr); gap: clamp(2rem, 5vw, 5rem); }
  .tbd-grp-page .tbd-grp-guide ol { grid-template-columns: minmax(0, 1fr); }
}
@media (min-width: 1100px) and (min-height: 850px) {
  .tbd-grp-page .tbd-grp-guide { position: sticky; inset-block-start: var(--tbd-grp-anchor-offset); }
}

/* Race presentation: one photograph, one enhancement, one clear price. */
.tbd-grp-page .tbd-grp-enhancement { display: grid; gap: 2rem; padding-block-end: var(--tbd-grp-section-space); }
.tbd-grp-page .tbd-grp-enhancement figure { align-self: start; }
.tbd-grp-page .tbd-grp-enhancement img { inline-size: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 52% center; }
.tbd-grp-page .tbd-grp-enhancement .tbd-grp-eyebrow { margin-block-end: 1rem; }
.tbd-grp-page .tbd-grp-enhancement__name { text-transform: uppercase; margin-block: 1.5rem 0.75rem; font-family: "Playfair Display", Georgia, serif; font-size: 1.25rem; font-weight: 700; line-height: 1.4; }
.tbd-grp-page .tbd-grp-enhancement__action { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 2rem; margin-block-start: 1.5rem; padding-block-start: 1.25rem; border-block-start: 1px solid var(--tbd-grp-color-subtle); }
.tbd-grp-page .tbd-grp-enhancement__price { color: var(--tbd-grp-color-primary); font-size: 2.5rem; line-height: 1.3; font-weight: 700; }
.tbd-grp-page .tbd-grp-enhancement__action a { display: inline-flex; align-items: center; gap: 0.75rem; min-block-size: 44px; }
@media (min-width: 768px) {
  .tbd-grp-page .tbd-grp-enhancement { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
  .tbd-grp-page .tbd-grp-enhancement figure { align-self: center; }
}

/* Inquiry and the supplied disclosure remain visible without JavaScript. */
.tbd-grp-page .tbd-grp-plan { padding-block: var(--tbd-grp-section-space); background: var(--tbd-grp-color-primary); color: var(--tbd-grp-color-surface); }
.tbd-grp-page .tbd-grp-plan__layout { display: grid; gap: 3rem; }
.tbd-grp-page .tbd-grp-plan h2 { margin-block: 1rem 1.5rem; color: var(--tbd-grp-color-surface); }
.tbd-grp-page .tbd-grp-plan .tbd-grp-eyebrow { color: var(--tbd-grp-color-surface); }
.tbd-grp-page .tbd-grp-plan a { color: var(--tbd-grp-color-surface); }
.tbd-grp-page .tbd-grp-plan a:focus-visible { outline-color: var(--tbd-grp-color-highlight); }
.tbd-grp-page .tbd-grp-plan .tbd-grp-button { border-color: var(--tbd-grp-color-surface); }
.tbd-grp-page .tbd-grp-plan .tbd-grp-button:hover { background: var(--tbd-grp-color-surface); color: var(--tbd-grp-color-primary); }
.tbd-grp-page .tbd-grp-plan__details { padding-inline-start: 1.5rem; border-inline-start: 1px solid var(--tbd-grp-color-surface); }
.tbd-grp-page .tbd-grp-plan__details > p { margin: 0; }
.tbd-grp-page .tbd-grp-plan__details > a { display: block; padding-block: 0.5rem; }
.tbd-grp-page .tbd-grp-plan__phone { font-size: clamp(1.65rem, 3vw, 2.25rem); line-height: 1.4; font-weight: 700; }
.tbd-grp-page .tbd-grp-plan address { margin-block: 1.75rem; font-style: normal; }
@media (min-width: 768px) { .tbd-grp-page .tbd-grp-plan__layout { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: 4rem; align-items: center; } }
.tbd-grp-page .tbd-grp-disclosure { padding-block: 3rem; }
.tbd-grp-page .tbd-grp-disclosure h2 { margin-block-end: 1.25rem; font-size: 1.5rem; line-height: 1.3; letter-spacing: normal; }
.tbd-grp-page .tbd-grp-disclosure p { max-inline-size: 90ch; font-size: 1.25rem; line-height: 1.65; }

@media (prefers-reduced-motion: reduce) {
  .tbd-grp-page { scroll-behavior: auto; }
}
@media print {
  .tbd-grp-page .tbd-grp-guide,
  .tbd-grp-page .tbd-grp-venues__toolbar,
  .tbd-grp-page .tbd-grp-header-links { display: none; }
  .tbd-grp-page .tbd-grp-wrap { inline-size: 100%; }
  .tbd-grp-page .tbd-grp-hero,
  .tbd-grp-page .tbd-grp-directory,
  .tbd-grp-page .tbd-grp-enhancement,
  .tbd-grp-page .tbd-grp-plan__layout { display: block; }
  .tbd-grp-page .tbd-grp-venue { break-inside: avoid; }
  .tbd-grp-page .tbd-grp-hero__figure img { min-block-size: 0; max-block-size: 20rem; }
}

/* Keep the template independent of theme content-container defaults. */
.tbd-grp-page .tbd-grp-main { inline-size: 100%; max-inline-size: none; margin: 0; padding: 0; }
