/* DS Category Blocks - rendu front responsive (style aligné sur le thème). */
.dscb {
    --dscb-gold: var(--theme-color-default, #bb9540);
    --dscb-ink: #1a1a1a;
    --dscb-text: #444;
    --dscb-cream: #fdf8ee;
    --dscb-border: #e8e8e8;
    --dscb-collapsed: 220px;
    --dscb-fade: #fff;
    color: var(--dscb-ink);
    margin-top: 1.25rem;
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--dscb-border);
}

/* Repli / dépli — progressif : par défaut tout est visible (sans JS = contenu complet).
   Le JS ajoute .is-collapsible (affiche le bouton) et .is-collapsed (replie). */
.dscb-inner {
    position: relative;
}

.dscb.is-collapsed .dscb-inner {
    overflow: hidden;
    max-height: var(--dscb-collapsed);
}

.dscb.is-collapsed .dscb-inner::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 80px;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--dscb-fade));
    pointer-events: none;
}

.dscb-inner > * {
    margin: 0 0 1.5rem;
}

.dscb-inner > *:last-child {
    margin-bottom: 0;
}

.dscb-toggle {
    display: none;
    width: fit-content;
    margin: 1.25rem auto 0;
    padding: 0.55rem 1.5rem;
    border: 1px solid var(--dscb-gold);
    border-radius: 6px;
    background: transparent;
    color: var(--dscb-gold);
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}

.dscb.is-collapsible .dscb-toggle {
    display: block;
}

.dscb-toggle::after {
    content: "";
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    margin-left: 0.5rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform 0.2s ease;
}

.dscb:not(.is-collapsed) .dscb-toggle::after {
    transform: rotate(-135deg) translateY(2px);
}

.dscb-toggle:hover {
    background: var(--dscb-gold);
    color: #fff;
}

/* Titres de section */
.dscb-h2 {
    font-size: 1.25rem;
    color: var(--dscb-gold);
    margin: 0 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--dscb-border);
}

/* Paragraphes */
.dscb-text {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--dscb-ink);
}

.dscb-text p {
    margin: 0 0 0.75rem;
}

.dscb-text a,
.dscb-card-text a,
.dscb-tip a {
    color: var(--dscb-gold);
}

/* Grilles de cartes (cards / compare) : responsive sans largeur fixe */
.dscb-cards,
.dscb-compare {
    display: grid;
    gap: 0.75rem;
}

.dscb-cards {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.dscb-compare {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.dscb-card {
    border: 1px solid #e0e0e0;
    padding: 14px 16px;
    background: #fff;
}

.dscb-card--highlight {
    border: 2px solid var(--dscb-gold);
    background: var(--dscb-cream);
}

.dscb-card-title {
    font-weight: 700;
    font-size: 0.95rem;
    margin: 0 0 0.4rem;
}

.dscb-card--highlight .dscb-card-title {
    color: var(--dscb-gold);
}

.dscb-card-text {
    font-size: 0.85rem;
    color: var(--dscb-text);
    margin: 0;
    line-height: 1.5;
}

.dscb-emoji {
    font-style: normal;
}

/* Encadré conseil */
.dscb-tip {
    display: flex;
    gap: 0.5rem;
    background: var(--dscb-cream);
    border-left: 3px solid var(--dscb-gold);
    padding: 12px 16px;
    font-size: 0.95rem;
    line-height: 1.5;
}

.dscb-tip-icon {
    flex: 0 0 auto;
}

/* Tableau : responsive, s'empile en mobile */
.dscb-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.dscb-table td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--dscb-border);
    vertical-align: top;
}

.dscb-table tr:nth-child(odd) {
    background: var(--dscb-cream);
}

.dscb-table-label {
    font-weight: 700;
    color: var(--dscb-gold);
    white-space: nowrap;
}

/* Bloc CTA sombre */
.dscb-cta {
    background: var(--dscb-ink);
    padding: 20px 24px;
}

.dscb-cta-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dscb-gold);
    margin: 0 0 0.6rem;
}

.dscb-cta-line {
    font-size: 0.95rem;
    color: #ccc;
    margin: 0.25rem 0;
}

.dscb-cta-line:first-of-type {
    color: #fff;
}

/* Empilement mobile du tableau */
@media (max-width: 767px) {
    .dscb-table,
    .dscb-table tbody,
    .dscb-table tr,
    .dscb-table td {
        display: block;
        width: 100%;
    }

    .dscb-table tr {
        margin-bottom: 0.5rem;
        border: 1px solid var(--dscb-border);
    }

    .dscb-table td {
        border-bottom: none;
    }

    .dscb-table-label {
        white-space: normal;
        padding-bottom: 0;
    }
}
