/* =============================================================================
   FTB — Réglages tactiles et d'accessibilité communs à tout le site.
   Chargé en dernier (functions.php, prio 120). Audit apple-design du 2026-11-02.
   ============================================================================= */

/* ── Retour immédiat à l'appui ──────────────────────────────────────────────
   `scale` plutôt que `transform` : se compose avec les translate déjà posés. */
a.button:active,
button.button:active,
.button:active,
.fh-btn:active,
.fh-find__tab:active,
.fh-find__tile:active,
.fh-brands__nav:active:not(:disabled),
.single_add_to_cart_button:active:not(:disabled),
.ftb-promo-card__atc:active,
.ftb-sticky-atc__btn:active,
.ftb-pdp-routine__bundle-btn:active:not(:disabled),
.ftb-news-form__btn:active,
.ftb-nlp__go:active,
.ftb-footer__social-link:active,
.menu-toggle:active,
.page-numbers:active,
.checkout-button:active,
#place_order:active {
  scale: 0.97;
  transition: scale 100ms ease-out;
}
.quantity-button:active {
  background-color: var(--ftb-sage, #DCE6D5) !important;
}

/* Pas de délai ni de zoom au double appui sur les commandes. */
a, button, input, select, textarea, label, summary, [role="button"], [role="link"], [role="tab"] {
  touch-action: manipulation;
}

/* ── Bouton panier des cartes ───────────────────────────────────────────────
   Sélecteurs longs : `ul.products li.product .button` (style.css) l'emporte sinon. */
ul.products li.product .ftb-promo-card__atc,
ul.products li.product .ftb-promo-card__atc.button {
  border-radius: var(--ftb-radius-pill, 9999px) !important;
}
ul.products li.product .ftb-promo-card__atc:hover,
ul.products li.product .ftb-promo-card__atc.button:hover {
  background: var(--ftb-peach-deep, #B5622F) !important;
  color: #fff !important;
}
@media (max-width: 640px) {
  ul.products li.product .ftb-promo-card__atc,
  ul.products li.product .ftb-promo-card__atc.button {
    font-size: .8125rem !important;
    padding: 10px 6px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
  }
}

/* ── Anneau de focus clavier aux couleurs de la charte ──────────────────── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible,
.keyboard-active :focus-visible {
  outline: 2px solid var(--ftb-forest, #3A5449) !important;
  outline-offset: 2px;
}

/* ── Écrans tactiles et étroits : cibles de 44 px, champs sans zoom iOS ──── */
@media (max-width: 992px), (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
  select,
  textarea,
  body .dgwt-wcas-search-wrapp .dgwt-wcas-search-input,
  body .col-full-nav .site-search .dgwt-wcas-search-input,
  .single-product div.product form.cart .quantity input.qty,
  .ftb-news-form__input {
    font-size: 16px !important;
  }

  .ftb-news-form__input,
  select.orderby,
  .woocommerce-ordering select {
    min-height: 44px !important;
  }

  .fh-find__tab,
  a.page-numbers,
  span.page-numbers {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .ftb-cat-desc-toggle {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  .ftb-header-tools .site-header-cart a.cart-contents {
    min-height: 44px;
    min-width: 44px;
    justify-content: center;
  }

  .shoptimizer-mini-cart-wrap .close-drawer {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
  }

  /* Liens en ligne : le remplissage agrandit la zone d'appui sans déplacer le texte. */
  .ftb-footer__links a,
  .ftb-footer__links .ftb-obf-b64,
  .ftb-footer__copyright-links a,
  .ftb-footer__copyright-links .ftb-obf-b64,
  .ftb-footer__copyright-links button.ftb-footer__consent,
  a.ftb-pdp-brand,
  a.ftb-pdp-pourquoi__link {
    padding-block: 12px;
    margin-block: -12px;
  }

  /* Le bandeau passait devant le menu ouvert, et sa croix à côté de celle du menu. */
  .mobile-toggled .ftb-promo-bar { visibility: hidden; }

  /* Zone d'appui agrandie sans changer le dessin. */
  .single-product div.product form.cart .quantity .quantity-button::after,
  .woocommerce-product-gallery__trigger::after,
  .dgwt-wcas-search-submit::after {
    content: '';
    position: absolute;
    inset: -7px;
  }
  .single-product div.product form.cart .quantity .quantity-button::after {
    inset: 0 -11px;
  }
}

/* ── Commande et compte (contrôle du 2026-11-05) ─────────────────────────── */
.ftb-dashboard-hero h2.ftb-dashboard-hero__greeting { color: #fff !important; }

.ftb-login-forms .button.woocommerce-form-login__submit,
.ftb-login-forms .button.woocommerce-form-register__submit {
  background: #D17A4D !important; /* même teinte que « Enregistrer » du compte */
  border-color: #D17A4D !important;
  color: #fff !important;
  border-radius: var(--ftb-radius-pill, 9999px) !important;
}

.woocommerce-checkout .woocommerce-info {
  background: var(--ftb-forest, #3A5449) !important;
  border-color: var(--ftb-forest-deep, #1F3329) !important;
  color: #fff !important;
}
.woocommerce-checkout .woocommerce-info a { color: #fff !important; }

@media (max-width: 768px) {
  .woocommerce-account .ftb-account-nav ul li.is-active a {
    background: var(--ftb-forest, #3A5449) !important;
    border-color: var(--ftb-forest, #3A5449) !important;
    color: #fff !important;
  }
}

@media (max-width: 992px), (pointer: coarse) {
  .woocommerce-checkout .form-row input.input-text,
  .woocommerce-account form input.input-text,
  .woocommerce-account form input.woocommerce-Input,
  .ftb-login-forms input.input-text,
  .woocommerce-account form select {
    min-height: 44px !important;
  }

  .woocommerce-checkout input[type="checkbox"],
  .woocommerce-checkout input[type="radio"],
  .woocommerce-account form input[type="checkbox"],
  .ftb-login-forms input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
  }

  .woocommerce-account .ftb-account-nav ul li a {
    min-height: 44px;
    display: flex;
    align-items: center;
  }

  .ftb-login-forms .lost_password a,
  .woocommerce-breadcrumb a,
  .woocommerce-checkout a.showlogin,
  .woocommerce-checkout a.showcoupon,
  .woocommerce-checkout a.woocommerce-privacy-policy-link {
    padding-block: 12px;
    margin-block: -12px;
  }

  /* ::before : le ::after de ce bouton dessine l'icône de l'œil. */
  .woocommerce-account form .show-password-input::before {
    content: '';
    position: absolute;
    inset: -12px -8px;
  }

  .woocommerce-checkout label > input[type="checkbox"],
  .woocommerce-account form label > input[type="checkbox"],
  .ftb-login-forms label > input[type="checkbox"] {
    margin-left: -4px !important;
  }
}

/* ── Le survol ne doit pas rester collé après un appui ───────────────────── */
@media (hover: none) {
  .ftb-concerns__tile:hover,
  .ftb-brands__card:hover,
  .ftb-news-form__btn:hover,
  .ftb-newsletter__social-btn:hover,
  .single-product div.product form.cart .single_add_to_cart_button:hover,
  .ftb-pdp-origin-pill:hover,
  .sale-item.product-label:hover,
  span.onsale:hover,
  ul.products li.product:hover,
  li.product:hover img,
  ul.products li.product:hover .woocommerce-image__wrapper img,
  .ftb-card-ind-arrow:hover,
  .ftb-promo-card:hover,
  .ftb-promo-card:hover .ftb-promo-card__img-wrap img,
  .ftb-article-card:hover,
  .ftb-article-card:hover .ftb-article-card__media img,
  .ftb-track__help-item:hover,
  .fh-btn--primary:hover,
  .fh-btn--ghost:hover,
  .fh-btn--cream:hover,
  .fh-btn:hover svg,
  .fh-trust__card:hover,
  .fh-find__tile:hover,
  .fh-find__tile:hover .fh-find__img,
  .fh-cnav__btn:hover:not(:disabled),
  .fh-strip .fh-strip__viewport ul.products li.product:hover,
  .fh-curator__pillar:hover,
  .fh-brand-card:hover,
  .fh-charter__actif:hover,
  .fh-charter__actif:hover .fh-charter__actif-icon,
  .fh-charter__refuse-item:hover,
  .fh-reviews__item:hover,
  .fh-mag__card:hover,
  .fh-mag__card:hover .fh-mag__img,
  .ftb-pdp-actif:hover,
  .ftb-pdp-sans__item:hover,
  .ftb-pdp-usage__step:hover,
  .ftb-pdp-pq:hover,
  .ftb-pdp-resume__card:hover,
  .ftb-pdp-comparatif__card:hover,
  .ftb-pdp-faq__editorial-card:hover,
  .ftb-pdp-reassurance__card:hover,
  .ftb-pdp-routine__card:hover,
  .ftb-pdp-routine__bundle-btn:hover,
  .ftb-blog-shop__card:hover,
  .ftb-blog-shop__card:hover .ftb-blog-shop__media img,
  .ftb-brand-other:hover,
  .ftb-404__link-card:hover,
  .ftb-dashboard-card:hover,
  .ftb-article__related-card:hover,
  .ftb-article__related-card:hover .ftb-article__related-media img,
  .ftb-cart-empty__card:hover,
  .ftb-search__post-card:hover,
  .ftb-search__cat-card:hover {
    transform: none !important;
  }

  /* Avis : des liens qui défilent seuls ne se touchent pas. Ici, c'est le doigt qui les fait défiler. */
  .fh-reviews__carousel {
    overflow-x: auto;
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .fh-reviews__carousel::-webkit-scrollbar { display: none; }
  .fh-reviews__carousel::before,
  .fh-reviews__carousel::after { display: none; }
  .fh-reviews__track { animation: none; }
  .fh-reviews__item { scroll-snap-align: center; }
}

/* ── Tablettes : le carrousel de produits suit le doigt (défilement natif) ─ */
@media (min-width: 769px) and (hover: none) and (pointer: coarse) {
  .fh-strip__viewport {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .fh-strip__viewport::-webkit-scrollbar { display: none; }
  .fh-strip .fh-strip__viewport ul.products li.product { scroll-snap-align: start; }
}

/* ── Tiroir panier : transform (composité) et non `right` (recalcul de page) ─ */
.widget_shopping_cart a.button { border-radius: var(--ftb-radius-pill, 9999px) !important; }

.shoptimizer-mini-cart-wrap {
  right: 0 !important;
  transform: translateX(100%);
  visibility: hidden;
  transition: transform .32s cubic-bezier(.32, .72, 0, 1), visibility 0s linear .32s;
}
.drawer-open .shoptimizer-mini-cart-wrap {
  transform: none;
  visibility: visible;
  transition: transform .32s cubic-bezier(.32, .72, 0, 1), visibility 0s;
}

/* ── Préférences d'accessibilité du système ─────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; }
  .shoptimizer-mini-cart-wrap,
  .col-full-nav,
  .ftb-nav-bar { transform: none !important; }
  .shoptimizer-mini-cart-wrap { opacity: 0; transition: opacity .2s ease, visibility 0s linear .2s !important; }
  .drawer-open .shoptimizer-mini-cart-wrap { opacity: 1; transition: opacity .2s ease, visibility 0s !important; }
}

@media (prefers-reduced-transparency: reduce) {
  * {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fh-find__count,
  .fh-curator__sig,
  .ftb-pdp-routine__bundle-action { background: var(--ftb-warm-white, #FFFCF7) !important; }
}

@media (prefers-contrast: more) {
  :root {
    --ftb-soft: #5C5650;
    --ftb-mid: #3F3A35;
    --ftb-border: rgba(31, 27, 23, 0.55);
  }
  * {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fh-btn--primary,
  .ftb-promo-card .ftb-promo-card__atc,
  .ftb-promo-card .ftb-promo-card__atc.button,
  .single_add_to_cart_button,
  .ftb-sticky-atc__btn,
  .ftb-news-form__btn {
    color: var(--ftb-charcoal, #1F1B17) !important;
    border: 1px solid var(--ftb-charcoal, #1F1B17) !important;
  }
}
