/*
Theme Name: Sara Valenti
Theme URI: https://saravalenti.fr
Description: Thème enfant de Blocksy pour Sara Valenti. Direction artistique premium (cuir italien & bijoux acier), header/footer et homepage sur-mesure fidèles à la maquette. Extensible aux autres pages.
Author: Studio Clave
Author URI: https://studioclave.fr
Template: blocksy
Version: 1.2.2
Text Domain: saravalenti-child
*/

/* ==========================================================================
   TOKENS DE DIRECTION ARTISTIQUE  (source unique de vérité pour tout le site)
   ========================================================================== */
:root{
  --sv-cream:#F7F3EC;
  --sv-cream-2:#EFE9DD;
  --sv-black:#181614;
  --sv-camel:#C19A6B;
  --sv-camel-dark:#8C6D46;
  --sv-text:#181614;
  --sv-text-soft:#5B564D;
  --sv-footer-muted:#C9C4B9;
  --sv-serif:'Cormorant Garamond', Georgia, serif;
  --sv-sans:'DM Sans', system-ui, sans-serif;
  --sv-wrap:1240px;
  --sv-pad:48px;
}

/* ==========================================================================
   BASE  (portée : pages rendues par le thème enfant)
   ========================================================================== */
body.sv-theme{
  font-family:var(--sv-sans);
  color:var(--sv-text);
  background:var(--sv-cream);
  -webkit-font-smoothing:antialiased;
  margin:0;
}
.sv-theme *{box-sizing:border-box;}
.sv-theme h1,.sv-theme h2,.sv-theme h3,.sv-theme .serif{
  font-family:var(--sv-serif);
  font-weight:400;
  letter-spacing:0.01em;
}
.sv-theme img{display:block;max-width:100%;height:auto;}
.sv-theme a{color:inherit;text-decoration:none;}
.sv-wrap{max-width:var(--sv-wrap);margin:0 auto;padding:0 var(--sv-pad);}

/* ==========================================================================
   TOPBAR  (bandeau livraison / promo)
   ========================================================================== */
.sv-topbar{
  background:var(--sv-camel);color:var(--sv-black);text-align:center;
  font-size:12px;padding:6px 16px;letter-spacing:0.02em;font-family:var(--sv-sans);
  position:relative;
}
.sv-topbar__close{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;font-size:15px;line-height:1;color:var(--sv-black);opacity:0.7;
}
.sv-topbar__close:hover{opacity:1;}

/* ==========================================================================
   HEADER / NAVBAR
   ========================================================================== */
.sv-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--sv-pad);background:var(--sv-cream);position:relative;z-index:20;
}
.sv-header__logo{font-family:var(--sv-serif);font-size:26px;font-weight:400;letter-spacing:0.02em;color:var(--sv-black);line-height:1;}
.sv-nav{display:flex;gap:34px;font-size:14px;}
.sv-nav a{opacity:0.85;transition:opacity .15s ease;}
.sv-nav a:hover{opacity:1;}
.sv-icons{display:flex;align-items:center;gap:20px;font-size:14px;}
.sv-icons a{display:inline-flex;align-items:center;gap:7px;opacity:0.85;transition:opacity .15s ease;position:relative;}
.sv-icons a:hover{opacity:1;}
.sv-icons svg{width:19px;height:19px;stroke:var(--sv-black);fill:none;stroke-width:1.5;}
.sv-cart-count{
  position:absolute;top:-8px;right:-10px;background:var(--sv-black);color:var(--sv-cream);
  font-size:10px;font-weight:600;min-width:16px;height:16px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 4px;font-family:var(--sv-sans);
}
/* recherche : champ escamotable */
.sv-search{position:relative;}
.sv-search__panel{
  position:absolute;top:calc(100% + 14px);right:0;background:var(--sv-cream);
  border:1px solid var(--sv-black);border-radius:999px;padding:6px 6px 6px 18px;
  display:none;align-items:center;gap:8px;box-shadow:0 12px 40px rgba(24,22,20,0.14);
}
.sv-search.is-open .sv-search__panel{display:flex;}
.sv-search__panel input{
  border:none;background:transparent;font-family:var(--sv-sans);font-size:14px;
  width:200px;outline:none;color:var(--sv-text);
}
.sv-search__panel button{
  border:none;background:var(--sv-black);color:var(--sv-cream);border-radius:999px;
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;
}
.sv-search__panel button svg{width:16px;height:16px;stroke:var(--sv-cream);}

/* ==========================================================================
   HERO
   ========================================================================== */
.sv-hero{
  display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:620px;padding:64px 24px;
  background:
    linear-gradient(180deg, rgba(20,17,12,0.5) 0%, rgba(20,17,12,0.6) 100%),
    var(--sv-hero-img, none) center/cover no-repeat,
    var(--sv-camel);
}
.sv-hero__text{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:640px;margin:0 auto;}
.sv-hero__text .sv-pill{background:rgba(247,243,236,0.14);color:var(--sv-cream);margin-left:auto;margin-right:auto;}
.sv-hero__text .sv-pill::before{background:var(--sv-cream);}
.sv-hero__text .sv-btn-outline{border-color:var(--sv-cream);color:var(--sv-cream);}
.sv-hero__text h1{font-size:50px;line-height:1.12;letter-spacing:0.005em;color:var(--sv-cream);text-shadow:0 2px 24px rgba(0,0,0,0.3);white-space:nowrap;}
.sv-hero__text p{font-size:16px;color:#EAE3D4;margin-top:22px;max-width:560px;line-height:1.65;}

/* PILL BADGE */
.sv-pill{
  display:inline-flex;align-items:center;gap:8px;background:var(--sv-cream);color:var(--sv-camel-dark);
  font-size:12px;font-weight:500;letter-spacing:0.02em;padding:8px 16px;border-radius:999px;
  width:fit-content;margin-bottom:26px;font-family:var(--sv-sans);
}
.sv-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sv-camel-dark);flex:none;}
.sv-pill--dark{background:rgba(193,154,107,0.16);color:var(--sv-camel);}
.sv-pill--dark::before{background:var(--sv-camel);}
.sv-pill--light{background:var(--sv-cream-2);color:var(--sv-camel-dark);}
.sv-pill--light::before{background:var(--sv-camel-dark);}

.sv-cta-row{display:flex;justify-content:center;gap:14px;margin-top:36px;flex-wrap:wrap;}
.sv-hero-trust{
  display:flex;align-items:center;gap:10px;background:rgba(247,243,236,0.92);color:var(--sv-black);
  border-radius:14px;padding:12px 18px;width:fit-content;margin:28px auto 0;
}
.sv-hero-trust .sv-stars{color:var(--sv-camel-dark);font-size:13px;letter-spacing:2px;}
.sv-hero-trust .sv-label{font-size:12px;color:var(--sv-text-soft);white-space:nowrap;}

/* BOUTONS */
.sv-btn{
  display:inline-block;background:var(--sv-black);color:var(--sv-cream);
  font-family:var(--sv-sans);font-size:14px;font-weight:500;
  padding:15px 28px;width:fit-content;letter-spacing:0.02em;border-radius:999px;cursor:pointer;
  border:1px solid var(--sv-black);transition:opacity .15s ease;
}
.sv-btn:hover{opacity:0.88;}
.sv-btn-outline{background:transparent;border:1px solid var(--sv-black);color:var(--sv-black);}

/* ==========================================================================
   SECTIONS GÉNÉRIQUES
   ========================================================================== */
.sv-section{padding:120px 0;}
.sv-section-head{margin-bottom:56px;}
.sv-section-head h2{font-size:38px;font-weight:400;}
.sv-section-head p{font-size:15px;color:var(--sv-text-soft);max-width:none;white-space:nowrap;line-height:1.6;margin-top:14px;}

/* GRILLE PRODUITS */
.sv-product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.sv-product-card{background:var(--sv-cream-2);padding:20px;border-radius:20px;display:flex;flex-direction:column;}
.sv-product-card .sv-frame{aspect-ratio:3/4;overflow:hidden;background:#fff;margin-bottom:20px;border-radius:14px;}
.sv-product-card .sv-frame img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.sv-product-card:hover .sv-frame img{transform:scale(1.04);}
.sv-product-card h3{font-size:19px;font-weight:400;margin:0 0 6px;}
.sv-product-card .sv-price{font-size:14px;color:var(--sv-text-soft);}
.sv-product-card .sv-price del{opacity:0.5;margin-right:6px;}
.sv-product-card .sv-price ins{text-decoration:none;color:var(--sv-camel-dark);font-weight:500;}
.sv-product-card__foot{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.sv-add-to-cart{
  font-family:var(--sv-sans);font-size:12.5px;font-weight:500;letter-spacing:0.02em;
  background:var(--sv-black);color:var(--sv-cream);border:1px solid var(--sv-black);
  border-radius:999px;padding:9px 16px;cursor:pointer;white-space:nowrap;transition:opacity .15s ease;
}
.sv-add-to-cart:hover{opacity:0.88;}
.sv-add-to-cart.loading{opacity:0.6;pointer-events:none;}
.sv-add-to-cart.added::after{content:" ✓";}
.sv-center-cta{text-align:center;margin-top:60px;}

/* STORY */
.sv-story{background:var(--sv-black);color:var(--sv-cream);position:relative;padding:0;}
.sv-story__inner{position:relative;display:grid;grid-template-columns:1fr 1fr;}
.sv-story__img{position:absolute;top:0;left:0;width:50%;height:100%;overflow:hidden;}
.sv-story__img img{width:100%;height:100%;object-fit:cover;object-position:center 30%;}
.sv-story__text{grid-column:2/3;padding:40px 72px;display:flex;flex-direction:column;justify-content:center;}
.sv-story__text h2{font-size:36px;line-height:1.25;max-width:420px;color:var(--sv-cream);}
.sv-story__text p{font-size:15px;color:var(--sv-footer-muted);margin-top:22px;max-width:400px;line-height:1.7;}
.sv-story__text .sv-btn{background:var(--sv-camel);color:var(--sv-black);border-color:var(--sv-camel);margin-top:34px;}

/* JEWELRY */
.sv-jewelry{background:var(--sv-cream);}
.sv-jewelry__layout{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:center;}
.sv-jewelry__copy h2{font-size:38px;line-height:1.15;margin-bottom:20px;}
.sv-jewelry__copy p{font-size:15px;color:var(--sv-text-soft);line-height:1.7;margin-bottom:0;max-width:420px;}
.sv-jewelry__copy .sv-btn{margin-top:30px;}
.sv-jewelry__imgs{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;}
.sv-jewelry__imgs .sv-tall{aspect-ratio:3/4;overflow:hidden;border-radius:20px;}
.sv-jewelry__imgs .sv-tall img{width:100%;height:100%;object-fit:cover;}
.sv-jewelry__imgs .sv-stack{display:flex;flex-direction:column;gap:24px;margin-top:56px;}
.sv-jewelry__imgs .sv-stack .sv-box{aspect-ratio:1/1;overflow:hidden;border-radius:20px;}
.sv-jewelry__imgs .sv-stack .sv-box img{width:100%;height:100%;object-fit:cover;}

/* NEWSLETTER */
.sv-newsletter{background:var(--sv-cream-2);text-align:center;padding:96px 0;}
.sv-newsletter h2{font-size:32px;font-weight:400;max-width:640px;margin:0 auto 16px;}
.sv-newsletter p{font-size:14px;color:var(--sv-text-soft);margin-bottom:36px;}
.sv-newsletter__form{display:flex;justify-content:center;gap:10px;max-width:460px;margin:0 auto;}
.sv-newsletter__form input{
  flex:1;height:54px;border:1px solid var(--sv-black);background:transparent;
  padding:0 22px;font-family:var(--sv-sans);font-size:14px;border-radius:999px;color:var(--sv-text);
}
.sv-newsletter__form input::placeholder{color:var(--sv-text-soft);}
.sv-newsletter__form button{
  height:54px;background:var(--sv-black);color:var(--sv-cream);border:none;
  padding:0 30px;font-family:var(--sv-sans);font-size:14px;font-weight:500;
  border-radius:999px;white-space:nowrap;cursor:pointer;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.sv-footer{background:var(--sv-black);color:var(--sv-footer-muted);padding:64px 0 30px;}
.sv-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:52px;}
.sv-footer__logo{font-family:var(--sv-serif);font-size:24px;color:var(--sv-cream);margin-bottom:14px;}
.sv-footer p{font-size:13px;line-height:1.7;max-width:260px;}
.sv-footer h4{font-family:var(--sv-sans);font-size:13px;color:var(--sv-cream);margin-bottom:16px;letter-spacing:0.04em;font-weight:600;}
.sv-footer ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:0;}
.sv-footer li a{font-size:13px;opacity:0.85;transition:opacity .15s ease;}
.sv-footer li a:hover{opacity:1;}
.sv-footer__bottom{border-top:1px solid #35312B;padding-top:24px;font-size:12px;color:#8B857A;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .sv-hero__text h1{font-size:40px;white-space:normal;}
  .sv-product-grid{grid-template-columns:repeat(2,1fr);}
  .sv-jewelry__layout{grid-template-columns:1fr;gap:36px;}
  .sv-story__inner{grid-template-columns:1fr;}
  .sv-story__img{position:relative;width:100%;height:320px;}
  .sv-story__text{grid-column:1/2;padding:48px var(--sv-pad);}
}
@media (max-width:768px){
  :root{--sv-pad:24px;}
  .sv-nav{display:none;}
  .sv-header{padding:16px 24px;}
  .sv-hero__text h1{font-size:32px;}
  .sv-section{padding:72px 0;}
  .sv-product-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .sv-footer__grid{grid-template-columns:1fr 1fr;gap:32px;}
  .sv-newsletter__form{flex-direction:column;}
  .sv-section-head h2,.sv-jewelry__copy h2{font-size:30px;}
  .sv-section-head p{white-space:normal;}
}
@media (max-width:480px){
  .sv-product-grid{grid-template-columns:1fr;}
  .sv-footer__grid{grid-template-columns:1fr;}
}

/* ==========================================================================
   DURCISSEMENT CONTRASTE
   Blocksy force la couleur des liens (<a>) en !important, ce qui rendait
   le texte des boutons noirs invisible sur fond noir. On rétablit le bon
   contraste bouton par bouton, avec une spécificité qui gagne la cascade.
   ========================================================================== */
body.sv-theme .sv-btn{ color:var(--sv-cream) !important; }                 /* fond noir  -> texte crème */
body.sv-theme .sv-btn-outline{ color:var(--sv-black) !important; }         /* fond clair -> texte noir  */
body.sv-theme .sv-hero__text .sv-btn-outline{ color:var(--sv-cream) !important; border-color:var(--sv-cream) !important; }
body.sv-theme .sv-story__text .sv-btn{ color:var(--sv-black) !important; } /* fond camel -> texte noir  */
body.sv-theme .sv-add-to-cart{ color:var(--sv-cream) !important; }         /* fond noir  -> texte crème */
body.sv-theme .sv-add-to-cart.sv-btn-outline,
body.sv-theme a.sv-add-to-cart:not(.add_to_cart_button){ /* variante "Voir le produit" reste lisible */ }

/* Masquer le bandeau natif WooCommerce (déjà repris dans notre topbar camel) */
body.sv-theme .woocommerce-store-notice,
body.sv-theme p.demo_store{ display:none !important; }
