        :root {
            --page-bg: #fdfbf9;
            --text-main: #1f1d1a;
            --text-muted: #5c5c5c;
            --line: #bcbcbc;
            --brand: #e42313;
            --accent: #e42313;
        }
        * {
            box-sizing: border-box;
        }
        .hidden {
            display: none !important;
        }
        .maintenance-bypass-badge {
            position: fixed;
            top: 0.55rem;
            left: 0.55rem;
            z-index: 110;
            display: inline-flex;
            align-items: center;
            padding: 0.32rem 0.55rem;
            border: 1px solid var(--brand);
            background: #fffdf8;
            color: var(--brand);
            font-size: 0.68rem;
            line-height: 1;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            font-weight: 500;
            border-radius: 999px;
            box-shadow: 0 4px 14px rgba(31, 29, 26, 0.12);
        }
        .border-t {
            border-top-color: var(--brand);
        }
        .border-b {
            border-bottom-color: var(--brand);
        }
        :root {
            --ui-surface: #f8f4ea;
            --ui-surface-soft: #efe8d7;
            --ui-surface-strong: #1f1d1a;
            --ui-border: #c8bfae;
            --ui-text: #1f1d1a;
            --ui-text-muted: #6a6254;
            --ui-danger: #812222;
            --ui-danger-soft: #f8e9e7;
            --ui-danger-border: #d3a6a1;
        }
        .ui-panel {
            border: 1px solid var(--ui-border);
            background: var(--ui-surface);
            border-radius: 4px;
        }
        .ui-table-shell {
            width: 100%;
        }
        .ui-table {
            width: 100%;
            border-collapse: separate;
            border-spacing: 0;
        }
        .ui-table-head {
            background: #efe8d7;
        }
        .ui-table-head-row {
            color: #645d4f;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.06em;
        }
        .ui-table-body {
            background: #f8f4ea;
        }
        .ui-pagination {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 0.75rem;
        }
        .ui-pagination-group {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            flex-wrap: wrap;
        }
        .system-info-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1.5rem;
        }
        @media (min-width: 768px) {
            .system-info-grid {
                grid-template-columns: 2fr 1fr;
            }
        }
        .ui-btn,
        .offer-modal-btn,
        .article-lock-btn,
        .admin-modal-btn,
        .audio-status-action-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 0.35rem;
            border: 1px solid var(--ui-border);
            background: #fffdf8;
            color: var(--ui-text);
            padding: 0.5rem 0.9rem;
            border-radius: 8px;
            font-size: 0.76rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            font-weight: 500;
            line-height: 1;
            cursor: pointer;
            transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease, transform 0.15s ease, filter 0.15s ease;
        }
        .ui-btn:hover,
        .offer-modal-btn:hover,
        .article-lock-btn:hover,
        .admin-modal-btn:hover,
        .audio-status-action-btn:hover {
            border-color: var(--brand);
            color: var(--brand);
            transform: translateY(-1px);
        }
        .ui-btn:disabled,
        .ui-btn[aria-disabled="true"],
        .offer-modal-btn:disabled,
        .admin-modal-btn:disabled,
        .audio-status-action-btn:disabled,
        .audio-status-action-btn[aria-disabled="true"] {
            opacity: 0.55;
            cursor: not-allowed;
            transform: none;
        }
        .ui-btn-primary,
        .offer-modal-btn-primary,
        .article-lock-btn-primary {
            border-color: var(--brand);
            background: var(--brand);
            color: #f8f4ea;
        }
        .ui-btn-primary:hover,
        .offer-modal-btn-primary:hover,
        .article-lock-btn-primary:hover {
            border-color: var(--brand);
            background: var(--brand);
            color: #fff;
        }
        .ui-btn-danger,
        .admin-modal-btn-danger {
            border-color: var(--ui-danger);
            background: var(--ui-danger);
            color: #f8f4ea;
        }
        .ui-btn-danger:hover,
        .admin-modal-btn-danger:hover {
            border-color: #631818;
            background: #631818;
            color: #fff;
        }
        .ui-badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border: 1px solid var(--ui-border);
            background: var(--ui-surface-soft);
            color: var(--ui-text-muted);
            border-radius: 999px;
            padding: 0.2rem 0.55rem;
            font-size: 11px;
            text-transform: uppercase;
            letter-spacing: 0.06em;
            font-weight: 500;
            line-height: 1.2;
        }
        .audio-status-badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .ui-badge-danger {
            border-color: var(--ui-danger-border);
            background: var(--ui-danger-soft);
            color: #7f2e27;
        }
        .ui-modal-overlay,
        .admin-modal-overlay {
            position: fixed;
            inset: 0;
            z-index: 70;
            background: rgba(26, 22, 16, 0.56);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 1rem;
        }
        .ui-modal-panel,
        .admin-modal-panel {
            width: min(100%, 540px);
            border: 1px solid var(--ui-border);
            background: var(--ui-surface);
            box-shadow: 0 20px 40px rgba(31, 29, 26, 0.24);
            border-radius: 4px;
        }
        .ui-modal-head,
        .admin-modal-head {
            padding: 1rem 1.25rem;
            border-bottom: 1px solid var(--ui-border);
        }
        .ui-modal-head h3,
        .admin-modal-head h3 {
            margin: 0;
            font-size: 1.2rem;
            color: var(--ui-text);
        }
        .ui-modal-body,
        .admin-modal-body {
            padding: 1rem 1.25rem;
            color: #4f493d;
            line-height: 1.45;
        }
        .ui-modal-body p,
        .admin-modal-body p {
            margin: 0 0 0.5rem;
        }
        .ui-modal-actions,
        .admin-modal-actions {
            padding: 0.95rem 1.25rem 1.2rem;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            gap: 0.55rem;
        }
        html {
            scroll-behavior: smooth;
        }
        @media (prefers-reduced-motion: reduce) {
            html {
                scroll-behavior: auto;
            }
        }
        body {
            margin: 0;
            background-color: var(--page-bg);
            color: var(--text-main);
            font-family: "DM Sans", Arial, Helvetica, sans-serif;
            font-weight: 300;
        }
        [id] {
            scroll-margin-top: 1rem;
        }
        h1, h2, h3, h4, h5, h6 {
            font-family: "Playfair Display", "Times New Roman", "Palatino Linotype", serif;
            font-weight: 600 !important;
        }
        main.site-shell :is(h1, h2, h3, h4, h5, h6):not(.no-title-triangle) {
            position: relative;
            padding-left: 0.56em;
        }
        main.site-shell :is(h1, h2, h3, h4, h5, h6):not(.no-title-triangle)::before {
            content: "";
            position: absolute;
            left: 0;
            top: 0.28em;
            width: 0.34em;
            height: 0.46em;
            background: var(--brand);
            clip-path: polygon(0 0, 100% 0, 0 100%);
        }
        p, li {
            font-family: "DM Sans", Arial, Helvetica, sans-serif;
            font-weight: 300;
        }
        .chapo-text,
        .article-chapo {
            font-family: "Playfair Display", "Times New Roman", "Palatino Linotype", serif;
            font-weight: 300;
        }
        a {
            color: inherit;
            text-decoration: none;
        }
        .site-shell {
            width: min(1360px, calc(100% - 1.5rem));
            margin: 0 auto;
        }
        body.backoffice .site-shell {
            width: 100%;
            max-width: none;
            margin: 0;
            padding-left: 0.5rem;
            padding-right: 0.5rem;
        }
        @media (min-width: 768px) {
            body.backoffice .site-shell {
                padding-left: 0.75rem;
                padding-right: 0.75rem;
            }
        }
        .dashboard-kpi-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1rem;
        }
        .dashboard-kpi-card {
            min-width: 0;
        }
        .dashboard-kpi-card-revenue {
            grid-column: auto;
        }
        @media (min-width: 768px) and (max-width: 1279px) {
            .dashboard-kpi-grid {
                grid-template-columns: repeat(4, minmax(0, 1fr));
            }
            .dashboard-kpi-card {
                grid-column: span 1;
            }
            .dashboard-kpi-card-revenue {
                grid-column: span 2;
            }
        }
        @media (min-width: 1280px) {
            .dashboard-kpi-grid {
                grid-template-columns: repeat(8, minmax(0, 1fr));
            }
            .dashboard-kpi-card {
                grid-column: span 1;
            }
            .dashboard-kpi-card-revenue {
                grid-column: span 2;
            }
        }
        .site-header {
            padding-top: 1rem;
            position: relative;
        }
        .reader-access {
            position: absolute;
            top: 0.2rem;
            right: 0;
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            font-size: 0.74rem;
            font-weight: 500;
            text-transform: uppercase;
            letter-spacing: 0.03em;
        }
        .reader-access-icon {
            width: 16px;
            height: 16px;
            color: var(--text-main);
        }
        .reader-access a:hover {
            color: var(--accent);
        }
        .reader-access-logout-form {
            margin: 0;
            display: inline;
        }
        .reader-access-logout-btn {
            appearance: none;
            border: 0;
            background: transparent;
            color: inherit;
            padding: 0;
            margin: 0;
            cursor: pointer;
            font: inherit;
            text-transform: inherit;
            letter-spacing: inherit;
        }
        .reader-access-logout-btn:hover {
            color: var(--accent);
        }
        .brand-name {
            text-align: center;
            margin: 0 0 0.6rem;
        }
        .brand-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .brand-logo {
            width: min(320px, 46vw);
            height: auto;
            display: block;
        }
        .mobile-nav-toggle {
            display: none;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            gap: 0.24rem;
            margin: 0 auto 0.45rem;
            border: 1px solid var(--brand);
            background: var(--brand);
            color: #fff;
            border-radius: 4px;
            width: 42px;
            height: 38px;
            padding: 0;
            font-family: "Fjalla One", "DM Sans", Arial, Helvetica, sans-serif;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            font-size: 0.82rem;
            line-height: 1;
            transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
        }
        .mobile-nav-toggle-bar {
            display: block;
            width: 16px;
            height: 2px;
            background: currentColor;
            border-radius: 999px;
            flex: 0 0 auto;
            transform-origin: center;
            transition: transform 0.2s ease, opacity 0.2s ease;
        }
        .site-header.is-mobile-nav-open .mobile-nav-toggle {
            border-color: var(--brand);
            color: var(--brand);
            background: #fff;
        }
        .site-header.is-mobile-nav-open .mobile-nav-toggle-bar:nth-child(1) {
            transform: translateY(6px) rotate(45deg);
        }
        .site-header.is-mobile-nav-open .mobile-nav-toggle-bar:nth-child(2) {
            opacity: 0;
        }
        .site-header.is-mobile-nav-open .mobile-nav-toggle-bar:nth-child(3) {
            transform: translateY(-6px) rotate(-45deg);
        }
        .main-nav {
            border-top: 1px solid var(--brand);
            border-bottom: 1px solid var(--brand);
            padding: 0;
            overflow-x: hidden;
            white-space: normal;
            font-family: "Fjalla One", "DM Sans", Arial, Helvetica, sans-serif;
            font-weight: 400;
        }
        .main-nav ul {
            list-style: none;
            display: flex;
            flex-wrap: wrap;
            align-items: stretch;
            justify-content: center;
            gap: 1.55rem;
            margin: 0;
            padding: 0 0.85rem;
            font-size: 1.07rem;
            font-weight: 500;
        }
        .main-nav li {
            display: flex;
            align-items: stretch;
        }
        .main-nav a {
            display: inline-flex;
            align-items: center;
            min-height: 100%;
            padding: 0.68rem 0;
            transition: color 0.15s ease-in-out;
            font-family: "Fjalla One", "DM Sans", Arial, Helvetica, sans-serif;
            font-weight: 400;
            letter-spacing: 0.01em;
            text-transform: uppercase;
        }
        .main-nav a:hover {
            color: var(--accent);
        }
        .main-nav .is-primary {
            color: var(--accent);
        }
        .main-nav a.js-open-payment-modal.is-primary {
            color: #fff;
            background: var(--accent);
            border: 1px solid var(--accent);
            border-radius: 0;
            padding: 0 0.72rem;
        }
        .main-nav a.js-open-payment-modal.is-primary:hover {
            color: var(--accent);
            background: transparent;
        }
        main {
            padding-bottom: 3.5rem;
        }
        .site-footer {
            border-top: 1px solid var(--brand);
            margin-top: 4rem;
            padding: 1.6rem 0 2rem;
            font-size: 0.88rem;
            color: var(--text-muted);
            font-weight: 500;
        }
        .site-footer p,
        .site-footer li,
        .site-footer a,
        .reader-access,
        button,
        input,
        select,
        textarea,
        label {
            font-family: "DM Sans", Arial, Helvetica, sans-serif;
            font-weight: 500;
        }
        .footer-grid {
            display: grid;
            gap: 1.2rem;
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }
        .footer-grid h3 {
            margin: 0 0 0.4rem;
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            color: var(--text-main);
        }
        .footer-logo {
            display: block;
            width: 110px;
            height: auto;
            margin: 0 0 0.45rem;
            object-fit: contain;
        }
        .site-footer ul {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .site-footer li + li {
            margin-top: 0.4rem;
        }
        .footer-social {
            margin-top: 0.55rem;
            display: flex;
            align-items: center;
            gap: 0.55rem;
        }
        .footer-social a {
            width: 30px;
            height: 30px;
            border: 1px solid #c8bfae;
            border-radius: 999px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #f8f4ea;
            color: #1f1d1a;
            transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease;
        }
        .footer-social a:hover {
            color: #fff;
            background: var(--brand);
            border-color: var(--brand);
            transform: translateY(-1px);
        }
        .footer-social i {
            font-size: 0.85rem;
            line-height: 1;
        }
        .admin-file-input {
            width: 100%;
            border: 1px solid #c8bfae;
            background: #fffdf8;
            color: #2b2721;
            padding: 0.45rem 0.55rem;
            font-size: 0.9rem;
            line-height: 1.3;
        }
        .admin-file-input:focus {
            outline: 2px solid rgba(195, 66, 33, 0.35);
            outline-offset: 1px;
        }
        .admin-file-input::file-selector-button {
            border: 1px solid var(--brand);
            background: var(--brand);
            color: #f8f4ea;
            padding: 0.42rem 0.72rem;
            margin-right: 0.7rem;
            font-size: 0.72rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            cursor: pointer;
            transition: background-color 0.14s ease, color 0.14s ease, border-color 0.14s ease;
        }
        .admin-file-input:hover::file-selector-button {
            border-color: #e42313;
            background: #e42313;
            color: #1f1d1a;
        }
        .admin-file-input::-webkit-file-upload-button {
            border: 1px solid var(--brand);
            background: var(--brand);
            color: #f8f4ea;
            padding: 0.42rem 0.72rem;
            margin-right: 0.7rem;
            font-size: 0.72rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            cursor: pointer;
            transition: background-color 0.14s ease, color 0.14s ease, border-color 0.14s ease;
        }
        .admin-file-input:hover::-webkit-file-upload-button {
            border-color: #e42313;
            background: #e42313;
            color: #1f1d1a;
        }
        .admin-file-input.is-dragover {
            border-color: #e42313;
            background: #f9ece8;
            box-shadow: inset 0 0 0 1px rgba(195, 66, 33, 0.2);
        }
        .admin-file-trigger {
            width: 100%;
            border: 1px solid #c8bfae;
            background: #efe8d7;
            color: #1f1d1a;
            padding: 0.55rem 0.72rem;
            text-align: left;
            font-size: 0.82rem;
            letter-spacing: 0.04em;
            text-transform: uppercase;
            cursor: pointer;
            transition: border-color 0.14s ease, background-color 0.14s ease, color 0.14s ease;
        }
        .admin-file-trigger:hover {
            border-color: #e42313;
            background: #e42313;
            color: #1f1d1a;
        }
        .admin-file-trigger.is-dragover {
            border-color: #e42313;
            background: #efcfbf;
            color: #1f1d1a;
            box-shadow: inset 0 0 0 1px rgba(195, 66, 33, 0.22);
        }
        .admin-file-name {
            font-size: 0.75rem;
            color: #6d6556;
            margin: 0;
        }
        .copyright {
            margin-top: 1.5rem;
            padding-top: 1rem;
            text-align: center;
        }
        .copyright-heart {
            color: var(--brand);
        }
        .cookie-banner {
            position: fixed;
            left: 1rem;
            bottom: 1rem;
            width: max(320px, min(33.333vw, 520px));
            z-index: 80;
            border: 1px solid #b9ae97;
            background: #f8f4ea;
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
            border-radius: 4px;
            padding: 0.9rem;
            display: none;
        }
        @media (max-width: 900px) {
            .cookie-banner {
                left: 1rem;
                right: 1rem;
                width: auto;
            }
        }
        .cookie-banner.is-visible {
            display: block;
        }
        .cookie-banner h4 {
            margin: 0 0 0.3rem;
            font-size: 1rem;
            color: #1f1d1a;
        }
        .cookie-banner p {
            margin: 0;
            font-size: 0.84rem;
            color: #4a453d;
            line-height: 1.45;
        }
        .cookie-banner-actions {
            margin-top: 0.8rem;
            display: flex;
            flex-wrap: wrap;
            gap: 0.5rem;
        }
        .cookie-btn {
            border: 1px solid #1f1d1a;
            background: #efe8d7;
            color: #1f1d1a;
            padding: 0.35rem 0.7rem;
            font-size: 0.72rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            cursor: pointer;
        }
        .cookie-btn.is-primary {
            background: var(--brand);
            border-color: var(--brand);
            color: #f8f4ea;
        }
        .offers-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1rem;
        }
        .offer-selector {
            border-top: 1px solid var(--brand);
            padding-top: 0.7rem;
            margin-bottom: 0.9rem;
        }
        .offer-selector-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.8rem;
            margin-bottom: 0.6rem;
        }
        .offer-selector-label {
            margin: 0;
            font-size: 0.72rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            font-weight: 500;
            color: #5d5549;
        }
        .offer-change-btn {
            border: 1px solid #c8bfae;
            background: #efe8d7;
            color: #1f1d1a;
            padding: 0.32rem 0.6rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            font-size: 0.65rem;
            font-weight: 500;
        }
        .offer-selector-body {
            max-height: 820px;
            opacity: 1;
            overflow: hidden;
            transition: max-height 0.35s ease, opacity 0.22s ease, margin 0.22s ease;
        }
        .offer-selector.is-collapsed .offer-selector-body {
            max-height: 0;
            opacity: 0;
            margin-top: -0.2rem;
            margin-bottom: 0;
            pointer-events: none;
        }
        .offer-loading {
            grid-column: 1 / -1;
            border: 1px solid #d2c8b6;
            background: #f8f4ea;
            border-radius: 4px;
            text-align: center;
            padding: 2rem 1rem;
        }
        .offer-card {
            border: 1px solid #c8bfae;
            background: #f8f4ea;
            border-radius: 4px;
            padding: 1rem;
            display: flex;
            flex-direction: column;
            min-height: 100%;
        }
        .offer-header {
            display: flex;
            align-items: center;
            gap: 0.6rem;
            border-bottom: 1px solid var(--brand);
            padding-bottom: 0.65rem;
            margin-bottom: 0.75rem;
        }
        .offer-icon {
            width: 1.9rem;
            height: 1.9rem;
            color: #1f1d1a;
        }
        .offer-title {
            margin: 0;
            font-size: 1.15rem;
            color: #1f1d1a;
            line-height: 1.2;
        }
        .offer-price-row {
            display: flex;
            align-items: baseline;
            gap: 0.5rem;
        }
        .offer-price {
            font-size: 2rem;
            color: #1f1d1a;
            line-height: 1;
        }
        .offer-meta {
            font-size: 0.72rem;
            text-transform: uppercase;
            color: #6c6356;
            letter-spacing: 0.03em;
            font-weight: 500;
        }
        .offer-description {
            margin: 0.75rem 0 1rem;
            color: #5c5549;
            font-size: 0.85rem;
            line-height: 1.45;
        }
        .offer-cta {
            margin-top: auto;
            width: 100%;
            border: 1px solid var(--brand);
            background: var(--brand);
            color: #f8f4ea;
            padding: 0.55rem 0.8rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            font-size: 0.7rem;
            font-weight: 500;
        }
        .offer-cta:hover {
            background: var(--brand);
            border-color: var(--brand);
        }
        .offer-single-issue-inline {
            margin-top: 0.45rem;
            margin-bottom: 0.65rem;
        }
        .offer-single-issue-inline select {
            width: 100%;
            border: 1px solid #c8bfae;
            background: #fffdf8;
            padding: 0.72rem 0.85rem;
            color: #1f1d1a;
            font-size: 1rem;
        }
        .offer-support-label {
            display: block;
            margin-top: 0.5rem;
            margin-bottom: 0.25rem;
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 0.08em;
            color: #6d6556;
        }
        .offer-support-input {
            width: 100%;
            border: 1px solid #c8bfae;
            background: #fffdf8;
            padding: 0.72rem 0.85rem;
            color: #1f1d1a;
            font-size: 1rem;
        }
        .offer-support-help,
        .offer-support-line {
            margin-top: 0.32rem;
            margin-bottom: 0;
            font-size: 0.9rem;
            color: #6d6556;
            line-height: 1.5;
        }
        .offer-single-cover-preview {
            margin-bottom: 0.65rem;
            border: 0;
            background: transparent;
            border-radius: 0;
            padding: 0;
            min-height: 120px;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .offer-single-cover-preview img {
            width: 100%;
            max-height: 220px;
            object-fit: contain;
            border: 0;
            background: #f8f4ea;
        }
        .offer-single-cover-preview p {
            margin: 0;
            font-size: 0.78rem;
            color: #6d6556;
            text-align: center;
        }
        .offer-single-layout {
            display: grid;
            grid-template-columns: 0.9fr 1.1fr;
            gap: 0.6rem;
            align-items: start;
        }
        .offer-single-column {
            min-width: 0;
        }
        .offer-single-column .offer-single-cover-preview {
            margin-bottom: 0;
            min-height: 210px;
        }
        .offer-single-column .offer-single-cover-preview img {
            max-height: 320px;
        }
        .offer-modal {
            position: fixed;
            inset: 0;
            z-index: 90;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 1rem;
        }
        .offer-modal.hidden {
            display: none !important;
        }
        .offer-modal-overlay {
            position: absolute;
            inset: 0;
            background: rgba(16, 15, 13, 0.58);
            backdrop-filter: blur(4px);
        }
        .offer-modal-panel {
            width: min(100%, 820px);
            border: 1px solid #d6ccba;
            background: linear-gradient(180deg, #fffefc 0%, #f8f4ea 100%);
            box-shadow: 0 18px 50px rgba(0, 0, 0, 0.24);
            border-radius: 4px;
            position: relative;
            z-index: 1;
            padding: 1.75rem 1.75rem 1.45rem;
            max-height: calc(100vh - 2rem);
            overflow-y: auto;
        }
        .offer-modal-close {
            position: absolute;
            top: 0.65rem;
            right: 0.65rem;
            border: 1px solid #d6ccba;
            background: #fffdf8;
            color: #1f1d1a;
            padding: 0.22rem;
            border-radius: 999px;
            cursor: pointer;
            transition: all 0.15s ease;
        }
        .offer-modal-close:hover {
            border-color: var(--brand);
            color: var(--brand);
            transform: translateY(-1px);
        }
        .offer-modal-title {
            margin: 0 0 0.7rem;
            color: #1f1d1a;
            font-size: 2rem;
            line-height: 1.1;
        }
        .offer-compact-note {
            margin: 0 0 1.2rem;
            color: #5d5549;
            font-size: 1rem;
            line-height: 1.55;
            max-width: 100%;
        }
        .offer-step-recap {
            margin: 0 0 1rem;
            padding: 0.8rem 0.95rem;
            border: 1px solid #d8cfbf;
            background: #fffdf8;
            border-radius: 4px;
            font-size: 0.92rem;
            color: #4f493d;
        }
        .offer-form-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 0.45rem;
            margin-bottom: 0.55rem;
        }
        .offer-checkbox-card {
            border: 1px solid #d8cfbf;
            background: #fffdf8;
            padding: 0.85rem 0.95rem;
            display: flex;
            align-items: center;
            gap: 0.65rem;
            font-size: 0.95rem;
            color: #1f1d1a;
            border-radius: 4px;
            cursor: pointer;
            transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
        }
        .offer-checkbox-card:hover {
            border-color: #c3b89f;
            background: #fffdfa;
        }
        .offer-checkbox-card input:checked + span {
            font-weight: 500;
        }
        .offer-checkbox-card:has(input:checked) {
            border-color: var(--brand);
            box-shadow: 0 0 0 2px rgba(195, 66, 33, 0.14) inset;
            background: #fffcf2;
        }
        .offer-checkbox-card input {
            accent-color: var(--brand);
        }
        .offer-inline-group {
            display: flex;
            align-items: center;
            gap: 0.95rem;
            border: 1px solid #d8cfbf;
            background: #fffdf8;
            padding: 0.72rem 0.9rem;
            margin-bottom: 0.8rem;
            font-size: 0.95rem;
            color: #1f1d1a;
            border-radius: 4px;
        }
        .offer-inline-group input {
            accent-color: var(--brand);
        }
        .offer-inline-label {
            text-transform: uppercase;
            letter-spacing: 0.03em;
            font-size: 0.8rem;
            color: #6a6254;
        }
        .offer-duration-note {
            margin: -0.2rem 0 0.6rem;
            font-size: 0.7rem;
            line-height: 1.35;
            color: #6a6254;
        }
        .offer-auth-gate {
            margin: 0.7rem 0 1.2rem;
            border: 1px solid #d8cfbf;
            background: #fffdf8;
            border-radius: 4px;
            padding: 1rem;
        }
        .offer-auth-title {
            margin: 0 0 0.7rem;
            font-size: 1rem;
            color: #1f1d1a;
            font-weight: 500;
        }
        .offer-auth-help {
            margin: -0.15rem 0 0.6rem;
            font-size: 0.86rem;
            color: #6d6556;
        }
        .offer-auth-tabs {
            display: flex;
            gap: 0.4rem;
            margin-bottom: 0.55rem;
        }
        .offer-auth-tab {
            border: 1px solid #d2c8b6;
            background: #f5efe3;
            color: #1f1d1a;
            padding: 0.55rem 0.8rem;
            font-size: 0.82rem;
            text-transform: uppercase;
            letter-spacing: 0.03em;
            border-radius: 4px;
        }
        .offer-auth-tab.is-active {
            border-color: var(--brand);
            background: var(--brand);
            color: #f8f4ea;
        }
        .offer-auth-form {
            display: grid;
            gap: 0.65rem;
        }
        .offer-auth-form input {
            width: 100%;
            border: 1px solid #c8bfae;
            background: #fffdf8;
            padding: 0.72rem 0.85rem;
            color: #1f1d1a;
            font-size: 1rem;
        }
        .offer-auth-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.45rem;
        }
        .offer-auth-error {
            margin: 0.5rem 0 0;
            color: #7f2e27;
            font-size: 0.9rem;
        }
        .offer-modal-label {
            display: block;
            margin-bottom: 0.55rem;
            color: #5d5549;
            font-size: 0.86rem;
            text-transform: uppercase;
            letter-spacing: 0.04em;
            font-weight: 500;
        }
        .offer-modal-amount {
            color: #1f1d1a;
            font-size: 2rem;
            margin-bottom: 0.8rem;
        }
        .offer-modal-input {
            width: 100%;
            border: 1px solid #c8bfae;
            background: #fffdf8;
            padding: 0.75rem 0.95rem;
            color: #1f1d1a;
            font-size: 1rem;
        }
        .offer-modal-total {
            margin: 0.95rem 0 1.15rem;
            padding: 1rem 1.05rem;
            border: 1px solid #ddd4c4;
            border-left: 3px solid var(--brand);
            background: #f7f2e7;
            color: #2e2a23;
            font-size: 1rem;
            border-radius: 4px;
        }
        .offer-tax-note {
            margin: 0.35rem 0 0;
            font-size: 0.86rem;
            color: #6b6355;
        }
        .offer-modal-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.55rem;
            margin-top: 0.7rem;
        }
        .offer-switch-row {
            margin: 0.62rem 0 0;
            text-align: center;
            font-size: 0.71rem;
            color: #6a6254;
        }
        .offer-switch-row a {
            text-decoration: none;
            border-bottom: 1px dotted #6a6254;
            transition: color 0.15s ease, border-color 0.15s ease;
        }
        .offer-switch-row a:hover {
            color: var(--brand);
            border-color: var(--brand);
        }
        #modal-subscription.is-compact #sub-config-body {
            display: none;
        }
        .offer-modal-btn {
            border-color: #d2c8b6;
            background: #f5efe3;
            padding: 0.8rem 1rem;
            font-size: 0.82rem;
            border-radius: 9px;
            letter-spacing: 0.04em;
        }
        .offer-modal-btn:hover {
            border-color: #beb39d;
            background: #f0e7d6;
            color: #1f1d1a;
            transform: none;
        }
        .offer-modal-btn-primary {
            background: var(--brand);
            border-color: var(--brand);
        }
        .offer-modal-btn-primary:hover {
            background: #ab371b;
            border-color: #ab371b;
            color: #fff;
        }
        .offer-modal-btn:disabled { opacity: 0.45; }
        button[class*="bg-[#1f1d1a]"],
        input[type="submit"][class*="bg-[#1f1d1a]"],
        a[class*="bg-[#1f1d1a]"] {
            background: var(--brand) !important;
            border-color: var(--brand) !important;
            color: #f8f4ea !important;
        }
        #payment-element .StripeElement,
        #payment-element .p-PaymentElement {
            min-height: 48px;
        }
        .scroll-top-btn {
            position: fixed;
            right: 1.15rem;
            bottom: 30vh;
            z-index: 70;
            width: 44px;
            height: 44px;
            border: 1px solid #1f1d1a;
            border-radius: 999px;
            background: #f8f4ea;
            color: #1f1d1a;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.16);
            cursor: pointer;
            opacity: 0;
            transform: translateY(10px);
            pointer-events: none;
            transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.15s ease, color 0.15s ease;
        }
        .scroll-top-btn:hover {
            background: var(--brand);
            color: #fff;
            border-color: var(--brand);
        }
        .scroll-top-btn.is-visible {
            opacity: 1;
            transform: translateY(0);
            pointer-events: auto;
        }
        .scroll-top-btn svg {
            width: 17px;
            height: 17px;
        }
        body.backoffice .scroll-top-btn {
            bottom: 30vh;
        }
        .animate-spin {
            animation: spin 1s linear infinite;
        }
        .clickable-article-card {
            transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
        }
        .clickable-article-card:hover {
            transform: translateY(-3px);
            box-shadow: 0 10px 20px rgba(23, 20, 14, 0.09);
        }
        .clickable-article-card__title {
            transition: color 0.16s ease;
        }
        .clickable-article-card:hover .clickable-article-card__title {
            color: #e42313;
        }
        .clickable-article-card__overlay {
            outline: none;
        }
        .clickable-article-card__overlay:focus-visible {
            outline: 2px solid #e42313;
            outline-offset: -2px;
        }
        .copyright-dev-link {
            text-decoration: none;
        }
        .admin-brand-logo {
            height: 52px;
            width: auto;
            display: block;
        }
        .admin-brand-label {
            color: #e42313;
        }
        .dashboard-audience-kpis-grid {
            grid-template-columns: repeat(6, minmax(0, 1fr));
        }
        .dashboard-device-chart {
            height: 120px;
            margin-top: 0.4rem;
        }
        .dashboard-device-bar {
            display: flex;
            align-items: stretch;
            height: 12px;
            margin-top: 0.5rem;
            background: #efe8d7;
            border: 1px solid #d8cfbf;
            border-radius: 999px;
            overflow: hidden;
        }
        .dashboard-device-bar__segment {
            display: block;
            height: 100%;
        }
        .dashboard-device-bar__segment--desktop {
            background: #1f1d1a;
        }
        .dashboard-device-bar__segment--mobile {
            background: #e42313;
        }
        .dashboard-device-bar__segment--tablet {
            background: #9d8d70;
        }
        .dashboard-device-legend {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 0.35rem 0.75rem;
            margin-top: 0.45rem;
            font-size: 0.68rem;
            color: #6f6758;
        }
        .dashboard-device-legend span {
            display: inline-flex;
            align-items: center;
            gap: 0.35rem;
            justify-content: center;
        }
        .dashboard-device-dot {
            width: 8px;
            height: 8px;
            border-radius: 999px;
            display: inline-block;
        }
        .dashboard-device-dot--desktop {
            background: #1f1d1a;
        }
        .dashboard-device-dot--mobile {
            background: #e42313;
        }
        .dashboard-device-dot--tablet {
            background: #9d8d70;
        }
        .dashboard-audience-chart-box {
            height: 640px;
        }
        .admin-ga-config-grid {
            grid-template-columns: minmax(520px, 1fr) 300px 260px;
            align-items: start;
        }
        .admin-ga-audience-grid {
            grid-template-columns: repeat(4, minmax(0, 1fr));
        }
        .media-caption-u,
        .image-caption,
        .article-list-card-caption,
        .article-hero-caption,
        .article-related-caption,
        #article-reading-content figure.image figcaption,
        #article-reading-content figure.image .ck-caption {
            margin: 0;
            padding: 0.35rem 0.85rem 0.45rem;
            font-size: 0.68rem;
            line-height: 1.35;
            color: #1f1d1a;
            font-style: italic;
            text-align: right;
            background: #fffdf8;
            border: 0;
            border-radius: 0;
        }
        .media-caption-u::before,
        .image-caption::before,
        .article-list-card-caption::before,
        .article-hero-caption::before,
        .article-related-caption::before,
        #article-reading-content figure.image figcaption::before,
        #article-reading-content figure.image .ck-caption::before {
            content: none;
        }
        @keyframes spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
        @media (max-width: 900px) {
            .site-shell {
                width: min(1360px, calc(100% - 2.5rem));
            }
            .site-header {
                padding-top: 3.15rem;
            }
            .brand-name {
                margin-top: 0;
            }
            .reader-access {
                position: absolute;
                top: 0.42rem;
                left: 0;
                right: auto;
                justify-content: flex-start;
                align-items: center;
                min-height: 44px;
                margin-bottom: 0;
                padding-right: 0;
            }
            .mobile-nav-toggle {
                display: inline-flex;
                position: absolute;
                top: 0.42rem;
                right: 0.32rem;
                margin: 0;
                width: 48px;
                height: 44px;
                z-index: 61;
            }
            .main-nav {
                display: block;
                position: fixed;
                inset: 0;
                background: #f8f4ea;
                padding: 5rem 1rem 1.5rem;
                opacity: 0;
                pointer-events: none;
                transform: translateY(-8px);
                transition: opacity 0.2s ease, transform 0.2s ease;
                z-index: 60;
                border: 0;
                margin-top: 0;
            }
            .main-nav::before {
                content: "";
                position: absolute;
                inset: 0;
                background: center / 75% auto no-repeat url("/assets/picto-redac.webp");
                opacity: 0.14;
                filter: blur(2px);
                pointer-events: none;
            }
            .main-nav > ul {
                position: relative;
                z-index: 1;
            }
            .site-header.is-mobile-nav-open .main-nav {
                opacity: 1;
                pointer-events: auto;
                transform: translateY(0);
            }
            .main-nav ul {
                flex-direction: column;
                align-items: stretch;
                gap: 0;
                padding: 0.2rem 0.45rem 0.4rem;
                font-size: 1rem;
            }
            .main-nav li {
                width: 100%;
                border-top: 0;
            }
            .main-nav li:first-child {
                border-top: 0;
            }
            .main-nav a {
                width: 100%;
                justify-content: center;
                padding: 0.64rem 0.45rem;
            }
            .main-nav a.js-open-payment-modal.is-primary {
                justify-content: center;
                margin: 0.15rem 0;
                min-height: 40px;
            }
            .offers-grid {
                grid-template-columns: 1fr;
            }
            .offer-modal {
                padding: 0.55rem;
                align-items: flex-start;
            }
            .offer-modal-panel {
                width: 100%;
                margin-top: 0.25rem;
                padding: 1.2rem;
                max-height: calc(100vh - 1rem);
                border-radius: 4px;
            }
            .offer-modal-title {
                font-size: 1.7rem;
            }
            .offer-compact-note,
            .offer-step-recap,
            .offer-checkbox-card,
            .offer-inline-group,
            .offer-auth-title,
            .offer-auth-help,
            .offer-auth-form input,
            .offer-single-issue-inline select,
            .offer-auth-error,
            .offer-modal-total,
            .offer-tax-note,
            .offer-support-label,
            .offer-support-input,
            .offer-support-help,
            .offer-support-line,
            .offer-switch-row {
                font-size: 0.94rem;
            }
            .offer-modal-btn,
            .offer-auth-tab,
            .offer-modal-label,
            .offer-inline-label {
                font-size: 0.78rem;
            }
            .scroll-top-btn,
            body.backoffice .scroll-top-btn {
                bottom: 22vh;
            }
            .offer-modal-actions {
                grid-template-columns: 1fr;
            }
            .offer-form-grid {
                grid-template-columns: 1fr;
            }
            .offer-inline-group {
                flex-wrap: wrap;
                gap: 0.45rem 0.85rem;
            }
            .offer-auth-grid {
                grid-template-columns: 1fr;
            }
            .footer-grid {
                grid-template-columns: 1fr;
                text-align: center;
                justify-items: center;
            }
            .site-footer ul {
                text-align: center;
            }
            .footer-logo {
                margin-left: auto;
                margin-right: auto;
            }
            .footer-social {
                justify-content: center;
            }
            .dashboard-audience-kpis-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .dashboard-device-legend {
                grid-template-columns: 1fr;
            }
            .admin-ga-config-grid {
                grid-template-columns: 1fr;
            }
            .admin-ga-audience-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
