/* ============================================================
   AureusPrime Theme — theme.css v2.0
   ============================================================ */

/* ---------- Variables ---------- */
:root {
  --ap-bg:     #ffffff;
  --ap-text:   #111111;
  --ap-muted:  #6b7280;
  --ap-gold:   #f4c542;
  --ap-dark:   #111111;
  --ap-border: #e5e7eb;
  --ap-radius: 1.3rem;
}

/* ---------- Reset / Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
body.ap-body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ap-text);
  background: var(--ap-bg);
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

/* ---------- Layout ---------- */
.ap-container { width: min(1200px, 92%); margin: 0 auto; }

/* ---------- Header ---------- */
.ap-header {
  border-bottom: 1px solid var(--ap-border);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 30;
}
.ap-header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 0;
  gap: 12px;
}
.ap-logo { font-size: 1.7rem; font-weight: 800; letter-spacing: -0.03em; }
.ap-logo span { color: var(--ap-gold); }

/* ---------- Nav ---------- */
.ap-nav { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }

/* ---------- Buttons ---------- */
.ap-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 10px 18px;
  font-weight: 700;
  font-size: .92rem;
  border: 1px solid transparent;
  cursor: pointer;
  transition: opacity .15s;
}
.ap-btn:hover { opacity: .85; }
.ap-btn-light   { background: #f3f4f6; color: #111; }
.ap-btn-dark    { background: #111; color: #fff; }
.ap-btn-white   { background: #fff; color: #111; }
.ap-btn-outline { border-color: rgba(255,255,255,.45); color: #fff; }
.ap-btn-gold    { background: var(--ap-gold); color: #111; }

/* ---------- Hero ---------- */
.ap-home { padding-bottom: 3rem; }
.ap-hero {
  background: #111;
  color: #fff;
  border-bottom-left-radius: 2.6rem;
  border-bottom-right-radius: 2.6rem;
  padding: 4.5rem 0;
}
.ap-hero-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 2.5rem;
  align-items: center;
}
.ap-pill {
  display: inline-block;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(244,197,66,.18);
  color: #f9d86f;
  font-weight: 700;
  font-size: .85rem;
}
.ap-hero h1 {
  font-size: clamp(2rem, 4.5vw, 4rem);
  margin: 1rem 0 .75rem;
  line-height: 1.08;
}
.ap-hero h1 span { color: var(--ap-gold); }
.ap-hero p { color: #d1d5db; max-width: 620px; margin: 0; }
.ap-hero-actions { margin-top: 1.4rem; display: flex; gap: .75rem; flex-wrap: wrap; }

/* Service cards inside hero */
.ap-service-cards { display: grid; gap: .8rem; }
.ap-service-cards article {
  background: #1d1d1d;
  border: 1px solid #2f2f2f;
  border-radius: var(--ap-radius);
  padding: 1rem 1.2rem;
}
.ap-service-cards h3 { margin: 0; font-size: 1rem; }
.ap-service-cards p  { margin: .2rem 0 0; color: #9ca3af; font-size: .9rem; }

/* ---------- Trust strip ---------- */
.ap-strip {
  text-align: center;
  padding: 2.2rem 0;
  border-bottom: 1px solid var(--ap-border);
}
.ap-strip p {
  margin: 0 0 .7rem;
  text-transform: uppercase;
  font-size: .75rem;
  color: var(--ap-muted);
  letter-spacing: .08em;
  font-weight: 700;
}
.ap-strip-logos {
  font-size: 1.25rem;
  opacity: .65;
  font-weight: 700;
  display: flex;
  gap: 1.2rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ---------- Steps ---------- */
.ap-steps { padding: 4rem 0; }
.ap-steps-header { text-align: center; margin-bottom: 2rem; }
.ap-steps-header h2 { font-size: 2.2rem; margin: 0 0 .5rem; }
.ap-steps-header p  { color: var(--ap-muted); margin: 0; }
.ap-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.ap-steps-grid article {
  background: #f9fafb;
  border-radius: var(--ap-radius);
  padding: 1.4rem;
}
.ap-steps-grid article .ap-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  background: var(--ap-gold);
  color: #111;
  font-weight: 800;
  font-size: .9rem;
  margin-bottom: .75rem;
}
.ap-steps-grid article h3 { margin: 0 0 .4rem; }
.ap-steps-grid article p  { margin: 0; color: var(--ap-muted); font-size: .95rem; }

/* ---------- Features ---------- */
.ap-features { padding-bottom: 3rem; }
.ap-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.ap-feature-grid article {
  border-radius: 1.5rem;
  padding: 1.8rem;
}
.ap-feature-grid article:nth-child(odd)  { background: #fdf8f6; }
.ap-feature-grid article:nth-child(even) { background: #f6f9fd; }
.ap-feature-grid h3 { margin: 0 0 .5rem; font-size: 1.15rem; }
.ap-feature-grid p  { margin: 0; color: var(--ap-muted); }

/* ---------- Referral ---------- */
.ap-referral {
  background: #111;
  color: #fff;
  border-radius: 2rem;
  width: min(1100px, 92%);
  margin: .5rem auto 0;
  text-align: center;
  padding: 3.5rem 1rem;
}
.ap-referral h2 { margin-top: 0; font-size: clamp(1.6rem, 4vw, 2.8rem); }
.ap-referral p  { color: #d1d5db; margin: 0 0 1.5rem; }

/* ---------- FAQ inline ---------- */
.ap-faq-section { padding: 3rem 0; }
.ap-faq-section h2 { font-size: 2rem; margin: 0 0 1.5rem; }
.ap-faq-wrap { max-width: 860px; }
.ap-faq-wrap details {
  background: #f9fafb;
  border-radius: var(--ap-radius);
  padding: 1rem 1.2rem;
  margin-bottom: .7rem;
  cursor: pointer;
}
.ap-faq-wrap summary {
  font-weight: 700;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.ap-faq-wrap summary::after { content: '+'; font-size: 1.3rem; color: var(--ap-muted); flex-shrink: 0; }
.ap-faq-wrap details[open] summary::after { content: '−'; }
.ap-faq-wrap details p { margin: .7rem 0 0; color: var(--ap-muted); }

/* ---------- Page shell (pages légales / internes) ---------- */
.ap-page-shell { padding: 2.5rem 0 3.5rem; }
.ap-content-card {
  background: #fff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: 2rem;
}
.ap-page-title { margin: 0 0 1.2rem; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.ap-page-content h2 { margin-top: 2rem; }
.ap-page-content ul,
.ap-page-content ol { padding-left: 1.4rem; }

/* ---------- Footer ---------- */
.ap-footer { border-top: 1px solid var(--ap-border); padding: 2.4rem 0 1.2rem; }
.ap-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 2rem;
}
.ap-footer h4 { margin: 0 0 .7rem; }
.ap-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .4rem;
  color: var(--ap-muted);
  font-size: .92rem;
}
.ap-footer ul a:hover { color: var(--ap-text); }
.ap-footer-brand p { color: var(--ap-muted); font-size: .9rem; margin: .5rem 0 0; }
.ap-muted { font-size: .88rem; color: var(--ap-muted); }
.ap-copyright {
  border-top: 1px solid var(--ap-border);
  margin-top: 1.5rem;
  padding-top: .9rem;
  font-size: .82rem;
  color: var(--ap-muted);
  text-align: center;
}

/* ---------- Cookie banner ---------- */
.ap-cookie-box {
  position: fixed;
  left: 16px;
  bottom: 16px;
  background: #fff;
  border: 1px solid var(--ap-border);
  box-shadow: 0 20px 35px rgba(0,0,0,.09);
  border-radius: var(--ap-radius);
  max-width: 380px;
  padding: 1.1rem;
  z-index: 80;
}
.ap-cookie-box strong { display: block; margin-bottom: .3rem; }
.ap-cookie-box p { margin: 0 0 .5rem; font-size: .9rem; color: var(--ap-muted); }
.ap-cookie-actions { display: flex; gap: .5rem; margin-top: .75rem; }
.ap-cookie-actions button {
  border: 0;
  border-radius: 999px;
  padding: .5rem .9rem;
  font-weight: 700;
  cursor: pointer;
  font-size: .88rem;
}
.ap-cookie-actions button[data-cookie='accept'] { background: #111; color: #fff; }
.ap-cookie-actions button[data-cookie='decline'] { background: #e5e7eb; color: #111; }

/* ============================================================
   WOOCOMMERCE — Styling complet cohérent AureusPrime
   ============================================================ */

/* --- Conteneur global --- */
.ap-woo-wrap { padding: 2.5rem 0 3.5rem; }
.ap-woo-wrap .woocommerce,
.ap-woo-wrap .woocommerce-page { max-width: 1200px; margin: 0 auto; }

/* --- Titres de page WooCommerce --- */
.ap-woo-wrap h1.page-title,
.ap-woo-wrap .woocommerce-products-header__title {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin: 0 0 1.5rem;
}

/* --- Notices / alertes --- */
.ap-woo-wrap .woocommerce-message,
.ap-woo-wrap .woocommerce-info,
.ap-woo-wrap .woocommerce-error {
  border-radius: var(--ap-radius);
  border-top: none;
  padding: 1rem 1.2rem;
  font-size: .95rem;
}
.ap-woo-wrap .woocommerce-message { background: #f0fdf4; color: #166534; }
.ap-woo-wrap .woocommerce-info    { background: #eff6ff; color: #1e40af; }
.ap-woo-wrap .woocommerce-error   { background: #fef2f2; color: #991b1b; }

/* ======================
   SHOP — Grille produits
   ====================== */
.ap-woo-wrap .woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ap-woo-wrap .woocommerce ul.products li.product {
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: 1.2rem;
  background: #fff;
  transition: box-shadow .2s, transform .2s;
  display: flex;
  flex-direction: column;
}
.ap-woo-wrap .woocommerce ul.products li.product:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  transform: translateY(-2px);
}
.ap-woo-wrap .woocommerce ul.products li.product img {
  border-radius: .75rem;
  width: 100%;
  object-fit: cover;
  height: 180px;
}
.ap-woo-wrap .woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: .75rem 0 .3rem;
  flex: 1;
}
.ap-woo-wrap .woocommerce ul.products li.product .price {
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--ap-text);
  margin-bottom: .75rem;
}
.ap-woo-wrap .woocommerce ul.products li.product .price ins { text-decoration: none; }
.ap-woo-wrap .woocommerce ul.products li.product .price del { color: var(--ap-muted); font-weight: 400; font-size: .9em; }

/* Badge "En solde" */
.ap-woo-wrap .woocommerce ul.products li.product .onsale,
.ap-woo-wrap .woocommerce span.onsale {
  background: var(--ap-gold);
  color: #111;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
  padding: 3px 10px;
  top: 1rem;
  left: 1rem;
}

/* ======================
   FICHE PRODUIT
   ====================== */
.ap-woo-wrap .woocommerce div.product {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: start;
}
.ap-woo-wrap .woocommerce div.product .woocommerce-product-gallery {
  border-radius: var(--ap-radius);
  overflow: hidden;
  border: 1px solid var(--ap-border);
}
.ap-woo-wrap .woocommerce div.product .summary { padding-top: .5rem; }
.ap-woo-wrap .woocommerce div.product .product_title {
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  margin: 0 0 .5rem;
}
.ap-woo-wrap .woocommerce div.product p.price,
.ap-woo-wrap .woocommerce div.product span.price {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--ap-text);
  margin: .75rem 0 1rem;
}
.ap-woo-wrap .woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--ap-muted);
  line-height: 1.6;
  margin-bottom: 1rem;
}

/* Quantité */
.ap-woo-wrap .woocommerce .quantity input.qty {
  border: 1px solid var(--ap-border);
  border-radius: .6rem;
  padding: .5rem .75rem;
  font-size: 1rem;
  width: 70px;
  text-align: center;
}

/* Tabs produit */
.ap-woo-wrap .woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: .5rem;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--ap-border);
  margin: 2rem 0 0;
}
.ap-woo-wrap .woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: none;
  background: none;
}
.ap-woo-wrap .woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: .6rem 1rem;
  font-weight: 700;
  font-size: .9rem;
  color: var(--ap-muted);
  border-radius: .5rem .5rem 0 0;
}
.ap-woo-wrap .woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--ap-text);
  border-bottom: 2px solid var(--ap-gold);
}
.ap-woo-wrap .woocommerce div.product .woocommerce-tabs .panel {
  padding: 1.2rem 0;
  color: var(--ap-muted);
  line-height: 1.7;
}

/* ======================
   PANIER
   ====================== */
.ap-woo-wrap .woocommerce-cart-form {
  background: #fff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}
.ap-woo-wrap table.shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
}
.ap-woo-wrap table.shop_table th {
  text-align: left;
  padding: .75rem .5rem;
  border-bottom: 2px solid var(--ap-border);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ap-muted);
}
.ap-woo-wrap table.shop_table td {
  padding: 1rem .5rem;
  border-bottom: 1px solid var(--ap-border);
  vertical-align: middle;
}
.ap-woo-wrap table.shop_table td.product-name { font-weight: 700; }
.ap-woo-wrap table.shop_table td.product-price,
.ap-woo-wrap table.shop_table td.product-subtotal { font-weight: 800; }
.ap-woo-wrap table.shop_table td.product-remove a {
  color: var(--ap-muted) !important;
  font-size: 1.2rem;
}
.ap-woo-wrap .cart-collaterals { margin-top: 1.5rem; }
.ap-woo-wrap .cart_totals {
  background: #f9fafb;
  border-radius: var(--ap-radius);
  padding: 1.5rem;
  max-width: 420px;
  margin-left: auto;
}
.ap-woo-wrap .cart_totals h2 { margin: 0 0 1rem; font-size: 1.1rem; }
.ap-woo-wrap .cart_totals table { width: 100%; border-collapse: collapse; }
.ap-woo-wrap .cart_totals table th,
.ap-woo-wrap .cart_totals table td { padding: .6rem 0; border-bottom: 1px solid var(--ap-border); font-size: .95rem; }
.ap-woo-wrap .cart_totals table tr:last-child th,
.ap-woo-wrap .cart_totals table tr:last-child td { border-bottom: none; font-weight: 800; font-size: 1.05rem; }

/* Note XAF → USD */
.ap-xaf-note {
  background: rgba(244,197,66,.12);
  border: 1px solid rgba(244,197,66,.4);
  border-radius: .75rem;
  padding: .75rem 1rem;
  font-size: .88rem;
  color: #92650a;
  margin-top: .75rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.ap-xaf-note::before { content: '💱'; }

/* ======================
   CHECKOUT
   ====================== */
.ap-woo-wrap .woocommerce form.checkout {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 2rem;
  align-items: start;
}
.ap-woo-wrap .woocommerce-billing-fields h3,
.ap-woo-wrap .woocommerce-shipping-fields h3,
.ap-woo-wrap #order_review_heading {
  font-size: 1.1rem;
  margin: 0 0 1rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--ap-border);
}
/* Champs de formulaire */
.ap-woo-wrap .woocommerce form .form-row {
  margin-bottom: 1rem;
}
.ap-woo-wrap .woocommerce form .form-row label {
  display: block;
  font-size: .88rem;
  font-weight: 700;
  margin-bottom: .35rem;
  color: var(--ap-text);
}
.ap-woo-wrap .woocommerce form .form-row .required { color: #dc2626; }
.ap-woo-wrap .woocommerce form .form-row input.input-text,
.ap-woo-wrap .woocommerce form .form-row select,
.ap-woo-wrap .woocommerce form .form-row textarea {
  width: 100%;
  border: 1px solid var(--ap-border);
  border-radius: .75rem;
  padding: .65rem .9rem;
  font-size: .95rem;
  font-family: inherit;
  color: var(--ap-text);
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
  appearance: none;
}
.ap-woo-wrap .woocommerce form .form-row input.input-text:focus,
.ap-woo-wrap .woocommerce form .form-row select:focus,
.ap-woo-wrap .woocommerce form .form-row textarea:focus {
  outline: none;
  border-color: var(--ap-gold);
  box-shadow: 0 0 0 3px rgba(244,197,66,.2);
}
/* Récapitulatif commande */
.ap-woo-wrap #order_review {
  background: #f9fafb;
  border-radius: var(--ap-radius);
  padding: 1.5rem;
  position: sticky;
  top: 90px;
}
.ap-woo-wrap table.woocommerce-checkout-review-order-table { width: 100%; border-collapse: collapse; }
.ap-woo-wrap table.woocommerce-checkout-review-order-table th,
.ap-woo-wrap table.woocommerce-checkout-review-order-table td {
  padding: .6rem 0;
  border-bottom: 1px solid var(--ap-border);
  font-size: .92rem;
}
.ap-woo-wrap table.woocommerce-checkout-review-order-table tfoot tr:last-child th,
.ap-woo-wrap table.woocommerce-checkout-review-order-table tfoot tr:last-child td {
  font-weight: 800;
  font-size: 1.05rem;
  border-bottom: none;
}
/* Modes de paiement */
.ap-woo-wrap #payment {
  background: #fff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: 1.2rem;
  margin-top: 1rem;
}
.ap-woo-wrap #payment ul.payment_methods { list-style: none; padding: 0; margin: 0 0 1rem; }
.ap-woo-wrap #payment ul.payment_methods li { padding: .5rem 0; border-bottom: 1px solid var(--ap-border); }
.ap-woo-wrap #payment ul.payment_methods li:last-child { border-bottom: none; }
.ap-woo-wrap #payment ul.payment_methods li label { font-weight: 700; cursor: pointer; }
.ap-woo-wrap #payment .payment_box {
  background: #f9fafb;
  border-radius: .75rem;
  padding: .75rem 1rem;
  margin-top: .5rem;
  font-size: .9rem;
  color: var(--ap-muted);
}

/* ======================
   MON COMPTE
   ====================== */
.ap-woo-wrap .woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2rem;
  align-items: start;
}
.ap-woo-wrap .woocommerce-MyAccount-navigation {
  background: #f9fafb;
  border-radius: var(--ap-radius);
  padding: 1rem;
  position: sticky;
  top: 90px;
}
.ap-woo-wrap .woocommerce-MyAccount-navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: .25rem;
}
.ap-woo-wrap .woocommerce-MyAccount-navigation ul li a {
  display: block;
  padding: .55rem .85rem;
  border-radius: .6rem;
  font-size: .92rem;
  font-weight: 600;
  color: var(--ap-muted);
  transition: background .15s, color .15s;
}
.ap-woo-wrap .woocommerce-MyAccount-navigation ul li a:hover,
.ap-woo-wrap .woocommerce-MyAccount-navigation ul li.is-active a {
  background: var(--ap-gold);
  color: #111;
}
.ap-woo-wrap .woocommerce-MyAccount-content {
  background: #fff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: 1.5rem;
}
.ap-woo-wrap .woocommerce-MyAccount-content h2 { margin-top: 0; }
/* Tableau commandes */
.ap-woo-wrap .woocommerce-orders-table { width: 100%; border-collapse: collapse; font-size: .93rem; }
.ap-woo-wrap .woocommerce-orders-table th {
  text-align: left;
  padding: .6rem .5rem;
  border-bottom: 2px solid var(--ap-border);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ap-muted);
}
.ap-woo-wrap .woocommerce-orders-table td {
  padding: .75rem .5rem;
  border-bottom: 1px solid var(--ap-border);
  vertical-align: middle;
}
/* Statuts commande */
.ap-woo-wrap .woocommerce-order-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
}
.ap-woo-wrap mark.order-status.status-completed  { background: #f0fdf4; color: #166534; }
.ap-woo-wrap mark.order-status.status-processing { background: #eff6ff; color: #1e40af; }
.ap-woo-wrap mark.order-status.status-pending    { background: #fefce8; color: #854d0e; }
.ap-woo-wrap mark.order-status.status-cancelled  { background: #fef2f2; color: #991b1b; }

/* ======================
   BOUTONS — Unification complète
   ====================== */

/* Tous les boutons WooCommerce deviennent style AP */
.ap-woo-wrap .woocommerce a.button,
.ap-woo-wrap .woocommerce button.button,
.ap-woo-wrap .woocommerce input.button,
.ap-woo-wrap .woocommerce #respond input#submit,
.ap-woo-wrap .woocommerce a.button.alt,
.ap-woo-wrap .woocommerce button.button.alt,
.ap-woo-wrap .woocommerce input.button.alt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 11px 22px;
  font-weight: 700;
  font-size: .92rem;
  border: none;
  cursor: pointer;
  transition: opacity .15s, transform .1s;
  text-decoration: none;
  background: #111;
  color: #fff;
  box-shadow: none;
  letter-spacing: 0;
  line-height: 1;
}
.ap-woo-wrap .woocommerce a.button:hover,
.ap-woo-wrap .woocommerce button.button:hover,
.ap-woo-wrap .woocommerce input.button:hover,
.ap-woo-wrap .woocommerce a.button.alt:hover,
.ap-woo-wrap .woocommerce button.button.alt:hover {
  opacity: .88;
  transform: translateY(-1px);
  background: #111;
  color: #fff;
}
/* CTA principal (Ajouter au panier, Commander, Payer) */
.ap-woo-wrap .woocommerce button.button.alt,
.ap-woo-wrap .woocommerce a.button.alt,
.ap-woo-wrap .woocommerce button.button.checkout-button,
.ap-woo-wrap .woocommerce #place_order,
.ap-woo-wrap .woocommerce button[name="add-to-cart"] {
  background: var(--ap-gold);
  color: #111;
  font-size: 1rem;
  padding: 13px 26px;
  width: 100%;
}
.ap-woo-wrap .woocommerce button.button.alt:hover,
.ap-woo-wrap .woocommerce #place_order:hover {
  background: #e0b030;
  color: #111;
  opacity: 1;
}
/* Bouton secondaire (Mettre à jour panier, Continuer les achats) */
.ap-woo-wrap .woocommerce button.button:not(.alt):not(#place_order) {
  background: #f3f4f6;
  color: #111;
}

/* Page contact */
.ap-contact-page { padding: 3rem 0; }
.ap-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}
.ap-contact-card {
  background: #fff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: 2rem;
}
.ap-contact-card h1 { margin: 0 0 .5rem; font-size: clamp(1.6rem, 3vw, 2rem); }
.ap-contact-card .ap-contact-lead { color: var(--ap-muted); margin: 0 0 2rem; }
.ap-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--ap-border);
}
.ap-contact-item:last-child { border-bottom: none; padding-bottom: 0; }
.ap-contact-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  background: #f9fafb;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.ap-contact-item-body { flex: 1; }
.ap-contact-item-label { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ap-muted); margin: 0 0 .2rem; }
.ap-contact-item-value { font-weight: 600; font-size: .97rem; }
.ap-contact-item-value a { color: var(--ap-text); }
.ap-contact-item-value a:hover { color: var(--ap-gold); }
.ap-contact-info-box {
  background: #111;
  color: #fff;
  border-radius: var(--ap-radius);
  padding: 2rem;
}
.ap-contact-info-box h2 { margin: 0 0 .5rem; font-size: 1.3rem; }
.ap-contact-info-box p  { color: #d1d5db; margin: 0 0 1.5rem; font-size: .95rem; }
.ap-contact-info-box .ap-btn { width: 100%; margin-bottom: .75rem; }
.ap-contact-hours { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #2f2f2f; }
.ap-contact-hours h3 { margin: 0 0 .75rem; font-size: .95rem; }
.ap-contact-hours ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.ap-contact-hours ul li { display: flex; justify-content: space-between; font-size: .88rem; color: #9ca3af; }
.ap-contact-hours ul li span { color: #fff; font-weight: 600; }

/* Responsive WooCommerce + Contact */
@media (max-width: 900px) {
  .ap-woo-wrap .woocommerce form.checkout,
  .ap-woo-wrap .woocommerce div.product,
  .ap-woo-wrap .woocommerce-account .woocommerce,
  .ap-contact-grid { grid-template-columns: 1fr; }

  .ap-woo-wrap .woocommerce-MyAccount-navigation { position: static; }
  .ap-woo-wrap #order_review { position: static; }
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .ap-hero-grid,
  .ap-steps-grid,
  .ap-feature-grid,
  .ap-footer-grid { grid-template-columns: 1fr; }

  .ap-header-inner { flex-direction: column; align-items: flex-start; }
  .ap-nav { width: 100%; }
  .ap-btn { width: 100%; text-align: center; justify-content: center; }

  .ap-referral { border-radius: 1.2rem; }
}

/* ============================================================
   PAGE LOGIN — Split screen
   ============================================================ */

body.ap-login-page { background: #f9fafb; }

.ap-login-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
}

/* Panneau gauche — formulaire */
.ap-login-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem 4rem;
  background: #fff;
}
.ap-login-logo {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-bottom: 2.5rem;
  display: inline-block;
}
.ap-login-logo span { color: var(--ap-gold); }
.ap-login-heading { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 800; margin: 0 0 .4rem; }
.ap-login-sub { color: var(--ap-muted); font-size: .95rem; margin: 0 0 2rem; }

/* Champs de login */
.ap-login-panel .woocommerce-form-login .form-row,
.ap-login-panel .woocommerce-form-register .form-row {
  margin-bottom: 1.1rem;
}
.ap-login-panel label {
  display: block;
  font-size: .85rem;
  font-weight: 700;
  margin-bottom: .35rem;
  color: var(--ap-text);
}
.ap-login-panel input[type="text"],
.ap-login-panel input[type="email"],
.ap-login-panel input[type="password"] {
  width: 100%;
  border: 1.5px solid var(--ap-border);
  border-radius: .85rem;
  padding: .75rem 1rem;
  font-size: .97rem;
  font-family: inherit;
  color: var(--ap-text);
  background: #f9fafb;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.ap-login-panel input[type="text"]:focus,
.ap-login-panel input[type="email"]:focus,
.ap-login-panel input[type="password"]:focus {
  outline: none;
  border-color: var(--ap-gold);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(244,197,66,.18);
}
.ap-login-panel .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .88rem;
  color: var(--ap-muted);
  cursor: pointer;
}
.ap-login-panel .button {
  width: 100%;
  background: #111;
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: .85rem 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .15s, transform .1s;
  margin-top: .5rem;
}
.ap-login-panel .button:hover { opacity: .88; transform: translateY(-1px); }
.ap-login-panel .woocommerce-LostPassword { margin-top: .75rem; }
.ap-login-panel .woocommerce-LostPassword a {
  font-size: .85rem;
  color: var(--ap-muted);
  text-decoration: underline;
}
.ap-login-divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 1.5rem 0;
  color: var(--ap-muted);
  font-size: .82rem;
}
.ap-login-divider::before,
.ap-login-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--ap-border);
}
.ap-login-register-cta {
  text-align: center;
  margin-top: 1.5rem;
  font-size: .9rem;
  color: var(--ap-muted);
}
.ap-login-register-cta a { color: var(--ap-text); font-weight: 700; text-decoration: underline; }

/* Panneau droit — visuel */
.ap-login-visual {
  background: #111;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 3rem 2.5rem;
  position: relative;
  overflow: hidden;
}
.ap-login-visual::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(244,197,66,.18) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 80%, rgba(244,197,66,.10) 0%, transparent 55%);
}
.ap-login-visual-inner { position: relative; z-index: 1; text-align: center; color: #fff; max-width: 380px; }
.ap-login-visual-icon {
  font-size: 4rem;
  margin-bottom: 1.5rem;
  display: block;
  filter: drop-shadow(0 0 24px rgba(244,197,66,.4));
}
.ap-login-visual h2 { font-size: clamp(1.4rem, 2.5vw, 2rem); margin: 0 0 .75rem; line-height: 1.15; }
.ap-login-visual h2 em { color: var(--ap-gold); font-style: normal; }
.ap-login-visual p { color: #9ca3af; font-size: .95rem; margin: 0 0 2rem; line-height: 1.6; }
.ap-login-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
  width: 100%;
}
.ap-login-stat {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 1rem;
  padding: .9rem .5rem;
  text-align: center;
}
.ap-login-stat strong { display: block; font-size: 1.3rem; font-weight: 800; color: var(--ap-gold); }
.ap-login-stat span { font-size: .72rem; color: #9ca3af; margin-top: .2rem; display: block; }

/* Tabs login/inscription */
.ap-login-tabs {
  display: flex;
  gap: .5rem;
  margin-bottom: 1.5rem;
  background: #f3f4f6;
  border-radius: 999px;
  padding: .3rem;
}
.ap-login-tab {
  flex: 1;
  text-align: center;
  padding: .55rem 1rem;
  border-radius: 999px;
  font-size: .88rem;
  font-weight: 700;
  color: var(--ap-muted);
  cursor: pointer;
  transition: background .15s, color .15s;
  text-decoration: none;
}
.ap-login-tab.active,
.ap-login-tab[aria-current="page"] {
  background: #fff;
  color: var(--ap-text);
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}

/* ============================================================
   PAGE MON COMPTE — Dashboard illustré
   ============================================================ */

/* Override du layout WooCommerce MyAccount */
.ap-woo-wrap .woocommerce-account .woocommerce {
  display: block; /* on gère nous-mêmes */
}

.ap-myaccount-wrap { padding: 2rem 0 3.5rem; }

/* Header du compte */
.ap-account-header {
  background: #111;
  border-radius: var(--ap-radius);
  padding: 1.8rem 2rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  position: relative;
  overflow: hidden;
}
.ap-account-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 90% 50%, rgba(244,197,66,.15) 0%, transparent 60%);
  pointer-events: none;
}
.ap-account-avatar {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  background: var(--ap-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 800;
  color: #111;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.ap-account-header-info { flex: 1; position: relative; z-index: 1; }
.ap-account-header-info h2 { color: #fff; margin: 0 0 .2rem; font-size: 1.15rem; }
.ap-account-header-info p  { color: #9ca3af; margin: 0; font-size: .88rem; }
.ap-account-header-logout {
  position: relative;
  z-index: 1;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  color: #fff;
  border-radius: 999px;
  padding: .5rem 1rem;
  font-size: .82rem;
  font-weight: 700;
  transition: background .15s;
}
.ap-account-header-logout:hover { background: rgba(255,255,255,.15); }

/* Grille principale : nav + contenu */
.ap-account-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 1.5rem;
  align-items: start;
}

/* Navigation latérale */
.ap-account-nav {
  background: #fff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: .75rem;
  position: sticky;
  top: 90px;
}
.ap-account-nav-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .65rem .9rem;
  border-radius: .75rem;
  font-size: .92rem;
  font-weight: 600;
  color: var(--ap-muted);
  transition: background .15s, color .15s;
  cursor: pointer;
}
.ap-account-nav-item:hover { background: #f9fafb; color: var(--ap-text); }
.ap-account-nav-item.active { background: #111; color: #fff; }
.ap-account-nav-item .ap-nav-icon { font-size: 1.05rem; flex-shrink: 0; width: 1.4rem; text-align: center; }
.ap-account-nav-divider { height: 1px; background: var(--ap-border); margin: .5rem 0; }
.ap-account-nav-item.danger { color: #dc2626; }
.ap-account-nav-item.danger:hover { background: #fef2f2; color: #dc2626; }

/* Contenu principal */
.ap-account-content { display: flex; flex-direction: column; gap: 1.2rem; }

/* Cards génériques */
.ap-account-card {
  background: #fff;
  border: 1px solid var(--ap-border);
  border-radius: var(--ap-radius);
  padding: 1.5rem;
}
.ap-account-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.2rem;
}
.ap-account-card-title {
  font-size: 1rem;
  font-weight: 800;
  margin: 0;
  display: flex;
  align-items: center;
  gap: .5rem;
}
.ap-account-card-link {
  font-size: .82rem;
  color: var(--ap-muted);
  font-weight: 600;
  text-decoration: underline;
}

/* Stats rapides */
.ap-account-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.ap-account-stat {
  background: #f9fafb;
  border-radius: 1rem;
  padding: 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.ap-account-stat-icon { font-size: 1.4rem; }
.ap-account-stat-value { font-size: 1.4rem; font-weight: 800; line-height: 1; }
.ap-account-stat-label { font-size: .78rem; color: var(--ap-muted); font-weight: 600; }

/* Tableau commandes */
.ap-orders-table { width: 100%; border-collapse: collapse; }
.ap-orders-table th {
  text-align: left;
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ap-muted);
  padding: 0 .75rem .75rem;
  border-bottom: 1px solid var(--ap-border);
  font-weight: 700;
}
.ap-orders-table td {
  padding: .9rem .75rem;
  border-bottom: 1px solid var(--ap-border);
  font-size: .92rem;
  vertical-align: middle;
}
.ap-orders-table tr:last-child td { border-bottom: none; }
.ap-orders-table .ap-order-product {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.ap-orders-table .ap-order-thumb {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: .5rem;
  background: #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.ap-orders-table .ap-order-name { font-weight: 700; font-size: .92rem; }
.ap-orders-table .ap-order-date { font-size: .8rem; color: var(--ap-muted); margin-top: .1rem; }

/* Badge statut commande */
.ap-status-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 700;
}
.ap-status-badge::before { content: '●'; font-size: .5rem; }
.ap-status-completed  { background: #f0fdf4; color: #166534; }
.ap-status-processing { background: #eff6ff; color: #1e40af; }
.ap-status-pending    { background: #fefce8; color: #854d0e; }
.ap-status-cancelled  { background: #fef2f2; color: #991b1b; }
.ap-status-on-hold    { background: #f5f3ff; color: #5b21b6; }
.ap-status-refunded   { background: #f9fafb; color: var(--ap-muted); }

/* Empty state */
.ap-empty-state {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--ap-muted);
}
.ap-empty-state-icon { font-size: 2.5rem; margin-bottom: .75rem; display: block; }
.ap-empty-state p { margin: 0 0 1.2rem; font-size: .95rem; }

/* Section profil */
.ap-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ap-profile-field label {
  display: block;
  font-size: .8rem;
  font-weight: 700;
  color: var(--ap-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .3rem;
}
.ap-profile-field p {
  margin: 0;
  font-size: .97rem;
  font-weight: 600;
}

/* Responsive Mon Compte */
@media (max-width: 900px) {
  .ap-login-split { grid-template-columns: 1fr; }
  .ap-login-visual { display: none; }
  .ap-login-panel { padding: 2rem 1.5rem; min-height: 100vh; }
  .ap-account-layout { grid-template-columns: 1fr; }
  .ap-account-nav { position: static; display: flex; flex-wrap: wrap; gap: .3rem; padding: .5rem; }
  .ap-account-nav-divider { display: none; }
  .ap-account-stats { grid-template-columns: repeat(2, 1fr); }
  .ap-profile-grid { grid-template-columns: 1fr; }
  .ap-login-stats { grid-template-columns: repeat(3, 1fr); }
}
