/* Page-specific styles previously injected via $pageStyles */

/* Competence / TOC pages */
.toc-bar { scrollbar-width: none; -ms-overflow-style: none; }
.toc-bar::-webkit-scrollbar { display: none; }
.toc-link { position: relative; transition: color .25s ease; }
.toc-link::after {
    content: ""; position: absolute; bottom: 0; left: 50%; width: 0; height: 2px;
    background: linear-gradient(90deg, var(--sas-orange), var(--sas-orange-lt));
    border-radius: 1px 1px 0 0;
    transition: width .3s cubic-bezier(.4,0,.2,1), left .3s cubic-bezier(.4,0,.2,1);
}
.toc-link:hover { color: var(--sas-orange); }
.toc-link:hover::after { width: 100%; left: 0; }
.toc-link.active { color: var(--sas-orange); }
.toc-link.active::after { width: 100%; left: 0; }
.bento-card { transition: transform .5s cubic-bezier(.25,.46,.45,.94), box-shadow .5s ease; }
.bento-card:hover { transform: translateY(-4px); box-shadow: 0 32px 64px -12px rgba(52,0,95,.1); }
.img-zoom img { transition: transform 1.2s cubic-bezier(.25,.46,.45,.94); }
.img-zoom:hover img { transform: scale(1.05); }
.metric-value {
    background: linear-gradient(135deg, var(--sas-orange), var(--sas-orange-lt));
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.expand-trigger[open] > summary .expand-icon { transform: rotate(45deg); }
.expand-trigger > summary { list-style: none; }
.expand-trigger > summary::-webkit-details-marker { display: none; }

/* Home hero slider */
.hero-slide {
    position: absolute; inset: 0;
    opacity: 0; visibility: hidden;
    transition: opacity 1.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 1.4s;
}
.hero-slide.active {
    opacity: 1; visibility: visible;
    transition: opacity 1.4s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s 0s;
    z-index: 10;
}
.hero-slide .hero-bg-img { transition: transform 8s ease-out; transform: scale(1); }
.hero-slide.active .hero-bg-img { transform: scale(1.08); }
.hero-slide .hero-kicker {
    opacity: 0; transform: translateY(30px);
    transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1) 0.2s, transform 0.7s cubic-bezier(0.16,1,0.3,1) 0.2s;
}
.hero-slide.active .hero-kicker { opacity: 1; transform: translateY(0); }
.hero-slide .hero-heading {
    opacity: 0; transform: translateY(50px);
    transition: opacity 0.9s cubic-bezier(0.16,1,0.3,1) 0.35s, transform 0.9s cubic-bezier(0.16,1,0.3,1) 0.35s;
}
.hero-slide.active .hero-heading { opacity: 1; transform: translateY(0); }
.hero-slide .hero-desc {
    opacity: 0; transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1) 0.55s, transform 0.8s cubic-bezier(0.16,1,0.3,1) 0.55s;
}
.hero-slide.active .hero-desc { opacity: 1; transform: translateY(0); }
.hero-slide .hero-actions {
    opacity: 0; transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.16,1,0.3,1) 0.7s, transform 0.8s cubic-bezier(0.16,1,0.3,1) 0.7s;
}
.hero-slide.active .hero-actions { opacity: 1; transform: translateY(0); }
.slide-progress-track {
    position: absolute; bottom: 0; left: 0; right: 0; height: 3px; z-index: 30;
    background: rgba(255,255,255,0.1);
}
.slide-progress-bar {
    height: 100%; width: 0;
    background: linear-gradient(90deg, var(--sas-orange), var(--sas-orange-lt));
    transition: none;
}
.slide-progress-bar.animating { width: 100%; transition: width 6000ms linear; }
.slider-dot { background: rgba(255,255,255,0.25) !important; }
.slider-dot.is-active { background: linear-gradient(90deg, #F94C30, #FF6D54) !important; }
.case-card .case-overlay {
    background: linear-gradient(to top, rgba(255,255,255,0.92) 0%, rgba(52,0,95,0.05) 50%, transparent 100%);
    opacity: 0; transition: opacity 0.4s;
}
.case-card:hover .case-overlay { opacity: 1; }
.case-card:hover img { transform: scale(1.07); }
.case-card img { transition: transform 0.6s ease; }
.sus-card { transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
.sus-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(249,76,48,0.12); border-color: rgba(249,76,48,0.3) !important; }

/* Contact form */
.contact-form-input {
    width: 100%; border-radius: 0.75rem; border: 1px solid rgba(52,0,95,0.12);
    background: #fff; padding: 0.75rem 1rem; font-size: 1rem; color: var(--text);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.contact-form-input:focus { outline: none; border-color: var(--sas-orange); box-shadow: 0 0 0 3px rgba(249,76,48,0.12); }
.contact-alert { border-radius: 1rem; padding: 1rem 1.25rem; font-size: 0.9375rem; }

/* Our Values */
.values-accordion details { border-radius: 1.25rem; overflow: hidden; }
.values-accordion summary { list-style: none; }
.values-accordion summary::-webkit-details-marker { display: none; }
.values-accordion details[open] .acc-chevron { transform: rotate(180deg); }
.values-accordion .acc-chevron { transition: transform 0.3s ease; }

/* Sustainability */
.cert-details summary::-webkit-details-marker { display: none; }
.cert-details summary { list-style: none; }
.cert-details[open] .cert-chevron { transform: rotate(180deg); }

/* Legal docs */
.legal-doc { font-size: 1.0625rem; line-height: 1.75; color: var(--text-2); }
.legal-doc p { margin-bottom: 1.25rem; }
.legal-doc h2 { font-size: 1.75rem; margin: 2.5rem 0 1rem; color: var(--text); }
.legal-doc h2:first-of-type { margin-top: 0; }
.legal-doc h3 {
    font-size: 1.125rem; font-weight: 600;
    font-family: "Source Sans 3", sans-serif;
    margin: 1.75rem 0 0.75rem; color: var(--text);
}
.legal-doc .legal-list { list-style: none; padding: 0; margin: 0 0 2rem; }
.legal-doc .legal-list > li {
    padding: 1rem 1.25rem; margin-bottom: 0.5rem; border-radius: 1rem;
    background: #fff; border: 1px solid rgba(52,0,95,0.08);
    box-shadow: 0 2px 12px rgba(52,0,95,0.04);
}

/* Multi-microphone hero */
.multi-mic-hero.page-hero {
    background-image:
        linear-gradient(135deg, rgba(52,0,95,0.88) 0%, rgba(37,0,71,0.85) 50%, rgba(26,0,51,0.92) 100%),
        url("../img/banner/audio%20header.jpg");
    background-size: cover, cover;
    background-position: center, center;
}
.multi-mic-hero.page-hero::after { z-index: 2; }

/* Audio offering — platform band. Kept in CSS so style-src can stay without inline styles. */
.audio-platform { background-color: #0B0B10; }
