/*
Theme Name: Boutique Noir et Blanc
Template: twentytwentyfive
Description: Thème enfant de Twenty Twenty-Five pour Icon London – boutique de prêt-à-porter en noir et blanc.
Version: 1.0.0
Author: Icon London
Text Domain: boutique-noir-blanc
Requires at least: 6.7
*/

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; }
:where(.wp-site-blocks) a { text-underline-offset: .2em; }
.wp-block-button__link, .wp-element-button, .button, button.single_add_to_cart_button { border-radius: 0 !important; text-transform: uppercase; letter-spacing: .08em; font-size: .85rem; font-weight: 600; }

/* ---------- Header ---------- */
.fm-announce { letter-spacing: .12em; text-transform: uppercase; font-size: .72rem; }
.fm-announce p { margin: 0; }
.fm-header { border-bottom: 1px solid var(--wp--preset--color--accent-6); }
.fm-header .wp-block-site-title a { text-decoration: none; letter-spacing: .18em; text-transform: uppercase; font-weight: 800; }
.fm-header .wp-block-navigation { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; font-weight: 600; }
.fm-header .wp-block-navigation a { text-decoration: none; }
.fm-header .wp-block-navigation a:hover { text-decoration: underline; }

/* ---------- Hero ---------- */
.fm-hero { min-height: min(82vh, 760px); }
.fm-hero h1 { text-transform: uppercase; letter-spacing: .04em; line-height: 1.02; font-weight: 800; }
.fm-hero .wp-block-button.is-style-outline .wp-block-button__link { border-color: #fff; color: #fff; }
.fm-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: #000; }

/* ---------- Section titles ---------- */
.fm-section-title { text-transform: uppercase; letter-spacing: .14em; font-weight: 800; }
.fm-eyebrow { text-transform: uppercase; letter-spacing: .2em; font-size: .72rem; color: var(--wp--preset--color--accent-4); margin-bottom: .4rem; }

/* ---------- Category tiles ---------- */
.fm-tiles .wp-block-column { position: relative; overflow: hidden; }
.fm-tiles figure { margin: 0; aspect-ratio: 4/5; overflow: hidden; background: var(--wp--preset--color--accent-5); }
.fm-tiles figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; filter: grayscale(100%); }
.fm-tiles .wp-block-column:hover figure img { transform: scale(1.04); filter: grayscale(0%); }
.fm-tiles h3 { margin-top: .9rem; text-transform: uppercase; letter-spacing: .12em; font-size: .95rem; font-weight: 700; }
.fm-tiles h3 a { text-decoration: none; }
.fm-tiles h3 a::after { content: ""; position: absolute; inset: 0; }

/* ---------- Carousels (WooCommerce [products] shortcode) ---------- */
.fm-carousel { position: relative; }
.fm-carousel .woocommerce { position: relative; }
.fm-carousel ul.products { display: flex !important; flex-wrap: nowrap !important; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 0 !important; margin: 0 !important; list-style: none; }
.fm-carousel ul.products::-webkit-scrollbar { display: none; }
.fm-carousel ul.products::before, .fm-carousel ul.products::after { display: none !important; }
.fm-carousel ul.products li.product { flex: 0 0 calc((100% - 3 * 1.25rem) / 4) !important; width: auto !important; margin: 0 !important; scroll-snap-align: start; float: none !important; }
@media (max-width: 900px) { .fm-carousel ul.products li.product { flex-basis: calc((100% - 1.25rem) / 2.3) !important; } }
@media (max-width: 480px) { .fm-carousel ul.products li.product { flex-basis: 72% !important; } }
.fm-carousel__nav { display: flex; gap: .5rem; justify-content: flex-end; margin-bottom: 1rem; }
.fm-carousel__btn { width: 44px; height: 44px; border: 1px solid #000; background: #fff; color: #000; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; transition: background .2s, color .2s; }
.fm-carousel__btn:hover:not(:disabled) { background: #000; color: #fff; }
.fm-carousel__btn:disabled { opacity: .3; cursor: default; }
.fm-carousel__btn svg { width: 18px; height: 18px; }

/* ---------- Product cards (shop + carousels) ---------- */
.woocommerce ul.products li.product a img, .wc-block-components-product-image img { aspect-ratio: 4/5; object-fit: cover; background: var(--wp--preset--color--accent-5); margin-bottom: .8rem !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .9rem !important; font-weight: 600; line-height: 1.35; padding: 0 !important; }
.woocommerce ul.products li.product .price { color: #000 !important; font-size: .9rem !important; }
.woocommerce ul.products li.product .price del { color: var(--wp--preset--color--accent-4); opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; font-weight: 700; }
.woocommerce ul.products li.product .button { display: none; }
.woocommerce span.onsale, .wc-block-components-product-sale-badge { background: #000 !important; color: #fff !important; border-radius: 0 !important; min-height: 0 !important; min-width: 0 !important; line-height: 1 !important; padding: .45em .7em !important; font-size: .7rem !important; text-transform: uppercase; letter-spacing: .1em; border: 0 !important; }

/* ---------- Brand / story block ---------- */
.fm-story figure img { filter: grayscale(100%); }

/* ---------- Reviews ---------- */
.fm-reviews .wc-block-review-list-item__item { border-top: 1px solid var(--wp--preset--color--accent-6); padding-top: 1.25rem; }
.fm-reviews .wc-block-components-review-list-item__rating__stars span::before, .star-rating span::before { color: #000; }

/* ---------- Reassurance (home + product page) ---------- */
.fm-reassurance { border-top: 1px solid var(--wp--preset--color--accent-6); border-bottom: 1px solid var(--wp--preset--color--accent-6); }
.fm-reassurance .wp-block-column { text-align: center; }
.fm-reassurance svg, .fm-reassurance-product svg { width: 32px; height: 32px; stroke: currentColor; fill: none; stroke-width: 1.5; }
.fm-reassurance h3 { text-transform: uppercase; letter-spacing: .1em; font-size: .85rem; font-weight: 700; margin: .7rem 0 .3rem; }
.fm-reassurance p { font-size: .85rem; color: var(--wp--preset--color--accent-4); margin: 0; }
.fm-reassurance-product { list-style: none; margin: 1.5rem 0 0; padding: 1.1rem 0 0; border-top: 1px solid var(--wp--preset--color--accent-6); display: grid; gap: .75rem; }
.fm-reassurance-product li { display: flex; align-items: center; gap: .75rem; font-size: .88rem; }
.fm-reassurance-product svg { width: 22px; height: 22px; flex: 0 0 22px; }
.fm-reassurance-product a { color: inherit; }

/* ---------- Single product ---------- */
.single-product .wp-block-post-title { text-transform: none; font-weight: 700; letter-spacing: 0; }
.single-product .woocommerce-variation-price, .single-product .wc-block-components-product-price { font-size: 1.25rem; }
.single-product table.variations select { border: 1px solid #000; border-radius: 0; padding: .6rem; min-width: 10rem; background: #fff; }
.single-product .single_add_to_cart_button { background: #000 !important; color: #fff !important; padding: 1rem 2.2rem !important; }
.single-product .quantity input.qty { border: 1px solid #000; border-radius: 0; min-height: 3rem; }
.fm-size-table { border-collapse: collapse; width: 100%; font-size: .85rem; margin: .5rem 0 1rem; }
.fm-size-table th, .fm-size-table td { border: 1px solid var(--wp--preset--color--accent-6); padding: .45rem .6rem; text-align: center; }
.fm-size-table th { background: #000; color: #fff; font-weight: 600; }

/* ---------- Footer ---------- */
.fm-footer a { color: inherit; text-decoration: none; }
.fm-footer a:hover { text-decoration: underline; }
.fm-footer h2 { text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 700; }
.fm-footer .wp-block-site-title a { letter-spacing: .18em; text-transform: uppercase; font-weight: 800; }
.fm-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; font-size: .9rem; }
