/*
Theme Name:   Astra Durack Child
Theme URI:    https://durack.ca
Description:  Child theme Astra pour le site Durack / Fabrication MR
Author:       Fabrication MR
Author URI:   https://durack.ca
Template:     astra
Version:      1.0.0
Text Domain:  astra-durack-child
*/

/* ============================================================
   VARIABLES — Système de design Durack
   ============================================================ */
:root {
  --blue:    #2255D0;
  --blue-d:  #1A44B8;
  --blue-l:  #3A6FE8;
  --navy:    #0B1F3A;
  --dark:    #080E18;
  --mid:     #1A2B42;
  --muted:   #8FA3BF;
  --light:   #E8EFF8;
  --white:   #FFFFFF;
  --orange:  #E07B00;
  --red:     #C0392B;
  --green:   #27AE60;

  --font-head: 'Barlow Condensed', sans-serif;
  --font-body: 'Barlow', sans-serif;

  --radius:  6px;
  --radius-l: 12px;
  --shadow:  0 4px 20px rgba(0,0,0,.45);
  --shadow-blue: 0 4px 20px rgba(34,85,208,.35);
  --transition: .2s ease;
}

/* ============================================================
   BASE — Corps du site, typographie
   ============================================================ */
html, body {
  background-color: var(--dark) !important;
  color: var(--light) !important;
  font-family: var(--font-body) !important;
  font-size: 16px;
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.entry-title, .page-title, .woocommerce-products-header__title {
  font-family: var(--font-head) !important;
  color: var(--white) !important;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.15;
}

a {
  color: var(--blue-l) !important;
  text-decoration: none !important;
  transition: color var(--transition);
}
a:hover { color: var(--white) !important; }

p { color: var(--light); }

/* ============================================================
   TOPBAR (barre d'annonce)
   ============================================================ */
.ast-above-header-wrap,
.ast-top-bar-wrap {
  background: var(--navy) !important;
  border-bottom: 1px solid rgba(34,85,208,.3) !important;
}
.ast-above-header-wrap *,
.ast-top-bar-wrap * {
  color: var(--muted) !important;
  font-family: var(--font-body) !important;
  font-size: .8rem !important;
}

/* ============================================================
   HEADER / NAVIGATION
   ============================================================ */
#masthead,
.site-header,
.ast-main-header-wrap,
.main-header-bar {
  background-color: var(--dark) !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,.5) !important;
}

/* Logo */
.site-logo img,
.custom-logo { max-height: 48px !important; }

/* Menu principal */
.main-navigation a,
.ast-nav-menu > li > a,
#ast-hf-menu-1 a {
  font-family: var(--font-head) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
  padding: 8px 14px !important;
  transition: color var(--transition) !important;
}
.main-navigation a:hover,
.ast-nav-menu > li > a:hover,
.ast-nav-menu > li.current-menu-item > a {
  color: var(--white) !important;
}

/* Header sticky */
.ast-header-sticked { box-shadow: 0 4px 24px rgba(0,0,0,.7) !important; }

/* CTA bouton dans le header */
.ast-header-custom-item a,
.ast-button-wrap a,
.header-cta-btn {
  background: var(--blue) !important;
  color: var(--white) !important;
  border-radius: var(--radius) !important;
  padding: 9px 20px !important;
  font-family: var(--font-head) !important;
  font-weight: 700 !important;
  font-size: .95rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  transition: background var(--transition), transform var(--transition) !important;
}
.ast-header-custom-item a:hover,
.header-cta-btn:hover {
  background: var(--blue-d) !important;
  transform: translateY(-1px) !important;
}

/* Sous-menus dropdown */
.ast-nav-menu .sub-menu,
.main-navigation .sub-menu {
  background: var(--navy) !important;
  border: 1px solid rgba(34,85,208,.2) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow) !important;
}
.ast-nav-menu .sub-menu a {
  color: var(--light) !important;
  font-size: .9rem !important;
}
.ast-nav-menu .sub-menu a:hover { background: var(--mid) !important; }

/* Mobile menu toggle */
.ast-mobile-menu-trigger-icon span,
.ast-mobile-menu-trigger-icon::before,
.ast-mobile-menu-trigger-icon::after {
  background-color: var(--white) !important;
}

/* ============================================================
   BOUTONS GLOBAUX
   ============================================================ */
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button,
.ast-button,
button[type="submit"],
input[type="submit"],
.elementor-button,
a.ast-button {
  background: var(--blue) !important;
  color: var(--white) !important;
  border: none !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-head) !important;
  font-weight: 700 !important;
  font-size: .9rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  padding: 12px 26px !important;
  cursor: pointer !important;
  transition: background var(--transition), transform var(--transition) !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.wp-block-button__link:hover,
.ast-button:hover {
  background: var(--blue-d) !important;
  color: var(--white) !important;
  transform: translateY(-1px) !important;
}

/* Bouton contour (ghost) */
.button-outline,
.woocommerce a.button.alt.outline {
  background: transparent !important;
  border: 2px solid var(--blue) !important;
  color: var(--blue-l) !important;
}
.button-outline:hover { background: var(--blue) !important; color: var(--white) !important; }

/* ============================================================
   WOOCOMMERCE — PAGE BOUTIQUE (SHOP)
   ============================================================ */
.woocommerce-page .site-main,
.woocommerce .site-main,
.woocommerce-shop .site-main {
  background: var(--dark) !important;
}

/* Titre + description de la boutique */
.woocommerce-products-header {
  background: var(--navy) !important;
  padding: 40px 0 32px !important;
  margin-bottom: 32px !important;
  border-bottom: 1px solid rgba(34,85,208,.2) !important;
}
.woocommerce-products-header__title {
  font-family: var(--font-head) !important;
  font-size: clamp(2rem, 5vw, 3rem) !important;
  font-weight: 800 !important;
  color: var(--white) !important;
}

/* Barre de résultats + tri */
.woocommerce-result-count,
.woocommerce-ordering select {
  color: var(--muted) !important;
  font-family: var(--font-body) !important;
  font-size: .85rem !important;
}
.woocommerce-ordering select {
  background: var(--mid) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: var(--radius) !important;
  color: var(--light) !important;
  padding: 6px 12px !important;
}

/* Grille de produits */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)) !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Carte produit */
.woocommerce ul.products li.product {
  background: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: var(--radius-l) !important;
  overflow: hidden !important;
  transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition) !important;
  position: relative !important;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-4px) !important;
  border-color: var(--blue) !important;
  box-shadow: var(--shadow-blue) !important;
}

/* Image produit */
.woocommerce ul.products li.product a img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  background: var(--mid) !important;
  display: block !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
}

/* Nom produit */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--font-head) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  color: var(--white) !important;
  padding: 16px 16px 4px !important;
  margin: 0 !important;
}

/* Prix */
.woocommerce ul.products li.product .price {
  color: var(--blue-l) !important;
  font-family: var(--font-head) !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  padding: 0 16px 12px !important;
  display: block !important;
}
.woocommerce ul.products li.product .price del { color: var(--muted) !important; font-size: 1rem !important; }

/* Bouton Ajouter au panier */
.woocommerce ul.products li.product .button {
  margin: 0 16px 16px !important;
  width: calc(100% - 32px) !important;
  text-align: center !important;
  display: block !important;
}

/* Badge "Fabriqué au Québec" / tag produit */
.woocommerce ul.products li.product .onsale,
.product-badge {
  background: var(--blue) !important;
  color: var(--white) !important;
  font-family: var(--font-head) !important;
  font-size: .75rem !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  border-radius: 4px !important;
  padding: 4px 10px !important;
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
}

/* Sidebar / Widgets boutique */
.woocommerce-sidebar .widget,
.widget_product_categories,
.widget_price_filter,
.widget_layered_nav {
  background: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: var(--radius-l) !important;
  padding: 24px !important;
  margin-bottom: 24px !important;
}
.widget-title, .widgettitle {
  font-family: var(--font-head) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  color: var(--white) !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  margin-bottom: 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
}
.widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--mid) !important; }
.widget_price_filter .price_slider_wrapper .ui-slider-range { background: var(--blue) !important; }
.widget_price_filter .price_slider_wrapper .ui-slider-handle { background: var(--blue) !important; border: 2px solid var(--white) !important; }
.widget_price_filter .price_label { color: var(--light) !important; }

/* ============================================================
   WOOCOMMERCE — PAGE PRODUIT INDIVIDUELLE
   ============================================================ */
.woocommerce div.product {
  background: var(--dark) !important;
  padding: 40px 0 !important;
}

/* Galerie d'images */
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
  border-radius: var(--radius-l) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  background: var(--navy) !important;
}
.woocommerce div.product div.images .flex-control-thumbs {
  display: flex !important;
  gap: 8px !important;
  margin-top: 12px !important;
}
.woocommerce div.product div.images .flex-control-thumbs li img {
  border-radius: var(--radius) !important;
  border: 2px solid transparent !important;
  cursor: pointer !important;
  transition: border-color var(--transition) !important;
  height: 70px !important;
  object-fit: cover !important;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
  border-color: var(--blue) !important;
}

/* Zone résumé produit */
.woocommerce div.product div.summary {
  color: var(--light) !important;
}
.woocommerce div.product .product_title {
  font-family: var(--font-head) !important;
  font-size: clamp(1.8rem, 4vw, 2.8rem) !important;
  font-weight: 800 !important;
  color: var(--white) !important;
  line-height: 1.1 !important;
  margin-bottom: 8px !important;
}

/* Prix produit */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--font-head) !important;
  font-size: 2.2rem !important;
  font-weight: 800 !important;
  color: var(--blue-l) !important;
}

/* Description courte */
.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--muted) !important;
  font-size: .95rem !important;
  line-height: 1.65 !important;
  margin: 16px 0 24px !important;
  padding-bottom: 24px !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
}

/* Variations / Options */
.woocommerce div.product form.cart .variations {
  margin-bottom: 20px !important;
}
.woocommerce div.product form.cart .variations label {
  color: var(--muted) !important;
  font-size: .85rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
}
.woocommerce div.product form.cart .variations select {
  background: var(--mid) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: var(--radius) !important;
  color: var(--white) !important;
  padding: 10px 16px !important;
  font-family: var(--font-body) !important;
  width: 100% !important;
}
.woocommerce div.product form.cart .variations select:focus {
  border-color: var(--blue) !important;
  outline: none !important;
}

/* Quantité */
.woocommerce div.product form.cart .quantity input.qty {
  background: var(--mid) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: var(--radius) !important;
  color: var(--white) !important;
  font-family: var(--font-head) !important;
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  text-align: center !important;
  width: 70px !important;
  height: 48px !important;
}

/* Bouton Ajouter au panier (produit) */
.woocommerce div.product form.cart .single_add_to_cart_button {
  background: var(--blue) !important;
  color: var(--white) !important;
  border: none !important;
  border-radius: var(--radius) !important;
  font-family: var(--font-head) !important;
  font-weight: 800 !important;
  font-size: 1.1rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  padding: 14px 36px !important;
  cursor: pointer !important;
  transition: background var(--transition), transform var(--transition), box-shadow var(--transition) !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
  background: var(--blue-d) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--shadow-blue) !important;
}

/* Méta (SKU, catégories) */
.woocommerce div.product .product_meta {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
}
.woocommerce div.product .product_meta span {
  color: var(--muted) !important;
  font-size: .8rem !important;
}
.woocommerce div.product .product_meta a { color: var(--blue-l) !important; }

/* Onglets produit */
.woocommerce div.product .woocommerce-tabs ul.tabs {
  background: none !important;
  border-bottom: 2px solid rgba(255,255,255,.08) !important;
  padding: 0 !important;
  margin: 40px 0 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none !important;
  border: none !important;
  margin: 0 4px -2px 0 !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--font-head) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--muted) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  padding: 12px 20px !important;
  border-bottom: 2px solid transparent !important;
  display: block !important;
  transition: color var(--transition) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--blue-l) !important;
  border-bottom-color: var(--blue) !important;
}
.woocommerce div.product .woocommerce-tabs .panel {
  background: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: 0 var(--radius-l) var(--radius-l) var(--radius-l) !important;
  padding: 32px !important;
  color: var(--light) !important;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-family: var(--font-head) !important;
  font-size: 1.4rem !important;
  color: var(--white) !important;
  margin-bottom: 16px !important;
}

/* Avis clients */
#reviews .woocommerce-Reviews-title { color: var(--white) !important; font-family: var(--font-head) !important; }
#review_form_wrapper { background: var(--mid) !important; border-radius: var(--radius-l) !important; padding: 24px !important; }
#review_form_wrapper input, #review_form_wrapper textarea {
  background: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: var(--radius) !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  padding: 10px 14px !important;
}
.comment-text { background: var(--navy) !important; border-radius: var(--radius-l) !important; padding: 20px !important; border: 1px solid rgba(255,255,255,.07) !important; }
.comment-text .description p { color: var(--light) !important; }

/* Produits liés */
.related.products h2,
.upsells.products h2,
.cross-sells h2 {
  font-family: var(--font-head) !important;
  font-size: 1.6rem !important;
  font-weight: 800 !important;
  color: var(--white) !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  margin-bottom: 24px !important;
}

/* ============================================================
   WOOCOMMERCE — PANIER + CHECKOUT
   ============================================================ */
.woocommerce table.shop_table {
  background: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: var(--radius-l) !important;
  overflow: hidden !important;
}
.woocommerce table.shop_table th {
  background: var(--mid) !important;
  color: var(--white) !important;
  font-family: var(--font-head) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  border: none !important;
  padding: 14px 16px !important;
}
.woocommerce table.shop_table td {
  border-color: rgba(255,255,255,.06) !important;
  color: var(--light) !important;
  padding: 16px !important;
}
.woocommerce table.shop_table .product-name a { color: var(--white) !important; font-weight: 600 !important; }

/* Totaux panier */
.woocommerce .cart-collaterals .cart_totals {
  background: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: var(--radius-l) !important;
  padding: 24px !important;
}

/* Checkout form */
.woocommerce form .form-row label { color: var(--muted) !important; font-size: .85rem !important; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select {
  background: var(--mid) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: var(--radius) !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  padding: 12px 14px !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--blue) !important;
  box-shadow: 0 0 0 3px rgba(34,85,208,.25) !important;
  outline: none !important;
}

/* ============================================================
   CONTENU PAGES (WordPress générique)
   ============================================================ */
.site-content,
.entry-content,
.hfeed,
#primary,
#main {
  background: var(--dark) !important;
}
.entry-content p { color: var(--light); }
.entry-content h2, .entry-content h3 { color: var(--white); }
.entry-content a { color: var(--blue-l) !important; }

/* Blocs Gutenberg */
.wp-block-group {
  background: transparent;
}
.wp-block-cover, .wp-block-cover__inner-container {
  color: var(--white) !important;
}

/* ============================================================
   SIDEBAR (général)
   ============================================================ */
#secondary, .widget-area {
  background: transparent !important;
}
.widget {
  background: var(--navy) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  border-radius: var(--radius-l) !important;
  padding: 24px !important;
  margin-bottom: 24px !important;
}
.widget .widget-title {
  font-family: var(--font-head) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--white) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  margin-bottom: 16px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
}

/* ============================================================
   FOOTER
   ============================================================ */
#colophon,
.site-footer,
.ast-footer-wrap {
  background: var(--navy) !important;
  border-top: 1px solid rgba(34,85,208,.25) !important;
  color: var(--muted) !important;
}
.site-footer *,
.ast-footer-wrap *,
#colophon * {
  color: var(--muted) !important;
}
.site-footer a:hover,
.ast-footer-wrap a:hover {
  color: var(--white) !important;
}
.ast-footer-widget-area .widget-title {
  color: var(--white) !important;
  font-family: var(--font-head) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
  padding-bottom: 10px !important;
  margin-bottom: 16px !important;
}

/* Barre copyright */
.ast-footer-copyright {
  background: var(--dark) !important;
  border-top: 1px solid rgba(255,255,255,.05) !important;
  text-align: center !important;
  padding: 14px 20px !important;
  font-size: .8rem !important;
}

/* ============================================================
   MESSAGES SYSTÈME (notices WooCommerce)
   ============================================================ */
.woocommerce-message {
  background: rgba(34,85,208,.15) !important;
  border-left: 4px solid var(--blue) !important;
  color: var(--light) !important;
}
.woocommerce-error {
  background: rgba(192,57,43,.15) !important;
  border-left: 4px solid var(--red) !important;
  color: var(--light) !important;
}
.woocommerce-info {
  background: rgba(26,68,184,.1) !important;
  border-left: 4px solid var(--blue-d) !important;
  color: var(--light) !important;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.ast-breadcrumbs-wrapper,
.woocommerce-breadcrumb {
  background: var(--navy) !important;
  padding: 10px 0 !important;
  font-size: .8rem !important;
}
.woocommerce-breadcrumb,
.woocommerce-breadcrumb a {
  color: var(--muted) !important;
}
.woocommerce-breadcrumb a:hover { color: var(--white) !important; }

/* ============================================================
   FORMULAIRES GÉNÉRIQUES
   ============================================================ */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="search"],
textarea,
select {
  background: var(--mid) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: var(--radius) !important;
  color: var(--white) !important;
  font-family: var(--font-body) !important;
  padding: 10px 14px !important;
  transition: border-color var(--transition), box-shadow var(--transition) !important;
}
input:focus, textarea:focus, select:focus {
  border-color: var(--blue) !important;
  box-shadow: 0 0 0 3px rgba(34,85,208,.2) !important;
  outline: none !important;
}
::placeholder { color: var(--muted) !important; opacity: 1 !important; }

/* ============================================================
   FLEUR DE LYS / FABRIQUÉ AU QUÉBEC
   ============================================================ */
.durack-made-in-qc {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: .8rem !important;
  font-family: var(--font-head) !important;
  font-weight: 600 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: var(--muted) !important;
}
.durack-made-in-qc .fleur { font-size: 1rem !important; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  .woocommerce ul.products {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 16px !important;
  }
  .woocommerce div.product .product_title {
    font-size: 1.8rem !important;
  }
  .woocommerce div.product form.cart {
    flex-direction: column !important;
  }
}

@media (max-width: 480px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
}
