:root {
    color-scheme: light dark;
    --bg: #f3efe7;
    --surface: #fffaf2;
    --text: #1f1a17;
    --muted: #6c5f57;
    --accent: #9b3d1f;
    --border: #d8c7b7;
    --admin-bg: #eef2f6;
    --admin-surface: #ffffff;
    --admin-text: #16202a;
    --admin-muted: #5c6b78;
    --admin-accent: #1d4ed8;
    --admin-border: #cfd8e3;
}

@media (prefers-color-scheme: dark) {
    :root {
        --bg: #161413;
        --surface: #221f1c;
        --text: #f4eee7;
        --muted: #b6a89d;
        --accent: #d88658;
        --border: #4e433b;
    }
}

* { box-sizing: border-box; }
body { margin: 0; }
body.public-body { font-family: Georgia, "Times New Roman", serif; background: radial-gradient(circle at top, rgba(155,61,31,.12), transparent 30%), var(--bg); color: var(--text); }
body.admin-body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(180deg, #f7f9fc 0%, var(--admin-bg) 100%); color: var(--admin-text); }
a { color: var(--accent); }
.container { width: min(1100px, calc(100% - 2rem)); margin: 0 auto; }
.site-header { border-bottom: 1px solid var(--border); background: rgba(255,255,255,.3); backdrop-filter: blur(10px); }
.public-header { position: sticky; top: 0; z-index: 20; }
.header-row, .actions, .admin-header, nav, .inline-form { display: flex; gap: 1rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.brand { font-size: 1.4rem; font-weight: bold; text-decoration: none; color: var(--text); padding: 1rem 0; }
main { padding: 2rem 0 4rem; }
.hero, .panel, .card { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; box-shadow: 0 10px 30px rgba(0,0,0,.06); }
.hero { padding: 2rem; margin-bottom: 2rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; color: var(--muted); font-size: .8rem; }
.stack { display: grid; gap: 1rem; }
.card, .panel { padding: 1.25rem; }
.narrow { max-width: 40rem; margin: 0 auto; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
label { display: grid; gap: .35rem; }
input, textarea, select, button { font: inherit; padding: .75rem; border-radius: 10px; border: 1px solid var(--border); background: transparent; color: inherit; width: 100%; }
button { width: auto; cursor: pointer; background: var(--accent); color: #fff; border-color: var(--accent); }
.button-secondary { display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1rem; border-radius: 10px; border: 1px solid var(--border); background: transparent; color: var(--text); text-decoration: none; }
small, .meta { color: var(--muted); }
.flash { padding: .9rem 1rem; border-radius: 12px; margin-bottom: 1rem; }
.flash-success { background: #dff2df; color: #1b4d1b; }
.flash-error { background: #f6dede; color: #6a1b1b; }
.wysiwyg { line-height: 1.75; }
.breadcrumbs { color: var(--muted); margin-bottom: 1rem; }
.public-nav a { text-decoration: none; }
.admin-body a { color: var(--admin-accent); }
.admin-body .brand { color: var(--admin-text); }
.admin-body .panel,
.admin-body .card,
.admin-body .hero { background: var(--admin-surface); border-color: var(--admin-border); box-shadow: 0 18px 36px rgba(20, 30, 50, .08); }
.admin-body input,
.admin-body textarea,
.admin-body select,
.admin-body button { border-color: var(--admin-border); color: var(--admin-text); }
.admin-body button { background: var(--admin-accent); border-color: var(--admin-accent); color: #fff; }
.admin-body .button-secondary { background: transparent; color: var(--admin-text); border-color: var(--admin-border); }
.admin-body small,
.admin-body .meta,
.admin-body .save-status,
.admin-body .eyebrow { color: var(--admin-muted); }
.admin-shell-header { border-bottom: 1px solid var(--admin-border); background: rgba(255,255,255,.88); backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 30; }
.admin-shell-topbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1rem 0; }
.admin-brand { padding: 0; }
.admin-nav { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.admin-nav a { display: inline-flex; align-items: center; justify-content: center; padding: .65rem .9rem; border: 1px solid var(--admin-border); border-radius: 999px; background: #fff; color: var(--admin-text); text-decoration: none; }
.admin-main { padding-top: 1.5rem; }
.editor-shell { display: grid; gap: 1rem; }
.editor-topbar { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; align-items: start; }
.editor-actions { display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.editor-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 1rem; align-items: start; }
.editor-main, .editor-sidebar { min-width: 0; }
.slug-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; align-items: end; }
.editor-content-wrap { display: grid; gap: .5rem; }
.editor-submit-row { display: flex; justify-content: flex-start; }
.seo-panel { border: 1px solid var(--border); border-radius: 14px; padding: 1rem; }
.seo-panel summary { cursor: pointer; font-weight: 700; margin-bottom: .75rem; }
.seo-preview { border: 1px dashed var(--border); border-radius: 12px; padding: 1rem; background: rgba(255,255,255,.24); }
.seo-preview-title { color: #1a0dab; font-size: 1.1rem; margin-top: .5rem; }
.seo-preview-url { color: #0f7b0f; font-size: .92rem; margin-top: .25rem; word-break: break-all; }
.seo-preview-description { margin-top: .35rem; color: var(--muted); }
.choice-list { display: grid; gap: .45rem; max-height: 16rem; overflow: auto; padding-right: .25rem; }
.save-status { font-size: .95rem; color: var(--muted); }
.media-preview { display: grid; gap: .5rem; }
.media-preview img { width: 100%; max-width: 320px; height: auto; border-radius: 12px; border: 1px solid var(--border); }
@media (max-width: 900px) {
    .editor-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .actions form, .actions a, button, .editor-actions a, .editor-actions button { width: 100%; }
    .editor-topbar, .editor-actions, .editor-submit-row { align-items: stretch; }
    .slug-row { grid-template-columns: 1fr; }
    .admin-nav a { width: 100%; }
}

body.public-theme-ferroviaire {
    margin: 0;
    background: #f4efe6;
    color: #181310;
    font-family: "Merriweather", serif;
}

.ob-public {
    min-height: 100vh;
    overflow-x: hidden;
}

.ob-container {
    width: min(1120px, calc(100% - 2rem));
    margin: 0 auto;
}

.ob-header {
    background: #111;
    color: #e8e0d0;
    border-bottom: 3px solid #cc0000;
    background-image: repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(255,255,255,.03) 2px, rgba(255,255,255,.03) 4px);
}

.ob-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    padding: 1.25rem 0;
}

.ob-brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
    color: inherit;
    text-decoration: none;
}

.ob-brand-text,
.ob-footer-brand {
    font-family: "Oswald", sans-serif;
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: .14em;
    text-transform: lowercase;
    text-shadow: 1px 1px 0 rgba(255,255,255,.05), -1px -1px 0 rgba(0,0,0,.3);
}

.ob-brand-line {
    width: 2.5rem;
    height: 1px;
    background: #cc0000;
    opacity: .7;
}

.ob-brand-subtitle {
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: .95rem;
    opacity: .85;
}

.ob-nav {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    font-size: .9rem;
    letter-spacing: .05em;
}

.ob-nav a,
.ob-back-link,
.ob-breadcrumbs a {
    color: inherit;
    text-decoration: none;
    transition: color .3s ease;
}

.ob-nav a:hover,
.ob-back-link:hover,
.ob-breadcrumbs a:hover {
    color: #cc0000;
}

.ob-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #0a0a0a;
}

.ob-hero-background,
.ob-quote-background,
.ob-footer-background {
    position: absolute;
    inset: 0;
    background-image: url("/assets/images/themes/ferroviaire/69-12-119anc_1785157394807.jpg");
    background-position: center center;
    background-size: cover;
}

.ob-hero-background {
    transform: translateY(10%);
}

.ob-hero-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(at 50% 20%, transparent 20%, rgba(10,10,10,.6) 60%, rgba(5,5,5,.95) 100%);
}

.ob-platform-shimmer {
    position: absolute;
    left: 20vw;
    bottom: 0;
    width: 60vw;
    height: 30vh;
    background: radial-gradient(circle at center, rgba(255,255,255,.08), transparent 70%);
    filter: blur(18px);
    opacity: .7;
}

.ob-hero-content {
    position: relative;
    z-index: 3;
    max-width: 56rem;
    margin: 0 auto;
    padding: 0 1rem;
    text-align: center;
    color: #faf7f2;
}

.ob-hero-content h1,
.ob-simple-header h1,
.ob-reading-content h1,
.ob-search-page h1 {
    margin: 0 0 1.25rem;
    font-family: "Oswald", sans-serif;
    font-size: clamp(3.6rem, 10vw, 7rem);
    letter-spacing: .08em;
    text-transform: lowercase;
    text-shadow: 1px 1px 0 rgba(255,255,255,.05), -1px -1px 0 rgba(0,0,0,.3);
}

.ob-hero-tagline {
    margin: 0 0 1.25rem;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    font-style: italic;
    opacity: .9;
}

.ob-hero-copy {
    max-width: 42rem;
    margin: 0 auto;
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.8;
    opacity: .85;
}

.ob-smoke-container {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 2;
}

.ob-particle-smoke {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle at center, rgba(220, 200, 160, .22) 0%, rgba(220, 200, 160, 0) 70%);
    filter: blur(14px);
    animation: ob-smoke-float 18s linear infinite;
    opacity: .08;
}

.ob-smoke-1 { left: 42%; top: 68%; width: 12rem; height: 12rem; animation-delay: 0s; }
.ob-smoke-2 { left: 50%; top: 72%; width: 9rem; height: 9rem; animation-delay: -2s; }
.ob-smoke-3 { left: 35%; top: 70%; width: 11rem; height: 11rem; animation-delay: -4s; }
.ob-smoke-4 { left: 58%; top: 73%; width: 8rem; height: 8rem; animation-delay: -6s; }
.ob-smoke-5 { left: 47%; top: 66%; width: 10rem; height: 10rem; animation-delay: -8s; }
.ob-smoke-6 { left: 40%; top: 74%; width: 7rem; height: 7rem; animation-delay: -10s; }
.ob-smoke-7 { left: 54%; top: 69%; width: 12rem; height: 12rem; animation-delay: -12s; }
.ob-smoke-8 { left: 45%; top: 77%; width: 9rem; height: 9rem; animation-delay: -14s; }
.ob-smoke-9 { left: 38%; top: 64%; width: 6rem; height: 6rem; animation-delay: -16s; }
.ob-smoke-10 { left: 60%; top: 76%; width: 11rem; height: 11rem; animation-delay: -1s; }
.ob-smoke-11 { left: 44%; top: 71%; width: 13rem; height: 13rem; animation-delay: -3s; }
.ob-smoke-12 { left: 52%; top: 67%; width: 7.5rem; height: 7.5rem; animation-delay: -5s; }
.ob-smoke-13 { left: 33%; top: 75%; width: 10rem; height: 10rem; animation-delay: -7s; }
.ob-smoke-14 { left: 57%; top: 65%; width: 8.5rem; height: 8.5rem; animation-delay: -9s; }
.ob-smoke-15 { left: 49%; top: 79%; width: 6.5rem; height: 6.5rem; animation-delay: -11s; }
.ob-smoke-16 { left: 37%; top: 69%; width: 9.5rem; height: 9.5rem; animation-delay: -13s; }
.ob-smoke-17 { left: 62%; top: 71%; width: 10.5rem; height: 10.5rem; animation-delay: -15s; }
.ob-smoke-18 { left: 46%; top: 74%; width: 8rem; height: 8rem; animation-delay: -17s; }
.ob-smoke-19 { left: 55%; top: 78%; width: 5rem; height: 5rem; animation-delay: -18s; }
.ob-smoke-20 { left: 41%; top: 80%; width: 7rem; height: 7rem; animation-delay: -19s; }

@keyframes ob-smoke-float {
    0% { transform: translate(-50%, -10%) scale(.9); opacity: .02; }
    30% { opacity: .08; }
    60% { opacity: .12; }
    100% { transform: translate(-40%, -120%) scale(1.25); opacity: 0; }
}

.ob-section-gap {
    padding: 4rem 0 2rem;
}

.ob-section-bottom {
    padding-bottom: 6rem;
}

.ob-section-title {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.ob-section-title h2,
.ob-quote-overlay h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.8rem, 4vw, 3rem);
}

.ob-section-title span,
.ob-quote-line {
    flex: 1;
    height: 1px;
    background: #cc0000;
    opacity: .35;
}

.ob-featured-link,
.ob-card-link {
    color: inherit;
    text-decoration: none;
}

.ob-vintage-card {
    position: relative;
    border-radius: .3rem;
    background: #faf7f2;
    box-shadow: 2px 4px 10px rgba(0,0,0,.05), 4px 8px 20px rgba(0,0,0,.03);
    overflow: hidden;
    transition: transform .4s ease, box-shadow .4s ease;
}

.ob-vintage-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(to bottom, #ff2222 1px, #cc0000 1px, #990000 100%);
    z-index: 3;
}

.ob-vintage-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0,0,0,.02) 10px, rgba(0,0,0,.02) 11px);
    pointer-events: none;
}

.ob-vintage-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px -10px rgba(160, 80, 0, .25);
}

.ob-featured-card {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr);
}

.ob-featured-media,
.ob-card-media {
    position: relative;
    overflow: hidden;
    min-height: 18rem;
}

.ob-featured-media img,
.ob-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .7s ease, filter .4s ease;
}

.ob-img-wrapper-hover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(180,100,0,0);
    transition: background-color .4s ease;
}

.ob-vintage-card:hover .ob-img-wrapper-hover img {
    transform: scale(1.02);
}

.ob-vintage-card:hover .ob-img-wrapper-hover::after {
    background: rgba(180,100,0,.08);
}

.ob-card-badge {
    position: absolute;
    top: 1rem;
    left: 1rem;
    z-index: 4;
}

.ob-vintage-tag {
    display: inline-block;
    background: #485234;
    color: #f4eee7;
    padding: .35rem .75rem;
    font-size: .7rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    border-radius: .25rem;
}

.ob-featured-copy,
.ob-card-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 2rem;
}

.ob-meta-date {
    font-size: .78rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #b00000;
    font-weight: 700;
}

.ob-featured-copy h3,
.ob-card-copy h3 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    color: #1b1612;
}

.ob-card-copy h3 {
    font-size: 1.5rem;
}

.ob-featured-copy p,
.ob-card-copy p,
.ob-search-summary,
.ob-simple-header p,
.ob-reading-meta {
    margin: 0;
    line-height: 1.8;
    color: #5e5148;
}

.ob-readmore {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    font-size: .85rem;
    font-weight: 700;
    color: rgba(24,19,16,.7);
}

.ob-readmore span {
    display: inline-block;
    width: 2rem;
    height: 2px;
    background: #cc0000;
}

.ob-card-grid,
.ob-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2rem;
}

.ob-article-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.ob-card-media {
    min-height: 14rem;
}

.ob-quote-section {
    position: relative;
    min-height: 50vh;
    margin: 3rem 0 4rem;
}

.ob-quote-background {
    background-attachment: fixed;
}

.ob-quote-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.72);
    color: #faf7f2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    text-align: center;
    padding: 1.5rem;
}

.ob-quote-overlay h2 {
    max-width: 62rem;
    font-style: italic;
    line-height: 1.6;
}

.ob-quote-line {
    flex: none;
    width: 4rem;
    opacity: 1;
}

.ob-footer {
    position: relative;
    margin-top: 4rem;
    padding: 5rem 0;
    overflow: hidden;
    background: #0f0f0f;
    color: #e8e0d0;
    border-top: 4px solid #1a1a1a;
}

.ob-footer-background {
    opacity: .1;
}

.ob-footer-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    text-align: center;
}

.ob-footer-separator {
    width: min(100%, 32rem);
}

.ob-footer-separator div {
    height: 1px;
    background: rgba(232,224,208,.2);
}

.ob-footer-separator p {
    margin: 1rem 0;
    font-family: "Playfair Display", serif;
    font-size: 1.3rem;
    font-style: italic;
}

.ob-footer-copy {
    margin: 0;
    font-size: .85rem;
    letter-spacing: .08em;
    opacity: .55;
}

.ob-audio-toggle {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 50;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.9);
    color: #b00000;
    padding: .85rem 1.1rem;
    backdrop-filter: blur(8px);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
}

.ob-simple-header,
.ob-search-page,
.ob-reading-body {
    padding: 3rem 0;
}

.ob-simple-header,
.ob-search-page {
    background: linear-gradient(180deg, #f2ebdf 0%, #f8f3ea 100%);
}

.ob-search-page-hero,
.ob-public-section-hero {
    position: relative;
    overflow: hidden;
}

.ob-search-page-hero::before,
.ob-public-section-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--ob-section-hero-image);
    background-position: center center;
    background-size: cover;
    opacity: .14;
}

.ob-search-page-hero > .ob-container,
.ob-public-section-hero > .ob-public-shell {
    position: relative;
    z-index: 1;
}

.ob-simple-header h1,
.ob-search-page h1 {
    font-size: clamp(2.5rem, 7vw, 4rem);
    margin-top: .5rem;
    color: #17120f;
}

.ob-search-form {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 1.5rem 0 2rem;
}

.ob-search-form input {
    flex: 1 1 20rem;
    background: rgba(255,255,255,.6);
}

.ob-search-form button {
    width: auto;
}

.ob-reading-hero {
    position: relative;
    padding: 6rem 0 4rem;
    background: #111;
    color: #faf7f2;
}

.ob-reading-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--ob-reading-hero-image, url("/assets/images/themes/ferroviaire/832f7a54-600d-4f74-8c42-e64185d14907_1785156792190.jpg"));
    background-position: center center;
    background-size: cover;
    opacity: .35;
}

.ob-reading-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.6), rgba(0,0,0,.82));
}

.ob-reading-content {
    position: relative;
    z-index: 2;
}

.ob-breadcrumbs {
    margin-bottom: 1rem;
    color: rgba(250,247,242,.75);
}

.ob-reading-body .wysiwyg {
    max-width: 48rem;
    margin: 0 auto;
    background: #faf7f2;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .3rem;
    padding: 2rem;
    box-shadow: 2px 4px 10px rgba(0,0,0,.05), 4px 8px 20px rgba(0,0,0,.03);
}

.ob-reading-intro {
    max-width: 42rem;
    margin: 1rem 0 0;
    line-height: 1.8;
    color: rgba(250,247,242,.88);
}

.ob-article-page {
    padding-bottom: 5rem;
}

.ob-article-hero-banner {
    position: relative;
    height: 45vh;
    min-height: 320px;
    overflow: hidden;
    background: #111;
}

.ob-article-hero-image {
    position: absolute;
    inset: 0;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    opacity: .8;
}

.ob-article-hero-fade {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #f4efe6 0%, rgba(244,239,230,.18) 45%, rgba(0,0,0,.18) 100%);
}

.ob-article-overlap {
    margin-top: -7rem;
    position: relative;
    z-index: 2;
}

.ob-article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 2rem;
    align-items: start;
}

.ob-article-main,
.ob-article-sidebar {
    min-width: 0;
}

.ob-article-feature {
    padding: 2rem;
}

.ob-article-return {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1.5rem;
    text-decoration: none;
    color: #6c5f57;
    font-size: .92rem;
    font-weight: 700;
}

.ob-article-taxonomy {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
    margin-bottom: 1rem;
}

.ob-article-meta-chip {
    font-size: .76rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6c5f57;
}

.ob-article-meta-link {
    text-decoration: none;
}

.ob-article-feature h1 {
    margin: 0 0 1.25rem;
    font-family: "Playfair Display", serif;
    font-size: clamp(2.2rem, 5vw, 3.6rem);
    line-height: 1.15;
}

.ob-article-standfirst {
    margin: 0 0 2rem;
    padding-left: 1rem;
    border-left: 3px solid #cc0000;
    font-size: 1.15rem;
    font-style: italic;
    line-height: 1.8;
    color: #5e5148;
}

.ob-article-content {
    line-height: 1.85;
}

.ob-article-content p {
    margin: 0 0 1.4rem;
}

.ob-article-figure {
    margin: 2.5rem 0;
}

.ob-article-figure-frame {
    padding: .4rem;
    background: #fff;
    box-shadow: 2px 4px 10px rgba(0,0,0,.05), 4px 8px 20px rgba(0,0,0,.03);
    transform: rotate(-1deg);
}

.ob-article-figure-frame img {
    display: block;
    width: 100%;
    height: auto;
}

.ob-article-figure figcaption {
    margin-top: .85rem;
    text-align: center;
    font-size: .92rem;
    font-style: italic;
    color: #6c5f57;
}

.ob-article-tags-row,
.ob-sidebar-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.ob-article-tags-row {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(0,0,0,.08);
}

.ob-article-tag-chip {
    display: inline-block;
    padding: .42rem .75rem;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: .2rem;
    font-size: .78rem;
    color: #6c5f57;
    background: rgba(255,255,255,.55);
}

.ob-sidebar-card {
    padding: 1.5rem;
}

.ob-sidebar-card h2 {
    margin: 0 0 1rem;
    font-family: "Playfair Display", serif;
    font-size: .9rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #b00000;
}

.ob-sidebar-title-link,
.ob-author-card-link {
    color: inherit;
    text-decoration: none;
}

.ob-author-card {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
}

.ob-author-avatar {
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e2d4c6;
    color: #181310;
    font-family: "Playfair Display", serif;
    font-weight: 700;
    flex: 0 0 auto;
}

.ob-author-name,
.ob-author-role,
.ob-author-bio {
    margin: 0;
}

.ob-author-name {
    font-family: "Playfair Display", serif;
    font-weight: 700;
    color: #181310;
}

.ob-author-role {
    margin-top: .15rem;
    font-size: .82rem;
    color: #b00000;
}

.ob-author-bio {
    margin-top: .5rem;
    font-size: .9rem;
    line-height: 1.7;
    color: #5e5148;
}

.ob-home-links {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.ob-home-link-card {
    display: block;
    padding: 1.35rem;
    color: inherit;
    text-decoration: none;
}

.ob-home-link-card h3 {
    margin: 0 0 .7rem;
    font-family: "Playfair Display", serif;
    font-size: 1.45rem;
}

.ob-static-page-wrap {
    padding: 4rem 0 5rem;
}

.ob-static-two-col {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr);
    gap: 2rem;
    align-items: center;
}

.ob-static-photo-panel,
.ob-static-copy-panel,
.ob-static-note-card,
.ob-archive-doc-card {
    overflow: hidden;
}

.ob-static-photo-frame {
    position: relative;
    padding: .75rem;
    background: #fff;
    transform: rotate(-2deg);
}

.ob-static-photo-frame img {
    display: block;
    width: 100%;
    height: auto;
}

.ob-static-stamp {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: inline-block;
    padding: .35rem .65rem;
    background: #7a1913;
    color: #fff6f0;
    font-size: .74rem;
    transform: rotate(6deg);
}

.ob-static-copy-panel .ob-card-copy,
.ob-static-note-card .ob-card-copy,
.ob-archive-doc-card .ob-card-copy {
    padding: 1.6rem;
}

.ob-static-copy-panel h1 {
    margin: 0 0 1rem;
    font-size: clamp(2rem, 5vw, 3.5rem);
}

.ob-static-quote {
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(0, 0, 0, .08);
    font-family: "Playfair Display", serif;
    font-style: italic;
    color: #181310;
}

.ob-static-subtitle {
    margin: .9rem 0 0;
    max-width: 44rem;
    line-height: 1.8;
    color: #efe4da;
}

.ob-static-rail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2rem;
}

.ob-static-lead-copy {
    margin-top: 1.2rem;
}

.ob-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2rem;
}

.ob-gallery-card {
    margin: 0;
    background: #fff;
    padding: .5rem;
    box-shadow: 2px 4px 10px rgba(0, 0, 0, .05), 4px 8px 20px rgba(0, 0, 0, .03);
}

.ob-gallery-card img {
    display: block;
    width: 100%;
    height: 16rem;
    object-fit: cover;
}

.ob-gallery-card figcaption {
    padding: .7rem .25rem .2rem;
    text-align: center;
    font-size: .9rem;
    color: #6c5f57;
}

.ob-archive-page,
.ob-author-page {
    padding: 0 0 5rem;
}

.ob-archive-band {
    height: 9rem;
    background:
        linear-gradient(180deg, rgba(122, 25, 19, .9), rgba(122, 25, 19, .72)),
        url('/assets/images/themes/ferroviaire/1968OCT13GTVS002cs_1785156796492.jpg') center/cover;
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.ob-archive-shell,
.ob-author-shell {
    margin-top: -2.75rem;
    background: rgba(251, 247, 241, .94);
    border: 1px solid rgba(0, 0, 0, .08);
    box-shadow: 0 18px 38px rgba(24, 19, 16, .08);
    padding: 2rem;
}

.ob-archive-overline {
    margin: 0 0 .5rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #b00000;
}

.ob-archive-shell h1,
.ob-author-shell h1 {
    margin: 0;
    font-size: clamp(2.3rem, 5vw, 4.4rem);
    line-height: .95;
}

.ob-archive-summary {
    margin: 1rem 0 0;
    max-width: 48rem;
    color: #5e5148;
    line-height: 1.8;
}

.ob-archive-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.25rem;
}

.ob-archive-card,
.ob-archive-article-card {
    overflow: hidden;
    height: 100%;
}

.ob-archive-article-media img,
.ob-author-article-media img {
    display: block;
    width: 100%;
    height: 15rem;
    object-fit: cover;
}

.ob-archive-card .ob-card-copy,
.ob-archive-article-card .ob-card-copy {
    padding: 1.35rem;
}

.ob-archive-card h2,
.ob-archive-article-card h2,
.ob-author-bio-panel h2,
.ob-author-article-card h2 {
    margin: 0 0 .8rem;
    font-family: "Playfair Display", serif;
    font-size: 1.4rem;
    line-height: 1.2;
    color: #181310;
}

.ob-archive-card p,
.ob-archive-article-card p,
.ob-author-bio-panel p,
.ob-author-article-card p {
    color: #5e5148;
    line-height: 1.8;
}

.ob-archive-card-meta {
    margin: 0 0 .9rem;
    font-size: .78rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #8a5f41;
}

.ob-archive-card-link {
    display: inline-block;
    margin-top: .75rem;
    font-size: .82rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #b00000;
    font-weight: 700;
}

.ob-archive-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}

.ob-author-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-top: .6rem;
}

.ob-author-hero-avatar {
    width: 5.75rem;
    height: 5.75rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #dcc8b6;
    color: #181310;
    font-family: "Playfair Display", serif;
    font-size: 1.65rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.ob-author-hero-copy {
    min-width: 0;
}

.ob-author-hero-role {
    margin: .65rem 0 0;
    color: #7a1913;
    font-size: 1.02rem;
}

.ob-author-bio-panel {
    margin-top: 2rem;
}

.ob-author-bio-panel .ob-card-copy {
    padding: 1.5rem;
}

.ob-author-section-title {
    margin-top: 2.2rem;
}

.ob-author-article-list {
    display: grid;
    gap: 1.25rem;
}

.ob-authors-grid,
.ob-rolling-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2rem;
}

.ob-authors-list-card .ob-card-copy {
    padding: 1.5rem;
}

.ob-authors-list-card .ob-author-hero-avatar {
    margin-bottom: 1rem;
}

.ob-rolling-card {
    overflow: hidden;
}

.ob-rolling-card-media img {
    display: block;
    width: 100%;
    height: 15rem;
    object-fit: cover;
}

.ob-rolling-card .ob-card-copy {
    padding: 1.35rem;
}

.ob-author-article-card {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    overflow: hidden;
}

.ob-author-article-card .ob-card-copy {
    padding: 1.4rem 1.5rem;
}

@media (max-width: 980px) {
    .ob-home-links,
    .ob-archive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ob-static-two-col,
    .ob-gallery-grid,
    .ob-authors-grid,
    .ob-rolling-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ob-static-two-col {
        align-items: start;
    }

    .ob-author-article-card {
        grid-template-columns: 220px minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    .ob-archive-shell,
    .ob-author-shell {
        padding: 1.5rem;
    }

    .ob-home-links,
    .ob-archive-grid,
    .ob-gallery-grid,
    .ob-authors-grid,
    .ob-rolling-grid,
    .ob-static-two-col,
    .ob-static-rail-grid {
        grid-template-columns: 1fr;
    }

    .ob-author-header,
    .ob-author-article-card {
        grid-template-columns: 1fr;
        display: grid;
    }

    .ob-author-header {
        gap: 1rem;
        justify-items: start;
    }

    .ob-author-article-media img {
        height: 13rem;
    }
}

.ob-sidebar-links {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: .65rem;
}

.ob-sidebar-links a {
    color: #5e5148;
    text-decoration: none;
}

.ob-sidebar-links a:hover {
    color: #b00000;
}

.ob-mini-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    padding: 0 0 2rem;
}

.ob-mini-gallery-item {
    margin: 0;
    border-radius: .3rem;
    overflow: hidden;
    box-shadow: 2px 4px 10px rgba(0,0,0,.05), 4px 8px 20px rgba(0,0,0,.03);
}

.ob-mini-gallery-item img {
    display: block;
    width: 100%;
    height: 16rem;
    object-fit: cover;
}

.ob-public-shell {
    width: min(1100px, calc(100% - 2rem));
    margin: 0 auto;
}

.ob-kicker {
    margin: 0 0 .75rem;
    font-size: .78rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #b00000;
    font-weight: 700;
}

.ob-intro {
    max-width: 44rem;
    line-height: 1.8;
    color: #5e5148;
}

.ob-grid-two {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
    gap: 2rem;
}

.ob-panel {
    background: rgba(250,247,242,.9);
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .3rem;
    padding: 1.5rem;
    box-shadow: 2px 4px 10px rgba(0,0,0,.05), 4px 8px 20px rgba(0,0,0,.03);
}

.ob-panel h2 {
    margin-top: 0;
    font-family: "Playfair Display", serif;
}

.ob-panel ul {
    margin: 0;
    padding-left: 1.15rem;
}

.ob-image-fallback {
    width: 100%;
    height: 100%;
    min-height: inherit;
    background: linear-gradient(135deg, #2f2a25, #7d6650);
}

.public-flash {
    position: fixed;
    top: 1rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 60;
    padding: .85rem 1rem;
    border-radius: 999px;
    box-shadow: 0 8px 20px rgba(0,0,0,.14);
}

.public-flash-success {
    background: #f7fff2;
    color: #2f5d17;
}

.public-flash-error {
    background: #fff2f2;
    color: #7a2020;
}

@media (prefers-reduced-motion: reduce) {
    .ob-particle-smoke {
        animation-duration: 30s;
        opacity: .05;
    }

    .ob-vintage-card,
    .ob-featured-media img,
    .ob-card-media img,
    .ob-img-wrapper-hover::after {
        transition: none;
    }
}

@media (max-width: 900px) {
    .ob-featured-card,
    .ob-card-grid,
    .ob-list-grid,
    .ob-mini-gallery,
    .ob-grid-two,
    .ob-article-layout {
        grid-template-columns: 1fr;
    }

    .ob-quote-background {
        background-attachment: scroll;
    }
}

@media (max-width: 700px) {
    .ob-header-row,
    .ob-nav,
    .ob-search-form {
        flex-direction: column;
        align-items: stretch;
    }

    .ob-brand {
        align-items: center;
    }

    .ob-featured-copy,
    .ob-card-copy,
    .ob-reading-body .wysiwyg,
    .ob-article-feature {
        padding: 1.25rem;
    }

    .ob-article-overlap {
        margin-top: -4rem;
    }

    .ob-article-hero-banner {
        height: 34vh;
    }

    .ob-audio-toggle {
        right: 1rem;
        bottom: 1rem;
    }
}

.discussion-widget-shell {
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 80;
}

.discussion-launcher {
    display: inline-flex;
    gap: .75rem;
    align-items: center;
    border-radius: 999px;
    box-shadow: 0 12px 28px rgba(0,0,0,.18);
}

.discussion-panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + .75rem);
    width: min(92vw, 860px);
    background: var(--surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: 0 20px 50px rgba(0,0,0,.2);
    overflow: hidden;
}

.discussion-panel-header,
.discussion-panel-body,
.discussion-screen-grid,
.discussion-composer-actions,
.discussion-attachment-row,
.discussion-toolbar {
    display: flex;
    gap: 1rem;
}

.discussion-panel-header,
.discussion-main,
.discussion-screen-main,
.discussion-screen-sidebar {
    padding: 1rem;
}

.discussion-panel-body,
.discussion-screen-grid {
    align-items: stretch;
}

.discussion-sidebar,
.discussion-screen-sidebar {
    width: min(280px, 100%);
    border-right: 1px solid var(--border);
}

.discussion-main,
.discussion-screen-main {
    flex: 1;
    min-width: 0;
    display: grid;
    gap: 1rem;
}

.discussion-kicker {
    margin: 0 0 .35rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .82rem;
}

.discussion-room-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: .5rem;
}

.discussion-room-button {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    color: inherit;
}

.discussion-room-button.is-active {
    background: rgba(155,61,31,.12);
}

.discussion-messages {
    display: grid;
    gap: .75rem;
    max-height: 50vh;
    overflow: auto;
    padding-right: .25rem;
}

.discussion-messages-fullscreen {
    max-height: none;
    min-height: 50vh;
}

.discussion-message {
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: .9rem;
    background: rgba(255,255,255,.35);
}

.discussion-message.is-highlighted {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(155,61,31,.12);
}

.discussion-message header,
.discussion-message-actions {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: center;
    flex-wrap: wrap;
}

.discussion-message-body {
    line-height: 1.7;
    margin: .75rem 0;
}

.discussion-composer {
    display: grid;
    gap: .75rem;
}

.discussion-attachments,
.discussion-search-results {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0;
}

.discussion-search-results {
    margin-bottom: 1rem;
}

.discussion-search-result {
    display: grid;
    gap: .2rem;
    padding: .85rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(255,255,255,.32);
    text-decoration: none;
    color: inherit;
}

.discussion-room-status,
.discussion-feedback,
.discussion-attachments small {
    color: var(--muted);
}

.discussion-feedback {
    padding: .75rem .9rem;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: rgba(255,255,255,.26);
}

.discussion-fullscreen {
    display: grid;
    gap: 1rem;
}

.discussion-screen-grid {
    align-items: start;
}

@media (max-width: 700px) {
    .discussion-widget-shell {
        right: .75rem;
        left: .75rem;
        bottom: .75rem;
    }

    .discussion-panel {
        position: fixed;
        inset: 0;
        width: auto;
        border-radius: 0;
    }

    .discussion-panel-body,
    .discussion-screen-grid,
    .discussion-panel-header,
    .discussion-composer-actions,
    .discussion-attachment-row,
    .discussion-toolbar {
        flex-direction: column;
    }

    .discussion-sidebar,
    .discussion-screen-sidebar {
        width: auto;
        border-right: 0;
        border-bottom: 1px solid var(--border);
    }
}
