/* ════════════════════════════════════════════════════════════════
   fmf-about.css  —  About page
   ════════════════════════════════════════════════════════════════ */

/* Variables defined in fmf-global.css (:root) — loaded on every page. */

/* Suppress Kadence's own page title — About manages its own hero heading */
body:has(.fmf-about-hero) .entry-header,
body:has(.fmf-about-hero) .entry-title,
body:has(.fmf-about-hero) .page-title,
body:has(.fmf-about-hero) .wp-block-post-title {
    display: none !important;
}

/* ── Hero ─────────────────────────────────────────────────────── */
.fmf-about-hero {
    position: relative;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-bottom: 2px solid var(--fm-red);
}

.fmf-about-hero-bg {
    position: absolute;
    inset: -10%;
    background-size: cover;
    background-position: center 10%;   /* tight zoom toward top of cover — the face */
    animation: fmf-about-kb 24s ease-in-out infinite alternate;
    will-change: transform;
}
@keyframes fmf-about-kb {
    0%   { transform: scale(1.12) translateY(0);    }
    100% { transform: scale(1.22) translateY(-3%);  }
}

.fmf-about-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(139, 0, 0, 0.45) 0%,
        rgba(10,  8, 4, 0.75) 50%,
        rgba(10,  8, 4, 0.90) 100%
    );
    z-index: 1;
}

.fmf-about-hero-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 0 1.5rem;
}
.fmf-about-hero-eyebrow {
    font-size: 0.82rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--fm-amber) !important;
    margin: 0 0 0.5rem;
}
.fmf-about-hero-title,
.fmf-page .fmf-about-hero-title,
h1.fmf-about-hero-title {
    font-family: 'Nosifer', cursive !important;
    font-size: clamp(2.2rem, 6vw, 4rem) !important;
    color: #ffffff !important;
    margin: 0 0 0.4rem !important;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9) !important;
    line-height: 1.1 !important;
    padding: 0 !important;
    border: none !important;
}
.fmf-about-hero-sub {
    color: var(--fm-bone) !important;
    font-size: clamp(0.78rem, 1.8vw, 0.92rem);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0;
}

/* ── Main: photo + text ───────────────────────────────────────── */
/* Outer = full-bleed band (Customizer CSS applies width:100vw + left:50% +
   margin-left:-50vw to .fmf-page .fmf-about-main). Inner holds the
   max-width + flex layout so the two rule sets don't fight. Same
   pattern as .fmf-about-story / .fmf-about-story-inner. */
.fmf-about-main {
    background: var(--fm-black);
    border-bottom: 1px solid var(--fm-border);
}
.fmf-about-main-inner {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 2.5rem 1.5rem;
    max-width: 1100px;
    margin: 0 auto;
    box-sizing: border-box;
    width: 100%;
}
@media (min-width: 768px) {
    .fmf-about-main-inner {
        flex-direction: row;
        align-items: flex-start;
        gap: 3rem;
        padding: 3rem 2rem;
    }
}

/* Photo */
.fmf-about-photo-col {
    flex-shrink: 0;
}
@media (min-width: 768px) {
    .fmf-about-photo-col { width: 260px; }
}

.fmf-about-photo-frame {
    display: inline-block;
    padding: 6px;
    border: 2px solid var(--fm-amber);
    box-shadow:
        0 0 0 1px rgba(201, 134, 10, 0.3),
        0 0 28px rgba(201, 134, 10, 0.18),
        0 8px 32px rgba(0, 0, 0, 0.6);
    background: #000;
}
.fmf-about-photo {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
}

/* Text column */
.fmf-about-text-col {
    flex: 1;
    min-width: 0;
}
.fmf-about-h2 {
    font-family: 'Nosifer', cursive;
    font-size: clamp(0.9rem, 2vw, 1.15rem);
    color: var(--fm-bone);
    margin: 1.5rem 0 0.5rem;
    line-height: 1.3;
}
.fmf-about-text-col > .fmf-about-h2:first-child { margin-top: 0; }
.fmf-about-text-col p {
    color: var(--fm-bone);
    font-size: 0.95rem;
    line-height: 1.75;
    margin: 0 0 0.9rem;
}
.fmf-about-link {
    color: var(--fm-amber);
    text-decoration: none;
}
.fmf-about-link:hover { text-decoration: underline; }

/* ── Personal Story ───────────────────────────────────────────── */
.fmf-about-story {
    background: var(--fm-dark);
    border-bottom: 1px solid var(--fm-border);
    padding: 2.5rem 1.5rem;
}
.fmf-about-story-inner {
    max-width: 820px;
    margin: 0 auto;
}
.fmf-about-story-inner p {
    color: var(--fm-bone);
    font-size: 0.95rem;
    line-height: 1.8;
    margin: 0 0 1rem;
}
.fmf-about-story-inner .fmf-about-h2 {
    margin-top: 2rem;
}
.fmf-about-story-inner .fmf-about-link {
    color: var(--fm-amber);
    text-decoration: none;
}
.fmf-about-story-inner .fmf-about-link:hover { text-decoration: underline; }

/* Pull quote */
.fmf-about-pullquote {
    border-left: 4px solid var(--fm-red);
    margin: 1.75rem 0;
    padding: 0.75rem 1.25rem;
    background: rgba(139, 0, 0, 0.08);
    font-style: italic;
    font-size: 1.05rem;
    color: var(--fm-amber);
    line-height: 1.65;
}
.fmf-about-pullquote em {
    font-style: normal;
    color: var(--fm-bone);
}

/* Signoff */
.fmf-about-signoff {
    margin-top: 1.5rem !important;
    font-style: italic;
    color: var(--fm-amber) !important;
    font-size: 1rem !important;
}

/* ── Resources ────────────────────────────────────────────────── */
.fmf-about-resources {
    background: var(--fm-black);
    padding: 2.5rem 1.5rem;
    border-bottom: 1px solid var(--fm-border);
    text-align: center;
}
.fmf-resources-title {
    /* 2026-05-15: Nosifer -> Pirata One (gothic blackletter) per
       project-display-font-alternatives-spec. Size bumped + letter-spacing
       added because blackletter renders less heavy than Nosifer. */
    font-family: 'Pirata One', 'Nosifer', cursive;
    font-size: clamp(1.25rem, 3.4vw, 1.8rem);
    color: var(--fm-red);
    text-shadow: 0 0 16px rgba(139, 0, 0, 0.4);
    margin: 0 0 0.4rem;
    letter-spacing: 0.02em;
}
.fmf-resources-sub {
    color: var(--fm-muted);
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin: 0 0 2rem;
}
.fmf-resources-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    max-width: 760px;
    margin: 0 auto;
}
@media (min-width: 640px) {
    .fmf-resources-grid { grid-template-columns: repeat(4, 1fr); }
}

.fmf-resource-card {
    background: #111;
    border: 1px solid var(--fm-border);
    border-top: 3px solid var(--fm-amber);
    padding: 1.25rem 0.75rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    color: var(--fm-bone);
    font-size: 0.875rem;
    text-align: center;
    line-height: 1.3;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.fmf-resource-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(139, 0, 0, 0.4);
    color: var(--fm-bone);
}
.fmf-resource-card img {
    /* Desktop walk 2026-05-08: featured-resource icons were 48×48 in
       cards with plenty of vertical room. Bumped to 80×80 (+67%) so
       the visual carries the card. */
    width: 80px;
    height: 80px;
    object-fit: contain;
}

/* ── Instagram ────────────────────────────────────────────────── */
.fmf-about-instagram {
    background: var(--fm-dark);
    border-bottom: 1px solid var(--fm-border);
    padding: 2.5rem 1.5rem;
}
.fmf-about-instagram-inner {
    max-width: 1100px;
    margin: 0 auto;
}
.fmf-about-instagram-title {
    /* 2026-05-15: Nosifer -> Pirata One per
       project-display-font-alternatives-spec. Mirrors .fmf-resources-title. */
    font-family: 'Pirata One', 'Nosifer', cursive;
    font-size: clamp(1.25rem, 3.4vw, 1.8rem);
    color: var(--fm-red);
    text-shadow: 0 0 16px rgba(139, 0, 0, 0.4);
    text-align: center;
    margin: 0 0 0.3rem;
    letter-spacing: 0.02em;
}
.fmf-about-instagram-sub {
    text-align: center;
    color: var(--fm-amber);
    font-size: 0.82rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0 0 1.75rem;
}

/* Smash Balloon username + bio contrast overrides.
   Covers legacy sbi_* naming (v3.x) AND modern sb-* naming (v4.x).
   Scoped to .fmf-about-instagram to avoid touching photo grid.
   !important required to beat SBI inline styles and own stylesheet.    */

/* ── Username / avatar links ── */
.fmf-about-instagram [class*="sbi"] a,
.fmf-about-instagram [class*="sbi"] a:link,
.fmf-about-instagram [class*="sbi"] a:visited,
.fmf-about-instagram [id*="sbi"] a,
.fmf-about-instagram [id*="sbi"] a:link,
.fmf-about-instagram [id*="sbi"] a:visited,
.fmf-about-instagram .sb-avatar,
.fmf-about-instagram .sb-avatar a,
.fmf-about-instagram .sb-account-username,
.fmf-about-instagram .sb-account-username a,
.fmf-about-instagram .sb-account-name,
.fmf-about-instagram .sb-account-name a {
    color: var(--fm-amber) !important;
    text-decoration: none !important;
}

/* ── Bio / header body text ── */
.fmf-about-instagram [class*="sbi_bio"],
.fmf-about-instagram [class*="sbi-bio"],
.fmf-about-instagram [class*="sbi_header"] p,
.fmf-about-instagram [class*="sbi-header"] p,
.fmf-about-instagram .sb-account-bio,
.fmf-about-instagram .sb-account-bio p,
.fmf-about-instagram .sb-feed-header p,
.fmf-about-instagram .sb-header p {
    color: var(--fm-bone) !important;
}

/* R7-FIX-V: SBI feed-theme renders the username as a bare <h3> inside
   .sbi_feedtheme_header_text — no class hook for the rules above, so
   the username inherits the plugin's default black on our --fm-dark
   panel. Mirrors the homepage Fix-C: force bone color + add a subtle
   bone-tinted pill backdrop for guaranteed contrast. */
.fmf-about-instagram .sbi_feedtheme_header_text h3 {
    color: var(--fm-bone) !important;
    background: rgba(232, 220, 200, 0.10);
    padding: 0.18em 0.65em;
    border-radius: 3px;
    display: inline-block;
}

/* ── CTA / follow button — kill SBI branded teal ── */
.fmf-about-instagram [class*="sb-cta"],
.fmf-about-instagram [class*="sbi-cta"],
.fmf-about-instagram [class*="sbi_cta"],
.fmf-about-instagram [class*="sb-follow"],
.fmf-about-instagram [class*="sbi_follow"],
.fmf-about-instagram [id*="sbi_follow"],
.fmf-about-instagram a[href*="instagram.com/famous_monsters"] {
    /* HP6 mirror (desktop walk 2026-05-08): bone → #fff + weight 800
       for stronger contrast on red. Matches homepage treatment. */
    background-color: var(--fm-red) !important;
    background-image: none !important;
    border-color: var(--fm-red-dark) !important;
    color: #fff !important;
    font-weight: 800 !important;
    border-radius: 0 !important;
}
.fmf-about-instagram [class*="sb-cta"] *,
.fmf-about-instagram [class*="sbi-cta"] *,
.fmf-about-instagram [class*="sbi_cta"] *,
.fmf-about-instagram [class*="sb-follow"] *,
.fmf-about-instagram [class*="sbi_follow"] *,
.fmf-about-instagram [id*="sbi_follow"] * {
    /* HP6 mirror — text-shadow on rendering element (doesn't inherit). */
    color: #fff !important;
    fill: #fff !important;
    font-weight: 800 !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.4) !important;
}

/* ── Footer CTAs ──────────────────────────────────────────────── */
.fmf-about-cta {
    background: var(--fm-black);
    padding: 3rem 1.5rem;
    text-align: center;
    border-top: 1px solid var(--fm-border);
}
.fmf-about-cta-heading {
    font-family: 'Nosifer', cursive;
    font-size: clamp(1.1rem, 3vw, 1.6rem);
    color: var(--fm-bone);
    text-shadow: 0 0 16px rgba(139, 0, 0, 0.35);
    margin: 0 0 1.5rem;
}
.fmf-about-cta-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}
.fmf-about-cta-btn {
    display: inline-block;
    padding: 0.7rem 1.8rem;
    font-weight: 700;
    font-size: 0.88rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
.fmf-about-cta-btn--primary {
    background: var(--fm-red);
    color: var(--fm-bone);
    border: 1px solid var(--fm-red-dark);
}
.fmf-about-cta-btn--primary:hover {
    background: var(--fm-red-hover);
    box-shadow: 0 4px 18px rgba(139, 0, 0, 0.5);
    color: var(--fm-bone);
}
.fmf-about-cta-btn--secondary {
    background: transparent;
    color: var(--fm-amber);
    border: 1px solid var(--fm-amber);
}
.fmf-about-cta-btn--secondary:hover {
    background: var(--fm-amber);
    color: #111;
}

/* ── Mobile ───────────────────────────────────────────────────── */
@media (max-width: 767px) {
    .fmf-about-hero { height: 140px; }
    .fmf-about-photo-frame { display: block; }
    .fmf-about-photo { max-width: 100%; }
    .fmf-resources-grid { grid-template-columns: repeat(2, 1fr); }
}
