.breadcrumb { display:flex; flex-wrap:wrap; gap:.65rem; padding:1.7rem 0; color:var(--muted); font-size:.9rem; }
.breadcrumb a { text-underline-offset:4px; }
.soap-hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(2rem,5vw,5.5rem); align-items:start; padding-bottom:5rem; }
.product-gallery { min-width:0; }
.product-gallery-main { margin:0; background:#ede5d8; }
.product-gallery-main img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; object-position:center; }
.product-gallery-main figcaption { background:var(--paper); padding:.6rem 0 0; color:var(--muted); font-size:.9rem; }
.gallery-options { display:flex; gap:.7rem; margin-top:1rem; }
.gallery-options button { width:82px; padding:3px; border:1px solid var(--line); background:transparent; cursor:pointer; }
.gallery-options button[aria-pressed="true"] { border:2px solid var(--forest); padding:2px; }
.gallery-options img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.gallery-options button:focus-visible { outline:2px solid var(--forest); outline-offset:4px; }
.soap-summary h1 { font-size:clamp(2.6rem,4.2vw,4.6rem); line-height:1.12; margin:1rem 0 1.3rem; max-width:10ch; }
.soap-summary>p { color:var(--muted); font-size:1.05rem; max-width:32rem; }
.soap-tags { display:flex; gap:.5rem 1rem; flex-wrap:wrap; margin:1.5rem 0 2rem; padding:0; list-style:none; font-size:.9rem; font-weight:600; color:var(--forest); }
.soap-tags li { border-bottom:1px solid #b8bdb1; padding-bottom:.3rem; }
.soap-price { border-top:1px solid var(--line); padding-top:1.2rem; display:flex; flex-direction:column; gap:.2rem; }
.soap-price strong { font-size:1.8rem; font-weight:500; }
.soap-price small { color:var(--muted); font-size:.9rem; }
.soap-summary .button { margin-top:1.3rem; width:100%; }
.soap-secondary { display:inline-block; margin-top:1.2rem; font-size:.9rem; text-underline-offset:5px; }
.soap-summary .market-note { margin:.85rem 0 0; font-size:.9rem; }
.soap-use h2,.soap-order h2,.ingredients-heading h2 { font-size:clamp(2.25rem,3.4vw,3.7rem); max-width:22ch; }
.ingredients-showcase { padding:4.5rem 0; background:#e7e9e0; }
.ingredients-heading { max-width:52rem; margin-bottom:2.5rem; }
.ingredient-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.ingredient-card { min-width:0; }
.ingredient-card figure { margin:0 0 1.35rem; background:#d7dbce; overflow:hidden; }
.ingredient-card img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; }
.ingredient-milk img { object-position:55% 62%; }
.ingredient-card .ingredient-name { margin:0 0 .6rem; color:var(--forest); text-transform:uppercase; font-size:.9rem; font-weight:700; letter-spacing:.12em; }
.ingredient-card h3 { font-size:clamp(1.45rem,2.05vw,1.9rem); line-height:1.2; margin-bottom:.8rem; }
.ingredient-card .ingredient-description { font-size:.93rem; line-height:1.75; margin:0; color:#4f5b4d; }
.ingredient-images-note { margin:1.8rem 0 0; color:var(--muted); font-size:.9rem; }
.ingredients-showcase .soap-accordion { border-color:#bfc6b7; }
.ingredient-source { font-size:.9rem; color:var(--muted); text-underline-offset:3px; }
.soap-accordion { margin-top:1.5rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.soap-accordion summary,.faq-list summary { cursor:pointer; padding:1.1rem 1.6rem 1.1rem 0; font-weight:600; font-size:.9rem; }
.soap-accordion p { font-size:.9rem; color:var(--muted); overflow-wrap:anywhere; }
.soap-accordion .inci-copy { color:var(--ink); line-height:1.9; }
.soap-use { background:var(--ivory); padding:4.5rem 0; }
.use-header { display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.use-note { font-size:.9rem; color:var(--muted); max-width:15rem; }
.use-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem; margin:2rem 0 0; padding:0; list-style:none; counter-reset:step; }
.use-steps li { counter-increment:step; border-top:1px solid var(--line); padding-top:1.2rem; }
.use-steps li::before { content:"0" counter(step); color:#788470; font-size:.9rem; }
.use-steps h3 { font-size:1.4rem; margin:1rem 0 .6rem; }
.use-steps p { font-size:.93rem; color:var(--muted); margin:0; }
.soap-faq { display:grid; grid-template-columns:1fr 1.4fr; gap:4rem; padding-block:5rem; }
.soap-faq h2 { font-size:clamp(2.2rem,3.2vw,3.5rem); }
.faq-list details { border-top:1px solid var(--line); }
.faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list p { font-size:.93rem; color:var(--muted); }
.soap-order { background:#ebe4d8; padding:4.5rem 0; }
.order-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,6rem); align-items:center; }
.order-grid>img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.order-copy>p { color:var(--muted); max-width:31rem; }
.order-copy .product-meta { margin-top:1.5rem; }
.order-copy .order-total { font-size:.9rem; color:var(--forest); margin:.6rem 0 0; }
.order-copy .order-quantity { font-size:.9rem; margin-top:.75rem; }
.soap-contact { padding-block:2rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; font-size:.9rem; text-underline-offset:5px; }
.product-image-link { display:block; }
.product-title-link { text-decoration:none; }
.product-title-link:hover { text-decoration:underline; text-underline-offset:5px; }
.learn-more { display:inline-block; margin-top:1rem; color:var(--forest); font-size:.9rem; font-weight:600; text-underline-offset:5px; }
.product-image-link img { transition:transform .35s ease; }
.product-image-link:hover img { transform:scale(1.025); }
a:focus-visible,summary:focus-visible { outline:2px solid #92734c; outline-offset:5px; }
.cart-item { grid-template-columns:100px minmax(0,1fr); }
.cart-item>div { min-width:0; }
.cart-item h3,.cart-item p { overflow-wrap:anywhere; }
.cart-remove { display:block; }
@media (max-width:900px) {
  .soap-hero { gap:2rem; }
  .soap-summary h1 { font-size:2.8rem; }
  .ingredient-cards,.use-steps { gap:1.5rem; }
  .soap-tags { gap:.5rem; }
}
@media (max-width:700px) {
  .header .brand { width:125px; }
  .header .language-control label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .breadcrumb { font-size:.9rem; padding-block:1.2rem; }
  .soap-hero { grid-template-columns:1fr; gap:2rem; padding-bottom:3.5rem; }
  .product-gallery-main img { aspect-ratio:3/2; }
  .gallery-options button { width:67px; }
  .soap-summary h1 { max-width:14ch; font-size:clamp(2.1rem,10vw,3.5rem); }
  .soap-tags { margin:1.3rem 0 1.5rem; }
  .ingredients-showcase,.soap-use,.soap-order { padding:3.3rem 0; }
  .ingredients-heading { margin-bottom:1.8rem; }
  .ingredient-cards { grid-template-columns:1fr; gap:2rem; }
  .ingredient-card figure { margin-bottom:1rem; }
  .ingredient-card img { aspect-ratio:16/9; }
  .ingredient-card h3 { font-size:1.65rem; }
  .use-steps { grid-template-columns:1fr; gap:1.5rem; margin-top:1.8rem; }
  .use-header { display:block; }
  .use-note { max-width:none; }
  .soap-faq { grid-template-columns:1fr; gap:.5rem; padding-block:3.3rem; }
  .order-grid { grid-template-columns:1fr; gap:2rem; }
  .order-grid>img { aspect-ratio:3/2; }
  .soap-contact { flex-direction:column; font-size:.9rem; }
}
@media (max-width:360px) {
  .header .brand { width:90px; }
  .header .language-control select { padding-left:.45rem; }
  .cart-item { grid-template-columns:70px minmax(0,1fr); gap:.7rem; }
  .cart-item img { width:70px; height:90px; }
  .cart-item h3 { font-size:1.1rem; }
}
@media (prefers-reduced-motion:reduce) { .product-image-link img { transition:none; } }
