/*
Theme Name: Astra Child - Liberta Local
Template: astra
Version: 2.0
Description: Thème enfant pour Liberta Local
*/

/* ============================================================
   LIBERTA LOCAL — Variables & Reset
   ============================================================ */

:root {
    --ll-green:   #2d6a4f;
    --ll-green-l: #52b788;
    --ll-dark:    #1a2e1a;
    --ll-text:    #2c2416;
    --ll-muted:   #6b7c5a;
    --ll-light:   #f5efe0;
    --ll-border:  #ddd0b8;
    --ll-white:   #ffffff;
    --ll-cream:   #fdf6e3;
    --ll-earth:   #8b5e3c;
    --ll-honey:   #c9973a;
    --ll-radius:  12px;
    --ll-max:     1120px;
}

/* Typographie organique */
body, .site { font-family: 'Source Sans 3', 'Inter', system-ui, sans-serif; background: var(--ll-cream); color: var(--ll-text); }
h1, h2, h3, h4, h5, h6 { font-family: 'Lora', Georgia, 'Times New Roman', serif; }
a { color: var(--ll-green); }
a:hover { color: var(--ll-earth); }

/* Reset Astra on homepage */
.home .entry-content,
.home .ast-container { padding: 0 !important; max-width: 100% !important; }
/* Masquer titres et fils d'Ariane sur les pages avec contenu custom */
.home .entry-header,
.home .ast-breadcrumbs-wrap,
.page-id-17 .entry-header,  /* /carte/ */
.page-id-66 .entry-header,  /* /mon-espace/ */
.page-id-67 .entry-header,  /* /inscription/ */
.page-id-24 .entry-header,  /* /connexion/ */
.page-id-7   .entry-header, /* /boutique/ */
.page-id-174 .entry-header, /* /evenements/ */
.page-id-68  .entry-header, /* /ajouter-lieu/ */
.page-id-131 .entry-header, /* /verification-2fa/ */
.ast-breadcrumbs-wrap,
.woocommerce-breadcrumb { display: none !important; }
/* Cacher uniquement le titre et le tri WC, pas le contenu (shortcode dans .page-description) */
.woocommerce-products-header__title,
.woocommerce-no-products-found,
.woocommerce-result-count,
.woocommerce-ordering { display: none !important; }
.home .site-content { padding-top: 0 !important; }
.home .entry-content > * + * { margin-top: 0; }

/* ============================================================
   LAYOUT UTILS
   ============================================================ */

.ll-container {
    max-width: var(--ll-max);
    margin: 0 auto;
    padding: 0 24px;
}

.ll-section-header {
    text-align: center;
    margin-bottom: 56px;
}

.ll-section-label {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--ll-green);
    margin-bottom: 12px;
}

.ll-section-header h2 {
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 800;
    color: var(--ll-dark);
    margin: 0 0 16px;
    line-height: 1.15;
    letter-spacing: -0.5px;
}

.ll-section-desc {
    font-size: 17px;
    color: var(--ll-muted);
    max-width: 560px;
    margin: 0 auto;
    line-height: 1.7;
}

/* ============================================================
   BOUTONS
   ============================================================ */

.ll-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    background: var(--ll-green);
    color: #fff !important;
    border-radius: 8px;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none !important;
    transition: background 0.2s, transform 0.15s;
    border: none;
    cursor: pointer;
}
.ll-btn-primary:hover { background: #15803d; transform: translateY(-1px); }
.ll-btn-primary.ll-btn-lg { padding: 18px 36px; font-size: 17px; border-radius: 10px; }

.ll-btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 28px;
    background: transparent;
    color: rgba(255,255,255,0.85) !important;
    border: 1.5px solid rgba(255,255,255,0.3);
    border-radius: 8px;
    font-weight: 600;
    font-size: 15px;
    text-decoration: none !important;
    transition: all 0.2s;
}
.ll-btn-outline:hover { border-color: rgba(255,255,255,0.7); color: #fff !important; }

.ll-btn-outline-dark {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 24px;
    background: transparent;
    color: var(--ll-dark) !important;
    border: 1.5px solid var(--ll-border);
    border-radius: 8px;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none !important;
    transition: all 0.2s;
}
.ll-btn-outline-dark:hover { border-color: var(--ll-green); color: var(--ll-green) !important; }

.ll-btn-white {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 32px;
    background: #fff;
    color: var(--ll-dark) !important;
    border-radius: 8px;
    font-weight: 700;
    font-size: 16px;
    text-decoration: none !important;
    transition: all 0.2s;
    border: none;
}
.ll-btn-white:hover { background: #f0fdf4; transform: translateY(-2px); }
.ll-btn-white.ll-btn-lg { padding: 18px 40px; font-size: 17px; }

/* ============================================================
   HERO
   ============================================================ */

.ll-hero {
    background: linear-gradient(160deg, #1a2e1a 0%, #2d4a1e 55%, #1a2e1a 100%);
    padding: 100px 24px 80px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.ll-hero::before {
    content: '';
    position: absolute;
    top: -200px; left: 50%;
    transform: translateX(-50%);
    width: 800px; height: 600px;
    background: radial-gradient(ellipse, rgba(201,151,58,0.12) 0%, transparent 70%);
    pointer-events: none;
}

.ll-hero-inner {
    position: relative;
    z-index: 2;
    max-width: 780px;
    margin: 0 auto;
}

.ll-hero-badge {
    display: inline-block;
    background: rgba(201,151,58,0.15);
    border: 1px solid rgba(201,151,58,0.4);
    color: #e4b96a;
    border-radius: 100px;
    padding: 6px 18px;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 32px;
    letter-spacing: 0.2px;
}

.ll-hero-title {
    font-size: clamp(40px, 6vw, 72px) !important;
    font-weight: 900 !important;
    line-height: 1.08 !important;
    color: #fff !important;
    margin: 0 0 24px !important;
    letter-spacing: -1.5px;
}

.ll-hero-em {
    color: var(--ll-green-l);
}

.ll-hero-sub {
    font-size: clamp(16px, 2vw, 19px);
    color: rgba(255,255,255,0.72);
    max-width: 580px;
    margin: 0 auto 40px;
    line-height: 1.7;
}

.ll-hero-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 36px;
}

.ll-hero-proof {
    display: flex;
    gap: 24px;
    justify-content: center;
    flex-wrap: wrap;
}

.ll-hero-proof span {
    font-size: 13px;
    color: rgba(255,255,255,0.45);
    font-weight: 500;
}

/* ============================================================
   STATS
   ============================================================ */

.ll-stats {
    background: var(--ll-cream);
    border-bottom: 1px solid var(--ll-border);
}

.ll-stats-grid {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.ll-stat {
    flex: 1;
    text-align: center;
    padding: 40px 24px;
}

.ll-stat-num {
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 900;
    color: var(--ll-dark);
    letter-spacing: -1px;
    line-height: 1;
    margin-bottom: 8px;
}

.ll-stat-label {
    font-size: 14px;
    color: var(--ll-muted);
    font-weight: 500;
}

.ll-stat-sep {
    width: 1px;
    height: 60px;
    background: var(--ll-border);
    flex-shrink: 0;
}

/* ============================================================
   FEATURES
   ============================================================ */

.ll-features {
    background: var(--ll-light);
    padding: 96px 24px;
}

.ll-features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.ll-feature-card {
    background: #fff;
    border: 1px solid var(--ll-border);
    border-radius: var(--ll-radius);
    padding: 32px 24px;
    transition: box-shadow 0.2s, transform 0.2s;
}

.ll-feature-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
    transform: translateY(-2px);
}

.ll-feature-icon {
    font-size: 32px;
    margin-bottom: 16px;
    display: block;
}

.ll-feature-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--ll-dark);
    margin: 0 0 10px;
    line-height: 1.3;
}

.ll-feature-card p {
    font-size: 14px;
    color: var(--ll-muted);
    margin: 0 0 20px;
    line-height: 1.6;
}

.ll-feature-link {
    font-size: 13px;
    font-weight: 700;
    color: var(--ll-green) !important;
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.ll-feature-link:hover { text-decoration: underline !important; }

/* ============================================================
   FOR WHO
   ============================================================ */

.ll-forwho {
    background: #fff;
    padding: 96px 24px;
}

.ll-forwho-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

.ll-forwho-card {
    border-radius: 16px;
    padding: 40px 36px;
    border: 1px solid var(--ll-border);
}

.ll-forwho-producer {
    background: #eef6ee;
    border-color: #b7d9c3;
}

.ll-forwho-consumer {
    background: var(--ll-light);
}

.ll-forwho-icon {
    font-size: 40px;
    margin-bottom: 16px;
    display: block;
}

.ll-forwho-card h3 {
    font-size: 24px;
    font-weight: 800;
    color: var(--ll-dark);
    margin: 0 0 8px;
}

.ll-forwho-tagline {
    font-size: 15px;
    color: var(--ll-muted);
    font-style: italic;
    margin: 0 0 24px;
}

.ll-forwho-list {
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
}

.ll-forwho-list li {
    font-size: 14px;
    color: var(--ll-text);
    padding: 6px 0;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    line-height: 1.5;
}

.ll-forwho-list li:last-child { border-bottom: none; }

.ll-forwho-note {
    font-size: 12px;
    color: var(--ll-muted);
    margin-top: 12px;
    font-style: italic;
    text-align: center;
}

/* ============================================================
   PANIER COLLECTIF — Section différenciateur principal
   ============================================================ */

.ll-colibri {
    background: linear-gradient(135deg, #1a2e1a 0%, #2a4a1a 50%, #1a2e1a 100%);
    padding: 96px 24px;
    position: relative;
    overflow: hidden;
}

.ll-colibri::before {
    content: '';
    position: absolute;
    top: -40%;
    left: -10%;
    width: 500px;
    height: 500px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(82,183,136,0.18) 0%, transparent 70%);
    pointer-events: none;
}

.ll-colibri::after {
    content: '';
    position: absolute;
    bottom: -30%;
    right: -5%;
    width: 400px;
    height: 400px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(139,94,60,0.18) 0%, transparent 70%);
    pointer-events: none;
}

.ll-colibri .ll-section-label { color: #74c69d; }
.ll-colibri .ll-section-header h2 { color: #fff; }
.ll-colibri .ll-section-desc { color: rgba(255,255,255,0.75); }

.ll-colibri-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(82,183,136,0.18);
    border: 1px solid rgba(82,183,136,0.45);
    color: #74c69d;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: 100px;
    margin-bottom: 20px;
}

.ll-colibri-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    max-width: 1120px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.ll-colibri-visual {
    position: relative;
}

/* Schéma visuel : boutiques → panier commun */
.ll-shops-diagram {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ll-shop-node {
    display: flex;
    align-items: center;
    gap: 14px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    padding: 14px 18px;
    transition: border-color 0.2s;
}

.ll-shop-node:hover { border-color: rgba(82,183,136,0.45); }

.ll-shop-icon {
    font-size: 26px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    flex-shrink: 0;
}

.ll-shop-node.node-1 .ll-shop-icon { background: rgba(45,106,79,0.25); }
.ll-shop-node.node-2 .ll-shop-icon { background: rgba(139,94,60,0.25); }
.ll-shop-node.node-3 .ll-shop-icon { background: rgba(82,183,136,0.2); }

.ll-shop-info { flex: 1; }
.ll-shop-name { font-size: 14px; font-weight: 700; color: #fff; }
.ll-shop-products { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 2px; }

.ll-shop-badge {
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 20px;
    background: rgba(82,183,136,0.18);
    color: #74c69d;
    white-space: nowrap;
}

.ll-arrow-down {
    text-align: center;
    font-size: 20px;
    color: rgba(82,183,136,0.7);
    margin: 4px 0;
    animation: bounce-down 1.5s infinite;
}

@keyframes bounce-down {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(4px); }
}

.ll-basket-node {
    background: linear-gradient(135deg, rgba(45,106,79,0.28), rgba(45,106,79,0.12));
    border: 2px solid rgba(82,183,136,0.55);
    border-radius: 16px;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 4px;
}

.ll-basket-icon { font-size: 32px; }
.ll-basket-label { font-size: 15px; font-weight: 800; color: #fff; }
.ll-basket-sub { font-size: 12px; color: rgba(255,255,255,0.6); margin-top: 3px; }
.ll-basket-price { margin-left: auto; font-size: 20px; font-weight: 800; color: #74c69d; }

/* Points clés à droite */
.ll-colibri-points { display: flex; flex-direction: column; gap: 28px; }

.ll-colibri-point {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.ll-colibri-point-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
    background: rgba(255,255,255,0.07);
}

.ll-colibri-point-text h4 {
    font-size: 16px;
    font-weight: 800;
    color: #fff;
    margin: 0 0 4px;
}

.ll-colibri-point-text p {
    font-size: 14px;
    color: rgba(255,255,255,0.65);
    margin: 0;
    line-height: 1.5;
}

.ll-colibri-cta {
    margin-top: 36px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.ll-unique-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: rgba(255,255,255,0.45);
    margin-top: 16px;
}

.ll-unique-tag::before {
    content: '★';
    color: #fbbf24;
}

@media (max-width: 900px) {
    .ll-colibri-layout { grid-template-columns: 1fr; gap: 40px; }
    .ll-colibri-visual { order: 2; }
    .ll-colibri-points { order: 1; }
}

/* ============================================================
   PAYMENTS
   ============================================================ */

.ll-payments {
    background: var(--ll-dark);
    padding: 80px 24px;
}

.ll-payments .ll-section-header h2 {
    color: #fff;
}

.ll-payments-grid {
    display: flex;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

.ll-payment-item {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    padding: 24px 28px;
    text-align: center;
    min-width: 120px;
    transition: background 0.2s;
}

.ll-payment-item:hover {
    background: rgba(255,255,255,0.1);
}

.ll-payment-featured {
    background: rgba(45,106,79,0.18);
    border-color: rgba(82,183,136,0.45);
}

.ll-payment-icon {
    font-size: 28px;
    margin-bottom: 10px;
    display: block;
}

.ll-payment-name {
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 4px;
}

.ll-payment-desc {
    font-size: 12px;
    color: rgba(255,255,255,0.4);
}

/* ============================================================
   WHY DIFFERENT
   ============================================================ */

.ll-why {
    background: var(--ll-light);
    padding: 96px 24px;
}

.ll-why-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    background: var(--ll-border);
    border: 1px solid var(--ll-border);
    border-radius: 16px;
    overflow: hidden;
}

.ll-why-item {
    background: #fff;
    padding: 32px 28px;
    transition: background 0.15s;
}

.ll-why-item:hover { background: #f7f1e6; }

.ll-why-num {
    font-size: 12px;
    font-weight: 800;
    color: var(--ll-green);
    letter-spacing: 1px;
    margin-bottom: 12px;
}

.ll-why-item h4 {
    font-size: 17px;
    font-weight: 800;
    color: var(--ll-dark);
    margin: 0 0 10px;
    line-height: 1.3;
}

.ll-why-item p {
    font-size: 14px;
    color: var(--ll-muted);
    margin: 0;
    line-height: 1.6;
}

/* ============================================================
   STEPS
   ============================================================ */

.ll-steps {
    background: #fff;
    padding: 96px 24px;
}

.ll-steps-grid {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    max-width: 900px;
    margin: 0 auto 48px;
}

.ll-step {
    flex: 1;
    text-align: center;
    padding: 32px 20px;
    background: var(--ll-light);
    border: 1px solid var(--ll-border);
    border-radius: var(--ll-radius);
}

.ll-step-num {
    width: 40px;
    height: 40px;
    background: var(--ll-green);
    color: #fff;
    border-radius: 50%;
    font-weight: 900;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
}

.ll-step h4 {
    font-size: 17px;
    font-weight: 800;
    color: var(--ll-dark);
    margin: 0 0 10px;
}

.ll-step p {
    font-size: 14px;
    color: var(--ll-muted);
    margin: 0;
    line-height: 1.6;
}

.ll-step-arrow {
    font-size: 22px;
    color: var(--ll-border);
    flex-shrink: 0;
    margin-top: 50px;
}

.ll-steps-cta { text-align: center; }

/* ============================================================
   NEWS
   ============================================================ */

.ll-news-section {
    background: var(--ll-light);
    padding: 80px 24px;
}

/* News cards (du shortcode [liberta_actualites]) */
.lh-news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 40px;
}

.lh-news-card {
    background: #fff;
    border-radius: var(--ll-radius);
    overflow: hidden;
    border: 1px solid var(--ll-border);
    transition: box-shadow 0.2s;
}

.lh-news-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,0.08); }

.lh-news-img-wrap {
    display: block;
    height: 180px;
    overflow: hidden;
    background: var(--ll-light);
}

.lh-news-img-wrap img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.4s;
}

.lh-news-card:hover .lh-news-img-wrap img { transform: scale(1.04); }

.lh-news-img-placeholder {
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    background: var(--ll-light);
    text-decoration: none;
}

.lh-news-body { padding: 20px 22px 22px; }

.lh-news-cat {
    display: inline-block;
    background: var(--ll-light);
    color: var(--ll-green);
    border-radius: 6px;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.lh-news-title {
    font-size: 17px;
    font-weight: 800;
    color: var(--ll-dark);
    margin: 0 0 10px;
    line-height: 1.3;
}

.lh-news-title a { color: inherit !important; text-decoration: none !important; }
.lh-news-title a:hover { color: var(--ll-green) !important; }

.lh-news-excerpt { font-size: 14px; color: var(--ll-muted); margin: 0 0 16px; line-height: 1.6; }

.lh-news-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: #8a7e68;
    border-top: 1px solid var(--ll-border);
    padding-top: 14px;
}

.lh-news-read { color: var(--ll-green) !important; font-weight: 700; text-decoration: none !important; font-size: 13px; }
.lh-news-footer { text-align: center; }

/* ============================================================
   DEMO BOUTIQUE
   ============================================================ */

.ll-demo {
    background: #fff;
    padding: 80px 24px;
}

.ll-demo-header {
    text-align: center;
    margin-bottom: 48px;
}

.ll-demo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.ll-demo-card {
    border: 1px solid var(--ll-border);
    border-radius: var(--ll-radius);
    overflow: hidden;
    transition: box-shadow 0.2s, transform 0.2s;
}

.ll-demo-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.09);
    transform: translateY(-2px);
}

.ll-demo-img {
    height: 160px;
    overflow: hidden;
    background: var(--ll-light);
}

.ll-demo-img img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.4s;
}

.ll-demo-card:hover .ll-demo-img img { transform: scale(1.04); }

.ll-demo-info { padding: 16px; }

.ll-demo-info h4 {
    font-size: 14px;
    font-weight: 700;
    color: var(--ll-dark);
    margin: 0 0 8px;
    line-height: 1.3;
}

.ll-demo-price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 12px;
}

.ll-demo-price strong { font-size: 18px; font-weight: 900; color: var(--ll-dark); }
.ll-demo-price span   { font-size: 12px; color: var(--ll-muted); }

.ll-demo-btn {
    display: block;
    text-align: center;
    padding: 8px 12px;
    background: var(--ll-light);
    color: var(--ll-dark) !important;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    transition: background 0.15s;
    border: 1px solid var(--ll-border);
}
.ll-demo-btn:hover { background: #eef6ee; border-color: #b7d9c3; color: var(--ll-green) !important; }

/* ============================================================
   CTA FINAL
   ============================================================ */

.ll-cta {
    background: var(--ll-dark);
    padding: 100px 24px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.ll-cta::before {
    content: '';
    position: absolute;
    bottom: -100px; left: 50%;
    transform: translateX(-50%);
    width: 600px; height: 400px;
    background: radial-gradient(ellipse, rgba(201,151,58,0.14) 0%, transparent 70%);
    pointer-events: none;
}

.ll-cta-inner { position: relative; z-index: 2; max-width: 620px; margin: 0 auto; }

.ll-cta-inner h2 {
    font-size: clamp(30px, 4vw, 48px);
    font-weight: 900;
    color: #fff;
    margin: 0 0 16px;
    letter-spacing: -0.5px;
    line-height: 1.15;
}

.ll-cta-desc {
    font-size: 17px;
    color: rgba(255,255,255,0.5);
    margin: 0 0 36px;
    line-height: 1.7;
}

.ll-cta-login {
    margin-top: 20px;
    font-size: 14px;
    color: rgba(255,255,255,0.35);
}

.ll-cta-login a { color: rgba(255,255,255,0.6) !important; text-decoration: underline; }

/* ============================================================
   MAP & PLUGIN FILTERS (global)
   ============================================================ */

#liberta-filters button.liberta-filter {
    color: #2c3e50 !important;
    background-color: #ffffff !important;
}
#liberta-filters button.liberta-filter:hover,
#liberta-filters button.liberta-filter.active {
    color: #ffffff !important;
    background-color: #2ecc71 !important;
}

/* ============================================================
   Ğ1 PRICE ON PRODUCTS (global)
   ============================================================ */

.liberta-g1-price {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    padding: 10px 16px;
    font-size: 15px;
    color: #15803d;
    margin: 8px 0 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.liberta-g1-loop-price {
    display: block;
    font-size: 13px;
    color: var(--ll-green);
    font-weight: 700;
    margin-top: 4px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 1024px) {
    .ll-features-grid { grid-template-columns: repeat(2, 1fr); }
    .ll-why-grid { grid-template-columns: repeat(2, 1fr); }
    .ll-demo-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .ll-stats-grid { flex-direction: column; gap: 0; }
    .ll-stat-sep { width: 60px; height: 1px; margin: 0 auto; }
    .ll-features-grid { grid-template-columns: 1fr; }
    .ll-forwho-grid { grid-template-columns: 1fr; }
    .ll-why-grid { grid-template-columns: 1fr; gap: 1px; }
    .ll-steps-grid { flex-direction: column; }
    .ll-step-arrow { transform: rotate(90deg); margin: 0 auto; }
    .ll-demo-grid { grid-template-columns: repeat(2, 1fr); }
    .lh-news-grid { grid-template-columns: 1fr; }
    .ll-hero-title { letter-spacing: -1px; }
    .ll-payments-grid { gap: 10px; }
    .ll-payment-item { min-width: 90px; padding: 18px 14px; }
}

@media (max-width: 480px) {
    .ll-hero-actions    { flex-direction: column; align-items: center; }
    .ll-hero-proof      { flex-direction: column; gap: 8px; }
    .ll-demo-grid       { grid-template-columns: 1fr; }
    .ll-forwho-card     { padding: 28px 20px; }

    /* Très petits écrans : éviter tout débordement */
    .ll-cats-grid       { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .ll-section-header h2 { font-size: clamp(20px, 5vw, 28px) !important; }
    .ll-hero-title      { font-size: clamp(32px, 8vw, 48px) !important; }
    .ll-stat-num        { font-size: 28px; }
    .ll-why-grid        { grid-template-columns: 1fr; }
    .ll-forwho-grid     { grid-template-columns: 1fr; }
    .ll-payment-item    { min-width: 70px; padding: 14px 10px; }
    .ll-payment-icon    { font-size: 22px; }
    .ll-payment-name    { font-size: 12px; }

    /* Panier collectif */
    .ll-colibri h2          { font-size: 22px !important; }
    .ll-shop-node           { padding: 10px 12px; }
    .ll-shop-name           { font-size: 13px; }
    .ll-colibri-point       { gap: 12px; }
    .ll-colibri-point-icon  { display: none; }

    /* CTA */
    .ll-btn-primary,
    .ll-btn-outline,
    .ll-btn-white           { padding: 13px 20px; font-size: 14px; width: 100%; box-sizing: border-box; text-align: center; }
}

/* ============================================================
   SITE-WIDE — Cohérence typographie & navigation
   ============================================================ */

/* ====================================================
   HEADER — fond sombre forcé sur TOUTES les pages
   (y compris homepage avec ast-theme-transparent-header)
   ==================================================== */

/* Cibler via ID #masthead pour passer toute spécificité Astra */
#masthead,
#masthead .ast-primary-header-bar,
#masthead .main-header-bar,
.ast-theme-transparent-header #masthead,
.ast-theme-transparent-header .site-header,
.ast-theme-transparent-header .ast-primary-header-bar,
.ast-theme-transparent-header .main-header-bar,
.site-header,
.ast-primary-header-bar,
.main-header-bar {
    background:       #1a2e1a !important;
    background-color: #1a2e1a !important;
    border-bottom:    1px solid rgba(255,255,255,0.08) !important;
}

/* S'assurer que le header reste au-dessus du hero sur la homepage */
#masthead {
    position: relative !important;
    z-index: 9999 !important;
}

/* Logo et titre site */
#masthead .site-title a,
#masthead .site-title a:hover,
.site-title a,
.site-title a:hover { color: #fff !important; }

/* Navigation desktop — liens */
#masthead .main-header-menu .menu-item > a,
#masthead .main-navigation .menu-item > a,
.ast-theme-transparent-header .main-header-menu .menu-item > a,
.ast-theme-transparent-header .main-navigation .menu-item > a,
.main-header-menu .menu-item a,
.main-navigation .menu-item a {
    color: rgba(255,255,255,0.80) !important;
    font-weight: 500 !important;
    font-size: 14px;
}

#masthead .main-header-menu .menu-item > a:hover,
#masthead .main-navigation .menu-item > a:hover,
.main-header-menu .menu-item a:hover,
.main-navigation .menu-item a:hover {
    color: #4ade80 !important;
}

/* Item actif desktop */
#masthead .current-menu-item > a,
.main-header-menu .current-menu-item > a {
    color: #4ade80 !important;
}

/* Sous-menus desktop */
#masthead .main-header-menu .sub-menu,
.main-header-menu .sub-menu {
    background: #2d4a1e !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
}

#masthead .main-header-menu .sub-menu .menu-item a,
.main-header-menu .sub-menu .menu-item a {
    color: rgba(255,255,255,0.75) !important;
}

/* Bouton panier WC dans le header */
#masthead .ast-site-header-cart a,
.ast-site-header-cart a { color: rgba(255,255,255,0.75) !important; }
#masthead .ast-site-header-cart a:hover,
.ast-site-header-cart a:hover { color: #4ade80 !important; }

/* Icône recherche, hamburger, etc. */
#masthead svg path,
#masthead svg rect,
#masthead svg line,
#masthead .ast-icon { stroke: #fff !important; fill: rgba(255,255,255,0.8) !important; }

/* ============================================================
   PAGES INTÉRIEURES — cohérence générale
   ============================================================ */

/* Fond page */
.ast-separate-container .entry-content,
.entry-content {
    font-size: 15px;
    line-height: 1.75;
    color: #2d4a1e;
}

/* Titres de page */
.entry-title,
.page-title {
    font-size: clamp(24px, 3vw, 36px) !important;
    font-weight: 800 !important;
    color: #1a2e1a !important;
    letter-spacing: -0.3px;
}

/* Page carte — full width */
.page-id-17 .entry-content,
.page-id-17 .ast-container { padding: 0 !important; max-width: 100% !important; }
/* Masquer le titre "Carte" — remplacé par le header du shortcode */
.page-id-17 .entry-header { display: none !important; }
/* Supprimer tout l'espace blanc entre le menu et le header de la carte */
.page-id-17 #primary,
.page-id-17 .site-main,
.page-id-17 .ast-article-single,
.page-id-17 .entry-content.clear,
.page-id-17 #content { padding-top: 0 !important; margin-top: 0 !important; }
.page-id-17 .site-content { padding-top: 0 !important; }

/* Breadcrumb */
.ast-breadcrumbs-wrap,
#ast-breadcrumbs-custom { display: none; }

/* ============================================================
   WOOCOMMERCE — cohérence produits
   ============================================================ */

.woocommerce-loop-product__title {
    font-weight: 700 !important;
    color: #1a2e1a !important;
}

.woocommerce .price,
.woocommerce-Price-amount {
    color: #2d6a4f !important;
    font-weight: 700 !important;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    background: #2d6a4f !important;
    color: #fff !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    transition: background 0.18s !important;
    border: none !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: #15803d !important;
    color: #fff !important;
}

/* ============================================================
   FOOTER
   ============================================================ */

.site-footer,
.ast-small-footer {
    background: #1a2e1a !important;
    color: rgba(255,255,255,0.5) !important;
    border-top: 1px solid rgba(255,255,255,0.06) !important;
    font-size: 13px;
}

.site-footer a,
.ast-small-footer a {
    color: rgba(255,255,255,0.6) !important;
}

.site-footer a:hover,
.ast-small-footer a:hover { color: #4ade80 !important; }

/* ============================================================
   MENU MOBILE — couverture exhaustive de toutes les variantes Astra
   ============================================================ */

/* Bouton hamburger — couleur et fond */
#masthead .menu-toggle,
#masthead .ast-mobile-menu-trigger-minimal,
[data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal,
[data-section="section-header-mobile-trigger"] .ast-button-wrap .mobile-menu-wrap,
.menu-toggle.main-header-menu-toggle,
.ast-mobile-menu-trigger-minimal,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon,
.ast-mobile-menu-trigger-minimal .mobile-menu-toggle-icon span {
    color:            #fff !important;
    fill:             #fff !important;
    background:       transparent !important;
    background-color: transparent !important;
    border:           none !important;
}

/* SVG hamburger */
#masthead svg path,
#masthead svg rect,
#masthead svg line,
.ast-mobile-menu-trigger-minimal svg path,
.ast-mobile-menu-trigger-minimal svg rect,
.ast-mobile-menu-trigger-minimal svg line,
[data-section="section-header-mobile-trigger"] svg path,
[data-section="section-header-mobile-trigger"] svg rect,
[data-section="section-header-mobile-trigger"] svg line {
    stroke: #fff !important;
    fill:   #fff !important;
}

/* ——— Fond sombre sur le panneau déplié ——— */
#masthead .ast-mobile-header-content,
#masthead .main-header-bar-navigation,
.ast-mobile-header-content,
.ast-mobile-header-wrap .ast-mobile-header-content,
.ast-desktop-header-content,
.ast-mobile-header-wrap .main-header-bar-navigation,
.ast-header-break-point .main-header-bar-navigation,
.ast-header-break-point .main-navigation,
.ast-header-break-point .ast-primary-header-bar,
.ast-mobile-popup-wrapper,
.ast-mobile-popup-drawer,
.ast-mobile-popup-drawer .ast-mobile-popup-inner,
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner,
.ast-above-header-section-wrap {
    background:       #1a2e1a !important;
    background-color: #1a2e1a !important;
    border-top:       1px solid rgba(255,255,255,0.08) !important;
}

/* ——— Texte des liens ——— */
/* Cibler .menu-link ET le sélecteur Astra .ast-builder-menu-mobile */
#masthead .menu-item > .menu-link,
#masthead .menu-item > a,
.ast-mobile-header-content .menu-item > .menu-link,
.ast-mobile-header-content .menu-item > a,
.ast-header-break-point .main-header-menu .menu-item > .menu-link,
.ast-header-break-point .main-header-menu .menu-item > a,
.ast-header-break-point .main-navigation .menu-item > a,
.ast-header-break-point .ast-nav-menu .menu-item > a,
.ast-mobile-popup-wrapper .menu-item > a,
.ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item > .menu-link,
.ast-builder-menu-mobile .main-navigation .menu-item > a {
    color:         rgba(255,255,255,0.88) !important;
    background:    transparent !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    padding:       13px 20px !important;
    font-weight:   500 !important;
    font-size:     15px !important;
}

/* Hover */
.ast-mobile-header-content .menu-item:hover > .menu-link,
.ast-mobile-header-content .menu-item:hover > a,
.ast-header-break-point .main-header-menu .menu-item:hover > a,
.ast-header-break-point .main-navigation .menu-item:hover > a,
.ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item:hover > .menu-link,
.ast-builder-menu-mobile .main-navigation .menu-item:hover > a {
    color:      #4ade80 !important;
    background: rgba(255,255,255,0.04) !important;
}

/* Item actif */
.ast-mobile-header-content .current-menu-item > .menu-link,
.ast-mobile-header-content .current-menu-item > a,
.ast-header-break-point .main-header-menu .current-menu-item > a,
.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .menu-link {
    color: #4ade80 !important;
    background: rgba(74,222,128,0.07) !important;
}

/* Flèches sous-menus (ast-menu-toggle) */
.ast-mobile-header-content .menu-item > .ast-menu-toggle,
.ast-header-break-point .menu-item > .ast-menu-toggle,
.ast-builder-menu-mobile .menu-item > .ast-menu-toggle {
    color: rgba(255,255,255,0.5) !important;
}

/* Sous-menus */
.ast-mobile-header-content .sub-menu,
.ast-header-break-point .main-header-menu .sub-menu,
.ast-builder-menu-mobile .sub-menu {
    background:   rgba(255,255,255,0.03) !important;
    border-left:  2px solid rgba(74,222,128,0.3) !important;
}

.ast-mobile-header-content .sub-menu .menu-item > a,
.ast-header-break-point .main-header-menu .sub-menu .menu-item > a {
    color:        rgba(255,255,255,0.65) !important;
    padding-left: 32px !important;
}

/* Bouton fermer le drawer */
.ast-mobile-popup-drawer.active .menu-toggle-close {
    color: rgba(255,255,255,0.7) !important;
}

/* ============================================================
   HOMEPAGE — Showcase catégories (14 univers)
   ============================================================ */

.ll-cats {
    padding: 80px 0;
    background: #fff;
}

.ll-cats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin-top: 48px;
}

.ll-cat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 24px 16px 20px;
    background: var(--ll-light);
    border: 1.5px solid var(--ll-border);
    border-radius: var(--ll-radius);
    text-decoration: none;
    color: var(--ll-text);
    transition: all 0.2s ease;
    cursor: pointer;
}

.ll-cat-item:hover {
    border-color: var(--ll-green);
    background: #f0fdf4;
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(22,163,74,0.12);
    color: var(--ll-text);
    text-decoration: none;
}

.ll-cat-item.ll-cat-featured {
    border-color: var(--ll-green);
    background: linear-gradient(135deg, #f0fdf4, #dcfce7);
    position: relative;
}

.ll-cat-item.ll-cat-featured::after {
    content: 'Nouveau';
    position: absolute;
    top: -8px;
    right: 12px;
    background: var(--ll-green);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    letter-spacing: 0.5px;
}

.ll-cat-icon {
    font-size: 36px;
    line-height: 1;
    margin-bottom: 10px;
}

.ll-cat-name {
    font-weight: 700;
    font-size: 13px;
    line-height: 1.35;
    margin-bottom: 6px;
    color: var(--ll-text);
}

.ll-cat-examples {
    font-size: 11px;
    color: var(--ll-muted);
    line-height: 1.4;
}

/* 5 colonnes pour features */
.ll-features-grid-5 {
    grid-template-columns: repeat(5, 1fr);
}

/* 3 colonnes pour pour-qui */
.ll-forwho-grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.ll-forwho-events {
    border-color: var(--ll-green);
    background: linear-gradient(135deg, #f0fdf4 0%, #fff 100%);
}

/* Responsive catégories */
@media (max-width: 900px) {
    .ll-cats-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 12px;
    }
    .ll-features-grid-5 {
        grid-template-columns: repeat(2, 1fr);
    }
    .ll-forwho-grid-3 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    /* Catégories */
    .ll-cats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    .ll-cat-item    { padding: 16px 10px 14px; }
    .ll-cat-icon    { font-size: 28px; }
    .ll-cat-name    { font-size: 12px; }
    .ll-cat-examples { display: none; }

    /* Paddings sections excessifs */
    .ll-hero        { padding: 60px 20px 72px; }
    .ll-features    { padding: 60px 20px; }
    .ll-colibri     { padding: 60px 16px; }
    .ll-payments    { padding: 56px 16px; }
    .ll-why         { padding: 56px 16px; }
    .ll-forwho      { padding: 60px 16px; }

    /* Section panier collectif */
    .ll-colibri h2      { font-size: 24px !important; line-height: 1.25 !important; }
    .ll-shop-node       { flex-wrap: wrap; gap: 8px 12px; padding: 12px 14px; }
    .ll-shop-info       { flex: 1 1 60%; min-width: 120px; }
    .ll-shop-badge      { font-size: 10px; padding: 2px 8px; }
    .ll-basket-node     { flex-wrap: wrap; gap: 8px; }
    .ll-basket-price    { margin-left: 0; font-size: 16px; }
    .ll-basket-label    { font-size: 14px; }
    .ll-colibri-point-icon { width: 40px; height: 40px; font-size: 18px; border-radius: 10px; }
    .ll-colibri-point-text h4 { font-size: 14px; }
    .ll-colibri-cta     { flex-direction: column; }
    .ll-colibri-cta a   { text-align: center; justify-content: center; }
    .ll-colibri-badge   { font-size: 11px; }
    .ll-unique-tag      { font-size: 11px; }

    /* Hero */
    .ll-hero-proof      { flex-direction: column; gap: 6px; text-align: center; }
    .ll-hero-actions    { flex-direction: column; align-items: center; gap: 10px; }
    .ll-hero-sub        { font-size: 15px; }

    /* CTA final */
    .ll-cta-desc        { font-size: 15px; }

    /* Steps */
    .ll-steps           { padding: 56px 16px; }
    .ll-step            { padding: 20px; }
}

/* ============================================================
   COULEURS PAR CATÉGORIE — Homepage cards + map filter badges
   ============================================================ */
/* Palette identique aux catColors de liberta-map.js */
:root {
    --cat-agriculture:  #27ae60; --cat-agriculture-bg:  #f0fdf4;
    --cat-jardins:      #2ecc71; --cat-jardins-bg:      #f0fdf4;
    --cat-ecolieux:     #8e44ad; --cat-ecolieux-bg:     #faf5ff;
    --cat-tiers-lieux:  #3498db; --cat-tiers-lieux-bg:  #eff6ff;
    --cat-ateliers:     #e67e22; --cat-ateliers-bg:     #fff7ed;
    --cat-numerique:    #1abc9c; --cat-numerique-bg:    #f0fdfa;
    --cat-solidarite:   #e74c3c; --cat-solidarite-bg:   #fff1f2;
    --cat-economie:     #f39c12; --cat-economie-bg:     #fffbeb;
    --cat-art:          #e91e63; --cat-art-bg:          #fdf2f8;
    --cat-evenements:   #2980b9; --cat-evenements-bg:   #eff6ff;
    --cat-sante:        #16a085; --cat-sante-bg:        #f0fdfa;
    --cat-artisanat:    #d35400; --cat-artisanat-bg:    #fff7ed;
    --cat-mobilite:     #7f8c8d; --cat-mobilite-bg:     #f8fafc;
    --cat-animaux:      #27ae60; --cat-animaux-bg:      #f0fdf4;
}

/* Bordure colorée + icône colorée par catégorie sur les cartes homepage */
.ll-cat-item[data-cat="agriculture-alimentation"] { border-color: var(--cat-agriculture); }
.ll-cat-item[data-cat="agriculture-alimentation"] .ll-cat-icon { color: var(--cat-agriculture); }
.ll-cat-item[data-cat="agriculture-alimentation"]:hover { background: var(--cat-agriculture-bg); }

.ll-cat-item[data-cat="jardins-echanges"] { border-color: var(--cat-jardins); }
.ll-cat-item[data-cat="jardins-echanges"] .ll-cat-icon { color: var(--cat-jardins); }
.ll-cat-item[data-cat="jardins-echanges"]:hover { background: var(--cat-jardins-bg); }

.ll-cat-item[data-cat="ecolieux-habitat"] { border-color: var(--cat-ecolieux); }
.ll-cat-item[data-cat="ecolieux-habitat"] .ll-cat-icon { color: var(--cat-ecolieux); }
.ll-cat-item[data-cat="ecolieux-habitat"]:hover { background: var(--cat-ecolieux-bg); }

.ll-cat-item[data-cat="tiers-lieux"] { border-color: var(--cat-tiers-lieux); }
.ll-cat-item[data-cat="tiers-lieux"] .ll-cat-icon { color: var(--cat-tiers-lieux); }
.ll-cat-item[data-cat="tiers-lieux"]:hover { background: var(--cat-tiers-lieux-bg); }

.ll-cat-item[data-cat="ateliers-pratiques"] { border-color: var(--cat-ateliers); }
.ll-cat-item[data-cat="ateliers-pratiques"] .ll-cat-icon { color: var(--cat-ateliers); }
.ll-cat-item[data-cat="ateliers-pratiques"]:hover { background: var(--cat-ateliers-bg); }

.ll-cat-item[data-cat="ateliers-numeriques"] { border-color: var(--cat-numerique); }
.ll-cat-item[data-cat="ateliers-numeriques"] .ll-cat-icon { color: var(--cat-numerique); }
.ll-cat-item[data-cat="ateliers-numeriques"]:hover { background: var(--cat-numerique-bg); }

.ll-cat-item[data-cat="solidarite-alimentaire"] { border-color: var(--cat-solidarite); }
.ll-cat-item[data-cat="solidarite-alimentaire"] .ll-cat-icon { color: var(--cat-solidarite); }
.ll-cat-item[data-cat="solidarite-alimentaire"]:hover { background: var(--cat-solidarite-bg); }

.ll-cat-item[data-cat="economie-alternative"] { border-color: var(--cat-economie); }
.ll-cat-item[data-cat="economie-alternative"] .ll-cat-icon { color: var(--cat-economie); }
.ll-cat-item[data-cat="economie-alternative"]:hover { background: var(--cat-economie-bg); }

.ll-cat-item[data-cat="art-culture"] { border-color: var(--cat-art); }
.ll-cat-item[data-cat="art-culture"] .ll-cat-icon { color: var(--cat-art); }
.ll-cat-item[data-cat="art-culture"]:hover { background: var(--cat-art-bg); }

.ll-cat-item[data-cat="evenements-rencontres"] { border-color: var(--cat-evenements); }
.ll-cat-item[data-cat="evenements-rencontres"] .ll-cat-icon { color: var(--cat-evenements); }
.ll-cat-item[data-cat="evenements-rencontres"]:hover { background: var(--cat-evenements-bg); }

.ll-cat-item[data-cat="sante-bien-etre"] { border-color: var(--cat-sante); }
.ll-cat-item[data-cat="sante-bien-etre"] .ll-cat-icon { color: var(--cat-sante); }
.ll-cat-item[data-cat="sante-bien-etre"]:hover { background: var(--cat-sante-bg); }

.ll-cat-item[data-cat="artisanat-creation"] { border-color: var(--cat-artisanat); }
.ll-cat-item[data-cat="artisanat-creation"] .ll-cat-icon { color: var(--cat-artisanat); }
.ll-cat-item[data-cat="artisanat-creation"]:hover { background: var(--cat-artisanat-bg); }

.ll-cat-item[data-cat="mobilite-transport"] { border-color: var(--cat-mobilite); }
.ll-cat-item[data-cat="mobilite-transport"] .ll-cat-icon { color: var(--cat-mobilite); }
.ll-cat-item[data-cat="mobilite-transport"]:hover { background: var(--cat-mobilite-bg); }

.ll-cat-item[data-cat="animaux-nature"] { border-color: var(--cat-animaux); }
.ll-cat-item[data-cat="animaux-nature"] .ll-cat-icon { color: var(--cat-animaux); }
.ll-cat-item[data-cat="animaux-nature"]:hover { background: var(--cat-animaux-bg); }

/* ============================================================
   PAGES FICHE LIEU — Design enrichi
   ============================================================ */
.single-liberta_location .site-content,
.single-liberta_event   .site-content   { padding-top: 0 !important; }
.single-liberta_location .entry-header,
.single-liberta_event   .entry-header   { display: none !important; }

/* Bannière TEST déjà stylée dans meta-fields.php */

/* Page lieu : largeur étendue, pas de sidebar */
.single-liberta_location #primary,
.single-liberta_event   #primary        { max-width: 860px; margin: 0 auto; padding: 0 20px 40px; }

/* Titres de section dans le contenu */
.single-liberta_location .entry-content h3,
.single-liberta_event .entry-content h3 {
    font-size: 17px; font-weight: 700; color: #1a2e1a;
    border-left: 3px solid #2d6a4f; padding-left: 12px; margin: 28px 0 12px;
}

.single-liberta_location .entry-content ul,
.single-liberta_event .entry-content ul {
    list-style: none; padding: 0; margin: 0 0 16px;
}
.single-liberta_location .entry-content ul li,
.single-liberta_event .entry-content ul li {
    padding: 5px 0 5px 8px; font-size: 14px; color: #334155;
    border-bottom: 1px solid #f1f5f9;
}
.single-liberta_location .entry-content ul li:last-child,
.single-liberta_event .entry-content ul li:last-child { border: none; }

/* ============================================================
   PAGES PRODUIT WOOCOMMERCE — Design enrichi
   ============================================================ */
.single-product .woocommerce-product-gallery__image img {
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.10);
}
.single-product .product_title {
    font-size: 26px !important; font-weight: 800 !important; color: #1a2e1a !important;
}
.single-product .woocommerce-Price-amount {
    font-size: 24px !important; font-weight: 800 !important; color: #2d6a4f !important;
}
.single-product .woocommerce-product-details__short-description {
    background: #f0fdf4; border-left: 3px solid #2d6a4f;
    padding: 12px 16px; border-radius: 0 8px 8px 0;
    font-size: 14px; color: #166534; margin-bottom: 20px;
}
.single-product .button.single_add_to_cart_button,
.single-product .wc-block-components-product-button__button {
    background: #2d6a4f !important; color: #fff !important;
    border-radius: 10px !important; font-weight: 700 !important;
    padding: 14px 28px !important; font-size: 15px !important;
    transition: background 0.15s, transform 0.12s !important;
}
.single-product .button.single_add_to_cart_button:hover {
    background: #15803d !important; transform: translateY(-1px) !important;
}

/* ============================================================
   BOUTIQUE VENDEUR (Dokan store) — Design enrichi
   ============================================================ */
.dokan-store-page .dokan-store-header {
    border-radius: 16px; overflow: hidden; margin-bottom: 24px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}
.dokan-store-page .dokan-store-info .dokan-store-name {
    font-size: 26px !important; font-weight: 800 !important; color: #1a2e1a !important;
}
.dokan-store-page .dokan-info { font-size: 14px; color: #64748b; }
.dokan-store-page .woocommerce ul.products li.product {
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    transition: transform 0.15s, box-shadow 0.15s;
}
.dokan-store-page .woocommerce ul.products li.product:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 24px rgba(0,0,0,0.12);
}
.dokan-store-page .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-weight: 700 !important; font-size: 14px !important; color: #1a2e1a !important;
}
.dokan-store-page .woocommerce ul.products li.product .price {
    color: #2d6a4f !important; font-weight: 800 !important;
}
.dokan-store-page .woocommerce ul.products li.product a.add_to_cart_button,
.dokan-store-page .woocommerce ul.products li.product a.button {
    background: #2d6a4f !important; color: #fff !important;
    border-radius: 8px !important; font-weight: 700 !important; font-size: 13px !important;
    padding: 8px 16px !important;
}

/* ============================================================
   PAGE BOUTIQUE GLOBALE (/boutique/)
   ============================================================ */

/* Empêcher tout débordement horizontal sur la page boutique
   overflow-x: hidden sur chaque conteneur entre le viewport et la carte */
body.woocommerce-shop #content,
body.woocommerce-shop #primary,
body.woocommerce-shop .site-main,
body.woocommerce-shop .ast-woocommerce-container,
body.woocommerce-shop .page-description {
    overflow-x: hidden;
    max-width: 100%;
    box-sizing: border-box;
}

/* Grille produits WC : contraindre les items à leur cellule */
body.woocommerce-shop ul.products { max-width: 100%; overflow: hidden; }
body.woocommerce-shop ul.products li.product { box-sizing: border-box; max-width: 100%; min-width: 0; }

/* Annuaire boutiques : contraindre strictement à la largeur du viewport */
.ll-shop-directory { box-sizing: border-box; width: 100%; max-width: 100%; }
.ll-shop-dir-grid  { box-sizing: border-box; width: 100%; }

.woocommerce-page.archive ul.products li.product {
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.07);
    transition: transform 0.15s, box-shadow 0.15s;
}
.woocommerce-page.archive ul.products li.product:hover {
    transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,0.12);
}
.woocommerce-page.archive ul.products li.product .price { color: #2d6a4f !important; font-weight: 800 !important; }
.woocommerce-page.archive ul.products li.product .woocommerce-loop-product__title { font-weight: 700 !important; color: #1a2e1a !important; }
.woocommerce-page.archive ul.products li.product .button {
    background: #2d6a4f !important; color: #fff !important;
    border-radius: 8px !important; font-weight: 700 !important;
}

/* ============================================================
   PAGE ÉVÉNEMENT — Hero enrichi
   ============================================================ */
.single-liberta_event .liberta-event-hero {
    background: linear-gradient(135deg, #2a4a1a 0%, #1a2e1a 100%);
    color: #fff; padding: 32px 28px; border-radius: 16px 16px 0 0;
    margin-bottom: 0;
}
.single-liberta_event .liberta-event-hero h1 { color: #fff !important; font-size: 26px !important; margin: 0 0 8px !important; }
.single-liberta_event .liberta-event-hero .event-meta-pill {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(255,255,255,0.12); padding: 5px 12px;
    border-radius: 100px; font-size: 13px; margin: 4px 4px 0 0;
}

/* ============================================================
   BOUTIQUE — Annuaire vendeurs (page /boutique/)
   ============================================================ */
.ll-shop-directory { max-width: 900px; margin: 0 auto; padding: 0 0 60px; font-family: inherit; }

.ll-shop-dir-header { text-align: center; padding: 40px 0 32px; }
.ll-shop-dir-header h2 { font-size: 28px; font-weight: 800; color: #1a2e1a; margin: 0 0 10px; }
.ll-shop-dir-header p { color: #64748b; font-size: 15px; margin: 0 0 6px; line-height: 1.6; }
.ll-shop-dir-map-link { color: #2d6a4f; font-weight: 600; text-decoration: none; }
.ll-shop-dir-map-link:hover { text-decoration: underline; }

.ll-shop-dir-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }

.ll-shop-dir-card {
    box-sizing: border-box;
    width: 100%;
    background: #fff;
    border: 1px solid #ddd0b8;
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.05);
    transition: box-shadow 0.15s;
    min-width: 0;
    overflow: hidden;
}
.ll-shop-dir-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.1); }

.ll-shop-dir-card-header { margin-bottom: 10px; }
.ll-shop-dir-name { font-size: 20px; font-weight: 800; color: #1a2e1a; margin: 0 0 4px; }
.ll-shop-dir-city { font-size: 13px; color: #64748b; margin: 0 0 6px; }
.ll-shop-dir-cats { display: flex; flex-wrap: wrap; gap: 6px; }
.ll-shop-dir-cat { padding: 2px 10px; background: #f0fdf4; color: #2d6a4f; border-radius: 100px; font-size: 11px; font-weight: 600; }

.ll-shop-dir-bio { font-size: 14px; color: var(--ll-muted); line-height: 1.6; margin: 8px 0 16px; }

.ll-shop-dir-products { display: flex; gap: 12px; margin-bottom: 18px; overflow-x: auto; padding-bottom: 4px; width: 100%; min-width: 0; }
.ll-shop-dir-product {
    flex: 0 0 120px; width: 120px; background: var(--ll-light); border-radius: 10px;
    overflow: hidden; text-decoration: none; color: var(--ll-dark); font-size: 12px;
    border: 1px solid var(--ll-border); transition: transform 0.12s;
}
.ll-shop-dir-product:hover { transform: translateY(-2px); }
.ll-shop-dir-product img { width: 100%; height: 80px; object-fit: cover; display: block; }
.ll-shop-dir-product-placeholder { display: flex; width: 100%; height: 80px; align-items: center; justify-content: center; font-size: 24px; background: var(--ll-light); }
.ll-shop-dir-product span { display: block; padding: 6px 8px 2px; font-weight: 600; line-height: 1.3; }
.ll-shop-dir-product strong { display: block; padding: 0 8px 8px; color: #2d6a4f; font-weight: 800; }

.ll-shop-dir-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ll-shop-dir-btn-primary {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 10px 20px; background: #2d6a4f; color: #fff !important;
    border-radius: 8px; font-size: 14px; font-weight: 700; text-decoration: none !important;
    transition: background 0.15s;
}
.ll-shop-dir-btn-primary:hover { background: #15803d; }
.ll-shop-dir-btn-secondary {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 9px 16px; background: var(--ll-light); color: var(--ll-muted) !important;
    border: 1px solid var(--ll-border); border-radius: 8px; font-size: 13px;
    font-weight: 600; text-decoration: none !important; transition: border-color 0.15s;
}
.ll-shop-dir-btn-secondary:hover { border-color: #2d6a4f; color: #2d6a4f !important; }

.ll-shop-dir-cta { text-align: center; margin-top: 40px; padding: 28px; background: var(--ll-light); border-radius: 14px; }
.ll-shop-dir-cta p { font-size: 15px; color: var(--ll-text); font-weight: 600; margin: 0 0 10px; }
.ll-shop-dir-cta a { color: #2d6a4f; font-weight: 700; font-size: 15px; text-decoration: none; }
.ll-shop-dir-cta a:hover { text-decoration: underline; }

.ll-shop-dir-empty { text-align: center; padding: 40px; color: #64748b; }

/* Neutraliser les <p>/<br> injectés par wpautop dans les flex containers */
.ll-shop-dir-products > p, .ll-shop-dir-products > br,
.ll-shop-dir-actions > br { display: none; }

@media (min-width: 640px) { .ll-shop-dir-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .ll-shop-dir-products { gap: 8px; } .ll-shop-dir-product { flex: 0 0 90px; width: 90px; } }

/* Popup carte — bouton boutique vert prioritaire */
.liberta-popup-btn-shop {
    background: #2d6a4f !important;
    font-weight: 800 !important;
    font-size: 14px !important;
}
.liberta-popup-btn-shop:hover { background: #15803d !important; }

/* ── Bandeau construction ── */
#liberta-construction-banner {
    position: sticky;
    top: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 20px;
    background: linear-gradient(90deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    color: #e2e8f0;
    font-size: 13.5px;
    font-family: inherit;
    line-height: 1.4;
    border-bottom: 2px solid #f59e0b;
    box-shadow: 0 2px 12px rgba(0,0,0,.35);
}
.lcb-icon { font-size: 18px; flex-shrink: 0; animation: lcb-swing .9s ease-in-out infinite alternate; }
@keyframes lcb-swing { from { transform: rotate(-12deg); } to { transform: rotate(12deg); } }
.lcb-text { flex: 1; }
.lcb-text a { color: #fbbf24; text-decoration: underline; }
.lcb-text a:hover { color: #f59e0b; }
.lcb-close {
    flex-shrink: 0;
    background: none;
    border: 1px solid rgba(255,255,255,.3);
    color: #cbd5e1;
    border-radius: 4px;
    width: 26px; height: 26px;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    transition: background .15s;
}
.lcb-close:hover { background: rgba(255,255,255,.12); color: #fff; }
@media (max-width: 640px) {
    #liberta-construction-banner { font-size: 12px; padding: 8px 14px; gap: 8px; }
    .lcb-icon { font-size: 15px; }
}

/* ============================================================
   PANIER FLOTTANT (#liberta-cart-bubble)
   ============================================================ */
#liberta-cart-bubble {
    position: fixed; bottom: 28px; right: 100px; z-index: 9990;
    display: flex; flex-direction: column; align-items: flex-end;
}
/* Caché quand vide */
#liberta-cart-bubble.lc-empty { display: none !important; }

/* Bouton */
.lc-toggle {
    width: 56px; height: 56px; border-radius: 50%;
    background: #2d6a4f; color: #fff; border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 16px rgba(45,106,79,.45);
    transition: background .15s, transform .15s; position: relative;
}
.lc-toggle:hover { background: #1a5c3f; transform: scale(1.06); }
.lc-count {
    position: absolute; top: -4px; right: -4px;
    background: #e74c3c; color: #fff; font-size: 11px; font-weight: 800;
    width: 20px; height: 20px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    border: 2px solid #fff;
}
.lc-count:empty { display: none; }
.lc-toggle svg { display: block; flex-shrink: 0; }

/* Mini-panier */
.lc-mini-cart {
    position: absolute; bottom: 68px; right: 0;
    width: 320px; background: #fff; border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15); border: 1.5px solid #e2e8f0;
    overflow: hidden;
    animation: lc-slide-in .2s ease;
}
@keyframes lc-slide-in {
    from { opacity:0; transform: translateY(8px); }
    to   { opacity:1; transform: translateY(0); }
}
.lc-empty-msg { padding: 24px; text-align: center; color: #6b7c5a; font-size: 14px; margin:0; }
.lc-items { max-height: 280px; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.lc-item {
    display: flex; align-items: center; gap: 10px;
    padding: 8px; background: #f8fafc; border-radius: 8px;
}
.lc-item-img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; flex-shrink: 0; }
.lc-item-info { flex: 1; min-width: 0; }
.lc-item-name { display: block; font-size: 13px; font-weight: 600; color: #1a2e1a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lc-item-qty  { display: block; font-size: 12px; color: #6b7c5a; margin-top: 2px; }
.lc-item-remove { font-size: 14px; color: #94a3b8; text-decoration: none; padding: 4px; flex-shrink: 0; line-height: 1; }
.lc-item-remove:hover { color: #e74c3c; }
.lc-footer { padding: 12px 14px; border-top: 1.5px solid #e2e8f0; background: #f8fafc; }
.lc-total { font-size: 14px; color: #1a2e1a; margin-bottom: 10px; }
.lc-total strong { color: #2d6a4f; }
.lc-btn-cart, .lc-btn-checkout {
    display: block; text-align: center; padding: 9px; border-radius: 8px;
    font-size: 13px; font-weight: 700; text-decoration: none; margin-bottom: 6px;
    transition: background .15s;
}
.lc-btn-cart { background: #f0fdf4; color: #2d6a4f; border: 1.5px solid #b7d9c3; }
.lc-btn-cart:hover { background: #dff0e8; }
.lc-btn-checkout { background: #2d6a4f; color: #fff; }
.lc-btn-checkout:hover { background: #1a5c3f; color: #fff; }

/* Notice invité au checkout */
.liberta-checkout-guest-notice {
    background: #f0fdf4; border: 1.5px solid #b7d9c3; border-radius: 10px;
    padding: 12px 18px; margin-bottom: 20px; font-size: 14px; color: #1a2e1a;
}
.liberta-checkout-guest-notice a { color: #2d6a4f; font-weight: 700; }

@media (max-width: 480px) {
    #liberta-cart-bubble { bottom: 18px; right: 16px; }
    .lc-mini-cart { width: calc(100vw - 32px); right: -10px; }
}

/* ── Panier dans la nav principale ── */
/* .lc-empty double-classe pour dépasser la spécificité (0,2,0) d'Astra ".main-header-menu .menu-item" */
.liberta-nav-cart-item.lc-empty { display: none !important; }
.liberta-nav-cart-item:not(.lc-empty) { display: list-item; }
.liberta-nav-cart-item .menu-link {
    display: flex !important; align-items: center; gap: 6px;
    position: relative; padding: 0 12px !important;
}
.liberta-nav-cart-item svg { flex-shrink: 0; }
.lc-nav-count {
    position: absolute; top: -6px; right: 2px;
    background: #e74c3c; color: #fff; font-size: 10px; font-weight: 800;
    min-width: 18px; height: 18px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    border: 2px solid #fff; line-height: 1;
}

/* ── Dokan sidebar : masquée sur /mon-espace/ de base (notre tab system gère la nav) ── */
.page-id-66 .dokan-dashboard-wrap .dokan-dashboard-menu { display: none !important; }
.page-id-66 .dokan-dashboard-wrap .dokan-dashboard-content { margin-left: 0 !important; width: 100% !important; }
/* Sur les sous-pages Dokan (/mon-espace/products/ etc.), la sidebar est utile → on la laisse */

/* ============================================================
   PAGE BOUTIQUE VENDEUR (Dokan store page) — design Liberta
   ============================================================ */

/* Retirer la marge excessive du layout global */
.dokan-store-wrap { max-width: 1200px; margin: 0 auto; padding: 0 20px 40px; gap: 28px; }
.dokan-store-wrap.layout-left { display: flex; align-items: flex-start; gap: 28px; }

/* ── Header boutique ── */
.dokan-store-header-wrap, .profile-frame { border-radius: 16px; overflow: hidden; margin-bottom: 24px; }
.profile-img { border-radius: 0 !important; }
/* Bannière plus haute */
.profile-img img { height: 280px !important; object-fit: cover; width: 100%; }
/* Info overlay sur la bannière */
.dokan-store-header-info-wrap {
    background: linear-gradient(0deg, rgba(26,46,26,0.92) 0%, rgba(26,46,26,0.6) 60%, transparent 100%) !important;
    padding: 28px 28px 20px !important;
}
.dokan-store-name { color: #fff !important; font-size: 26px !important; font-family: 'Lora', serif !important; font-weight: 700 !important; }
.dokan-store-location, .dokan-store-phone, .dokan-store-email { color: rgba(255,255,255,0.85) !important; font-size: 14px !important; }
/* Cacher l email du vendeur (confidentialité) */
.dokan-store-email, .vendor-email, .store-email { display: none !important; }

/* ── Sidebar ── */
#dokan-secondary {
    min-width: 240px; max-width: 260px; flex-shrink: 0;
    background: #f8fafc; border-radius: 14px; border: 1.5px solid #e2e8f0;
    padding: 20px; font-size: 14px;
}
.dokan-store-widget h3.widget-title {
    font-size: 13px; font-weight: 800; text-transform: uppercase;
    letter-spacing: 0.6px; color: #1a2e1a; margin: 0 0 12px;
    padding-bottom: 8px; border-bottom: 2px solid #b7d9c3;
}
/* Widget catégories */
.dokan-store-widget .product-categories { padding: 0; list-style: none; }
.dokan-store-widget .product-categories li a { color: #2d6a4f; font-size: 13px; text-decoration: none; }
.dokan-store-widget .product-categories li a:hover { text-decoration: underline; }
/* Widget contact — retirer le champ email visible, garder juste le form */
.dokan-store-widget input[type="email"].dokan-form-control { display: none !important; }
.dokan-contact-form input, .dokan-contact-form textarea {
    border: 1.5px solid #ddd0b8; border-radius: 8px; padding: 8px 12px;
    font-size: 13px; width: 100%; box-sizing: border-box; margin-bottom: 8px;
}
.dokan-contact-form button, .dokan-contact-form input[type="submit"] {
    background: #2d6a4f; color: #fff; border: none; border-radius: 8px;
    padding: 9px 18px; font-size: 13px; font-weight: 700; cursor: pointer; width: 100%;
}
.dokan-contact-form button:hover { background: #1a5c3f; }
/* Retirer la map dans la sidebar */
.dokan-store-location-widget, .dokan_store_location { display: none !important; }
/* Retirer les horaires de la sidebar (déjà dans le header) */
.dokan-store-time-widget { display: none !important; }

/* ── Grille produits ── */
#dokan-primary { flex: 1; min-width: 0; }
.dokan-single-store .seller-items { margin: 0; }
.dokan-single-store ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 20px !important;
}
.dokan-single-store ul.products li.product {
    border-radius: 12px; overflow: hidden; background: #fff;
    border: 1.5px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: box-shadow .2s, transform .2s;
    display: flex; flex-direction: column;
}
.dokan-single-store ul.products li.product:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.12); transform: translateY(-2px);
}
.dokan-single-store ul.products li.product img { width: 100%; height: 160px; object-fit: cover; }
.dokan-single-store ul.products li.product .woocommerce-loop-product__title {
    font-size: 14px; font-weight: 700; padding: 10px 12px 4px; color: #1a2e1a;
}
.dokan-single-store ul.products li.product .price { padding: 0 12px 8px; font-size: 15px; font-weight: 800; color: #2d6a4f; }
.dokan-single-store ul.products li.product .button {
    margin: auto 12px 12px !important; display: block !important;
    background: #2d6a4f !important; color: #fff !important;
    border-radius: 8px !important; padding: 9px 12px !important;
    font-size: 13px !important; font-weight: 700 !important;
    text-align: center !important; text-decoration: none !important;
    transition: background .15s !important;
}
.dokan-single-store ul.products li.product .button:hover { background: #1a5c3f !important; }
/* Filtre/tri au-dessus des produits */
.dokan-single-store .woocommerce-ordering select,
.dokan-single-store .products-per-page select {
    border: 1.5px solid #ddd0b8; border-radius: 8px; padding: 6px 10px; font-size: 13px;
}
/* Pagination */
.dokan-single-store .woocommerce-pagination .page-numbers a,
.dokan-single-store .woocommerce-pagination .page-numbers span {
    border-radius: 6px; border: 1.5px solid #ddd0b8;
}
.dokan-single-store .woocommerce-pagination .page-numbers .current {
    background: #2d6a4f; color: #fff; border-color: #2d6a4f;
}

/* Mobile */
@media (max-width: 768px) {
    .dokan-store-wrap.layout-left { flex-direction: column; }
    #dokan-secondary { min-width: 100%; max-width: 100%; }
    .dokan-single-store ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
    .dokan-single-store ul.products { grid-template-columns: 1fr !important; }
    .profile-img img { height: 200px !important; }
}

/* =====================================================
   Page d'accueil — sections grille 2 colonnes inline
   responsive mobile (ajout v5.36)
   ===================================================== */
.ll-hp-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}
@media (max-width: 900px) {
    .ll-hp-2col {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    /* Section billetterie : masquer le ticket preview sur mobile */
    .ll-hp-ticket-preview {
        display: none;
    }
    /* Section filtres carte : masquer le widget démo sur mobile */
    .ll-hp-map-demo {
        display: none;
    }
}
