/* Product page — from template/product.html */
/* ---- Product page layout ---- */
  .product-layout{ display:grid; gap: var(--space-7); padding-block: var(--space-4) var(--space-9); }
  @media (min-width:960px){ .product-layout{ grid-template-columns: 1.1fr 1fr; gap: var(--space-9); align-items:start; } }

  /* Gallery */
  .gallery__main{
    aspect-ratio: 1/1;
    border-radius: var(--radius-lg);
    background: linear-gradient(155deg, #F1E9DA 0%, #E2D1AC 100%);
    display:flex; align-items:center; justify-content:center;
    padding: 10%;
    margin-bottom: var(--space-4);
    position:relative;
    overflow:hidden;
  }
  .gallery__main .bottle-placeholder{ width:52%; animation: floaty 8s var(--ease-in-out) infinite; }
  .gallery__thumbs{ display:grid; grid-template-columns: repeat(4,1fr); gap: var(--space-3); }
  .gallery__thumbs button{
    aspect-ratio:1/1; border-radius: var(--radius-md); overflow:hidden;
    background: linear-gradient(155deg,#F1E9DA,#E7DAC0);
    border:2px solid transparent; padding:14%;
    transition: border-color var(--dur-fast) var(--ease-out);
  }
  .gallery__thumbs button.is-active, .gallery__thumbs button:hover{ border-color: var(--color-gold); }

  /* Info column */
  .product-info__brand{ font-size: var(--fs-xs); letter-spacing:0.12em; text-transform:uppercase; color: var(--color-gold); }
  .product-info__brand a:hover{ text-decoration:underline; }
  .product-info h1{ font-size: var(--fs-2xl); margin-block: var(--space-2) var(--space-3); }
  .product-info__sku{ font-size: var(--fs-xs); color: var(--fg-muted); margin-bottom: var(--space-4); }
  .product-info__desc{ color: var(--fg-muted); max-width: 54ch; margin-bottom: var(--space-6); text-align: left !important; }
.product-info__desc p,
.product-info__desc span,
.product-info__desc div{ text-align: left !important; margin: 0 0 0.75em; }
.product-info__desc p:last-child{ margin-bottom: 0; }
.product-info{ text-align: left; }
  .desc-placeholder{
    border: 1px dashed var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    font-size: var(--fs-sm);
    font-style: italic;
    color: var(--fg-muted);
    max-width: 54ch;
    margin-bottom: var(--space-6);
  }
  .product-info__price{ display:flex; align-items:baseline; gap: var(--space-3); font-size: var(--fs-xl); font-weight:600; font-variant-numeric: tabular-nums; margin-bottom: var(--space-6); }
  .product-info__price .unit{ font-size: var(--fs-xs); font-weight:400; color: var(--fg-muted); }

  .option-group{ display:grid; gap: var(--space-3); margin-bottom: var(--space-6); }
  .option-card{
    display:flex; align-items:center; justify-content:space-between; gap: var(--space-4);
    border:1px solid var(--border); border-radius: var(--radius-md);
    padding: var(--space-4); cursor:pointer;
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
  }
  .option-card:hover{ border-color: var(--color-ink); }
  .option-card.is-selected{ border-color: var(--color-gold); box-shadow: 0 0 0 1px var(--color-gold); }
  .option-card__radio{ width:20px; height:20px; border-radius:50%; border:1.5px solid var(--border); flex-shrink:0; position:relative; }
  .option-card.is-selected .option-card__radio{ border-color: var(--color-gold); }
  .option-card.is-selected .option-card__radio::after{ content:""; position:absolute; inset:3px; border-radius:50%; background: var(--color-gold); }
  .option-card__label{ display:flex; align-items:center; gap: var(--space-3); flex:1; }
  .option-card__name{ font-weight:600; font-size: var(--fs-sm); }
  .option-card__note{ font-size: var(--fs-xs); color: var(--fg-muted); }
  .option-card__price{ font-weight:600; font-variant-numeric: tabular-nums; white-space:nowrap; }
  .option-card__badge{ font-size: var(--fs-2xs); text-transform:uppercase; letter-spacing:0.06em; background: var(--color-gold-tint); color: var(--color-gold); padding: 3px 8px; border-radius: var(--radius-pill); margin-left: var(--space-2); }

  .qty-add-row{ display:flex; gap: var(--space-3); margin-bottom: var(--space-5); }
  .qty-stepper{ display:flex; align-items:center; border:1px solid var(--border); border-radius: var(--radius-sm); height:52px; }
  .qty-stepper button{ width:44px; height:100%; font-size:1.1rem; }
  .qty-stepper input{ width:40px; text-align:center; border:none; height:100%; -moz-appearance:textfield; }
  .qty-stepper input::-webkit-outer-spin-button, .qty-stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
  .qty-add-row .btn{ flex:1; height:52px; }

  .trust-row{ display:flex; flex-direction:column; gap: var(--space-3); padding: var(--space-5) 0; border-top:1px solid var(--border); margin-bottom: var(--space-2); }
  .trust-item{ display:flex; align-items:center; gap: var(--space-3); font-size: var(--fs-sm); color: var(--fg-muted); }
  .trust-item svg{ width:20px; height:20px; stroke: var(--color-gold); flex-shrink:0; }

  /* Accordion */
  .accordion{ border-top:1px solid var(--border); }
  .accordion-item{ border-bottom:1px solid var(--border); }
  .accordion-item__trigger{
    width:100%; display:flex; align-items:center; justify-content:space-between;
    padding: var(--space-5) 0; font-family: var(--font-body); font-weight:600; font-size: var(--fs-sm); text-align:left;
  }
  .accordion-item__trigger svg{ width:16px; height:16px; transition: transform var(--dur-base) var(--ease-out); flex-shrink:0; }
  .accordion-item.is-open .accordion-item__trigger svg{ transform: rotate(45deg); }
  .accordion-item__panel{ max-height:0; overflow:hidden; transition: max-height var(--dur-slow) var(--ease-out); }
  .accordion-item__panel-inner{ padding-bottom: var(--space-5); color: var(--fg-muted); font-size: var(--fs-sm); max-width:60ch; }

  /* Fragrance pyramid */
  .pyramid{ background: var(--color-ink-bg); color: var(--color-on-ink); border-radius: var(--radius-lg); padding: var(--space-7) var(--space-5); }
  .pyramid__tabs{ display:flex; gap: var(--space-2); margin-bottom: var(--space-6); flex-wrap:wrap; }
  .pyramid__tabs button{
    padding: 10px 18px; border-radius: var(--radius-pill); font-size: var(--fs-xs); letter-spacing:0.04em;
    border:1px solid rgba(245,239,228,0.25); color: var(--color-on-ink-mute);
    transition: background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
  }
  .pyramid__tabs button.is-active{ background: var(--color-gold); color: var(--color-ink); border-color: var(--color-gold); }
  .pyramid__panel{ display:none; }
  .pyramid__panel.is-active{ display:block; }
  .note-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: var(--space-4); margin-bottom: var(--space-7); }
  .note-chip{ text-align:center; }
  .note-chip__dot{
    width:64px; height:64px; border-radius:50%; margin:0 auto var(--space-3);
    background: radial-gradient(circle at 35% 30%, #C9A874, #7A5A2B);
    overflow:hidden;
  }
  .note-chip__dot img{ width:100%; height:100%; object-fit:cover; display:block; }
  .note-chip__dot--has-image{ background:#2a241c; box-shadow:0 0 0 1px rgba(245,239,228,0.12); }
  .note-chip__name{ font-size: var(--fs-sm); }
  .accord-bar{ display:flex; flex-direction:column; gap: var(--space-2); }
  .accord-bar__row{ display:flex; justify-content:space-between; font-size: var(--fs-xs); color: var(--color-on-ink-mute); }
  .accord-bar__track{ height:6px; border-radius: var(--radius-pill); background: rgba(245,239,228,0.12); overflow:hidden; }
  .accord-bar__fill{ height:100%; background: linear-gradient(90deg, var(--color-gold-soft), var(--color-gold)); border-radius: var(--radius-pill); }

  /* Linear architecture module — no top/heart/base layers, notes read as one cluster sized by intensity */
  .linear-lede{ color: var(--color-on-ink-mute); font-size: var(--fs-sm); max-width:52ch; margin-bottom: var(--space-6); }
  .linear-cluster{ display:flex; flex-wrap:wrap; align-items:center; gap: var(--space-3); margin-bottom: var(--space-7); }
  .linear-note{
    display:inline-flex; align-items:center; gap:8px;
    border:1px solid rgba(245,239,228,0.25); border-radius: var(--radius-pill);
    color: var(--color-on-ink);
  }
  .linear-note__dot{ border-radius:50%; background: radial-gradient(circle at 35% 30%, #C9A874, #7A5A2B); flex-shrink:0; }
  .linear-note--high{ padding: 14px 22px; font-size: var(--fs-md); font-weight:600; }
  .linear-note--high .linear-note__dot{ width:14px; height:14px; }
  .linear-note--medium{ padding: 10px 18px; font-size: var(--fs-sm); }
  .linear-note--medium .linear-note__dot{ width:10px; height:10px; }
  .linear-note--low{ padding: 8px 14px; font-size: var(--fs-xs); opacity:0.75; }
  .linear-note--low .linear-note__dot{ width:7px; height:7px; }

  /* Cross-sell */
  .crosssell-card{ display:flex; align-items:center; gap: var(--space-4); border:1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-4); }
  .crosssell-card__frame{ width:76px; height:76px; flex-shrink:0; border-radius: var(--radius-sm); background: linear-gradient(155deg,#F1E9DA,#E7DAC0); display:flex; align-items:center; justify-content:center; padding:10%; }
  .crosssell-card__body{ flex:1; min-width:0; }
  .crosssell-card__body h4{ font-family:var(--font-body); font-size: var(--fs-sm); font-weight:600; }
  .crosssell-card__body span{ font-size: var(--fs-xs); color: var(--fg-muted); }
  .crosssell-card__add{ width:40px; height:40px; border-radius:50%; border:1px solid var(--color-ink); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition: background var(--dur-fast), color var(--dur-fast); }
  .crosssell-card__add:hover{ background: var(--color-ink); color: var(--color-on-ink); }

  /* Sticky mobile add-to-cart */
  .sticky-cta{
    position: fixed; left:0; right:0; bottom:0; z-index: var(--z-nav);
    background: rgba(250,246,239,0.95); backdrop-filter: blur(10px);
    border-top:1px solid var(--border);
    padding: var(--space-3) var(--space-4);
    display:flex; align-items:center; gap: var(--space-4);
    padding-bottom: max(var(--space-3), env(safe-area-inset-bottom));
  }
  .sticky-cta__price{ font-weight:600; font-variant-numeric: tabular-nums; white-space:nowrap; }
  .sticky-cta .btn{ flex:1; }
  @media (min-width:960px){ .sticky-cta{ display:none; } }
  .product-info{ padding-bottom: var(--space-6); }
  @media (max-width:959px){ .product-info{ padding-bottom: 96px; } }

/* ---- WooCommerce form → mockup qty/add ---- */
.product-info .cart {
  display: flex;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  align-items: stretch;
  flex-wrap: wrap;
}
.product-info .quantity {
  display: flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  height: 52px;
  margin: 0;
}
.product-info .quantity .qty {
  width: 48px;
  text-align: center;
  border: none;
  height: 100%;
  background: transparent;
  -moz-appearance: textfield;
}
.product-info .quantity .qty::-webkit-outer-spin-button,
.product-info .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.product-info .single_add_to_cart_button,
.product-info .cart .button {
  flex: 1;
  min-width: 160px;
  height: 52px;
  margin: 0 !important;
  border: none;
  border-radius: var(--radius-sm);
  background: var(--color-ink);
  color: var(--color-on-ink);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--fs-sm);
  letter-spacing: 0.02em;
  cursor: pointer;
}
.product-info .single_add_to_cart_button:hover { opacity: 0.92; }
.product-info .stock { font-size: var(--fs-xs); color: var(--fg-muted); margin-bottom: var(--space-3); width: 100%; }

/* Variable product selects when not using cards */
.product-info .variations { width: 100%; margin-bottom: var(--space-5); border:0; }
.product-info .variations th,
.product-info .variations td { padding: var(--space-2) 0; text-align: left; border:0; vertical-align: middle; }
.product-info .variations select {
  width: 100%; height: 48px; padding-inline: var(--space-3);
  border:1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg);
}
.product-info .variations.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

.gallery__main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  position: absolute;
  inset: 0;
  padding: 8%;
}
.gallery__thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.gallery__thumbs button { padding: 0; }

.product-card__frame .product-card__img--hover { z-index: 2; }

/* Related products (Woo default) */
.related.products,
.upsells.products {
  padding-block: var(--space-8);
  border-top: 1px solid var(--border);
  margin-top: var(--space-7);
}
.related.products > h2,
.upsells.products > h2 {
  font-family: var(--font-display);
  font-size: var(--fs-xl);
  margin-bottom: var(--space-6);
}
.related.products ul.products,
.upsells.products ul.products,
ul.products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5) var(--space-4);
  list-style: none;
  margin: 0;
  padding: 0;
  float: none !important;
  width: 100% !important;
  max-width: 100%;
}
@media (min-width:600px) {
  .related.products ul.products,
  .upsells.products ul.products,
  ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width:1024px) {
  .related.products ul.products,
  .upsells.products ul.products,
  ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.related.products ul.products::before,
.related.products ul.products::after,
ul.products::before,
ul.products::after { display: none !important; content: none !important; }
.woocommerce-pagination {
  margin-top: var(--space-7);
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-2);
}
.woocommerce-pagination ul {
  display: flex !important;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}
.woocommerce-pagination li {
  display: inline-flex;
  float: none !important;
  margin: 0 !important;
  width: auto !important;
}
.woocommerce-pagination a,
.woocommerce-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: var(--fs-sm);
}
.woocommerce-pagination .current {
  background: var(--color-ink);
  color: var(--color-on-ink);
  border-color: var(--color-ink);
}

/* Shop loop result count / orderby */
.woocommerce-result-count { font-size: var(--fs-sm); color: var(--fg-muted); }
.woocommerce-ordering select {
  height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding-inline: var(--space-3);
  background: var(--bg);
  font-family: var(--font-body);
  font-size: var(--fs-sm);
}
.woocommerce-products-header__title { font-size: var(--fs-2xl); }

