/* Boutique Rope'N Rescue */
.shop-body{
  background:
    linear-gradient(rgba(0,0,0,.78),rgba(0,0,0,.78)),
    url('../assets/background-site-rope.jpg') center center / cover fixed;
  color:#111;
}

.shop-page{
  width:min(1440px,94vw);
  margin:0 auto;
  padding:120px 0 40px;
}

.shop-hero{
  display:grid;
  grid-template-columns:1fr 380px;
  gap:24px;
  align-items:stretch;
  color:#fff;
  margin-bottom:22px;
}

.shop-hero-content,
.shop-info-card{
  border-radius:22px;
  border:1px solid rgba(255,98,0,.35);
  background:rgba(0,0,0,.55);
  box-shadow:0 18px 45px rgba(0,0,0,.28);
  backdrop-filter:blur(5px);
}

.shop-hero-content{
  padding:42px;
}

.shop-kicker{
  color:var(--orange);
  font-weight:900;
  font-style:italic;
  font-size:21px;
  margin:0 0 10px;
}

.shop-hero h1{
  font-family:"Bebas Neue",Impact,sans-serif;
  font-size:86px;
  line-height:.9;
  margin:0 0 18px;
  text-transform:uppercase;
}

.shop-hero p{
  max-width:720px;
  font-size:18px;
  line-height:1.55;
}

.shop-info-card{
  padding:30px;
}

.shop-info-card strong{
  display:block;
  font-family:"Bebas Neue",Impact,sans-serif;
  font-size:36px;
  color:var(--orange);
}

.shop-info-card li{
  margin:12px 0;
  line-height:1.45;
}

.shop-alert{
  border-radius:16px;
  padding:20px 24px;
  margin:18px 0;
  background:#fff;
  border-left:6px solid var(--orange);
}

.shop-alert h2{
  margin:0 0 6px;
  font-family:"Bebas Neue",Impact,sans-serif;
  font-size:30px;
}

.shop-alert.success{border-left-color:#638425}
.shop-alert.error{border-left-color:#c62828}

.shop-layout{
  display:grid;
  grid-template-columns:1fr 380px;
  gap:24px;
  align-items:start;
}

.products-zone{
  background:rgba(255,255,255,.96);
  border-radius:22px;
  padding:28px;
  box-shadow:0 18px 45px rgba(0,0,0,.22);
}

.section-title{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-end;
  margin-bottom:18px;
}

.section-title h2{
  font-family:"Bebas Neue",Impact,sans-serif;
  font-size:42px;
  margin:0;
}

.section-title p{
  margin:0;
  color:#555;
}

.shop-filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px;
}

.filter-btn{
  border:1px solid #ddd;
  background:#fff;
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
  cursor:pointer;
  text-transform:uppercase;
  font-size:12px;
}

.filter-btn.active,
.filter-btn:hover{
  border-color:var(--orange);
  color:#fff;
  background:var(--orange);
}

.products-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.product-card{
  border:1px solid #eadfd3;
  border-radius:18px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 20px rgba(0,0,0,.06);
  display:flex;
  flex-direction:column;
}

.product-image{
  height:205px;
  position:relative;
  background:#f5f5f5;
  overflow:hidden;
}

.product-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.product-badge{
  position:absolute;
  top:12px;
  left:12px;
  background:var(--orange);
  color:#fff;
  font-weight:900;
  font-size:11px;
  text-transform:uppercase;
  padding:7px 10px;
  border-radius:999px;
}

.product-content{
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}

.product-content h3{
  font-family:"Bebas Neue",Impact,sans-serif;
  font-size:29px;
  line-height:1;
  margin:0;
}

.product-content p{
  margin:0;
  font-size:14px;
  color:#444;
  line-height:1.4;
  flex:1;
}

.product-price{
  color:var(--orange);
  font-size:28px;
  font-weight:900;
}

.product-options{
  display:grid;
  grid-template-columns:1fr 1fr 78px;
  gap:8px;
}

.product-options label,
.customer-fields label{
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  color:#333;
}

.product-options select,
.product-options input,
.customer-fields input,
.customer-fields select,
.customer-fields textarea{
  width:100%;
  margin-top:5px;
  border:1px solid #ddd;
  border-radius:8px;
  padding:10px;
  font:inherit;
  background:#fff;
}

.order-panel{
  position:sticky;
  top:100px;
}

.order-card{
  background:#fff;
  border-radius:22px;
  padding:24px;
  box-shadow:0 18px 45px rgba(0,0,0,.22);
}

.order-card h2{
  margin:0 0 16px;
  font-family:"Bebas Neue",Impact,sans-serif;
  font-size:38px;
}

.order-summary{
  border:1px solid #eee;
  background:#fffaf3;
  border-radius:12px;
  padding:14px;
  min-height:70px;
  font-size:14px;
}

.order-summary.empty{
  color:#777;
}

.summary-line{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:7px 0;
  border-bottom:1px solid #eee;
}

.summary-line:last-child{
  border-bottom:0;
}

.order-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 0;
  font-weight:900;
  text-transform:uppercase;
}

.order-total strong{
  color:var(--orange);
  font-size:28px;
}

.customer-fields{
  display:grid;
  gap:12px;
}

.order-submit{
  width:100%;
  margin-top:18px;
}

.order-note{
  font-size:12px;
  color:#666;
  text-align:center;
  line-height:1.4;
}

@media(max-width:1180px){
  .shop-hero,
  .shop-layout{
    grid-template-columns:1fr;
  }

  .order-panel{
    position:static;
  }

  .products-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:720px){
  .shop-page{
    padding-top:40px;
  }

  .shop-hero h1{
    font-size:58px;
  }

  .products-grid{
    grid-template-columns:1fr;
  }

  .product-options{
    grid-template-columns:1fr;
  }

  .section-title{
    display:block;
  }
}

.option-static{display:block;margin-top:5px;border:1px solid #ddd;border-radius:8px;padding:10px;background:#f8f8f8;color:#777;text-transform:none;font-weight:700}
.product-options select{width:100%;margin-top:5px;border:1px solid #ddd;border-radius:8px;padding:10px;font:inherit;background:#fff}

.product-main-img{transition:opacity .2s ease, transform .2s ease}
.product-card:hover .product-main-img{transform:scale(1.03)}

/* V4 flocage */
.product-options{grid-template-columns:repeat(4,1fr)}
@media(max-width:720px){.product-options{grid-template-columns:1fr}}

/* V6 galerie produit + bouton ajouter */
.product-gallery{display:flex;gap:8px;padding:10px 14px 0;background:#fff;overflow-x:auto}
.gallery-thumb{width:58px;height:58px;border:2px solid #eee;border-radius:10px;background:#fff;padding:2px;cursor:pointer;flex:0 0 auto}
.gallery-thumb.active,.gallery-thumb:hover{border-color:var(--orange)}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;border-radius:7px}
.product-options{grid-template-columns:repeat(3,1fr)}
.add-to-order{width:100%;margin-top:10px}
.product-added-note{min-height:18px;color:#638425;font-size:13px;font-weight:900;text-align:center;margin-top:6px}
.product-main-img{transition:opacity .2s ease, transform .2s ease}
.product-card:hover .product-main-img{transform:scale(1.02)}
@media(max-width:720px){.product-options{grid-template-columns:1fr}}

/* V7 : flocage + aperçu complet au survol */
.product-image img.product-main-img{
  object-fit:contain!important;
  background:#f4f4f4;
  cursor:zoom-in;
}
.image-hover-preview{
  position:fixed;
  z-index:9999;
  width:min(440px,42vw);
  height:min(440px,70vh);
  background:#fff;
  border:3px solid var(--orange);
  border-radius:16px;
  box-shadow:0 22px 60px rgba(0,0,0,.38);
  padding:12px;
  display:none;
  pointer-events:none;
}
.image-hover-preview img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.product-options{
  grid-template-columns:repeat(3,1fr)!important;
}
@media(max-width:720px){
  .image-hover-preview{display:none!important}
}

/* V8 catégories + livraison */
.delivery-checkbox{display:flex!important;gap:8px;align-items:flex-start;background:#fff3e8;border:1px solid #ffd3b6;border-radius:10px;padding:11px!important;text-transform:none!important;line-height:1.35}
.delivery-checkbox input{width:auto!important;margin-top:2px!important}
.delivery-line{background:#fff3e8;margin:0 -6px;padding-left:6px;padding-right:6px;border-radius:8px}

/* V13 lightbox galerie produit */
.product-main-img{cursor:zoom-in}
.product-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(0,0,0,.88);
  display:none;
  align-items:center;
  justify-content:center;
  padding:32px;
}
.product-lightbox.is-open{display:flex}
.product-lightbox img{
  max-width:min(1100px,88vw);
  max-height:86vh;
  width:auto;
  height:auto;
  object-fit:contain;
  background:#fff;
  border-radius:14px;
  box-shadow:0 20px 70px rgba(0,0,0,.55);
}
.lightbox-open{overflow:hidden}
.lightbox-close,
.lightbox-prev,
.lightbox-next{
  position:absolute;
  border:0;
  color:#fff;
  background:rgba(255,90,0,.95);
  cursor:pointer;
  font-weight:900;
  display:grid;
  place-items:center;
  box-shadow:0 12px 30px rgba(0,0,0,.35);
}
.lightbox-close{
  top:24px;
  right:24px;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:34px;
}
.lightbox-prev,
.lightbox-next{
  top:50%;
  transform:translateY(-50%);
  width:54px;
  height:72px;
  border-radius:14px;
  font-size:54px;
}
.lightbox-prev{left:24px}
.lightbox-next{right:24px}

/* V13 aperçu logo */
.product-image{position:relative}
.logo-preview-badge{
  position:absolute;
  right:14px;
  bottom:14px;
  display:none;
  min-width:76px;
  text-align:center;
  padding:9px 13px;
  border-radius:999px;
  color:#fff;
  background:#111;
  font-weight:900;
  letter-spacing:.08em;
  box-shadow:0 10px 24px rgba(0,0,0,.28);
  border:2px solid #fff;
}
.logo-preview-badge.is-visible{display:inline-flex;justify-content:center}
.logo-preview-badge.is-rope{background:var(--orange)}
.logo-preview-badge.is-ira{background:#638425}

@media(max-width:720px){
  .product-lightbox{padding:16px}
  .lightbox-prev,.lightbox-next{width:42px;height:58px;font-size:42px}
  .lightbox-prev{left:10px}.lightbox-next{right:10px}
  .lightbox-close{right:12px;top:12px}
}

/* V106 - fiche produit professionnelle */
.product-page-body{overflow-x:hidden}.product-detail-page-v106{width:min(1400px,94vw);margin:0 auto;padding:155px 0 55px}.product-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin:0 0 18px;color:#fff;font-size:14px}.product-breadcrumb a{color:#ff5a00;font-weight:900;text-decoration:none}.product-detail-card-v106{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:42px;background:#fff;border-radius:26px;padding:34px;box-shadow:0 24px 70px rgba(0,0,0,.35);border-top:6px solid #ff5a00}.product-gallery-v106{min-width:0}.product-main-wrap-v106{position:relative;height:620px;border-radius:22px;background:#f4f2ef;overflow:hidden;display:flex;align-items:center;justify-content:center}.product-main-image-v106{width:100%;height:100%;object-fit:contain;transition:opacity .18s ease,transform .25s ease;cursor:zoom-in}.product-main-image-v106:hover{transform:scale(1.02)}.product-main-image-v106.is-changing{opacity:.28}.product-zoom-btn-v106{position:absolute;right:16px;bottom:16px;width:48px;height:48px;border:0;border-radius:50%;background:#111;color:#fff;font-size:28px;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.24)}.product-zoom-hint-v106{font-size:12px;color:#777;text-align:center;margin:10px 0}.product-thumbs-v106{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 10px}.product-thumb-v106{flex:0 0 88px;height:88px;border:2px solid transparent;border-radius:14px;padding:4px;background:#f7f5f2;cursor:pointer;transition:.18s}.product-thumb-v106:hover,.product-thumb-v106.active{border-color:#ff5a00;transform:translateY(-2px)}.product-thumb-v106 img{width:100%;height:100%;object-fit:cover;border-radius:9px}.product-info-v106{min-width:0;padding:8px 4px}.product-category-pill-v106{display:inline-flex;background:#fff1e8;color:#e64e00;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;text-transform:uppercase}.product-info-v106 h1{font-family:"Bebas Neue",Impact,sans-serif;font-size:58px;line-height:.95;margin:18px 0 10px;color:#111}.product-short-v106{font-size:18px;line-height:1.55;color:#555;margin:0 0 16px}.product-price-v106{font-size:40px;font-weight:950;color:#ff5a00;margin:10px 0}.product-sku-v106{font-size:13px;color:#666}.product-description-v106{margin:26px 0;padding-top:22px;border-top:1px solid #eadfd4;color:#222}.product-description-v106 h2{font-family:"Bebas Neue",Impact,sans-serif;font-size:30px;margin:0 0 10px}.product-description-v106>div{font-size:16px;line-height:1.7}.product-options-panel-v106{display:grid;gap:18px;padding:20px;background:#faf7f3;border:1px solid #eadfd4;border-radius:18px}.option-title-v106{display:block;font-weight:900;text-transform:uppercase;font-size:12px;margin-bottom:10px}.size-list-v106,.logo-list-v106,.color-list-v106{display:flex;flex-wrap:wrap;gap:8px}.size-list-v106 span,.logo-list-v106 span,.color-choice-v106{border:1px solid #ddd;background:#fff;border-radius:10px;padding:9px 12px;font-weight:800}.color-choice-v106{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.color-choice-v106:hover,.color-choice-v106.active{border-color:#ff5a00;box-shadow:0 0 0 2px rgba(255,90,0,.12)}.color-dot-v106{width:18px;height:18px;border-radius:50%;background:#bbb;border:1px solid rgba(0,0,0,.15)}.color-dot-v106[data-color-name*="noir"],.color-dot-v106[data-color-name*="black"],.color-dot-v106[data-color-name*="zwart"]{background:#111}.color-dot-v106[data-color-name*="bleu"],.color-dot-v106[data-color-name*="blue"],.color-dot-v106[data-color-name*="blauw"]{background:#1d4f9b}.color-dot-v106[data-color-name*="rouge"],.color-dot-v106[data-color-name*="red"],.color-dot-v106[data-color-name*="rood"]{background:#c62828}.color-dot-v106[data-color-name*="vert"],.color-dot-v106[data-color-name*="green"],.color-dot-v106[data-color-name*="groen"]{background:#4f7d26}.color-dot-v106[data-color-name*="gris"],.color-dot-v106[data-color-name*="grey"],.color-dot-v106[data-color-name*="gray"]{background:#777}.color-dot-v106[data-color-name*="blanc"],.color-dot-v106[data-color-name*="white"],.color-dot-v106[data-color-name*="wit"]{background:#fff}.product-availability-v106{display:flex;align-items:center;gap:9px;margin:20px 0;font-size:14px}.availability-dot-v106{width:10px;height:10px;border-radius:50%;background:#5f8c22;box-shadow:0 0 0 4px rgba(95,140,34,.14)}.product-order-btn-v106{display:inline-flex;justify-content:center;width:100%;padding:16px 20px;border-radius:12px;background:#ff5a00;color:#fff!important;text-decoration:none;text-transform:uppercase;font-weight:950;box-shadow:0 10px 24px rgba(255,90,0,.25)}.product-order-btn-v106:hover{background:#e64e00;transform:translateY(-1px)}.product-lightbox-v106{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.92);padding:40px}.product-lightbox-v106.is-open{display:flex}.product-lightbox-v106>img{max-width:90vw;max-height:88vh;object-fit:contain}.product-lightbox-close-v106,.product-lightbox-nav-v106{position:absolute;border:0;background:#ff5a00;color:#fff;cursor:pointer;border-radius:50%}.product-lightbox-close-v106{right:22px;top:22px;width:50px;height:50px;font-size:34px}.product-lightbox-nav-v106{top:50%;width:54px;height:54px;font-size:42px;line-height:1}.product-lightbox-nav-v106.prev{left:22px}.product-lightbox-nav-v106.next{right:22px}.product-lightbox-open{overflow:hidden}
@media(max-width:900px){.product-detail-page-v106{padding-top:125px}.product-detail-card-v106{grid-template-columns:1fr;padding:22px;gap:26px}.product-main-wrap-v106{height:480px}.product-info-v106 h1{font-size:48px}}
@media(max-width:560px){.product-detail-page-v106{width:94vw;padding-top:108px}.product-breadcrumb{font-size:12px}.product-detail-card-v106{padding:14px;border-radius:18px}.product-main-wrap-v106{height:360px;border-radius:14px}.product-info-v106 h1{font-size:40px}.product-price-v106{font-size:32px}.product-thumb-v106{flex-basis:70px;height:70px}.product-lightbox-v106{padding:14px}.product-lightbox-nav-v106{width:44px;height:44px}.product-lightbox-nav-v106.prev{left:8px}.product-lightbox-nav-v106.next{right:8px}}

/* V108 - titres noirs et sélecteurs complets sur la fiche produit */
.product-content h3,
.product-content h3 a,
.product-title-link{
  color:#111 !important;
}
.product-content h3 a:hover,
.product-title-link:hover{
  color:#111 !important;
  text-decoration:underline;
  text-decoration-color:#ff5a00;
  text-underline-offset:4px;
}
.size-choice-v108,
.logo-choice-v108{
  border:1px solid #d8d3cd;
  background:#fff;
  color:#111;
  border-radius:10px;
  padding:10px 14px;
  font-weight:900;
  cursor:pointer;
  transition:.18s ease;
}
.size-choice-v108:hover,
.logo-choice-v108:hover,
.size-choice-v108.active,
.logo-choice-v108.active{
  border-color:#ff5a00;
  box-shadow:0 0 0 2px rgba(255,90,0,.14);
  transform:translateY(-1px);
}
.size-choice-v108.active,
.logo-choice-v108.active{
  background:#111;
  color:#fff;
}
.product-selection-message-v108{
  margin:12px 0 0;
  padding:10px 12px;
  background:#fff2ea;
  border-left:4px solid #ff5a00;
  border-radius:8px;
  color:#a53600;
  font-weight:800;
  font-size:13px;
}
