/* EventCentralOps v0.9.41 — Premium Visual Experience, Phase 1.
 * Scoped to tenant public experiences. Content and palette values remain tenant-owned.
 * Loaded after the selected standard, motion or Radiant stylesheet.
 */
:where(.eco-public-site,.radiant-landing) { -webkit-text-size-adjust:100%; }
.eco-public-site {
  --eco-editorial-serif: "Iowan Old Style", "Baskerville", "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --eco-editorial-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --eco-visual-section-space: clamp(58px, 7vw, 112px);
  --eco-visual-focus:#ffd66c;
}
/* Preserve the compositions of motion designs while enforcing safe intrinsic sizes. */
.eco-public-site :is(.eco-public-wrap,.eco-public-hero-content,.eco-public-section-head,.eco-public-split,.eco-feature-grid,.eco-people-grid,.eco-public-detail-grid,.eco-gallery-carousel,.eco-media-grid) { min-width:0; }
.eco-public-site :is(.eco-feature-card,.eco-person-card,.eco-public-detail-grid article,.eco-quote-grid blockquote,.eco-media-card) { min-width:0; overflow-wrap:break-word; }
.eco-public-site :is(h1,h2,h3,p,a,span,strong) { max-inline-size:100%; }
.eco-public-site :is(.eco-public-section-head h2,.eco-public-split h2,.eco-public-cta h2,.eco-faq-wrap h2) {
  line-height:1.08; letter-spacing:-.035em; text-wrap:balance; overflow-wrap:break-word;
}
.eco-public-site .eco-public-hero h1 {
  max-inline-size:min(100%, 19ch);
  line-height:clamp(.93, .99, 1.06);
  text-wrap:balance; overflow-wrap:break-word; word-break:normal;
}
.eco-public-site .eco-public-hero .eco-public-lead { max-inline-size:min(100%,64ch);text-wrap:pretty; }
.eco-public-site .eco-public-meta span { line-height:1.4; overflow-wrap:break-word; }
.eco-public-site .eco-public-event-hero :is(.eco-hero-image,.eco-hero-video) {
  position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;
  /* This reads the existing editable hero focal point on actual image elements. */
  image-rendering:auto;
}
.eco-public-site .eco-public-hero-overlay,.eco-public-site .eco-public-hero-pattern{pointer-events:none;}
.eco-public-site .eco-public-hero-content { isolation:isolate; }
.eco-public-site .eco-public-event-logo{height:auto;max-width:min(240px,55vw);}
.eco-public-site .eco-public-actions>a,
.eco-public-site .eco-public-actions>button {
  min-height:48px;max-width:100%;white-space:normal;text-align:center;line-height:1.25;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;
}
@media (hover:hover) {
  .eco-public-site .eco-public-actions>a:hover { transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.20); }
}
.eco-public-site :is(a,button,input,select,textarea,summary):focus-visible,
.radiant-landing :is(a,button,input,select,textarea,summary):focus-visible {
  outline:3px solid var(--eco-visual-focus,#ffd66c);
  outline-offset:3px;
}
.eco-public-site :is(.eco-person-photo,.eco-gallery-carousel figure,.eco-media-embed){overflow:hidden;}
.eco-public-site :is(.eco-person-photo img,.eco-gallery-carousel img,.eco-motion-card img){
  display:block;max-width:100%;object-fit:cover;image-rendering:auto;
}
.eco-public-site .eco-person-photo img {height:100%;}
.eco-public-site .eco-gallery-carousel img {width:100%;height:100%;}
.eco-public-site .eco-gallery-carousel figure {height:auto;max-width:calc(100vw - 32px);}
.eco-public-site .eco-gallery-carousel figure:has(figcaption){height:auto;aspect-ratio:auto;}
.eco-public-site .eco-gallery-carousel figure:has(figcaption) img{aspect-ratio:16/10;height:auto;}
.eco-public-site .eco-public-section:not(.eco-media-section){scroll-margin-top:90px;}
/* Calm editorial categories: elegantly legible titles, without altering user copy. */
.eco-public-site:not(.eco-public-layout-motion):is(.eco-template-wedding_social,.eco-template-fundraiser_gala) :is(.eco-public-section-head h2,.eco-public-split h2,.eco-public-cta h2){
  font-family:var(--eco-editorial-serif);font-weight:500;letter-spacing:-.035em;
}
.eco-public-site:not(.eco-public-layout-motion).eco-template-wedding_social .eco-public-hero h1 { font-family:var(--eco-editorial-serif);font-weight:500;letter-spacing:-.045em; }
.eco-public-site:not(.eco-public-layout-motion).eco-template-fundraiser_gala .eco-public-hero h1 {font-family:var(--eco-editorial-serif);font-weight:500;letter-spacing:-.045em;}
/* Business categories: structured editorial geometry and more controlled line lengths. */
.eco-public-site:not(.eco-public-layout-motion):is(.eco-template-conference_summit,.eco-template-corporate_event) :is(.eco-public-section-head h2,.eco-public-split h2) { max-width:24ch;font-weight:750;letter-spacing:-.042em; }
.eco-public-site:not(.eco-public-layout-motion):is(.eco-template-workshop_seminar,.eco-template-community_event) .eco-public-richtext {max-width:68ch;}
/* Music/festival event pages retain expressive typography and strong registration. */
.eco-public-site:not(.eco-public-layout-motion):is(.eco-template-worship_concert,.eco-template-festival) .eco-public-hero h1{max-width:18ch;}
/* Keep feature-card hierarchy consistent without removing category-specific design identities. */
.eco-public-site .eco-feature-card h3 {line-height:1.17;text-wrap:balance;}
.eco-public-site .eco-feature-card p {line-height:1.65;}
.eco-public-site .eco-public-section-head {align-items:end;min-width:0;}
.eco-public-site .eco-public-section-head>div {min-width:0;}
.eco-public-site .eco-public-section-head p {max-width:58ch;}
/* Motion content should never bleed under visual decks on medium screens. */
@media (min-width:821px) and (max-width:1180px) {
  .eco-public-site.eco-public-layout-motion .eco-public-event-hero .eco-public-hero-content { max-width:100%; }
  .eco-public-site.eco-public-layout-motion .eco-public-hero h1 { font-size:clamp(3.5rem,7.3vw,6.8rem); }
}
@media (max-width:820px) {
  .eco-public-site .eco-public-event-hero { min-height:min(780px, 95svh); }
  .eco-public-site .eco-public-hero-content { min-width:0; }
  .eco-public-site .eco-public-hero h1 { font-size:clamp(2.65rem,8.6vw,5rem);line-height:1.03; }
  .eco-public-site .eco-public-actions {gap:12px;}
  .eco-public-site .eco-feature-grid,.eco-public-site .eco-media-grid,.eco-public-site .eco-public-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .eco-public-site .eco-public-split { grid-template-columns:minmax(0,1fr);gap:clamp(20px,4vw,36px); }
  .eco-public-site .eco-public-section {padding-block:clamp(56px,8vw,80px);}
}
@media (max-width:640px) {
  .eco-public-site .eco-public-wrap {width:calc(100% - 32px);max-width:100%;}
  .eco-public-site .eco-public-event-hero {min-height:560px;padding-block:clamp(76px,12vw,108px);}
  .eco-public-site .eco-public-hero-content {max-width:100%;}
  .eco-public-site .eco-public-hero h1 { font-size:clamp(2.35rem,10.8vw,4rem);line-height:1.04;letter-spacing:-.035em; }
  .eco-public-site .eco-public-lead {font-size:clamp(1rem,4.3vw,1.2rem);line-height:1.55;}
  .eco-public-site .eco-public-meta {gap:8px;}
  .eco-public-site .eco-public-meta span {font-size:.74rem;padding:8px 10px;}
  .eco-public-site .eco-public-actions>a,.eco-public-site .eco-public-actions>button {flex:1 1 100%;width:100%;min-height:50px;}
  .eco-public-site .eco-feature-grid,.eco-public-site .eco-media-grid,.eco-public-site .eco-public-detail-grid,
  .eco-public-site .eco-quote-grid {grid-template-columns:minmax(0,1fr);}
  .eco-public-site .eco-public-section-head {gap:16px;align-items:start;}
  .eco-public-site .eco-gallery-carousel figure {flex-basis:88%;}
  .eco-public-site .eco-gallery-carousel figcaption {font-size:12px;line-height:1.5;}
  .eco-public-site .eco-public-section-head h2 {font-size:clamp(2rem,9vw,3.1rem);}
  .eco-public-site .eco-motion-deck {pointer-events:none;}
}
@media (max-width:420px){
  .eco-public-site .eco-public-hero h1 {font-size:clamp(2.18rem,10.2vw,2.9rem);}
  .eco-public-site .eco-people-grid {grid-template-columns:minmax(0,1fr);}
  .eco-public-site .eco-public-section-head h2{font-size:clamp(1.85rem,8.6vw,2.4rem);}
  .eco-public-site .eco-public-actions{width:100%;}
}
/* Radiant keeps its three established compositions; these are safety/typography
   guardrails only, not a redesign of the original template. */
.radiant-landing .hero-copy {min-width:0;}
.radiant-landing .hero-copy h1 {text-wrap:balance;overflow-wrap:break-word;max-inline-size:100%;}
.radiant-landing .hero-description {text-wrap:pretty;max-inline-size:65ch;}
.radiant-landing :is(.hero-copy,.hero-visual,.poster-frame) {min-width:0;}
.radiant-landing .hero-actions :is(a,button){min-height:48px;line-height:1.3;max-width:100%;}
@media(max-width:640px){
  .radiant-landing .hero-copy h1{font-size:clamp(2.5rem,10.5vw,4.2rem)!important;line-height:1.04!important;}
  .radiant-landing .hero-copy{max-width:100%;}
  .radiant-landing .hero-actions{max-width:100%;gap:10px;}
}
@media(prefers-reduced-motion:reduce){
  .eco-public-site *, .radiant-landing * { scroll-behavior:auto!important; }
  .eco-public-site .eco-public-actions>a{transition:none!important;transform:none!important;}
}
