/* ===== Self-hosted fonts (woff2, unicode-range subsets, font-display:swap) ===== */
/* Bodoni Moda italic — ampersand-only subset (1.7 KB) for the N&K wordmark */
@font-face {
  font-family: 'Bodoni Moda Amp';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url(fonts/bodoni-moda-italic-amp.woff2) format('woff2');
  unicode-range: U+0026;
}
/* Bodoni Moda italic latin-ext */
@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url(fonts/bodoni-moda-italic-latinext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Bodoni Moda italic latin */
@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url(fonts/bodoni-moda-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Bodoni Moda normal latin-ext */
@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url(fonts/bodoni-moda-normal-latinext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Bodoni Moda normal latin */
@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url(fonts/bodoni-moda-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* IBM Plex Mono normal latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-normal-latinext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* IBM Plex Mono normal latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/ibm-plex-mono-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost normal latin-ext */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url(fonts/jost-normal-latinext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost normal latin */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300 500;
  font-display: swap;
  src: url(fonts/jost-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Noto Serif Khmer 500 khmer (static instance) */
@font-face {
  font-family: 'Noto Serif Khmer';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/noto-serif-khmer-500-khmer.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
/* Kantumruy Pro 400 khmer (static instance) */
@font-face {
  font-family: 'Kantumruy Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/kantumruy-pro-400-khmer.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
/* Kantumruy Pro 500 khmer (static instance) */
@font-face {
  font-family: 'Kantumruy Pro';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/kantumruy-pro-500-khmer.woff2) format('woff2');
  unicode-range: U+1780-17FF, U+19E0-19FF, U+200C-200D, U+25CC;
}
/* ===== end fonts ===== */

:root{
  --porcelain:#FFFFFF;
  --rose:#F4EEEA;
  --mist:#F4F4F4;
  --line:#EAEAEA;
  --ink:#151313;
  --taupe:#7B706A;
  --noir:#121111;
  --champagne:#C9AE7C;
  --champagne-ink:#8E7547;
  --danger:#A1281C;
  --font-display:'Bodoni Moda', serif;
  --font-ui:'Jost', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
  --font-khmer-display:'Bodoni Moda','Noto Serif Khmer', serif; /* Latin glyphs in Khmer copy come from Bodoni/Jost */
  --font-khmer-ui:'Jost','Kantumruy Pro', sans-serif;
  --font-sc-display:'Noto Serif SC', serif;
  --font-sc-body:system-ui,-apple-system,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--porcelain);
  color:var(--ink);
  font-family:var(--font-ui);
  font-size:14px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
html[lang=km] body{
  font-family:var(--font-khmer-ui);
  font-size:14px;
  line-height:1.7;
}
html[lang=zh-Hans] body{
  font-family:var(--font-sc-body);
}
img{display:block;max-width:100%}
button{color:inherit;font:inherit}
a{color:inherit;text-decoration:none}
button,input,select,textarea{border-radius:0}
input,select,textarea{font:inherit}

.container{width:100%;max-width:1240px;margin:0 auto;padding-left:20px;padding-right:20px}
@media(min-width:768px){
  .container{padding-left:40px;padding-right:40px}
}

/* Typography utilities */
.eyebrow{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--champagne-ink);
  margin-bottom:16px;
  display:block;
}
.serif-display{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:-.01em;
  line-height:1.05;
}
html[lang=km] .serif-display:not(.latin){
  font-family:var(--font-khmer-display);
  letter-spacing:0;
  line-height:1.5;
  font-weight:500;
}
html[lang=zh-Hans] .serif-display:not(.latin){
  font-family:var(--font-sc-display);
  letter-spacing:0;
  font-weight:500;
}
.latin{
  font-family:var(--font-display);
}
.ui-upper{
  font-family:var(--font-ui);
  text-transform:uppercase;
  letter-spacing:.18em;
}
html[lang=km] .ui-upper:not(.latin){
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
}
html[lang=zh-Hans] .ui-upper:not(.latin){
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}
.text-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-ui);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
  padding-bottom:2px;
}
.text-link::after{
  content:"";
  position:absolute;
  left:0;bottom:0;
  width:100%;height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s var(--ease);
}
.text-link:hover::after{transform:scaleX(1)}
html[lang=km] .text-link:not(.latin){
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
  font-size:13px;
}
html[lang=zh-Hans] .text-link:not(.latin){
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent;
  cursor:pointer;
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),opacity .3s var(--ease);
  padding:0 24px;
  height:48px;
  min-height:48px;
  text-decoration:none;
  color:var(--ink);
  background:transparent;
}
.btn-black{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
.btn-black:hover{
  background:#fff;
  color:var(--ink);
}
.btn-outline{
  background:transparent;
  border-color:var(--ink);
  color:var(--ink);
}
.btn-outline:hover{
  background:var(--ink);
  color:#fff;
}
.btn-sm{
  height:40px;
  min-height:40px;
  padding:0 16px;
  font-size:10px;
  letter-spacing:.16em;
}
html[lang=km] .btn:not(.latin){
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
  font-weight:500;
}
html[lang=zh-Hans] .btn:not(.latin){
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}

/* Reveal */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv.in[data-rv-delay]{transition-delay:var(--rv-delay,0ms)}
@media(prefers-reduced-motion:reduce){
  .js .rv,.js .rv.in{opacity:1;transform:none;transition:none}
}

/* Announcement */
.announce{
  background:var(--noir);
  color:var(--champagne);
  font-size:11px;
  line-height:1.4;
  text-align:center;
  padding:9px 16px;
}
.announce span{display:inline-block;white-space:nowrap}
html[lang=km] .announce{font-size:11.5px;font-family:var(--font-khmer-ui)}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:120;
  background:var(--porcelain);
  border-bottom:1px solid transparent;
  height:60px;
  transition:height .3s var(--ease),border-color .3s var(--ease);
}
.site-header.scrolled{
  height:52px;
  border-bottom-color:var(--line);
}
@media(min-width:768px){
  .site-header{height:76px}
  .site-header.scrolled{height:64px}
}
.header-inner{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  height:100%;
  position:relative;
}
.header-left{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
}
.header-center{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-self:center;
  line-height:1;
}
.header-right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
}
.wordmark{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  line-height:1;
  color:var(--ink);
}
.wordmark .nk{
  font-family:var(--font-display);
  font-weight:500;
  font-size:26px;
  letter-spacing:.16em;
  line-height:1;
}
.wordmark .beauty{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:7.5px;
  letter-spacing:.55em;
  color:var(--taupe);
  margin-top:4px;
  text-align:center;
  line-height:1;
}
@media(min-width:768px){
  .wordmark .nk{font-size:32px}
  .wordmark .beauty{font-size:7.5px}
}
.icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  background:none;
  border:0;
  cursor:pointer;
  color:var(--ink);
  padding:0;
  transition:opacity .2s var(--ease),color .2s var(--ease);
}
.icon-btn:hover{opacity:.55}
.icon-btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.desktop-nav{
  display:none;
  align-items:center;
  gap:18px;
}
.desktop-nav a{
  font-family:var(--font-ui);
  font-size:11.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink);
  transition:opacity .2s var(--ease);
}
.desktop-nav a:hover{opacity:.5}
html[lang=km] .desktop-nav a{
  font-family:var(--font-khmer-ui);
  font-size:13px;
  letter-spacing:0;
  text-transform:none;
}
html[lang=zh-Hans] .desktop-nav a{
  font-family:var(--font-sc-body);
  letter-spacing:.04em;
  text-transform:none;
}
@media(min-width:1024px){
  .header-menu-btn{display:none}
  .desktop-nav{display:flex}
}
@media(max-width:1023px){
  .desktop-nav{display:none}
}
.lang-switch{
  display:flex;
  align-items:center;
  gap:3px;
  font-size:10px;
  line-height:1.2;
  letter-spacing:.12em;
  white-space:nowrap;
}
.lang-switch button{
  background:none;
  border:0;
  cursor:pointer;
  padding:2px 1px;
  font-family:var(--font-ui);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--taupe);
  transition:color .2s var(--ease),opacity .2s var(--ease);
}
.lang-switch button.active{color:var(--ink);font-weight:500}
.lang-switch button:hover{opacity:.6}
html[lang=km] .lang-switch button{
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
}
html[lang=zh-Hans] .lang-switch button{
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}
.lang-switch .sep{color:var(--line);user-select:none}

/* Mobile menu */
.mobile-menu{
  position:fixed;
  inset:0;
  background:var(--porcelain);
  z-index:140;
  transform:translateX(-100%);
  transition:transform .35s var(--ease);
  display:flex;
  flex-direction:column;
  padding:20px;
}
.mobile-menu.open{transform:none}
.mobile-menu-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:32px;
}
.mobile-menu-links{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.mobile-menu-links a{
  font-family:var(--font-ui);
  font-size:13px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink);
  padding:8px 0;
  border-bottom:1px solid var(--line);
}
html[lang=km] .mobile-menu-links a{
  font-family:var(--font-khmer-ui);
  font-size:15px;
  text-transform:none;
  letter-spacing:0;
}
html[lang=zh-Hans] .mobile-menu-links a{
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}

/* Hero */
.hero{
  display:flex;
  flex-direction:column;
}
.hero-media{
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
}
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:66% center;
}
.hero-copy{
  padding:48px 0 72px;
}
.hero-eyebrow{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--champagne-ink);
  margin-bottom:16px;
}
.hero-title{
  font-family:var(--font-display);
  font-weight:400;
  font-size:44px;
  line-height:1.05;
  letter-spacing:-.01em;
  margin:0 0 20px;
}
html[lang=km] .hero-title{
  font-family:var(--font-khmer-display);
  font-weight:500;
  font-size:30px;
  line-height:1.5;
  letter-spacing:0;
}
html[lang=zh-Hans] .hero-title{
  font-family:var(--font-sc-display);
  font-weight:500;
  font-size:38px;
  letter-spacing:0;
}
.hero-sub{
  font-size:15px;
  line-height:1.65;
  color:var(--taupe);
  margin:0 0 32px;
  max-width:540px;
}
.hero-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:20px;
}
.hero-actions .btn-black{
  width:100%;
}
@media(min-width:900px){
  .hero{
    flex-direction:row;
    align-items:stretch;
    min-height:720px;
  }
  .hero-media{
    width:50%;
    height:auto;
    aspect-ratio:auto;
    min-height:640px;
    max-height:720px;
  }
  .hero-copy{
    width:50%;
    padding:96px 0 96px 0;
    display:flex;
    align-items:center;
    justify-content:flex-start;
  }
  .hero-copy-inner{
    max-width:560px;
    padding-left:max(40px,calc((100vw - 1240px)/2));
    padding-right:40px;
  }
  .hero-title{
    font-size:84px;
    line-height:1.05;
    margin-bottom:28px;
  }
  html[lang=km] .hero-title{font-size:56px;line-height:1.5}
  html[lang=zh-Hans] .hero-title{font-size:60px}
  .hero-sub{
    font-size:15px;
    margin-bottom:40px;
  }
  .hero-actions{
    flex-direction:row;
    align-items:center;
    gap:24px;
  }
  .hero-actions .btn-black{
    width:auto;
    min-width:220px;
  }
}

/* Sections */
.section{
  padding:72px 0;
}
.section-white{
  background:var(--porcelain);
}
.section-rose{
  background:var(--rose);
}
.section-noir{
  background:var(--noir);
  color:var(--porcelain);
}
@media(min-width:900px){
  .section{padding:120px 0}
}

.section-header{
  margin-bottom:48px;
}
.section-header .eyebrow{
  margin-bottom:16px;
}
.section-title{
  font-family:var(--font-display);
  font-weight:400;
  font-size:28px;
  line-height:1.1;
  letter-spacing:-.01em;
  margin:0 0 16px;
}
html[lang=km] .section-title{
  font-family:var(--font-khmer-display);
  font-weight:500;
  font-size:22px;
  line-height:1.5;
  letter-spacing:0;
}
html[lang=zh-Hans] .section-title{
  font-family:var(--font-sc-display);
  font-weight:500;
  font-size:26px;
  letter-spacing:0;
}
.section-intro{
  color:var(--taupe);
  font-size:14px;
  line-height:1.65;
  max-width:440px;
  margin:0;
}
@media(min-width:900px){
  .section-title{font-size:40px}
  html[lang=km] .section-title{font-size:30px}
  html[lang=zh-Hans] .section-title{font-size:36px}
}

/* Concern band */
.concern-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:32px 12px;
}
.concern-card{
  display:flex;
  flex-direction:column;
}
.concern-index{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.08em;
  color:var(--champagne-ink);
  margin-bottom:12px;
}
.concern-media{
  display:block;
  background:var(--mist);
  border:1px solid var(--line);
  aspect-ratio:3/4;
  overflow:hidden;
  margin-bottom:16px;
}
.concern-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.concern-card:hover .concern-media img{
  transform:scale(1.04);
}
.concern-title{
  font-family:var(--font-display);
  font-weight:400;
  font-size:19px;
  line-height:1.15;
  letter-spacing:-.01em;
  margin:0 0 6px;
}
html[lang=km] .concern-title{
  font-family:var(--font-khmer-display);
  font-weight:500;
  font-size:15px;
  line-height:1.5;
  letter-spacing:0;
}
html[lang=zh-Hans] .concern-title{
  font-family:var(--font-sc-display);
  font-weight:500;
  font-size:17px;
  letter-spacing:0;
}
.concern-sub{
  font-size:12.5px;
  line-height:1.5;
  color:var(--taupe);
  margin:0 8px 0 0;
}
.concern-arrow{
  color:var(--ink);
  margin-left:2px;
  transition:transform .3s var(--ease);
  font-size:14px;
}
.concern-card:hover .concern-arrow{
  transform:translateX(4px);
}
@media(min-width:900px){
  .concern-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
  }
}

/* Product grid */
.edit-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:40px;
}
.product-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:36px 12px;
}
.p-card{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.p-media{
  display:block;
  background:var(--mist);
  border:1px solid var(--line);
  aspect-ratio:1/1;
  overflow:hidden;
  position:relative;
  margin-bottom:12px;
}
.p-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.p-card:hover .p-media img{
  transform:scale(1.04);
}
.p-badge{
  position:absolute;
  top:8px;
  left:8px;
  background:#fff;
  border:1px solid var(--line);
  color:var(--ink);
  font-family:var(--font-ui);
  font-size:10px;
  letter-spacing:.08em;
  padding:4px 7px;
  line-height:1;
}
html[lang=km] .p-badge{
  font-family:var(--font-khmer-ui);
  letter-spacing:0;
}
.p-info{
  display:flex;
  flex-direction:column;
  flex:1;
}
.p-title{
  font-family:var(--font-ui);
  font-size:13.5px;
  line-height:1.6;
  color:var(--ink);
  margin:0 0 8px;
  min-height:calc(1.6em * 2);
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
html[lang=km] .p-title{
  font-family:var(--font-khmer-ui);
  font-size:13px;
}
html[lang=zh-Hans] .p-title{
  font-family:var(--font-sc-body);
  font-size:13px;
}
.p-price-row{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-bottom:12px;
  min-height:20px;
}
.p-price{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:14px;
  letter-spacing:.02em;
  color:var(--ink);
}
.p-compare{
  font-family:var(--font-ui);
  font-size:12px;
  color:var(--taupe);
  text-decoration:line-through;
}
@media(min-width:1024px){
  .product-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:48px 24px;
  }
  .p-card:nth-child(n+9){
    display:none;
  }
}

/* Ritual */
.ritual-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  align-items:start;
}
.ritual-media{
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
}
.ritual-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ritual-steps{
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--line);
}
.ritual-step{
  display:grid;
  grid-template-columns:48px 1fr 72px;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
  align-items:start;
}
.ritual-step .r-index{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.08em;
  color:var(--champagne-ink);
  padding-top:5px;
}
.ritual-step .r-body{
  min-width:0;
}
.ritual-step .r-name{
  font-family:var(--font-display);
  font-weight:400;
  font-size:20px;
  line-height:1.2;
  letter-spacing:-.01em;
  margin:0 0 6px;
}
html[lang=km] .ritual-step .r-name{
  font-family:var(--font-khmer-display);
  font-weight:500;
  font-size:17px;
  line-height:1.5;
  letter-spacing:0;
}
html[lang=zh-Hans] .ritual-step .r-name{
  font-family:var(--font-sc-display);
  font-weight:500;
  font-size:18px;
  letter-spacing:0;
}
.ritual-step .r-text{
  font-size:13px;
  line-height:1.6;
  color:var(--taupe);
  margin:0;
}
.ritual-thumb{
  display:block;
  width:72px;
  height:72px;
  background:var(--mist);
  border:1px solid var(--line);
  overflow:hidden;
}
.ritual-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ritual-step .r-thumb-wrap{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.ritual-step .r-thumb-name{
  font-size:11px;
  line-height:1.4;
  color:var(--ink);
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.ritual-thumb-price{
  font-family:var(--font-ui);
  font-size:11px;
  color:var(--taupe);
  letter-spacing:.02em;
}
.ritual-cta{
  margin-top:32px;
}
@media(min-width:900px){
  .ritual-layout{
    grid-template-columns:1fr 1fr;
    gap:64px;
  }
  .ritual-media{
    position:sticky;
    top:100px;
    aspect-ratio:4/5;
  }
  .ritual-step{
    grid-template-columns:56px 1fr 80px;
    gap:24px;
    padding:28px 0;
  }
  .ritual-thumb{
    width:80px;
    height:80px;
  }
}

/* Ingredient */
.ing-head{
  margin-bottom:48px;
}
.ing-head .eyebrow{
  color:var(--champagne);
}
.ing-head .section-title{
  color:var(--porcelain);
}
.ing-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
}
.ing-item{
  padding:24px 0;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.ing-item:last-child{
  border-bottom:0;
}
.ing-index{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.08em;
  color:var(--champagne);
  margin-bottom:14px;
}
.ing-name{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:400;
  font-size:24px;
  line-height:1.2;
  letter-spacing:0;
  color:var(--porcelain);
  margin:0 0 10px;
}
.ing-desc{
  font-size:13px;
  line-height:1.6;
  color:rgba(255,255,255,.72);
  margin:0;
}
@media(min-width:900px){
  .ing-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    border-top:1px solid rgba(255,255,255,.14);
  }
  .ing-item{
    padding:28px 20px;
    border-bottom:0;
    border-right:1px solid rgba(255,255,255,.14);
  }
  .ing-item:first-child{
    padding-left:0;
  }
  .ing-item:last-child{
    border-right:0;
  }
}

/* Promise band */
.promise-image{
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
  position:relative;
}
.promise-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.promise-overlay{
  position:absolute;
  left:0;
  bottom:0;
  background:rgba(255,255,255,.92);
  color:var(--ink);
  font-family:var(--font-display);
  font-style:italic;
  font-size:20px;
  line-height:1.2;
  padding:14px 20px;
  margin:0;
}
@media(min-width:900px){
  .promise-image{
    aspect-ratio:21/9;
  }
  .promise-overlay{
    font-size:28px;
    padding:18px 28px;
  }
}
.promise-row{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.promise-item{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
}
.promise-item:last-child{
  border-bottom:0;
}
.promise-item svg{
  width:24px;
  height:24px;
  stroke:var(--ink);
  fill:none;
  stroke-width:1.2;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 24px;
}
.promise-title{
  font-family:var(--font-ui);
  font-size:12px;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin:0 0 4px;
}
html[lang=km] .promise-title{
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
  font-size:14px;
}
html[lang=zh-Hans] .promise-title{
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}
.promise-sub{
  font-size:12.5px;
  line-height:1.5;
  color:var(--taupe);
  margin:0;
}
@media(min-width:900px){
  .promise-row{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .promise-item{
    padding:28px 20px;
    border-bottom:0;
    border-right:1px solid var(--line);
  }
  .promise-item:first-child{
    padding-left:0;
  }
  .promise-item:last-child{
    border-right:0;
  }
}

/* Footer */
.site-footer{
  background:var(--porcelain);
  padding:72px 0 140px;
}
.footer-word{
  text-align:center;
  margin-bottom:48px;
}
.footer-word .nk{
  font-family:var(--font-display);
  font-weight:500;
  font-size:56px;
  letter-spacing:.2em;
  line-height:1;
}
.footer-word .beauty{
  font-family:var(--font-ui);
  font-size:9px;
  letter-spacing:.55em;
  color:var(--taupe);
  margin-top:8px;
  text-align:center;
}
.footer-columns{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  text-align:center;
}
.footer-col h3{
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
  margin:0 0 16px;
}
html[lang=km] .footer-col h3{
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
  font-size:14px;
}
html[lang=zh-Hans] .footer-col h3{
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}
.footer-col a{
  display:block;
  font-size:13px;
  color:var(--taupe);
  margin-bottom:10px;
  transition:color .2s var(--ease);
}
.footer-col a:hover{
  color:var(--ink);
}
.footer-place{
  margin-top:48px;
  text-align:center;
  font-size:12px;
  color:var(--taupe);
}
.footer-copy{
  margin-top:12px;
  text-align:center;
  font-size:12px;
  color:var(--taupe);
}
.footer-lang{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:20px;
}
@media(min-width:900px){
  .footer-columns{
    grid-template-columns:repeat(3,1fr);
    text-align:center;
  }
  .site-footer{
    padding:96px 0 120px;
  }
}

/* Mobile bottom nav */
.bottom-nav{
  display:flex;
  align-items:center;
  justify-content:space-around;
  position:fixed;
  left:0;right:0;bottom:0;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--line);
  height:58px;
  padding-bottom:env(safe-area-inset-bottom);
  z-index:110;
}
.bottom-nav button{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  background:none;
  border:0;
  cursor:pointer;
  color:var(--taupe);
  font-family:var(--font-ui);
  font-size:10px;
  letter-spacing:.08em;
  transition:color .2s var(--ease);
}
.bottom-nav button.active{
  color:var(--ink);
}
.bottom-nav button svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
html[lang=km] .bottom-nav button{
  font-family:var(--font-khmer-ui);
  font-size:10.5px;
  letter-spacing:0;
}
html[lang=zh-Hans] .bottom-nav button{
  font-family:var(--font-sc-body);
  letter-spacing:.04em;
}
@media(min-width:768px){
  .bottom-nav{display:none}
}

/* PDP */
.pdp-body{
  padding-bottom:120px;
}
.pdp-topbar{
  position:sticky;
  top:0;
  z-index:120;
  background:var(--porcelain);
  border-bottom:1px solid var(--line);
  height:48px;
}
.pdp-topbar-inner{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  height:100%;
  position:relative;
}
.pdp-back{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  color:var(--ink);
  gap:4px;
  width:40px;
  height:40px;
}
.pdp-back svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.pdp-topbar-wordmark{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-self:center;
  line-height:1;
}
.pdp-topbar-wordmark .nk{
  font-family:var(--font-display);
  font-weight:500;
  font-size:18px;
  letter-spacing:.16em;
  line-height:1;
}
.pdp-topbar-wordmark .beauty{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:6.5px;
  letter-spacing:.55em;
  color:var(--taupe);
  margin-top:3px;
}
.pdp-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
}
.pdp-gallery{
  width:100%;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
@media(max-width:767px){
  .pdp-gallery{
    padding-left:0;
    padding-right:0;
  }
}
.pdp-gallery .pdp-media{
  display:block;
  background:var(--mist);
  border-left:1px solid var(--line);
  border-right:1px solid var(--line);
  aspect-ratio:1/1;
  overflow:hidden;
}
.pdp-gallery .pdp-media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.pdp-caption{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.08em;
  color:var(--taupe);
  padding:12px 20px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.pdp-info{
  padding:48px 0;
}
.pdp-eyebrow{
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--champagne-ink);
  margin-bottom:16px;
}
.pdp-title{
  font-family:var(--font-display);
  font-weight:400;
  font-size:30px;
  line-height:1.1;
  letter-spacing:-.01em;
  margin:0 0 20px;
}
html[lang=km] .pdp-title{
  font-family:var(--font-khmer-display);
  font-weight:500;
  font-size:22px;
  line-height:1.5;
  letter-spacing:0;
}
html[lang=zh-Hans] .pdp-title{
  font-family:var(--font-sc-display);
  font-weight:500;
  font-size:26px;
  letter-spacing:0;
}
.pdp-price-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:24px;
}
.pdp-price{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:24px;
  letter-spacing:.02em;
}
.pdp-compare{
  font-family:var(--font-ui);
  font-size:14px;
  color:var(--taupe);
  text-decoration:line-through;
}
.pdp-discount{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--noir);
  color:var(--champagne);
  font-family:var(--font-ui);
  font-size:10px;
  letter-spacing:.08em;
  padding:6px 9px;
  line-height:1;
}
html[lang=km] .pdp-discount{
  font-family:var(--font-khmer-ui);
  letter-spacing:0;
}
.pdp-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:32px;
}
.pdp-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  color:var(--ink);
  font-family:var(--font-ui);
  font-size:11px;
  letter-spacing:.08em;
  padding:7px 12px;
  line-height:1;
}
html[lang=km] .pdp-chip{
  font-family:var(--font-khmer-ui);
  letter-spacing:0;
  font-size:12px;
}
html[lang=zh-Hans] .pdp-chip{
  font-family:var(--font-sc-body);
  letter-spacing:.04em;
}
.pdp-block{
  margin-bottom:36px;
}
.pdp-block h4,.pdp-block h2{
  font-family:var(--font-ui);
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin:0 0 16px;
}
html[lang=km] .pdp-block h4,.pdp-block h2{
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
  font-size:14px;
}
html[lang=zh-Hans] .pdp-block h4,.pdp-block h2{
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}
.pdp-benefit-list{
  list-style:none;
  padding:0;
  margin:0;
}
.pdp-benefit-list li{
  display:flex;
  gap:12px;
  font-size:13.5px;
  line-height:1.6;
  color:var(--ink);
  padding:8px 0;
}
.pdp-benefit-list li::before{
  content:"—";
  color:var(--champagne-ink);
  flex:0 0 auto;
}
.pdp-how-text{
  font-size:14px;
  line-height:1.7;
  color:var(--taupe);
  margin:0;
}
.faq-item{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-top:-1px;
}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 0;
  font-size:14px;
  line-height:1.5;
  color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .faq-icon{
  font-family:var(--font-ui);
  font-size:20px;
  font-weight:300;
  color:var(--taupe);
  width:24px;
  text-align:center;
  transition:transform .2s var(--ease);
}
.faq-item[open] summary .faq-icon{
  transform:rotate(45deg);
}
.faq-a{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .35s var(--ease);
}
.faq-item[open] .faq-a{
  grid-template-rows:1fr;
}
.faq-a-inner{
  overflow:hidden;
}
.faq-a p{
  margin:0 0 20px;
  color:var(--taupe);
  font-size:13.5px;
  line-height:1.7;
}
@media(min-width:900px){
  .pdp-layout{
    grid-template-columns:7fr 5fr;
    gap:64px;
    align-items:start;
  }
  .pdp-gallery{
    position:sticky;
    top:80px;
    border:1px solid var(--line);
  }
  .pdp-info{
    padding:72px 0 0;
  }
}

/* Sticky order bar */
.sticky-order{
  position:fixed;
  left:0;right:0;bottom:0;
  background:#fff;
  border-top:1px solid var(--line);
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  z-index:115;
}
.sticky-order-inner{
  display:flex;
  align-items:center;
  gap:16px;
  max-width:1240px;
  margin:0 auto;
}
.sticky-order-price{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:20px;
  letter-spacing:.02em;
  white-space:nowrap;
}
.sticky-order-compare{
  font-family:var(--font-ui);
  font-size:12px;
  color:var(--taupe);
  text-decoration:line-through;
  white-space:nowrap;
}
.sticky-order .btn{
  flex:1;
  height:52px;
  min-height:52px;
}
@media(min-width:768px){
  .sticky-order{
    left:50%;
    transform:translateX(-50%);
    width:100%;
    max-width:520px;
    right:auto;
  }
}

/* BottomSheet */
.sheet-backdrop{
  position:fixed;
  inset:0;
  background:rgba(18,17,17,.5);
  opacity:0;
  visibility:hidden;
  transition:opacity .3s var(--ease),visibility .3s var(--ease);
  z-index:150;
}
.sheet-backdrop.open{
  opacity:1;
  visibility:visible;
}
.sheet{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:151;
  background:#fff;
  max-height:92vh;
  overflow-y:auto;
  transform:translateY(100%);
  transition:transform .38s var(--ease);
  border-top:1px solid var(--line);
  box-shadow:0 -8px 30px rgba(0,0,0,.04);
  padding:0 20px 28px;
}
.sheet.open{
  transform:translateY(0);
}
.sheet-handle{
  width:36px;
  height:3px;
  background:var(--line);
  margin:12px auto 20px;
}
.sheet-close{
  position:absolute;
  top:12px;
  right:16px;
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:none;
  border:0;
  cursor:pointer;
  color:var(--ink);
}
.sheet-close svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:1.2;
  stroke-linecap:round;
  fill:none;
}
.sheet-title{
  font-family:var(--font-display);
  font-weight:400;
  font-size:24px;
  line-height:1.1;
  letter-spacing:-.01em;
  margin:0 0 8px;
}
html[lang=km] .sheet-title{
  font-family:var(--font-khmer-display);
  font-weight:500;
  font-size:20px;
  line-height:1.5;
  letter-spacing:0;
}
html[lang=zh-Hans] .sheet-title{
  font-family:var(--font-sc-display);
  font-weight:500;
  font-size:22px;
  letter-spacing:0;
}
.sheet-sub{
  font-size:13px;
  line-height:1.6;
  color:var(--taupe);
  margin:0 0 24px;
}
.sheet-product-row{
  display:flex;
  gap:14px;
  align-items:center;
  margin-bottom:24px;
}
.sheet-product-thumb{
  width:64px;
  height:64px;
  flex:0 0 64px;
  background:var(--mist);
  border:1px solid var(--line);
  overflow:hidden;
}
.sheet-product-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.sheet-product-meta{
  flex:1;
  min-width:0;
}
.sheet-product-name{
  font-size:13px;
  line-height:1.5;
  color:var(--ink);
  margin:0 0 6px;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.sheet-product-price{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:14px;
  letter-spacing:.02em;
}
.sheet-qty{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
}
.sheet-qty button{
  width:34px;
  height:34px;
  background:#fff;
  border:1px solid var(--line);
  cursor:pointer;
  font-size:18px;
  line-height:1;
  color:var(--ink);
  display:flex;
  align-items:center;
  justify-content:center;
}
.sheet-qty span{
  width:40px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-family:var(--font-ui);
  font-size:14px;
  font-weight:500;
}
.field{
  margin-bottom:18px;
}
.field-label{
  display:block;
  font-family:var(--font-ui);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:8px;
}
html[lang=km] .field-label{
  font-family:var(--font-khmer-ui);
  text-transform:none;
  letter-spacing:0;
  font-size:12.5px;
}
html[lang=zh-Hans] .field-label{
  font-family:var(--font-sc-body);
  text-transform:none;
  letter-spacing:.04em;
}
.field input,
.field select,
.field textarea{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  font-size:16px;
  padding:0 12px;
  height:48px;
  outline:none;
  transition:border-color .2s var(--ease);
}
.field textarea{
  height:auto;
  min-height:80px;
  padding:12px;
  resize:none;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--ink);
}
.phone-wrap{
  display:flex;
  height:48px;
  border:1px solid var(--line);
  transition:border-color .2s var(--ease);
}
.phone-wrap:focus-within{
  border-color:var(--ink);
}
.phone-prefix{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:62px;
  border-right:1px solid var(--line);
  font-family:var(--font-ui);
  font-size:14px;
  letter-spacing:.04em;
  color:var(--taupe);
}
.phone-wrap input{
  border:0;
  height:100%;
  min-width:0;
}
.phone-wrap input:focus{
  border:0;
}
.select-wrap{
  position:relative;
}
.select-wrap select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:40px;
}
.select-wrap::after{
  content:"▾";
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  pointer-events:none;
  color:var(--taupe);
  font-size:14px;
}
.field-error{
  min-height:1.2em;
  margin-top:6px;
  font-size:12px;
  color:var(--danger);
  line-height:1.3;
}
.sheet-summary{
  border-top:1px solid var(--line);
  padding:18px 0 24px;
}
.sheet-summary-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:10px;
  font-size:14px;
}
.sheet-summary-row .free{
  color:var(--taupe);
}
.sheet-total{
  font-family:var(--font-ui);
  font-weight:500;
  font-size:18px;
  letter-spacing:.02em;
}
.sheet-submit{
  width:100%;
  height:52px;
  min-height:52px;
}
.sheet-success{
  text-align:center;
  padding:40px 0 20px;
}
.sheet-success .check{
  width:48px;
  height:48px;
  border:1px solid var(--ink);
  border-radius:0;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 24px;
}
.sheet-success .check svg{
  width:22px;
  height:22px;
  stroke:var(--ink);
  stroke-width:1.2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sheet-success h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:22px;
  line-height:1.2;
  letter-spacing:-.01em;
  margin:0 0 12px;
}
html[lang=km] .sheet-success h3{
  font-family:var(--font-khmer-display);
  font-weight:500;
  font-size:19px;
  line-height:1.5;
  letter-spacing:0;
}
html[lang=zh-Hans] .sheet-success h3{
  font-family:var(--font-sc-display);
  font-weight:500;
  letter-spacing:0;
}
.sheet-success p{
  color:var(--taupe);
  font-size:13.5px;
  line-height:1.6;
  margin:0 0 24px;
}
@media(min-width:640px){
  .sheet{
    left:50%;
    right:auto;
    width:480px;
    margin-left:-240px;
    bottom:24px;
    transform:translateY(calc(100% + 24px));
  }
  .sheet.open{
    transform:translateY(0);
  }
  .sheet-handle{display:none}
}
.no-scroll{
  overflow:hidden;
}

/* ===== Post-DeepSeek audit polish ===== */
.announce span + span{margin-left:.45em}
.lang-switch button[data-lang=km]{font-family:'Kantumruy Pro',sans-serif;text-transform:none;letter-spacing:0}
.lang-switch button[data-lang=zh]{font-family:'Noto Serif SC',system-ui,sans-serif;text-transform:none;letter-spacing:.02em}
.lang-mobile{display:none;margin-left:10px}
@media(max-width:1023px){
  .lang-desk{display:none}
  .lang-mobile{display:flex}
  .header-left{gap:0}
}
@media(max-width:899px){
  .hero-media{aspect-ratio:1/1}
  .hero-copy{padding:36px 20px 64px}
}
.edit-head .section-title{margin-bottom:0}
.edit-head .text-link{margin-bottom:.45em;white-space:nowrap}
.text-link{border-bottom:1px solid rgba(21,19,19,.22)}
.text-link::after{bottom:-1px}
.sheet{visibility:hidden;transition:transform .38s var(--ease),visibility 0s linear .38s}
.sheet.open{visibility:visible;transition:transform .38s var(--ease),visibility 0s}
/* crop the laptop out of the story band image */
.promise-image img{object-position:18% 50%}
@media(min-width:768px){.promise-image img{transform:scale(1.32);transform-origin:12% 55%}}
.field{margin-bottom:16px}
.field-error{min-height:0;margin-top:6px}
.field-error:empty{display:none}
.select-wrap::after{content:"";width:7px;height:7px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:translateY(-70%) rotate(45deg);right:18px}
.pdp-caption{border-bottom:0}
.pdp-info{padding-top:28px}
@media(min-width:768px){.pdp-info{padding-top:72px}}
html .lang-switch button[data-lang=km]{font-family:'Kantumruy Pro',sans-serif;text-transform:none;letter-spacing:0}
html .lang-switch button[data-lang=zh]{font-family:'Noto Serif SC',system-ui,sans-serif;text-transform:none}
@media(min-width:768px){
  .sticky-order{left:0;right:0;transform:none;max-width:none;padding:12px 40px}
  .sticky-order-inner{justify-content:flex-end}
  .sticky-order .btn{flex:0 0 360px}
}


/* ===== NK drawer menu (DeepSeek) ===== */
body.no-scroll{ overflow:hidden; }

.nk-drawer-root{
  position: fixed;
  inset: 0;
  z-index: 1000;
  pointer-events: none;
}

.nk-drawer-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(18,17,17,.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 300ms var(--ease), visibility 0s linear 300ms;
}

.nk-drawer{
  position: absolute;
  top: 0;
  left: 0;
  height: 100vh;
  height: 100dvh;
  width: min(86vw, 380px);
  background: var(--porcelain);
  color: var(--ink);
  transform: translateX(-100%);
  transition: transform 420ms var(--ease);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 20px 24px;
  box-sizing: border-box;
  box-shadow: 1px 0 0 rgba(18,17,17,.06);
  -webkit-overflow-scrolling: touch;
}

.nk-drawer-root.open{
  pointer-events: auto;
}

.nk-drawer-root.open .nk-drawer-backdrop{
  opacity: 1;
  visibility: visible;
  transition: opacity 300ms var(--ease);
}

.nk-drawer-root.open .nk-drawer{
  transform: translateX(0);
}

.nk-drawer-stagger{
  opacity: 0;
  transform: translateX(12px);
  transition: opacity .35s var(--ease), transform .35s var(--ease);
}

.nk-drawer-root.open .nk-drawer-stagger{
  opacity: 1;
  transform: none;
}

.nk-drawer-root.open .nk-drawer-s1{ transition-delay: .05s; }
.nk-drawer-root.open .nk-drawer-s2{ transition-delay: .09s; }
.nk-drawer-root.open .nk-drawer-s3{ transition-delay: .13s; }
.nk-drawer-root.open .nk-drawer-s4{ transition-delay: .17s; }
.nk-drawer-root.open .nk-drawer-s5{ transition-delay: .21s; }
.nk-drawer-root.open .nk-drawer-s6{ transition-delay: .25s; }
.nk-drawer-root.open .nk-drawer-s7{ transition-delay: .29s; }

.nk-drawer-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 56px;
  margin-bottom: 8px;
}

.nk-drawer-wordmark{
  text-decoration: none;
  color: var(--ink);
  display: inline-flex;
  flex-direction: column;
  line-height: 1;
}

.nk-drawer-wordmark .nk{
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .01em;
}

.nk-drawer-wordmark .beauty{
  font-family: var(--font-ui);
  font-size: 8.5px;
  letter-spacing: .38em;
  text-transform: uppercase;
  color: var(--taupe);
  margin-top: 2px;
}

.nk-drawer-close{
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink);
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
}

.nk-drawer-close:hover,
.nk-drawer-close:focus-visible{
  color: var(--champagne-ink);
}

.nk-drawer-close .nk-drawer-icon{
  width: 20px;
  height: 20px;
}

.nk-drawer-sr-only{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.nk-drawer-section{
  margin-top: 16px;
}

.nk-drawer-eyebrow{
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--champagne-ink);
  margin: 0 0 14px;
}

.nk-drawer-shop{
  display: flex;
  flex-direction: column;
}

.nk-drawer-item{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.15;
}

.nk-drawer-item:last-child{
  border-bottom: 0;
}

.nk-drawer-item-label{
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.nk-drawer-index{
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .08em;
  color: var(--taupe);
  white-space: nowrap;
}

.nk-drawer-arrow{
  flex: 0 0 auto;
  width: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateX(-8px);
  transition: width .25s var(--ease), opacity .25s var(--ease), transform .25s var(--ease);
}

.nk-drawer-arrow svg{
  display: block;
  width: 16px;
  height: 10px;
}

.nk-drawer-item:hover .nk-drawer-arrow,
.nk-drawer-item:focus-visible .nk-drawer-arrow,
.nk-drawer-item:active .nk-drawer-arrow{
  width: 16px;
  opacity: 1;
  transform: translateX(0);
}

.nk-drawer-section-concern{
  margin-top: 20px;
}

.nk-drawer-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.nk-drawer-tile{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  background: transparent;
  text-decoration: none;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 12.5px;
  line-height: 1.4;
  transition: background-color .25s var(--ease);
}

.nk-drawer-tile:hover,
.nk-drawer-tile:active{
  background: var(--rose);
}

.nk-drawer-dot{
  width: 4px;
  height: 4px;
  background: var(--champagne);
  display: inline-block;
  flex: 0 0 auto;
}

.nk-drawer-utility{
  display: flex;
  flex-direction: column;
  margin-top: 20px;
  border-top: 1px solid var(--line);
}

.nk-drawer-utility-link{
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 0 2px;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 13px;
  letter-spacing: .02em;
}

.nk-drawer-utility-link:last-child{
  border-bottom: 0;
}

.nk-drawer-utility-link .nk-drawer-icon{
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: var(--taupe);
}

.nk-drawer-utility-link .nk-drawer-chevron{
  width: 12px;
  height: 12px;
  margin-left: auto;
  flex: 0 0 auto;
  color: var(--taupe);
}

.nk-drawer-utility-link:hover,
.nk-drawer-utility-link:focus-visible,
.nk-drawer-utility-link:active{
  color: var(--champagne-ink);
}

.nk-drawer-utility-link:hover .nk-drawer-icon,
.nk-drawer-utility-link:focus-visible .nk-drawer-icon,
.nk-drawer-utility-link:active .nk-drawer-icon,
.nk-drawer-utility-link:hover .nk-drawer-chevron,
.nk-drawer-utility-link:focus-visible .nk-drawer-chevron,
.nk-drawer-utility-link:active .nk-drawer-chevron{
  color: var(--champagne-ink);
}

.nk-drawer-tg{
  display: flex;
  gap: 12px;
  padding: 14px;
  margin-top: 20px;
  border: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
  background: transparent;
  transition: border-color .25s var(--ease);
  align-items: flex-start;
}

.nk-drawer-tg:hover,
.nk-drawer-tg:focus-visible{
  border-color: var(--champagne);
}

.nk-drawer-tg-icon{
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  color: var(--taupe);
  margin-top: 2px;
}

.nk-drawer-tg-body{
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.nk-drawer-tg-title{
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 1.35;
}

.nk-drawer-tg-sub{
  font-family: var(--font-ui);
  font-size: 12px;
  color: var(--taupe);
  margin-top: 3px;
  line-height: 1.4;
}

.nk-drawer-tg-handle{
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--taupe);
  margin-top: 6px;
}

.nk-drawer-lang{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 20px;
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.nk-drawer-lang-label{
  font-family: var(--font-ui);
  font-size: 13px;
  color: var(--ink);
  letter-spacing: .03em;
}

.nk-drawer-lang-switch{
  display: flex;
  gap: 10px;
}

.nk-drawer-lang-switch button{
  background: none;
  border: 0;
  cursor: pointer;
  padding: 2px 0;
  font-family: var(--font-ui);
  font-size: 12.5px;
  color: var(--taupe);
  letter-spacing: .04em;
  border-bottom: 1px solid transparent;
}

.nk-drawer-lang-switch button.active{
  color: var(--champagne-ink);
  border-bottom-color: var(--champagne);
}

.nk-drawer-micro{
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .24em;
  color: var(--taupe);
  margin-top: auto;
  padding-top: 20px;
}

.nk-drawer a:focus-visible,
.nk-drawer button:focus-visible{
  outline: 1px solid var(--champagne-ink);
  outline-offset: 2px;
}

html[lang="km"] .nk-drawer-item{
  font-family: var(--font-khmer-display);
  font-size: 20px;
  line-height: 1.6;
}

html[lang="km"] .nk-drawer-eyebrow{
  font-family: var(--font-khmer-ui);
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
}

html[lang="km"] .nk-drawer-tile{
  font-family: var(--font-khmer-ui);
  font-size: 13.5px;
  line-height: 1.6;
}

html[lang="km"] .nk-drawer-utility-link{
  font-family: var(--font-khmer-ui);
  font-size: 13px;
  line-height: 1.6;
}

html[lang="km"] .nk-drawer-tg-title{
  font-family: var(--font-khmer-ui);
  font-size: 14px;
  line-height: 1.6;
}

html[lang="km"] .nk-drawer-tg-sub{
  font-family: var(--font-khmer-ui);
  font-size: 12px;
  line-height: 1.6;
}

html[lang="km"] .nk-drawer-lang-label{
  font-family: var(--font-khmer-ui);
  font-size: 13px;
  line-height: 1.6;
}

html[lang="km"] .nk-drawer-lang-switch button{
  font-family: var(--font-khmer-ui);
  font-size: 13px;
  letter-spacing: 0;
}

html[lang="zh-Hans"] .nk-drawer-item{
  font-family: var(--font-sc-display);
  font-size: 20px;
  line-height: 1.4;
}

html[lang="zh-Hans"] .nk-drawer-tile{
  font-family: var(--font-sc-body);
  font-size: 13px;
  line-height: 1.5;
}

html[lang="zh-Hans"] .nk-drawer-utility-link{
  font-family: var(--font-sc-body);
  font-size: 13px;
  line-height: 1.5;
}

html[lang="zh-Hans"] .nk-drawer-tg-title{
  font-family: var(--font-sc-body);
  font-size: 14px;
  line-height: 1.5;
}

html[lang="zh-Hans"] .nk-drawer-tg-sub{
  font-family: var(--font-sc-body);
  font-size: 12px;
  line-height: 1.5;
}

html[lang="zh-Hans"] .nk-drawer-lang-label{
  font-family: var(--font-sc-body);
  font-size: 13px;
}

html[lang="zh-Hans"] .nk-drawer-lang-switch button{
  font-family: var(--font-sc-body);
  font-size: 12.5px;
}

@media (prefers-reduced-motion: reduce){
  .nk-drawer-backdrop,
  .nk-drawer,
  .nk-drawer-stagger,
  .nk-drawer-arrow,
  .nk-drawer-tile,
  .nk-drawer-tg,
  .nk-drawer-utility-link{
    transition: none !important;
  }
  .nk-drawer-stagger{
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (min-width: 1024px){
  .nk-drawer-root{
    display: none;
  }
}

body.no-scroll{overflow:hidden}
/* drawer polish */
.nk-drawer-item-label{gap:0}
.nk-drawer-item:hover .nk-drawer-arrow,.nk-drawer-item:focus-visible .nk-drawer-arrow,.nk-drawer-item:active .nk-drawer-arrow{margin-right:10px}
.nk-drawer-tg-handle{text-transform:none;letter-spacing:.04em}
.nk-drawer-item{padding:11px 0}
.nk-drawer-section-concern{margin-top:16px}
html body .nk-drawer .lang-switch button[data-lang="km"]{font-family:'Kantumruy Pro','Noto Serif Khmer',sans-serif;letter-spacing:0;font-size:15px}

/* =====================================================================
   N&K v3 refinement layer — typography · rhythm · media slots · motion
   Decisions: DeepSeek (deepseek-v4-pro) refine pass, integrated + tuned.
   Specificity note: type rules use html[lang] so they win over the
   earlier html[lang=km]/html[lang=zh-Hans] rules in this file.
   ===================================================================== */

/* ---------- 0. Tokens (fluid 360px → 1440px) ---------- */
:root{
  /* AA contrast tuning of the approved palette (≥4.5:1 on porcelain & rosé) */
  --champagne-ink:#7A6440; --taupe:#6E645E;
  --fs-micro:clamp(.625rem,.6rem + .12vw,.6875rem);     /* 10–11px  labels, N° */
  --fs-small:clamp(.75rem,.72rem + .15vw,.8125rem);     /* 12–13px */
  --fs-body:clamp(.875rem,.84rem + .16vw,.9375rem);     /* 14–15px */
  --fs-lead:clamp(.9375rem,.88rem + .25vw,1.0625rem);   /* 15–17px */
  --fs-h3:clamp(1.125rem,1.02rem + .45vw,1.375rem);     /* 18–22px */
  --fs-h2:clamp(1.75rem,1.45rem + 1.35vw,2.625rem);     /* 28–42px */
  --fs-display:clamp(2.625rem,2.05rem + 2.6vw,4.5rem);  /* 42–72px */
  --fs-quote:clamp(1.625rem,1.3rem + 1.5vw,2.625rem);   /* 26–42px */
  --lh-display:1.04; --lh-h2:1.08; --lh-h3:1.18; --lh-lead:1.62; --lh-body:1.68;
  --ls-display:-.02em; --ls-h2:-.015em; --ls-h3:-.005em;
  --measure:46ch; --measure-lead:40ch;
  --s-1:8px;--s-2:16px;--s-3:24px;--s-4:32px;--s-5:40px;--s-6:48px;--s-7:56px;--s-8:64px;--s-9:72px;--s-10:80px;--s-12:96px;--s-15:120px;
}
/* Khmer: glyphs read larger and stack (coeng + vowels above/below) → ~70% size, taller line boxes */
html[lang=km]{
  --fs-body:clamp(.875rem,.85rem + .12vw,.9375rem);
  --fs-lead:clamp(.9375rem,.9rem + .15vw,1rem);
  --fs-h3:clamp(1.0625rem,1rem + .3vw,1.25rem);
  --fs-h2:clamp(1.375rem,1.2rem + .9vw,2rem);
  --fs-display:clamp(1.875rem,1.55rem + 1.6vw,3rem);
  --fs-quote:clamp(1.3125rem,1.15rem + .8vw,1.875rem);
  --lh-display:1.55; --lh-h2:1.55; --lh-h3:1.6; --lh-lead:1.85; --lh-body:1.9;
  --ls-display:0; --ls-h2:0; --ls-h3:0;
  --measure:30em; --measure-lead:24em;
}
/* Chinese: ~80% of Latin, open tracking, strict CJK line breaking */
html[lang=zh-Hans]{
  --fs-h3:clamp(1.0625rem,1rem + .3vw,1.25rem);
  --fs-h2:clamp(1.5rem,1.3rem + .9vw,2.125rem);
  --fs-display:clamp(2.125rem,1.75rem + 1.8vw,3.5rem);
  --fs-quote:clamp(1.375rem,1.2rem + .9vw,2rem);
  --lh-display:1.3; --lh-h2:1.38; --lh-h3:1.45; --lh-lead:1.85; --lh-body:1.85;
  --ls-display:.04em; --ls-h2:.03em; --ls-h3:.02em;
  --measure:26em; --measure-lead:19em;
  line-break:strict;
}

/* ---------- 1. Base ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html[lang] body{font-size:var(--fs-body);line-height:var(--lh-body);font-kerning:normal;font-optical-sizing:auto;text-rendering:optimizeLegibility}
html[lang=zh-Hans] body{letter-spacing:.02em}
picture{display:contents}
img,video{height:auto}
.hero-sub,.section-intro,.manifesto-quote,.pdp-how-text,.faq-a p,.r-text,.concern-sub,.promise-sub,.ing-desc{text-wrap:pretty}
.hero-title,.section-title,.concern-title,.r-name,.pdp-title,.ing-name,.promise-title,.sheet-title,.manifesto-quote,.sheet-success h3{text-wrap:balance}
html[lang=km] .serif-display:not(.latin){font-weight:500}
.p-price,.pdp-price,.sticky-order-price,.sheet-product-price,.sheet-total,.ritual-thumb-price,.p-compare,.pdp-compare,.sticky-order-compare{font-variant-numeric:lining-nums tabular-nums}

/* ---------- 2. Display & headings ---------- */
html[lang] .hero-title{font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);margin:0 0 var(--s-3)}
html[lang] .section-title{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);margin:0 0 var(--s-2)}
html[lang] .concern-title{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);margin:0 0 6px}
html[lang] .ritual-step .r-name{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);margin:0 0 6px}
html[lang] .pdp-title{font-size:clamp(1.75rem,1.5rem + 1.1vw,2.5rem);line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}
html[lang=km] .pdp-title{font-size:clamp(1.3125rem,1.2rem + .6vw,1.75rem);line-height:1.6}
html[lang=zh-Hans] .pdp-title{font-size:clamp(1.375rem,1.25rem + .6vw,1.875rem);line-height:1.4}
html[lang] .ing-name{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-h3);line-height:1.2;letter-spacing:0}
@media(min-width:900px){
  html[lang] .hero-title{margin-bottom:var(--s-4)}
}

/* ---------- 3. Lead & body measure ---------- */
html[lang] .hero-sub{font-size:var(--fs-lead);line-height:var(--lh-lead);max-width:var(--measure-lead);color:var(--taupe);margin:0 0 var(--s-4)}
html[lang] .section-intro{font-size:var(--fs-body);line-height:var(--lh-body);max-width:var(--measure);margin:0}
html[lang] .pdp-how-text,html[lang] .faq-a p,html[lang] .pdp-benefit-list li{font-size:var(--fs-body);line-height:var(--lh-body);max-width:var(--measure)}
html[lang] .concern-sub,html[lang] .r-text,html[lang] .ing-desc,html[lang] .promise-sub{line-height:var(--lh-body)}
html[lang=km] .concern-sub,html[lang=km] .r-text,html[lang=km] .ing-desc,html[lang=km] .promise-sub,html[lang=km] .p-title{line-height:1.75}
html[lang] .p-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- 4. Labels: tracked small caps / mono N° ---------- */
.eyebrow,.eyebrow.latin,.hero-eyebrow,.pdp-eyebrow{font-family:var(--font-mono);font-weight:400;font-size:var(--fs-micro);letter-spacing:.16em;line-height:1.4}
.concern-index,.r-index,.ing-index,.nk-drawer-index,.pdp-caption{letter-spacing:.1em}
.text-link{letter-spacing:.2em}
.btn{letter-spacing:.18em}
.btn-sm{letter-spacing:.14em}

/* ---------- 5. Vertical rhythm (8px grid) ---------- */
.section{padding:var(--s-9) 0}
@media(min-width:900px){.section{padding:var(--s-15) 0}}
.section-header{margin-bottom:var(--s-5)}
@media(min-width:900px){.section-header{margin-bottom:var(--s-8)}}
.section-header .eyebrow,.hero-eyebrow{margin-bottom:var(--s-2)}
@media(max-width:899px){.hero-copy{padding:var(--s-5) 20px var(--s-7)}}
@media(min-width:900px){.hero-copy{padding:var(--s-12) 0}}

/* ---------- 6. Prices ---------- */
.p-price,.pdp-price,.sticky-order-price{font-family:var(--font-ui);font-weight:400;letter-spacing:.02em}
.p-compare,.pdp-compare,.sticky-order-compare{color:var(--taupe);text-decoration-line:line-through;text-decoration-thickness:1px;text-decoration-color:currentColor}

/* ---------- 7. Announcement: one calm line, fixed height (no reflow) ---------- */
.announce{height:34px;padding:0 16px;display:flex;align-items:center;justify-content:center;gap:.5em;white-space:nowrap;overflow:hidden;letter-spacing:.04em}
.announce span{display:inline}
.announce-brand i{font-style:normal;opacity:.45;margin-left:.5em}
.announce-dot{opacity:.6}
html[lang=km] .announce{letter-spacing:0;font-size:11.5px}
@media(max-width:599px){.announce .announce-brand{display:none}}

/* ---------- 8. Header: no height animation (layout-free scroll) ---------- */
.site-header,.site-header.scrolled{height:60px;transition:border-color .3s var(--ease),background-color .3s var(--ease)}
@media(min-width:768px){.site-header,.site-header.scrolled{height:72px}}

/* ---------- 9. N&K wordmark ---------- */
.wm{display:inline-flex;flex-direction:column;align-items:center;line-height:1;color:var(--ink);font-size:26px}
.wm-word{display:inline-flex;align-items:baseline;font-family:var(--font-display);font-weight:500;font-size:1em;line-height:1;font-optical-sizing:auto}
.wm-n,.wm-k{letter-spacing:0}
.wm-amp{font-family:'Bodoni Moda Amp','Bodoni Moda',var(--font-display);font-style:italic;font-weight:400;font-size:.78em;color:var(--champagne-ink);margin:0 .07em 0 .05em;transform:translateY(-.02em)}
.wm-sub{font-family:var(--font-ui);font-weight:500;font-size:.27em;letter-spacing:.62em;text-indent:.62em;color:var(--taupe);margin-top:.42em;line-height:1}
.wordmark .wm{font-size:24px}
@media(min-width:768px){.wordmark .wm{font-size:30px}}
.wordmark .wm-sub{font-size:7.5px}
.nk-drawer .wm{font-size:28px}
.nk-drawer .wm-sub{font-size:7.5px}
.pdp-topbar .wm{font-size:19px}
.pdp-topbar .wm-sub{font-size:6.5px}
.footer-word .wm{font-size:clamp(56px,48px + 3vw,84px)}
.footer-word .wm-sub{font-size:9px;margin-top:14px}
.footer-wm .wm{font-size:30px}
.footer-wm .wm-sub{font-size:7.5px}
.nk-drawer-wordmark{align-items:flex-start}

/* ---------- 10. Hero: media slot, poster, slow breathing ---------- */
.hero-media{position:relative;overflow:hidden;background:var(--rose);contain:paint}
.hero-media img,.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero-media img{animation:nkBreath 22s var(--ease) infinite alternate;transform-origin:60% 55%}
.hero-video{opacity:0;transition:opacity 1.2s var(--ease)}
.hero-video.is-ready{opacity:1}
.hero-media.has-video img{animation:none}
@keyframes nkBreath{from{transform:scale(1)}to{transform:scale(1.05)}}
@media(min-width:900px){.hero-media{aspect-ratio:auto;min-height:640px}}

/* ---------- 11. Landing gallery: scroll-snap track (no JS animation) ---------- */
.pdp-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pdp-track::-webkit-scrollbar{display:none}
.pdp-track:focus-visible{outline:1px solid var(--champagne-ink);outline-offset:-1px}
.pdp-slide{flex:0 0 100%;margin:0;scroll-snap-align:start;scroll-snap-stop:always;position:relative}
.pdp-gallery .pdp-media img,.pdp-video video{width:100%;height:100%;object-fit:cover;display:block}
.pdp-video{aspect-ratio:1/1;background:var(--mist)}

/* ---------- 12. Manifesto band ---------- */
.manifesto{background:var(--porcelain);padding:var(--s-12) 0}
@media(min-width:900px){.manifesto{padding:160px 0}}
.manifesto-inner{max-width:880px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center}
.manifesto-inner::before{content:"";display:block;width:48px;height:1px;background:var(--champagne);margin-bottom:var(--s-4)}
.manifesto .eyebrow{margin-bottom:var(--s-4)}
html[lang] .manifesto-quote{font-family:var(--font-display);font-weight:400;font-style:italic;font-size:var(--fs-quote);line-height:1.22;letter-spacing:-.01em;color:var(--ink);margin:0 0 var(--s-4);max-width:22em}
html[lang=km] .manifesto-quote{font-family:var(--font-khmer-display);font-style:normal;font-weight:400;line-height:1.75;letter-spacing:0;max-width:19em}
html[lang=zh-Hans] .manifesto-quote{font-family:var(--font-sc-display);font-style:normal;font-weight:400;line-height:1.6;letter-spacing:.06em;max-width:18em}
.manifesto-attr{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--taupe);margin:0}
html[lang=km] .manifesto-attr{font-family:var(--font-khmer-ui);font-size:var(--fs-small);letter-spacing:0;text-transform:none}
html[lang=zh-Hans] .manifesto-attr{font-family:var(--font-sc-body);font-size:var(--fs-small);letter-spacing:.08em}

/* ---------- 13. Smoothness ---------- */
.sheet,.nk-drawer{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sheet.open,.nk-drawer-root.open .nk-drawer{will-change:transform}
.concern-media img,.p-media img{will-change:auto;backface-visibility:hidden}

/* ---------- 14. Reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important}
  .hero-media img{animation:none!important}
  .hero-video{transition:none!important}
  .js .rv,.js .rv.in{opacity:1!important;transform:none!important;transition:none!important}
  .nk-drawer,.nk-drawer-backdrop,.nk-drawer-stagger,.sheet,.sheet-backdrop,.concern-media img,.p-media img,.text-link::after{transition:none!important}
  .nk-drawer-stagger{opacity:1!important;transform:none!important}
}
/* Khmer/Chinese buttons: Latin caps sizes are too small for complex scripts */
html[lang=km] .btn:not(.latin){font-size:13.5px;letter-spacing:0}
html[lang=km] .btn-sm:not(.latin){font-size:12.5px}
html[lang=zh-Hans] .btn:not(.latin){font-size:13px;letter-spacing:.12em}
html[lang=zh-Hans] .btn-sm:not(.latin){font-size:12px;letter-spacing:.08em}

/* ---------- N&K official logo (nkgroupkh.com brand asset) + BEAUTY sub-line ----------
   img/brand/nk-logo.svg = /brand/logo/logo-horizontal-light.svg from the main site, artwork unchanged,
   viewBox trimmed to the artwork (507×184). BEAUTY is justified under the "N & K" lettering
   (x 275→505 of 507 units), sized as a fraction of the logo height so the lockup scales as one. */
.logo{position:relative;display:inline-block;line-height:0;font-size:32px;vertical-align:middle}
.logo img{display:block;height:1em;width:auto;max-width:none}
.logo-sub{position:absolute;left:54.25%;right:.35%;top:70%;display:flex;justify-content:space-between;
  font-family:var(--font-ui);font-weight:400;font-size:max(.165em,5px);line-height:1;letter-spacing:0;color:var(--taupe);pointer-events:none}
.logo-sub i{font-style:normal}
.wordmark .logo{font-size:29px}
@media(min-width:768px){.wordmark .logo{font-size:40px}}
.nk-drawer .logo{font-size:36px}
.pdp-topbar .logo{font-size:28px}
.footer-word .logo{font-size:clamp(64px,52px + 3vw,96px)}
.footer-wm .logo{font-size:44px}
.footer-word{display:flex;justify-content:center}

/* =====================================================================
   N&K · The Edit v4 — editorial rhythm + sub-category filter
   Design: DeepSeek (deepseek-v4-pro) edit_a_css, adapted to the shipped markup.
   Bands: porcelain (head · chips · feature + lead) → rosé (rail) → mist (editor's pick) → porcelain (ritual)
   ===================================================================== */
.section.edit{padding-bottom:0}
.edit .edit-head{margin-bottom:var(--s-3)}

/* ---------- 1. Chips row ---------- */
.edit-chips-wrap{position:relative;margin:0 0 var(--s-5)}
.edit-chips-wrap::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);pointer-events:none}
.edit-chips{
  display:flex;align-items:center;gap:0;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain;
  padding:0 20px;scroll-padding:0 20px;
  -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 40px),transparent 100%);
          mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 40px),transparent 100%);
}
.edit-chips::-webkit-scrollbar{display:none}
.chip{
  position:relative;flex:0 0 auto;display:inline-flex;align-items:flex-start;gap:3px;
  min-height:44px;padding:13px 12px 0;margin:0;background:none;border:0;border-radius:0;
  color:var(--taupe);font-family:var(--font-ui);font-size:12.5px;font-weight:400;letter-spacing:.06em;line-height:1.4;
  white-space:nowrap;cursor:pointer;scroll-snap-align:start;-webkit-tap-highlight-color:transparent;
  transition:color .2s var(--ease)
}
.chip:first-child{padding-left:0}
.chip::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:1px;background:transparent;z-index:1;transition:background-color .2s var(--ease)}
.chip:first-child::after{left:0}
.chip:hover{color:var(--ink)}
.chip.is-active{color:var(--ink)}
.chip.is-active::after{background:var(--ink)}
.chip:focus-visible{outline:1px solid var(--ink);outline-offset:-4px}
.chip-n{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.02em;line-height:1;color:var(--taupe);vertical-align:0;position:relative;top:-.1em}
.chip.is-active .chip-n{color:var(--champagne-ink)}
.chip.is-empty{color:#9C928C}
.chip.is-empty.is-active{color:var(--ink)}
.chip-sep{flex:0 0 1px;width:1px;height:14px;margin:6px 4px 0;background:var(--line);align-self:center}
html[lang=km] .chip{font-family:var(--font-khmer-ui);font-size:13px;letter-spacing:0;line-height:1.5;padding-top:11px}
html[lang=zh-Hans] .chip{font-family:var(--font-sc-body);font-size:13px;letter-spacing:.04em}
@media(min-width:768px){
  .edit-chips{padding:0 40px;scroll-padding:0 40px}
}
@media(min-width:1024px){
  .edit-chips-wrap{max-width:1240px;margin-left:auto;margin-right:auto}
  .edit-chips{-webkit-mask-image:none;mask-image:none;flex-wrap:nowrap}
  .chip{font-size:13px;padding-left:14px;padding-right:14px}
  .chip::after{left:14px;right:14px}
  .edit-chips-wrap::after{left:40px;right:40px}
}

/* ---------- body swap (filter) — opacity/transform only ---------- */
.edit-body.is-swapping{animation:editIn .28s var(--ease) both}
@keyframes editIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- 2. Lead: feature + 4 standard cards ---------- */
.edit-lead{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 12px;margin-bottom:var(--s-8)}
.edit-feature{grid-column:1 / -1;display:flex;flex-direction:column;min-width:0;margin-bottom:var(--s-2)}
.edit-feature-media{position:relative;display:block;background:var(--mist);aspect-ratio:4/5;overflow:hidden;margin:0 -20px var(--s-3)}
.edit-feature-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.edit-feature:hover .edit-feature-media img{transform:scale(1.03)}
.edit-feature-label{position:absolute;top:14px;left:20px;z-index:2;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.16em;color:var(--ink);background:rgba(255,255,255,.9);padding:5px 8px;line-height:1}
.edit-feature-body{display:flex;flex-direction:column;flex:1}
.edit-eyebrow{display:block;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-ink);margin:0 0 var(--s-1);line-height:1.4}
html[lang] .edit-eyebrow{font-family:var(--font-mono)}
.edit-feature-name{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);color:var(--ink);margin:0 0 var(--s-2)}
.edit-feature-name a{color:inherit;text-decoration:none}
html[lang=km] .edit-feature-name{font-family:var(--font-khmer-display);font-weight:500}
html[lang=zh-Hans] .edit-feature-name{font-family:var(--font-sc-display);font-weight:500}
.edit-feature-story{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--taupe);max-width:34ch;margin:0 0 var(--s-3);text-wrap:pretty}
html[lang=km] .edit-feature-story{max-width:26em;font-family:var(--font-khmer-ui)}
html[lang=zh-Hans] .edit-feature-story{max-width:24em;font-family:var(--font-sc-body)}
.edit-feature .p-price-row{margin:0 0 var(--s-3)}
.edit-feature .p-price{font-size:1.0625rem}
.edit-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line);margin-top:auto}
.edit-actions .p-add{position:static;width:40px;height:40px;flex:0 0 40px;opacity:1}
@media(min-width:768px){.edit-feature-media{margin-left:0;margin-right:0}.edit-feature-label{left:14px}}
@media(min-width:1024px){
  .edit-lead{grid-template-columns:repeat(4,minmax(0,1fr));gap:48px 24px;align-items:stretch}
  .edit-feature{grid-column:1 / 3;grid-row:1 / 3;margin:0}
  .edit-feature-media{flex:1 1 auto;min-height:420px;aspect-ratio:auto;margin-bottom:var(--s-3)}
  .edit-feature-body{flex:0 0 auto}
}

/* ---------- 3. Standard card (refined, no outline button) ---------- */
.p-card{position:relative;display:flex;flex-direction:column;min-width:0}
.p-media-wrap{position:relative;margin:0 0 12px}
.p-media-wrap .p-media{margin:0}
.p-add{
  display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;
  background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:0;color:var(--ink);cursor:pointer;
  -webkit-tap-highlight-color:transparent;transition:border-color .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease)
}
.p-media-wrap .p-add{position:absolute;right:8px;bottom:8px;z-index:3}
.p-media-wrap .p-add::before{content:"";position:absolute;inset:-6px}  /* 44px touch target, 32px visual */
.p-add svg{width:14px;height:14px}
@media(hover:hover){.p-add:hover{border-color:var(--ink)}}
.p-add:active{background:var(--ink);color:#fff;border-color:var(--ink)}
.p-add:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
.p-info{display:flex;flex-direction:column;flex:1;gap:0}
html[lang] .p-title{font-family:var(--font-ui);font-size:var(--fs-body);line-height:1.55;min-height:calc(1.55em * 2);margin:0 0 4px;color:var(--ink);text-decoration:none}
html[lang=km] .p-title{font-family:var(--font-khmer-ui);font-size:13.5px;line-height:1.75;min-height:calc(1.75em * 2)}
html[lang=zh-Hans] .p-title{font-family:var(--font-sc-body);font-size:13.5px;line-height:1.6;min-height:calc(1.6em * 2)}
.p-sub{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--taupe);line-height:1.5;margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[lang=km] .p-sub{font-family:var(--font-khmer-ui);text-transform:none;letter-spacing:0;font-size:11.5px;line-height:1.7}
html[lang=zh-Hans] .p-sub{font-family:var(--font-sc-body);text-transform:none;letter-spacing:.06em;font-size:11.5px}
.p-price-row{display:flex;align-items:baseline;gap:8px;margin:auto 0 0;min-height:22px}
.p-price{font-size:14px;font-weight:500;color:var(--ink)}
.p-compare{font-size:12px;color:var(--taupe);text-decoration:line-through;text-decoration-thickness:1px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.edit .p-card:nth-child(n){display:flex}

/* ---------- 4. Rosé rail band (full-bleed) ---------- */
.edit-band{padding:var(--s-8) 0}
.edit-rail-band{background:var(--rose)}
.edit-pick-band{background:var(--mist)}
.edit-rail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:var(--s-4)}
.edit-rail-title{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);color:var(--ink);margin:0}
html[lang=km] .edit-rail-title{font-family:var(--font-khmer-display);font-weight:500}
html[lang=zh-Hans] .edit-rail-title{font-family:var(--font-sc-display);font-weight:500}
.rail{
  display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;overscroll-behavior-x:contain;padding:0 20px 2px;scroll-padding:0 20px
}
.rail::-webkit-scrollbar{display:none}
.rail-item{flex:0 0 62%;min-width:0;scroll-snap-align:start;display:flex}
.rail-item .p-card{flex:1}
.rail-card .p-media{background:#fff}
.rail-nav{display:none}
@media(min-width:768px){
  .rail{padding:0 40px 2px;scroll-padding:0 40px}
  .rail-item{flex-basis:38%}
}
@media(min-width:1024px){
  .rail{padding-left:max(40px,calc((100vw - 1240px) / 2 + 40px));padding-right:max(40px,calc((100vw - 1240px) / 2 + 40px));scroll-padding-left:max(40px,calc((100vw - 1240px) / 2 + 40px));gap:24px}
  .rail-item{flex-basis:calc((min(100vw,1240px) - 80px - 24px * 3) / 4.25)}
  .rail-nav{display:flex;gap:8px}
  .rail-nav button{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(21,19,19,.28);border-radius:0;color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease),background-color .2s var(--ease),color .2s var(--ease)}
  .rail-nav button:hover{border-color:var(--ink);background:var(--ink);color:#fff}
}

/* ---------- 5. Editor's pick (mist band) ---------- */
.edit-pick{display:grid;grid-template-columns:1fr;gap:var(--s-4);align-items:center}
.edit-pick-media{display:block;position:relative;background:#fff;border:1px solid var(--line);aspect-ratio:1/1;overflow:hidden}
.edit-pick-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.edit-pick:hover .edit-pick-media img{transform:scale(1.03)}
.edit-pick-body{display:flex;flex-direction:column}
.edit-pick-quote-wrap{border-top:1px solid var(--champagne);padding-top:var(--s-3);margin-bottom:var(--s-4)}
.edit-pick-quote{margin:var(--s-1) 0 var(--s-2);padding:0;border:0}
.edit-pick-quote p{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-quote);line-height:1.22;letter-spacing:-.01em;color:var(--ink);margin:0;max-width:22em;text-wrap:pretty}
.edit-pick-quote p::before{content:"\201C"}
.edit-pick-quote p::after{content:"\201D"}
html[lang=km] .edit-pick-quote p{font-family:var(--font-khmer-display);font-style:normal;font-weight:500;font-size:clamp(1.125rem,1rem + .6vw,1.5rem);line-height:1.85;letter-spacing:0}
html[lang=zh-Hans] .edit-pick-quote p{font-family:var(--font-sc-display);font-style:normal;font-weight:500;font-size:clamp(1.25rem,1.1rem + .7vw,1.75rem);line-height:1.6;letter-spacing:.03em}
html[lang=zh-Hans] .edit-pick-quote p::before{content:"\300C"}
html[lang=zh-Hans] .edit-pick-quote p::after{content:"\300D"}
.edit-pick-attr{font-family:var(--font-ui);font-size:var(--fs-small);letter-spacing:.04em;color:var(--taupe);margin:0}
html[lang=km] .edit-pick-attr{font-family:var(--font-khmer-ui);letter-spacing:0}
html[lang=zh-Hans] .edit-pick-attr{font-family:var(--font-sc-body)}
.edit-pick-product{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:var(--s-3)}
.edit-pick-id{min-width:0}
html[lang] .edit-pick-product .p-title{min-height:0;-webkit-line-clamp:1;font-size:var(--fs-lead)}
.edit-pick-product .p-sub{margin:0}
.edit-pick-product .p-price-row{margin:0;flex:0 0 auto}
.edit-pick-product .p-price{font-size:1.0625rem}
@media(min-width:1024px){
  .edit-pick{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--s-10)}
  .edit-band{padding:var(--s-10) 0}
}

/* ---------- 6. Filtered results + empty ---------- */
.edit-results{padding-bottom:var(--s-10)}
.edit-count{display:flex;gap:8px;align-items:baseline;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--taupe);margin:0 0 var(--s-4)}
html[lang=km] .edit-count{font-family:var(--font-khmer-ui);font-size:12px;letter-spacing:0;text-transform:none}
html[lang=zh-Hans] .edit-count{font-family:var(--font-sc-body);font-size:12px;letter-spacing:.08em}
.edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 12px}
@media(min-width:1024px){.edit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:48px 24px}}
.edit-empty{background:var(--mist);border:1px solid var(--line);padding:var(--s-8) var(--s-4);text-align:center;display:flex;flex-direction:column;align-items:center}
.edit-empty-icon{display:block;width:32px;height:32px;margin:0 auto var(--s-3);color:var(--champagne-ink)}
.edit-empty-title{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);color:var(--ink);margin:0 0 var(--s-2)}
html[lang=km] .edit-empty-title{font-family:var(--font-khmer-display);font-weight:500}
html[lang=zh-Hans] .edit-empty-title{font-family:var(--font-sc-display);font-weight:500}
.edit-empty-text{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--taupe);max-width:34ch;margin:0 auto var(--s-4);text-wrap:pretty}
html[lang=km] .edit-empty-text{max-width:24em;font-family:var(--font-khmer-ui)}
html[lang=zh-Hans] .edit-empty-text{max-width:22em;font-family:var(--font-sc-body)}
.edit-empty-back{margin-top:var(--s-3);background:none;border:0;border-bottom:1px solid rgba(21,19,19,.22);border-radius:0;padding:0 0 2px;cursor:pointer;color:var(--taupe)}
@media(prefers-reduced-motion:reduce){.edit-body.is-swapping{animation:none}.edit-feature-media img,.edit-pick-media img{transition:none}}

/* ---------- 7. Drawer: sub-categories under each SHOP item ---------- */
.nk-drawer-shop-item{border-bottom:1px solid var(--line)}
.nk-drawer-shop-item:last-child{border-bottom:0}
.nk-drawer-shop-item .nk-drawer-item{border-bottom:0;padding-bottom:6px}
.nk-drawer-subs{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;padding:0 0 14px 24px}
.nk-drawer-sub{position:relative;display:inline-flex;align-items:flex-start;gap:3px;font-family:var(--font-ui);font-size:12.5px;letter-spacing:.03em;line-height:1.5;color:var(--taupe);text-decoration:none;padding:5px 10px 5px 0;margin-right:10px;transition:color .2s var(--ease)}
.nk-drawer-sub:not(:last-child)::after{content:"";position:absolute;right:0;top:50%;width:1px;height:10px;margin-top:-5px;background:var(--line)}
.nk-drawer-sub:hover{color:var(--ink)}
.nk-drawer-soon{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--champagne-ink);line-height:1;position:relative;top:.15em}
html[lang=km] .nk-drawer-sub{font-family:var(--font-khmer-ui);font-size:13px;letter-spacing:0;line-height:1.6}
html[lang=km] .nk-drawer-soon{font-family:var(--font-khmer-ui);font-size:9.5px;letter-spacing:0}
html[lang=zh-Hans] .nk-drawer-sub{font-family:var(--font-sc-body);font-size:12.5px;letter-spacing:.04em}
html[lang=zh-Hans] .nk-drawer-soon{font-family:var(--font-sc-body);font-size:9.5px;letter-spacing:.04em}
.rail-nav[hidden]{display:none!important}
/* drawer subs: spacing only — separators would dangle at wrap points */
.nk-drawer-sub:not(:last-child)::after{content:none}
.nk-drawer-subs{gap:2px 20px}
.nk-drawer-sub{margin-right:0;padding-right:0}

/* ---------- v4.1 — logo mark only in header / landing bar / footers (drawer keeps the full lockup) ---------- */
.logo-mark{display:inline-flex;align-items:center;line-height:0;vertical-align:middle}
.logo-mark img{display:block;width:auto;max-width:none;height:30px}
.wordmark .logo-mark img{height:30px}
@media(min-width:768px){.wordmark .logo-mark img{height:34px}}
.pdp-topbar .logo-mark img{height:28px}
.footer-word .logo-mark img{height:clamp(56px,48px + 2vw,72px)}
.footer-wm .logo-mark img{height:40px}
.wordmark{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
/* v4.1 live order sheet */
.p-from{font-size:.78em;font-weight:400;color:var(--taupe);letter-spacing:.02em}
html[lang=km] .p-from{font-family:var(--font-khmer-ui)}
html[lang=zh-Hans] .p-from{font-family:var(--font-sc-body)}
.sheet-summary-total{border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
.sheet-delivery{font-variant-numeric:lining-nums tabular-nums}
.sheet-error{min-height:0;margin:8px 0 0;font-size:13px;line-height:1.6;color:#9B2C2C}
.sheet-error:empty{display:none}
html[lang=km] .sheet-error{font-family:var(--font-khmer-ui)}
.sheet-order-no{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--ink);margin:4px 0 8px}
html[lang=km] .sheet-order-no{font-family:var(--font-khmer-ui);letter-spacing:0}
.sheet-submit:disabled{opacity:.6;cursor:progress}
.field[hidden]{display:none}
.footer-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
@media(min-width:900px){.footer-columns{grid-template-columns:repeat(2,minmax(0,260px));justify-content:center;gap:48px}}
html .footer-lang button.btn[data-lang=km]{font-family:'Kantumruy Pro','Noto Serif Khmer',sans-serif;letter-spacing:0;text-transform:none}
html .footer-lang button.btn[data-lang=zh]{font-family:'Noto Serif SC',system-ui,sans-serif;letter-spacing:.02em;text-transform:none}
/* touch screens: no sticky hover inversion on black buttons after a tap */
@media (hover:none){.btn-black:hover{background:var(--ink);color:#fff}}
