/* Shared text + bottom-CTA styling for every page (Sander 2026-10-07).
   Loaded last on each page so it wins over older per-page rules.
   Not loaded on the dark Halloween pages (they keep their own light-on-dark colours). */

/* Body text: near-black, same size everywhere */
:root { --text-secondary: #111111 !important; }
body section.hero .hero-content p { color: #111 !important; opacity: 1 !important; font-size: 1.15rem !important; line-height: 1.7 !important; }
.content-block p, .section-header p { font-size: 1.1rem !important; opacity: 1 !important; }
.content-block ul li { font-size: 1.03rem !important; }
.amenity-item p, .card p, .pricing-features li { font-size: 1rem !important; }
.faq-answer p { font-size: 1.03rem !important; }
.rs-card p { font-size: 0.95rem !important; }
@media (max-width: 768px) {
  body section.hero .hero-content p { font-size: 1.07rem !important; line-height: 1.6 !important; }
}

/* Bottom red CTA section: white button with red text, same size as every other button */
.cta-section a.btn { font-size: 1rem !important; padding: 14px 32px !important; font-weight: 600 !important; }
.cta-section a.btn:not(.btn-outline) { background: #fff !important; color: #cc0000 !important; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
.cta-section a.btn:not(.btn-outline):hover { background: #f4f4f4 !important; color: #a80000 !important; }
.cta-section .cta-buttons { align-items: center; }
@media (max-width: 768px) {
  .cta-section a.btn { white-space: nowrap !important; font-size: clamp(12.5px, 3.7vw, 16px) !important; padding: 13px 14px !important; }
}
.cta-section a.btn.btn-outline { padding: 12px 30px !important; } /* 2px border: same outer height as the solid button */
@media (max-width: 768px) { .cta-section a.btn.btn-outline { padding: 11px 12px !important; } }

/* Every button one line on phones (Sander 2026-10-07) */
@media (max-width: 768px) {
  body a.btn { white-space: nowrap !important; font-size: clamp(12.5px, 3.7vw, 16px) !important; padding: 13px 14px !important; }
  body a.btn.btn-outline { padding: 11px 12px !important; }
}

/* ===== One text style for every page (Sander 2026-10-07) =====
   Every piece of description text (not headlines) uses ONE size + weight:
   - intro text right under an H1 (white hero, red page hero, red form/schedule hero): 19.2px desktop / 17.6px phones, weight 500
   - everything else in page sections (paragraphs, lists, card text, FAQ answers, small notes): 17.6px, weight 400
   Review cards in the slider keep their compact size. :not(#_) raises specificity above older per-page rules. */
section p:not(#_), section li:not(#_) { font-size: 1.1rem !important; font-weight: 400; }
section .rs-card p:not(#_) { font-size: 0.95rem !important; }
body section.hero .hero-content p:not(#_),
body section.page-hero > .container > p:not(#_),
body section[style*="linear-gradient"] > .container > p:not(#_) {
  font-size: 1.2rem !important; font-weight: 500 !important; opacity: 1 !important; line-height: 1.6 !important;
}
body section.page-hero > .container > p:not(#_),
body section[style*="linear-gradient"] > .container > p:not(#_) { max-width: 620px !important; margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 768px) {
  body section.hero .hero-content p:not(#_),
  body section.page-hero > .container > p:not(#_),
  body section[style*="linear-gradient"] > .container > p:not(#_) { font-size: 1.1rem !important; }
  /* red hero H1s: two lines max on phones */
  body section.page-hero > .container > h1,
  body section[style*="linear-gradient"] > .container > h1 { font-size: clamp(24px, 7.6vw, 32px) !important; line-height: 1.2 !important; }
}

/* Two-column image/text sections: always two equal columns on desktop — a long (one-line) heading can't stretch one column and squash the image (Sander 2026-10-07) */
@media (min-width: 769px) { .content-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; } }

/* Phones: a button that sits alone in its block is always centred (e.g. the CTA under the location details) (Sander 2026-10-07) */
@media (max-width: 768px) { section div:has(> a.btn:only-child) { text-align: center !important; } }

/* Location details column: shrink to its text so the CTA is centred under the details, not under the empty column space (Sander 2026-10-07) */
@media (min-width: 769px) { .grid-2 > div:has(> .mt-24 > a.btn:only-child) { width: fit-content; justify-self: start; } }
@media (min-width: 769px) { .grid-2 > div > .mt-24:has(> a.btn:only-child) { text-align: center !important; } }

/* Phones: a 3-item trust bar shows as one tidy row of 3 — icon on top, short centred label below (Sander 2026-10-07) */
@media (max-width: 600px) {
  .trust-items:has(> .trust-item:nth-child(3):last-child) { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px !important; }
  .trust-items:has(> .trust-item:nth-child(3):last-child) > .trust-item { flex-direction: column !important; text-align: center !important; justify-content: flex-start !important; gap: 6px !important; font-size: 0.8rem !important; line-height: 1.3 !important; }
}

/* Button under text: always 24px below the last line of text (desktop margins collapse with the paragraph's 16px; phones stack without collapsing) (Sander 2026-10-07) */
.content-block > div:has(> a.btn:only-child) { margin-top: 24px !important; }
.content-block > *:has(+ div > a.btn:only-child) { margin-bottom: 0 !important; }
