.shop-page{max-width:1180px;margin:0 auto;padding:2rem 1rem 4rem}
.shop-hero{display:grid;grid-template-columns:1fr 160px;gap:2rem;align-items:center;padding:2.5rem;border-radius:26px;background:linear-gradient(135deg,#121212,#2b2b2b);color:#fff;margin-bottom:1.25rem}
.shop-hero h1,.shop-product-copy h1,.shop-admin-heading h1{font-size:clamp(2rem,5vw,3.8rem);line-height:1;margin:.35rem 0 1rem}
.shop-hero p{max-width:720px;font-size:1.08rem;opacity:.88}
.shop-hero-badge{width:140px;height:140px;border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:900;letter-spacing:.08em;background:#f28c28;color:#111;justify-self:end}
.shop-preview-banner{display:flex;gap:.7rem;align-items:flex-start;padding:1rem 1.2rem;border:1px solid #e0b06b;background:#fff7e8;border-radius:16px;margin:1rem 0 1.5rem}
.shop-preview-banner.compact{display:grid;margin:1.4rem 0}
.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.shop-card{border:1px solid #e7e7e7;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 9px 30px rgba(0,0,0,.05)}
.shop-card-visual,.shop-product-visual{min-height:240px;display:grid;place-items:center;text-decoration:none;background:linear-gradient(145deg,#f4f4f4,#d8d8d8);color:#222;font-weight:900;letter-spacing:.13em}
.shop-visual-t-shirt{background:linear-gradient(145deg,#242424,#070707);color:#fff}
.shop-visual-sweatshirt{background:linear-gradient(145deg,#23334a,#101826);color:#fff}
.shop-visual-hoodie{background:linear-gradient(145deg,#1a2740,#0b1320);color:#fff}
.shop-visual-tote-bag{background:linear-gradient(145deg,#e7d9bf,#c8b58f)}
.shop-visual-mug{background:linear-gradient(145deg,#fff,#e9e9e9)}
.shop-card-body{padding:1.25rem}
.shop-card-body h2{margin:.35rem 0 .6rem}
.shop-card-body p{color:#5a5a5a;min-height:3.3rem}
.shop-category{text-transform:uppercase;font-size:.73rem;font-weight:800;letter-spacing:.1em;color:#a65b14}
.shop-card-footer{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}
.shop-card-footer a,.shop-back{font-weight:800;text-decoration:none}
.shop-product{display:grid;grid-template-columns:minmax(300px,1fr) minmax(0,1.05fr);gap:2rem;margin-top:1rem}
.shop-product-visual{min-height:520px;border-radius:24px}
.shop-product-copy{padding:1rem 0}
.shop-variant-list{display:grid;gap:.65rem;margin:1rem 0 1.5rem}
.shop-variant{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1rem;border:1px solid #e6e6e6;border-radius:14px}
.shop-variant small{display:block;color:#666;margin-top:.2rem}
.shop-variant-price{font-weight:800}
.shop-admin-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.3rem}
.shop-admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.shop-admin-stats article{padding:1.3rem;border:1px solid #e4e4e4;border-radius:18px;background:#fff}
.shop-admin-stats strong{display:block;font-size:2rem}
.shop-admin-stats span{color:#686868}
.shop-safety{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin:1rem 0 1.4rem}
.shop-safety div{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 1rem;background:#f6f7f8;border-radius:12px}
.shop-admin-table{border:1px solid #e4e4e4;border-radius:18px;background:#fff;overflow:hidden}
.shop-admin-table-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;border-bottom:1px solid #eee}
.shop-admin-table-head h2{margin:0}
.shop-admin-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.2rem;border-bottom:1px solid #f0f0f0}
.shop-admin-row:last-child{border-bottom:0}
.shop-admin-row small{display:block;color:#666;margin-top:.25rem}
.shop-admin-tags{display:flex;gap:.45rem;flex-wrap:wrap}
.shop-admin-tags span{padding:.35rem .55rem;border-radius:999px;background:#f2f2f2;font-size:.78rem;font-weight:800}
.shop-next-step{margin-top:1rem;padding:1.1rem 1.2rem;background:#eef7f0;border-radius:14px}
.shop-next-step p{margin:.35rem 0 0}
.shop-empty{grid-column:1/-1;padding:2rem;text-align:center}
@media(max-width:850px){
  .shop-hero{grid-template-columns:1fr}
  .shop-hero-badge{justify-self:start}
  .shop-grid{grid-template-columns:1fr 1fr}
  .shop-product{grid-template-columns:1fr}
  .shop-product-visual{min-height:340px}
  .shop-admin-stats{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .shop-grid,.shop-admin-stats,.shop-safety{grid-template-columns:1fr}
  .shop-hero{padding:1.5rem}
  .shop-admin-heading,.shop-admin-row,.shop-card-footer{align-items:flex-start;flex-direction:column}
}

/* BOUTIQUE_RESPONSIVE_V1_0_1 */
.shop-safety-status-warning{
  font-weight:800;
  color:#8a4a05;
}

@media(max-width:560px){
  .shop-page{
    padding:1rem .75rem 3rem;
  }

  .shop-hero{
    padding:1.4rem;
    gap:1rem;
    border-radius:22px;
  }

  .shop-hero h1{
    font-size:clamp(2rem,10vw,2.65rem);
    line-height:1.02;
    margin:.35rem 0 .8rem;
  }

  .shop-hero p{
    font-size:1rem;
    line-height:1.45;
  }

  .shop-hero-badge{
    width:88px;
    height:88px;
    font-size:.72rem;
    justify-self:start;
  }

  .shop-preview-banner{
    display:grid;
    gap:.35rem;
    padding:.9rem 1rem;
  }

  .shop-preview-banner strong,
  .shop-preview-banner span{
    display:block;
  }

  .shop-card-visual{
    min-height:180px;
  }

  .shop-card-body{
    padding:1.1rem;
  }

  .shop-card-body p{
    min-height:0;
  }

  .shop-product{
    gap:1rem;
  }

  .shop-product-visual{
    min-height:260px;
  }

  .shop-product-copy{
    padding:.25rem 0 0;
  }

  .shop-product-copy h1{
    font-size:clamp(2rem,10vw,2.7rem);
  }

  .shop-variant{
    gap:.75rem;
  }
}

/* BOUTIQUE_PANIER_DEVIS_V1_1_0 */
.shop-page-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.shop-cart-link{display:inline-flex;margin-top:1rem;padding:.7rem 1rem;border-radius:999px;background:#f28c28;color:#111;text-decoration:none;font-weight:900}
.shop-cart-link-light{margin:0;background:#fff4e5;border:1px solid #f0a447}
.shop-simple-title{font-size:clamp(2rem,5vw,3.4rem);margin:.2rem 0}
.shop-variant-action{gap:1rem}.shop-variant-actions{display:flex;align-items:center;gap:1rem}.shop-small-button{padding:.55rem .8rem}
.shop-cart-layout,.shop-quote-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:1.2rem}
.shop-cart-list,.shop-cart-summary,.shop-address-panel,.shop-quote-summary,.shop-quote-result{border:1px solid #e4e4e4;border-radius:18px;background:#fff;padding:1.2rem}
.shop-cart-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid #eee}.shop-cart-row h2{margin:.25rem 0}.shop-cart-row p{margin:0;color:#666}
.shop-cart-controls{display:grid;grid-template-columns:auto 72px;align-items:center;gap:.45rem .7rem;text-align:right}.shop-cart-controls strong{grid-column:1/-1}.shop-cart-controls input{width:72px;padding:.6rem;border:1px solid #ccc;border-radius:10px}
.shop-cart-summary{align-self:start;position:sticky;top:1rem}.shop-summary-line{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid #eee}.shop-summary-line small{display:block;color:#666;margin-top:.2rem}.shop-muted{color:#666;line-height:1.5}.shop-full-button{display:block;width:100%;text-align:center;margin-top:1rem;text-decoration:none}.shop-safety-note{margin-top:1rem;padding:.8rem 1rem;border-radius:12px;background:#f3f3f3;color:#555;font-size:.9rem}.shop-safety-note-large{font-size:1rem}.shop-remove-list{display:grid;gap:.35rem;margin-top:1rem}.shop-text-button{border:0;background:transparent;padding:.25rem 0;text-decoration:underline;cursor:pointer;color:#555}.shop-empty-large{padding:4rem 1rem}
.shop-address-form{margin-top:1rem}.shop-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.shop-address-form label{display:grid;gap:.35rem;font-weight:800}.shop-address-form input,.shop-address-form select{width:100%;box-sizing:border-box;padding:.75rem .8rem;border:1px solid #ccc;border-radius:10px;background:#fff;font:inherit}.shop-field-wide{grid-column:1/-1}.shop-error-box{padding:.85rem 1rem;border:1px solid #d76b6b;background:#fff0f0;border-radius:12px;margin:1rem 0}.shop-error-box p{margin:.2rem 0}.shop-quote-result{margin-top:1.2rem}.shop-quote-result-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.shop-status-ok,.shop-status-warning{padding:.45rem .7rem;border-radius:999px;font-weight:900;font-size:.82rem}.shop-status-ok{background:#e8f6eb;color:#226233}.shop-status-warning{background:#fff2de;color:#8a4a05}.shop-quote-card{margin-top:1rem;padding:1rem;border:1px solid #eee;border-radius:14px}.shop-quote-meta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.shop-shipping-method{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.8rem;border:1px solid #e5e5e5;border-radius:12px;margin:.55rem 0}.shop-shipping-method small{display:block;color:#666;margin-top:.15rem}.shop-shipping-method-invalid{background:#fff7e8;border-color:#e0b06b}.shop-success-box{margin-top:1rem;padding:1rem;border-radius:14px;background:#eaf7ed}
@media(max-width:760px){.shop-cart-layout,.shop-quote-layout{grid-template-columns:1fr}.shop-cart-summary{position:static}}
@media(max-width:560px){.shop-page-actions,.shop-cart-row,.shop-variant-action,.shop-variant-actions,.shop-quote-result-heading,.shop-shipping-method{align-items:flex-start;flex-direction:column}.shop-form-grid{grid-template-columns:1fr}.shop-field-wide{grid-column:auto}.shop-variant-actions{width:100%}.shop-variant-actions form,.shop-small-button{width:100%}}

/* BOUTIQUE_MODELE_GELATO_V1_2_0 */
.shop-card-visual-real,.shop-product-visual-real{background:#fff;overflow:hidden}
.shop-card-visual-real img{width:100%;height:100%;min-height:240px;object-fit:contain;padding:.5rem;box-sizing:border-box}
.shop-product-visual-real img{width:100%;height:100%;max-height:620px;object-fit:contain;padding:1rem;box-sizing:border-box}
.shop-product-facts{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0}.shop-product-facts span{padding:.45rem .7rem;border-radius:999px;background:#f2f2f2;font-size:.82rem;font-weight:800}
.shop-color-group{margin:1rem 0;padding:1rem;border:1px solid #e7e7e7;border-radius:16px;background:#fff}.shop-color-heading{display:flex;align-items:center;gap:.55rem;margin-bottom:.8rem}.shop-color-dot{width:18px;height:18px;border-radius:50%;border:1px solid #bbb}.shop-color-blanc{background:#fff}.shop-color-orange{background:#f28c28;border-color:#d97706}.shop-color-noir{background:#111;border-color:#111}
.shop-size-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.shop-size-form{margin:0}.shop-size-button{width:100%;min-height:72px;display:grid;gap:.2rem;place-items:center;padding:.65rem;border:1px solid #d9d9d9;border-radius:12px;background:#fff;cursor:pointer;font:inherit}.shop-size-button:hover{border-color:#f28c28;box-shadow:0 0 0 2px rgba(242,140,40,.12)}.shop-size-button span{font-weight:900;font-size:1.05rem}.shop-size-button strong{font-size:.82rem}
.shop-summary-total{margin-top:.5rem;border-top:2px solid #222}.shop-shipping-price-block{display:grid;justify-items:end;gap:.15rem}.shop-client-total{font-size:1.1rem}.shop-shipping-radio{margin-right:.45rem}.shop-shipping-method:has(.shop-shipping-radio:checked){border-color:#f28c28;box-shadow:0 0 0 2px rgba(242,140,40,.12)}
@media(max-width:560px){.shop-size-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.shop-product-visual-real{min-height:300px}.shop-product-visual-real img{max-height:390px}.shop-shipping-price-block{justify-items:start}}

/* BOUTIQUE_COULEURS_MOCKUPS_V1_2_1 */

.shop-product-gallery{
  display:grid;
  gap:.8rem;
  min-width:0;
}

.shop-product-thumbnails{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.55rem;
}

.shop-product-thumb{
  display:grid;
  grid-template-columns:52px 1fr;
  align-items:center;
  gap:.5rem;
  min-width:0;
  padding:.45rem;
  border:1px solid #ddd;
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  font:inherit;
  text-align:left;
}

.shop-product-thumb:hover,
.shop-product-thumb.is-active{
  border-color:#f28c28;
  box-shadow:0 0 0 2px rgba(242,140,40,.12);
}

.shop-product-thumb img{
  width:52px;
  height:52px;
  object-fit:cover;
  border-radius:8px;
  background:#f4f4f4;
}

.shop-product-thumb span{
  font-weight:800;
  font-size:.82rem;
}

.shop-color-picker{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
  margin:.7rem 0 .8rem;
}

.shop-color-choice{
  min-height:60px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.55rem;
  border:1px solid #dcdcdc;
  border-radius:14px;
  background:#fff;
  cursor:pointer;
  font:inherit;
  font-weight:900;
}

.shop-color-choice:hover,
.shop-color-choice.is-active{
  border-color:#f28c28;
  box-shadow:0 0 0 2px rgba(242,140,40,.14);
}

.shop-color-choice.is-active{
  background:#fff8ef;
}

.shop-selected-color{
  margin:.35rem 0 1rem;
  color:#555;
  font-size:.9rem;
}

.shop-color-size-panel[hidden]{
  display:none !important;
}

.shop-color-size-panel{
  padding:.9rem;
  border:1px solid #e6e6e6;
  border-radius:16px;
  background:#fff;
}

.shop-product-help{
  margin:.7rem 0 0;
  color:#666;
  font-size:.9rem;
}

.shop-cart-variant{
  display:flex;
  align-items:center;
  gap:.45rem;
  color:#666;
  margin:.2rem 0 .5rem;
}

.shop-remove-inline{
  border:0;
  padding:0;
  background:transparent;
  color:#7d3d00;
  text-decoration:underline;
  cursor:pointer;
  font:inherit;
  font-size:.85rem;
}

.shop-cart-row-v121{
  align-items:flex-start;
}

@media(max-width:760px){
  .shop-product-thumbnails{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .shop-product-thumb{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }

  .shop-product-thumb img{
    width:64px;
    height:64px;
  }
}

@media(max-width:560px){
  .shop-color-picker{
    grid-template-columns:1fr;
  }

  .shop-color-choice{
    justify-content:flex-start;
    padding:0 1rem;
  }

  .shop-product-thumbnails{
    gap:.35rem;
  }

  .shop-product-thumb{
    padding:.35rem;
  }

  .shop-product-thumb img{
    width:56px;
    height:56px;
  }

  .shop-cart-row-v121{
    gap:.7rem;
  }
}

/* BOUTIQUE_MINIATURES_COMPACTES_V1_2_1_3 */

/*
 * Sélecteurs Produit / Homme / Femme :
 * miniatures volontairement compactes pour laisser la vedette
 * à la grande photo du produit.
 */
.shop-product-thumbnails{
  display:grid;
  grid-template-columns:repeat(3, 102px);
  justify-content:start;
  gap:10px;
  width:max-content;
  max-width:100%;
}

.shop-product-thumb{
  width:102px;
  min-width:102px;
  min-height:82px;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:48px auto;
  justify-items:center;
  align-items:center;
  gap:4px;
  padding:7px 6px;
  border:1px solid #dedede;
  border-radius:12px;
  background:#fff;
  box-shadow:none;
  text-align:center;
}

.shop-product-thumb:hover{
  border-color:#cfcfcf;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
}

.shop-product-thumb.is-active{
  border:2px solid #f28c28;
  padding:6px 5px;
  box-shadow:0 2px 10px rgba(242,140,40,.10);
}

.shop-product-thumb img{
  width:48px;
  height:48px;
  object-fit:cover;
  border-radius:7px;
  background:#f4f4f4;
}

.shop-product-thumb span{
  display:block;
  font-size:.76rem;
  line-height:1.05;
  font-weight:800;
  white-space:nowrap;
}

@media(max-width:560px){
  .shop-product-thumbnails{
    grid-template-columns:repeat(3, 88px);
    gap:7px;
  }

  .shop-product-thumb{
    width:88px;
    min-width:88px;
    min-height:76px;
    grid-template-rows:44px auto;
    padding:6px 4px;
    border-radius:10px;
  }

  .shop-product-thumb.is-active{
    padding:5px 3px;
  }

  .shop-product-thumb img{
    width:44px;
    height:44px;
  }

  .shop-product-thumb span{
    font-size:.71rem;
  }
}

/* BOUTIQUE_MINIATURES_CARREES_V1_2_1_4 */

/*
 * Même largeur que V1.2.1.3, mais boutons carrés.
 * L'image est en haut et le libellé vient immédiatement dessous.
 * La grille accepte naturellement une 4e vue plus tard.
 */
.shop-product-thumbnails{
  display:grid;
  grid-template-columns:repeat(auto-fit, 102px);
  justify-content:start;
  align-items:start;
  gap:10px;
  width:100%;
  max-width:100%;
}

.shop-product-thumb{
  width:102px;
  min-width:102px;
  height:102px;
  min-height:102px;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:58px auto;
  justify-items:center;
  align-items:start;
  align-content:start;
  gap:3px;
  padding:7px 6px 6px;
  border:1px solid #dedede;
  border-radius:12px;
  background:#fff;
  box-shadow:none;
  text-align:center;
  box-sizing:border-box;
}

.shop-product-thumb:hover{
  border-color:#cfcfcf;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
}

.shop-product-thumb.is-active{
  border:2px solid #f28c28;
  padding:6px 5px 5px;
  box-shadow:0 2px 10px rgba(242,140,40,.10);
}

.shop-product-thumb img{
  width:58px;
  height:58px;
  object-fit:cover;
  border-radius:7px;
  background:#f4f4f4;
}

.shop-product-thumb span{
  display:block;
  margin:0;
  padding:0;
  font-size:.76rem;
  line-height:1.05;
  font-weight:800;
  white-space:nowrap;
}

@media(max-width:560px){
  .shop-product-thumbnails{
    grid-template-columns:repeat(auto-fit, 88px);
    gap:7px;
  }

  .shop-product-thumb{
    width:88px;
    min-width:88px;
    height:88px;
    min-height:88px;
    grid-template-rows:49px auto;
    gap:2px;
    padding:5px 4px 4px;
    border-radius:10px;
  }

  .shop-product-thumb.is-active{
    padding:4px 3px 3px;
  }

  .shop-product-thumb img{
    width:49px;
    height:49px;
  }

  .shop-product-thumb span{
    font-size:.70rem;
  }
}

/* BOUTIQUE_GELATO_DRAFT_V1_3_0 */

.shop-method-choice{
  display:inline-flex;
  margin-right:.55rem;
  vertical-align:middle;
}

.shop-shipping-choice-button{
  appearance:none;
  border:0;
  border-radius:999px;
  padding:.5rem .8rem;
  background:#222;
  color:#fff;
  font:inherit;
  font-size:.82rem;
  font-weight:900;
  cursor:pointer;
}

.shop-shipping-choice-button:hover{
  opacity:.86;
}

.shop-draft-status-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  margin:1rem 0;
  padding:1rem;
  border:1px solid #e5e5e5;
  border-radius:14px;
  background:#fff;
}

.shop-draft-status-card h2{
  margin:.2rem 0 0;
}

.shop-draft-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:1rem;
}

.shop-draft-items{
  margin-top:1.2rem;
}

.shop-draft-item{
  display:grid;
  grid-template-columns:minmax(180px,260px) 1fr;
  gap:1.2rem;
  align-items:start;
  margin-top:1rem;
  padding:1rem;
  border:1px solid #e5e5e5;
  border-radius:14px;
  background:#fff;
}

.shop-draft-preview img{
  display:block;
  width:100%;
  height:auto;
  border-radius:12px;
}

.shop-draft-copy h3{
  margin-top:0;
}

.shop-design-check{
  display:grid;
  gap:.35rem;
  margin-top:1rem;
}

.shop-design-check code,
.shop-tech-value{
  overflow-wrap:anywhere;
  word-break:break-word;
}

.shop-design-check code{
  padding:.55rem .65rem;
  border-radius:8px;
  background:#f4f4f4;
  font-size:.78rem;
}

@media(max-width:700px){

  .shop-draft-grid,
  .shop-draft-item{
    grid-template-columns:1fr;
  }

  .shop-draft-status-card{
    align-items:flex-start;
    flex-direction:column;
  }

}
