/*
Theme Name: NUXE France Replica
Theme URI: https://fr.nuxe.com/
Description: A responsive WordPress/WooCommerce theme reproducing the public French NUXE storefront structure.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: wp-nuxe-fr
License: GPL-2.0-or-later
*/

:root {
  --nuxe-green: #00594f;
  --nuxe-ink: #1d2725;
  --nuxe-sand: #f7f3ed;
  --nuxe-cream: #fcfaf7;
  --nuxe-line: #ddd9d1;
  --nuxe-max: 1440px;
}

@font-face { font-family: Cormorant; src:url('assets/fonts/cormorant-400.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family: Cormorant; src:url('assets/fonts/cormorant-600.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family: 'Open Sans'; src:url('assets/fonts/opensans-300.woff2') format('woff2'); font-weight:300 400; font-display:swap; }
@font-face { font-family: 'Open Sans'; src:url('assets/fonts/opensans-600.woff2') format('woff2'); font-weight:600 700; font-display:swap; }
@font-face { font-family: Sackers; src:url('assets/fonts/sackers-light.woff2') format('woff2'); font-weight:400; font-display:swap; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--nuxe-ink); background: #fff; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.45; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; }
img, video { display: block; max-width: 100%; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.nuxe-topbar { height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 4.5%; font-size: 12px; border-bottom: 1px solid #f0eee9; background: #fff; }
.nuxe-topbar a { text-decoration: underline; text-underline-offset: 2px; }
.nuxe-topbar-center { display: flex; align-items: center; gap: 34px; margin-inline: auto; }
.nuxe-topbar-right { display: flex; gap: 14px; }

.nuxe-site-header { position: absolute; z-index: 8; inset: 34px 0 auto; color: #111; }
.nuxe-header-inner { max-width: var(--nuxe-max); margin: auto; padding: 20px 4.5%; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.nuxe-brand img { width: 160px; height: auto; }
.nuxe-header-actions { justify-self: end; display: flex; gap: 17px; align-items: center; }
.nuxe-icon { border: 0; padding: 0; background: none; width: 23px; height: 23px; display: grid; place-items: center; }
.nuxe-icon svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.6; }
.nuxe-menu-toggle { justify-self: start; }
.nuxe-cart { position: relative; }
.nuxe-cart-count { position: absolute; right: -9px; top: -8px; min-width: 16px; height: 16px; padding: 0 3px; border-radius: 50%; background: var(--nuxe-green); color: white; font-size: 10px; line-height: 16px; text-align: center; }

.nuxe-hero { position: relative; height: min(650px, 62vw); min-height: 480px; overflow: hidden; background: #d5b27e; }
.nuxe-hero-media { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.nuxe-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(0,0,0,.18)); }
.nuxe-hero-content { position: absolute; z-index: 2; left: 50%; bottom: 50px; transform: translateX(-50%); width: min(90%, 800px); color: #fff; text-align: center; }
.nuxe-eyebrow { margin: 0 0 11px; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.nuxe-hero h1 { margin: 0 0 22px; font-family: Georgia, "Times New Roman", serif; font-weight: 400; font-size: clamp(32px, 3.6vw, 58px); line-height: 1.05; }
.nuxe-button { display: inline-flex; min-height: 42px; padding: 11px 32px; align-items: center; justify-content: center; border: 1px solid var(--nuxe-green); border-radius: 24px; background: var(--nuxe-green); color: #fff; letter-spacing: .04em; font-size: 12px; text-transform: uppercase; }
.nuxe-button:hover { background: #073e38; }

.nuxe-section { max-width: var(--nuxe-max); margin: auto; padding: 64px 4.5%; }
.nuxe-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.nuxe-section-heading h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(28px, 3vw, 42px); font-weight: 400; }
.nuxe-section-heading p { max-width: 550px; margin: 0; color: #56615e; }
.nuxe-grid { display: grid; gap: 22px; }
.nuxe-grid--products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nuxe-product { position: relative; background: var(--nuxe-cream); }
.nuxe-product img { width: 100%; aspect-ratio: 1 / 1.12; object-fit: cover; }
.nuxe-product-media { position:relative; display:block; aspect-ratio:1 / 1.12; overflow:hidden; background:var(--nuxe-cream); }
.nuxe-product-media > img { width:100%; height:100%; }
.nuxe-product-media.has-secondary .nuxe-product-secondary { position:absolute; inset:0; opacity:0; transition:opacity .25s ease; }
@media (hover:hover) and (pointer:fine) {
 .nuxe-product-media.has-secondary:hover .nuxe-product-secondary,
 .nuxe-product-media.has-secondary:focus-visible .nuxe-product-secondary,
 .nuxe-product:focus-within .nuxe-product-media.has-secondary .nuxe-product-secondary { opacity:1; }
}
.nuxe-badge { position: absolute; z-index: 1; top: 14px; left: 14px; padding: 5px 9px; color: #fff; background: var(--nuxe-green); font-size: 11px; }
.nuxe-product-copy { padding: 14px 15px 18px; }
.nuxe-rating { color: #a67b24; font-size: 12px; letter-spacing: .08em; }
.nuxe-product h3 { margin: 8px 0 4px; font-size: 16px; font-weight: 500; }
.nuxe-product-meta { display: flex; justify-content: space-between; gap: 10px; color: #53605b; font-size: 13px; }
.nuxe-price { color: var(--nuxe-ink); font-weight: 600; }
.nuxe-card-rating { display:flex; align-items:center; gap:8px; margin-bottom:8px; color:#53605b; font-size:12px; }
.nuxe-card-rating span:first-child { color:var(--nuxe-green); letter-spacing:1px; font-size:14px; }
.nuxe-loyalty-points { margin-top:8px; color:#6d5520; font-size:11px; }
.nuxe-add { margin-top: 13px; border: 0; padding: 10px 16px; color: #fff; background: var(--nuxe-green); font-size: 12px; }

.nuxe-categories { background: var(--nuxe-sand); }
.nuxe-category-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 14px; }
.nuxe-category { text-align: center; }
.nuxe-category img { width: 100%; aspect-ratio: 1 / 1.1; object-fit: cover; }
.nuxe-category strong { display: block; padding-top: 10px; font-family: Georgia, "Times New Roman", serif; font-size: 17px; font-weight: 400; }

.nuxe-feature { position: relative; min-height: 420px; overflow: hidden; }
.nuxe-feature img { width: 100%; height: 100%; object-fit: cover; }
.nuxe-feature-copy { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 18px; padding: 30px; text-align: center; color: #fff; background: linear-gradient(90deg, rgba(0,0,0,.28), rgba(0,0,0,.05)); }
.nuxe-feature-copy h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; font-size: clamp(34px, 4vw, 58px); }

.nuxe-editorial { background: #fff; }
.nuxe-editorial-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.nuxe-editorial-card { background: var(--nuxe-sand); }
.nuxe-editorial-card img { width: 100%; aspect-ratio: 1.25 / 1; object-fit: cover; }
.nuxe-editorial-card div { padding: 18px 20px 24px; }
.nuxe-editorial-card small { color: #59615d; text-transform: uppercase; letter-spacing: .08em; }
.nuxe-editorial-card h3 { margin: 8px 0 14px; font-family: Georgia, "Times New Roman", serif; font-weight: 400; font-size: 26px; }
.nuxe-text-link { font-size: 12px; text-transform: uppercase; text-decoration: underline; text-underline-offset: 5px; }

.nuxe-benefits { border-top: 1px solid var(--nuxe-line); border-bottom: 1px solid var(--nuxe-line); }
.nuxe-benefits-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; text-align: center; }
.nuxe-benefit { padding: 12px 20px; }
.nuxe-benefit + .nuxe-benefit { border-left: 1px solid var(--nuxe-line); }
.nuxe-benefit h3 { margin: 0 0 5px; font-family: Georgia, "Times New Roman", serif; font-size: 21px; font-weight: 400; }
.nuxe-benefit p { margin: 0; color: #5b625e; font-size: 13px; }

.nuxe-newsletter { background: var(--nuxe-green); color: #fff; }
.nuxe-newsletter-inner { max-width: 680px; margin: auto; text-align: center; }
.nuxe-newsletter h2 { margin: 0 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: 38px; font-weight: 400; }
.nuxe-newsletter p { margin: 0 auto 22px; max-width: 560px; color: #e2eee9; }
.nuxe-newsletter-form { display: flex; max-width: 480px; margin: auto; border-bottom: 1px solid #dce9e5; }
.nuxe-newsletter-form input { min-width: 0; flex: 1; border: 0; outline: 0; padding: 12px 0; background: transparent; color: #fff; }
.nuxe-newsletter-form input::placeholder { color: #d8e5e0; }
.nuxe-newsletter-form button { border: 0; padding: 10px 0; background: none; color: #fff; text-transform: uppercase; font-size: 12px; }

.nuxe-footer { background: #f5f3ef; }
.nuxe-footer-inner { max-width: var(--nuxe-max); margin: auto; padding: 54px 4.5% 24px; }
.nuxe-footer-grid { display: grid; grid-template-columns: 1.3fr repeat(3,1fr); gap: 40px; }
.nuxe-footer-brand img { width: 140px; margin-bottom: 14px; }
.nuxe-footer h3 { margin: 0 0 13px; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.nuxe-footer p, .nuxe-footer li { color: #59615d; font-size: 13px; }
.nuxe-footer ul { list-style: none; padding: 0; margin: 0; }
.nuxe-footer li + li { margin-top: 8px; }
.nuxe-footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 46px; padding-top: 18px; border-top: 1px solid var(--nuxe-line); color: #6d736e; font-size: 11px; }

.nuxe-drawer { position: fixed; z-index: 30; inset: 0 auto 0 0; width: min(390px, 90vw); padding: 28px; overflow: auto; background: #fff; transform: translateX(-105%); transition: transform .25s ease; box-shadow: 6px 0 22px rgba(0,0,0,.1); }
.nuxe-drawer.is-open { transform: translateX(0); }
.nuxe-drawer-close { border: 0; background: none; float: right; font-size: 24px; }
.nuxe-drawer h2 { clear: both; margin: 48px 0 22px; font-family: Georgia, "Times New Roman", serif; font-size: 31px; font-weight: 400; }
.nuxe-drawer nav a { display: block; padding: 14px 0; border-bottom: 1px solid var(--nuxe-line); font-family: Georgia, "Times New Roman", serif; font-size: 20px; }
.nuxe-drawer-backdrop { position: fixed; z-index: 20; inset: 0; background: rgba(0,0,0,.35); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.nuxe-drawer-backdrop.is-open { opacity: 1; pointer-events: auto; }

.woocommerce .site-main { max-width: var(--nuxe-max); margin: auto; padding: 60px 4.5%; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border-radius: 0; background: var(--nuxe-green); color: #fff; }
.woocommerce ul.products li.product a img { aspect-ratio: 1 / 1.12; object-fit: cover; }

@media (max-width: 900px) {
  .nuxe-grid--products { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .nuxe-category-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .nuxe-footer-grid { grid-template-columns: repeat(2,1fr); }
  .nuxe-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .nuxe-topbar { height: auto; min-height: 32px; padding: 6px 16px; font-size: 10px; }
  .nuxe-topbar-center { gap: 8px; }
  .nuxe-topbar-right { display: none; }
  .nuxe-site-header { inset: 32px 0 auto; }
  .nuxe-header-inner { padding: 13px 18px; }
  .nuxe-brand img { width: 126px; }
  .nuxe-header-actions { gap: 10px; }
  .nuxe-header-actions .nuxe-favorite, .nuxe-header-actions .nuxe-account { display: none; }
  .nuxe-hero { min-height: 540px; height: 78svh; }
  .nuxe-hero-media { object-position: 58% center; }
  .nuxe-hero-content { bottom: 34px; }
  .nuxe-section { padding: 42px 18px; }
  .nuxe-section-heading { display: block; margin-bottom: 22px; }
  .nuxe-section-heading p { margin-top: 12px; }
  .nuxe-grid { gap: 12px; }
  .nuxe-grid--products { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .nuxe-product-copy { padding: 11px 10px 14px; }
  .nuxe-product h3 { font-size: 14px; }
  .nuxe-product-meta { display: block; font-size: 12px; }
  .nuxe-add { width: 100%; }
  .nuxe-category-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
  .nuxe-category strong { font-size: 16px; }
  .nuxe-feature { min-height: 360px; }
  .nuxe-editorial-grid { grid-template-columns: 1fr; }
  .nuxe-benefits-grid { grid-template-columns: 1fr; }
  .nuxe-benefit + .nuxe-benefit { border-left: 0; border-top: 1px solid var(--nuxe-line); }
  .nuxe-newsletter h2 { font-size: 32px; }
  .nuxe-footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .nuxe-footer-brand { grid-column: auto; }
  .nuxe-footer-bottom { display: block; }
  .nuxe-footer-bottom p + p { margin-top: 8px; }
}

/* Native commerce and content pages share the reference palette. */
body:not(.home) .nuxe-site-header { position: relative; inset: auto; border-bottom: 1px solid var(--nuxe-line); background: #fff; }
.nuxe-brand img { width: 264px; }
.nuxe-hero { height: min(650px, 36vw); min-height: 420px; }
.nuxe-hero h1 { font-size: clamp(28px, 2.55vw, 40px); text-transform: uppercase; }
.nuxe-search-panel { background: #fff; color: var(--nuxe-ink); padding: 22px 5%; border-bottom: 1px solid var(--nuxe-line); }
.nuxe-search-panel form, .woocommerce-product-search { max-width: 680px; display: flex; gap: 12px; margin: 0 auto; }
.woocommerce-product-search input { min-width: 0; flex: 1; border: 1px solid var(--nuxe-line); padding: 12px; }
.woocommerce-product-search button { background: var(--nuxe-green); color: #fff; border: 0; padding: 10px 20px; }
.nuxe-save { position: absolute; z-index: 2; right: 12px; top: 12px; border: 0; background: #fff; color: var(--nuxe-green); border-radius: 50%; width: 36px; height: 36px; font-size: 25px; }
.nuxe-add { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; }
.nuxe-product .added_to_cart { display: block; padding: 10px; font-size: 12px; text-decoration: underline; }
.nuxe-product img { object-fit: contain; background: #fff; }
.nuxe-menu-open { overflow: hidden; }
.nuxe-consent { display: block; font-size: 12px; margin: 14px auto 0; line-height: 1.7; }
.nuxe-consent a { text-decoration: underline; }
.nuxe-contact-form { max-width: 640px; display: grid; gap: 20px; margin: 30px 0; }
.nuxe-contact-form label { display: grid; gap: 8px; }
.nuxe-contact-form input:not([type=checkbox]), .nuxe-contact-form textarea { width: 100%; border: 1px solid var(--nuxe-line); padding: 12px; background: #fff; font: inherit; }
.nuxe-contact-form .nuxe-consent { display: block; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #ad842f; outline-offset: 4px; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 50; width: auto; height: auto; clip: auto; padding: 12px; background: #fff; }
.nuxe-content h1, .nuxe-commerce h1, .nuxe-commerce h2 { font-family: Georgia, serif; font-weight: 400; }
.nuxe-content h1 { font-size: clamp(30px,4vw,48px); }
.nuxe-page-body { max-width: 1000px; margin: 0 auto; line-height: 1.8; overflow-wrap: anywhere; }
.nuxe-page-body h1 { display: none; }
.nuxe-page-body h2 { font-family: Georgia,serif; font-weight: 400; font-size: 30px; margin-top: 32px; }
.nuxe-page-body h3 { font-size: 21px; margin-top: 24px; }
.nuxe-page-body img { width: auto; max-width: 100%; max-height: 600px; object-fit: contain; margin: 20px auto; }
.nuxe-page-body table { width: 100%; border-collapse: collapse; font-size: 14px; }
.nuxe-page-body td, .nuxe-page-body th { padding: 12px; border: 1px solid var(--nuxe-line); }
.nuxe-page-body details { border-bottom: 1px solid var(--nuxe-line); padding: 18px 0; }
.nuxe-page-body summary { cursor: pointer; font-weight: 600; }
.nuxe-page-body a { text-decoration: underline; text-underline-offset: 3px; }
.nuxe-page-body .nuxe-grid { max-width: none; }
.nuxe-commerce .woocommerce-breadcrumb { font-size: 12px; margin-bottom: 24px; }
.nuxe-commerce ul.products { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.nuxe-commerce ul.products::before, .nuxe-commerce ul.products::after { display: none; }
.woocommerce .nuxe-commerce ul.products li.product { width: auto; margin: 0; float: none; padding-bottom: 20px; background: var(--nuxe-cream); }
.woocommerce .nuxe-commerce ul.products li.product a img { aspect-ratio: 1; object-fit: contain; background: #fff; margin: 0; }
.woocommerce .nuxe-commerce ul.products li.product .woocommerce-loop-product__title { padding: 14px 14px 8px; font-size: 15px; font-family: Arial,sans-serif; min-height: 70px; }
.woocommerce .nuxe-commerce ul.products li.product .price { padding: 0 14px; color: var(--nuxe-green); }
.woocommerce .nuxe-commerce ul.products li.product .button { margin: 6px 14px; padding: 12px 15px; }
.woocommerce .nuxe-commerce div.product div.images img { max-height: 620px; object-fit: contain; background: #fcfaf7; }
.woocommerce .nuxe-commerce div.product div.images .flex-control-thumbs { display: flex; gap: 10px; margin-top: 15px; }
.woocommerce .nuxe-commerce div.product div.summary { padding: 25px; }
.woocommerce div.product p.price { color: var(--nuxe-green); font-size: 25px; }
.woocommerce .quantity .qty { min-height: 42px; }
.woocommerce button.button.alt, .woocommerce a.button.alt { background: var(--nuxe-green); border-radius: 24px; padding: 14px 24px; }
.woocommerce table.shop_table { border-color: var(--nuxe-line); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { border: 1px solid var(--nuxe-line); min-height: 44px; padding: 10px; }
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info { border-top-color: var(--nuxe-green); background: var(--nuxe-sand); }
.woocommerce .woocommerce-info::before, .woocommerce .woocommerce-message::before { color: var(--nuxe-green); }
.nuxe-footer-bottom a { display: inline-block; }
@media (max-width:900px) { .nuxe-commerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) {
 .nuxe-brand img { width:126px; }
 .nuxe-hero { min-height:540px; height:78svh; }
 .nuxe-hero h1 { text-transform:none; font-size:32px; }
 .nuxe-topbar { gap:8px; padding-inline:10px; font-size:9px; }
 .nuxe-topbar-center { gap:5px; }
 .nuxe-product h3 { min-height:60px; }
 .nuxe-content, .nuxe-commerce { padding:32px 18px; }
 .nuxe-page-body table { display:block; overflow-x:auto; }
 .nuxe-commerce ul.products { gap:12px; }
 .woocommerce .nuxe-commerce div.product div.summary { padding:12px 0; }
 .nuxe-consent { text-align:left; }
 .nuxe-header-actions { gap:10px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { transition:none !important; animation:none !important; } }

.nuxe-category-nav { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
.nuxe-category-nav a { padding:8px 18px; border:1px solid var(--nuxe-line); border-radius:22px; font-size:13px; }
.nuxe-category-nav a:hover { background:var(--nuxe-green); color:white; }

.nuxe-form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.nuxe-contact-form select { padding:12px; border:1px solid var(--nuxe-line); background:white; width:100%; font:inherit; }
@media(max-width:640px) { .nuxe-form-row { grid-template-columns:1fr; } }

body { font-family:'Open Sans',Arial,sans-serif; font-weight:300; }
.nuxe-hero h1,.nuxe-section-heading h2,.nuxe-feature-copy h2,.nuxe-category strong,.nuxe-editorial-card h3,.nuxe-content h1,.nuxe-commerce h1,.nuxe-commerce h2,.nuxe-benefit h3,.nuxe-newsletter h2 { font-family:Cormorant,Georgia,serif; }
.nuxe-button,.nuxe-eyebrow { font-family:Sackers,Arial,sans-serif; }
.nuxe-site-header { background:rgba(255,255,255,.25); }
#products { padding-top:48px; }
#products > .nuxe-section-heading { display:none; }
.home .nuxe-grid--products { display:flex; overflow-x:auto; gap:24px; scroll-snap-type:x mandatory; scrollbar-width:thin; }
.home .nuxe-grid--products .nuxe-product { flex:0 0 calc((100vw - 176px)/3); scroll-snap-align:start; }
.nuxe-product img { height:auto; aspect-ratio:1.25; background:var(--nuxe-cream); }
.nuxe-hero h1 { font-size:36px; }
@media(max-width:640px) {
 .home .nuxe-site-header { position:absolute; inset:28px 0 auto; background:white; }
 .nuxe-topbar { height:28px; }
 .nuxe-topbar > a { display:none; }
 .nuxe-topbar-center { font-size:12px; font-weight:400; }
 .nuxe-header-actions .nuxe-favorite { display:grid; }
 .nuxe-header-inner { padding:10px 16px; }
 .nuxe-brand img { width:140px; height:24px; object-fit:contain; }
 .nuxe-header-actions { gap:12px; }
 .nuxe-hero { height:auto; min-height:0; overflow:visible; background:var(--nuxe-cream); }
 .nuxe-hero-media { height:123.08vw; object-fit:cover; object-position:center; }
 .nuxe-hero::after { display:none; }
 .nuxe-hero-content { position:static; width:auto; transform:none; color:#000; padding:32px 12px; }
 .nuxe-hero h1 { font-size:25px; text-transform:uppercase; margin-bottom:14px; }
 .nuxe-eyebrow { font-size:12px; }
 .nuxe-hero .nuxe-button { min-height:32px; padding:8px 20px; font-size:10px; }
 #products { padding:48px 16px; }
 .home .nuxe-grid--products .nuxe-product { flex-basis:80vw; }
 .home .nuxe-grid--products { gap:20px; }
}
.single-product .nuxe-commerce { max-width:none; padding:0 48px 50px; }
.single-product .nuxe-header-inner { padding-block:22px; }
.woocommerce.single-product .nuxe-commerce div.product div.images { width:52.77%; }
.woocommerce.single-product .nuxe-commerce div.product div.summary { width:43.18%; padding:2px 0 30px; }
.woocommerce.single-product .product_title { font-family:Cormorant,Georgia,serif; font-size:40px; line-height:1.1; font-weight:600; color:#000; margin:0 0 24px; }
.woocommerce.single-product .woocommerce-product-details__short-description { max-height:260px; overflow:auto; line-height:1.8; }
.woocommerce.single-product .nuxe-commerce div.product div.images img { max-height:625px; height:auto; aspect-ratio:1; }
.woocommerce.single-product .nuxe-commerce div.product div.images .flex-control-thumbs img { max-height:105px; }
.woocommerce.single-product .woocommerce-tabs,.woocommerce.single-product .related { padding:0 4.5%; }
.nuxe-gallery-stage { position:relative; }
.nuxe-video-gallery video,.nuxe-gallery-stage > a > img { width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
.nuxe-gallery-controls { position:absolute; bottom:16px; left:0; right:0; display:flex; justify-content:center; gap:20px; padding:8px; }
.nuxe-gallery-controls button { width:14px; height:14px; border:1px solid white; border-radius:50%; background:transparent; padding:0; font-size:0; }
.nuxe-gallery-controls button[aria-pressed=true] { background:white; }
.nuxe-gallery-controls button img { display:none !important; }
.nuxe-video-gallery [hidden] { display:none !important; }
.nuxe-gallery-arrow { position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border:0; border-radius:50%; background:#fff; color:#111; font:300 32px/1 Arial,sans-serif; }
.nuxe-gallery-prev { left:36px; }
.nuxe-gallery-next { right:36px; }
.nuxe-gallery-stage { touch-action:pan-y; }
.nuxe-gallery-breadcrumb { padding:20px 16px; color:#666; font-size:12px; text-align:center; }
.nuxe-source-badge { display:table; height:26px; border:1px solid var(--nuxe-green); border-radius:4px; padding:6px 12px; font:300 10px/12px Sackers,Arial,sans-serif; margin:0 0 35px; }
.nuxe-serum-detail .summary > .nuxe-eyebrow { font-size:10px; line-height:16px; margin:0; }
.nuxe-source-rating { display:flex; align-items:center; gap:8px; margin:0 0 24px; color:#53605b; font-size:13px; }
.nuxe-source-rating span { color:var(--nuxe-green); letter-spacing:1px; font-size:16px; }
.nuxe-source-rating a { text-decoration:underline; }
.woocommerce.single-product .woocommerce-tabs { margin-top:36px; border-top:1px solid var(--nuxe-line); }
.woocommerce.single-product .woocommerce-tabs ul.tabs { display:flex; gap:28px; margin:0; padding:0; border:0; list-style:none; }
.woocommerce.single-product .woocommerce-tabs ul.tabs::before,
.woocommerce.single-product .woocommerce-tabs ul.tabs::after { display:none; }
.woocommerce.single-product .woocommerce-tabs ul.tabs li { margin:0; padding:22px 0 17px; border:0; border-radius:0; background:transparent; }
.woocommerce.single-product .woocommerce-tabs ul.tabs li::before,
.woocommerce.single-product .woocommerce-tabs ul.tabs li::after { display:none; }
.woocommerce.single-product .woocommerce-tabs ul.tabs li a { color:#5a635f; font-size:13px; font-weight:400; }
.woocommerce.single-product .woocommerce-tabs ul.tabs li.active { border-bottom:2px solid var(--nuxe-green); }
.woocommerce.single-product .woocommerce-tabs ul.tabs li.active a { color:var(--nuxe-ink); }
.woocommerce.single-product .woocommerce-tabs .wc-tab { padding:40px 0 12px; }
.nuxe-reviews-shell { max-width:1080px; margin:0 auto; }
.nuxe-reviews-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; padding-bottom:28px; border-bottom:1px solid var(--nuxe-line); }
.nuxe-reviews-heading .nuxe-eyebrow { margin:0 0 6px; color:#66716c; font-size:10px; letter-spacing:.12em; }
.nuxe-reviews-heading h2 { margin:0; color:var(--nuxe-ink); font-family:Cormorant,Georgia,serif; font-size:38px; font-weight:400; line-height:1; }
.nuxe-reviews-count { color:#66716c; font-size:12px; }
.nuxe-reviews-shell .woocommerce-Reviews { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.82fr); gap:64px; padding-top:36px; }
.nuxe-reviews-shell #comments { min-width:0; }
.nuxe-reviews-shell .woocommerce-Reviews-title { margin:0 0 22px; font-family:Cormorant,Georgia,serif; font-size:26px; font-weight:400; }
.nuxe-reviews-shell .woocommerce-noreviews { margin:0; padding:24px; background:var(--nuxe-sand); color:#59635f; font-size:14px; }
.nuxe-reviews-shell .commentlist { margin:0; padding:0; list-style:none; }
.nuxe-reviews-shell .commentlist li { margin:0 0 24px; padding:0 0 22px; border-bottom:1px solid var(--nuxe-line); }
.nuxe-reviews-shell .comment-text { margin:0; padding:0; border:0; }
.nuxe-reviews-shell .comment-text .star-rating { color:var(--nuxe-green); margin-bottom:10px; }
.nuxe-reviews-shell .meta { margin:0 0 10px; color:#65706b; font-size:12px; }
.nuxe-reviews-shell .description { color:var(--nuxe-ink); font-size:14px; line-height:1.7; }
.nuxe-reviews-shell #review_form_wrapper { margin:0; padding:26px 28px 30px; background:var(--nuxe-sand); }
.nuxe-reviews-shell #review_form { margin:0; }
.nuxe-reviews-shell .comment-reply-title { display:block; margin:0 0 20px; color:var(--nuxe-ink); font-family:Cormorant,Georgia,serif; font-size:26px; font-weight:400; line-height:1.15; }
.nuxe-reviews-shell .comment-notes { margin:0 0 18px; color:#66716c; font-size:12px; line-height:1.5; }
.nuxe-reviews-shell .comment-form label { display:block; margin-bottom:7px; color:var(--nuxe-ink); font-size:12px; }
.nuxe-reviews-shell .comment-form .required { color:#8a2e28; }
.nuxe-reviews-shell .comment-form input:not([type=checkbox]),
.nuxe-reviews-shell .comment-form textarea,
.nuxe-reviews-shell .comment-form select { width:100%; border:1px solid #cfcac0; border-radius:0; background:#fff; padding:11px 12px; color:var(--nuxe-ink); font:inherit; }
.nuxe-reviews-shell .comment-form textarea { min-height:132px; resize:vertical; }
.nuxe-reviews-shell .comment-form p { margin:0 0 16px; }
.nuxe-reviews-shell .comment-form-rating { margin-bottom:16px; }
.nuxe-reviews-shell .comment-form-cookies-consent { display:flex; align-items:flex-start; gap:8px; color:#66716c; font-size:11px; line-height:1.45; }
.nuxe-reviews-shell .comment-form-cookies-consent input { flex:0 0 auto; margin-top:2px; }
.nuxe-reviews-shell .form-submit { margin-top:22px !important; }
.nuxe-reviews-shell .form-submit input[type=submit] { border:1px solid var(--nuxe-green); border-radius:24px; padding:12px 24px; background:var(--nuxe-green); color:#fff; font:400 11px/1 Sackers,Arial,sans-serif; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; }
.woocommerce #review_form #submit { border:1px solid var(--nuxe-green) !important; border-radius:24px !important; padding:12px 24px !important; background:var(--nuxe-green) !important; color:#fff !important; font:400 11px/1 Sackers,Arial,sans-serif !important; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; }
.nuxe-reviews-shell .form-submit input[type=submit]:hover { background:#073e38; }
@media(max-width:760px) {
 .woocommerce.single-product .woocommerce-tabs { margin-top:24px; }
 .woocommerce.single-product .woocommerce-tabs ul.tabs { gap:20px; overflow-x:auto; }
 .woocommerce.single-product .woocommerce-tabs .wc-tab { padding-top:28px; }
 .nuxe-reviews-heading { align-items:start; flex-direction:column; gap:12px; padding-bottom:22px; }
 .nuxe-reviews-heading h2 { font-size:32px; }
 .nuxe-reviews-shell .woocommerce-Reviews { display:block; padding-top:24px; }
 .nuxe-reviews-shell #review_form_wrapper { margin-top:34px; padding:22px 18px 24px; }
}
.woocommerce.nuxe-serum-detail .product_title { font-size:45px; line-height:48px; margin:4px 0 14px; }
.nuxe-serum-intro { border-block:1px solid #e8ded8; padding:20px 0 22px; margin:14px 0 104px; font-size:14px; line-height:1.3; }
.nuxe-serum-intro > p { margin:0 0 22px; }
.nuxe-product-disclosure > summary { cursor:pointer; text-decoration:underline; list-style:none; font-weight:600; }
.nuxe-product-disclosure > summary::-webkit-details-marker { display:none; }
.nuxe-product-disclosure > div { line-height:1.6; padding-top:18px; }
.nuxe-product-disclosure:not([open]) .nuxe-read-less,.nuxe-product-disclosure[open] .nuxe-read-more { display:none; }
.nuxe-product-results { list-style:none; margin:0 0 20px; padding:0; font-size:14px; line-height:24px; }
.nuxe-product-results li::before { content:'✓'; color:#111; margin-right:6px; font-weight:600; }
.nuxe-format { display:flex; align-items:center; gap:4px; border-block:1px solid #e8ded8; padding:20px 0; font-size:16px; }
.nuxe-format select { flex:1; min-width:0; border:0; background:#fff; color:inherit; font:inherit; cursor:pointer; }
.woocommerce.nuxe-serum-detail div.product p.price { color:#111; font-size:18px; font-weight:600; margin:26px 0 0; }
.nuxe-unit-price { color:#777; font-size:12px; margin:0 0 20px; }
.nuxe-source-points { display:flex; flex-direction:column; align-items:flex-end; gap:4px; margin:0 0 18px; font-size:11px; color:#6d5520; }
.nuxe-source-points strong { padding:4px 10px; border-radius:3px; background:#a78032; color:#fff; font-size:10px; font-family:Sackers,Arial,sans-serif; letter-spacing:.04em; }
.nuxe-serum-benefits { margin-top:88px; padding:18px 0 10px; border-top:1px solid #e8ded8; }
.nuxe-serum-benefits p { display:flex; align-items:center; gap:12px; margin:0 0 16px; font-size:14px; line-height:1.6; }
.nuxe-serum-benefits p span { color:var(--nuxe-green); font-weight:600; }
.nuxe-serum-benefits a { text-decoration:none; }
.nuxe-serum-detail .summary form.cart { display:flex; gap:10px; }
.nuxe-serum-detail .summary .single_add_to_cart_button { flex:1; font:400 12px/18px Sackers,Arial,sans-serif; text-transform:uppercase; }
.nuxe-mobile-purchase { display:none; }
/* The reference review stylesheet removes the page scrollbar track. */
html:has(body.nuxe-serum-detail),html:has(body.home) { scrollbar-width:none; }
html:has(body.nuxe-serum-detail)::-webkit-scrollbar,html:has(body.home)::-webkit-scrollbar { width:0; }
.nuxe-serum-detail .nuxe-source-badge { letter-spacing:1.6px; margin-bottom:39px; }
.home .nuxe-site-header { background:transparent; }
.home .nuxe-hero::after { display:none; }
.home .nuxe-hero-content { bottom:48px; }
.home .nuxe-grid--products { scrollbar-width:none; }
.home .nuxe-grid--products::-webkit-scrollbar { display:none; }
.home .nuxe-grid--products .nuxe-product { flex-basis:calc((100vw - 168px)/3); background:#fffdf8; }
.home .nuxe-product img { aspect-ratio:4/3; background:#fffdf8; }
.home .nuxe-product-media { aspect-ratio:4/3; background:#fffdf8; }
.home .nuxe-badge { left:auto; right:16px; top:16px; border-radius:3px; padding:2px 8px; background:#004c42; font-size:11px; font-weight:600; }
.home .nuxe-save { top:48px; opacity:0; }
.home .nuxe-product:hover .nuxe-save,.home .nuxe-save:focus-visible { opacity:1; }
.home #products { padding-inline:4.6875%; }
.nuxe-rail-frame { position:relative; }
.nuxe-rail-arrow { position:absolute; top:42%; width:62px; height:62px; border:1px solid #111; border-radius:50%; background:#fffdf8; font:24px/1 Arial,sans-serif; z-index:3; }
.nuxe-rail-arrow:disabled { display:none; }
.nuxe-rail-prev { left:10px; }
.nuxe-rail-next { right:0; }
@media(max-width:640px) {
 .home .nuxe-hero-content { background:#fffdf8; }
 .home .nuxe-grid--products .nuxe-product { flex-basis:74vw; }
 .home #products { padding-inline:16px; }
 .nuxe-rail-arrow { display:none; }
 .single-product .nuxe-topbar { min-height:28px; padding-block:4px; }
 .single-product .nuxe-header-inner { padding-block:10px; }
 .single-product .nuxe-commerce { padding-left:0; padding-right:0; }
 .woocommerce.single-product .nuxe-commerce div.product div.images { width:100%; margin:0 0 20px; }
 .woocommerce.single-product .nuxe-commerce div.product div.summary { width:100%; padding:16px; }
 .woocommerce.single-product .product_title { font-size:28px; }
 .woocommerce.single-product .nuxe-commerce div.product div.images .flex-control-thumbs { padding:0 16px; }
 .woocommerce.single-product .nuxe-commerce div.product div.images .flex-control-thumbs img { max-height:62px; }
 .nuxe-gallery-arrow { display:none; }
 .nuxe-gallery-controls { bottom:12px; gap:8px; padding:5px; }
 .nuxe-gallery-controls button { width:6px; height:6px; }
 .nuxe-gallery-breadcrumb { text-align:left; padding-top:36px; font-size:11px; position:relative; }
 .nuxe-gallery-breadcrumb::before { content:''; position:absolute; top:14px; left:16px; right:16px; height:5px; background:linear-gradient(to right,#d4c6bd 12.5%,#eee5de 12.5%); }
 .woocommerce.nuxe-serum-detail .nuxe-commerce div.product div.images { margin-bottom:0; }
 .woocommerce.nuxe-serum-detail .nuxe-commerce div.product div.summary { padding-top:10px; }
 .nuxe-serum-detail .nuxe-source-badge { margin-bottom:26px; }
 .nuxe-serum-detail .summary > .nuxe-eyebrow { font-size:9px; line-height:14px; }
 .nuxe-source-rating { margin-bottom:20px; }
 .woocommerce.nuxe-serum-detail .product_title { font-size:26px; line-height:26px; margin:3px 0 24px; }
 .nuxe-serum-intro { margin-bottom:80px; }
 .nuxe-source-points { margin-top:4px; margin-bottom:16px; }
 .nuxe-serum-benefits { margin-top:40px; padding-inline:16px; }
 .nuxe-has-mobile-purchase { padding-bottom:84px; }
 .nuxe-mobile-purchase { display:block; position:fixed; z-index:9; left:16px; right:20px; bottom:max(20px,env(safe-area-inset-bottom)); }
 .nuxe-mobile-purchase.is-native-visible { display:none; }
 .nuxe-mobile-purchase button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:48px; border:0; border-radius:28px; padding:15px 32px; background:#004c42; color:#fff; font:400 12px/18px Sackers,Arial,sans-serif; text-transform:uppercase; box-shadow:0 3px 12px #0000000a; }
}
