/* All sizes remain relative to the visitor's own browser font settings. */
html { font-size:112.5%; --header-offset:11rem; }
html[data-text-size="large"] { font-size:140.625%; }
html[data-text-size="xlarge"] { font-size:168.75%; }
body { font-weight:400; line-height:1.75; }
h1,h2,h3 { font-weight:600; overflow-wrap:anywhere; }
p,dd,li,small,figcaption,a,strong,label,dt { overflow-wrap:anywhere; }
.eyebrow,.badge,.announcement,.values-inner span,.market-facts dt,.ingredient-card .ingredient-name { text-transform:none; letter-spacing:.025em; overflow-wrap:anywhere; max-width:100%; }
.hero-copy p,.story p,.label-copy p,.ingredient-card .ingredient-description { color:var(--muted); }
.product-card .details p,.ingredients,.soap-summary>p,.ingredient-card .ingredient-description,.use-steps p,.faq-list p,.soap-accordion p,.stock-notice,.soap-summary>.stock-notice,.cart-item p,.cart-summary-note { font-size:1rem; }
.button,.add-to-cart,.cart-trigger,.checkout-button { font-size:1rem; line-height:1.45; letter-spacing:.015em; text-transform:none; white-space:normal; text-align:center; max-width:100%; overflow-wrap:anywhere; }
.hero-image .caption { background:var(--ivory); color:var(--muted); }
.footer p,.footer-bottom { color:#f7f4ed; }
.values-inner span { font-size:1rem; }
.header-inner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.75rem 1.5rem; padding-block:.85rem; min-height:0; }
.header-actions { display:contents; }
.header .brand { grid-column:1; grid-row:1; width:9.5rem; }
.header .brand img { height:3rem; }
.header-tools { grid-column:2; grid-row:1; display:flex; align-items:end; justify-content:flex-end; flex-wrap:wrap; gap:.6rem 1rem; min-width:0; }
.header .language-control,.font-control { display:grid; gap:.2rem; min-width:0; margin:0; color:var(--forest); }
.header .language-control label,.font-control label { position:static; width:auto; height:auto; padding:0; margin:0; overflow:visible; clip-path:none; white-space:normal; font-size:.9rem; font-weight:600; line-height:1.4; letter-spacing:0; text-transform:none; }
.header .language-control select,.font-control select { appearance:auto; background:var(--ivory); background-image:none; color:var(--forest); border:1px solid #677562; border-radius:0; font:500 .95rem/1.4 'DM Sans',Arial,sans-serif; padding:.4rem .55rem; min-height:2.6rem; max-width:100%; width:100%; cursor:pointer; }
.header .cart-trigger { grid-column:3; grid-row:1; align-self:end; min-height:2.6rem; padding:.5rem .8rem; }
.nav { grid-column:1/-1; grid-row:2; order:0; width:100%; display:flex; justify-content:flex-end; flex-wrap:wrap; overflow:visible; gap:.35rem 1.5rem; padding:0; }
.nav a { font-size:1rem; white-space:normal; padding:.35rem 0; line-height:1.5; }
.nav .nav-feature { padding:.35rem .75rem; }
.font-control select:focus-visible,button:focus-visible,select:focus-visible { outline:3px solid var(--forest); outline-offset:3px; }
section,.market-section,.footer-social { scroll-margin-top:var(--header-offset); }
.product-grid,.order-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.product-card,.market-copy { min-width:0; }
.breadcrumb > * { min-width:0; overflow-wrap:anywhere; }
.gallery-options { flex-wrap:wrap; }
.product-meta { flex-wrap:wrap; }
.product-meta > div,.set-selection-summary > * { min-width:0; }
.market-facts > div { grid-template-columns:4.5rem minmax(0,1fr); }
.market-actions .button { font-size:1rem; }
.market-facts dt { font-weight:600; }
.market-details,.market-poster span { font-size:.95rem; }
.quantity-stepper button,.cart-close { min-width:44px; min-height:44px; }
.quantity-stepper button { width:2.6rem; flex:0 1 2.6rem; }
.quantity-stepper { max-width:100%; }
.quantity-stepper output { min-width:1.5rem; padding-inline:.1rem; }
.cart-dialog { width:min(calc(100% - 1rem),32rem); max-width:calc(100% - 1rem); max-height:calc(100dvh - 1rem); }
.cart-top { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; position:sticky; top:0; z-index:1; background:var(--ivory); }
.cart-top h2 { font-size:1.5rem; }
.cart-close { width:44px; height:44px; padding:0; font-size:1.35rem; flex-shrink:0; color:var(--forest); border-color:#677562; }
.cart-item { grid-template-columns:4rem minmax(0,1fr); }
.cart-item img { width:4rem; height:auto; }
.cart-summary-line { flex-wrap:wrap; }
.cart-summary-line > * { min-width:0; flex-shrink:1; overflow-wrap:anywhere; }
.cart-summary-line > strong { flex-shrink:1; }
.cart-summary-line > :last-child { margin-left:auto; flex-shrink:1; white-space:normal; }
.set-selection .set-selection-total,.set-selection .set-shipping-note { font-size:.95rem; }
html:not([data-text-size="standard"]) .header { position:relative; }
@media(max-width:60rem) {
  .header { position:relative; }
  .header-inner { grid-template-columns:minmax(0,1fr) auto; gap:.8rem; }
  .header .brand { width:min(9rem,100%); }
  .header .cart-trigger { grid-column:2; align-self:center; }
  .header-tools { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:.75rem; }
  .nav { grid-row:3; justify-content:flex-start; gap:.35rem 1rem; }
  .nav .nav-feature { border:0; padding:.35rem 0; }
  .hero { display:flex; flex-direction:column; }
  .hero-copy { padding:3rem 1.5rem; }
  .hero-copy h1 { font-size:clamp(2.4rem,7vw,4.5rem); }
  .hero-image { min-height:340px; }
  .product-grid,.story-inner,.label-grid,.order-grid,.soap-hero,.soap-faq { grid-template-columns:minmax(0,1fr); }
  .ingredient-cards,.use-steps { grid-template-columns:minmax(0,1fr); }
  .footer-inner { flex-direction:column; }
}
@media(max-width:30rem) {
  .wrap { width:calc(100% - 2rem); }
  .header-inner { gap:.6rem; }
  .header .brand { width:min(7rem,100%); }
  .header .cart-trigger { font-size:.95rem; padding:.4rem .55rem; }
  .header-tools { gap:.5rem; }
  html:not([data-text-size="standard"]) .header-tools { grid-template-columns:minmax(0,1fr); }
  html:not([data-text-size="standard"]) .header-inner { grid-template-columns:minmax(0,1fr); }
  html:not([data-text-size="standard"]) .header .cart-trigger { grid-column:1; grid-row:2; justify-self:start; }
  html:not([data-text-size="standard"]) .header .brand { width:7rem; }
  html:not([data-text-size="standard"]) .header-tools { grid-row:3; }
  html:not([data-text-size="standard"]) .nav { grid-row:4; }
  .nav { gap:.25rem .8rem; }
  .hero-copy { padding:2.5rem 1rem; }
  h2 { font-size:2rem; }
  .market-copy h2,.soap-summary h1,.soap-faq h2,.soap-use h2,.soap-order h2,.ingredients-heading h2 { font-size:2rem; }
  .values-inner { grid-template-columns:minmax(0,1fr); gap:.6rem; }
  .values-inner span + span { border-left:0; }
  .market-card { padding:1.1rem; }
  .market-card { grid-template-columns:minmax(0,1fr); }
  .market-facts > div { grid-template-columns:minmax(0,1fr); gap:.15rem; }
  .market-actions { flex-direction:column; }
  .market-actions .button { width:100%; }
  .product-card .details { padding:1.1rem; }
  .cart-panel { padding:1rem; }
  .cart-item { grid-template-columns:minmax(0,1fr); }
  .cart-item img { width:4rem; }
  .cart-item .quantity-stepper { max-width:100%; }
}
