/*
Theme Name: IWIN
Theme URI: https://www.iwinlaundry.com/
Author: IWIN Laundry Solutions
Description: Thème léger d'IWIN Laundry Solutions. L'en-tête, le pied de page et les pages viennent des extensions IWIN ; le thème met en forme les pages ordinaires (boutique, panier, commande, compte, recherche, 404).
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: iwin
*/

:root {
  --iwin-bordeaux: #6B1F32;
  --iwin-bordeaux-fonce: #4A1322;
  --iwin-laiton: #C9A86A;
  --iwin-ivoire: #F4F1EA;
  --iwin-encre: #1A1A1A;
  --iwin-texte: #3A3536;
  --iwin-texte-doux: #6A6465;
  --iwin-filet: #E2DCCF;
  --iwin-sans: "Plus Jakarta Sans", "Segoe UI", Helvetica, Arial, sans-serif;
  --iwin-gouttiere: clamp(16px, 5vw, 48px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #FFFFFF; color: var(--iwin-texte); font: 400 17px/1.6 var(--iwin-sans); -webkit-font-smoothing: antialiased; }
html[dir="rtl"] body { font-family: "IBM Plex Sans Arabic", var(--iwin-sans); }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--iwin-bordeaux); }
a:hover { color: var(--iwin-bordeaux-fonce); }
:focus-visible { outline: 3px solid var(--iwin-laiton); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Pages IWIN : pleine largeur, sans marge du thème. */
.iwin-theme-main--plein { display: block; }

/* Pages ordinaires */
.iwin-theme-main:not(.iwin-theme-main--plein) { padding-block: clamp(40px, 6vw, 80px); }
.iwin-theme-wrap { max-width: calc(1300px + 2 * var(--iwin-gouttiere)); margin-inline: auto; padding-inline: var(--iwin-gouttiere); }
.iwin-theme-article, .iwin-theme-404 { max-width: 900px; }
h1, h2, h3, h4 { color: var(--iwin-encre); font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; margin: 0 0 0.6em; }
h1, .iwin-theme-titre { font-size: clamp(30px, 4vw, 44px); color: var(--iwin-bordeaux); margin-bottom: 28px; }
h2 { font-size: clamp(22px, 2.6vw, 30px); }
h3 { font-size: 20px; }
p, ul, ol, table, form { margin: 0 0 1.2em; }
.iwin-theme-surtitre { margin: 0 0 8px; color: var(--iwin-laiton); font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; font-size: 13px; }
.iwin-theme-liste { display: grid; gap: 24px; }
.iwin-theme-carte { padding-bottom: 24px; border-bottom: 1px solid var(--iwin-filet); }
.iwin-theme-carte h2 a { color: inherit; text-decoration: none; }
.iwin-theme-carte h2 a:hover { color: var(--iwin-bordeaux); }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.navigation.pagination .page-numbers { padding: 6px 12px; border: 1px solid var(--iwin-filet); border-radius: 8px; text-decoration: none; }
.navigation.pagination .current { background: var(--iwin-bordeaux); border-color: var(--iwin-bordeaux); color: #FFFFFF; }

/* Formulaires et boutons */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="number"], input[type="url"], select, textarea {
  width: 100%; max-width: 100%; padding: 12px 14px; border: 1px solid var(--iwin-filet); border-radius: 10px; background: #FFFFFF; color: var(--iwin-encre); font: inherit;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--iwin-bordeaux); box-shadow: 0 0 0 3px rgba(107, 31, 50, 0.15); }
button, .button, input[type="submit"], .wp-element-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 22px; border: 0; border-radius: 999px;
  background: var(--iwin-bordeaux); color: #FFFFFF; font: 700 15px/1 var(--iwin-sans); text-decoration: none; cursor: pointer; transition: background-color 200ms ease;
}
button:hover, .button:hover, input[type="submit"]:hover, .wp-element-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--iwin-bordeaux-fonce); color: #FFFFFF; }
.search-form { display: flex; gap: 10px; max-width: 520px; }

/* Tableaux (panier, commande, compte) */
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 10px; border-bottom: 1px solid var(--iwin-filet); text-align: start; vertical-align: middle; }
th { color: var(--iwin-encre); font-weight: 700; }

/* WooCommerce */
.woocommerce-breadcrumb { margin-bottom: 20px; font-size: 14px; color: var(--iwin-texte-doux); }
.woocommerce-products-header__title { color: var(--iwin-bordeaux); }
.woocommerce .products, ul.products { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 28px; padding: 0; list-style: none; }
ul.products li.product { margin: 0; padding: 16px; border: 1px solid var(--iwin-filet); border-radius: 16px; text-align: center; }
ul.products li.product a { text-decoration: none; color: inherit; }
ul.products li.product img { display: block; margin: 0 auto 12px; aspect-ratio: 1; object-fit: contain; }
ul.products li.product .woocommerce-loop-product__title { font-size: 16px; margin: 0 0 10px; }
.woocommerce-result-count { color: var(--iwin-texte-doux); font-size: 14px; }
.woocommerce-ordering select { width: auto; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 24px; padding: 14px 18px; border-radius: 12px; background: var(--iwin-ivoire); border-inline-start: 4px solid var(--iwin-bordeaux); }
.woocommerce-error { border-color: #B3261E; }
.woocommerce-cart-form, .cart-collaterals, .woocommerce-checkout, .woocommerce-MyAccount-content { margin-bottom: 32px; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.woocommerce-pagination ul { display: flex; gap: 8px; list-style: none; padding: 0; }
.woocommerce-pagination .page-numbers { padding: 6px 12px; border: 1px solid var(--iwin-filet); border-radius: 8px; text-decoration: none; }
.woocommerce-pagination .current { background: var(--iwin-bordeaux); color: #FFFFFF; }
