/* Havre Cosy – boutique (page boutique, fiche produit, panier, commande) */
:root { --hc-m: #16325c; --hc-roi: #1f4e9c; --hc-or: #b89a5e; --hc-ort: #8a6f3c; --hc-t: #2c3e57; --hc-d: #6b7a90; --hc-b: #e3e8ef; --hc-fd: #f4f7fb; }

/* Page boutique */
.hc-bq { padding: 30px 0 70px; font-family: Montserrat, system-ui, sans-serif; color: var(--hc-t); }
.hc-bq__tete { text-align: center; max-width: 680px; margin: 0 auto 30px; }
.hc-bq__sur { display: block; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--hc-ort); margin-bottom: 8px; }
.hc-bq__tete h1 { font-family: Amiri, Georgia, serif !important; font-size: 50px !important; line-height: 1.05 !important; color: var(--hc-m) !important; margin: 0 0 14px !important; }
.hc-bq__tete p { color: var(--hc-d); font-size: 16px; margin: 0 !important; }

.hc-bq__logement { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0 auto 26px; flex-wrap: wrap; }
.hc-bq__logement label { font-weight: 600; color: var(--hc-m); }
.hc-bq__logement select { height: 46px; min-width: 260px; padding: 0 14px; border: 1px solid var(--hc-or) !important; border-radius: 30px !important; background: #fff !important; color: var(--hc-m) !important; font: 600 15px Montserrat, sans-serif; }

.hc-bq__etapes { list-style: none; display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin: 0 0 44px !important; padding: 0 !important; counter-reset: etape; }
.hc-bq__etapes li { counter-increment: etape; display: flex; align-items: center; gap: 10px; background: var(--hc-fd); border-radius: 30px; padding: 10px 18px 10px 10px; font-size: 14px; margin: 0; }
.hc-bq__etapes li::before { content: counter(etape); width: 26px; height: 26px; border-radius: 50%; background: var(--hc-m); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 13px; }

.hc-bq__rayon { padding: 34px 0; border-top: 1px solid var(--hc-b); }
.hc-bq__rayon h2 { font-family: Amiri, Georgia, serif !important; font-size: 32px !important; color: var(--hc-m) !important; margin: 0 0 6px !important; }
.hc-bq__rayon h2::after { content: ""; display: block; width: 42px; height: 2px; background: var(--hc-or); margin-top: 10px; }
.hc-bq__intro { color: var(--hc-d); margin: 10px 0 24px !important; }

.hc-bq__grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 24px; }
.hc-bq__carte { background: #fff; border: 1px solid var(--hc-b); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.hc-bq__carte:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(22, 50, 92, .12); }
.hc-bq__image { display: block; aspect-ratio: 4 / 3; background: var(--hc-fd); overflow: hidden; }
.hc-bq__image img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; margin: 0 !important; }
.hc-bq__corps { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.hc-bq__corps h3 { font-family: Amiri, Georgia, serif !important; font-size: 23px !important; margin: 0 0 6px !important; line-height: 1.2 !important; }
.hc-bq__corps h3 a { color: var(--hc-m) !important; text-decoration: none !important; }
.hc-bq__desc { font-size: 13.5px; color: var(--hc-d); margin: 0 0 10px !important; line-height: 1.55; }
.hc-bq__delai { font-size: 12px; font-weight: 700; color: var(--hc-ort); margin: 0 0 10px !important; }
.hc-bq__pied { margin: auto 0 0 !important; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.hc-bq__prix { font: 700 20px Amiri, Georgia, serif; color: var(--hc-m); }
.hc-bq__bouton { background: var(--hc-m); color: #fff !important; text-decoration: none !important; font-weight: 700; font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; padding: 11px 18px; border-radius: 30px; box-shadow: inset 0 -2px 0 var(--hc-or); }
.hc-bq__bouton:hover { background: var(--hc-roi); }

/* Fiche produit, panier, commande */
.hc-bq-retour { margin: 0 0 18px !important; }
.hc-bq-retour a {
  display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border: 1px solid var(--hc-or); border-radius: 30px;
  color: var(--hc-m) !important; text-decoration: none !important; font: 600 13px Montserrat, sans-serif; background: #fff;
}
.hc-bq-retour a:hover { background: var(--hc-m); color: #fff !important; }
.woocommerce div.product .product_title { font-family: Amiri, Georgia, serif !important; color: var(--hc-m) !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--hc-m) !important; font-weight: 700; }
.hc-bq-mode { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 5px 12px; border-radius: 30px; background: #faf6ee; color: var(--hc-ort); border: 1px solid var(--hc-or); margin: 6px 0 14px !important; }
.hc-bq-delai { font-weight: 600; color: var(--hc-ort); }
.hc-bq-demande { background: var(--hc-fd); border-radius: 14px; padding: 18px 20px; margin: 10px 0 20px; }
.hc-bq-champs { display: grid; gap: 4px; margin: 0 0 16px; max-width: 420px; }
.hc-bq-champs label { display: block; font-weight: 600; color: var(--hc-m); margin-bottom: 6px; font-size: 14px; }
.hc-bq-champs select, .hc-bq-champs input, .hc-bq-champs textarea { width: 100%; border: 1px solid var(--hc-b) !important; border-radius: 10px !important; padding: 10px 12px !important; font: 500 15px Montserrat, sans-serif; background: #fff !important; color: var(--hc-t) !important; }
.woocommerce .single_add_to_cart_button, .woocommerce a.button, .woocommerce button.button, .woocommerce .checkout-button, .woocommerce #place_order, .hc-bq-bouton {
  background: var(--hc-m) !important; color: #fff !important; border-radius: 30px !important; font-weight: 700 !important;
  padding: 13px 26px !important; box-shadow: inset 0 -3px 0 var(--hc-or) !important; border: 0 !important;
}
.woocommerce .single_add_to_cart_button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce #place_order:hover { background: var(--hc-roi) !important; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--hc-or) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--hc-or) !important; }

@media (max-width: 600px) {
  .hc-bq__tete h1 { font-size: 36px !important; }
  .hc-bq__etapes { flex-direction: column; align-items: stretch; }
}
