/* ================================================
   KLY GROUPE — Custom Homepage CSS
   Extrait de v2-homepage.html
   ================================================ */

/* ========================================
   CSS RESET & VARIABLES
   ======================================== */
:root{
  --green-900:#0d3311;
  --green-800:#1b5e20;
  --green-700:#2e7d32;
  --green-600:#388e3c;
  --green-500:#43a047;
  --green-400:#66bb6a;
  --green-100:#c8e6c9;
  --green-50:#e8f5e9;
  --white:#ffffff;
  --gray-50:#fafafa;
  --gray-100:#f5f5f5;
  --gray-200:#eeeeee;
  --gray-300:#e0e0e0;
  --gray-400:#bdbdbd;
  --gray-600:#757575;
  --gray-800:#424242;
  --gray-900:#212121;
  --shadow-sm:0 1px 3px rgba(0,0,0,.08);
  --shadow-md:0 4px 16px rgba(0,0,0,.1);
  --shadow-lg:0 8px 32px rgba(0,0,0,.12);
  --shadow-xl:0 16px 48px rgba(0,0,0,.16);
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:24px;
  --radius-full:9999px;
  --transition:0.3s cubic-bezier(.4,0,.2,1);
  --font:'Montserrat',system-ui,-apple-system,sans-serif;
}

/* ========================================
   UTILITY
   ======================================== */
#wrapper,.layout-homepage #wrapper,main{overflow-x:hidden!important}
/* ════════ PAGE MANUFACTURER — full-width + klycat-header full-bleed ════════ */
/* Casse le .container 1200px du layout et masque les colonnes si présentes */
body.page-manufacturer #wrapper{padding:0!important;background:transparent!important}
body.page-manufacturer #wrapper > .container{max-width:100%!important;padding:0!important}
body.page-manufacturer #wrapper > .container > .row{margin:0!important}
body.page-manufacturer #content-wrapper{width:100%!important;max-width:100%!important;flex:0 0 100%!important;padding:0!important}
body.page-manufacturer #left-column,
body.page-manufacturer #right-column{display:none!important}
body.page-manufacturer #main{max-width:100%;margin:0;padding:0}
body.page-manufacturer section#wrapper{padding-top:0!important}
/* Masquer le breadcrumb PS natif (remplacé par .klycat-bread dans le hero) */
body.page-manufacturer nav[data-depth]{display:none!important}
/* Klycat-header / CTA / Trust pleine largeur (bord à bord) via le trick 100vw */
body.page-manufacturer .klycat-header,
body.page-manufacturer .klycat-cta,
body.page-manufacturer .klycat-trust{width:100vw;position:relative;left:50%;margin-left:-50vw}
/* Contenu produits recentré à 1200px sous le hero */
body.page-manufacturer #products{max-width:1200px;margin:0 auto;padding:0 24px}
/* Responsive */
@media(max-width:768px){
  body.page-manufacturer #wrapper > .container{padding:0!important}
  body.page-manufacturer #products{padding:0 12px}
  body.page-manufacturer .klycat-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}
  body.page-manufacturer .klycat-results-bar{padding:10px 16px!important;flex-wrap:wrap;gap:8px}
  body.page-manufacturer .klycat-view-toggle{display:none!important}
}
@media(max-width:480px){
  body.page-manufacturer .klycat-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}
}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.section{padding:100px 0}
.section--gray{background:var(--gray-50)}
.section--green{background:linear-gradient(135deg,var(--green-800),var(--green-700));color:var(--white)}
.section--dark{background:var(--gray-900);color:var(--white)}
.section-label{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--green-700);background:var(--green-50);padding:8px 16px;border-radius:var(--radius-full);margin-bottom:16px}
.section--green .section-label{color:var(--white);background:rgba(255,255,255,.15)}
.section--dark .section-label{color:var(--green-400);background:rgba(102,187,106,.12)}
.section-title{font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.15;margin-bottom:16px;letter-spacing:-.02em;color:#232323}
.section-subtitle{font-size:1.125rem;color:var(--gray-600);max-width:600px;line-height:1.7;font-weight:400}
.section--green .section-title,.section--dark .section-title{color:var(--white)}
.section--green .section-subtitle,.section--dark .section-subtitle{color:rgba(255,255,255,.8)}
.text-center{text-align:center}
.mx-auto{margin-left:auto;margin-right:auto}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font);font-weight:600;font-size:.9375rem;padding:14px 32px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;transition:var(--transition);white-space:nowrap}
.btn--primary,.btn--primary:link,.btn--primary:visited{background:var(--green-800);color:var(--white) !important;border-color:var(--green-800)}
.btn--primary:hover{background:var(--green-700) !important;border-color:var(--green-700);color:var(--white) !important;transform:translateY(-2px);box-shadow:0 8px 24px rgba(27,94,32,.35)}
.btn--outline,.btn--outline:link,.btn--outline:visited{background:transparent;color:var(--green-800) !important;border-color:var(--green-800)}
.btn--outline:hover{background:var(--green-800) !important;color:var(--white) !important;transform:translateY(-2px)}
.btn--white,.btn--white:link,.btn--white:visited{background:var(--white);color:var(--green-800) !important;border-color:var(--white)}
.btn--white:hover{background:transparent !important;color:var(--white) !important;transform:translateY(-2px)}
.btn--ghost,.btn--ghost:link,.btn--ghost:visited{background:rgba(255,255,255,.12);color:var(--white) !important;border-color:rgba(255,255,255,.3)}
.btn--ghost:hover{background:rgba(255,255,255,.25) !important;color:var(--white) !important;transform:translateY(-2px)}
.btn--lg{padding:18px 40px;font-size:1rem}
.btn .material-icons-outlined{font-size:20px}

/* ========================================
   SCROLL ANIMATIONS
   ======================================== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}
.reveal-delay-2{transition-delay:.2s}
.reveal-delay-3{transition-delay:.3s}
.reveal-delay-4{transition-delay:.4s}

/* ========================================
   TOPBAR
   ======================================== */
.topbar{background:var(--green-900);color:rgba(255,255,255,.85);font-size:.8125rem;padding:8px 0;font-weight:500}
.topbar__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:8px}
.topbar__item--xl-only{display:none}
.topbar__item--lg-only{display:none}
@media(min-width:1024px){.topbar__item--lg-only{display:flex}}
@media(min-width:1200px){.topbar__item--xl-only{display:flex}}
.topbar__left{display:flex;align-items:center;gap:16px}
.topbar__item{display:flex;align-items:center;gap:6px;white-space:nowrap}
.topbar__item svg{color:var(--green-400);stroke:var(--green-400);flex-shrink:0}
.topbar__item--phone{color:rgba(255,255,255,.85)!important;text-decoration:none!important}
.topbar__item--phone:hover{color:#fff!important}
.topbar__item--highlight{color:var(--green-300)!important;font-weight:600}
.topbar__separator{color:rgba(255,255,255,.25);font-size:.65rem;flex-shrink:0}
.topbar__right{display:flex;align-items:center;gap:16px;flex-shrink:0}
.topbar__right a,.topbar__right a:link,.topbar__right a:visited{color:rgba(255,255,255,.85) !important;font-weight:600;transition:var(--transition)}
.topbar__right a:hover{color:var(--white) !important}

/* ========================================
   NAVBAR
   ======================================== */
.navbar{background:rgba(255,255,255,.92);border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:1000;transition:var(--transition)}
.navbar.scrolled{box-shadow:var(--shadow-md)}
.navbar__inner{display:flex!important;align-items:center!important;justify-content:space-between!important;height:72px;text-align:left!important;flex-wrap:nowrap!important}
.navbar__logo{margin-right:auto!important}
.navbar__actions{margin-left:auto!important}
.navbar__logo,.navbar__logo:link,.navbar__logo:visited{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.5rem;color:var(--green-800) !important}
.navbar__logo img{height:auto;width:auto;max-height:70px}
.navbar__logo-text{display:flex;flex-direction:column;line-height:1.1}
.navbar__logo-text small{font-size:.65rem;font-weight:500;color:var(--gray-600);text-transform:uppercase;letter-spacing:1px}
.navbar__nav{display:flex;align-items:center;gap:4px}
.navbar__link,.navbar__link:link,.navbar__link:visited{padding:8px 16px;font-size:.875rem;font-weight:600;color:var(--gray-800) !important;border-radius:var(--radius-sm);transition:var(--transition)}
.navbar__link:hover{color:var(--green-800) !important;background:var(--green-50)}
.navbar__actions{display:flex;align-items:center;gap:12px;position:relative}
.navbar__search-bar{display:flex;align-items:center;gap:8px;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:var(--radius-full);padding:8px 16px;min-width:200px;transition:var(--transition)}
.navbar__search-bar:focus-within{border-color:var(--green-500);box-shadow:0 0 0 3px rgba(27,94,32,.1)}
.navbar__search-bar .material-icons-outlined{font-size:20px;color:var(--gray-600)}
.navbar__search-input{border:none;background:none;outline:none;font-size:.875rem;font-family:var(--font);color:var(--gray-800);width:100%}
.navbar__search-input::placeholder{color:var(--gray-400)}
.navbar__icon,.navbar__icon:link,.navbar__icon:visited{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--gray-800) !important;transition:var(--transition);text-decoration:none !important;background:none;border:none;outline:none;cursor:pointer;padding:0}
.navbar__icon svg{display:block;flex-shrink:0}
.navbar__icon:hover{background:var(--gray-100);color:var(--green-800) !important}
.navbar__icon--cart{position:relative}
.navbar__cart-count{position:absolute;top:4px;right:4px;background:var(--green-600);color:#fff;font-size:.6rem;font-weight:700;min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;pointer-events:none}
.navbar__hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.navbar__hamburger span{display:block;width:24px;height:2px;background:var(--gray-800);border-radius:2px;transition:var(--transition)}

/* ========================================
   MY ACCOUNT PAGE
   ======================================== */
.kly-account{position:relative;min-height:calc(100vh - 112px);padding:32px 0 80px}
/* ── Fond pleine page ── */
/* On peint le body et le wrapper pour que le fond soit cohérent sur toute la largeur */
body#my-account,
body#my-account #main,
body#my-account #wrapper,
body#my-account section#wrapper{background:#eef3ee !important}
/* Blobs en position:fixed → couvrent tout le viewport indépendamment du container */
.kly-account__bg{position:fixed;inset:0;pointer-events:none;z-index:0}
.kly-account__bg-mesh{position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 15% 15%,rgba(102,187,106,.15) 0%,transparent 55%),radial-gradient(ellipse 60% 50% at 85% 85%,rgba(27,94,32,.1) 0%,transparent 55%),radial-gradient(ellipse 45% 45% at 50% 50%,rgba(200,230,201,.18) 0%,transparent 65%)}
.kly-account__bg-blob{position:absolute;border-radius:50%;filter:blur(80px);animation:blob-drift 10s ease-in-out infinite alternate}
.kly-account__bg-blob--a{width:500px;height:500px;background:rgba(102,187,106,.13);top:-100px;left:-80px;animation-duration:11s}
.kly-account__bg-blob--b{width:380px;height:380px;background:rgba(46,125,50,.1);bottom:-80px;right:-60px;animation-duration:14s;animation-delay:-4s}
.kly-account__bg-blob--c{width:260px;height:260px;background:rgba(200,230,201,.22);top:35%;left:50%;animation-duration:9s;animation-delay:-2s}
@keyframes blob-drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(24px,-28px) scale(1.07)}100%{transform:translate(-18px,22px) scale(.95)}}
.kly-account__bg-grid{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(46,125,50,.08) 1px,transparent 1px);background-size:36px 36px;mask-image:radial-gradient(ellipse 75% 75% at 50% 50%,black 20%,transparent 100%)}
/* Tout le contenu au-dessus du fond fixe */
.kly-account > *:not(.kly-account__bg){position:relative;z-index:1}
/* Welcome card */
.kly-account__welcome-card{position:relative;background:linear-gradient(135deg,var(--green-900) 0%,var(--green-700) 60%,#1a5c20 100%);border-radius:var(--radius-xl);padding:40px 48px;margin-bottom:40px;box-shadow:0 20px 60px rgba(13,51,17,.3)}
.kly-account__welcome-bg{position:absolute;inset:0;pointer-events:none;border-radius:inherit;overflow:hidden}
.kly-account__welcome-orb{position:absolute;border-radius:50%;filter:blur(40px);opacity:.35}
.kly-account__welcome-orb--1{width:280px;height:280px;background:var(--green-500);top:-80px;right:-60px}
.kly-account__welcome-orb--2{width:180px;height:180px;background:#81c784;bottom:-60px;left:20%;opacity:.25}
.kly-account__welcome-orb--3{width:120px;height:120px;background:var(--green-400);top:50%;left:40%;opacity:.2}
.kly-account__welcome-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.kly-account__welcome-left{display:flex;align-items:center;gap:24px}
.kly-account__avatar{position:relative;width:80px;height:80px;flex-shrink:0}
.kly-account__avatar span{width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:800;color:#fff;font-family:var(--font);backdrop-filter:blur(8px)}
.kly-account__avatar-ring{position:absolute;inset:-4px;border-radius:50%;border:2px dashed rgba(255,255,255,.2);animation:spin-slow 12s linear infinite}
@keyframes spin-slow{to{transform:rotate(360deg)}}
.kly-account__welcome-info{color:#fff}
.kly-account__welcome-label{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:var(--green-100);background:rgba(255,255,255,.1);padding:5px 12px;border-radius:var(--radius-full);margin:0 0 10px;letter-spacing:.5px}
.kly-account__welcome-name{font-size:1.875rem;font-weight:800;color:#fff;margin:0 0 8px;letter-spacing:-.03em;font-family:var(--font);line-height:1.1}
.kly-account__welcome-email{display:flex;align-items:center;gap:6px;font-size:.875rem;color:rgba(255,255,255,.65);margin:0;font-weight:400}
.kly-account__welcome-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.kly-account__welcome-btn,.kly-account__welcome-btn:link,.kly-account__welcome-btn:visited{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;font-family:var(--font);transition:var(--transition);text-decoration:none !important;white-space:nowrap}
.kly-account__welcome-btn--outline,.kly-account__welcome-btn--outline:link,.kly-account__welcome-btn--outline:visited{background:rgba(255,255,255,.12);color:#fff !important;border:1.5px solid rgba(255,255,255,.3);backdrop-filter:blur(4px)}
.kly-account__welcome-btn--outline:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.55)}
.kly-account__welcome-btn--ghost,.kly-account__welcome-btn--ghost:link,.kly-account__welcome-btn--ghost:visited{background:transparent;color:rgba(255,255,255,.7) !important;border:1.5px solid rgba(255,255,255,.18)}
.kly-account__welcome-btn--ghost:hover{background:rgba(255,255,255,.08);color:#fff !important;border-color:rgba(255,255,255,.4)}
/* Section header */
.kly-account__section-header{margin-bottom:20px}
.kly-account__section-title{font-size:1.25rem;font-weight:800;color:var(--gray-900);margin:0 0 4px;font-family:var(--font);letter-spacing:-.02em}
.kly-account__section-sub{font-size:.875rem;color:var(--gray-600);margin:0;font-family:var(--font)}
/* Grid */
.kly-account__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
/* Cards */
.kly-account__card,.kly-account__card:link,.kly-account__card:visited{position:relative;background:#fff;border-radius:var(--radius-lg);padding:24px;display:flex;align-items:center;gap:18px;border:1.5px solid var(--gray-200);text-decoration:none !important;color:var(--gray-900) !important;box-shadow:var(--shadow-sm);overflow:hidden;cursor:pointer}
.kly-account__card-shine{position:absolute;inset:0;pointer-events:none;border-radius:inherit;transition:background .2s}
.kly-account__card:hover{border-color:var(--green-400);box-shadow:0 8px 28px rgba(46,125,50,.12);transform:translateY(-2px)}
.kly-account__card:hover .kly-account__card-arrow{color:var(--green-600);transform:translateX(3px)}
.kly-account__card-icon{width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s ease}
.kly-account__card:hover .kly-account__card-icon{transform:scale(1.08)}
.kly-account__card-icon--blue{background:#e8f1fd;color:#1565c0}
.kly-account__card-icon--green{background:var(--green-50);color:var(--green-700)}
.kly-account__card-icon--purple{background:#f3e5f5;color:#7b1fa2}
.kly-account__card-icon--orange{background:#fff3e0;color:#e65100}
.kly-account__card-icon--teal{background:#e0f7f4;color:#00695c}
.kly-account__card-icon--red{background:#ffebee;color:#c62828}
.kly-account__card-body{flex:1;min-width:0}
.kly-account__card-body h3{font-size:.9375rem;font-weight:700;color:var(--gray-900);margin:0 0 3px;font-family:var(--font)}
.kly-account__card-body p{font-size:.8rem;color:var(--gray-600);margin:0;font-family:var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kly-account__card-arrow{color:var(--gray-300);transition:color .25s,transform .25s;flex-shrink:0}
/* PrestaShop overrides */
#content.page-content.card{background:none !important;border:none !important;box-shadow:none !important;padding:0 !important}
section#main{background:none !important}
/* Liens modules hook (wishlist, GDPR, alertes) */
.kly-account__grid a:not(.kly-account__card),
.kly-account__grid a:not(.kly-account__card):link,
.kly-account__grid a:not(.kly-account__card):visited{position:relative;background:#fff;border-radius:var(--radius-lg);padding:24px;display:flex;align-items:center;gap:18px;border:1.5px solid var(--gray-200);transition:var(--transition);text-decoration:none !important;color:var(--gray-800) !important;box-shadow:var(--shadow-sm);font-weight:600;font-size:.9375rem;font-family:var(--font);float:none !important;width:auto !important;max-width:none !important}
.kly-account__grid a:not(.kly-account__card):hover{border-color:var(--green-400);box-shadow:0 8px 28px rgba(46,125,50,.12);transform:translateY(-2px);color:var(--green-800) !important}
.kly-account__grid .link-item{display:flex;align-items:center;gap:16px;width:100%;font-family:var(--font);font-weight:600;color:inherit}
.kly-account__grid .link-item i.material-icons{width:52px;height:52px;border-radius:var(--radius-md);background:var(--green-50);color:var(--green-700) !important;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:22px}
/* Breadcrumb */
.breadcrumb{background:none;padding:0 0 20px;margin-bottom:0}
.breadcrumb-item a,.breadcrumb-item a:link,.breadcrumb-item a:visited{color:var(--gray-600) !important;font-size:.8125rem}
.breadcrumb-item.active{color:var(--gray-800);font-size:.8125rem}
/* Breadcrumb blanc sur la page mon compte */
body#my-account .breadcrumb-item a,
body#my-account .breadcrumb-item a:link,
body#my-account .breadcrumb-item a:visited{color:rgba(255,255,255,.75) !important}
body#my-account .breadcrumb-item.active{color:rgba(255,255,255,.55)}
body#my-account .breadcrumb-item+.breadcrumb-item::before{color:rgba(255,255,255,.4)}
footer.page-footer{display:none}
/* ── RESPONSIVE TABLETTE ── */
@media(max-width:1024px){
  .kly-account__grid{grid-template-columns:repeat(2,1fr)}
}
/* ── RESPONSIVE MOBILE ── */
@media(max-width:640px){
  .kly-account{padding:16px 0 60px}
  /* Blobs réduits */
  .kly-account__bg-blob--a{width:280px;height:280px;top:-40px;left:-40px}
  .kly-account__bg-blob--b{width:200px;height:200px}
  .kly-account__bg-blob--c{display:none}
  /* Welcome card : padding réduit, coins arrondis normaux */
  .kly-account__welcome-card{padding:24px 20px 28px;border-radius:var(--radius-lg);margin-bottom:20px;box-shadow:0 8px 32px rgba(13,51,17,.25)}
  /* Layout vertical */
  .kly-account__welcome-content{flex-direction:column;align-items:stretch;gap:18px}
  .kly-account__welcome-left{flex-direction:row;align-items:center;gap:14px}
  /* Avatar plus petit */
  .kly-account__avatar,.kly-account__avatar span{width:56px;height:56px;font-size:1.125rem}
  .kly-account__avatar-ring{inset:-3px}
  /* Texte */
  .kly-account__welcome-label{font-size:.7rem;padding:4px 10px}
  .kly-account__welcome-name{font-size:1.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kly-account__welcome-email{font-size:.8rem}
  /* Boutons en colonne pour éviter la coupure */
  .kly-account__welcome-actions{display:flex;flex-direction:column;gap:8px;width:100%}
  .kly-account__welcome-btn{justify-content:center;padding:11px 16px;font-size:.875rem;gap:6px;width:100%;box-sizing:border-box}
  .kly-account__welcome-btn svg{width:15px;height:15px;flex-shrink:0}
  /* Section title */
  .kly-account__section-title{font-size:1rem}
  .kly-account__section-sub{font-size:.8rem}
  /* Grid 1 colonne */
  .kly-account__grid{grid-template-columns:1fr;gap:8px}
  /* Cards compactes */
  .kly-account__card,.kly-account__card:link,.kly-account__card:visited{padding:16px;gap:12px;border-radius:var(--radius-md)}
  .kly-account__card-icon{width:44px;height:44px;border-radius:10px}
  .kly-account__card-icon svg{width:20px;height:20px}
  .kly-account__card-body h3{font-size:.875rem}
  .kly-account__card-body p{font-size:.75rem;white-space:normal}
  .kly-account__card-arrow svg{width:14px;height:14px}
  /* Liens modules */
  .kly-account__grid a:not(.kly-account__card),.kly-account__grid a:not(.kly-account__card):link,.kly-account__grid a:not(.kly-account__card):visited{padding:16px;gap:12px;border-radius:var(--radius-md)}
  .kly-account__grid .link-item i.material-icons{width:44px;height:44px;font-size:20px}
  /* Breadcrumb */
  .breadcrumb{padding:8px 0 14px;font-size:.8rem}
}

/* ========================================
   HERO
   ======================================== */
.hero{position:relative;min-height:calc(100vh - 112px);display:flex;align-items:center;background:linear-gradient(135deg,#0a1f0d 0%,var(--green-800) 50%,#1a4a2e 100%);overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 800"><defs><radialGradient id="a" cx="50%25" cy="50%25"><stop offset="0" stop-color="%2366bb6a" stop-opacity=".12"/><stop offset="1" stop-color="%2366bb6a" stop-opacity="0"/></radialGradient></defs><circle cx="200" cy="600" r="400" fill="url(%23a)"/><circle cx="1200" cy="200" r="350" fill="url(%23a)"/></svg>') center/cover;pointer-events:none}
.hero::after{display:none}
.hero__grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;position:relative;z-index:2}
.hero__content{color:var(--white)}
.hero__badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);padding:10px 20px;border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;margin-bottom:32px;color:var(--green-100)}
.hero__badge .dot{width:8px;height:8px;border-radius:50%;background:var(--green-400);animation:pulse-dot 2s infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.4}}
.hero__title{font-size:clamp(2.5rem,5.5vw,4rem);font-weight:900;line-height:1.08;margin-bottom:24px;letter-spacing:-.03em}
.hero__title span{background:linear-gradient(135deg,var(--green-400),#81c784);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero__desc{font-size:1.125rem;color:rgba(255,255,255,.8);max-width:520px;margin-bottom:40px;line-height:1.8;font-weight:400}
.hero__buttons{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px}
.hero__trust{display:flex;align-items:center;gap:24px;padding-top:32px;border-top:1px solid rgba(255,255,255,.12)}
.hero__trust-item{text-align:center}
.hero__trust-item strong{display:block;font-size:1.5rem;font-weight:800;color:var(--white)}
.hero__trust-item span{font-size:.75rem;color:rgba(255,255,255,.6);font-weight:500}
.hero__visual{position:relative}
.hero__cards{display:flex;flex-wrap:wrap;gap:12px;width:100%}
a.hero__card,a.hero__card:link,a.hero__card:visited,.hero__card{background:#fff;border-radius:16px;padding:24px 22px;transition:all .3s ease;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.08);flex:1 1 calc(50% - 6px);min-width:calc(50% - 6px);max-width:calc(50% - 6px);box-sizing:border-box;text-decoration:none;color:inherit;display:block}
.hero__card:hover{transform:translateY(-6px);box-shadow:0 12px 40px rgba(0,0,0,.15);border-top:3px solid var(--green-600)}
.hero__card-icon{width:44px;height:44px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--green-500),var(--green-400));display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:var(--white);font-size:22px}
.hero__card h3{font-size:.95rem;font-weight:700;color:var(--green-800);margin-bottom:4px}
.hero__card p{font-size:.8rem;color:var(--gray-600);line-height:1.4}

/* ========================================
   CATEGORIES
   ======================================== */
.categories__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px}
.category-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;cursor:pointer}
.category-card__bg{position:absolute;inset:0;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.category-card__bg--pac{background:linear-gradient(135deg,#1565c0,#0d47a1)}
.category-card__bg--solar{background:linear-gradient(135deg,#f57f17,#ff8f00)}
.category-card__bg--insulation{background:linear-gradient(135deg,#6a1b9a,#8e24aa)}
.category-card__bg--led{background:linear-gradient(135deg,#00838f,#00acc1)}
.category-card:hover .category-card__bg{transform:scale(1.05)}
.category-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.1) 60%,rgba(0,0,0,0) 100%);z-index:1}
.category-card__content{position:absolute;bottom:0;left:0;right:0;padding:28px;z-index:2;color:var(--white)}
.category-card__icon{width:44px;height:44px;border-radius:var(--radius-md);background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:22px;transition:var(--transition)}
.category-card:hover .category-card__icon{background:rgba(255,255,255,.25);transform:translateY(-4px)}
.category-card__title{font-size:1.25rem;font-weight:700;margin-bottom:4px}
.category-card__count{font-size:.8125rem;color:rgba(255,255,255,.7);font-weight:500}
.category-card__arrow{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;z-index:2;transition:var(--transition);opacity:0;transform:translateX(-8px)}
.category-card:hover .category-card__arrow{opacity:1;transform:translateX(0)}

/* ========================================
   WHY CHOOSE US
   ======================================== */
.why__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.why-card{background:var(--white);border-radius:var(--radius-lg);padding:36px 28px;border:1px solid var(--gray-200);transition:var(--transition);position:relative;overflow:hidden}
.why-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green-500),var(--green-400));transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.4,0,.2,1)}
.why-card:hover{border-color:var(--green-100);box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.why-card:hover::before{transform:scaleX(1)}
.why-card__icon{width:52px;height:52px;border-radius:var(--radius-md);background:var(--green-50);color:var(--green-700);display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-size:26px;transition:var(--transition)}
.why-card:hover .why-card__icon{background:var(--green-800);color:var(--white)}
.why-card__title{font-size:1.0625rem;font-weight:700;margin-bottom:8px;color:var(--gray-900)}
.why-card__desc{font-size:.875rem;color:var(--gray-600);line-height:1.7}

/* ========================================
   FEATURED PRODUCTS
   ======================================== */
.products__wrapper{position:relative;margin-top:48px}
.products__track{overflow:hidden;padding:8px 0}
.products__grid{display:flex;gap:24px;transition:transform .5s cubic-bezier(.25,.8,.25,1)}
.products__grid > .product-card{flex:0 0 calc(25% - 18px);min-width:calc(25% - 18px)}
.products__nav{display:flex;gap:8px;justify-content:flex-end;margin-bottom:16px}
.products__arrow{width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--gray-200);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);color:var(--gray-500)}
.products__arrow:hover{border-color:var(--green-500);color:var(--green-800);background:var(--green-50)}
a.product-card,.product-card{display:flex;flex-direction:column;background:var(--white);border-radius:16px;border:2px solid transparent;overflow:hidden;transition:all .3s ease;text-decoration:none;color:inherit;box-shadow:none}
.product-card:hover{box-shadow:0 8px 24px rgba(27,94,32,.1);transform:translateY(-4px);border-color:var(--green-400)}
.product-card__image{aspect-ratio:1;background:var(--gray-50);display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden;border-radius:12px;margin:8px}
.product-card__image img{max-width:100%;max-height:100%;object-fit:contain}
.product-card__image .material-icons-outlined{font-size:64px;color:var(--gray-300)}
.product-card__badge{position:absolute;top:12px;left:12px;background:var(--green-800);color:var(--white);font-size:.6875rem;font-weight:700;padding:4px 10px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}
.product-card__body{padding:16px 16px 20px}
.product-card__brand{font-size:.7rem;font-weight:600;color:var(--green-700);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.product-card__name{font-size:.875rem;font-weight:700;color:var(--gray-800);margin-bottom:8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card__price{font-size:.875rem;color:var(--gray-600);font-weight:500;margin-bottom:4px}
.product-card__price strong{color:var(--gray-900);font-size:1.0625rem;font-weight:800}
.product-card__action{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:.8125rem;font-weight:600;color:var(--green-700);transition:var(--transition)}
.product-card:hover .product-card__action{color:var(--green-800)}
.product-card:hover .product-card__action .material-icons-outlined{transform:translateX(4px)}
.product-card__action .material-icons-outlined{font-size:18px;transition:var(--transition)}
.product-card:hover .product-card__action .material-icons-outlined{transform:translateX(4px)}
.product-card__action .material-icons-outlined{font-size:18px;transition:var(--transition)}

/* Product card — price variants */
.product-card__price-old{text-decoration:line-through;color:var(--gray-400);font-size:.75rem;margin-right:6px}
.product-card__price-discount{background:var(--green-100);color:var(--green-800);font-size:.6875rem;font-weight:700;padding:2px 6px;border-radius:var(--radius-full);margin-left:4px}
.product-card__price-locked{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--green-50),var(--green-100));color:var(--green-800);font-weight:700;font-size:.8125rem;padding:6px 12px;border-radius:var(--radius);border:1px dashed var(--green-300)}

/* Product card — stock indicator */
.product-card__stock{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:500;margin-top:6px}
.product-card__stock--ok{color:var(--green-700)}
.product-card__stock--low{color:#ef6c00}

/* Product card — image with <picture> */
.product-card__image picture{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.product-card__image img{max-width:100%;max-height:100%;object-fit:contain}

/* Products CTA group (non-logged visitors) */
.products__cta-group{display:flex;flex-direction:column;align-items:center;gap:12px}
.products__cta-hint{font-size:.8125rem;color:var(--gray-500);display:flex;align-items:center;gap:4px;margin-top:4px}

/* ========================================
   BRANDS
   ======================================== */
.brands__track{display:flex;gap:48px;align-items:center;margin-top:48px;overflow:hidden;mask-image:linear-gradient(to right,transparent,black 10%,black 90%,transparent)}
.brands__slide{display:flex;gap:48px;animation:scroll-brands 30s linear infinite}
.brand-logo{height:40px;opacity:.4;filter:grayscale(100%);transition:var(--transition);flex-shrink:0;cursor:pointer;font-size:1.25rem;font-weight:800;color:var(--gray-400);white-space:nowrap;display:flex;align-items:center;gap:8px}
.brand-logo:hover{opacity:1;filter:grayscale(0)}
@keyframes scroll-brands{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ========================================
   TESTIMONIALS
   ======================================== */
.testimonials__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.testimonial-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:32px;transition:var(--transition)}
.testimonial-card:hover{background:rgba(255,255,255,.1);transform:translateY(-4px)}
.testimonial-card__stars{display:flex;gap:2px;margin-bottom:16px;color:#ffd54f;font-size:18px}
.testimonial-card__text{font-size:.9375rem;line-height:1.8;color:rgba(255,255,255,.85);margin-bottom:24px;font-style:italic}
.testimonial-card__author{display:flex;align-items:center;gap:12px}
.testimonial-card__avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--green-500),var(--green-400));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;color:var(--white);flex-shrink:0}
.testimonial-card__name{font-weight:700;font-size:.875rem;color:var(--white)}
.testimonial-card__role{font-size:.75rem;color:rgba(255,255,255,.5);font-weight:500}

/* ========================================
   CTA BANNER
   ======================================== */
.cta-banner{position:relative;overflow:hidden}
.cta-banner__inner{display:flex;align-items:center;justify-content:space-between;gap:40px}
.cta-banner__content{max-width:560px}
.cta-banner__buttons{display:flex;gap:16px;margin-top:32px;flex-wrap:wrap}
.cta-banner__decoration{position:absolute;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.05);pointer-events:none}
.cta-banner__decoration:nth-child(2){right:100px;top:auto;bottom:-120px;width:200px;height:200px}

/* ========================================
   NEWSLETTER
   ======================================== */
.newsletter__inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.newsletter__form{display:flex;gap:12px}
.newsletter__input{flex:1;padding:16px 24px;border-radius:var(--radius-full);border:2px solid var(--gray-200);font-family:var(--font);font-size:.9375rem;background:var(--white);transition:var(--transition);outline:none}
.newsletter__input:focus{border-color:var(--green-500);box-shadow:0 0 0 4px rgba(67,160,71,.12)}
.newsletter__input::placeholder{color:var(--gray-400)}
.newsletter__perks{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.newsletter__perk{display:flex;align-items:center;gap:10px;font-size:.875rem;color:var(--gray-600);font-weight:500}
.newsletter__perk .material-icons-outlined{font-size:20px;color:var(--green-600)}

/* ========================================
   FOOTER
   ======================================== */
/* ========================================
   RESET LIENS PRESTASHOP
   ======================================== */
.product-card { text-decoration: none !important; }
.product-card__name { color: var(--gray-900) !important; }
.product-card__brand { color: var(--green-700) !important; }
.product-card__action { color: var(--green-700) !important; text-decoration: none !important; }
.product-card:hover .product-card__action { color: var(--green-800) !important; }
.product-card__price { color: var(--gray-600) !important; }
.product-card__price strong { color: var(--green-800) !important; }
.category-card { text-decoration: none !important; }
.category-card__title { color: var(--white) !important; }
.category-card__count { color: rgba(255,255,255,.7) !important; }

/* Reset PrestaShop default footer styles */
#footer.js-footer{padding:0;margin:0;background:none;border:none}

.footer{background:var(--gray-900);color:rgba(255,255,255,.7);padding:80px 0 0}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.08)}
.footer__brand{max-width:300px}
.footer__logo{font-size:1.5rem;font-weight:800;color:var(--white);margin-bottom:16px;display:flex;align-items:center;gap:10px}
.footer__logo span{color:var(--green-400)}
.footer__desc{font-size:.875rem;line-height:1.8;margin-bottom:24px}
.footer__social{display:flex;gap:12px}
.footer__social a{width:40px;height:40px;border-radius:var(--radius-sm);background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;transition:var(--transition);color:rgba(255,255,255,.6)}
.footer__social a:hover{background:var(--green-800);color:var(--white)}
.footer__col-title{font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--white);margin-bottom:24px}
.footer__links li{margin-bottom:12px}
.footer .footer__links a,
.footer .footer__links a:link,
.footer .footer__links a:visited{font-size:.875rem;transition:var(--transition);color:rgba(255,255,255,.7) !important;text-decoration:none !important}
.footer .footer__links a:hover{color:var(--green-400) !important}
.footer .footer__bottom a,
.footer .footer__bottom a:link,
.footer .footer__bottom a:visited{color:rgba(255,255,255,.7) !important;text-decoration:none !important}
.footer .footer__bottom a:hover{color:var(--green-400) !important}
.footer a[href^="tel"],
.footer a[href^="mailto"]{color:rgba(255,255,255,.7) !important;text-decoration:none !important}
.footer a[href^="tel"]:hover,
.footer a[href^="mailto"]:hover{color:var(--green-400) !important}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-size:.8125rem;flex-wrap:wrap;gap:16px}
.footer__bottom a{transition:var(--transition);color:rgba(255,255,255,.7)}
.footer__bottom a:hover{color:var(--green-400)}

/* ========================================
   MOBILE MENU
   ======================================== */
.mobile-menu{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;opacity:0;pointer-events:none;transition:var(--transition)}
.mobile-menu.active{opacity:1;pointer-events:all}
.mobile-menu__panel{position:absolute;right:0;top:0;bottom:0;width:min(85vw,360px);background:var(--white);padding:32px 24px;transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);overflow-y:auto}
.mobile-menu.active .mobile-menu__panel{transform:translateX(0)}
.mobile-menu__close{position:absolute;top:16px;right:16px;width:40px;height:40px;border:none;background:var(--gray-100);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--gray-800)}
.mobile-menu__nav{margin-top:48px;display:flex;flex-direction:column;gap:4px}
.mobile-menu__link,.mobile-menu__link:link,.mobile-menu__link:visited{padding:12px 16px;font-size:.95rem;font-weight:600;border-radius:var(--radius-sm);transition:var(--transition);color:var(--gray-800) !important;display:flex;align-items:center;gap:12px}
.mobile-menu__link:hover,.mobile-menu__link--active{background:var(--green-50);color:var(--green-800) !important}
.mobile-menu__section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--gray-400);padding:8px 16px 4px;margin-top:4px}
.mobile-menu__divider{height:1px;background:var(--gray-200);margin:8px 16px}
.mobile-menu__cta{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--green-700);color:var(--white) !important;padding:14px;border-radius:var(--radius-md);font-weight:700;font-size:.95rem;margin:12px 8px 0;transition:var(--transition)}
.mobile-menu__cta:hover{background:var(--green-800)}

/* ========================================
   AUTH — RESTYLING CE (connexion / inscription)
   Aucune modification de template, uniquement CSS
   ======================================== */

/* Fond de page */
body#authentication,
body#registration{background:#f8faf8 !important}

/* Masquer la barre noire du divider Elementor */
body#authentication .elementor-divider,
body#authentication .elementor-widget-divider,
body#authentication hr{display:none !important}

/* Breadcrumb — toutes pages customer */
body#authentication .breadcrumb,
body#registration .breadcrumb,
body#history .breadcrumb,
body#identity .breadcrumb,
body#addresses .breadcrumb,
body#address .breadcrumb,
body#password .breadcrumb{background:none;padding:12px 0;margin-bottom:0}
body#authentication .breadcrumb-item a,
body#authentication .breadcrumb-item a:link,
body#authentication .breadcrumb-item a:visited{color:var(--green-700) !important;font-size:.8125rem;font-weight:500}
body#authentication .breadcrumb-item.active,
body#registration .breadcrumb-item.active{color:var(--gray-600);font-size:.8125rem}
body#authentication .breadcrumb-item+.breadcrumb-item::before,
body#registration .breadcrumb-item+.breadcrumb-item::before{color:var(--gray-400)}

/* Bloc contact partenaire injecté */
.kly-auth-register-block{text-align:center;padding:32px 24px;max-width:500px;margin:0 auto 40px}
.kly-auth-register-label{font-size:.8125rem;color:var(--gray-600);margin:0 0 14px;font-family:var(--font);line-height:1.5}
.kly-auth-register-phone,.kly-auth-register-phone:link,.kly-auth-register-phone:visited{display:inline-flex;align-items:center;gap:8px;padding:11px 24px;border-radius:var(--radius-full);background:var(--green-50);border:1.5px solid var(--green-200);color:var(--green-800) !important;font-size:.9375rem;font-weight:700;font-family:var(--font);text-decoration:none !important;transition:var(--transition)}
.kly-auth-register-phone:hover{background:var(--green-800);color:#fff !important;border-color:var(--green-800)}

/* Champs — ciblage par type HTML, indépendant des classes CE */
body#authentication input[type="email"],
body#authentication input[type="password"],
body#authentication input[type="text"],
body#registration input[type="email"],
body#registration input[type="password"],
body#registration input[type="text"],
body#registration input[type="tel"],
body#registration select,
body#authentication input[type="email"]:not([type="submit"]),
body#registration input:not([type="submit"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]){
  border-radius:12px !important;
  border:1.5px solid #d0d7d0 !important;
  padding:12px 16px !important;
  font-family:var(--font) !important;
  font-size:.9375rem !important;
  color:var(--gray-900) !important;
  background:#fff !important;
  transition:border-color .2s,box-shadow .2s !important;
  box-shadow:none !important;
  width:100% !important;
  box-sizing:border-box !important;
}
body#authentication input[type="email"]:focus,
body#authentication input[type="password"]:focus,
body#authentication input[type="text"]:focus,
body#registration input:not([type="submit"]):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):focus,
body#registration select:focus{
  border-color:var(--green-500) !important;
  box-shadow:0 0 0 3px rgba(46,125,50,.1) !important;
  outline:none !important;
}

/* Select arrondi */
body#registration select{
  border-radius:12px !important;
  appearance:auto !important;
}

/* Labels */
body#authentication label,
body#registration label{
  font-family:var(--font) !important;
  font-size:.8125rem !important;
  font-weight:600 !important;
  color:var(--gray-800) !important;
  margin-bottom:6px !important;
  display:block !important;
}

/* Bouton CE — uniquement les vrais boutons submit */
body#authentication button[type="submit"],
body#authentication input[type="submit"],
body#registration button[type="submit"],
body#registration input[type="submit"]{
  background:var(--green-800) !important;
  background-color:var(--green-800) !important;
  border:none !important;
  border-radius:var(--radius-full) !important;
  padding:13px 32px !important;
  font-family:var(--font) !important;
  font-size:.9375rem !important;
  font-weight:700 !important;
  color:#fff !important;
  cursor:pointer !important;
  transition:var(--transition) !important;
  box-shadow:none !important;
}
body#authentication button[type="submit"]:hover,
body#authentication input[type="submit"]:hover,
body#registration button[type="submit"]:hover,
body#registration input[type="submit"]:hover{
  background:var(--green-700) !important;
  background-color:var(--green-700) !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 6px 20px rgba(27,94,32,.25) !important;
}

/* Liens dans le contenu CE uniquement — hors footer et navbar */
body#authentication #content a,
body#authentication #content a:link,
body#authentication #content a:visited,
body#registration #content a,
body#registration #content a:link,
body#registration #content a:visited{
  color:var(--green-700) !important;
}
body#authentication #content a:hover,
body#registration #content a:hover{
  color:var(--green-800) !important;
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media(max-width:1400px){
  .hero{min-height:auto;padding:60px 0}
  .hero__grid{gap:40px}
  .hero__title{font-size:clamp(2rem,4vw,3rem)}
  .hero__desc{font-size:1rem;margin-bottom:28px}
  .hero__buttons{margin-bottom:32px}
  .hero__trust{gap:16px}
  .hero__trust-item strong{font-size:1.25rem}
  .hero__card{padding:18px 16px}
  .hero__card-icon{width:38px;height:38px;margin-bottom:8px}
  .hero__card h3{font-size:.85rem}
  .hero__card p{font-size:.75rem}
}
@media(max-width:1024px){
  .hero{padding:56px 0 40px}
  .hero__grid{grid-template-columns:1fr;text-align:center}
  .hero__title{font-size:clamp(2.25rem,6vw,3.2rem)}
  .hero__desc{font-size:1.0625rem;margin-left:auto;margin-right:auto;max-width:600px;margin-bottom:32px}
  .hero__buttons{justify-content:center;gap:14px}
  .hero__buttons .btn{padding:14px 32px;font-size:1rem}
  .hero__trust{justify-content:center;gap:28px;flex-wrap:wrap}
  .hero__trust-item strong{font-size:1.375rem}
  .hero__visual{display:none}
  .section{padding:80px 0}
  .section-title{font-size:clamp(1.5rem,4vw,2.25rem)}
  .section-subtitle{font-size:1rem}
  .categories__grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .why__grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .why-card{padding:24px 20px}
  .products__grid > .product-card{flex:0 0 calc(50% - 12px);min-width:calc(50% - 12px)}
  .testimonials__grid{grid-template-columns:1fr 1fr;gap:16px}
  .testimonial-card{padding:24px}
  .newsletter__inner{grid-template-columns:1fr}
  .newsletter__input{padding:14px 18px}
  .footer__grid{grid-template-columns:repeat(2,1fr);gap:32px}
  .footer{padding:60px 0 0!important}
  .brands__track{gap:32px}
  .brands__slide{gap:32px}
  .cta-banner__decoration{display:none}
  .navbar__nav{display:none}
  .navbar__hamburger{display:flex}
  .navbar__inner{height:70px;justify-content:space-between!important;padding:0 12px!important}
  /* Navbar mobile : rendu edge-to-edge aligné sur la page produit (neutralise layout-full-width différences) */
  .navbar .container.navbar__inner{padding-left:4px!important;padding-right:4px!important;max-width:none!important}
  .navbar__logo{flex-shrink:0;margin-right:auto!important}
  .navbar__logo img{max-height:60px!important;width:auto}
  .navbar__actions{gap:8px;margin-left:auto!important;flex-shrink:0;padding-right:0}
}
@media(max-width:768px){
  .section{padding:60px 0}
  .categories__grid{gap:12px}
  .why__grid{gap:12px}
  .why-card{padding:20px 16px}
  .testimonial-card{padding:20px}
  .footer__grid{gap:24px}
  .footer{padding:48px 0 0!important}
  .brands__track{gap:24px}
}
@media(max-width:640px){
  .btn{white-space:normal;text-align:center;padding:12px 24px;font-size:.875rem}
  .btn--lg{padding:14px 28px;font-size:.9375rem}
  .section{padding:48px 0}
  .section-title{font-size:clamp(1.25rem,5vw,1.75rem)}
  .section-subtitle{font-size:.9375rem}
  .topbar__left{flex-wrap:wrap;gap:8px}
  .categories__grid{grid-template-columns:1fr;gap:12px}
  .category-card{aspect-ratio:16/9}
  .why__grid{grid-template-columns:1fr;gap:12px}
  .why-card{padding:20px 16px}
  .why-card__title{font-size:.9375rem}
  .products__grid > .product-card{flex:0 0 85%;min-width:85%}
  .products__wrapper{padding:0}
  .testimonials__grid{grid-template-columns:1fr;gap:12px}
  .testimonial-card{padding:20px}
  .testimonial-card__text{font-size:.875rem}
  .cta-banner__inner{flex-direction:column;text-align:center}
  .newsletter__form{flex-direction:column}
  .newsletter__input{padding:12px 16px}
  .footer__grid{grid-template-columns:1fr;gap:20px}
  .footer{padding:40px 0 0!important}
  .footer__logo{font-size:1.25rem}
  .footer__social a{width:36px;height:36px}
  .brands__track{gap:20px}
  .hero{padding:48px 0 32px}
  .hero__badge{margin-bottom:24px;font-size:.8125rem;padding:10px 20px}
  .hero__title{font-size:clamp(2.2rem,8vw,3rem);margin-bottom:20px}
  .hero__desc{font-size:1.0625rem;line-height:1.7;margin-bottom:32px}
  .hero__buttons{gap:12px;margin-bottom:32px}
  .hero__buttons .btn{width:100%;max-width:360px;justify-content:center;padding:16px 28px;font-size:1rem}
  .hero__trust{flex-wrap:wrap;gap:16px;padding-top:24px;padding-bottom:24px;margin-bottom:16px}
  .hero__trust-item{flex:0 0 calc(50% - 12px)}
  .hero__trust-item strong{font-size:1.375rem}
  .topbar{overflow:hidden}
  .topbar__inner{display:flex;flex-wrap:nowrap;gap:0;width:max-content;animation:topbar-scroll 15s linear infinite;padding:0}
  .topbar__inner:hover{animation-play-state:paused}
  .topbar__left,.topbar__right{gap:16px;flex-shrink:0}
  .topbar__item,.topbar__right a{white-space:nowrap;flex-shrink:0;font-size:.75rem}
  @keyframes topbar-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
  .hero__badge{margin-top:20px}
  .hero__cards{display:none}
}


/* ================================================
   KLY - CUSTOMER SUB-PAGES v2
   ================================================ */

body#history,body#identity,body#addresses,body#password,
body#address,body#order-detail,body#discount,
body#order-slip,body#order-follow { background:#f4f6f9 !important; }

.kly-subpage { max-width:1000px;margin:0 auto;padding:36px 24px 80px; }
.kly-subpage--narrow { max-width:700px; }
.kly-subpage--centered { display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh; }
.kly-subpage__header { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px; }
.kly-subpage__header-left { display:flex;align-items:center;gap:14px; }
.kly-subpage__icon { width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.kly-subpage__icon--blue   { background:#e8f1fd;color:#1565c0; }
.kly-subpage__icon--green  { background:#e8f5e9;color:#2e7d32; }
.kly-subpage__icon--purple { background:#f3e5f5;color:#7b1fa2; }
.kly-subpage__icon--orange { background:#fff3e0;color:#e65100; }
.kly-subpage__title { font-size:1.3rem;font-weight:700;color:var(--gray-900);margin:0 0 3px;line-height:1.2; }
.kly-subpage__sub   { font-size:.82rem;color:var(--gray-500);margin:0; }
.kly-subpage__back { display:inline-flex;align-items:center;gap:6px;font-size:.81rem;font-weight:600;color:var(--gray-500);text-decoration:none;padding:7px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius-full);white-space:nowrap;transition:var(--transition);flex-shrink:0; }
.kly-subpage__back:hover { color:var(--green-700);border-color:var(--green-400);background:var(--green-50); }
.kly-subpage__cta { display:inline-flex;align-items:center;gap:8px;padding:11px 26px;background:var(--green-700);color:#fff;font-size:.88rem;font-weight:600;border-radius:var(--radius-full);text-decoration:none;border:none;cursor:pointer;transition:var(--transition);font-family:var(--font); }
.kly-subpage__cta:hover { background:var(--green-800);color:#fff;transform:translateY(-1px);box-shadow:0 4px 14px rgba(46,125,50,.28); }
.kly-subpage__cta--full { width:100%;justify-content:center; }
.kly-subpage__card { background:#fff;border-radius:16px;box-shadow:0 1px 4px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.05);border:1px solid #eaecf0;padding:28px; }
.kly-alert { padding:11px 16px;border-radius:10px;font-size:.87rem;margin-bottom:14px; }
.kly-alert--error   { background:#fff5f5;border:1px solid #ffcdd2;color:#c62828; }
.kly-alert--success { background:#f1f8e9;border:1px solid #c5e1a5;color:#2e7d32; }
.kly-empty-state { text-align:center;padding:64px 32px;background:#fff;border-radius:16px;border:1.5px dashed #d8dce4; }
.kly-empty-state__icon { width:68px;height:68px;background:#f4f6f9;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:#bdc3ce; }
.kly-empty-state h3 { font-size:1.05rem;font-weight:700;color:var(--gray-800);margin:0 0 8px; }
.kly-empty-state p  { font-size:.85rem;color:var(--gray-500);margin:0 0 22px; }
.kly-form-group { display:flex;flex-direction:column;gap:5px;margin-bottom:14px; }
.kly-form-group label { font-size:.8rem;font-weight:600;color:var(--gray-700); }
.kly-form-control { width:100%;padding:10px 14px;border:1.5px solid #dde0e7;border-radius:10px;font-size:.9rem;font-family:var(--font);color:var(--gray-900);background:#fff;transition:border-color .2s,box-shadow .2s;outline:none;box-sizing:border-box; }
.kly-form-control:focus { border-color:var(--green-500);box-shadow:0 0 0 3px rgba(67,160,71,.1); }

/* ORDER HISTORY */
.kly-orders { display:flex;flex-direction:column;gap:10px; }
.kly-order-card { background:#fff;border:1px solid #eaecf0;border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s,border-color .2s; }
.kly-order-card:hover { box-shadow:0 4px 20px rgba(0,0,0,.08);border-color:#d4d8e0; }
.kly-order-card__top { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.kly-order-card__ref { display:flex;flex-direction:column;gap:2px; }
.kly-order-card__ref-label { font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:#9ba3b0; }
.kly-order-card__ref strong { font-size:1rem;font-weight:700;color:var(--gray-900); }
.kly-order-card__status { display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;border:1px solid;white-space:nowrap; }
.kly-order-card__meta { display:flex;align-items:center;gap:18px;flex-wrap:wrap; }
.kly-order-card__meta-item { display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--gray-600); }
.kly-order-card__meta-item strong { color:var(--gray-900); }
.kly-order-card__actions { display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.kly-order-card__btn { display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:9px;font-size:.8rem;font-weight:600;text-decoration:none;transition:var(--transition);white-space:nowrap; }
.kly-order-card__btn--ghost   { background:#f4f6f9;color:var(--gray-700);border:1px solid #e2e5ec; }
.kly-order-card__btn--ghost:hover { background:#eaecf0;color:var(--gray-900); }
.kly-order-card__btn--primary { background:var(--green-700);color:#fff; }
.kly-order-card__btn--primary:hover { background:var(--green-800);color:#fff; }

/* ORDER DETAIL */
.kly-od { max-width:1100px; }
.kly-od__header { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #eaecf0; }
.kly-od__header-left { display:flex;flex-direction:column;gap:10px; }
.kly-od__ref h1 { font-size:1.35rem;font-weight:700;color:var(--gray-900);margin:0; }
.kly-od__ref h1 span { color:var(--green-700); }
.kly-od__date { display:flex;align-items:center;gap:5px;font-size:.82rem;color:var(--gray-500);margin:0; }
.kly-od__header-right { display:flex;flex-direction:column;align-items:flex-end;gap:10px; }
.kly-od__header-actions { display:flex;gap:8px;flex-wrap:wrap; }
.kly-od__tracking { display:flex;align-items:center;gap:8px;background:#e8f5e9;border:1px solid #c8e6c9;border-radius:10px;padding:12px 16px;font-size:.85rem;color:var(--green-800);margin-bottom:20px; }
.kly-od__tracking a { color:var(--green-700);font-weight:600;text-decoration:none;word-break:break-all; }
.kly-od__section { margin-bottom:20px; }
.kly-od__section-title { font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#9ba3b0;margin:0 0 10px; }
.kly-od__timeline { display:flex;overflow-x:auto;padding:4px 0 8px;scrollbar-width:thin; }
.kly-od__timeline-step { display:flex;flex-direction:column;align-items:center;flex:1;min-width:90px;position:relative; }
.kly-od__timeline-step:not(:last-child)::after { content:'';position:absolute;top:9px;left:50%;width:100%;height:2px;background:#e2e5ec;z-index:0; }
.kly-od__timeline-step--current .kly-od__timeline-dot { box-shadow:0 0 0 4px rgba(67,160,71,.15); }
.kly-od__timeline-dot { width:18px;height:18px;border-radius:50%;border:3px solid #fff;position:relative;z-index:1;box-shadow:0 0 0 2px #e2e5ec;margin-bottom:8px;flex-shrink:0; }
.kly-od__timeline-content { text-align:center; }
.kly-od__timeline-status { font-size:.72rem;font-weight:700;line-height:1.2;margin-bottom:2px; }
.kly-od__timeline-date   { font-size:.68rem;color:#9ba3b0; }
.kly-od__body { display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start; }
.kly-od__products { background:#fff;border:1px solid #eaecf0;border-radius:14px;overflow:hidden; }
.kly-od__product { display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid #f4f6f9; }
.kly-od__product:last-child { border-bottom:none; }
.kly-od__product-img { width:52px;height:52px;border-radius:10px;object-fit:cover;border:1px solid #eaecf0;flex-shrink:0; }
.kly-od__product-img--placeholder { background:#f4f6f9;display:flex;align-items:center;justify-content:center;color:#c0c8d4; }
.kly-od__product-check { display:flex;align-items:center;flex-shrink:0; }
.kly-od__checkbox { width:16px;height:16px;accent-color:var(--green-600);cursor:pointer; }
.kly-od__product-info { flex:1;min-width:0; }
.kly-od__product-name { font-size:.9rem;font-weight:600;color:var(--gray-900);text-decoration:none;display:block; }
.kly-od__product-name:hover { color:var(--green-700); }
.kly-od__product-ref  { font-size:.75rem;color:#9ba3b0;display:block;margin-top:2px; }
.kly-od__product-virtual { font-size:.75rem;color:#e65100;display:block;margin-top:2px; }
.kly-od__product-link { display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--green-700);text-decoration:none;margin-top:4px; }
.kly-od__product-price { display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0; }
.kly-od__product-qty   { font-size:.78rem;color:#9ba3b0; }
.kly-od__product-unit  { font-size:.82rem;color:var(--gray-600); }
.kly-od__product-total { font-size:.95rem;font-weight:700;color:var(--gray-900); }
.kly-od__product-returned { font-size:.72rem;color:#e65100;background:#fff3e0;padding:2px 6px;border-radius:4px; }
.kly-od__qty-select { padding:4px 8px;border:1px solid #dde0e7;border-radius:6px;font-size:.8rem;margin-top:2px; }
.kly-od__products-totals { padding:14px 18px;background:#f9fafc;border-top:1px solid #eaecf0; }
.kly-od__totals-row { display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--gray-600);padding:4px 0; }
.kly-od__totals-row--grand { font-size:.95rem;color:var(--gray-900);border-top:1px solid #eaecf0;margin-top:8px;padding-top:10px; }
.kly-od__card { background:#fff;border:1px solid #eaecf0;border-radius:14px;padding:18px;margin-bottom:12px; }
.kly-od__card:last-child { margin-bottom:0; }
.kly-od__card-title { font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#9ba3b0;margin:0 0 12px; }
.kly-od__summary-row { display:flex;justify-content:space-between;font-size:.85rem;color:var(--gray-600);padding:5px 0;border-bottom:1px dashed #eaecf0; }
.kly-od__summary-row:last-child,.kly-od__summary-row--total { border-bottom:none; }
.kly-od__summary-row--total { font-size:.95rem;color:var(--gray-900);font-weight:700;border-top:1.5px solid #eaecf0;margin-top:6px;padding-top:10px; }
.kly-od__info-row { display:flex;flex-direction:column;gap:2px;padding:7px 0;border-bottom:1px solid #f4f6f9;font-size:.85rem; }
.kly-od__info-row:last-child { border-bottom:none; }
.kly-od__info-label { font-size:.73rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#bdc3ce; }
.kly-od__address { font-style:normal;font-size:.85rem;color:var(--gray-600);line-height:1.65;margin:0; }
.kly-od__shipping { display:flex;flex-direction:column;gap:10px; }
.kly-od__shipping-row { display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:#fff;border:1px solid #eaecf0;border-radius:10px;padding:12px 16px;font-size:.85rem;color:var(--gray-700); }
.kly-od__tracking-num { font-family:monospace;background:#f4f6f9;padding:2px 8px;border-radius:5px;font-size:.8rem; }
.kly-od__messages { display:flex;flex-direction:column;gap:14px;margin-bottom:20px; }
.kly-od__message  { display:flex;gap:12px;align-items:flex-start; }
.kly-od__message-avatar { width:36px;height:36px;background:var(--green-700);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0; }
.kly-od__message-body { flex:1; }
.kly-od__message-meta { display:flex;gap:10px;align-items:baseline;margin-bottom:4px; }
.kly-od__message-meta strong { font-size:.88rem;color:var(--gray-900); }
.kly-od__message-meta span   { font-size:.76rem;color:#9ba3b0; }
.kly-od__message-text { background:#f4f6f9;border-radius:0 10px 10px 10px;padding:10px 14px;font-size:.85rem;color:var(--gray-700);margin:0;line-height:1.6; }
.kly-od__msg-form { max-width:560px; }
.kly-od__return-form { background:#fff8f0;border:1.5px solid #ffe0b2;border-radius:12px;padding:18px;margin-top:12px; }
.kly-od__return-title { display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;color:#e65100;margin:0 0 6px; }
.kly-od__return-desc { font-size:.83rem;color:#bf360c;margin:0 0 14px; }
.kly-od__return-form .kly-form-control { margin-bottom:12px; }

/* ADDRESSES */
.kly-addresses__grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px; }
.kly-address-card { background:#fff;border:1px solid #eaecf0;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s,border-color .2s; }
.kly-address-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.07);border-color:#d4d8e0; }
.kly-address-card__head { display:flex;align-items:center;gap:10px; }
.kly-address-card__icon { width:30px;height:30px;background:#f3e5f5;color:#7b1fa2;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.kly-address-card__alias { font-size:.92rem;font-weight:700;color:var(--gray-900);margin:0; }
.kly-address-card__body  { font-size:.83rem;color:var(--gray-600);line-height:1.65;font-style:normal;flex:1; }
.kly-address-card__footer { display:flex;gap:8px;margin-top:auto; }
.kly-address-card__btn { display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 14px;border-radius:8px;font-size:.78rem;font-weight:600;text-decoration:none;transition:var(--transition);flex:1; }
.kly-address-card__btn--edit   { background:#f4f6f9;color:var(--gray-700);border:1px solid #e2e5ec; }
.kly-address-card__btn--edit:hover { background:#e3f0ff;color:#1976d2;border-color:#90caf9; }
.kly-address-card__btn--delete { background:#fff5f5;color:#c62828;border:1px solid #ffcdd2; }
.kly-address-card__btn--delete:hover { background:#ffebee;color:#b71c1c; }
.kly-address-card--add { border:1.5px dashed #d4d8e0;background:#fafbfc;flex-direction:column;align-items:center;justify-content:center;min-height:130px;text-decoration:none;color:#9ba3b0;gap:8px;font-size:.85rem;font-weight:600; }
.kly-address-card--add:hover { border-color:var(--green-400);background:var(--green-50);color:var(--green-700); }
.kly-addr-form .form-group { margin-bottom:16px; }
.kly-addr-form .form-control-label,.kly-addr-form label { font-size:.82rem;font-weight:600;color:var(--gray-700) !important; }
.kly-addr-form .form-control,.kly-addr-form input[type=text],.kly-addr-form input[type=tel],.kly-addr-form select,.kly-addr-form textarea { border:1.5px solid #dde0e7 !important;border-radius:10px !important;padding:10px 14px !important;font-size:.9rem !important; }
.kly-addr-form .form-control:focus,.kly-addr-form input:focus,.kly-addr-form select:focus,.kly-addr-form textarea:focus { border-color:var(--green-500) !important;box-shadow:0 0 0 3px rgba(67,160,71,.1) !important;outline:none !important; }
.kly-addr-form .btn,.kly-addr-form button[type=submit] { background:var(--green-700) !important;color:#fff !important;border:none !important;border-radius:var(--radius-full) !important;padding:11px 26px !important;font-weight:600 !important; }
.kly-addr-form .btn:hover,.kly-addr-form button[type=submit]:hover { background:var(--green-800) !important; }

/* PASSWORD */
.kly-password-card { background:#fff;border:1px solid #eaecf0;border-radius:20px;padding:44px 36px;width:100%;max-width:460px;box-shadow:0 2px 12px rgba(0,0,0,.07),0 8px 32px rgba(0,0,0,.06);text-align:center; }
.kly-password-card__icon { width:58px;height:58px;background:var(--green-50);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;color:var(--green-700); }
.kly-password-card__title { font-size:1.25rem;font-weight:700;color:var(--gray-900);margin:0 0 10px; }
.kly-password-card__desc { display:flex;align-items:center;justify-content:center;gap:6px;font-size:.85rem;color:var(--gray-500);margin:0 0 24px;line-height:1.6; }
.kly-password-card__back { display:inline-flex;align-items:center;gap:5px;margin-top:18px;font-size:.8rem;font-weight:600;color:var(--gray-400);text-decoration:none;transition:color .2s; }
.kly-password-card__back:hover { color:var(--green-700); }
.kly-password-form { text-align:left; }

/* RESPONSIVE */
@media(max-width:900px){
  .kly-od__body { grid-template-columns:1fr; }
  .kly-od__sidebar { display:grid;grid-template-columns:repeat(2,1fr);gap:12px; }
  .kly-od__sidebar .kly-od__card { margin-bottom:0; }
}
@media(max-width:768px){
  .kly-subpage { padding:20px 14px 60px; }
  .kly-subpage__header { flex-wrap:wrap;gap:10px; }
  .kly-subpage__back { align-self:flex-start; }
  .kly-subpage__title { font-size:1.15rem; }
  .kly-od__header { flex-direction:column;gap:14px; }
  .kly-od__header-right { align-items:flex-start;flex-direction:row;flex-wrap:wrap; }
  .kly-od__product { flex-wrap:wrap; }
  .kly-od__product-img { width:44px;height:44px; }
  .kly-addresses__grid { grid-template-columns:1fr; }
  .kly-od__sidebar { grid-template-columns:1fr; }
  .kly-password-card { padding:32px 20px; }
}
@media(max-width:480px){
  .kly-od__timeline { flex-direction:column;gap:10px; }
  .kly-od__timeline-step { flex-direction:row;align-items:center;gap:10px;min-width:0;flex:none; }
  .kly-od__timeline-step::after { display:none; }
  .kly-od__timeline-dot { margin-bottom:0;flex-shrink:0; }
  .kly-od__timeline-content { text-align:left; }
  .kly-order-card__btn--ghost { display:none; }
  .kly-order-card__btn--primary { flex:1;justify-content:center; }
}

/* ================================================
   KLY — IDENTITY FORM (personal info page)
   Scoped to body#identity to avoid conflicts
   ================================================ */

/* Remove Bootstrap row/col layout — go vertical */
body#identity #customer-form .form-group {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin-bottom: 18px !important;
  padding: 0 !important;
}

/* Label above input */
body#identity #customer-form .form-control-label {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  text-align: left !important;
  font-size: .8rem !important;
  font-weight: 600 !important;
  color: var(--gray-600) !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  padding: 0 !important;
}

/* Input col full width */
body#identity #customer-form .col-md-6,
body#identity #customer-form .col-md-9,
body#identity #customer-form .col-md-5,
body#identity #customer-form [class*="col-"] {
  max-width: 100% !important;
  flex: none !important;
  width: 100% !important;
  padding: 0 !important;
}

/* "Optionnel" badge inline after label */
body#identity #customer-form .form-control-comment {
  position: absolute;
  top: 0;
  right: 0;
  font-size: .7rem;
  color: #9ba3b0;
  font-weight: 500;
  padding: 0 !important;
  max-width: none !important;
  width: auto !important;
  flex: none !important;
}
body#identity #customer-form .form-group {
  position: relative;
}

/* Inputs */
body#identity #customer-form .form-control,
body#identity #customer-form input[type=text],
body#identity #customer-form input[type=email],
body#identity #customer-form input[type=password],
body#identity #customer-form input[type=date],
body#identity #customer-form select,
body#identity #customer-form textarea {
  border: 1.5px solid #dde0e7 !important;
  border-radius: 10px !important;
  padding: 10px 14px !important;
  font-size: .92rem !important;
  font-family: var(--font) !important;
  color: var(--gray-900) !important;
  background: #fafbfc !important;
  width: 100% !important;
  box-sizing: border-box !important;
  transition: border-color .2s, box-shadow .2s !important;
  outline: none !important;
  box-shadow: none !important;
}
body#identity #customer-form .form-control:focus,
body#identity #customer-form input:focus,
body#identity #customer-form select:focus {
  border-color: var(--green-500) !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(67,160,71,.1) !important;
}

/* Helper text */
body#identity #customer-form .form-text,
body#identity #customer-form .form-control-comment + small,
body#identity #customer-form small {
  font-size: .75rem !important;
  color: #9ba3b0 !important;
  margin-top: 4px !important;
  display: block !important;
}

/* Password show/hide button */
body#identity #customer-form .input-group {
  display: flex !important;
  gap: 0 !important;
}
body#identity #customer-form .input-group .form-control {
  border-radius: 10px 0 0 10px !important;
  flex: 1 !important;
}
body#identity #customer-form .input-group-btn .btn,
body#identity #customer-form .input-group .btn {
  background: #f4f6f9 !important;
  border: 1.5px solid #dde0e7 !important;
  border-left: none !important;
  border-radius: 0 10px 10px 0 !important;
  color: var(--gray-600) !important;
  font-size: .75rem !important;
  font-weight: 600 !important;
  padding: 0 14px !important;
  height: 100% !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}
body#identity #customer-form .input-group .btn:hover {
  background: #eaecf0 !important;
  color: var(--gray-900) !important;
}

/* Gender radio — segmented control style */
body#identity #customer-form .radio-inline,
body#identity #customer-form .custom-radio {
  display: inline-flex !important;
  gap: 0 !important;
}
body#identity #customer-form .radio-inline label,
body#identity #customer-form .custom-radio label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 20px !important;
  border: 1.5px solid #dde0e7 !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  font-size: .88rem !important;
  font-weight: 500 !important;
  color: var(--gray-600) !important;
  background: #fafbfc !important;
  transition: all .2s !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  margin: 0 !important;
}
body#identity #customer-form .radio-inline label:first-child,
body#identity #customer-form .custom-radio label:first-child {
  border-radius: 10px 0 0 10px !important;
}
body#identity #customer-form .radio-inline label:last-child,
body#identity #customer-form .custom-radio label:last-child {
  border-radius: 0 10px 10px 0 !important;
  border-left: none !important;
}
body#identity #customer-form .radio-inline input[type=radio],
body#identity #customer-form .custom-radio input[type=radio] {
  accent-color: var(--green-600) !important;
  width: 14px !important;
  height: 14px !important;
}
body#identity #customer-form .radio-inline input[type=radio]:checked + span,
body#identity #customer-form .radio-inline label:has(input:checked) {
  background: var(--green-50) !important;
  border-color: var(--green-400) !important;
  color: var(--green-800) !important;
}

/* Checkboxes */
body#identity #customer-form .checkbox,
body#identity #customer-form .custom-checkbox {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 10px 14px !important;
  border: 1px solid #eaecf0 !important;
  border-radius: 10px !important;
  background: #fafbfc !important;
  cursor: pointer !important;
  transition: background .15s, border-color .15s !important;
  margin: 0 !important;
}
body#identity #customer-form .checkbox:hover,
body#identity #customer-form .custom-checkbox:hover {
  background: #f0f7f0 !important;
  border-color: var(--green-300) !important;
}
body#identity #customer-form .checkbox input[type=checkbox],
body#identity #customer-form .custom-checkbox input[type=checkbox] {
  accent-color: var(--green-600) !important;
  width: 15px !important;
  height: 15px !important;
  margin-top: 2px !important;
  flex-shrink: 0 !important;
}
body#identity #customer-form .checkbox label,
body#identity #customer-form .custom-checkbox label {
  font-size: .83rem !important;
  color: var(--gray-700) !important;
  font-weight: 400 !important;
  cursor: pointer !important;
  line-height: 1.5 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
body#identity #customer-form .checkbox em,
body#identity #customer-form .custom-checkbox em {
  display: block !important;
  font-size: .76rem !important;
  color: #9ba3b0 !important;
  font-style: italic !important;
  margin-top: 4px !important;
}

/* Divider between sections */
body#identity #customer-form .field-password-policy {
  border-top: 1px solid #eaecf0 !important;
  margin-top: 8px !important;
  padding-top: 20px !important;
}

/* Submit button */
body#identity #customer-form .form-footer {
  display: flex !important;
  justify-content: flex-end !important;
  padding-top: 20px !important;
  border-top: 1px solid #eaecf0 !important;
  margin-top: 8px !important;
}
body#identity #customer-form .btn-primary,
body#identity #customer-form button[type=submit] {
  background: var(--green-700) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--radius-full) !important;
  padding: 11px 32px !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  font-family: var(--font) !important;
  cursor: pointer !important;
  transition: var(--transition) !important;
  float: none !important;
}
body#identity #customer-form .btn-primary:hover,
body#identity #customer-form button[type=submit]:hover {
  background: var(--green-800) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px rgba(46,125,50,.28) !important;
}

/* 2-col grid for main fields on desktop */
@media(min-width:640px){
  body#identity #customer-form > div {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 20px !important;
  }
  body#identity #customer-form .form-group:first-child,
  body#identity #customer-form .field-password-policy,
  body#identity #customer-form .checkbox,
  body#identity #customer-form .custom-checkbox,
  body#identity #customer-form .js-input-column + * {
    grid-column: 1 / -1 !important;
  }
}
@media(max-width:640px){
  body#identity #customer-form .radio-inline { flex-wrap: wrap !important; }
}

/* ================================================
   KLY — SUB-PAGES : FOND BLANC + ANIMATIONS
   ================================================ */

/* Fond blanc pour toutes les sous-pages */
body#history,body#identity,body#addresses,body#password,
body#address,body#order-detail,body#discount,
body#order-slip,body#order-follow {
  background: #ffffff !important;
}

/* ── Entrance animation keyframes ─────────────── */
@keyframes kly-fade-up {
  from { opacity:0; transform:translateY(18px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes kly-fade-in {
  from { opacity:0; }
  to   { opacity:1; }
}
@keyframes kly-slide-right {
  from { opacity:0; transform:translateX(-12px); }
  to   { opacity:1; transform:translateX(0); }
}
@keyframes kly-scale-in {
  from { opacity:0; transform:scale(.96); }
  to   { opacity:1; transform:scale(1); }
}

/* ── Page header animé ────────────────────────── */
body#history .kly-subpage__header,
body#identity .kly-subpage__header,
body#addresses .kly-subpage__header,
body#password .kly-subpage__header,
body#address .kly-subpage__header,
body#order-detail .kly-od__header {
  animation: kly-slide-right .4s ease both;
}

/* ── Cards commande : stagger ─────────────────── */
body#history .kly-order-card {
  animation: kly-fade-up .45s ease both;
}
body#history .kly-order-card:nth-child(1)  { animation-delay:.05s; }
body#history .kly-order-card:nth-child(2)  { animation-delay:.1s; }
body#history .kly-order-card:nth-child(3)  { animation-delay:.15s; }
body#history .kly-order-card:nth-child(4)  { animation-delay:.2s; }
body#history .kly-order-card:nth-child(5)  { animation-delay:.25s; }
body#history .kly-order-card:nth-child(6)  { animation-delay:.3s; }
body#history .kly-order-card:nth-child(7)  { animation-delay:.35s; }
body#history .kly-order-card:nth-child(8)  { animation-delay:.4s; }
body#history .kly-order-card:nth-child(9)  { animation-delay:.45s; }
body#history .kly-order-card:nth-child(n+10){ animation-delay:.5s; }

/* ── Cards commande : hover renforcé ──────────── */
.kly-order-card {
  transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease !important;
}
.kly-order-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 28px rgba(46,125,50,.1), 0 2px 8px rgba(0,0,0,.06) !important;
  border-color: var(--green-300) !important;
}

/* Barre colorée gauche au hover */
.kly-order-card { position: relative; overflow: hidden; }
.kly-order-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--green-500);
  border-radius: 3px 0 0 3px;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform .25s ease;
}
.kly-order-card:hover::before { transform: scaleY(1); }

/* ── Adresses : animate ───────────────────────── */
body#addresses .kly-address-card {
  animation: kly-scale-in .35s ease both;
}
body#addresses .kly-address-card:nth-child(1) { animation-delay:.05s; }
body#addresses .kly-address-card:nth-child(2) { animation-delay:.12s; }
body#addresses .kly-address-card:nth-child(3) { animation-delay:.19s; }
body#addresses .kly-address-card:nth-child(4) { animation-delay:.26s; }
body#addresses .kly-address-card--add         { animation-delay:.3s; }

.kly-address-card {
  transition: box-shadow .25s ease, border-color .25s ease, transform .25s ease !important;
}
.kly-address-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(123,31,162,.1) !important;
  border-color: #ce93d8 !important;
}

/* ── Identity form : animate ──────────────────── */
body#identity .kly-subpage__card {
  animation: kly-fade-up .45s .1s ease both;
}
body#identity #customer-form .form-group {
  animation: kly-fade-up .35s ease both;
}
body#identity #customer-form .form-group:nth-child(1)  { animation-delay:.08s; }
body#identity #customer-form .form-group:nth-child(2)  { animation-delay:.13s; }
body#identity #customer-form .form-group:nth-child(3)  { animation-delay:.18s; }
body#identity #customer-form .form-group:nth-child(4)  { animation-delay:.23s; }
body#identity #customer-form .form-group:nth-child(5)  { animation-delay:.28s; }
body#identity #customer-form .form-group:nth-child(n+6){ animation-delay:.33s; }

/* ── Order detail : animate sections ─────────── */
body#order-detail .kly-od__header  { animation: kly-fade-up .4s ease both; }
body#order-detail .kly-od__section:nth-child(1) { animation: kly-fade-up .4s .08s ease both; }
body#order-detail .kly-od__section:nth-child(2) { animation: kly-fade-up .4s .16s ease both; }
body#order-detail .kly-od__section:nth-child(3) { animation: kly-fade-up .4s .24s ease both; }
body#order-detail .kly-od__card    { animation: kly-scale-in .35s ease both; }
body#order-detail .kly-od__card:nth-child(1) { animation-delay:.1s; }
body#order-detail .kly-od__card:nth-child(2) { animation-delay:.18s; }
body#order-detail .kly-od__card:nth-child(3) { animation-delay:.26s; }
body#order-detail .kly-od__card:nth-child(4) { animation-delay:.34s; }
body#order-detail .kly-od__product { animation: kly-fade-up .3s ease both; }
body#order-detail .kly-od__product:nth-child(1) { animation-delay:.12s; }
body#order-detail .kly-od__product:nth-child(2) { animation-delay:.2s; }
body#order-detail .kly-od__product:nth-child(3) { animation-delay:.28s; }
body#order-detail .kly-od__product:nth-child(n+4){ animation-delay:.36s; }

/* ── Password card ────────────────────────────── */
body#password .kly-password-card {
  animation: kly-scale-in .4s ease both;
}

/* ── Boutons : micro-interaction ─────────────── */
.kly-order-card__btn,
.kly-address-card__btn,
.kly-subpage__cta,
.kly-subpage__back {
  transition: all .2s cubic-bezier(.4,0,.2,1) !important;
}
.kly-order-card__btn--primary:hover,
.kly-subpage__cta:hover {
  transform: translateY(-1px) !important;
}
.kly-order-card__btn--ghost:hover {
  transform: translateY(-1px) !important;
}

/* ── Icon badge color pulse on page load ──────── */
body#history   .kly-subpage__icon { animation: kly-scale-in .4s .3s ease both; }
body#identity  .kly-subpage__icon { animation: kly-scale-in .4s .3s ease both; }
body#addresses .kly-subpage__icon { animation: kly-scale-in .4s .3s ease both; }
body#address   .kly-subpage__icon { animation: kly-scale-in .4s .3s ease both; }

/* ── Fond page blanc avec légère texture ──────── */
body#history,body#identity,body#addresses,body#password,
body#address,body#order-detail,body#discount,
body#order-slip,body#order-follow {
  background: #ffffff !important;
}


/* ── Breadcrumb couleur ───────────────────────── */
body#history .breadcrumb-item a,
body#identity .breadcrumb-item a,
body#addresses .breadcrumb-item a,
body#address .breadcrumb-item a,
body#order-detail .breadcrumb-item a {
  color: var(--green-700) !important;
  text-decoration: none !important;
}
body#history .breadcrumb-item a:hover,
body#identity .breadcrumb-item a:hover {
  text-decoration: underline !important;
}

/* ================================================
   KLY — ORDER DETAIL v2 (ultra-modern)
   ================================================ */

body#order-detail { background:#f5f6fa !important; }

/* ── Hero header ──────────────────────────────── */
.kly-od2 { max-width:1080px;margin:0 auto;padding:0 20px 80px; }

.kly-od2__hero {
  background: linear-gradient(135deg,#0d3311 0%,#1b5e20 60%,#2e7d32 100%);
  border-radius:20px;
  padding:28px 32px 0;
  margin-bottom:24px;
  color:#fff;
  position:relative;
  overflow:hidden;
  animation: kly-fade-up .4s ease both;
}
.kly-od2__hero::before {
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events:none;
}

.kly-od2__hero-inner {
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:20px;margin-bottom:24px;
}
.kly-od2__hero-left { display:flex;flex-direction:column;gap:10px; }

.kly-od2__back {
  display:inline-flex;align-items:center;gap:6px;
  font-size:.78rem;font-weight:600;color:rgba(255,255,255,.65);
  text-decoration:none;transition:color .2s;
  width:fit-content;
}
.kly-od2__back:hover { color:#fff; }

.kly-od2__hero-label {
  font-size:.7rem;font-weight:600;letter-spacing:1.5px;
  text-transform:uppercase;color:rgba(255,255,255,.5);
  display:block;margin-bottom:2px;
}
.kly-od2__hero-ref h1 {
  font-size:1.8rem;font-weight:800;color:#fff;margin:0;letter-spacing:-.5px;
}

.kly-od2__hero-meta {
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.kly-od2__hero-meta span {
  display:inline-flex;align-items:center;gap:5px;
  font-size:.82rem;color:rgba(255,255,255,.7);
}
.kly-od2__hero-meta span svg { opacity:.7; }

.kly-od2__hero-right {
  display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex-shrink:0;
}
.kly-od2__status-wrap {
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.12);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.2);
  border-radius:var(--radius-full);padding:7px 16px;
}
.kly-od2__status-dot {
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  box-shadow:0 0 0 3px rgba(255,255,255,.25);
}
.kly-od2__status-label { font-size:.82rem;font-weight:600;color:#fff; }

.kly-od2__hero-actions { display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end; }

.kly-od2__btn {
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 18px;border-radius:10px;
  font-size:.82rem;font-weight:600;text-decoration:none;
  transition:all .2s ease;white-space:nowrap;border:none;cursor:pointer;
  font-family:var(--font);
}
.kly-od2__btn--ghost {
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);color:#fff;
}
.kly-od2__btn--ghost:hover { background:rgba(255,255,255,.25);color:#fff; }
.kly-od2__btn--primary { background:#fff;color:var(--green-800);border:none; }
.kly-od2__btn--primary:hover { background:var(--green-50);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15); }
.kly-od2__btn--dark { background:#1a1a2e;color:#fff; }
.kly-od2__btn--dark:hover { background:#16213e; }

/* Timeline dans le hero */
.kly-od2__timeline {
  display:flex;overflow-x:auto;padding:20px 0 24px;
  margin:0 -4px;gap:0;
  scrollbar-width:none;
}
.kly-od2__timeline::-webkit-scrollbar { display:none; }

.kly-od2__tl-step {
  flex:1;min-width:80px;display:flex;flex-direction:column;
  align-items:center;position:relative;
}
.kly-od2__tl-step:not(:last-child)::after {
  content:'';position:absolute;top:12px;left:50%;
  width:100%;height:2px;
  background:rgba(255,255,255,.2);z-index:0;
}
.kly-od2__tl-step.active:not(:last-child)::after { background:rgba(255,255,255,.4); }
.kly-od2__tl-step.active::before {
  content:'';position:absolute;top:12px;left:0;
  width:50%;height:2px;
  background:rgba(255,255,255,.6);z-index:0;
}
.kly-od2__tl-dot {
  width:24px;height:24px;border-radius:50%;
  background:rgba(255,255,255,.2);border:2px solid rgba(255,255,255,.35);
  display:flex;align-items:center;justify-content:center;
  position:relative;z-index:1;margin-bottom:8px;transition:all .3s;
  flex-shrink:0;
}
.kly-od2__tl-step.active .kly-od2__tl-dot {
  background:var(--c,#66bb6a);border-color:transparent;
  box-shadow:0 0 0 4px rgba(255,255,255,.2);
  color:#fff;
}
.kly-od2__tl-info { text-align:center; }
.kly-od2__tl-name { font-size:.7rem;font-weight:700;color:rgba(255,255,255,.9);line-height:1.2;margin-bottom:2px; }
.kly-od2__tl-date { font-size:.63rem;color:rgba(255,255,255,.5); }

/* ── Body layout ──────────────────────────────── */
.kly-od2__body {
  display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start;
}

/* ── Section cards ────────────────────────────── */
.kly-od2__section {
  background:#fff;border-radius:16px;
  border:1px solid #eaecf0;overflow:hidden;
  margin-bottom:14px;
  animation:kly-fade-up .4s ease both;
}
.kly-od2__section:nth-child(2) { animation-delay:.08s; }
.kly-od2__section:nth-child(3) { animation-delay:.16s; }

.kly-od2__section-head {
  display:flex;align-items:center;gap:10px;
  padding:16px 20px;border-bottom:1px solid #f0f2f5;
}
.kly-od2__section-head h2 {
  font-size:.9rem;font-weight:700;color:var(--gray-900);margin:0;flex:1;
}
.kly-od2__count {
  font-size:.75rem;font-weight:600;color:#9ba3b0;
  background:#f4f6f9;padding:3px 10px;border-radius:20px;
}
.kly-od2__section-icon {
  width:32px;height:32px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.kly-od2__section-icon--blue   { background:#e8f1fd;color:#1565c0; }
.kly-od2__section-icon--green  { background:#e8f5e9;color:#2e7d32; }
.kly-od2__section-icon--orange { background:#fff3e0;color:#e65100; }
.kly-od2__section-icon--purple { background:#f3e5f5;color:#7b1fa2; }

/* ── Product list (overrides od__products) ──── */
.kly-od2 .kly-od__products { border:none;border-radius:0;background:transparent; }
.kly-od2 .kly-od__product {
  padding:16px 20px;border-bottom:1px solid #f5f6fa;
  transition:background .15s;
}
.kly-od2 .kly-od__product:hover { background:#fafbfc; }
.kly-od2 .kly-od__product:last-child { border-bottom:none; }
.kly-od2 .kly-od__product-img { width:60px;height:60px;border-radius:10px; }
.kly-od2 .kly-od__product-name { font-size:.92rem;font-weight:700; }
.kly-od2 .kly-od__product-total { font-size:1rem;font-weight:800;color:var(--green-800); }
.kly-od2 .kly-od__products-totals { padding:14px 20px;background:#f9fafc; }

/* ── Tracking banner ──────────────────────────── */
.kly-od2__tracking-banner {
  display:flex;align-items:center;gap:10px;
  background:linear-gradient(135deg,#e8f5e9,#f1f8e9);
  border:1px solid #c8e6c9;border-radius:12px;
  padding:14px 18px;font-size:.85rem;color:var(--green-800);
  margin-bottom:14px;
}
.kly-od2__tracking-banner svg { color:var(--green-600);flex-shrink:0; }
.kly-od2__tracking-banner span { font-weight:600; }
.kly-od2__tracking-banner a { color:var(--green-700);font-weight:500;text-decoration:none;word-break:break-all; }
.kly-od2__tracking-banner a:hover { text-decoration:underline; }

/* ── Shipping section ─────────────────────────── */
.kly-od2__shipping-list { padding:14px 20px;display:flex;flex-direction:column;gap:10px; }
.kly-od2__shipping-item { display:flex;align-items:center;justify-content:space-between;gap:12px; }
.kly-od2__shipping-carrier { font-size:.9rem;font-weight:600;color:var(--gray-900); }
.kly-od2__shipping-details { display:flex;gap:10px;align-items:center;font-size:.82rem;color:var(--gray-600); }
.kly-od2__tracking-chip { font-family:monospace;background:#f0f2f7;padding:3px 8px;border-radius:5px;font-size:.78rem; }

/* ── Messages section (uses existing kly-od classes) */
.kly-od2 .kly-od__section { background:#fff;border-radius:16px;border:1px solid #eaecf0;overflow:hidden; }
.kly-od2 .kly-od__section-title {
  font-size:.85rem;font-weight:700;color:var(--gray-900);
  margin:0 0 14px;padding:16px 20px 0;text-transform:none;letter-spacing:0;
}
.kly-od2 .kly-od__messages { padding:0 20px; }
.kly-od2 .kly-od__msg-form { padding:0 20px 20px;max-width:100%; }
.kly-od2 .kly-od__return-form { margin:0 20px 20px; }

/* ── Sidebar widgets ──────────────────────────── */
.kly-od2__sidebar { display:flex;flex-direction:column;gap:14px;position:sticky;top:20px; }

.kly-od2__widget {
  background:#fff;border:1px solid #eaecf0;border-radius:16px;
  overflow:hidden;animation:kly-scale-in .4s ease both;
}
.kly-od2__widget:nth-child(1) { animation-delay:.1s; }
.kly-od2__widget:nth-child(2) { animation-delay:.18s; }
.kly-od2__widget:nth-child(3) { animation-delay:.26s; }
.kly-od2__widget:nth-child(4) { animation-delay:.34s; }

.kly-od2__widget-head {
  display:flex;align-items:center;gap:8px;
  padding:14px 18px;
  font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;
  color:var(--gray-500);border-bottom:1px solid #f0f2f5;
}
.kly-od2__widget--summary .kly-od2__widget-head { color:var(--green-800);background:var(--green-50); }
.kly-od2__widget--summary .kly-od2__widget-head svg { color:var(--green-600); }
.kly-od2__widget--addr .kly-od2__widget-head { color:#7b1fa2;background:#faf5ff; }
.kly-od2__widget--addr .kly-od2__widget-head svg { color:#9c27b0; }

.kly-od2__widget-body { padding:14px 18px; }

.kly-od2__sum-row {
  display:flex;justify-content:space-between;
  font-size:.85rem;color:var(--gray-600);padding:5px 0;
  border-bottom:1px dashed #f0f2f5;
}
.kly-od2__sum-row:last-of-type { border-bottom:none; }
.kly-od2__sum-total {
  display:flex;justify-content:space-between;align-items:center;
  font-size:1.05rem;padding:12px 0 0;margin-top:6px;
  border-top:2px solid #f0f2f5;color:var(--gray-900);
}
.kly-od2__sum-total strong { font-size:1.2rem;font-weight:800;color:var(--green-800); }

.kly-od2__info-pair { padding:7px 0;border-bottom:1px solid #f5f6fa; }
.kly-od2__info-pair:last-child { border-bottom:none; }
.kly-od2__info-key { display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#bdc3ce;margin-bottom:2px; }
.kly-od2__info-val { font-size:.88rem;color:var(--gray-800);font-weight:500; }

.kly-od2__addr { font-style:normal;font-size:.85rem;color:var(--gray-600);line-height:1.7;margin:0; }

/* ── Return form ──────────────────────────────── */
.kly-od2 .kly-od__return-form { background:#fff8f0;border:1.5px solid #ffe0b2;border-radius:12px;padding:18px; }

/* ================================================
   RESPONSIVE — ORDER DETAIL v2
   ================================================ */
@media(max-width:900px){
  .kly-od2__body { grid-template-columns:1fr; }
  .kly-od2__sidebar { position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px; }
  .kly-od2__widget--summary { grid-column:1/-1; }
}
@media(max-width:768px){
  .kly-od2 { padding:0 12px 60px; }
  .kly-od2__hero { border-radius:16px;padding:20px 18px 0; }
  .kly-od2__hero-inner { flex-direction:column;gap:14px; }
  .kly-od2__hero-right { align-items:flex-start; }
  .kly-od2__hero-ref h1 { font-size:1.4rem; }
  .kly-od2__hero-actions { flex-wrap:wrap; }
  .kly-od2__sidebar { grid-template-columns:1fr; }
  .kly-od2 .kly-od__product-img { width:46px;height:46px; }
}
@media(max-width:480px){
  .kly-od2__tl-step { min-width:64px; }
  .kly-od2__tl-name { font-size:.63rem; }
  .kly-od2__hero-ref h1 { font-size:1.2rem; }
  .kly-od2__hero-meta { gap:10px; }
  .kly-od2 .kly-od__product { padding:12px 14px; }
  .kly-od2__shipping-item { flex-direction:column;align-items:flex-start; }
}

/* ================================================
   KLY — ORDER DETAIL v2 — PATCH AMÉLIORATIONS
   ================================================ */

/* Euro icon dans récap */
.kly-od2__euro-icon {
  width:28px;height:28px;
  background:var(--green-700);color:#fff;
  border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.95rem;font-weight:800;
  flex-shrink:0;font-style:normal;
}

/* Masquer les totaux dans la liste produits (déjà dans sidebar) */
.kly-od2 .kly-od__products-totals { display:none; }

/* ── Hero : affinage ───────────────────────────── */
.kly-od2__hero {
  margin-top:0;
}
.kly-od2__hero-ref h1 { font-size:2rem;letter-spacing:-.8px; }

/* Valeur totale dans le hero méta en gras */
.kly-od2__hero-meta span:nth-child(2) {
  font-weight:700;font-size:.9rem;
  color:rgba(255,255,255,.95);
  background:rgba(255,255,255,.1);
  padding:3px 10px;border-radius:20px;
}

/* ── Section products : améliorer ─────────────── */
.kly-od2 .kly-od__product {
  padding:18px 22px;
}
.kly-od2 .kly-od__product-img {
  width:64px;height:64px;border-radius:12px;
  box-shadow:0 2px 8px rgba(0,0,0,.1);
}
.kly-od2 .kly-od__product-name {
  font-size:.95rem;font-weight:700;color:var(--gray-900);
  line-height:1.35;
}
.kly-od2 .kly-od__product-ref {
  font-size:.75rem;color:#b0b8c4;margin-top:4px;
  display:inline-flex;align-items:center;gap:4px;
}
.kly-od2 .kly-od__product-ref::before {
  content:'';display:inline-block;
  width:14px;height:1px;background:#d4d8e0;
}
.kly-od2 .kly-od__product-qty {
  font-size:.78rem;color:#b0b8c4;
  background:#f4f6f9;padding:2px 8px;border-radius:20px;
  font-weight:600;
}
.kly-od2 .kly-od__product-unit { font-size:.82rem;color:#9ba3b0;text-decoration:line-through; }
.kly-od2 .kly-od__product-total {
  font-size:1.05rem;font-weight:800;
  color:var(--green-800);
}

/* ── Section summary sidebar ──────────────────── */
.kly-od2__sum-row {
  padding:7px 0;
  font-size:.875rem;
}
.kly-od2__sum-row span:last-child {
  font-weight:600;color:var(--gray-800);
}
.kly-od2__sum-total {
  margin-top:10px;padding-top:14px;
  border-top:2px solid #eaecf0;
}
.kly-od2__sum-total span { font-weight:600;font-size:.9rem; }
.kly-od2__sum-total strong {
  font-size:1.3rem;font-weight:800;
  color:var(--green-700);
  letter-spacing:-.5px;
}

/* ── Widget head amélioration ─────────────────── */
.kly-od2__widget-head {
  font-size:.72rem;letter-spacing:1px;padding:13px 18px;
}
.kly-od2__widget-body { padding:16px 18px; }

/* ── Adresses : améliorer ─────────────────────── */
.kly-od2__addr {
  font-size:.88rem;line-height:1.8;color:var(--gray-700);
}
.kly-od2__widget--addr .kly-od2__widget-body {
  padding:14px 18px;
}

/* ── Message form : améliorer layout ─────────── */
.kly-od2 .kly-od__section .kly-od__section-title {
  border-bottom:1px solid #f0f2f5;
  padding-bottom:12px;margin-bottom:0;
}
.kly-od2 .kly-od__msg-form {
  padding:18px 20px 20px;
  display:flex;flex-direction:column;gap:14px;
  max-width:100%;
}
.kly-od2 .kly-od__msg-form .kly-form-group { margin-bottom:0; }
.kly-od2 .kly-od__msg-form .kly-form-group label {
  font-size:.75rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.6px;color:#9ba3b0;
}
.kly-od2 .kly-od__msg-form .kly-form-control {
  border-radius:12px !important;
  background:#fafbfc;
}
.kly-od2 .kly-od__msg-form textarea.kly-form-control { min-height:90px;resize:vertical; }
.kly-od2 .kly-od__msg-form .kly-subpage__cta {
  align-self:flex-start;
  padding:10px 22px;
}

/* ── Shipping section : améliorer ─────────────── */
.kly-od2__shipping-item {
  background:#fafbfc;border:1px solid #eaecf0;
  border-radius:10px;padding:12px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.kly-od2__shipping-carrier {
  font-size:.9rem;font-weight:700;color:var(--gray-900);
  display:flex;align-items:center;gap:8px;
}
.kly-od2__shipping-carrier::before {
  content:'';width:8px;height:8px;border-radius:50%;
  background:var(--green-500);flex-shrink:0;
}
.kly-od2__shipping-details {
  display:flex;align-items:center;gap:10px;
  font-size:.82rem;color:#9ba3b0;
}

/* ── Section head compteur ────────────────────── */
.kly-od2__count {
  font-size:.72rem;font-weight:700;letter-spacing:.4px;
  background:#f0f2f7;color:#6b7280;
  padding:4px 10px;border-radius:20px;
}

/* ── Responsive patch ─────────────────────────── */
@media(max-width:768px){
  .kly-od2__hero-ref h1 { font-size:1.5rem; }
  .kly-od2 .kly-od__product-img { width:52px;height:52px; }
  .kly-od2 .kly-od__product-total { font-size:.95rem; }
  .kly-od2__shipping-item { flex-direction:column;align-items:flex-start;gap:8px; }
  .kly-od2 .kly-od__msg-form .kly-subpage__cta { width:100%;justify-content:center; }
}
@media(max-width:480px){
  .kly-od2__hero-ref h1 { font-size:1.3rem; }
  .kly-od2 .kly-od__product { padding:14px 14px; }
  .kly-od2 .kly-od__product-img { width:44px;height:44px; }
}

/* ================================================
   KLY — ADDRESS BLOCKS REDESIGN (order-detail)
   ================================================ */

/* Conteneur des deux adresses */
.kly-od2__addresses {
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:16px;
  overflow:hidden;
  animation:kly-scale-in .4s .3s ease both;
}

/* Chaque bloc */
.kly-od2__addr-block {
  padding:18px 20px;
  position:relative;
}
.kly-od2__addr-block--delivery {
  border-bottom:1px solid #f0f2f5;
}

/* Barre latérale colorée */
.kly-od2__addr-block--delivery::before {
  content:'';
  position:absolute;left:0;top:0;bottom:0;
  width:3px;
  background:var(--green-400);
  border-radius:0;
}
.kly-od2__addr-block--invoice::before {
  content:'';
  position:absolute;left:0;top:0;bottom:0;
  width:3px;
  background:#ce93d8;
  border-radius:0;
}

/* Header du bloc */
.kly-od2__addr-header {
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:1px;
}
.kly-od2__addr-block--delivery .kly-od2__addr-header { color:var(--green-700); }
.kly-od2__addr-block--invoice  .kly-od2__addr-header { color:#7b1fa2; }

/* Icon dans le header */
.kly-od2__addr-icon {
  width:26px;height:26px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.kly-od2__addr-icon--green  { background:#e8f5e9;color:var(--green-700); }
.kly-od2__addr-icon--purple { background:#f3e5f5;color:#7b1fa2; }

/* Texte adresse */
.kly-od2__addr-text {
  font-style:normal;
  font-size:.875rem;
  line-height:1.85;
  color:var(--gray-700);
  margin:0;
  padding-left:34px;
}



/* ================================================
   KLY — NEW PAGES CSS
   history euro badge · avoirs · discounts ·
   alertes · wishlist · RGPD
   ================================================ */

/* ── History : euro badge (replaces dollar SVG) ── */
.kly-order-card__euro-badge {
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:6px;
  background:var(--green-50);color:var(--green-700);
  font-weight:800;font-size:.85rem;flex-shrink:0;
}

/* ── Shared icon colors for new pages ─────────── */
.kly-subpage__icon--teal   { background:linear-gradient(135deg,#00897b,#26a69a); }
.kly-subpage__icon--amber  { background:linear-gradient(135deg,#f57c00,#ffa726); }
.kly-subpage__icon--red    { background:linear-gradient(135deg,#c62828,#ef5350); }

/* ── Empty state accent variants ──────────────── */
.kly-empty-state__icon--teal  { color:#00897b; }
.kly-empty-state__icon--orange{ color:#f57c00; }
.kly-empty-state__icon--amber { color:#f57c00; }

/* ── AVOIRS (order-slip) ───────────────────────── */
body#order-slip .kly-subpage__icon--teal { background:linear-gradient(135deg,#00695c,#00897b); }

.kly-slips {
  display:flex;flex-direction:column;gap:12px;
  margin-bottom:24px;
}

.kly-slip-card {
  background:#fff;
  border:1px solid #eaecf0;
  border-left:3px solid #26a69a;
  border-radius:14px;
  padding:16px 20px;
  display:flex;align-items:center;gap:16px;
  transition:box-shadow .2s ease,transform .2s ease;
}
.kly-slip-card:hover {
  box-shadow:0 4px 20px rgba(0,137,123,.1);
  transform:translateY(-2px);
}

.kly-slip-card__left {
  display:flex;align-items:center;gap:14px;flex:1;min-width:0;
}
.kly-slip-card__icon {
  width:42px;height:42px;border-radius:10px;flex-shrink:0;
  background:rgba(38,166,154,.1);color:#00897b;
  display:flex;align-items:center;justify-content:center;
}
.kly-slip-card__info { min-width:0; }
.kly-slip-card__number {
  font-size:.95rem;font-weight:700;color:var(--gray-900);
  margin-bottom:4px;
}
.kly-slip-card__meta {
  display:flex;flex-wrap:wrap;gap:12px;
}
.kly-slip-card__date,
.kly-slip-card__order-link {
  display:flex;align-items:center;gap:5px;
  font-size:.8rem;color:#9ba3b0;
}
.kly-slip-card__order-link a {
  color:#00897b;font-weight:600;text-decoration:none;
}
.kly-slip-card__order-link a:hover { text-decoration:underline; }

.kly-slip-card__download {
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  padding:8px 16px;border-radius:8px;
  background:#00897b;color:#fff;
  font-size:.8rem;font-weight:700;text-decoration:none;
  transition:background .2s ease,transform .15s ease;
}
.kly-slip-card__download:hover {
  background:#00695c;transform:translateY(-1px);
}

.kly-slips-note {
  display:flex;align-items:center;gap:8px;
  font-size:.82rem;color:#9ba3b0;
  padding:12px 16px;background:#fafbfc;border-radius:10px;
}

@media(max-width:600px){
  .kly-slip-card { flex-wrap:wrap;gap:12px; }
  .kly-slip-card__download { width:100%;justify-content:center; }
}

/* ── BONS DE RÉDUCTION (discount) ─────────────── */
body#discount .kly-subpage__icon--orange { background:linear-gradient(135deg,#e65100,#f57c00); }

.kly-vouchers {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:16px;
  margin-bottom:16px;
}

.kly-voucher-card {
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:16px;
  overflow:hidden;
  position:relative;
  transition:box-shadow .2s ease,transform .2s ease;
}
.kly-voucher-card::before {
  content:'';
  position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#f57c00,#ffb74d);
}
.kly-voucher-card:hover {
  box-shadow:0 6px 24px rgba(245,124,0,.12);
  transform:translateY(-3px);
}

.kly-voucher-card__top {
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:20px 20px 12px;
}
.kly-voucher-card__code-wrap {
  display:flex;align-items:center;gap:8px;
}
.kly-voucher-card__code {
  font-family:monospace;font-size:.9rem;font-weight:800;
  letter-spacing:1.5px;color:#e65100;
  background:#fff3e0;border:1px dashed #ffb74d;
  padding:5px 12px;border-radius:6px;
}
.kly-voucher-card__code--auto {
  color:#9ba3b0;background:#f4f6f9;border-color:#e2e8f0;
  font-family:inherit;letter-spacing:0;font-weight:600;font-size:.82rem;
}
.kly-voucher-card__copy {
  background:none;border:none;cursor:pointer;
  color:#9ba3b0;padding:4px;border-radius:4px;
  display:flex;align-items:center;
  transition:color .2s;
}
.kly-voucher-card__copy:hover { color:#f57c00; }

.kly-voucher-card__value {
  font-size:1.4rem;font-weight:800;color:#e65100;
  white-space:nowrap;
}

.kly-voucher-card__name {
  padding:0 20px 14px;
  font-size:.9rem;color:var(--gray-700);line-height:1.4;
}

.kly-voucher-card__details {
  border-top:1px solid #f0f2f5;
  padding:12px 20px 16px;
  display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;
}
.kly-voucher-card__detail {
  display:flex;flex-direction:column;gap:2px;
}
.kly-voucher-card__detail-label {
  font-size:.7rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.6px;color:#b0b8c4;
}
.kly-voucher-card__detail-val {
  font-size:.85rem;font-weight:600;color:var(--gray-800);
}
.kly-voucher-card__detail-val--date { color:#e65100; }

@media(max-width:480px){
  .kly-vouchers { grid-template-columns:1fr; }
  .kly-voucher-card__details { grid-template-columns:1fr; }
}

/* ── MES ALERTES (ps_emailalerts) ─────────────── */
.kly-alerts-info {
  display:flex;align-items:center;gap:8px;
  font-size:.83rem;color:#f57c00;
  background:#fff8e1;border:1px solid #ffe082;border-radius:10px;
  padding:10px 16px;margin-bottom:20px;
}

.kly-alert-list {
  display:flex;flex-direction:column;gap:12px;
}

.kly-alert-card {
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:14px;
  padding:14px 16px;
  display:flex;align-items:center;gap:16px;
  transition:box-shadow .2s ease,border-color .2s ease;
}
.kly-alert-card:hover {
  box-shadow:0 4px 16px rgba(245,124,0,.1);
  border-color:#ffe082;
}

.kly-alert-card__img-wrap { flex-shrink:0; }
.kly-alert-card__img {
  width:64px;height:64px;object-fit:cover;
  border-radius:10px;border:1px solid #f0f2f5;
}

.kly-alert-card__content {
  flex:1;min-width:0;
  display:flex;flex-direction:column;gap:5px;
}
.kly-alert-card__name {
  font-size:.92rem;font-weight:700;color:var(--gray-900);
  text-decoration:none;line-height:1.3;
}
.kly-alert-card__name:hover { color:var(--green-700); }
.kly-alert-card__attrs {
  font-size:.78rem;color:#9ba3b0;
}
.kly-alert-card__badge {
  display:inline-flex;align-items:center;gap:5px;
  font-size:.72rem;font-weight:700;
  background:#fff8e1;color:#f57c00;
  border:1px solid #ffe082;
  padding:3px 9px;border-radius:20px;
  width:fit-content;
}

.kly-alert-card__delete {
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  width:36px;height:36px;border-radius:8px;
  color:#cbd5e0;
  transition:color .2s,background .2s;
}
.kly-alert-card__delete:hover {
  color:#ef5350;background:#fff5f5;
}

@media(max-width:480px){
  .kly-alert-card { flex-wrap:wrap; }
  .kly-alert-card__delete { margin-left:auto; }
}

/* ── MES LISTES D'ENVIES (blockwishlist) ──────── */
.kly-wishlist-header {
  padding:24px 0 0;margin-bottom:0;
}

.kly-wishlist-footer {
  display:flex;gap:24px;flex-wrap:wrap;
  padding:24px 0;border-top:1px solid #f0f2f5;
  margin-top:32px;
}
.kly-wishlist-footer__link {
  display:flex;align-items:center;gap:7px;
  font-size:.85rem;font-weight:600;
  color:var(--green-700);text-decoration:none;
  transition:color .2s;
}
.kly-wishlist-footer__link:hover { color:var(--green-900); }

/* Style the wishlist-container rendered by Vue */
.wishlist-container { min-height:200px; }

/* ── RGPD (psgdpr) ────────────────────────────── */
body#module-psgdpr-gdpr .kly-subpage { max-width:900px;margin:0 auto; }

.kly-gdpr-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
@media(max-width:700px){
  .kly-gdpr-grid { grid-template-columns:1fr; }
}

.kly-gdpr-card {
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:16px;
  overflow:hidden;
  transition:box-shadow .25s ease;
}
.kly-gdpr-card:hover { box-shadow:0 6px 24px rgba(0,0,0,.07); }

.kly-gdpr-card__head {
  display:flex;align-items:center;gap:14px;
  padding:20px 22px 0;
  margin-bottom:12px;
}
.kly-gdpr-card__head h2 {
  font-size:1rem;font-weight:700;color:var(--gray-900);margin:0;
}

.kly-gdpr-card__icon {
  width:40px;height:40px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.kly-gdpr-card__icon--blue   { background:#e3f2fd;color:#1565c0; }
.kly-gdpr-card__icon--purple { background:#f3e5f5;color:#7b1fa2; }

.kly-gdpr-card__desc {
  padding:0 22px;
  font-size:.875rem;color:var(--gray-600);line-height:1.7;
  margin-bottom:20px;
}
.kly-gdpr-card__desc a { color:var(--green-700);font-weight:600; }

.kly-gdpr-card__actions {
  display:flex;flex-wrap:wrap;gap:10px;
  padding:0 22px 22px;
}

.kly-gdpr-btn {
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:10px;
  font-size:.85rem;font-weight:700;text-decoration:none;
  transition:transform .15s ease,box-shadow .2s ease,background .2s;
}
.kly-gdpr-btn:hover { transform:translateY(-2px); }

.kly-gdpr-btn--csv {
  background:#e8f5e9;color:var(--green-800);
  border:1px solid var(--green-200);
}
.kly-gdpr-btn--csv:hover { background:#c8e6c9;box-shadow:0 4px 12px rgba(46,125,50,.15); }

.kly-gdpr-btn--pdf {
  background:#e3f2fd;color:#1565c0;
  border:1px solid #bbdefb;
}
.kly-gdpr-btn--pdf:hover { background:#bbdefb;box-shadow:0 4px 12px rgba(21,101,192,.15); }

.kly-gdpr-btn--contact {
  background:#f3e5f5;color:#7b1fa2;
  border:1px solid #e1bee7;
}
.kly-gdpr-btn--contact:hover { background:#e1bee7;box-shadow:0 4px 12px rgba(123,31,162,.12); }

.kly-gdpr-btn--identity {
  background:#f4f6f9;color:var(--gray-700);
  border:1px solid #e2e8f0;
}
.kly-gdpr-btn--identity:hover { background:#e2e8f0; }

/* Droits block — spans full width */
.kly-gdpr-rights {
  grid-column:1 / -1;
  background:#fafbfc;
  border:1px solid #eaecf0;
  border-radius:14px;
  padding:20px 22px;
}
.kly-gdpr-rights__title {
  display:flex;align-items:center;gap:7px;
  font-size:.75rem;font-weight:800;text-transform:uppercase;
  letter-spacing:1px;color:#9ba3b0;margin-bottom:14px;
}
.kly-gdpr-rights__list {
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
@media(max-width:600px){
  .kly-gdpr-rights__list { grid-template-columns:1fr; }
}
.kly-gdpr-right-item {
  display:flex;align-items:flex-start;gap:10px;
  font-size:.855rem;color:var(--gray-700);line-height:1.5;
}
.kly-gdpr-right-item__dot {
  width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px;
}
.kly-gdpr-right-item__dot--blue   { background:#1565c0; }
.kly-gdpr-right-item__dot--purple { background:#7b1fa2; }
.kly-gdpr-right-item__dot--red    { background:#c62828; }
.kly-gdpr-right-item__dot--amber  { background:#f57c00; }

/* ── Animations for new pages ─────────────────── */
body#order-slip .kly-slip-card,
body#discount .kly-voucher-card {
  animation: kly-fade-up .35s ease both;
}
body#order-slip .kly-slip-card:nth-child(1)   { animation-delay:.06s; }
body#order-slip .kly-slip-card:nth-child(2)   { animation-delay:.12s; }
body#order-slip .kly-slip-card:nth-child(3)   { animation-delay:.18s; }
body#order-slip .kly-slip-card:nth-child(n+4) { animation-delay:.24s; }

body#discount .kly-voucher-card:nth-child(1)   { animation-delay:.06s; }
body#discount .kly-voucher-card:nth-child(2)   { animation-delay:.12s; }
body#discount .kly-voucher-card:nth-child(3)   { animation-delay:.18s; }
body#discount .kly-voucher-card:nth-child(n+4) { animation-delay:.24s; }

.kly-alert-card {
  animation: kly-fade-up .35s ease both;
}
.kly-alert-card:nth-child(1)   { animation-delay:.06s; }
.kly-alert-card:nth-child(2)   { animation-delay:.12s; }
.kly-alert-card:nth-child(3)   { animation-delay:.18s; }
.kly-alert-card:nth-child(n+4) { animation-delay:.24s; }

.kly-gdpr-card {
  animation: kly-scale-in .35s ease both;
}
.kly-gdpr-card:nth-child(1) { animation-delay:.06s; }
.kly-gdpr-card:nth-child(2) { animation-delay:.14s; }
.kly-gdpr-rights { animation: kly-fade-up .4s .2s ease both; }

/* ── Identity form : improved spacing ─────────── */
body#identity #customer-form .form-group {
  margin-bottom:20px;
}
body#identity #customer-form .form-group label {
  font-size:.78rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.6px;color:#7b8794;margin-bottom:6px;display:block;
}
body#identity #customer-form .form-control {
  border-radius:10px;padding:11px 14px;
  border:1.5px solid #e2e8f0;font-size:.9rem;
  transition:border-color .2s,box-shadow .2s;
}
body#identity #customer-form .form-control:focus {
  border-color:var(--green-400);
  box-shadow:0 0 0 3px rgba(76,175,80,.12);
  outline:none;
}
body#identity .kly-subpage__card {
  padding:28px 32px;
}
@media(max-width:600px){
  body#identity .kly-subpage__card { padding:20px 16px; }
}

/* Gender radio buttons */
body#identity #customer-form .radio-inline {
  display:inline-flex;align-items:center;gap:8px;
  margin-right:20px;font-size:.9rem;cursor:pointer;
}
body#identity #customer-form .custom-radio .radio-label {
  display:flex;align-items:center;gap:8px;cursor:pointer;
}

/* Submit button */
body#identity #customer-form [type="submit"],
body#identity #customer-form .form-control-submit {
  margin-top:8px;
  padding:12px 28px;
  border-radius:10px;
  background:var(--green-700);color:#fff;
  font-weight:700;font-size:.9rem;border:none;cursor:pointer;
  transition:background .2s,transform .15s;
}
body#identity #customer-form [type="submit"]:hover {
  background:var(--green-800);transform:translateY(-1px);
}



/* ================================================
   KLY — IDENTITY PAGE : FULL REDESIGN
   ================================================ */

/* Card container */
body#identity .kly-subpage--narrow { max-width:780px; }
body#identity .kly-subpage__card {
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:20px;
  padding:0;
  overflow:hidden;
  box-shadow:0 4px 24px rgba(0,0,0,.06);
}

/* ── Section blocks inside card ──────────────── */
.kly-identity-section {
  padding:28px 32px;
}
.kly-identity-section + .kly-identity-section {
  border-top:1px solid #f0f2f5;
}

.kly-identity-section-head {
  display:flex;align-items:center;gap:10px;
  margin-bottom:22px;
}
.kly-identity-section-icon {
  width:32px;height:32px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.kly-identity-section-icon--green { background:#e8f5e9;color:var(--green-700); }
.kly-identity-section-icon--blue  { background:#e3f2fd;color:#1565c0; }
.kly-identity-section-icon--amber { background:#fff8e1;color:#f57c00; }

.kly-identity-section-label {
  font-size:.72rem;font-weight:800;text-transform:uppercase;
  letter-spacing:1.1px;color:#9ba3b0;
}

/* ── Form grid layout ────────────────────────── */
body#identity #customer-form .kly-fields-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 24px;
}
body#identity #customer-form .kly-fields-grid .form-group { margin-bottom:18px; }
body#identity #customer-form .kly-fields-grid .form-group.kly-full {
  grid-column:1 / -1;
}
body#identity #customer-form .kly-fields-grid .form-group.kly-half {
  grid-column:span 1;
}

/* ── Form controls ───────────────────────────── */
body#identity #customer-form label.form-control-label {
  display:block;
  font-size:.72rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.7px;color:#8a96a3;
  margin-bottom:7px;line-height:1;
}

body#identity #customer-form .form-control {
  border:1.5px solid #e2e8f0;
  border-radius:10px;
  padding:11px 15px;
  font-size:.92rem;color:var(--gray-900);
  background:#fafbfc;
  height:auto;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
body#identity #customer-form .form-control:focus {
  border-color:var(--green-400);
  background:#fff;
  box-shadow:0 0 0 3px rgba(76,175,80,.1);
  outline:none;
}
body#identity #customer-form .form-control.is-invalid,
body#identity #customer-form .form-control:invalid:not(:placeholder-shown) {
  border-color:#ef5350;
  box-shadow:0 0 0 3px rgba(239,83,80,.08);
}

/* Help text */
body#identity #customer-form .help-block {
  font-size:.75rem;color:#b0b8c4;margin-top:5px;
  line-height:1.4;
}

/* ── Radio (Titre) ───────────────────────────── */
body#identity #customer-form .custom-radio {
  display:inline-flex;align-items:center;gap:20px;margin-top:2px;
}
body#identity #customer-form .custom-radio .radio-inline {
  display:inline-flex;align-items:center;gap:8px;
  cursor:pointer;font-size:.9rem;color:var(--gray-700);
}
body#identity #customer-form .custom-radio input[type="radio"] {
  appearance:none;-webkit-appearance:none;
  width:18px;height:18px;flex-shrink:0;
  border:2px solid #d1d9e0;border-radius:50%;
  background:#fff;cursor:pointer;
  transition:border-color .2s,background .2s;position:relative;
}
body#identity #customer-form .custom-radio input[type="radio"]:checked {
  border-color:var(--green-500);
  background:radial-gradient(circle, var(--green-500) 5px, #fff 5px);
}

/* ── Password fields ─────────────────────────── */
body#identity .field-password-policy { position:relative; }
body#identity #customer-form .input-group {
  position:relative;
  display:flex;
}
body#identity #customer-form .input-group .form-control {
  border-radius:10px;flex:1;
}
body#identity #customer-form .btn-show-password {
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;
  font-size:.72rem;font-weight:800;letter-spacing:.5px;
  color:var(--green-600);text-transform:uppercase;
  padding:4px 8px;border-radius:6px;
  transition:color .2s,background .2s;z-index:2;
}
body#identity #customer-form .btn-show-password:hover {
  color:var(--green-800);background:var(--green-50);
}

/* ── Checkboxes ──────────────────────────────── */
body#identity #customer-form .kly-check-group { grid-column:1 / -1; }

body#identity #customer-form .custom-checkbox {
  display:flex;align-items:flex-start;gap:12px;
  padding:14px 16px;
  background:#fafbfc;border:1.5px solid #eaecf0;
  border-radius:12px;cursor:pointer;
  transition:border-color .2s,background .2s;
  width:100%;box-sizing:border-box;
}
body#identity #customer-form .custom-checkbox:hover {
  border-color:var(--green-300);background:#f0faf0;
}
body#identity #customer-form .custom-checkbox input[type="checkbox"] {
  appearance:none;-webkit-appearance:none;
  width:18px;height:18px;flex-shrink:0;margin-top:2px;
  border:2px solid #d1d9e0;border-radius:5px;
  background:#fff;cursor:pointer;
  transition:border-color .2s,background .2s;position:relative;
}
body#identity #customer-form .custom-checkbox input[type="checkbox"]:checked {
  background:var(--green-600);border-color:var(--green-600);
}
body#identity #customer-form .custom-checkbox input[type="checkbox"]:checked::after {
  content:'';position:absolute;
  left:4px;top:2px;width:6px;height:9px;
  border:2px solid #fff;border-top:none;border-left:none;
  transform:rotate(40deg);
}

body#identity #customer-form .custom-checkbox label {
  font-size:.875rem;color:var(--gray-700);line-height:1.5;cursor:pointer;
  font-weight:400;text-transform:none;letter-spacing:0;
}
body#identity #customer-form .custom-checkbox label em {
  display:block;margin-top:3px;
  font-style:italic;font-size:.78rem;color:#b0b8c4;line-height:1.4;
}

/* CGV required checkbox — highlight */
body#identity #customer-form .custom-checkbox:has(input[name="psgdpr"]),
body#identity #customer-form .custom-checkbox:has([required]) {
  border-color:#bbdefb;background:#f8fbff;
}

/* ── Submit footer ───────────────────────────── */
body#identity #customer-form .form-footer {
  padding:24px 32px;
  background:#fafbfc;
  border-top:1px solid #f0f2f5;
  display:flex;justify-content:flex-end;margin:0;
}
body#identity #customer-form .form-control-submit {
  padding:13px 36px;
  border-radius:50px;
  background:linear-gradient(135deg,var(--green-700),var(--green-600));
  color:#fff;font-weight:700;font-size:.9rem;
  border:none;cursor:pointer;letter-spacing:.4px;
  box-shadow:0 4px 14px rgba(46,125,50,.3);
  transition:transform .2s,box-shadow .2s;
  float:none !important;
}
body#identity #customer-form .form-control-submit:hover {
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(46,125,50,.4);
}

/* ── Animations ──────────────────────────────── */
body#identity .kly-identity-section:nth-child(1) { animation:kly-fade-up .35s .05s ease both; }
body#identity .kly-identity-section:nth-child(2) { animation:kly-fade-up .35s .12s ease both; }
body#identity .kly-identity-section:nth-child(3) { animation:kly-fade-up .35s .19s ease both; }
body#identity .kly-identity-section:nth-child(4) { animation:kly-fade-up .35s .26s ease both; }

/* ── Responsive ──────────────────────────────── */
@media(max-width:600px){
  body#identity .kly-identity-section { padding:20px 16px; }
  body#identity #customer-form .kly-fields-grid { grid-template-columns:1fr; }
  body#identity #customer-form .kly-fields-grid .form-group.kly-half { grid-column:1/-1; }
  body#identity #customer-form .form-footer { padding:16px; }
}



/* ================================================
   KLY — FIXES BATCH
   icons white · history mobile · od2 hover ·
   wishlist dedup · order-detail euro
   ================================================ */

/* ── Icônes blanches sur fond dégradé ──────────
   teal, amber, red, orange (gradient pages)
   ──────────────────────────────────────────── */
.kly-subpage__icon--teal,
.kly-subpage__icon--amber,
.kly-subpage__icon--red {
  color: #fff !important;
}

/* Orange : upgrade vers gradient sur les pages concernées */
body#discount .kly-subpage__icon--orange,
body#order-slip .kly-subpage__icon--orange {
  background: linear-gradient(135deg,#e65100,#f57c00);
  color: #fff !important;
}

/* S'assurer que history et identity gardent leurs icônes colorées */
body#history  .kly-subpage__icon--blue  { color:#1565c0 !important; }
body#identity .kly-subpage__icon--green { color:#2e7d32 !important; }

/* ── Icône blanche sur identity / green clair ── */
/* On change la couleur de l'icône identity en blanc car fond plus foncé */
body#identity .kly-subpage__icon--green {
  background: linear-gradient(135deg,#2e7d32,#43a047);
  color: #fff !important;
}

/* ── History : statuts mobile ──────────────────
   Les badges débordent sur petits écrans
   ──────────────────────────────────────────── */
.kly-order-card__top {
  flex-wrap: wrap;
  gap: 8px;
}
.kly-order-card__status {
  white-space: nowrap;
  font-size: .72rem;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 0;
}
@media(max-width:480px) {
  .kly-order-card__status {
    font-size: .68rem;
    padding: 4px 8px;
    max-width: calc(100% - 120px);
  }
  .kly-order-card__meta {
    flex-wrap: wrap;
    gap: 8px 14px;
  }
  .kly-order-card__meta-item {
    flex-shrink: 0;
  }
  .kly-order-card__actions {
    flex-wrap: wrap;
  }
  .kly-order-card__btn {
    flex: 1;
    justify-content: center;
    min-width: 0;
    font-size: .78rem;
    padding: 8px 12px;
  }
}

/* ── Order-detail : euro badge hero ───────────── */
.kly-od2__euro-hero {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px; height: 18px;
  background: rgba(255,255,255,.2);
  border-radius: 5px;
  font-size: .82rem;
  font-weight: 800;
  flex-shrink: 0;
}

/* ── Order-detail : hover animations ──────────── */

/* Product rows */
.kly-od2 .kly-od__product {
  transition: background .2s ease, transform .2s ease;
  border-radius: 10px;
}
.kly-od2 .kly-od__product:hover {
  background: #f8faf8;
  transform: translateX(3px);
}

/* Section cards */
.kly-od2__section {
  transition: box-shadow .25s ease;
}
.kly-od2__section:hover {
  box-shadow: 0 6px 28px rgba(0,0,0,.07) !important;
}

/* Sidebar widgets */
.kly-od2__widget {
  transition: box-shadow .25s ease, border-color .25s ease;
}
.kly-od2__widget:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  border-color: var(--green-200);
}

/* Timeline steps */
.kly-od2__tl-step {
  transition: opacity .2s;
}
.kly-od2__tl-step:not(.active):hover {
  opacity: .75;
}

/* Buttons in hero */
.kly-od2__btn {
  transition: transform .15s ease, box-shadow .2s ease, background .2s !important;
}
.kly-od2__btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.15) !important;
}

/* Address blocks */
.kly-od2__addr-block {
  transition: border-color .2s ease, box-shadow .2s ease;
}
.kly-od2__addr-block:hover {
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}

/* Shipping items */
.kly-od2__shipping-item {
  transition: background .2s, border-color .2s, transform .2s;
}
.kly-od2__shipping-item:hover {
  background: #f0faf0;
  border-color: var(--green-200);
  transform: translateX(3px);
}

/* Back link */
.kly-od2__back {
  transition: gap .2s, color .2s;
}
.kly-od2__back:hover {
  gap: 8px;
  color: #fff;
}

/* ── Wishlist : masquer titre dupliqué Vue ─────── */
/* Le composant Vue re-rend "Mes listes d'envies" en h1
   dans .wishlist-list__title — on le masque car notre
   header KLY l'affiche déjà */
.wishlist-list__title,
.wishlist-container > .wishlist-header > h1,
.wishlist-header h1 {
  display: none !important;
}

/* Style the Vue-rendered container */
.wishlist-container {
  background: #fff;
  border: 1px solid #eaecf0;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 24px;
}

/* Wishlist list rows */
.wishlist-list {
  padding: 0;
}
.wishlist-list__item,
.wishlist-list-item {
  border-bottom: 1px solid #f0f2f5;
  padding: 14px 20px !important;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: background .2s;
}
.wishlist-list-item:hover {
  background: #fafbfc;
}
.wishlist-list-item:last-child {
  border-bottom: none;
}

/* Create new list button */
.wishlist-add-to-wishlist,
[data-add-text],
.wishlist-container .btn-add-wishlist {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border-radius: 50px;
  background: var(--green-700);
  color: #fff !important;
  font-weight: 700;
  font-size: .85rem;
  border: none;
  cursor: pointer;
  transition: background .2s, transform .15s;
  text-decoration: none;
}
.btn-add-wishlist:hover {
  background: var(--green-800);
  transform: translateY(-1px);
}

/* Share icon */
.wishlist-list__item .material-icons,
.wishlist-list-item .material-icons {
  font-size: 18px;
  color: #9ba3b0;
  transition: color .2s;
}
.wishlist-list-item:hover .material-icons {
  color: var(--green-600);
}

/* Wishlist header row (title + create button) from Vue */
.wishlist-container > div:first-child {
  padding: 16px 20px;
  border-bottom: 1px solid #f0f2f5;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* ── Wishlist header integration ─────────────── */
.kly-wishlist-header {
  margin-bottom: 16px !important;
}



/* ================================================
   KLY — WISHLIST PAGE : hide Vue duplicate title
   ================================================ */

/* The Vue component always renders its own page title
   — hide it since our KLY header already shows it   */
.kly-wishlist-page .wishlist-container h1,
.kly-wishlist-page .wishlist-container .wishlist-list__title,
.kly-wishlist-page .wishlist-container > div > h1 {
  display: none !important;
}

/* Wrapper */
.kly-wishlist-wrap {
  margin-bottom: 8px;
}

/* The wishlist container rendered by Vue */
.kly-wishlist-page .wishlist-container {
  background: #fff;
  border: 1px solid #eaecf0;
  border-radius: 16px;
  overflow: hidden;
  animation: kly-fade-up .4s .1s ease both;
}

/* Vue header row: title (hidden) + create button */
.kly-wishlist-page .wishlist-container > div:first-child,
.kly-wishlist-page .wishlist-header {
  padding: 14px 20px;
  border-bottom: 1px solid #f0f2f5;
  display: flex;
  align-items: center;
  justify-content: flex-end; /* push create button to right since title is hidden */
  min-height: 54px;
}

/* "Créer une nouvelle liste" link */
.kly-wishlist-page .wishlist-container a[href*="wishlist"],
.kly-wishlist-page .wishlist-create-btn,
.kly-wishlist-page .btn-create-wishlist {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .83rem;
  font-weight: 700;
  color: var(--green-700);
  text-decoration: none;
  transition: color .2s;
}
.kly-wishlist-page .wishlist-container a[href*="wishlist"]:hover {
  color: var(--green-900);
}

/* Wishlist rows */
.kly-wishlist-page .wishlist-list__item,
.kly-wishlist-page .wishlist-list-item,
.kly-wishlist-page .wishlist-item {
  padding: 14px 20px !important;
  border-bottom: 1px solid #f0f2f5;
  display: flex;
  align-items: center;
  gap: 14px;
  transition: background .2s;
}
.kly-wishlist-page .wishlist-list__item:last-child,
.kly-wishlist-page .wishlist-item:last-child {
  border-bottom: none;
}
.kly-wishlist-page .wishlist-list__item:hover,
.kly-wishlist-page .wishlist-item:hover {
  background: #fafbfc;
}

/* Material icons in wishlist → subtle */
.kly-wishlist-page .wishlist-container .material-icons {
  font-size: 18px !important;
  color: #9ba3b0;
  transition: color .2s;
  cursor: pointer;
}
.kly-wishlist-page .wishlist-container .material-icons:hover {
  color: var(--green-600);
}

/* Count badge */
.kly-wishlist-page .wishlist-list__count,
.kly-wishlist-page .wishlist-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 20px;
  background: #f0f2f7;
  color: #6b7280;
  font-size: .72rem;
  font-weight: 700;
  margin-left: 8px;
}

/* Empty state from Vue */
.kly-wishlist-page .wishlist-empty,
.kly-wishlist-page .wishlist-container .alert-info {
  padding: 40px 20px;
  text-align: center;
  color: #9ba3b0;
  font-size: .9rem;
}



/* ================================================
   KLY — IDENTITY PAGE v2 : CLEAN MINIMAL REDESIGN
   Sections verticales, champs aérés, max-width 580px
   ================================================ */

/* ── Page wrapper ─────────────────────────────── */
.kly-identity-page {
  max-width: 600px;
  margin: 0 auto;
  padding: 0 16px 48px;
}

/* ── Topbar ───────────────────────────────────── */
.kly-identity-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 12px;
}
.kly-identity-topbar__left {
  display: flex;
  align-items: center;
  gap: 14px;
}
.kly-identity-icon {
  width: 46px; height: 46px;
  border-radius: 14px;
  background: linear-gradient(135deg,#2e7d32,#43a047);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.kly-identity-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--gray-900);
  margin: 0 0 3px;
  letter-spacing: -.3px;
}
.kly-identity-sub {
  font-size: .82rem;
  color: #9ba3b0;
  margin: 0;
}
.kly-identity-back {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .83rem;
  font-weight: 600;
  color: var(--green-700);
  text-decoration: none;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1.5px solid var(--green-200);
  transition: background .2s, border-color .2s;
}
.kly-identity-back:hover {
  background: var(--green-50);
  border-color: var(--green-400);
}

/* ── Body card ────────────────────────────────── */
.kly-identity-body {
  background: #fff;
  border: 1px solid #eaecf0;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 2px 20px rgba(0,0,0,.05);
}

/* ── Sections ─────────────────────────────────── */
.kly-ident-section {
  padding: 28px 28px 24px;
}
.kly-ident-section + .kly-ident-section {
  border-top: 1px solid #f4f5f7;
}

.kly-ident-section__head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 24px;
}
.kly-ident-section__icon {
  width: 30px; height: 30px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.kly-ident-section--green .kly-ident-section__icon { background:#e8f5e9; color:#2e7d32; }
.kly-ident-section--blue  .kly-ident-section__icon { background:#e3f2fd; color:#1565c0; }
.kly-ident-section--amber .kly-ident-section__icon { background:#fff8e1; color:#f57c00; }

.kly-ident-section__label {
  font-size: .7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  color: #b0b8c4;
}

/* ── Fields layout ────────────────────────────── */
.kly-ident-section__fields {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Fields: remove Bootstrap's default margin */
.kly-identity-body #customer-form .form-group {
  margin-bottom: 0 !important;
}

/* ── Firstname / Lastname duo row ──────────────── */
.kly-ident-name-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media(max-width:480px) {
  .kly-ident-name-row { grid-template-columns: 1fr; }
}

/* ── Labels ───────────────────────────────────── */
.kly-identity-body #customer-form label.form-control-label {
  display: block;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .7px;
  color: #a0aab4;
  margin-bottom: 7px;
  line-height: 1;
}

/* ── Inputs ───────────────────────────────────── */
.kly-identity-body #customer-form .form-control {
  display: block;
  width: 100%;
  box-sizing: border-box;
  border: 1.5px solid #e8eaed;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: .92rem;
  color: var(--gray-900);
  background: #fff;
  height: auto;
  transition: border-color .2s, box-shadow .2s;
  -webkit-appearance: none;
}
.kly-identity-body #customer-form .form-control:hover {
  border-color: #d0d5dd;
}
.kly-identity-body #customer-form .form-control:focus {
  border-color: var(--green-500);
  box-shadow: 0 0 0 3px rgba(76,175,80,.12);
  outline: none;
}

/* Help text — below input, subtle */
.kly-identity-body #customer-form .help-block,
.kly-identity-body #customer-form .form-text {
  display: block;
  font-size: .74rem;
  color: #b8c0cc;
  margin-top: 5px;
  line-height: 1.5;
}

/* ── Gender radios ────────────────────────────── */
.kly-identity-body #customer-form .custom-radio {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.kly-identity-body #customer-form .custom-radio .radio-inline {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: .9rem;
  color: var(--gray-700);
  padding: 9px 16px;
  border: 1.5px solid #e8eaed;
  border-radius: 8px;
  transition: border-color .2s, background .2s;
  flex: 1;
  min-width: 80px;
  justify-content: center;
}
.kly-identity-body #customer-form .custom-radio .radio-inline:has(input:checked) {
  border-color: var(--green-400);
  background: #f0faf0;
}
.kly-identity-body #customer-form .custom-radio input[type="radio"] {
  appearance: none; -webkit-appearance: none;
  width: 16px; height: 16px; flex-shrink: 0;
  border: 2px solid #d0d8e4; border-radius: 50%;
  transition: border-color .2s, background .2s;
  position: relative;
}
.kly-identity-body #customer-form .custom-radio input[type="radio"]:checked {
  border-color: var(--green-500);
  background: radial-gradient(circle, var(--green-500) 4px, #fff 4px);
}

/* ── Password fields ──────────────────────────── */
.kly-identity-body .field-password-policy,
.kly-identity-body #customer-form .input-group {
  position: relative;
  display: flex;
  align-items: stretch;
}
.kly-identity-body #customer-form .input-group .form-control {
  padding-right: 80px;
}
.kly-identity-body #customer-form .btn-show-password {
  position: absolute;
  right: 12px; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer;
  font-size: .7rem; font-weight: 800;
  letter-spacing: .4px;
  color: var(--green-700);
  text-transform: uppercase;
  padding: 4px 8px; border-radius: 6px;
  transition: background .2s;
  z-index: 2;
}
.kly-identity-body #customer-form .btn-show-password:hover {
  background: #f0faf0;
}

/* ── Checkboxes ───────────────────────────────── */
.kly-identity-body #customer-form .kly-ident-check-wrap .custom-checkbox,
.kly-identity-body #customer-form .custom-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border: 1.5px solid #eaecf0;
  border-radius: 12px;
  background: #fafbfc;
  transition: border-color .2s, background .2s;
  cursor: pointer;
  width: 100%;
  box-sizing: border-box;
}
.kly-identity-body #customer-form .custom-checkbox:hover {
  border-color: var(--green-300);
  background: #f5fdf5;
}
.kly-identity-body #customer-form .custom-checkbox input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px;
  border: 2px solid #d0d8e4; border-radius: 5px;
  background: #fff; cursor: pointer;
  transition: border-color .2s, background .2s;
  position: relative;
}
.kly-identity-body #customer-form .custom-checkbox input[type="checkbox"]:checked {
  background: var(--green-600);
  border-color: var(--green-600);
}
.kly-identity-body #customer-form .custom-checkbox input[type="checkbox"]:checked::after {
  content: '';
  position: absolute; left: 4px; top: 1px;
  width: 6px; height: 10px;
  border: 2px solid #fff; border-top: none; border-left: none;
  transform: rotate(42deg);
}
.kly-identity-body #customer-form .custom-checkbox label {
  font-size: .875rem;
  color: var(--gray-700);
  line-height: 1.55;
  cursor: pointer;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  margin: 0;
}
.kly-identity-body #customer-form .custom-checkbox label em {
  display: block;
  margin-top: 4px;
  font-style: italic;
  font-size: .78rem;
  color: #b0b8c4;
  line-height: 1.45;
}

/* ── Submit footer ────────────────────────────── */
.kly-identity-body #customer-form .form-footer {
  padding: 20px 28px 24px;
  background: #fafbfc;
  border-top: 1px solid #f4f5f7;
  display: flex;
  justify-content: flex-end;
  margin: 0;
  float: none;
  overflow: visible;
}
.kly-identity-body #customer-form .form-control-submit {
  padding: 13px 36px;
  border-radius: 50px;
  background: linear-gradient(135deg,var(--green-700),var(--green-600));
  color: #fff;
  font-weight: 700;
  font-size: .9rem;
  border: none;
  cursor: pointer;
  letter-spacing: .3px;
  box-shadow: 0 4px 14px rgba(46,125,50,.3);
  transition: transform .2s, box-shadow .2s;
  float: none !important;
}
.kly-identity-body #customer-form .form-control-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(46,125,50,.4);
}

/* ── Animations ───────────────────────────────── */
.kly-identity-topbar { animation: kly-fade-up .35s ease both; }
.kly-ident-section:nth-child(1) { animation: kly-fade-up .38s .06s ease both; }
.kly-ident-section:nth-child(2) { animation: kly-fade-up .38s .12s ease both; }
.kly-ident-section:nth-child(3) { animation: kly-fade-up .38s .18s ease both; }

/* ── Mobile ───────────────────────────────────── */
@media(max-width:600px) {
  .kly-identity-page { padding: 0 12px 32px; }
  .kly-ident-section { padding: 22px 18px 20px; }
  .kly-identity-topbar { margin-bottom: 20px; }
  .kly-identity-body #customer-form .form-footer { padding: 16px 18px 20px; }
  .kly-identity-body #customer-form .form-control-submit { width:100%; justify-content:center; }
  .kly-identity-topbar__left { gap: 10px; }
  .kly-identity-title { font-size: 1.05rem; }
}



/* ================================================
   KLY — IDENTITY v3 : hero + form aéré, no card box
   + FOOTER sticky fix
   + WISHLIST Vue class styling
   ================================================ */

/* ── FOOTER STICKY (toutes les pages) ─────────── */
body > main {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
body > main > section#wrapper {
  flex: 1;
}

/* ── IDENTITY PAGE ──────────────────────────────── */

/* Reset previous identity CSS to avoid conflicts */
body#identity .kly-subpage--narrow,
body#identity .kly-subpage__card,
body#identity .kly-subpage__header,
body#identity .kly-identity-page,
body#identity .kly-identity-body { all: unset; display: block; }

body#identity .kly-ident {
  max-width: 580px;
  margin: 0 auto;
  padding-bottom: 48px;
}

/* ── Hero ─────────────────────────────────────── */
.kly-ident__hero {
  background: linear-gradient(135deg, #0d3311 0%, #1b5e20 55%, #2e7d32 100%);
  border-radius: 20px;
  padding: 28px 28px 32px;
  margin-bottom: 28px;
  position: relative;
  overflow: hidden;
}
.kly-ident__hero-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.kly-ident__hero-orb--a {
  width: 160px; height: 160px;
  background: radial-gradient(circle, rgba(255,255,255,.07) 0%, transparent 70%);
  top: -40px; right: -20px;
}
.kly-ident__hero-orb--b {
  width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,255,255,.05) 0%, transparent 70%);
  bottom: -20px; left: 10%;
}
.kly-ident__hero-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: relative;
  z-index: 1;
}
.kly-ident__hero-left {
  display: flex;
  align-items: center;
  gap: 16px;
}
.kly-ident__avatar {
  width: 52px; height: 52px;
  border-radius: 14px;
  background: rgba(255,255,255,.15);
  border: 2px solid rgba(255,255,255,.25);
  color: #fff;
  font-size: 1.1rem;
  font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  letter-spacing: 1px;
}
.kly-ident__hero-title {
  color: #fff;
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 3px;
  letter-spacing: -.2px;
}
.kly-ident__hero-sub {
  color: rgba(255,255,255,.65);
  font-size: .82rem;
  margin: 0;
}
.kly-ident__back {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .8rem;
  font-weight: 600;
  color: rgba(255,255,255,.8);
  text-decoration: none;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.25);
  white-space: nowrap;
  transition: background .2s, color .2s;
  flex-shrink: 0;
}
.kly-ident__back:hover {
  background: rgba(255,255,255,.12);
  color: #fff;
}

/* ── Form wrap — no box, open layout ─────────── */
.kly-ident__form-wrap {
  padding: 0;
}
.kly-ident__form-wrap #customer-form > div {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Section dividers ─────────────────────────── */
.kly-ident__divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 28px 0 20px;
}
.kly-ident__divider:first-child { margin-top: 0; }

.kly-ident__divider-icon {
  width: 28px; height: 28px;
  border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.kly-ident__divider--green .kly-ident__divider-icon { background: #e8f5e9; color: #2e7d32; }
.kly-ident__divider--blue  .kly-ident__divider-icon { background: #e3f2fd; color: #1565c0; }
.kly-ident__divider--amber .kly-ident__divider-icon { background: #fff8e1; color: #f57c00; }

.kly-ident__divider-label {
  font-size: .7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  white-space: nowrap;
}
.kly-ident__divider--green .kly-ident__divider-label { color: #2e7d32; }
.kly-ident__divider--blue  .kly-ident__divider-label { color: #1565c0; }
.kly-ident__divider--amber .kly-ident__divider-label { color: #f57c00; }

.kly-ident__divider-line {
  flex: 1;
  height: 1px;
  background: #eaecf0;
}

/* ── Name duo row ─────────────────────────────── */
.kly-ident__name-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
@media(max-width: 480px) {
  .kly-ident__name-row { grid-template-columns: 1fr; }
}

/* ── Form groups ──────────────────────────────── */
body#identity #customer-form .form-group {
  margin-bottom: 18px !important;
}
body#identity .kly-ident__name-row .form-group {
  margin-bottom: 0 !important;
}

/* Labels */
body#identity #customer-form label.form-control-label {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: #9ba3b0;
  margin-bottom: 7px;
}

/* Inputs */
body#identity #customer-form .form-control {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 15px;
  border: 1.5px solid #e2e8f0;
  border-radius: 10px;
  font-size: .92rem;
  color: #1a202c;
  background: #fff;
  height: auto;
  -webkit-appearance: none;
  transition: border-color .2s, box-shadow .2s;
}
body#identity #customer-form .form-control:hover { border-color: #c8d0dc; }
body#identity #customer-form .form-control:focus {
  border-color: var(--green-500);
  box-shadow: 0 0 0 3px rgba(76,175,80,.12);
  outline: none;
}

/* Help text */
body#identity #customer-form .help-block {
  display: block;
  font-size: .74rem;
  color: #c0c8d4;
  margin-top: 4px;
  line-height: 1.4;
}

/* ── Gender radios — pill style ───────────────── */
body#identity #customer-form .custom-radio {
  display: flex;
  gap: 10px;
}
body#identity #customer-form .custom-radio .radio-inline {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px;
  border: 1.5px solid #e2e8f0;
  border-radius: 9px;
  cursor: pointer;
  font-size: .9rem;
  color: #4a5568;
  transition: border-color .2s, background .2s;
}
body#identity #customer-form .custom-radio .radio-inline:has(input:checked) {
  border-color: var(--green-400);
  background: #f0faf0;
  color: var(--green-800);
  font-weight: 600;
}
body#identity #customer-form .custom-radio input[type="radio"] {
  appearance: none; -webkit-appearance: none;
  width: 15px; height: 15px;
  border: 2px solid #d0d8e4; border-radius: 50%;
  transition: border-color .2s, background .2s;
  position: relative; flex-shrink: 0;
}
body#identity #customer-form .custom-radio input[type="radio"]:checked {
  border-color: var(--green-500);
  background: radial-gradient(circle, var(--green-500) 4px, #fff 4px);
}

/* ── Password — btn show ──────────────────────── */
body#identity #customer-form .input-group {
  position: relative; display: flex;
}
body#identity #customer-form .input-group .form-control { padding-right: 80px; }
body#identity #customer-form .btn-show-password {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer;
  font-size: .68rem; font-weight: 800; letter-spacing: .4px;
  color: var(--green-700); text-transform: uppercase;
  padding: 4px 8px; border-radius: 6px;
  transition: background .2s; z-index: 2;
}
body#identity #customer-form .btn-show-password:hover { background: #f0faf0; }

/* ── Checkboxes ───────────────────────────────── */
body#identity #customer-form .custom-checkbox {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 16px;
  border: 1.5px solid #eaecf0;
  border-radius: 12px;
  background: #fafbfc;
  cursor: pointer;
  width: 100%; box-sizing: border-box;
  transition: border-color .2s, background .2s;
}
body#identity #customer-form .custom-checkbox:hover {
  border-color: var(--green-300); background: #f5fdf5;
}
body#identity #customer-form .custom-checkbox input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px;
  border: 2px solid #d0d8e4; border-radius: 5px;
  background: #fff; cursor: pointer;
  transition: border-color .2s, background .2s; position: relative;
}
body#identity #customer-form .custom-checkbox input[type="checkbox"]:checked {
  background: var(--green-600); border-color: var(--green-600);
}
body#identity #customer-form .custom-checkbox input[type="checkbox"]:checked::after {
  content: ''; position: absolute; left: 4px; top: 1px;
  width: 6px; height: 10px;
  border: 2px solid #fff; border-top: none; border-left: none;
  transform: rotate(42deg);
}
body#identity #customer-form .custom-checkbox label {
  font-size: .875rem; color: #4a5568; line-height: 1.55;
  cursor: pointer; font-weight: 400;
  text-transform: none; letter-spacing: 0; margin: 0;
}
body#identity #customer-form .custom-checkbox label em {
  display: block; margin-top: 3px;
  font-style: italic; font-size: .78rem; color: #b0b8c4; line-height: 1.4;
}

/* ── Submit ───────────────────────────────────── */
body#identity #customer-form .form-footer {
  display: flex; justify-content: flex-end;
  padding-top: 24px; margin-top: 8px;
  border-top: 1px solid #eaecf0;
  float: none; overflow: visible;
}
body#identity #customer-form .form-control-submit {
  padding: 13px 40px;
  border-radius: 50px;
  background: linear-gradient(135deg, var(--green-700), var(--green-500));
  color: #fff; font-weight: 700; font-size: .9rem;
  border: none; cursor: pointer; letter-spacing: .3px;
  box-shadow: 0 4px 16px rgba(46,125,50,.3);
  transition: transform .2s, box-shadow .2s;
  float: none !important;
}
body#identity #customer-form .form-control-submit:hover {
  transform: translateY(-2px); box-shadow: 0 6px 22px rgba(46,125,50,.4);
}

/* ── Identity animations ──────────────────────── */
body#identity .kly-ident__hero { animation: kly-fade-up .35s ease both; }
body#identity .kly-ident__form-wrap { animation: kly-fade-up .4s .1s ease both; }

/* ── Mobile ───────────────────────────────────── */
@media(max-width: 600px) {
  body#identity .kly-ident { padding-bottom: 32px; }
  .kly-ident__hero { padding: 20px 18px 24px; border-radius: 16px; }
  .kly-ident__hero-title { font-size: .95rem; }
  .kly-ident__hero-inner { flex-wrap: wrap; gap: 12px; }
  body#identity #customer-form .form-control-submit { width: 100%; justify-content: center; }
}

/* ══════════════════════════════════════════════
   WISHLIST — Vue component class overrides
   ══════════════════════════════════════════════ */

/* Container-header: title + "Créer" button */
.kly-wishlist-page .wishlist-container-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #f0f2f5;
  min-height: 56px;
}
.kly-wishlist-page .wishlist-container-header h1,
.kly-wishlist-page .wishlist-container-header h2 {
  display: none !important; /* hidden: KLY header already shows the title */
}

/* "Créer une nouvelle liste" Vue button */
.kly-wishlist-page .wishlist-add-to-new {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .84rem;
  font-weight: 700;
  color: var(--green-700) !important;
  text-decoration: none;
  padding: 8px 16px;
  border-radius: 50px;
  border: 1.5px solid var(--green-200);
  background: #f0faf0;
  transition: background .2s, border-color .2s, transform .15s;
  margin-left: auto;
}
.kly-wishlist-page .wishlist-add-to-new:hover {
  background: var(--green-50);
  border-color: var(--green-400);
  transform: translateY(-1px);
}

/* List of wishlists */
.kly-wishlist-page .wishlist-list {
  list-style: none;
  margin: 0; padding: 0;
}

/* Each wishlist row */
.kly-wishlist-page .wishlist-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #f4f5f7;
  transition: background .2s;
  gap: 12px;
}
.kly-wishlist-page .wishlist-list-item:last-child { border-bottom: none; }
.kly-wishlist-page .wishlist-list-item:hover { background: #fafbfc; }

/* Wishlist link + title */
.kly-wishlist-page .wishlist-list-item-link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex: 1;
  min-width: 0;
}

/* Heart icon before title */
.kly-wishlist-page .wishlist-list-item-link::before {
  content: '';
  width: 36px; height: 36px; flex-shrink: 0;
  border-radius: 10px;
  background: #fdecea url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23e53935' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E") center/18px no-repeat;
}
.kly-wishlist-page .wishlist-list-item-default .wishlist-list-item-link::before {
  /* default list gets heart filled */
  background: #fdecea url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%23e53935' stroke='%23e53935' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E") center/18px no-repeat;
}

.kly-wishlist-page .wishlist-list-item-title {
  font-size: .95rem;
  font-weight: 700;
  color: var(--gray-900);
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Count badge */
.kly-wishlist-page .wishlist-list-item-title span,
.kly-wishlist-page .wishlist-list-item-count {
  font-size: .72rem;
  font-weight: 700;
  background: #f0f2f7;
  color: #6b7280;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: 600;
}

/* Right actions (share/rename/delete) */
.kly-wishlist-page .wishlist-list-item-right {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.kly-wishlist-page .wishlist-list-item-right button,
.kly-wishlist-page .wishlist-list-item-right .dropdown-toggle {
  background: none; border: none; cursor: pointer;
  width: 34px; height: 34px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  color: #b0b8c4;
  transition: color .2s, background .2s;
}
.kly-wishlist-page .wishlist-list-item-right button:hover {
  color: var(--green-600); background: #f0faf0;
}
.kly-wishlist-page .wishlist-list-item-right .material-icons {
  font-size: 18px !important;
}

/* Empty state */
.kly-wishlist-page .wishlist-list-empty {
  padding: 48px 20px;
  text-align: center;
  color: #b0b8c4;
}
.kly-wishlist-page .wishlist-list-empty::before {
  content: '';
  display: block; margin: 0 auto 16px;
  width: 56px; height: 56px;
  border-radius: 16px;
  background: #fdecea url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%23e53935' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E") center/28px no-repeat;
}

/* Dropdown menu (share/rename actions) */
.kly-wishlist-page .wishlist-list-item-right .dropdown-menu {
  border-radius: 12px;
  border: 1px solid #eaecf0;
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
  padding: 6px;
  min-width: 150px;
}
.kly-wishlist-page .wishlist-list-item-right .dropdown-menu button {
  width: 100%; border-radius: 8px; justify-content: flex-start;
  padding: 0 12px; height: 36px; font-size: .85rem; font-weight: 500;
  color: var(--gray-700);
}
.kly-wishlist-page .wishlist-list-item-right .dropdown-menu button:hover {
  background: #f4f6f9; color: var(--gray-900);
}



/* ================================================
   KLY — IDENTITY STEPPER v4
   ================================================ */

/* Reset all previous identity overrides */
body#identity .kly-subpage--narrow,
body#identity .kly-subpage__card,
body#identity .kly-subpage__header,
body#identity .kly-identity-page,
body#identity .kly-identity-body,
body#identity .kly-ident { display: none !important; }

/* Page bg */
body#identity { background: #f5f6f8 !important; }

/* ── Wrapper ─────────────────────────────────── */
body#identity #content-wrapper { padding: 0 !important; }

.kly-idform {
  max-width: 700px;
  margin: 0 auto;
  padding: 24px 16px 56px;
}

/* ── Hero ────────────────────────────────────── */
.kly-idform__hero {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, #0d3311 0%, #1b5e20 55%, #2e7d32 100%);
  border-radius: 18px;
  padding: 20px 22px;
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
.kly-idform__hero::before {
  content: '';
  position: absolute;
  width: 140px; height: 140px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.08) 0%, transparent 70%);
  top: -30px; right: -10px;
  pointer-events: none;
}
.kly-idform__hero-avatar {
  width: 46px; height: 46px;
  border-radius: 12px;
  background: rgba(255,255,255,.18);
  border: 1.5px solid rgba(255,255,255,.3);
  color: #fff;
  font-size: 1rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; letter-spacing: .5px;
}
.kly-idform__hero-text { flex: 1; }
.kly-idform__hero-text h1 {
  color: #fff; font-size: 1rem; font-weight: 700; margin: 0 0 2px;
}
.kly-idform__hero-text p {
  color: rgba(255,255,255,.6); font-size: .8rem; margin: 0;
}
.kly-idform__hero-back {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: .78rem; font-weight: 600;
  color: rgba(255,255,255,.8); text-decoration: none;
  padding: 6px 13px; border-radius: 8px;
  border: 1px solid rgba(255,255,255,.25);
  white-space: nowrap; flex-shrink: 0;
  transition: background .2s;
}
.kly-idform__hero-back:hover { background: rgba(255,255,255,.12); color: #fff; }

/* ── Steps nav ───────────────────────────────── */
.kly-idform__steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 20px;
  background: #fff;
  border: 1px solid #eaecf0;
  border-radius: 14px;
  padding: 6px;
}
.kly-idform__step {
  flex: 1;
  display: flex; align-items: center; justify-content: center;
  gap: 8px;
  padding: 10px 6px;
  border: none; background: none; cursor: pointer;
  border-radius: 10px;
  transition: background .2s;
  font-size: .83rem; font-weight: 600;
  color: #9ba3b0;
}
.kly-idform__step:hover { background: #f4f6f9; color: var(--gray-700); }
.kly-idform__step--active {
  background: var(--green-700) !important;
  color: #fff !important;
}
.kly-idform__step--done { color: var(--green-600); }
.kly-idform__step--done .kly-idform__step-num {
  background: var(--green-100); color: var(--green-700);
}

.kly-idform__step-num {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #f0f2f7;
  color: #9ba3b0;
  font-size: .72rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.kly-idform__step--active .kly-idform__step-num {
  background: rgba(255,255,255,.25);
  color: #fff;
}

.kly-idform__step-sep {
  width: 1px; height: 20px;
  background: #eaecf0;
  flex-shrink: 0;
}

/* ── Card ────────────────────────────────────── */
.kly-idform__card {
  background: #fff;
  border: 1px solid #eaecf0;
  border-radius: 16px;
  overflow: hidden;
}

/* ── Form fields ─────────────────────────────── */
.kly-idform__card #customer-form > div {
  padding: 24px 24px 8px;
}

/* Kill Bootstrap grid */
.kly-idform__card #customer-form [class*="col-"] {
  width: 100% !important; max-width: 100% !important;
  flex: 0 0 100% !important; padding: 0 !important;
}
.kly-idform__card #customer-form .row {
  flex-wrap: wrap !important; margin: 0 !important;
}

/* Field groups spacing */
.kly-idform__card #customer-form .kly-idform__group {
  margin-bottom: 18px !important;
}

/* Labels */
.kly-idform__card #customer-form label.form-control-label {
  display: block;
  font-size: .72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .6px;
  color: #9ba3b0; margin-bottom: 7px;
}

/* Inputs */
.kly-idform__card #customer-form .form-control {
  display: block; width: 100%; box-sizing: border-box;
  padding: 12px 14px;
  border: 1.5px solid #e8eaed; border-radius: 10px;
  font-size: .9rem; color: #1a202c;
  background: #fff; height: auto;
  -webkit-appearance: none;
  transition: border-color .2s, box-shadow .2s;
}
.kly-idform__card #customer-form .form-control:hover { border-color: #c8d0dc; }
.kly-idform__card #customer-form .form-control:focus {
  border-color: var(--green-500);
  box-shadow: 0 0 0 3px rgba(76,175,80,.1);
  outline: none;
}

/* Help text */
.kly-idform__card #customer-form .help-block {
  display: block; font-size: .73rem; color: #c0c8d4;
  margin-top: 4px; line-height: 1.4;
}

/* Gender radio pills */
.kly-idform__card #customer-form .custom-radio {
  display: flex; gap: 10px;
}
.kly-idform__card #customer-form .custom-radio .radio-inline {
  flex: 1; display: flex; align-items: center; justify-content: center;
  gap: 7px; padding: 10px;
  border: 1.5px solid #e2e8f0; border-radius: 9px;
  cursor: pointer; font-size: .88rem; color: #4a5568;
  transition: border-color .2s, background .2s;
}
.kly-idform__card #customer-form .custom-radio input[type="radio"] {
  appearance: none; -webkit-appearance: none;
  width: 15px; height: 15px; border: 2px solid #d0d8e4;
  border-radius: 50%; position: relative;
  transition: border-color .2s, background .2s;
}
.kly-idform__card #customer-form .custom-radio input[type="radio"]:checked {
  border-color: var(--green-500);
  background: radial-gradient(circle, var(--green-500) 4px, #fff 4px);
}
.kly-idform__card #customer-form .custom-radio .radio-inline:has(input:checked) {
  border-color: var(--green-400); background: #f0faf0;
  font-weight: 600; color: var(--green-800);
}

/* Password show button */
.kly-idform__card #customer-form .input-group { position: relative; display: flex; }
.kly-idform__card #customer-form .input-group .form-control { padding-right: 80px; }
.kly-idform__card #customer-form .btn-show-password {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: none; border: none; cursor: pointer;
  font-size: .68rem; font-weight: 800; letter-spacing: .4px;
  color: var(--green-700); text-transform: uppercase;
  padding: 4px 8px; border-radius: 6px; z-index: 2;
  transition: background .2s;
}
.kly-idform__card #customer-form .btn-show-password:hover { background: #f0faf0; }

/* Checkboxes */
.kly-idform__card #customer-form .custom-checkbox {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 13px 14px;
  border: 1.5px solid #eaecf0; border-radius: 11px;
  background: #fafbfc; cursor: pointer;
  width: 100%; box-sizing: border-box;
  transition: border-color .2s, background .2s;
}
.kly-idform__card #customer-form .custom-checkbox:hover {
  border-color: var(--green-300); background: #f5fdf5;
}
.kly-idform__card #customer-form .custom-checkbox input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px;
  border: 2px solid #d0d8e4; border-radius: 5px;
  background: #fff; cursor: pointer; position: relative;
  transition: border-color .2s, background .2s;
}
.kly-idform__card #customer-form .custom-checkbox input[type="checkbox"]:checked {
  background: var(--green-600); border-color: var(--green-600);
}
.kly-idform__card #customer-form .custom-checkbox input[type="checkbox"]:checked::after {
  content: ''; position: absolute; left: 4px; top: 1px;
  width: 6px; height: 10px;
  border: 2px solid #fff; border-top: none; border-left: none;
  transform: rotate(42deg);
}
.kly-idform__card #customer-form .custom-checkbox label {
  font-size: .875rem; color: #4a5568; line-height: 1.55;
  cursor: pointer; font-weight: 400;
  text-transform: none; letter-spacing: 0; margin: 0;
}
.kly-idform__card #customer-form .custom-checkbox label em {
  display: block; margin-top: 3px;
  font-style: italic; font-size: .77rem; color: #b0b8c4; line-height: 1.4;
}

/* ── Footer / Nav ────────────────────────────── */
.kly-idform__card #customer-form .form-footer {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 16px 24px 20px;
  border-top: 1px solid #f0f2f5;
  margin: 8px 0 0; float: none; overflow: visible;
}

.kly-idform__nav {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 11px 20px; border-radius: 10px; cursor: pointer;
  font-size: .87rem; font-weight: 700; border: none;
  transition: background .2s, transform .15s;
}
.kly-idform__nav--prev {
  background: #f0f2f7; color: var(--gray-700);
}
.kly-idform__nav--prev:hover { background: #e2e8f0; transform: translateX(-2px); }
.kly-idform__nav--next {
  background: var(--green-700); color: #fff;
  box-shadow: 0 4px 14px rgba(46,125,50,.25);
}
.kly-idform__nav--next:hover { background: var(--green-800); transform: translateX(2px); }

.kly-idform__card #customer-form .form-control-submit {
  padding: 11px 32px; border-radius: 50px;
  background: linear-gradient(135deg, var(--green-700), var(--green-500));
  color: #fff; font-weight: 700; font-size: .9rem;
  border: none; cursor: pointer; letter-spacing: .3px;
  box-shadow: 0 4px 14px rgba(46,125,50,.3);
  transition: transform .2s, box-shadow .2s; float: none !important;
}
.kly-idform__card #customer-form .form-control-submit:hover {
  transform: translateY(-2px); box-shadow: 0 6px 20px rgba(46,125,50,.4);
}

/* ── Step transition ─────────────────────────── */
.kly-idform__group { transition: opacity .2s; }

/* ── Animations ──────────────────────────────── */
.kly-idform__hero  { animation: kly-fade-up .3s ease both; }
.kly-idform__steps { animation: kly-fade-up .32s .06s ease both; }
.kly-idform__card  { animation: kly-fade-up .34s .12s ease both; }

/* ── Mobile ──────────────────────────────────── */
@media(max-width: 500px) {
  .kly-idform__step-lbl { display: none; }
  .kly-idform__step-sep { display: none; }
  .kly-idform__card #customer-form > div { padding: 18px 16px 6px; }
  .kly-idform__card #customer-form .form-footer { padding: 14px 16px 18px; }
}



/* ================================================
   KLY — FOND ANIMÉ PARTAGÉ — toutes pages client
   Identique à my-account mais appliqué globalement
   ================================================ */

/* Pages ciblées */
body#history, body#identity, body#order-detail,
body#order-slip, body#discount, body#addresses,
body#address, body#password, body#order-follow,
body#module-ps_emailalerts-account,
body#module-blockwishlist-lists,
body#module-psgdpr-gdpr {
  background: #f4f6f8 !important;
  position: relative;
}

/* Fixed bg layer */
.kly-customer-bg {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

/* Gradient mesh */
.kly-customer-bg__mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 50% at 10% 10%, rgba(102,187,106,.12) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 90% 90%, rgba(27,94,32,.08)    0%, transparent 55%),
    radial-gradient(ellipse 45% 45% at 50% 50%, rgba(200,230,201,.14)  0%, transparent 65%);
}

/* Animated blobs */
.kly-customer-bg__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  animation: blob-drift 10s ease-in-out infinite alternate;
}
.kly-customer-bg__blob--a {
  width: 420px; height: 420px;
  background: rgba(102,187,106,.1);
  top: -80px; left: -60px;
  animation-duration: 11s;
}
.kly-customer-bg__blob--b {
  width: 320px; height: 320px;
  background: rgba(46,125,50,.08);
  bottom: -60px; right: -40px;
  animation-duration: 14s;
  animation-delay: -4s;
}
.kly-customer-bg__blob--c {
  width: 220px; height: 220px;
  background: rgba(200,230,201,.18);
  top: 40%; left: 55%;
  animation-duration: 9s;
  animation-delay: -2s;
}

/* Dot grid */
.kly-customer-bg__grid {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(46,125,50,.07) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 20%, transparent 100%);
}

/* Content above bg */
.kly-customer-content,
.kly-customer-content > * {
  position: relative;
  z-index: 1;
}

/* Ensure subpage content sits above bg */
.kly-subpage,
.kly-od2,
.kly-idform,
.kly-ident,
.kly-identity-page,
.kly-wishlist-page,
.kly-gdpr-page {
  position: relative;
  z-index: 1;
}

/* ── Mobile: reduce blob sizes ─────────────────── */
@media(max-width: 768px) {
  .kly-customer-bg__blob--a { width: 240px; height: 240px; }
  .kly-customer-bg__blob--b { width: 180px; height: 180px; }
  .kly-customer-bg__blob--c { display: none; }
}



/* ================================================
   KLY — FOND ANIMÉ : COUCHE DE TRANSPARENCE
   Supprime les fonds blancs des wrappers Bootstrap
   pour laisser apparaître le fond fixe
   ================================================ */

/* Pages customer ciblées */
body#history,
body#identity,
body#order-detail,
body#order-slip,
body#discount,
body#addresses,
body#address,
body#password,
body#order-follow,
body#module-ps_emailalerts-account,
body#module-blockwishlist-lists,
body#module-psgdpr-gdpr {
  background: #f2f4f6 !important;
}

/* Wrappers Bootstrap → transparents */
body#history         #wrapper,
body#identity        #wrapper,
body#order-detail    #wrapper,
body#order-slip      #wrapper,
body#discount        #wrapper,
body#addresses       #wrapper,
body#address         #wrapper,
body#password        #wrapper,
body#order-follow    #wrapper,
body#module-ps_emailalerts-account #wrapper,
body#module-blockwishlist-lists    #wrapper,
body#module-psgdpr-gdpr            #wrapper {
  background: transparent !important;
}

body#history         #content-wrapper,
body#identity        #content-wrapper,
body#order-detail    #content-wrapper,
body#order-slip      #content-wrapper,
body#discount        #content-wrapper,
body#addresses       #content-wrapper,
body#address         #content-wrapper,
body#password        #content-wrapper,
body#order-follow    #content-wrapper,
body#module-ps_emailalerts-account #content-wrapper,
body#module-blockwishlist-lists    #content-wrapper,
body#module-psgdpr-gdpr            #content-wrapper {
  background: transparent !important;
}

body#history         #content,
body#identity        #content,
body#order-detail    #content,
body#order-slip      #content,
body#discount        #content,
body#addresses       #content,
body#address         #content,
body#password        #content,
body#order-follow    #content,
body#module-ps_emailalerts-account #content,
body#module-blockwishlist-lists    #content,
body#module-psgdpr-gdpr            #content {
  background: transparent !important;
}

/* ── Fond fixe — identique à my-account ─────────
   Réécrit proprement, même comportement exact
   ──────────────────────────────────────────────── */
.kly-customer-bg {
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  z-index: 0 !important;
  overflow: hidden;
}

.kly-customer-bg__mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 50% at 15% 15%, rgba(102,187,106,.15) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 85% 85%, rgba(27,94,32,.10)    0%, transparent 55%),
    radial-gradient(ellipse 45% 45% at 50% 50%, rgba(200,230,201,.18)  0%, transparent 65%);
}

.kly-customer-bg__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  animation: blob-drift 10s ease-in-out infinite alternate;
}
.kly-customer-bg__blob--a {
  width: 500px; height: 500px;
  background: rgba(102,187,106,.13);
  top: -100px; left: -80px;
  animation-duration: 11s;
}
.kly-customer-bg__blob--b {
  width: 380px; height: 380px;
  background: rgba(46,125,50,.10);
  bottom: -80px; right: -60px;
  animation-duration: 14s;
  animation-delay: -4s;
}
.kly-customer-bg__blob--c {
  width: 260px; height: 260px;
  background: rgba(200,230,201,.22);
  top: 35%; left: 50%;
  animation-duration: 9s;
  animation-delay: -2s;
}

.kly-customer-bg__grid {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(46,125,50,.08) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: radial-gradient(ellipse 75% 75% at 50% 50%, black 20%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 75% 75% at 50% 50%, black 20%, transparent 100%);
}

/* ── Contenu au-dessus du fond ─────────────────── */
.kly-customer-content {
  position: relative !important;
  z-index: 1 !important;
  background: transparent !important;
}

/* Tous les wrappers de contenu au-dessus */
.kly-subpage,
.kly-od2,
.kly-idform,
.kly-slips,
.kly-vouchers,
.kly-alert-list,
.kly-gdpr-grid,
.kly-wishlist-page {
  position: relative;
  z-index: 1;
}

/* Les cards/sections internes restent blanches */
.kly-subpage__card,
.kly-od2__section,
.kly-od2__widget,
.kly-od2__addresses,
.kly-slip-card,
.kly-voucher-card,
.kly-alert-card,
.kly-gdpr-card,
.kly-gdpr-rights,
.kly-idform__card,
.kly-wishlist-wrap .wishlist-container,
.kly-order-card {
  background: #fff;
}

/* ── Mobile ────────────────────────────────────── */
@media(max-width: 768px) {
  .kly-customer-bg__blob--a { width: 280px; height: 280px; top: -40px; left: -40px; }
  .kly-customer-bg__blob--b { width: 200px; height: 200px; }
  .kly-customer-bg__blob--c { display: none; }
}



/* ================================================
   KLY — FOND ANIMÉ : FINALISATION
   ================================================ */

/* Supprimer le doublon sur my-account
   (il a déjà son propre .kly-account__bg) */
body#my-account .kly-customer-bg { display: none !important; }

/* ── Neutraliser les fonds blancs du thème base ──
   Le thème classic applique des bg sur ces éléments
   ──────────────────────────────────────────────── */
body#history         section#wrapper,
body#identity        section#wrapper,
body#order-detail    section#wrapper,
body#order-slip      section#wrapper,
body#discount        section#wrapper,
body#addresses       section#wrapper,
body#address         section#wrapper,
body#password        section#wrapper,
body#order-follow    section#wrapper,
body#module-ps_emailalerts-account section#wrapper,
body#module-blockwishlist-lists    section#wrapper,
body#module-psgdpr-gdpr            section#wrapper {
  background: transparent !important;
}

/* Le container Bootstrap intérieur */
body#history         section#wrapper > .container,
body#identity        section#wrapper > .container,
body#order-detail    section#wrapper > .container,
body#order-slip      section#wrapper > .container,
body#discount        section#wrapper > .container,
body#addresses       section#wrapper > .container,
body#address         section#wrapper > .container,
body#password        section#wrapper > .container,
body#order-follow    section#wrapper > .container,
body#module-ps_emailalerts-account section#wrapper > .container,
body#module-blockwishlist-lists    section#wrapper > .container,
body#module-psgdpr-gdpr            section#wrapper > .container {
  background: transparent !important;
}

/* Le row Bootstrap */
body#history         section#wrapper .row,
body#identity        section#wrapper .row,
body#order-detail    section#wrapper .row,
body#order-slip      section#wrapper .row,
body#discount        section#wrapper .row,
body#addresses       section#wrapper .row,
body#address         section#wrapper .row,
body#password        section#wrapper .row,
body#order-follow    section#wrapper .row,
body#module-ps_emailalerts-account section#wrapper .row,
body#module-blockwishlist-lists    section#wrapper .row,
body#module-psgdpr-gdpr            section#wrapper .row {
  background: transparent !important;
}

/* Le content-wrapper (colonne Bootstrap) */
body#history         #content-wrapper,
body#identity        #content-wrapper,
body#order-detail    #content-wrapper,
body#order-slip      #content-wrapper,
body#discount        #content-wrapper,
body#addresses       #content-wrapper,
body#address         #content-wrapper,
body#password        #content-wrapper,
body#order-follow    #content-wrapper,
body#module-ps_emailalerts-account #content-wrapper,
body#module-blockwishlist-lists    #content-wrapper,
body#module-psgdpr-gdpr            #content-wrapper {
  background: transparent !important;
}

/* La section #content elle-même */
body#history         #content,
body#identity        #content,
body#order-detail    #content,
body#order-slip      #content,
body#discount        #content,
body#addresses       #content,
body#address         #content,
body#password        #content,
body#order-follow    #content,
body#module-ps_emailalerts-account #content,
body#module-blockwishlist-lists    #content,
body#module-psgdpr-gdpr            #content {
  background: transparent !important;
  position: relative;
  z-index: 1;
}

/* Le kly-customer-bg toujours SOUS le contenu */
.kly-customer-bg { z-index: 0 !important; }

/* ── Assurer que les pages non-customer
   ne reçoivent pas le bg  ───────────────────────
   (le bg est dans customer/page.tpl donc
    seules les pages qui l'étendent le reçoivent — OK)
   ──────────────────────────────────────────────── */

/* ── Breadcrumb transparent sur ces pages ──────── */
body#history         .breadcrumb-wrapper,
body#identity        .breadcrumb-wrapper,
body#order-detail    .breadcrumb-wrapper,
body#order-slip      .breadcrumb-wrapper,
body#discount        .breadcrumb-wrapper,
body#addresses       .breadcrumb-wrapper,
body#address         .breadcrumb-wrapper,
body#password        .breadcrumb-wrapper,
body#module-ps_emailalerts-account .breadcrumb-wrapper,
body#module-blockwishlist-lists    .breadcrumb-wrapper,
body#module-psgdpr-gdpr            .breadcrumb-wrapper {
  background: transparent !important;
  position: relative;
  z-index: 1;
}

/* ── Notifications au-dessus du fond ───────────── */
.kly-customer-content .notifications-container,
.kly-customer-content .alert {
  position: relative;
  z-index: 2;
}


/* ================================================
   KLY — PAGE SHELL (fond animé toutes pages client)
   Réutilise .kly-account__bg déjà défini
   ================================================ */

/* Shell wrapper : fond + contenu empilés */
.kly-page-shell {
  position: relative;
  background: #f4f6f8;
}

/* Tout enfant direct sauf le bg passe au-dessus */
.kly-page-shell > *:not(.kly-account__bg) {
  position: relative;
  z-index: 1;
}

/* Supprimer les anciennes classes bg customer (devenues inutiles) */
.kly-customer-bg { display: none !important; }

/* Neutraliser les fonds blancs Bootstrap sur les pages customer */
body#history         section#wrapper,
body#identity        section#wrapper,
body#order-detail    section#wrapper,
body#order-slip      section#wrapper,
body#discount        section#wrapper,
body#addresses       section#wrapper,
body#address         section#wrapper,
body#order-follow    section#wrapper,
body#module-ps_emailalerts-account section#wrapper,
body#module-blockwishlist-lists    section#wrapper,
body#module-psgdpr-gdpr            section#wrapper {
  background: transparent !important;
}

body#history         .kly-page-shell,
body#identity        .kly-page-shell,
body#order-detail    .kly-page-shell,
body#order-slip      .kly-page-shell,
body#discount        .kly-page-shell,
body#addresses       .kly-page-shell,
body#address         .kly-page-shell,
body#order-follow    .kly-page-shell,
body#module-ps_emailalerts-account .kly-page-shell,
body#module-blockwishlist-lists    .kly-page-shell,
body#module-psgdpr-gdpr            .kly-page-shell {
  background: #f4f6f8;
}

/* ============================================================
   KLY — CART PAGE (v2 — Modern & Clean)
   ============================================================ */

body#cart {
  background: linear-gradient(160deg, #f0f2f5 0%, #e8edf3 100%);
  min-height: 100vh;
}

/* ── Layout ── */
.kly-cart {
  max-width: 1140px;
  margin: 0 auto;
  padding: 40px 24px 80px;
}

.kly-cart__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 36px;
}

.kly-cart__header-icon {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #1a1a2e 0%, #2d2b55 100%);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(26,26,46,.2);
}

.kly-cart__header-icon svg { display: block; }

.kly-cart__title {
  font-size: 1.75rem;
  font-weight: 800;
  color: #1a1a2e;
  margin: 0;
  letter-spacing: -.02em;
}

.kly-cart__count {
  font-size: 0.82rem;
  color: #9ca3af;
  font-weight: 500;
}

.kly-cart__grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 28px;
  align-items: start;
}

/* ── Products column ── */
.kly-cart__products {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06);
  overflow: hidden;
}

.kly-cart__products-head {
  display: none; /* Clean look — no column headers */
}

/* PS AJAX wrappers — reset */
.kly-cart__products .cart-overview { background: none; border: none; padding: 0; margin: 0; }
.kly-cart__products .cart-items { list-style: none; margin: 0; padding: 0; }
.kly-cart__products .cart-item { border: none; padding: 0; margin: 0; }

/* Aside */
.kly-cart__aside { display: flex; flex-direction: column; gap: 20px; }

/* Hide default PS reassurance (non-customized) */
.kly-cart__reassurance { display: none; }

/* ── Product item ── */
.kly-cart-item {
  display: grid;
  grid-template-columns: 100px 1fr auto auto 36px;
  gap: 16px;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid #f3f4f6;
  transition: background .2s ease;
}

.kly-cart-item:last-child { border-bottom: none; }
.kly-cart-item:hover { background: #fafbfd; }

.kly-cart-item__img {
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 14px;
  overflow: hidden;
  background: #f8f9fb;
  flex-shrink: 0;
  border: 1px solid #f0f1f3;
  transition: transform .2s ease, box-shadow .2s ease;
}

.kly-cart-item:hover .kly-cart-item__img {
  transform: scale(1.03);
  box-shadow: 0 4px 16px rgba(0,0,0,.08);
}

.kly-cart-item__img img,
.kly-cart-item__img picture { width: 100%; height: 100%; object-fit: cover; display: block; }

.kly-cart-item__info { min-width: 0; padding-right: 8px; }

.kly-cart-item__name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 0.92rem;
  font-weight: 600;
  color: #1a1a2e;
  text-decoration: none;
  margin-bottom: 6px;
  line-height: 1.4;
  transition: color .15s;
}

.kly-cart-item__name:hover { color: #4f46e5; }

.kly-cart-item__attr {
  display: inline-block;
  font-size: 0.75rem;
  color: #6b7280;
  background: #f3f4f6;
  border-radius: 4px;
  padding: 2px 8px;
  margin: 0 4px 4px 0;
}

.kly-cart-item__attr-key { font-weight: 600; color: #9ca3af; }

.kly-cart-item__unit {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.kly-cart-item__regular-price {
  font-size: 0.78rem;
  color: #b0b5bf;
  text-decoration: line-through;
}

.kly-cart-item__badge {
  font-size: 0.68rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #ef4444, #dc2626);
  border-radius: 5px;
  padding: 2px 6px;
  letter-spacing: .02em;
}

.kly-cart-item__price {
  font-size: 0.88rem;
  font-weight: 700;
  color: #1a1a2e;
}

/* ── Qty ── */
.kly-cart-item__qty-wrap { display: flex; justify-content: center; }

.kly-cart-item__qty-ctrl {
  display: flex;
  align-items: center;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  overflow: hidden;
  background: #f9fafb;
  transition: border-color .15s;
}

.kly-cart-item__qty-ctrl:focus-within { border-color: #a5b4fc; }

.kly-cart-item__qty-input {
  width: 48px;
  height: 38px;
  border: none;
  background: transparent;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 700;
  color: #1a1a2e;
  outline: none;
  -moz-appearance: textfield;
}

.kly-cart-item__qty-input::-webkit-outer-spin-button,
.kly-cart-item__qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

.kly-cart-item__gift-qty {
  font-size: 0.9rem;
  font-weight: 600;
  color: #6b7280;
  text-align: center;
  display: block;
  width: 48px;
}

/* ── Subtotal ── */
.kly-cart-item__subtotal {
  font-size: 1.05rem;
  font-weight: 800;
  color: #1a1a2e;
  text-align: right;
  white-space: nowrap;
  letter-spacing: -.01em;
}

.kly-cart-item__gift-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #059669;
  background: linear-gradient(135deg, #d1fae5, #a7f3d0);
  border-radius: 6px;
  padding: 3px 10px;
}

/* ── Remove ── */
.kly-cart-item__actions {
  display: flex;
  justify-content: center;
  align-items: center;
}

.kly-cart-item__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  color: #c4c9d1;
  transition: all .2s ease;
  text-decoration: none;
}

.kly-cart-item__remove:hover {
  color: #ef4444;
  background: #fef2f2;
  transform: scale(1.1);
}

/* Customization link */
.kly-cart-item__custom-link {
  grid-column: 2 / 5;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  color: #4f46e5;
  text-decoration: none;
  margin-top: 4px;
}

.kly-cart-item__custom-link:hover { text-decoration: underline; }

/* ── Summary sidebar ── */
.kly-cart__summary {
  position: sticky;
  top: 24px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.8);
}

.kly-cart__summary-head {
  padding: 20px 24px;
  background: linear-gradient(135deg, #1a1a2e 0%, #2d2b55 100%);
  font-size: 0.95rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: .01em;
}

.kly-cart__summary-body { padding: 24px; }

/* ── Totals ── */
.kly-cart-totals__lines { margin-bottom: 16px; }

.kly-cart-totals__line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 0.875rem;
  color: #374151;
  padding: 7px 0;
}

.kly-cart-totals__label { color: #9ca3af; font-weight: 500; }

.kly-cart-totals__value { font-weight: 600; }

.kly-cart-totals__discount { color: #059669; font-weight: 700; }

.kly-cart-totals__line--total {
  border-top: none;
  margin-top: 12px;
  padding: 16px;
  background: linear-gradient(135deg, #f0fdf4, #ecfdf5);
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a2e;
}

.kly-cart-totals__line--total strong {
  font-size: 1.35rem;
  font-weight: 800;
  color: #059669;
  letter-spacing: -.02em;
}

.kly-cart-totals__line--ht { font-size: 0.8rem; color: #9ca3af; }

.kly-cart-totals__line--tax {
  font-size: 0.78rem;
  color: #9ca3af;
  padding: 6px 0 0;
}

.kly-cart-totals__shipping-detail {
  width: 100%;
  font-size: 0.75rem;
  color: #9ca3af;
  padding-top: 2px;
}

/* ── Promo ── */
.kly-cart-promo {
  margin-top: 20px;
  border-top: 1px solid #f3f4f6;
  padding-top: 20px;
}

.kly-cart-promo__list {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.kly-cart-promo__tag {
  display: flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #f0fdf4, #ecfdf5);
  border: 1px solid #bbf7d0;
  border-radius: 10px;
  padding: 8px 12px;
  font-size: 0.82rem;
  color: #166534;
}

.kly-cart-promo__tag svg { flex-shrink: 0; color: #16a34a; }
.kly-cart-promo__tag .label { flex: 1; font-weight: 600; }
.kly-cart-promo__tag-value { font-weight: 700; }

.kly-cart-promo__remove {
  display: flex;
  align-items: center;
  color: #86efac;
  text-decoration: none;
  margin-left: 4px;
  transition: color .15s;
}

.kly-cart-promo__remove:hover { color: #ef4444; }

.kly-cart-promo__toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #6366f1;
  text-decoration: none;
  padding: 6px 0;
  transition: color .15s;
}

.kly-cart-promo__toggle-btn:hover { color: #4338ca; }

.kly-cart-promo__form { padding: 12px 0 0; }

.kly-cart-promo__input-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.kly-cart-promo__input {
  flex: 1;
  height: 42px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  padding: 0 14px;
  font-size: 0.85rem;
  color: #1a1a2e;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}

.kly-cart-promo__input:focus {
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.1);
}

.kly-cart-promo__submit {
  height: 42px;
  padding: 0 18px;
  background: linear-gradient(135deg, #1a1a2e, #2d2b55);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s, box-shadow .15s;
  white-space: nowrap;
}

.kly-cart-promo__submit:hover {
  opacity: .9;
  box-shadow: 0 2px 10px rgba(26,26,46,.2);
}

.kly-cart-promo__error {
  margin-top: 10px;
  font-size: 0.82rem;
  padding: 10px 14px;
  border-radius: 10px;
}

.kly-cart-promo__cancel {
  display: inline-block;
  margin-top: 8px;
  font-size: 0.8rem;
  color: #9ca3af;
  text-decoration: none;
  cursor: pointer;
}

.kly-cart-promo__cancel:hover { color: #374151; }

.kly-cart-promo__discounts {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.kly-cart-promo__discount-line {
  display: flex;
  gap: 8px;
  font-size: 0.8rem;
  color: #6b7280;
}

.kly-cart-promo__discount-code { font-weight: 700; color: #6366f1; }

/* ── Actions ── */
.kly-cart-actions { margin-top: 20px; }

.kly-cart-actions__min-warning {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: #92400e;
  background: #fef3c7;
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 14px;
}

.kly-cart-actions__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  height: 52px;
  background: linear-gradient(135deg, #059669 0%, #047857 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 14px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: transform .15s, box-shadow .2s;
  box-shadow: 0 4px 20px rgba(5,150,105,.3);
  letter-spacing: .01em;
}

.kly-cart-actions__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 28px rgba(5,150,105,.4);
  color: #fff;
}

.kly-cart-actions__btn:active { transform: translateY(0); }

.kly-cart-actions__btn--disabled {
  background: #e5e7eb;
  color: #9ca3af;
  cursor: not-allowed;
  box-shadow: none;
}

.kly-cart-actions__btn--disabled:hover {
  transform: none;
  box-shadow: none;
}

/* ── Secure badge under CTA ── */
.kly-cart-actions__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 10px;
  font-size: 0.75rem;
  color: #9ca3af;
}

.kly-cart-actions__secure svg { color: #16a34a; }

/* ── Empty state ── */
.kly-cart__empty {
  text-align: center;
  padding: 100px 24px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06);
}

.kly-cart__empty-icon {
  width: 88px;
  height: 88px;
  background: linear-gradient(135deg, #f3f4f6, #e5e7eb);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  color: #9ca3af;
}

.kly-cart__empty h2 {
  font-size: 1.3rem;
  font-weight: 800;
  color: #1a1a2e;
  margin: 0 0 8px;
  letter-spacing: -.01em;
}

.kly-cart__empty p {
  font-size: 0.9rem;
  color: #6b7280;
  margin: 0 0 28px;
}

.kly-cart__empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  background: linear-gradient(135deg, #1a1a2e 0%, #2d2b55 100%);
  color: #fff;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  transition: transform .15s, box-shadow .2s;
  box-shadow: 0 4px 16px rgba(26,26,46,.2);
}

.kly-cart__empty-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(26,26,46,.3);
  color: #fff;
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .kly-cart__grid { grid-template-columns: 1fr; }
  .kly-cart__summary { position: static; }
}

@media (max-width: 600px) {
  .kly-cart { padding: 20px 14px 48px; }
  .kly-cart__title { font-size: 1.3rem; }
  .kly-cart__header-icon { width: 40px; height: 40px; border-radius: 10px; }

  .kly-cart-item {
    grid-template-columns: 80px 1fr 36px;
    grid-template-rows: auto auto;
    gap: 10px;
    padding: 16px;
  }

  .kly-cart-item__img { width: 80px; height: 80px; border-radius: 12px; }
  .kly-cart-item__info { grid-column: 2; grid-row: 1; }

  .kly-cart-item__qty-wrap {
    grid-column: 1 / 2;
    grid-row: 2;
    justify-content: flex-start;
  }

  .kly-cart-item__subtotal {
    grid-column: 2;
    grid-row: 2;
    text-align: right;
    font-size: 1rem;
  }

  .kly-cart-item__actions {
    grid-column: 3;
    grid-row: 1;
    align-self: start;
  }
}

/* ============================================================
   KLY — CHECKOUT PAGE
   ============================================================ */

body#checkout {
  background: linear-gradient(160deg, #f0f2f5 0%, #e8edf3 100%) !important;
  min-height: 100vh;
}

/* ── Checkout header — forcer notre navbar custom ── */
body#checkout .header-nav {
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
  border-bottom: none !important;
}
body#checkout #header { display: block !important; }
body#checkout .topbar { display: flex !important; }
body#checkout .navbar { display: block !important; position: sticky !important; top: 0 !important; z-index: 1000 !important; background: #fff !important; }
body#checkout .navbar__inner { display: flex !important; align-items: center !important; }
body#checkout .navbar__actions { display: flex !important; align-items: center !important; gap: 10px !important; }
body#checkout #wrapper { padding-top: 0 !important; }

/* ── Layout ── */
.kly-checkout {
  max-width: 1160px;
  margin: 0 auto;
  padding: 32px 24px 80px;
}

.kly-checkout__grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 28px;
  align-items: start;
}

.kly-checkout__main { min-width: 0; }

.kly-checkout__aside {
  position: sticky;
  top: 24px;
}

/* ── Progress bar (visual only — injected by JS) ── */
.kly-checkout__progress {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 32px;
  padding: 0 40px;
}

.kly-checkout__progress-step {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #b0b5bf;
  white-space: nowrap;
  transition: color .2s;
}

.kly-checkout__progress-step.--active { color: #1a1a2e; }
.kly-checkout__progress-step.--done { color: #059669; }

.kly-checkout__progress-num {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 700;
  background: #e5e7eb;
  color: #9ca3af;
  transition: all .2s;
  flex-shrink: 0;
}

.kly-checkout__progress-step.--active .kly-checkout__progress-num {
  background: linear-gradient(135deg, #1a1a2e, #2d2b55);
  color: #fff;
  box-shadow: 0 2px 10px rgba(26,26,46,.25);
}

.kly-checkout__progress-step.--done .kly-checkout__progress-num {
  background: #059669;
  color: #fff;
}

.kly-checkout__progress-line {
  flex: 1;
  height: 2px;
  background: #e5e7eb;
  margin: 0 12px;
  border-radius: 2px;
  transition: background .2s;
}

.kly-checkout__progress-line.--done { background: #059669; }

/* ── Checkout step sections ── */
.checkout-step {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06);
  margin-bottom: 20px;
  overflow: hidden;
  border: 2px solid transparent;
  transition: border-color .2s, box-shadow .2s;
}

.checkout-step.-current {
  border-color: rgba(26,26,46,.08);
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 12px 40px rgba(0,0,0,.08);
}

.checkout-step.-complete {
  opacity: 1;
}

.checkout-step:not(.-current):not(.-reachable) {
  opacity: .5;
}

/* ── Step title ── */
.checkout-step .step-title {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a2e;
  cursor: pointer;
  border-bottom: 1px solid transparent;
  transition: background .15s;
  background: transparent;
  letter-spacing: -.01em;
}

.checkout-step.-current .step-title {
  border-bottom-color: #f3f4f6;
  background: linear-gradient(135deg, #fafbfc, #f8f9fb);
}

.checkout-step .step-title:hover {
  background: #fafbfc;
}

/* Step number circle */
.checkout-step .step-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #e5e7eb;
  color: #6b7280;
  font-size: 0.82rem;
  font-weight: 700;
  flex-shrink: 0;
  transition: all .2s;
}

.checkout-step.-current .step-number {
  background: linear-gradient(135deg, #1a1a2e, #2d2b55);
  color: #fff;
  box-shadow: 0 2px 10px rgba(26,26,46,.2);
}

.checkout-step.-complete .step-number {
  background: #059669;
  color: #fff;
}

/* Done icon */
.checkout-step .step-title .done {
  display: none;
  color: #059669;
  font-size: 20px;
}

.checkout-step.-complete .step-title .done { display: inline-flex; }
.checkout-step.-complete .step-number { display: none; }

/* Edit button */
.checkout-step .step-edit {
  margin-left: auto;
  font-size: 0.78rem;
  font-weight: 600;
  color: #6366f1;
  display: none;
  align-items: center;
  gap: 4px;
}

.checkout-step.-complete.-reachable .step-edit { display: inline-flex; }

.checkout-step .step-edit .edit {
  font-size: 16px;
  color: #6366f1;
}

/* ── Step content ── */
.checkout-step .content {
  padding: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height .3s ease, padding .3s ease;
}

.checkout-step.-current .content {
  padding: 24px;
  max-height: none;
  overflow: visible;
}

/* ── Forms inside steps ── */
.checkout-step .form-group {
  margin-bottom: 16px;
}

.checkout-step .form-group label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
  display: block;
}

.checkout-step .form-group .form-control,
.checkout-step .form-group select,
.checkout-step .form-group input[type="text"],
.checkout-step .form-group input[type="email"],
.checkout-step .form-group input[type="tel"],
.checkout-step .form-group input[type="password"] {
  height: 44px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  padding: 0 14px;
  font-size: 0.88rem;
  color: #1a1a2e;
  background: #f9fafb;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
  width: 100%;
}

.checkout-step .form-group .form-control:focus,
.checkout-step .form-group select:focus,
.checkout-step .form-group input:focus {
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.1);
  background: #fff;
}

.checkout-step .form-group select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239ca3af' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}

.checkout-step textarea.form-control {
  height: auto;
  min-height: 80px;
  padding: 12px 14px;
  resize: vertical;
}

/* ── Continue / Submit buttons ── */
.checkout-step .continue,
.checkout-step .btn-primary,
.checkout-step button[type="submit"],
.checkout-step [name="confirm-addresses"],
.checkout-step [name="confirmDeliveryOption"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  padding: 0 32px;
  background: linear-gradient(135deg, #1a1a2e 0%, #2d2b55 100%) !important;
  color: #fff !important;
  font-size: 0.9rem;
  font-weight: 700;
  border-radius: 12px !important;
  border: none !important;
  cursor: pointer;
  transition: transform .15s, box-shadow .2s;
  box-shadow: 0 4px 16px rgba(26,26,46,.2);
  text-transform: none !important;
  letter-spacing: 0;
  margin-top: 8px;
}

.checkout-step .continue:hover,
.checkout-step .btn-primary:hover,
.checkout-step button[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(26,26,46,.3);
}

/* ── Address cards ── */
.checkout-step .address-item {
  border: 1.5px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px 20px;
  margin-bottom: 12px;
  transition: border-color .2s, box-shadow .2s;
  background: #fff;
}

.checkout-step .address-item.selected,
.checkout-step .address-item:has(input:checked) {
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.1);
  background: #f8f7ff;
}

.checkout-step .address-item .address {
  font-size: 0.85rem;
  color: #374151;
  line-height: 1.6;
}

.checkout-step .address-item .address-alias {
  font-weight: 700;
  color: #1a1a2e;
  font-size: 0.9rem;
  margin-bottom: 4px;
}

/* ── Shipping methods ── */
.checkout-step .delivery-option {
  border: 1.5px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px 20px;
  margin-bottom: 12px;
  transition: border-color .2s, box-shadow .2s;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 12px;
}

.checkout-step .delivery-option:has(input:checked),
.checkout-step .delivery-option.selected {
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.1);
  background: #f8f7ff;
}

.checkout-step .delivery-option .carrier-name {
  font-weight: 700;
  color: #1a1a2e;
  font-size: 0.88rem;
}

.checkout-step .delivery-option .carrier-delay {
  font-size: 0.78rem;
  color: #6b7280;
}

.checkout-step .delivery-option .carrier-price {
  margin-left: auto;
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a1a2e;
}

/* ── Payment methods ── */
.checkout-step .payment-option {
  border: 1.5px solid #e5e7eb;
  border-radius: 14px;
  padding: 16px 20px;
  margin-bottom: 12px;
  transition: border-color .2s, box-shadow .2s;
  background: #fff;
}

.checkout-step .payment-option:has(input:checked) {
  border-color: #6366f1;
  box-shadow: 0 0 0 3px rgba(99,102,241,.1);
  background: #f8f7ff;
}

.checkout-step .payment-option label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 600;
  color: #1a1a2e;
  cursor: pointer;
}

.checkout-step .payment-option img {
  max-height: 28px;
  border-radius: 4px;
}

/* Payment confirm button */
#payment-confirmation button,
#payment-confirmation .btn {
  width: 100%;
  height: 52px;
  background: linear-gradient(135deg, #059669 0%, #047857 100%) !important;
  color: #fff !important;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 14px !important;
  border: none !important;
  cursor: pointer;
  transition: transform .15s, box-shadow .2s;
  box-shadow: 0 4px 20px rgba(5,150,105,.3);
}

#payment-confirmation button:hover,
#payment-confirmation .btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 28px rgba(5,150,105,.4);
}

/* ── Conditions / checkboxes ── */
.checkout-step .custom-checkbox {
  margin-bottom: 12px;
}

.checkout-step .custom-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  accent-color: #6366f1;
}

/* ── Cart summary sidebar ── */
body#checkout #js-checkout-summary {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06);
  border: none;
  overflow: hidden;
}

body#checkout #js-checkout-summary .card-block {
  padding: 20px 24px;
}

body#checkout #js-checkout-summary .card-block h1,
body#checkout .cart-summary-top {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f3f4f6;
}

/* Summary product lines */
body#checkout .cart-summary-product-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

body#checkout .cart-summary-product-list .media {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid #f9fafb;
}

body#checkout .cart-summary-product-list .media:last-child { border-bottom: none; }

body#checkout .cart-summary-product-list .media-left img {
  width: 52px;
  height: 52px;
  border-radius: 10px;
  object-fit: cover;
  border: 1px solid #f0f1f3;
}

body#checkout .cart-summary-product-list .media-body {
  flex: 1;
  min-width: 0;
  font-size: 0.82rem;
  color: #374151;
  font-weight: 500;
}

body#checkout .cart-summary-product-list .media-body .product-name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

body#checkout .cart-summary-product-list .product-price {
  font-weight: 700;
  color: #1a1a2e;
  font-size: 0.85rem;
  white-space: nowrap;
}

body#checkout .cart-summary-product-list .product-quantity {
  font-size: 0.75rem;
  color: #9ca3af;
}

/* Summary subtotals */
body#checkout .cart-summary-line {
  display: flex;
  justify-content: space-between;
  padding: 6px 24px;
  font-size: 0.85rem;
  color: #6b7280;
}

body#checkout .cart-summary-line .value {
  font-weight: 600;
  color: #374151;
}

body#checkout .cart-summary-line.cart-total {
  padding: 14px 24px;
  margin-top: 8px;
  background: linear-gradient(135deg, #f0fdf4, #ecfdf5);
  font-size: 1rem;
  font-weight: 700;
  color: #1a1a2e;
}

body#checkout .cart-summary-line.cart-total .value {
  font-size: 1.2rem;
  font-weight: 800;
  color: #059669;
}

/* Hide PS reassurance in checkout */
body#checkout .kly-checkout__aside > [class*="block-reassurance"],
body#checkout .kly-checkout__aside > .blockreassurance {
  display: none;
}

/* ── Custom radio inputs ── */
.checkout-step input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: #6366f1;
  flex-shrink: 0;
}

/* ── Alert styles ── */
.checkout-step .alert {
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 0.85rem;
}

/* ── Responsive ── */
@media (max-width: 960px) {
  .kly-checkout__grid { grid-template-columns: 1fr; }
  .kly-checkout__aside { position: static; }
  .kly-checkout__progress { padding: 0 10px; }
}

@media (max-width: 600px) {
  .kly-checkout { padding: 16px 12px 48px; }
  .checkout-step .step-title { padding: 16px 16px; font-size: 0.9rem; }
  .checkout-step.-current .content { padding: 16px; }
  .kly-checkout__progress-step span:not(.kly-checkout__progress-num) { display: none; }
}

/* ================================================
   CATALOGUE PAGE
   ================================================ */

/* Reset links on catalogue page */
#catalogue a,
#catalogue a:visited{color:inherit;text-decoration:none}

/* Hero */
.cat-hero{position:relative;padding:80px 0 60px;background:linear-gradient(135deg,#0a1f0d 0%,var(--green-800) 50%,#1a4a2e 100%);color:var(--white);overflow:hidden}
.cat-hero__mesh{position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 400"><defs><radialGradient id="a" cx="50%25" cy="50%25"><stop offset="0" stop-color="%2366bb6a" stop-opacity=".1"/><stop offset="1" stop-color="%2366bb6a" stop-opacity="0"/></radialGradient></defs><circle cx="200" cy="300" r="300" fill="url(%23a)"/><circle cx="1200" cy="100" r="250" fill="url(%23a)"/></svg>') center/cover;pointer-events:none}
.cat-hero__inner{position:relative;max-width:720px}
.cat-hero__breadcrumb{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:rgba(255,255,255,.6);margin-bottom:24px}
.cat-hero__breadcrumb a{color:rgba(255,255,255,.6)!important;text-decoration:none;transition:var(--transition)}
.cat-hero__breadcrumb a:hover{color:var(--white)!important}
.cat-hero__title{font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1.15;letter-spacing:-.02em;margin-bottom:16px;color:var(--white)}
.cat-hero__subtitle{font-size:1.125rem;color:rgba(255,255,255,.7);line-height:1.7;margin-bottom:32px}
.cat-hero__stats{display:flex;gap:32px;flex-wrap:wrap}
.cat-hero__stat{display:flex;flex-direction:column}
.cat-hero__stat strong{font-size:1.5rem;font-weight:800;color:var(--green-400)}
.cat-hero__stat span{font-size:.75rem;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}

/* Category cards */
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:48px}
.cat-card{background:var(--white);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--gray-200);transition:var(--transition);display:flex;flex-direction:column}
.cat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}

.cat-card__visual{position:relative;aspect-ratio:21/9;overflow:hidden;display:block}
.cat-card__bg{position:absolute;inset:0;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.cat-card:hover .cat-card__bg{transform:scale(1.05)}
.cat-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,rgba(0,0,0,.1) 60%,rgba(0,0,0,0) 100%)}
.cat-card__visual-content{position:absolute;bottom:0;left:0;right:0;padding:24px;display:flex;align-items:center;justify-content:space-between;z-index:2}
.cat-card__icon{width:48px;height:48px;background:rgba(255,255,255,.15);backdrop-filter:blur(8px);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--white);transition:var(--transition)}
.cat-card:hover .cat-card__icon{background:rgba(255,255,255,.25);transform:translateY(-2px)}
.cat-card__icon .material-icons-outlined{font-size:24px}
.cat-card__count{font-size:.8125rem;font-weight:600;color:var(--white);background:rgba(255,255,255,.15);backdrop-filter:blur(8px);padding:6px 14px;border-radius:var(--radius-full)}

.cat-card__body{padding:28px;display:flex;flex-direction:column;flex:1}
.cat-card__title-link{text-decoration:none!important;color:inherit!important;display:block}
.cat-card__title-link:hover .cat-card__title{color:var(--green-700)}
.cat-card__title{font-size:1.375rem;font-weight:800;color:var(--gray-900);margin-bottom:10px;transition:var(--transition)}
.cat-card__desc{font-size:.9rem;color:var(--gray-600);line-height:1.7;margin-bottom:16px}
.cat-card__body>.btn{margin-top:auto;width:fit-content}

/* Subcategory pills */
.cat-pills{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 4px}
.cat-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-full);border:1px solid var(--gray-200);background:var(--white);text-decoration:none!important;color:inherit!important;transition:var(--transition)}
.cat-pill:visited{color:inherit!important}
.cat-pill:hover{border-color:var(--green-400);background:var(--green-50);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.cat-pill__name{font-size:.8125rem;font-weight:600;color:var(--gray-800)!important;white-space:nowrap}
.cat-pill__count{font-size:.6875rem;font-weight:700;color:var(--green-700);background:var(--green-50);padding:2px 8px;border-radius:var(--radius-full);min-width:20px;text-align:center}
.cat-pill:hover .cat-pill__count{background:var(--green-100)}

/* Advantages bar */
.cat-advantages{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:48px}
.cat-advantage{display:flex;gap:16px;align-items:flex-start;padding:24px;background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-200);transition:var(--transition)}
.cat-advantage:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.cat-advantage .material-icons-outlined{font-size:28px;color:var(--green-700);flex-shrink:0;margin-top:2px}
.cat-advantage strong{font-size:.9375rem;font-weight:700;color:var(--gray-900);display:block;margin-bottom:4px}
.cat-advantage p{font-size:.8125rem;color:var(--gray-600);line-height:1.6;margin:0}

/* ── Catalogue responsive ── */
@media(max-width:1024px){
  .cat-grid{grid-template-columns:1fr}
  .cat-advantages{grid-template-columns:repeat(2,1fr)}
  .cat-card__visual{aspect-ratio:2.5/1}
}
@media(max-width:768px){
  .cat-hero{padding:48px 0 36px}
  .cat-hero__title{font-size:1.75rem}
  .cat-hero__subtitle{font-size:1rem;margin-bottom:24px}
  .cat-hero__stats{gap:16px}
  .cat-hero__stat strong{font-size:1.25rem}
  .cat-hero__stat span{font-size:.6875rem}
  .cat-grid{gap:20px;margin-top:32px}
  .cat-card__visual{aspect-ratio:16/9}
  .cat-card__visual-content{padding:16px}
  .cat-card__icon{width:40px;height:40px}
  .cat-card__icon .material-icons-outlined{font-size:20px}
  .cat-card__body{padding:20px}
  .cat-card__title{font-size:1.125rem;margin-bottom:8px}
  .cat-card__desc{font-size:.8125rem;margin-bottom:12px}
  .cat-pills{gap:8px;margin:12px 0 4px}
  .cat-pill{padding:6px 12px}
  .cat-pill__name{font-size:.75rem}
  .cat-pill__count{font-size:.625rem;padding:1px 6px}
  .cat-advantages{grid-template-columns:1fr;gap:12px;margin-top:32px}
  .cat-advantage{padding:16px;gap:12px}
  .cat-advantage .material-icons-outlined{font-size:24px}
  .cat-advantage strong{font-size:.875rem}
  .cat-advantage p{font-size:.75rem}
}
@media(max-width:480px){
  .cat-hero{padding:36px 0 28px}
  .cat-hero__breadcrumb{font-size:.75rem;margin-bottom:16px}
  .cat-hero__stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .section{padding:60px 0}
  .cat-card__body>.btn{width:100%;justify-content:center}
}
