/* ============================================================
   FACECAST THEME — main.css
   Visual character: clean, focused, terrain-first.
   The face is the hero. Lines are readable, never decorative.
   ============================================================ */

/* ---------- Tokens ---------- */
:root {
    /* Snow / paper */
    --fc-snow:        #F7F9FC;
    --fc-paper:       #FFFFFF;
    --fc-paper-soft:  #FAFBFD;

    /* Ink + stone (neutrals) */
    --fc-ink:         #0B1B2B;   /* deepest navy, from logo base */
    --fc-ink-soft:    #1F2D3D;
    --fc-stone:       #5C6B7A;
    --fc-stone-soft:  #8895A6;
    --fc-line:        #E2E8EF;
    --fc-line-strong: #C8D2DC;

    /* Brand blues (extracted from logo gradient) */
    --fc-peak:        #1E4F8F;   /* mid blue */
    --fc-peak-deep:   #143A6B;
    --fc-sky:         #5BA3E0;   /* light blue */
    --fc-sky-soft:    #BFD9EE;

    /* Functional accents (risk language — desaturated, never neon) */
    --fc-risk-low:    #2E8B57;
    --fc-risk-mid:    #C58A1B;
    --fc-risk-high:   #B23A2A;
    --fc-commit:      #0B1B2B;

    /* Type */
    --fc-font-display: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --fc-font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --fc-font-mono:    ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

    /* Rhythm */
    --fc-radius-sm: 4px;
    --fc-radius-md: 8px;
    --fc-radius-lg: 14px;
    --fc-shadow-sm: 0 1px 2px rgba(11,27,43,.06);
    --fc-shadow-md: 0 6px 24px rgba(11,27,43,.08);

    --fc-container: 1200px;
    --fc-container-narrow: 760px;

    --fc-easing: cubic-bezier(.2,.7,.2,1);
}

/* ---------- Reset + base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--fc-font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--fc-ink);
    background: var(--fc-snow);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--fc-peak); text-decoration: none; transition: color .15s var(--fc-easing); }
a:hover { color: var(--fc-peak-deep); }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible {
    outline: 2px solid var(--fc-sky);
    outline-offset: 2px;
    border-radius: var(--fc-radius-sm);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--fc-font-display);
    color: var(--fc-ink);
    margin: 0 0 .5em;
    letter-spacing: -.01em;
    line-height: 1.2;
    font-weight: 600;
}
h1 { font-size: clamp(2.2rem, 4.8vw, 3.6rem); letter-spacing: -.02em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
h3 { font-size: 1.25rem; }
p  { margin: 0 0 1em; }

.fc-eyebrow {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .78rem;
    font-weight: 600;
    color: var(--fc-stone);
    margin: 0 0 1rem;
    font-family: var(--fc-font-display);
}

/* ---------- Layout ---------- */
.fc-container {
    width: 100%;
    max-width: var(--fc-container);
    margin: 0 auto;
    padding: 0 1.25rem;
}
.fc-container--narrow { max-width: var(--fc-container-narrow); }

.fc-section { padding: clamp(3rem, 7vw, 5.5rem) 0; }
.fc-section--soft { background: var(--fc-paper); }
.fc-section--ink  { background: var(--fc-ink); color: #DDE5EE; }
.fc-section--ink h1, .fc-section--ink h2, .fc-section--ink h3 { color: #fff; }

.fc-grid { display: grid; gap: 1.25rem; }
.fc-grid--2 { grid-template-columns: repeat(2, 1fr); }
.fc-grid--3 { grid-template-columns: repeat(3, 1fr); }
.fc-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) {
    .fc-grid--3, .fc-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .fc-grid--2, .fc-grid--3, .fc-grid--4 { grid-template-columns: 1fr; }
}

/* ---------- Skip link / a11y ---------- */
.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--fc-ink);
    color: #fff;
    padding: .75rem 1rem;
    z-index: 1000;
}
.skip-link:focus { left: 1rem; top: 1rem; }
.screen-reader-text {
    position: absolute !important;
    clip: rect(1px,1px,1px,1px);
    width: 1px; height: 1px;
    overflow: hidden;
}

/* ---------- Header ---------- */
.fc-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,.92);
    backdrop-filter: saturate(140%) blur(10px);
    -webkit-backdrop-filter: saturate(140%) blur(10px);
    border-bottom: 1px solid var(--fc-line);
}
/* Cuando hay wp-admin bar (body.admin-bar) el header sticky tiene que
   bajar para no quedar tapado. La barra mide 32px en escritorio y
   46px en mobile (<=782px), según defaults de WP. */
.admin-bar .fc-header { top: 32px; }
@media screen and (max-width: 782px) {
    .admin-bar .fc-header { top: 46px; }
}
/* En móvil el header deja de ser sticky para evitar que el logo y la
   barra superior tapen el contenido al hacer scroll (en /venues/,
   /coaches/ y resto de páginas). El backdrop-filter se desactiva
   porque crea un containing block que rompe el position:fixed del
   botón hamburguesa flotante (lo ancla al header en vez de al
   viewport, así que se va con el scroll). */
@media (max-width: 768px) {
    .fc-header {
        position: static;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: #fff;
    }
    .admin-bar .fc-header { top: auto; }
}
.fc-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    height: 72px;
    position: relative;
}
.fc-brand {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    color: var(--fc-ink);
    font-family: var(--fc-font-display);
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: .02em;
    text-decoration: none;
    flex-shrink: 0;
    min-width: 0;
}
.fc-brand:hover { color: var(--fc-ink); }
.fc-brand__mark {
    width: auto;
    height: 32px;
    flex: 0 0 auto;
    display: inline-block;
    object-fit: contain;
}
.fc-footer__brand .fc-brand__mark {
    height: 30px;
    /* mark is glossy on dark background — no extra treatment needed */
}
.fc-brand__name { line-height: 1; }
.fc-brand__name span { color: var(--fc-peak); }

.fc-nav { display: flex; align-items: center; gap: 1.5rem; }
.fc-nav ul {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    gap: 1.4rem;
}
.fc-nav a {
    color: var(--fc-ink-soft);
    font-weight: 500;
    font-size: .95rem;
    padding: .25rem 0;
    border-bottom: 2px solid transparent;
}
.fc-nav a:hover,
.fc-nav .current-menu-item > a,
.fc-nav .current_page_item > a { color: var(--fc-ink); border-bottom-color: var(--fc-peak); }

.fc-nav__cta {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .55rem 1rem;
    border-radius: var(--fc-radius-md);
    background: var(--fc-ink);
    color: #fff !important;
    font-weight: 600;
    font-size: .92rem;
    border: 1px solid var(--fc-ink);
    transition: background .15s var(--fc-easing), transform .15s var(--fc-easing);
}
.fc-nav__cta:hover { background: var(--fc-peak-deep); border-color: var(--fc-peak-deep); color: #fff !important; }

/* ---------- Login link (visible solo si NO hay sesión) ---------- */
.fc-nav__login {
    color: var(--fc-ink-soft) !important;
    font-weight: 500;
    font-size: .95rem;
    border-bottom: 2px solid transparent;
    padding: .25rem 0;
    text-decoration: none;
}
.fc-nav__login:hover {
    color: var(--fc-ink) !important;
    border-bottom-color: var(--fc-peak);
}

/* ---------- Account menu (logged-in users) ---------- */
.fc-account { position: relative; flex-shrink: 0; }
.fc-account__toggle {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: transparent;
    border: 1px solid var(--fc-line);
    border-radius: 999px;
    padding: .25rem .9rem .25rem .25rem;
    cursor: pointer;
    color: var(--fc-ink);
    font-family: var(--fc-font-body);
    font-weight: 500;
    font-size: .92rem;
    transition: border-color .15s, background .15s;
}
.fc-account__toggle:hover { border-color: var(--fc-line-strong); background: #fff; }
.fc-account__toggle:focus-visible {
    outline: 2px solid var(--fc-sky);
    outline-offset: 2px;
}
.fc-account__avatar {
    width: 32px; height: 32px;
    border-radius: 50%;
    display: block;
    object-fit: cover;
    border: 1px solid var(--fc-line);
}
.fc-account__name {
    line-height: 1;
    max-width: 12ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.fc-account__chev {
    color: var(--fc-stone);
    font-size: .8rem;
    line-height: 1;
}

.fc-account__menu {
    position: absolute;
    top: calc(100% + .5rem);
    right: 0;
    min-width: 200px;
    background: #fff;
    border: 1px solid var(--fc-line);
    border-radius: 12px;
    box-shadow: var(--fc-shadow-md);
    padding: .35rem;
    display: none;
    z-index: 60;
}
.fc-account__menu[hidden] { display: none; }
.fc-account.is-open .fc-account__menu {
    display: block;
}
.fc-account__menu a {
    display: block;
    padding: .55rem .75rem;
    color: var(--fc-ink);
    font-size: .92rem;
    border-radius: 8px;
    transition: background .15s, color .15s;
}
.fc-account__menu a:hover,
.fc-account__menu a:focus {
    background: var(--fc-snow);
    color: var(--fc-peak);
}
.fc-account__menu a + a { margin-top: 1px; }

@media (max-width: 1024px) {
    .fc-account { width: 100%; margin-top: .5rem; }
    .fc-account__toggle { width: 100%; justify-content: flex-start; padding-right: 1rem; }
    .fc-account__menu {
        position: static;
        box-shadow: none;
        border: 1px solid var(--fc-line);
        margin-top: .35rem;
        width: 100%;
    }
}

.fc-burger {
    display: none;
    background: transparent;
    border: 0;
    padding: .5rem;
    cursor: pointer;
    z-index: 51;
    position: relative;
    flex-shrink: 0;
}
.fc-burger span {
    display: block; width: 22px; height: 2px;
    background: var(--fc-ink); margin: 5px 0;
    transform-origin: center;
    transition: transform .2s var(--fc-easing), opacity .2s var(--fc-easing);
}
/* Hamburguesa abierta: las tres barras se transforman en una X. */
.fc-burger.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.fc-burger.is-active span:nth-child(2) { opacity: 0; }
.fc-burger.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1024px) {
    .fc-burger { display: inline-block; }
    .fc-nav {
        position: fixed;
        top: 72px;
        left: 0; right: 0;
        max-height: calc(100vh - 72px);
        overflow-y: auto;
        flex-direction: column;
        align-items: stretch;
        background: #fff;
        padding: 1rem 1.25rem 1.5rem;
        border-bottom: 1px solid var(--fc-line);
        gap: .75rem;
        transform: translateY(-110%);
        visibility: hidden;
        transition: transform .25s var(--fc-easing), visibility .25s linear;
        box-shadow: var(--fc-shadow-md);
        z-index: 49;
    }
    .fc-nav.is-open {
        transform: translateY(0);
        visibility: visible;
        transition: transform .25s var(--fc-easing), visibility 0s linear;
    }
    .fc-nav ul {
        flex-direction: column;
        gap: .25rem;
    }
    .fc-nav ul a { padding: .6rem 0; border-bottom: 1px solid var(--fc-line); }
    .fc-nav__cta {
        justify-content: center;
        margin-top: .5rem;
    }
    /* Si el wp-admin bar está visible, bajamos también el dropdown
       móvil (que vive en position: fixed). 32px es la altura del bar. */
    .admin-bar .fc-nav {
        top: calc(72px + 32px);
        max-height: calc(100vh - 72px - 32px);
    }
}
@media (max-width: 782px) {
    /* En este rango la admin bar mide 46px (mobile WP). */
    .admin-bar .fc-nav {
        top: calc(72px + 46px);
        max-height: calc(100vh - 72px - 46px);
    }
}

/* En móvil el header ya no es sticky, así que el botón hamburguesa
   se ancla al viewport como pastilla flotante para que el menú sea
   accesible desde cualquier punto de la página y se vea claramente
   cómo cerrarlo (animación a "X"). */
@media (max-width: 768px) {
    .fc-burger {
        position: fixed;
        top: .75rem;
        right: .75rem;
        background: #fff;
        border: 1px solid var(--fc-line);
        border-radius: 999px;
        width: 44px;
        height: 44px;
        padding: 0;
        display: inline-flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        box-shadow: var(--fc-shadow-md);
        z-index: 60;
    }
    .fc-burger span { margin: 3px 0; }
    .admin-bar .fc-burger { top: calc(.75rem + 46px); }
}

/* ---------- Hero ---------- */
.fc-hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, #FBFCFE 0%, #EAF2FA 100%);
    border-bottom: 1px solid var(--fc-line);
}
.fc-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(60% 90% at 80% 20%, rgba(91,163,224,.18), transparent 60%),
        radial-gradient(40% 70% at 0% 100%, rgba(20,58,107,.12), transparent 60%);
    pointer-events: none;
}
.fc-hero__inner {
    position: relative;
    padding: clamp(4rem, 9vw, 7rem) 0 clamp(3rem, 7vw, 5rem);
    display: grid;
    gap: 2rem;
    grid-template-columns: 1.05fr .95fr;
    align-items: center;
}
@media (max-width: 900px) {
    .fc-hero__inner { grid-template-columns: 1fr; }
}
.fc-hero__claim {
    font-size: clamp(2.5rem, 6vw, 4.2rem);
    line-height: 1.05;
    letter-spacing: -.025em;
    margin: 0 0 1rem;
}
.fc-hero__claim em {
    font-style: normal;
    color: var(--fc-peak);
}
.fc-hero__sub {
    font-size: 1.15rem;
    color: var(--fc-stone);
    max-width: 36rem;
    margin: 0 0 1.75rem;
}
.fc-hero__cta { display: flex; flex-wrap: wrap; gap: .75rem; }

.fc-hero__face {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: var(--fc-radius-lg);
    background: linear-gradient(160deg, #143A6B 0%, #1E4F8F 45%, #5BA3E0 100%);
    box-shadow: var(--fc-shadow-md);
    overflow: hidden;
}
.fc-hero__face::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(255,255,255,0) 60%, rgba(11,27,43,.45) 100%),
        radial-gradient(120% 80% at 50% 0%, rgba(255,255,255,.15), transparent 60%);
}
.fc-hero__face svg {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    z-index: 1;
}
.fc-hero__face-caption {
    position: absolute;
    z-index: 2;
    bottom: 1.25rem;
    left: 1.25rem; right: 1.25rem;
    color: #fff;
    font-family: var(--fc-font-display);
    font-size: .85rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .85;
}

/* ---------- Buttons ---------- */
.fc-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .85rem 1.4rem;
    border-radius: var(--fc-radius-md);
    font-weight: 600;
    font-size: .98rem;
    line-height: 1;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background .15s var(--fc-easing), color .15s var(--fc-easing), border-color .15s var(--fc-easing), transform .15s var(--fc-easing);
    font-family: var(--fc-font-body);
}
.fc-btn--primary {
    background: var(--fc-ink);
    color: #fff;
    border-color: var(--fc-ink);
}
.fc-btn--primary:hover { background: var(--fc-peak-deep); border-color: var(--fc-peak-deep); color: #fff; }
.fc-btn--ghost {
    background: transparent;
    color: var(--fc-ink);
    border-color: var(--fc-line-strong);
}
.fc-btn--ghost:hover { border-color: var(--fc-ink); color: var(--fc-ink); }
.fc-btn--link {
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--fc-peak);
    font-weight: 600;
}
.fc-btn--link:hover { color: var(--fc-peak-deep); }

/* ---------- Method bullets / how it works ---------- */
.fc-method { counter-reset: step; }
.fc-method__item {
    background: var(--fc-paper);
    border: 1px solid var(--fc-line);
    border-radius: var(--fc-radius-lg);
    padding: 1.5rem 1.5rem 1.5rem;
    position: relative;
    transition: transform .2s var(--fc-easing), box-shadow .2s var(--fc-easing);
}
.fc-method__item:hover { transform: translateY(-2px); box-shadow: var(--fc-shadow-md); }
.fc-method__step {
    counter-increment: step;
    font-family: var(--fc-font-display);
    font-size: .8rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--fc-stone);
}
.fc-method__step::before {
    content: counter(step, decimal-leading-zero) " · ";
    color: var(--fc-peak);
}
.fc-method__verb {
    font-family: var(--fc-font-display);
    font-size: 1.45rem;
    color: var(--fc-ink);
    margin: .35rem 0 .5rem;
    letter-spacing: -.01em;
}

/* ---------- Cards / value props ---------- */
.fc-prop {
    background: var(--fc-paper);
    border: 1px solid var(--fc-line);
    border-radius: var(--fc-radius-lg);
    padding: 1.5rem;
}
.fc-prop__icon {
    width: 36px; height: 36px;
    border-radius: 8px;
    background: rgba(91,163,224,.12);
    color: var(--fc-peak);
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: .8rem;
}
.fc-prop h3 { font-size: 1.05rem; margin-bottom: .35rem; }
.fc-prop p  { color: var(--fc-stone); margin: 0; font-size: .95rem; }

/* ---------- Pull quote / closer ---------- */
.fc-closer {
    border-left: 3px solid var(--fc-peak);
    padding: .25rem 0 .25rem 1.25rem;
    color: var(--fc-stone);
    font-family: var(--fc-font-display);
    font-size: 1.15rem;
    line-height: 1.5;
    max-width: 56rem;
}

/* ---------- Page header ---------- */
.fc-pagehead {
    padding: clamp(2.5rem, 6vw, 4rem) 0 clamp(1.5rem, 3vw, 2.5rem);
    background: var(--fc-paper);
    border-bottom: 1px solid var(--fc-line);
}
.fc-pagehead h1 { margin: 0 0 .35rem; }
.fc-pagehead p  { color: var(--fc-stone); margin: 0; max-width: 56rem; }

/* ---------- Content / posts ---------- */
.fc-main { padding: clamp(2rem, 5vw, 3.5rem) 0; }

.fc-content {
    max-width: 760px;
    margin: 0 auto;
    background: var(--fc-paper);
    border: 1px solid var(--fc-line);
    border-radius: var(--fc-radius-lg);
    padding: clamp(1.5rem, 4vw, 2.75rem);
}
.fc-content h2 { margin-top: 2rem; }
.fc-content h3 { margin-top: 1.5rem; }
.fc-content blockquote {
    border-left: 3px solid var(--fc-peak);
    margin: 1.5rem 0;
    padding: .25rem 1rem;
    color: var(--fc-stone);
    font-style: italic;
}
.fc-content code {
    background: var(--fc-snow);
    border: 1px solid var(--fc-line);
    border-radius: 4px;
    padding: .1rem .35rem;
    font-family: var(--fc-font-mono);
    font-size: .9em;
}
.fc-content img { border-radius: var(--fc-radius-md); }
.fc-content table { width: 100%; border-collapse: collapse; margin: 1.25rem 0; }
.fc-content th, .fc-content td {
    border-bottom: 1px solid var(--fc-line);
    padding: .65rem .5rem;
    text-align: left;
}

/* ---------- Post cards (archive / blog) ---------- */
.fc-cards { display: grid; gap: 1.25rem; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .fc-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .fc-cards { grid-template-columns: 1fr; } }

.fc-card {
    background: var(--fc-paper);
    border: 1px solid var(--fc-line);
    border-radius: var(--fc-radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s var(--fc-easing), box-shadow .2s var(--fc-easing);
}
.fc-card:hover { transform: translateY(-2px); box-shadow: var(--fc-shadow-md); }
.fc-card__media {
    aspect-ratio: 16/10;
    background: linear-gradient(160deg, #143A6B, #5BA3E0);
    overflow: hidden;
}
.fc-card__media img { width: 100%; height: 100%; object-fit: cover; }
.fc-card__body { padding: 1.1rem 1.25rem 1.25rem; flex: 1 1 auto; display: flex; flex-direction: column; }
.fc-card__meta {
    font-family: var(--fc-font-display);
    font-size: .75rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--fc-stone);
    margin-bottom: .4rem;
}
.fc-card__title { font-size: 1.1rem; margin: 0 0 .4rem; }
.fc-card__title a { color: var(--fc-ink); }
.fc-card__title a:hover { color: var(--fc-peak); }
.fc-card__excerpt { color: var(--fc-stone); font-size: .95rem; margin: 0 0 .85rem; }
.fc-card__more { margin-top: auto; font-weight: 600; color: var(--fc-peak); font-size: .92rem; }

/* ---------- Pagination ---------- */
.fc-pagination {
    display: flex; gap: .35rem; flex-wrap: wrap;
    margin-top: 2rem; justify-content: center;
}
.fc-pagination a, .fc-pagination span {
    display: inline-flex;
    min-width: 38px; height: 38px;
    padding: 0 .75rem;
    align-items: center; justify-content: center;
    border: 1px solid var(--fc-line);
    border-radius: var(--fc-radius-md);
    color: var(--fc-ink);
    background: var(--fc-paper);
    font-weight: 500;
}
.fc-pagination .current { background: var(--fc-ink); color: #fff; border-color: var(--fc-ink); }

/* ---------- Footer ---------- */
.fc-footer {
    background: var(--fc-ink);
    color: #B7C2CF;
    padding: 3.5rem 0 2rem;
    margin-top: 4rem;
}
.fc-footer a { color: #DDE5EE; }
.fc-footer a:hover { color: #fff; }
.fc-footer__grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 2rem;
}
@media (max-width: 800px) { .fc-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .fc-footer__grid { grid-template-columns: 1fr; } }
.fc-footer h4 {
    color: #fff;
    font-size: .95rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    margin-bottom: 1rem;
}
.fc-footer ul { list-style: none; margin: 0; padding: 0; }
.fc-footer li { margin-bottom: .45rem; }
.fc-footer__brand {
    display: inline-flex; align-items: center; gap: .6rem;
    color: #fff; font-family: var(--fc-font-display); font-weight: 700;
    margin-bottom: .75rem;
}
.fc-footer__tag {
    color: #8895A6;
    font-size: .95rem;
    max-width: 22rem;
}
.fc-footer__bottom {
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255,255,255,.08);
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    color: #8895A6;
    font-size: .85rem;
}

/* ---------- WordPress core compatibility ---------- */
.alignleft  { float: left; margin: .25rem 1.25rem 1rem 0; }
.alignright { float: right; margin: .25rem 0 1rem 1.25rem; }
.aligncenter { display: block; margin: 1rem auto; }
.alignwide  { max-width: var(--fc-container); margin-left: auto; margin-right: auto; }
.alignfull  { width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption { max-width: 100%; }
.wp-caption-text, .gallery-caption {
    font-size: .85rem; color: var(--fc-stone); text-align: center; margin-top: .35rem;
}
.sticky { display: block; }
.bypostauthor { display: block; }

/* ---------- Plugin (Facecast) safe wrapper ---------- */
.fc-plugin-shell {
    background: var(--fc-paper);
    border: 1px solid var(--fc-line);
    border-radius: var(--fc-radius-lg);
    padding: clamp(1rem, 3vw, 1.75rem);
}

/* ---------- Utilities ---------- */
.fc-text-center { text-align: center; }
.fc-mt-0 { margin-top: 0 !important; }
.fc-mt-1 { margin-top: .5rem; }
.fc-mt-2 { margin-top: 1rem; }
.fc-mt-3 { margin-top: 1.5rem; }
.fc-mt-4 { margin-top: 2rem; }

/* ---------- Rider profile: keep the status banner above the photo circle ---------- */
.facecast-rider-form-status {
    position: relative;
    z-index: 3;
}
.facecast-rider-form-status.is-ok,
.facecast-rider-form-status.is-err {
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
}
