/* ==========================================================================
   OPTICIEN DU COIN — CSS supplémentaire
   Charte : #14442f (vert profond) · #2f9e63 (vert) · #5fd39a (accent)
            #f4f8f5 (fond clair) · #e9f9f0 (fond mint) · #dce7e0 (filets)
            #5c6f65 (texte) · #8a9a91 (texte discret)

   Sommaire
   1. Formulaire ACF — carte, onglets, champs
   2. Champs image ACF
   3. Espace client — menu en cartes
   4. Fiche opticien — voyant, horaires, badge
   5. Fiche opticien — bloc duo horaires + badge
   6. Fiche opticien — carrousels marques / services / verriers
   7. Panier et commande WooCommerce
   8. Responsive
   ========================================================================== */


/* ==========================================================================
   1. FORMULAIRE ACF — carte, onglets, champs
   ========================================================================== */

.acf-form, .fea-form {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif !important;
  background: #ffffff !important;
  border-radius: 18px !important;
  padding: 40px !important;
  box-shadow: 0 12px 40px rgba(20, 68, 47, 0.08) !important;
  border: 1px solid #dce7e0 !important;
  max-width: 1140px !important;
  margin: 30px auto !important;
}

.acf-tab-wrap {
  border-bottom: 2px solid #dce7e0 !important;
  margin-bottom: 35px !important;
}

ul.acf-tab-group {
  border: none !important;
  gap: 8px !important;
  display: flex !important;
}

ul.acf-tab-group li a {
  background: #f4f8f5 !important;
  border: 1px solid #dce7e0 !important;
  border-bottom: none !important;
  border-radius: 10px 10px 0 0 !important;
  color: #5c6f65 !important;
  font-weight: 600 !important;
  padding: 12px 22px !important;
}

ul.acf-tab-group li a:hover {
  background: #e9f9f0 !important;
  color: #14442f !important;
}

ul.acf-tab-group li.active a {
  background: #2f9e63 !important;
  color: #ffffff !important;
  border-color: #2f9e63 !important;
}

.acf-field {
  margin-bottom: 25px !important;
  padding: 0 !important;
  border: none !important;
}

.acf-label {
  margin-bottom: 8px !important;
}

.acf-label label {
  font-weight: 700 !important;
  color: #14442f !important;
  font-size: 14px !important;
}

.acf-label p.description {
  color: #8a9a91 !important;
}

.acf-field input[type="text"],
.acf-field input[type="email"],
.acf-field input[type="url"],
.acf-field input[type="number"],
.acf-field textarea,
.acf-field select {
  background-color: #f4f8f5 !important;
  border: 1px solid #dce7e0 !important;
  border-radius: 10px !important;
  padding: 12px 16px !important;
  font-size: 14px !important;
  color: #14442f !important;
}

.acf-field input:focus,
.acf-field textarea:focus,
.acf-field select:focus {
  background-color: #ffffff !important;
  border-color: #2f9e63 !important;
  box-shadow: 0 0 0 3px rgba(47, 158, 99, 0.15) !important;
  outline: none !important;
}

.acf-form-submit {
  margin-top: 35px !important;
}

.acf-form-submit input[type="submit"],
.fea-submit-button {
  background-color: #2f9e63 !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 15px 34px !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  cursor: pointer !important;
  box-shadow: 0 8px 22px rgba(47, 158, 99, 0.28) !important;
  transition: background-color 0.15s ease, box-shadow 0.15s ease !important;
}

.acf-form-submit input[type="submit"]:hover,
.fea-submit-button:hover {
  background-color: #14442f !important;
  box-shadow: 0 12px 28px rgba(20, 68, 47, 0.28) !important;
}


/* ==========================================================================
   2. CHAMPS IMAGE ACF
   ========================================================================== */

.acf-field-image .acf-image-uploader,
.acf-field-image .image-wrap,
.acf-field-image .uploader-editor {
  border: 2px dashed #dce7e0 !important;
  border-radius: 14px !important;
  background-color: #f4f8f5 !important;
  padding: 8px !important;
  overflow: hidden !important;
  transition: all 0.2s ease !important;
}

.acf-field-image .acf-image-uploader:hover {
  border-color: #2f9e63 !important;
  background-color: #ffffff !important;
}

.acf-field-image img {
  width: 100% !important;
  height: 180px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
  display: block !important;
}

.acf-field-image {
  margin-bottom: 30px !important;
  padding: 0 10px !important;
}

.acf-field-image .actions,
.acf-field-image .has-value .actions {
  margin-top: 8px !important;
  display: flex !important;
  gap: 8px !important;
  justify-content: center !important;
}

.acf-field-image .actions a {
  background: #ffffff !important;
  border: 1px solid #dce7e0 !important;
  border-radius: 8px !important;
  padding: 6px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #5c6f65 !important;
  text-decoration: none !important;
  box-shadow: 0 1px 3px rgba(20, 68, 47, 0.05) !important;
}

.acf-field-image .actions a:hover {
  background: #c0392b !important;
  color: #ffffff !important;
  border-color: #c0392b !important;
}


/* ==========================================================================
   3. ESPACE CLIENT — menu en cartes
   ========================================================================== */

.woocommerce-account .woocommerce {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif !important;
  display: flex !important;
  flex-direction: column !important;
  max-width: 1140px !important;
  margin: 30px auto !important;
  gap: 25px !important;
}

.woocommerce-MyAccount-navigation {
  width: 100% !important;
}

.woocommerce-MyAccount-navigation ul {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 15px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce-MyAccount-navigation li {
  margin: 0 !important;
  list-style: none !important;
}

.woocommerce-MyAccount-navigation li a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 22px 15px !important;
  background: #ffffff !important;
  border-radius: 16px !important;
  border: 1px solid #dce7e0 !important;
  color: #14442f !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  box-shadow: 0 4px 15px rgba(20, 68, 47, 0.04) !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  position: relative !important;
}

.woocommerce-MyAccount-navigation li a:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 25px rgba(20, 68, 47, 0.10) !important;
  border-color: #2f9e63 !important;
  color: #2f9e63 !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--ma-vitrine {
  grid-column: span 3 !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--ma-vitrine a {
  background: #2f9e63 !important;
  color: #ffffff !important;
  font-size: 18px !important;
  padding: 28px 20px !important;
  box-shadow: 0 8px 25px rgba(47, 158, 99, 0.30) !important;
  border: none !important;
  flex-direction: row !important;
  gap: 12px !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--ma-vitrine a:hover {
  background: #14442f !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 30px rgba(20, 68, 47, 0.32) !important;
  color: #ffffff !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--parrainage a {
  background: #14442f !important;
  color: #5fd39a !important;
  border: none !important;
  box-shadow: 0 8px 25px rgba(20, 68, 47, 0.28) !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--parrainage a:hover {
  background: #14442f !important;
  color: #ffffff !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 12px 30px rgba(20, 68, 47, 0.36) !important;
}

.woocommerce-MyAccount-navigation li a::before {
  font-family: "dashicons" !important;
  font-size: 26px !important;
  width: 26px !important;
  height: 26px !important;
  margin-bottom: 8px !important;
  display: inline-block !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--ma-vitrine a::before {
  content: "\f513" !important;
  margin-bottom: 0 !important;
  font-size: 30px !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard a::before {
  content: "\f226" !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--orders a::before {
  content: "\f174" !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads a::before {
  content: "\f106" !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-address a::before {
  content: "\f102" !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account a::before {
  content: "\f110" !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a::before {
  content: "\f153" !important;
  color: #c0392b !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--parrainage a::before {
  font-family: inherit !important;
  content: "€" !important;
  font-size: 26px !important;
  font-weight: 800 !important;
}

.woocommerce-MyAccount-content {
  width: 100% !important;
  background: #ffffff !important;
  border-radius: 18px !important;
  padding: 30px !important;
  border: 1px solid #dce7e0 !important;
  box-shadow: 0 4px 20px rgba(20, 68, 47, 0.04) !important;
  margin-top: 10px !important;
  color: #5c6f65 !important;
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
  color: #14442f !important;
}


/* ==========================================================================
   4. FICHE OPTICIEN — voyant, horaires, badge
   ========================================================================== */

.odc-voyant {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 14.5px; margin-bottom: 12px;
}
.odc-voyant-point { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.odc-voyant-ouvert { color: #2f9e63; }
.odc-voyant-ouvert .odc-voyant-point { background: #2f9e63; box-shadow: 0 0 0 4px rgba(47,158,99,.16); }
.odc-voyant-ferme { color: #b8564c; }
.odc-voyant-ferme .odc-voyant-point { background: #d4564a; box-shadow: 0 0 0 4px rgba(212,86,74,.14); }

.odc-horaires-table {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;
  border-collapse: separate; border-spacing: 0; width: 100%; max-width: none;
  background: #fff; border: 1px solid #dce7e0; border-radius: 16px;
  overflow: hidden; font-size: 14.5px;
}
.odc-horaires-table td {
  padding: 11px 18px; border-bottom: 1px solid #eff3f1;
  color: #5c6f65; background: transparent;
}
.odc-horaires-table tr:last-child td { border-bottom: none; }
.odc-horaires-table .odc-jour { font-weight: 600; color: #14442f; width: 40%; }
.odc-horaires-table .odc-jour-actuel td { background: #e9f9f0; border-bottom-color: #d9ebe1; }
.odc-horaires-table .odc-jour-actuel .odc-jour { color: #2f9e63; }
.odc-horaires-table .odc-ferme { color: #8a9a91; font-style: italic; }

.odc-badge-mini {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;
  display: inline-block; padding: 7px 15px; border-radius: 30px;
  font-size: 12.5px; font-weight: 700; line-height: 1.2;
}
.odc-badge-mini-vide { background: #f4f8f5; color: #8a9a91; }


/* ==========================================================================
   5. FICHE OPTICIEN — bloc duo horaires + badge
   ========================================================================== */

.odc-duo {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;
  width: 100%; box-sizing: border-box;
}
.odc-duo * { box-sizing: border-box; }
.odc-duo--large { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.odc-duo--large .odc-duo__horaires { flex: 1 1 380px; min-width: 0; }
.odc-duo--large .odc-duo__badge { flex: 0 0 auto; display: flex; justify-content: center; }
.odc-duo--large .odc-badge-wrap { height: 180px; margin: 0; }
.odc-duo--large.odc-duo--badge-seul { justify-content: center; }
.odc-duo--large.odc-duo--horaires-seul .odc-duo__horaires { flex: 1 1 100%; }
.odc-duo--compact { display: block; }
.odc-duo--compact .odc-duo__note { margin-bottom: 14px; }
.odc-duo--compact .odc-duo__horaires { width: 100%; }


/* ==========================================================================
   6. FICHE OPTICIEN — carrousels marques / services / verriers
   ========================================================================== */

.odc-taxo-wrap {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;
  width: 100%; box-sizing: border-box;
}
.odc-taxo-wrap * { box-sizing: border-box; }

.odc-taxo-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
  grid-auto-rows: 1fr;
  gap: 10px;
}

.odc-taxo-carte {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 8px;
  min-height: 104px; padding: 14px 8px;
  border-radius: 14px;
  background: #f4faf7; border: 1px solid #dceae3;
  color: #2f9e63; font-weight: 600; font-size: 12.5px;
  line-height: 1.3; text-align: center; text-decoration: none !important;
  transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.odc-taxo-carte:hover {
  background: #2f9e63; color: #fff !important; border-color: #2f9e63;
  transform: translateY(-3px);
  box-shadow: 0 8px 18px rgba(47,158,99,.24);
}
.odc-taxo-carte.odc-taxo-carte-cachee { display: none; }
.odc-taxo-grille.odc-taxo-grille-etendue .odc-taxo-carte.odc-taxo-carte-cachee { display: flex; }

.odc-taxo-icone { width: 25px; height: 25px; flex-shrink: 0; }
.odc-taxo-logo { width: 30px; height: 30px; object-fit: contain; flex-shrink: 0; }
.odc-taxo-picto-masque {
  width: 25px; height: 25px; flex-shrink: 0; display: inline-block;
  background-color: currentColor;
  -webkit-mask-size: contain; mask-size: contain;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
}

.odc-taxo-wrap .odc-taxo-voir-plus {
  display: block; width: fit-content; margin: 16px auto 0 !important;
  padding: 11px 24px !important; border-radius: 999px !important;
  border: 1.5px solid #2f9e63 !important;
  background: #fff !important; color: #2f9e63 !important;
  font-family: inherit !important; font-weight: 600 !important;
  font-size: 14px !important; line-height: 1.2 !important;
  cursor: pointer; box-shadow: none !important;
  transition: background .15s ease, color .15s ease;
}
.odc-taxo-wrap .odc-taxo-voir-plus:hover {
  background: #2f9e63 !important; color: #fff !important;
}


/* ==========================================================================
   7. PANIER ET COMMANDE WOOCOMMERCE
   ========================================================================== */

/* Correction d'alignement mobile — ne pas retirer */

.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 100% !important;
}

.wc-block-cart,
.wc-block-checkout,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  font-family: "Poppins", -apple-system, BlinkMacSystemFont, sans-serif;
}

.wc-block-components-title,
.wc-block-components-checkout-step__title,
.wp-block-woocommerce-cart-order-summary-heading-block {
  color: #14442f !important;
  font-weight: 600 !important;
}

.wc-block-components-product-name {
  color: #14442f !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}
.wc-block-components-product-name:hover {
  color: #2f9e63 !important;
  text-decoration: none !important;
}

.wc-block-components-product-price,
.wc-block-components-totals-item__value {
  color: #14442f !important;
}

.wc-block-components-totals-footer-item {
  color: #14442f !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #14442f !important;
}

.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.contained {
  background-color: #2f9e63 !important;
  border-color: #2f9e63 !important;
  color: #ffffff !important;
  border-radius: 12px !important;
  padding: 16px 28px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(47, 158, 99, 0.28) !important;
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-button.contained:hover {
  background-color: #14442f !important;
  border-color: #14442f !important;
  color: #ffffff !important;
  box-shadow: 0 12px 28px rgba(20, 68, 47, 0.28) !important;
}

.wc-block-components-panel__button,
.wc-block-components-totals-coupon__button,
.wc-block-components-checkout-return-to-cart-button {
  color: #2f9e63 !important;
}

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox-control input,
.wc-block-components-select__container {
  border-radius: 10px !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus,
.wc-block-components-combobox-control input:focus {
  border-color: #2f9e63 !important;
  box-shadow: 0 0 0 2px rgba(47, 158, 99, 0.18) !important;
  outline: none !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label {
  color: #2f9e63 !important;
}

.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-cart-items,
.wc-block-components-totals-wrapper {
  border-color: #dce7e0 !important;
}

/* Ventes croisées — à supprimer dans l'éditeur de préférence.
   Cette règle sert de solution de repli. */

.wp-block-woocommerce-cart .wp-block-woocommerce-product-collection {
  display: none !important;
}

/* Mention TVA récupérable — optionnel, à retirer si non souhaité */

.wc-block-components-totals-taxes .wc-block-components-totals-item__label::after {
  content: " — récupérable";
  color: #8a9a91;
  font-size: 0.85em;
}


/* ==========================================================================
   8. RESPONSIVE
   ========================================================================== */

@media (max-width: 780px) {
  .odc-duo--large { flex-direction: column; align-items: center; gap: 20px; }
  .odc-duo--large .odc-duo__horaires { flex: 1 1 100%; width: 100%; }
  .odc-duo--large .odc-duo__badge { width: 100%; }
}

@media (max-width: 768px) {
  .acf-form, .fea-form {
    padding: 20px 15px !important;
    margin: 10px auto !important;
  }

  .acf-tab-wrap {
    overflow-x: auto !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 5px !important;
    margin-bottom: 20px !important;
  }

  ul.acf-tab-group {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
  }

  ul.acf-tab-group li a {
    padding: 8px 14px !important;
    font-size: 13px !important;
    white-space: nowrap !important;
  }

  .acf-field[data-width] {
    width: 100% !important;
  }

  .woocommerce-MyAccount-navigation ul {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--ma-vitrine {
    grid-column: span 2 !important;
  }
}

@media (max-width: 767px) {
  .wc-block-cart__submit-button,
  .wc-block-components-checkout-place-order-button {
    width: 100% !important;
    padding: 16px 20px !important;
  }
  .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 19px !important;
  }
}

@media (max-width: 600px) {
  .odc-horaires-table { font-size: 13.5px; }
  .odc-horaires-table td { padding: 10px 14px; }
}

@media (max-width: 480px) {
  .odc-taxo-grille { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
  .odc-taxo-carte { min-height: 94px; font-size: 12px; }
}