/* ══════════════════════════════════════════════════════════════════
   UTILITY & COMPONENT CLASSES
   Applied via Gutenberg's "Additional CSS class" — replaces inline
   styles in block content so values live in one place (the :root
   token block in style.css) rather than scattered across post_content.
   ══════════════════════════════════════════════════════════════════ */

/* ── Section Containers ──────────────────────────────────────── */
.sh-section-primary {
    background-color: var(--sh-color-primary) !important;
}

.sh-section-secondary {
    background-color: var(--sh-color-secondary) !important;
}

.sh-section-light {
    background-color: var(--sh-color-bg-light) !important;
}


/* ── Info box ────────────────────────────────────────────────── */
.sh-info-box {
    background-color: var(--sh-color-white) !important;
    border-radius: var(--sh-radius-photo) !important;
    padding: 2rem !important;
}

/* ── Cover Heights ───────────────────────────────────────────── */
.sh-cover-tall {
    min-height: 420px !important;
}

.sh-cover-page {
    min-height: 400px !important;
}

/* ── Typography — Headings ───────────────────────────────────── */
.sh-heading-page {
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 700 !important;
    color: var(--sh-color-white) !important;
}

.sh-heading-section {
    font-size: 2.2rem !important;
    color: var(--sh-color-text) !important;
}

.sh-heading-uppercase {
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: var(--sh-color-white) !important;
}

.sh-heading-md {
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: var(--sh-color-text) !important;
}

.sh-stat-number {
    font-size: 3rem !important;
    font-weight: 700 !important;
    color: var(--sh-color-white) !important;
}

.sh-subheading {
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: var(--sh-color-secondary) !important;
}

/* ── Typography — Body & Inline ──────────────────────────────── */
.sh-body-text {
    font-size: 1.05rem !important;
    line-height: 1.75 !important;
    color: #2C302E !important;
}

.sh-text-muted {
    color: #5A6060 !important;
}

.sh-text-light {
    color: var(--sh-color-light) !important;
}

.sh-text-white {
    color: var(--sh-color-white) !important;
}

.sh-text-accent {
    color: var(--sh-color-accent) !important;
    font-size: 0.9rem !important;
}


/* ── Utilities ───────────────────────────────────────────────── */
.sh-image-rounded {
    border-radius: var(--sh-radius-photo) !important;
}

.sh-divider-light {
    background-color: var(--sh-color-light) !important;
    color: var(--sh-color-light) !important;
    margin-top: 1.25rem !important;
    margin-bottom: 1.25rem !important;
}

/* ══════════════════════════════════════════════════════════════════
   WARM SECTION DIVIDER
   ══════════════════════════════════════════════════════════════════ */
.sh-section-warm-divider {
    height: 3px;
    background: linear-gradient(90deg, transparent, rgba(234,168,33,0.3), transparent);
    border: none;
    margin: 0;
}

/* ══════════════════════════════════════════════════════════════════
   STICKY SOCIAL FLOAT (left side)
   ══════════════════════════════════════════════════════════════════ */
.sh-social-float {
    position: fixed;
    left: 0;
    top: 48%;
    transform: none;
    z-index: 100;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sh-social-float__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: var(--sh-color-primary);
    color: var(--sh-color-white);
    text-decoration: none;
    transition: background 0.18s ease, transform 0.18s ease;
}

.sh-social-float__link:first-child {
    border-radius: 0 8px 0 0;
}

.sh-social-float__link:last-child {
    border-radius: 0 0 8px 0;
}

.sh-social-float__link:hover {
    background: var(--sh-color-primary-dark);
    transform: translateX(4px);
    color: var(--sh-color-white);
}

/* Hide the left side-float once the mobile header takes over (≤920px, where
   Astra shows the hamburger and the header social row appears) so the two
   never display at the same time. */
@media (max-width: 920px) {
    .sh-social-float {
        display: none;
    }
}
