/*
Theme Name: Swatch × Omega — Déstockage
Theme URI: https://example.local/swatch-omega
Description: Thème PHP autonome (pas de framework) reproduisant l'identité visuelle Bioceramic MoonSwatch (Swatch × Omega) pour la boutique de déstockage. Contenu utilisé avec l'autorisation de Swatch.
Author: MoonSwatch Déstockage
Version: 2.0.0
Text Domain: swatch-omega
*/

/* ============================================================
   FONTS — SwatchCTWeb (police officielle Swatch, autorisée)
   ============================================================ */
@font-face{
  font-family:"SwatchCTWeb";
  src:url("assets/fonts/swatch_ct_regular-webfont.woff") format("woff");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"SwatchCTWeb";
  src:url("assets/fonts/swatch_ct_bold-webfont.woff") format("woff");
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"SwatchCTWeb";
  src:url("assets/fonts/swatch_ct_italic-webfont.woff") format("woff");
  font-weight:400;font-style:italic;font-display:swap;
}

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root{
  --so-bg:#000;
  --so-bg-2:#0c0c0c;
  --so-fg:#fff;
  --so-muted:#9b9b9b;
  --so-line:#2a2a2a;
  --so-red:#ff0000;
  --so-blue:#0a2b6b;
  --so-pink:#e8a0c0;
  --so-gold:#b8912f;
  --so-font:"SwatchCTWeb","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --so-maxw:1500px;
  --so-header-h:64px;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{background:var(--so-bg);overflow-x:hidden;}
body{
  margin:0;
  background:var(--so-bg);
  color:var(--so-fg);
  font-family:var(--so-font);
  -webkit-font-smoothing:antialiased;
  letter-spacing:.01em;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
ul{list-style:none;margin:0;padding:0;}
a{color:var(--so-fg);text-decoration:none;}
a:hover{opacity:.7;}
button,input,select,textarea{font-family:var(--so-font);}

h1,h2,h3,h4,h5,.entry-title,.widget-title{
  font-family:var(--so-font);
  color:var(--so-fg);
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:700;
  line-height:1.1;
  margin:0 0 .6em;
}

.so-wrap{max-width:var(--so-maxw);margin:0 auto;padding:0 24px;}
.screen-reader-text{position:absolute;left:-9999px;}

/* ============================================================
   HEADER
   ============================================================ */
.so-header{
  position:sticky;top:0;z-index:50;
  background:var(--so-bg);
  border-bottom:1px solid var(--so-line);
  height:var(--so-header-h);
  display:flex;align-items:center;
}
.so-header .so-wrap{
  display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;
}
.so-logo{
  font-size:18px;letter-spacing:.32em;text-transform:uppercase;font-weight:700;color:var(--so-fg);
}
.so-nav{flex:1;display:flex;justify-content:center;}
.so-nav-list{display:flex;gap:28px;}
.so-nav a{
  text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:400;color:var(--so-fg);
}
.so-nav a:hover{opacity:.6;}
.so-header-actions{display:flex;align-items:center;gap:20px;}
.so-cart{position:relative;display:flex;align-items:center;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;}
.so-cart .count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:16px;height:16px;padding:0 4px;border-radius:50%;
  background:var(--so-red);color:#fff;font-size:10px;
}
.so-burger{display:none;background:none;border:0;color:var(--so-fg);font-size:20px;cursor:pointer;}

.so-search-toggle{
  background:none;border:0;outline:0;box-shadow:none;-webkit-tap-highlight-color:transparent;
  color:var(--so-fg);font-size:16px;cursor:pointer;
  line-height:1;padding:4px;
}
.so-search-toggle:focus{outline:0;box-shadow:none;}

.so-search-bar{
  position:absolute;top:100%;left:0;right:0;
  max-height:0;overflow:hidden;background:var(--so-bg-2);border-top:0 solid var(--so-line);
  transition:max-height .25s ease;
}
.so-search-bar.is-open{max-height:80px;border-top-width:1px;}
.so-search-form{
  max-width:var(--so-maxw);margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;gap:12px;
}
.so-search-form input[type="search"]{
  flex:1;background:transparent;border:0;border-bottom:1px solid var(--so-line);
  color:var(--so-fg);font-size:15px;padding:6px 0;outline:0;
}
.so-search-form input[type="search"]::placeholder{color:var(--so-muted);}
.so-search-form button{background:none;border:0;color:var(--so-fg);font-size:16px;cursor:pointer;}

@media (max-width:900px){
  .so-nav{display:none;}
  .so-burger{display:block;}
  .so-search-form{padding:14px 16px;}
}

/* ============================================================
   BUTTONS  (Swatch style : filet fin, majuscules, invert au survol)
   ============================================================ */
.wp-block-button__link,
.button,
button,input[type="submit"],
a.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button{
  background:transparent !important;
  color:var(--so-fg) !important;
  border:1px solid var(--so-fg) !important;
  border-radius:0 !important;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  font-weight:700;
  padding:16px 34px !important;
  transition:all .18s ease;
  box-shadow:none !important;
  cursor:pointer;
  display:inline-block;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce .single_add_to_cart_button:hover,
.button:hover,
input[type="submit"]:hover{
  background:var(--so-fg) !important;
  color:#000 !important;
}

.so-link{
  display:inline-block;border-bottom:2px solid var(--so-red);
  padding-bottom:4px;text-transform:uppercase;letter-spacing:.16em;
  font-size:12px;font-weight:700;
}

/* ============================================================
   WOOCOMMERCE — GRILLE BOUTIQUE
   ============================================================ */
.woocommerce ul.products,
.woocommerce-page ul.products{
  gap:0;display:grid;grid-template-columns:repeat(4,1fr);
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none !important;content:none !important;} /* clearfix WooCommerce hérité, invalide en grid */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  display:block !important; /* évite le marker fantôme d'un <li> dans une grille CSS (bug Chrome) */
  background:var(--so-bg-2);
  border:1px solid var(--so-line);
  margin:0 -1px -1px 0 !important;
  padding:34px 24px 30px;
  text-align:center;
  transition:background .2s ease;
  width:auto !important;
  float:none !important;
}
.woocommerce ul.products li.product:hover{background:#151515;}
.woocommerce ul.products li.product a img{
  margin:0 auto 22px;
  background:transparent;
  mix-blend-mode:normal;
  max-width:78%;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:13px !important;
  text-transform:uppercase;
  letter-spacing:.11em;
  color:var(--so-fg);
  padding:0 0 6px !important;
  font-weight:700;
}
.woocommerce ul.products li.product .price{
  color:var(--so-muted) !important;
  font-size:13px;
  font-weight:400;
}
.woocommerce ul.products li.product .price del{opacity:.5;}
.woocommerce ul.products li.product .price ins{color:var(--so-red);text-decoration:none;font-weight:700;}
.woocommerce ul.products li.product .button{
  margin-top:16px;
  padding:12px 24px !important;
  font-size:11px;
}
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale{
  background:var(--so-red);color:#fff;border-radius:0;
  min-height:auto;min-width:auto;padding:6px 12px;
  font-size:10px;letter-spacing:.12em;line-height:1;
  top:0;right:0;left:auto;margin:0;
}

.woocommerce-products-header__title,
.woocommerce .woocommerce-breadcrumb{
  color:var(--so-fg);
}
.woocommerce-products-header__title.page-title{
  text-align:center;font-size:34px;letter-spacing:.12em;margin-bottom:10px;
}
.woocommerce .woocommerce-breadcrumb{max-width:var(--so-maxw);margin:20px auto;padding:0 24px;color:var(--so-muted);}
.woocommerce .woocommerce-breadcrumb a{color:var(--so-muted);}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{color:var(--so-muted);}
.woocommerce .woocommerce-ordering select{
  background:#0c0c0c;color:var(--so-fg);border:1px solid var(--so-line);
  padding:10px 14px;border-radius:0;
}
.woocommerce-pagination{text-align:center;padding:40px 0;}
.woocommerce-pagination .page-numbers li{display:inline-block;margin:0 4px;}
.woocommerce-pagination a,.woocommerce-pagination span{
  color:var(--so-fg);border:1px solid var(--so-line);padding:8px 14px;display:inline-block;
}
.woocommerce-pagination .current{background:var(--so-fg);color:#000;}

/* ============================================================
   WOOCOMMERCE — FICHE PRODUIT
   ============================================================ */
/* fiche produit = fond BLANC comme sur swatch.com (le reste du site reste noir) */
body.single-product{background:#fff;}
.single-product #primary{background:#fff;}
.single-product div.product{
  color:#111;max-width:var(--so-maxw);margin:0 auto;padding:40px 24px;
  display:grid;grid-template-columns:1.6fr 1fr;gap:70px;align-items:start;
  background:#fff;
}
.single-product .woocommerce-breadcrumb{color:#666;}
.single-product .woocommerce-breadcrumb a{color:#666;}
.single-product h1,.single-product h2,.single-product h3,.single-product h4{color:#111;}
.single-product .product_title{color:#111;}
.single-product .price,
.single-product .woocommerce-Price-amount{color:#111 !important;}
.single-product .price del .woocommerce-Price-amount{color:#999 !important;}
.single-product .woocommerce-product-details__short-description{color:#444;}
.single-product .so-destock-note{color:#888;}
.single-product .so-spec-badges .so-badge{border-color:#ddd;color:#555;}
.single-product span.posted_in a{background:#111;color:#fff;}
.single-product .woocommerce-tabs,
.single-product .related.products{background:#f7f7f7;color:#111;padding:50px 24px;}
.single-product .woocommerce-tabs .tabs{border-bottom-color:#e5e5e5;justify-content:center;display:flex;gap:30px;list-style:none;margin:0 0 40px;padding:0;}
.single-product .woocommerce-tabs ul.tabs li{margin:0;background:none !important;border:0 !important;padding:0 !important;border-radius:0 !important;}
.single-product .woocommerce-tabs ul.tabs li a{color:#888 !important;padding:0 !important;text-decoration:none;font-weight:400 !important;white-space:nowrap;}
.single-product .woocommerce-tabs ul.tabs li.active a{color:#111 !important;text-decoration:none;font-weight:700 !important;}
.single-product .woocommerce-tabs ul.tabs::before{border-color:#e5e5e5;}
.single-product .woocommerce-Tabs-panel *{color:#333;}
.single-product .woocommerce-Tabs-panel{max-width:var(--so-maxw);margin:0 auto;}

/* onglet Description : texte + petit aperçu produit au milieu/à droite */
.so-tab-with-image{display:flex;gap:60px;align-items:flex-start;justify-content:center;}
.so-tab-with-image .txt{max-width:44ch;color:#333;}
.so-tab-with-image .ph{flex:0 0 auto;width:260px;}
.so-tab-with-image .ph img{width:100%;height:auto;display:block;}
.single-product .so-features-list li,
.single-product .so-specs-table th,
.single-product .so-specs-table td{border-color:#e5e5e5;}
.single-product .so-specs-table th{color:#888;}
.single-product .so-specs-table td{color:#111;}
.single-product .flex-control-thumbs li img{border-color:#e5e5e5;opacity:.6;}
.single-product .flex-control-thumbs li img.flex-active,
.single-product .flex-control-thumbs li img:hover{opacity:1;border-color:#111;}
.single-product .quantity input.qty{background:#fff;color:#111;border-color:#ddd;}
.single-product .button,
.single-product a.button,
.single-product button.button,
.single-product .single_add_to_cart_button{
  background:#fff !important;color:#111 !important;border:1px solid #111 !important;
}
.single-product .button:hover,
.single-product .single_add_to_cart_button:hover{background:#111 !important;color:#fff !important;}
.single-product .related.products h2{color:#111;}
.single-product .related.products ul.products li.product{background:#f7f7f7;border-color:#e5e5e5;}
.single-product .related.products ul.products li.product .woocommerce-loop-product__title{color:#111;}
.single-product .related.products ul.products li.product .price{color:#666 !important;}
.single-product .related.products ul.products li.product .button{border-color:#111 !important;color:#111 !important;}
.single-product .related.products ul.products::before,
.single-product .related.products ul.products::after{display:none !important;}
.single-product .so-footer{background:var(--so-bg);} /* footer reste noir, cohérent avec le reste du site */
.single-product div.product > .woocommerce-tabs,
.single-product div.product > .related.products,
.single-product div.product > #reviews{grid-column:1/-1;}

/* catégorie en badge au-dessus du titre */
.single-product .product_meta,
.single-product span.posted_in{display:block;margin-bottom:10px;}
.single-product span.posted_in a{
  display:inline-block;background:var(--so-fg);color:#000;text-transform:uppercase;
  font-size:11px;font-weight:700;letter-spacing:.1em;padding:6px 12px;
}
.single-product span.posted_in{font-size:0;}

.single-product .product_title{
  font-size:30px;letter-spacing:.1em;margin-bottom:14px;
}

/* galerie : miniatures verticales à gauche, image principale à droite (comme swatch.com) */
.single-product .woocommerce-product-gallery{display:flex;gap:16px;position:relative;}
.single-product .woocommerce-product-gallery .flex-viewport{flex:1;order:2;min-width:0;overflow:hidden;position:relative;}
.single-product .woocommerce-product-gallery__wrapper{width:100%;}
.single-product .flex-control-thumbs{
  order:1;display:flex;flex-direction:column;gap:14px;width:150px;flex:0 0 150px;
  list-style:none;margin:0;padding:0;max-height:820px;overflow-y:auto;
}
.single-product .flex-control-thumbs li{width:100%;}
.single-product .flex-control-thumbs li img{width:100%;height:auto;display:block;cursor:pointer;}
.single-product .woocommerce-product-gallery__trigger{
  position:absolute;top:10px;right:10px;z-index:2;order:initial;
}
.so-gallery-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:48px;height:48px;border:0 !important;background:rgba(0,0,0,.6) !important;
  color:#fff;font-size:30px;line-height:1;cursor:pointer;border-radius:50%;
  display:flex;align-items:center;justify-content:center;padding:0 !important;
  box-shadow:0 2px 10px rgba(0,0,0,.25);
}
.so-gallery-arrow.prev{left:12px;}
.so-gallery-arrow.next{right:12px;}
.so-gallery-arrow:hover{background:#fff !important;}

/* badges caractéristiques : boîtier seul sur une ligne, puis étanchéité+mouvement */
.so-spec-badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;}
.so-spec-badges-row2{margin:0 0 18px;}
.so-spec-badges .so-badge{
  border:1px solid var(--so-line);color:var(--so-muted);font-size:11px;
  letter-spacing:.05em;padding:7px 12px;text-transform:none;
}
.so-destock-note{
  color:#9b9b9b;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:14px 0 0;
}
.so-shipping-note{
  color:#2e7d32;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;margin:6px 0 0;
}
.single-product .so-shipping-note{color:#2e7d32;}

/* onglets caractéristiques / fiche technique */
.so-features-list{list-style:none;margin:0;padding:0;max-width:60ch;}
.so-features-list li{padding:10px 0;border-bottom:1px solid var(--so-line);color:var(--so-muted);}
.so-specs-table{border-collapse:collapse;max-width:60ch;width:100%;}
.so-specs-table th,.so-specs-table td{text-align:left;padding:12px 0;border-bottom:1px solid var(--so-line);}
.so-specs-table th{color:var(--so-muted);font-weight:400;width:40%;}
.so-specs-table td{color:var(--so-fg);}
.single-product .woocommerce-product-gallery{background:#fff;}
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  background:#0c0c0c;border-top:3px solid var(--so-red);color:var(--so-fg);
  max-width:var(--so-maxw);margin:20px auto;
}
.woocommerce-message a,.woocommerce-info a{color:var(--so-fg);}
.woocommerce .quantity input.qty{
  background:#0c0c0c;color:var(--so-fg);border:1px solid var(--so-line);border-radius:0;
}

/* tables panier / checkout */
.woocommerce-cart-form,.woocommerce-checkout,
.woocommerce table.shop_table{max-width:var(--so-maxw);margin:0 auto;border-color:var(--so-line);}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{border-color:var(--so-line);color:var(--so-fg);}
.woocommerce-cart table.cart img{width:80px;}
.select2-container--default .select2-selection--single,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  background:#0c0c0c;color:var(--so-fg);border:1px solid var(--so-line);border-radius:0;
}
.woocommerce-page,.woocommerce-cart,.woocommerce-checkout{padding:0 24px;}

/* PANIER = fond blanc comme le reste des pages "utilitaires" du site officiel */
body.woocommerce-cart{background:#fff;}
body.woocommerce-cart #primary{background:#fff;}
body.woocommerce-cart h1,body.woocommerce-cart h2,body.woocommerce-cart h3{color:#111;}
body.woocommerce-cart p,body.woocommerce-cart label,
body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-item__value{color:#111;}
body.woocommerce-cart .wc-block-cart-item__prices,
body.woocommerce-cart .wc-block-components-product-price,
body.woocommerce-cart .wc-block-components-product-metadata{color:#555;}
body.woocommerce-cart .wc-block-cart,
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-components-panel{color:#111;border-color:#e5e5e5 !important;}
body.woocommerce-cart .wc-block-cart-items thead th{color:#888;border-color:#e5e5e5;}
body.woocommerce-cart .wc-block-cart-item__wrap,
body.woocommerce-cart .wc-block-cart-items tr{border-color:#e5e5e5 !important;}
body.woocommerce-cart .wc-block-components-quantity-selector,
body.woocommerce-cart .wc-block-components-quantity-selector__input,
body.woocommerce-cart .wc-block-components-quantity-selector__button{
  background:#fff !important;color:#111 !important;border-color:#ddd !important;
}
body.woocommerce-cart .wc-block-components-button:not(.wc-block-cart-item__remove-link){
  background:#111 !important;color:#fff !important;border:1px solid #111 !important;
}
body.woocommerce-cart .wc-block-components-button:not(.wc-block-cart-item__remove-link):hover{
  background:#fff !important;color:#111 !important;
}
/* icône "supprimer" bien centrée dans son bouton */
.wc-block-cart-item__remove-link{
  display:inline-flex !important;align-items:center;justify-content:center;
  color:#111 !important;border-color:#111 !important;
}
.wc-block-cart-item__remove-link svg{display:block;fill:currentColor;width:20px !important;height:20px !important;flex-shrink:0;}

/* ============================================================
   FOOTER
   ============================================================ */
.so-footer{
  background:var(--so-bg);border-top:1px solid var(--so-line);color:var(--so-muted);
  padding:50px 0 24px;font-size:12px;
}
.so-footer a{color:var(--so-muted);}
.so-footer a:hover{color:var(--so-fg);opacity:1;}
.so-footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-bottom:40px;}
.so-footer-cols h4{font-size:11px;letter-spacing:.14em;color:var(--so-fg);margin-bottom:16px;}
.so-footer-cols li{margin-bottom:8px;}
.so-footer-bottom{
  border-top:1px solid var(--so-line);padding-top:20px;
  font-size:11px;letter-spacing:.06em;line-height:1.7;
}

/* ============================================================
   HOMEPAGE ÉDITORIALE  (front-page.php)
   ============================================================ */
.so-home section{position:relative;}

.so-hero{
  min-height:72vh;display:flex;flex-direction:column;justify-content:flex-end;
  align-items:center;text-align:center;padding:0 24px 6vh;
  background:radial-gradient(120% 90% at 50% 8%,#10203f 0%,#05070d 55%,#000 100%);
  overflow:hidden;
}
.so-hero video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.55;
  transform:scale(1.25); /* la vidéo source a des bandes noires "cinéma" intégrées à l'image, on zoome pour les sortir du cadre */
}
.so-hero::after{ /* champ d'étoiles CSS, fallback si pas de vidéo */
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.7;z-index:1;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 22%,#fff,transparent),
    radial-gradient(1.2px 1.2px at 28% 68%,#fff,transparent),
    radial-gradient(1.6px 1.6px at 47% 34%,#fff,transparent),
    radial-gradient(1.1px 1.1px at 63% 12%,#fff,transparent),
    radial-gradient(1.5px 1.5px at 78% 52%,#fff,transparent),
    radial-gradient(1.2px 1.2px at 88% 26%,#fff,transparent),
    radial-gradient(1.1px 1.1px at 38% 84%,#fff,transparent),
    radial-gradient(1.3px 1.3px at 70% 78%,#fff,transparent);
}
.so-hero::before{
  content:"";position:absolute;z-index:1;
  width:min(46vw,620px);aspect-ratio:1;border-radius:50%;
  left:50%;top:-24%;transform:translateX(-50%);
  background:radial-gradient(40% 40% at 34% 30%,#3f6fc4 0%,#1d3a72 45%,#0a1732 78%,#050c1c 100%);
  box-shadow:0 0 120px 30px rgba(30,60,120,.35);opacity:.9;
}
.so-hero.has-video::before,
.so-hero.has-video::after{content:none;display:none;} /* décor CSS de secours, inutile avec la vraie vidéo */
.so-hero > *{position:relative;z-index:2;}
.so-hero h1{
  font-size:clamp(28px,4.4vw,62px);letter-spacing:.16em;margin:0 0 18px;
}
.so-hero p{
  color:var(--so-muted);max-width:60ch;margin:0 auto 30px;font-size:15px;line-height:1.8;
}
.so-eyebrow{
  display:block;color:var(--so-muted);letter-spacing:.4em;font-size:11px;
  text-transform:uppercase;margin-bottom:20px;
}

.so-strip{padding:44px 0;text-align:center;border-top:1px solid var(--so-line);}
.so-strip h2{font-size:clamp(20px,2.4vw,30px);letter-spacing:.14em;margin:0 0 40px;}
.so-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--so-line);}
.so-grid4 .so-card{background:var(--so-bg-2);padding:34px 20px;text-align:center;}
.so-grid4 .so-card img{max-width:80%;margin:0 auto 18px;display:block;}
.so-grid4 .so-card .n,
.so-goldrow .so-card .n{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;}
.so-grid4 .so-card .p,
.so-goldrow .so-card .p{display:block;color:var(--so-muted);font-size:12px;margin-top:6px;}
.so-grid4 .so-card:hover,.so-goldrow .so-card:hover{background:#151515;}

.so-editorial{
  display:grid;grid-template-columns:1fr 1fr;align-items:center;
  min-height:52vh;border-top:1px solid var(--so-line);
}
.so-editorial .txt{padding:5vw 6vw;}
.so-editorial .txt h2{font-size:clamp(22px,2.6vw,36px);letter-spacing:.12em;margin:0 0 16px;}
.so-editorial .txt p{color:var(--so-muted);font-size:15px;line-height:1.85;max-width:46ch;margin:0 0 20px;}
.so-editorial .media{
  align-self:stretch;background:#0c0c0c;display:flex;align-items:center;justify-content:center;
  padding:4vw;min-height:42vh;position:relative;overflow:hidden;
}
.so-editorial .media img{max-width:74%;filter:drop-shadow(0 40px 80px rgba(0,0,0,.6));}
.so-editorial .media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.so-editorial.rev .txt{order:2;}
.so-editorial.rev .media{order:1;}

.so-panel{
  min-height:58vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:6vh 24px;border-top:1px solid var(--so-line);position:relative;overflow:hidden;
  background:#0a0a0a;
}
.so-panel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.6;}
.so-panel > *{position:relative;z-index:1;}
.so-panel.blue{background:linear-gradient(180deg,#0a2b6b 0%,#061634 100%);}
.so-panel.pink{background:linear-gradient(180deg,#e79ec0 0%,#c9749d 100%);color:#1a1a1a;}
.so-panel.pink h2,.so-panel.pink .so-eyebrow{color:#1a1a1a;}
.so-panel.pink p{color:#3a2530;}
.so-panel.gold{background:linear-gradient(180deg,#161310 0%,#000 100%);}
.so-panel h2{font-size:clamp(24px,3.2vw,44px);letter-spacing:.14em;margin:0 0 18px;}
.so-panel p{color:var(--so-muted);max-width:54ch;margin:0 auto 28px;line-height:1.8;}
.so-panel img{max-width:min(420px,70vw);margin:34px auto 0;display:block;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.45));}
.so-panel.pink .button,.so-panel.pink .so-link{border-color:#1a1a1a;color:#1a1a1a;}
.so-panel.pink .button:hover{background:#1a1a1a !important;color:#fff !important;}

.so-goldrow{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--so-line);
  border-top:1px solid var(--so-line);}
.so-goldrow .so-card{background:var(--so-bg-2);padding:30px 14px;text-align:center;}
.so-goldrow .so-card img{max-width:82%;margin:0 auto 14px;display:block;}
.so-goldrow .so-card .n{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;}
.so-goldrow .so-card .p{color:var(--so-muted);font-size:11px;margin-top:4px;}

.so-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--so-line);
  border-top:1px solid var(--so-line);}
.so-cards3.so-cards2{grid-template-columns:repeat(2,1fr);}
.so-cards3.so-cards4{grid-template-columns:repeat(4,1fr);}

/* slider de cartes promo / produits similaires (même mécanique que "which mission") */
.so-card-slider{position:relative;}
.so-card-track{
  display:flex;gap:25px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
}
.so-card-track::-webkit-scrollbar{display:none;}
.so-card-slide{
  flex:0 0 auto;width:calc((100% - 3*25px)/4);scroll-snap-align:start;
  background:var(--so-bg-2);padding:0 0 30px;text-align:center;
}
.so-card-slide img{width:100%;height:220px;object-fit:cover;margin-bottom:26px;}
.so-card-slide h3{font-size:15px;letter-spacing:.12em;margin:0 18px 14px;}
.so-card-slide p{color:var(--so-muted);font-size:13px;line-height:1.7;margin:0 18px 22px;}
.so-cards3 .so-card{background:var(--so-bg-2);padding:60px 34px;text-align:center;}
.so-cards3 .so-card img{width:100%;height:200px;object-fit:cover;margin-bottom:26px;}

/* rangée de petites icônes planètes */
.so-mission-icons{
  display:flex;justify-content:center;flex-wrap:wrap;gap:36px;
  margin:0 0 50px;padding-bottom:34px;border-bottom:1px solid var(--so-line);
}
.so-mission-icon{display:block;width:84px;height:84px;opacity:.8;transition:opacity .15s ease,transform .15s ease;}
.so-mission-icon:hover{opacity:1;transform:translateY(-2px);}
.so-mission-icon img{width:100%;height:100%;object-fit:contain;}

/* slider des montres — image plein cadre, libellé en bouton bas-gauche */
.so-mission-slider{position:relative;}
.so-mission-track{
  display:flex;gap:25px;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;
}
.so-mission-track::-webkit-scrollbar{display:none;}
.so-mission-slide{
  flex:0 0 auto;width:calc((100% - 3*25px)/4);aspect-ratio:2/3;scroll-snap-align:start;
  position:relative;display:block;overflow:hidden;background:#000;
}
.so-mission-slide img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.so-mission-slide:hover img{transform:scale(1.04);}
.so-mission-slide .n{
  position:absolute;left:20px;bottom:20px;z-index:1;
  border:1px solid #fff;color:#fff;background:rgba(0,0,0,.15);
  padding:14px 22px;text-transform:uppercase;letter-spacing:.08em;font-size:14px;font-weight:700;
  max-width:calc(100% - 40px);
}
/* flèches en overlay par-dessus le slider, ne réduisent pas la largeur des slides */
.so-slider-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:56px;height:56px;border:0 !important;background:transparent !important;color:var(--so-fg);
  font-size:44px;line-height:1;cursor:pointer;transition:opacity .15s ease;
  display:flex;align-items:center;justify-content:center;opacity:.85;
  padding:0 !important;letter-spacing:0;text-transform:none;
  text-shadow:0 2px 10px rgba(0,0,0,.8);
}
.so-slider-arrow.prev{left:-64px;}
.so-slider-arrow.next{right:-64px;}
.so-slider-arrow:hover{opacity:1;transform:translateY(-50%) scale(1.1);}
@media (max-width:1650px){
  .so-slider-arrow.prev{left:8px;}
  .so-slider-arrow.next{right:8px;}
}

.so-editorial .media.so-media-duo{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:0 !important;align-items:stretch;}
.so-editorial .media.so-media-duo a{display:block;overflow:hidden;}
.so-editorial .media.so-media-duo img{width:100%;height:100%;object-fit:cover;max-width:100%;filter:none;transition:transform .3s ease;}
.so-editorial .media.so-media-duo a:hover img{transform:scale(1.04);opacity:1;}

.so-earth3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--so-line);}
.so-earth-card{
  position:relative;overflow:hidden;background:#0c0c0c;
  min-height:48vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  padding:28px 24px;text-align:center;
}
.so-earth-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.65;}
.so-earth-card .ph{position:relative;z-index:1;display:block;max-width:70%;margin:0 auto 14px;}
.so-earth-card .ph img{max-width:100%;filter:drop-shadow(0 20px 30px rgba(0,0,0,.6));}
.so-earth-card .n{position:relative;z-index:1;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;}
.so-cards3 .so-card h3{font-size:15px;letter-spacing:.12em;margin:0 0 14px;}
.so-cards3 .so-card p{color:var(--so-muted);font-size:13px;line-height:1.7;margin:0 0 22px;}

/* sections sombres réutilisées sur la fiche produit (fond blanc) */
.so-product-extra{background:var(--so-bg);color:var(--so-fg);}
.so-product-extra h1,.so-product-extra h2,.so-product-extra h3,.so-product-extra h4,
.so-product-extra a{color:var(--so-fg) !important;}
.so-product-extra .so-eyebrow,.so-product-extra p{color:var(--so-muted) !important;}
.so-related-after{background:#fff;padding:40px 0 60px;}
.so-related-after h2{color:#111;font-size:26px;letter-spacing:.06em;margin-bottom:24px;}
.so-related-after .so-card-track{background:transparent;}
.so-related-slide{
  display:block;background:#f7f7f7;border:1px solid #ececec;color:#111;
  padding:24px 18px 26px;text-align:center;
}
.so-related-slide img{width:100%;height:200px;object-fit:contain;background:#fff;margin-bottom:18px;}
.so-related-slide h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;color:#111;}
.so-related-slide .price{color:#666;font-size:13px;}
.so-related-after .so-slider-arrow{color:#111;text-shadow:none;}

.so-endvideo{
  position:relative;height:50vh;overflow:hidden;background:#000;background-size:cover;background-position:center;
  border-top:1px solid var(--so-line);
}
.so-endvideo video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.25);}

.so-note{
  text-align:center;color:#6a6a6a;font-size:11px;letter-spacing:.08em;
  padding:40px 24px;border-top:1px solid var(--so-line);line-height:1.7;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .so-editorial{grid-template-columns:1fr;}
  .so-editorial.rev .txt{order:1;}
  .so-editorial.rev .media{order:2;}
  .so-editorial .media{min-height:52vh;padding:12vw;}
  .so-grid4{grid-template-columns:repeat(2,1fr);}
  .so-goldrow{grid-template-columns:repeat(2,1fr);}
  .so-earth3{grid-template-columns:1fr;}
  .so-mission-slide{width:min(260px,78vw);}
  .so-mission-icons{gap:18px;}
  .so-mission-icon{width:26px;height:26px;}
  .so-media-duo{grid-template-columns:1fr;}
  .so-cards3,.so-cards3.so-cards2,.so-cards3.so-cards4{grid-template-columns:1fr;}
  .so-footer-cols{grid-template-columns:repeat(2,1fr);}
  .woocommerce ul.products li.product{padding:26px 16px;}
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
  .so-grid4{grid-template-columns:1fr;}
  .so-goldrow{grid-template-columns:1fr;}
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:1fr;}
}

/* ============================================================
   RESPONSIVE — HEADER (menu burger fonctionnel)
   ============================================================ */
@media (max-width:900px){
  body{padding-left:0 !important;padding-right:0 !important;}
  .so-header{position:sticky;}
  .so-nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:var(--so-bg);border-bottom:1px solid var(--so-line);
    flex-direction:column;padding:10px 24px 20px;
  }
  .so-nav.is-open{display:flex;}
  .so-nav-list{flex-direction:column;gap:0;width:100%;}
  .so-nav-list li{border-bottom:1px solid var(--so-line);}
  .so-nav-list a{display:block;padding:16px 0;}
  .so-header-actions{gap:14px;}
}

/* ============================================================
   RESPONSIVE — FICHE PRODUIT
   ============================================================ */
@media (max-width:900px){
  .single-product div.product{grid-template-columns:1fr;gap:14px;padding:0 0 24px;}
  .single-product .woocommerce-product-gallery{
    flex-direction:column;margin-bottom:0 !important;
    width:calc(100% + 48px) !important;margin-left:-24px !important;margin-right:-24px !important;
  }
  .single-product .woocommerce-product-gallery .flex-viewport{order:1;width:100%;}
  /* pas de miniatures sur mobile — juste l'image + les flèches */
  .single-product .flex-control-thumbs{display:none !important;}
  .single-product .product_title{font-size:24px;}
  .single-product .so-destock-note{font-size:9.5px;letter-spacing:.04em;margin:10px 0 4px;white-space:nowrap;}
  .single-product .so-shipping-note{font-size:9.5px;letter-spacing:.04em;margin:0 0 16px;white-space:nowrap;}
  .single-product form.cart{margin-bottom:20px !important;}
  .single-product .summary > *:last-child{margin-bottom:20px !important;}
  .so-spec-badges{gap:6px;}
  .so-spec-badges .so-badge{font-size:10px;padding:6px 10px;}

  /* bouton "Ajouter au panier" centré, coloré selon la couleur dominante de la montre */
  .single-product form.cart{display:flex;justify-content:center;}
  .single-product button.button.single_add_to_cart_button{
    display:block;margin:0 auto;
    background:var(--swo-btn-bg,#fff) !important;
    color:var(--swo-btn-text,#111) !important;
    border-color:var(--swo-btn-bg,#111) !important;
  }

  /* flèches : plus de cercle, juste le chevron, plus foncé */
  .so-gallery-arrow{
    width:40px;height:40px;background:transparent !important;box-shadow:none;
    color:#000;font-size:38px;font-weight:700;text-shadow:0 1px 4px rgba(255,255,255,.6);
  }

  .single-product .woocommerce-tabs{padding:0 16px 28px;margin-top:0 !important;}
  .single-product .related.products{padding:28px 16px;}
  .single-product div.product{row-gap:0;}
  .single-product .woocommerce-product-gallery{margin-bottom:14px !important;}
  .single-product .summary{margin-bottom:0 !important;}
  .single-product .woocommerce-tabs .tabs{row-gap:14px;column-gap:22px;flex-wrap:wrap;justify-content:center;margin-bottom:24px;}
  .single-product .woocommerce-tabs ul.tabs li a{font-size:14px;}
  .so-tab-with-image{flex-direction:column-reverse;gap:24px;}
  .so-tab-with-image .txt{max-width:100%;}
  .so-tab-with-image .ph{width:100%;max-width:280px;margin:0 auto;}

  /* planètes "which mission" : 3 rangées (4+4+3), donc chaque icône peut être bien plus grande */
  .so-mission-icons{flex-wrap:wrap;row-gap:22px;column-gap:4%;}
  .so-mission-icon{flex:0 0 22%;width:auto;height:auto;aspect-ratio:1;}

  .so-slider-arrow{width:40px;height:40px;font-size:32px;}
  .so-slider-arrow.prev{left:0;}
  .so-slider-arrow.next{right:0;}
  .so-mission-slide{width:calc((100% - 16px)/2);}
  .so-mission-track{gap:16px;}

  .so-cards3.so-cards4{grid-template-columns:repeat(2,1fr);}
  .so-endvideo{height:44vh;}
  .so-card-slide{width:calc((100% - 16px)/2);}
}
@media (max-width:600px){
  .single-product .flex-viewport img{width:100% !important;height:64vh !important;object-fit:cover;}
  .so-cards3.so-cards4{grid-template-columns:1fr;}
  .so-mission-slide{width:calc(100% - 60px);}
  .so-card-slide{width:calc(100% - 60px);}
}

/* -------------------------------------------------------------
 * Page pilier SEO /moonswatch/
 * ----------------------------------------------------------- */
.so-seo-page{color:var(--so-fg);}
.so-seo-page h1{font-size:34px;line-height:1.2;margin:0 0 18px;max-width:900px;}
.so-seo-page h2{font-size:24px;margin:48px 0 16px;padding-top:8px;border-top:1px solid var(--so-line);}
.so-seo-page h2:first-of-type{border-top:0;}
.so-seo-page h3{font-size:18px;margin:28px 0 12px;color:var(--so-fg);}
.so-seo-page p{color:var(--so-muted);line-height:1.7;max-width:900px;margin:0 0 14px;}
.so-seo-page strong{color:var(--so-fg);font-weight:600;}
.so-seo-lede{font-size:17px !important;color:var(--so-fg) !important;max-width:820px;}
.so-seo-page a{color:var(--so-fg);text-decoration:underline;text-underline-offset:3px;}
.so-cta-inline{text-transform:uppercase;font-size:12px;letter-spacing:.08em;}
.so-breadcrumb{font-size:12px;color:var(--so-muted);letter-spacing:.04em;margin-bottom:28px;}
.so-breadcrumb a{color:var(--so-muted);text-decoration:none;}
.so-breadcrumb a:hover{color:var(--so-fg);}
.so-breadcrumb span{margin:0 6px;}

.so-seo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0 8px;}
.so-seo-card{display:flex;flex-direction:column;border:1px solid var(--so-line);padding:14px;text-decoration:none !important;}
.so-seo-card img{width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#0c0c0c;margin-bottom:10px;}
.so-seo-card .n{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--so-fg);margin-bottom:4px;}
.so-seo-card .p{font-size:13px;color:var(--so-muted);}

.so-seo-faq{max-width:820px;}
.so-seo-faq details{border-bottom:1px solid var(--so-line);padding:16px 0;}
.so-seo-faq summary{cursor:pointer;color:var(--so-fg);font-size:15px;font-weight:600;list-style:none;}
.so-seo-faq summary::-webkit-details-marker{display:none;}
.so-seo-faq summary::after{content:"+";float:right;font-weight:400;}
.so-seo-faq details[open] summary::after{content:"−";}
.so-seo-faq p{margin-top:12px;}

@media(max-width:900px){
  .so-seo-grid{grid-template-columns:repeat(2,1fr);}
  .so-seo-page h1{font-size:26px;}
}
