/*
Theme Name: Yero Audio
Theme URI: https://www.yeroaudio.fr
Author: Yero Audio
Description: Thème bloc sombre pour la boutique Yero Audio (casques KZ et embouts sur mesure). Compatible WooCommerce.
Version: 1.8.0
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: yero-audio
*/

:root { --yero-radius: 3px; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
a { text-underline-offset: 3px; }

/* Typographie */
h1, h2, h3, h4 { font-weight: 500; }
h1 { letter-spacing: -0.046em; line-height: 1.02; }
h2 { letter-spacing: -0.045em; line-height: 1.1; }
h3 { letter-spacing: -0.037em; line-height: 1.15; }
.wp-block-heading em, h1 em, h2 em, h3 em {
  font-family: var(--wp--preset--font-family--instrument-serif);
  font-style: italic; font-weight: 400; color: var(--wp--preset--color--accent);
}
.yero-eyebrow {
  font-family: var(--wp--preset--font-family--plex-mono);
  font-size: .78rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--wp--preset--color--accent); margin-bottom: 1rem;
}
.yero-lead { font-size: 1.2rem; color: var(--wp--preset--color--muted); max-width: 640px; }
.yero-note { font-size: .85rem; color: var(--wp--preset--color--muted); margin-top: 1.5rem; }
.yero-todo { background: rgba(209,176,123,.18); color: var(--wp--preset--color--accent); padding: 0 .25em; border-radius: 2px; }

/* Boutons */
.wp-block-button__link, .wp-element-button, .wc-block-components-button:not(.is-link) {
  font-weight: 700; border: 1px solid var(--wp--preset--color--accent);
  border-radius: var(--yero-radius); padding: 15px 20px; text-decoration: none;
  background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base);
}
.wp-block-button__link:hover, .wp-element-button:hover { filter: brightness(1.08); }
.is-style-outline > .wp-block-button__link, .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent; color: var(--wp--preset--color--contrast);
  border-color: var(--wp--preset--color--line);
}
.is-style-outline > .wp-block-button__link:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.yero-header .wp-block-button__link { padding: 10px 13px; font-size: .9rem; }

/* Sections */
.yero-hero { padding-top: clamp(50px, 7vw, 90px); padding-bottom: clamp(30px, 4vw, 50px); }
.yero-hero-small { padding-top: clamp(50px, 7vw, 90px); padding-bottom: clamp(30px, 4vw, 50px); }
.yero-hero .wp-block-buttons { margin: 2rem 0; }
.yero-section { padding-top: 55px; padding-bottom: 55px; }
.yero-band { background: var(--wp--preset--color--band); }
.yero-closing { text-align: center; padding-top: 80px; padding-bottom: 80px; }
.yero-closing .wp-block-buttons { justify-content: center; margin-top: 1.5rem; }
.yero-pillars { gap: 2rem; }
.yero-pillars h3 { font-size: 1.35rem; letter-spacing: -0.02em; }
.yero-pillars p { color: var(--wp--preset--color--muted); }

/* Cartes */
.yero-card {
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: .4rem; padding: 2rem; height: 100%;
}
.yero-offers, .yero-steps { gap: 1.5rem; }
.yero-model { font-family: var(--wp--preset--font-family--plex-mono); text-transform: uppercase; letter-spacing: .1em; font-size: .8rem; color: var(--wp--preset--color--muted); margin-top: 0; }
.yero-price { font-size: 1.6rem; margin: 1rem 0; }
.yero-price-note { font-family: var(--wp--preset--font-family--plex-mono); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--wp--preset--color--muted); }
.yero-card ul { padding-left: 1.1rem; color: var(--wp--preset--color--muted); }
.yero-callout { margin-top: 2.5rem; padding: 1.5rem 2rem; border-left: 2px solid var(--wp--preset--color--accent); }
.yero-callout h3 { margin-top: 0; }
.yero-callout p { color: var(--wp--preset--color--muted); margin-bottom: 0; }

/* FAQ */
.yero-faq { max-width: 860px; margin-inline: auto; }
.wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 1.1rem 0; }
.wp-block-details summary { font-weight: 600; font-size: 1.1rem; cursor: pointer; list-style: none; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; float: right; color: var(--wp--preset--color--accent); font-size: 1.4rem; line-height: 1; }
.wp-block-details[open] summary::after { content: "–"; }
.wp-block-details p { color: var(--wp--preset--color--muted); }

/* En-tête / pied de page */
.yero-header { border-bottom: 1px solid var(--wp--preset--color--line); padding-top: 18px; padding-bottom: 18px; }
.yero-header .wp-block-site-title a { font-weight: 700; letter-spacing: -.02em; text-decoration: none; color: var(--wp--preset--color--contrast); }
.yero-header .wp-block-navigation a { font-size: .95rem; text-decoration: none; }
.yero-header .wp-block-navigation a:hover { color: var(--wp--preset--color--accent); }
.yero-footer { border-top: 1px solid var(--wp--preset--color--line); padding-top: 50px; padding-bottom: 30px; font-size: .92rem; color: var(--wp--preset--color--muted); }
.yero-footer a { color: var(--wp--preset--color--muted); text-decoration: none; }
.yero-footer a:hover { color: var(--wp--preset--color--accent); }
.yero-footer h4 { font-family: var(--wp--preset--font-family--plex-mono); font-size: .75rem; text-transform: uppercase; letter-spacing: .14em; color: var(--wp--preset--color--accent); font-weight: 400; }
.yero-footer .yero-legalline { border-top: 1px solid var(--wp--preset--color--line); margin-top: 2rem; padding-top: 1.2rem; font-size: .8rem; }

/* Formulaires (contact, panier, commande) */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], textarea, select,
.wc-block-components-text-input input, .wc-blocks-components-select select, .wc-block-components-textarea {
  background: var(--wp--preset--color--surface) !important; color: var(--wp--preset--color--contrast) !important;
  border: 1px solid var(--wp--preset--color--line) !important; border-radius: var(--yero-radius);
}
.wc-block-components-text-input label, .wc-blocks-components-select label { color: var(--wp--preset--color--muted) !important; }
.wc-block-components-order-summary, .wc-block-components-totals-wrapper, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { color: var(--wp--preset--color--contrast); }
.wc-block-components-product-name, .wc-block-components-totals-item__label { color: var(--wp--preset--color--contrast); }
.woocommerce-message, .wc-block-components-notice-banner { background: var(--wp--preset--color--surface) !important; color: var(--wp--preset--color--contrast) !important; border-color: var(--wp--preset--color--line) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--wp--preset--color--line) !important; }
.wp-block-woocommerce-product-price, .wc-block-components-product-price { color: var(--wp--preset--color--accent); font-weight: 700; }
.woocommerce-breadcrumb, .wc-block-breadcrumbs { color: var(--wp--preset--color--muted); font-size: .85rem; }

@media (max-width: 781px) {
  .yero-card { padding: 1.4rem; }
  .yero-closing { padding-top: 55px; padding-bottom: 55px; }
}

/* En-tête : une seule ligne sur grand écran */
@media (min-width: 900px) { .yero-header .wp-block-group { flex-wrap: nowrap; } }
.yero-header .wp-block-site-title { margin: 0; font-size: 1.35rem; white-space: nowrap; }
.wp-block-button__link { font-size: 1rem; line-height: 1.2; }

/* Règles de secours pour les boutons (priorité sur les styles par défaut de WordPress) */
.wp-block-button:not(.is-style-outline) > .wp-block-button__link { background-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--base); }
.wp-block-button.is-style-outline > .wp-block-button__link { background-color: transparent; color: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--line); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--accent); }
.yero-card h3 { margin-top: .25rem; }

/* ===== Passe design v1.1 ===== */

/* En-tête collant, légèrement translucide */
header.wp-block-template-part { position: sticky; top: 0; z-index: 50; background: rgba(16,21,34,.88); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.admin-bar header.wp-block-template-part { top: 32px; }
.yero-header .wp-block-navigation a { position: relative; }
.yero-header .wp-block-navigation a::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 100%; height: 1px; background: var(--wp--preset--color--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.yero-header .wp-block-navigation a:hover::after { transform: scaleX(1); }

/* Alignement : le texte des sections reste calé à gauche */
.yero-hero > *, .yero-section > p, .yero-section > h2, .yero-section > h1 { margin-left: 0 !important; margin-right: 0 !important; }
.yero-closing > * { margin-left: auto !important; margin-right: auto !important; }
.yero-lead { max-width: 560px; }

/* ---- Séparation nette entre les parties ---- */
.yero-section, .yero-closing { position: relative; }
.yero-section::before, .yero-closing::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, rgba(42,47,60,0), var(--wp--preset--color--line) 20%, rgba(209,176,123,.55) 50%, var(--wp--preset--color--line) 80%, rgba(42,47,60,0));
}
.yero-band { background: var(--wp--preset--color--band); box-shadow: inset 0 1px 0 rgba(255,255,255,.02); }
.yero-section { padding-top: clamp(64px, 8vw, 110px); padding-bottom: clamp(64px, 8vw, 110px); }
.yero-section h2 { font-size: clamp(2rem, 4vw, 2.9rem); margin-bottom: .5rem; }
.yero-section > p:not(.yero-eyebrow):not(.yero-note) { color: var(--wp--preset--color--muted); max-width: 640px; }
.yero-section > .yero-eyebrow { display: flex; align-items: center; gap: .9rem; }
.yero-section > .yero-eyebrow::before { content: ""; width: 36px; height: 1px; background: var(--wp--preset--color--accent); }

/* Héros : halo doré + anneaux sonores animés */
.yero-hero:not(.yero-hero-small) {
  position: relative; overflow: hidden; min-height: 600px; display: flex; flex-direction: column; justify-content: center;
  background: radial-gradient(60% 80% at 82% 45%, rgba(209,176,123,.16), rgba(209,176,123,0) 62%), var(--wp--preset--color--base);
}
.yero-hero:not(.yero-hero-small)::after {
  content: ""; position: absolute; pointer-events: none; z-index: 0;
  width: min(480px, 42%); aspect-ratio: 1; top: 50%; right: max(24px, calc((100% - 1228px) / 2));
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='%23d1b07b' stroke-width='1'%3E%3Ccircle cx='200' cy='200' r='34' stroke-opacity='.95'/%3E%3Ccircle cx='200' cy='200' r='70' stroke-opacity='.65'/%3E%3Ccircle cx='200' cy='200' r='108' stroke-opacity='.42'/%3E%3Ccircle cx='200' cy='200' r='148' stroke-opacity='.26'/%3E%3Ccircle cx='200' cy='200' r='192' stroke-opacity='.13'/%3E%3Ccircle cx='200' cy='200' r='6' fill='%23d1b07b' stroke='none'/%3E%3C/svg%3E") no-repeat center / contain;
  transform: translateY(-50%); animation: yero-rings 9s ease-in-out infinite;
}
.yero-hero > * { position: relative; z-index: 1; }
.yero-hero-small { background: radial-gradient(50% 120% at 90% 0%, rgba(209,176,123,.10), rgba(209,176,123,0) 60%); }
.yero-hero h1 { margin-top: .25rem; margin-bottom: 1.25rem; font-size: clamp(2.8rem, 6.4vw, 5rem); }
.yero-hero .yero-eyebrow:last-child { margin-top: 2.5rem; margin-bottom: 0; color: var(--wp--preset--color--muted); }
@keyframes yero-rings { 0%,100% { transform: translateY(-50%) scale(.97); opacity: .75; } 50% { transform: translateY(-50%) scale(1.04); opacity: 1; } }

/* Trois arguments */
.yero-pillars > .wp-block-column { border-top: 1px solid var(--wp--preset--color--line); padding-top: 1.25rem; position: relative; }
.yero-pillars > .wp-block-column::before { content: ""; position: absolute; top: -1px; left: 0; width: 44px; height: 1px; background: var(--wp--preset--color--accent); transition: width .4s ease; }
.yero-pillars > .wp-block-column:hover::before { width: 100%; }
.yero-pillars h3 { margin-top: 0; }

/* Cartes d'offres */
.yero-offers .yero-card { position: relative; transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.yero-offers .yero-card::before { content: ""; position: absolute; top: 0; left: 2rem; right: 2rem; height: 1px; background: linear-gradient(90deg, var(--wp--preset--color--accent), rgba(209,176,123,0)); }
.yero-offers .yero-card:hover { transform: translateY(-4px); border-color: rgba(209,176,123,.5); box-shadow: 0 24px 48px -28px rgba(0,0,0,.8), 0 0 0 1px rgba(209,176,123,.12); }
.yero-offers h3 { font-size: 2rem; margin-bottom: .1rem; }
.yero-price strong { font-weight: 600; font-size: 1.9rem; letter-spacing: -0.03em; }
.yero-offers .wp-block-buttons { margin-top: 1.5rem; }

/* Étapes : grands chiffres en serif doré */
.yero-steps .yero-eyebrow { font-family: var(--wp--preset--font-family--instrument-serif); font-style: italic; text-transform: none; letter-spacing: 0; font-size: 2.6rem; line-height: 1; margin: 0 0 .75rem; }
.yero-steps .yero-card { padding: 1.75rem; transition: transform .3s ease, border-color .3s ease; }
.yero-steps .yero-card:hover { transform: translateY(-3px); border-color: rgba(209,176,123,.4); }
.yero-steps h3 { font-size: 1.3rem; margin-top: 0; }
.yero-steps .yero-card p:last-child { color: var(--wp--preset--color--muted); font-size: .95rem; }

/* Bandeau final */
.yero-closing { background: radial-gradient(70% 120% at 50% 100%, rgba(209,176,123,.14), rgba(209,176,123,0) 70%), var(--wp--preset--color--band); }
.yero-closing h2 { font-size: clamp(2.2rem, 5vw, 3.4rem); }

/* Boutons */
.wp-block-button__link { transition: transform .2s ease, box-shadow .2s ease, filter .2s ease, border-color .2s ease; }
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 8px 24px -8px rgba(209,176,123,.55); }

/* ---- Animations d'apparition (activées par assets/yero.js) ---- */
.yero-js .yero-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); will-change: opacity, transform; }
.yero-js .yero-reveal.is-visible { opacity: 1; transform: none; }
.yero-js .yero-offers .yero-card.is-visible:hover, .yero-js .yero-steps .yero-card.is-visible:hover { transform: translateY(-4px); }
@media (prefers-reduced-motion: reduce) {
  .yero-js .yero-reveal { opacity: 1; transform: none; transition: none; }
  .yero-hero::after { animation: none !important; }
  html { scroll-behavior: auto; }
}

/* Mobile */
@media (max-width: 781px) {
  .yero-hero:not(.yero-hero-small) { min-height: 0; padding-top: 56px; padding-bottom: 48px; background: radial-gradient(80% 60% at 80% 0%, rgba(209,176,123,.16), rgba(209,176,123,0) 60%), var(--wp--preset--color--base); }
  .yero-hero:not(.yero-hero-small)::after { width: 70%; top: auto; bottom: -18%; right: -12%; opacity: .35; animation: none; transform: none; }
  .yero-lead { font-size: 1.05rem; }
  header.wp-block-template-part { position: static; }
}

/* ===== Passe finesse v1.2 : typographie plus petite et délicate ===== */
h1, h2, h3, h4 { font-weight: 400; }
h1 { letter-spacing: -0.03em; line-height: 1.08; }
h2 { letter-spacing: -0.028em; line-height: 1.15; }
h3 { letter-spacing: -0.015em; line-height: 1.25; }

.yero-hero h1 { font-size: clamp(2.1rem, 4.4vw, 3.3rem); margin-bottom: 1rem; }
.yero-section h2 { font-size: clamp(1.55rem, 2.7vw, 2.1rem); }
.yero-closing h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
.yero-offers h3 { font-size: 1.45rem; }
.yero-steps h3 { font-size: 1.05rem; }
.yero-pillars h3 { font-size: 1.05rem; letter-spacing: -0.01em; }
.yero-callout h3 { font-size: 1.15rem; }
.yero-lead { font-size: 1rem; line-height: 1.75; max-width: 520px; }
.yero-hero:not(.yero-hero-small) { min-height: 520px; }
.yero-section > p:not(.yero-eyebrow):not(.yero-note) { font-size: .95rem; }

/* Petits libellés */
.yero-eyebrow { font-size: .68rem; letter-spacing: .2em; margin-bottom: .9rem; }
.yero-note { font-size: .78rem; }
.yero-model { font-size: .68rem; letter-spacing: .16em; }
.yero-price-note { font-size: .62rem; }
.yero-price strong { font-size: 1.45rem; font-weight: 500; }
.yero-steps .yero-eyebrow { font-size: 2.1rem; }

/* Cartes plus compactes */
.yero-card { padding: 1.6rem; }
.yero-card p, .yero-card li { font-size: .9rem; }
.yero-steps .yero-card p:last-child { font-size: .88rem; }

/* Menu et boutons : petites capitales espacées (façon EarSonics) */
.yero-header .wp-block-navigation a, .yero-header .wp-block-navigation-item__content {
  font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 500;
}
.yero-header .wp-block-site-title { font-size: 1.1rem; }
.yero-header .wp-block-site-title a { font-weight: 600; letter-spacing: .02em; }
.wp-block-button__link, .wp-element-button {
  font-size: .72rem; line-height: 1.2; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; padding: 12px 20px;
}
.yero-header .wp-block-button__link { padding: 9px 14px; font-size: .68rem; }

/* FAQ et pied de page */
.wp-block-details summary { font-size: .98rem; font-weight: 500; }
.wp-block-details p { font-size: .9rem; }
.yero-footer { font-size: .85rem; }
.yero-footer .wp-block-site-title { font-size: 1.1rem; }
.yero-footer h4 { font-size: .68rem; letter-spacing: .18em; }
.yero-footer .yero-legalline { font-size: .74rem; }

@media (max-width: 781px) {
  .yero-hero h1 { font-size: 2rem; }
  .yero-lead { font-size: .95rem; }
}

/* ===== Logo ===== */
.yero-logo { display: inline-block; line-height: 0; text-decoration: none; }
.yero-logo img { display: block; height: 40px; width: auto; max-width: none; }
.yero-header .yero-logo img { height: 40px; }
.yero-footer .yero-logo img { height: 56px; }
@media (max-width: 781px) { .yero-header .yero-logo img { height: 34px; } }

/* ===== Oreille-empreinte (accueil) : remplace les anneaux ===== */
@media (min-width: 782px) {
  .yero-hero:not(.yero-hero-small)::after {
    width: min(400px, 36%); aspect-ratio: 412 / 532; height: auto;
    top: 50%; right: max(40px, calc((100% - 1228px) / 2 + 20px));
    background: linear-gradient(110deg, rgba(209,176,123,.42) 0%, rgba(209,176,123,.42) 36%, #f6e6c3 50%, rgba(209,176,123,.42) 64%, rgba(209,176,123,.42) 100%) 120% 0 / 280% 100% repeat-x;
    -webkit-mask: url("assets/ear-print.svg") no-repeat center / contain;
            mask: url("assets/ear-print.svg") no-repeat center / contain;
    transform: translateY(-50%); animation: yero-shimmer 9s ease-in-out infinite;
  }
}
@keyframes yero-shimmer { 0% { background-position: 120% 0; } 60%, 100% { background-position: -20% 0; } }
@media (max-width: 781px) {
  .yero-hero:not(.yero-hero-small)::after {
    width: 62%; aspect-ratio: 412 / 532; height: auto; top: auto; bottom: -8%; right: -10%; opacity: .5; animation: none; transform: none;
    background: rgba(209,176,123,.55);
    -webkit-mask: url("assets/ear-print.svg") no-repeat center / contain; mask: url("assets/ear-print.svg") no-repeat center / contain;
  }
}
@media (prefers-reduced-motion: reduce) { .yero-hero:not(.yero-hero-small)::after { animation: none !important; background-position: 50% 0; } }

/* ===== Ornements v1.6 : cercles, points, textures (discrets, en or fin) ===== */

/* Grain très léger sur tout le site */
body::after {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 60; opacity: .05;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Sections : calque d'ornements derrière le contenu */
.yero-section, .yero-closing { overflow: hidden; }
.yero-section > *, .yero-closing > * { position: relative; z-index: 1; }

/* Séparateur : petit point doré au centre du filet */
.yero-section::before, .yero-closing::before {
  height: 7px; top: -3px; z-index: 1;
  background:
    radial-gradient(circle at 50% 3.5px, var(--wp--preset--color--accent) 0 2.6px, rgba(209,176,123,.22) 3px 3.5px, transparent 3.6px) no-repeat,
    linear-gradient(90deg, rgba(42,47,60,0), var(--wp--preset--color--line) 20%, rgba(209,176,123,.45) 50%, var(--wp--preset--color--line) 80%, rgba(42,47,60,0)) 0 3px / 100% 1px no-repeat;
}

/* Sections impaires : trame de points en haut à droite */
.yero-section:nth-child(odd)::after {
  content: ""; position: absolute; top: 0; right: 0; width: 48%; height: 72%; pointer-events: none; z-index: 0;
  background: radial-gradient(rgba(209,176,123,.42) 1px, transparent 1.6px) 0 0 / 22px 22px;
  -webkit-mask-image: radial-gradient(75% 85% at 100% 0%, #000, transparent 78%);
          mask-image: radial-gradient(75% 85% at 100% 0%, #000, transparent 78%);
}
/* Sections paires : anneaux concentriques qui débordent à gauche */
.yero-section:nth-child(even)::after {
  content: ""; position: absolute; left: -200px; bottom: -220px; width: 560px; height: 560px; border-radius: 50%; pointer-events: none; z-index: 0;
  background: repeating-radial-gradient(circle, transparent 0 30px, rgba(209,176,123,.20) 30px 31px);
  -webkit-mask-image: radial-gradient(circle, #000 25%, transparent 70%);
          mask-image: radial-gradient(circle, #000 25%, transparent 70%);
}

/* Bandeau final : ondes sonores qui montent du bas */
.yero-closing::after {
  content: ""; position: absolute; left: 50%; bottom: -380px; width: 980px; height: 980px; border-radius: 50%; pointer-events: none; z-index: 0;
  background: repeating-radial-gradient(circle, transparent 0 44px, rgba(209,176,123,.17) 44px 45px);
  -webkit-mask-image: radial-gradient(circle, #000 18%, transparent 66%);
          mask-image: radial-gradient(circle, #000 18%, transparent 66%);
  transform: translateX(-50%); animation: yero-pulse 10s ease-in-out infinite;
}
@keyframes yero-pulse { 0%, 100% { transform: translateX(-50%) scale(.96); opacity: .8; } 50% { transform: translateX(-50%) scale(1.04); opacity: 1; } }

/* Héros : points et cercles dorés flottants */
.yero-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(circle 3px at 52% 38%,  rgba(209,176,123,.9) 96%, transparent),
    radial-gradient(circle 2px at 44% 12%, rgba(209,176,123,.75) 96%, transparent),
    radial-gradient(circle 4px at 53% 82%, rgba(209,176,123,.7) 96%, transparent),
    radial-gradient(circle 2px at 31% 64%, rgba(209,176,123,.6) 96%, transparent),
    radial-gradient(circle 64px at 6% 78%,  transparent 62px, rgba(209,176,123,.22) 63px, transparent 64px),
    radial-gradient(circle 110px at 47% 6%, transparent 108px, rgba(209,176,123,.14) 109px, transparent 110px),
    radial-gradient(circle 150px at 60% 108%, rgba(209,176,123,.07), transparent 70%);
  animation: yero-float 14s ease-in-out infinite;
}
.yero-hero-small::before {
  inset: auto; top: 0; right: 0; width: 42%; height: 100%;
  background: radial-gradient(rgba(209,176,123,.4) 1px, transparent 1.6px) 0 0 / 20px 20px;
  -webkit-mask-image: radial-gradient(80% 110% at 100% 0%, #000, transparent 75%); mask-image: radial-gradient(80% 110% at 100% 0%, #000, transparent 75%);
  animation: none;
}
@keyframes yero-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }

/* Trois arguments : numéros en police mono */
.yero-pillars { counter-reset: yp; }
.yero-pillars > .wp-block-column { counter-increment: yp; }
.yero-pillars h3::before {
  content: counter(yp, decimal-leading-zero); display: block; margin-bottom: .8rem;
  font-family: var(--wp--preset--font-family--plex-mono); font-size: .66rem; letter-spacing: .2em; color: var(--wp--preset--color--accent);
}

/* Étapes : ligne pointillée avec un nœud doré sur chaque carte */
.yero-steps { position: relative; margin-top: 40px; }
.yero-steps::before { content: ""; position: absolute; left: 0; right: 0; top: -19px; border-top: 1px dashed rgba(209,176,123,.35); }
.yero-steps > .wp-block-column { position: relative; }
.yero-steps > .wp-block-column::before {
  content: ""; position: absolute; top: -23px; left: 24px; width: 9px; height: 9px; border-radius: 50%;
  background: var(--wp--preset--color--accent); box-shadow: 0 0 0 5px rgba(209,176,123,.16), 0 0 14px rgba(209,176,123,.45);
}

/* Cartes : amas de points dans le coin */
.yero-card { position: relative; }
.yero-card::after {
  content: ""; position: absolute; top: 14px; right: 14px; width: 54px; height: 54px; pointer-events: none;
  background: radial-gradient(rgba(209,176,123,.55) 1px, transparent 1.6px) 0 0 / 9px 9px;
  -webkit-mask-image: linear-gradient(225deg, #000, transparent 72%); mask-image: linear-gradient(225deg, #000, transparent 72%);
  transition: opacity .3s ease; opacity: .8;
}
.yero-card:hover::after { opacity: 1; }

/* Pied de page : anneaux discrets */
.yero-footer { position: relative; overflow: hidden; }
.yero-footer::before {
  content: ""; position: absolute; right: -140px; bottom: -220px; width: 460px; height: 460px; border-radius: 50%; pointer-events: none;
  background: repeating-radial-gradient(circle, transparent 0 26px, rgba(209,176,123,.15) 26px 27px);
  -webkit-mask-image: radial-gradient(circle, #000 20%, transparent 68%); mask-image: radial-gradient(circle, #000 20%, transparent 68%);
}
.yero-footer > * { position: relative; z-index: 1; }

@media (max-width: 781px) {
  .yero-section:nth-child(even)::after { width: 380px; height: 380px; left: -170px; bottom: -160px; }
  .yero-closing::after { width: 620px; height: 620px; bottom: -260px; }
  .yero-steps > .wp-block-column::before { left: 20px; }
  body::after { opacity: .035; }
}
@media (prefers-reduced-motion: reduce) {
  .yero-hero::before, .yero-closing::after { animation: none !important; }
}

/* ===== Ajustements v1.6.1 (mobile) ===== */
.yero-header .yero-logo img { height: 44px; }
@media (max-width: 781px) {
  .yero-header .wp-block-buttons { display: none; }
  .yero-header .wp-block-group { flex-wrap: nowrap; }
  .yero-header .yero-logo img { height: 36px; }
  .yero-hero:not(.yero-hero-small) { padding-bottom: 230px; }
  .yero-hero:not(.yero-hero-small)::after { width: 52%; bottom: 16px; right: 6%; opacity: .55; }
  .yero-card::after { display: none; }
}

/* FAQ : liste alignée à gauche, sur la même ligne que le titre */
.yero-faq { max-width: none !important; margin-inline: 0 !important; }
.yero-faq > .wp-block-details, .yero-faq > p { max-width: 860px; margin-left: 0 !important; margin-right: 0 !important; }

/* ===== Pages légales : un seul titre, texte lisible aligné à gauche ===== */
main:has(.yero-legal) .wp-block-post-title { display: none; }
main:has(.yero-legal) { padding-top: 0 !important; padding-bottom: 0 !important; }
.yero-legal { padding-top: clamp(48px, 6vw, 80px); }
.yero-legal > * { max-width: 820px; margin-left: 0 !important; margin-right: 0 !important; }
.yero-legal h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 1.5rem; }
.yero-legal h2 { font-size: 1.45rem; margin-top: 2.4rem; }
.yero-legal h3 { font-size: 1.05rem; font-weight: 600; letter-spacing: -0.005em; margin-top: 1.9rem; margin-bottom: .4rem; color: var(--wp--preset--color--accent); }
.yero-legal p, .yero-legal li { font-size: .95rem; line-height: 1.8; color: #d9d6cf; }
.yero-legal ul { padding-left: 1.2rem; }
.yero-legal li { margin-bottom: .35rem; }
.yero-legal a { text-underline-offset: 3px; }

/* =====================================================================
   v1.7 : charte appliquée aux pages standard et à la boutique WooCommerce
   ===================================================================== */

/* Pages standard (Panier, Commande, Mon compte, Boutique…) : bandeau de titre comme les autres pages */
.yero-page { position: relative; overflow: hidden; }
.yero-page-head { position: relative; padding-top: clamp(44px, 6vw, 80px); padding-bottom: clamp(20px, 3vw, 36px);
  background: radial-gradient(50% 120% at 90% 0%, rgba(209,176,123,.10), rgba(209,176,123,0) 60%); }
.yero-page-head::before { content: ""; position: absolute; top: 0; right: 0; width: 42%; height: 100%; pointer-events: none;
  background: radial-gradient(rgba(209,176,123,.4) 1px, transparent 1.6px) 0 0 / 20px 20px;
  -webkit-mask-image: radial-gradient(80% 110% at 100% 0%, #000, transparent 75%); mask-image: radial-gradient(80% 110% at 100% 0%, #000, transparent 75%); }
.yero-page-head > * { position: relative; z-index: 1; }
.yero-page-head .wp-block-post-title { font-size: clamp(1.9rem, 3.6vw, 2.8rem); font-weight: 400; letter-spacing: -0.03em; margin: 0; }
.yero-page-body { position: relative; padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(60px, 8vw, 110px); }
.yero-page-body::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 7px;
  background:
    radial-gradient(circle at 50% 3.5px, var(--wp--preset--color--accent) 0 2.6px, rgba(209,176,123,.22) 3px 3.5px, transparent 3.6px) no-repeat,
    linear-gradient(90deg, rgba(42,47,60,0), var(--wp--preset--color--line) 20%, rgba(209,176,123,.45) 50%, var(--wp--preset--color--line) 80%, rgba(42,47,60,0)) 0 3px / 100% 1px no-repeat; }
.yero-page-body::after { content: ""; position: absolute; left: -200px; bottom: -220px; width: 520px; height: 520px; border-radius: 50%; pointer-events: none; z-index: 0;
  background: repeating-radial-gradient(circle, transparent 0 30px, rgba(209,176,123,.16) 30px 31px);
  -webkit-mask-image: radial-gradient(circle, #000 25%, transparent 70%); mask-image: radial-gradient(circle, #000 25%, transparent 70%); }
.yero-page-body > * { position: relative; z-index: 1; }
/* les pages légales gardent leur propre bandeau */
main:has(.yero-legal) .yero-page-head { display: none; }
main:has(.yero-legal) .yero-page-body { padding-top: 0; }
main:has(.yero-legal) .yero-page-body::before { display: none; }

/* ---- WooCommerce : textes, liens, tableaux ---- */
.woocommerce, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { color: var(--wp--preset--color--contrast); }
.woocommerce a:not(.button):not(.wp-element-button), .wc-block-components-product-name { color: var(--wp--preset--color--accent); }
.woocommerce table, .woocommerce table td, .woocommerce table th, .wc-block-cart-items td, .wc-block-cart-items th { border-color: var(--wp--preset--color--line) !important; color: var(--wp--preset--color--contrast); }
.woocommerce h2, .woocommerce h3, .wc-block-cart__totals-title, .wc-block-components-checkout-step__title { font-weight: 400; letter-spacing: -0.02em; }
.wc-block-cart__totals-title { font-family: var(--wp--preset--font-family--plex-mono); font-size: .72rem !important; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--accent); }

/* ---- Panier & commande : blocs en cartes ---- */
.wc-block-cart__sidebar, .wc-block-checkout__sidebar .wc-block-components-sidebar-layout__sidebar, .wc-block-components-sidebar {
  background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: .4rem; padding: 1.5rem !important; }
.wc-block-components-checkout-step { border-color: var(--wp--preset--color--line) !important; }
.wc-block-components-checkout-step__title { font-size: 1.15rem !important; }
.wc-block-components-panel, .wc-block-components-totals-wrapper { border-color: var(--wp--preset--color--line) !important; }
.wc-block-components-order-summary-item__description, .wc-block-components-product-metadata, .wc-block-components-product-price__regular { color: var(--wp--preset--color--muted) !important; }
.wc-block-cart-items__header, .wc-block-cart-items__header span { font-family: var(--wp--preset--font-family--plex-mono); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--muted) !important; }
.wc-block-components-quantity-selector { border-color: var(--wp--preset--color--line) !important; background: var(--wp--preset--color--surface); }
.wc-block-components-quantity-selector input, .wc-block-components-quantity-selector button { color: var(--wp--preset--color--contrast) !important; background: transparent !important; }
.wc-block-components-button:not(.is-link) { font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--base) !important; border: 1px solid var(--wp--preset--color--accent); border-radius: var(--yero-radius); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark, .wc-block-components-checkbox input[type="checkbox"] { background: var(--wp--preset--color--surface); border-color: var(--wp--preset--color--line); }
.wc-block-components-checkbox__label, .wc-block-components-checkbox label, .wc-block-checkout__terms { color: var(--wp--preset--color--contrast); font-size: .88rem; }
.wc-block-components-address-form select, .wc-blocks-components-select__container { background: var(--wp--preset--color--surface) !important; }
.wc-block-components-text-input input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px var(--wp--preset--color--surface) inset !important; -webkit-text-fill-color: var(--wp--preset--color--contrast) !important; }
.wc-block-components-notice-banner svg { fill: var(--wp--preset--color--accent); }

/* ---- Fiche produit ---- */
.single-product main, .wp-block-woocommerce-single-product { position: relative; }
.single-product .wp-block-post-title, .wp-block-woocommerce-product-details h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 400; letter-spacing: -0.03em; }
.single-product .wp-block-woocommerce-product-price, .single-product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--wp--preset--color--accent) !important; font-size: 1.6rem; font-weight: 500; letter-spacing: -0.02em; }
.single-product .wp-block-woocommerce-product-image-gallery, .single-product .woocommerce-product-gallery { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: .4rem; overflow: hidden; }
.single_add_to_cart_button, .wp-block-woocommerce-add-to-cart-form .single_add_to_cart_button, .wc-block-components-product-button .wp-element-button, .add_to_cart_button { background: var(--wp--preset--color--accent) !important; color: var(--wp--preset--color--base) !important; text-transform: uppercase; letter-spacing: .12em; font-size: .74rem; font-weight: 600; border: 1px solid var(--wp--preset--color--accent); border-radius: var(--yero-radius); padding: 14px 24px; }
.quantity .qty { width: 4.5rem; padding: .7rem .5rem; text-align: center; }
.product_meta, .woocommerce-product-details__short-description, .woocommerce-tabs, .wp-block-woocommerce-product-details { color: var(--wp--preset--color--muted); font-size: .92rem; }
.woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--wp--preset--color--line); padding-left: 0; }
.woocommerce-tabs ul.tabs li { background: transparent !important; border: none !important; }
.woocommerce-tabs ul.tabs li a { color: var(--wp--preset--color--muted) !important; text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; }
.woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--accent) !important; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { border: none !important; box-shadow: none !important; display: none; }

/* ---- Boutique : cartes produits ---- */
.wc-block-product, .wp-block-woocommerce-product-collection .wp-block-post, ul.products li.product {
  background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: .4rem; padding: 1.25rem;
  transition: transform .3s ease, border-color .3s ease; }
.wc-block-product:hover, .wp-block-woocommerce-product-collection .wp-block-post:hover, ul.products li.product:hover { transform: translateY(-3px); border-color: rgba(209,176,123,.45); }
.wc-block-product .wp-block-post-title, ul.products li.product .woocommerce-loop-product__title { font-size: 1.15rem; font-weight: 400; }
.wc-block-grid__product-price, .wc-block-components-product-price, .woocommerce ul.products li.product .price { color: var(--wp--preset--color--accent) !important; }
.woocommerce-result-count, .woocommerce-ordering select, .wp-block-woocommerce-catalog-sorting select { color: var(--wp--preset--color--muted); font-size: .85rem; }

/* ---- Mon compte ---- */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; border: 1px solid var(--wp--preset--color--line); border-radius: .4rem; background: var(--wp--preset--color--surface); overflow: hidden; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--wp--preset--color--line); }
.woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation a { display: block; padding: .85rem 1.1rem; color: var(--wp--preset--color--muted) !important; text-decoration: none; font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation a:hover { color: var(--wp--preset--color--accent) !important; }
.woocommerce form.login, .woocommerce form.register, .woocommerce-ResetPassword { border: 1px solid var(--wp--preset--color--line) !important; border-radius: .4rem; background: var(--wp--preset--color--surface); padding: 1.5rem !important; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { background: var(--wp--preset--color--surface) !important; color: var(--wp--preset--color--contrast) !important; border-top-color: var(--wp--preset--color--accent) !important; }
.woocommerce-info::before, .woocommerce-message::before { color: var(--wp--preset--color--accent) !important; }
.woocommerce form .form-row label { color: var(--wp--preset--color--muted); font-size: .85rem; }

@media (max-width: 781px) {
  .yero-page-head::before { width: 60%; }
  .yero-page-body::after { width: 340px; height: 340px; left: -160px; bottom: -150px; }
}

/* Cases à cocher de commande (CGV / embouts personnalisés) */
.wc-block-checkout__order-fields .wc-block-components-checkbox, .wc-block-components-checkbox.wc-block-checkout__additional-fields { margin: .9rem 0; }
.wc-block-checkout__order-fields .wc-block-components-checkbox__label { font-size: .88rem; line-height: 1.5; color: var(--wp--preset--color--contrast); }
a.yero-cgv-link { color: var(--wp--preset--color--accent); text-decoration: underline; text-underline-offset: 3px; }
a.yero-cgv-link:hover { text-decoration-thickness: 2px; }

/* Formulaire de contact */
.yero-form p { margin: 0 0 1rem; }
.yero-form label { display: block; font-family: var(--wp--preset--font-family--plex-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin-bottom: .4rem; }
.yero-form input[type="text"], .yero-form input[type="email"], .yero-form textarea { width: 100%; box-sizing: border-box; background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--line); border-radius: var(--yero-radius); padding: .75rem .9rem; font: inherit; font-size: .95rem; }
.yero-form input:focus, .yero-form textarea:focus { outline: none; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px rgba(209,176,123,.18); }
.yero-form .yero-consent label { text-transform: none; letter-spacing: 0; font-family: inherit; font-size: .85rem; line-height: 1.5; color: var(--wp--preset--color--muted); }
.yero-form .yero-consent input { margin-right: .5rem; accent-color: var(--wp--preset--color--accent); }
.yero-form .yero-consent a { color: var(--wp--preset--color--accent); }
.yero-form button { cursor: pointer; }
.yero-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.yero-form-msg { padding: .85rem 1rem; border-radius: var(--yero-radius); font-size: .9rem; margin: 0 0 1rem; }
.yero-form-ok { border: 1px solid var(--wp--preset--color--accent); background: rgba(209,176,123,.1); color: var(--wp--preset--color--contrast); }
.yero-form-err { border: 1px solid #b4574f; background: rgba(180,87,79,.12); color: var(--wp--preset--color--contrast); }
/* Fiche produit : on masque ce qui ne sert pas au lancement */
.single-product .wp-block-woocommerce-product-sku, .single-product .product_meta .sku_wrapper { display: none; }
