:root {
  color-scheme: light;
  --paper: #fffaf7;
  --paper-strong: #fffdfb;
  --paper-muted: #f8eeeb;
  --ink: #17070b;
  --ink-soft: #5f4148;
  --red: #a91431;
  --red-deep: #79051f;
  --red-dark: #4c0315;
  --red-bright: #df264c;
  --line: rgba(93, 16, 34, 0.16);
  --line-strong: rgba(93, 16, 34, 0.32);
  --radius: 18px;
  --shadow: 0 24px 70px rgba(86, 11, 31, 0.12);
  --max: 1360px;
  --display: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --display-elegant: "Bodoni 72", Didot, "Iowan Old Style", Baskerville, Georgia, serif;
  font-family: "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
html { max-width: 100%; overflow-x: clip; }
body { max-width: 100%; overflow-x: visible; }
body { margin: 0; background: var(--paper); color: var(--ink); }
body.site-locked { overflow: hidden; }
#main-content:focus { outline: none; }
button, a, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
a { color: inherit; }
[hidden] { display: none !important; }

.skip-link {
  position: fixed; z-index: 100; top: 12px; left: 12px; padding: 10px 14px;
  border-radius: 999px; background: var(--paper-strong); color: var(--red-deep);
  transform: translateY(-160%); transition: transform 160ms ease;
}
.skip-link:focus { transform: translateY(0); }

.site-shell { min-height: 100dvh; background: var(--paper); }
.site-shell[aria-hidden="true"] { visibility: hidden; }

.site-header {
  position: sticky; z-index: 20; top: 0; display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; gap: 28px; min-height: 72px; padding: 12px clamp(18px, 4vw, 64px);
  border-bottom: 1px solid transparent; background: rgba(255, 250, 247, 0.91);
  backdrop-filter: blur(18px); transition: border-color 180ms ease, box-shadow 180ms ease;
}
.site-header.scrolled { border-color: var(--line); box-shadow: 0 10px 36px rgba(76, 3, 21, 0.06); }
.site-brand { display: inline-flex; min-height: 44px; align-items: center; gap: 11px; text-decoration: none; letter-spacing: .18em; }
.site-brand b { font-size: 15px; }
.brand-eye { position: relative; display: grid; width: 32px; height: 18px; place-items: center; overflow: hidden; border: 2px solid var(--red); border-radius: 70% 15%; transform: rotate(45deg); }
.brand-eye i { width: 8px; height: 8px; border-radius: 50%; background: var(--red-deep); box-shadow: 0 0 0 3px rgba(169, 20, 49, .2); }
.desktop-nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.5vw, 38px); white-space: nowrap; }
.desktop-nav a { position: relative; padding: 12px 0; color: var(--ink-soft); font-size: 14px; font-weight: 650; text-decoration: none; }
.desktop-nav a::after { position: absolute; right: 0; bottom: 5px; left: 0; height: 2px; content: ""; background: var(--red); transform: scaleX(0); transform-origin: right; transition: transform 220ms cubic-bezier(.16,1,.3,1); }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.header-actions { display: flex; align-items: center; gap: 9px; }
.header-install, .header-app, .menu-toggle { min-height: 44px; padding: 0 16px; border-radius: 999px; font-size: 13px; font-weight: 750; text-decoration: none; white-space: nowrap; }
.header-install { border: 1px solid var(--line-strong); background: transparent; color: var(--red-deep); }
.header-app { display: inline-flex; align-items: center; background: var(--red-deep); color: #fff9f7; }
.header-app span { margin-right: 3px; }
.menu-toggle { display: none; border: 1px solid var(--line); background: var(--paper-strong); color: var(--ink); }
.mobile-menu { position: fixed; z-index: 19; top: 72px; right: 12px; left: 12px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-strong); box-shadow: var(--shadow); }
.mobile-menu a { display: block; padding: 14px; border-bottom: 1px solid var(--line); font-weight: 720; text-decoration: none; }
.mobile-menu a:last-child { margin-top: 10px; border: 0; border-radius: 999px; background: var(--red-deep); color: #fff9f7; text-align: center; }

.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid transparent; border-radius: 999px; font-weight: 780; line-height: 1; text-decoration: none; white-space: nowrap; transition: transform 180ms cubic-bezier(.16,1,.3,1), box-shadow 180ms ease, background 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button:active { transform: scale(.98); }
.button-red { background: var(--red-deep); color: #fff9f7; box-shadow: 0 12px 28px rgba(121, 5, 31, .18); }
.button-red:hover { background: var(--red); box-shadow: 0 16px 34px rgba(121, 5, 31, .24); }
.button-light { background: #fff9f7; color: var(--red-deep); }
.button-ink { background: var(--ink); color: #fff9f7; }
.button.full { width: 100%; }
.text-link, .text-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 0 4px; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--red-deep); font-weight: 750; text-decoration: none; }
.on-red { color: #fff9f7; }
:where(a, button):focus-visible { outline: 3px solid rgba(223, 38, 76, .34); outline-offset: 3px; }

.site-hero {
  display: grid; width: min(var(--max), calc(100% - 36px)); min-height: calc(100dvh - 72px);
  grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr); align-items: center;
  gap: clamp(30px, 5vw, 86px); margin: 0 auto; padding: clamp(36px, 5vh, 64px) 0;
}
.hero-copy { position: relative; z-index: 2; max-width: 620px; }
.eyebrow { margin: 0 0 18px; color: var(--red); font-size: 12px; font-weight: 850; letter-spacing: .18em; }
.hero-copy h1 { max-width: 9ch; margin: 0; font-size: clamp(55px, 7.3vw, 112px); font-weight: 500; letter-spacing: -.065em; line-height: .85; }
.hero-copy h1 strong { color: var(--red); font-weight: 850; }
.hero-copy > p:not(.eyebrow) { max-width: 31ch; margin: 28px 0 0; color: var(--ink-soft); font-size: clamp(18px, 2vw, 24px); line-height: 1.35; }
.hero-actions { display: flex; align-items: center; gap: 22px; margin-top: 32px; }
.hero-media { position: relative; height: min(71vh, 720px); margin: 0; overflow: hidden; border-radius: var(--radius); background: var(--red-deep); box-shadow: var(--shadow); }
.hero-media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(120deg, rgba(121,5,31,.3), transparent 46%); pointer-events: none; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-focus { position: absolute; z-index: 2; top: 41%; left: 50%; width: 116px; height: 116px; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; transform: translate(-50%,-50%); }
.hero-focus::before, .hero-focus::after { position: absolute; content: ""; background: rgba(255,255,255,.7); }
.hero-focus::before { top: 50%; left: -24px; width: calc(100% + 48px); height: 1px; }
.hero-focus::after { top: -24px; left: 50%; width: 1px; height: calc(100% + 48px); }
.hero-focus span { position: absolute; inset: 21px; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; }

.site-section { width: min(var(--max), calc(100% - 36px)); margin: 0 auto; padding: clamp(88px, 11vw, 160px) 0; }
.site-reveal { transition: opacity 660ms cubic-bezier(.16,1,.3,1), transform 660ms cubic-bezier(.16,1,.3,1); }
.site-reveal.reveal-pending { opacity: 0; transform: translateY(24px); }
.site-reveal.is-visible { opacity: 1; transform: none; }
.section-heading { max-width: 840px; }
.section-heading h2, .shop-heading h2 { margin: 0; font-size: clamp(40px, 5.8vw, 78px); font-weight: 620; letter-spacing: -.055em; line-height: .96; }
.section-heading p, .shop-heading > p:last-child { max-width: 58ch; margin: 20px 0 0; color: var(--ink-soft); font-size: 18px; line-height: 1.55; }

.specialty-section { display: grid; grid-template-columns: 1.08fr .92fr; align-items: stretch; gap: clamp(30px, 7vw, 100px); }
.specialty-visual { min-height: 650px; overflow: hidden; border-radius: var(--radius); background: var(--red-deep); }
.specialty-visual img { width: 100%; height: 100%; object-fit: cover; }
.specialty-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.specialty-copy h2 { max-width: 10ch; margin: 0; font-size: clamp(45px, 5.4vw, 76px); font-weight: 620; letter-spacing: -.055em; line-height: .98; }
.specialty-copy > p { max-width: 48ch; margin: 24px 0; color: var(--ink-soft); font-size: 18px; line-height: 1.6; }
.specialty-facts { width: 100%; margin: 8px 0 30px; border-top: 1px solid var(--line-strong); }
.specialty-facts article { display: grid; grid-template-columns: 110px 1fr; gap: 20px; padding: 19px 0; border-bottom: 1px solid var(--line); }
.specialty-facts b { color: var(--red-deep); }
.specialty-facts span { color: var(--ink-soft); }
.specialty-copy small { max-width: 45ch; margin-top: 16px; color: var(--ink-soft); line-height: 1.45; }

.services-section { position: relative; }
.service-controls { display: flex; justify-content: flex-end; gap: 8px; margin: 28px 0 14px; }
.service-controls button { min-height: 42px; padding: 0 17px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--ink); font-weight: 700; }
.service-ribbon { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 42%); gap: 16px; overflow-x: auto; padding: 8px 2px 22px; scroll-snap-type: x mandatory; scrollbar-color: var(--red) transparent; }
.service-panel { position: relative; display: flex; min-height: 470px; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: clamp(26px, 4vw, 46px); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-strong); scroll-snap-align: start; }
.service-panel > span, .photo-panel div > span { margin-bottom: 16px; color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .16em; }
.service-panel h3 { max-width: 12ch; margin: 0; font-size: clamp(30px, 3.5vw, 52px); line-height: 1; letter-spacing: -.04em; }
.service-panel p { max-width: 42ch; color: var(--ink-soft); line-height: 1.5; }
.service-panel a { display: inline-flex; min-height: 44px; align-items: center; margin-top: 14px; color: inherit; font-weight: 800; text-underline-offset: 6px; }
.service-panel.featured { min-height: 560px; background: var(--red-deep); color: #fff9f7; }
.service-panel.featured > span, .service-panel.featured p { color: rgba(255,249,247,.78); }
.service-panel.photo-panel { padding: 0; justify-content: stretch; background: var(--red-dark); color: #fff9f7; }
.photo-panel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .84; }
.photo-panel::after { position: absolute; inset: 0; content: ""; background: linear-gradient(transparent 30%, rgba(76,3,21,.94)); }
.photo-panel div { position: relative; z-index: 1; margin-top: auto; padding: clamp(26px,4vw,46px); }
.service-panel.compact { min-height: 380px; align-self: end; background: var(--paper-muted); }
.service-panel.outline { min-height: 510px; border-color: var(--red); background: transparent; }

.why-section { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); align-items: end; gap: clamp(50px, 9vw, 140px); }
.why-statement h2 { max-width: 11ch; margin: 0; font-size: clamp(48px, 6vw, 88px); font-weight: 550; letter-spacing: -.06em; line-height: .95; }
.why-statement p { max-width: 60ch; margin: 24px 0 0; color: var(--ink-soft); font-size: 18px; line-height: 1.6; }
.why-path { border-top: 2px solid var(--red-deep); }
.why-path article { display: grid; grid-template-columns: 90px 1fr; gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.why-path span { color: var(--red); font-weight: 800; }
.why-path b { font-size: 20px; line-height: 1.3; }

.shop-section { position: relative; }
.shop-heading { max-width: 800px; }
.shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 42px 0 18px; }
.shop-filters { display: flex; gap: 8px; overflow-x: auto; }
.shop-filters button, .site-cart-button { min-height: 44px; padding: 0 18px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--ink); font-weight: 750; white-space: nowrap; }
.shop-filters button.selected { border-color: var(--red-deep); background: var(--red-deep); color: #fff9f7; }
.site-cart-button { border-color: var(--red); color: var(--red-deep); }
.site-cart-button span { display: inline-grid; min-width: 24px; height: 24px; margin-left: 7px; place-items: center; border-radius: 50%; background: var(--red-deep); color: #fff9f7; }
.product-shelf { display: grid; grid-template-columns: 1.25fr .75fr 1fr; grid-template-rows: 340px 300px; gap: 16px; }
.site-product { position: relative; display: grid; grid-template-rows: minmax(0,1fr) auto; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-strong); }
.site-product[hidden] { display: none; }
.product-hero { grid-row: 1 / 3; }
.product-tall { grid-row: 1 / 3; }
.product-wide { grid-column: 3; grid-row: 1; grid-template-columns: .9fr 1.1fr; grid-template-rows: 1fr; }
.product-care { grid-column: 3; grid-row: 2; grid-template-columns: .75fr 1.25fr; grid-template-rows: 1fr; background: var(--red-deep); color: #fff9f7; }
.product-image { min-height: 230px; background-color: #eadbd6; background-repeat: no-repeat; }
.crop-left { background-position: left center; }
.crop-center { background-position: center center; }
.crop-right { background-position: right center; }
.product-copy { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 7px 16px; padding: 22px; }
.product-copy span { grid-column: 1 / 3; color: var(--ink-soft); font-size: 13px; }
.product-copy h3 { margin: 0; font-size: 22px; letter-spacing: -.025em; }
.product-copy > b { justify-self: end; }
.product-copy button { grid-column: 1 / 3; min-height: 43px; margin-top: 10px; border: 1px solid var(--red-deep); border-radius: 999px; background: transparent; color: var(--red-deep); font-weight: 800; }
.product-copy button:hover { background: var(--red-deep); color: #fff9f7; }
.care-mark { display: grid; place-items: center; color: rgba(255,249,247,.9); font-size: 24px; font-weight: 900; letter-spacing: .16em; }
.product-care .product-copy span { color: rgba(255,249,247,.7); }
.product-care .product-copy button { border-color: #fff9f7; color: #fff9f7; }
.product-care .product-copy button:hover { background: #fff9f7; color: var(--red-deep); }
.demo-note { margin: 16px 0 0; color: var(--ink-soft); font-size: 13px; }

.membership-showcase { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 18px; margin-top: 48px; }
.public-plan { position: relative; min-height: 480px; padding: clamp(28px,4vw,52px); overflow: hidden; border-radius: var(--radius); }
.public-plan > span { font-size: 11px; font-weight: 850; letter-spacing: .14em; }
.public-plan h3 { margin: 46px 0 8px; font-size: clamp(58px,8vw,110px); letter-spacing: -.07em; line-height: .8; }
.public-plan p { max-width: 45ch; font-size: 17px; line-height: 1.5; }
.public-plan-price { display: flex; align-items: end; gap: 12px; margin: 20px 0; }
.public-plan-price b { font-size: clamp(34px,5vw,58px); letter-spacing: -.055em; line-height: .9; }
.public-plan-price small { max-width: 15ch; padding-bottom: 4px; opacity: .72; line-height: 1.3; }
.public-plan ul { display: grid; gap: 12px; margin: 28px 0 34px; padding: 0; list-style: none; }
.public-plan li { padding-left: 18px; border-left: 2px solid currentColor; }
.public-plan a, .public-plan-choice button { display: inline-flex; min-height: 44px; align-items: center; font-weight: 820; text-underline-offset: 6px; }
.public-plan-choice button { padding: 0; border: 0; border-bottom: 1px solid currentColor; border-radius: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.public-plan-choice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.public-plan-choice small { max-width: 25ch; opacity: .7; line-height: 1.35; }
.public-plan.gold { border: 1px solid var(--red); background: var(--paper-strong); color: var(--red-deep); }
.public-plan.black { background: var(--ink); color: #fff9f7; box-shadow: var(--shadow); transform: translateY(54px); }
.membership-boundary { grid-column: 1 / 3; display: grid; grid-template-columns: .5fr 1fr auto; align-items: center; gap: 30px; margin-top: 54px; padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-muted); }
.membership-boundary > b { color: var(--red-deep); font-size: 24px; }
.membership-boundary p { max-width: 55ch; margin: 0; color: var(--ink-soft); line-height: 1.5; }

.app-section { display: grid; grid-template-columns: 1fr minmax(340px, 470px); align-items: center; gap: clamp(50px, 10vw, 150px); }
.app-copy h2 { max-width: 10ch; margin: 0; font-size: clamp(50px, 6.5vw, 92px); font-weight: 600; letter-spacing: -.06em; line-height: .94; }
.app-copy > p:not(.eyebrow) { max-width: 48ch; color: var(--ink-soft); font-size: 19px; line-height: 1.6; }
.app-actions { display: flex; align-items: center; gap: 22px; margin-top: 30px; }
.app-phone { position: relative; width: min(100%, 420px); height: 820px; justify-self: center; padding: 22px 14px 14px; border: 1px solid #2d2024; border-radius: 48px; background: #140e10; box-shadow: 0 40px 80px rgba(76,3,21,.22); }
.app-phone iframe { width: 100%; height: 100%; overflow: hidden; border: 0; border-radius: 36px; background: var(--paper); }
.app-phone-island { position: absolute; z-index: 2; top: 10px; left: 50%; width: 118px; height: 25px; border-radius: 999px; background: #080607; transform: translateX(-50%); pointer-events: none; }

.site-footer { display: grid; grid-template-columns: 1.2fr .8fr; gap: 40px; width: min(var(--max), calc(100% - 36px)); margin: 0 auto; padding: 70px 0 42px; border-top: 1px solid var(--line); }
.site-footer p { max-width: 38ch; color: var(--ink-soft); }
.site-footer nav { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 14px; }
.site-footer nav a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 700; text-underline-offset: 4px; }
.site-footer > small { grid-column: 1 / 3; color: var(--ink-soft); }

.site-cart { position: fixed; z-index: 41; top: 0; right: 0; display: flex; width: min(440px, 100%); height: 100dvh; flex-direction: column; padding: clamp(24px,4vw,40px); background: var(--paper-strong); box-shadow: -24px 0 70px rgba(76,3,21,.18); }
.site-cart[hidden] { display: none; }
.site-cart header { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.site-cart header span { color: var(--red); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.site-cart h2 { margin: 5px 0 0; font-size: 36px; letter-spacing: -.04em; }
.site-cart header button, .dialog-close { border: 0; background: transparent; color: var(--ink); font-weight: 800; }
.site-cart-items { display: grid; gap: 12px; flex: 1; align-content: start; overflow-y: auto; padding: 24px 0; }
.site-cart-item { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 16px; border-radius: 14px; background: var(--paper-muted); }
.site-cart-item b { font-size: 16px; }
.site-cart-item span { color: var(--ink-soft); }
.site-cart-item button { grid-column: 1 / 3; justify-self: start; padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--red-deep); font-weight: 750; }
.site-cart-total { display: flex; justify-content: space-between; padding: 22px 0; border-top: 1px solid var(--line); font-size: 20px; }
.site-cart > small { margin-top: 12px; color: var(--ink-soft); text-align: center; }
.cart-app-option { min-height: 44px; margin-top: 8px; border: 0; background: transparent; color: var(--red-deep); font-weight: 780; text-decoration: underline; text-underline-offset: 5px; }
.site-backdrop { position: fixed; z-index: 40; inset: 0; background: rgba(23,7,11,.42); backdrop-filter: blur(3px); }

.install-dialog { width: min(520px, calc(100% - 28px)); padding: clamp(28px,5vw,52px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-strong); color: var(--ink); box-shadow: var(--shadow); }
.install-dialog::backdrop { background: rgba(23,7,11,.46); backdrop-filter: blur(4px); }
.dialog-close { position: absolute; top: 18px; right: 18px; }
.dialog-eye { display: grid; width: 82px; height: 48px; place-items: center; overflow: hidden; border: 3px solid var(--red); border-radius: 70% 15%; transform: rotate(45deg); }
.dialog-eye i { width: 20px; height: 20px; border-radius: 50%; background: var(--red-deep); box-shadow: 0 0 0 7px rgba(169,20,49,.16); }
.install-dialog h2 { margin: 28px 0 10px; font-size: clamp(38px,6vw,60px); letter-spacing: -.05em; line-height: .95; }
.install-dialog p { color: var(--ink-soft); line-height: 1.55; }
.install-dialog > div { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.site-toast { position: fixed; z-index: 60; right: 22px; bottom: 22px; max-width: min(360px, calc(100% - 44px)); padding: 14px 18px; border-radius: 14px; background: var(--ink); color: #fff9f7; opacity: 0; transform: translateY(18px); pointer-events: none; transition: opacity 180ms ease, transform 180ms ease; }
.site-toast.show { opacity: 1; transform: none; }

.site-portal { position: fixed; z-index: 90; inset: 0; display: grid; min-height: 100dvh; place-items: center; overflow: hidden; background: var(--red-deep); color: #fff9f7; }
.site-portal.hidden { visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 780ms cubic-bezier(.16,1,.3,1), visibility 0s 780ms; }
.portal-field { position: absolute; inset: 0; overflow: hidden; }
.portal-field::before { position: absolute; inset: -25%; content: ""; background: radial-gradient(circle at center, rgba(255,95,122,.22), transparent 32%), repeating-radial-gradient(circle at center, transparent 0 58px, rgba(255,255,255,.045) 59px 60px); }
.portal-orbit { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; transform: translate(-50%,-50%); }
.orbit-one { width: min(82vw, 980px); aspect-ratio: 1.9; }
.orbit-two { width: min(62vw, 760px); aspect-ratio: 1.25; transform: translate(-50%,-50%) rotate(-18deg); }
.portal-beam { position: absolute; top: 50%; left: 50%; width: min(1080px,90vw); height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.75), transparent); transform: translate(-50%,-50%); }
.portal-eye { position: absolute; top: 44%; left: 50%; width: min(68vw, 820px); height: min(34vw, 390px); overflow: hidden; transform: translate(-50%,-50%); filter: drop-shadow(0 24px 50px rgba(45,0,11,.28)); }
.portal-sclera { position: absolute; inset: 7% 1%; overflow: hidden; border: 2px solid rgba(255,247,246,.7); border-radius: 70% 15%; background: linear-gradient(135deg, #fffaf8 0%, #f3cbd1 50%, #fffaf8 100%); transform: rotate(45deg); }
.portal-gaze-follow { position: absolute; inset: -34%; display: grid; place-items: center; transform: rotate(-45deg); transition: transform 140ms cubic-bezier(.16,1,.3,1); }
.portal-iris-red { position: relative; width: 44%; aspect-ratio: 1; border-radius: 50%; background: repeating-radial-gradient(circle, var(--red-dark) 0 7%, var(--red-bright) 8% 10%, var(--red) 11% 15%); box-shadow: inset 0 0 32px rgba(255,232,235,.36), 0 0 0 8px rgba(76,3,21,.12); }
.portal-iris-ring { position: absolute; inset: 12%; border: 1px solid rgba(255,255,255,.34); border-radius: 50%; }
.portal-iris-ring.ring-two { inset: 25%; border-style: dashed; }
.portal-iris-ring.ring-three { inset: 37%; }
.portal-pupil { position: absolute; inset: 34%; display: grid; place-items: center; border-radius: 50%; background: #17070b; }
.portal-pupil i { width: 22%; height: 22%; border-radius: 50%; background: #fffaf7; transform: translate(-45%,-55%); }
.portal-lid { position: absolute; z-index: 2; right: 0; left: 0; height: 52%; background: var(--red-deep); }
.portal-lid-top { top: -54%; border-bottom: 2px solid rgba(255,249,247,.68); }
.portal-lid-bottom { bottom: -54%; border-top: 2px solid rgba(255,249,247,.68); }
.portal-copy { position: relative; z-index: 3; width: min(760px, calc(100% - 36px)); margin-top: min(58vh,540px); text-align: center; }
.portal-copy > p { margin: 0 0 12px; font-size: 11px; font-weight: 800; letter-spacing: .42em; }
.portal-copy h1 { margin: 0; font-family: var(--display-elegant); font-size: clamp(38px,5.5vw,72px); font-weight: 500; letter-spacing: -.045em; line-height: .94; text-wrap: balance; }
.portal-copy > span { display: block; margin-top: 12px; color: rgba(255,249,247,.8); font-size: clamp(15px,1.5vw,19px); letter-spacing: .04em; }
.portal-actions { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 28px; }
.site-portal.reduced .portal-gaze-follow { transform: rotate(-45deg) !important; }

@media (prefers-reduced-motion: no-preference) {
  .site-portal:not(.reduced) .portal-eye { animation: eye-drift 7s ease-in-out infinite; }
  .site-portal:not(.reduced) .portal-lid-top { animation: blink-top 5.6s ease-in-out infinite; }
  .site-portal:not(.reduced) .portal-lid-bottom { animation: blink-bottom 5.6s ease-in-out infinite; }
  .site-portal:not(.reduced) .orbit-one { animation: orbit-spin 18s linear infinite; }
  .site-portal:not(.reduced) .orbit-two { animation: orbit-spin-two 24s linear infinite reverse; }
  .hero-focus { animation: focus-breathe 3.4s ease-in-out infinite; }
  .brand-eye i { animation: brand-look 5s ease-in-out infinite; }
}
@keyframes blink-top { 0%,43%,47%,100% { top:-54%; } 45% { top:0; } }
@keyframes blink-bottom { 0%,43%,47%,100% { bottom:-54%; } 45% { bottom:0; } }
@keyframes eye-drift { 0%,100% { transform:translate(-50%,-50%) scale(1); } 50% { transform:translate(-50%,-50%) scale(1.025); } }
@keyframes orbit-spin { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes orbit-spin-two { to { transform:translate(-50%,-50%) rotate(342deg); } }
@keyframes focus-breathe { 50% { transform:translate(-50%,-50%) scale(1.1); opacity:.72; } }
@keyframes brand-look { 0%,100% { transform:translate(0,0); } 35% { transform:translate(2px,-2px); } 68% { transform:translate(-2px,2px); } }

@media (max-width: 1040px) {
  .desktop-nav { display: none; }
  .site-header { grid-template-columns: auto 1fr; }
  .header-actions { justify-self: end; }
  .menu-toggle { display: inline-flex; align-items: center; }
  .site-hero { grid-template-columns: .9fr 1.1fr; }
  .hero-copy h1 { font-size: clamp(55px,8vw,82px); }
  .product-shelf { grid-template-columns: 1fr 1fr; grid-template-rows: 460px 340px; }
  .product-hero, .product-tall, .product-wide, .product-care { grid-column: auto; grid-row: auto; }
  .product-hero, .product-tall { grid-row: 1; }
  .product-wide, .product-care { grid-row: 2; grid-template-columns: .9fr 1.1fr; grid-template-rows: 1fr; }
}

@media (max-width: 760px) {
  html { scroll-padding-top: 70px; }
  .site-header { min-height: 64px; padding: 10px 16px; }
  .header-install { display: none; }
  .header-app { min-height: 40px; padding: 0 12px; font-size: 12px; }
  .mobile-menu { top: 64px; }
  .site-hero { width: calc(100% - 28px); min-height: auto; grid-template-columns: 1fr; gap: 28px; padding: 44px 0 24px; }
  .hero-copy h1 { max-width: none; font-size: clamp(54px,18vw,78px); }
  .hero-copy > p:not(.eyebrow) { margin-top: 20px; font-size: 18px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 10px; margin-top: 24px; }
  .hero-actions .text-link { align-self: center; }
  .hero-media { height: 58vh; min-height: 450px; }
  .site-section { width: calc(100% - 28px); padding: 88px 0; }
  .specialty-section, .why-section, .app-section { grid-template-columns: 1fr; gap: 34px; }
  .specialty-visual { min-height: 480px; }
  .specialty-copy h2 { max-width: 12ch; font-size: clamp(42px,13vw,64px); }
  .specialty-facts article { grid-template-columns: 84px 1fr; }
  .service-ribbon { grid-auto-columns: 86%; }
  .service-panel, .service-panel.featured, .service-panel.compact, .service-panel.outline { min-height: 460px; }
  .why-statement h2 { font-size: clamp(46px,13vw,68px); }
  .shop-toolbar { align-items: stretch; flex-direction: column; }
  .site-cart-button { align-self: flex-end; }
  .product-shelf { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .site-product, .product-wide, .product-care { display: grid; min-width: 82%; min-height: 510px; grid-template-columns: 1fr; grid-template-rows: minmax(0,1fr) auto; scroll-snap-align: start; }
  .product-image { min-height: 330px; }
  .membership-showcase { grid-template-columns: 1fr; grid-template-rows: auto; }
  .public-plan.black { transform: none; }
  .membership-boundary { grid-column: 1; grid-template-columns: 1fr; margin-top: 0; }
  .app-phone { width: min(100%, 390px); height: 760px; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer > small { grid-column: 1; }
  .portal-eye { top: 40%; width: 92vw; height: 46vw; }
  .portal-copy { margin-top: 48vh; }
  .portal-actions { align-items: stretch; flex-direction: column; gap: 8px; }
}

@media (max-width: 420px) {
  .header-app span { display: none; margin-right: 0; }
  .site-brand b { font-size: 13px; }
  .service-ribbon { grid-auto-columns: 92%; }
  .site-product, .product-wide, .product-care { min-width: 90%; }
  .app-phone { height: 700px; border-radius: 40px; }
  .install-dialog > div { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .site-reveal, .site-reveal.reveal-pending { opacity: 1 !important; transform: none !important; }
  .portal-gaze-follow { transform: rotate(-45deg) !important; }
}

/* EIKA findability and trust layer */
.header-search {
  min-height: 44px;
  padding: 0 8px;
  border: 0;
  border-bottom: 1px solid rgba(121, 5, 31, .34);
  background: transparent;
  color: var(--red-deep);
  font-size: 13px;
  font-weight: 760;
}

.mobile-menu button {
  width: 100%;
  min-height: 48px;
  padding: 14px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--red-deep);
  text-align: left;
  font-weight: 780;
}

.intent-section { padding-top: clamp(78px, 9vw, 124px); }
.intent-heading { max-width: 820px; }
.intent-heading h2,
.trust-copy h2 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(44px, 6vw, 84px);
  font-weight: 650;
  letter-spacing: -.06em;
  line-height: .94;
}
.intent-heading p,
.trust-copy > p {
  max-width: 59ch;
  margin: 22px 0 28px;
  color: var(--ink-soft);
  font-size: 18px;
  line-height: 1.6;
}
.intent-map {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: minmax(190px, auto) minmax(245px, auto) minmax(150px, auto);
  gap: 14px;
  margin-top: clamp(42px, 7vw, 84px);
}
.intent-card {
  position: relative;
  overflow: hidden;
  display: flex;
  min-height: 160px;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(24px, 3.5vw, 44px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper-strong);
  color: var(--ink);
  text-decoration: none;
  transition: transform 240ms cubic-bezier(.16,1,.3,1), border-color 180ms ease, background-color 180ms ease;
}
.intent-card span { margin-bottom: auto; color: var(--red); font-size: 11px; font-weight: 850; letter-spacing: .15em; }
.intent-card b { display: block; max-width: 15ch; margin-top: 30px; font-size: clamp(24px, 3vw, 45px); line-height: .98; letter-spacing: -.045em; }
.intent-card small { display: block; max-width: 42ch; margin-top: 12px; color: var(--ink-soft); line-height: 1.45; }
.intent-contact { grid-column: 1 / 4; grid-row: 1 / 3; min-height: 455px; border-color: transparent; color: #fff9f7; background: linear-gradient(180deg, rgba(23,7,11,.08), rgba(23,7,11,.92)), url("assets/eika-scleral-fitting-v1.webp") 55% center / cover; }
.intent-contact span, .intent-contact small { color: #f4c8d2; }
.intent-appointment { grid-column: 4 / 7; grid-row: 1; color: #fff9f7; background: linear-gradient(125deg, var(--red-deep), var(--red)); }
.intent-appointment span, .intent-appointment small { color: #f7ced7; }
.intent-optical { grid-column: 4 / 5; grid-row: 2; aspect-ratio: 1; align-self: center; justify-content: center; padding: 22px; border-radius: 50%; border-color: var(--red); text-align: center; }
.intent-optical span { margin-bottom: 14px; }
.intent-optical b { margin: 0; font-size: clamp(19px, 2vw, 28px); }
.intent-optical small { display: none; }
.intent-member { grid-column: 5 / 7; grid-row: 2; background: var(--paper-muted); }
.intent-benefits { grid-column: 1 / 7; grid-row: 3; display: grid; grid-template-columns: minmax(130px,.35fr) minmax(240px,1fr) minmax(220px,.8fr); align-items: center; gap: 24px; }
.intent-benefits span, .intent-benefits b, .intent-benefits small { margin: 0; }
@media (hover:hover) and (pointer:fine) {
  .intent-card:hover { transform: translateY(-5px); border-color: var(--red); }
}

.trust-section {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr);
  align-items: center;
  gap: clamp(42px, 8vw, 112px);
}
.trust-photo { margin: 0; }
.trust-photo img { width: 100%; min-height: 560px; border-radius: var(--radius); object-fit: cover; }
.trust-photo figcaption { max-width: 68ch; margin-top: 12px; color: var(--ink-soft); font-size: 12px; line-height: 1.5; }
.trust-promises { margin: 34px 0; border-top: 2px solid var(--red-deep); }
.trust-promises article { display: grid; grid-template-columns: minmax(150px,.42fr) 1fr; gap: 24px; padding: 19px 0; border-bottom: 1px solid var(--line); }
.trust-promises b { color: var(--red-deep); }
.trust-promises span { color: var(--ink-soft); line-height: 1.5; }

.site-search-dialog {
  width: min(760px, calc(100% - 28px));
  max-height: min(760px, calc(100dvh - 28px));
  padding: clamp(26px, 5vw, 54px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--paper-strong);
  color: var(--ink);
  box-shadow: var(--shadow);
}
.site-search-dialog::backdrop { background: rgba(23,7,11,.55); backdrop-filter: blur(7px); }
.site-search-dialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.site-search-dialog header span { color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .15em; }
.site-search-dialog h2 { margin: 6px 0 0; font-size: clamp(36px, 6vw, 62px); letter-spacing: -.055em; }
.site-search-dialog header button { min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--red-deep); font-weight: 780; }
.site-search-field { display: grid; gap: 8px; margin-top: 34px; }
.site-search-field span { color: var(--ink-soft); font-size: 12px; font-weight: 760; }
.site-search-field input { width: 100%; min-height: 58px; padding: 0 18px; border: 1px solid var(--line-strong); border-radius: 14px; background: var(--paper); color: var(--ink); font-size: 17px; }
.site-search-help { margin: 10px 0 22px; color: var(--ink-soft); font-size: 13px; }
.site-search-results { border-top: 1px solid var(--line); }
.site-search-result {
  display: grid;
  grid-template-columns: minmax(110px,.28fr) 1fr auto;
  align-items: center;
  gap: 20px;
  min-height: 86px;
  padding: 16px 2px;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
}
.site-search-result > span { color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.site-search-result div { display: grid; gap: 4px; }
.site-search-result b { font-size: 17px; }
.site-search-result small { color: var(--ink-soft); }
.site-search-result::after { content: "Abrir"; color: var(--red-deep); font-size: 12px; font-weight: 800; }
.site-search-empty { padding: 34px 0; color: var(--ink-soft); }

.commerce-dialog {
  width: min(760px, calc(100% - 28px));
  max-height: min(860px, calc(100dvh - 28px));
  padding: 0;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: var(--paper-strong);
  color: var(--ink);
  box-shadow: 0 32px 100px rgba(35,0,9,.32);
}
.commerce-dialog::backdrop { background: rgba(23,7,11,.62); backdrop-filter: blur(7px); }
.commerce-dialog form { display: grid; gap: 18px; padding: clamp(24px,5vw,46px); }
.commerce-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.commerce-dialog header span { color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .15em; }
.commerce-dialog h2 { max-width: 13ch; margin: 6px 0 0; font-family: var(--display); font-size: clamp(38px,6vw,62px); font-weight: 500; letter-spacing: -.055em; line-height: .94; }
.commerce-dialog header button { min-height: 42px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--ink); font-weight: 780; }
.commerce-dialog form > p { margin: 0; color: var(--ink-soft); line-height: 1.5; }
.commerce-account-option { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper-muted); }
.commerce-account-option > div { display: grid; gap: 5px; }
.commerce-account-option > div span { max-width: 46ch; color: var(--ink-soft); font-size: 12px; line-height: 1.4; }
.commerce-account-option label { display: flex; align-items: center; gap: 8px; color: var(--red-deep); font-size: 12px; font-weight: 800; white-space: nowrap; }
.commerce-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.commerce-form-grid label { display: grid; gap: 7px; color: var(--ink-soft); font-size: 12px; font-weight: 760; }
.commerce-form-grid label.wide { grid-column: 1 / -1; }
.commerce-form-grid input, .commerce-form-grid select, .commerce-form-grid textarea { width: 100%; min-height: 49px; padding: 12px 13px; border: 1px solid var(--line-strong); border-radius: 12px; background: #fff; color: var(--ink); font: inherit; resize: vertical; }
.commerce-review { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.commerce-review b { font-family: var(--display); font-size: 30px; font-weight: 600; }
.loyalty-estimate { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 17px; border-radius: 14px; background: var(--red-deep); color: #fff9f7; }
.loyalty-estimate div { display: grid; gap: 5px; }
.loyalty-estimate span { font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.loyalty-estimate b { font-size: 18px; }
.loyalty-estimate small { max-width: 42ch; color: rgba(255,249,247,.75); line-height: 1.4; }
.commerce-consent { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 10px; font-size: 13px; line-height: 1.45; }
.commerce-consent input { margin-top: 3px; }
.commerce-status { min-height: 21px; font-size: 13px; }
.commerce-dialog-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.commerce-dialog-actions a { color: var(--red-deep); font-size: 13px; font-weight: 780; text-underline-offset: 5px; }
.membership-selection { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.membership-selection button { display: grid; gap: 5px; min-height: 84px; padding: 16px; border: 1px solid var(--line-strong); border-radius: 14px; background: var(--paper-muted); color: var(--ink); text-align: left; }
.membership-selection button[aria-pressed="true"] { border-color: var(--red); background: var(--red-deep); color: #fff9f7; box-shadow: 0 12px 28px rgba(121,5,31,.18); }
.membership-selection b { font-size: 20px; }
.membership-selection span { font-size: 12px; opacity: .75; }

@media (max-width: 900px) {
  .intent-map { grid-template-rows: minmax(280px, auto) repeat(2, minmax(180px, auto)); }
  .intent-contact { grid-column: 1 / 7; grid-row: 1; min-height: 330px; }
  .intent-appointment { grid-column: 1 / 4; grid-row: 2; }
  .intent-optical { grid-column: 4 / 5; grid-row: 2; }
  .intent-member { grid-column: 5 / 7; grid-row: 2; }
  .intent-benefits { grid-column: 1 / 7; grid-row: 3; }
  .trust-section { grid-template-columns: 1fr; }
  .trust-copy { max-width: 760px; }
}

@media (max-width: 760px) {
  .header-search { display: none; }
  .intent-map { display: flex; margin-right: -18px; overflow-x: auto; padding: 4px 18px 20px 0; scroll-snap-type: x mandatory; }
  .intent-card, .intent-contact, .intent-appointment, .intent-optical, .intent-member, .intent-benefits { flex: 0 0 min(82vw, 330px); min-height: 330px; aspect-ratio: auto; border-radius: var(--radius); scroll-snap-align: start; text-align: left; }
  .intent-optical { justify-content: flex-end; }
  .intent-optical span { margin-bottom: auto; }
  .intent-optical b { font-size: 30px; }
  .intent-optical small { display: block; }
  .intent-benefits { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
  .intent-benefits span { margin-bottom: auto; }
  .intent-benefits b { margin-top: 30px; }
  .trust-photo img { min-height: 360px; }
  .trust-promises article { grid-template-columns: 1fr; gap: 7px; }
  .site-search-result { grid-template-columns: 1fr auto; gap: 12px; }
  .site-search-result > span { grid-column: 1 / 3; }
}

@media (prefers-reduced-motion: reduce) {
  .intent-card { transition: none; }
}

/* EIKA v41: circular optical portal and commercial home */
.circular-portal .portal-eye {
  top: 39%;
  width: min(42vw, 480px);
  height: auto;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid rgba(255, 247, 248, .48);
  border-radius: 50%;
  background: #650018;
  box-shadow: 0 34px 78px rgba(49, 0, 12, .34), inset 0 0 0 1px rgba(255, 255, 255, .12);
}
.circular-portal .portal-eye::before,
.circular-portal .portal-eye::after {
  position: absolute;
  z-index: 4;
  inset: 7%;
  content: "";
  border: 1px solid rgba(255, 246, 248, .2);
  border-radius: 50%;
  pointer-events: none;
}
.circular-portal .portal-eye::after { inset: 17%; border-style: dashed; }
.circular-portal .portal-sclera {
  inset: 0;
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 44% 38%, #ffedf0 0 8%, #f7c9d2 26%, #d8395d 57%, #76031f 81%, #3d000f 100%);
  transform: none;
  box-shadow: inset 0 0 86px rgba(54, 0, 13, .48);
}
.circular-portal .portal-gaze-follow {
  inset: 0;
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  transform: translate3d(0, 0, 0);
  transition: transform 180ms var(--ease-out, cubic-bezier(.23,1,.32,1));
  will-change: transform;
}
.circular-portal .portal-iris-red { width: 72%; box-shadow: inset 0 0 34px rgba(255,232,235,.34), 0 0 0 10px rgba(76,3,21,.18), 0 18px 42px rgba(58,0,15,.3); }
.circular-portal .portal-lid { left: 0; width: 100%; background: var(--red-deep); }
.circular-portal .portal-lid-top { border-radius: 0 0 50% 50%; }
.circular-portal .portal-lid-bottom { border-radius: 50% 50% 0 0; }
.circular-portal .portal-copy { margin-top: min(62vh, 600px); }
.circular-portal.gaze-active .portal-gaze-follow { animation: none !important; }

.commerce-hero { width: 100%; min-height: calc(100dvh - 72px); }
.home-slider { position: relative; min-height: calc(100dvh - 72px); overflow: hidden; background: var(--red-dark); color: #fff9f7; }
.home-slide { position: absolute; z-index: 0; inset: 0; overflow: hidden; opacity: 0; transform: translate3d(2.5%,0,0); pointer-events: none; transition: opacity 420ms cubic-bezier(.23,1,.32,1), transform 420ms cubic-bezier(.23,1,.32,1); }
.home-slide.active { z-index: 1; opacity: 1; transform: translate3d(0,0,0); pointer-events: auto; }
.home-slide > img { width: 100%; height: 100%; object-fit: cover; translate: 0 var(--slide-parallax-y, 0px); transform: scale(1.035); transition: transform 4.8s cubic-bezier(.77,0,.175,1); will-change: transform, translate; }
.home-slide.active > img { transform: scale(1); }
.home-slide .slide-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(37,0,10,.92) 0 30%, rgba(37,0,10,.58) 54%, rgba(37,0,10,.08) 78%); }
.slide-copy { position: absolute; z-index: 2; top: 50%; left: max(24px, calc((100vw - var(--max)) / 2)); width: min(620px, calc(100% - 48px)); translate: 0 var(--slide-copy-parallax-y, 0px); transform: translateY(-50%); will-change: translate; }
.slide-copy > p { margin: 0 0 18px; color: #ffb4c3; font-size: 12px; font-weight: 850; letter-spacing: .18em; }
.slide-copy h1, .slide-copy h2 { max-width: 10ch; margin: 0; font-family: var(--display); font-size: clamp(64px,7.6vw,116px); font-weight: 500; letter-spacing: -.07em; line-height: .84; }
.slide-copy > span { display: block; max-width: 46ch; margin: 24px 0 28px; color: #f9dfe4; font-size: clamp(17px,1.8vw,22px); line-height: 1.45; }
.slide-copy > small { display: block; max-width: 52ch; margin-top: 16px; color: #edb9c4; line-height: 1.4; }
.promotion-slide { background: radial-gradient(circle at 72% 48%, #d51d48, transparent 20%), linear-gradient(125deg, #3b000e, var(--red-deep) 58%, #d11b45); }
.promo-orbit { position: absolute; top: 50%; right: 9vw; width: min(44vw,560px); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; transform: translateY(-50%); }
.promo-orbit::before, .promo-orbit::after { position: absolute; content: ""; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.promo-orbit::before { inset: 13%; }.promo-orbit::after { inset: 27%; }
.promo-orbit i { position: absolute; width: 18%; aspect-ratio: 1; border-radius: 50%; background: #fff7f8; box-shadow: 0 16px 30px rgba(51,0,13,.22); }
.promo-orbit i:nth-child(1) { top: 4%; left: 42%; }.promo-orbit i:nth-child(2) { right: 2%; bottom: 23%; background: #16070b; }.promo-orbit i:nth-child(3) { bottom: 7%; left: 11%; background: #f7a5b6; }
.specialty-slide > img { object-position: center; }
.slider-controls { position: absolute; z-index: 5; right: max(20px, calc((100vw - var(--max)) / 2)); bottom: 28px; display: flex; align-items: center; gap: 10px; padding: 8px; border: 1px solid rgba(255,255,255,.26); border-radius: 999px; background: rgba(49,0,13,.45); backdrop-filter: blur(14px); }
.slider-arrow, .slider-pause { min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: #fff9f7; font-size: 12px; font-weight: 780; }
.slider-arrow:active, .slider-pause:active { transform: scale(.97); }
.slider-dots { display: flex; align-items: center; gap: 0; }
.slider-dots button { position: relative; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; }
.slider-dots button::before { position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: transparent; content: ""; transform: translate(-50%,-50%); transition: background-color 160ms ease, transform 160ms ease; }
.slider-dots button.active::before { background: #fff9f7; transform: translate(-50%,-50%) scale(1.18); }

.checkup-section { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(46px,8vw,120px); }
.checkup-intro h2 { max-width: 10ch; margin: 0; font-size: clamp(48px,6.4vw,92px); font-weight: 580; letter-spacing: -.06em; line-height: .93; }
.checkup-intro > p:not(.eyebrow) { max-width: 52ch; margin: 24px 0 30px; color: var(--ink-soft); font-size: 18px; line-height: 1.58; }
.checkup-orbit { position: relative; display: grid; min-height: 600px; place-items: center; }
.checkup-orbit::before { position: absolute; width: min(92%,500px); aspect-ratio: 1; content: ""; border: 1px solid var(--line-strong); border-radius: 50%; box-shadow: inset 0 0 0 48px rgba(169,20,49,.035), inset 0 0 0 96px rgba(169,20,49,.025); }
.checkup-orbit article { position: absolute; display: grid; width: 210px; aspect-ratio: 1; place-content: center; gap: 10px; padding: 26px; border-radius: 50%; text-align: center; }
.checkup-orbit article:nth-child(1) { top: 1%; left: 5%; background: var(--red-deep); color: #fff9f7; }
.checkup-orbit article:nth-child(2) { right: 1%; bottom: 20%; border: 1px solid var(--red); background: var(--paper-strong); color: var(--red-deep); }
.checkup-orbit article:nth-child(3) { bottom: 0; left: 15%; background: var(--ink); color: #fff9f7; }
.checkup-orbit b { font-size: 22px; }.checkup-orbit span { font-size: 14px; line-height: 1.35; }

.contactology-feature { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 680px; overflow: hidden; border-radius: var(--radius); background: #250009; color: #fff9f7; }
.contactology-image { position: relative; min-height: 580px; overflow: hidden; }
.contactology-image img { width: 100%; height: 100%; object-fit: cover; }
.contact-lens-ring { position: absolute; top: 50%; left: 55%; width: 220px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.76); border-radius: 50%; transform: translate(-50%,-50%); }
.contact-lens-ring::before, .contact-lens-ring::after, .contact-lens-ring i { position: absolute; content: ""; border: 1px solid rgba(255,255,255,.38); border-radius: 50%; }
.contact-lens-ring::before { inset: 17%; }.contact-lens-ring::after { inset: 34%; }.contact-lens-ring i { inset: -24px; border-style: dashed; }
.contactology-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(32px,5vw,72px); }
.contactology-copy > p { margin: 0 0 18px; color: #ff9eb0; font-size: 11px; font-weight: 850; letter-spacing: .16em; }
.contactology-copy h2 { max-width: 9ch; margin: 0; font-size: clamp(46px,5.4vw,76px); line-height: .93; letter-spacing: -.055em; }
.contactology-copy > span { max-width: 48ch; margin: 24px 0 30px; color: #f2ccd4; line-height: 1.58; }
.contactology-copy > small { max-width: 46ch; margin-top: 16px; color: #dcaab5; line-height: 1.4; }

.appointment-cta { position: relative; display: grid; min-height: 620px; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 40px; overflow: hidden; padding-inline: clamp(32px,7vw,96px); border-radius: var(--radius); background: var(--red-deep); color: #fff9f7; }
.appointment-copy > p { margin: 0 0 18px; color: #ffb4c3; font-size: 11px; font-weight: 850; letter-spacing: .17em; }
.appointment-copy h2 { max-width: 11ch; margin: 0; font-size: clamp(50px,6.5vw,92px); line-height: .92; letter-spacing: -.06em; }
.appointment-copy > span { display: block; max-width: 50ch; margin: 24px 0 30px; color: #f4d3da; font-size: 18px; line-height: 1.5; }
.appointment-eye { position: relative; display: grid; width: min(100%,440px); aspect-ratio: 1; place-items: center; justify-self: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; box-shadow: inset 0 0 0 48px rgba(255,255,255,.035), inset 0 0 0 96px rgba(255,255,255,.025); }
.appointment-eye i { display: grid; width: 48%; aspect-ratio: 1; place-items: center; border-radius: 50%; background: radial-gradient(circle,#ee315b,#8a0628 62%,#3d000f); }
.appointment-eye b { width: 34%; aspect-ratio: 1; border-radius: 50%; background: #17070b; box-shadow: -18px -18px 0 -12px #fff9f7; }

@media (hover: hover) and (pointer: fine) {
  .slider-arrow:hover, .slider-pause:hover { background: rgba(255,255,255,.12); }
  .slider-dots button:hover::before { transform: translate(-50%,-50%) scale(1.18); }
  .contact-lens-ring { transition: transform 220ms cubic-bezier(.23,1,.32,1); }
  .contactology-image:hover .contact-lens-ring { transform: translate(-50%,-50%) scale(1.04); }
}

@media (prefers-reduced-motion: no-preference) {
  .circular-portal:not(.reduced):not(.gaze-active) .portal-gaze-follow { animation: circular-gaze 7.2s cubic-bezier(.77,0,.175,1) infinite; }
  .promo-orbit { animation: promo-float 6.4s cubic-bezier(.77,0,.175,1) infinite; }
  .contact-lens-ring i { animation: contact-ring-spin 18s linear infinite; }
  .appointment-eye i { animation: appointment-focus 4.8s cubic-bezier(.77,0,.175,1) infinite; }
}
@keyframes circular-gaze { 0%,18%,100% { transform:translate3d(0,0,0); } 34%,48% { transform:translate3d(-9%,0,0); } 64%,78% { transform:translate3d(9%,2%,0); } }
@keyframes promo-float { 50% { transform:translateY(-50%) rotate(8deg); } }
@keyframes contact-ring-spin { to { transform:rotate(360deg); } }
@keyframes appointment-focus { 50% { transform:scale(.94); } }

@media (max-width: 900px) {
  .checkup-section, .contactology-feature, .appointment-cta { grid-template-columns: 1fr; }
  .checkup-orbit { min-height: 540px; }
  .contactology-image { min-height: 460px; }
  .appointment-cta { padding-block: 72px; }
  .appointment-eye { width: min(82vw,420px); }
}

@media (max-width: 760px) {
  .commerce-hero, .home-slider { min-height: calc(100dvh - 64px); }
  .home-slide .slide-shade { background: linear-gradient(0deg,rgba(37,0,10,.94) 0 46%,rgba(37,0,10,.18) 80%); }
  .home-slide > img { object-position: 62% center; }
  .slide-copy { top: auto; bottom: 104px; left: 20px; width: calc(100% - 40px); transform: none; }
  .slide-copy > p { margin-bottom: 10px; font-size: 10px; }
  .slide-copy h1, .slide-copy h2 { max-width: 10ch; font-size: clamp(42px,13.6vw,62px); line-height: .9; }
  .slide-copy > span { margin: 14px 0 18px; font-size: 15px; }
  .slide-copy > small { display: none; }
  .slide-copy .button { min-height: 46px; padding-inline: 18px; }
  .slider-controls { right: 14px; bottom: 18px; left: 14px; display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; gap: 0; padding: 6px 8px; }
  .slider-arrow { width: 44px; min-width: 44px; overflow: hidden; color: transparent; }
  .slider-arrow::before { color: #fff9f7; content: "‹"; font-size: 22px; }
  #home-slider-next::before { content: "›"; }
  .slider-dots { justify-content: center; }
  .slider-dots button { width: 40px; }
  .slider-pause { position: absolute; top: -50px; right: 0; min-width: 74px; border: 1px solid rgba(255,255,255,.24); background: rgba(49,0,13,.52); backdrop-filter: blur(12px); }
  .promotion-slide .slide-copy { bottom: 112px; }
  .promo-orbit { top: 30%; right: -18vw; width: 84vw; opacity: .62; }
  .checkup-intro h2 { font-size: clamp(44px,13vw,66px); }
  .checkup-orbit { min-height: 520px; }
  .checkup-orbit article { width: 174px; padding: 20px; }
  .contactology-feature { min-height: 0; }
  .contactology-image { min-height: 390px; }
  .contactology-copy { padding: 34px 24px 42px; align-items: center; text-align: center; }
  .contactology-copy h2 { font-size: clamp(44px,13vw,64px); }
  .appointment-cta { width: calc(100% - 28px); min-height: 0; padding: 58px 24px; }
  .appointment-copy { text-align: center; }
  .appointment-copy h2 { font-size: clamp(46px,13vw,66px); }
  .appointment-copy .button { margin-inline: auto; }
  .circular-portal .portal-eye { top: 32%; width: min(76vw,360px); }
  .circular-portal .portal-copy { position: absolute; bottom: 32px; margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .home-slide { transition: opacity 160ms ease; transform: none; }
  .home-slide > img, .home-slide.active > img { translate: none; transform: none; transition: none; }
  .slide-copy { translate: none; }
  .circular-portal .portal-gaze-follow { transform: none !important; animation: none !important; }
  .promo-orbit, .contact-lens-ring i, .appointment-eye i { animation: none !important; }
}

/* EIKA v80: clear, commerce-first public experience */
.slide-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.button-ghost { border-color: rgba(255,255,255,.62); background: rgba(43,0,11,.2); color: #fff9f7; backdrop-filter: blur(10px); }
.button-ghost:hover { background: rgba(255,255,255,.14); }

.commerce-proof {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(3,1fr);
  border-bottom: 1px solid var(--line);
  background: var(--paper-strong);
}
.commerce-proof a { display: flex; min-height: 82px; align-items: center; justify-content: center; gap: 12px; padding: 18px 28px; border-right: 1px solid var(--line); text-decoration: none; transition: background 180ms ease, color 180ms ease; }
.commerce-proof a:hover, .commerce-proof a:focus-visible { background: var(--paper-muted); color: var(--red-deep); }
.commerce-proof a:last-child { border-right: 0; }
.commerce-proof b { color: var(--red); font-size: 12px; letter-spacing: .12em; }
.commerce-proof span { font-size: 14px; font-weight: 720; }

.category-section { padding-bottom: 62px; }
.category-heading { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr); align-items: end; gap: 30px; }
.category-heading .eyebrow { grid-column: 1 / 3; margin-bottom: -12px; }
.category-heading h2 { max-width: 12ch; margin: 0; font-family: var(--display); font-size: clamp(50px,6.4vw,92px); font-weight: 500; letter-spacing: -.065em; line-height: .89; }
.category-heading > p:last-child { max-width: 43ch; margin: 0 0 7px; color: var(--ink-soft); font-size: 18px; line-height: 1.55; }
.category-grid { display: grid; grid-template-columns: 1.15fr .8fr 1fr; grid-template-rows: repeat(2,260px); gap: 14px; margin-top: 44px; }
.category-card { position: relative; display: flex; min-height: 0; flex-direction: column; justify-content: flex-end; padding: 28px; overflow: hidden; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; background-color: var(--red-dark); background-position: center; background-size: cover; color: #fff9f7; text-decoration: none; isolation: isolate; }
.category-card::before, .category-card::after { position: absolute; z-index: -1; content: ""; pointer-events: none; }
.category-card::before { inset: 0; background: linear-gradient(0deg,rgba(23,7,11,.94) 0,rgba(23,7,11,.52) 43%,rgba(23,7,11,.05) 76%); }
.category-card::after { top: 28px; right: 28px; width: 56px; height: 1px; background: rgba(255,255,255,.72); transform-origin: right; transition: transform 300ms cubic-bezier(.16,1,.3,1); }
.category-card:hover::after { transform: scaleX(1.65); }
.category-card span { margin-bottom: auto; font-size: 10px; font-weight: 850; letter-spacing: .15em; }
.category-card h3 { margin: 0; font-family: var(--display); font-size: clamp(38px,3.8vw,58px); font-weight: 500; letter-spacing: -.055em; line-height: .92; }
.category-card p { max-width: 26ch; margin: 10px 0 22px; line-height: 1.45; }
.category-card b { font-size: 14px; }
.category-optical { grid-row: 1 / 3; background-image: url("assets/eika-editorial-hero-v1.webp"); background-position: 69% center; }
.category-sun { grid-column: 2; grid-row: 1; background-image: url("assets/eika-product-grid-v1.webp"); background-position: 50% 100%; background-size: 300% 200%; }
.category-contact { grid-column: 3; grid-row: 1 / 3; background-image: url("assets/eika-contactology-editorial-v1.webp"); background-position: 38% center; }
.category-care { grid-column: 2; grid-row: 2; background-image: url("assets/eika-care-stilllife-v1.webp"); background-position: 63% center; }

.shop-section { width: 100%; max-width: none; padding: clamp(84px,9vw,132px) max(18px,calc((100vw - var(--max)) / 2)); background: #f2e7e3; }
.shop-heading { max-width: 930px; }
.shop-heading .eyebrow { margin-bottom: 14px; }
.shop-toolbar { position: sticky; z-index: 8; top: 82px; margin: 36px 0 22px; padding: 10px; border: 1px solid rgba(93,16,34,.14); border-radius: 999px; background: rgba(255,250,247,.88); backdrop-filter: blur(16px); }
.product-shelf { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); grid-template-rows: none; gap: 16px; }
.site-product, .product-hero, .product-tall, .product-wide, .product-care {
  display: grid;
  min-width: 0;
  min-height: 520px;
  grid-column: auto;
  grid-row: auto;
  grid-template-columns: 1fr;
  grid-template-rows: minmax(290px,1fr) auto;
  border-color: rgba(93,16,34,.13);
  background: var(--paper-strong);
  transition: transform 240ms cubic-bezier(.16,1,.3,1), box-shadow 240ms ease;
}
.site-product:hover { transform: translateY(-5px); box-shadow: 0 22px 46px rgba(76,3,21,.1); }
.product-image { position: relative; min-height: 290px; background-color: #eadbd6; background-repeat: no-repeat; }
.product-shot { background-image: url("assets/eika-product-grid-v1.webp"); background-size: 300% 200%; }
.shot-01 { background-position: 0 0; }
.shot-02 { background-position: 50% 0; }
.shot-03 { background-position: 100% 0; }
.shot-04 { background-position: 0 100%; }
.shot-05 { background-position: 50% 100%; }
.shot-06 { background-position: 100% 100%; }
.care-shot { background-image: url("assets/eika-care-stilllife-v1.webp"); background-size: cover; }
.care-kit { background-position: 68% center; }
.care-case { background-position: 42% center; }
.product-image::after { position: absolute; inset: 0; content: ""; background: linear-gradient(145deg,rgba(255,255,255,.13),transparent 46%,rgba(69,2,18,.12)); pointer-events: none; }
.tone-wine { filter: saturate(1.1) hue-rotate(-9deg); }
.tone-black { filter: saturate(.62) contrast(1.08); }
.tone-clear { filter: saturate(.55) brightness(1.15); }
.tone-honey { filter: sepia(.28) saturate(1.25) hue-rotate(342deg); }
.tone-silver { filter: grayscale(.72) contrast(.94) brightness(1.08); }
.product-badge { position: absolute; z-index: 2; top: 15px; left: 15px; padding: 7px 10px; border-radius: 999px; background: #fffaf7; color: var(--red-deep); font-size: 10px; font-weight: 850; letter-spacing: .05em; }
.product-copy { display: block; padding: 19px; }
.product-copy > span { display: block; margin-bottom: 7px; color: var(--ink-soft); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.product-copy h3 { display: inline; font-size: 20px; }
.product-copy > b { float: right; margin-left: 10px; font-size: 16px; }
.product-copy .live-compare-price { float: right; margin: 2px 4px 0 8px; color: var(--ink-soft); font-size: 12px; }
.product-swatches { display: flex; clear: both; gap: 6px; min-height: 29px; align-items: center; padding-top: 12px; }
.product-swatches i { width: 15px; height: 15px; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px rgba(23,7,11,.2); }
.product-swatches .smoke { background: #9d8b87; }.product-swatches .wine { background: #771329; }.product-swatches .ink { background: #171217; }.product-swatches .silver { background: #bbbdbd; }.product-swatches .clear { background: #eee6df; }.product-swatches .honey { background: #b46d35; }
.product-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 9px; }
.product-copy .product-actions button { grid-column: auto; min-height: 41px; margin: 0; padding: 0 10px; font-size: 12px; }
.product-actions .quick-view { border-color: var(--line-strong); color: var(--ink); }
.care-product { background: var(--paper-strong); color: var(--ink); }
.care-product .care-mark { min-height: 290px; background: radial-gradient(circle at 50% 42%,#bb2c4e,transparent 29%),linear-gradient(145deg,#3d000f,#8d0b2a); font-size: 28px; line-height: 1.1; }
.care-mark small { font-size: 10px; letter-spacing: .28em; }
.care-product .product-copy > span { color: var(--ink-soft); }
.care-product .product-actions button { border-color: var(--line-strong); color: var(--ink); }
.care-product .product-actions button:hover { background: var(--ink); color: #fff9f7; }
.care-light { background: #d9d3cd; color: var(--ink); }
.care-light .care-mark { background: radial-gradient(circle at 50% 42%,#fff,transparent 28%),linear-gradient(145deg,#8c8784,#e6e0da); color: var(--ink); }
.care-light .product-copy > span { color: var(--ink-soft); }
.care-light .product-actions button { border-color: var(--line-strong); color: var(--ink); }
.care-light .product-actions button:hover { background: var(--ink); color: #fff; }
.demo-note { max-width: 72ch; }

.included-section { display: grid; grid-template-columns: minmax(280px,.75fr) minmax(0,1.25fr); align-items: start; gap: clamp(40px,8vw,120px); }
.included-copy { position: sticky; top: 120px; }
.included-copy h2 { max-width: 10ch; margin: 0; font-size: clamp(44px,5.4vw,74px); font-weight: 600; letter-spacing: -.055em; line-height: .94; }
.included-copy > p:last-child { max-width: 44ch; color: var(--ink-soft); font-size: 17px; line-height: 1.58; }
.included-grid { border-top: 1px solid var(--line-strong); }
.included-grid article { display: grid; grid-template-columns: minmax(150px,.65fr) 1.35fr; gap: 28px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.included-grid b { font-size: 18px; }
.included-grid span { color: var(--ink-soft); line-height: 1.52; }

.empty-cart { display: grid; gap: 9px; padding: 28px 0; color: var(--ink-soft); }
.empty-cart b { color: var(--ink); font-size: 19px; }
.empty-cart a { width: max-content; margin-top: 8px; color: var(--red-deep); font-weight: 780; text-underline-offset: 5px; }
.cart-summary { border-top: 1px solid var(--line); }
.cart-summary .site-cart-total { border-top: 0; }
.cart-summary p { margin: -10px 0 18px; color: var(--ink-soft); font-size: 12px; line-height: 1.45; }
.site-cart-item { grid-template-columns: 1fr auto; }
.site-cart-item small { color: var(--ink-soft); }
.cart-quantity { grid-column: 1 / 3; display: flex; align-items: center; gap: 8px; }
.site-cart-item .cart-quantity button { display: grid; width: 34px; height: 34px; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; text-decoration: none; }
.cart-quantity output { min-width: 22px; text-align: center; font-weight: 800; }
.site-cart-item > button { grid-column: 1 / 3; }

.product-dialog { width: min(920px,calc(100% - 28px)); max-height: min(760px,calc(100dvh - 28px)); padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--paper-strong); color: var(--ink); box-shadow: 0 32px 90px rgba(35,0,9,.28); }
.product-dialog::backdrop { background: rgba(23,7,11,.58); backdrop-filter: blur(5px); }
.product-dialog > .dialog-close { position: absolute; z-index: 3; top: 14px; right: 14px; min-height: 42px; padding: 0 15px; border-radius: 999px; background: rgba(255,250,247,.92); }
.product-dialog-layout { display: grid; min-height: 580px; grid-template-columns: 1.05fr .95fr; }
.product-dialog-visual { min-height: 460px; background-color: #eadbd6; background-image: url("assets/eika-product-grid-v1.webp"); background-repeat: no-repeat; background-position: 0 0; background-size: 300% 200%; }
.product-dialog-visual.care-dialog-visual { background-image: radial-gradient(circle at 50% 42%,#cc4261 0 12%,transparent 13%),radial-gradient(circle at 50% 42%,transparent 0 21%,rgba(255,255,255,.4) 22% 22.5%,transparent 23%),linear-gradient(145deg,#3d000f,#a71134); background-size: auto; }
.product-dialog-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(30px,5vw,58px); }
.product-dialog-copy > span { color: var(--red); font-size: 10px; font-weight: 850; letter-spacing: .16em; }
.product-dialog-copy h2 { margin: 10px 0 4px; font-size: clamp(40px,5vw,64px); line-height: .94; letter-spacing: -.055em; }
.product-dialog-copy > b { font-size: 22px; }
.product-dialog-copy > p { margin: 22px 0; color: var(--ink-soft); font-size: 17px; line-height: 1.52; }
.product-dialog-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0 0 20px; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--line); }
.product-dialog-facts div { min-width: 0; padding: 12px; background: var(--paper-strong); }
.product-dialog-facts dt { color: var(--red); font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.product-dialog-facts dd { margin: 5px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.35; }
.product-dialog-benefits { display: grid; gap: 8px; margin-bottom: 20px; }
.product-dialog-benefits span { padding-left: 18px; color: var(--ink-soft); font-size: 13px; }
.product-dialog-benefits span::before { margin-left: -18px; margin-right: 8px; color: var(--red); content: "✓"; font-weight: 900; }
.product-dialog-copy > small { min-height: 48px; margin-bottom: 20px; color: var(--ink-soft); line-height: 1.4; }

@media (max-width: 1100px) {
  .category-grid { grid-template-columns: repeat(2,1fr); }
  .category-grid { grid-template-rows: none; }
  .category-card { min-height: 360px; grid-column: auto; grid-row: auto; }
  .product-shelf { grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: none; }
}

@media (max-width: 760px) {
  .commerce-hero, .home-slider { min-height: calc(100dvh - 64px); }
  .slide-actions { flex-direction: column; align-items: stretch; }
  .slide-actions .button { width: 100%; }
  .commerce-proof { grid-template-columns: 1fr; }
  .commerce-proof a { min-height: 58px; justify-content: flex-start; padding: 12px 20px; border-right: 0; border-bottom: 1px solid var(--line); }
  .commerce-proof a:last-child { border-bottom: 0; }
  .category-heading { grid-template-columns: 1fr; }
  .category-heading .eyebrow { grid-column: 1; margin-bottom: -5px; }
  .category-heading h2 { font-size: clamp(46px,13vw,68px); }
  .category-grid { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 30px; }
  .category-card { min-height: 300px; padding: 19px; }
  .category-card p { font-size: 13px; }
  .category-card h3 { font-size: 31px; }
  .category-card::after { right: 18px; width: 48%; }
  .shop-section { width: 100%; padding-inline: 14px; }
  .shop-toolbar { top: 68px; align-items: stretch; border-radius: 18px; }
  .site-cart-button { align-self: stretch; }
  .product-shelf { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; overflow: visible; }
  .site-product, .product-wide, .product-care { min-width: 0; min-height: 420px; grid-template-rows: minmax(210px,1fr) auto; }
  .product-image, .care-shot { min-height: 210px; }
  .product-copy { padding: 14px; }
  .product-copy h3 { display: block; font-size: 17px; }
  .product-copy > b { float: none; display: block; margin: 4px 0 0; }
  .product-actions { grid-template-columns: 1fr; }
  .product-copy .product-actions button { min-height: 42px; }
  .product-dialog { overflow-y: auto; }
  .product-dialog-layout { grid-template-columns: 1fr; }
  .product-dialog-visual { min-height: 320px; }
  .commerce-account-option, .loyalty-estimate { align-items: stretch; flex-direction: column; }
  .commerce-form-grid { grid-template-columns: 1fr; }
  .commerce-form-grid label.wide { grid-column: 1; }
  .commerce-dialog-actions { align-items: stretch; flex-direction: column; }
  .commerce-dialog-actions .button { width: 100%; }
}

@media (max-width: 440px) {
  .category-grid { grid-template-columns: 1fr; }
  .category-card { min-height: 270px; }
  .product-shelf { grid-template-columns: 1fr; }
  .site-product, .product-wide, .product-care { min-height: 500px; }
  .product-image, .care-shot { min-height: 310px; }
}

/* EIKA v75: editorial typography and original campaign photography */
.shop-heading h2,
.included-copy h2,
.intent-heading h2,
.checkup-intro h2,
.trust-copy h2,
.contactology-copy h2,
.appointment-copy h2,
.section-heading h2,
.app-copy h2,
.product-dialog-copy h2 {
  font-family: var(--display);
  font-weight: 500;
}
.site-product { border-radius: 8px; }
.product-dialog-visual.shot-01 { background-position: 0 0; }
.product-dialog-visual.shot-02 { background-position: 50% 0; }
.product-dialog-visual.shot-03 { background-position: 100% 0; }
.product-dialog-visual.shot-04 { background-position: 0 100%; }
.product-dialog-visual.shot-05 { background-position: 50% 100%; }
.product-dialog-visual.shot-06 { background-position: 100% 100%; }
.product-dialog-visual.care-shot { background-image: url("assets/eika-care-stilllife-v1.webp"); background-size: cover; }
.product-dialog-visual.care-kit { background-position: 68% center; }
.product-dialog-visual.care-case { background-position: 42% center; }
dialog.dialog-fallback[open] {
  position: fixed;
  z-index: 80;
  top: 50%;
  left: 50%;
  display: block;
  margin: 0;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 100vmax rgba(23,7,11,.62), 0 32px 90px rgba(35,0,9,.3);
}
