/*
Theme Name:  Nordic Distro v2
Description: Divi Child Theme — Nordic Distro (v2)
Author:      Agence Opé
Author URI:  https://www.agence-ope.fr
Template:    Divi
Version:     2.0
*/

/* ============================================================
   FONT
   ============================================================ */
@font-face {
    font-family: "Nordic Distro";
    font-display: swap;
    src: local("Nordic Distro"),
         url("https://www.nordicdistro.com/wp-content/themes/nordicdistro_v2/nordicdistro.ttf") format("truetype"),
         url("https://www.nordicdistro.com/wp-content/themes/nordicdistro_v2/nordicdistro.woff") format("woff");
}

/* ============================================================
   UTILITY — VERTICAL CENTER
   ============================================================ */
.vertical-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ============================================================
   GLOBAL
   ============================================================ */
/* Fond clair sur toutes les pages — homepage garde le fond coloré via JS */
body {
    background: #f8f9fc;
    transition: background 1s ease;
}

body.home {
    background: #8bbee9;
}

img {
    border-radius: 7px;
}

sup,
sub {
    font-size: 70%;
}

/* ============================================================
   MOBILE MENU
   ============================================================ */
.et_mobile_menu {
    margin-left: -100px;
    padding: 5%;
    width: calc(100% + 100px);
}

.mobile_nav.opened .mobile_menu_bar:before {
    content: "\4d";
}

/* ============================================================
   DIVERS
   ============================================================ */
.et_pb_contact_right p input {
    max-width: 50px;
}

/* ============================================================
   INLINE BUTTONS
   ============================================================ */
.inline-buttons .et_pb_button_module_wrapper {
    display: inline-block;
}

/* ============================================================
   ULTIMATE MEMBER
   ============================================================ */
#main-content .um-form .um-button,
.um-misc-ul a {
    font-weight: bold !important;
    border-radius: 200px !important;
    text-transform: uppercase !important;
    color: #fff;
    box-shadow: none !important;
    padding: 10px 20px;
    line-height: 3em;
}

.um-misc-ul li {
    width: 100%;
    list-style: none;
}

#main-content .um-form .um-alt,
.um-misc-ul a {
    background-color: #8bbee9;
}

#main-content .um-form #um-submit-btn {
    background-color: #2a4859 !important;
}

.um-profile-nav-posts {
    display: none;
}

/* ============================================================
   HOME — ANIMATION FOND
   ============================================================ */
@keyframes logo_in {
    from { opacity: 0.05; }
    to   { opacity: 1; }
}

@keyframes logo_in_mobile {
    from { opacity: 0.05; }
    to   { opacity: 0.5; }
}

@keyframes logo_out {
    to { opacity: 0.05; }
}

/* ============================================================
   HOME — COULEURS DE FOND
   ============================================================ */
.bg-darkblue { background: #2a4859; }

.bg-darkblue h2,
.bg-darkblue .et_pb_text_12 h2,
.bg-darkblue .et_pb_text_26 h2,
.bg-darkblue .et_pb_text_13 h2,
.bg-darkblue .et_pb_text_27 h2 {
    color: #fff !important;
}

.bg-blue  { background: #76a9d0; }
.bg-white { background: #fff; }

.bg-white .et_pb_pricing_tables_0 .et_pb_pricing_table {
    border-color: #2a4859 !important;
}

.bg-white .et_pb_pricing_tables_0 h2.et_pb_pricing_title,
.bg-white .et_pb_pricing li span {
    color: #2a4859 !important;
}

/* ============================================================
   HOME — LOGO OVERLAY
   ============================================================ */
#logo-overlay_container { padding: 0 !important; }

.fullwidth_logo_overlay {
    position: fixed;
    top: 0; left: 0;
    height: 100%; width: 100%;
}

.fullwidth_logo_overlay .et_pb_code_inner { position: static; }

.fullwidth_logo_overlay svg {
    position: absolute;
    right: -50%; top: -15%;
    width: 100%; height: 130%;
}

.fullwidth_logo_overlay svg .internal {
    opacity: 0.05;
    animation: logo_in 0.7s ease-in forwards;
}

.fullwidth_logo_overlay svg .circle {
    opacity: 0.05;
    animation: logo_in 0.7s ease-in 0.5s forwards;
}

.fullwidth_logo_overlay.scrolled svg .internal {
    opacity: 1;
    animation: logo_out 0.2s ease-in 0.1s forwards;
}

.fullwidth_logo_overlay.scrolled svg .circle {
    opacity: 1;
    animation: logo_out 0.2s ease-in forwards;
}

/* ============================================================
   HEADER / MENU
   ============================================================ */
.et_pb_column_0_tb_header .et_pb_module {
    display: inline-block;
    vertical-align: top;
}

/* Logo: blanc par défaut (homepage), bleu foncé sur les autres pages */
#logo-top {
    height: 50px;
    fill: #fff;
    transition: fill 0.3s ease;
}

/* Sur pages internes (.not-homepage ajoutée via Divi) */
.not-homepage #logo-top {
    fill: #2a4859;
}
/* Fallback si le logo est un <img> SVG */
.not-homepage #logo-top img {
    filter: brightness(0) saturate(100%) invert(16%) sepia(28%) saturate(700%) hue-rotate(167deg) brightness(87%) contrast(95%);
}

#menu-principal {
    align-items: center !important;
}
#menu-top {
    position: relative;
    height: 110px;
    background-color:transparent;
    overflow: visible;
}

/* couche visuelle seulement */
#menu-top::before {
    content: "";

    position: absolute;
    inset: 0;

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    background: rgba(255,255,255,0);

    -webkit-mask-image: linear-gradient(
        to bottom,
        black 55%,
        transparent 100%
    );

    mask-image: linear-gradient(
        to bottom,
        black 55%,
        transparent 100%
    );

    pointer-events: none;
    z-index: 0;
}

/* contenu réel du menu */
#menu-top > * {
    position: relative;
    z-index: 2;
}
/* Login / Logout icon */
.loginout:hover .et-pb-icon:after {
    display: inline-block;
    opacity: 1;
    width: max-content;
    font-size: 15px;
    font-family: Montserrat;
    font-weight: bold;
    padding: 1px 0 0 5px;
    font-style: normal;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s;
}

.loginout .et-pb-icon:after {
    content: '';
    display: inline;
    opacity: 0;
    position: absolute;
    transition: all 0.3s;
}

.loginout .et-pb-icon,
.loginout:hover .et-pb-icon { transition: all 0.3s; }

.logout:hover .et_pb_icon_wrap .et-pb-icon:after { content: 'Log out'; }
.login:hover .et_pb_icon_wrap .et-pb-icon:after  { content: 'Log in'; }
.login:hover .et-pb-icon  { margin-right: 66px; }
.logout:hover .et-pb-icon { margin-right: 82px; }

.mobile-menu { display: none !important; }
.mobile_menu_bar { display: none; }

.et_pb_menu_inner_container {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.et_pb_menu .et_pb_menu__wrap { flex: none !important; }

/* Cart button */
.et_pb_menu__cart-button {
    margin-left: 25px !important;
    background: #fff !important;
    color: #2a4859 !important;
    width: 35px;
    height: 35px;
    justify-content: center;
    border-radius: 200px;
    transition: transform 0.3s;
}

.et_pb_menu__cart-button:hover {
    transform: rotate(360deg);
    transition: transform 0.3s;
}

/* ============================================================
   HOME — SECTIONS SPÉCIFIQUES
   ============================================================ */
#artists .et_pb_column,
#services .et_pb_column,
#pricing .et_pb_pricing_table { overflow: visible !important; }

#artists .et_pb_column .et_pb_button_module_wrapper,
.et_pb_pricing_table .et_pb_button_wrapper,
#services .et_pb_column .et_pb_button_module_wrapper {
    position: absolute;
    width: 100%; left: 0; bottom: -17px;
    text-align: center;
    padding-bottom: 0;
}

.home_pros_text { height: 250px; }

/* Artists */
#artists_seemore { display: none; }

.home-artist { position: relative; }

.home-artist .content {
    opacity: 0;
    transition: all 0.3s;
    position: absolute;
    width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    top: 0; left: 0;
    border-radius: 20px;
    padding: 20px;
}

.home-artist:hover .content {
    opacity: 1;
    transition: all 0.3s;
}

/* ============================================================
   HOME — PRICING
   ============================================================ */
.et_pb_pricing_table_wrap { flex-wrap: nowrap !important; }

.et_pb_column_4_4 .et_pb_pricing_3 .et_pb_pricing_table {
    max-width: 100% !important;
    width: 100% !important;
    margin-right: 10px !important;
}

#pricing .et_pb_pricing_table { min-height: 366px; }
#pricing .et_pb_pricing_table.et_pb_featured_table { min-height: 436px; }

#pricing .et_pb_pricing_tables_0 .et_pb_dollar_sign {
    font-size: 15px;
    margin-right: 3px;
}

#pricing .et_pb_pricing_content_top {
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
    margin: 0 20px;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.et_pb_pricing li { padding: 0 0 1em 14px; }

#pricing .et_pb_featured_table .et_pb_pricing_content_top {
    border-top: 1px solid #2a4859;
    border-bottom: 1px solid #2a4859;
}

/* Abonnements en pause — tous les plans */
.et_pb_pricing_table::after {
    content: "Subscriptions on hold";
    display: block;
    position: absolute;
    top: 0; left: 0;
    z-index: 3;
    background-color: rgba(255, 255, 255, 0.82);
    width: 100%; height: 100%;
    border-radius: 14px;
    padding-top: 140px;
    box-sizing: border-box;
    text-align: center;
    font-size: 1.4em;
    font-weight: 700;
    color: #2a4859;
    line-height: 1.3;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.woocommerce-breadcrumb,
.woocommerce-breadcrumb a {
    font-family: Montserrat !important;
    font-weight: 300 !important;
}

.woocommerce-breadcrumb { color: #c8d2e2 !important; }
.woocommerce-breadcrumb a { color: #76a9d0 !important; }

.woocommerce-breadcrumb a:first-child { font-size: 0; }
.woocommerce-breadcrumb a:first-child::after {
    font-size: 12px;
    content: "Home";
    display: inline;
}

/* ============================================================
   SHOP — GRILLE PRODUITS
   ============================================================ */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 20px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

li.product {
    background: #fff;
    border-radius: 10px;
    padding: 0 !important;
    overflow: hidden;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
    border: 1px solid #eaedf2;
    display: flex !important;
    flex-direction: column;
}

li.product:hover {
    box-shadow: 0 4px 16px rgba(42, 72, 89, 0.10);
    border-color: #c8d6e4;
}

/* Image du produit */
li.product .woocommerce-loop-product__link > img,
li.product .attachment-woocommerce_thumbnail {
    width: 100%;
    height: 190px;
    object-fit: cover;
    border-radius: 0;
    display: block;
}

/* Corps de la carte */
li.product .woocommerce-loop-product__link {
    display: flex;
    flex-direction: column;
    flex: 1;
    text-decoration: none;
}

li.product h2.woocommerce-loop-product__title {
    font-size: 0.92em;
    font-weight: 600;
    color: #1e2f3c;
    padding: 12px 14px 4px;
    line-height: 1.35em;
}

li.product .price {
    padding: 0 14px 10px;
    color: #4a7fa8;
    font-weight: 600;
    font-size: 0.98em;
}

li.product .button {
    margin: 0 14px 14px;
    display: block;
    text-align: center;
    background: transparent;
    color: #2a4859 !important;
    border: 1.5px solid #b0c4d4;
    border-radius: 6px;
    padding: 7px 14px;
    font-size: 0.8em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition: all 0.2s;
    text-decoration: none;
}

li.product .button:hover {
    background: #2a4859;
    color: #fff !important;
    border-color: #2a4859;
}

/* Produits liés */
.related li.product {
    padding: 0 !important;
    border: none;
}

.related .et_shop_image {
    background: #f0f4f8;
    padding: 15px;
    border-radius: 8px 8px 0 0;
}

.related .woocommerce-loop-product__title {
    padding-top: 12px !important;
}

/* Variation */
.variations .label { padding-right: 20px; }

/* ============================================================
   SHOP — NOTICES & BADGES
   ============================================================ */

/* Fond clair pour les pages shop/catégorie */
body.post-type-archive-product,
body.tax-product_cat,
.woocommerce-shop {
    background: #f8f9fc;
}

/* Bannière distribution en pause */
.nd-shop-notice {
    background: #f0f4f8;
    border-left: 3px solid #b0c4d4;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 20px;
    font-size: 0.88em;
    color: #4a6070;
    display: flex;
    align-items: center;
    gap: 10px;
}

.nd-shop-notice i { flex-shrink: 0; font-size: 1em; }
.nd-shop-notice a { color: #4a7fa8; font-weight: 600; }

/* Badges produit */
.nd-badge {
    display: inline-block;
    font-size: 0.7em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 3px 8px;
    border-radius: 200px;
    margin-right: 5px;
    margin-bottom: 6px;
    vertical-align: middle;
    line-height: 1.4;
}

.nd-badge--new {
    background: #76a9d0;
    color: #fff;
    font-size: 0.7em !important;
    line-height: 1.7em;
    padding: 2px 5px !important;
    letter-spacing: 0.04em;
}

.nd-badge--download {
    background: #76a9d0;
    color: #fff;
}

/* Badges dans la grille shop (au-dessus du titre) */
.woocommerce-before-shop-loop-item-title .nd-badge {
    display: inline-block;
}

/* ============================================================
   SHOP — SECTION "LATEST SHEETS" (featured)
   ============================================================ */
.nd-featured-sheets {
    margin-bottom: 48px;
}

.nd-featured-sheets__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 20px;
}

.nd-featured-sheets__header h2 {
    font-size: 1.6em;
    color: #2a4859;
    padding-bottom: 0;
}

.nd-link-arrow {
    font-size: 0.9em;
    font-weight: 600;
    color: #76a9d0;
    text-decoration: none;
    transition: color 0.2s;
}

.nd-link-arrow:hover { color: #2a4859; }

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

/* Carte "latest sheet" */
.nd-sheet-card {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    border: 1px solid #eaedf2;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.2s, border-color 0.2s;
}

.nd-sheet-card:hover {
    box-shadow: 0 4px 16px rgba(42, 72, 89, 0.10);
    border-color: #c8d6e4;
}

.nd-sheet-card__thumb {
    position: relative;
    overflow: hidden;
}

.nd-sheet-card__img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    display: block;
    border-radius: 0;
    transition: transform 0.3s;
}

.nd-sheet-card:hover .nd-sheet-card__img {
    transform: scale(1.04);
}

.nd-sheet-card__img--placeholder {
    width: 100%;
    height: 180px;
    background: linear-gradient(135deg, #2a4859, #76a9d0);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 3em;
    border-radius: 0;
}

.nd-sheet-card__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.nd-sheet-card__body {
    padding: 14px 16px 18px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.nd-sheet-card__title {
    font-size: 0.95em;
    font-weight: 600;
    color: #2a4859;
    padding-bottom: 8px;
    line-height: 1.3;
}

.nd-sheet-card__price {
    font-size: 1.05em;
    font-weight: 700;
    color: #76a9d0;
}

/* ============================================================
   ND PRODUCT CARDS & GRID
   Utilisés via [nd_shop_grid] et [nd_latest_sheets] — modules Code Divi
   ============================================================ */

/* Grille responsive */
.nd-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 24px;
    margin: 0 0 40px;
    list-style: none;
    padding: 0;
}

/* Carte produit */
.nd-card {
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e8ecf1;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.22s ease, transform 0.22s ease;
    position: relative;
}

.nd-card:hover {
    box-shadow: 0 8px 28px rgba(42, 72, 89, 0.12);
    transform: translateY(-3px);
}

/* Image — limitée en hauteur pour mettre le texte en avant */
.nd-card__img-wrap {
    display: block;
    position: relative;
    height: 120px;
    overflow: hidden;
    background: #eef1f5;
    text-decoration: none;
}

.nd-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
    transition: transform 0.35s ease;
}
.nd-grid .nd-card__img {
    transform:blur(2px) brightness(0.98);
}
.nd-card:hover .nd-card__img {
    transform: scale(1.04);
}

/* Badges sur l'image */
.nd-card__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    flex-direction: row;
    gap: 5px;
}

.nd-badge--dl {
    background: #2a4859;
    color: #fff;
}

/* Corps de carte */
.nd-card__body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 6px;
}

.nd-card__title {
    font-size: 0.92em;
    font-weight: 600;
    line-height: 1.35;
    margin: 0;
    color: #1a2e3b;
}

.nd-card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s;
}

.nd-card__title a:hover { color: #2a4859; }

/* Bloc artiste sur la carte */
.nd-card__artist {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    text-decoration: none;
}

.nd-card__artist-img {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 1.5px solid #e4ecf5;
}

.nd-card__artist-name {
    font-size: 0.7em;
    color: #76a9d0;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nd-card__desc {
    font-size: 0.8em;
    color: #6a7f8e;
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nd-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 10px;
}

.nd-card__price {
    font-size: 1em;
    font-weight: 700;
    color: #2a4859;
    white-space: nowrap;
}

.nd-card__price ins { text-decoration: none; }
.nd-card__price del { opacity: 0.4; font-size: 0.85em; margin-right: 4px; }

.nd-card__btn {
    display: inline-block;
    padding: 7px 13px;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    border: 1.5px solid #b0c4d4;
    border-radius: 6px;
    color: #2a4859 !important;
    text-decoration: none;
    background: transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.nd-card__btn:hover,
.nd-card__btn.added {
    background: #2a4859 !important;
    color: #fff !important;
    border-color: #2a4859;
}

/* Notice bar (shortcode [nd_distro_notice]) */
.nd-notice-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #f0f4f8;
    border-left: 3px solid #76a9d0;
    border-radius: 0 8px 8px 0;
    padding: 12px 16px;
    margin-bottom: 28px;
    font-size: 0.87em;
    color: #4a6070;
    line-height: 1.5;
}

.nd-notice-bar__icon { font-size: 1.1em; flex-shrink: 0; }
.nd-notice-bar a { color: #2a4859; font-weight: 600; text-decoration: none; }
.nd-notice-bar a:hover { text-decoration: underline; }

/* Section "Latest Sheets" (shortcode [nd_latest_sheets]) */
.nd-latest { margin-bottom: 48px; }

.nd-latest__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 8px;
}

.nd-latest__title {
    font-size: 1.5em;
    color: #1a2e3b;
    margin: 0;
    font-weight: 700;
}

.nd-latest__all {
    font-size: 0.9em;
    font-weight: 600;
    color: #76a9d0;
    text-decoration: none;
    transition: color 0.2s;
}

.nd-latest__all:hover { color: #2a4859; }

/* État vide */
.nd-empty {
    text-align: center;
    color: #888;
    padding: 40px;
    font-size: 0.95em;
}

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */

/* Notice distribution en pause */
.nd-notice {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px 20px;
    border-radius: 14px;
    margin-bottom: 20px;
    margin-top: 8px;
}

.nd-notice--paused {
    background: #fdf3e3;
    border-left: 4px solid #e6a817;
    color: #5a4200;
}

.nd-notice__icon {
    font-size: 1.4em;
    flex-shrink: 0;
    margin-top: 2px;
}

.nd-notice__content strong {
    display: block;
    margin-bottom: 4px;
    font-size: 1em;
    color: #3d2d00;
}

.nd-notice__content p {
    margin: 0;
    font-size: 0.9em;
    padding-bottom: 0;
}

.nd-notice__content a {
    color: #76a9d0;
    font-weight: 600;
}

/* Bloc "What you get" — produits téléchargeables */
.nd-product-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #f2f6ff;
    border-radius: 12px;
    padding: 16px 20px;
    margin: 16px 0;
}

.nd-product-info__item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.9em;
    color: #2a4859;
    font-weight: 500;
}

.nd-product-info__item i {
    color: #76a9d0;
    width: 18px;
    text-align: center;
    flex-shrink: 0;
}

/* ============================================================
   SINGLE PRODUCT — MISE EN FORME WOOCOMMERCE
   ============================================================ */
.single-product div.product {
    background: transparent;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    margin-bottom: 0;
}

.single-product div.product .product_title {
    font-size: 1.9em !important;
    color: #1a2e3b;
    margin-bottom: 10px;
    line-height: 1.2;
}

.single-product div.product p.price,
.single-product div.product span.price {
    font-size: 1.5em !important;
    font-weight: 700 !important;
    color: #2a4859 !important;
}

.single-product div.product .woocommerce-product-details__short-description {
    font-size: 0.95em;
    line-height: 1.75;
    color: #4a5568;
    margin-bottom: 20px;
}

/* Bouton Add to cart */
.single-product div.product form.cart .button,
.single-product .woocommerce-variation-add-to-cart .button {
    background: #2a4859 !important;
    color: #ffffff !important;
    border-radius: 8px !important;
    padding: 14px 32px !important;
    font-weight: 600 !important;
    font-size: 0.95em !important;
    border: none !important;
    letter-spacing: 0.03em;
    transition: background 0.2s !important;
    box-shadow: none !important;
}

.single-product div.product form.cart .button:hover {
    background: #3d6b82 !important;
}

/* Onglets */
.single-product .woocommerce-tabs ul.tabs {
    border-bottom: 2px solid #eaedf2;
    margin-bottom: 0;
    padding: 0;
}

.single-product .woocommerce-tabs ul.tabs li {
    border-radius: 8px 8px 0 0 !important;
    border-color: #eaedf2 !important;
    background: #f5f7fa;
}

.single-product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: #fff !important;
    background: #fff;
}

.single-product .woocommerce-tabs ul.tabs li a {
    color: #4a6070;
    font-weight: 600;
}

.single-product .woocommerce-tabs ul.tabs li.active a { color: #2a4859; }

.single-product .woocommerce-Tabs-panel {
    background: #fff;
    border: 1px solid #eaedf2;
    border-top: none;
    border-radius: 0 0 8px 8px;
    padding: 24px;
}

/* Related / upsells */
.single-product .related.products h2,
.single-product .upsells.products h2 {
    font-size: 1.3em;
    color: #1a2e3b;
    margin-bottom: 20px;
    font-weight: 700;
}

/* ============================================================
   CHECKOUT
   ============================================================ */
.coupon .input-text { padding: 6px 10px !important; }

#alg_checkout_files_upload_form_1 { display: none; }

.et_pb_wc_checkout_payment_info #alg_checkout_files_upload_form_1 {
    display: block;
    padding: 20px;
}

#wc-stripe-payment-request-button-separator { display: none !important; }

.et_pb_wc_checkout_payment_info { border-radius: 14px; }

input[type=button] {
    appearance: auto;
    padding: 10px 30px;
    background-color: #fff;
    border: none;
    border-radius: 14px;
}

/* Champs de formulaire checkout */
.woocommerce-checkout .form-row input,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
    border-radius: 10px !important;
    border: 1.5px solid #d0dce8 !important;
    padding: 10px 14px !important;
    transition: border-color 0.2s;
}

.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus {
    border-color: #76a9d0 !important;
    outline: none;
}

/* Bouton "Place order" */
#place_order {
    background: #2a4859 !important;
    color: #fff !important;
    border-radius: 200px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em;
    border: none !important;
    padding: 14px 36px !important;
    font-size: 1em !important;
    transition: background 0.2s !important;
    width: 100%;
}

#place_order:hover { background: #76a9d0 !important; }

/* ============================================================
   PAGE THANK YOU — DOWNLOAD BANNER
   ============================================================ */
.nd-download-banner {
    display: flex;
    align-items: center;
    gap: 20px;
    background: linear-gradient(135deg, #2a4859, #76a9d0);
    color: #fff;
    border-radius: 16px;
    padding: 24px 28px;
    margin-bottom: 32px;
    box-shadow: 0 6px 24px rgba(42, 72, 89, 0.25);
}

.nd-download-banner__icon {
    font-size: 2.4em;
    flex-shrink: 0;
    opacity: 0.9;
}

.nd-download-banner__content h3 {
    color: #fff;
    margin: 0 0 6px;
    font-size: 1.2em;
    padding-bottom: 0;
}

.nd-download-banner__content p {
    margin: 0;
    font-size: 0.95em;
    opacity: 0.9;
    padding-bottom: 0;
}

.nd-download-banner__content a {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
}

/* ============================================================
   HEADER — TRANSPARENT + BLUR
   ============================================================ */
#main-header {
    background-color: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
    transition: background-color 0.3s ease !important;
}

/* Homepage */
body.home #main-header {
    background-color: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

/* Scrollé (fixe) — fond plus opaque quand ancré */
#main-header.et-fixed-header {
    background-color: transparent !important;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.07) !important;
}

/* Respiration sous le header sur les pages intérieures */
body:not(.home) #main-content {
    padding-top: 50px;
}

/* Icône panier/checkout dans le menu — masquée */
.et_pb_menu__cart-button,
#et-top-navigation .et_pb_menu__cart-button {
    display: none !important;
}

/* ============================================================
   CATEGORY ARCHIVE — nd-cat-page
   ============================================================ */
.nd-cat-page {
    max-width: 1200px;
    margin: 0 auto;
}

.nd-breadcrumb {
    display: none;
}
.nd-breadcrumb .woocommerce-breadcrumb {
    font-size: 0.8em;
    color: #a0aab4 !important;
}
.nd-breadcrumb .woocommerce-breadcrumb a {
    color: #76a9d0 !important;
}

.nd-cat-header {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    border-radius: 12px;
    margin-bottom: 32px;
}

.nd-cat-header__img-wrap {
    width: 130px;
    height: 130px;
    flex-shrink: 0;
    border-radius: 10px;
    overflow: hidden;
}

.nd-cat-header__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0;
    display: block;
}

.nd-cat-header__text {
    flex: 1;
    min-width: 0;
}

.nd-cat-header__label {
    display: block;
    font-size: 0.68em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #76a9d0;
    margin-bottom: 4px;
}

.nd-cat-header__title {
    font-size: 1.6em;
    font-weight: 700;
    color: #1a2e3b;
    margin: 0 0 8px;
    line-height: 1.2;
}

.nd-cat-header__desc {
    font-size: 0.87em;
    color: #4a5568;
    line-height: 1.7;
    margin: 0 0 8px;
}

.nd-cat-header__count {
    font-size: 0.72em;
    color: #aab4be;
    font-weight: 600;
}

/* ============================================================
   ARTIST STATS — my-account dashboard
   ============================================================ */
.nd-artist-stats {
    background: #fff;
    border: 1px solid #e4ecf5;
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 28px;
}

.nd-artist-stats__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 8px;
}

.nd-artist-stats__title {
    font-size: 1em;
    font-weight: 700;
    color: #2a4859;
    margin: 0;
}

.nd-artist-stats__subtitle {
    font-size: 0.8em;
    color: #888;
}

.nd-sales-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 20px;
}

.nd-sales-card {
    background: #f7faff;
    border-radius: 8px;
    padding: 14px 16px;
    text-align: center;
}

.nd-sales-card__val {
    display: block;
    font-size: 1.5em;
    font-weight: 700;
    color: #2a4859;
    margin-bottom: 2px;
}

.nd-sales-card__label {
    font-size: 0.72em;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.nd-sales-card--highlight {
    background: linear-gradient(135deg, #2a4859, #3d6b82);
}

.nd-sales-card--highlight .nd-sales-card__val,
.nd-sales-card--highlight .nd-sales-card__label {
    color: #fff;
}

/* Bar chart */
.nd-sales-chart {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    height: 70px;
    margin-bottom: 4px;
}

.nd-sales-chart__col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 1;
    height: 100%;
    justify-content: flex-end;
}

.nd-sales-chart__bar {
    background: linear-gradient(to top, #2a4859, #76a9d0);
    border-radius: 3px 3px 0 0;
    width: 100%;
    min-height: 3px;
    transition: height 0.3s;
}

.nd-sales-chart__label {
    font-size: 9px;
    color: #aab4be;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.nd-chart-months {
    display: flex;
    gap: 8px;
    margin-top: 2px;
}

.nd-chart-months__item {
    flex: 1;
    text-align: center;
    font-size: 9px;
    color: #aab4be;
    text-transform: uppercase;
}

/* ============================================================
   SHOP ARCHIVE — nd-shop-page
   ============================================================ */
.nd-shop-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0;
}

/* Section générique */
.nd-shop-section {
    margin-bottom: 60px;
}


.nd-shop-section--paused {
    opacity: 0.88;
}

/* En-tête de section */
.nd-shop-section__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 28px;
}

.nd-shop-section__tag {
    display: inline-block;
    font-size: 0.7em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #76a9d0;
    margin-bottom: 6px;
}

.nd-shop-section__tag--paused { color: #b0b0b0; }

.nd-shop-section__title {
    font-size: 1.6em;
    font-weight: 700;
    color: #1a2e3b;
    margin: 0 0 6px;
    padding: 0;
    line-height: 1.1;
}

.nd-shop-section__sub {
    font-size: 0.88em;
    color: #6a7f8e;
    margin: 0;
    padding: 0;
    line-height: 1.5;
}

/* Notice bar dans le shop */
.nd-notice-bar--top {
    margin-bottom: 32px;
}

/* Grille artistes */
.nd-artists-header {
    margin: 36px 0 16px;
    border-top: 1px solid #eaedf2;
    padding-top: 28px;
}

.nd-artists-title {
    font-size: 1.15em;
    font-weight: 700;
    color: #1a2e3b;
    margin: 0;
}

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

/* Carte artiste */
.nd-artist-card {
    display: flex;
    flex-direction: column;
    background: #f5f7fa;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    border: 1px solid #eaedf2;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.nd-artist-card:hover {
    box-shadow: 0 6px 20px rgba(42, 72, 89, 0.10);
    transform: translateY(-2px);
}

.nd-artist-card__img-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #e0e8f0;
}

.nd-artist-card__img-wrap--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #2a4859, #76a9d0);
    font-size: 2.5em;
    font-weight: 700;
    color: #fff;
}

.nd-artist-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.nd-artist-card:hover .nd-artist-card__img { transform: scale(1.05); }

.nd-artist-card__info {
    padding: 14px 16px 16px;
}

.nd-artist-card__name {
    display: block;
    font-size: 0.95em;
    font-weight: 700;
    color: #1a2e3b;
    margin-bottom: 5px;
}

.nd-artist-card__desc {
    font-size: 0.78em;
    color: #6a7f8e;
    line-height: 1.5;
    margin: 0 0 8px;
}

.nd-artist-card__count {
    font-size: 0.72em;
    font-weight: 600;
    color: #76a9d0;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Carte en pause */
.nd-card--paused .nd-card__img-wrap {
    position: relative;
}

.nd-card__paused-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.80);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8em;
    font-weight: 700;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.nd-card--paused { opacity: 0.75; pointer-events: none; }

/* CTA contact */
.nd-contact-cta {
    text-align: center;
    padding: 32px;
    color: #6a7f8e;
}

.nd-contact-cta p { margin-bottom: 16px; font-size: 0.95em; }

/* Boutons généraux */
.nd-btn {
    display: inline-block;
    padding: 9px 20px;
    font-size: 0.84em;
    font-weight: 600;
    border-radius: 7px;
    text-decoration: none;
    transition: background 0.18s, color 0.18s, border-color 0.18s;
    cursor: pointer;
    white-space: nowrap;
}

.nd-btn--outline {
    background: transparent;
    color: #2a4859;
    border: 1.5px solid #b0c4d4;
}

.nd-btn--outline:hover {
    background: #2a4859;
    color: #fff !important;
    border-color: #2a4859;
}

.nd-btn--primary {
    background: #2a4859;
    color: #fff !important;
    border: 1.5px solid #2a4859;
}

.nd-btn--primary:hover {
    background: #3d6b82;
    border-color: #3d6b82;
}

/* ============================================================
   SINGLE PRODUCT — nd-product-page
   ============================================================ */
.nd-product-bc {
    font-size: 0.82em;
    color: #8899a6;
    margin-bottom: 20px;
}

.nd-product-bc a { color: #76a9d0; text-decoration: none; }
.nd-product-bc a:hover { text-decoration: underline; }

/* Layout 2 colonnes */
.nd-product-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    margin-bottom: 40px;
    align-items: start;
}

/* Colonne gauche */
.nd-product-aside {
    position: sticky;
    top: 120px;
}

/* Carte artiste */
.nd-artist-info {
    background: #f5f7fa;
    border: 1px solid #eaedf2;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 16px;
}

.nd-artist-info__photo-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #e0e8f0;
}

.nd-artist-info__photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.nd-artist-info__body {
    padding: 14px 16px 18px;
}

.nd-artist-info__label {
    display: block;
    font-size: 0.67em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #76a9d0;
    margin-bottom: 4px;
}

.nd-artist-info__name {
    display: block;
    font-size: 1em;
    font-weight: 700;
    color: #1a2e3b;
    margin-bottom: 8px;
}

.nd-artist-info__desc {
    font-size: 0.8em;
    color: #6a7f8e;
    line-height: 1.55;
    margin: 0 0 12px;
}

.nd-artist-info__link {
    font-size: 0.78em;
    font-weight: 600;
    color: #2a4859;
    text-decoration: none;
}

.nd-artist-info__link:hover { text-decoration: underline; }

/* Image produit (petite) */
.nd-product-aside__img-wrap {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #eaedf2;
}

.nd-product-aside__img {
    width: 100%;
    display: block;
    border-radius: 0;
    transition: opacity 0.2s;
}

.nd-product-aside__img-wrap:hover .nd-product-aside__img { opacity: 0.88; }

/* Colonne droite */
.nd-product-main {
    padding: 4px 0;
}

/* Badges */
.nd-product-badges {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.nd-product-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.72em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 4px 10px;
    border-radius: 5px;
}

.nd-product-badge--dl {
    background: #e8f4fb;
    color: #2a6a92;
}

.nd-product-badge--sheet {
    background: #edf2f7;
    color: #4a6070;
}

/* Titre */
.nd-product-title {
    font-size: 2em;
    font-weight: 700;
    color: #1a2e3b;
    line-height: 1.15;
    margin: 0 0 8px;
}

/* By [artist] */
.nd-product-artist-label {
    font-size: 0.92em;
    color: #6a7f8e;
    margin: 0 0 18px;
}

.nd-product-artist-label a {
    color: #2a4859;
    font-weight: 600;
    text-decoration: none;
}

.nd-product-artist-label a:hover { text-decoration: underline; }

/* Ligne achat: prix gauche + bouton droite — séparateur discret */
.nd-product-buy-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 16px 0;
    background: transparent;
}
.woocommerce div.product form.cart, .woocommerce-page div.product form.cart, .woocommerce #content div.product form.cart, .woocommerce-page #content div.product form.cart {
    margin: 0 !important;
;
}

.nd-product-buy-row .nd-product-price {
    margin: 0;
    font-size: 1.3em;
}

/* Prix */
.nd-product-price {
    font-size: 1.8em;
    font-weight: 700;
    color: #2a4859;
    margin-bottom: 18px;
    line-height: 1;
}

.nd-product-price ins { text-decoration: none; }
.nd-product-price del { opacity: 0.4; font-size: 0.7em; margin-right: 8px; }


/* Notice en pause */
.nd-product-notice {
    margin: 0 0 20px;
}

/* Infos téléchargement */
.nd-product-dl-info {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.nd-product-dl-info li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85em;
    color: #4a6070;
}

/* Bouton Add to cart — compact dans la buy-row */
.nd-product-cart-wrap .button,
.nd-product-cart-wrap input.button,
.single-product .nd-product-cart-wrap .woocommerce-Button {
    background: #2a4859 !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 10px 22px !important;
    font-size: 0.9em !important;
    font-weight: 600 !important;
    border: none !important;
    letter-spacing: 0.02em;
    transition: background 0.2s !important;
    box-shadow: none !important;
    cursor: pointer;
    white-space: nowrap;
}

.nd-product-cart-wrap .button:hover {
    background: #3d6b82 !important;
}

/* Masquer le sélecteur de quantité (sold individually filter fait le boulot) */
.nd-product-cart-wrap .quantity { display: none !important; }
.nd-product-cart-wrap .woocommerce-variation-add-to-cart .quantity { display: none !important; }

/* Meta */
.nd-product-meta {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #eaedf2;
    font-size: 0.82em;
    color: #8899a6;
}

.nd-product-meta a { color: #2a4859; text-decoration: none; }
.nd-product-meta a:hover { text-decoration: underline; }

/* Description complète */
.nd-product-desc-section {
    background: #fff;
    border: 1px solid #eaedf2;
    border-radius: 12px;
    padding: 28px 32px;
    margin-bottom: 40px;
}

.nd-product-desc-title {
    font-size: 1.1em;
    font-weight: 700;
    color: #1a2e3b;
    margin: 0 0 16px;
}

.nd-product-desc-body {
    font-size: 0.92em;
    line-height: 1.8;
    color: #4a5568;
}

/* More from artist */
.nd-more-from-artist {
    margin-bottom: 40px;
}

.nd-more-from-artist__title {
    font-size: 1.2em;
    font-weight: 700;
    color: #1a2e3b;
    margin: 0 0 20px;
}

.nd-more-from-artist__all {
    text-align: center;
    margin-top: 20px;
}

/* ============================================================
   CART — REFONTE
   ============================================================ */
.woocommerce-cart-form table.shop_table {
    border-collapse: collapse;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #eaedf2 !important;
    background: #fff;
}

.woocommerce-cart-form table.shop_table thead th {
    background: #f5f7fa;
    color: #1a2e3b;
    font-weight: 700;
    font-size: 0.8em;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 14px 16px;
    border: none;
    border-bottom: 2px solid #eaedf2;
}

.woocommerce-cart-form table.shop_table tbody td {
    padding: 16px;
    border-bottom: 1px solid #f0f4f8 !important;
    vertical-align: middle;
    border-left: none !important;
    border-right: none !important;
}

.woocommerce-cart-form table.shop_table .product-name a {
    color: #1a2e3b;
    font-weight: 600;
    text-decoration: none;
}

.woocommerce-cart-form table.shop_table .product-name a:hover {
    color: #2a4859;
    text-decoration: underline;
}

.woocommerce-cart-form table.shop_table img {
    width: 60px !important;
    height: 60px !important;
    object-fit: cover;
    border-radius: 6px;
}

/* Bouton remove */
.woocommerce-cart-form a.remove {
    color: #c0cdd8 !important;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    line-height: 24px;
    text-align: center;
    display: inline-block;
    font-size: 1.2em;
    border: 1.5px solid #e0e8f0 !important;
    transition: background 0.15s, color 0.15s;
}

.woocommerce-cart-form a.remove:hover {
    background: #fee2e2 !important;
    color: #e53e3e !important;
    border-color: #fca5a5 !important;
}

/* Bouton Update cart */
.woocommerce-cart-form button.button[name="update_cart"] {
    background: transparent !important;
    color: #2a4859 !important;
    border: 1.5px solid #b0c4d4 !important;
    border-radius: 7px !important;
    padding: 8px 18px !important;
    font-size: 0.82em !important;
    font-weight: 600 !important;
    transition: background 0.18s !important;
}

.woocommerce-cart-form button.button[name="update_cart"]:hover {
    background: #2a4859 !important;
    color: #fff !important;
}

/* Totaux panier */
.cart-collaterals .cart_totals {
    background: #fff;
    border: 1px solid #eaedf2;
    border-radius: 12px;
    padding: 24px;
}

.cart-collaterals .cart_totals h2 {
    font-size: 1.1em;
    font-weight: 700;
    color: #1a2e3b;
    margin-bottom: 16px;
}

.cart-collaterals .cart_totals table {
    border-collapse: collapse;
    width: 100%;
}

.cart-collaterals .cart_totals table td,
.cart-collaterals .cart_totals table th {
    padding: 10px 0;
    border-bottom: 1px solid #f0f4f8;
    font-size: 0.9em;
}

.wc-proceed-to-checkout .checkout-button {
    background: #2a4859 !important;
    color: #fff !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    font-size: 1em !important;
    padding: 14px 28px !important;
    text-align: center;
    display: block;
    width: 100%;
    transition: background 0.2s !important;
    text-decoration: none;
}

.wc-proceed-to-checkout .checkout-button:hover {
    background: #3d6b82 !important;
}

/* Checkout forms */
#place_order {
    border-radius: 8px !important;
}

.woocommerce-checkout h3 {
    font-size: 1.1em;
    color: #1a2e3b;
    font-weight: 700;
}

/* ============================================================
   MY ACCOUNT — NAVIGATION
   (masquée — navigation gérée via le dashboard personnalisé)
   ============================================================ */
.woocommerce-MyAccount-navigation { display: none !important; }

.woocommerce-account .woocommerce-MyAccount-content {
    width: 100%;
    float: none;
    margin-top: 0;
}

/* ============================================================
   MY ACCOUNT — DASHBOARD (refonte)
   ============================================================ */
.nd-dashboard {
    font-family: 'Open Sans', Arial, sans-serif;
}

/* En-tête de bienvenue */
.nd-dashboard__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1.5px solid #e4ecf5;
}

.nd-dashboard__greeting {
    font-size: 1.6em;
    color: #2a4859;
    padding-bottom: 4px;
    margin: 0;
}

.nd-dashboard__subline {
    font-size: 0.9em;
    color: #999;
    margin: 0;
    padding-bottom: 0;
}

.nd-dashboard__subline a {
    color: #76a9d0;
    font-weight: 600;
}

/* Bouton */
.nd-btn {
    display: inline-block;
    padding: 10px 24px;
    border-radius: 200px;
    font-weight: 700;
    font-size: 0.85em;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
    border: 2px solid transparent;
}

.nd-btn--primary {
    background: #2a4859;
    color: #fff;
}

.nd-btn--primary:hover {
    background: #76a9d0;
    color: #fff;
}

.nd-btn--outline {
    background: transparent;
    color: #2a4859;
    border-color: #2a4859;
}

.nd-btn--outline:hover {
    background: #2a4859;
    color: #fff;
}

.nd-btn--sm {
    padding: 6px 16px;
    font-size: 0.8em;
}

.nd-btn--download {
    background: #2a4859;
    color: #fff !important;
    font-size: 0.8em;
    padding: 7px 16px;
    white-space: nowrap;
    flex-shrink: 0;
}

.nd-btn--download:hover { background: #76a9d0; }

/* Cartes de stats */
.nd-dashboard__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

.nd-stat-card {
    border-radius: 16px;
    padding: 22px 20px;
    text-align: center;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 10px rgba(42, 72, 89, 0.06);
    border: 1.5px solid #e4ecf5;
    transition: transform 0.2s, box-shadow 0.2s;
}

.nd-stat-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(42, 72, 89, 0.12);
    text-decoration: none;
}

.nd-stat-card--primary {
    background: linear-gradient(135deg, #2a4859 0%, #3d6b82 100%) !important;
    border-color: transparent;
    color: #fff;
}

.nd-stat-card__icon {
    font-size: 1.8em;
    opacity: 0.85;
    color: #76a9d0;
}

.nd-stat-card--primary .nd-stat-card__icon { color: #8bbee9; }

.nd-stat-card__value {
    font-size: 2em;
    font-weight: 700;
    color: #2a4859;
    line-height: 1;
}

.nd-stat-card--primary .nd-stat-card__value { color: #fff; }

.nd-stat-card__label {
    font-size: 0.78em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #76a9d0;
}

.nd-stat-card--primary .nd-stat-card__label { color: rgba(255,255,255,0.75); }

/* Sections du dashboard */
.nd-dashboard__section {
    background: #fff;
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 24px;
    box-shadow: 0 2px 10px rgba(42, 72, 89, 0.05);
    border: 1.5px solid #e4ecf5;
}

.nd-dashboard__section--downloads {
    border-color: #76a9d0;
    background: linear-gradient(to bottom right, #f0f6fc, #fff);
}

.nd-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.nd-section-header h3 {
    color: #2a4859;
    font-size: 1.1em;
    font-weight: 700;
    padding-bottom: 0;
    margin: 0;
}

.nd-section-header a {
    font-size: 0.85em;
    color: #76a9d0;
    font-weight: 600;
    text-decoration: none;
}

/* Liste de téléchargements */
.nd-download-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.nd-download-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    background: #f7faff;
    border-radius: 12px;
    border: 1px solid #e0eaf5;
}

.nd-download-item__icon {
    font-size: 1.6em;
    color: #76a9d0;
    flex-shrink: 0;
    width: 36px;
    text-align: center;
}

.nd-download-item__info {
    flex: 1;
    min-width: 0;
}

.nd-download-item__info strong {
    display: block;
    font-size: 0.95em;
    color: #2a4859;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nd-download-item__info small {
    font-size: 0.8em;
    color: #999;
}

/* Message vide */
.nd-dashboard__empty {
    text-align: center;
    padding: 36px;
    color: #888;
}

.nd-dashboard__empty a {
    color: #76a9d0;
    font-weight: 600;
}

/* Liste de commandes */
.nd-order-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.nd-order-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    background: #f7faff;
    border-radius: 12px;
    border: 1px solid #e0eaf5;
}

.nd-order-item__meta {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.nd-order-item__meta strong {
    font-size: 0.95em;
    color: #2a4859;
}

.nd-order-item__details {
    font-size: 0.85em;
    color: #999;
    display: flex;
    gap: 12px;
}

/* Badges de statut de commande */
.nd-status--completed  { background: #d4f5e2; color: #1a6e40; padding: 2px 10px; border-radius: 200px; font-size: 0.78em; font-weight: 700; }
.nd-status--processing { background: #d8eeff; color: #0a4d7f; padding: 2px 10px; border-radius: 200px; font-size: 0.78em; font-weight: 700; }
.nd-status--on-hold    { background: #fff3cc; color: #7a5800; padding: 2px 10px; border-radius: 200px; font-size: 0.78em; font-weight: 700; }
.nd-status--cancelled  { background: #fde8e8; color: #8b0000; padding: 2px 10px; border-radius: 200px; font-size: 0.78em; font-weight: 700; }
.nd-status--pending    { background: #eee;    color: #555;    padding: 2px 10px; border-radius: 200px; font-size: 0.78em; font-weight: 700; }

/* ============================================================
   MY ACCOUNT — COUPON & STATUT ABONNEMENT
   ============================================================ */
.myacc_coupon {
    background: rgba(144, 174, 210, 0.75);
    padding: 3px 10px;
    color: #fff;
    line-height: 2.5em;
    border: 2px dashed grey;
    border-radius: 200px;
}

.myacc_header .et_pb_code_inner {
    display: flex;
    flex-wrap: wrap;
}

.myacc_titleblock h1 { padding-bottom: 0; }

.myacc_status {
    width: 100%;
    text-transform: uppercase;
    margin-top: 10px;
    justify-content: left;
    display: flex;
    align-items: center;
}

.myacc_subsc_title {
    font-weight: 700;
    font-size: 1.8em;
}

.myacc_subsc_expdate {
    color: #76a9d0;
    font-weight: 300;
}

.myacc_subsc_dashboard { padding: 0 10px 0 20px; }

.myacc_subsc_manage a.et_pb_button {
    background: transparent !important;
    border-width: 2px !important;
    border-color: #2a4859 !important;
    color: #2a4859 !important;
}

.myacc_subsc_manage a.et_pb_button:hover {
    color: #76a9d0 !important;
    border-color: #76a9d0 !important;
}

.myacc_subsc_dashboard,
.myacc_subsc_manage {
    display: flex;
    place-items: center;
}

/* ============================================================
   STATS ARTISTE
   ============================================================ */
.dashboard_stats_list { padding: 0 !important; }

.dashboard_stats_list li {
    list-style: none;
    border-bottom: 1px solid #ccc;
    padding: 8px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.dashboard_stats_list li img {
    width: 50px;
    border-radius: 7px;
    flex-shrink: 0;
}

.dashboard_stats_list .item_title {
    flex: 1;
    font-size: 1em;
    text-transform: uppercase;
    font-weight: 500;
}

.dashboard_stats_list .item_price {
    font-size: 1em;
    font-weight: 700;
    color: #2a4859;
    white-space: nowrap;
}

.dashboard_stats_list .item_orderdate {
    font-size: 0.8em;
    font-weight: 300;
    font-style: italic;
    color: #999;
    white-space: nowrap;
}

/* ============================================================
   SUCCESS / ERROR
   ============================================================ */
.nd-success {
    background: #d4f5e2;
    color: #1a6e40;
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ============================================================
   RESPONSIVE — TABLET (≤ 980px)
   ============================================================ */
@media (max-width: 980px) {

    .et-db #et-boc .et-l .et_mobile_menu {
        left: initial !important;
        right: 0 !important;
        min-width: 200px;
    }

    .et-db #et-boc .et-l .et_pb_menu .et_mobile_nav_menu { margin: 0 10px; }

    .et_pb_menu__cart-button { margin: 0 !important; }

    .loginout {
        position: absolute !important;
        right: 0; top: 7px;
    }

    .loginout:hover .et-pb-icon { margin-right: 0 !important; }
    .loginout:hover .et-pb-icon::after { display: none !important; }

    .et_pb_icon_1_tb_header .et_pb_icon_wrap,
    .et_pb_icon_3_tb_header .et_pb_icon_wrap,
    header .mobile_nav {
        background-color: #2a4859;
        border-radius: 100px;
        overflow: hidden;
        width: 35px; height: 35px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    #services .et_pb_column { margin-bottom: 60px; }

    .fullwidth_logo_overlay svg { right: -50%; top: -15%; width: 120%; height: 130%; }
    .fullwidth_logo_overlay svg .internal { animation: logo_in_mobile 0.7s ease-in forwards; }
    .fullwidth_logo_overlay svg .circle  { animation: logo_in_mobile 0.7s ease-in 0.5s forwards; }

    .et_pb_menu { position: absolute !important; right: 36px; }

    #menu-top.bg-white .et_pb_menu_0_tb_header.et_pb_menu ul li a { color: #fff !important; }

    .mobile-menu { display: inline !important; }
    .mobile_menu_bar { display: block; text-align: right; }

    /* Pricing horizontal scroll */
    .et_pb_pricing_tables_0 { width: 110%; }
    .et_pb_pricing_table_wrap {
        scroll-snap-type: x mandatory;
        display: flex;
        overflow-x: scroll;
        flex-wrap: nowrap !important;
        width: 100%;
    }
    #pricing .et_pb_pricing_table {
        scroll-snap-align: start;
        flex: 0 0 90%;
    }
    #pricing .et_pb_pricing_table,
    .home_pros_text { height: initial; }

    #artists .et_pb_column_1_3,
    .et_pb_pricing_table { margin-bottom: 50px !important; }

    .et_pb_section { padding: 0; }

    /* Shop grid — override Divi float-based WC grid in tablet range */
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        display: grid !important;
        float: none !important;
        width: 100% !important;
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
        gap: 16px !important;
    }
    .woocommerce-page ul.products li.product:nth-child(n),
    .woocommerce ul.products li.product {
        width: auto !important;
        margin: 0 !important;
        float: none !important;
        clear: none !important;
    }
    .nd-featured-sheets__grid { grid-template-columns: repeat(2, 1fr); }
    /* My account */
    .nd-dashboard__stats { grid-template-columns: 1fr 1fr; }
    .nd-dashboard__header { flex-direction: column; align-items: flex-start; }

    .myacc_header .et_pb_code_inner { display: block; }
    .myacc_subsc_dashboard { padding: 0; margin-bottom: 10px; }
    .myacc_status { justify-content: center; flex-direction: column; text-align: center; }
    .myacc_subsc_manage { width: 100%; }
    .myacc_titleblock { margin-bottom: 30px; }
    .myacc_header .et_pb_button { display: block; width: 100%; padding: 7px 20px; font-size: 1em; }
    .myacc_subsc_title { margin-top: 20px; margin-bottom: 10px; }

    .nd-order-item { flex-wrap: wrap; }
    .nd-order-item__details { width: 100%; }

    /* Single product — stack columns */
    .nd-product-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .nd-product-aside {
        position: static;
        display: flex;
        flex-direction: row;
        gap: 20px;
        align-items: flex-start;
    }
    .nd-artist-info { flex: 1; }
    .nd-product-aside__img-wrap { width: 120px; flex-shrink: 0; }
}

/* ============================================================
   RESPONSIVE — MOBILE (≤ 767px)
   ============================================================ */
@media (max-width: 767px) {

    .nd-featured-sheets__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .nd-sheet-card__img { 
    filter: blur(2px) brightness(0.98);
    height: 140px; }

    /* Produits en 1 colonne sur mobile */
    .woocommerce ul.products,
    .woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
    .woocommerce-page ul.products li.product:nth-child(n),
    .woocommerce ul.products li.product {
        width: auto !important;
        float: none !important;
    }

    .nd-grid { grid-template-columns: 1fr; gap: 12px; }
    .nd-card__footer { flex-direction: row; align-items: center; gap: 8px; }
    .nd-card__btn { flex-shrink: 0; }
    .nd-card__img-wrap { height: 100px; }

    .nd-latest__title { font-size: 1.2em; }

    /* Category header : stacked */
    .nd-cat-header { flex-direction: column; }
    .nd-cat-header__img-wrap { width: 100%; height: 160px; }

    /* Artist stats */
    .nd-sales-summary { grid-template-columns: 1fr; }

    .nd-dashboard__stats { grid-template-columns: 1fr; }

    .nd-download-banner { flex-direction: column; text-align: center; }
    .nd-download-item { flex-wrap: wrap; }
    .nd-download-item__info strong { white-space: normal; }

    /* Single product — titre + contenu d'abord, bloc artiste en dessous */
    .nd-product-layout {
        display: flex;
        flex-direction: column;
    }
    .nd-product-main {
        order: 1;
        max-width: 100%;
        overflow: hidden;
        min-width: 0;
        width:100%;
    }
    .nd-product-aside {
        order: 2;
        position: static;
        flex-direction: column; /* bloc artiste + image en colonne, pas en 2 colonnes */
        gap: 16px;
        max-width: 100%;
        overflow: hidden;
    }
    .nd-artist-info { width: 100%; }
    .nd-product-aside__img-wrap { width: 100%; height: 180px; }
    .nd-product-title { font-size: 1.4em; }
    .nd-product-buy-row { flex-wrap: wrap; }
    .nd-product-buy-row .nd-product-price { font-size: 1.1em; }

    /* Shop sections */
    .nd-shop-section__head { flex-direction: column; gap: 12px; }
    .nd-artists-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .nd-artist-card { flex-direction: column; }
    .nd-artist-card__img-wrap { width: 100%; height: 120px; border-radius: 8px 8px 0 0; }
}
