/*
Theme Name: KIVANE Skin Science
Theme URI: https://kivane.com
Author: KIVANE Skin Science
Author URI: https://kivane.com
Description: Thème WooCommerce sur mesure pour KIVANE Skin Science, marque dermocosmétique. Navy & blanc, bilingue FR/AR (RTL), conçu autour des kits de soin (Essentiel, Anti-Taches, Hydratation, Anti-Âge).
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
Text Domain: kivane
Tags: e-commerce, custom-colors, custom-menu, custom-logo, translation-ready, rtl-language-support
*/

/* =========================================================
   1. TOKENS
   ========================================================= */
:root{
	--kv-navy:        #0B2044;
	--kv-navy-deep:   #071531;
	--kv-navy-2:      #143166;
	--kv-blue:        #4A90D9;
	--kv-white:       #FFFFFF;
	--kv-off:         #F6F7F9;
	--kv-off-2:       #EEF1F5;
	--kv-line:        #E2E6EC;
	--kv-line-soft:   #EDF0F4;
	--kv-text:        #16203A;
	--kv-text-soft:   #5F6880;
	--kv-star:        #E8A33D;

	--kv-essentiel:   #F2F1EE;
	--kv-hydratation: #DCEEF7;
	--kv-antiage:     #E7E0F0;

	--kv-container: 1340px;
	--kv-radius: 2px;

	--kv-font-display: "Cormorant Garamond", Georgia, serif;
	--kv-font-body: "Jost", "Helvetica Neue", Arial, sans-serif;
	--kv-font-ar: "Tajawal", "Segoe UI", Tahoma, sans-serif;

	--kv-t: 220ms ease;
}

/* =========================================================
   2. BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
	margin:0; background:var(--kv-white); color:var(--kv-text);
	font-family:var(--kv-font-body); font-size:16px; line-height:1.6;
	-webkit-font-smoothing:antialiased;
}
body.rtl{ font-family:var(--kv-font-ar); }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
svg.kv-svg{ display:block; }

h1,h2,h3,h4{ margin:0 0 .5em; color:var(--kv-navy); line-height:1.18; font-weight:400; }
h1,h2{ font-family:var(--kv-font-display); font-weight:500; }
h3,h4{ font-family:var(--kv-font-body); font-weight:500; }
.rtl h1,.rtl h2,.rtl h3,.rtl h4{ font-family:var(--kv-font-ar); font-weight:700; }
p{ margin:0 0 1em; color:var(--kv-text-soft); }

.kv-container{ max-width:var(--kv-container); margin-inline:auto; padding-inline:28px; }
.kv-container--narrow{ max-width:880px; }
.screen-reader-text{ position:absolute!important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }

.kv-eyebrow{
	font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
	color:var(--kv-text-soft); font-weight:500;
}

/* =========================================================
   3. BUTTONS
   ========================================================= */
.kv-btn{
	display:inline-flex; align-items:center; justify-content:center; gap:.6em;
	padding:13px 30px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
	font-weight:500; border:1px solid var(--kv-navy); border-radius:var(--kv-radius);
	transition:var(--kv-t); white-space:nowrap; background:transparent; color:var(--kv-navy);
}
.kv-btn:hover{ background:var(--kv-navy); color:#fff; }
.kv-btn--solid{ background:var(--kv-navy); color:#fff; }
.kv-btn--solid:hover{ background:var(--kv-navy-2); border-color:var(--kv-navy-2); }
.kv-btn--white{ background:#fff; color:var(--kv-navy); border-color:#fff; }
.kv-btn--white:hover{ background:transparent; color:#fff; border-color:#fff; }
.kv-btn--ghost-white{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.kv-btn--ghost-white:hover{ background:#fff; color:var(--kv-navy); border-color:#fff; }
.kv-btn--block{ width:100%; }
.kv-btn--lg{ padding:17px 34px; font-size:.78rem; }

/* =========================================================
   4. TOP BAR
   ========================================================= */
.kv-topbar{ background:var(--kv-navy-deep); color:rgba(255,255,255,.82); font-size:.71rem; letter-spacing:.08em; }
.kv-topbar .kv-container{ display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:38px; }
.kv-topbar-left{ display:flex; align-items:center; gap:26px; }
.kv-topbar-left span{ display:inline-flex; align-items:center; gap:8px; text-transform:uppercase; }
.kv-topbar-left .kv-svg{ opacity:.8; }
.kv-topbar-right{ display:flex; align-items:center; gap:20px; }
.kv-lang-switch{ display:flex; align-items:center; gap:7px; font-size:.72rem; letter-spacing:.1em; }
.kv-lang-switch a{ opacity:.6; transition:var(--kv-t); }
.kv-lang-switch a.is-active,.kv-lang-switch a:hover{ opacity:1; }
.kv-lang-sep{ opacity:.35; }
.kv-topbar-icons{ display:flex; align-items:center; gap:18px; }
.kv-topbar-icons a{ display:flex; align-items:center; position:relative; opacity:.85; transition:var(--kv-t); }
.kv-topbar-icons a:hover{ opacity:1; }
.kv-cart-count{
	position:absolute; top:-6px; inset-inline-end:-8px;
	min-width:15px; height:15px; padding:0 4px; border-radius:50%;
	background:var(--kv-blue); color:#fff; font-size:.58rem; font-weight:600;
	display:flex; align-items:center; justify-content:center; letter-spacing:0;
}

/* =========================================================
   5. HEADER
   ========================================================= */
.kv-header{ background:var(--kv-white); position:sticky; top:0; z-index:60; }
.kv-brandbar{ padding-block:26px 18px; text-align:center; position:relative; }
.kv-logo-word{
	font-family:var(--kv-font-display); font-size:2.15rem; letter-spacing:.3em;
	color:var(--kv-navy); font-weight:500; line-height:1; display:block;
	padding-inline-start:.3em;
}
.kv-logo-sub{
	display:block; font-family:var(--kv-font-body); font-size:.58rem;
	letter-spacing:.42em; color:var(--kv-navy); opacity:.75; margin-top:7px;
	padding-inline-start:.42em;
}
.kv-custom-logo-link img{ margin-inline:auto; max-height:56px; width:auto; }

.kv-primary-nav{ border-bottom:1px solid var(--kv-line); }
.kv-primary-nav ul{ display:flex; justify-content:center; gap:44px; flex-wrap:wrap; }
.kv-primary-nav li{ position:relative; }
.kv-primary-nav a{
	display:block; padding:0 2px 15px; font-size:.76rem; letter-spacing:.16em;
	text-transform:uppercase; color:var(--kv-navy); font-weight:400;
	border-bottom:2px solid transparent; transition:var(--kv-t);
}
.kv-primary-nav li.current-menu-item>a,
.kv-primary-nav li.current_page_item>a,
.kv-primary-nav a:hover{ border-bottom-color:var(--kv-navy); font-weight:500; }
.kv-menu-toggle{
	display:none; position:absolute; inset-inline-start:28px; top:50%; transform:translateY(-50%);
	background:none; border:0; color:var(--kv-navy); padding:6px;
}

/* =========================================================
   6. HERO
   ========================================================= */
.kv-hero{ background:var(--kv-navy-deep); color:#fff; position:relative; overflow:hidden; }
.kv-hero::after{
	content:""; position:absolute; inset:0;
	background:radial-gradient(ellipse at 72% 45%, rgba(74,144,217,.22), transparent 62%);
	pointer-events:none;
}
.kv-hero-inner{
	position:relative; z-index:2;
	display:grid; grid-template-columns:1fr 1.05fr; align-items:center; gap:40px;
	padding-block:78px 66px;
}
.kv-hero-claim{ font-size:.7rem; letter-spacing:.32em; color:rgba(255,255,255,.65); margin-bottom:20px; }
.kv-hero h1{ color:#fff; font-size:3rem; line-height:1.12; margin-bottom:.35em; }
.kv-hero h1 .kv-hero-sub{ display:block; font-size:2.1rem; color:rgba(255,255,255,.9); margin-top:.15em; }
.kv-hero p{ color:rgba(255,255,255,.72); max-width:42ch; font-size:.98rem; }
.kv-hero-cta{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
.kv-hero-media img{ width:100%; }

.kv-hero-usp{ position:relative; z-index:2; border-top:1px solid rgba(255,255,255,.14); }
.kv-hero-usp ul{ display:grid; grid-template-columns:repeat(4,1fr); }
.kv-hero-usp li{
	padding:24px 18px; text-align:center; color:rgba(255,255,255,.7); font-size:.74rem;
	border-inline-start:1px solid rgba(255,255,255,.1);
}
.kv-hero-usp li:first-child{ border-inline-start:0; }
.kv-hero-usp .kv-svg{ margin-inline:auto; margin-bottom:10px; color:rgba(255,255,255,.75); }
.kv-hero-usp strong{ display:block; color:#fff; font-weight:500; font-size:.78rem; margin-bottom:3px; }

/* =========================================================
   7. KITS BANNER (4 colonnes pleine largeur) — pièce maîtresse
   ========================================================= */
.kv-kits-banner{ position:relative; }
.kv-kits-banner-head{
	position:absolute; top:44px; inset-inline:0; z-index:3;
	text-align:center; pointer-events:none; padding-inline:20px;
}
.kv-kits-eyebrow{
	display:block; font-size:.7rem; letter-spacing:.28em; text-transform:uppercase;
	color:var(--kv-navy); opacity:.75; margin-bottom:14px;
}
.kv-kits-title{
	font-family:var(--kv-font-display); font-size:2.7rem; line-height:1.16;
	color:var(--kv-navy); margin:0;
}
.kv-kits-title em{ font-style:normal; color:var(--kv-blue); }
.rtl .kv-kits-title{ font-family:var(--kv-font-ar); font-weight:700; font-size:2.2rem; }
.kv-kits-rule{ display:block; width:74px; height:1px; background:var(--kv-blue); margin:22px auto 14px; }
.kv-kits-claim{ font-size:.78rem; letter-spacing:.18em; color:var(--kv-navy); opacity:.8; }

.kv-kits-panels{ display:grid; grid-template-columns:repeat(4,1fr); }
.kv-kit-panel{
	position:relative; min-height:830px;
	background-size:cover; background-position:center;
	display:flex; align-items:flex-end; justify-content:center;
	overflow:hidden;
}
.kv-kit-panel::before{
	content:""; position:absolute; inset:0; transition:var(--kv-t);
}
.kv-kit-panel--essentiel::before{ background:linear-gradient(to bottom, rgba(250,250,248,.35) 0%, rgba(250,250,248,.55) 55%, rgba(250,250,248,.88) 100%); }
.kv-kit-panel--anti-taches::before{ background:linear-gradient(to bottom, rgba(9,26,58,.42) 0%, rgba(9,26,58,.6) 55%, rgba(9,26,58,.88) 100%); }
.kv-kit-panel--hydratation::before{ background:linear-gradient(to bottom, rgba(226,242,250,.32) 0%, rgba(220,238,247,.55) 55%, rgba(220,238,247,.9) 100%); }
.kv-kit-panel--anti-age::before{ background:linear-gradient(to bottom, rgba(238,232,246,.32) 0%, rgba(231,224,240,.55) 55%, rgba(231,224,240,.9) 100%); }
.kv-kit-panel:hover::before{ opacity:.86; }

.kv-kit-panel-inner{
	position:relative; z-index:2; text-align:center;
	padding:0 26px 62px; width:100%;
}
.kv-kit-icon{ display:block; margin-bottom:16px; color:var(--kv-navy); }
.kv-kit-icon .kv-svg{ margin-inline:auto; width:26px; height:26px; }
.kv-kit-name{
	font-family:var(--kv-font-display); font-size:1.6rem; font-weight:500;
	letter-spacing:.08em; color:var(--kv-navy); margin:0 0 6px;
}
.rtl .kv-kit-name{ font-family:var(--kv-font-ar); font-weight:700; letter-spacing:0; }
.kv-kit-tag{ font-size:1rem; color:var(--kv-navy); opacity:.85; margin:0 0 16px; }
.kv-kit-desc{ font-size:.84rem; color:var(--kv-navy); opacity:.7; margin:0 0 26px; letter-spacing:.02em; }
.kv-kit-btn{ border-color:var(--kv-navy); color:var(--kv-navy); background:transparent; }
.kv-kit-btn:hover{ background:var(--kv-navy); color:#fff; }

/* Colonne foncée : texte clair */
.kv-kit-panel--anti-taches .kv-kit-icon,
.kv-kit-panel--anti-taches .kv-kit-name,
.kv-kit-panel--anti-taches .kv-kit-tag,
.kv-kit-panel--anti-taches .kv-kit-desc{ color:#fff; }
.kv-kit-panel--anti-taches .kv-kit-btn{ border-color:rgba(255,255,255,.7); color:#fff; }
.kv-kit-panel--anti-taches .kv-kit-btn:hover{ background:#fff; color:var(--kv-navy); }

/* =========================================================
   8. PILIERS (Science / Sécurité / Résultats / Confiance)
   ========================================================= */
.kv-pillars{ background:var(--kv-off); }
.kv-pillars ul{ display:grid; grid-template-columns:repeat(4,1fr); }
.kv-pillars li{
	display:flex; align-items:flex-start; gap:16px; padding:30px 26px;
	border-inline-start:1px solid var(--kv-line);
}
.kv-pillars li:first-child{ border-inline-start:0; }
.kv-pillars .kv-svg{ flex:none; width:30px; height:30px; color:var(--kv-navy); margin-top:2px; }
.kv-pillars strong{
	display:block; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase;
	color:var(--kv-navy); font-weight:600; margin-bottom:5px;
}
.kv-pillars span{ font-size:.8rem; color:var(--kv-text-soft); line-height:1.5; }
.kv-pillars--dark{ background:var(--kv-navy-deep); }
.kv-pillars--dark li{ border-color:rgba(255,255,255,.12); }
.kv-pillars--dark .kv-svg,.kv-pillars--dark strong{ color:#fff; }
.kv-pillars--dark span{ color:rgba(255,255,255,.65); }

/* =========================================================
   9. SECTIONS
   ========================================================= */
.kv-section{ padding-block:76px; }
.kv-section--sm{ padding-block:52px; }
.kv-off-bg{ background:var(--kv-off); }
.kv-section-head{ text-align:center; max-width:680px; margin:0 auto 44px; }
.kv-section-head h2{
	font-size:1.35rem; letter-spacing:.2em; text-transform:uppercase;
	font-family:var(--kv-font-body); font-weight:500;
}
.rtl .kv-section-head h2{ letter-spacing:0; font-family:var(--kv-font-ar); }
.kv-section-head h2.kv-serif{
	font-family:var(--kv-font-display); font-size:2.2rem; letter-spacing:0; text-transform:none; font-weight:500;
}
.kv-section-head p{ margin-top:12px; }

/* =========================================================
   10. DIAGNOSTIC BANNER
   ========================================================= */
.kv-diagnostic{
	background:var(--kv-navy); color:#fff; overflow:hidden;
	display:grid; grid-template-columns:1fr 1fr; align-items:stretch;
}
.kv-diagnostic-content{ padding:60px 56px; align-self:center; }
.kv-diagnostic h2{
	color:#fff; font-family:var(--kv-font-body); font-weight:400;
	font-size:1.5rem; letter-spacing:.1em; text-transform:uppercase; line-height:1.4;
}
.rtl .kv-diagnostic h2{ letter-spacing:0; text-transform:none; font-family:var(--kv-font-ar); }
.kv-diagnostic p{ color:rgba(255,255,255,.72); max-width:44ch; font-size:.9rem; }
.kv-diagnostic-media{ position:relative; min-height:300px; }
.kv-diagnostic-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* =========================================================
   11. SPLIT (Science)
   ========================================================= */
.kv-split{ display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:0; }
.kv-split-text{ padding-inline-end:56px; }
.kv-split-text h2{
	font-family:var(--kv-font-body); font-weight:400; font-size:1.5rem;
	letter-spacing:.1em; text-transform:uppercase; line-height:1.45; margin-bottom:.7em;
}
.rtl .kv-split-text h2{ letter-spacing:0; text-transform:none; font-family:var(--kv-font-ar); }
.kv-split-text p{ font-size:.88rem; max-width:38ch; }
.kv-split-media img{ width:100%; }
.kv-split--reverse .kv-split-text{ padding-inline:56px 0; order:2; }

/* =========================================================
   12. TESTIMONIALS
   ========================================================= */
.kv-testi-wrap{ position:relative; }
.kv-testimonials{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.kv-testimonial{
	background:#fff; border:1px solid var(--kv-line); padding:32px 28px; text-align:center;
}
.kv-off-bg .kv-testimonial{ background:#fff; }
.kv-stars{ color:var(--kv-star); letter-spacing:3px; font-size:.85rem; margin-bottom:14px; }
.kv-testimonial blockquote{ margin:0; }
.kv-testimonial blockquote p{ color:var(--kv-text); font-size:.88rem; line-height:1.75; margin-bottom:18px; }
.kv-testimonial cite{ display:block; font-style:normal; font-weight:600; color:var(--kv-navy); font-size:.85rem; }
.kv-skin-type{ font-size:.75rem; color:var(--kv-text-soft); margin-top:3px; }
.kv-testi-arrow{
	position:absolute; top:50%; transform:translateY(-50%);
	background:none; border:0; color:var(--kv-text-soft); padding:8px; transition:var(--kv-t);
}
.kv-testi-arrow:hover{ color:var(--kv-navy); }
.kv-testi-arrow--prev{ inset-inline-start:-34px; }
.kv-testi-arrow--next{ inset-inline-end:-34px; }
.kv-testi-dots{ display:flex; justify-content:center; gap:8px; margin-top:28px; }
.kv-testi-dots span{ width:7px; height:7px; border-radius:50%; background:var(--kv-line); }
.kv-testi-dots span.is-active{ background:var(--kv-navy); }

/* =========================================================
   13. WOOCOMMERCE — GRILLE PRODUITS
   ========================================================= */
ul.products{ display:grid!important; grid-template-columns:repeat(4,1fr); gap:26px; list-style:none; margin:0; padding:0; }
ul.products::before,ul.products::after{ display:none!important; }
ul.products li.product{
	background:#fff; border:1px solid var(--kv-line); padding:22px 20px 26px;
	text-align:center; position:relative; margin:0!important; width:auto!important; float:none!important;
	transition:var(--kv-t);
}
ul.products li.product:hover{ border-color:var(--kv-navy); }
ul.products li.product a img{ margin:0 auto 16px; }
ul.products li.product .woocommerce-loop-product__title{
	font-family:var(--kv-font-body)!important; font-size:.95rem!important; font-weight:500;
	color:var(--kv-navy); margin:0 0 4px!important; padding:0!important;
}
ul.products li.product .kv-loop-subtitle{ font-size:.78rem; color:var(--kv-text-soft); margin-bottom:10px; }
ul.products li.product .star-rating{ margin:0 auto 8px; color:var(--kv-star); font-size:.8em; }
ul.products li.product .kv-loop-count{ font-size:.75rem; color:var(--kv-text-soft); }
ul.products li.product .price{
	display:block; color:var(--kv-navy)!important; font-weight:600; font-size:1rem; margin-bottom:16px;
}
ul.products li.product .price del{ color:var(--kv-text-soft); opacity:.55; font-weight:400; }
ul.products li.product .button{
	display:block; width:100%; padding:12px 14px; background:transparent!important; color:var(--kv-navy)!important;
	border:1px solid var(--kv-navy)!important; border-radius:var(--kv-radius);
	font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; font-weight:500; transition:var(--kv-t);
}
ul.products li.product .button:hover,ul.products li.product .button.added{
	background:var(--kv-navy)!important; color:#fff!important;
}
ul.products li.product .onsale{
	position:absolute; top:16px; inset-inline-start:16px; background:var(--kv-navy); color:#fff;
	font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; padding:5px 10px; border-radius:0; margin:0;
}
.woocommerce-breadcrumb{ font-size:.78rem; color:var(--kv-text-soft); margin-bottom:28px; }
.woocommerce-breadcrumb a{ color:var(--kv-navy); }
.woocommerce-result-count,.woocommerce-ordering{ font-size:.82rem; color:var(--kv-text-soft); }

/* =========================================================
   14. WOOCOMMERCE — PAGE PRODUIT
   ========================================================= */
.kv-product-layout{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:start; }
.kv-product-gallery .woocommerce-product-gallery__image img{ width:100%; }
.kv-product-gallery .flex-control-thumbs{ display:flex; gap:12px; margin-top:14px; padding:0; }
.kv-product-gallery .flex-control-thumbs li{ width:88px!important; margin:0!important; }
.kv-product-gallery .flex-control-thumbs img{ border:1px solid var(--kv-line); opacity:.75; cursor:pointer; transition:var(--kv-t); }
.kv-product-gallery .flex-control-thumbs img.flex-active,
.kv-product-gallery .flex-control-thumbs img:hover{ opacity:1; border-color:var(--kv-navy); }

.kv-product-badge{
	display:inline-block; background:var(--kv-navy); color:#fff;
	font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
	padding:7px 14px; margin-bottom:18px;
}
.entry-summary .product_title{ font-family:var(--kv-font-display); font-size:2.1rem; margin-bottom:.35em; }
.entry-summary .woocommerce-product-details__short-description p{ font-size:.92rem; max-width:46ch; }

.kv-product-features{ display:flex; gap:30px; flex-wrap:wrap; margin:24px 0 26px; }
.kv-product-features div{ display:flex; align-items:center; gap:9px; font-size:.8rem; color:var(--kv-text); }
.kv-product-features .kv-svg{ color:var(--kv-navy); flex:none; }

.entry-summary p.price,.entry-summary span.price{
	font-family:var(--kv-font-display); font-size:2rem; color:var(--kv-navy)!important;
	font-weight:600; margin:0 0 6px; display:block;
}
.kv-installment{ font-size:.82rem; color:var(--kv-text-soft); margin-bottom:24px; }

.woocommerce div.product form.cart{ margin:0; }
.woocommerce div.product form.cart div.quantity{
	display:inline-flex; align-items:center; border:1px solid var(--kv-line); margin-bottom:18px; float:none;
}
.woocommerce div.product form.cart div.quantity input.qty{
	width:56px; height:46px; border:0; text-align:center; font-size:.95rem; color:var(--kv-navy);
	-moz-appearance:textfield;
}
.woocommerce div.product form.cart div.quantity input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart div.quantity input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.kv-qty-btn{ width:44px; height:46px; background:none; border:0; color:var(--kv-navy); display:flex; align-items:center; justify-content:center; }
.kv-qty-btn:hover{ background:var(--kv-off); }

.woocommerce div.product form.cart .button{
	width:100%; float:none; background:var(--kv-navy)!important; color:#fff!important;
	border:1px solid var(--kv-navy); border-radius:var(--kv-radius); padding:18px 24px;
	font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
	display:flex; align-items:center; justify-content:center; gap:10px;
}
.woocommerce div.product form.cart .button:hover{ background:var(--kv-navy-2)!important; }
.kv-buy-now{
	display:flex; align-items:center; justify-content:center; width:100%; margin-top:12px;
	padding:18px 24px; border:1px solid var(--kv-navy); background:#fff; color:var(--kv-navy);
	font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; transition:var(--kv-t);
}
.kv-buy-now:hover{ background:var(--kv-navy); color:#fff; }

.kv-trust-row{
	display:flex; gap:0; margin-top:28px; padding-top:24px; border-top:1px solid var(--kv-line); flex-wrap:wrap;
}
.kv-trust-row div{
	display:flex; align-items:center; gap:10px; font-size:.74rem; color:var(--kv-text-soft);
	line-height:1.35; padding-inline:20px; border-inline-start:1px solid var(--kv-line); flex:1; min-width:150px;
}
.kv-trust-row div:first-child{ border-inline-start:0; padding-inline-start:0; }
.kv-trust-row .kv-svg{ color:var(--kv-navy); flex:none; }

/* Routine 3 étapes */
.kv-routine{ background:var(--kv-off); padding-block:60px; }
.kv-routine-head{
	text-align:center; font-size:.85rem; letter-spacing:.2em; text-transform:uppercase;
	color:var(--kv-navy); margin-bottom:44px; font-weight:500;
}
.rtl .kv-routine-head{ letter-spacing:0; }
.kv-routine-steps{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:start; gap:0; }
.kv-routine-step{ text-align:center; padding-inline:24px; }
.kv-routine-step h4{
	font-size:.9rem; letter-spacing:.12em; text-transform:uppercase; color:var(--kv-navy);
	font-weight:600; margin-bottom:2px;
}
.kv-routine-step .kv-routine-role{ font-size:.82rem; color:var(--kv-text-soft); margin-bottom:20px; }
.kv-routine-step img{ margin:0 auto 20px; max-height:180px; width:auto; }
.kv-routine-step p{ font-size:.82rem; margin-bottom:14px; }
.kv-routine-vol{ display:inline-block; border:1px solid var(--kv-line); background:#fff; padding:5px 16px; font-size:.75rem; color:var(--kv-navy); }
.kv-routine-arrow{ align-self:center; color:var(--kv-text-soft); padding-top:60px; }

/* Onglets produit */
.woocommerce div.product .woocommerce-tabs ul.tabs{
	display:flex; justify-content:center; gap:56px; padding:0; margin:0 0 44px; border-bottom:1px solid var(--kv-line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{
	background:none!important; border:0!important; border-radius:0!important; margin:0!important; padding:0!important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
	display:block; padding:0 0 16px; font-size:.78rem; letter-spacing:.15em; text-transform:uppercase;
	color:var(--kv-text-soft); font-weight:500; border-bottom:2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--kv-navy); border-bottom-color:var(--kv-navy); }
.woocommerce div.product .woocommerce-tabs .panel{ margin:0; padding:0; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child{ display:none; }

.kv-desc-grid{ display:grid; grid-template-columns:1fr 1fr .85fr; gap:44px; align-items:start; }
.kv-desc-grid h3{ font-family:var(--kv-font-display); font-size:1.5rem; font-weight:500; }
.kv-desc-grid p{ font-size:.88rem; }
.kv-check-list li{ display:flex; align-items:flex-start; gap:10px; font-size:.85rem; color:var(--kv-text); margin-bottom:11px; }
.kv-check-list .kv-svg{ color:var(--kv-navy); flex:none; width:18px; height:18px; margin-top:2px; }

.kv-actives li{ display:flex; gap:14px; margin-bottom:22px; }
.kv-actives .kv-svg{ color:var(--kv-navy); flex:none; width:26px; height:26px; margin-top:2px; }
.kv-actives strong{ display:block; font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--kv-navy); margin-bottom:3px; }
.kv-actives span{ font-size:.82rem; color:var(--kv-text-soft); line-height:1.5; }

.kv-results-box{ background:var(--kv-off); padding:30px 28px; }
.kv-results-box h4{
	font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--kv-navy);
	font-weight:600; margin-bottom:22px;
}
.kv-results-box li{ display:flex; align-items:baseline; gap:16px; margin-bottom:16px; }
.kv-results-box .kv-result-num{ font-family:var(--kv-font-display); font-size:1.5rem; color:var(--kv-navy); font-weight:600; min-width:64px; }
.kv-results-box .kv-result-label{ font-size:.82rem; color:var(--kv-text-soft); }
.kv-results-note{ font-size:.7rem; color:var(--kv-text-soft); margin-top:18px; }

.kv-rating-summary{ display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:30px; font-size:.85rem; color:var(--kv-text-soft); }

/* =========================================================
   15. CART / CHECKOUT / ACCOUNT
   ========================================================= */
.woocommerce table.shop_table{ border-color:var(--kv-line); border-radius:0; }
.woocommerce table.shop_table th{ font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--kv-navy); }
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{
	background:var(--kv-navy); color:#fff; border-radius:var(--kv-radius); padding:14px 26px;
	font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; font-weight:500; border:1px solid var(--kv-navy);
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{ background:var(--kv-navy-2); color:#fff; }
.woocommerce .cart_totals h2,.woocommerce-checkout h3{
	font-family:var(--kv-font-body); font-size:.9rem; letter-spacing:.13em; text-transform:uppercase; font-weight:600;
}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{
	border:1px solid var(--kv-line); border-radius:var(--kv-radius); padding:12px 14px; font-family:inherit;
}
.woocommerce #payment div.payment_box{ background:var(--kv-off); }
.woocommerce-MyAccount-navigation ul{ border:1px solid var(--kv-line); }
.woocommerce-MyAccount-navigation li{ border-bottom:1px solid var(--kv-line); }
.woocommerce-MyAccount-navigation li:last-child{ border-bottom:0; }
.woocommerce-MyAccount-navigation li a{ display:block; padding:13px 20px; font-size:.85rem; }
.woocommerce-MyAccount-navigation li.is-active a{ background:var(--kv-navy); color:#fff; }
.woocommerce-message,.woocommerce-info{ border-top-color:var(--kv-navy); }
.woocommerce-message::before,.woocommerce-info::before{ color:var(--kv-navy); }

/* =========================================================
   16. FOOTER
   ========================================================= */
.kv-footer-bar{ background:var(--kv-navy); color:#fff; }
.kv-footer-bar ul{ display:grid; grid-template-columns:repeat(4,1fr); }
.kv-footer-bar li{
	display:flex; align-items:center; gap:14px; padding:26px 20px;
	border-inline-start:1px solid rgba(255,255,255,.12);
}
.kv-footer-bar li:first-child{ border-inline-start:0; }
.kv-footer-bar .kv-svg{ flex:none; color:#fff; }
.kv-footer-bar strong{
	display:block; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600;
}
.kv-footer-bar span{ font-size:.76rem; color:rgba(255,255,255,.65); }

.kv-footer{ background:var(--kv-navy-deep); color:rgba(255,255,255,.7); padding-block:62px 26px; }
.kv-footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1.4fr; gap:36px; }
.kv-footer-brand .kv-logo-word{ color:#fff; font-size:1.65rem; text-align:start; }
.kv-footer-brand .kv-logo-sub{ color:rgba(255,255,255,.6); text-align:start; }
.kv-footer-brand p{ color:rgba(255,255,255,.55); font-size:.82rem; margin-top:18px; max-width:32ch; }
.kv-footer-social{ display:flex; gap:14px; margin-top:20px; }
.kv-footer-social a{ color:rgba(255,255,255,.65); transition:var(--kv-t); }
.kv-footer-social a:hover{ color:#fff; }
.kv-footer h4{
	color:#fff; font-size:.74rem; letter-spacing:.15em; text-transform:uppercase;
	margin-bottom:20px; font-weight:600;
}
.kv-footer-links li{ margin-bottom:11px; }
.kv-footer-links a{ font-size:.84rem; color:rgba(255,255,255,.6); transition:var(--kv-t); }
.kv-footer-links a:hover{ color:#fff; }
.kv-footer-col p{ color:rgba(255,255,255,.55); font-size:.82rem; }
.kv-newsletter-form{ display:flex; margin-top:16px; border:1px solid rgba(255,255,255,.25); }
.kv-newsletter-form input[type=email]{
	flex:1; min-width:0; border:0; background:transparent; color:#fff; padding:13px 14px; font-size:.82rem; font-family:inherit;
}
.kv-newsletter-form input[type=email]::placeholder{ color:rgba(255,255,255,.45); }
.kv-newsletter-form input[type=email]:focus{ outline:none; }
.kv-newsletter-form button{
	background:#fff; color:var(--kv-navy); border:0; padding:0 20px;
	font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; font-weight:600;
}
.kv-footer-bottom{
	border-top:1px solid rgba(255,255,255,.12); margin-top:48px; padding-top:22px;
	display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap;
	font-size:.75rem; color:rgba(255,255,255,.45);
}
.kv-footer-bottom a{ margin-inline-start:22px; color:rgba(255,255,255,.45); }
.kv-footer-bottom a:hover{ color:#fff; }

/* =========================================================
   17. PAGES INTÉRIEURES
   ========================================================= */
.kv-page-hero{ background:var(--kv-off); padding-block:54px; text-align:center; border-bottom:1px solid var(--kv-line); }
.kv-page-hero h1{ font-size:2.3rem; margin:8px 0 0; }
.kv-content-page{ padding-block:64px; }
.kv-content-page .kv-container{ max-width:880px; }
.kv-content-page h2{ font-size:1.45rem; margin-top:1.8em; }
.kv-list li{ position:relative; padding-inline-start:20px; margin-bottom:10px; color:var(--kv-text-soft); font-size:.9rem; }
.kv-list li::before{ content:""; position:absolute; inset-inline-start:0; top:.65em; width:5px; height:5px; background:var(--kv-navy); border-radius:50%; }

/* FAQ */
.kv-faq-item{ border-bottom:1px solid var(--kv-line); }
.kv-faq-q{
	display:flex; justify-content:space-between; align-items:center; gap:20px; cursor:pointer;
	padding:22px 0; font-weight:500; color:var(--kv-navy); font-size:.95rem;
}
.kv-faq-icon{ transition:var(--kv-t); color:var(--kv-navy); flex:none; }
.kv-faq-a{ display:none; padding-bottom:24px; color:var(--kv-text-soft); font-size:.88rem; max-width:70ch; }
.kv-faq-item.is-open .kv-faq-a{ display:block; }
.kv-faq-item.is-open .kv-faq-icon{ transform:rotate(45deg); }

/* Contact */
.kv-contact-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:56px; }
.kv-form-row{ margin-bottom:18px; }
.kv-form-row label{ display:block; font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px; color:var(--kv-navy); font-weight:500; }
.kv-form-row input,.kv-form-row textarea,.kv-form-row select{
	width:100%; border:1px solid var(--kv-line); border-radius:var(--kv-radius);
	padding:13px 14px; font-family:inherit; font-size:.9rem; color:var(--kv-text);
}
.kv-form-row input:focus,.kv-form-row textarea:focus,.kv-form-row select:focus{ outline:none; border-color:var(--kv-navy); }
.kv-contact-info li{ display:flex; gap:14px; margin-bottom:20px; font-size:.88rem; color:var(--kv-text-soft); align-items:center; }
.kv-contact-info .kv-svg{ color:var(--kv-navy); flex:none; }

/* Diagnostic */
.kv-quiz{ max-width:660px; margin-inline:auto; text-align:center; }
.kv-quiz h2{ font-family:var(--kv-font-display); font-size:1.8rem; }
.kv-quiz-progress{ height:3px; background:var(--kv-line); margin-bottom:44px; overflow:hidden; }
.kv-quiz-progress span{ display:block; height:100%; background:var(--kv-navy); transition:width .35s ease; }
.kv-quiz-options{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:30px; }
.kv-quiz-options button{
	border:1px solid var(--kv-line); background:#fff; padding:20px; font-size:.9rem;
	color:var(--kv-navy); transition:var(--kv-t);
}
.kv-quiz-options button:hover{ border-color:var(--kv-navy); background:var(--kv-off); }

/* Blog */
.kv-posts-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.kv-post-card{ border:1px solid var(--kv-line); background:#fff; }
.kv-post-card-body{ padding:24px; }
.kv-post-card h3{ font-size:1.05rem; margin-bottom:10px; }
.kv-post-card p{ font-size:.85rem; }

/* =========================================================
   18. RESPONSIVE
   ========================================================= */
@media (max-width:1200px){
	.kv-kit-panel{ min-height:700px; }
	.kv-kits-title{ font-size:2.2rem; }
	.kv-hero h1{ font-size:2.5rem; }
	.kv-testi-arrow{ display:none; }
}
@media (max-width:1024px){
	.kv-kits-panels{ grid-template-columns:repeat(2,1fr); }
	.kv-kits-banner-head{ position:static; padding:52px 20px 40px; background:var(--kv-white); }
	.kv-kit-panel{ min-height:560px; }
	.kv-hero-inner{ grid-template-columns:1fr; padding-block:56px 40px; }
	.kv-hero-usp ul{ grid-template-columns:repeat(2,1fr); }
	.kv-hero-usp li:nth-child(odd){ border-inline-start:0; }
	.kv-pillars ul,.kv-footer-bar ul{ grid-template-columns:repeat(2,1fr); }
	.kv-pillars li:nth-child(odd),.kv-footer-bar li:nth-child(odd){ border-inline-start:0; }
	.kv-product-layout,.kv-diagnostic,.kv-split,.kv-contact-grid,.kv-desc-grid{ grid-template-columns:1fr; gap:36px; }
	.kv-split-text{ padding-inline:0; }
	.kv-split--reverse .kv-split-text{ order:0; padding-inline:0; }
	.kv-routine-steps{ grid-template-columns:1fr; gap:36px; }
	.kv-routine-arrow{ display:none; }
	ul.products,.kv-testimonials,.kv-posts-grid{ grid-template-columns:repeat(2,1fr); }
	.kv-footer-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px){
	.kv-container{ padding-inline:20px; }
	.kv-topbar-left span:not(:first-child){ display:none; }
	.kv-topbar-left span:first-child{ font-size:.65rem; }
	.kv-menu-toggle{ display:block; }
	.kv-primary-nav{ display:none; }
	.kv-primary-nav.is-open{ display:block; }
	.kv-primary-nav ul{ flex-direction:column; gap:0; }
	.kv-primary-nav a{ padding:14px 20px; border-bottom:1px solid var(--kv-line-soft); }
	.kv-logo-word{ font-size:1.65rem; }
	.kv-kits-panels{ grid-template-columns:1fr; }
	.kv-kit-panel{ min-height:470px; }
	.kv-kits-title{ font-size:1.8rem; }
	.kv-hero h1{ font-size:2rem; }
	.kv-hero h1 .kv-hero-sub{ font-size:1.5rem; }
	.kv-hero-usp ul,.kv-pillars ul,.kv-footer-bar ul,
	ul.products,.kv-testimonials,.kv-posts-grid,
	.kv-quiz-options,.kv-footer-grid{ grid-template-columns:1fr; }
	.kv-hero-usp li,.kv-pillars li,.kv-footer-bar li{ border-inline-start:0; border-top:1px solid var(--kv-line); }
	.kv-hero-usp li{ border-top-color:rgba(255,255,255,.1); }
	.kv-footer-bar li{ border-top-color:rgba(255,255,255,.12); }
	.kv-hero-usp li:first-child,.kv-pillars li:first-child,.kv-footer-bar li:first-child{ border-top:0; }
	.kv-diagnostic-content{ padding:40px 24px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs{ gap:24px; overflow-x:auto; justify-content:flex-start; }
	.kv-trust-row div{ border-inline-start:0; padding-inline:0; min-width:100%; margin-bottom:12px; }
	.entry-summary .product_title{ font-size:1.6rem; }
}

/* Accessibilité */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
	outline:2px solid var(--kv-blue); outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
@media print{ .kv-topbar,.kv-header,.kv-footer,.kv-footer-bar{ display:none; } }
