/* EventCentralOps v0.9.168 — template quality guardrails.
 * Load AFTER category/motion/Radiant styles. This file does not select palettes,
 * replace organizer photography, change section order, or rewrite published copy.
 * Preserve each design's visual personality; repair the common failure points. */

/* Shared sizing and legibility — target content blocks, not global headings. */
.eco-public-site,
.radiant-landing { --eco-qc-touch-size:44px; }
.eco-public-site :is(.eco-public-wrap,.eco-public-section-head,.eco-public-split,.eco-media-grid,.eco-feature-grid,.eco-people-grid,.eco-gallery-carousel),
.radiant-landing :is(.hero-copy,.hero-visual,.ge-rsvp-form) { min-inline-size:0; }
.eco-public-site :is(.eco-public-section-head h2,.eco-feature-card h3,.eco-person-card h3,.eco-public-detail-grid strong,.eco-timeline h3),
.radiant-landing :is(.hero-copy h1,.hero-description) { overflow-wrap:break-word; text-wrap:pretty; }
.eco-public-site :is(.eco-public-richtext,.eco-feature-card p,.eco-person-card p,.eco-timeline p,.eco-public-section-head p,.eco-faq-list p) { overflow-wrap:anywhere; line-height:1.65; }
.eco-public-site :is(.eco-feature-card,.eco-person-card,.eco-public-detail-grid article,.eco-media-card,.eco-quote-grid blockquote,.eco-faq-list details) { min-inline-size:0; }
.eco-public-site :is(.eco-feature-grid,.eco-people-grid,.eco-public-detail-grid,.eco-sponsor-grid) > * { min-inline-size:0; }

/* Standard designs retain their own typography and colors while receiving
 * category-appropriate component finishes. Motion compositions stay untouched. */
.eco-public-site:not(.eco-public-layout-motion) { --eco-qc-card-radius:18px; }
.eco-public-site:not(.eco-public-layout-motion).eco-template-wedding_social { --eco-qc-card-radius:22px; }
.eco-public-site:not(.eco-public-layout-motion):is(.eco-template-conference_summit,.eco-template-corporate_event,.eco-template-workshop_seminar) { --eco-qc-card-radius:12px; }
.eco-public-site:not(.eco-public-layout-motion):is(.eco-template-festival,.eco-template-community_event) { --eco-qc-card-radius:24px; }
.eco-public-site:not(.eco-public-layout-motion) :is(.eco-feature-card,.eco-person-card,.eco-public-detail-grid article,.eco-media-card) {
  border-radius:var(--eco-qc-card-radius,18px);
}
/* A card's content should begin in a predictable order even when other cards
 * have longer copy. Do not change the card imagery or template accents. */
.eco-public-site:not(.eco-public-layout-motion) .eco-feature-card { gap:12px; }
.eco-public-site:not(.eco-public-layout-motion) .eco-feature-card h3 { margin:0; line-height:1.24; }
.eco-public-site:not(.eco-public-layout-motion) .eco-feature-card>span { display:block; }
.eco-public-site:not(.eco-public-layout-motion) .eco-feature-card p { margin:0; }
.eco-public-site:not(.eco-public-layout-motion) .eco-person-card>div:last-child { min-inline-size:0; }

/* Avoid image distortion and layout shifts without imposing a single crop on
 * customer photographs. Their saved object-position/focal edits still apply. */
.eco-public-site :is(.eco-person-photo,.eco-gallery-carousel figure,.eco-wedding-event-image) { min-inline-size:0; overflow:hidden; }
.eco-public-site :is(.eco-person-photo img,.eco-gallery-carousel img,.eco-wedding-event-image img) { display:block;max-inline-size:100%;object-fit:cover; }
.eco-public-site .eco-gallery-carousel figure { flex-shrink:0; }
.eco-public-site .eco-gallery-carousel figcaption { overflow-wrap:anywhere;line-height:1.45; }

/* Touch/accessibility: link hit areas, long CTA labels and forms stay usable on
 * mobile. Do not override the embedded providers' own player controls. */
.eco-public-site :is(.eco-public-primary,.eco-public-secondary,.eco-carousel-controls button,.eco-public-section-edit-shortcut),
.radiant-landing :is(.hero-actions a,.hero-actions button,.ge-rsvp-form button[type="submit"]) {
  min-block-size:var(--eco-qc-touch-size);
  max-inline-size:100%;
}
.eco-public-site :is(.eco-public-primary,.eco-public-secondary) { white-space:normal;text-align:center;overflow-wrap:anywhere; }
.eco-public-site :is(.eco-faq-list summary,.eco-faq-list button) { min-block-size:var(--eco-qc-touch-size); }
.eco-public-site :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select),
.radiant-landing :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) { max-inline-size:100%; }
.eco-public-site :is(.eco-media-card-head,.eco-spotify-link-heading) { min-inline-size:0; }
.eco-public-site :is(.eco-media-card-head a,.eco-spotify-link-heading a) { overflow-wrap:anywhere; }

/* Sections and custom content must not be obscured beneath the fixed header. */
.eco-public-site :is(section[id],.eco-public-section[id],#register,#rsvp),
.radiant-landing :is(section[id],#rsvp) { scroll-margin-block-start:clamp(84px,9vw,118px); }

@media (max-width:920px) {
  .eco-public-site .eco-public-section-head { flex-wrap:wrap;align-items:flex-start;gap:clamp(12px,2vw,20px); }
  .eco-public-site .eco-public-section-head>p { flex:1 1 260px; }
  .eco-public-site :is(.eco-people-grid,.eco-sponsor-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .eco-public-site .eco-public-section-head { display:flex;flex-direction:column;align-items:stretch; }
  .eco-public-site .eco-public-section-head :is(h2,p) { max-inline-size:100%; }
  .eco-public-site :is(.eco-feature-card,.eco-person-card,.eco-public-detail-grid article) { min-inline-size:0; }
  .eco-public-site .eco-media-card-head { flex-wrap:wrap;gap:8px; }
  .eco-public-site :is(.eco-media-embed,.eco-spotify-link-showcase iframe) { max-inline-size:100%; }
  .eco-public-site .eco-sponsor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .radiant-landing :is(.ge-rsvp-form,.hero-actions) { min-inline-size:0; }
}
@media (max-width:380px) {
  .eco-public-site .eco-people-grid,.eco-public-site .eco-sponsor-grid { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  .eco-public-site :is(.eco-public-primary,.eco-public-secondary,.eco-carousel-controls button),
  .radiant-landing :is(.hero-actions a,.hero-actions button) { transition:none!important; }
}

/* The existing PHP renderer computes readable foregrounds for tenant-selected
 * accent/button colors; use those instead of assuming every accent is dark. */
.eco-public-site .eco-public-primary { color:var(--eco-site-accent-ink,#fff); }
.eco-public-site .eco-public-brand-mark { color:var(--eco-site-accent-ink,#fff); }
.eco-public-site:not(.eco-public-layout-motion) .eco-feature-card>span {
  color:color-mix(in srgb,var(--eco-site-accent,#3b735c) 55%,#15252b 45%);
}
/* 'overflow:hidden' on the outer site previously made some sticky headers
 * behave like they had a non-scrolling ancestor. Clip only the horizontal axis
 * on standard designs; never hide vertical content or turn it into a scroller. */
.eco-public-site:not(.eco-public-layout-motion) { overflow-x:clip; overflow-y:visible; }
