/* Glow Scent design system — mirrors the HTML design (Newsreader + Commissioner, ink/accent/cream). */
:root {
  --gs-ink: #2b2621;
  --gs-accent: #a4532f;
  --gs-accent-dark: #7d3d22;
  --gs-cream: #f7f1ea;
  --gs-cream-2: #ece4d8;
  --gs-muted: #5b544c;
  --gs-meta: #776d61;
  --gs-line: rgba(43, 38, 33, .12);
  --gs-line-2: rgba(43, 38, 33, .18);
  --gs-serif: Newsreader, Georgia, serif;
  --gs-sans: Commissioner, system-ui, sans-serif;
  --gs-pad: clamp(20px, 6vw, 96px);
  --gs-ease: cubic-bezier(.2, .7, .2, 1);
  --gs-top: 0px;
}
.admin-bar { --gs-top: 32px; }
@media (max-width: 782px) { .admin-bar { --gs-top: 46px; } }

body.gs-site { background: #fff; overflow-x: clip; -webkit-font-smoothing: antialiased; }
body.gs-site .site-main, body.gs-site .page-content { margin: 0; padding: 0; max-width: none; }
.elementor-widget[class*="elementor-widget-gs-"] { margin-bottom: 0 !important; }
.elementor-widget[class*="elementor-widget-gs-"] > .elementor-widget-container { margin: 0; padding: 0; }

.gs-root { font-family: var(--gs-sans); color: var(--gs-ink); font-size: 16px; line-height: 1.5; }
.gs-root *, .gs-root *::before, .gs-root *::after { box-sizing: border-box; }
.gs-root img { max-width: 100%; display: block; }
.gs-root a { color: inherit; text-decoration: none; }
.gs-root a:hover { color: inherit; }
.gs-root p { margin: 0; }
.gs-root h1, .gs-root h2, .gs-root h3 { margin: 0; color: inherit; font-family: var(--gs-serif); font-weight: 300; }
.gs-root em { font-style: italic; color: var(--gs-accent); }
.gs-root button, .gs-root [type="button"], .gs-root [type="submit"] {
  font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; border-radius: 0;
  cursor: pointer; text-transform: none; letter-spacing: inherit; line-height: inherit; box-shadow: none;
}
.gs-root button:hover, .gs-root button:focus, .gs-root [type="button"]:hover, .gs-root [type="button"]:focus, .gs-root [type="submit"]:hover, .gs-root [type="submit"]:focus { background: none; color: inherit; }
.gs-root button:disabled { cursor: not-allowed; opacity: .45; }
.gs-root button:focus-visible, .gs-root a:focus-visible, .gs-root select:focus-visible, .gs-root input:focus-visible { outline: 2px solid var(--gs-accent); outline-offset: 2px; }
.gs-root [hidden] { display: none !important; }

/* ---------- Shared bits ---------- */
.gs-eyebrow { display: flex; align-items: center; gap: 12px; font: 500 12px/1 var(--gs-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gs-accent); }
.gs-eyebrow > span { width: 28px; height: 1px; background: var(--gs-accent); flex: none; }
.gs-mask { display: block; overflow: hidden; padding-bottom: .08em; }
.gs-line { display: block; }
.gs-stack-16 { display: flex; flex-direction: column; gap: 16px; }
.gs-stack-20 { display: flex; flex-direction: column; gap: 20px; }
.gs-stack-22 { display: flex; flex-direction: column; gap: 22px; }
.gs-small { font: 400 12px/1.5 var(--gs-sans); color: var(--gs-meta); }
.gs-muted { color: var(--gs-muted); }
.gs-lead { max-width: 420px; font: 300 17px/1.65 var(--gs-sans); color: var(--gs-muted); text-wrap: pretty; }
.gs-center { text-align: center; }

.gs-h1 { font: 300 clamp(44px, 6.4vw, 96px)/1 var(--gs-serif) !important; letter-spacing: -.035em; }
.gs-h1-xl { font: 300 clamp(52px, 8vw, 124px)/.96 var(--gs-serif) !important; letter-spacing: -.04em; }
.gs-h1-xl .gs-mask:first-child { padding-bottom: .04em; }
.gs-h1-xl .gs-mask:last-child { padding-bottom: .1em; }
.gs-h1-xxl { font: 300 clamp(56px, 8vw, 128px)/.95 var(--gs-serif) !important; letter-spacing: -.04em; }
.gs-h2 { font: 300 clamp(40px, 5vw, 76px)/1.02 var(--gs-serif) !important; letter-spacing: -.03em; }
.gs-h2-sm { font-size: clamp(36px, 4.4vw, 64px) !important; }

.gs-root .gs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 22px; border-radius: 14px; font: 500 14px/1 var(--gs-sans); transition: background .25s, color .25s, border-color .25s; white-space: nowrap; text-align: center; }
.gs-root .gs-btn-dark, .gs-root a.gs-btn-dark { background: var(--gs-ink); color: #fff; }
.gs-root .gs-btn-dark:hover, .gs-root .gs-btn-dark:focus, .gs-root a.gs-btn-dark:hover { background: var(--gs-accent); color: #fff; }
.gs-root .gs-btn-line, .gs-root a.gs-btn-line { border: 1.5px solid var(--gs-line-2); color: var(--gs-ink); background: #fff; }
.gs-root .gs-btn-line:hover, .gs-root .gs-btn-line:focus, .gs-root a.gs-btn-line:hover { background: var(--gs-cream); color: var(--gs-ink); }
.gs-root .gs-btn-lg { padding: 18px 30px; font-size: 15px; }
.gs-root .gs-btn-sm { height: 46px; padding: 0 16px; }
.gs-root .gs-btn-xl { height: 60px; font-size: 16px; }
.gs-root .gs-btn-block { display: flex; width: 100%; }
.gs-grow { flex: 1; }
.gs-root .gs-link-btn { min-height: 40px; font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); text-decoration: underline; text-underline-offset: 3px; }
.gs-root .gs-link-btn:hover { color: var(--gs-accent); }
.gs-root .gs-icon-btn { width: 44px; height: 44px; border-radius: 12px; background: var(--gs-cream); font: 300 22px/1 var(--gs-sans); color: var(--gs-ink); display: flex; align-items: center; justify-content: center; transition: background .2s; flex: none; }
.gs-root .gs-icon-btn:hover { background: #efe5d8; }

.gs-progress { width: clamp(100px, 14vw, 200px); height: 2px; border-radius: 2px; background: var(--gs-line); overflow: hidden; }
.gs-progress > div { height: 100%; background: var(--gs-accent); transform-origin: left; transform: scaleX(0); }

.gs-img-frame { position: relative; overflow: hidden; background: var(--gs-cream); aspect-ratio: 4 / 5; }
.gs-img-frame img { width: 100%; height: 100%; object-fit: cover; }
.gs-r24 { border-radius: 24px; }
.gs-rcard { border-radius: clamp(18px, 2vw, 24px); }
.gs-ar-43 { aspect-ratio: 4 / 3; }
.gs-pimg { position: absolute; inset: 0; }
.gs-pimg img { width: 100%; height: 100%; object-fit: cover; }
.gs-zoom, .gs-zoom-sm { transition: transform .9s var(--gs-ease); }
a:hover .gs-zoom { transform: scale(1.07); }
a:hover .gs-zoom-sm { transform: scale(1.06); }
.gs-round-arrow { position: absolute; right: 14px; bottom: 14px; width: 46px; height: 46px; border-radius: 50%; background: #fff; color: var(--gs-ink); display: flex; align-items: center; justify-content: center; font: 400 17px/1 var(--gs-sans); transition: background .25s, color .25s; }
.gs-round-arrow:hover { background: var(--gs-accent); color: #fff; }

.gs-free { display: flex; flex-direction: column; gap: 10px; }
.gs-free-msg { font: 400 13px/1.4 var(--gs-sans); color: var(--gs-muted); }
.gs-free-track { height: 4px; border-radius: 4px; background: rgba(43, 38, 33, .1); overflow: hidden; }
.gs-free-bar { height: 100%; background: var(--gs-accent); transition: width .6s var(--gs-ease); }

.gs-qty { display: flex; align-items: center; height: 58px; border: 1.5px solid var(--gs-line-2); border-radius: 14px; }
.gs-root .gs-qty button { width: 52px; height: 100%; font: 300 22px/1 var(--gs-sans); color: var(--gs-ink); }
.gs-qty span { min-width: 28px; text-align: center; font: 500 16px/1 var(--gs-sans); }
.gs-qty-sm { height: 40px; width: max-content; margin-top: 6px; border-radius: 12px; border-color: rgba(43, 38, 33, .16); }
.gs-root .gs-qty-sm button { width: 38px; font-size: 20px; }
.gs-qty-sm span { min-width: 20px; font-size: 14px; }

.gs-collapse { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .55s var(--gs-ease); }
.gs-collapse > div { overflow: hidden; min-height: 0; }
.gs-collapse.is-open { grid-template-rows: 1fr; }

.gs-desk-only { }
.gs-mob-only { display: none !important; }

/* ---------- Header ---------- */
.gs-header { position: fixed; top: var(--gs-top); left: 0; right: 0; z-index: 50; }
.gs-header-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 72px; padding: 0 clamp(18px, 4vw, 48px); background: rgba(255, 255, 255, .9); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 1px solid rgba(43, 38, 33, 0); transition: border-color .4s; }
.gs-header.is-scrolled .gs-header-bar, .gs-header.is-open .gs-header-bar { border-bottom-color: rgba(43, 38, 33, .08); }
.gs-header-logo { display: flex; align-items: center; min-height: 44px; }
.gs-header-logo img { height: 22px; width: auto; }
.gs-header-nav { display: flex; gap: clamp(24px, 3vw, 44px); }
.gs-header-nav a { position: relative; padding: 10px 0; font: 400 15px/1 var(--gs-sans); color: var(--gs-ink); transition: color .25s; }
.gs-root .gs-header-nav a:hover, .gs-root .gs-header-nav a.is-active { color: var(--gs-accent); }
.gs-header-nav a > span { position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: var(--gs-accent); transform-origin: left; transform: scaleX(0); transition: transform .4s var(--gs-ease); }
.gs-header-nav a.is-active > span { transform: scaleX(1); }
.gs-header-tools { display: flex; align-items: center; gap: 6px; }
.gs-root .gs-header-cart { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 6px; font: 500 15px/1 var(--gs-sans); color: var(--gs-ink); }
.gs-cart-count { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--gs-ink); color: #fff; font-size: 12px; transition: background .3s, transform .3s; }
.gs-cart-count.is-full { background: var(--gs-accent); }
.gs-cart-count.is-bump { transform: scale(1.25); }
.gs-burger { width: 44px; height: 44px; display: none !important; flex-direction: column; align-items: center; justify-content: center; gap: 7px; }
.gs-burger span { width: 22px; height: 1.5px; background: var(--gs-ink); transition: transform .4s; }
.gs-header.is-open .gs-burger span:first-child { transform: translateY(4.25px) rotate(45deg); }
.gs-header.is-open .gs-burger span:last-child { transform: translateY(-4.25px) rotate(-45deg); }
.gs-mmenu { position: fixed; top: calc(72px + var(--gs-top)); left: 0; right: 0; height: calc(100dvh - 72px - var(--gs-top)); background: #fff; display: none; flex-direction: column; justify-content: space-between; padding: 32px 20px; transform: translateY(-16px); opacity: 0; pointer-events: none; transition: transform .6s var(--gs-ease), opacity .4s; }
.gs-header.is-open .gs-mmenu { transform: none; opacity: 1; pointer-events: auto; }
.gs-mmenu nav { display: flex; flex-direction: column; }
.gs-mmenu nav a { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; border-bottom: 1px solid rgba(43, 38, 33, .1); font: 300 42px/1 var(--gs-serif); letter-spacing: -.02em; color: var(--gs-ink); }
.gs-root .gs-mmenu nav a.is-active { color: var(--gs-accent); }
.gs-mmenu nav a span { font: 400 18px/1 var(--gs-sans); color: var(--gs-ink); }
.gs-mmenu-info { display: flex; flex-direction: column; gap: 10px; font: 400 15px/1.4 var(--gs-sans); color: var(--gs-muted); }
@media (max-width: 799px) {
  .gs-header-nav { display: none; }
  .gs-burger { display: flex !important; }
  .gs-mmenu { display: flex; }
}
.elementor-editor-active .gs-header { position: relative; top: 0; }

/* ---------- Cart drawer ---------- */
.gs-drawer-shade { position: fixed; inset: 0; z-index: 9980; background: rgba(43, 38, 33, .34); opacity: 0; pointer-events: none; transition: opacity .45s; }
.gs-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 9981; width: min(100vw, 460px); display: flex; flex-direction: column; background: #fff; visibility: hidden; transform: translateX(calc(100% + 80px)); transition: transform .6s var(--gs-ease), box-shadow .6s, visibility 0s linear .6s; }
.gs-drawer-wrap.is-open .gs-drawer-shade { opacity: 1; pointer-events: auto; }
.gs-drawer-wrap.is-open .gs-drawer { visibility: visible; transform: none; box-shadow: -24px 0 60px rgba(43, 38, 33, .16); transition: transform .6s var(--gs-ease), box-shadow .6s, visibility 0s; }
.gs-drawer-inner { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.gs-drawer.is-busy .gs-drawer-lines, .gs-cartpage-inner.is-busy .gs-cartpage-lines { opacity: .5; pointer-events: none; transition: opacity .2s; }
.gs-drawer-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px clamp(20px, 4vw, 28px); border-bottom: 1px solid rgba(43, 38, 33, .1); }
.gs-drawer-title { display: flex; align-items: baseline; gap: 10px; font: 400 30px/1 var(--gs-serif); }
.gs-drawer-title span { font: 400 14px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-drawer-free { padding: 16px clamp(20px, 4vw, 28px); border-bottom: 1px solid rgba(43, 38, 33, .08); }
.gs-drawer-lines { flex: 1; overflow-y: auto; padding: 0 clamp(20px, 4vw, 28px); }
.gs-drawer-foot { display: flex; flex-direction: column; gap: 12px; padding: 20px clamp(20px, 4vw, 28px) calc(20px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(43, 38, 33, .1); }
.gs-drawer-foot .gs-btn { height: 56px; font-size: 15px; }
.gs-drawer-sub { display: flex; justify-content: space-between; align-items: baseline; font: 500 15px/1 var(--gs-sans); }
.gs-drawer-sub span:last-child { font: 300 30px/1 var(--gs-serif); }
.gs-drawer-empty { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 18px; padding: 0 clamp(20px, 4vw, 28px); }
.gs-drawer-empty > span { font: 300 40px/1.05 var(--gs-serif); letter-spacing: -.02em; }
.gs-drawer-empty .gs-btn { height: 54px; padding: 0 24px; font-size: 15px; }

.gs-cline { display: grid; grid-template-columns: 80px minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 18px 0; border-bottom: 1px solid rgba(43, 38, 33, .08); }
.gs-cline-img { display: block; border-radius: 14px; overflow: hidden; background: var(--gs-cream); aspect-ratio: 4 / 5; }
.gs-cline-img img { width: 100%; height: 100%; object-fit: cover; }
.gs-cline-main { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gs-cline-name { font: 400 19px/1.2 var(--gs-serif); color: var(--gs-ink); }
.gs-cline-meta { font: 400 13px/1.3 var(--gs-sans); color: var(--gs-meta); }
.gs-cline-side { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 10px; align-self: stretch; }
.gs-cline-total { font: 500 15px/1.2 var(--gs-sans); white-space: nowrap; }

/* ---------- Hero ---------- */
.gs-hero-desk { position: relative; height: 165vh; }
.gs-hero-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; background: #fff; }
.gs-hero-text { position: absolute; left: clamp(20px, 6vw, 96px); top: 0; bottom: 0; width: min(46vw, 620px); padding-top: 56px; display: flex; flex-direction: column; justify-content: center; gap: 28px; z-index: 2; }
.gs-hero-title { font: 300 clamp(50px, 6.8vw, 108px)/1 var(--gs-serif) !important; letter-spacing: -.035em; }
.gs-hero-title .gs-mask:first-child { padding-bottom: .06em; }
.gs-hero-p { max-width: 400px; font: 300 17px/1.65 var(--gs-sans); color: var(--gs-muted); text-wrap: pretty; }
.gs-hero-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.gs-hero-arch { position: absolute; right: 6vw; top: 14vh; width: min(36vw, 560px); height: 74vh; border-radius: 999px 999px 32px 32px; overflow: hidden; background: var(--gs-cream); }
.gs-hero-arch img { width: 100%; height: 100%; object-fit: cover; }
.gs-hero-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(24, 20, 17, .6), rgba(24, 20, 17, 0) 55%); opacity: 0; }
.gs-hero-over { position: absolute; left: clamp(20px, 5vw, 64px); bottom: clamp(32px, 8vh, 80px); display: flex; flex-direction: column; gap: 14px; color: #fff; opacity: 0; }
.gs-hero-over-eb { font: 500 13px/1 var(--gs-sans); letter-spacing: .18em; text-transform: uppercase; }
.gs-hero-over-t { font: 300 clamp(36px, 5vw, 72px)/1.04 var(--gs-serif); letter-spacing: -.025em; }
.gs-hero-badge { position: absolute; right: calc(6vw + min(36vw, 560px) - 66px); bottom: 10vh; width: 132px; height: 132px; z-index: 3; }
.gs-badge-svg { display: block; }
.gs-badge-svg text { font: 500 11.5px var(--gs-sans); letter-spacing: .18em; }
.gs-hero-mob { display: none; padding: calc(108px + var(--gs-top)) 20px 64px; flex-direction: column; gap: 24px; background: #fff; }
.gs-hero-mob .gs-hero-title { font-size: clamp(46px, 13vw, 68px) !important; }
.gs-hero-mob .gs-hero-p { font-size: 16px; }
.gs-hero-mob .gs-btn { flex: 1 1 auto; padding: 18px 24px; }
.gs-hero-mwrap { position: relative; margin-top: 12px; }
.gs-hero-march { position: relative; aspect-ratio: 4 / 5; border-radius: 999px 999px 24px 24px; overflow: hidden; background: var(--gs-cream); }
.gs-hero-march img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; }
.gs-hero-mbadge { position: absolute; left: 14px; bottom: -34px; width: 104px; height: 104px; }
@media (max-width: 799px) {
  .gs-hero-desk { display: none; }
  .gs-hero-mob { display: flex; }
}

/* ---------- Intro ---------- */
.gs-intro { padding: clamp(120px, 24vh, 240px) var(--gs-pad); display: flex; justify-content: center; background: #fff; }
.gs-intro-p { max-width: 1080px; display: flex; flex-wrap: wrap; justify-content: center; column-gap: .26em; font: 300 clamp(28px, 3.9vw, 56px)/1.25 var(--gs-serif); letter-spacing: -.015em; text-align: center; }

/* ---------- New arrivals ---------- */
.gs-arr-wrap { position: relative; height: 210vh; }
.gs-arr-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; background: #fff; display: flex; flex-direction: column; justify-content: center; gap: clamp(28px, 5vh, 56px); }
.gs-arr-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 72px var(--gs-pad) 0; }
.gs-arr-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.gs-arr-count { min-width: 56px; font: 500 14px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-arr-scroller { overflow: visible; }
.gs-arr-track { display: flex; align-items: flex-start; gap: clamp(14px, 2vw, 28px); width: max-content; padding: 0 var(--gs-pad) 12px; }
.gs-arr-card { display: block; width: clamp(220px, min(21vw, 40vh), 310px); scroll-snap-align: start; scroll-margin-left: 20px; color: var(--gs-ink); }
.gs-arr-tilt { display: flex; flex-direction: column; gap: 16px; }
.gs-arr-info { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 0 4px; }
.gs-arr-info > div { display: flex; flex-direction: column; gap: 6px; }
.gs-card-name { font: 400 21px/1.2 var(--gs-serif); }
.gs-card-cat { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-card-price { font: 500 15px/1.3 var(--gs-sans); white-space: nowrap; }
.gs-root .gs-arr-end { color: #fff; }
.gs-arr-endbox { aspect-ratio: 4 / 5; border-radius: 999px 999px 24px 24px; background: var(--gs-ink); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; text-align: center; padding: 24px; transition: background .3s; }
.gs-arr-end:hover .gs-arr-endbox { background: var(--gs-accent); }
.gs-arr-endbox > span:first-child { font: 300 clamp(28px, 2.6vw, 38px)/1.05 var(--gs-serif); letter-spacing: -.02em; color: #fff; }
.gs-arr-endbox em { color: #fff; }
.gs-arr-endarrow { width: 54px; height: 54px; border-radius: 50%; background: #fff; color: var(--gs-ink); display: flex; align-items: center; justify-content: center; font: 400 20px/1 var(--gs-sans); }
@media (max-width: 799px) {
  .gs-arr-wrap { height: auto; }
  .gs-arr-sticky { position: relative; height: auto; padding: 72px 0 24px; }
  .gs-arr-head { padding: 0 20px; }
  .gs-arr-scroller { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .gs-arr-scroller::-webkit-scrollbar { display: none; }
  .gs-arr-card { width: min(72vw, 300px); }
}

/* ---------- Categories ---------- */
.gs-cats-sec { padding: clamp(88px, 14vh, 160px) var(--gs-pad); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(36px, 6vw, 96px); align-items: start; }
.gs-cats-side { position: sticky; top: calc(120px + var(--gs-top)); display: flex; flex-direction: column; gap: 24px; }
.gs-cats-list { display: flex; flex-direction: column; }
.gs-cats-list a { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-top: 1px solid var(--gs-line); font: 400 16px/1 var(--gs-sans); color: var(--gs-ink); transition: color .3s, padding .4s; }
.gs-root .gs-cats-list a:hover { color: var(--gs-accent); padding-left: 10px; }
.gs-cats-list a span:last-child { color: var(--gs-meta); }
.gs-cats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2vw, 28px) clamp(12px, 1.6vw, 18px); }
.gs-cats-item { display: flex; flex-direction: column; gap: 12px; color: var(--gs-ink); }
.gs-cats-item.is-wide { grid-column: span 2; }
.gs-cats-item.is-wide .gs-img-frame { aspect-ratio: 16 / 10; }
.gs-cats-cap { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 0 4px; font: 400 clamp(17px, 1.6vw, 22px)/1.2 var(--gs-serif); }
.gs-cats-cap span:last-child { color: var(--gs-accent); }
@media (max-width: 799px) {
  .gs-cats-side { position: static; }
  .gs-cats-list { display: none; }
}

/* ---------- Story ---------- */
.gs-story-desk { position: relative; height: calc(70vh * var(--gs-steps, 3)); }
.gs-story-sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 6vw, 96px); align-items: center; padding: 72px var(--gs-pad) 0; background: var(--gs-cream); }
.gs-story-left { display: flex; flex-direction: column; gap: 30px; }
.gs-story-num { display: flex; align-items: baseline; gap: 10px; font: 300 italic 28px/1 var(--gs-serif); color: var(--gs-accent); }
.gs-story-num span:last-child { font: 400 14px/1 var(--gs-sans); font-style: normal; color: var(--gs-meta); }
.gs-story-steps { position: relative; min-height: clamp(220px, 30vh, 300px); }
.gs-story-step { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 20px; opacity: 0; }
.gs-story-step.is-on { opacity: 1; }
.gs-story-h { font: 300 clamp(44px, 5.4vw, 84px)/1 var(--gs-serif) !important; letter-spacing: -.03em; }
.gs-story-step p { max-width: 420px; font: 300 17px/1.65 var(--gs-sans); color: var(--gs-muted); }
.gs-progress-story { width: auto; max-width: 420px; }
.gs-story-arch { position: relative; justify-self: center; width: min(100%, 460px); height: min(72vh, 620px); border-radius: 999px 999px 32px 32px; overflow: hidden; background: var(--gs-cream-2); }
.gs-story-img { position: absolute; inset: 0; }
.gs-story-img img { width: 100%; height: 100%; object-fit: cover; }
.gs-story-mob { display: none; background: var(--gs-cream); padding: 80px 20px; flex-direction: column; gap: 44px; }
.gs-h2-mob { font-size: clamp(40px, 11vw, 56px) !important; }
.gs-story-mstep { display: flex; flex-direction: column; gap: 16px; }
.gs-story-mstep .gs-img-frame { background: var(--gs-cream-2); }
.gs-story-mhead { display: flex; align-items: baseline; gap: 14px; }
.gs-story-mhead span:first-child { font: 300 italic 22px/1 var(--gs-serif); color: var(--gs-accent); }
.gs-story-mhead span:last-child { font: 400 30px/1.1 var(--gs-serif); }
.gs-story-mstep p { font: 300 16px/1.6 var(--gs-sans); color: var(--gs-muted); }
@media (max-width: 799px) {
  .gs-story-desk { display: none; }
  .gs-story-mob { display: flex; }
}

/* ---------- Soy cards ---------- */
.gs-soy-sec { padding: clamp(96px, 16vh, 200px) var(--gs-pad); display: flex; flex-direction: column; gap: clamp(32px, 5vw, 48px); }
.gs-soy-list { display: flex; flex-direction: column; gap: 6vh; }
/* Room after the last card so it settles into the stack (and holds) before the deck scrolls away. */
/* Back cards get extra bottom margin so the whole deck leaves together, keeping its 24px offsets. */
.gs-soy-card { margin-bottom: calc((var(--n, 3) - 1 - var(--i)) * 24px); }
.gs-soy-list::after { content: ''; flex: none; height: 24vh; margin-top: -6vh; }
.gs-soy-card { position: sticky; top: calc(110px + var(--gs-top) + var(--i) * 24px); min-height: min(62vh, 520px); border-radius: clamp(28px, 4vw, 40px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; transform-origin: top center; }
/* height:0 + min-height:100% → the photo fills the card but never sets its height, so all cards are equal. */
.gs-soy-card img { width: 100%; height: 0; min-height: 100%; object-fit: cover; }
.gs-soy-body { display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: clamp(28px, 5vw, 72px); }
.gs-soy-num { font: 300 clamp(68px, 9vw, 140px)/1 var(--gs-serif); letter-spacing: -.04em; }
.gs-soy-t { font: 400 clamp(26px, 2.6vw, 38px)/1.1 var(--gs-serif); }
.gs-soy-d { max-width: 340px; font: 300 16px/1.6 var(--gs-sans); }
.gs-soy-card.is-cream { background: var(--gs-cream); color: var(--gs-ink); }
.gs-soy-card.is-cream .gs-soy-num { color: var(--gs-accent); }
.gs-soy-card.is-cream .gs-soy-d { color: var(--gs-muted); }
.gs-soy-card.is-accent { background: var(--gs-accent); color: #fff; }
.gs-soy-card.is-accent .gs-soy-num, .gs-soy-card.is-accent .gs-soy-d { color: #fff; }
.gs-soy-card.is-ink { background: var(--gs-ink); color: #fff; }
.gs-soy-card.is-ink .gs-soy-num { color: #e8b796; }
.gs-soy-card.is-ink .gs-soy-d { color: rgba(255, 255, 255, .85); }
@media (max-width: 799px) {
  .gs-soy-card { top: calc(88px + var(--gs-top) + var(--i) * 14px); min-height: 0; grid-template-columns: minmax(0, 1fr); }
  .gs-soy-card img { height: 220px; min-height: 0; }
  .gs-soy-list::after { height: 12vh; }
  .gs-soy-card { margin-bottom: calc((var(--n, 3) - 1 - var(--i)) * 14px); }
}

/* ---------- Footer ---------- */
.gs-footer { margin: 0 clamp(12px, 2vw, 24px) clamp(12px, 2vw, 24px); border-radius: clamp(24px, 4vw, 48px); background: var(--gs-cream); padding: clamp(48px, 7vw, 88px) clamp(20px, 5vw, 72px) 28px; display: flex; flex-direction: column; gap: clamp(40px, 6vw, 72px); }
.gs-footer-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 40px 32px; }
.gs-footer-brand { display: flex; flex-direction: column; gap: 18px; }
.gs-footer-brand img { height: 24px; width: auto; align-self: flex-start; }
.gs-footer-brand span { max-width: 240px; font: 300 15px/1.6 var(--gs-sans); color: var(--gs-muted); }
.gs-footer-col { display: flex; flex-direction: column; gap: 14px; font: 400 15px/1.2 var(--gs-sans); }
.gs-footer-col a { color: var(--gs-ink); transition: color .2s; }
.gs-root .gs-footer-col a:hover { color: var(--gs-accent); }
.gs-footer-label { font: 500 12px/1 var(--gs-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--gs-meta); }
.gs-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 22px; border-top: 1px solid var(--gs-line); font: 400 13px/1.3 var(--gs-sans); color: var(--gs-meta); }

/* ---------- Page hero (shop / scents) ---------- */
.gs-phero-sec { padding: calc(clamp(120px, 18vh, 180px) + var(--gs-top)) var(--gs-pad) clamp(36px, 5vw, 64px); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 48px; }
.gs-phero-p { margin: 0 0 10px; max-width: 360px; font: 300 16px/1.65 var(--gs-sans); color: var(--gs-muted); }
.gs-phero-side { display: flex; flex-direction: column; gap: 18px; max-width: 380px; padding-bottom: 10px; }
.gs-phero-num { font: 300 clamp(56px, 6vw, 88px)/1 var(--gs-serif); letter-spacing: -.04em; color: var(--gs-accent); }
.gs-phero-side p { font: 300 16px/1.65 var(--gs-sans); color: var(--gs-muted); }

/* ---------- Shop ---------- */
.gs-shop-main { padding: 0 var(--gs-pad) clamp(88px, 14vh, 160px); display: flex; align-items: flex-start; gap: clamp(32px, 4vw, 64px); }
.gs-filters { position: sticky; top: calc(96px + var(--gs-top)); flex: 0 0 230px; display: flex; flex-direction: column; background: #fff; }
.gs-filters-mhead, .gs-filters-mfoot { display: none; }
.gs-filters-body { display: flex; flex-direction: column; }
.gs-fgroup { display: flex; flex-direction: column; padding: 20px 0; border-top: 1px solid var(--gs-line); }
.gs-flabel { padding-bottom: 10px; font: 500 12px/1 var(--gs-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--gs-meta); }
.gs-root .gs-opt { display: flex; align-items: center; gap: 12px; min-height: 44px; text-align: left; font: 400 15px/1.2 var(--gs-sans); color: var(--gs-muted); transition: color .2s; }
.gs-root .gs-opt:hover, .gs-root .gs-opt.is-on { color: var(--gs-ink); }
.gs-check { flex: none; width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid rgba(43, 38, 33, .3); background: #fff; display: flex; align-items: center; justify-content: center; color: #fff; font: 600 12px/1 var(--gs-sans); transition: background .2s, border-color .2s; }
.gs-opt.is-on .gs-check { border-color: var(--gs-ink); background: var(--gs-ink); }
.gs-opt.is-on .gs-check::after { content: '✓'; }
.gs-fgroup-radio .gs-check { border-radius: 50%; }
.gs-fgroup-radio .gs-opt.is-on .gs-check { background: radial-gradient(circle, var(--gs-ink) 0 4px, #fff 4.5px); }
.gs-fgroup-radio .gs-opt.is-on .gs-check::after { content: none; }
.gs-opt-t { flex: 1; }
.gs-opt-n { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-root .gs-clear { align-self: flex-start; min-height: 44px; font: 500 14px/1 var(--gs-sans); color: var(--gs-ink); text-underline-offset: 4px; }
.gs-shop-list { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.gs-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; padding: 12px 0; border-top: 1px solid var(--gs-line); border-bottom: 1px solid var(--gs-line); }
.gs-toolbar-l, .gs-toolbar-r { display: flex; align-items: center; gap: 16px; }
.gs-toolbar-r { gap: 18px; }
.gs-count { font: 400 14px/1 var(--gs-sans); color: var(--gs-muted); }
.gs-count strong { font-weight: 500; color: var(--gs-ink); }
.gs-sort { display: flex; align-items: center; gap: 8px; margin: 0; font: 400 14px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-root .gs-sort select { min-height: 44px; width: auto; padding: 0 4px; border: 0; background: transparent; font: 500 14px/1 var(--gs-sans); color: var(--gs-ink); cursor: pointer; }
.gs-dens { display: flex; gap: 4px; }
.gs-root .gs-dens button { width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; gap: 2px; transition: background .2s; }
.gs-root .gs-dens button:hover, .gs-root .gs-dens button.is-on { background: var(--gs-cream); }
.gs-dens button span { height: 14px; border-radius: 2px; background: #a59a8e; }
.gs-dens button.is-on span { background: var(--gs-ink); }
.gs-active { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; }
.gs-active:empty { display: none; }
.gs-root .gs-active button { display: flex; align-items: center; gap: 8px; min-height: 36px; font: 400 14px/1 var(--gs-sans); color: var(--gs-ink); }
.gs-root .gs-active button:hover { color: var(--gs-accent); }
.gs-active button span { font: 300 18px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-shop-empty { padding: clamp(48px, 10vh, 96px) 0; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.gs-shop-empty > span { font: 300 clamp(32px, 4vw, 52px)/1.05 var(--gs-serif); letter-spacing: -.03em; }
.gs-shop-empty .gs-btn { height: 52px; padding: 0 24px; font-size: 15px; }
.gs-grid { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: clamp(32px, 4vw, 52px) clamp(12px, 2vw, 28px); margin-top: 8px; }
.gs-card { display: flex; flex-direction: column; gap: 14px; color: var(--gs-ink); }
.gs-card[hidden] { display: none; }
.gs-card .gs-round-arrow { right: 12px; bottom: 12px; width: 44px; height: 44px; }
.gs-card-body { display: flex; flex-direction: column; gap: 7px; padding: 0 2px; }
.gs-card-kicker { font: 500 11px/1 var(--gs-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gs-meta); }
.gs-card-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; }
.gs-card-row .gs-card-name { font-size: clamp(18px, 1.6vw, 22px); }
.gs-card-meta { font: 400 13px/1.3 var(--gs-sans); color: var(--gs-meta); }
.gs-card-flag { position: absolute; left: 12px; top: 12px; padding: 8px 12px; border-radius: 10px; background: rgba(255, 255, 255, .94); font: 500 11px/1 var(--gs-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--gs-ink); }
.gs-sheet-shade { display: none; }
@media (max-width: 899px) {
  .gs-desk-only { display: none !important; }
  .gs-mob-only { display: inline-flex !important; }
  .gs-grid { --cols: 2 !important; }
  .gs-sheet-shade { display: block; position: fixed; inset: 0; z-index: 9970; background: rgba(43, 38, 33, .32); opacity: 0; pointer-events: none; transition: opacity .4s; }
  .gs-shop.is-sheet .gs-sheet-shade { opacity: 1; pointer-events: auto; }
  .gs-filters { position: fixed; top: auto; bottom: 0; left: 0; right: 0; z-index: 9971; flex: none; max-height: 86dvh; border-radius: 24px 24px 0 0; box-shadow: 0 -20px 60px rgba(43, 38, 33, .18); transform: translateY(105%); transition: transform .55s var(--gs-ease); }
  .gs-shop.is-sheet .gs-filters { transform: none; }
  .gs-filters-mhead { display: flex; justify-content: space-between; align-items: center; padding: 20px 20px 8px; font: 400 30px/1 var(--gs-serif); }
  .gs-filters-body { flex: 1; overflow-y: auto; padding: 0 20px 12px; }
  .gs-filters-mfoot { display: flex; gap: 10px; padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(43, 38, 33, .1); }
  .gs-filters-mfoot .gs-btn { height: 54px; font-size: 15px; }
}

/* ---------- Product ---------- */
.gs-product { padding: calc(clamp(96px, 14vh, 128px) + var(--gs-top)) var(--gs-pad) 0; }
.gs-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font: 400 13px/1.4 var(--gs-sans); color: var(--gs-meta); }
.gs-root .gs-crumbs a { color: var(--gs-meta); }
.gs-root .gs-crumbs a:hover { color: var(--gs-ink); }
.gs-crumbs .is-here { color: var(--gs-ink); }
.gs-product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: clamp(32px, 6vw, 96px); align-items: start; margin-top: clamp(20px, 3vw, 32px); }
.gs-product-media-col { position: sticky; top: calc(96px + var(--gs-top)); display: flex; flex-direction: column; gap: 12px; }
.gs-product-media { position: relative; border-radius: clamp(22px, 3vw, 32px); overflow: hidden; background: var(--gs-cream); aspect-ratio: 4 / 5; }
.gs-product-media > img { width: 100%; height: 100%; object-fit: cover; }
.gs-media-tag { position: absolute; left: 16px; bottom: 16px; display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; border-radius: 14px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); }
.gs-media-tag span:first-child { font: 500 10px/1 var(--gs-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--gs-meta); }
.gs-media-tag span:last-child { font: 400 18px/1.1 var(--gs-serif); }
.gs-thumbs { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-root .gs-thumbs button { width: 64px; aspect-ratio: 4 / 5; border-radius: 12px; overflow: hidden; background: var(--gs-cream); border: 1.5px solid transparent; transition: border-color .25s; }
.gs-root .gs-thumbs button.is-on { border-color: var(--gs-ink); }
.gs-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.gs-product-info { display: flex; flex-direction: column; gap: 28px; margin: 0; }
.gs-product-title { font: 300 clamp(44px, 5.4vw, 80px)/1 var(--gs-serif) !important; letter-spacing: -.035em; }
.gs-product-desc { max-width: 460px; font: 300 17px/1.65 var(--gs-sans); color: var(--gs-muted); text-wrap: pretty; }
.gs-product-desc p + p { margin-top: .8em; }
.gs-product-price { display: flex; align-items: baseline; gap: 12px; font: 300 34px/1 var(--gs-serif); }
.gs-product-price del { font: 400 16px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-field { display: flex; flex-direction: column; gap: 12px; }
.gs-field-label { font: 500 13px/1 var(--gs-sans); color: var(--gs-muted); }
.gs-sizes { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 10px; }
.gs-root .gs-size { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px 14px; border-radius: 14px; border: 1.5px solid rgba(43, 38, 33, .14); background: #fff; text-align: left; transition: border-color .25s, background .25s; }
.gs-root .gs-size:hover { border-color: var(--gs-ink); background: #fff; }
.gs-root .gs-size.is-on { border-color: var(--gs-ink); background: var(--gs-cream); }
.gs-size span:first-child { font: 500 15px/1 var(--gs-sans); color: var(--gs-ink); }
.gs-size span:last-child { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-scent { gap: 14px; scroll-margin-top: 100px; }
.gs-scent-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.gs-scent.is-need .gs-scent-head .gs-field-label { color: var(--gs-accent); }
.gs-scent-need { font: 500 13px/1.2 var(--gs-sans); color: var(--gs-accent); }
.gs-scent-selects { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.gs-scent-selects label { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 0; }
.gs-select { position: relative; display: block; }
.gs-select::after { content: ''; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 1.5px solid var(--gs-ink); border-bottom: 1.5px solid var(--gs-ink); transform: rotate(45deg); pointer-events: none; }
.gs-root .gs-select select { width: 100%; height: 56px; padding: 0 44px 0 16px; border-radius: 14px; border: 1.5px solid var(--gs-line-2); background: #fff; font: 400 16px/1 var(--gs-sans); color: var(--gs-ink); appearance: none; -webkit-appearance: none; cursor: pointer; outline: none; transition: border-color .25s, opacity .25s; }
.gs-root .gs-select select:focus { border-color: var(--gs-ink); }
.gs-root .gs-select select:disabled { opacity: .5; cursor: not-allowed; }
.gs-root .gs-select select.is-err { border-color: var(--gs-accent); }
.gs-scent-card { margin-top: 6px; display: flex; flex-direction: column; gap: 10px; padding: clamp(18px, 2.4vw, 24px); border-radius: 18px; background: var(--gs-cream); }
.gs-scent-card span:first-child { font: 500 11px/1 var(--gs-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--gs-accent); }
.gs-scent-card span:nth-child(2) { font: 400 clamp(24px, 2.4vw, 30px)/1.1 var(--gs-serif); letter-spacing: -.015em; }
.gs-scent-card p { font: 300 15px/1.65 var(--gs-sans); color: var(--gs-muted); text-wrap: pretty; }
.gs-note { padding: 18px 20px; border-radius: 16px; background: var(--gs-cream); font: 300 15px/1.6 var(--gs-sans); color: var(--gs-muted); }
.gs-facts { display: flex; border-top: 1px solid var(--gs-line); border-bottom: 1px solid var(--gs-line); }
.gs-facts > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 18px 16px 18px 0; }
/* Divider only when both facts are shown. */
.gs-facts > div:not([hidden]) + div:not([hidden]) { padding: 18px 0 18px 20px; border-left: 1px solid var(--gs-line); }
.gs-facts span:first-child { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-facts span:last-child { font: 400 22px/1.1 var(--gs-serif); }
.gs-buy { display: flex; flex-wrap: wrap; gap: 12px; }
.gs-root .gs-add { flex: 1 1 220px; height: 58px; font-size: 15px; }
.gs-root .gs-add.is-added { background: var(--gs-accent); }
.gs-form-error { font: 400 14px/1.4 var(--gs-sans); color: var(--gs-accent); }
.gs-acc { display: flex; flex-direction: column; }
.gs-acc-item { border-bottom: 1px solid var(--gs-line); }
.gs-root .gs-acc-btn { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; font: 500 15px/1.2 var(--gs-sans); color: var(--gs-ink); text-align: left; }
.gs-acc-btn span { font: 300 22px/1 var(--gs-sans); transition: transform .4s; }
.gs-acc-item.is-open .gs-acc-btn span { transform: rotate(45deg); }
.gs-acc-body { padding: 0 0 22px; font: 300 15px/1.6 var(--gs-sans); color: var(--gs-muted); }
.gs-acc-body ul { margin: 0; padding: 0 0 0 18px; display: flex; flex-direction: column; gap: 10px; }
.gs-acc-body p + p { margin-top: .8em; }
.gs-mbar { display: none; }
@media (max-width: 799px) {
  .gs-product-media-col { position: static; }
  .gs-mbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; display: flex; align-items: center; gap: 14px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .94); backdrop-filter: blur(14px); border-top: 1px solid rgba(43, 38, 33, .08); transform: translateY(110%); transition: transform .45s var(--gs-ease); }
  .gs-mbar.is-on { transform: none; }
  .gs-mbar-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
  .gs-mbar-txt span:first-child { font: 400 18px/1.1 var(--gs-serif); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .gs-mbar-txt span:last-child { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
  .gs-mbar .gs-btn { height: 50px; padding: 0 22px; font-size: 15px; }
}

/* Care */
.gs-care-sec { margin: clamp(88px, 14vh, 160px) clamp(12px, 2vw, 24px) 0; padding: clamp(48px, 7vw, 96px) clamp(20px, 5vw, 72px); border-radius: clamp(28px, 4vw, 48px); background: var(--gs-cream); display: flex; flex-direction: column; gap: clamp(32px, 5vw, 56px); }
.gs-care-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }
.gs-care-head > p { max-width: 340px; font: 300 15px/1.65 var(--gs-sans); color: var(--gs-muted); }
.gs-care-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: clamp(12px, 1.6vw, 18px); }
.gs-care-card { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 2.6vw, 32px); border-radius: 24px; background: #fff; }
.gs-care-i { font: 300 italic 40px/1 var(--gs-serif); color: var(--gs-accent); }
.gs-care-t { font: 400 23px/1.15 var(--gs-serif); }
.gs-care-d { font: 300 15px/1.6 var(--gs-sans); color: var(--gs-muted); }

/* Related */
.gs-related-sec { padding: clamp(88px, 14vh, 160px) var(--gs-pad); display: flex; flex-direction: column; gap: clamp(28px, 4vw, 44px); }
.gs-related-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px; }
.gs-related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, clamp(150px, 22vw, 260px)), 1fr)); gap: clamp(32px, 4vw, 52px) clamp(14px, 2vw, 28px); }
@media (max-width: 599px) { .gs-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- Scents ---------- */
.gs-scents-bar { position: sticky; top: calc(72px + var(--gs-top)); z-index: 20; background: rgba(255, 255, 255, .94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid rgba(43, 38, 33, .1); }
.gs-scents-barrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 28px; padding: 0 var(--gs-pad); }
.gs-tabs { flex: 1 1 520px; min-width: 0; display: flex; gap: clamp(20px, 2.4vw, 34px); overflow-x: auto; scrollbar-width: none; }
.gs-tabs::-webkit-scrollbar { display: none; }
.gs-root .gs-tab { flex: none; position: relative; display: flex; align-items: flex-start; gap: 4px; padding: 22px 0; font: 400 15px/1 var(--gs-sans); color: var(--gs-meta); white-space: nowrap; transition: color .25s; }
.gs-root .gs-tab:hover, .gs-root .gs-tab.is-on { color: var(--gs-ink); }
.gs-tab sup { font-size: 11px; color: var(--gs-meta); top: 0; vertical-align: top; }
.gs-tab > span { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--gs-ink); transform-origin: left; transform: scaleX(0); transition: transform .45s var(--gs-ease); }
.gs-tab.is-on > span { transform: scaleX(1); }
.gs-search { flex: 0 1 300px; display: flex; align-items: center; gap: 10px; margin: 10px 0; height: 48px; padding: 0 14px; border-radius: 14px; border: 1.5px solid rgba(43, 38, 33, .14); background: #fff; transition: border-color .25s; }
.gs-search:focus-within { border-color: var(--gs-ink); }
.gs-root .gs-search input { flex: 1; min-width: 0; height: auto; padding: 0; border: 0; outline: none; background: transparent; font: 400 16px/1 var(--gs-sans); color: var(--gs-ink); box-shadow: none; }
.gs-scents-main { padding: clamp(24px, 4vw, 48px) var(--gs-pad) clamp(88px, 14vh, 160px); min-height: 50vh; }
.gs-scents-empty { padding: clamp(48px, 10vh, 120px) 0; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.gs-scents-empty > span:first-child { font: 300 clamp(34px, 4vw, 56px)/1.05 var(--gs-serif); letter-spacing: -.03em; }
.gs-scents-empty .gs-btn { height: 52px; padding: 0 24px; font-size: 15px; }
.gs-sgroup { display: flex; flex-wrap: wrap; gap: 0 clamp(16px, 4vw, 64px); padding: clamp(28px, 4vw, 48px) 0; border-top: 1px solid var(--gs-line); scroll-margin-top: 190px; }
.gs-sgroup-k { flex: 0 0 clamp(48px, 9vw, 140px); }
.gs-sgroup-k span { position: sticky; top: calc(200px + var(--gs-top)); display: block; font: 300 italic clamp(48px, 7vw, 104px)/.9 var(--gs-serif); letter-spacing: -.03em; color: var(--gs-accent); }
.gs-sgroup-items { flex: 1 1 260px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: clamp(28px, 3.4vw, 44px) clamp(24px, 3vw, 48px); }
.gs-scent-item { display: flex; flex-direction: column; gap: 12px; }
.gs-scent-cat { font: 500 11px/1 var(--gs-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--gs-meta); }
.gs-root .gs-scent-item h2 { font: 400 clamp(24px, 2.2vw, 30px)/1.1 var(--gs-serif); letter-spacing: -.015em; }
.gs-scent-item p { font: 300 15px/1.65 var(--gs-sans); color: var(--gs-muted); text-wrap: pretty; }
.gs-scent-item.is-oos h2, .gs-scent-item.is-oos p { color: var(--gs-meta); }
.gs-scent-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-height: 24px; }
/* Status badge: small rounded rectangle (no pills, per the design rules). */
.gs-badge { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 8px; background: var(--gs-ink); color: #fff; font: 500 10px/1 var(--gs-sans); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }

/* ---------- Contact ---------- */
.gs-contact-grid { padding: calc(clamp(120px, 18vh, 180px) + var(--gs-top)) var(--gs-pad) clamp(88px, 14vh, 160px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: clamp(48px, 7vw, 112px); align-items: start; }
.gs-contact-left { display: flex; flex-direction: column; gap: clamp(28px, 4vw, 40px); }
.gs-contact-left .gs-h1-xxl .gs-mask:first-child { padding-bottom: .04em; }
.gs-contact-left .gs-h1-xxl .gs-mask:last-child { padding-bottom: .1em; }
.gs-contact-info { display: flex; flex-direction: column; max-width: 460px; }
.gs-contact-info > div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 16px; padding: 20px 0; border-top: 1px solid var(--gs-line); }
.gs-contact-info > div > span:first-child { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-contact-info > div > :last-child { font: 400 clamp(20px, 2vw, 24px)/1.2 var(--gs-serif); }
.gs-root .gs-contact-info a:hover { color: var(--gs-accent); }
.gs-contact-card { border-radius: clamp(24px, 3vw, 36px); background: var(--gs-cream); padding: clamp(24px, 4vw, 48px); }
.gs-contact-form { display: flex; flex-direction: column; gap: 22px; margin: 0; }
.gs-form-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 16px; }
.gs-input { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.gs-input > span { font: 500 13px/1 var(--gs-sans); color: var(--gs-muted); }
.gs-root .gs-input input, .gs-root .gs-input textarea { width: 100%; height: 54px; padding: 0 16px; border-radius: 14px; border: 1.5px solid rgba(43, 38, 33, .16); background: #fff; font: 400 16px/1 var(--gs-sans); color: var(--gs-ink); outline: none; box-shadow: none; transition: border-color .25s; }
.gs-root .gs-input textarea { height: auto; padding: 16px; line-height: 1.5; resize: vertical; }
.gs-root .gs-input input:focus, .gs-root .gs-input textarea:focus { border-color: var(--gs-ink); }
.gs-input.is-err input, .gs-input.is-err textarea { border-color: var(--gs-accent) !important; }
.gs-input > em { font: 400 12px/1.2 var(--gs-sans); font-style: normal; color: var(--gs-accent); min-height: 0; }
.gs-input > em:empty { display: none; }
.gs-topics-wrap { display: flex; flex-direction: column; gap: 10px; }
.gs-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.gs-root .gs-topic { min-height: 52px; padding: 12px 14px; border-radius: 14px; border: 1.5px solid rgba(43, 38, 33, .14); background: rgba(255, 255, 255, .5); font: 500 14px/1.2 var(--gs-sans); color: var(--gs-ink); text-align: left; transition: border-color .25s, background .25s; }
.gs-root .gs-topic:hover { border-color: var(--gs-ink); background: rgba(255, 255, 255, .5); }
.gs-root .gs-topic.is-on { border-color: var(--gs-ink); background: #fff; }
.gs-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.gs-contact-done { min-height: 420px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 20px; }
.gs-tick { width: 60px; height: 60px; border-radius: 50%; background: var(--gs-accent); color: #fff; display: flex; align-items: center; justify-content: center; font: 300 26px/1 var(--gs-sans); }
.gs-root .gs-contact-done h2 { font: 300 clamp(36px, 4vw, 56px)/1.02 var(--gs-serif); letter-spacing: -.03em; }
.gs-contact-done p { font: 300 16px/1.6 var(--gs-sans); color: var(--gs-muted); }
.gs-root .gs-contact-done .gs-link-btn { font: 500 14px/1 var(--gs-sans); color: var(--gs-ink); text-underline-offset: 4px; }

/* ---------- Cart page ---------- */
.gs-page-pad { padding: calc(clamp(112px, 16vh, 150px) + var(--gs-top)) var(--gs-pad) clamp(88px, 14vh, 160px); min-height: 70vh; }
.gs-empty-state { max-width: 640px; margin: 0 auto; padding: clamp(40px, 8vh, 96px) 0; display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; }
.gs-empty-state .gs-h1 { font-size: clamp(44px, 6vw, 84px) !important; }
.gs-cartpage { display: flex; flex-direction: column; gap: clamp(28px, 4vw, 48px); }
.gs-cartpage-grid { display: flex; flex-wrap: wrap; gap: clamp(36px, 5vw, 72px); align-items: flex-start; }
.gs-cartpage-lines { flex: 1 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.gs-cartpage-top { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding-bottom: 16px; border-bottom: 1px solid var(--gs-line); font: 400 14px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-cartpage-top a { font: 500 14px/1 var(--gs-sans); color: var(--gs-ink); text-decoration: underline; text-underline-offset: 4px; }
.gs-root .gs-cartpage-top a:hover { color: var(--gs-accent); }
.gs-cartpage .gs-cline { grid-template-columns: clamp(76px, 10vw, 104px) minmax(0, 1fr) auto; gap: clamp(14px, 2vw, 24px); }
.gs-cartpage .gs-cline-img { border-radius: 16px; }
.gs-cartpage .gs-cline-name { font-size: clamp(19px, 1.8vw, 22px); }
.gs-cartpage .gs-qty-sm { height: 44px; margin-top: 8px; }
.gs-cartpage .gs-cline-total { font-size: 16px; }
.gs-summary { flex: 1 1 320px; position: sticky; top: calc(100px + var(--gs-top)); display: flex; flex-direction: column; gap: 20px; padding: clamp(24px, 3vw, 36px); border-radius: clamp(22px, 3vw, 32px); background: var(--gs-cream); }
.gs-root .gs-summary-title { font: 400 clamp(26px, 2.4vw, 32px)/1.1 var(--gs-serif); }
.gs-summary-rows { display: flex; flex-direction: column; gap: 10px; font: 400 15px/1.3 var(--gs-sans); }
.gs-summary-rows > div { display: flex; justify-content: space-between; gap: 12px; }
.gs-summary-rows > div > span:first-child { color: var(--gs-muted); }
.gs-summary-rows > div > span:last-child { text-align: right; }
.gs-summary-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 18px; border-top: 1px solid var(--gs-line); font: 500 15px/1 var(--gs-sans); }
.gs-summary-total span:last-child { font: 300 34px/1 var(--gs-serif); }

/* ---------- Checkout (WooCommerce classic checkout, restyled) ---------- */
.gs-checkout .gs-h1 { margin-bottom: clamp(28px, 4vw, 48px); }
.gs-checkout .woocommerce { font: 400 15px/1.5 var(--gs-sans); color: var(--gs-ink); }
.gs-checkout .woocommerce-notices-wrapper:empty { display: none; }
.gs-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .gs-checkout .woocommerce-form-login-toggle .woocommerce-info { margin: 0 0 16px; padding: 14px 18px; border: 0; border-radius: 14px; background: var(--gs-cream); color: var(--gs-muted); font-size: 14px; }
.gs-checkout .woocommerce-info::before, .gs-checkout .woocommerce-message::before, .gs-checkout .woocommerce-error::before { display: none; }
.gs-checkout .woocommerce-info a, .gs-checkout .woocommerce-form-coupon-toggle a { color: var(--gs-ink); text-decoration: underline; text-underline-offset: 3px; }
.gs-checkout form.checkout_coupon { margin: 0 0 24px; padding: 20px; border: 1.5px solid var(--gs-line); border-radius: 16px; }
.gs-checkout .woocommerce-error, .gs-checkout .woocommerce-message { margin: 0 0 24px; padding: 16px 20px; border: 0; border-radius: 14px; background: #fbeee6; color: var(--gs-accent-dark); list-style: none; }
.gs-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); grid-template-areas: "cust review"; gap: clamp(36px, 5vw, 72px); align-items: start; }
.gs-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.gs-checkout #customer_details { grid-area: cust; display: flex; flex-direction: column; gap: clamp(40px, 5vw, 64px); width: auto; float: none; }
.gs-checkout #customer_details .col-1, .gs-checkout #customer_details .col-2 { width: 100%; float: none; max-width: none; padding: 0; }
.gs-checkout #order_review_heading { display: none; }
.gs-checkout #order_review { grid-area: review; position: sticky; top: calc(100px + var(--gs-top)); padding: clamp(24px, 3vw, 36px); border-radius: clamp(22px, 3vw, 32px); background: var(--gs-cream); width: auto; float: none; }
.gs-checkout #order_review::before { content: 'Σύνοψη'; display: block; margin-bottom: 18px; font: 400 clamp(26px, 2.4vw, 32px)/1.1 var(--gs-serif); }
.gs-checkout h3 { display: flex; align-items: baseline; gap: 14px; margin: 0 0 20px; padding-bottom: 16px; border-bottom: 1px solid var(--gs-line); font: 400 clamp(26px, 2.4vw, 32px)/1.1 var(--gs-serif); color: var(--gs-ink); }
.gs-checkout .woocommerce-billing-fields > h3::before { content: '01'; font: 300 italic 20px/1 var(--gs-serif); color: var(--gs-accent); }
.gs-checkout .woocommerce-shipping-fields h3 { font: 500 15px/1.3 var(--gs-sans); border: 0; padding: 0; }
.gs-checkout .woocommerce-shipping-fields h3 label { display: flex; align-items: center; gap: 10px; margin: 0; cursor: pointer; }
.gs-checkout .woocommerce-billing-fields__field-wrapper, .gs-checkout .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gs-checkout form .form-row { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; width: auto !important; float: none !important; }
.gs-checkout .form-row-wide, .gs-checkout #billing_address_1_field, .gs-checkout #billing_address_2_field, .gs-checkout #shipping_address_1_field, .gs-checkout #shipping_address_2_field, .gs-checkout .notes, .gs-checkout #order_comments_field, .gs-checkout #billing_company_field, .gs-checkout #billing_country_field, .gs-checkout #shipping_country_field { grid-column: 1 / -1; }
.gs-checkout form .form-row label { margin: 0; font: 500 13px/1.2 var(--gs-sans); color: var(--gs-muted); }
.gs-checkout .form-row label .required { color: var(--gs-accent); text-decoration: none; border: 0; }
.gs-checkout .form-row .optional { color: var(--gs-meta); font-weight: 400; }
.gs-checkout .form-row input.input-text, .gs-checkout .form-row textarea, .gs-checkout .form-row select, .gs-checkout .select2-container .select2-selection--single { width: 100%; height: 54px; padding: 0 16px; border-radius: 14px; border: 1.5px solid rgba(43, 38, 33, .16); background: #fff; font: 400 16px/1 var(--gs-sans); color: var(--gs-ink); box-shadow: none; outline: none; transition: border-color .25s; }
.gs-checkout .form-row textarea { height: 110px; padding: 14px 16px; line-height: 1.5; }
.gs-checkout .form-row input.input-text:focus, .gs-checkout .form-row textarea:focus { border-color: var(--gs-ink); }
.gs-checkout .select2-container .select2-selection--single { display: flex; align-items: center; }
.gs-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1; color: var(--gs-ink); }
.gs-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 52px; right: 10px; }
.gs-checkout .form-row.woocommerce-invalid input.input-text, .gs-checkout .form-row.woocommerce-invalid .select2-selection { border-color: var(--gs-accent); }
.gs-checkout .woocommerce-additional-fields { margin-top: 24px; }
.gs-checkout .woocommerce-additional-fields > h3 { display: none; }
.gs-checkout table.shop_table { width: 100%; margin: 0; border: 0; border-collapse: collapse; font: 400 15px/1.3 var(--gs-sans); background: none; }
.gs-checkout table.shop_table th, .gs-checkout table.shop_table td { padding: 10px 0; border: 0; background: none !important; text-align: left; vertical-align: top; }
.gs-checkout table.shop_table td:last-child, .gs-checkout table.shop_table th:last-child { text-align: right; }
.gs-checkout table.shop_table thead { display: none; }
.gs-checkout table.shop_table tbody tr:last-child td { padding-bottom: 18px; border-bottom: 1px solid var(--gs-line); }
.gs-checkout table.shop_table .product-name { font: 400 16px/1.25 var(--gs-serif); }
.gs-checkout table.shop_table .product-name .product-quantity { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-checkout table.shop_table .product-name dl, .gs-checkout table.shop_table .product-name .wc-item-meta { margin: 4px 0 0; font: 400 12px/1.4 var(--gs-sans); color: var(--gs-meta); }
.gs-checkout table.shop_table tfoot th { font-weight: 400; color: var(--gs-muted); }
.gs-checkout table.shop_table tfoot tr:first-child th, .gs-checkout table.shop_table tfoot tr:first-child td { padding-top: 18px; }
.gs-checkout table.shop_table .order-total th, .gs-checkout table.shop_table .order-total td { padding-top: 18px; border-top: 1px solid var(--gs-line); font: 500 15px/1 var(--gs-sans); color: var(--gs-ink); vertical-align: baseline; }
.gs-checkout table.shop_table .order-total td .amount { font: 300 34px/1 var(--gs-serif); }
.gs-checkout table.shop_table .order-total .includes_tax { display: block; margin-top: 6px; font: 400 12px/1.4 var(--gs-sans); color: var(--gs-meta); }
.gs-checkout ul#shipping_method { margin: 0; padding: 0; list-style: none; text-align: left; }
.gs-checkout ul#shipping_method li { margin: 0 0 8px; }
.gs-checkout ul#shipping_method li label, .gs-checkout .wc_payment_method > label { cursor: pointer; }
.gs-checkout .woocommerce-shipping-totals td { text-align: left !important; }
.gs-checkout #payment { margin-top: 20px; background: none; border-radius: 0; }
.gs-checkout #payment ul.payment_methods { margin: 0 0 16px; padding: 0; border: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.gs-checkout #payment ul.payment_methods li { margin: 0; padding: 18px; border: 1.5px solid rgba(43, 38, 33, .14); border-radius: 16px; background: #fff; line-height: 1.3; transition: border-color .25s; }
.gs-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--gs-ink); }
.gs-checkout #payment ul.payment_methods li > label { font: 500 15px/1.2 var(--gs-sans); color: var(--gs-ink); }
.gs-checkout #payment ul.payment_methods li input { margin: 0 10px 0 0; accent-color: var(--gs-ink); }
.gs-checkout #payment div.payment_box { margin: 12px 0 0; padding: 0; background: none; font: 400 13px/1.5 var(--gs-sans); color: var(--gs-meta); }
.gs-checkout #payment div.payment_box::before { display: none; }
.gs-checkout #payment .place-order { margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.gs-checkout .woocommerce-terms-and-conditions-wrapper { font: 400 12px/1.5 var(--gs-sans); color: var(--gs-meta); }
.gs-checkout .woocommerce-terms-and-conditions-wrapper a { color: var(--gs-ink); text-decoration: underline; }
.gs-checkout #place_order { width: 100%; height: 60px; border: 0; border-radius: 14px; background: var(--gs-ink); color: #fff; font: 500 16px/1 var(--gs-sans); cursor: pointer; float: none; transition: background .25s; }
.gs-checkout #place_order:hover { background: var(--gs-accent); }
.gs-checkout .blockUI.blockOverlay { border-radius: inherit; background: rgba(247, 241, 234, .6) !important; }
.gs-checkout.is-received .woocommerce-order { max-width: 760px; display: flex; flex-direction: column; gap: 24px; }
.gs-checkout.is-received .woocommerce-thankyou-order-received { font: 300 17px/1.65 var(--gs-sans); color: var(--gs-muted); }
.gs-checkout.is-received ul.order_details { display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--gs-line); border-bottom: 1px solid var(--gs-line); }
.gs-checkout.is-received ul.order_details li { flex: 1 1 160px; margin: 0; padding: 18px 16px 18px 0; border: 0; font: 400 13px/1.3 var(--gs-sans); color: var(--gs-meta); text-transform: none; }
.gs-checkout.is-received ul.order_details li strong { display: block; margin-top: 8px; font: 400 20px/1.1 var(--gs-serif); color: var(--gs-ink); }
.gs-checkout.is-received h2 { font: 400 clamp(26px, 2.4vw, 32px)/1.1 var(--gs-serif); margin: 24px 0 12px; }
@media (max-width: 899px) {
  .gs-checkout form.checkout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "cust" "review"; }
  .gs-checkout #order_review { position: static; }
}
@media (max-width: 599px) {
  .gs-checkout .woocommerce-billing-fields__field-wrapper, .gs-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: minmax(0, 1fr); }
}

/* Reduced motion: everything visible, no transforms. */
@media (prefers-reduced-motion: reduce) {
  .gs-root *, .gs-root *::before, .gs-root *::after { transition: none !important; }
}

/* ---------- Info / legal pages ---------- */
.gs-info-head { padding: calc(clamp(120px, 18vh, 170px) + var(--gs-top)) var(--gs-pad) clamp(32px, 4vw, 56px); display: flex; flex-direction: column; gap: 22px; }
.gs-info-head .gs-h1 { font-size: clamp(44px, 6vw, 92px) !important; }
.gs-info-date { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); }
.gs-info-grid { display: grid; grid-template-columns: minmax(200px, 260px) minmax(0, 760px); gap: clamp(32px, 6vw, 112px); align-items: start; padding: 0 var(--gs-pad) clamp(88px, 14vh, 160px); border-top: 1px solid var(--gs-line); padding-top: clamp(32px, 4vw, 56px); margin: 0; }
.gs-info-nav { position: sticky; top: calc(104px + var(--gs-top)); display: flex; flex-direction: column; }
.gs-info-nav a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--gs-line); font: 400 15px/1.3 var(--gs-sans); color: var(--gs-muted); transition: color .25s, padding .4s; }
.gs-info-nav a span { color: var(--gs-meta); opacity: 0; transition: opacity .25s; }
.gs-root .gs-info-nav a:hover { color: var(--gs-ink); padding-left: 8px; }
.gs-root .gs-info-nav a.is-active { color: var(--gs-accent); }
.gs-info-nav a.is-active span, .gs-info-nav a:hover span { opacity: 1; }
.gs-prose { font: 300 17px/1.75 var(--gs-sans); color: var(--gs-muted); text-wrap: pretty; overflow-wrap: anywhere; }
.gs-prose > * + * { margin-top: 1em; }
.gs-root .gs-prose p { margin: 0; }
.gs-prose p + p, .gs-prose ul, .gs-prose ol { margin-top: 1em; }
.gs-prose p > strong:only-child { display: block; margin-top: 1.6em; font: 400 clamp(24px, 2.4vw, 30px)/1.15 var(--gs-serif); color: var(--gs-ink); letter-spacing: -.01em; }
.gs-prose > p:first-child > strong:only-child { margin-top: 0; }
.gs-root .gs-prose h2, .gs-root .gs-prose h3, .gs-root .gs-prose h4 { margin: 1.6em 0 .2em; font: 400 clamp(24px, 2.4vw, 30px)/1.15 var(--gs-serif); color: var(--gs-ink); letter-spacing: -.01em; }
.gs-prose strong { font-weight: 500; color: var(--gs-ink); }
.gs-prose ul, .gs-prose ol { padding-left: 1.3em; display: flex; flex-direction: column; gap: .6em; }
.gs-prose li::marker { color: var(--gs-accent); }
.gs-prose a { color: var(--gs-ink); text-decoration: underline; text-underline-offset: 3px; }
.gs-root .gs-prose a:hover { color: var(--gs-accent); }
.gs-withdraw { margin-top: 8px; padding: clamp(24px, 4vw, 44px); border-radius: clamp(24px, 3vw, 36px); background: var(--gs-cream); }
.gs-withdraw-statement { font: 400 14px/1.6 var(--gs-sans); color: var(--gs-muted); }
.gs-root .gs-withdraw input[type="date"] { padding-right: 12px; }
@media (max-width: 899px) {
  .gs-info-grid { grid-template-columns: minmax(0, 1fr); }
  .gs-info-nav { position: static; order: 2; }
}

/* Footer: wholesale block */
.gs-footer-ws { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px 40px; padding: clamp(28px, 4vw, 48px); border-radius: clamp(20px, 3vw, 32px); background: #fff; color: var(--gs-ink); transition: background .3s; }
.gs-root a.gs-footer-ws:hover { color: var(--gs-ink); }
.gs-footer-ws:hover .gs-btn-dark { background: var(--gs-accent); }
.gs-footer-ws-text { display: flex; flex-direction: column; gap: 14px; max-width: 620px; }
.gs-footer-ws-title { font: 300 clamp(30px, 3.6vw, 52px)/1.04 var(--gs-serif); letter-spacing: -.025em; }
.gs-footer-ws-p { font: 300 16px/1.6 var(--gs-sans); color: var(--gs-muted); }
@media (max-width: 599px) { .gs-footer-ws .gs-btn { width: 100%; } }

/* Contact widget: optional numbered list (used on the wholesale page) */
.gs-contact-bullets { display: flex; flex-direction: column; gap: 6px; max-width: 460px; }
.gs-contact-bullets ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.gs-contact-bullets li { display: flex; gap: 16px; align-items: baseline; padding: 16px 0; border-top: 1px solid var(--gs-line); font: 300 16px/1.55 var(--gs-sans); color: var(--gs-muted); }
.gs-contact-bullets li span { flex: none; font: 300 italic 20px/1 var(--gs-serif); color: var(--gs-accent); }
.gs-input small { font-weight: 400; color: var(--gs-meta); }

/* CTA card on normal pages (e.g. wholesale on the contact page): cream on white */
.gs-cta-wrap { padding: 0 var(--gs-pad) clamp(64px, 10vh, 120px); }
.gs-cta { background: var(--gs-cream); }

/* Another plugin (JetMenu) turns on CSS smooth scrolling for the page. It makes ScrollTrigger's
   pinned sections slide back and forth while positions are recalculated, so it is forced off;
   in-page links still scroll smoothly through gs.js. */
html { scroll-behavior: auto !important; }

/* Scents: no second line under the sticky filter bar. */
.gs-sgroup.is-first { border-top-color: transparent; }

/* Checkout: payment options as one tidy row (radio + title), details underneath. */
.gs-checkout #payment ul.payment_methods li { display: flex; flex-wrap: wrap; align-items: center; column-gap: 10px; }
.gs-checkout #payment ul.payment_methods li > input { flex: none; margin: 0; }
.gs-checkout #payment ul.payment_methods li > label { flex: 1; margin: 0; display: flex; align-items: center; gap: 8px; }
.gs-checkout #payment ul.payment_methods li > label img { display: none; }
.gs-checkout #payment ul.payment_methods li > .payment_box { flex: 0 0 100%; }

/* Cart: items that can no longer be bought. */
.gs-cline.is-oos .gs-cline-img, .gs-cline.is-oos .gs-cline-name, .gs-cline.is-oos .gs-cline-total { opacity: .5; }
.gs-cline-warn { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 4px; font: 400 13px/1.4 var(--gs-sans); color: var(--gs-accent); }
.gs-cart-note { padding: 14px 16px; border-radius: 14px; background: #fbeee6; font: 400 14px/1.5 var(--gs-sans); color: var(--gs-accent-dark); }
.gs-root .gs-btn.is-disabled { opacity: .4; pointer-events: none; }

/* Checkout when the cart has a problem (WooCommerce "cart errors" state). */
.gs-checkout .gs-checkout-body > .woocommerce > p:first-of-type, .gs-checkout .woocommerce > p:not([class]) { max-width: 560px; font: 300 17px/1.65 var(--gs-sans); color: var(--gs-muted); }
.gs-checkout .woocommerce a.button.wc-backward { display: inline-flex; align-items: center; justify-content: center; height: 54px; margin-top: 8px; padding: 0 24px; border: 0; border-radius: 14px; background: var(--gs-ink); color: #fff; font: 500 15px/1 var(--gs-sans); text-transform: none; text-decoration: none; transition: background .25s; }
.gs-checkout .woocommerce a.button.wc-backward:hover { background: var(--gs-accent); color: #fff; }

/* Lenis smooth scrolling (official base styles). */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Product: sold out (no scent choice, no add to cart). */
.gs-product-price .gs-badge { align-self: center; }
.gs-soldout { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: clamp(20px, 2.4vw, 28px); border-radius: 18px; background: var(--gs-cream); font: 300 15px/1.6 var(--gs-sans); color: var(--gs-muted); }
.gs-soldout-t { font: 400 clamp(22px, 2.2vw, 28px)/1.15 var(--gs-serif); color: var(--gs-ink); }
.gs-soldout .gs-btn { margin-top: 6px; }
.gs-scent.is-off { opacity: .45; pointer-events: none; }
.gs-root .gs-size:disabled { opacity: .45; }
.gs-root .gs-size:disabled span:first-child { text-decoration: line-through; }

/* Checkout summary lines */
.gs-checkout .gs-review-qty { font: 400 13px/1 var(--gs-sans); color: var(--gs-meta); white-space: nowrap; }
.gs-checkout table.shop_table .gscs-cart-scent-info { display: block; margin-top: 4px; font: 400 12px/1.45 var(--gs-sans); color: var(--gs-meta); }
.gs-checkout table.shop_table .gscs-cart-scent-info strong { font-weight: 500; color: var(--gs-muted); }
.gs-checkout table.shop_table .gscs-cart-scent-info .gscs-scent-category { font-style: normal; }
.gs-checkout table.shop_table .gscs-cart-scent-info + br, .gs-checkout table.shop_table .product-name > br { display: none; }

/* Shop: "clear all" next to the active filters. */
.gs-root .gs-active .gs-active-clear { margin-left: 4px; padding: 0 0 2px; border-bottom: 1px solid currentColor; min-height: 0; font: 500 13px/1.2 var(--gs-sans); color: var(--gs-accent); }
.gs-root .gs-active .gs-active-clear:hover { color: var(--gs-accent-dark); }

/* Care cards: line icon on top. */
.gs-care-card .gs-care-icon { width: 46px; height: 46px; color: var(--gs-accent); flex: none; }
