/**
 * layout.css — every selector here existed in a template with zero styling
 * before this file (see the class-usage audit that produced this list).
 * Organised by page/section to match template-parts/ and page-templates/
 * 1:1, so a missing style for a given section is easy to locate again.
 */

/* ---------- Generic page wrappers ---------- */
.pnc-generic { padding: 56px 0 80px; }
.pnc-generic .pnc-prose { margin-top: 18px; }
.pnc-404 { text-align: center; padding: 120px 0; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.pnc-404 h1 { font-size: 34px; }
.pnc-404 p { max-width: 48ch; color: var(--pnc-muted); }

.pnc-home > section,
.pnc-flexible-page > section,
.pnc-about > section,
.pnc-contact > section,
.pnc-events > section,
.pnc-experiences > section,
.pnc-gallery > section,
.pnc-accommodations > section,
.pnc-activities-index > section {
	padding-block: 56px;
}
.pnc-home > section:first-child,
.pnc-flexible-page > section:first-child { padding-top: 0; }

/* ---------- Hero sub-elements (explicit classes used in template-parts/sections/hero.php) ---------- */
.pnc-hero__heading { color: var(--pnc-on-dark); font-size: clamp(36px, 5.5vw, 68px); font-weight: 800; margin-top: 12px; }
.pnc-hero__subtext { color: var(--pnc-on-dark-muted); font-size: 17px; margin-top: 14px; max-width: 56ch; }
.pnc-pill--accent { background: var(--pnc-accent); color: var(--pnc-green-900); border-color: transparent; font-weight: 700; }

/* ---------- Generic "see all →" link used across many sections ---------- */
.pnc-link { font-weight: 700; font-size: 14.5px; color: var(--pnc-green-700); white-space: nowrap; }
.pnc-link:hover { color: var(--pnc-accent); }
.pnc-section--dark .pnc-link { color: var(--pnc-on-dark); }
.pnc-section--dark .pnc-link:hover { color: var(--pnc-accent); }
.pnc-section--dark .pnc-section-head p { color: var(--pnc-on-dark-muted); }

/* ---------- Booking flow shell ---------- */
.pnc-booking-flow { padding-bottom: 80px; }
.pnc-booking-flow__main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pnc-wizard__hint { font-size: 13.5px; color: var(--pnc-muted); }
.pnc-booking-summary__browse { display: inline-block; margin-top: 18px; color: var(--pnc-on-dark); text-decoration: underline; font-size: 14px; }
.pnc-booking-summary__browse:hover { color: var(--pnc-accent); }
.pnc-booking-summary h3 { color: var(--pnc-on-dark); margin-bottom: 4px; }

/* ---------- Homepage booking teaser widget ---------- */
.pnc-booking-teaser__card { background: var(--pnc-green-800); border-radius: var(--pnc-radius-lg); padding: 32px; color: var(--pnc-on-dark); }
.pnc-booking-teaser__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.pnc-booking-teaser__head h2 { color: var(--pnc-on-dark); font-size: 26px; }
.pnc-booking-teaser__head p { color: var(--pnc-on-dark-muted); margin-top: 8px; max-width: 48ch; }
.pnc-booking-teaser__tabs { display: inline-flex; background: rgba(251,248,241,0.1); border-radius: var(--pnc-radius-pill); padding: 4px; gap: 4px; }
.pnc-booking-teaser__tabs button { padding: 10px 18px; border-radius: var(--pnc-radius-pill); font-size: 13.5px; font-weight: 700; color: var(--pnc-on-dark-muted); }
.pnc-booking-teaser__tabs button[aria-selected="true"] { background: var(--pnc-accent); color: var(--pnc-green-900); }
#pnc-booking-teaser-root { min-height: 90px; background: rgba(251,248,241,0.06); border-radius: var(--pnc-radius-md); }

/* ---------- Camping options section (page-camping.php) ---------- */
.pnc-camping-options h2 { font-size: 30px; margin-bottom: 8px; }
.pnc-camping-options > p { color: var(--pnc-muted); max-width: 62ch; margin-bottom: 26px; }
.pnc-option-card__desc { font-size: 14.5px; color: var(--pnc-muted); margin: 10px 0; }
.pnc-option-card__price-unit { font-size: 13px; color: var(--pnc-muted); }
.pnc-option-card__min { font-size: 12.5px; color: var(--pnc-accent-ink); font-weight: 700; margin-top: 10px; }
.pnc-what-to-bring { background: #fff; border: 1px solid var(--pnc-border); border-radius: var(--pnc-radius-lg); padding: 28px; margin-block: 56px; }
.pnc-what-to-bring strong { display: block; font-size: 18px; margin-bottom: 10px; }

/* ---------- Card sub-elements shared by activity/package/mini cards ---------- */
.pnc-card__price-unit { font-size: 13px; color: var(--pnc-muted); }
.pnc-package-card__price-unit { font-size: 13px; color: var(--pnc-muted); }
.pnc-package-card__saving { display: inline-block; font-size: 12.5px; font-weight: 700; color: var(--pnc-success); margin-top: 6px; }
.pnc-package-card { padding: 24px; gap: 12px; }
.pnc-package-card--featured { background: var(--pnc-green-800); color: var(--pnc-on-dark); border-color: var(--pnc-green-800); }
.pnc-package-card--featured p, .pnc-package-card--featured .pnc-inclusions li { color: var(--pnc-on-dark-muted); }
.pnc-package-card__media { height: 160px; border-radius: var(--pnc-radius-sm); }
.pnc-mini-card { display: flex; flex-direction: column; border: 1px solid var(--pnc-border); border-radius: var(--pnc-radius-md); overflow: hidden; background: #fff; }
.pnc-mini-card__media { height: 140px; background-size: cover; background-position: center; }
.pnc-mini-card__body { padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.pnc-mini-card__body span { font-size: 13.5px; color: var(--pnc-muted); }

/* ---------- Experiences / Experience cards / Experiences grid section spacing ---------- */
.pnc-experience-cards, .pnc-experiences-grid { margin-block: 8px; }

/* ---------- Events page ---------- */
.pnc-event-card { flex-direction: row; align-items: stretch; flex-wrap: wrap; }
.pnc-event-card__media { flex: 1 1 260px; min-height: 220px; }
.pnc-event-card__body { flex: 1 1 320px; padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.pnc-event-card__price-note { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pnc-accent-ink); margin-top: auto; }
.pnc-event-card__price { font-family: var(--pnc-font-display); font-size: 26px; font-weight: 700; }
.pnc-event-card__price small { font-family: var(--pnc-font-body); font-size: 13px; font-weight: 400; color: var(--pnc-muted); margin-left: 6px; }
.pnc-facility-card__num { display: block; font-family: var(--pnc-font-display); font-size: 30px; font-weight: 800; color: var(--pnc-accent); margin-bottom: 10px; }
.pnc-pillar-card__num { display: block; font-family: var(--pnc-font-display); font-size: 30px; font-weight: 800; color: var(--pnc-accent); margin-bottom: 10px; padding: 24px 24px 0; }
.pnc-pillar-card { padding-bottom: 24px; }
.pnc-pillar-card h3, .pnc-pillar-card p { padding-inline: 24px; }
.pnc-facility-card { padding: 8px 0; }

/* ---------- Group CTA banner ---------- */
.pnc-group-cta { margin-block: 8px; }
.pnc-group-cta__panel { display: flex; flex-wrap: wrap; align-items: center; gap: 32px; background: var(--pnc-green-800); border-radius: var(--pnc-radius-lg); padding: 40px; }
.pnc-group-cta__copy { flex: 1 1 320px; color: var(--pnc-on-dark); display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.pnc-group-cta__copy p { color: var(--pnc-on-dark-muted); max-width: 52ch; }
.pnc-group-cta__copy h2 { color: var(--pnc-on-dark); font-size: 30px; }
.pnc-group-cta__media { flex: 1 1 300px; min-height: 220px; border-radius: var(--pnc-radius-md); background-size: cover; background-position: center; }

/* ---------- Final CTA banner ---------- */
.pnc-final-cta { margin-block: 8px; }
.pnc-final-cta__panel { position: relative; border-radius: var(--pnc-radius-lg); overflow: hidden; background-color: var(--pnc-green-900); background-size: cover; background-position: center; padding: 64px 40px; text-align: center; }
.pnc-final-cta__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,33,22,0.55), rgba(12,33,22,0.88)); }
.pnc-final-cta__content { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; color: var(--pnc-on-dark); }
.pnc-final-cta__content h2 { color: var(--pnc-on-dark); font-size: 34px; }
.pnc-final-cta__content p { color: var(--pnc-on-dark-muted); max-width: 52ch; }

/* ---------- Testimonials ---------- */
.pnc-testimonials h2 { font-size: 28px; margin-bottom: 22px; }
.pnc-testimonial-card { padding: 24px; gap: 12px; }
.pnc-testimonial-card__stars { color: var(--pnc-accent); font-size: 15px; letter-spacing: 2px; }
.pnc-testimonial-card__name { font-size: 13.5px; font-weight: 700; color: var(--pnc-muted); margin-top: auto; padding-top: 8px; }

/* ---------- FAQ teaser (homepage) ---------- */
.pnc-faq-teaser h2 { font-size: 28px; margin-bottom: 22px; text-align: center; }
.pnc-faq-teaser__more { text-align: center; margin-top: 20px; }
.pnc-faq-teaser__more a { font-weight: 700; }

/* ---------- Why Us ---------- */
.pnc-why-us { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr); gap: 40px; align-items: center; }
.pnc-why-us__copy { display: flex; flex-direction: column; gap: 14px; }
.pnc-why-us__copy h2 { font-size: 32px; }
.pnc-why-us__copy > p { color: var(--pnc-muted); max-width: 54ch; }
.pnc-why-us__points { display: flex; flex-direction: column; gap: 18px; margin-top: 10px; }
.pnc-why-us__point { display: flex; gap: 16px; align-items: flex-start; }
.pnc-why-us__point strong { display: block; font-size: 16px; margin-bottom: 4px; }
.pnc-why-us__point span span { color: var(--pnc-muted); font-size: 14.5px; }
.pnc-why-us__num { font-family: var(--pnc-font-display); font-size: 20px; font-weight: 800; color: var(--pnc-accent); flex-shrink: 0; }
.pnc-why-us__gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pnc-why-us__gallery span { display: block; min-height: 140px; border-radius: var(--pnc-radius-md); background-size: cover; background-position: center; }
.pnc-why-us__gallery span:first-child { grid-column: 1 / -1; min-height: 200px; }

@media (max-width: 900px) { .pnc-why-us { grid-template-columns: 1fr; } }

/* ---------- Photo grid (homepage section) ---------- */
.pnc-photo-grid__layout { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pnc-photo-grid__layout span { display: block; min-height: 220px; border-radius: var(--pnc-radius-md); background-size: cover; background-position: center; }
@media (max-width: 700px) { .pnc-photo-grid__layout { grid-template-columns: 1fr 1fr; } }

/* ---------- Location block ---------- */
.pnc-location__panel { display: flex; flex-direction: column; gap: 16px; }
.pnc-location { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,0.9fr); gap: 32px; align-items: stretch; }
.pnc-location__details { display: flex; flex-wrap: wrap; gap: 32px; margin: 6px 0; }
.pnc-location__details dt { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pnc-muted); margin-bottom: 6px; }
.pnc-location__details dd { margin: 0; font-size: 15px; }
.pnc-location__map, .pnc-contact__map { min-height: 280px; border-radius: var(--pnc-radius-lg); overflow: hidden; background: rgba(18,48,32,0.06); }
.pnc-location__map iframe, .pnc-contact__map iframe { width: 100%; height: 100%; min-height: 280px; border: 0; display: block; }
@media (max-width: 900px) { .pnc-location { grid-template-columns: 1fr; } }

/* ---------- Contact page ---------- */
.pnc-contact__find-us { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,0.9fr); gap: 32px; align-items: stretch; margin-top: 12px; }
.pnc-contact__panel { background: #fff; border: 1px solid var(--pnc-border); border-radius: var(--pnc-radius-lg); padding: 30px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.pnc-contact__panel h2 { font-size: 24px; }
.pnc-contact__panel > p { color: var(--pnc-muted); }
.pnc-contact__details { display: flex; flex-wrap: wrap; gap: 28px; }
.pnc-contact__details dt { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pnc-muted); margin-bottom: 6px; }
.pnc-contact__details dd { margin: 0 0 2px; font-size: 14.5px; }
.pnc-contact__details dd a { color: var(--pnc-ink); }
.pnc-contact__details dd a:hover { color: var(--pnc-accent); }
.pnc-contact__group-visit { display: grid; grid-template-columns: minmax(0,0.9fr) minmax(320px,1.1fr); gap: 32px; align-items: start; }
.pnc-contact__group-visit h2 { font-size: 28px; margin: 8px 0 12px; }
.pnc-contact__group-visit > div > p { color: var(--pnc-muted); }
.pnc-contact__group-media { min-height: 200px; border-radius: var(--pnc-radius-md); background-size: cover; background-position: center; margin-top: 18px; }
.pnc-tag-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
@media (max-width: 900px) { .pnc-contact__find-us, .pnc-contact__group-visit { grid-template-columns: 1fr; } }

/* ---------- About page ---------- */
.pnc-about__story { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(260px,0.85fr); gap: 36px; align-items: start; }
.pnc-about__story-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pnc-about__story-gallery span { display: block; min-height: 150px; border-radius: var(--pnc-radius-md); background-size: cover; background-position: center; }
.pnc-about__story-gallery span:first-child { grid-column: 1 / -1; min-height: 200px; }
.pnc-about__nature { display: grid; grid-template-columns: minmax(0,0.9fr) minmax(280px,1.1fr); gap: 36px; align-items: center; }
.pnc-about__nature-media { min-height: 260px; border-radius: var(--pnc-radius-lg); background-size: cover; background-position: center; }
.pnc-about__nature h2 { font-size: 30px; margin-top: 8px; }
.pnc-about__nature p { color: var(--pnc-muted); margin-top: 12px; }
.pnc-cta-banner__panel { background: var(--pnc-green-800); border-radius: var(--pnc-radius-lg); padding: 48px; text-align: center; color: var(--pnc-on-dark); }
.pnc-cta-banner__panel h2 { color: var(--pnc-on-dark); font-size: 30px; }
.pnc-cta-banner__panel p { color: var(--pnc-on-dark-muted); margin-top: 10px; }
.pnc-cta-banner__actions { display: flex; justify-content: center; gap: 14px; margin-top: 22px; flex-wrap: wrap; }
@media (max-width: 900px) { .pnc-about__story, .pnc-about__nature { grid-template-columns: 1fr; } }

/* ---------- Single Activity ---------- */
.pnc-single-activity__hero, .pnc-single__hero { height: 340px; background-size: cover; background-position: center; background-color: var(--pnc-green-800); }
.pnc-single-activity__hero .pnc-container h1 { padding-top: 250px; color: var(--pnc-on-dark); font-size: 42px; }
.pnc-single-activity__layout { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(240px,0.8fr); gap: 36px; padding-block: 48px; align-items: start; }
.pnc-single-activity__body h3 { margin-top: 28px; font-size: 20px; }
.pnc-single-activity__body p { color: var(--pnc-muted); margin-top: 10px; }
.pnc-spec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px,1fr)); gap: 14px; margin-top: 24px; }
.pnc-spec { background: #fff; border: 1px solid var(--pnc-border); border-radius: var(--pnc-radius-sm); padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.pnc-spec span { font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pnc-muted); }
.pnc-gallery-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px,1fr)); gap: 12px; margin-top: 20px; }
.pnc-gallery-strip img { border-radius: var(--pnc-radius-sm); height: 140px; width: 100%; object-fit: cover; }
.pnc-single-activity__buy { position: sticky; top: 92px; background: var(--pnc-green-800); border-radius: var(--pnc-radius-lg); padding: 26px; color: var(--pnc-on-dark); display: flex; flex-direction: column; gap: 12px; }
.pnc-single-activity__price { font-family: var(--pnc-font-display); font-size: 32px; font-weight: 800; }
.pnc-single-activity__unit { color: var(--pnc-on-dark-muted); font-size: 13.5px; margin-top: -8px; }
.pnc-single-activity__note { font-size: 12.5px; color: var(--pnc-on-dark-muted); text-align: center; }
@media (max-width: 900px) { .pnc-single-activity__layout { grid-template-columns: 1fr; } .pnc-single-activity__buy { position: static; } }

/* ---------- Footer sub-elements not yet covered ---------- */
.pnc-footer__brand { display: flex; flex-direction: column; gap: 8px; }
.pnc-footer__tagline { font-family: var(--pnc-font-display); font-weight: 700; font-size: 18px; color: var(--pnc-on-dark); margin-top: 6px; }
.pnc-footer__blurb { color: rgba(251,248,241,0.6); font-size: 14px; }
.pnc-footer__col h4 { color: var(--pnc-on-dark); font-size: 14px; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 4px; }
.pnc-footer__newsletter p { color: rgba(251,248,241,0.65); font-size: 14px; margin-top: 10px; }
.pnc-footer__staff-link { display: inline-block; margin-top: 14px; font-size: 13px; color: rgba(251,248,241,0.45); text-decoration: underline; }

/* ---------- Enquiry form status line ---------- */
.pnc-form-status { min-height: 20px; margin-top: 14px; font-size: 14px; color: var(--pnc-green-700); }
.pnc-accommodations__waitlist { max-width: 640px; margin-inline: auto; }

/* ---------- Homepage booking teaser widget form (booking-teaser-widget.js) ---------- */
.pnc-teaser-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 18px; }
.pnc-teaser-form__field { display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--pnc-on-dark-muted); }
.pnc-teaser-form__field input[type="date"] {
	background: rgba(251,248,241,0.08); border: 1px solid rgba(251,248,241,0.22); border-radius: var(--pnc-radius-sm);
	padding: 12px 14px; color: var(--pnc-on-dark); font-family: var(--pnc-font-body); font-size: 15px; font-weight: 400; text-transform: none; letter-spacing: normal; min-width: 170px;
}
.pnc-teaser-form__field input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); opacity: 0.8; }
.pnc-stepper--compact { background: rgba(251,248,241,0.08); border: 1px solid rgba(251,248,241,0.22); border-radius: var(--pnc-radius-sm); padding: 6px 10px; gap: 12px; }
.pnc-stepper--compact button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid rgba(251,248,241,0.25); background: transparent; color: var(--pnc-on-dark); font-size: 16px; }
.pnc-stepper--compact span { color: var(--pnc-on-dark); font-size: 16px; min-width: 18px; }
.pnc-teaser-form__cta { margin-left: auto; align-self: center; }

@media (max-width: 700px) {
	.pnc-teaser-form { flex-direction: column; align-items: stretch; }
	.pnc-teaser-form__cta { margin-left: 0; width: 100%; }
}
