/* ==========================================================================
   Maison — minimalist single product page
   Loewe-inspired: one hero image, quiet info panel, accordion details
   ========================================================================== */

.maison-product{
  --ink:#141412;
  --paper:#ffffff;
  --line:#e4e2db;
  --line-strong:#c9c6bb;
  --muted:#7a7870;
  font-family:"Helvetica Neue",Arial,sans-serif;
  color:var(--ink);
  max-width:1440px;
  margin:0 auto;
  padding:24px 0 0;
}

.maison-product-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,0.75fr);
  align-items:start;
}

/* ---- media column: hero image, then gallery images in a 2-up grid ---- */
.maison-media{
  padding:0 px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.maison-media-img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
/* First image (the featured/main image) spans both columns, full width. */
.maison-media-img:first-child{
  grid-column:1 / -1;
  aspect-ratio:4/5;
}
/* Gallery images sit two-up beneath it, in the order added. */
.maison-media-img:not(:first-child){
  aspect-ratio:3/4;
}

/* ---- info panel ---- */
.maison-summary{
  position:sticky;
  top:24px;
  padding:0 48px 60px 24px;
}

.maison-eyebrow{
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#b3a48c;
  margin:0 0 10px;
}

.maison-summary .product_title{
  font-size:26px;
  font-weight:400;
  line-height:1.3;
  margin:0 0 6px;
  letter-spacing:.2px;
}

.maison-ref{
  font-size:11px;
  color:var(--muted);
  letter-spacing:.5px;
  margin:0 0 22px;
}

.maison-summary .price{
  font-size:16px;
  font-weight:400;
  margin:0 0 28px;
  color:var(--ink);
}
.maison-summary .price ins{
  text-decoration:none;
}
.maison-summary .price del{
  color:var(--muted);
  margin-right:8px;
}

/* ---- variations / size swatches ----
   Works with WooCommerce's default variation <select>; if Elessi renders
   button-style swatches already, this just re-skins them to match. */
.maison-summary table.variations{
  width:100%;
  margin:0 0 20px;
}
.maison-summary table.variations label{
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  display:block;
  margin-bottom:12px;
}
.maison-summary table.variations select{
  width:100%;
  height:44px;
  border:1px solid var(--line-strong);
  background:transparent;
  padding:0 12px;
  font-size:13px;
}

/* ---- add to cart button ---- */
.maison-summary .single_add_to_cart_button{
  width:100%;
  padding:16px 18px;
  background:var(--ink);
  color:var(--paper);
  border:none;
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  cursor:pointer;
  margin-bottom:12px;
  transition:opacity .15s ease;
}
.maison-summary .single_add_to_cart_button:hover{
  opacity:.85;
}
.maison-summary .quantity{
  display:none; /* single-item purchase, quiet layout; remove this rule to show a qty stepper */
}

.maison-note{
  font-size:11px;
  color:var(--muted);
  margin:18px 0 0;
  letter-spacing:.3px;
  line-height:1.6;
}

/* ---- accordion ---- */
.maison-accordion{
  border-top:1px solid var(--line);
  margin-top:32px;
}
.maison-acc-item{
  border-bottom:1px solid var(--line);
}
.maison-acc-head{
  width:100%;
  background:none;
  border:none;
  text-align:left;
  padding:16px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
  cursor:pointer;
  color:var(--ink);
}
.maison-plus{
  font-size:16px;
  font-weight:300;
  transition:transform .2s ease;
}
.maison-acc-item.is-open .maison-plus{
  transform:rotate(45deg);
}
.maison-acc-body{
  max-height:0;
  overflow:hidden;
  transition:max-height .25s ease;
  font-size:13px;
  line-height:1.7;
  color:var(--muted);
}
.maison-acc-item.is-open .maison-acc-body{
  max-height:400px;
}
.maison-acc-body-inner{
  padding:0 0 18px;
}
.maison-acc-body-inner table{
  width:100%;
  font-size:13px;
}
.maison-acc-body-inner table th{
  text-align:left;
  font-weight:400;
  color:var(--ink);
  padding:4px 12px 4px 0;
}
.maison-acc-body-inner table td{
  padding:4px 0;
}

/* ---- responsive ---- */
@media (max-width:860px){
  .maison-product{
    padding:14px 0 0;
  }
  .maison-product-grid{
    grid-template-columns:1fr;
  }
  .maison-media{
    padding:0 12px;
    gap:4px;
  }
  .maison-summary{
    position:static;
    padding:20px 16px 32px;
  }

  .maison-eyebrow{
    font-size:10px;
    letter-spacing:1.5px;
    margin:0 0 6px;
  }
  .maison-summary .product_title{
    font-size:19px;
    margin:0 0 4px;
  }
  .maison-ref{
    font-size:10px;
    margin:0 0 14px;
  }
  .maison-summary .price{
    font-size:14px;
    margin:0 0 18px;
  }

  .maison-summary table.variations label{
    font-size:10px;
    margin-bottom:9px;
  }
  .maison-summary table.variations select{
    height:40px;
    font-size:12px;
  }

  .maison-summary .single_add_to_cart_button{
    padding:13px 16px;
    font-size:11px;
    letter-spacing:1.5px;
    margin-bottom:9px;
  }
  .maison-note{
    font-size:10px;
    margin:14px 0 0;
  }

  .maison-accordion{
    margin-top:22px;
  }
  .maison-acc-head{
    padding:13px 0;
    font-size:11px;
  }
  .maison-acc-body{
    font-size:12px;
  }
  .maison-acc-item.is-open .maison-acc-body{
    max-height:320px;
  }
  .maison-acc-body-inner{
    padding:0 0 14px;
  }
}

@media (max-width:420px){
  .maison-summary .product_title{
    font-size:17px;
  }
}

/* ---- related products ---- */
.maison-related{
  max-width:100%;
  margin:0 auto;
  padding:0px;
  border-top:1px solid var(--line);
}
.maison-related-heading{
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
  margin:32px 0 24px;
  text-align:center;
}
.maison-related ul.products{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px 24px;
  list-style:none;
  margin:0;
  padding:0;
}
.maison-related ul.products li.product{
  margin:0;
  text-align:left;
}
.maison-related ul.products li.product a{
  text-decoration:none;
  color:var(--ink);
  display:block;
}
.maison-related ul.products li.product img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  display:block;
  margin:0 0 12px;
}
.maison-related ul.products li.product .woocommerce-loop-product__title{
  font-size:12px;
  font-weight:400;
  letter-spacing:.3px;
  margin:0 0 4px;
  line-height:1.4;
}
.maison-related ul.products li.product .price{
  font-size:12px;
  color:var(--muted);
}
.maison-related ul.products li.product .button{
  display:none;
}
@media (max-width:860px){
  .maison-related{
    padding:36px 16px 44px;
  }
  .maison-related-heading{
    font-size:10px;
    margin:22px 0 16px;
  }
  .maison-related ul.products{
    grid-template-columns:repeat(2,1fr);
    gap:20px 12px;
  }
  .maison-related ul.products li.product .woocommerce-loop-product__title,
  .maison-related ul.products li.product .price{
    font-size:11px;
  }
}

/* ---- image popup / lightbox ---- */
.maison-media-img{
  cursor:zoom-in;
}
.maison-lightbox{
  position:fixed;
  inset:0;
  background:rgba(20,20,18,.94);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:24px;
}
.maison-lightbox.is-active{
  display:flex;
}
.maison-lightbox-stage{
  position:relative;
  width:min(900px,92vw);
  max-height:88vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.maison-lightbox-stage img{
  max-width:100%;
  max-height:88vh;
  object-fit:contain;
  display:block;
}
.maison-lightbox-close{
  position:absolute;
  top:18px;
  right:18px;
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.5);
  background:transparent;
  color:#fff;
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
.maison-lightbox-close:hover{
  border-color:#fff;
}
.maison-lightbox-nav{
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.5);
  background:transparent;
  color:#fff;
  font-size:20px;
  cursor:pointer;
  z-index:10000;
}
.maison-lightbox-nav:hover{
  border-color:#fff;
}
.maison-lightbox-prev{
  left:18px;
}
.maison-lightbox-next{
  right:18px;
}
.maison-lightbox-count{
  position:fixed;
  bottom:20px;
  left:50%;
  transform:translateX(-50%);
  font-size:11px;
  letter-spacing:1px;
  color:#fff;
  z-index:10000;
}
@media (max-width:640px){
  .maison-lightbox-prev{
    left:8px;
  }
  .maison-lightbox-next{
    right:8px;
  }
}
