/* ════════════════════════════════════════════════════════════
   Napoléon Produit — Frontend CSS
   ════════════════════════════════════════════════════════════ */

/* ── Notes olfactives ────────────────────────────────────── */
.np-notes {
    display : flex;
    gap     : 32px;
    flex-wrap: wrap;
}

.np-notes__group {
    flex           : 1;
    min-width      : 140px;
    display        : flex;
    flex-direction : column;
    gap            : 12px;
}

.np-notes__label {
    font-family    : 'Playfair Display', serif;
    font-size      : 18px;
    font-weight    : 700;
    color          : #C9A84C;
    margin         : 0;
    padding-bottom : 8px;
    border-bottom  : 1px solid rgba(201, 168, 76, 0.3);
}

.np-notes__list {
    list-style : none;
    margin     : 0;
    padding    : 0;
    display    : flex;
    flex-direction: column;
    gap        : 6px;
}

.np-notes__item {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 16px;
    font-weight : 400;
    color       : #F5EDD8;
    padding-left: 16px;
    position    : relative;
}

.np-notes__item::before {
    content    : '–';
    position   : absolute;
    left       : 0;
    color      : #C9A84C;
}

/* ── Certifications ──────────────────────────────────────── */
.np-certs {
    display        : flex;
    flex-direction : column;
    gap            : 0;
}

.np-cert-item {
    display        : flex;
    flex-direction : column;
    gap            : 8px;
    padding        : 24px 0;
    border-bottom  : 1px solid rgba(255,255,255,0.1);
}

.np-cert-item:last-child { border-bottom: none; }

.np-cert-num {
    font-family : 'Playfair Display', serif;
    font-size   : 14px;
    font-weight : 700;
    color       : #C9A84C;
    letter-spacing: .1em;
}

.np-cert-titre {
    display     : block;
    font-family : 'Playfair Display', serif;
    font-size   : 20px;
    font-weight : 700;
    color       : #F5EDD8;
    line-height : 1.3;
}

.np-cert-desc {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 15px;
    font-weight : 400;
    color       : rgba(245,237,216,0.75);
    line-height : 1.6;
    margin      : 0;
}

/* ── Livraison ───────────────────────────────────────────── */
.np-livraison {
    display        : flex;
    flex-direction : column;
    gap            : 0;
}

.np-livraison-item {
    padding       : 20px 0;
    border-bottom : 1px solid rgba(0,0,0,0.08);
}

.np-livraison-item:last-child { border-bottom: none; }

.np-livraison-label {
    font-family : 'Playfair Display', serif;
    font-size   : 18px;
    font-weight : 700;
    color       : #1C3A2A;
    margin      : 0 0 8px;
}

.np-livraison-text {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 15px;
    color       : #444;
    line-height : 1.65;
    margin      : 0;
}

/* ── FAQ ─────────────────────────────────────────────────── */
.np-faq {
    display        : flex;
    flex-direction : column;
    border         : 1px solid #F0E4D3;
    border-radius  : 4px;
    overflow       : hidden;
}

.np-faq-item {
    border-bottom : 1px solid #F0E4D3;
}

.np-faq-item:last-child {
    border-bottom : none;
}

.np-faq-question {
    width           : 100%;
    display         : flex;
    align-items     : center;
    justify-content : space-between;
    gap             : 24px;
    padding         : 24px;
    background      : none;
    border          : none;
    cursor          : pointer;
    text-align      : left;
    color           : #000 !important;
    font-family     : 'Playfair Display', sans-serif !important;
    font-size       : 18px !important;
    font-weight     : 500 !important;
    line-height     : 120% !important;
}

.np-faq-question__text {
    flex : 1;
}

.np-faq-icon-wrap {
    flex-shrink     : 0;
    width           : 32px;
    height          : 32px;
    display         : flex;
    align-items     : center;
    justify-content : center;
}

.np-faq-icon {
    width      : 20px;
    height     : 20px;
    display    : block;
    transition : transform .25s ease;
}

.np-faq-question[aria-expanded="true"] .np-faq-icon {
    transform : rotate(180deg);
}

.np-faq-answer {
    display             : grid;
    grid-template-rows  : 0fr;
    transition          : grid-template-rows .4s cubic-bezier(0.4, 0, 0.2, 1);
}

.np-faq-answer--open {
    grid-template-rows : 1fr;
}

.np-faq-answer__inner {
    overflow : hidden;
    padding  : 0 24px;
}

.np-faq-answer--open .np-faq-answer__inner {
    padding-bottom : 24px;
}

.np-faq-answer p {
    font-family : 'Playfair Display', sans-serif !important;
    font-size   : 16px !important;
    font-weight : 400 !important;
    color       : #000 !important;
    line-height : 120% !important;
    margin      : 0 !important;
}

/* ── Compléter l'expérience ──────────────────────────────── */
.np-experience {
    display               : grid;
    grid-template-columns : repeat(3, 1fr);
    gap                   : 24px;
}

@media (max-width: 768px) {
    .np-experience {
        grid-template-columns : 1fr;
    }
    .np-notes {
        flex-direction : column;
        gap            : 24px;
    }
}

.np-exp-card {
    border-radius : 16px;
    overflow      : hidden;
    background    : #1C3A2A;
    display       : flex;
    flex-direction: column;
}

.np-exp-card__img {
    width               : 100%;
    padding-top         : 65%;
    background-size     : cover;
    background-position : center;
    background-color    : #2A5240;
    position            : relative;
}

.np-exp-card__badge {
    position      : absolute;
    top           : 14px;
    left          : 14px;
    background    : #C9A84C;
    color         : #1C3A2A;
    font-family   : 'Playfair Display', sans-serif;
    font-size     : 11px;
    font-weight   : 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding       : 4px 10px;
    border-radius : 999px;
}

.np-exp-card__body {
    padding  : 16px 18px 18px;
    display  : flex;
    flex-direction: column;
    gap      : 6px;
    flex     : 1;
}

.np-exp-card__title {
    font-family : 'Playfair Display', serif;
    font-size   : 16px;
    font-weight : 700;
    color       : #F5EDD8;
    margin      : 0;
    line-height : 1.3;
}

.np-exp-card__title a {
    color           : inherit;
    text-decoration : none;
}

.np-exp-card__sous {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 13px;
    color       : rgba(245,237,216,0.65);
    margin      : 0;
    line-height : 1.4;
}

.np-exp-card__footer {
    display         : flex;
    align-items     : center;
    justify-content : space-between;
    margin-top      : auto;
    padding-top     : 12px;
}

.np-exp-card__price {
    font-family : 'Playfair Display', serif;
    font-size   : 20px;
    font-weight : 700;
    color       : #C9A84C;
}

.np-exp-card__price .woocommerce-Price-amount { color: inherit; }

.np-exp-card__add {
    display         : inline-flex;
    align-items     : center;
    padding         : 8px 16px;
    background      : rgba(245,237,216,0.1);
    border          : 1px solid rgba(245,237,216,0.3);
    border-radius   : 999px;
    font-family     : 'Playfair Display', sans-serif;
    font-size       : 13px;
    font-weight     : 600;
    color           : #F5EDD8;
    text-decoration : none;
    transition      : background .2s;
}

.np-exp-card__add:hover {
    background : rgba(245,237,216,0.2);
    color      : #F5EDD8;
}


/* ════════════════════════════════════════════════════════════
   Tabs [produit_tabs]
   ════════════════════════════════════════════════════════════ */

.np-tabs__nav {
    display         : flex;
    align-items     : stretch;
    border-bottom   : 2px solid rgba(0,0,0,0.1);
    gap             : 0;
    overflow-x      : auto;
    scrollbar-width : none;
}

.np-tabs__nav::-webkit-scrollbar { display: none; }

.np-tabs__btn {
    flex-shrink     : 0;
    padding         : 14px 28px;
    background      : none;
    border          : none;
    border-bottom   : 3px solid transparent;
    margin-bottom   : -2px;
    cursor          : pointer;
    font-family     : 'Playfair Display', sans-serif;
    font-size       : 15px;
    font-weight     : 500;
    color           : #888;
    white-space     : nowrap;
    transition      : color .2s, border-color .2s;
}

.np-tabs__btn:hover { color: #1C3A2A; }

.np-tabs__btn--active {
    color        : #1C3A2A;
    border-bottom: 3px solid #C9A84C;
    font-weight  : 700;
}

.np-tabs__panel {
    display : none;
    padding : 32px 0;
}

.np-tabs__panel--active { display: block; }

/* Description */
.np-desc-content {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 16px;
    color       : #333;
    line-height : 1.7;
}

.np-desc-content p { margin: 0 0 16px; }
.np-desc-content p:last-child { margin-bottom: 0; }

/* ── Contenu rich text dans les onglets ─────────────────── */
.np-rich-content {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 16px;
    color       : #333;
    line-height : 1.7;
}
.np-rich-content p  { margin: 0 0 14px; }
.np-rich-content p:last-child { margin-bottom: 0; }
.np-rich-content ul, .np-rich-content ol { padding-left: 20px; margin: 0 0 14px; }
.np-rich-content li { margin-bottom: 6px; }
.np-rich-content strong { font-weight: 700; }
.np-rich-content h2, .np-rich-content h3 { margin: 20px 0 8px; font-family: 'Playfair Display', serif; }

/* ── Garanties [produit_garanties] ──────────────────────── */
.np-garanties { display:flex; flex-direction:column; gap:24px; }

.np-garanties__titre {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 13px;
    font-weight : 500;
    color       : rgba(245,237,216,0.7);
    text-align  : center;
    margin      : 0;
    letter-spacing: .04em;
}

.np-garanties__list {
    list-style : none;
    margin     : 0;
    padding    : 0;
    display    : flex;
    flex-direction: column;
    gap        : 10px;
}

.np-garanties__item {
    display     : flex;
    align-items : center;
    gap         : 12px;
    font-family : 'Playfair Display', serif;
    font-size   : 15px;
    font-weight : 400;
    color       : #F5EDD8;
    line-height : 1.4;
}

.np-garanties__check {
    flex-shrink : 0;
    width       : 20px;
    height      : 20px;
    display     : flex;
    align-items : center;
}

.np-garanties__check svg {
    width  : 20px;
    height : 20px;
}

.np-garanties__icons {
    display     : flex;
    align-items : center;
    gap         : 24px;
    flex-wrap   : wrap;
    margin-top  : 4px;
}

.np-garanties__logo {
    height     : 28px;
    width      : auto;
    object-fit : contain;
    display    : block;
}

/* ── Variantes [produit_variantes] ──────────────────────── */
.np-variantes {
    display : flex;
    gap     : 12px;
}

.np-var-card {
    flex            : 1;
    display         : flex;
    flex-direction  : column;
    align-items     : center;
    justify-content : center;
    gap             : 24px;
    padding         : 28px 20px;
    border          : 1.5px solid rgba(201,168,76,0.35);
    border-radius   : 8px;
    background      : transparent;
    cursor          : pointer;
    text-align      : center;
    transition      : border-color .2s, background .2s;
    user-select     : none;
}

.np-var-card:hover {
    border-color : #C9A84C;
}

.np-var-card--active {
    border-color : #C9A84C;
    background   : #1C3A2A;
}

.np-var-card__label {
    color          : rgba(232, 201, 122, 0.70) !important;
    font-family    : 'Playfair Display', serif !important;
    font-size      : 18px !important;
    font-weight    : 500 !important;
    line-height    : 120% !important;
    text-transform : uppercase !important;
    text-align     : center !important;
}

.np-var-card__price {
    color           : #F5EDD8 !important;
    font-family     : 'Playfair Display', serif !important;
    font-size       : 56px !important;
    font-weight     : 700 !important;
    line-height     : 120% !important;
    text-decoration : none !important;
}

/* Reset WooCommerce styles sur les enfants du prix uniquement */
.np-var-card__price *,
.np-var-card__price .woocommerce-Price-amount,
.np-var-card__price .woocommerce-Price-amount *,
.np-var-card__price bdi,
.np-var-card__price span,
.np-var-card__price del,
.np-var-card__price ins {
    font-family     : inherit !important;
    font-size       : inherit !important;
    font-weight     : inherit !important;
    color           : #F5EDD8 !important;
    text-decoration : none !important;
    border-bottom   : none !important;
    box-shadow      : none !important;
}

/* Cacher le suffixe TTC */
.np-var-card__price .woocommerce-price-suffix {
    display : none !important;
}

.np-var-card__sub {
    color       : rgba(232, 201, 122, 0.70) !important;
    font-family : 'Playfair Display', serif !important;
    font-size   : 18px !important;
    font-weight : 500 !important;
    line-height : 120% !important;
    text-align  : center !important;
}

/* Cacher le select natif WooCommerce */
.variations,
table.variations {
    display : none !important;
}

@media (max-width: 600px) {
    .np-variantes { flex-direction: column; }
}

/* ── Image variante [produit_image_variante] ─────────────── */
.np-image-variante__img {
    display   : block;
    max-width : 100%;
    height    : auto;
    aspect-ratio: 300 / 257;
    object-fit: contain;
}

/* ── Quantité + Total [produit_quantite_total] ──────────── */
.np-qt {
    display     : flex;
    align-items : center;
    gap         : 32px;
    flex-wrap   : wrap;
    line-height : 1; /* évite les décalages de baseline */
}

.np-qt__label {
    color          : #F5EDD8;
    font-family    : 'Playfair Display', sans-serif;
    font-size      : 16px;
    font-weight    : 400;
    line-height    : 150%;
    text-transform : uppercase;
}

.np-qt__input-wrap {
    display     : flex;
    align-items : center;
}


.np-qt__btn {
    height: stretch;
    background: #c9a84c;
    width: 50px;
    &.np-qt__btn--minus {
        border-radius: 4px 0 0 4px;
    }
    &.np-qt__btn--plus {
        border-radius: 0 4px 4px 0;
    }
}

.np-qt__input,
.np-qt__input:focus,
.np-qt__input:hover,
.np-qt .np-qt__input {
    width           : 200px !important;
    height          : 48px !important;
    background      : none !important;
    border          : 1px solid #C9A84C !important;
    border-radius   : 4px !important;
    color           : #F5EDD8 !important;
    font-family     : 'Playfair Display', sans-serif !important;
    font-size       : 16px !important;
    font-weight     : 600 !important;
    text-align      : center !important;
    -moz-appearance : textfield !important;
    outline         : none !important;
    padding         : 0 16px !important;
    margin          : 0 -3px;
    box-shadow      : none !important;
}

.np-qt__input::-webkit-inner-spin-button,
.np-qt__input::-webkit-outer-spin-button { -webkit-appearance: none; }

.np-qt__total {
    display     : flex;
    align-items : center;
    gap         : 8px;
}

.np-qt__total-label {
    color       : #F5EDD8;
    font-family : 'Playfair Display', sans-serif;
    font-size   : 16px;
    font-weight : 400;
    line-height : 150%;
}

.np-qt__total-price {
    color       : #F5EDD8;
    font-family : 'Playfair Display', serif;
    font-size   : 20px;
    font-weight : 800;
    line-height : 150%;
}

/* ── Ajouter au panier [produit_add_to_cart] ────────────── */
.np-atc-wrap {
    display        : flex;
    flex-direction : column;
    gap            : 10px;
}

.np-atc {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    gap             : 10px;
    width           : 100%;
    padding         : 16px 32px;
    background      : #C9A84C;
    border          : none;
    border-radius   : 8px;
    font-family     : 'Roboto', sans-serif;
    font-size       : 16px;
    font-weight     : 600;
    color           : #1C3A2A;
    cursor          : pointer;
    transition      : background .2s, opacity .2s;
    letter-spacing  : .04em;
}

.np-atc:hover { background: #b8943e; }

.np-atc:disabled { opacity: .6; cursor: not-allowed; }

/* Spinner */
.np-atc__spinner {
    display      : none;
    width        : 16px;
    height       : 16px;
    border       : 2px solid rgba(28,58,32,0.3);
    border-top   : 2px solid #1C3A2A;
    border-radius: 50%;
    animation    : np-spin .7s linear infinite;
}

.np-atc--loading .np-atc__spinner { display: block; }

@keyframes np-spin { to { transform: rotate(360deg); } }

/* Feedback */
.np-atc__feedback {
    font-family : 'Playfair Display', sans-serif;
    font-size   : 13px;
    text-align  : center;
    min-height  : 18px;
}

.np-atc__feedback--success { color: #4CAF50; }
.np-atc__feedback--error   { color: #f44336; }

/* ── Accordéon [produit_tabs] frontend ──────────────────── */
.np-tabs.np-tabs {
    /* Override tabs CSS si présent */
}

.np-accord-item {
    background    : #D8D3C9;
    border-bottom : 1px solid rgba(0,0,0,0.1);
}

.np-accord-item:first-child {
    border-top : 1px solid rgba(0,0,0,0.1);
}

.np-accord-btn {
    width           : 100%;
    display         : flex;
    align-items     : center;
    justify-content : space-between;
    gap             : 16px;
    padding         : 22px 16px;
    background      : none;
    border          : none;
    cursor          : pointer;
    text-align      : left;
    font-family     : 'Playfair Display', serif;
    font-size       : 18px;
    font-weight     : 700;
    color           : #1C3A2A;
    line-height     : 130%;
}

.np-accord-btn:hover { color: #2A5240; }

.np-accord-icon {
    width      : 20px;
    height     : 20px;
    flex-shrink: 0;
    transition : transform .25s ease;
}

.np-accord-btn[aria-expanded="true"] .np-accord-icon {
    transform : rotate(180deg);
}

.np-accord-panel {
    display            : grid;
    grid-template-rows : 0fr;
    transition         : grid-template-rows .4s cubic-bezier(0.4, 0, 0.2, 1);
}

.np-accord-panel--open {
    grid-template-rows : 1fr;
}

.np-accord-panel__inner {
    overflow       : hidden;
    padding        : 0 16px;
    transition     : padding-bottom .4s cubic-bezier(0.4, 0, 0.2, 1);
}

.np-accord-panel--open .np-accord-panel__inner {
    padding-bottom : 24px;
}
