/*
Theme Name: Orvea
Description: Thème enfant Shoptimizer pour Orvea — mobilier premium. DA « Minérale claire » : porcelaine, graphite, bordeaux profond.
Author: Orvea
Template: shoptimizer
Version: 1.0.2
Text Domain: orvea-child
*/

/* ================================================================
   ORVEA — DA « Minérale claire »
   Porcelaine #F7F7F5 · Graphite #23232A · Pierre #8B8B90
   Filets #E4E4E1 · Bordeaux profond #6E2B3A
   Typo : Familjen Grotesk
================================================================ */

:root {
  --ov-porcelain: #F7F7F5;
  --ov-white: #FFFFFF;
  --ov-ink: #23232A;
  --ov-stone: #8B8B90;
  --ov-line: #E4E4E1;
  --ov-bdx: #6E2B3A;
  --ov-bdx-dark: #591F2D;
  --ov-radius: 8px;
  --ov-shadow: 0 1px 2px rgba(35,35,42,.04);
  --ov-font: "Familjen Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* ---------- Base / typographie (prime sur kirki-inline-styles) ---------- */
html { background: var(--ov-porcelain); }
body,
body p,
body li,
body input,
body select,
body textarea,
body button,
body .button,
h1, h2, h3, h4, h5, h6,
.site-header, .main-navigation,
.woocommerce-loop-product__title,
.product_title,
.price, .amount {
  font-family: var(--ov-font) !important;
}
body {
  background: var(--ov-porcelain) !important;
  color: var(--ov-ink) !important;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
  color: var(--ov-ink) !important;
  font-weight: 600 !important;
  letter-spacing: -0.015em;
  line-height: 1.15;
}
a { color: var(--ov-ink); transition: color .18s ease; }
a:hover { color: var(--ov-bdx); }

.ov-label {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ov-stone);
}

/* ---------- Masque les éléments hérités (header/footer natifs, topbar, sidebar) ---------- */
.site-header,
#masthead,
.col-full-nav,
.shoptimizer-topbar,
.c-top-bar,
.top-bar,
#shoptimizer-top-bar,
.mp-topbar,
#mp-topbar-css,
.site-footer,
#colophon,
.smart-search-suggestions,
.header-4 .site-search,
#tp-modal, #tp-modal-overlay,
.floating-button,
.shoptimizer-callback,
#secondary,
.widget-area.sidebar {
  display: none !important;
}
.content-area, .site-main { width: 100% !important; }

/* ================================================================
   HEADER ORVEA
================================================================ */
.ov-header {
  position: sticky;
  top: 0;
  z-index: 900;
  background: rgba(247,247,245,.94);
  backdrop-filter: saturate(1.2) blur(10px);
  -webkit-backdrop-filter: saturate(1.2) blur(10px);
  border-bottom: 1px solid var(--ov-line);
}
.ov-header__notice {
  text-align: center;
  font-size: 12.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ov-porcelain);
  background: var(--ov-ink);
  padding: 9px 16px;
}
.ov-header__notice strong { color: #fff; font-weight: 600; }
.ov-header__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: 72px;
}
.ov-logo {
  font-size: 27px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ov-ink) !important;
  text-decoration: none !important;
  line-height: 1;
  display: inline-flex;
  align-items: baseline;
}
.ov-logo em { font-style: normal; color: var(--ov-bdx); }
.ov-nav { display: flex; align-items: center; gap: 30px; }
.ov-nav a {
  font-size: 15px;
  font-weight: 500;
  color: var(--ov-ink) !important;
  text-decoration: none !important;
  padding: 6px 0;
  border-bottom: 2px solid transparent;
}
.ov-nav a:hover { color: var(--ov-bdx) !important; border-bottom-color: var(--ov-bdx); }
.ov-header__tools { display: flex; align-items: center; gap: 18px; }
.ov-header__tools a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--ov-ink) !important;
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 500;
}
.ov-header__tools a:hover { color: var(--ov-bdx) !important; }
.ov-header__tools svg { width: 21px; height: 21px; stroke: currentColor; }
.ov-cart-count {
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--ov-bdx);
  color: var(--ov-porcelain);
  font-size: 11.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.ov-burger {
  display: none;
  background: none;
  border: 0;
  padding: 6px;
  cursor: pointer;
  color: var(--ov-ink);
}
.ov-burger svg { width: 26px; height: 26px; }

/* Menu mobile */
.ov-mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: var(--ov-porcelain);
  padding: 24px;
  overflow-y: auto;
}
.ov-mobile-menu.is-open { display: block; }
.ov-mobile-menu__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 34px;
}
.ov-mobile-menu__close { background: none; border: 0; cursor: pointer; padding: 6px; color: var(--ov-ink); }
.ov-mobile-menu__close svg { width: 26px; height: 26px; }
.ov-mobile-menu nav a {
  display: block;
  font-size: 24px;
  font-weight: 600;
  color: var(--ov-ink) !important;
  text-decoration: none !important;
  padding: 15px 0;
  border-bottom: 1px solid var(--ov-line);
}
.ov-mobile-menu nav a:hover { color: var(--ov-bdx) !important; }
.ov-mobile-menu__meta { margin-top: 28px; }
.ov-mobile-menu__meta a {
  display: block;
  font-size: 15px;
  color: var(--ov-stone) !important;
  text-decoration: none !important;
  padding: 7px 0;
}

@media (max-width: 980px) {
  .ov-nav { display: none; }
  .ov-burger { display: inline-flex; }
  .ov-header__inner { height: 62px; }
  .ov-header__tools a span.ov-tool-label { display: none; }
}

/* ================================================================
   FOOTER ORVEA
================================================================ */
.ov-footer {
  background: var(--ov-white);
  border-top: 1px solid var(--ov-line);
  margin-top: 80px;
}
.ov-footer__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 64px 24px 40px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
}
.ov-footer__brand p { color: var(--ov-stone); font-size: 15px; max-width: 300px; margin-top: 14px; }
.ov-footer h4 {
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ov-stone) !important;
  margin: 0 0 18px;
}
.ov-footer ul { list-style: none; margin: 0; padding: 0; }
.ov-footer ul li { margin: 0 0 11px; }
.ov-footer ul a {
  color: var(--ov-ink) !important;
  text-decoration: none !important;
  font-size: 15px;
}
.ov-footer ul a:hover { color: var(--ov-bdx) !important; }
.ov-footer__bottom { border-top: 1px solid var(--ov-line); }
.ov-footer__bottom-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13.5px;
  color: var(--ov-stone);
}
.ov-footer__bottom-inner a { color: var(--ov-stone) !important; text-decoration: none !important; }
.ov-footer__bottom-inner a:hover { color: var(--ov-bdx) !important; }
@media (max-width: 980px) {
  .ov-footer__inner { grid-template-columns: 1fr 1fr; gap: 36px; padding: 48px 24px 32px; }
}
@media (max-width: 560px) {
  .ov-footer__inner { grid-template-columns: 1fr; }
}

/* ================================================================
   BOUTONS / ÉLÉMENTS WOO GLOBAUX
================================================================ */
body .button,
body button[type="submit"],
body input[type="submit"],
body .single_add_to_cart_button,
body .checkout-button,
body .woocommerce #respond input#submit,
body .woocommerce a.button.alt,
body .wc-block-components-button {
  background: var(--ov-bdx) !important;
  color: var(--ov-porcelain) !important;
  border: 1px solid var(--ov-bdx) !important;
  border-radius: var(--ov-radius) !important;
  font-family: var(--ov-font) !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
  text-transform: none !important;
  box-shadow: none !important;
  transition: background .18s ease, border-color .18s ease;
}
body .button:hover,
body button[type="submit"]:hover,
body input[type="submit"]:hover,
body .single_add_to_cart_button:hover,
body .checkout-button:hover {
  background: var(--ov-bdx-dark) !important;
  border-color: var(--ov-bdx-dark) !important;
  color: var(--ov-porcelain) !important;
}
body .price,
body .price .amount,
body .woocommerce-Price-amount {
  color: var(--ov-bdx) !important;
  font-weight: 600;
}
del .amount, del .woocommerce-Price-amount { color: var(--ov-stone) !important; font-weight: 400; }
.onsale, .wc-block-components-product-sale-badge {
  background: var(--ov-bdx) !important;
  color: var(--ov-porcelain) !important;
  border-radius: 999px !important;
  font-weight: 600 !important;
  letter-spacing: .04em;
}
.woocommerce-breadcrumb, .shoptimizer-breadcrumb {
  background: transparent !important;
  color: var(--ov-stone) !important;
  font-size: 13px !important;
}
.woocommerce-breadcrumb a { color: var(--ov-stone) !important; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-noreviews {
  background: var(--ov-white) !important;
  border: 1px solid var(--ov-line) !important;
  border-top: 3px solid var(--ov-bdx) !important;
  border-radius: var(--ov-radius);
  color: var(--ov-ink) !important;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--ov-bdx) !important; }

/* Champs */
body input[type="text"], body input[type="email"], body input[type="tel"],
body input[type="password"], body input[type="search"], body input[type="number"],
body textarea, body select {
  background: var(--ov-white) !important;
  border: 1px solid var(--ov-line) !important;
  border-radius: var(--ov-radius) !important;
  color: var(--ov-ink) !important;
  box-shadow: none !important;
}
body input:focus, body textarea:focus, body select:focus {
  border-color: var(--ov-bdx) !important;
  outline: none !important;
}

/* ================================================================
   BOUTIQUE / ARCHIVES — galerie minérale pleine largeur
================================================================ */
.woocommerce .site-main { background: transparent; }
.archive.woocommerce #primary { width: 100% !important; float: none !important; }
ul.products li.product, .wc-block-grid__product {
  background: var(--ov-white);
  border: 1px solid var(--ov-line);
  border-radius: var(--ov-radius);
  overflow: hidden;
  box-shadow: var(--ov-shadow);
  transition: border-color .2s ease, transform .2s ease;
  padding-bottom: 18px !important;
}
ul.products li.product:hover { border-color: #CFCFCB; transform: translateY(-2px); }
ul.products li.product img { border-radius: 0 !important; }
ul.products li.product .woocommerce-loop-product__title {
  font-size: 15.5px !important;
  font-weight: 600 !important;
  color: var(--ov-ink) !important;
  padding: 14px 16px 2px !important;
}
ul.products li.product .price { padding: 0 16px; font-size: 15px !important; }
ul.products li.product .button {
  margin: 10px 16px 0 !important;
}
.woocommerce-products-header, .woocommerce-products-header__title.page-title {
  background: transparent !important;
  color: var(--ov-ink) !important;
  text-align: left;
}
.woocommerce-result-count { color: var(--ov-stone) !important; }
.woocommerce-ordering select { border-radius: var(--ov-radius) !important; }
.term-description { color: var(--ov-stone); max-width: 720px; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0 !important; }
.woocommerce nav.woocommerce-pagination ul li { border: 0 !important; margin: 0 3px; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border-radius: var(--ov-radius);
  border: 1px solid var(--ov-line) !important;
  background: var(--ov-white) !important;
  color: var(--ov-ink) !important;
  padding: 8px 14px !important;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--ov-bdx) !important;
  border-color: var(--ov-bdx) !important;
  color: var(--ov-porcelain) !important;
}

/* ================================================================
   FICHE PRODUIT
================================================================ */
.single-product div.product {
  background: transparent;
}
.single-product .product_title {
  font-size: clamp(26px, 3.2vw, 38px) !important;
  font-weight: 600 !important;
}
.single-product div.product .woocommerce-product-gallery {
  border-radius: var(--ov-radius);
  overflow: hidden;
  border: 1px solid var(--ov-line);
  background: var(--ov-white);
}
.single-product div.product p.price { font-size: 24px !important; }
.single-product .woocommerce-product-details__short-description { color: var(--ov-stone); }
.product_meta { color: var(--ov-stone) !important; font-size: 13.5px; }
.product_meta a { color: var(--ov-ink) !important; }

/* Encart réassurance Orvea */
.ov-reassurance {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--ov-line);
  border: 1px solid var(--ov-line);
  border-radius: var(--ov-radius);
  overflow: hidden;
  margin: 26px 0 8px;
}
.ov-reassurance__item {
  background: var(--ov-white);
  padding: 15px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.ov-reassurance__item svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  stroke: var(--ov-bdx);
  fill: none;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ov-reassurance__item span {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ov-ink);
  line-height: 1.3;
}
.ov-reassurance__item small {
  display: block;
  font-weight: 400;
  color: var(--ov-stone);
  font-size: 12.5px;
  margin-top: 1px;
}
@media (max-width: 480px) { .ov-reassurance { grid-template-columns: 1fr; } }

/* Description produit stable sans JS : onglets masqués, panneau ouvert */
.woocommerce-tabs ul.wc-tabs,
.woocommerce-tabs ul.tabs { display: none !important; }
.woocommerce-tabs .woocommerce-Tabs-panel {
  display: block !important;
  width: 100% !important;
  float: none !important;
  background: var(--ov-white) !important;
  border: 1px solid var(--ov-line) !important;
  border-radius: var(--ov-radius);
  padding: 34px 36px !important;
  margin: 40px 0 0 !important;
  color: var(--ov-ink) !important;
}
.woocommerce-Tabs-panel h2, .woocommerce-Tabs-panel h3 { color: var(--ov-ink) !important; }
.woocommerce-Tabs-panel p, .woocommerce-Tabs-panel li { color: var(--ov-ink) !important; }
.woocommerce-Tabs-panel--additional_information, .woocommerce-Tabs-panel--reviews { margin-top: 20px !important; }
@media (max-width: 640px) { .woocommerce-tabs .woocommerce-Tabs-panel { padding: 22px 20px !important; } }

/* Produits liés */
.related.products > h2, .upsells.products > h2 {
  font-size: 24px !important;
  margin-bottom: 22px !important;
}

/* Sticky add-to-cart Shoptimizer */
.shoptimizer-sticky-add-to-cart { background: var(--ov-white) !important; border-top: 1px solid var(--ov-line) !important; }

/* ================================================================
   PANIER / MINI-PANIER / CHECKOUT
================================================================ */
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce table.shop_table {
  background: var(--ov-white) !important;
  border: 1px solid var(--ov-line) !important;
  border-radius: var(--ov-radius) !important;
}
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
  border-color: var(--ov-line) !important;
  color: var(--ov-ink) !important;
}
.cart_totals h2, .cross-sells h2 { font-size: 20px !important; }

/* Mini-panier drawer (Shoptimizer / CommerceKit) */
.shoptimizer-mini-cart-wrap,
.commercekit-side-cart,
#commercekit-side-cart,
.widget_shopping_cart,
.site-header-cart .widget_shopping_cart {
  background: var(--ov-porcelain) !important;
  color: var(--ov-ink) !important;
  font-family: var(--ov-font) !important;
}
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart-item,
.widget_shopping_cart .mini_cart_item {
  background: var(--ov-white) !important;
  border: 1px solid var(--ov-line) !important;
  border-radius: var(--ov-radius);
  margin-bottom: 10px !important;
  padding: 12px !important;
}
.widget_shopping_cart .woocommerce-mini-cart__total {
  border-top: 1px solid var(--ov-line) !important;
  color: var(--ov-ink) !important;
}
.widget_shopping_cart .woocommerce-mini-cart__buttons .button { width: 100%; text-align: center; }
.widget_shopping_cart .woocommerce-mini-cart__buttons .button:not(.checkout) {
  background: transparent !important;
  color: var(--ov-ink) !important;
  border: 1px solid var(--ov-ink) !important;
}
.widget_shopping_cart .woocommerce-mini-cart__buttons .button:not(.checkout):hover {
  border-color: var(--ov-bdx) !important;
  color: var(--ov-bdx) !important;
}

/* Checkout */
#payment, .woocommerce-checkout #payment {
  background: var(--ov-white) !important;
  border: 1px solid var(--ov-line) !important;
  border-radius: var(--ov-radius) !important;
}
#payment div.payment_box { background: var(--ov-porcelain) !important; color: var(--ov-ink) !important; }

/* Compte */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
.woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: 11px 14px;
  background: var(--ov-white);
  border: 1px solid var(--ov-line);
  border-radius: var(--ov-radius);
  margin-bottom: 8px;
  text-decoration: none !important;
  color: var(--ov-ink) !important;
}
.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li a:hover { border-color: var(--ov-bdx); color: var(--ov-bdx) !important; }

/* ================================================================
   PAGES (légales, contact, suivi)
================================================================ */
.page:not(.woocommerce-page):not(.home) .site-main .page-header,
.page .entry-header { background: transparent !important; }
.page .hentry, .page article.page {
  background: transparent;
  box-shadow: none;
}
.ov-page-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 24px 20px;
}
.page-template-default .entry-content h2 { font-size: 22px !important; margin-top: 34px; }
.page-template-default .entry-content h3 { font-size: 18px !important; margin-top: 26px; }

/* Formulaire suivi colis Orvea */
.ov-track {
  max-width: 620px;
  margin: 10px 0 30px;
  background: var(--ov-white);
  border: 1px solid var(--ov-line);
  border-radius: var(--ov-radius);
  padding: 30px 32px;
}
.ov-track h3 { margin: 0 0 6px !important; font-size: 19px !important; }
.ov-track p.ov-track__hint { color: var(--ov-stone); font-size: 14px; margin: 0 0 18px; }
.ov-track label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ov-stone);
  margin: 14px 0 6px;
}
.ov-track input {
  width: 100%;
  padding: 11px 14px;
}
.ov-track button {
  margin-top: 20px;
  padding: 13px 26px;
  cursor: pointer;
  width: 100%;
  background: var(--ov-bdx) !important;
  color: var(--ov-porcelain) !important;
  border: 1px solid var(--ov-bdx) !important;
  border-radius: var(--ov-radius) !important;
  font-weight: 600 !important;
  font-size: 15.5px;
  transition: background .18s ease;
}
.ov-track button:hover {
  background: var(--ov-bdx-dark) !important;
  border-color: var(--ov-bdx-dark) !important;
}
.ov-track button:disabled { opacity: .6; cursor: wait; }
.ov-track__result { margin-top: 22px; display: none; }
.ov-track__result.is-visible { display: block; }
.ov-track__card {
  border: 1px solid var(--ov-line);
  border-left: 3px solid var(--ov-bdx);
  border-radius: var(--ov-radius);
  padding: 18px 20px;
  background: var(--ov-porcelain);
}
.ov-track__card p { margin: 0 0 6px; font-size: 14.5px; }
.ov-track__card p strong { color: var(--ov-ink); }
.ov-track__error {
  color: var(--ov-bdx);
  font-size: 14.5px;
  font-weight: 600;
  margin-top: 16px;
  display: none;
}
.ov-track__error.is-visible { display: block; }
