/* Public pages: preserve existing components while improving semantic markup. */
a.lang-btn { text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.brand-header-public h2 { font-size:2.5rem; font-weight:800; line-height:1.2; margin:0 0 15px; }
.brand-card-page .brand-info h2 { font-size:1.35rem; font-weight:700; margin:0 0 12px; color:#28394b; }
.brand-card-page .btn-explore { display:inline-block; }
.public-intro { max-width:780px; margin:24px auto; font-size:1rem; line-height:1.75; color:#4a5568; text-align:center; }
.public-intro a { font-weight:600; }
.brand-description { white-space:pre-line; }
.public-not-found { max-width:680px; margin:12vh auto; padding:28px; font-family:Arial,sans-serif; }
.brand-image-open { display:flex; align-items:center; justify-content:center; width:100%; height:100%; cursor:zoom-in; }
#imageSliderWrapper .image-slider-slide[hidden] { display:none !important; }
.public-image-dialog { position:fixed; inset:0; z-index:10000; background:rgba(0,0,0,.9); display:flex; align-items:center; justify-content:center; padding:24px; }
.public-image-dialog img { max-width:90vw; max-height:90vh; object-fit:contain; }
.public-image-close { position:absolute; top:16px; right:16px; width:48px; height:48px; border:0; border-radius:50%; background:white; color:#22324a; font-size:30px; cursor:pointer; }
.brand-image-open:focus-visible,.public-image-close:focus-visible { outline:3px solid #7565e6; outline-offset:3px; }
@media(max-width:768px) { .brand-header-public h2 { font-size:1.6rem; } }

/* Phase 5: keep first content visible; do not animate the LCP title from opacity zero. */
html body h1 { animation:none !important; }
.public-picture { display:contents; }
@media(max-width:768px) { .hero-modern,.hero-decoration { animation:none !important; } }
@media(prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto !important; }
    *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* Keep the small source logo crisp rather than enlarging it in the hero card. */
.hero-modern-card-logo { width:185px !important; max-width:185px !important; height:auto !important; }

/* Keep the fixed registration header inside tablet viewports during animations. */
@media (max-width: 900px) {
 body.register-body { width:100%; max-width:100%; overflow-x:clip; }
 .register-body .main-header { width:100vw; max-width:100vw; }
 .register-body .main-header .header-container { width:100%; min-width:0; }
}

/* Stable first viewport on desktop as well as mobile. */
.hero-modern, .hero-decoration { animation:none!important; }

/* Static decorative backgrounds avoid continuous painting outside the viewport. */
section > div[style*="animation: floatUpDown"],
.quick-register-section, .stats-section, .stats-section::before,
.stat-item .counter, .contact-info-section::before, .site-footer {
    animation: none !important;
}
