/* Ekruline reference design adapted for Storefront V2.
   Font files are published as immutable release artifacts; no remote request. */
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/storefront/themes/ekruline/fonts/cormorant-garamond-latin-ext.9dc38267bdee93a6.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/storefront/themes/ekruline/fonts/cormorant-garamond-latin.5d618c462b7a5b74.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: "Manrope";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/storefront/themes/ekruline/fonts/manrope-latin-ext.ce093b341d9c1065.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/storefront/themes/ekruline/fonts/manrope-latin.e310b55a7fd9677f.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;
}
:root {
  --ink: #251b1b;
  --muted: #746767;
  --soft-muted: #9c8f8c;
  --wine: #6b2638;
  --wine-2: #8e4055;
  --wine-deep: #35151f;
  --rose: #dcb7b7;
  --blush: #f3e6e4;
  --blush-2: #ead7d4;
  --powder: #eee8e5;
  --cream: #fbf8f4;
  --paper: #fffdf9;
  --white: #fff;
  --line: rgba(50, 31, 31, .13);
  --line-strong: rgba(50, 31, 31, .24);
  --success: #2d6554;
  --warning: #a45c2e;
  --shadow-sm: 0 12px 35px rgba(53, 21, 31, .08);
  --shadow-md: 0 24px 70px rgba(53, 21, 31, .13);
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --radius-xl: 42px;
  --container: 1380px;
  --header-h: 78px;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.is-locked { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { border: 0; background: none; cursor: pointer; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--wine);
  outline-offset: 3px;
}
::selection { background: var(--wine); color: #fff; }

.container {
  width: min(calc(100% - 48px), var(--container));
  margin-inline: auto;
}
.container--narrow { width: min(calc(100% - 48px), 1120px); margin-inline: auto; }
.section { padding: 112px 0; }
.section--tight { padding: 72px 0; }
.section--paper { background: var(--paper); }
.section--blush { background: var(--blush); }
.section--wine { background: var(--wine-deep); color: #fff; }
.section--no-top { padding-top: 0; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: var(--wine);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.section--wine .eyebrow { color: #e7c6cc; }
.display {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(52px, 6.4vw, 104px);
  font-weight: 500;
  line-height: .88;
  letter-spacing: -.045em;
}
.heading-xl {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(42px, 5vw, 76px);
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.035em;
}
.heading-lg {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(36px, 4vw, 62px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.03em;
}
.heading-md {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -.02em;
}
.lead { margin: 22px 0 0; max-width: 630px; color: var(--muted); font-size: 17px; line-height: 1.8; }
.section--wine .lead { color: rgba(255,255,255,.72); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 44px; }
.section-head__copy { max-width: 760px; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid currentColor;
  padding-bottom: 5px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.text-link svg { width: 16px; height: 16px; transition: transform .25s ease; }
.text-link:hover svg { transform: translateX(4px); }

.btn {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn svg { width: 17px; height: 17px; }
.btn--primary { background: var(--wine); color: #fff; box-shadow: 0 12px 30px rgba(107,38,56,.2); }
.btn--primary:hover { background: var(--wine-deep); }
.btn--dark { background: var(--ink); color: #fff; }
.btn--light { background: #fff; color: var(--ink); }
.btn--outline { border-color: var(--line-strong); background: transparent; }
.btn--outline:hover { border-color: var(--ink); background: #fff; }
.btn--ghost { border-color: rgba(255,255,255,.35); color: #fff; }
.btn--ghost:hover { background: #fff; color: var(--ink); border-color: #fff; }
.btn--wide { width: 100%; }
.btn--square { width: 52px; padding: 0; }

.icon-button {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  position: relative;
  border-radius: 50%;
  transition: background .2s ease;
}
.icon-button:hover { background: rgba(37,27,27,.06); }
.icon-button svg { width: 20px; height: 20px; }
.icon-button__count {
  min-width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  position: absolute;
  top: 0;
  right: -2px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--wine);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
}
.icon-button__count:empty { display: none; }

.announcement {
  min-height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 60;
  background: var(--wine-deep);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.announcement__inner { display: flex; align-items: center; justify-content: center; gap: 28px; }
.announcement__inner a { display:inline-flex; align-items:center; gap:9px; border-bottom:1px solid rgba(255,255,255,.5); line-height:1.8; }
.announcement__inner a:hover { border-bottom-color:currentColor; }
.announcement__dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.55); }

.site-header {
  height: var(--header-h);
  position: sticky;
  top: 0;
  z-index: 55;
  border-bottom: 1px solid transparent;
  background: rgba(251,248,244,.9);
  backdrop-filter: blur(18px);
  transition: box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.site-header.is-scrolled { border-color: var(--line); box-shadow: 0 12px 36px rgba(53,21,31,.06); background: rgba(251,248,244,.97); }
.site-header__inner {
  height: 100%;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 30px;
}
.site-nav,
.site-nav > ul { display: flex; align-items: center; }
.site-nav > ul {
  gap: clamp(18px, 2.3vw, 36px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.site-nav__item { display: flex; align-items: center; }
.site-nav__trigger-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1;
  white-space: nowrap;
}
.site-nav__item > a,
.site-nav__trigger-row > a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.site-nav__item > a::after,
.site-nav__trigger-row > a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--wine); transition:right .25s ease; }
.site-nav__item > a:hover::after,
.site-nav__item > a.is-active::after,
.site-nav__trigger-row > a:hover::after,
.site-nav__trigger-row > a.is-active::after { right:0; }
.site-nav__disclosure {
  width: 16px;
  height: 20px;
  flex: 0 0 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  color: var(--ink);
  line-height: 0;
}
.site-nav__disclosure svg {
  width: 10px;
  height: 10px;
  display: block;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.25;
  transform: rotate(0deg);
  transform-origin: 50% 50%;
  transition: transform .22s ease;
}
.site-nav__item--mega[data-ob-mega-open="true"] .site-nav__disclosure svg,
.site-nav__item--mega:hover .site-nav__disclosure svg,
.site-nav__item--mega:focus-within .site-nav__disclosure svg { transform: rotate(180deg); }
.ekruline-mega-panel {
  width: 100%;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 75;
  padding: 30px 0 34px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(251,248,244,.985);
  box-shadow: 0 26px 50px rgba(53,21,31,.1);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-10px);
  transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
}
.site-nav__item--mega:hover .ekruline-mega-panel,
.site-nav__item--mega:focus-within .ekruline-mega-panel,
.site-nav__item--mega[data-ob-mega-open="true"] .ekruline-mega-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s;
}
.ekruline-mega-panel__inner {
  display: grid;
  grid-template-columns: minmax(180px,.72fr) minmax(0,2.4fr);
  gap: clamp(36px,6vw,92px);
}
.ekruline-mega-panel__intro { display: grid; align-content: start; gap: 13px; }
.ekruline-mega-panel__intro strong { font-family: var(--serif); font-size: 37px; line-height: 1; }
.ekruline-mega-panel__intro > a { color: var(--wine); font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.ekruline-mega-panel__groups {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 34px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ekruline-mega-panel__group > ul { display: grid; gap: 9px; margin: 16px 0 0; padding: 0; list-style: none; }
.ekruline-mega-panel__heading { font-family: var(--serif); font-size: 21px; font-weight: 600; }
.ekruline-mega-panel__group li a { color: var(--muted); font-size: 12px; transition: color .18s ease, transform .18s ease; }
.ekruline-mega-panel__group li a:hover { color: var(--wine); transform: translateX(3px); }
.brand-mark { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.brand-mark__monogram {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 50%;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -.08em;
}
.brand-mark__word { display:flex; flex-direction:column; align-items:center; line-height:1; }
.brand-mark__word strong { font-family: var(--serif); font-size: 25px; font-weight: 600; letter-spacing: .16em; }
.brand-mark__word small { margin-top: 4px; font-size: 7px; font-weight: 700; letter-spacing: .34em; text-transform: uppercase; }
.site-header__actions { display:flex; align-items:center; justify-content:flex-end; gap:2px; }
.header-account { margin-right: 8px; font-size: 11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.menu-toggle { display:none; }

.mobile-menu {
  width: min(430px, 92vw);
  height: 100dvh;
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 100;
  padding: 30px;
  background: var(--cream);
  transform: translateX(-105%);
  transition: transform .35s cubic-bezier(.22,.8,.2,1);
  overflow-y: auto;
}
.mobile-menu.is-open { transform: translateX(0); }
.mobile-menu__head { display:flex; align-items:center; justify-content:space-between; padding-bottom:25px; border-bottom:1px solid var(--line); }
.mobile-menu__nav { display:grid; padding:24px 0; border-bottom:1px solid var(--line); }
.mobile-menu__nav a { display:flex; justify-content:space-between; align-items:center; padding:14px 0; font-family:var(--serif); font-size:32px; line-height:1; }
.mobile-menu__nav svg { width:18px; }
.mobile-menu__meta { display:grid; gap:13px; padding-top:24px; color:var(--muted); font-size:13px; }

.overlay {
  position: fixed;
  inset: 0;
  z-index: 90;
  background: rgba(25, 13, 16, .46);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.overlay.is-open { opacity: 1; visibility: visible; }

.search-panel {
  position: fixed;
  inset: 0 0 auto;
  z-index: 110;
  padding: 36px 0 54px;
  background: var(--cream);
  transform: translateY(-105%);
  transition: transform .4s cubic-bezier(.22,.8,.2,1);
  box-shadow: var(--shadow-md);
}
.search-panel.is-open { transform: translateY(0); }
.search-panel__head { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.search-panel__title { font-family:var(--serif); font-size:32px; font-weight:600; }
.search-form { display:flex; align-items:center; gap:14px; margin-top:28px; border-bottom:1px solid var(--ink); }
.search-form svg { width:24px; }
.search-form input { width:100%; height:64px; border:0; background:transparent; font-family:var(--serif); font-size:34px; outline:0; }
.search-results { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:28px; }
.search-result { display:grid; grid-template-columns:76px 1fr; gap:14px; align-items:center; padding:10px; border:1px solid var(--line); background:var(--paper); }
.search-result img { width:76px; aspect-ratio:5/6; object-fit:cover; background:var(--powder); }
.search-result strong { display:block; font-family:var(--serif); font-size:19px; line-height:1.05; }
.search-result small { color:var(--muted); }
.search-empty { grid-column:1/-1; padding:32px 0; color:var(--muted); }

.cart-drawer {
  width: min(480px, 94vw);
  height: 100dvh;
  display:flex;
  flex-direction:column;
  position:fixed;
  inset:0 0 0 auto;
  z-index:120;
  background:var(--cream);
  transform:translateX(105%);
  transition:transform .4s cubic-bezier(.22,.8,.2,1);
}
.cart-drawer.is-open { transform:translateX(0); }
.cart-drawer__head { display:flex; align-items:center; justify-content:space-between; padding:24px 28px; border-bottom:1px solid var(--line); }
.cart-drawer__title { font-family:var(--serif); font-size:32px; font-weight:600; }
.cart-drawer__body { flex:1; overflow-y:auto; padding:16px 28px; }
.cart-empty { height:100%; display:grid; place-items:center; text-align:center; color:var(--muted); }
.cart-empty svg { width:42px; height:42px; margin:0 auto 18px; color:var(--wine); }
.cart-item { display:grid; grid-template-columns:96px 1fr auto; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
.cart-item img { width:96px; aspect-ratio:5/6; object-fit:cover; background:var(--powder); }
.cart-item__name { font-family:var(--serif); font-size:21px; line-height:1.05; }
.cart-item__meta { margin-top:7px; color:var(--muted); font-size:12px; }
.cart-item__price { margin-top:9px; font-weight:700; }
.cart-item__remove { align-self:start; padding:2px; color:var(--soft-muted); }
.cart-drawer__foot { padding:24px 28px 30px; border-top:1px solid var(--line); background:var(--paper); }
.cart-progress { margin-bottom:20px; }
.cart-progress__line { height:4px; overflow:hidden; border-radius:99px; background:var(--blush-2); }
.cart-progress__fill { height:100%; width:72%; background:var(--wine); border-radius:inherit; }
.cart-progress p { margin:0 0 10px; color:var(--muted); font-size:12px; }
.cart-total { display:flex; justify-content:space-between; align-items:end; margin-bottom:18px; }
.cart-total span { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.cart-total strong { font-family:var(--serif); font-size:29px; }

.toast {
  min-width: 280px;
  max-width: calc(100vw - 32px);
  display:flex;
  align-items:center;
  gap:12px;
  position:fixed;
  left:50%;
  bottom:26px;
  z-index:150;
  padding:14px 18px;
  border-radius:999px;
  background:var(--ink);
  color:#fff;
  box-shadow:var(--shadow-md);
  opacity:0;
  transform:translate(-50%, 20px);
  pointer-events:none;
  transition:.3s ease;
}
.toast.is-visible { opacity:1; transform:translate(-50%,0); }
.toast svg { width:18px; height:18px; }

.hero {
  min-height: calc(100vh - 113px);
  display:grid;
  align-items:center;
  position:relative;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(circle at 79% 13%, rgba(220,183,183,.36), transparent 26%),
    linear-gradient(130deg, var(--cream) 0 58%, #eadbd7 58% 100%);
}
.hero::before {
  content:"";
  width:460px;
  height:460px;
  position:absolute;
  left:-280px;
  bottom:-230px;
  border:1px solid rgba(107,38,56,.16);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(107,38,56,.025),0 0 0 140px rgba(107,38,56,.025);
}
.hero__inner { min-height:inherit; display:grid; grid-template-columns:minmax(0, .95fr) minmax(580px,1.2fr); align-items:center; gap:48px; padding-top:54px; padding-bottom:54px; }
.hero__content { position:relative; z-index:2; max-width:650px; }
.hero__title em { display:block; color:var(--wine); font-weight:400; }
.hero__copy { max-width:535px; margin:25px 0 31px; color:var(--muted); font-size:17px; line-height:1.8; }
.hero__actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero__micro { display:flex; flex-wrap:wrap; gap:26px; margin-top:38px; padding-top:24px; border-top:1px solid var(--line); }
.hero__micro-item { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:11px; font-weight:600; letter-spacing:.04em; }
.hero__micro-item svg { width:17px; color:var(--wine); }
.hero__visual { height:min(690px, 74vh); min-height:560px; position:relative; }
.hero-card { position:absolute; overflow:hidden; background:#e3d7d3; box-shadow:var(--shadow-md); }
.hero-card img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.22,.8,.2,1); }
.hero-card:hover img { transform:scale(1.035); }
.hero-card--main { width:54%; height:84%; right:9%; top:6%; border-radius:180px 180px 18px 18px; }
.hero-card--left { width:31%; height:49%; left:2%; bottom:3%; border-radius:100px 100px 12px 12px; }
.hero-card--top { width:28%; height:39%; right:0; top:0; border:10px solid rgba(251,248,244,.82); border-radius:14px; }
.hero-card__tag { position:absolute; left:16px; bottom:16px; padding:8px 13px; border-radius:999px; background:rgba(255,255,255,.9); backdrop-filter:blur(8px); font-size:9px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.hero__seal {
  width:120px;
  height:120px;
  display:grid;
  place-items:center;
  position:absolute;
  left:27%;
  top:5%;
  z-index:3;
  border-radius:50%;
  background:var(--wine);
  color:#fff;
  transform:rotate(-10deg);
  box-shadow:var(--shadow-sm);
}
.hero__seal span { max-width:80px; text-align:center; font-family:var(--serif); font-size:18px; line-height:1.05; }
.hero__scroll { display:flex; align-items:center; gap:10px; position:absolute; left:50%; bottom:17px; z-index:3; color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; transform:translateX(-50%) rotate(-90deg); transform-origin:center; }

.value-strip { border-bottom:1px solid var(--line); background:var(--paper); }
.value-strip__grid { display:grid; grid-template-columns:repeat(4,1fr); }
.value-item { min-height:115px; display:flex; align-items:center; gap:16px; padding:24px 32px; border-right:1px solid var(--line); }
.value-item:last-child { border:0; }
.value-item svg { width:27px; height:27px; color:var(--wine); }
.value-item strong { display:block; font-family:var(--serif); font-size:21px; line-height:1; }
.value-item span { display:block; margin-top:6px; color:var(--muted); font-size:11px; }

.need-grid { display:grid; grid-template-columns:1.1fr .9fr .9fr; gap:18px; }
.need-card { min-height:0; aspect-ratio:5/6; position:relative; overflow:hidden; border-radius:var(--radius-md); background:var(--powder); }
.need-card img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.need-card:hover img { transform:scale(1.035); }
.need-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(25,12,15,.72), transparent 55%); }
.need-card__content { position:absolute; left:28px; right:28px; bottom:27px; z-index:2; color:#fff; }
.need-card__number { position:absolute; right:22px; top:17px; z-index:2; color:rgba(255,255,255,.78); font-family:var(--serif); font-size:20px; }
.need-card h3 { margin:0; font-family:var(--serif); font-size:38px; font-weight:500; line-height:1; }
.need-card p { max-width:340px; margin:12px 0 18px; color:rgba(255,255,255,.76); font-size:13px; }
.need-card .text-link { font-size:10px; }

.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px 18px; }
.product-grid--three { grid-template-columns:repeat(3,1fr); }
.product-card { min-width:0; position:relative; }
.product-card__media { position:relative; overflow:hidden; border-radius:var(--radius-sm); background:#eee8e5; }
.product-card__media > a { display:block; }
.product-card__image { width:100%; aspect-ratio:5/6; object-fit:cover; object-position:center; transition:transform .65s cubic-bezier(.22,.8,.2,1), opacity .25s ease; }
.product-card:hover .product-card__image { transform:scale(1.025); }
.product-card__badge { position:absolute; left:12px; top:12px; z-index:2; padding:7px 10px; border-radius:999px; background:rgba(255,255,255,.91); backdrop-filter:blur(8px); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.product-card__discount { position:absolute; left:12px; top:44px; z-index:2; padding:5px 8px; border-radius:999px; background:var(--wine); color:#fff; font-size:9px; font-weight:700; }
.product-card__wish { width:38px; height:38px; display:grid; place-items:center; position:absolute; right:11px; top:11px; z-index:3; border-radius:50%; background:rgba(255,255,255,.88); backdrop-filter:blur(8px); transition:.2s; }
.product-card__wish:hover, .product-card__wish.is-active { background:var(--wine); color:#fff; }
.product-card__wish svg { width:17px; }
.product-card__quick-trigger { min-height:45px; position:absolute; left:12px; right:12px; bottom:12px; z-index:3; background:rgba(255,255,255,.93); backdrop-filter:blur(10px); color:var(--ink); opacity:0; transform:translateY(10px); transition:.25s ease; }
.product-card:hover .product-card__quick-trigger { opacity:1; transform:translateY(0); }
.product-card__quick { position:absolute; inset:auto 10px 10px; z-index:5; padding:14px; border-radius:10px; background:rgba(255,253,249,.97); box-shadow:var(--shadow-md); opacity:0; visibility:hidden; transform:translateY(8px); transition:.25s ease; }
.product-card__quick.is-open { opacity:1; visibility:visible; transform:translateY(0); }
.product-card__quick-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; font-size:11px; font-weight:700; }
.product-card__quick-sizes { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; }
.product-card__quick-sizes button { min-height:32px; border:1px solid var(--line); border-radius:4px; font-size:10px; font-weight:700; }
.product-card__quick-sizes button:hover { border-color:var(--wine); background:var(--wine); color:#fff; }
.product-card__info { padding:15px 4px 0; }
.product-card__topline { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.product-card__title { margin:8px 0 7px; font-family:var(--serif); font-size:23px; font-weight:600; line-height:1.05; }
.product-card__title a:hover { color:var(--wine); }
.product-card__name { min-height:38px; margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.product-card__bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:12px; }
.product-card__price { display:flex; align-items:baseline; gap:8px; }
.product-card__price strong { font-size:14px; }
.product-card__price del { color:var(--soft-muted); font-size:11px; }
.swatch-list { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.swatch {
  width:20px;
  height:20px;
  position:relative;
  border:2px solid var(--paper);
  border-radius:50%;
  background:var(--swatch, #ddd);
  box-shadow:0 0 0 1px var(--line-strong);
  transition:transform .2s, box-shadow .2s;
}
.swatch:hover, .swatch.is-active { transform:scale(1.12); box-shadow:0 0 0 1.5px var(--ink); }
.swatch--light::after { content:""; position:absolute; inset:1px; border:1px solid rgba(0,0,0,.05); border-radius:50%; }
.swatch-more { color:var(--muted); font-size:10px; }

.fit-section { overflow:hidden; }
.fit-grid { display:grid; grid-template-columns:.9fr 1.1fr; min-height:660px; border-radius:var(--radius-lg); overflow:hidden; background:var(--wine-deep); color:#fff; }
.fit-visual { position:relative; min-height:520px; }
.fit-visual img { width:100%; height:100%; object-fit:cover; }
.fit-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent 45%,rgba(53,21,31,.54)); }
.fit-visual__note { max-width:265px; position:absolute; left:30px; bottom:30px; z-index:2; padding:18px; border:1px solid rgba(255,255,255,.28); border-radius:12px; background:rgba(53,21,31,.35); backdrop-filter:blur(12px); }
.fit-visual__note strong { display:block; font-family:var(--serif); font-size:24px; }
.fit-visual__note span { color:rgba(255,255,255,.7); font-size:12px; }
.fit-content { display:flex; flex-direction:column; justify-content:center; padding:70px clamp(38px,6vw,92px); }
.fit-content .heading-lg { max-width:530px; }
.fit-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:34px; }
.field { display:grid; gap:8px; }
.field--full { grid-column:1/-1; }
.field label { font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.field select, .field input, .field textarea { width:100%; min-height:54px; padding:0 16px; border:1px solid rgba(255,255,255,.25); border-radius:7px; background:rgba(255,255,255,.07); color:#fff; outline:none; }
.field select option { color:var(--ink); }
.field input::placeholder { color:rgba(255,255,255,.45); }
.fit-result { display:none; margin-top:20px; padding:18px; border-radius:10px; background:rgba(255,255,255,.1); }
.fit-result.is-visible { display:block; }
.fit-result strong { font-family:var(--serif); font-size:22px; }
.fit-result p { margin:5px 0 0; color:rgba(255,255,255,.73); font-size:12px; }

.editorial-grid { display:grid; grid-template-columns:1fr 1fr; min-height:720px; }
.editorial-copy { display:flex; flex-direction:column; justify-content:center; padding:80px clamp(30px,8vw,120px); background:var(--blush); }
.editorial-copy blockquote { margin:32px 0; font-family:var(--serif); font-size:clamp(29px,3.1vw,48px); line-height:1.12; }
.editorial-copy p { max-width:530px; color:var(--muted); }
.editorial-visual { position:relative; overflow:hidden; background:#e1d6d0; }
.editorial-visual img { width:100%; height:100%; object-fit:cover; }
.editorial-visual__caption { position:absolute; right:24px; bottom:24px; padding:12px 16px; background:rgba(255,255,255,.9); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }

.collection-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:95px; gap:18px; }
.collection-card { position:relative; overflow:hidden; border-radius:var(--radius-md); background:var(--powder); }
.collection-card:nth-child(1) { grid-column:1/8; grid-row:1/6; }
.collection-card:nth-child(2) { grid-column:8/13; grid-row:1/4; }
.collection-card:nth-child(3) { grid-column:8/13; grid-row:4/7; }
.collection-card:nth-child(4) { grid-column:1/8; grid-row:6/8; }
.collection-card img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.collection-card:hover img { transform:scale(1.035); }
.collection-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(30,15,19,.68),transparent 60%); }
.collection-card__content { position:absolute; left:25px; right:25px; bottom:23px; z-index:2; color:#fff; }
.collection-card h3 { margin:0; font-family:var(--serif); font-size:35px; font-weight:500; }
.collection-card p { margin:4px 0 0; color:rgba(255,255,255,.75); font-size:12px; }
.collection-card--text { display:flex; align-items:center; padding:30px 38px; background:var(--wine); color:#fff; }
.collection-card--text::after { display:none; }
.collection-card--text .collection-card__content { position:static; }
.collection-card--text h3 { font-size:30px; }

.palette { position:relative; overflow:hidden; }
.palette__grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:center; }
.palette__wheel { aspect-ratio:1; position:relative; }
.palette__center { width:38%; aspect-ratio:1; display:grid; place-items:center; position:absolute; left:50%; top:50%; z-index:2; border-radius:50%; background:var(--paper); box-shadow:var(--shadow-md); transform:translate(-50%,-50%); text-align:center; }
.palette__center strong { display:block; font-family:var(--serif); font-size:46px; line-height:.9; }
.palette__center span { color:var(--muted); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.palette-dot { width:22%; aspect-ratio:1; display:grid; place-items:center; position:absolute; border-radius:50%; background:var(--dot); border:9px solid var(--cream); box-shadow:var(--shadow-sm); }
.palette-dot span { padding:4px 8px; border-radius:99px; background:rgba(255,255,255,.88); font-size:9px; font-weight:700; }
.palette-dot:nth-child(2){left:38%;top:0}.palette-dot:nth-child(3){right:4%;top:14%}.palette-dot:nth-child(4){right:0;bottom:20%}.palette-dot:nth-child(5){right:27%;bottom:0}.palette-dot:nth-child(6){left:10%;bottom:7%}.palette-dot:nth-child(7){left:0;top:30%}.palette-dot:nth-child(8){left:15%;top:5%}
.palette__list { display:grid; grid-template-columns:repeat(2,1fr); gap:0 30px; margin-top:34px; }
.palette__item { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:15px 0; border-bottom:1px solid var(--line); }
.palette__item span { display:flex; align-items:center; gap:12px; font-family:var(--serif); font-size:21px; }
.palette__chip { width:18px; height:18px; border-radius:50%; background:var(--chip); box-shadow:0 0 0 1px var(--line-strong); }
.palette__item small { color:var(--muted); }
.ekruline-palette-cta { margin-top:28px; }

.principles { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.16); }
.principle { min-height:320px; padding:48px 32px; background:var(--wine-deep); }
.principle__num { color:#d4abb5; font-family:var(--serif); font-size:20px; }
.principle svg { width:34px; height:34px; margin:38px 0 26px; }
.principle h3 { margin:0; font-family:var(--serif); font-size:30px; font-weight:500; }
.principle p { margin:13px 0 0; color:rgba(255,255,255,.62); font-size:12px; line-height:1.7; }

.journal-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:18px; }
.journal-card { border-radius:var(--radius-md); overflow:hidden; background:var(--paper); }
.journal-card__media { height:var(--ekruline-journal-media-height, 320px); overflow:hidden; }
.journal-card__media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.journal-card:hover img { transform:scale(1.03); }
.journal-card__body { padding:25px; }
.journal-card__meta { color:var(--wine); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.journal-card h3 { margin:12px 0 10px; font-family:var(--serif); font-size:30px; line-height:1.02; }
.journal-card p { margin:0; color:var(--muted); font-size:12px; }

.social-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; }
.social-tile { position:relative; overflow:hidden; aspect-ratio:1; background:var(--powder); }
.social-tile img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.social-tile:hover img { transform:scale(1.045); }
.social-tile::after { content:""; position:absolute; inset:0; background:rgba(53,21,31,.25); opacity:0; transition:.25s; }
.social-tile:hover::after { opacity:1; }
.social-tile svg { width:24px; height:24px; position:absolute; left:50%; top:50%; z-index:2; color:#fff; opacity:0; transform:translate(-50%,-50%) scale(.8); transition:.25s; }
.social-tile:hover svg { opacity:1; transform:translate(-50%,-50%) scale(1); }
.ekruline-lookbook-copy { max-width:700px; margin:-28px 0 34px; }
.ekruline-social-placeholder { aspect-ratio:1; display:grid; place-items:center; align-content:center; gap:9px; padding:14px; color:var(--wine); text-align:center; background:linear-gradient(145deg,var(--powder),var(--blush)); }
.ekruline-social-placeholder::before { content:""; width:70%; aspect-ratio:1; position:absolute; border:1px solid rgba(107,38,56,.12); border-radius:50%; }
.ekruline-social-placeholder span { z-index:1; font-family:var(--serif); font-size:38px; }
.ekruline-social-placeholder small { z-index:1; color:var(--muted); font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
.newsletter { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; margin-top:70px; padding:54px 60px; border-radius:var(--radius-lg); background:var(--blush); }
.newsletter h3 { margin:0; font-family:var(--serif); font-size:46px; line-height:1; }
.newsletter p { margin:12px 0 0; color:var(--muted); }
.newsletter-form { display:flex; border-bottom:1px solid var(--ink); }
.newsletter-form input { flex:1; min-width:0; height:56px; border:0; background:transparent; outline:0; }
.newsletter-form button { font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.newsletter-form :disabled { cursor:not-allowed; opacity:.62; }
.ekruline-newsletter-notice { font-size:10px; }

.site-footer { padding:78px 0 30px; background:#1e1215; color:#fff; }
.footer-top { display:grid; grid-template-columns:1.2fr repeat(3,.7fr); gap:55px; padding-bottom:60px; }
.footer-brand .brand-mark { justify-content:flex-start; color:#fff; }
.footer-brand .brand-mark__monogram { border-color:#fff; }
.footer-brand p { max-width:360px; margin:24px 0; color:rgba(255,255,255,.58); font-size:12px; }
.footer-social { display:flex; gap:8px; }
.footer-social a { width:36px; height:36px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:50%; }
.footer-social a:hover { background:#fff; color:var(--ink); }
.footer-social svg { width:15px; }
.footer-col h4 { margin:0 0 20px; color:rgba(255,255,255,.45); font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.footer-col a { display:block; padding:6px 0; color:rgba(255,255,255,.76); font-size:12px; }
.footer-col a:hover { color:#fff; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-top:25px; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.42); font-size:10px; }
.footer-payments { display:flex; gap:8px; }
.payment-chip { padding:5px 9px; border:1px solid rgba(255,255,255,.18); border-radius:4px; color:rgba(255,255,255,.7); font-size:8px; font-weight:700; }
.footer-obrolo { display:flex; align-items:center; gap:7px; }
.footer-obrolo strong { color:rgba(255,255,255,.74); }

.page-hero { padding:65px 0 54px; border-bottom:1px solid var(--line); background:linear-gradient(115deg,var(--blush),var(--cream)); }
.page-hero__inner { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:60px; }
.page-hero p { max-width:560px; margin:0; color:var(--muted); }
.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:24px; color:var(--muted); font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.breadcrumb svg { width:12px; }

.catalog { padding:48px 0 110px; }
.catalog-toolbar { min-height:60px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.catalog-toolbar__left, .catalog-toolbar__right { display:flex; align-items:center; gap:13px; }
.catalog-count { color:var(--muted); font-size:12px; }
.toolbar-button { min-height:40px; display:flex; align-items:center; gap:8px; padding:0 13px; border:1px solid var(--line); border-radius:999px; background:var(--paper); font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.toolbar-button svg { width:15px; }
.view-switch { display:flex; padding:3px; border:1px solid var(--line); border-radius:999px; background:var(--paper); }
.view-switch button { width:34px; height:32px; display:grid; place-items:center; border-radius:999px; color:var(--muted); }
.view-switch button.is-active { background:var(--ink); color:#fff; }
.view-switch svg { width:15px; }
.sort-select { min-height:40px; padding:0 38px 0 14px; border:1px solid var(--line); border-radius:999px; background:var(--paper); font-size:11px; outline:0; }
.catalog-layout { display:grid; grid-template-columns:240px 1fr; gap:45px; padding-top:30px; }
.filter-sidebar { align-self:start; position:sticky; top:calc(var(--header-h) + 24px); }
.filter-group { padding:0 0 22px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.filter-group__title { display:flex; align-items:center; justify-content:space-between; width:100%; padding:0 0 15px; font-size:11px; font-weight:700; letter-spacing:.075em; text-transform:uppercase; }
.filter-group__title svg { width:15px; transition:transform .2s; }
.filter-group.is-collapsed .filter-group__title svg { transform:rotate(-90deg); }
.filter-group.is-collapsed .filter-group__body { display:none; }
.filter-options { display:grid; gap:11px; }
.check-option { display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; color:var(--muted); font-size:12px; }
.check-option__label { display:flex; align-items:center; gap:10px; }
.check-option input { width:16px; height:16px; margin:0; accent-color:var(--wine); }
.check-option small { color:var(--soft-muted); }
.filter-colors { display:flex; flex-wrap:wrap; gap:12px; }
.filter-color { display:grid; justify-items:center; gap:5px; color:var(--muted); font-size:8px; }
.filter-color input { display:none; }
.filter-color__dot { width:25px; height:25px; border:3px solid var(--cream); border-radius:50%; background:var(--dot); box-shadow:0 0 0 1px var(--line-strong); }
.filter-color input:checked + .filter-color__dot { box-shadow:0 0 0 2px var(--wine); }
.price-range { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:7px; }
.price-range input { width:100%; min-width:0; height:40px; padding:0 10px; border:1px solid var(--line); border-radius:6px; background:var(--paper); font-size:11px; }
.clear-filters { width:100%; min-height:42px; border:1px solid var(--line); border-radius:999px; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.clear-filters:hover { background:var(--ink); color:#fff; }
.active-filters { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 0; }
.filter-chip { display:flex; align-items:center; gap:7px; padding:8px 11px; border-radius:999px; background:var(--blush); color:var(--wine); font-size:9px; font-weight:700; }
.filter-chip svg { width:12px; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px 18px; }
.catalog-grid.is-two { grid-template-columns:repeat(2,1fr); }
.catalog-grid.is-two .product-card__image { aspect-ratio:5/6; }
.catalog-empty { grid-column:1/-1; min-height:420px; display:grid; place-items:center; text-align:center; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-md); }
.catalog-empty svg { width:40px; height:40px; margin:0 auto 14px; color:var(--wine); }
.catalog-empty h3 { margin:0; font-family:var(--serif); font-size:30px; }
.catalog-empty p { margin:8px 0 20px; color:var(--muted); }
.filter-mobile { display:none; }
.filter-drawer { width:min(400px,92vw); height:100dvh; position:fixed; inset:0 auto 0 0; z-index:120; padding:24px; background:var(--cream); overflow-y:auto; transform:translateX(-105%); transition:transform .35s ease; }
.filter-drawer.is-open { transform:translateX(0); }
.filter-drawer__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:25px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.filter-drawer__head strong { font-family:var(--serif); font-size:29px; }

.product-page { padding:28px 0 110px; }
.product-layout { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(400px,.72fr); gap:56px; align-items:start; }
.product-gallery { display:grid; grid-auto-columns:calc((100% - 12px)/2); grid-auto-flow:column; gap:12px; padding-bottom:8px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:inline mandatory; scrollbar-width:thin; }
.product-gallery__item { position:relative; overflow:hidden; background:var(--powder); cursor:zoom-in; }
.product-gallery__item:first-child { grid-row:auto; }
.product-gallery__item img { width:100%; height:auto; min-height:0; aspect-ratio:5/6; object-fit:cover; object-position:center; transition:transform .7s; }
.product-gallery__item:first-child img { min-height:0; }
.product-gallery__item:hover img { transform:scale(1.025); }
.gallery-zoom { width:38px; height:38px; display:grid; place-items:center; position:absolute; right:12px; bottom:12px; border-radius:50%; background:rgba(255,255,255,.87); }
.gallery-zoom svg { width:17px; }
.product-info { align-self:start; position:sticky; top:calc(var(--header-h) + 26px); padding:20px 0 0; }
.product-info__brand { color:var(--wine); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.product-info h1 { margin:14px 0 12px; font-family:var(--serif); font-size:clamp(37px,3.2vw,53px); font-weight:600; line-height:.98; }
.product-info__subtitle { margin:0; color:var(--muted); font-size:13px; }
.product-rating { display:flex; align-items:center; gap:8px; margin-top:17px; color:var(--muted); font-size:11px; }
.product-rating__stars { display:flex; gap:2px; color:var(--wine); }
.product-rating__stars svg { width:13px; fill:currentColor; }
.product-price { display:flex; align-items:baseline; gap:12px; margin-top:24px; }
.product-price strong { font-family:var(--serif); font-size:35px; }
.product-price del { color:var(--soft-muted); font-size:14px; }
.product-price__badge { padding:5px 8px; border-radius:999px; background:var(--wine); color:#fff; font-size:9px; font-weight:700; }
.product-tax { margin:3px 0 0; color:var(--muted); font-size:10px; }
.product-divider { height:1px; margin:27px 0; background:var(--line); }
.option-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; }
.option-head strong { font-size:11px; letter-spacing:.07em; text-transform:uppercase; }
.option-head span, .option-head button { color:var(--muted); font-size:10px; }
.product-colors { display:flex; flex-wrap:wrap; gap:13px; }
.product-color { display:grid; justify-items:center; gap:6px; min-width:41px; color:var(--muted); font-size:8px; }
.product-color__dot { width:31px; height:31px; border:4px solid var(--cream); border-radius:50%; background:var(--dot); box-shadow:0 0 0 1px var(--line-strong); transition:.2s; }
.product-color:hover .product-color__dot, .product-color.is-active .product-color__dot { box-shadow:0 0 0 2px var(--wine); transform:scale(1.05); }
.size-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:7px; }
.size-button { min-height:43px; border:1px solid var(--line); border-radius:5px; background:var(--paper); font-size:10px; font-weight:700; }
.size-button:hover, .size-button.is-active { border-color:var(--wine); background:var(--wine); color:#fff; }
.fit-note { display:flex; gap:10px; margin-top:13px; padding:13px 14px; border-radius:7px; background:var(--blush); color:var(--muted); font-size:10px; line-height:1.55; }
.fit-note svg { flex:0 0 auto; width:17px; color:var(--wine); }
.product-actions { display:grid; grid-template-columns:1fr 55px; gap:9px; margin-top:20px; }
.product-actions .btn { min-height:56px; }
.add-button { background:var(--wine); color:#fff; }
.add-button:hover { background:var(--wine-deep); }
.wish-button { width:55px; min-height:56px; display:grid; place-items:center; border:1px solid var(--line); border-radius:999px; background:var(--paper); }
.wish-button.is-active { background:var(--wine); color:#fff; }
.wish-button svg { width:20px; }
.buy-now { width:100%; min-height:51px; margin-top:9px; border:1px solid var(--ink); border-radius:999px; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.buy-now:hover { background:var(--ink); color:#fff; }
.product-benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:22px; }
.product-benefit { padding:14px 8px; border:1px solid var(--line); border-radius:7px; text-align:center; }
.product-benefit svg { width:20px; height:20px; margin:0 auto 8px; color:var(--wine); }
.product-benefit strong { display:block; font-family:var(--serif); font-size:16px; line-height:1; }
.product-benefit span { display:block; margin-top:4px; color:var(--muted); font-size:8px; }
.product-accordions { margin-top:28px; border-top:1px solid var(--line); }
.accordion { border-bottom:1px solid var(--line); }
.accordion__trigger { width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; text-align:left; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.accordion__trigger svg { width:16px; transition:transform .25s; }
.accordion.is-open .accordion__trigger svg { transform:rotate(45deg); }
.accordion__content { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.accordion.is-open .accordion__content { max-height:420px; }
.accordion__inner { padding:0 0 20px; color:var(--muted); font-size:12px; }
.accordion__inner ul { margin:10px 0 0; padding-left:18px; }

.product-story { margin-top:100px; }
.product-story__hero { display:grid; grid-template-columns:.9fr 1.1fr; min-height:620px; overflow:hidden; border-radius:var(--radius-lg); background:var(--blush); }
.product-story__copy { display:flex; flex-direction:column; justify-content:center; padding:60px clamp(35px,6vw,90px); }
.product-story__copy p { color:var(--muted); }
.product-story__features { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:26px; }
.product-story__feature { display:flex; align-items:center; gap:11px; padding:13px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.38); font-size:11px; font-weight:600; }
.product-story__feature svg { width:17px; color:var(--wine); }
.product-story__visual img { width:100%; height:100%; object-fit:cover; }
.product-specs { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:18px; background:var(--line); border:1px solid var(--line); }
.product-spec { min-height:165px; padding:30px; background:var(--paper); }
.product-spec__label { color:var(--wine); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.product-spec h3 { margin:14px 0 8px; font-family:var(--serif); font-size:25px; }
.product-spec p { margin:0; color:var(--muted); font-size:11px; }
.related { margin-top:105px; }

.modal { display:grid; place-items:center; position:fixed; inset:0; z-index:140; padding:24px; background:rgba(25,13,16,.55); opacity:0; visibility:hidden; transition:.25s; }
.modal.is-open { opacity:1; visibility:visible; }
.modal__dialog { width:min(820px,100%); max-height:90vh; overflow-y:auto; position:relative; padding:38px; border-radius:var(--radius-md); background:var(--cream); box-shadow:var(--shadow-md); transform:translateY(15px); transition:.25s; }
.modal.is-open .modal__dialog { transform:translateY(0); }
.modal__close { position:absolute; right:17px; top:17px; }
.modal h2 { margin:0; font-family:var(--serif); font-size:42px; }
.modal p { color:var(--muted); }
.size-table { width:100%; margin-top:24px; border-collapse:collapse; background:var(--paper); font-size:11px; }
.size-table th, .size-table td { padding:13px 10px; border:1px solid var(--line); text-align:center; }
.size-table th { background:var(--blush); font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.lightbox { display:grid; place-items:center; position:fixed; inset:0; z-index:145; padding:24px; background:rgba(20,10,12,.93); opacity:0; visibility:hidden; transition:.25s; }
.lightbox.is-open { opacity:1; visibility:visible; }
.lightbox img { max-width:min(900px,88vw); max-height:88vh; object-fit:contain; }
.lightbox__close { position:absolute; right:24px; top:24px; color:#fff; }
.lightbox__nav { width:48px; height:48px; display:grid; place-items:center; position:absolute; top:50%; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:#fff; transform:translateY(-50%); }
.lightbox__nav--prev { left:24px; }
.lightbox__nav--next { right:24px; }

.mobile-product-bar { display:none; }

@media (max-width: 1180px) {
  .site-nav { gap:18px; }
  .site-nav__item > a,
  .site-nav__trigger-row > a { font-size:10px; }
  .hero__inner { grid-template-columns:.85fr 1.15fr; }
  .hero-card--main { right:4%; }
  .product-grid { grid-template-columns:repeat(3,1fr); }
  .need-card { min-height:500px; }
  .catalog-layout { grid-template-columns:210px 1fr; gap:28px; }
  .size-grid { grid-template-columns:repeat(5,1fr); }
  .product-layout { gap:34px; }
  .product-gallery__item img,
  .product-gallery__item:first-child img { min-height:0; }
}

@media (max-width: 960px) {
  :root { --header-h: 68px; }
  .container, .container--narrow { width:min(calc(100% - 34px), var(--container)); }
  .section { padding:82px 0; }
  .site-header__inner { grid-template-columns:1fr auto 1fr; gap:12px; }
  .site-nav, .header-account { display:none; }
  .menu-toggle { display:grid; justify-self:start; }
  .site-header__actions .icon-button:nth-child(2) { display:none; }
  .hero { min-height:auto; }
  .hero__inner { grid-template-columns:1fr; padding-top:70px; padding-bottom:60px; }
  .hero__content { max-width:780px; }
  .hero__visual { height:650px; min-height:0; }
  .hero__seal { left:30%; }
  .hero__scroll { display:none; }
  .value-strip__grid { grid-template-columns:repeat(2,1fr); }
  .value-item:nth-child(2) { border-right:0; }
  .value-item:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .need-grid { grid-template-columns:1fr 1fr; }
  .need-card:first-child { grid-column:1/-1; min-height:620px; }
  .product-grid, .product-grid--three { grid-template-columns:repeat(2,1fr); }
  .fit-grid { grid-template-columns:1fr; }
  .fit-visual { min-height:620px; }
  .editorial-grid { grid-template-columns:1fr; }
  .editorial-visual { min-height:650px; order:-1; }
  .collection-grid { grid-auto-rows:80px; }
  .palette__grid { grid-template-columns:1fr; gap:48px; }
  .palette__wheel { max-width:620px; width:100%; margin:auto; }
  .principles { grid-template-columns:repeat(2,1fr); }
  .journal-grid { grid-template-columns:1fr 1fr; }
  .journal-card:first-child { grid-column:1/-1; }
  .social-grid { grid-template-columns:repeat(3,1fr); }
  .newsletter { grid-template-columns:1fr; gap:28px; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .search-results { grid-template-columns:repeat(2,1fr); }
  .page-hero__inner { grid-template-columns:1fr; gap:22px; }
  .filter-sidebar { display:none; }
  .catalog-layout { grid-template-columns:1fr; }
  .filter-mobile { display:flex; }
  .catalog-grid { grid-template-columns:repeat(2,1fr); }
  .catalog-grid.is-two { grid-template-columns:repeat(2,1fr); }
  .product-layout { grid-template-columns:1fr; }
  .product-info { position:static; padding-top:15px; }
  .product-gallery__item img,
  .product-gallery__item:first-child img { min-height:0; }
  .product-story__hero { grid-template-columns:1fr; }
  .product-story__visual { min-height:650px; order:-1; }
}

@media (max-width: 640px) {
  body { font-size:14px; }
  .container, .container--narrow { width:min(calc(100% - 24px), var(--container)); }
  .section { padding:66px 0; }
  .section--tight { padding:50px 0; }
  .announcement { min-height:31px; font-size:8px; }
  .announcement__inner span:nth-of-type(2), .announcement__dot:nth-of-type(2) { display:none; }
  .announcement__inner { gap:14px; }
  .brand-mark__monogram { width:29px; height:29px; font-size:15px; }
  .brand-mark__word strong { font-size:20px; }
  .brand-mark__word small { font-size:5px; }
  .site-header__actions { gap:0; }
  .site-header__actions .icon-button:first-child { display:none; }
  .icon-button { width:38px; height:38px; }
  .display { font-size:58px; }
  .heading-xl { font-size:48px; }
  .heading-lg { font-size:42px; }
  .section-head { align-items:start; flex-direction:column; margin-bottom:30px; }
  .section-head .text-link { align-self:flex-start; }
  .hero { background:linear-gradient(180deg,var(--cream) 0 52%,#eadbd7 52% 100%); }
  .hero__inner { gap:35px; padding-top:45px; padding-bottom:30px; }
  .hero__copy { margin:20px 0 24px; font-size:14px; }
  .hero__actions { display:grid; grid-template-columns:1fr 1fr; }
  .hero__actions .btn { padding:0 14px; min-height:48px; font-size:10px; }
  .hero__micro { gap:13px; margin-top:24px; padding-top:18px; }
  .hero__micro-item { font-size:9px; }
  .hero__visual { height:500px; }
  .hero-card--main { width:68%; height:81%; right:3%; top:5%; border-radius:120px 120px 12px 12px; }
  .hero-card--left { width:38%; height:43%; left:0; bottom:0; border-radius:80px 80px 10px 10px; }
  .hero-card--top { width:31%; height:31%; right:0; top:0; border-width:5px; }
  .hero__seal { width:86px; height:86px; left:22%; top:3%; }
  .hero__seal span { font-size:14px; }
  .value-item { min-height:102px; padding:18px 13px; gap:10px; }
  .value-item svg { width:22px; }
  .value-item strong { font-size:17px; }
  .value-item span { font-size:9px; line-height:1.35; }
  .need-grid { grid-template-columns:1fr; gap:12px; }
  .need-card, .need-card:first-child { grid-column:auto; min-height:470px; }
  .need-card h3 { font-size:33px; }
  .product-grid, .product-grid--three { gap:28px 9px; }
  .product-card__media { border-radius:5px; }
  .product-card__title { font-size:19px; }
  .product-card__name { min-height:36px; font-size:10px; }
  .product-card__topline { font-size:7px; }
  .product-card__price { display:grid; gap:0; }
  .product-card__price strong { font-size:12px; }
  .product-card__price del { font-size:9px; }
  .product-card__quick-trigger { display:none; }
  .product-card__badge { left:7px; top:7px; padding:5px 7px; font-size:7px; }
  .product-card__discount { left:7px; top:34px; font-size:7px; }
  .product-card__wish { width:32px; height:32px; right:7px; top:7px; }
  .swatch { width:17px; height:17px; }
  .fit-visual { min-height:470px; }
  .fit-content { padding:48px 23px; }
  .fit-form { grid-template-columns:1fr; }
  .field--full { grid-column:auto; }
  .editorial-visual { min-height:500px; }
  .editorial-copy { padding:55px 24px; }
  .collection-grid { display:grid; grid-template-columns:1fr; grid-auto-rows:auto; gap:12px; }
  .collection-card:nth-child(n) { grid-column:auto; grid-row:auto; min-height:430px; }
  .collection-card--text { min-height:210px !important; }
  .palette__list { grid-template-columns:1fr; }
  .palette__center strong { font-size:33px; }
  .palette-dot { border-width:5px; }
  .principles { grid-template-columns:1fr; }
  .principle { min-height:260px; }
  .journal-grid { grid-template-columns:1fr; }
  .journal-card:first-child { grid-column:auto; }
  .journal-card__media { height:min(var(--ekruline-journal-media-height, 280px), 280px); }
  .social-grid { grid-template-columns:repeat(2,1fr); }
  .newsletter { margin-top:45px; padding:38px 22px; border-radius:16px; }
  .newsletter h3 { font-size:37px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:35px 20px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
  .footer-payments { flex-wrap:wrap; }
  .search-panel { padding:22px 0 32px; }
  .search-form input { font-size:25px; }
  .search-results { grid-template-columns:1fr; max-height:55vh; overflow-y:auto; }
  .cart-drawer__head, .cart-drawer__body, .cart-drawer__foot { padding-left:20px; padding-right:20px; }
  .page-hero { padding:44px 0 39px; }
  .catalog { padding-top:25px; }
  .catalog-toolbar { align-items:flex-start; flex-direction:column; }
  .catalog-toolbar__right { width:100%; justify-content:space-between; }
  .view-switch { display:none; }
  .sort-select { flex:1; }
  .catalog-grid, .catalog-grid.is-two { gap:27px 8px; }
  .filter-drawer { padding:20px; }
  .product-page { padding-top:16px; padding-bottom:88px; }
  .product-page .breadcrumb { margin-bottom:15px; }
  .product-gallery { grid-auto-columns:86%; gap:5px; }
  .product-gallery__item:first-child { grid-column:auto; grid-row:auto; }
  .product-gallery__item img, .product-gallery__item:first-child img { min-height:0; aspect-ratio:5/6; }
  .product-info h1 { font-size:39px; }
  .size-grid { grid-template-columns:repeat(4,1fr); }
  .product-benefits { grid-template-columns:1fr 1fr 1fr; }
  .product-benefit strong { font-size:14px; }
  .product-story { margin-top:67px; }
  .product-story__visual { min-height:470px; }
  .product-story__copy { padding:45px 23px; }
  .product-story__features { grid-template-columns:1fr; }
  .product-specs { grid-template-columns:1fr; }
  .related { margin-top:70px; }
  .modal__dialog { padding:30px 17px 20px; }
  .modal h2 { font-size:34px; }
  .size-table { font-size:9px; }
  .size-table th, .size-table td { padding:9px 5px; }
  .lightbox__nav { width:38px; height:38px; }
  .lightbox__nav--prev { left:8px; }
  .lightbox__nav--next { right:8px; }
  .mobile-product-bar { display:grid; grid-template-columns:1fr auto; gap:8px; position:fixed; left:0; right:0; bottom:0; z-index:70; padding:10px 12px max(10px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(251,248,244,.96); backdrop-filter:blur(16px); }
  .mobile-product-bar .btn { min-height:49px; }
  .mobile-product-bar__price { display:flex; flex-direction:column; justify-content:center; padding:0 8px; }
  .mobile-product-bar__price small { color:var(--muted); font-size:8px; text-transform:uppercase; }
  .mobile-product-bar__price strong { font-family:var(--serif); font-size:22px; }
}

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


/* Storefront V2 compatibility: the reference layout above is intentionally
   preserved; these rules adapt its geometry to the SDK's server-rendered
   markup and catalog runtime without introducing client-only theme code. */
.ekruline-theme {
  --ink: var(--sf-text, #251b1b);
  --wine: var(--sf-accent, #6b2638);
  --cream: var(--sf-background, #fbf8f4);
  --container: var(--sf-content-width, 1380px);
  min-height: 100vh;
  overflow: clip;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
}

.ekruline-theme [hidden] { display: none !important; }
.ekruline-main { min-height: 48vh; }
.ekruline-page { min-height: 54vh; }
.ob-skip-link {
  position: fixed;
  left: 18px;
  top: -80px;
  z-index: 200;
  padding: 11px 16px;
  border-radius: 999px;
  background: var(--wine-deep);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  transition: top .2s ease;
}
.ob-skip-link:focus { top: 16px; }

.ekruline-mobile-navigation { display: none; }
.ekruline-mobile-navigation summary {
  list-style: none;
}
.ekruline-mobile-navigation summary::-webkit-details-marker { display: none; }
.hero-card { margin: 0; }
.hero__content:only-child {
  grid-column: 1 / -1;
  max-width: 760px;
  padding-block: 7vh;
}
.value-item > .value-item__index {
  width: 29px;
  flex: 0 0 auto;
  margin-top: 0;
  color: var(--wine);
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.fit-grid > .fit-content:first-child {
  grid-column: 1 / -1;
  max-width: 900px;
  min-height: 610px;
  margin-inline: auto;
}
.ekruline-fit-steps {
  display: grid;
  gap: 0;
  margin: 30px 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(255,255,255,.16);
}
.ekruline-fit-steps li {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 15px;
  padding: 17px 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.ekruline-fit-steps li > span {
  color: #d4abb5;
  font-family: var(--serif);
  font-size: 20px;
}
.ekruline-fit-steps strong {
  display: block;
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1.05;
}
.ekruline-fit-steps p {
  margin: 5px 0 0;
  color: rgba(255,255,255,.65);
  font-size: 11px;
}
.fit-content > .btn { align-self: flex-start; margin-top: 3px; }

.ekruline-editorial-placeholder,
.ekruline-product-placeholder,
.sf-product-card__image-placeholder {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 74% 21%, rgba(220,183,183,.58), transparent 29%),
    linear-gradient(145deg, #f1e5e1 0 48%, #e2d2ce 48% 100%);
}
.ekruline-editorial-placeholder::before,
.ekruline-product-placeholder::before,
.sf-product-card__image-placeholder::before {
  content: "";
  width: 43%;
  aspect-ratio: 1;
  position: absolute;
  left: -18%;
  bottom: -22%;
  border: 1px solid rgba(107,38,56,.14);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(107,38,56,.025), 0 0 0 68px rgba(107,38,56,.025);
}
.ekruline-editorial-placeholder::after,
.sf-product-card__image-placeholder::after {
  content: "CL";
  position: absolute;
  left: 50%;
  top: 50%;
  color: rgba(107,38,56,.34);
  font-family: var(--serif);
  font-size: clamp(38px, 5vw, 72px);
  letter-spacing: -.08em;
  transform: translate(-50%, -50%);
}
.ekruline-editorial-placeholder {
  width: 100%;
  height: 100%;
  min-height: inherit;
  display: block;
}
.need-card > .ekruline-editorial-placeholder,
.editorial-visual > .ekruline-editorial-placeholder {
  position: absolute;
  inset: 0;
}
.journal-card__media > .ekruline-editorial-placeholder {
  height: 100%;
}

/* Initial product cards rendered on the server. */
.product-card__image-link { display: block; }
.ekruline-product-placeholder {
  width: 100%;
  display: grid;
  place-items: center;
  aspect-ratio: 5 / 6;
}
.ekruline-product-placeholder > span {
  position: relative;
  z-index: 1;
  color: rgba(107,38,56,.38);
  font-family: var(--serif);
  font-size: clamp(34px, 4vw, 58px);
  letter-spacing: -.08em;
}
.product-card__info { min-width: 0; }
.product-card__title {
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.product-card__price .sf-money { white-space: nowrap; }
.product-card__bottom { min-height: 22px; }

/* Cards recreated after a catalog filter/sort operation have SDK markup.
   Preserve the same media/copy proportions and badge treatment. */
.ekruline-product-card > a {
  min-width: 0;
  display: block;
  position: relative;
}
.ekruline-product-card > a > img,
.ekruline-product-card > a > .sf-product-card__image-placeholder {
  width: 100%;
  display: block;
  aspect-ratio: 5 / 6;
  border-radius: var(--radius-sm);
  object-fit: cover;
}
.ekruline-product-card > a > img {
  background: var(--powder);
  transition: transform .65s cubic-bezier(.22,.8,.2,1);
}
.ekruline-product-card:hover > a > img { transform: scale(1.025); }
.ekruline-product-card > a > .sf-product-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  position: absolute;
  left: 12px;
  right: 12px;
  top: 12px;
  z-index: 2;
}
.ekruline-product-card > a > .sf-product-card__badges > span {
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.91);
  backdrop-filter: blur(8px);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.ekruline-product-card > a > .sf-product-card__copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 15px 4px 0;
}
.ekruline-product-card > a .sf-product-card__vendor {
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.ekruline-product-card > a .sf-product-card__title {
  margin: 8px 0 7px;
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 600;
  line-height: 1.05;
  overflow-wrap: anywhere;
}
.ekruline-product-card > a .sf-product-card__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 5px;
  font-size: 14px;
  font-weight: 700;
}
.ekruline-product-card > a .sf-product-card__price del {
  color: var(--soft-muted);
  font-size: 11px;
  font-weight: 400;
}
.ekruline-theme[data-show-vendor="false"] .sf-product-card__vendor { display: none; }
.ekruline-theme[data-card-density="compact"] .product-grid { gap: 20px 12px; }
.ekruline-theme[data-card-density="compact"] .product-card__info,
.ekruline-theme[data-card-density="compact"] .ekruline-product-card > a > .sf-product-card__copy {
  padding-top: 10px;
}

/* SDK breadcrumbs. */
.sf-breadcrumbs { margin-bottom: 24px; }
.sf-breadcrumbs ol {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
  list-style: none;
  text-transform: uppercase;
}
.sf-breadcrumbs li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.sf-breadcrumbs li:not(:last-child)::after {
  content: "/";
  color: var(--soft-muted);
}
.sf-breadcrumbs [aria-current="page"] { color: var(--ink); }

/* Catalog filters and runtime-updated result grid. */
.catalog-sort {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.catalog-sort select {
  min-height: 40px;
  padding: 0 38px 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-size: 11px;
  outline: 0;
}
.filter-sidebar h2 {
  margin: 0 0 24px;
  font-family: var(--serif);
  font-size: 29px;
  font-weight: 600;
}
.filter-sidebar .filter-group {
  margin: 0 0 22px;
  padding: 0 0 22px;
  border-bottom: 1px solid var(--line);
}
.filter-group__title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 0 15px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .075em;
  list-style: none;
  text-transform: uppercase;
}
.filter-group__title::-webkit-details-marker { display: none; }
.filter-group__chevron {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  transform-origin: 50% 50%;
  transition: transform .2s ease;
}
.filter-group:not([open]) .filter-group__chevron { transform: rotate(-45deg); }
.filter-options { display: grid; gap: 11px; }
.filter-values-scroll {
  max-height: 248px;
  padding: 2px 5px 6px 2px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.filter-values-scroll::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.filter-values-scroll:focus-visible {
  border-radius: 4px;
  outline: 1px solid var(--wine);
  outline-offset: 3px;
}
.filter-option {
  position: relative;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  color: var(--muted);
  cursor: pointer;
  font-size: 12px;
}
.filter-option input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--wine);
}
.filter-option:has(input:disabled) { cursor: not-allowed; }
.filter-option:has(input:disabled) .filter-option__label,
.filter-color:has(input:disabled) .filter-color__label {
  color: var(--soft-muted);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.filter-option [data-ob-filter-count] {
  color: var(--soft-muted);
  font-size: 10px;
}
.filter-colors {
  display: flex;
  flex-wrap: wrap;
  gap: 13px 12px;
}
.filter-color {
  position: relative;
  width: 42px;
  display: grid;
  justify-items: center;
  gap: 5px;
  color: var(--muted);
  cursor: pointer;
  font-size: 8px;
  text-align: center;
}
.filter-color input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}
.filter-color__dot {
  width: 27px;
  height: 27px;
  border: 3px solid var(--cream);
  border-radius: 50%;
  background: var(--dot);
  box-shadow: 0 0 0 1px var(--line-strong);
  transition: box-shadow .18s ease, transform .18s ease;
}
.filter-color:hover .filter-color__dot { transform: translateY(-1px); }
.filter-color input:checked + .filter-color__dot,
.filter-color input:focus-visible + .filter-color__dot {
  box-shadow: 0 0 0 2px var(--wine);
}
.filter-color:has(input:disabled) { cursor: not-allowed; }
.filter-color:has(input:disabled) .filter-color__dot {
  opacity: .42;
  filter: grayscale(.55);
}
.filter-color small { color: var(--soft-muted); font-size: 8px; }
.filter-option__stock-tip {
  position: absolute;
  z-index: 12;
  left: 50%;
  bottom: calc(100% + 8px);
  width: max-content;
  max-width: 150px;
  padding: 7px 9px;
  border-radius: 5px;
  background: var(--ink);
  color: #fff;
  box-shadow: 0 7px 20px rgba(37,27,27,.15);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .03em;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 4px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  visibility: hidden;
  white-space: nowrap;
}
[data-stock-unavailable="true"]:hover > .filter-option__stock-tip,
[data-stock-unavailable="true"]:focus-visible > .filter-option__stock-tip,
[data-stock-unavailable="true"]:focus-within > .filter-option__stock-tip {
  opacity: 1;
  transform: translate(-50%, 0);
  visibility: visible;
}
[data-stock-unavailable="true"]:focus-visible { outline: 1px solid var(--wine); outline-offset: 4px; }
.filter-range {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: end;
  gap: 8px;
}
.filter-range label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.filter-range input {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  font-size: 11px;
}
.filter-sidebar .btn { margin-top: 2px; }
.filter-sidebar .clear-filters {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 9px;
}
.ekruline-filter-disclosure { display: contents; }
.ekruline-filter-disclosure > summary { display: none; }
.ekruline-catalog-results { min-width: 0; }
.sf-pagination {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 44px;
}
.sf-pagination a,
.sf-pagination span {
  min-width: 42px;
  min-height: 42px;
  display: inline-grid;
  place-items: center;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.sf-pagination [aria-current="page"] {
  border-color: var(--wine);
  background: var(--wine);
  color: #fff;
}
.ekruline-empty-state {
  min-height: 380px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  padding: 40px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--paper);
  text-align: center;
}
.ekruline-empty-state h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 34px;
}
.ekruline-empty-state p {
  max-width: 520px;
  margin: 0 0 10px;
  color: var(--muted);
}

/* Search and content routes. */
.ekruline-search-box {
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--ink);
}
.ekruline-search-box input {
  min-width: 0;
  width: 100%;
  height: 56px;
  border: 0;
  background: transparent;
  font-family: var(--serif);
  font-size: 26px;
  outline: 0;
}
.ekruline-search-box .btn {
  flex: 0 0 auto;
  min-height: 46px;
}
.ekruline-content-page {
  padding: 60px 0 105px;
}
.ekruline-content-page .heading-xl { margin-bottom: 28px; }
.ekruline-rich-text {
  max-width: 780px;
  font-size: 16px;
  line-height: 1.8;
}
.ekruline-rich-text h2,
.ekruline-rich-text h3 {
  margin: 2em 0 .55em;
  font-family: var(--serif);
  line-height: 1.05;
}
.ekruline-rich-text h2 { font-size: 36px; }
.ekruline-rich-text h3 { font-size: 28px; }
.ekruline-rich-text a {
  color: var(--wine);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Product detail SDK markup. */
.ekruline-product-gallery {
  min-width: 0;
  position: relative;
  display: grid;
  gap: 14px;
}
.ekruline-product-gallery__track {
  min-width: 0;
  display: grid;
  grid-auto-flow: column;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: inline mandatory;
  scrollbar-width: none;
}
.ekruline-product-gallery__track::-webkit-scrollbar { display: none; }
.ekruline-product-gallery__track--main {
  grid-auto-columns: 100%;
  gap: 0;
  border-radius: var(--radius-md);
}
.ekruline-product-gallery__track--main,
.ekruline-product-gallery__track--rail {
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.ekruline-product-gallery__track--rail {
  grid-auto-columns: 42%;
  gap: 12px;
}
.ekruline-product-gallery__track[data-ob-gallery-dragging] {
  cursor: grabbing;
  scroll-behavior: auto;
  scroll-snap-type: none;
}
.ekruline-product-gallery__slide {
  min-width: 0;
  position: relative;
  margin: 0;
  overflow: hidden;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  background: var(--powder);
}
.ekruline-product-gallery__slide--main { border-radius: var(--radius-md); }
.ekruline-product-gallery__slide--rail {
  width: 100%;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  color: inherit;
  opacity: .62;
  text-align: inherit;
  transition: opacity .2s ease, transform .2s ease;
  scroll-snap-align: center;
}
.ekruline-product-gallery__slide--rail::after {
  content: "";
  height: 3px;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  background: var(--wine);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}
.ekruline-product-gallery__slide--rail[aria-current="true"] { opacity: 1; }
.ekruline-product-gallery__slide--rail[aria-current="true"]::after { transform: scaleX(1); }
.ekruline-product-gallery__slide picture,
.ekruline-product-gallery__image {
  width: 100%;
  display: block;
}
.ekruline-product-gallery__image {
  height: auto;
  min-height: 0;
  aspect-ratio: 5 / 6;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  -webkit-user-drag: none;
}
.ekruline-product-gallery__status {
  min-width: 50px;
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  margin: 0;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-align: center;
  pointer-events: none;
}
.ekruline-product-gallery__track:focus-visible,
.ekruline-product-gallery__slide--rail:focus-visible {
  outline: 2px solid var(--wine);
  outline-offset: 3px;
}
.product-info__eyebrow {
  margin: 0;
  color: var(--wine);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.product-info__subtitle {
  max-width: 38rem;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}
.product-info__price {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 24px;
  font-family: var(--serif);
  font-size: 35px;
  font-weight: 600;
}
.product-info__price del {
  color: var(--soft-muted);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 400;
}
.product-info__sku {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 10px;
}
.ekruline-product-purchase { margin-top: 28px; }
.ekruline-product-purchase form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 10px;
}
.ekruline-product-purchase form > label,
.ekruline-product-purchase .sf-option-combobox-control {
  min-width: 0;
  display: grid;
  gap: 8px;
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.ekruline-product-purchase .sf-option-combobox-control {
  align-content: start;
  position: relative;
}
.sf-option-combobox-control__label { display: block; }
.ekruline-product-purchase [data-ob-combobox] { position: relative; }
.ekruline-product-purchase .sf-option-combobox__trigger {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--ink);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.ekruline-product-purchase .sf-option-combobox__trigger:hover,
.ekruline-product-purchase [data-ob-combobox-open] .sf-option-combobox__trigger {
  border-color: var(--wine);
  background: #fff;
}
.ekruline-product-purchase .sf-option-combobox__trigger:focus-visible {
  outline: 2px solid var(--wine);
  outline-offset: 2px;
}
.sf-option-combobox__chevron {
  flex: 0 0 auto;
  font-size: 18px;
  line-height: 1;
  transition: transform .2s ease;
}
[data-ob-combobox-open] .sf-option-combobox__chevron { transform: rotate(180deg); }
.ekruline-product-purchase .sf-option-combobox__listbox {
  width: 100%;
  max-height: 260px;
  display: grid;
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  z-index: 50;
  padding: 7px;
  overflow-y: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(53,21,31,.14);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}
.ekruline-product-purchase [data-ob-combobox-open] .sf-option-combobox__listbox {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.ekruline-product-purchase [data-ob-combobox-option-value] {
  width: 100%;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 12px;
  border-radius: 5px;
  color: var(--ink);
  font-size: 13px;
  letter-spacing: 0;
  text-align: left;
  text-transform: none;
}
.ekruline-product-purchase [data-ob-combobox-option-value]:hover,
.ekruline-product-purchase [data-ob-combobox-option-value]:focus-visible,
.ekruline-product-purchase [data-ob-combobox-option-value][aria-selected="true"] {
  background: var(--blush);
  outline: 0;
}
.ekruline-product-purchase [data-ob-combobox-option-value][aria-selected="true"] {
  color: var(--wine);
  font-weight: 700;
}
.ekruline-product-purchase [data-ob-combobox-option-value]:disabled {
  cursor: not-allowed;
  color: var(--soft-muted);
  opacity: 1;
}
.ekruline-product-purchase [data-ob-combobox-option-value]:disabled [data-ob-combobox-option-label] {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.sf-option-combobox__stock {
  flex: 0 0 auto;
  padding: 4px 7px;
  border-radius: 999px;
  background: var(--blush);
  color: var(--wine);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ekruline-product-purchase select,
.ekruline-product-purchase input[type="number"] {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  outline: 0;
}
.ekruline-product-purchase [data-ob-variant-price] {
  grid-column: 1 / -1;
  min-height: 25px;
  color: var(--wine);
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 600;
}
.ekruline-product-purchase [data-ob-add-to-cart] {
  min-height: 56px;
  grid-column: 1 / -1;
  border-radius: 999px;
  background: var(--wine);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: 0 12px 30px rgba(107,38,56,.2);
  transition: background .2s ease, transform .2s ease;
}
.ekruline-product-purchase [data-ob-add-to-cart]:hover:not(:disabled) {
  background: var(--wine-deep);
  transform: translateY(-2px);
}
.ekruline-product-purchase [data-ob-add-to-cart]:disabled {
  cursor: not-allowed;
  opacity: .48;
}
.ekruline-product-purchase [data-ob-cart-status] {
  grid-column: 1 / -1;
  min-height: 20px;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}
.product-info .product-benefits {
  margin-top: 24px;
}
.product-info .product-benefit {
  min-width: 0;
  display: grid;
  justify-items: center;
  align-content: center;
  min-height: 100px;
  padding: 14px 8px;
  background: rgba(255,255,255,.38);
}
.product-info .product-benefit strong {
  font-size: 15px;
}
.product-info .product-benefit span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-accordion {
  margin-top: 22px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.product-accordion summary {
  padding: 18px 0;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  list-style: none;
  text-transform: uppercase;
}
.product-accordion summary::-webkit-details-marker { display: none; }
.product-accordion summary::after {
  content: "+";
  float: right;
  font-size: 17px;
  font-weight: 400;
}
.product-accordion[open] summary::after { content: "−"; }
.product-accordion > div {
  padding: 0 0 20px;
  color: var(--muted);
  font-size: 12px;
}
.product-accordion > div > :first-child { margin-top: 0; }
.product-accordion--full {
  width: 100%;
  margin-top: clamp(54px, 7vw, 92px);
  padding: 0 clamp(24px, 5vw, 72px);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--paper);
}
.product-accordion--full summary {
  padding: 26px 0;
  font-size: 12px;
}
.product-accordion--full .product-accordion__content {
  max-width: none;
  padding: 4px 0 clamp(34px, 5vw, 64px);
  font-size: 14px;
  line-height: 1.75;
}
.product-accordion__content h2 {
  margin: 2em 0 .6em;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  line-height: 1.05;
}
.product-accordion__content h2:first-child { margin-top: .3em; }
.product-accordion__content p,
.product-accordion__content ul,
.product-accordion__content ol { width: 100%; max-width: none; }
.ekruline-product-story {
  min-height: 0;
  display: block;
  margin-top: clamp(72px, 9vw, 112px);
  overflow: visible;
  border-radius: 0;
  background: transparent;
}
.ekruline-product-story .product-story__hero {
  min-height: 620px;
}
.ekruline-product-story .product-story__copy {
  min-width: 0;
}
.ekruline-product-story .product-story__copy .heading-lg {
  max-width: 570px;
  margin: 16px 0;
}
.ekruline-product-story .product-story__copy > p {
  max-width: 550px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}
.ekruline-product-story .product-story__visual,
.ekruline-product-story .product-story__visual picture {
  min-width: 0;
  height: 100%;
  display: block;
}
.ekruline-product-story .product-story__image,
.ekruline-product-story .product-story__visual > .ekruline-editorial-placeholder {
  width: 100%;
  height: 100%;
  min-height: 620px;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
}
.ekruline-product-detail-panel {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(0, 1.55fr);
  gap: clamp(36px, 6vw, 92px);
  margin-top: 18px;
  padding: clamp(38px, 6vw, 82px);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--paper);
}
.ekruline-product-detail-panel__heading {
  align-self: start;
  position: sticky;
  top: calc(var(--header-h) + 26px);
}
.ekruline-product-detail-panel__heading .heading-lg {
  max-width: 380px;
  margin: 16px 0 0;
}
.ekruline-product-detail-panel__content {
  min-width: 0;
  max-width: none;
  padding: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.ekruline-product-detail-panel__content > :first-child { margin-top: 0; }
.ekruline-product-detail-panel__content table {
  width: 100%;
  margin-top: 22px;
  border-collapse: collapse;
  border-top: 1px solid var(--line);
  font-size: 12px;
}
.ekruline-product-detail-panel__content th,
.ekruline-product-detail-panel__content td {
  padding: 13px 10px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.ekruline-product-detail-panel__content th {
  width: 34%;
  padding-left: 0;
  color: var(--ink);
  font-size: 10px;
  letter-spacing: .05em;
  text-align: left;
  text-transform: uppercase;
}
.ekruline-product-detail-panel__content td {
  padding-right: 0;
  overflow-wrap: anywhere;
}
.ekruline-product-story .product-specs {
  margin-top: 18px;
}
.ekruline-product-story .product-spec p {
  overflow-wrap: anywhere;
  line-height: 1.6;
}

@media (max-width: 1180px) {
  .ekruline-product-card > a .sf-product-card__title { font-size: 21px; }
  .ekruline-product-gallery__track--rail { grid-auto-columns: 46%; }
}

@media (max-width: 960px) {
  .ekruline-mobile-navigation {
    display: block;
    position: relative;
  }
  .ekruline-mobile-navigation > nav {
    width: min(420px, calc(100vw - 34px));
    display: none;
    position: absolute;
    left: 0;
    top: calc(100% + 14px);
    z-index: 80;
    padding: 18px 22px;
    border: 1px solid var(--line);
    border-radius: 0 0 14px 14px;
    background: var(--cream);
    box-shadow: var(--shadow-md);
  }
  .ekruline-mobile-navigation[open] > nav { display: grid; }
  .ekruline-mobile-navigation__direct,
  .ekruline-mobile-navigation__group > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
    font-family: var(--serif);
    font-size: 26px;
    line-height: 1;
  }
  .ekruline-mobile-navigation__group > summary {
    cursor: pointer;
    list-style: none;
  }
  .ekruline-mobile-navigation__group > summary::-webkit-details-marker { display: none; }
  .ekruline-mobile-navigation__group > summary span { transition: transform .2s ease; }
  .ekruline-mobile-navigation__group[open] > summary span { transform: rotate(180deg); }
  .ekruline-mobile-navigation__group > div {
    max-height: min(62vh,560px);
    display: grid;
    gap: 20px;
    padding: 14px 0 22px 16px;
    overflow-y: auto;
    border-bottom: 1px solid var(--line);
  }
  .ekruline-mobile-navigation__group section { display: grid; gap: 9px; }
  .ekruline-mobile-navigation__group section a {
    min-height: 44px;
    display: flex;
    align-items: center;
    color: var(--muted);
    font-size: 14px;
  }
  .ekruline-mobile-navigation__group .ekruline-mobile-navigation__all,
  .ekruline-mobile-navigation__group .ekruline-mobile-navigation__heading {
    min-height: 44px;
    display: flex;
    align-items: center;
    color: var(--ink);
    font-family: var(--serif);
    font-size: 19px;
    font-weight: 600;
  }
  .ekruline-mobile-navigation__group .ekruline-mobile-navigation__all { color: var(--wine); }
  .ekruline-mobile-navigation > nav > :last-child { border-bottom: 0; }
  .ekruline-filter-disclosure {
    display: block;
    grid-column: 1 / -1;
  }
  .ekruline-filter-disclosure > summary {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 20px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
    list-style: none;
    text-transform: uppercase;
  }
  .ekruline-filter-disclosure > summary::-webkit-details-marker { display: none; }
  .ekruline-filter-disclosure > summary span:last-child { font-size: 21px; font-weight: 400; }
  .ekruline-filter-disclosure[open] > summary span:last-child { transform: rotate(45deg); }
  .ekruline-filter-disclosure > .filter-sidebar {
    display: block;
    position: static;
    margin-top: 12px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--paper);
  }
  .ekruline-filter-disclosure:not([open]) > .filter-sidebar { display: none; }
  .footer-top {
    grid-template-columns: 1.15fr repeat(2, minmax(130px, .7fr));
  }
  .ekruline-product-gallery__track--rail { grid-auto-columns: 42%; }
  .product-story {
    grid-template-columns: 1fr;
  }
  .product-story > img,
  .product-story > .ekruline-editorial-placeholder {
    min-height: 0;
    order: -1;
  }
}

@media (max-width: 640px) {
  .ekruline-mobile-navigation > nav {
    width: calc(100vw - 24px);
  }
  .account-icon { display: none; }
  .hero__content:only-child { padding-block: 4vh; }
  .value-item > .value-item__index { width: 20px; margin-top: 0; font-size: 17px; }
  .ekruline-fit-steps { margin: 24px 0; }
  .ekruline-product-card > a > .sf-product-card__badges {
    left: 7px;
    right: 7px;
    top: 7px;
  }
  .ekruline-product-card > a > .sf-product-card__badges > span {
    padding: 5px 7px;
    font-size: 7px;
  }
  .ekruline-product-card > a .sf-product-card__title {
    font-size: 19px;
  }
  .ekruline-product-card > a .sf-product-card__price {
    display: grid;
    gap: 0;
    font-size: 12px;
  }
  .catalog-sort {
    width: 100%;
    justify-content: space-between;
  }
  .catalog-sort select { flex: 1; }
  .filter-sidebar {
    display: block;
    position: static;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    background: var(--paper);
  }
  .catalog-layout { gap: 24px; }
  .ekruline-search-box {
    width: 100%;
  }
  .ekruline-search-box input { font-size: 21px; }
  .ekruline-search-box .btn { padding-inline: 17px; }
  .ekruline-product-gallery { gap: 9px; }
  .ekruline-product-gallery__track--main { border-radius: 8px; }
  .ekruline-product-gallery__track--rail { grid-auto-columns: 74%; gap: 8px; }
  .ekruline-product-gallery__slide--rail { border-radius: 6px; }
  .ekruline-product-gallery__status { top: 8px; right: 8px; }
  .ekruline-product-purchase form {
    grid-template-columns: 1fr;
  }
  .ekruline-product-purchase [data-ob-variant-price],
  .ekruline-product-purchase [data-ob-add-to-cart],
  .ekruline-product-purchase [data-ob-cart-status] {
    grid-column: auto;
  }
  .ekruline-product-story { margin-top: 67px; }
  .ekruline-product-story .product-story__hero { grid-template-columns: 1fr; }
  .ekruline-product-story .product-story__visual {
    min-height: 0;
    order: -1;
  }
  .ekruline-product-story .product-story__image,
  .ekruline-product-story .product-story__visual > .ekruline-editorial-placeholder {
    height: auto;
    min-height: 0;
    aspect-ratio: 5 / 6;
  }
  .ekruline-product-detail-panel {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: clamp(28px, 7vw, 48px);
    border-radius: 12px;
  }
  .ekruline-product-detail-panel__heading { position: static; }
}

/* One media contract for initial, runtime-filtered and gateway-materialized cards. */
.ekruline-theme [data-ob-media-role="catalog-product"],
.ekruline-theme [data-ob-media-role="product-gallery"] {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 5 / 6;
  object-fit: cover;
  object-position: center;
}
.ekruline-theme [data-ob-media-role="category-card"] {
  width: 100%;
  height: 100%;
  aspect-ratio: 5 / 6;
  object-fit: cover;
  object-position: center;
}
.ekruline-theme .product-gallery > [data-ob-media-role="product-gallery"] {
  grid-column: auto;
  grid-row: auto;
  scroll-snap-align: start;
}
.ekruline-theme .product-story > [data-ob-media-role="product-gallery"] {
  min-height: 0;
  aspect-ratio: 5 / 6;
}
.ekruline-theme .ekruline-product-story .product-story__visual [data-ob-media-role="product-gallery"] {
  height: 100%;
  min-height: 620px;
  aspect-ratio: auto;
}

@media (max-width: 960px) {
  .ekruline-theme .ekruline-product-story .product-story__visual [data-ob-media-role="product-gallery"] {
    height: auto;
    min-height: 0;
    aspect-ratio: 5 / 6;
  }
}

.ekruline-theme .catalog-sort select:focus-visible,
.ekruline-theme .filter-range input:focus-visible,
.ekruline-theme .ekruline-search-box input:focus-visible,
.ekruline-theme .ekruline-product-purchase select:focus-visible,
.ekruline-theme .ekruline-product-purchase input[type="number"]:focus-visible,
.ekruline-theme .newsletter-form input:focus-visible {
  outline: 2px solid var(--wine);
  outline-offset: 3px;
}

/* Ekruline 2.2 product-media contract. Catalog cards crop edge-to-edge; PDP media stays contained. */
.ekruline-theme[data-theme-version="2.2.0"] [data-ob-media-role="catalog-product"] {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 5 / 6;
  object-fit: cover;
  object-position: center;
  background: var(--powder);
  transform: none;
}

.ekruline-theme[data-theme-version="2.2.0"] [data-ob-media-role="product-gallery"] {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 5 / 6;
  object-fit: contain;
  object-position: center;
  background: var(--powder);
  transform: none;
}

.ekruline-theme[data-theme-version="2.2.0"] .product-card:hover .product-card__image {
  transform: none;
}

.ekruline-theme[data-theme-version="2.2.0"] .product-gallery__item:hover [data-ob-media-role="product-gallery"] {
  transform: none;
}

.ekruline-theme[data-theme-version="2.2.0"] .ekruline-editorial-placeholder::after,
.ekruline-theme[data-theme-version="2.2.0"] .sf-product-card__image-placeholder::after {
  content: "EK";
}

.ekruline-theme[data-theme-version="2.2.0"] [data-ob-gallery-slide][hidden],
.ekruline-theme[data-theme-version="2.2.0"] [data-ob-product-story-image][hidden],
.ekruline-theme[data-theme-version="2.2.0"] [data-ob-product-story-empty][hidden],
.ekruline-theme[data-theme-version="2.2.0"] [data-ob-gallery-empty][hidden] {
  display: none;
}

.ekruline-theme[data-theme-version="2.2.0"] .ekruline-product-gallery__empty {
  grid-column: 1;
  min-height: min(76vh, 900px);
  border-radius: var(--radius-md);
}

.ekruline-theme[data-theme-version="2.2.0"] .product-story__media,
.ekruline-theme[data-theme-version="2.2.0"] .product-story__media picture {
  width: 100%;
  height: 100%;
  display: block;
}

.ekruline-theme[data-theme-version="2.2.0"] .ekruline-product-placeholder--story {
  min-height: 620px;
}

.ekruline-theme[data-theme-version="2.2.0"] .ekruline-product-story .product-story__image {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 5 / 6;
  object-fit: contain;
}

.ekruline-theme[data-theme-version="2.2.0"] .ekruline-size-guide {
  display: grid;
  grid-template-columns: minmax(240px, .7fr) minmax(0, 1.4fr);
  gap: clamp(30px, 6vw, 88px);
  align-items: start;
  margin-top: clamp(64px, 8vw, 104px);
  padding: clamp(30px, 5vw, 72px);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--paper);
}

.ekruline-theme[data-theme-version="2.2.0"] .ekruline-size-guide__copy p {
  color: var(--muted);
  line-height: 1.7;
}

.ekruline-theme[data-theme-version="2.2.0"] .ekruline-size-guide__image {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: top center;
}

@media (max-width: 960px) {
  .ekruline-theme[data-theme-version="2.2.0"] .ekruline-product-placeholder--story {
    min-height: 0;
  }
  .ekruline-theme[data-theme-version="2.2.0"] .ekruline-size-guide {
    grid-template-columns: 1fr;
  }
}
