/* The parent header remains the banner landmark; its old contents are unhooked. */
body #page > #masthead.site-header {
  background: transparent !important;
  background-image: none !important;
  border: 0;
  padding: 0;
  margin: 0;
  min-height: 0;
  width: 100%;
  float: none;
  position: relative;
  z-index: 1000;
}
/* Override Storefront's header-link palette without changing product styling. */
#masthead .emotion-header a,
#masthead .emotion-header button,
#masthead .emotion-header-dialog a,
#masthead .emotion-header-dialog button { color: #171717; }
#masthead .emotion-header__brand { font-weight: 400; }
#masthead .emotion-header__menu,
#masthead .emotion-header__utilities button { font-weight: 400; box-shadow: none; }
#masthead .emotion-header-dialog { text-align: left; }
#masthead .emotion-header-dialog input[type="search"] { box-shadow: none; }
/* Keep the parent's skip-to-content link above the fixed header when focused. */
#masthead .skip-link:focus { z-index: 1002; }

/* v1.2: front page fills the initial viewport, compact branding elsewhere. */
:root {
  --emotion-compact-logo-width: 108px; /* approximately 60% of the original 180px wordmark */
  --emotion-hero-logo-width: min(84vw, 700px);
}
.emotion-header-slot--compact { height: var(--emotion-header-height); }
.emotion-header-slot--home { height: calc(100svh - var(--emotion-admin-offset)); }
#masthead .emotion-header--home { height: calc(100svh - var(--emotion-admin-offset)); background: #fff; }
#masthead .emotion-header--compact { height: var(--emotion-header-height); background: #fff; }
#masthead .emotion-header__inner { height: var(--emotion-header-height); background: #fff; position: relative; z-index: 2; }
#masthead .emotion-header--home .emotion-header__inner { background: rgb(255 255 255 / 94%); }
#masthead .emotion-header--home .emotion-header__brand { font-size: 9.75px; letter-spacing: .06em; }
#masthead .emotion-header__compact-logo { display: block; width: var(--emotion-compact-logo-width); height: auto; max-height: var(--emotion-header-height); object-fit: contain; border-radius: 0; }
#masthead .emotion-header__hero { position: absolute; inset: 0; overflow: hidden; isolation: isolate; }
#masthead .emotion-header__scene { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; margin: 0; border-radius: 0; }
#masthead .emotion-header__hero::after { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / 30%); }
#masthead .emotion-header__hero-logo {
  position: absolute; left: 50%; top: calc(50% + var(--emotion-header-height) / 2);
  transform: translate(-50%, -50%); width: var(--emotion-hero-logo-width);
  height: auto; max-height: calc(100% - var(--emotion-header-height) - 32px);
  object-fit: contain; border-radius: 0; margin: 0; z-index: 1;
  /* Use the supplied black-on-white logo unchanged; white becomes transparent visually. */
  filter: invert(1); mix-blend-mode: screen;
}
@media (max-width: 1023px) {
  :root { --emotion-compact-logo-width: 90px; }
  #masthead .emotion-header:not(.emotion-header--enhanced) .emotion-header__inner { height: auto; }
  #masthead .emotion-header--home:not(.emotion-header--enhanced) { height: calc(100svh - var(--emotion-admin-offset)); }
}

/* Hide only page-level titles visually; retain accessible names and document titles.
   Product-card names, section headings, form labels and navigation are unaffected. */
body.page #main .entry-header > .entry-title,
body.single-post #main .entry-header > .entry-title,
body.archive #main .page-header > .page-title,
body.search #main .page-header > .page-title,
body.woocommerce #main .woocommerce-products-header__title,
body.single-product #main .summary > .product_title,
body.page #main .wp-block-post-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
body.page #main .entry-header { margin-bottom: 0; }

/* v1.7: HOME body sits beneath the fading overlay, not below an empty screen. */
body.home .emotion-header-slot--home { height: 0; }
body.home #content { margin-top: 0; padding-top: 0; }
body.home #content > .col-full { width: 100%; max-width: none; margin: 0; padding: 0; }
body.home #content > .col-full > .emotion-home-editorial { width: 100%; max-width: none; }
body.home .emotion-home-editorial > .emotion-home-product-photo { width: 100%; max-width: none; margin: 0; overflow: hidden; }
body.home .emotion-home-editorial > section {
  width: calc(100% - 48px); max-width: 1120px; margin-inline: auto;
}
body.home .emotion-home-editorial > .emotion-home-concept { max-width: 660px; margin-top: clamp(64px, 9vw, 144px); }
body.home #main .entry-header { padding-top: 0; }
@media (max-width: 600px) {
  body.home .emotion-home-editorial > section { width: calc(100% - 40px); }
}

/* Animate once on entry; without JS, all body content stays visible. */
.emotion-revealing[data-emotion-reveal="rise"] { animation: emotion-body-rise 850ms cubic-bezier(.22,1,.36,1) both; }
.emotion-revealing[data-emotion-reveal="fade"] { animation: emotion-body-fade 1000ms ease both; }
.emotion-revealing[data-emotion-reveal="left"] { animation: emotion-body-left 900ms cubic-bezier(.22,1,.36,1) both; }
.emotion-revealing[data-emotion-reveal="right"] { animation: emotion-body-right 1000ms cubic-bezier(.22,1,.36,1) both; }
.emotion-revealing[data-emotion-reveal="settle"] { animation: emotion-body-settle 1000ms cubic-bezier(.22,1,.36,1) both; }
.emotion-home-product-photo.emotion-revealing img { animation: emotion-photo-settle 1400ms cubic-bezier(.22,1,.36,1) both; }
@keyframes emotion-body-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes emotion-body-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes emotion-body-left { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: none; } }
@keyframes emotion-body-right { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
@keyframes emotion-body-settle { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
@keyframes emotion-photo-settle { from { transform: scale(1.035); } to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
  .emotion-revealing[data-emotion-reveal], .emotion-home-product-photo.emotion-revealing img { animation: none; }
}

/* HOME body opening: preserve the entire square product photograph. */
.emotion-home-product-photo {
  display: block;
  clear: both;
  width: 100%;
  max-width: 1040px;
  margin: clamp(32px, 5vw, 80px) auto clamp(48px, 7vw, 112px);
}
.emotion-home-product-photo img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 0;
  margin: 0;
}

/* HOME editorial body: readable HTML copy, original un-cropped photographs. */
.emotion-home-editorial {
  --emotion-body-space: clamp(72px, 9vw, 144px);
  clear: both; color: #171717; max-width: 1120px; margin-inline: auto;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Noto Sans JP", sans-serif;
}
.emotion-home-editorial .emotion-home-eyebrow {
  font-size: 7.5px; letter-spacing: .18em; line-height: 1.6; color: #666; margin: 0 0 24px;
}
.emotion-home-editorial h2 {
  font-size: clamp(18.75px, 2.325vw, 30px); line-height: 1.7; letter-spacing: .06em;
  font-weight: 400; margin: 0 0 32px;
}
.emotion-home-editorial p { font-size: 11.25px; line-height: 2.2; margin: 0 0 24px; overflow-wrap: anywhere; }
.emotion-home-concept { max-width: 660px; margin: 0 auto var(--emotion-body-space); }
.emotion-home-prose p:last-child { margin-bottom: 0; }
.emotion-home-products { margin-bottom: var(--emotion-body-space); }
.emotion-home-section-heading { margin-bottom: 48px; }
.emotion-home-product-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(24px,5vw,80px); }
.emotion-home-product { min-width: 0; }
.emotion-home-product img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 0; }
.emotion-home-product-copy { border-top: 1px solid #dedede; padding-top: 28px; margin-top: 24px; }
.emotion-home-product-copy .emotion-home-eyebrow { margin-bottom: 12px; }
.emotion-home-product-copy h3 { font-size: clamp(13.5px,1.5vw,17.25px); font-weight: 400; line-height: 1.6; letter-spacing: .02em; margin: 0 0 16px; }
.emotion-home-selection { display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; padding: 64px 0; border-top: 1px solid #dedede; margin-bottom: var(--emotion-body-space); }
.emotion-home-shop-link { display: inline-flex; gap: 40px; align-items: center; min-height: 44px; padding: 8px 0; border-bottom: 1px solid #171717; color: #171717; text-decoration: none; font-size: 9.75px; }
.emotion-home-shop-link:hover { color: #555; }
.emotion-home-shop-link:focus-visible { outline: 2px solid #171717; outline-offset: 5px; }
@media (max-width: 600px) {
  .emotion-home-editorial p { font-size: 10.5px; line-height: 2.1; }
  .emotion-home-product-grid { grid-template-columns: 1fr; gap: 48px; }
  .emotion-home-product img { max-width: 400px; margin-inline: auto; }
  .emotion-home-selection { grid-template-columns: 1fr; gap: 8px; padding-block: 40px; }
  .emotion-home-section-heading { margin-bottom: 32px; }
}

.emotion-header__shop { display: none; }

/* v1.3: mobile four-column controls; desktop grid stays unchanged. */
:root {
  --emotion-control-duration: 240ms;
  --emotion-menu-duration: 320ms;
  --emotion-control-ease: cubic-bezier(.22, 1, .36, 1);
}
.emotion-header__mobile-label { display: none; }
#masthead .emotion-header__inner a,
#masthead .emotion-header__inner button,
.emotion-header-dialog a,
.emotion-header-dialog button {
  position: relative;
  transition: transform var(--emotion-control-duration) var(--emotion-control-ease),
    background-color var(--emotion-control-duration) ease,
    box-shadow var(--emotion-control-duration) ease;
}
#masthead .emotion-header__inner a::after,
#masthead .emotion-header__inner button::after,
.emotion-header-dialog a::after {
  content: ""; position: absolute; left: 12%; right: 12%; bottom: 4px;
  height: 2px; background: currentColor; transform: scaleX(0);
  transform-origin: left; pointer-events: none;
  transition: transform var(--emotion-control-duration) var(--emotion-control-ease);
}
@media (hover: hover) and (pointer: fine) {
  #masthead .emotion-header__inner a:hover,
  #masthead .emotion-header__inner button:hover,
  .emotion-header-dialog a:hover,
  .emotion-header-dialog button:hover {
    transform: translateY(-3px); background-color: rgb(0 0 0 / 5%);
    box-shadow: 0 5px 0 rgb(0 0 0 / 6%); text-decoration: none;
  }
  #masthead .emotion-header__inner a:hover::after,
  #masthead .emotion-header__inner button:hover::after,
  .emotion-header-dialog a:hover::after { transform: scaleX(1); }
}
#masthead .emotion-header__inner a:active,
#masthead .emotion-header__inner button:active,
.emotion-header-dialog a:active,
.emotion-header-dialog button:active {
  transform: scale(.95); background-color: rgb(0 0 0 / 10%);
}
#masthead .emotion-header__inner :focus-visible::after,
#masthead .emotion-header__inner :active::after { transform: scaleX(1); }

@media (max-width: 1023px) {
  #masthead .emotion-header__inner {
    grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0;
    padding-inline: 1em; font-size: 10.5px;
  }
  #masthead .emotion-header__utilities { display: contents; }
  #masthead .emotion-header__menu { grid-column: 1; grid-row: 1; }
  #masthead .emotion-header__brand { grid-column: 2; grid-row: 1; }
  #masthead .emotion-header__shop { grid-column: 3; grid-row: 1; }
  #masthead .emotion-header__account { grid-column: 4; grid-row: 1; }
  #masthead .emotion-header__cart { grid-column: 5; grid-row: 1; }
  #masthead .emotion-header__menu,
  #masthead .emotion-header__brand,
  #masthead .emotion-header__shop,
  #masthead .emotion-header__account,
  #masthead .emotion-header__cart {
    justify-self: stretch; justify-content: center; align-items: center;
    text-align: center; min-width: 0; min-height: 44px; padding: 10px 0;
    font-size: clamp(6.75px, 1.95vw, 8.25px); font-weight: 400; letter-spacing: .02em; line-height: 1.5;
  }
  #masthead .emotion-header__brand,
  #masthead .emotion-header__shop,
  #masthead .emotion-header__account,
  #masthead .emotion-header__cart { display: flex; }
  #masthead .emotion-header__brand-desktop,
  #masthead .emotion-header__desktop-label { display: none; }
  #masthead .emotion-header__mobile-label { display: inline; }
  /* Match the more specific home-page rule, using the same mobile typography. */
  #masthead .emotion-header--home .emotion-header__brand {
    font-size: clamp(6.75px, 1.95vw, 8.25px); letter-spacing: .02em; line-height: 1.5;
  }
}

/* A stable control height keeps the underline below HOME and search text. */
@media (min-width: 1024px) {
  #masthead .emotion-header__brand,
  #masthead .emotion-header__search {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; line-height: 1.5; padding-block: 10px; box-sizing: border-box;
  }
  #masthead .emotion-header__search[hidden] { display: none; }
}
#masthead .emotion-header__inner a::after,
#masthead .emotion-header__inner button::after {
  display: block; visibility: visible; opacity: 1; bottom: 1px;
  content: ""; height: 2px; border: 0; margin: 0;
}

/* Option A: white full-screen navigation with numbered editorial rows. */
#emotion-menu.emotion-menu-panel {
  position: fixed; inset: 0; width: 100%; max-width: none;
  height: 100dvh; max-height: none; margin: 0; border: 0;
  padding: max(28px, env(safe-area-inset-top)) clamp(24px, 7vw, 120px) max(28px, env(safe-area-inset-bottom));
  background: #fff; color: #171717;
}
#emotion-menu .emotion-header-dialog__top { margin: 0 0 clamp(36px, 7vh, 80px); }
#emotion-menu h2 { font-family: Georgia, serif; font-size: 18px; letter-spacing: .08em; }
#emotion-menu h2 span { display: block; margin-top: 10px; font: 10px/1.5 sans-serif; letter-spacing: .2em; color: #666; }
#emotion-menu [data-emotion-close] { font-size: 9px; min-width: 60px; }
#emotion-menu .emotion-menu-panel__navigation { max-width: 1000px; margin-inline: auto; counter-reset: emotion-menu-number; }
#emotion-menu .emotion-header__links { display: block; margin: 0; }
#emotion-menu .emotion-header__links li { border-bottom: 1px solid #dedede; }
#emotion-menu .emotion-header__links a {
  display: flex; align-items: baseline; gap: clamp(20px, 4vw, 56px);
  padding: clamp(18px, 3vh, 32px) 0; min-height: 44px;
  font-size: clamp(17.25px, 2.85vw, 36px); font-weight: 400; letter-spacing: .035em;
  line-height: 1.25; overflow-wrap: anywhere;
}
#emotion-menu .emotion-header__links a::before {
  counter-increment: emotion-menu-number; content: counter(emotion-menu-number, decimal-leading-zero);
  flex-shrink: 0; width: 2em; font-size: 8.25px; letter-spacing: .08em; color: #777;
}
#emotion-menu .emotion-header__links a::after { display: none; }
#emotion-menu .emotion-menu-panel__footer { max-width: 1000px; margin: clamp(40px, 7vh, 80px) auto 0; }
#emotion-menu .emotion-menu-panel__utilities { display: flex; flex-wrap: wrap; gap: 24px 40px; }
#emotion-menu .emotion-menu-panel__utilities a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: 9px; letter-spacing: .08em; }
#emotion-menu .emotion-menu-panel__utilities span { color: #666; font-size: 8.25px; letter-spacing: 0; }
#emotion-menu form { max-width: 540px; }
#emotion-menu label { font-size: 9px; }
#emotion-menu input[type="search"] { border-width: 0 0 1px; background: transparent; }
#emotion-menu[open] { animation: emotion-backdrop-enter 320ms ease both; }
#emotion-menu[open] .emotion-header__links { animation: none; }
#emotion-menu[open] .emotion-header__links li { animation: emotion-menu-items 440ms var(--emotion-control-ease) both; }
#emotion-menu[open] .emotion-menu-panel__core li:nth-child(2) { animation-delay: 50ms; }
#emotion-menu[open] #emotion-mobile-menu li { animation-delay: 100ms; }
#emotion-menu[open] #emotion-mobile-menu li:nth-child(2) { animation-delay: 150ms; }
#emotion-menu[open] #emotion-mobile-menu li:nth-child(n+3) { animation-delay: 200ms; }
@media (prefers-reduced-motion: reduce) {
  #emotion-menu[open], #emotion-menu[open] .emotion-header__links li { animation: none; }
}

/* Native dialog handles focus/Escape; CSS animates each new open state. */
.emotion-header-dialog[open] {
  animation: emotion-menu-enter var(--emotion-menu-duration) var(--emotion-control-ease) both;
}
.emotion-header-dialog[open]::backdrop {
  animation: emotion-backdrop-enter var(--emotion-menu-duration) ease both;
}
.emotion-header-dialog[open] .emotion-header__links {
  animation: emotion-menu-items 420ms var(--emotion-control-ease) both;
}
@keyframes emotion-menu-enter {
  from { opacity: 0; transform: translateY(14px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes emotion-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes emotion-menu-items {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  #masthead .emotion-header__inner a,
  #masthead .emotion-header__inner button,
  #masthead .emotion-header__inner a::after,
  #masthead .emotion-header__inner button::after,
  .emotion-header-dialog a, .emotion-header-dialog button,
  .emotion-header-dialog a::after { transition: none; transform: none; }
  .emotion-header-dialog[open], .emotion-header-dialog[open]::backdrop,
  .emotion-header-dialog[open] .emotion-header__links { animation: none; }
}

/* v1.8: hold the first photograph until the 200px header fade has completed. */
:root { --emotion-photo-hold: 200px; --emotion-photo-focus: 50% 50%; }
body.home #page { overflow: clip; }
body.home #content, body.home #content > .col-full { overflow: visible; }
body.home .emotion-home-editorial > .emotion-home-product-photo {
  height: calc(100svh - var(--emotion-admin-offset) + var(--emotion-photo-hold));
  overflow: visible;
}

/* v1.9: text-only mobile gutters; photos retain their full available width. */
@media (max-width: 1023px) {
  body.home .emotion-home-editorial { font-size: 10.5px; }
  body.home .emotion-home-editorial > .emotion-content-group {
    width: calc(100% - 4em); margin-inline: auto;
  }
  body.home .emotion-home-editorial > .emotion-home-products { width: 100%; max-width: none; }
  .emotion-home-products .emotion-home-section-heading,
  .emotion-home-products .emotion-home-product-copy {
    margin-inline: 2em;
  }
  .emotion-home-products .emotion-home-product-grid { grid-template-columns: 1fr; gap: 56px; }
  .emotion-home-products .emotion-home-product img { width: 100%; max-width: none; }
  .emotion-home-selection { grid-template-columns: 1fr; gap: 12px; }
}
.emotion-home-photo-pin {
  position: sticky; top: var(--emotion-admin-offset);
  height: calc(100svh - var(--emotion-admin-offset)); width: 100%; overflow: hidden;
}
.emotion-home-photo-pin img {
  width: 100%; height: 100%; aspect-ratio: auto;
  object-fit: cover; object-position: var(--emotion-photo-focus);
}
/* No zoom cropping during the handoff: the photograph is stationary behind the header. */
.emotion-home-product-photo.emotion-revealing img { animation: none; }

/* Stronger text entrances, staggered in reading order. */
.emotion-revealing[data-emotion-reveal] h2,
.emotion-revealing[data-emotion-reveal] h3 {
  animation: emotion-text-lift 1100ms cubic-bezier(.16,1,.3,1) both;
}
.emotion-revealing[data-emotion-reveal] p {
  animation: emotion-text-arrive 1050ms cubic-bezier(.16,1,.3,1) 120ms both;
}
.emotion-revealing[data-emotion-reveal] p:nth-of-type(2) { animation-delay: 240ms; }
.emotion-revealing[data-emotion-reveal] p:nth-of-type(3) { animation-delay: 360ms; }
.emotion-revealing[data-emotion-reveal="right"] h3 { animation-name: emotion-text-right; }
.emotion-revealing[data-emotion-reveal="settle"] h2 { animation-name: emotion-text-expand; }
@keyframes emotion-text-lift {
  from { opacity: 0; transform: translateY(48px); clip-path: inset(0 0 100% 0); }
  to { opacity: 1; transform: none; clip-path: inset(0); }
}
@keyframes emotion-text-arrive {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: none; }
}
@keyframes emotion-text-right {
  from { opacity: 0; transform: translateX(36px); }
  to { opacity: 1; transform: none; }
}
@keyframes emotion-text-expand {
  from { opacity: 0; transform: scale(.88) translateY(20px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .emotion-revealing[data-emotion-reveal] h2,
  .emotion-revealing[data-emotion-reveal] h3,
  .emotion-revealing[data-emotion-reveal] p { animation: none; }
}

/* v1.9: stronger title reveals and deliberate paragraph timing. */
@media (prefers-reduced-motion: no-preference) {
  .emotion-revealing[data-emotion-reveal] h2,
  .emotion-revealing[data-emotion-reveal] h3 {
    animation-duration: 1400ms;
    animation-name: emotion-text-bold-rise;
    transform-origin: left center;
  }
  .emotion-revealing[data-emotion-reveal] p {
    animation-name: emotion-text-bold-paragraph;
    animation-duration: 1300ms;
    animation-delay: 180ms;
  }
  .emotion-revealing[data-emotion-reveal] p:nth-of-type(2) { animation-delay: 380ms; }
  .emotion-revealing[data-emotion-reveal] p:nth-of-type(3) { animation-delay: 580ms; }
  .emotion-revealing[data-emotion-reveal="right"] h3 { animation-name: emotion-text-bold-side; }
  .emotion-revealing[data-emotion-reveal="settle"] h2 { animation-name: emotion-text-bold-scale; }
}
@keyframes emotion-text-bold-rise {
  0% { opacity: 0; transform: translateY(90px) rotate(2deg) scale(.94); clip-path: inset(0 0 100% 0); }
  65% { opacity: 1; clip-path: inset(0); }
  100% { opacity: 1; transform: none; clip-path: inset(0); }
}
@keyframes emotion-text-bold-paragraph {
  from { opacity: 0; transform: translateY(56px); }
  to { opacity: 1; transform: none; }
}
@keyframes emotion-text-bold-side {
  from { opacity: 0; transform: translateX(64px) rotate(2deg); }
  to { opacity: 1; transform: none; }
}
@keyframes emotion-text-bold-scale {
  from { opacity: 0; transform: scale(.75) translateY(48px); }
  to { opacity: 1; transform: none; }
}

/* v2.0: native horizontal product cards, visible next-card cue and keyboard access. */
.emotion-product-controls {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin: 0 0 24px; padding-bottom: 16px; border-bottom: 1px solid #ccc;
}
.emotion-product-hint { font-size: 7.5px; letter-spacing: .15em; color: #666; }
.emotion-product-arrows { display: flex; gap: 10px; }
.emotion-product-arrows[hidden] { display: none; }
.emotion-product-arrows button {
  width: 44px; height: 44px; padding: 0; border: 1px solid #999; border-radius: 50%;
  color: #171717; background: #fff; font-size: 15px; cursor: pointer;
}
.emotion-product-arrows button:hover:not(:disabled) { background: #171717; color: #fff; }
.emotion-product-arrows button:disabled { opacity: .3; cursor: default; }
.emotion-product-arrows button:focus-visible, #emotion-product-track:focus-visible { outline: 2px solid #171717; outline-offset: 4px; }
body.home .emotion-home-products .emotion-home-product-grid {
  display: grid; grid-template-columns: none; grid-auto-flow: column;
  grid-auto-columns: 27%; align-items: stretch; gap: 28px;
  overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-inline: 0;
  padding: 10px 0 24px; scrollbar-width: thin; scrollbar-color: #888 #eee;
}
#emotion-product-track .emotion-home-product {
  scroll-snap-align: start; min-width: 0; border: 1px solid #e3e3e3; background: #fff;
  display: flex; flex-direction: column; border-radius: 2px;
}
#emotion-product-track .emotion-home-product img { width: 100%; max-width: none; aspect-ratio: 1; object-fit: contain; }
#emotion-product-track .emotion-home-product-copy { margin: 0; padding: 24px 28px 32px; border-top: 0; flex: 1; }
#emotion-product-track .emotion-product-category {
  display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center;
  font-size: 7.5px; letter-spacing: .08em; line-height: 1.6; margin-bottom: 16px; color: #555;
}
.emotion-product-category span { border: 1px solid #aaa; padding: 2px 8px; font-size: 8.25px; letter-spacing: 0; }
#emotion-product-track h3 { font-size: clamp(13.5px, 1.5vw, 18px); }
@media (max-width: 1023px) {
  .emotion-home-products .emotion-product-controls { margin-inline: 28px; }
  body.home .emotion-home-products .emotion-home-product-grid {
    grid-auto-columns: 41%; gap: 16px; padding-inline: 28px; scroll-padding-inline: 28px;
  }
  #emotion-product-track .emotion-home-product-copy { padding-inline: 28px; }
}
/* More visible headings, without changing layout or the established header fade. */
@media (prefers-reduced-motion: no-preference) {
  .emotion-revealing[data-emotion-reveal] h2,
  .emotion-revealing[data-emotion-reveal] h3 { animation-duration: 1550ms; }
  .emotion-revealing[data-emotion-reveal] p { animation-duration: 1450ms; }
  #emotion-product-track .emotion-revealing[data-emotion-reveal] { animation: emotion-body-fade 650ms ease both; }
}
@keyframes emotion-text-bold-rise {
  0% { opacity: 0; transform: translateY(110px) rotate(3deg) scale(.9); clip-path: inset(0 0 100% 0); }
  65% { opacity: 1; clip-path: inset(0); }
  100% { opacity: 1; transform: none; clip-path: inset(0); }
}
@keyframes emotion-text-bold-paragraph {
  from { opacity: 0; transform: translateY(68px); }
  to { opacity: 1; transform: none; }
}

/* v2.0.1: half-width cards; retain readable text instead of scaling the whole UI. */
#emotion-product-track .emotion-home-product-copy { padding: 18px 16px 24px; }
#emotion-product-track h3 { font-size: clamp(11.25px, 1.125vw, 15px); overflow-wrap: anywhere; }
#emotion-product-track .emotion-home-product-copy > p:not(.emotion-product-category) { font-size: 9.75px; line-height: 1.9; }
@media (max-width: 600px) {
  #emotion-product-track .emotion-home-product-copy { padding: 14px 12px 20px; }
  #emotion-product-track .emotion-product-category { font-size: 6.75px; letter-spacing: .02em; }
  #emotion-product-track .emotion-product-category span { font-size: 7.5px; padding-inline: 4px; }
}

/* v2.1: sample-inspired light sans-serif, using locally available system fonts. */
:root {
  --emotion-type-family: "Helvetica Neue", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", Arial, sans-serif;
}
body { font-family: var(--emotion-type-family); font-size: 12px; font-weight: 300; letter-spacing: .045em; }
.emotion-header, .emotion-header-dialog, .emotion-home-editorial,
#emotion-menu h2, #emotion-menu h2 span { font-family: var(--emotion-type-family); }
.emotion-home-editorial h2, .emotion-home-editorial h3,
#emotion-menu .emotion-header__links a { font-weight: 300; letter-spacing: .1em; }
.emotion-home-editorial p { font-weight: 300; letter-spacing: .065em; }
#emotion-product-track h3 { font-weight: 500; letter-spacing: .045em; color: #171717; margin-bottom: 14px; }
#emotion-product-track .emotion-home-product-copy > p:not(.emotion-product-category) {
  color: #626262; font-weight: 300; font-size: 9.75px; line-height: 2; letter-spacing: .04em;
}
#emotion-menu h2 span { font-size: 7.5px; }
/* Do not shrink text-input controls: preserve usable editing and avoid mobile zoom. */
.emotion-header-dialog input[type="search"],
body input, body select, body textarea { font-size: 16px; }
/* Preserve the established physical gutters while reducing text. */
@media (max-width: 1023px) {
  #masthead .emotion-header__inner { padding-inline: 14px; }
  body.home .emotion-home-editorial > .emotion-content-group { width: calc(100% - 56px); }
  body.home .emotion-home-editorial > .emotion-home-products { width: 100%; }
  .emotion-home-products .emotion-home-section-heading { margin-inline: 28px; }
}

/* v2.2: restore navigation everywhere and pre-reduction desktop type sizes. */
#masthead .emotion-header--home .emotion-header__brand{font-size: 13px;}
@media (max-width: 1023px){#masthead .emotion-header__inner{font-size: 14px;}
#masthead .emotion-header__menu,
  #masthead .emotion-header__brand,
  #masthead .emotion-header__shop,
  #masthead .emotion-header__account,
  #masthead .emotion-header__cart{font-size: clamp(9px, 2.6vw, 11px);}
#masthead .emotion-header--home .emotion-header__brand{font-size: clamp(9px, 2.6vw, 11px);}
}
#emotion-menu h2{font-size: 24px;}
#emotion-menu [data-emotion-close]{font-size: 12px;}
#emotion-menu .emotion-header__links a{font-size: clamp(23px, 3.8vw, 48px);}
#emotion-menu .emotion-header__links a::before{font-size: 11px;}
#emotion-menu .emotion-menu-panel__utilities a{font-size: 12px;}
#emotion-menu .emotion-menu-panel__utilities span{font-size: 11px;}
#emotion-menu label{font-size: 12px;}

@media(min-width:1024px){body{font-size:16px;}#masthead .emotion-header--home .emotion-header__brand{font-size: 13px;}
.emotion-home-editorial .emotion-home-eyebrow{font-size: 10px;}
.emotion-home-editorial h2{font-size: clamp(25px, 3.1vw, 40px);}
.emotion-home-editorial p{font-size: 15px;}
.emotion-home-product-copy h3{font-size: clamp(18px,2vw,23px);}
.emotion-home-shop-link{font-size: 13px;}
@media (max-width: 600px){.emotion-home-editorial p{font-size: 14px;}
}
@media (max-width: 1023px){#masthead .emotion-header__inner{font-size: 14px;}
#masthead .emotion-header__menu,
  #masthead .emotion-header__brand,
  #masthead .emotion-header__shop,
  #masthead .emotion-header__account,
  #masthead .emotion-header__cart{font-size: clamp(9px, 2.6vw, 11px);}
#masthead .emotion-header--home .emotion-header__brand{font-size: clamp(9px, 2.6vw, 11px);}
}
#emotion-menu h2{font-size: 24px;}
#emotion-menu [data-emotion-close]{font-size: 12px;}
#emotion-menu .emotion-header__links a{font-size: clamp(23px, 3.8vw, 48px);}
#emotion-menu .emotion-header__links a::before{font-size: 11px;}
#emotion-menu .emotion-menu-panel__utilities a{font-size: 12px;}
#emotion-menu .emotion-menu-panel__utilities span{font-size: 11px;}
#emotion-menu label{font-size: 12px;}
@media (max-width: 1023px){body.home .emotion-home-editorial{font-size: 14px;}
}
.emotion-product-hint{font-size: 10px;}
.emotion-product-arrows button{font-size: 20px;}
#emotion-product-track .emotion-product-category{font-size: 10px;}
.emotion-product-category span{font-size: 11px;}
#emotion-product-track h3{font-size: clamp(18px, 2vw, 24px);}
#emotion-product-track h3{font-size: clamp(15px, 1.5vw, 20px);}
#emotion-product-track .emotion-home-product-copy > p:not(.emotion-product-category){font-size: 13px;}
@media (max-width: 600px){#emotion-product-track .emotion-product-category{font-size: 9px;}
#emotion-product-track .emotion-product-category span{font-size: 10px;}
}
}

/* v2.2: distinct editorial sections and four-image atmosphere collage. */
body.home .emotion-home-editorial > .emotion-content-group {
  border-top: 1px solid #d6d6d2; padding-top: clamp(40px,6vw,80px);
  margin-bottom: clamp(72px,9vw,144px);
}
body.home .emotion-home-editorial > .emotion-home-collage {
  width: 100%; max-width: none; background: #f3f3f0;
  padding-bottom: clamp(40px,5vw,72px); border-bottom: 1px solid #d6d6d2;
}
.emotion-collage__heading { width: calc(100% - 56px); max-width: 1000px; margin-inline: auto; }
.emotion-collage__canvas { position: relative; width: calc(100% - 40px); max-width: 1040px; aspect-ratio: 1 / 1.08; margin: 32px auto 0; }
.emotion-collage__image { position: absolute; margin: 0; transform: translateY(var(--collage-y, 0px)); }
.emotion-collage__image img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: clamp(10px,2vw,24px); }
.emotion-collage__image--arrangement { left: 8%; top: 3%; width: 27%; height: 30%; z-index: 1; }
.emotion-collage__image--products { left: 37%; top: 27%; width: 48%; height: 45%; z-index: 2; }
.emotion-collage__image--products { overflow: hidden; border-radius: clamp(10px,2vw,24px); }
.emotion-collage__image--products img { object-fit: cover; object-position: center; margin: 0; }
.emotion-collage__image--flower { left: 2%; top: 43%; width: 45%; height: 23%; z-index: 3; }
.emotion-collage__image--salon { left: 53%; top: 69%; width: 45%; height: 26%; z-index: 1; }
#emotion-product-track .emotion-home-product-copy > .emotion-product-size { font-size: 12px; color: #777; margin: 12px 0 6px; }
#emotion-product-track .emotion-home-product-copy > .emotion-product-price { font-size: 16px; color: #171717; font-weight: 400; line-height: 1.6; margin: 0; }
.emotion-product-price span { font-size: .7em; font-weight: 300; }
@media (max-width: 1023px) {
  #emotion-product-track .emotion-home-product-copy > .emotion-product-size { font-size: 10px; }
  #emotion-product-track .emotion-home-product-copy > .emotion-product-price { font-size: 12px; }
  .emotion-collage__canvas { aspect-ratio: 1 / 1.35; }
}
@media (prefers-reduced-motion: reduce) { .emotion-collage__image { transform: none; } }

/* Shared mobile menu: logo and item sizing on every page. */
#emotion-menu h2 .emotion-menu-brand-text { display: inline; margin: 0; font: inherit; letter-spacing: inherit; color: inherit; }
#emotion-menu .emotion-menu-brand-logo { display: none; }
@media (max-width: 1023px) {
  #emotion-menu h2 .emotion-menu-brand-text { display: none; }
  #emotion-menu .emotion-menu-brand-logo { display: block; width: 150px; max-width: 42vw; height: auto; margin: 0; }
  #emotion-menu .emotion-header__links a { font-size: clamp(16.1px, 2.66vw, 33.6px); }
}

/* v2.5.0: horizontal layout for the connected Smash Balloon grid feed. */
.emotion-home-instagram { padding-block: clamp(40px,7vw,100px); border-top: 1px solid #deded9; }
.emotion-instagram-profile { display: inline-flex; gap: 24px; align-items: center; min-height: 44px; color: #333; letter-spacing: .08em; }
.emotion-home-instagram .emotion-product-controls { margin-top: 28px; }
.emotion-home-instagram #sb_instagram { width: 100% !important; padding: 0 !important; }
.emotion-home-instagram #sb_instagram #sbi_images { display: grid !important; grid-template-columns: none !important; grid-auto-flow: column; grid-auto-columns: 27%; gap: 24px; padding: 8px 0 24px !important; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.emotion-home-instagram #sbi_images::before, .emotion-home-instagram #sbi_images::after { display: none !important; }
.emotion-home-instagram #sb_instagram #sbi_images .sbi_item { width: 100% !important; min-width: 0; padding: 0 !important; margin: 0 !important; float: none !important; scroll-snap-align: start; border: 1px solid #deded9; border-radius: 6px; overflow: hidden; }
.emotion-home-instagram #sb_instagram .sbi_photo { height: auto !important; aspect-ratio: 1; background-size: cover; }
.emotion-home-instagram #sbi_images:focus-visible, .emotion-home-instagram a:focus-visible { outline: 2px solid #333; outline-offset: 3px; }
@media(max-width:1023px) {
 .emotion-home-instagram #sb_instagram #sbi_images { grid-auto-columns: 44%; gap: 14px; }
}

/* v2.5.1: profile biography preview; full text remains available without JS. */
.emotion-home-instagram #sb_instagram .sbi_bio.emotion-instagram-bio-collapsed {
 display: -webkit-box !important; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
 overflow: hidden !important; max-height: 3.6em; line-height: 1.8 !important;
}
.emotion-home-instagram .emotion-instagram-bio-toggle {
 display: block; clear: both; min-height: 44px; padding: 6px 0; margin: 0;
 background: transparent; border: 0; box-shadow: none; color: #666;
 font-size: 12px; font-weight: 400; text-align: left; cursor: pointer;
}
.emotion-home-instagram .emotion-instagram-bio-toggle[hidden] { display: none; }
.emotion-home-instagram .emotion-instagram-bio-toggle:hover { color: #111; text-decoration: underline; background: transparent; }
.emotion-home-instagram .emotion-instagram-bio-toggle:focus-visible { outline: 2px solid #333; outline-offset: 3px; }

/* v2.5.2: match the atmosphere section's full-width warm grey. */
body.home .emotion-home-editorial > .emotion-home-instagram {
 width: 100%; max-width: none; background: #f3f3f0;
 border-bottom: 1px solid #d6d6d2;
}
.emotion-home-instagram > .emotion-home-section-heading,
.emotion-home-instagram > .emotion-product-controls,
.emotion-home-instagram > .emotion-instagram-feed {
 width: calc(100% - 48px); max-width: 1120px; margin-inline: auto;
}
.emotion-home-instagram #sb_instagram,
.emotion-home-instagram #sb_instagram .sb_instagram_header { background-color: transparent !important; }
@media (max-width: 1023px) {
 .emotion-home-instagram > .emotion-home-section-heading,
 .emotion-home-instagram > .emotion-product-controls,
 .emotion-home-instagram > .emotion-instagram-feed { width: calc(100% - 56px); }
}

/* v2.7: scroll through the reveal before releasing the photograph. */
.emotion-intro-story, .emotion-intro-stage { display: contents; }
.emotion-intro-stage > .emotion-home-product-photo { width: 100%; max-width: none; margin: 0; height: calc(100svh - var(--emotion-admin-offset) + 300px); overflow: visible; }
.emotion-intro-stage > .emotion-home-concept { width: calc(100% - 56px); max-width: 660px; margin: clamp(64px,9vw,144px) auto; }
.emotion-intro-story.is-scroll-story { display: block; position: relative; height: calc(100svh - var(--emotion-admin-offset) + var(--intro-distance,1060px)); }
.is-scroll-story .emotion-intro-stage { display: grid; position: sticky; top: var(--emotion-admin-offset); height: calc(100svh - var(--emotion-admin-offset)); overflow: hidden; align-items: center; isolation: isolate; }
.is-scroll-story .emotion-intro-stage > .emotion-home-product-photo { position: absolute; inset: 0; height: 100%; margin: 0; z-index: -2; overflow: hidden; }
.is-scroll-story .emotion-home-photo-pin { position: static; height: 100%; }
.is-scroll-story .emotion-intro-stage::after { content: ''; position: absolute; inset: 0; z-index: -1; background: #000; opacity: var(--intro-shade,0); pointer-events: none; }
.is-scroll-story .emotion-intro-stage > .emotion-home-concept { width: calc(100% - 56px); max-width: 720px; margin: 0 auto; padding: 28px 0; border: 0; color: #fff; opacity: var(--intro-opacity,0); transform: translate3d(0,var(--intro-lift,80px),0); }
.is-scroll-story .emotion-home-concept h2, .is-scroll-story .emotion-home-concept p { color: #fff; text-shadow: 0 1px 12px #0003; }
.is-scroll-story .emotion-home-concept h2 { font-size: clamp(24px,3.1vw,40px); line-height: 1.55; }
.is-scroll-story .emotion-home-prose p { line-height: 1.9; }
@media(max-width:767px) {
 .is-scroll-story .emotion-home-concept h2 { font-size: clamp(22px,5.6vw,30px); }
 .is-scroll-story .emotion-home-prose p { font-size: 13px; line-height: 1.85; margin-bottom: 16px; }
 .is-scroll-story .emotion-home-prose br { display: none; }
}

/* v2.7.1: use the same type scale as the other editorial sections. */
.emotion-home-editorial .emotion-home-concept h2 { font-size: clamp(18.75px,2.325vw,30px); }
.emotion-home-editorial .emotion-home-concept .emotion-home-prose p { font-size: 11.25px; }
@media(max-width:600px) {
 .emotion-home-editorial .emotion-home-concept .emotion-home-prose p { font-size: 10.5px; }
}
@media(min-width:1024px) {
 .emotion-home-editorial .emotion-home-concept h2 { font-size: clamp(25px,3.1vw,40px); }
 .emotion-home-editorial .emotion-home-concept .emotion-home-prose p { font-size: 15px; }
}

/* v2.7.2: square Instagram thumbnails and restrained pointer zoom. */
:root { --emotion-instagram-zoom: 1.06; --emotion-instagram-zoom-duration: 480ms; }
.emotion-home-instagram #sb_instagram #sbi_load { display: none !important; }
.emotion-home-instagram #sb_instagram #sbi_images .sbi_photo_wrap {
 display: block; width: 100%; aspect-ratio: 1 / 1; overflow: hidden;
 position: relative; padding: 0 !important;
}
.emotion-home-instagram #sb_instagram #sbi_images .sbi_photo {
 display: block; width: 100% !important; height: 100% !important;
 aspect-ratio: 1 / 1; padding: 0 !important; margin: 0 !important;
 background-size: cover !important; background-position: center !important;
 transform-origin: center; overflow: hidden;
}
.emotion-home-instagram #sb_instagram #sbi_images .sbi_photo img {
 width: 100% !important; height: 100% !important; max-width: none !important;
 object-fit: cover !important; object-position: center !important;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
 .emotion-home-instagram #sb_instagram #sbi_images .sbi_photo {
  transition: transform var(--emotion-instagram-zoom-duration) cubic-bezier(.22,1,.36,1);
 }
 .emotion-home-instagram #sb_instagram #sbi_images .sbi_item:hover .sbi_photo,
 .emotion-home-instagram #sb_instagram #sbi_images .sbi_item:focus-within .sbi_photo { transform: scale(var(--emotion-instagram-zoom)); }
}
.emotion-home-instagram #sb_instagram #sbi_images .sbi_photo:focus-visible { outline-offset: -4px; }

/* v2.9.6: HOME navigation logo; mobile only reorders the first two cells. */
#masthead .emotion-header--home .emotion-header__compact-logo { width: 88px; height: auto; max-height: 58px; object-fit: contain; }
@media (max-width: 1023px) {
  #masthead .emotion-header--home .emotion-header__brand { grid-column: 1; }
  #masthead .emotion-header--home .emotion-header__menu { grid-column: 2; }
  #masthead .emotion-header__nav-logo { display: block; width: 62px; max-width: 100%; height: auto; max-height: 46px; object-fit: contain; margin: 0 auto; }
}

/* v2.9.9: navigation uses a real alpha-transparent logo; no color correction. */
#masthead .emotion-header__compact-logo,
#masthead .emotion-header__nav-logo { mix-blend-mode: normal; filter: none; }

/* v2.10.0: desktop utility pictograms; mobile text navigation remains unchanged. */
.emotion-header .emotion-nav-icon { display:none; }
@media(min-width:1024px) {
 #masthead .emotion-header__utilities .emotion-nav-icon { display:block; width:23px; height:23px; flex:none; transition:transform .25s ease; }
 #masthead .emotion-header__utilities :is(a,button) { width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:8px; }
 #masthead .emotion-header__utilities { gap:12px; }
 #masthead .emotion-header__desktop .emotion-header__links { gap:clamp(10px,1.4vw,24px); flex-wrap:wrap; }
 #masthead .emotion-header__desktop .emotion-header__links a { font-size:11px; letter-spacing:.06em; }
}
@media(min-width:1024px) and (hover:hover) and (prefers-reduced-motion:no-preference) {
 #masthead .emotion-header__utilities :is(a,button):hover .emotion-nav-icon { transform:translateY(-2px); }
}

/* After the HOME concept leaves the viewport, restore only the navigation bar. */
#masthead .emotion-header--home.emotion-header--returned {
 height:var(--emotion-header-height); background:transparent;
}
#masthead .emotion-header--returned .emotion-header__hero { display:none; }
#masthead .emotion-header--returned .emotion-header__inner {
 background:rgb(255 255 255 / 86%);
 -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
 border-bottom:1px solid rgb(0 0 0 / 7%);
}

/* v2.10.19: hero film with a dedicated logo area, never over the bottles. */
#masthead .emotion-header__hero--video { background:#100907; }
#masthead .emotion-header__hero--video::after { display:none; }
#masthead .emotion-header__hero--video .emotion-header__video {
  position:absolute; top:var(--emotion-header-height); right:0;
  width:76%; height:calc(100% - var(--emotion-header-height)); object-fit:contain;
}
#masthead .emotion-header__hero--video .emotion-header__hero-logo {
  left:3%; top:50%; width:20%; max-height:35%; transform:translateY(-50%);
  filter:invert(1); mix-blend-mode:normal;
}
/* v2.10.21: persistent logo and soft picture-to-background edges. */
#masthead .emotion-header__hero--video .emotion-header__video {
  --film-top:0px; --film-top-solid:16%; --film-bottom-solid:84%; --film-bottom:100%;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 15%,#000 96%,transparent),linear-gradient(to bottom,transparent var(--film-top),#000 var(--film-top-solid),#000 var(--film-bottom-solid),transparent var(--film-bottom));
  mask-image:linear-gradient(to right,transparent,#000 15%,#000 96%,transparent),linear-gradient(to bottom,transparent var(--film-top),#000 var(--film-top-solid),#000 var(--film-bottom-solid),transparent var(--film-bottom));
  -webkit-mask-composite:source-in; mask-composite:intersect;
}
@media(max-width:1023px) {
  #masthead .emotion-header__hero--video .emotion-header__video {
    top:var(--emotion-header-height); width:100%; height:calc(100% - var(--emotion-header-height) - 96px);
    object-fit:cover; object-position:50% 50%;
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 78%,transparent 100%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 78%,transparent 100%);
  }
  #masthead .emotion-header__hero--video .emotion-header__hero-logo {
    left:20px; top:auto; bottom:8px; width:110px; max-height:80px; transform:none;
  }
}
@media(prefers-reduced-motion:reduce) {
  #masthead .emotion-header__hero--video .emotion-header__hero-logo { transition:none!important; }
}

/* v2.10.22: keep the completed concept still as the next section covers it. */
.emotion-intro-story.is-scroll-story {
  --intro-viewport:calc(100svh - var(--emotion-admin-offset));
  height:calc(var(--intro-viewport) + var(--intro-distance,1060px) + var(--intro-viewport));
  margin-bottom:calc(-1 * var(--intro-viewport));
  z-index:0;
}
body.home .emotion-intro-story.is-scroll-story + .emotion-home-collage {
  position:relative;
  z-index:1;
  margin-top:0;
  box-shadow:0 -18px 40px rgb(0 0 0 / 12%);
}

/* v2.10.23: salon photograph behind the daily essentials section. */
body.home .emotion-home-editorial > .emotion-home-products {
  width:100%; max-width:none; box-sizing:border-box;
  padding:clamp(48px,6vw,88px) 0;
  background:#151819; position:relative; isolation:isolate; overflow:hidden;
  color:#fff;
}
.emotion-home-products .emotion-home-section-heading :is(h2,p,span),
.emotion-home-products .emotion-product-hint { color:#fff; }
.emotion-home-products .emotion-product-arrows button { color:#fff; border-color:#ffffff80; background:transparent; }
.emotion-home-products .emotion-product-arrows button:hover:not(:disabled) { color:#171717; background:#fff; }
.emotion-home-products #emotion-product-track { scrollbar-color:#ffffff99 #ffffff20; }
.emotion-home-products .emotion-products-footer { margin-top:24px; }
.emotion-home-products .emotion-products-footer .emotion-home-shop-link { color:#fff; border-color:#ffffff99; }
.emotion-home-products :is(a,button):focus-visible,
.emotion-home-products #emotion-product-track:focus-visible { outline:2px solid #fff; outline-offset:4px; }
/* Keep the original slider geometry independently of the full-width backdrop. */
.emotion-products-inner { width:calc(100% - 48px); max-width:1120px; margin-inline:auto; }
@media(max-width:1023px) {
 .emotion-products-inner { width:100%; max-width:none; }
 .emotion-products-footer { margin-inline:28px; }
}

/* v2.10.24: seamless section boundaries and independently moving backdrop. */
body.home .emotion-home-editorial > :is(.emotion-home-collage,.emotion-home-products) { margin-bottom:0; }
body.home .emotion-home-editorial > :is(.emotion-home-products,.emotion-home-instagram) { margin-top:0; }
.emotion-home-products::before {
 content:''; position:absolute; inset:-180px 0; z-index:-2; pointer-events:none;
 background:url('../images/imagine-products-background.jpg') center / cover no-repeat;
 transform:translate3d(0,var(--products-photo-y,0px),0);
}
.emotion-home-products::after {
 content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
 background:linear-gradient(180deg,rgb(12 15 16 / 64%),rgb(12 15 16 / 76%));
}
.emotion-home-products #emotion-product-track .emotion-home-product { color:#171717; }
.emotion-home-products #emotion-product-track a:focus-visible { outline-color:#171717; }
@media(prefers-reduced-motion:reduce) {
 .emotion-home-products::before { transform:none; }
}

/* v2.10.25: less mobile overscan reveals more of the photograph. */
@media(max-width:1023px) {
 .emotion-home-products::before { inset:-124px 0; }
}

/* v2.10.27: brighten on entry, then shade the photograph as the copy emerges.
   The static defaults remain readable when JavaScript is unavailable. */
.emotion-home-products.emotion-products-scroll-reveal::after {
 background:linear-gradient(180deg,rgb(12 15 16 / var(--products-shade-top, .64)),rgb(12 15 16 / var(--products-shade-bottom, .76)));
}
.emotion-products-scroll-reveal .emotion-home-section-heading > :is(.emotion-home-eyebrow,h2) {
 opacity:var(--products-title-opacity,1);
 transform:translate3d(0,var(--products-title-rise,0px),0);
}
.emotion-products-scroll-reveal .emotion-home-section-heading > p:not(.emotion-home-eyebrow) {
 opacity:var(--products-description-opacity,1);
 transform:translate3d(0,var(--products-description-rise,0px),0);
}
@media(prefers-reduced-motion:reduce) {
 .emotion-products-scroll-reveal .emotion-home-section-heading > :is(p,h2) { opacity:1; transform:none; }
 .emotion-home-products.emotion-products-scroll-reveal::after {
  background:linear-gradient(180deg,rgb(12 15 16 / 64%),rgb(12 15 16 / 76%));
 }
}

/* v2.10.28: generous card interiors in the atmosphere section's warm grey. */
.emotion-home-products #emotion-product-track .emotion-home-product {
 background:#f3f3f0; border-color:#deded8;
}
#emotion-product-track .emotion-product-image-frame {
 margin:16px 16px 0; background:#f3f3f0;
}
#emotion-product-track .emotion-home-product-copy { padding:24px 22px 30px; }
@media(max-width:600px) {
 #emotion-product-track .emotion-product-image-frame { margin:10px 10px 0; }
 #emotion-product-track .emotion-home-product-copy { padding:20px 16px 26px; }
}

/* v2.10.34: understated catalogue cards and a native-scroll position indicator. */
.emotion-home-products #emotion-product-track .emotion-home-product {
 border:1px solid #d3d4cc; box-shadow:0 4px 12px rgb(0 0 0 / 7%);
 transition:box-shadow .3s ease,border-color .3s ease,translate .3s ease;
}
#emotion-product-track .emotion-home-product-copy { display:flex; flex-direction:column; }
#emotion-product-track .emotion-home-product-copy h3 { min-height:3.2em; padding-bottom:18px; position:relative; }
#emotion-product-track .emotion-home-product-copy h3::after {
 content:''; position:absolute; bottom:0; left:0; width:30px; height:1px; background:#a8aa9d;
}
#emotion-product-track .emotion-home-product-copy > .emotion-product-size { margin-top:auto; padding-top:12px; }
#emotion-product-track .emotion-product-price { min-height:3.2em; font-variant-numeric:tabular-nums; }
#emotion-product-track .emotion-product-link { transition:translate .3s ease; }
.emotion-product-position { display:flex; align-items:center; gap:22px; margin:4px 0 30px; color:#fff; }
.emotion-product-position[hidden] { display:none; }
.emotion-product-position__count { font-family:var(--emotion-type-family); font-size:11px; letter-spacing:.12em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.emotion-product-position__rail { flex:1; height:2px; background:rgb(255 255 255 / 25%); overflow:hidden; }
.emotion-product-position__rail > span { display:block; width:100%; height:100%; background:rgb(255 255 255 / 85%); transform-origin:left; transform:scaleX(var(--product-progress,0)); }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
 #emotion-product-track .emotion-home-product:hover { border-color:#a9ad9c; box-shadow:0 8px 20px rgb(0 0 0 / 14%); }
 #emotion-product-track .emotion-home-product:hover { translate:0 -3px; }
}
@media(max-width:1023px) { .emotion-product-position { margin-inline:28px; } }
@media(prefers-reduced-motion:reduce) {
 #emotion-product-track .emotion-home-product, #emotion-product-track .emotion-product-link { transition:none; }
}

/* v2.10.55: compact mobile shortcuts, retaining WooCommerce's original links. */
.emotion-footer-toggle { display:none; }
@media(max-width:767px) {
 .storefront-handheld-footer-bar.emotion-footer-compact {
  left:auto;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:54px;
  border:0;background:transparent;box-shadow:none;z-index:999;
 }
 .emotion-footer-compact .emotion-footer-toggle {
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:54px;height:54px;padding:14px;border:1px solid #c7c7bf;border-radius:50%;
  color:#30362d;background:rgba(238,238,232,.94);box-shadow:0 4px 18px #00000018;
 }
 .emotion-footer-toggle span {display:block;width:22px;height:1px;background:currentColor;}
 .emotion-footer-toggle:focus-visible {outline:2px solid #30362d;outline-offset:4px;}
 .emotion-footer-compact > ul {position:absolute;right:0;bottom:66px;width:210px;overflow:visible;margin:0;
  background:#eeeee8;border:1px solid #c7c7bf;border-radius:8px;box-shadow:0 8px 28px #00000018;}
 .emotion-footer-compact > ul[hidden] {display:none!important;}
 .emotion-footer-compact > ul li {background:transparent;}
 .emotion-footer-compact > ul li.search .site-search {bottom:72px;left:auto;right:0;width:min(320px,calc(100vw - 36px));}
}
