/* Thomas Angelvy, déclinaison sobre d'Early FSE Base. CSS front & éditeur. */
:root {
  color-scheme: dark;
  --ta-black:#000;
  --ta-white:#fafafa;
  --ta-muted:#b5b5b5;
  --ta-line:#383838;
  --ta-blue:#5685ff;
  --ta-font:'Oswald','Roboto Condensed','Arial Narrow',Arial,sans-serif;
}
html { scroll-behavior:smooth; }
body { background:#000 !important; color:var(--ta-white); font-family:var(--ta-font); }
body .wp-site-blocks { background:#000; min-height:100vh; }
body .wp-site-blocks > * { margin-block-start:0; }
body :where(h1,h2,h3,h4,h5,h6,.wp-block-post-title,.wc-block-components-title) { font-family:var(--ta-font); font-weight:500; letter-spacing:-.025em; }
body :where(h1,h2,h3,h4) { text-transform:none; }
body :where(a) { text-underline-offset:.18em; transition:color .15s ease; }
body :where(a:hover,a:focus-visible) { color:var(--ta-blue); }
body :where(button,input,select,textarea) { font:inherit; }
body :where(button,a,input,select,textarea):focus-visible { outline:2px solid var(--ta-blue)!important; outline-offset:3px; }
/* En-tête calqué sur la structure du Joomla, sans masquer les commandes de paiement. */
.ta-site-header { position:relative; z-index:30; border:0; background:#000; padding:11px clamp(16px,3vw,34px) 12px; }
.ta-header-inner { display:grid !important; grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr); align-items:center; column-gap:20px; width:100%; max-width:1200px; min-height:66px; margin-inline:auto !important; }
.ta-main-menu { justify-self:start; min-width:0; }
.ta-main-menu .wp-block-navigation__responsive-container-open { display:flex !important; color:#fff !important; background:transparent !important; padding:8px !important; border:0 !important; border-radius:0 !important; }
.ta-main-menu .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none !important; }
.ta-main-menu .wp-block-navigation__responsive-container.is-menu-open { background:#050505 !important; color:#fff !important; padding:clamp(18px,6vw,56px) !important; }
.ta-main-menu .wp-block-navigation__responsive-container.is-menu-open a { font-size:clamp(1.4rem,3vw,2rem); text-decoration:none; }
.ta-brand-logo { justify-self:center; width:clamp(116px,13vw,170px); max-width:100%; margin:0 !important; }
.ta-brand-logo img { width:100% !important; height:auto !important; object-fit:contain; }
.ta-header-right { justify-self:end; display:flex; align-items:center; gap:12px; }
.ta-header-back { font-size:.95rem; margin:0 !important; white-space:nowrap; }
.ta-header-back a { text-decoration:none; }
.ta-header-right .wc-block-mini-cart__button { color:#fff; border:0; padding:.45rem; background:transparent; }
.ta-header-right .wc-block-mini-cart__badge { color:#000; background:#fff; }
/* Main, séparations, bas de page */
.ta-main-content { width:100%; max-width:1200px; margin:0 auto !important; padding-block:clamp(24px,5vw,58px) clamp(40px,6vw,88px); }
.ta-main-content > .wp-block-post-title { margin-bottom:clamp(1.5rem,3vw,3rem); }
.ta-site-footer { padding:25px 16px 36px; background:#000; color:#c5c5c5; }
.ta-footer-inner { font-size:.8rem; opacity:.85; }
.ta-footer-inner a { color:inherit; }
body .wp-block-separator { border-color:#303030; opacity:1; }
/* Boutons ronds, filet fin, jamais de fond blanc hors interaction. */
body :where(.wp-block-button__link,.wp-element-button,button.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button) {
  border:1px solid #454545; border-radius:999px; background:#000; color:#fff;
  box-shadow:none; font-family:var(--ta-font); font-weight:450; line-height:1.25; text-transform:none;
  padding:.72rem 1.55rem; transition:background .15s,color .15s,border-color .15s;
}
body :where(.wp-block-button__link,.wp-element-button,button.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button):not(:disabled):hover {
  background:#fff; color:#000; border-color:#fff;
}
body :where(.button:disabled,button:disabled) { opacity:.48; cursor:not-allowed; }
/* WooCommerce catalogue natif : photos avant tout, aucun cadre. */
.woocommerce-page,.woocommerce,.wc-block-product-collection { background:transparent; color:var(--ta-white); }
.woocommerce :where(ul.products, ul.products li.product), .wc-block-product-template, .wc-block-grid__product { border:0 !important; background:transparent !important; box-shadow:none !important; }
.woocommerce ul.products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 25px; margin-top:26px; padding:0; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { width:100% !important; margin:0 !important; float:none !important; list-style:none; }
.woocommerce ul.products li.product a img,
.wc-block-product-template .wc-block-components-product-image img,
.wc-block-grid__products img,
.wc-block-product-collection img { width:100%; max-width:100%; height:auto; border-radius:0 !important; box-shadow:none !important; }
.wc-block-product-template { gap:clamp(20px,3vw,35px) !important; }
.woocommerce :where(.woocommerce-loop-product__title,.price),
.wc-block-product-template :where(.wp-block-post-title,.wc-block-components-product-price) { padding:0; margin-top:9px; color:#fff !important; }
.woocommerce .woocommerce-loop-product__title,.wc-block-product-template .wp-block-post-title { font-size:1.22rem !important; font-weight:500; line-height:1.2; }
.woocommerce :where(.price, .woocommerce-Price-amount), .wc-block-components-product-price { font-size:1rem; color:#eee !important; }
.woocommerce span.onsale, .wc-block-components-product-sale-badge { position:static; display:inline-block; background:transparent !important; color:#eee !important; border:1px solid #666 !important; min-width:0; min-height:0; line-height:1.3; padding:2px 8px; border-radius:0; font-size:.75rem; }
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering { color:var(--ta-muted); }
.woocommerce select.orderby { background:#000; color:#fff; border:1px solid #444; border-radius:0; padding:8px; }
/* Produit : WooCommerce garde le formulaire natif et la validation des options. */
.woocommerce div.product .product_title { color:#fff; }
.woocommerce div.product .summary { color:#fff; }
.woocommerce div.product .woocommerce-product-gallery img { border-radius:0; }
.woocommerce div.product :where(table.variations, table.variations td, table.variations th) { background:transparent; border:0; }
.woocommerce div.product form.cart :where(select,input.qty) { background:#0b0b0b; color:#fff; border:1px solid #525252; border-radius:0; }
.woocommerce :where(.woocommerce-tabs,.related,.up-sells) { margin-top:2.5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom:1px solid #343434; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background:transparent; border:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color:#eee; }
.woocommerce :where(.star-rating,.woocommerce-review-link) { color:#fff; }
/* Formulaires : fonds très sombres, contrastes vérifiables. */
body :where(.woocommerce input.input-text,.woocommerce textarea,.woocommerce select,.wc-block-components-text-input input,.wc-block-components-text-input select,.wc-block-components-select select,.wc-block-components-combobox input,.wc-blocks-components-select__select,.wc-block-components-form .wc-block-components-text-input input) {
  background:#080808 !important; color:#fff !important; border:1px solid #4d4d4d !important; border-radius:3px !important; box-shadow:none !important;
}
body :where(.woocommerce input::placeholder,.woocommerce textarea::placeholder,.wc-block-components-text-input input::placeholder) { color:#a6a6a6 !important; opacity:1; }
body :where(label,.wc-block-components-checkbox__label,.wc-block-components-text-input label,.wc-block-components-form label) { color:#f2f2f2; }
/* Panier et validation du paiement : aucune suppression de messages ou champs obligatoires. */
body :where(.wc-block-components-main,.wc-block-components-sidebar,.wc-block-cart,.wc-block-checkout) { color:#f6f6f6; background:transparent; }
body :where(.wc-block-components-sidebar-layout,.wc-block-components-order-summary,.wc-block-components-totals-wrapper,.wc-block-cart-items,.wc-block-components-totals-item,.wc-block-components-panel) { background:transparent !important; color:#f6f6f6; border-color:#373737 !important; }
body :where(.wc-block-components-order-summary__button-text,.wc-block-components-totals-item__label,.wc-block-components-totals-item__value,.wc-block-components-product-name,.wc-block-components-formatted-money-amount,.wc-block-components-totals-coupon-link,.wc-block-components-order-summary-item__description) { color:#f6f6f6; }
body :where(.wc-block-components-button,.wc-block-components-checkout-place-order-button) { background:#000; color:#fff; border:1px solid #5b5b5b; border-radius:999px; box-shadow:none; min-height:48px; }
body :where(.wc-block-components-button,.wc-block-components-checkout-place-order-button):hover:not(:disabled) { background:#fff; color:#000; }
body :where(.wc-block-components-button):focus-visible { outline:2px solid var(--ta-blue) !important; }
body :where(.wc-block-components-notice-banner,.woocommerce-message,.woocommerce-info,.woocommerce-error) { background:#151515 !important; color:#fff !important; border:1px solid #555 !important; border-left-width:3px !important; }
body :where(.wc-block-components-notice-banner) a { color:#fff !important; text-decoration:underline; }
body :where(.woocommerce table.shop_table,.woocommerce table.shop_table td,.woocommerce table.shop_table th,.woocommerce-cart-form,.cart_totals) { border-color:#333; color:#fff; background:transparent; }
body :where(.wc-block-components-shipping-rates-control,.wc-block-components-address-form,.wc-block-components-radio-control,.wc-block-checkout__payment-method,.wc-block-components-payment-method-icons) { background:transparent; color:#fff; }
body :where(.wc-block-components-radio-control__option,.wc-block-components-radio-control-accordion-option) { background:#0b0b0b; color:#fff; border-color:#333; }
/* Radios, select et liens d'accessibilité conservent un contraste suffisant. */
body input[type="checkbox"],body input[type="radio"] { accent-color:#fff; }
body a:focus-visible,body button:focus-visible { outline-offset:2px; }
@media(max-width:900px) { .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 18px; } }
@media(max-width:640px) {
  .ta-site-header { padding:7px 14px; }
  .ta-header-inner { grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr); gap:8px; min-height:58px; }
  .ta-brand-logo { width:118px; }
  .ta-header-back { display:none; }
  .ta-main-content { padding-block:20px 46px; }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 12px; }
  .woocommerce .woocommerce-loop-product__title { font-size:1rem !important; }
  .woocommerce ul.products li.product a.button { padding:8px 12px; font-size:.85rem; }
}
@media(max-width:360px) { .woocommerce ul.products { grid-template-columns:1fr; } }


/* v1.1.0: Joomla tom template header parity. Geometry and naming are taken
 * from user-supplied tom/index.php and css/template.css (not WordPress nav).
 * This bottom layer intentionally overrides stale FSE styles. */
:root{--font-main:'Oswald','Roboto Condensed','Arial Narrow',Arial,sans-serif;--text-color:#f9f9f9;--bg-color:#000;--ta-blue:#639afe}
body,body .wp-site-blocks,body .wp-site-blocks *:where(h1,h2,h3,h4,h5,h6){font-family:var(--font-main)}
body :where(button,input,select,textarea){font-family:var(--font-main)}
body .wp-site-blocks {background:#000!important;color:#f9f9f9}
/* The Joomla site header is ~70px high, with a fully centred logo and fixed controls. */
body .ta-joomla-header,body header.ta-joomla-header.wp-block-group {
  position:relative!important;isolation:isolate;z-index:1010!important;
  width:100%!important;max-width:none!important;min-height:79px!important;
  display:block!important;margin:0!important;padding:0!important;
  border:0!important;background:transparent!important;box-shadow:none!important;
}
.ta-joomla-header .site-logo {
  position:absolute!important;z-index:1001;display:flex!important;align-items:center;justify-content:center;
  top:7px!important;left:50%!important;right:auto!important;
  transform:translateX(-50%)!important;width:auto!important;height:70px!important;
  max-width:clamp(125px,21vw,160px)!important;margin:0!important;
  padding:0!important;border:0!important;
}
.ta-joomla-header .site-logo img {display:block!important;width:auto!important;max-width:100%!important;max-height:68px!important;height:auto!important;object-fit:contain!important}
.ta-joomla-header .nav-toggle {
  position:fixed!important;top:24px!important;left:24px!important;z-index:100003!important;
  display:inline-flex!important;flex-direction:column;gap:5px;align-items:center;justify-content:center;
  width:48px!important;height:48px!important;border:0!important;border-radius:0!important;
  background:transparent!important;color:#fff!important;cursor:pointer!important;padding:0!important;
  box-shadow:none!important;line-height:normal!important;
}
.ta-joomla-header .nav-toggle:hover,.ta-joomla-header .nav-toggle:focus {background:transparent!important;color:#639afe!important}
.ta-joomla-header .nav-toggle__line{display:block;width:28px;height:2px;background:currentColor;box-shadow:0 0 8px currentColor;transition:transform .25s ease,opacity .25s ease}
.ta-joomla-header .nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.ta-joomla-header .nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(2){opacity:0}
.ta-joomla-header .nav-toggle[aria-expanded="true"] .nav-toggle__line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.ta-joomla-header .site-nav {
  position:fixed!important;inset:0!important;z-index:100002!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:100vw!important;max-width:none!important;height:100dvh!important;
  background:rgba(0,0,0,.96)!important;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .3s ease,visibility .3s ease;overflow-y:auto;
}
.ta-joomla-header .site-nav.is-open{opacity:1;visibility:visible;pointer-events:auto}
.ta-joomla-header .site-nav .ta-menu-links {display:flex!important;flex-direction:column!important;justify-content:center;align-items:center;gap:4px;list-style:none!important;margin:0!important;padding:0!important;max-width:90vw!important}
.ta-joomla-header .site-nav li{margin:0!important;padding:0!important}
.ta-joomla-header .site-nav a{display:block;padding:.55rem 1rem;color:#fff!important;font:700 clamp(1.45rem,4vw,2rem)/1.25 var(--font-main)!important;text-decoration:none!important;text-align:center!important}
.ta-joomla-header .site-nav a:hover,.ta-joomla-header .site-nav a:focus-visible{color:#639afe!important}
.ta-navigation-open{overflow:hidden}
.ta-joomla-header .RS.ta-social-icons {
  position:fixed!important;top:16px!important;right:23px!important;z-index:1011!important;
  display:flex!important;align-items:center;justify-content:center;gap:8px!important;height:26px!important;
  padding:0!important;margin:0!important;line-height:1!important;
}
.ta-joomla-header .ta-social-icons a {display:inline-flex;align-items:center;justify-content:center;color:#fff!important;opacity:1;line-height:1;width:16px;height:16px;transition:opacity .2s}
.ta-joomla-header .ta-social-icons a:hover{opacity:.65;color:#fff!important}
.ta-joomla-header .ta-social-icons svg{display:block;width:14px;height:14px;fill:none}
.ta-joomla-header .ta-header-cart.wp-block-group {
  position:fixed!important;top:43px!important;right:23px!important;z-index:1011!important;
  display:flex!important;align-items:center;justify-content:flex-end;
  width:auto!important;height:31px!important;min-height:0!important;
  margin:0!important;padding:0!important;background:transparent!important;
}
.ta-joomla-header .ta-header-cart .wc-block-mini-cart{display:flex;align-items:center;margin:0!important}
.ta-joomla-header .ta-header-cart .wc-block-mini-cart__button {padding:0!important;min-width:24px;min-height:24px;width:30px;height:30px;background:transparent!important;color:#fff!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.ta-joomla-header .ta-header-cart .wc-block-mini-cart__badge{background:#fff!important;color:#000!important}
.ta-joomla-header .ta-header-cart .wc-block-mini-cart__icon{width:21px;height:21px}
.ta-joomla-header .ta-skip-link{position:fixed;z-index:100010;left:-200vw;top:8px;background:#fff;color:#111;padding:10px 12px}
.ta-joomla-header .ta-skip-link:focus{left:75px}
/* No account icon, title, or floating menu coming from the old FSE header. */
.ta-joomla-header .ta-header-back,.ta-joomla-header .ta-brand-logo,.ta-joomla-header .ta-main-menu,.ta-joomla-header .ta-header-inner{display:none!important}
@media(max-width:680px){
 body .ta-joomla-header,body header.ta-joomla-header.wp-block-group{min-height:72px!important}
 .ta-joomla-header .nav-toggle{top:12px!important;left:9px!important;width:48px!important;height:48px!important}
 .ta-joomla-header .nav-toggle__line{width:23px}
 .ta-joomla-header .site-logo{top:4px!important;height:64px!important;max-width:134px!important}
 .ta-joomla-header .site-logo img{max-height:58px!important}
 .ta-joomla-header .RS.ta-social-icons{display:none!important}
 .ta-joomla-header .ta-header-cart.wp-block-group{top:23px!important;right:14px!important;height:30px!important}
}
@media(prefers-reduced-motion:reduce){.ta-joomla-header .site-nav,.ta-joomla-header .nav-toggle__line{transition:none!important}}
