/* Line 32006 (condense U1): THE ONE block's theme. A site changes only these custom properties (set on .sc-page, the site's
   own sheet); it never restyles the block's layout, its controls or their order (resources/data/one-container-census.json
   the_one.theme_tokens):
     --sc-bg               her container's background            --sc-surface, --sc-surface-raised   cards and raised rows
     --sc-ink              her words                             --sc-ink-strong                     headings, focus rings
     --sc-text-2           second-line words                     --sc-muted                          quiet words
     --sc-border           control borders                       --sc-hairline                       her container's edges
     --sc-sans             her words' face                       --sc-serif                          her headings' face
     --sc-on-dark          words on her bright buttons           --sc-accent                         links, her edges' line
     --sc-accent-bright    the one bright Talk pill              --sc-talk, --sc-talk-soft           her talk bar and its wave
     --sc-panel-top        (set by the block) where her container starts under her face
   Everything else in shop-concierge/*.css is the block's own. */
/* Line 31205: the template's two faces served beside this sheet (fonts/), never from a third-party host: the first paint
   waits for no other origin, and the CDN carries them with the page. Inter and Cormorant Garamond, SIL Open Font License
   (fonts/OFL.txt); the variable files and unicode ranges Google Fonts served the template, so every language draws as before. */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/cormorant-garamond-latin.d80df8ff5aec.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/cormorant-garamond-latin-ext.cfa9a397d86f.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/cormorant-garamond-vietnamese.6252e819a766.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/cormorant-garamond-cyrillic.017fab69b4be.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/cormorant-garamond-cyrillic-ext.a4d7cf345b80.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/inter-latin.3100e775e861.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/inter-latin-ext.34b9c504cab7.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/inter-vietnamese.5c66f9e07e90.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/inter-cyrillic.71d5ee93cc1e.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/inter-cyrillic-ext.ca157063339a.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/inter-greek.1be3448e292f.woff2) format('woff2'); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 600; font-display: swap; src: url(fonts/inter-greek-ext.6e9e020a25f9.woff2) format('woff2'); unicode-range: U+1F00-1FFF; }
/* Line 30721: shop concierge base (PAGES builder): tokens, page, promo, header, categories, hero, kits, Meet bar, order page.
   Mobile first (375 px), flat with hairlines, no shadows. The LEAD concatenates base, sheet, cards, host into
   /css/shop-concierge.css in that order. */

:root {
  --sc-bg:#fbf9f7; --sc-surface:#fefefc; --sc-surface-raised:#fffffb; --sc-suggest-bg:#fdfbf7;
  --sc-ink:#1c1d16; --sc-ink-strong:#14140e; --sc-muted:#7b7a74; --sc-muted-2:#8b8985; --sc-faint:#939289; --sc-placeholder:#898a83;
  --sc-hairline:#eceae8; --sc-border:#e3e3e1; --sc-border-input:#e2e1dc;
  --sc-forest:#344336; --sc-olive-btn:#404635; --sc-olive:#5c6b46; --sc-badge-green:#4e6937; --sc-save-green:#6f7957;
  --sc-sage:#eff4e8; --sc-sage-border:#e5e9df; --sc-sage-ink:#6a7061; --sc-wave:#7c8665; --sc-send-off:#e6ecdf; --sc-send-off-ink:#c6ccbf;
  --sc-sage-card:#f6f7ed; --sc-sage-card-border:#e2e3d9; --sc-sage-box:#f0f4e8; --sc-sage-box-border:#e9eae1;
  --sc-bubble:#efefe8; --sc-chip:#edecde; --sc-caption:#f0ede0; --sc-preview-head:#efebde; --sc-preview-body:#f2eee6;
  --sc-tile:#f0efe6; --sc-sparkle:#8e8d7b; --sc-strike:#7f8070; --sc-spinner:#959591; --sc-spinner-track:#e2e2de;
  --sc-on-dark:#f6f5ef; --sc-on-dark-2:#e6e8e0;
  --sc-serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sc-sans:"Inter","Instrument Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  /* page-only helpers (PAGES) */
  --sc-text-2:#6b6a64;           /* small text on --sc-bg at >= 4.5:1 (the reference's #8b8985 is decoration-size only) */
  --sc-promo-ink:#f3f2ec;
  --sc-thumb:#efeee6;
  --sc-meet-h:64px;
  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
  :root {
    --sc-bg:#151812; --sc-surface:#1c2019; --sc-surface-raised:#20241d; --sc-suggest-bg:#1b1f18;
    --sc-ink:#ecebe3; --sc-ink-strong:#f5f4ec; --sc-muted:#b4b2a8; --sc-muted-2:#a9a79d; --sc-faint:#9d9b92; --sc-placeholder:#94938a;
    --sc-hairline:#2b2f27; --sc-border:#33382e; --sc-border-input:#3a3f34;
    --sc-forest:#26322a; --sc-olive-btn:#5b6649; --sc-olive:#7d8f5f; --sc-badge-green:#5f7d45; --sc-save-green:#a9b48c;
    --sc-sage:#232a1f; --sc-sage-border:#323a2c; --sc-sage-ink:#bcc3b0; --sc-wave:#a3ad8a; --sc-send-off:#2a3025; --sc-send-off-ink:#5e6656;
    --sc-sage-card:#1f241b; --sc-sage-card-border:#343a2e; --sc-sage-box:#222a1e; --sc-sage-box-border:#343b2f;
    --sc-bubble:#2a2c25; --sc-chip:#2c2d24; --sc-caption:#2b2a22; --sc-preview-head:#2a2920; --sc-preview-body:#24231c;
    --sc-tile:#262820; --sc-sparkle:#b7b59f; --sc-strike:#9a9b8b; --sc-spinner:#9a9a95; --sc-spinner-track:#33362f;
    --sc-on-dark:#f6f5ef; --sc-on-dark-2:#dfe2d8;
    --sc-text-2:#b0aea4;
    --sc-thumb:#24271f;
  }
}

/* ---- page ---- */
.sc-page, .sc-page *, .sc-page *::before, .sc-page *::after { box-sizing: border-box; }
html:has(> body.sc-page) { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body.sc-page {
  margin: 0; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column;
  background: var(--sc-bg); color: var(--sc-ink);
  font: 400 15px/1.5 var(--sc-sans);
  -webkit-font-smoothing: antialiased; overflow-x: clip;
}
/* Resets at zero weight (:where), so every component class (.sc-img, .sc-card__title, ...) wins over them. */
:where(.sc-page) :where(img, svg) { max-width: 100%; }
:where(.sc-page) img { display: block; height: auto; }
:where(.sc-page) :where(h1, h2, h3, p, ul) { margin: 0; }
:where(.sc-page) ul { padding: 0; list-style: none; }
:where(.sc-page) a { color: inherit; }
:where(.sc-page) button { font: inherit; color: inherit; }
.sc-page :focus-visible { outline: 2px solid var(--sc-olive); outline-offset: 2px; }
.sc-main { flex: 1 0 auto; min-width: 0; }
.sc-eyebrow {
  font: 500 13px/16px var(--sc-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--sc-text-2);
}
.sc-link {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 2px; border: 0; background: none; cursor: pointer;
  color: var(--sc-ink); text-decoration: underline; text-underline-offset: 3px; font: 500 14px/20px var(--sc-sans);
}
/* Line 30980: a number or link inside her words stays in her sentence (her own type, no gap before the comma);
   the padding grows the tap area without moving the line, and a long link wraps on a phone */
.sc-said-link {
  color: var(--sc-ink); text-decoration: underline; text-underline-offset: 3px; font: inherit;
  padding: 10px 0; overflow-wrap: anywhere;
}

/* ---- promo strip ---- */
.sc-promo { background: var(--sc-forest); color: var(--sc-promo-ink); min-height: 28px; display: flex; align-items: center; padding: 0 12px; }
.sc-promo__text {
  /* Line 30980: 13 px type floor; the shipping promo wraps to a second line rather than cut */
  width: 100%; text-align: center; font: 400 13px/16px var(--sc-sans); letter-spacing: .01em;
  white-space: normal; padding: 6px 0;
}

/* ---- header ---- */
.sc-header {
  display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; column-gap: 4px;
  min-height: 72px; padding: 0 12px 0 10px; background: var(--sc-bg); border-bottom: 1px solid var(--sc-hairline);
}
.sc-header__menu {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--sc-ink);
}
.sc-wordmark {
  justify-self: center; min-width: 0; max-width: 100%; text-decoration: none; color: var(--sc-ink-strong);
  font: 500 22px/1 var(--sc-serif); letter-spacing: .08em; white-space: nowrap; overflow: hidden; text-overflow: clip;
  padding: 10px 0;
}
.sc-header__end { display: flex; align-items: center; gap: 6px; min-width: 0; }
/* line 31005: the store's EN | ES switch: two small words, the picked one strong and underlined; each a full-height tap target */
.sc-lang { display: inline-flex; align-items: center; flex: none; }
.sc-lang__pick {
  display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 44px; padding: 0 4px; margin: 0;
  border: 0; background: none; cursor: pointer; color: var(--sc-ink); font: 400 13px/16px var(--sc-sans); letter-spacing: .04em;
}
.sc-lang__pick + .sc-lang__pick { background: linear-gradient(var(--sc-hairline), var(--sc-hairline)) left center / 1px 14px no-repeat; }
.sc-lang__pick[aria-pressed="true"] { color: var(--sc-ink-strong); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.sc-lang__pick:focus-visible { outline: 2px solid currentColor; outline-offset: -4px; border-radius: 6px; }
.sc-bag {
  position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 44px;
  padding: 0; border: 0; background: none; cursor: pointer; color: var(--sc-ink);
}
.sc-bag__count {
  position: absolute; top: 6px; right: 1px; min-width: 9px; font: 500 13px/1 var(--sc-sans); color: var(--sc-ink); text-align: left;
}
.sc-who { display: flex; flex-direction: column; justify-content: center; min-width: 0; max-width: 84px; line-height: 1.2; }
.sc-who__name {
  font: 400 13px/17px var(--sc-sans); color: var(--sc-text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sc-who__state { font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); white-space: nowrap; }
.sc-who__signin {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 4px; font: 400 13px/17px var(--sc-sans);
  color: var(--sc-ink); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap;
}

/* ---- categories: line 31083 CHANGES 21 (Michael: a thin, uncluttered top on phones): on a phone ONE row that scrolls
   sideways under a soft edge fade, never two or three rows that push the hero down (the menu still opens every category) ---- */
.sc-cats { background: var(--sc-bg); padding: 2px 0; }
.sc-cats__list {
  display: flex; flex-wrap: nowrap; column-gap: 20px; margin: 0; padding: 0 20px; list-style: none;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 14px, #000 calc(100% - 32px), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 14px, #000 calc(100% - 32px), transparent 100%);
}
.sc-cats__list::-webkit-scrollbar { display: none; }
.sc-cats__item { flex: none; min-width: 0; display: flex; scroll-snap-align: start; scroll-margin-inline: 20px; }
.sc-cats__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 2px;
  font: 400 13px/16px var(--sc-sans); color: var(--sc-ink); text-decoration: none; text-align: center; white-space: nowrap;
}
.sc-cats__link:hover { text-decoration: underline; text-underline-offset: 4px; }
/* line 31111 CHANGES 2(d) (the testers on the Spanish LORENTZ store: "Buscar una pieza" ran off the phone's edge): a row of four
   categories or fewer fits a phone whole, every item in sight: it spreads across, and a long label takes a second line inside its
   own 44 px item (still one row); a longer row scrolls sideways under its fade as before */
@media (max-width: 767.98px) {
  .sc-cats__list:not(:has(> .sc-cats__item:nth-child(5))) {
    justify-content: space-between; column-gap: 12px; padding: 0 16px; -webkit-mask-image: none; mask-image: none;
  }
  .sc-cats__list:not(:has(> .sc-cats__item:nth-child(5))) > .sc-cats__item { flex: 0 1 auto; min-width: auto; }
  .sc-cats__list:not(:has(> .sc-cats__item:nth-child(5))) .sc-cats__link { white-space: normal; text-wrap: balance; line-height: 15px; }
}

/* ---- hero ---- */
/* the first screen on a phone: the hero runs down to the Meet bar (promo 28 + header 73 + two category rows 106 above it) */
.sc-hero {
  position: relative; display: flex; align-items: flex-end; overflow: hidden;
  min-height: max(min(513px, 72svh), calc(100svh - 207px - var(--sc-meet-h)));
  background: #2c2a24; color: #fff;
}
.sc-hero__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 42% 50%; }
.sc-hero__shade {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(22,26,18,.72) 0%, rgba(22,26,18,.42) 62%, rgba(22,26,18,.22) 100%),
    linear-gradient(0deg, rgba(16,18,12,.55) 0%, rgba(16,18,12,0) 55%);
}
.sc-hero__body { position: relative; width: 100%; min-width: 0; padding: 72px 26px 34px; }
/* line 31482: measured on a phone or tablet (concierge.js heroRoom), the hero ends at the Meet bar's top, never under it; when its
   words need more room than that, its top padding gives way first */
html[data-sc-hero-room] .sc-hero:not(.sc-hero--site) { min-height: var(--sc-hero-room); }
html[data-sc-hero-tight] .sc-hero:not(.sc-hero--site) .sc-hero__body { padding-top: var(--sc-hero-pad, 72px); }
html[data-sc-hero-short] .sc-hero:not(.sc-hero--site) .sc-hero__text { display: none; }
.sc-hero__rule { display: block; width: 30px; height: 1px; background: rgba(255,255,255,.6); margin-bottom: 26px; }
.sc-hero__eyebrow { font: 400 13px/16px var(--sc-sans); letter-spacing: .14em; color: rgba(255,255,255,.9); }
.sc-hero__title {
  margin-top: 20px; max-width: 9.5em; font: 400 clamp(42px, 13.5vw, 54px)/1.13 var(--sc-serif); color: #fff;
  overflow-wrap: anywhere; text-wrap: balance;
}
.sc-hero__text { margin-top: 18px; font: 400 15px/25px var(--sc-sans); color: rgba(255,255,255,.93); }
.sc-hero__line { display: block; }
.sc-hero__cta {
  display: inline-flex; align-items: center; gap: 24px; margin-top: 30px; min-height: 44px; padding-right: 8px; max-width: 100%;
  font: 500 13px/16px var(--sc-sans); letter-spacing: .16em; color: #fff; text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.55); min-width: min(222px, 100%);
}
.sc-hero__cta span { min-width: 0; }
.sc-hero__cta svg { flex: none; }
.sc-hero__cta:hover { border-bottom-color: #fff; }

/* ---- kits ---- */
.sc-kits { max-width: 1200px; margin: 0 auto; padding: 40px 20px 48px; scroll-margin-top: 8px; }
.sc-kits__head { margin-bottom: 22px; }
.sc-kits__title { margin-top: 10px; font: 400 30px/34px var(--sc-serif); color: var(--sc-ink-strong); }
.sc-kits__empty { font: 400 15px/24px var(--sc-sans); color: var(--sc-text-2); }
.sc-kits__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.sc-kits__cell { min-width: 0; display: flex; }
.sc-kit {
  display: flex; flex-direction: column; width: 100%; min-width: 0; overflow: hidden;
  background: var(--sc-surface); border: 1px solid var(--sc-border); border-radius: 12px; scroll-margin-top: 12px;
}
.sc-kit__media { position: relative; background: #fff; border-bottom: 1px solid var(--sc-hairline); }
/* line 30853: the whole kit at a glance (the store's square picture, never cropped), and a tap opens it full size */
.sc-kit__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
/* Line 31205: a kit picture's WebP <picture> wrapper draws no box of its own: the img keeps its place and its rules */
.sc-pic { display: contents; }
.sc-kit__zoom { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.sc-kit__zoom:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: -2px; }
.sc-kit__whole { position: absolute; right: 8px; bottom: 8px; padding: 4px 8px; border: 1px solid var(--sc-hairline); border-radius: 3px; background: var(--sc-surface); color: var(--sc-ink); font: 500 13px/16px var(--sc-sans); pointer-events: none; }
.sc-kit__tag {
  position: absolute; top: 10px; left: 10px; padding: 4px 8px; border-radius: 3px; background: var(--sc-badge-green); color: #fff;
  font: 500 13px/16px var(--sc-sans); letter-spacing: .04em;
}
.sc-kit__body { display: flex; flex-direction: column; flex: 1; padding: 16px 14px 14px; min-width: 0; }
.sc-kit__name { font: 400 22px/26px var(--sc-serif); color: var(--sc-ink-strong); overflow-wrap: anywhere; }
.sc-kit__fit { margin-top: 6px; font: 400 13px/19px var(--sc-sans); color: var(--sc-text-2); }
.sc-kit__price { margin-top: 12px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.sc-kit__amount { font: 400 28px/30px var(--sc-serif); color: var(--sc-ink-strong); }
.sc-kit__unit { font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); }
.sc-kit__pump { margin-top: 4px; font: 400 13px/19px var(--sc-sans); color: var(--sc-text-2); }
.sc-kit__stock { margin-top: 4px; font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); }
.sc-kit__ask {
  margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 42px;
  padding: 0 14px; border: 1px solid var(--sc-border-input); border-radius: 4px; background: var(--sc-suggest-bg); cursor: pointer;
  font: 500 14px/20px var(--sc-sans); color: var(--sc-ink); text-align: left;
}
.sc-kit__body > :nth-last-child(2) { margin-bottom: 16px; }
.sc-kit__ask:hover { background: var(--sc-bubble); }
.sc-kit__ask svg { flex: none; }
/* Line 31087 CHANGES 2: Add to bag (partials/add-to-bag, line 31069's LORENTZ button), every card's one primary step: one more in
   the bag her tools keep (concierge.js addOne, no turn), its Ask right under it */
.sc-site__add {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 42px; margin-top: auto;
  padding: 0 14px; border: 1px solid transparent; border-radius: 4px; background: var(--sc-olive-btn); color: var(--sc-on-dark);
  font: 500 14px/20px var(--sc-sans); cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.sc-site__add:hover { background: var(--sc-forest); }
.sc-site__add[aria-busy="true"] { cursor: progress; opacity: .65; }
.sc-site__add svg { flex: none; }
.sc-kit__body > :has(+ .sc-site__add) { margin-bottom: 14px; }
.sc-kit__body > .sc-site__add { margin-bottom: 8px; }
.sc-kit__body > .sc-site__add + .sc-kit__ask { margin-top: 0; }

@media (min-width: 600px) {
  .sc-kits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .sc-kits { padding: 48px 28px 56px; }
}
@media (min-width: 1024px) {
  .sc-kits__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .sc-kits { padding: 64px 40px 72px; }
  .sc-kits__title { font-size: 38px; line-height: 42px; }
}

/* ---- Meet bar (sticky bottom). Line 30838: her container on the LEFT (her live face in the slot, her name and a one-line
   invite: one tap opens her), her gear (tablet and desktop), and the Live Human on the RIGHT. ---- */
.sc-meetbar {
  position: sticky; bottom: 0; z-index: 20; display: flex; align-items: stretch; gap: 4px;
  width: 100%; min-height: var(--sc-meet-h); margin: 0; border-top: 1px solid rgba(233,234,221,.7);
  padding: 0 8px env(safe-area-inset-bottom, 0px) 0; background: var(--sc-forest); color: var(--sc-on-dark);
}
.sc-meet {
  flex: 1 1 auto; min-width: 0; display: flex; align-items: center; justify-content: flex-start; gap: 12px;
  min-height: var(--sc-meet-h); margin: 0; border: 0; border-radius: 0; padding: 10px 8px 10px 12px;
  background: transparent; color: var(--sc-on-dark); cursor: pointer; text-align: left; -webkit-tap-highlight-color: transparent;
}
.sc-meet:hover .sc-meet__name { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.sc-meet:focus-visible { outline: 2px solid var(--sc-on-dark); outline-offset: -4px; }
/* the slot her live face sits in (avatar-dock.js lays the dock over it); the ring mark shows until her face arrives */
.sc-meet__face {
  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
}
.sc-mark--ring {
  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px;
  border: 1px solid rgba(255,255,255,.75); border-radius: 50%; color: #fff;
}
body.sc-face-in-bar .sc-meet__face .sc-mark--ring { visibility: hidden; }
.sc-meet__text { display: flex; flex-direction: column; min-width: 0; }
.sc-meet__name { font: 400 22px/24px var(--sc-serif); color: var(--sc-on-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Line 30980: 13 px floor; her invite wraps to two lines at 390 px rather than cut */
.sc-meet__line { margin-top: 2px; font: 400 13px/16px var(--sc-sans); color: var(--sc-on-dark-2); white-space: normal; }
.sc-stage-gear, .sc-meet-human {
  flex: none; align-self: center; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-width: 44px; min-height: 44px; margin: 0; padding: 0 10px; border-radius: 22px; cursor: pointer;
  color: var(--sc-on-dark); background: transparent; -webkit-tap-highlight-color: transparent;
}
.sc-stage-gear { border: 0; padding: 0; }
.sc-meet-human { border: 1px solid rgba(246,245,239,.55); font: 500 13px/16px var(--sc-sans); white-space: nowrap; }
.sc-stage-gear:hover, .sc-meet-human:hover { background: rgba(246,245,239,.12); }
.sc-stage-gear:focus-visible, .sc-meet-human:focus-visible { outline: 2px solid var(--sc-on-dark); outline-offset: 2px; }
.sc-meet-human svg, .sc-stage-gear svg { flex: none; }

/* ---- Live Human: the header control and the panel (line 30838: call, WhatsApp or text a person, on the right) ---- */
.sc-human-btn {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 8px; margin: 0; border: 0; border-radius: 22px;
  background: none; color: var(--sc-ink); cursor: pointer; font: 500 13px/16px var(--sc-sans); white-space: nowrap;
}
.sc-human-btn:hover .sc-human-btn__label { text-decoration: underline; text-underline-offset: 3px; }
.sc-header__call {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px; font: 400 13px/16px var(--sc-sans); color: var(--sc-ink);
  text-decoration: none; white-space: nowrap;
}
.sc-header__call:hover { text-decoration: underline; text-underline-offset: 3px; }
/* line 31111 CHANGES 2(d) (the testers: on a phone the number was nowhere in the header): below 768 px the header's call is its
   handset, one tap from the dialer (the number stays its name for screen readers); the narrowest phones and a signed-in header keep
   the wordmark whole and reach the number in Live Human's panel (the phone block below) */
.sc-header__call-icon { display: none; flex: none; }
@media (max-width: 767.98px) {
  .sc-header__call { justify-content: center; min-width: 40px; padding: 0; }
  .sc-header__call-icon { display: block; }
  .sc-header__call-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}
/* a 375 px phone keeps the whole LORENTZ wordmark beside the handset: 4 px less of the header's side padding (narrower phones
   take the narrow-phone header below) */
@media (min-width: 375px) and (max-width: 389.98px) {
  .sc-header:has(.sc-header__call) { padding: 0 8px 0 6px; }
}
/* a computer with her panel docked and only 584-839 px left for the page (host.css): the handset too, so the wordmark stays whole
   ("LOREN" and "SUNRA" at 1024 before; Spanish's longer "Llama al" cut it to "LO") */
@media (min-width: 1024px) and (max-width: 1279.98px) {
  body.sc-open .sc-header__call { justify-content: center; min-width: 40px; padding: 0; }
  body.sc-open .sc-header__call-icon { display: block; }
  body.sc-open .sc-header__call-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}
@media (max-width: 359.98px) {
  .sc-header__call { display: none; }
}
.sc-human {
  position: fixed; z-index: 75; right: 12px; bottom: calc(var(--sc-meet-h) + 12px + env(safe-area-inset-bottom, 0px));
  width: min(320px, calc(100vw - 24px)); padding: 14px 14px 10px; border: 1px solid var(--sc-border); border-radius: 12px;
  background: var(--sc-surface); color: var(--sc-ink); font: 400 14px/20px var(--sc-sans); outline: none;
}
.sc-human[hidden] { display: none !important; }
.sc-human__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sc-human__title { font: 500 22px/26px var(--sc-serif); color: var(--sc-ink-strong); }
.sc-human__close {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: -8px -8px -8px 0;
  padding: 0; border: 0; border-radius: 22px; background: none; color: var(--sc-ink); cursor: pointer;
}
.sc-human__close:hover { background: var(--sc-tile); }
.sc-human__line { margin-top: 2px; font: 400 13px/18px var(--sc-sans); color: var(--sc-text-2); }
.sc-human__ways { margin-top: 10px; border-top: 1px solid var(--sc-hairline); }
.sc-human__way {
  display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 4px; border-bottom: 1px solid var(--sc-hairline);
  color: var(--sc-ink); text-decoration: none;
}
.sc-human__ways li:last-child .sc-human__way { border-bottom: 0; }
.sc-human__way:hover .sc-human__way-name { text-decoration: underline; text-underline-offset: 3px; }
.sc-human__way svg { flex: none; color: var(--sc-olive); }
.sc-human__way-text { display: flex; flex-direction: column; min-width: 0; }
.sc-human__way-name { font: 500 15px/20px var(--sc-sans); }
.sc-human__way-text small { font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); }

/* ---- footer (line 30838: the contact at the end of the page too) ---- */
.sc-footer { padding: 28px 20px 24px; border-top: 1px solid var(--sc-hairline); background: var(--sc-bg); text-align: center; }
.sc-footer__ask { font: 400 14px/20px var(--sc-sans); color: var(--sc-ink); }
.sc-footer__ways { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; margin-top: 6px; }
.sc-footer__link {
  display: inline-flex; align-items: center; min-height: 44px; font: 500 14px/20px var(--sc-sans); color: var(--sc-ink);
  text-decoration: underline; text-underline-offset: 3px;
}
.sc-footer__brand { margin-top: 10px; font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); }

/* ---- what Sunny shows on the page (line 30838: show_on_page) ---- */
.sc-shelf { max-width: 1200px; margin: 0 auto; padding: 32px 20px 0; scroll-margin-top: 12px; }
.sc-shelf__note { margin-top: 8px; font: 400 15px/22px var(--sc-sans); color: var(--sc-ink); }
.sc-shelf__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 12px; }
.sc-shelf__item {
  display: flex; align-items: center; gap: 14px; min-width: 0; padding: 12px; border: 1px solid var(--sc-olive); border-radius: 12px;
  background: var(--sc-surface);
}
.sc-shelf__img { flex: none; width: 72px; height: 72px; object-fit: contain; border-radius: 8px; background: #fff; }
.sc-shelf__text { flex: 1 1 auto; min-width: 0; }
.sc-shelf__name { font: 400 20px/24px var(--sc-serif); color: var(--sc-ink-strong); overflow-wrap: anywhere; }
.sc-shelf__price { margin-top: 2px; font: 400 14px/20px var(--sc-sans); color: var(--sc-ink); }
.sc-shelf__ask, .sc-kit__note-ask {
  flex: none; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 14px; margin: 0;
  border: 1px solid var(--sc-olive-btn); border-radius: 4px; background: var(--sc-olive-btn); color: var(--sc-on-dark); cursor: pointer;
  font: 500 14px/20px var(--sc-sans); white-space: nowrap;
}
.sc-shelf__ask:hover, .sc-kit__note-ask:hover { background: var(--sc-forest); }
.sc-kit { transition: border-color 200ms ease, outline-color 200ms ease; outline: 2px solid transparent; outline-offset: 2px; }
.sc-kit--shown { border-color: var(--sc-olive); outline-color: var(--sc-olive); }
.sc-kit__note { margin: 0 0 14px; padding: 12px; border-radius: 8px; background: var(--sc-sage); color: var(--sc-ink); }
.sc-kit__note-by { font: 500 13px/16px var(--sc-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--sc-sage-ink); }
.sc-kit__note-text { margin-top: 4px; font: 400 15px/22px var(--sc-sans); }
.sc-kit__note-ask { margin-top: 10px; }
@media (min-width: 600px) {
  .sc-shelf { padding: 40px 28px 0; }
  .sc-shelf__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .sc-shelf { padding: 48px 40px 0; }
}

/* ---- order page (162113) ---- */
.sc-order-page { width: 100%; max-width: 720px; margin: 0 auto; padding: 12px 26px 40px; }
.sc-order-page__back {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 400 13px/18px var(--sc-sans); color: var(--sc-text-2);
  text-decoration: none;
}
.sc-order-page__back:hover { color: var(--sc-ink); }
.sc-order { margin-top: 6px; border: 1px solid var(--sc-hairline); border-top: 0; background: var(--sc-bg); min-width: 0; }
.sc-order__head { padding: 16px 16px 0; border-top: 1px solid var(--sc-hairline); }
.sc-order__title { margin-top: 8px; font: 400 30px/34px var(--sc-serif); color: var(--sc-ink-strong); }
.sc-order__body { padding: 0 16px; }
.sc-order__empty { padding: 22px 0 18px; font: 400 15px/24px var(--sc-sans); color: var(--sc-text-2); }
.sc-order__empty .sc-link { margin-top: 6px; }
.sc-order__items { border-bottom: 1.5px solid #e5e3df; }
.sc-order__item {
  display: grid; grid-template-columns: 60px minmax(0, 1fr) auto; column-gap: 14px; align-items: start;
  padding: 22px 0; border-bottom: 1px solid #e5e3df;
}
.sc-order__item:last-child { border-bottom: 0; }
.sc-order__thumb { width: 60px; height: 60px; border-radius: 3px; background: var(--sc-thumb); overflow: hidden; }
.sc-order__thumb img { width: 60px; height: 60px; object-fit: contain; }
.sc-order__info { min-width: 0; }
.sc-order__name { font: 400 22px/24px var(--sc-serif); color: var(--sc-ink-strong); overflow-wrap: anywhere; }
.sc-order__meta { margin-top: 4px; font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); }
.sc-order__price { font: 400 13px/18px var(--sc-sans); color: var(--sc-ink); white-space: nowrap; padding-top: 3px; }
.sc-order__summary { padding: 32px 0 24px; }
.sc-order__ship { color: var(--sc-text-2); }
.sc-order__address { margin-top: 16px; font: 400 13px/21px var(--sc-sans); color: var(--sc-text-2); overflow-wrap: anywhere; }
.sc-order__total-label { margin-top: 18px; font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); }
.sc-order__total { margin-top: 18px; font: 400 30px/34px var(--sc-serif); color: var(--sc-ink-strong); }
.sc-order__split, .sc-order__note { margin-top: 12px; font: 400 13px/16px var(--sc-sans); color: var(--sc-text-2); }
.sc-order__edit {
  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 60px; padding: 0 16px; margin: 0;
  border: 0; border-top: 1px solid var(--sc-hairline); background: none; cursor: pointer; text-align: left;
  font: 400 13px/18px var(--sc-sans); color: var(--sc-ink);
}
.sc-order__edit:hover span { text-decoration: underline; text-underline-offset: 3px; }
/* line 31033: the orders page (this browser's other orders, one tap each) and the store's own 404 */
.sc-order__edit[hidden] { display: none; }
.sc-order__others { padding: 0 16px 20px; font: 400 13px/18px var(--sc-sans); color: var(--sc-text-2); }
.sc-order__others ul { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px; }
.sc-order__others a { display: inline-flex; align-items: center; min-height: 44px; color: var(--sc-ink); text-underline-offset: 3px; }
.sc-missing__text { padding: 18px 0 6px; font: 400 15px/24px var(--sc-sans); color: var(--sc-text-2); }
.sc-missing__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; padding: 6px 0 22px; }
.sc-missing__shop {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px;
  background: var(--sc-ink-strong); color: var(--sc-bg); font: 500 13px/18px var(--sc-sans); text-decoration: none;
}

/* ---- wider screens: the page breathes, nothing collides ---- */
@media (min-width: 600px) {
  .sc-header { padding: 0 24px 0 18px; }
  .sc-wordmark { font-size: 24px; }
  .sc-who { max-width: 140px; }
}
@media (min-width: 768px) {
  .sc-cats { padding: 6px 24px; }
  .sc-cats__list { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 18px; max-width: 1200px; margin: 0 auto;
    padding: 0; overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .sc-hero { min-height: min(560px, 70vh); }
  .sc-hero__body { max-width: 1200px; margin: 0 auto; padding: 96px 48px 56px; }
  .sc-hero__title { font-size: 64px; line-height: 70px; }
}
@media (min-width: 1024px) {
  .sc-header { padding: 0 40px 0 34px; }
  .sc-hero { min-height: 620px; }
  .sc-hero__title { font-size: 76px; line-height: 82px; }
  .sc-hero__text { font-size: 17px; line-height: 28px; }
}
/* phones: the header's Live Human is its icon (its word stays for screen readers) and the Meet bar's keeps its label right below;
   line 31005: the EN | ES switch takes that room, so the wordmark is never cut */
@media (max-width: 599.98px) {
  .sc-human-btn { min-width: 44px; justify-content: center; padding: 0 4px; }
  .sc-human-btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  /* line 31069 item 6: while her welcome by place shows (place-welcome.js) the Meet bar's Live Human folds its two words onto two
     lines, so her line has the room (three lines at 390 px, not five) and keeps its 13 px floor */
  .sc-meetbar[data-sc-welcome] .sc-meet-human { gap: 6px; max-width: 92px; padding: 0 10px; line-height: 15px; white-space: normal; text-align: left; }
  /* line 31111 CHANGES 2(d): the header's handset sits 4 px from its neighbours; a signed-in header leaves the number to Live
     Human's panel, so the wordmark stays whole */
  .sc-header__end { gap: 4px; }
  .sc-header__end:has(.sc-who) .sc-header__call { display: none; }
}
/* very narrow phones: drop decoration before anything collides */
@media (max-width: 374px) {
  .sc-meet__name { font-size: 20px; }
  .sc-header { grid-template-columns: 40px minmax(0, 1fr) auto; padding: 0 8px 0 4px; }
  .sc-wordmark { font-size: 19px; letter-spacing: .05em; }
  .sc-who__state { display: none; }
  .sc-who { max-width: 64px; }
  .sc-cats__link { font-size: 13px; }
  .sc-hero__body { padding-left: 20px; padding-right: 20px; }
  .sc-order-page { padding-left: 14px; padding-right: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(> body.sc-page) { scroll-behavior: auto; }
  .sc-page *, .sc-page *::before, .sc-page *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* ---- every catalog item has its card (line 30850): the pump alone and the finishing touch, found by data-sc-sku ---- */
.sc-kits--more { padding-top: 8px; scroll-margin-top: 8px; }
.sc-kit--pump .sc-kit__body { padding-top: 18px; }
.sc-kit__pump-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.sc-kit__pump-link:hover { color: var(--sc-ink-strong); }
.sc-kit__was { font: 400 14px/20px var(--sc-sans); color: var(--sc-text-2); }

/* ---- line 30853: the whole picture (over the store, beside her conversation) and Square's checkout in the main area ---- */
.sc-viewer { position: fixed; inset: 0; z-index: 58; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(28, 29, 22, .55); }
.sc-viewer[hidden] { display: none; }
.sc-viewer__box { display: flex; flex-direction: column; max-width: min(960px, 100%); max-height: 100%; margin: 0; border-radius: 8px; overflow: hidden; background: var(--sc-surface); }
.sc-viewer__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 8px 8px 16px; border-bottom: 1px solid var(--sc-hairline); color: var(--sc-ink); font: 500 14px/20px var(--sc-sans); }
.sc-viewer__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sc-viewer__close { flex: none; min-height: 44px; padding: 0 14px; border: 1px solid var(--sc-hairline); border-radius: 4px; background: var(--sc-surface); color: var(--sc-ink); font: 500 14px/20px var(--sc-sans); cursor: pointer; }
.sc-viewer__close:focus-visible { outline: 2px solid var(--sc-ink); outline-offset: 2px; }
.sc-viewer__img { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(100dvh - 120px); margin: 0 auto; object-fit: contain; background: #fff; }
.sc-square { margin: 16px auto 8px; max-width: 1200px; padding: 16px; border: 1px solid var(--sc-hairline); border-radius: 8px; background: var(--sc-surface); color: var(--sc-ink); scroll-margin-top: 72px; }
.sc-square[hidden] { display: none; }
.sc-square [hidden] { display: none !important; }
.sc-square__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 10px 16px; }
.sc-square__titles { min-width: 0; }
.sc-square__eyebrow { margin: 0; color: var(--sc-text-2); font: 500 13px/16px var(--sc-sans); letter-spacing: .14em; text-transform: uppercase; }
.sc-square__title { margin: 4px 0 0; font: 500 22px/28px var(--sc-serif); }
.sc-square__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.sc-square__tab, .sc-square__close, .sc-square__next, .sc-square__copy { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--sc-hairline); border-radius: 4px; background: var(--sc-surface); color: var(--sc-ink); font: 500 14px/20px var(--sc-sans); text-decoration: none; cursor: pointer; }
.sc-square__tab { border-color: var(--sc-ink); background: var(--sc-ink); color: var(--sc-bg); }
.sc-square__guide { margin: 14px 0 0; padding-left: 20px; font: 400 14px/22px var(--sc-sans); }
.sc-square__addr { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; }
.sc-square__addr-text { white-space: pre-line; padding: 6px 10px; border-radius: 4px; background: var(--sc-chip); }
.sc-square__copy { min-height: 36px; }
.sc-square__note, .sc-square__qty, .sc-square__call { margin: 10px 0 0; color: var(--sc-text-2); font: 400 13px/20px var(--sc-sans); }
.sc-square__call { color: var(--sc-ink); }
.sc-square__frame { display: block; width: 100%; height: min(860px, 78vh); margin-top: 12px; border: 1px solid var(--sc-hairline); border-radius: 6px; background: #fff; }
.sc-square__more { margin: 10px 0 0; }
@media (min-width: 768px) {
  body.sc-open .sc-viewer { left: 400px; }
  .sc-square { padding: 20px 24px; }
}
@media (min-width: 1024px) {
  body.sc-open .sc-viewer { left: 440px; }
}
@media (max-width: 599.98px) {
  .sc-square { margin: 12px 8px; padding: 12px; }
  .sc-square__title { font-size: 18px; line-height: 24px; }
  .sc-square__frame { height: 72vh; }
}
