/* ==========================================================================
   Passion Tirelire — raccords WordPress / WooCommerce / Botiga
   pt-style.css est la maquette Lovable telle quelle ; ce fichier adapte ce que
   WordPress génère (logo réel, menus, formulaires Woo, gabarits Botiga).
   ========================================================================== */

/* --- Logo réel (image 3:2) : on le dimensionne en hauteur ------------------ */
.pt-logo img {
  width: auto;
  height: auto;
  max-height: 52px;
}
.pt-logo__text {
  font-family: var(--pt-font-title);
  font-weight: 700;
  color: var(--pt-primary);
  font-size: 1.1rem;
}
.pt-footer__logo {
  display: inline-block;
  margin-bottom: 12px;
}
.pt-footer__logo img {
  width: auto;
  max-height: 64px;
  padding: 6px 10px;
  background: #fff;
  border-radius: var(--pt-radius);
}
@media (min-width: 992px) {
  .pt-logo img,
  .pt-header.is-compact .pt-logo img {
    width: auto;
    max-height: 72px;
  }
  .pt-header.is-compact .pt-logo img {
    max-height: 56px;
  }
}

/* --- Méga-menus générés depuis Apparence > Menus ---------------------------- */
.pt-megamenu__grid {
  grid-template-columns: minmax(180px, 1fr) repeat(2, minmax(0, 1fr));
}
a.pt-megamenu__promo {
  display: block;
  text-decoration: none;
}
a.pt-megamenu__promo:hover p {
  color: var(--pt-accent-dark);
}
.pt-nav__link[aria-current="page"] {
  color: var(--pt-accent-dark);
}

/* --- Menu mobile ------------------------------------------------------------ */
.pt-mobilemenu__title {
  font-family: var(--pt-font-title);
  color: var(--pt-primary);
}
.pt-search--mobile {
  display: block;
  margin-bottom: 12px;
}
.pt-mobilemenu__links {
  display: flex;
  flex-direction: column;
  margin-top: 8px;
}
.pt-mobilemenu__links a {
  padding: 14px 4px;
  border-bottom: 1px solid var(--pt-border);
  color: var(--pt-primary);
  font-weight: 500;
}

/* --- Cartes produits : on neutralise la mise en page Botiga ---------------- */
.pt-theme ul.products {
  float: none;
  width: auto;
}
.pt-theme ul.products::before,
.pt-theme ul.products::after {
  display: none;
}
.pt-theme ul.products > li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}
.pt-theme ul.products > li.product .price {
  margin: 0;
}
.pt-theme .pt-product-card__media img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.pt-badge--popular {
  background: var(--pt-primary);
  color: #fff;
}
.pt-product-card__foot .added_to_cart {
  color: var(--pt-primary);
}
.pt-rating .pt-stars {
  letter-spacing: 1px;
}

/* --- Page catégorie ---------------------------------------------------------- */
.pt-subcats a[aria-current="page"] {
  background: var(--pt-primary);
  border-color: var(--pt-primary);
  color: #fff;
}
.pt-shop-toolbar .woocommerce-result-count {
  margin: 0;
  color: var(--pt-muted);
  font-size: 0.875rem;
}
.pt-shop-toolbar .woocommerce-ordering {
  margin: 0 0 0 auto;
}
.pt-shop-toolbar .woocommerce-ordering select {
  min-height: 42px;
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius-sm);
  background: #fff;
  color: var(--pt-text);
  padding: 8px 10px;
  font: inherit;
  font-size: 0.875rem;
}
.pt-filters__cats {
  margin-top: 18px;
}
.pt-filters__cats ul {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pt-filters__cats a {
  display: block;
  padding: 6px 0;
  color: var(--pt-text);
  font-size: 0.9rem;
}
.pt-filters__cats a[aria-current="page"] {
  color: var(--pt-accent-dark);
  font-weight: 600;
}
.pt-filters__cats span {
  color: var(--pt-muted);
  font-size: 0.8rem;
}
.pt-filters__reset {
  display: block;
  margin-top: 10px;
  text-align: center;
  font-size: 0.85rem;
}
.pt-category-copy {
  max-width: 820px;
}
.pt-category-copy ul {
  list-style: disc;
  padding-left: 1.3em;
  margin-bottom: 1em;
}

/* --- Fiche produit : formulaire WooCommerce ---------------------------------- */
.pt-product-summary form.cart {
  margin: 18px 0 0;
}
.pt-product-summary form.cart:not(.variations_form),
.pt-product-summary .woocommerce-variation-add-to-cart {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: stretch;
}
.pt-product-summary form.cart .single_add_to_cart_button {
  min-height: 48px;
  width: 100%;
  border: 0;
  border-radius: var(--pt-radius-pill);
  background: var(--pt-accent);
  color: #fff;
  font-weight: 600;
  font-size: 1rem;
}
.pt-product-summary form.cart .single_add_to_cart_button:hover {
  background: var(--pt-accent-dark);
}
.pt-product-summary form.cart .single_add_to_cart_button.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
/* Champs de personnalisation (Advanced Product Fields) et variations : pleine largeur */
.pt-product-summary form.cart > :not(.quantity):not(.single_add_to_cart_button) {
  grid-column: 1 / -1;
}
.pt-product-summary table.variations {
  width: 100%;
  border: 0;
  margin-bottom: 14px;
}
.pt-product-summary table.variations th,
.pt-product-summary table.variations td {
  display: block;
  padding: 0;
  border: 0;
  text-align: left;
}
.pt-product-summary table.variations th label {
  font-weight: 600;
  color: var(--pt-primary);
  font-size: 0.9rem;
}
.pt-product-summary table.variations td {
  margin: 6px 0 12px;
}
.pt-product-summary select,
.pt-product-summary input[type="text"],
.pt-product-summary input[type="date"],
.pt-product-summary input[type="email"],
.pt-product-summary input[type="number"]:not(.qty),
.pt-product-summary textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius-sm);
  background: #fff;
  color: var(--pt-text);
  padding: 8px 12px;
  font: inherit;
}
.pt-product-summary .reset_variations {
  display: inline-block;
  margin-top: 6px;
  font-size: 0.8rem;
}
.pt-product-summary .woocommerce-variation-price {
  margin-bottom: 10px;
}
.pt-product-summary .wapf-wrapper,
.pt-product-summary .wapf {
  padding: 16px;
  margin: 4px 0 14px;
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius);
  background: var(--pt-bg-cream);
}
.pt-product-summary .wapf-field-label label,
.pt-product-summary .wapf-field-label {
  font-weight: 600;
  color: var(--pt-primary);
  font-size: 0.9rem;
}
.pt-product-summary .product_meta {
  margin-top: 16px;
  font-size: 0.8rem;
  color: var(--pt-muted);
}
.pt-product-summary .product_meta > span {
  display: block;
}
.pt-product-trust li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pt-product-trust .pt-ico {
  color: var(--pt-success);
}
.pt-stock--out {
  color: var(--pt-sale);
}
.pt-stock--backorder {
  color: #9a6b00;
}
.pt-gallery__main img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.pt-gallery__thumbs img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.pt-mobile-buy .price {
  margin: 0;
  font-size: 1rem;
}
.pt-mobile-buy .price del {
  font-size: 0.8rem;
  opacity: 0.6;
}
@media (max-width: 991px) {
  /* La barre d'achat fixe ne doit pas masquer le footer. */
  .single-product .pt-footer {
    padding-bottom: 80px;
  }
}

/* Onglets : description (contenu riche) et tableau des caractéristiques */
.pt-tabs__panel.entry-content ul,
.pt-tabs__panel.entry-content ol {
  list-style: revert;
  padding-left: 1.3em;
  margin-bottom: 1em;
}
.pt-tabs__panel .woocommerce-product-attributes,
.pt-tabs__panel .pt-specs {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.2em;
}
.pt-tabs__panel .pt-specs th,
.pt-tabs__panel .pt-specs td,
.pt-tabs__panel .woocommerce-product-attributes th,
.pt-tabs__panel .woocommerce-product-attributes td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--pt-border);
  text-align: left;
  vertical-align: top;
}
.pt-tabs__panel .pt-specs th,
.pt-tabs__panel .woocommerce-product-attributes th {
  width: 35%;
  color: var(--pt-primary);
  font-weight: 600;
}
.pt-tabs__panel .woocommerce-product-attributes td p {
  margin: 0;
}

/* Avis WooCommerce dans l'onglet */
#reviews .commentlist {
  display: grid;
  gap: 14px;
  margin: 0 0 24px;
}
#reviews .commentlist li .comment_container {
  display: flex;
  gap: 14px;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius);
}
#reviews .commentlist img.avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
}
#reviews .star-rating {
  color: var(--pt-gold);
}
#review_form textarea,
#review_form input[type="text"],
#review_form input[type="email"] {
  width: 100%;
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius-sm);
  padding: 10px 12px;
  font: inherit;
}
#review_form .stars a {
  color: var(--pt-gold);
}

/* --- Accueil ------------------------------------------------------------------ */
.pt-section-head--center {
  text-align: center;
}
.pt-reviews__total {
  font-size: 0.8125rem;
  color: var(--pt-muted);
}
.pt-review__meta a {
  color: var(--pt-muted);
}
.pt-beforeafter figure a {
  display: block;
}
.pt-beforeafter img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.pt-post img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.pt-cat img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

/* --- Panier latéral ----------------------------------------------------------- */
.pt-cart-panel > .widget_shopping_cart_content {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.pt-cart-panel__body--empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.pt-cart-line img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: var(--pt-radius-sm);
}
.pt-cart-line__meta dl,
.pt-cart-line__meta dt,
.pt-cart-line__meta dd,
.pt-cart-line__meta p {
  display: inline;
  margin: 0;
}
.pt-cart-line__meta dd::after {
  content: " · ";
}
a.pt-cart-line__remove {
  font-size: 0.8rem;
  color: var(--pt-muted);
}
.pt-cart-panel.is-loading,
.widget_shopping_cart_content.blockUI {
  opacity: 0.6;
}

/* --- Footer ------------------------------------------------------------------- */
.pt-footer__bottom p {
  margin: 0;
}
.pt-footer__bottom a {
  color: inherit;
}
.pt-newsletter__msg {
  margin: 8px 0 0;
  font-size: 0.85rem;
  color: #fff;
}
.pt-newsletter__msg:empty {
  display: none;
}

/* --- Suivi de commande -------------------------------------------------------- */
.pt-tracking {
  max-width: 560px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius);
  box-shadow: var(--pt-shadow);
}
.pt-tracking__form {
  display: grid;
  gap: 12px;
}
.pt-tracking__form label {
  display: grid;
  gap: 6px;
  font-weight: 600;
  color: var(--pt-primary);
  font-size: 0.9rem;
}
.pt-tracking__form input {
  min-height: 44px;
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius-sm);
  padding: 8px 12px;
  font: inherit;
  font-weight: 400;
}
.pt-tracking__result {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: var(--pt-radius);
  border-left: 4px solid;
}
.pt-tracking__result p {
  margin: 0 0 4px;
}
.pt-tracking__result.is-success {
  background: #eef7f2;
  border-color: var(--pt-success);
}
.pt-tracking__result.is-error {
  background: #fdeeee;
  border-color: var(--pt-sale);
}
.pt-tracking__result.is-warning {
  background: var(--pt-bg-cream);
  border-color: var(--pt-gold);
}

/* --- Gabarits Botiga (blog, pages, panier, commande, compte) ------------------ */
/* pt-style.css retire les puces de toutes les listes : on les rend au contenu éditorial. */
.pt-theme .entry-content ul,
.pt-theme .entry-content ol,
.pt-theme .comment-content ul,
.pt-theme .comment-content ol {
  list-style: revert;
  padding-left: 1.4em;
  margin: 0 0 1em;
}
.pt-theme .entry-content li {
  margin-bottom: 0.35em;
}
.pt-theme .entry-content img {
  display: inline-block;
}
.pt-theme .entry-content a {
  text-decoration: underline;
}
.pt-theme:not(.pt-custom-template) #pt-main {
  background: var(--pt-bg-white);
  padding-bottom: 48px;
}
.pt-theme .woocommerce-cart-form .button,
.pt-theme .woocommerce .checkout-button,
.pt-theme #place_order {
  border-radius: var(--pt-radius-pill);
}
.pt-cart-offer {
  margin-bottom: 18px;
}

/* --- Priorité sur les réglages Botiga (variables du Customizer) --------------- */
body.pt-theme {
  --bt-color-heading-1: var(--pt-primary);
  --bt-color-heading-2: var(--pt-primary);
  --bt-color-heading-3: var(--pt-primary);
  --bt-color-heading-4: var(--pt-primary);
  --bt-color-heading-5: var(--pt-primary);
  --bt-color-heading-6: var(--pt-primary);
  --bt-color-body-text: var(--pt-text);
  --bt-color-link-default: var(--pt-accent);
  --bt-color-link-hover: var(--pt-accent-dark);
  --bt-color-button: #fff;
  --bt-color-button-hover: #fff;
  --bt-color-button-bg: var(--pt-accent);
  --bt-color-button-bg-hover: var(--pt-accent-dark);
  --bt-color-button-border: var(--pt-accent);
  --bt-color-button-border-hover: var(--pt-accent-dark);
  --bt-border-radius-button: 999px;
  --bt-color-onsale: #fff;
  --bt-color-onsale-bg: var(--pt-sale);
  font-family: var(--pt-font-body);
}
.pt-theme h1,
.pt-theme h2,
.pt-theme h3,
.pt-theme h4 {
  color: var(--pt-primary);
  font-family: var(--pt-font-title);
}
.pt-theme .pt-footer h3 {
  color: #fff;
}
.pt-theme a.button,
.pt-theme button.button,
.pt-theme .button {
  text-transform: none;
  letter-spacing: 0;
  border-radius: var(--pt-radius-pill);
}
.pt-theme .pt-product-card__foot .button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  background: var(--pt-accent);
  border-color: var(--pt-accent);
  color: #fff;
  font-weight: 600;
}
.pt-theme .pt-product-card__foot .button:hover {
  background: var(--pt-accent-dark);
  border-color: var(--pt-accent-dark);
}
/* Boutons injectés par ShopEngine (liste d'envies, aperçu, comparaison) : extension vouée à disparaître avec Elementor. */
.pt-theme .pt-product-card__foot .se-btn,
.pt-theme .pt-product-summary .se-btn {
  display: none !important;
}
.pt-theme .pt-product-card__foot .screen-reader-text {
  position: absolute;
}
.pt-theme ul.products li.product .button,
.pt-theme .pt-product-summary .single_add_to_cart_button {
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* --- Fiche produit : ajustements après test ----------------------------------- */
.pt-product-summary > .pt-badges {
  position: static;
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
}
.pt-theme .pt-product-summary .shopengine-wishlist,
.pt-theme .pt-product-summary .shopengine-comparison {
  display: none !important;
}
/* Le formulaire variable est une pile ; la ligne quantité + bouton est gérée par Botiga. */
.pt-product-summary .woocommerce-variation-add-to-cart {
  display: block;
}
.pt-product-summary .botiga-single-addtocart-wrapper {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: stretch;
  margin-top: 6px;
}
.pt-product-summary .botiga-single-addtocart-wrapper .quantity {
  min-height: 48px;
}
.pt-product-summary .botiga-quantity-minus,
.pt-product-summary .botiga-quantity-plus {
  display: grid;
  place-items: center;
  width: 36px;
  color: var(--pt-primary);
  text-decoration: none;
}
.pt-product-summary .wapf-product-totals {
  margin: 8px 0 0;
  font-size: 0.9rem;
}
.pt-theme .pt-product-summary .botiga-single-addtocart-wrapper {
  display: grid !important;
  grid-template-columns: 124px 1fr;
}
.pt-theme .pt-product-summary .botiga-single-addtocart-wrapper .quantity {
  display: flex !important;
  width: 124px;
  justify-content: space-between;
}
.pt-theme .pt-product-summary .botiga-single-addtocart-wrapper .quantity input.qty {
  width: 44px;
  padding: 0;
}
.pt-theme .pt-product-summary .botiga-single-addtocart-wrapper .single_add_to_cart_button {
  width: 100% !important;
  margin: 0 !important;
}
.pt-product-summary .reset_variations {
  text-transform: none;
  letter-spacing: 0;
  color: var(--pt-muted);
}
.pt-theme .pt-product-summary .botiga-single-addtocart-wrapper {
  width: 100% !important;
  max-width: none !important;
}
.pt-theme .pt-product-summary .botiga-single-addtocart-wrapper .quantity {
  width: 124px !important;
  max-width: none !important;
}
.pt-progress__bar {
  display: block;
  height: 100%;
}

/* Mention de franchise de TVA */
.pt-vat-mention td,
p.pt-vat-mention {
  font-size: 0.8rem;
  color: var(--pt-muted);
  text-align: right;
}

/* Encadrés des pages légales (formulaire de rétractation, garantie légale) */
.pt-theme .pt-legal-box {
  margin: 0 0 1.5em;
  padding: 16px 20px;
  background: var(--pt-bg-cream);
  border: 1px solid var(--pt-border);
  border-radius: var(--pt-radius);
  font-size: 0.92rem;
}
.pt-theme .pt-legal-box p:last-child {
  margin-bottom: 0;
}

/* Image principale de l'accueil : <picture> responsive */
.pt-hero__media picture {
  display: block;
}

/*
 * Bandeau cookies Complianz : son animation d'entrée déplace la propriété « bottom »,
 * ce que Google compte comme un décalage de mise en page (CLS 0,15 sur mobile).
 * On la remplace par un fondu + translation (composités, sans décalage).
 */
@keyframes pt-cmplz-in {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}
.cmplz-cookiebanner,
.cmplz-cookiebanner.cmplz-show {
  animation-name: pt-cmplz-in !important;
}
.cmplz-cookiebanner .cmplz-logo img {
  width: 48px !important;
  height: 48px !important;
  object-fit: contain;
}
/* Bandeau cookies : « politique de cookies » et « politique de confidentialité » pointent
   vers la même page ; on n'affiche qu'un lien. */
.cmplz-cookiebanner .cmplz-documents li:has(.cookie-statement),
.cmplz-cookiebanner .cmplz-link.cookie-statement {
  display: none !important;
}
