/*
 * Thèmes du site — variables pures, activées via [data-theme].
 *
 * « Café Signature » (classic) reprend exactement les valeurs historiques
 * déclarées dans :root de public/css/app.css et public/css/admin.css :
 * aucune régression visuelle si le thème par défaut est conservé.
 */

/* ============================================================
   Café Signature — style historique (par défaut)
   ============================================================ */
[data-theme="classic"] {
    --bg: #faf6f1;
    --surface: #ffffff;
    --surface-2: #f4ece3;
    --ink: #2b1d16;
    --muted: #6f5b50;
    --brand: #6f4e37;
    --brand-dark: #4a3327;
    --brand-ink: #4a3327;
    --accent: #c98a3c;
    --accent-ink: #8a5a1f;
    --accent-soft: #f0dcc2;
    --line: #e8ddd2;
    --success: #2f7d5b;
    --radius: 16px;
    --radius-sm: 10px;
    --shadow: 0 10px 30px rgba(43, 29, 22, 0.08);
    --shadow-lg: 0 24px 60px rgba(43, 29, 22, 0.14);
    --on-brand: #fffdf9;
    --on-accent: #2b1d16;
    --on-whatsapp: #06301a;

    --a-bg: #f5f6f8;
    --a-surface: #ffffff;
    --a-surface-2: #f8f9fb;
    --a-ink: #1f2430;
    --a-muted: #6b7280;
    --a-line: #e7e9ee;
    --a-brand: #6f4e37;
    --a-brand-dark: #44311f;
    --a-accent: #c98a3c;
    --a-sidebar: #2a1a10;
    --a-sidebar-2: #4c311d;
    --a-radius: 14px;
    --a-radius-sm: 10px;
    --a-shadow: 0 1px 2px rgba(24, 20, 17, 0.04), 0 8px 24px rgba(24, 20, 17, 0.06);
}

/* ============================================================
   Néo-bistro Prestige — noir chaud + or
   ============================================================ */
[data-theme="premium"] {
    --bg: #12100e;
    --surface: #1b1713;
    --surface-2: #241e18;
    --ink: #f4ede2;
    --muted: #b7a894;
    --brand: #d9a646;
    --brand-dark: #c08a2c;
    --brand-ink: #e9c581;
    --accent: #e0b25e;
    --accent-ink: #eecb8c;
    --accent-soft: #3a2e20;
    --line: #33291f;
    --success: #6fbf98;
    --radius: 18px;
    --radius-sm: 11px;
    --shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
    --shadow-lg: 0 30px 80px rgba(0, 0, 0, 0.6);
    --on-brand: #1a1206;
    --on-accent: #1a1206;
    --on-whatsapp: #06301a;

    --a-bg: #f5efe4;
    --a-surface: #fffdf8;
    --a-surface-2: #f0e7d8;
    --a-ink: #241c13;
    --a-muted: #7b6a56;
    --a-line: #e4d8c4;
    --a-brand: #8a5a1f;
    --a-brand-dark: #6d4514;
    --a-accent: #c8952f;
    --a-sidebar: #12100c;
    --a-sidebar-2: #2a2018;
    --a-radius: 15px;
    --a-radius-sm: 10px;
    --a-shadow: 0 1px 2px rgba(36, 28, 19, 0.05), 0 10px 28px rgba(36, 28, 19, 0.08);
}

[data-theme="premium"] .site-header {
    background: color-mix(in srgb, var(--bg) 82%, transparent);
    backdrop-filter: blur(14px);
    border-bottom-color: var(--line);
}

[data-theme="premium"] .site-footer {
    background: #0c0a08;
    color: rgba(255, 255, 255, 0.82);
}

[data-theme="premium"] .btn-primary,
[data-theme="premium"] .btn-outline:hover,
[data-theme="premium"] .pack-badge,
[data-theme="premium"] .step-num,
[data-theme="premium"] .lang-switch a.active,
[data-theme="premium"] .pager-item.active,
[data-theme="premium"] .menu-open-orders-btn,
[data-theme="premium"] .menu-add-btn,
[data-theme="premium"] .menu-cart-button,
[data-theme="premium"] .menu-pill.active,
[data-theme="premium"] .form-section,
[data-theme="premium"] .resv-hero,
[data-theme="premium"] .resv-day.is-active,
[data-theme="premium"] .resv-room.is-active,
[data-theme="premium"] .resv-slot.is-selected,
[data-theme="premium"] .resv-cal-cell.is-active {
    color: #1a1206;
}

[data-theme="premium"] .brand-mark {
    color: #1a1206;
    box-shadow: 0 0 0 1px rgba(233, 197, 129, 0.25), 0 10px 26px rgba(0, 0, 0, 0.35);
}

[data-theme="premium"] .menu-item-media--empty,
[data-theme="premium"] .tracking-pop-box,
[data-theme="premium"] .resv-stepper-btn,
[data-theme="premium"] .resv-cal-nav {
    background: var(--surface);
    color: var(--ink);
}

[data-theme="premium"] .resv-track {
    background:
        repeating-linear-gradient(45deg, rgba(224, 178, 94, 0.06) 0 8px, transparent 8px 16px),
        var(--surface);
}

[data-theme="premium"] .resv-status-pending,
[data-theme="premium"] .resv-status-confirmed,
[data-theme="premium"] .resv-status-cancelled {
    background: var(--surface-2);
    color: var(--ink);
}

[data-theme="premium"] .hero-badge,
[data-theme="premium"] .eyebrow {
    background: var(--accent-soft);
    color: var(--brand-ink);
}

/* ============================================================
   Atelier Minimal — blanc cassé + terracotta
   ============================================================ */
[data-theme="minimal"] {
    --bg: #fbfaf7;
    --surface: #ffffff;
    --surface-2: #f3f1ec;
    --ink: #201d1a;
    --muted: #6e675f;
    --brand: #b5562f;
    --brand-dark: #8f3f21;
    --brand-ink: #8f3f21;
    --accent: #d98b5f;
    --accent-ink: #a34e22;
    --accent-soft: #f6e3d8;
    --line: #e5e0d8;
    --success: #2f7d5b;
    --radius: 14px;
    --radius-sm: 9px;
    --shadow: 0 12px 34px rgba(32, 29, 26, 0.07);
    --shadow-lg: 0 28px 70px rgba(32, 29, 26, 0.12);
    --on-brand: #fffdf9;
    --on-accent: #201d1a;
    --on-whatsapp: #06301a;

    --a-bg: #f7f5f1;
    --a-surface: #ffffff;
    --a-surface-2: #f3f1ec;
    --a-ink: #201d1a;
    --a-muted: #6e675f;
    --a-line: #e5e0d8;
    --a-brand: #b5562f;
    --a-brand-dark: #8f3f21;
    --a-accent: #d98b5f;
    --a-sidebar: #241a15;
    --a-sidebar-2: #3a281f;
    --a-radius: 13px;
    --a-radius-sm: 9px;
    --a-shadow: 0 1px 2px rgba(32, 29, 26, 0.04), 0 8px 24px rgba(32, 29, 26, 0.06);
}

[data-theme="minimal"] .site-header {
    background: color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter: blur(12px);
}

/* ============================================================
   Éditorial Cadré — angles droits, lignes franches
   ============================================================ */
[data-theme="editorial"] {
    --bg: #f3efe7;
    --surface: #faf8f3;
    --surface-2: #e8e2d6;
    --ink: #121212;
    --muted: #5f5a52;
    --brand: #121212;
    --brand-dark: #c0392b;
    --brand-ink: #121212;
    --accent: #c0392b;
    --accent-ink: #a3281c;
    --accent-soft: #efe6dc;
    --line: #c9c1b4;
    --success: #2f7d5b;
    --radius: 0;
    --radius-sm: 0;
    --shadow: none;
    --shadow-lg: none;
    --on-brand: #f3efe7;
    --on-accent: #fffdf9;
    --on-whatsapp: #06301a;
    --font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    --a-bg: #f3efe7;
    --a-surface: #faf8f3;
    --a-surface-2: #e8e2d6;
    --a-ink: #121212;
    --a-muted: #5f5a52;
    --a-line: #c9c1b4;
    --a-brand: #121212;
    --a-brand-dark: #121212;
    --a-accent: #c0392b;
    --a-sidebar: #121212;
    --a-sidebar-2: #121212;
    --a-radius: 0;
    --a-radius-sm: 0;
    --a-shadow: none;
}

[data-theme="editorial"] .site-header {
    background: var(--bg);
    backdrop-filter: none;
    border-bottom: 2px solid var(--ink);
}

[data-theme="editorial"] .nav {
    min-height: 64px;
}

[data-theme="editorial"] .nav-links {
    gap: 22px;
}

[data-theme="editorial"] .nav-links a {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink);
}

[data-theme="editorial"] .brand {
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

[data-theme="editorial"] .brand-mark {
    border-radius: 0;
    background: var(--ink);
    color: var(--bg);
}

[data-theme="editorial"] .lang-switch,
[data-theme="editorial"] .lang-switch a {
    border-radius: 0;
}

[data-theme="editorial"] .lang-switch {
    border: 1px solid var(--line);
    background: transparent;
    padding: 0;
}

[data-theme="editorial"] .lang-switch a.active {
    background: var(--ink);
    color: var(--bg);
}

[data-theme="editorial"] .hero {
    padding: 64px 0 48px;
    background: none;
    border-bottom: 2px solid var(--ink);
}

[data-theme="editorial"] .hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
}

[data-theme="editorial"] .hero-badge {
    border-radius: 0;
    padding: 6px 0;
    background: transparent;
    border-top: 2px solid var(--accent);
    color: var(--accent);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 0.7rem;
}

[data-theme="editorial"] .hero-title {
    font-size: clamp(2.6rem, 7vw, 5rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 0.98;
    text-transform: uppercase;
    max-width: 14ch;
}

[data-theme="editorial"] .hero-subtitle {
    max-width: 620px;
    font-size: 1.06rem;
}

[data-theme="editorial"] .hero-card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    border: 2px solid var(--ink);
    background: transparent;
    box-shadow: none;
    padding: 24px;
}

[data-theme="editorial"] .hero-card h3 {
    grid-column: 1 / -1;
    margin: 0;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

[data-theme="editorial"] .hero-stats {
    gap: 0;
    text-align: start;
    border: 1px solid var(--line);
}

[data-theme="editorial"] .hero-stat {
    padding: 12px 14px;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-left: 3px solid var(--accent);
    background: transparent;
}

[data-theme="editorial"] .hero-stat:last-child {
    border-bottom: 0;
}

[data-theme="editorial"] .hero-list {
    margin: 0;
}

[data-theme="editorial"] .btn {
    border-radius: 0;
    padding: 13px 22px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

[data-theme="editorial"] .btn:hover {
    transform: none;
}

[data-theme="editorial"] .section {
    padding: 64px 0;
}

[data-theme="editorial"] .section-head {
    display: grid;
    grid-template-columns: minmax(130px, 210px) minmax(0, 1fr);
    gap: 6px 32px;
    max-width: none;
    border-top: 2px solid var(--ink);
    padding-top: 20px;
    margin-bottom: 32px;
}

[data-theme="editorial"] .section-head .eyebrow {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin: 0;
    padding-right: 20px;
    border-right: 1px solid var(--line);
    color: var(--accent);
}

[data-theme="editorial"] .section-head .section-title {
    grid-column: 2;
    margin: 0 0 6px;
    font-size: clamp(1.6rem, 3.4vw, 2.5rem);
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

[data-theme="editorial"] .section-head .section-subtitle {
    grid-column: 2;
    margin: 0;
    max-width: 640px;
}

[data-theme="editorial"] .services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--line);
}

[data-theme="editorial"] .service-card {
    border: 0;
    border-bottom: 1px solid var(--line);
    padding: 26px 30px;
    background: transparent;
}

[data-theme="editorial"] .service-card:nth-child(odd) {
    border-right: 1px solid var(--line);
}

[data-theme="editorial"] .service-card:hover {
    transform: none;
    box-shadow: none;
    background: var(--surface-2);
}

[data-theme="editorial"] .service-icon {
    width: 40px;
    height: 40px;
    border-radius: 0;
    background: transparent;
    border: 1px solid var(--ink);
    color: var(--ink);
}

[data-theme="editorial"] .packs-grid {
    gap: 0;
    border: 2px solid var(--ink);
}

[data-theme="editorial"] .pack-card {
    border: 0;
    border-right: 1px solid var(--line);
    border-radius: 0;
    padding: 22px;
    background: transparent;
}

[data-theme="editorial"] .pack-card:last-child {
    border-right: 0;
}

[data-theme="editorial"] .pack-card:hover {
    transform: none;
    box-shadow: none;
}

[data-theme="editorial"] .pack-card.featured {
    border-color: var(--line);
    background: var(--surface-2);
    box-shadow: none;
}

[data-theme="editorial"] .pack-badge {
    top: 0;
    border-radius: 0;
    padding: 4px 10px;
    background: var(--accent);
    letter-spacing: 0.1em;
}

[data-theme="editorial"] .pack-yearly {
    border-radius: 0;
}

[data-theme="editorial"] .steps {
    gap: 0;
    border-top: 1px solid var(--line);
}

[data-theme="editorial"] .step {
    text-align: start;
    padding: 22px;
    border-bottom: 1px solid var(--line);
    border-right: 1px solid var(--line);
}

[data-theme="editorial"] .step:last-child {
    border-right: 0;
}

[data-theme="editorial"] .step-num {
    width: 42px;
    height: 42px;
    margin: 0 0 14px;
    border-radius: 0;
    background: var(--ink);
    color: var(--bg);
    font-size: 1.1rem;
}

[data-theme="editorial"] .testimonials-grid {
    gap: 0;
    border: 1px solid var(--line);
}

[data-theme="editorial"] .testimonial {
    border: 0;
    border-right: 1px solid var(--line);
    border-radius: 0;
    padding: 24px;
    background: transparent;
}

[data-theme="editorial"] .testimonial:last-child {
    border-right: 0;
}

[data-theme="editorial"] .faq-list {
    max-width: none;
    gap: 0;
    border-top: 1px solid var(--line);
}

[data-theme="editorial"] .faq-item {
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    padding: 0 18px;
    background: transparent;
}

[data-theme="editorial"] .site-footer {
    background: var(--ink);
    color: rgba(255, 255, 255, 0.78);
    border-top: 2px solid var(--ink);
}

[data-theme="editorial"] .site-footer h4 {
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 0.8rem;
}

[data-theme="editorial"] .badge,
[data-theme="editorial"] .restaurant-badge,
[data-theme="editorial"] .pager-item,
[data-theme="editorial"] .menu-pill,
[data-theme="editorial"] .resv-status-badge {
    border-radius: 0;
}

[data-theme="editorial"] .admin-sidebar {
    background-image: none;
}

[data-theme="editorial"] .admin-nav a,
[data-theme="editorial"] .admin-card,
[data-theme="editorial"] .stat-card,
[data-theme="editorial"] .admin-brand-icon {
    border-radius: 0;
}

[data-theme="editorial"] .admin-card h2 {
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

[data-theme="editorial"] .admin-table th {
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

@media (max-width: 720px) {
    [data-theme="editorial"] .hero-card {
        grid-template-columns: 1fr;
    }

    [data-theme="editorial"] .section-head {
        grid-template-columns: 1fr;
    }

    [data-theme="editorial"] .section-head .eyebrow {
        grid-column: 1;
        grid-row: auto;
        border-right: 0;
        padding-right: 0;
    }

    [data-theme="editorial"] .services-grid {
        grid-template-columns: 1fr;
    }

    [data-theme="editorial"] .service-card:nth-child(odd) {
        border-right: 0;
    }

    [data-theme="editorial"] .packs-grid {
        border: 0;
    }

    [data-theme="editorial"] .pack-card {
        border: 1px solid var(--line);
        border-bottom: 0;
    }

    [data-theme="editorial"] .pack-card:last-child {
        border-bottom: 1px solid var(--line);
    }

    [data-theme="editorial"] .steps {
        border-top: 0;
    }

    [data-theme="editorial"] .step {
        border-right: 0;
        border-top: 1px solid var(--line);
    }

    [data-theme="editorial"] .testimonial {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    [data-theme="editorial"] .testimonial:last-child {
        border-bottom: 0;
    }
}

/* Variante « Cadré » — chaque bloc de service / fonctionnalité est encadré */
[data-theme="editorial"][data-variant="cadre"] .services-grid {
    gap: 18px;
    border-top: 0;
}

[data-theme="editorial"][data-variant="cadre"] .service-card {
    padding: 26px;
    border: 2px solid var(--ink);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="cadre"] .service-card:nth-child(odd) {
    border-right: 2px solid var(--ink);
}

[data-theme="editorial"][data-variant="cadre"] .service-card:hover {
    transform: translate(-2px, -2px);
    background: var(--surface-2);
    box-shadow: 6px 6px 0 var(--ink);
}

[data-theme="editorial"][data-variant="cadre"] .packs-grid {
    gap: 18px;
    border: 0;
}

[data-theme="editorial"][data-variant="cadre"] .pack-card {
    border: 2px solid var(--ink);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="cadre"] .pack-card.featured {
    background: var(--surface-2);
    box-shadow: 6px 6px 0 var(--ink);
}

[data-theme="editorial"][data-variant="cadre"] .steps {
    gap: 18px;
    border-top: 0;
}

[data-theme="editorial"][data-variant="cadre"] .step {
    border: 2px solid var(--ink);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="cadre"] .testimonials-grid {
    gap: 18px;
    border: 0;
}

[data-theme="editorial"][data-variant="cadre"] .testimonial {
    border: 2px solid var(--ink);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="cadre"] .faq-list {
    gap: 14px;
    border-top: 0;
}

[data-theme="editorial"][data-variant="cadre"] .faq-item {
    border: 2px solid var(--ink);
    background: var(--surface);
}

/* ============================================================
   Variante « Léger » (net) — petites arrondies sur tous les thèmes
   ============================================================ */
[data-variant="net"] {
    --radius: 9px;
    --radius-sm: 7px;
    --a-radius: 9px;
    --a-radius-sm: 7px;
}

[data-variant="net"] :is(
    .btn,
    .btn-icon,
    .hero-badge,
    .pack-badge,
    .lang-switch,
    .lang-switch a,
    .brand-mark,
    .service-icon,
    .step-num,
    .pager-item,
    .menu-pill,
    .badge,
    .restaurant-badge,
    .resv-status-badge,
    .delivery-card,
    .delivery-card-icon,
    .delivery-btn,
    .delivery-card-status,
    .menu-add-btn,
    .menu-cart-button,
    .menu-open-orders-btn,
    .resv-day,
    .resv-room,
    .resv-slot,
    .resv-cal-nav,
    .resv-stepper-btn,
    .admin-nav a,
    .admin-card,
    .stat-card,
    .admin-brand-icon
) {
    border-radius: 9px;
}

/* ============================================================
   Variante « Contour » — blocs cadrés et légèrement arrondis
   ============================================================ */
[data-variant="contour"] {
    --radius: 12px;
    --radius-sm: 8px;
    --shadow: none;
    --shadow-lg: none;
    --a-radius: 12px;
    --a-radius-sm: 8px;
    --a-shadow: none;
}

[data-variant="contour"] :is(
    .hero-card,
    .service-card,
    .pack-card,
    .testimonial,
    .faq-item,
    .form-card,
    .resv-pot,
    .resv-calendar,
    .tracking-pop-box,
    .menu-item-media,
    .delivery-card,
    .admin-card,
    .stat-card
) {
    border: 2px solid var(--brand) !important;
    box-shadow: none !important;
}

[data-variant="contour"] :is(.btn, .btn-icon, .badge, .restaurant-badge, .resv-status-badge, .pack-badge, .hero-badge) {
    border-radius: var(--radius-sm);
}

/* ============================================================
   Variante « Contour vif » — blocs cadrés sans arrondi ni ombres
   ============================================================ */
[data-variant="contour_net"] {
    --radius: 0;
    --radius-sm: 0;
    --shadow: none;
    --shadow-lg: none;
    --a-radius: 0;
    --a-radius-sm: 0;
    --a-shadow: none;
}

[data-variant="contour_net"] *,
[data-variant="contour_net"] *::before,
[data-variant="contour_net"] *::after {
    border-radius: 0 !important;
}

[data-variant="contour_net"] :is(
    .hero-card,
    .service-card,
    .pack-card,
    .testimonial,
    .faq-item,
    .form-card,
    .resv-pot,
    .resv-calendar,
    .tracking-pop-box,
    .menu-item-media,
    .delivery-card,
    .admin-card,
    .stat-card
) {
    border: 2px solid var(--brand) !important;
    box-shadow: none !important;
}

/* ============================================================
   Éditorial — variante « Arrondi »
   ============================================================ */
[data-theme="editorial"][data-variant="arrondi"] {
    --radius: 16px;
    --radius-sm: 10px;
    --shadow: 0 10px 30px rgba(18, 18, 18, 0.08);
    --shadow-lg: 0 24px 60px rgba(18, 18, 18, 0.14);
    --a-radius: 14px;
    --a-radius-sm: 10px;
    --a-shadow: 0 1px 2px rgba(18, 18, 18, 0.04), 0 8px 24px rgba(18, 18, 18, 0.06);
}

[data-theme="editorial"][data-variant="arrondi"] .btn {
    border-radius: 999px;
    padding: 14px 26px;
    font-size: 0.82rem;
}

[data-theme="editorial"][data-variant="arrondi"] .brand-mark {
    border-radius: 10px;
}

[data-theme="editorial"][data-variant="arrondi"] .lang-switch {
    padding: 3px;
    border: 0;
    background: var(--surface-2);
}

[data-theme="editorial"][data-variant="arrondi"] .lang-switch,
[data-theme="editorial"][data-variant="arrondi"] .lang-switch a {
    border-radius: 999px;
}

[data-theme="editorial"][data-variant="arrondi"] .hero-badge {
    padding: 7px 14px;
    border-top: 0;
    border-radius: 999px;
    background: var(--accent-soft);
    color: var(--brand-ink);
    font-size: 0.82rem;
    letter-spacing: normal;
    text-transform: none;
}

[data-theme="editorial"][data-variant="arrondi"] .hero-card {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
}

[data-theme="editorial"][data-variant="arrondi"] .services-grid {
    gap: 24px;
    border-top: 0;
}

[data-theme="editorial"][data-variant="arrondi"] .service-card {
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="arrondi"] .service-card:nth-child(odd) {
    border-right: 1px solid var(--line);
}

[data-theme="editorial"][data-variant="arrondi"] .service-icon {
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 12px;
    background: var(--accent-soft);
    color: var(--brand);
}

[data-theme="editorial"][data-variant="arrondi"] .packs-grid {
    gap: 18px;
    border: 0;
}

[data-theme="editorial"][data-variant="arrondi"] .pack-card {
    padding: 20px;
    border: 1.5px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="arrondi"] .pack-card.featured {
    border-color: var(--brand);
    background: var(--surface);
    box-shadow: var(--shadow-lg);
}

[data-theme="editorial"][data-variant="arrondi"] .pack-badge {
    top: -13px;
    padding: 5px 14px;
    border-radius: 999px;
    background: var(--brand);
}

[data-theme="editorial"][data-variant="arrondi"] .steps {
    gap: 24px;
    border-top: 0;
}

[data-theme="editorial"][data-variant="arrondi"] .step {
    padding: 12px;
    border: 0;
    background: transparent;
    text-align: center;
}

[data-theme="editorial"][data-variant="arrondi"] .step-num {
    width: 54px;
    height: 54px;
    margin: 0 auto 18px;
    border-radius: 50%;
}

[data-theme="editorial"][data-variant="arrondi"] .testimonials-grid {
    gap: 24px;
    border: 0;
}

[data-theme="editorial"][data-variant="arrondi"] .testimonial {
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="arrondi"] .faq-list {
    gap: 12px;
    border-top: 0;
}

[data-theme="editorial"][data-variant="arrondi"] .faq-item {
    padding: 0 22px;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--surface);
}

[data-theme="editorial"][data-variant="arrondi"] .admin-nav a,
[data-theme="editorial"][data-variant="arrondi"] .admin-card,
[data-theme="editorial"][data-variant="arrondi"] .stat-card,
[data-theme="editorial"][data-variant="arrondi"] .admin-brand-icon {
    border-radius: var(--a-radius);
}

/* ============================================================
   Bleu Marine — bleu profond, écume et or
   ============================================================ */
[data-theme="ocean"] {
    --bg: #f2f7fb;
    --surface: #ffffff;
    --surface-2: #e3eef7;
    --ink: #102a3c;
    --muted: #587184;
    --brand: #1e6f8f;
    --brand-dark: #15506a;
    --brand-ink: #15506a;
    --accent: #c9a227;
    --accent-ink: #7a5f10;
    --accent-soft: #f0e3bd;
    --line: #d4e3ee;
    --success: #2f7d5b;
    --radius: 18px;
    --radius-sm: 12px;
    --shadow: 0 10px 30px #102a3c14;
    --shadow-lg: 0 24px 60px #102a3c24;
    --on-brand: #fffdf9;
    --on-accent: #102a3c;
    --on-whatsapp: #06301a;

    --a-bg: #f1f6fa;
    --a-surface: #ffffff;
    --a-surface-2: #eaf2f8;
    --a-ink: #102a3c;
    --a-muted: #587184;
    --a-line: #d4e3ee;
    --a-brand: #1e6f8f;
    --a-brand-dark: #15506a;
    --a-accent: #b58f1f;
    --a-sidebar: #0f2b3b;
    --a-sidebar-2: #1c455c;
    --a-radius: 16px;
    --a-radius-sm: 11px;
    --a-shadow: 0 1px 2px #102a3c0d, 0 8px 24px #102a3c12;
}

/* ============================================================
   Oliveraie — vert olive, lin et terre cuite
   ============================================================ */
[data-theme="olive"] {
    --bg: #f8f7ef;
    --surface: #ffffff;
    --surface-2: #ecead9;
    --ink: #2e3320;
    --muted: #6c7158;
    --brand: #6b7a3a;
    --brand-dark: #4e5b28;
    --brand-ink: #4e5b28;
    --accent: #c08b3e;
    --accent-ink: #7a5520;
    --accent-soft: #f0e3c8;
    --line: #e0ddc8;
    --success: #2f7d5b;
    --radius: 18px;
    --radius-sm: 12px;
    --shadow: 0 10px 30px #2e332014;
    --shadow-lg: 0 24px 60px #2e332024;
    --on-brand: #fffdf9;
    --on-accent: #2e3320;
    --on-whatsapp: #06301a;

    --a-bg: #f7f6ee;
    --a-surface: #ffffff;
    --a-surface-2: #eeecdd;
    --a-ink: #2e3320;
    --a-muted: #6c7158;
    --a-line: #e0ddc8;
    --a-brand: #6b7a3a;
    --a-brand-dark: #4e5b28;
    --a-accent: #b07d33;
    --a-sidebar: #26301b;
    --a-sidebar-2: #3b4a2a;
    --a-radius: 16px;
    --a-radius-sm: 11px;
    --a-shadow: 0 1px 2px #2e33200d, 0 8px 24px #2e332012;
}

/* ============================================================
   Bordeaux Chic — bordeaux, crème et or rose
   ============================================================ */
[data-theme="bordeaux"] {
    --bg: #fbf6f7;
    --surface: #ffffff;
    --surface-2: #f4e6e9;
    --ink: #2f1a22;
    --muted: #7b5a65;
    --brand: #8e2f4e;
    --brand-dark: #651f36;
    --brand-ink: #651f36;
    --accent: #c79a5b;
    --accent-ink: #8a6530;
    --accent-soft: #f1e2c8;
    --line: #ead4da;
    --success: #2f7d5b;
    --radius: 18px;
    --radius-sm: 12px;
    --shadow: 0 10px 30px #2f1a2214;
    --shadow-lg: 0 24px 60px #2f1a2224;
    --on-brand: #fffdf9;
    --on-accent: #2f1a22;
    --on-whatsapp: #06301a;

    --a-bg: #faf5f6;
    --a-surface: #ffffff;
    --a-surface-2: #f4e8eb;
    --a-ink: #2f1a22;
    --a-muted: #7b5a65;
    --a-line: #ead4da;
    --a-brand: #8e2f4e;
    --a-brand-dark: #651f36;
    --a-accent: #b58545;
    --a-sidebar: #2a141d;
    --a-sidebar-2: #472433;
    --a-radius: 16px;
    --a-radius-sm: 11px;
    --a-shadow: 0 1px 2px #2f1a220d, 0 8px 24px #2f1a2212;
}

/* ============================================================
   Minuit Doré — nuit bleue, acier et or doux
   ============================================================ */
[data-theme="midnight"] {
    --bg: #0d1117;
    --surface: #161d27;
    --surface-2: #1f2937;
    --ink: #e8eef7;
    --muted: #a4b2c5;
    --brand: #6ea8fe;
    --brand-dark: #3f7fd6;
    --brand-ink: #cfe0ff;
    --accent: #e6c26e;
    --accent-ink: #f0d68f;
    --accent-soft: #2c3542;
    --line: #27313e;
    --success: #74c19c;
    --radius: 16px;
    --radius-sm: 10px;
    --shadow: 0 10px 30px #e8eef714;
    --shadow-lg: 0 24px 60px #e8eef724;
    --on-brand: #0d1117;
    --on-accent: #0d1117;
    --on-whatsapp: #06301a;

    --a-bg: #eef2f7;
    --a-surface: #ffffff;
    --a-surface-2: #f1f5fa;
    --a-ink: #1b2430;
    --a-muted: #667384;
    --a-line: #d9e2ec;
    --a-brand: #3f7fd6;
    --a-brand-dark: #2c5fa3;
    --a-accent: #b9912e;
    --a-sidebar: #0b1220;
    --a-sidebar-2: #16243a;
    --a-radius: 14px;
    --a-radius-sm: 10px;
    --a-shadow: 0 1px 2px #1b24300d, 0 8px 24px #1b243012;
}

/* Fonds sombres des thèmes nocturnes */
[data-theme="midnight"] .site-footer {
    background: #080c12;
}

[data-theme="midnight"] .btn-outline {
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink);
}

/* ============================================================
   Petites arrondies : champs, images et fonds décoratifs
   gardent un arrondi fin pour rester agréables à l'œil.
   ============================================================ */
:is([data-variant="net"], [data-theme="editorial"][data-variant="cadre"]) input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
:is([data-variant="net"], [data-theme="editorial"][data-variant="cadre"]) select,
:is([data-variant="net"], [data-theme="editorial"][data-variant="cadre"]) textarea {
    border-radius: 8px;
}

:is([data-variant="net"], [data-theme="editorial"][data-variant="cadre"]) :is(.hero-card, .menu-item-media, .menu-head-cover, .restaurant-cover, .restaurant-gallery a, .restaurant-gallery img, .discover-gallery a, .discover-gallery img, .discover-card-media, .resv-hero-img, .menu-cat-head img) {
    border-radius: 10px;
}

:is([data-variant="net"], [data-theme="editorial"][data-variant="cadre"]) :is(.brand-mark, .discover-header-logo, .discover-brand-logo, .restaurant-logo, .menu-logo, .restaurant-team-avatar, .account-popover-avatar, .admin-user-avatar, .practitioner-preview-photo) {
    border-radius: 50%;
}

/* ============================================================
   Variante « Carré » — aucun arrondi, aucune ombre
   ============================================================ */
[data-variant="carre"] {
    --radius: 0;
    --radius-sm: 0;
    --shadow: none;
    --shadow-lg: none;
    --a-radius: 0;
    --a-radius-sm: 0;
    --a-shadow: none;
}

[data-variant="carre"] *,
[data-variant="carre"] *::before,
[data-variant="carre"] *::after {
    border-radius: 0 !important;
}

[data-variant="carre"] .service-card:hover,
[data-variant="carre"] .pack-card:hover,
[data-variant="carre"] .btn:hover {
    transform: none;
}
