:root { --forest:#173526; --ink:#202820; --paper:#f8f5ee; --ivory:#fffcf6; --muted:#3f4b3e; --line:#d9d6cc; --accent:#b89468; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; background:var(--paper); color:var(--ink); font:400 1rem/1.65 'DM Sans',Arial,sans-serif; }
    img { display:block; max-width:100%; }
    a { color:inherit; }
    button,a { -webkit-tap-highlight-color:transparent; }
    .wrap { width:min(100% - 3rem,1320px); margin-inline:auto; }
    .announcement { background:var(--forest); color:#f8f5ee; text-align:center; padding:.42rem 1rem; font-size:.9rem; letter-spacing:.12em; text-transform:uppercase; }
    .header { background:var(--ivory); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; }
    .header-inner { min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
    .brand { display:flex; align-items:center; text-decoration:none; width:216px; flex-shrink:0; }
    .brand img { width:100%; height:49px; object-fit:contain; object-position:left center; }
    .nav { display:flex; align-items:center; gap:clamp(1rem,3vw,2.8rem); }
    .nav a { text-decoration:none; font-size:.9rem; font-weight:600; letter-spacing:.025em; white-space:nowrap; }
    .nav a:hover,.nav a:focus-visible { color:#986b3a; }
    .nav .nav-feature { border:1px solid var(--forest); padding:.65rem 1.1rem; }
    .header-actions { display:flex; align-items:center; gap:1.5rem; }
    .language-control { display:flex; align-items:center; gap:.55rem; color:var(--forest); white-space:nowrap; }
    .language-control label { font-size:.9rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
    .language-control select { appearance:none; background:transparent; border:1px solid var(--line); border-radius:0; color:var(--forest); cursor:pointer; font:600 .84rem 'DM Sans',Arial,sans-serif; min-height:42px; padding:.5rem 1.75rem .5rem .7rem; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5 7 5 5 5-5' fill='none' stroke='%23173526' stroke-width='1.8'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .45rem center; background-size:1rem; }
    .language-control select:focus-visible { outline:2px solid var(--forest); outline-offset:2px; }
    .hero { display:grid; grid-template-columns:minmax(330px,.83fr) minmax(0,1.17fr); min-height:660px; background:#eee9df; }
    .hero-copy { padding:clamp(3.5rem,7vw,7rem) clamp(2rem,5vw,6rem) 4rem max(2rem,calc((100vw - 1320px)/2)); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
    .eyebrow { color:var(--forest); text-transform:uppercase; letter-spacing:.19em; font-size:.9rem; font-weight:700; line-height:1.5; }
    h1,h2,h3,p { margin-top:0; }
    h1,h2,h3 { font-family:'Playfair Display',Georgia,serif; font-weight:500; line-height:1.13; }
    h1 { font-size:clamp(3.5rem,5.35vw,6.3rem); letter-spacing:-.045em; margin:1.1rem 0 1.5rem; }
    h2 { font-size:clamp(2.6rem,4vw,4.5rem); letter-spacing:-.035em; margin:.8rem 0 1.3rem; }
    h3 { font-size:clamp(1.5rem,2vw,2.2rem); margin-bottom:.8rem; }
    .hero-copy p { max-width:34rem; color:#465348; font-size:1.08rem; line-height:1.8; }
    .button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:.76rem 1.55rem; background:var(--forest); color:white; text-decoration:none; font-size:.9rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; transition:transform .2s,background .2s; }
    .button:hover,.button:focus-visible { background:#28523b; transform:translateY(-2px); }
    .hero-copy .button { margin-top:1.25rem; }
    .hero-image { min-height:540px; position:relative; overflow:hidden; }
    .hero-image img { width:100%; height:100%; object-fit:cover; object-position:center; position:absolute; inset:0; }
    .hero-image .caption { position:absolute; right:1.3rem; bottom:1rem; background:rgba(248,245,238,.86); padding:.25rem .65rem; color:#506054; font-size:.9rem; }
    .values { background:var(--forest); color:#f8f5ee; }
    .values-inner { display:grid; grid-template-columns:repeat(3,1fr); padding:1.7rem 0; }
    .values-inner span { text-align:center; font-size:.9rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; padding:.3rem 1rem; }
    .values-inner span+span { border-left:1px solid rgba(255,255,255,.35); }
    section { scroll-margin-top:105px; }
    .section { padding:clamp(5rem,8vw,8rem) 0; }
    .intro { text-align:center; max-width:810px; margin:0 auto 3.3rem; }
    .intro p:last-child { color:var(--muted); font-size:1.07rem; }
    .product-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
    .product-card { background:var(--ivory); border:1px solid var(--line); }
    .product-card figure { margin:0; aspect-ratio:1.46; overflow:hidden; background:#e6ded1; }
    .product-card figure img { width:100%; height:100%; object-fit:cover; }
    .product-card .details { padding:2.1rem 2.2rem 2.4rem; }
    .product-card .details p { color:var(--muted); max-width:34rem; }
    .product-meta { border-top:1px solid var(--line); margin-top:1.7rem; padding-top:1.15rem; display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; }
    .product-meta strong { font-size:1.2rem; color:var(--forest); }
    .product-meta small { display:block; color:var(--muted); font-size:.9rem; }
    .badge { display:inline-block; margin-bottom:1rem; color:var(--forest); font-size:.9rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
    .note { margin-top:1.45rem; text-align:center; color:var(--muted); font-size:.9rem; }
    .story { background:#e7e6dc; }
    .story-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,7rem); align-items:center; }
    .story-visual { background:var(--ivory); padding:clamp(2rem,5vw,5rem); min-height:350px; display:grid; place-items:center; }
    .story-visual img { width:min(100%,410px); opacity:.92; }
    .story p { color:#485448; font-size:1.03rem; max-width:36rem; }
    .story .small-rule { width:54px; height:2px; background:var(--accent); margin:2rem 0; }
    .label-section { background:var(--ivory); }
    .label-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(2rem,7vw,7rem); align-items:center; }
    .label-frame { background:#f2eee5; padding:clamp(1rem,3vw,3.5rem); }
    .label-frame img { width:min(100%,450px); margin:auto; box-shadow:0 18px 35px rgba(30,45,30,.1); }
    .label-copy p { color:var(--muted); }
    .ingredients { border-top:1px solid var(--line); margin-top:2rem; padding-top:1.2rem; font-size:.93rem; line-height:1.75; }
    .ingredients strong { color:var(--forest); }
    .ingredients p { margin:.6rem 0 0; }
    .footer { background:var(--forest); color:#f7f4ed; padding:4rem 0 2rem; }
    .footer-inner { display:flex; justify-content:space-between; align-items:flex-start; gap:3rem; }
    .footer h2 { font-size:2.8rem; margin:0 0 .7rem; }
    .footer p { max-width:31rem; color:#d9e0d8; }
    .footer-social { margin-top:1.5rem; scroll-margin-top:9rem; }
    .footer .social-heading { margin:0 0 .4rem; font-size:.9rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
    .social-links { display:flex; align-items:center; gap:.65rem; }
    .social-links a { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; color:#f7f4ed; border-radius:6px; transition:background-color .18s ease; }
    .social-links a:hover { background:rgba(255,255,255,.1); }
    .social-links a:focus-visible { outline:2px solid currentColor; outline-offset:3px; background:rgba(255,255,255,.1); }
    .social-links svg { width:27px; height:27px; }
    .footer-links { display:flex; flex-direction:column; gap:.6rem; }
    .footer-links a { color:#f7f4ed; text-decoration:none; font-size:.92rem; }
    .footer-bottom { border-top:1px solid rgba(255,255,255,.24); padding-top:1.3rem; margin-top:3.5rem; font-size:.9rem; color:#c6d0c5; }
    .cart-trigger { border:1px solid var(--forest); background:var(--forest); color:white; min-height:42px; padding:.48rem .82rem; font:600 .87rem 'DM Sans',Arial,sans-serif; cursor:pointer; white-space:nowrap; }
    .cart-trigger:hover,.cart-trigger:focus-visible { background:#28503a; outline-offset:3px; }
    .cart-count { display:inline-grid; place-items:center; min-width:1.5rem; height:1.5rem; margin-left:.35rem; padding:0 .25rem; border-radius:50%; background:#f4eee3; color:var(--forest); font-size:.9rem; }
    .add-to-cart { margin-top:1.3rem; width:100%; border:1px solid var(--forest); background:var(--forest); color:white; padding:.78rem 1rem; min-height:50px; font:700 .94rem 'DM Sans',Arial,sans-serif; cursor:pointer; }
    .add-to-cart:hover,.add-to-cart:focus-visible { background:#28503a; outline-offset:3px; }
    .stock-notice { margin:1.2rem 0 0; padding:1rem 1.1rem; background:#e7e9e0; border-left:2px solid #7a8978; color:var(--forest); font-size:.9rem; line-height:1.65; }
    .stock-notice p { margin:0; }
    .stock-notice strong { display:block; margin-bottom:.3rem; font-weight:600; }
    .button:disabled,.add-to-cart:disabled { background:#e0e3d9; color:#485345; border:1px solid #bcc4b6; cursor:not-allowed; opacity:1; transform:none; }
    .button:disabled:hover,.add-to-cart:disabled:hover { background:#e0e3d9; transform:none; }
    .soap-summary>.stock-notice { max-width:none; font-size:.9rem; }
    .add-to-cart.is-added { background:#28503a; }
    .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
    .cart-dialog { width:min(100% - 1rem,490px); max-height:min(94vh,820px); margin:auto 0 auto auto; padding:0; border:0; background:var(--ivory); color:var(--ink); box-shadow:-18px 0 50px rgba(20,40,27,.17); }
    .cart-dialog::backdrop { background:rgba(15,31,19,.52); }
    .cart-panel { padding:clamp(1.2rem,4vw,2rem); display:flex; flex-direction:column; min-height:min(80vh,650px); }
    .cart-top { display:flex; justify-content:space-between; align-items:center; gap:1rem; border-bottom:1px solid var(--line); padding-bottom:1rem; }
    .cart-top h2 { font-size:2rem; margin:0; }
    .cart-close { width:42px; height:42px; border:1px solid var(--line); background:transparent; font-size:1.5rem; cursor:pointer; }
    .cart-body { flex:1; padding:1.7rem 0; }
    .cart-empty { color:var(--muted); }
    .cart-item { display:grid; grid-template-columns:100px 1fr; gap:1rem; }
    .cart-item img { width:100px; height:110px; object-fit:cover; }
    .cart-item h3 { font-size:1.35rem; margin:0 0 .3rem; }
    .cart-item p { font-size:.9rem; color:var(--muted); margin:0 0 .65rem; }
    .cart-quantity { display:flex; align-items:center; gap:.6rem; margin-top:1rem; }
    .cart-quantity button { width:36px; height:36px; background:transparent; border:1px solid var(--line); font:600 1.15rem 'DM Sans',Arial,sans-serif; cursor:pointer; }
    .cart-remove { margin-top:.8rem; padding:0; background:none; border:0; color:var(--forest); text-decoration:underline; font:500 .9rem 'DM Sans',Arial,sans-serif; cursor:pointer; }
    .cart-summary { border-top:1px solid var(--line); padding-top:1.2rem; }
    .cart-summary-line { display:flex; justify-content:space-between; gap:1rem; margin-bottom:.65rem; }
    .cart-summary-note { font-size:.9rem; color:var(--muted); line-height:1.5; margin:1rem 0; }
    .cart-summary-note strong { color:var(--ink); }
    .twint-button { display:flex; align-items:center; justify-content:center; width:100%; min-height:58px; padding:0; border:0; background:transparent; cursor:pointer; }
    .twint-button img { height:58px; width:auto; max-width:100%; }
    .twint-button:focus-visible { outline:2px solid var(--forest); outline-offset:3px; }
    .shop-legal { border-top:1px solid rgba(255,255,255,.24); padding-top:1.5rem; margin-top:2rem; display:flex; flex-wrap:wrap; gap:1.5rem 3rem; font-size:.9rem; }
    .shop-legal p { margin:0; max-width:37rem; }
    .shop-legal a { text-decoration:underline; }
    .checkout-button { display:block; width:100%; min-height:50px; border:0; background:var(--forest); color:white; font:700 .94rem 'DM Sans',Arial,sans-serif; }
    .checkout-button:disabled { background:#a8afa7; color:#283028; cursor:not-allowed; }
    @media (max-width:1140px) { .header-inner { gap:.8rem; } .header-actions { gap:.9rem; } .nav { gap:1rem; } .nav a { font-size:.9rem; } }
    @media (max-width:900px) { .hero { grid-template-columns:1fr 1fr; min-height:560px; } .hero-copy { padding:3rem; } h1 { font-size:clamp(3.3rem,6vw,5rem); } .header-inner { min-height:72px; flex-wrap:wrap; padding:.85rem 0; } .brand { width:175px; } .header-actions { width:100%; justify-content:space-between; } .nav { gap:1rem; } }
    @media (max-width:700px) { .wrap { width:min(100% - 2rem,1320px); } .announcement { font-size:.9rem; } .header-inner { gap:.55rem; } .brand { width:166px; } .brand img { height:40px; } .header-actions { display:contents; } .language-control { margin-left:auto; } .language-control label { font-size:.9rem; } .language-control select { min-height:38px; font-size:.9rem; } .cart-trigger { min-height:38px; font-size:.9rem; padding:.3rem .55rem; } .nav { order:3; width:100%; overflow-x:auto; gap:1.35rem; padding:.15rem 0 .3rem; scrollbar-width:none; } .nav::-webkit-scrollbar { display:none; } .nav a { font-size:.9rem; } .nav .nav-feature { border:0; padding:0; } .hero { display:flex; flex-direction:column; } .hero-copy { padding:4.1rem 1.5rem 3.3rem; } h1 { font-size:clamp(3.2rem,13vw,5.2rem); } .hero-image { min-height:340px; aspect-ratio:1.3; } .values-inner { padding:1.1rem 0; } .values-inner span { font-size:.9rem; letter-spacing:.05em; padding:.2rem .4rem; } .product-grid,.story-inner,.label-grid { grid-template-columns:1fr; } .product-card .details { padding:1.55rem; } .product-card figure { aspect-ratio:1.27; } .story-visual { min-height:270px; } .label-grid .label-frame { order:2; } .footer-inner { flex-direction:column; gap:1.5rem; } .footer h2 { font-size:2.4rem; } }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } }

/* Set quantities share the shop's existing forest-green and ivory palette. */
.set-selection { margin-top:1.5rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.set-selection-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.set-selection-top>span { color:var(--forest); font-size:.9rem; font-weight:600; }
.quantity-stepper { display:inline-flex; align-items:center; border:1px solid #aeb7a8; background:var(--ivory); flex-shrink:0; }
.quantity-stepper button { display:inline-grid; place-items:center; width:44px; min-height:44px; border:0; border-radius:0; background:transparent; color:var(--forest); font:500 1.35rem 'DM Sans',Arial,sans-serif; cursor:pointer; touch-action:manipulation; }
.quantity-stepper button:hover:not(:disabled) { background:#e7e9e0; }
.quantity-stepper button:disabled { color:#596353; cursor:default; }
.quantity-stepper button:focus-visible { outline:2px solid var(--forest); outline-offset:-3px; }
.quantity-stepper output { min-width:2.2rem; padding:0 .3rem; text-align:center; color:var(--forest); font-size:.95rem; font-weight:600; font-variant-numeric:tabular-nums; }
.set-selection-summary { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.4rem 1rem; margin-top:1rem; color:var(--muted); font-size:.9rem; }
.set-selection-summary strong { color:var(--forest); font-size:1.18rem; font-variant-numeric:tabular-nums; }
.set-selection .set-selection-total { margin:.45rem 0 0; color:var(--forest); font-size:.9rem; }
.set-selection .set-shipping-note { margin:.3rem 0 0; color:var(--muted); font-size:.9rem; }
.cart-item .quantity-stepper { display:flex; width:fit-content; margin-top:.85rem; }
.cart-item[hidden],.cart-empty[hidden] { display:none; }
.cart-summary-line { font-size:.92rem; }
.cart-summary-line>strong { flex-shrink:0; font-variant-numeric:tabular-nums; }
.cart-summary-line>:last-child { flex-shrink:0; white-space:nowrap; }
@media (max-width:360px) { .cart-item { grid-template-columns:65px minmax(0,1fr); gap:.7rem; } .cart-item img { width:65px; height:85px; } }
