/*
 * Thème public unifié « Pierre & bronze ».
 * Chargé après les styles propres à chaque page afin d'assurer une identité
 * constante et des contrastes AAA pour les textes courants.
 */

body.theme-pierre.theme-unified {
    --pierre: #e7dfd2;
    --pierre-fond: #f1e9dd;
    --creme: #fbf7ef;
    --creme-profond: #e8dccb;
    --encre: #211b15;
    --encre-douce: #453b31;
    --bronze: #65451f;
    --bronze-clair: #825b2b;
    --taupe: #d5c8b6;
    --aaa-error: #861515;
    --aaa-success: #1f5936;
    --aaa-focus: #4f3519;
    --surface-border: rgba(101, 69, 31, 0.38);
    --surface-shadow: 0 22px 52px rgba(56, 39, 22, 0.12);
    background:
        radial-gradient(ellipse 70% 35% at 50% -8%, rgba(130, 91, 43, 0.16), transparent 58%),
        linear-gradient(180deg, #f5eee4 0%, var(--pierre) 44%, #dfd3c1 100%) !important;
    color: var(--encre) !important;
    font-family: 'Montserrat', 'Segoe UI', system-ui, sans-serif;
    line-height: 1.7;
}

body.theme-pierre.theme-unified :where(p, li, dd) {
    text-wrap: pretty;
}

body.theme-pierre.theme-unified :where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid var(--aaa-focus) !important;
    outline-offset: 3px !important;
}

body.theme-pierre.theme-unified ::selection {
    color: #fffdf8;
    background: #65451f;
}

/* Navigation et héros partagés */
body.theme-pierre.theme-unified .navigation,
body.theme-pierre.theme-unified .navigation.scrolled {
    background: rgba(247, 241, 231, 0.97) !important;
    border-bottom-color: rgba(101, 69, 31, 0.36) !important;
}

body.theme-pierre.theme-unified .hero-subtitle {
    color: #453b31 !important;
    font-weight: 500;
}

body.theme-pierre.theme-unified .hero-badge {
    color: #543819 !important;
    border-color: rgba(84, 56, 25, 0.58) !important;
    background: rgba(255, 252, 246, 0.9) !important;
    font-weight: 700;
}

/* Soulignement animé de l'accueil : trait, cœur, puis trait. */
body.theme-pierre.theme-unified .hero-home-title {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
}

body.theme-pierre.theme-unified .hero-home-title::after {
    display: none !important;
}

body.theme-pierre.theme-unified .hero-heartline {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr);
    align-items: center;
    width: min(100%, 430px);
    min-height: 34px;
    margin: 1.05rem 0;
    color: #65451f;
}

body.theme-pierre.theme-unified .hero-heartline-segment {
    display: block;
    height: 2px;
    background: linear-gradient(90deg, #65451f, #986d38);
    box-shadow: 0 2px 7px rgba(101, 69, 31, 0.2);
    transform: scaleX(0);
}

body.theme-pierre.theme-unified .hero-heartline-left {
    transform-origin: left center;
    animation: heroHeartlineLeft 0.85s cubic-bezier(0.65, 0, 0.35, 1) 0.2s forwards;
}

body.theme-pierre.theme-unified .hero-heartline-right {
    transform-origin: left center;
    background: linear-gradient(90deg, #986d38, #65451f);
    animation: heroHeartlineRight 0.85s cubic-bezier(0.65, 0, 0.35, 1) 1.3s forwards;
}

body.theme-pierre.theme-unified .hero-heartline-heart {
    width: 34px;
    height: 30px;
    overflow: visible;
    fill: transparent;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.theme-pierre.theme-unified .hero-heartline-heart path {
    stroke-dasharray: 92;
    stroke-dashoffset: 92;
    animation: heroHeartDraw 0.7s ease-in-out 0.93s forwards;
}

body.theme-pierre.theme-unified .hero-home-badge {
    margin: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
}

@keyframes heroHeartlineLeft {
    to { transform: scaleX(1); }
}

@keyframes heroHeartDraw {
    to { stroke-dashoffset: 0; }
}

@keyframes heroHeartlineRight {
    to { transform: scaleX(1); }
}

body.theme-pierre.theme-unified .hero-actions .btn,
body.theme-pierre.theme-unified .hero .btn-primary,
body.theme-pierre.theme-unified .btn-cta-principal,
body.theme-pierre.theme-unified .btn-submit,
body.theme-pierre.theme-unified .cta-button {
    color: #fffdf8 !important;
    background: linear-gradient(135deg, #755127 0%, #543719 100%) !important;
    border: 1px solid #3d2813 !important;
    box-shadow: 0 13px 30px rgba(69, 45, 21, 0.24) !important;
    font-weight: 700;
}

body.theme-pierre.theme-unified .hero-actions .btn:hover,
body.theme-pierre.theme-unified .hero .btn-primary:hover,
body.theme-pierre.theme-unified .btn-cta-principal:hover,
body.theme-pierre.theme-unified .btn-submit:hover,
body.theme-pierre.theme-unified .cta-button:hover {
    color: #fff !important;
    background: linear-gradient(135deg, #65451f 0%, #3f2a14 100%) !important;
    box-shadow: 0 17px 38px rgba(69, 45, 21, 0.3) !important;
}

/* Surfaces et typographie communes */
body.theme-pierre.theme-unified :where(.section, .product-page, .breadcrumb-container) {
    color: var(--encre);
}

body.theme-pierre.theme-unified :where(.section-title, .product-title, .form-title, .faq-title) {
    color: var(--encre) !important;
    text-shadow: none !important;
}

body.theme-pierre.theme-unified :where(.breadcrumb, .breadcrumb a, .breadcrumb span, .breadcrumb-separator) {
    color: var(--encre-douce) !important;
}

body.theme-pierre.theme-unified :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    color: var(--encre) !important;
    background: #fffdf8 !important;
    border-color: rgba(101, 69, 31, 0.48) !important;
    caret-color: var(--encre);
}

body.theme-pierre.theme-unified :where(input, textarea)::placeholder {
    color: #5a5045 !important;
    opacity: 1 !important;
}

body.theme-pierre.theme-unified :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
    border-color: #65451f !important;
    box-shadow: 0 0 0 3px rgba(101, 69, 31, 0.17) !important;
}

body.theme-pierre.theme-unified :where(label, .form-label) {
    color: #3c3025 !important;
    font-weight: 700;
}

/* Page Notre histoire */
body.theme-pierre.theme-unified .emotion-section {
    color: var(--encre) !important;
    background:
        radial-gradient(circle at 14% 10%, rgba(130, 91, 43, 0.12), transparent 34%),
        linear-gradient(145deg, #eee3d3, #f9f4eb) !important;
}

body.theme-pierre.theme-unified .emotion-content h2,
body.theme-pierre.theme-unified .emotion-text,
body.theme-pierre.theme-unified .emotion-text strong {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified .emotion-highlight,
body.theme-pierre.theme-unified .manifeste-highlight,
body.theme-pierre.theme-unified .highlight {
    color: #65451f !important;
}

body.theme-pierre.theme-unified .emotion-quote {
    color: #30271f !important;
    border-color: #65451f !important;
    background: rgba(255, 253, 248, 0.68);
    border-radius: 14px;
}

body.theme-pierre.theme-unified .manifeste-hero {
    color: var(--encre) !important;
    background:
        radial-gradient(circle at 85% 10%, rgba(130, 91, 43, 0.1), transparent 32%),
        var(--creme) !important;
}

body.theme-pierre.theme-unified .manifeste-text {
    color: var(--encre-douce) !important;
    font-weight: 400;
}

body.theme-pierre.theme-unified .manifeste-text strong,
body.theme-pierre.theme-unified .signature {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .valeur-section-solo,
body.theme-pierre.theme-unified .valeur-section-solo:nth-of-type(even) {
    color: var(--encre) !important;
    background: linear-gradient(145deg, #e8dccb, #f8f2e8) !important;
    border-top: 1px solid rgba(101, 69, 31, 0.16);
}

body.theme-pierre.theme-unified .valeur-section-solo:nth-of-type(even) {
    background: linear-gradient(145deg, #f8f2e8, #e3d5c2) !important;
}

body.theme-pierre.theme-unified .valeur-title-large,
body.theme-pierre.theme-unified .valeur-section-solo:nth-of-type(even) .valeur-title-large {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .valeur-text-large,
body.theme-pierre.theme-unified .valeur-section-solo:nth-of-type(even) .valeur-text-large {
    color: var(--encre-douce) !important;
    font-weight: 400;
}

body.theme-pierre.theme-unified .cta-finale {
    color: var(--encre) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(130, 91, 43, 0.14), transparent 42%),
        linear-gradient(145deg, #f8f2e8, #ded0bd) !important;
}

body.theme-pierre.theme-unified .cta-contenu h2 {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified .cta-contenu p {
    color: var(--encre-douce) !important;
    font-weight: 400;
}

/* Contact */
body.theme-pierre.theme-unified .info-card,
body.theme-pierre.theme-unified .form-card,
body.theme-pierre.theme-unified .faq-item {
    color: var(--encre) !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(130, 91, 43, 0.11), transparent 44%),
        var(--creme) !important;
    border-color: var(--surface-border) !important;
    box-shadow: var(--surface-shadow) !important;
}

body.theme-pierre.theme-unified .info-title,
body.theme-pierre.theme-unified .faq-question {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .info-text,
body.theme-pierre.theme-unified .faq-answer {
    color: var(--encre-douce) !important;
}

body.theme-pierre.theme-unified .info-text a {
    color: #543819 !important;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

body.theme-pierre.theme-unified .alert-success {
    color: #17462b !important;
    background: #e5f2e9 !important;
    border-color: #2d6a45 !important;
}

body.theme-pierre.theme-unified .alert-error,
body.theme-pierre.theme-unified .initiale-required-msg {
    color: var(--aaa-error) !important;
}

/* Fiches produit */
body.theme-pierre.theme-unified .product-page {
    padding-top: clamp(1.5rem, 3vw, 3rem);
}

body.theme-pierre.theme-unified .gallery-section,
body.theme-pierre.theme-unified .info-section {
    padding: clamp(1rem, 2.5vw, 1.7rem);
    background:
        radial-gradient(circle at 100% 0%, rgba(130, 91, 43, 0.09), transparent 38%),
        rgba(251, 247, 239, 0.92);
    border: 1px solid var(--surface-border);
    border-radius: 24px;
    box-shadow: var(--surface-shadow);
}

body.theme-pierre.theme-unified .main-image-container,
body.theme-pierre.theme-unified .thumbnail {
    background: #e1d4c1 !important;
    border-color: rgba(101, 69, 31, 0.42);
    box-shadow: 0 14px 34px rgba(56, 39, 22, 0.12);
}

body.theme-pierre.theme-unified .thumbnail.active {
    border-color: #65451f !important;
    box-shadow: 0 0 0 3px rgba(101, 69, 31, 0.2) !important;
}

body.theme-pierre.theme-unified .collection-tag {
    color: #543819 !important;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.22em;
}

body.theme-pierre.theme-unified .product-title {
    color: var(--encre) !important;
    font-size: clamp(2rem, 5vw, 3.2rem);
}

body.theme-pierre.theme-unified .price-block,
body.theme-pierre.theme-unified .characteristics,
body.theme-pierre.theme-unified .personalization-section {
    color: var(--encre) !important;
    background: linear-gradient(145deg, #fffdf8, #eadfce) !important;
    border-color: rgba(101, 69, 31, 0.5) !important;
    box-shadow: 0 13px 32px rgba(56, 39, 22, 0.1);
}

body.theme-pierre.theme-unified .price-block::before {
    opacity: 0.18;
}

body.theme-pierre.theme-unified .price-label,
body.theme-pierre.theme-unified .product-description,
body.theme-pierre.theme-unified .personalization-instructions,
body.theme-pierre.theme-unified .characteristic-label,
body.theme-pierre.theme-unified .char-counter {
    color: var(--encre-douce) !important;
}

body.theme-pierre.theme-unified .price,
body.theme-pierre.theme-unified .personalization-title,
body.theme-pierre.theme-unified .characteristics-title,
body.theme-pierre.theme-unified .characteristic-value {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .characteristic-item {
    color: var(--encre) !important;
    background: rgba(255, 253, 248, 0.72) !important;
    border: 1px solid rgba(101, 69, 31, 0.2);
}

body.theme-pierre.theme-unified .actions-section {
    background: rgba(241, 233, 221, 0.96) !important;
    border-top-color: rgba(101, 69, 31, 0.34) !important;
}

body.theme-pierre.theme-unified .qty-btn,
body.theme-pierre.theme-unified .quantity-input {
    color: var(--encre) !important;
    background: #fffdf8 !important;
    border-color: rgba(101, 69, 31, 0.55) !important;
}

body.theme-pierre.theme-unified .qty-btn:hover {
    color: #fff !important;
    background: #65451f !important;
    border-color: #3d2813 !important;
}

body.theme-pierre.theme-unified .stock-info.success {
    color: var(--aaa-success) !important;
    font-weight: 700;
}

body.theme-pierre.theme-unified .stock-info.error {
    color: var(--aaa-error) !important;
    font-weight: 700;
}

/* Variantes couleur : contraste fort dans tous les états */
body.theme-pierre.theme-unified .product-variants-label {
    color: #543819 !important;
    font-size: 0.9rem;
}

body.theme-pierre.theme-unified .product-variant-btn {
    min-height: 112px;
    color: var(--encre) !important;
    background: #fffdf8 !important;
    border: 2px solid rgba(101, 69, 31, 0.5) !important;
    box-shadow: 0 8px 18px rgba(56, 39, 22, 0.08);
}

body.theme-pierre.theme-unified .product-variant-btn:hover:not(.is-soldout):not(.is-selected),
body.theme-pierre.theme-unified .product-variant-btn:focus-visible:not(.is-soldout):not(.is-selected) {
    border-color: #543819 !important;
    background: #f2e7d5 !important;
}

body.theme-pierre.theme-unified .product-variant-btn.is-selected {
    color: #fffdf8 !important;
    background: #5b3c1b !important;
    border-color: #38230f !important;
    box-shadow: 0 0 0 3px rgba(91, 60, 27, 0.24), 0 12px 26px rgba(56, 39, 22, 0.2) !important;
}

body.theme-pierre.theme-unified .product-variant-copy strong,
body.theme-pierre.theme-unified .product-variant-copy small {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified .product-variant-btn.is-selected .product-variant-copy strong,
body.theme-pierre.theme-unified .product-variant-btn.is-selected .product-variant-copy small {
    color: #fffdf8 !important;
}

body.theme-pierre.theme-unified .product-variant-btn.is-soldout {
    color: #4d453c !important;
    background: #dfd8ce !important;
    border-color: #756b60 !important;
    opacity: 0.78 !important;
}

body.theme-pierre.theme-unified .product-variants-hint {
    color: var(--encre-douce) !important;
    font-size: 0.86rem;
    font-weight: 600;
}

body.theme-pierre.theme-unified .product-variants.needs-choice {
    outline-color: #65451f !important;
}

body.theme-pierre.theme-unified .product-variants.needs-choice .product-variants-hint {
    color: #543819 !important;
}

/* Initiales et personnalisations annexes */
body.theme-pierre.theme-unified .perso-initiale-section,
body.theme-pierre.theme-unified .personnalisation-ecrin-section {
    color: var(--encre) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(130, 91, 43, 0.12), transparent 42%),
        linear-gradient(145deg, #eee3d3, #faf6ee) !important;
    border-block: 1px solid rgba(101, 69, 31, 0.22);
}

body.theme-pierre.theme-unified .perso-initiale-section h2,
body.theme-pierre.theme-unified .perso-initiale-section h3,
body.theme-pierre.theme-unified .personnalisation-ecrin-section h2,
body.theme-pierre.theme-unified .personnalisation-ecrin-section h3 {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .perso-initiale-section p,
body.theme-pierre.theme-unified .personnalisation-ecrin-section p {
    color: var(--encre-douce) !important;
    opacity: 1 !important;
}

body.theme-pierre.theme-unified .initiale-btn {
    color: var(--encre) !important;
    background: #fffdf8 !important;
    border: 2px solid rgba(101, 69, 31, 0.52) !important;
    font-weight: 700;
}

body.theme-pierre.theme-unified .initiale-btn:hover:not(.out-of-stock):not(.selected),
body.theme-pierre.theme-unified .initiale-btn:focus-visible:not(.out-of-stock):not(.selected) {
    color: var(--encre) !important;
    background: #eadcc7 !important;
    border-color: #543819 !important;
}

body.theme-pierre.theme-unified .initiale-btn.selected {
    color: #fffdf8 !important;
    background: #5b3c1b !important;
    border-color: #38230f !important;
    box-shadow: 0 0 0 3px rgba(91, 60, 27, 0.22), 0 8px 20px rgba(56, 39, 22, 0.18) !important;
}

body.theme-pierre.theme-unified .initiale-btn.out-of-stock {
    color: #4d453c !important;
    background: #ddd6cc !important;
    border-color: #756b60 !important;
    opacity: 0.82 !important;
}

body.theme-pierre.theme-unified .initiale-btn.out-of-stock::after {
    display: none !important;
}

body.theme-pierre.theme-unified .initiale-stock-info {
    color: #51473c !important;
    margin-top: 0.95rem !important;
    font-size: 0.82rem !important;
    line-height: 1.5;
    opacity: 1 !important;
}

body.theme-pierre.theme-unified .initiale-grid {
    row-gap: 0.8rem !important;
}

/* Panier, commande et pages de contenu partagent les mêmes surfaces. */
body.theme-pierre.theme-unified :where(
    .cart-item,
    .cart-summary,
    .summary-card,
    .checkout-card,
    .checkout-section,
    .order-summary,
    .payment-section,
    .billing-section,
    .legal-content,
    .content-card,
    .account-card
) {
    color: var(--encre) !important;
    background: rgba(251, 247, 239, 0.94) !important;
    border-color: var(--surface-border) !important;
    box-shadow: var(--surface-shadow);
}

body.theme-pierre.theme-unified :where(
    .cart-item,
    .cart-summary,
    .summary-card,
    .checkout-card,
    .checkout-section,
    .order-summary,
    .payment-section,
    .billing-section,
    .legal-content,
    .content-card,
    .account-card
) :where(p, span, li) {
    color: inherit;
}

/* Panier : les anciens styles étaient prévus pour des cartes noires. */
body.theme-pierre.theme-unified .section:has(.cart-grid),
body.theme-pierre.theme-unified .section:has(.checkout-grid) {
    background: transparent !important;
}

body.theme-pierre.theme-unified .cart-item,
body.theme-pierre.theme-unified .cart-summary {
    color: var(--encre) !important;
    background: rgba(251, 247, 239, 0.97) !important;
    border-color: rgba(101, 69, 31, 0.42) !important;
}

body.theme-pierre.theme-unified .cart-item:hover {
    border-color: #65451f !important;
    box-shadow: 0 18px 42px rgba(56, 39, 22, 0.16) !important;
}

body.theme-pierre.theme-unified .cart-item .item-name,
body.theme-pierre.theme-unified .cart-item .item-total,
body.theme-pierre.theme-unified .cart-summary .summary-value {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified .cart-item .item-collection,
body.theme-pierre.theme-unified .cart-item .item-price,
body.theme-pierre.theme-unified .cart-summary .summary-title,
body.theme-pierre.theme-unified .cart-summary .summary-total :where(.summary-label, .summary-value),
body.theme-pierre.theme-unified .cart-item .item-header > div > div[style*="color:#D4AF37"] {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .cart-item .item-personalization {
    color: var(--encre-douce) !important;
    background: rgba(232, 220, 203, 0.58) !important;
    border-color: rgba(101, 69, 31, 0.38) !important;
}

body.theme-pierre.theme-unified .cart-item .item-personalization *,
body.theme-pierre.theme-unified .cart-item .item-personalization [style] {
    color: var(--encre-douce) !important;
}

body.theme-pierre.theme-unified .cart-item .item-personalization strong {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .cart-item .quantity-selector {
    color: var(--encre) !important;
    background: #f1e7d8 !important;
    border-color: rgba(101, 69, 31, 0.5) !important;
}

body.theme-pierre.theme-unified .cart-item .qty-btn {
    color: #fffdf8 !important;
    background: #65451f !important;
    border-color: #3d2813 !important;
}

body.theme-pierre.theme-unified .cart-item .qty-value {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified .cart-item .btn-remove {
    color: #861515 !important;
    background: #fff8f4 !important;
    border-color: #861515 !important;
}

body.theme-pierre.theme-unified .cart-item .btn-remove:hover {
    color: #fff !important;
    background: #861515 !important;
}

body.theme-pierre.theme-unified .cart-summary :where(.promo-section, .comment-section, .social-optout) {
    color: var(--encre) !important;
    background: rgba(232, 220, 203, 0.52) !important;
    border-color: rgba(101, 69, 31, 0.38) !important;
}

body.theme-pierre.theme-unified .cart-summary :where(.promo-title, .comment-title) {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .cart-summary :where(.summary-label, .shipping-estimate-note, .social-optout-text, .social-optout-label span, .comment-count) {
    color: var(--encre-douce) !important;
}

body.theme-pierre.theme-unified .cart-summary .shipping-info {
    color: var(--aaa-success) !important;
    background: rgba(31, 89, 54, 0.09) !important;
    border-color: rgba(31, 89, 54, 0.38) !important;
}

body.theme-pierre.theme-unified :where(.btn-checkout, .btn-apply-promo) {
    color: #fffdf8 !important;
    background: linear-gradient(135deg, #755127 0%, #543719 100%) !important;
    border-color: #3d2813 !important;
}

body.theme-pierre.theme-unified :where(.btn-continue, .btn-back) {
    color: #543819 !important;
    background: #fffdf8 !important;
    border-color: #65451f !important;
}

body.theme-pierre.theme-unified :where(.btn-continue, .btn-back):hover {
    color: #fff !important;
    background: #65451f !important;
}

/* Paiement : formulaires, éléments Stripe et récapitulatif sur fond clair. */
body.theme-pierre.theme-unified .checkout-grid {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified :where(.billing-section, .order-summary) {
    color: var(--encre) !important;
    background: rgba(251, 247, 239, 0.97) !important;
    border-color: rgba(101, 69, 31, 0.42) !important;
    box-shadow: var(--surface-shadow);
}

body.theme-pierre.theme-unified .checkout-grid .section-title,
body.theme-pierre.theme-unified .order-summary .item-name,
body.theme-pierre.theme-unified .order-summary .summary-total :where(.summary-label, .summary-value) {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified .checkout-grid :where(.form-label, .item-quantity, .badge, .shipping-notice, .cgv-checkout, .cgv-checkout span) {
    color: var(--encre-douce) !important;
}

body.theme-pierre.theme-unified .checkout-grid :where(.form-input, .form-select, #card-number-element, #card-expiry-element, #card-cvc-element, .promo-input) {
    color: var(--encre) !important;
    background: #fffdf8 !important;
    border-color: rgba(101, 69, 31, 0.52) !important;
}

body.theme-pierre.theme-unified .order-summary .item-price,
body.theme-pierre.theme-unified .order-summary .promo-title,
body.theme-pierre.theme-unified .order-summary .summary-line,
body.theme-pierre.theme-unified .order-summary .item-info > div[style] {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .order-summary .item-quantity {
    color: var(--encre-douce) !important;
}

body.theme-pierre.theme-unified .order-summary .promo-section,
body.theme-pierre.theme-unified .checkout-grid .test-card-info {
    color: var(--encre) !important;
    background: rgba(232, 220, 203, 0.52) !important;
    border-color: rgba(101, 69, 31, 0.38) !important;
}

body.theme-pierre.theme-unified .checkout-grid .test-card-info code {
    color: var(--encre) !important;
    background: #fffdf8 !important;
}

body.theme-pierre.theme-unified .checkout-grid .cgv-checkout a {
    color: #543819 !important;
    font-weight: 700;
    text-decoration-thickness: 2px;
}

body.theme-pierre.theme-unified .checkout-grid .shipping-notice strong {
    color: #543819 !important;
}

body.theme-pierre.theme-unified .checkout-grid #card-errors,
body.theme-pierre.theme-unified .checkout-grid .promo-error {
    color: var(--aaa-error) !important;
}

body.theme-pierre.theme-unified :where(.promo-success-text, .summary-line-gift, .item-price-gift) {
    color: var(--aaa-success) !important;
}

body.theme-pierre.theme-unified .gift-checkout-notice {
    color: #543819 !important;
    background: rgba(232, 220, 203, 0.58) !important;
    border-color: #65451f !important;
}

/* Mentions légales, confidentialité et CGV. */
body.theme-pierre.theme-unified .legal-container {
    color: var(--encre) !important;
}

body.theme-pierre.theme-unified .legal-header {
    border-bottom-color: rgba(101, 69, 31, 0.3) !important;
}

body.theme-pierre.theme-unified .legal-header h1,
body.theme-pierre.theme-unified .legal-section :where(h2, h3) {
    color: #543819 !important;
    text-shadow: none !important;
}

body.theme-pierre.theme-unified .legal-header p,
body.theme-pierre.theme-unified .legal-section h4,
body.theme-pierre.theme-unified .legal-section p,
body.theme-pierre.theme-unified .legal-list li,
body.theme-pierre.theme-unified .legal-note p {
    color: var(--encre-douce) !important;
    opacity: 1 !important;
}

body.theme-pierre.theme-unified .legal-section :where(a, a[style]),
body.theme-pierre.theme-unified .legal-list li::before {
    color: #543819 !important;
    font-weight: 700;
}

body.theme-pierre.theme-unified .legal-section h2 {
    border-bottom-color: rgba(101, 69, 31, 0.24) !important;
}

body.theme-pierre.theme-unified :where(.legal-info-box, .legal-note) {
    color: var(--encre) !important;
    background: rgba(251, 247, 239, 0.78) !important;
    border-color: rgba(101, 69, 31, 0.36) !important;
}

@media (min-width: 768px) {
    body.theme-pierre.theme-unified .actions-section {
        background: transparent !important;
    }
}

@media (max-width: 900px) {
    body.theme-pierre.theme-unified .gallery-section,
    body.theme-pierre.theme-unified .info-section {
        border-radius: 18px;
    }

    body.theme-pierre.theme-unified .product-grid {
        gap: 1.2rem;
    }

    body.theme-pierre.theme-unified .hero-heartline {
        width: min(78vw, 360px);
        margin-inline: auto;
    }
}

@media (max-width: 640px) {
    body.theme-pierre.theme-unified::after {
        inset: 69px 7px 7px;
    }

    body.theme-pierre.theme-unified .product-variants-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.theme-pierre.theme-unified .product-variant-btn {
        min-height: 104px;
        padding-inline: 0.5rem;
    }

    body.theme-pierre.theme-unified .emotion-quote {
        padding: 1.5rem 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.theme-pierre.theme-unified *,
    body.theme-pierre.theme-unified *::before,
    body.theme-pierre.theme-unified *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
