/*
Theme Name: Oriental Zen
Theme URI: http://example.com/
Author: Trae
Description: Commerce-first storefront — Landyachtz structure, scholar goods.
Version: 2.0
*/

:root{
  --bg:#ffffff;
  --bg-2:#f4f4f2;
  --ink:#111111;
  --ink-2:#4a4a4a;
  --ink-3:#7a7a7a;
  --line:#e6e6e4;
  --seal:#b42318;
  --celadon:#2f6f66;
  --on-dark:#ffffff;
  --shell:1280px;
  --read:40rem;
  --announce-h:36px;
  --header-h:72px;
  --sans:"Outfit",system-ui,sans-serif;
  --display:"Cormorant Garamond","Noto Serif SC",Georgia,serif;
  --cn:"Noto Serif SC",serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  max-width:none;
  overflow-x:hidden;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
body.oz-commerce-home{
  background:
    radial-gradient(900px 420px at 8% -8%, rgba(47,111,102,.06), transparent 55%),
    radial-gradient(700px 360px at 100% 18%, rgba(180,35,24,.04), transparent 50%),
    #f7f6f2;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}

.site-shell{
  width:100%;
  max-width:var(--shell);
  margin:0 auto;
  padding:0 clamp(16px,3vw,40px);
}

.skip-link{
  position:absolute;left:-9999px;top:10px;z-index:99;
  background:var(--ink);color:var(--bg);padding:10px 14px;
}
.skip-link:focus{left:10px}

/* —— Announcement + header (Landyachtz bar) —— */
.announce{
  height:var(--announce-h);
  background:var(--bg-2);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;
  position:sticky;top:0;z-index:50;
}
.announce-inner{
  text-align:center;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.site-header{
  position:sticky;
  top:var(--announce-h);
  z-index:49;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.header-bar{
  min-height:var(--header-h);
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:20px;
  position:relative;
}

.brand{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--display);
  font-weight:500;
  letter-spacing:.06em;
}
.brand-mark,
.footer-brand-mark{
  position:relative;
  width:34px;height:34px;
  display:grid;place-items:center;
  font-family:var(--cn);
  font-size:16px;font-weight:500;
  color:#fff;
  background:var(--seal);
  border:0;
  box-shadow:none;
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.brand-mark:before,
.brand-mark:after,
.footer-brand-mark:before,
.footer-brand-mark:after{content:none;display:none}
.brand-mark-glyph{
  position:relative;z-index:1;
  line-height:1;
  text-shadow:none;
}
.brand:hover .brand-mark{transform:rotate(-8deg) scale(1.06)}
.brand-name{font-size:15px;text-transform:uppercase}

.site-nav{display:flex;justify-content:center}
.nav-menu{
  list-style:none;margin:0;padding:0;
  display:flex;align-items:center;gap:clamp(10px,1.4vw,22px);
  flex-wrap:nowrap;justify-content:center;
}
.nav-menu>li{position:relative}
.nav-menu a{
  font-size:12px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink);
}
.nav-menu a:hover{color:var(--seal)}
.nav-menu .current-menu-item>a,
.nav-menu .current-menu-ancestor>a{color:var(--seal)}
.nav-menu .sub-menu{
  list-style:none;margin:0;padding:10px 0;
  position:absolute;top:100%;left:50%;transform:translate(-50%,8px);
  min-width:180px;
  background:#fff;border:1px solid var(--line);
  box-shadow:0 16px 40px rgba(0,0,0,.08);
  opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;
  z-index:20;
}
.nav-menu>li:hover>.sub-menu,
.nav-menu>li:focus-within>.sub-menu{
  opacity:1;pointer-events:auto;transform:translate(-50%,0);
}
.nav-menu .sub-menu a{
  display:block;padding:10px 16px;letter-spacing:.1em;
}
.nav-menu .sub-menu a:hover{background:var(--bg-2)}

.header-actions{display:flex;align-items:center;gap:14px}
.oz-lang{
  display:inline-flex;align-items:center;gap:6px;
  margin-right:2px;
}
.oz-lang-item{
  font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);
}
.oz-lang-item.is-current{color:var(--ink)}
a.oz-lang-item:hover{color:var(--seal)}
.oz-lang-sep{color:var(--line);font-size:11px;user-select:none}
.header-search-toggle,
.header-cart{
  border:0;background:transparent;cursor:pointer;
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);
  padding:0;
}
.header-cart-count{
  display:inline-grid;place-items:center;
  min-width:18px;height:18px;margin-left:4px;
  border-radius:999px;background:var(--seal);color:#fff;
  font-size:10px;padding:0 5px;
}
.header-search-panel{
  border-top:1px solid var(--line);
  padding:14px 0;
  background:#fff;
}
.header-search-panel[hidden]{display:none}
.header-search-panel form{margin:0;display:flex;gap:8px}
.header-search-panel input[type="search"]{
  flex:1;border:1px solid var(--line);padding:12px 14px;font:inherit;
}
.header-search-panel button,
.header-search-panel input[type="submit"]{
  border:0;background:var(--ink);color:#fff;
  padding:12px 18px;text-transform:uppercase;letter-spacing:.12em;
  font-size:11px;font-weight:600;cursor:pointer;
}

.nav-toggle{
  /* Mobile menu toggle (tap target >= 44px) */
  --oz-bar-gap:7px;
  display:none;
  border:0;
  background:transparent;
  width:44px;
  height:44px;
  padding:0;
  cursor:pointer;
  position:relative;
}
.nav-toggle span{
  position:absolute;
  left:12px;
  right:12px;
  height:2px;
  background:var(--ink);
  top:50%;
  transform-origin:center;
  transition:transform .2s ease;
}
.nav-toggle span:first-child{transform:translateY(calc(-1 * var(--oz-bar-gap)))}
.nav-toggle span:last-child{transform:translateY(var(--oz-bar-gap))}
html.nav-open .nav-toggle span:first-child{transform:translateY(0) rotate(45deg)}
html.nav-open .nav-toggle span:last-child{transform:translateY(0) rotate(-45deg)}

/* —— Buttons —— */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 22px;
  font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  border:1.5px solid var(--ink);
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:var(--seal);border-color:var(--seal)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}

.ly-shop-now{
  display:inline-flex;align-items:center;justify-content:center;
  margin-top:10px;
  padding:10px 14px;
  border:1.5px solid var(--ink);
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  width:max-content;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.ly-shop-now:hover{background:var(--ink);color:#fff;transform:translateY(-1px)}
.ly-shop-now--on-dark{
  border-color:rgba(255,255,255,.7);color:#fff;
}
.ly-shop-now--on-dark:hover{background:#fff;color:var(--ink);border-color:#fff}

/* —— Hero：全宽 + 图上文字 —— */
.ly-hero{
  position:relative;
  width:100%;
  max-width:100%;
  background:#0e0e0e;
  padding:0;
  margin:0;
}
.ly-hero-link{
  position:relative;
  display:block;
  width:100%;
  max-width:none;
  margin:0;
  color:#fff;
  text-align:left;
}
.ly-hero-plate{
  position:relative;
  display:block;
  width:100%;
  overflow:hidden;
  background:#0e0e0e;
}
.ly-hero-img{
  width:100%;
  height:auto;
  display:block;
  /* 横幅裁切即可，不必露全图；文字压在图上才是主角 */
  aspect-ratio:21 / 9;
  min-height:clamp(320px,52vh,600px);
  object-fit:cover;
  object-position:center 55%;
  transform:scale(1.04);
  transition:transform 1.6s cubic-bezier(.22,1,.36,1);
}
.ly-hero.is-ready .ly-hero-img{
  transform:scale(1);
  transition:transform .85s cubic-bezier(.22,1,.36,1);
}
.ly-hero.is-ready:hover .ly-hero-img,
.ly-hero.is-ready.is-hover .ly-hero-img,
.ly-hero-link:hover .ly-hero-img{
  transform:scale(1.06);
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
.ly-hero-veil{
  position:absolute;inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 55% 50% at 50% 48%, rgba(0,0,0,.35), rgba(0,0,0,.55) 70%, rgba(0,0,0,.62));
  transition:opacity .7s ease;
}
.ly-hero.is-ready:hover .ly-hero-veil,
.ly-hero.is-ready.is-hover .ly-hero-veil,
.ly-hero-link:hover .ly-hero-veil{
  opacity:.86;
}
.ly-hero-copy{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  width:100%;
  max-width:none;
  margin:0;
  padding:clamp(28px,5vh,64px) clamp(20px,5vw,80px);
  box-sizing:border-box;
  opacity:1;
  transform:translateY(0);
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
.ly-hero.is-ready:hover .ly-hero-copy,
.ly-hero.is-ready.is-hover .ly-hero-copy,
.ly-hero-link:hover .ly-hero-copy{
  transform:translateY(-8px);
}
.ly-hero-title{
  margin:0;
  max-width:16ch;
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(40px,6.2vw,78px);
  line-height:1.05;
  letter-spacing:.02em;
  text-transform:none;
  color:#fff;
  text-shadow:0 2px 28px rgba(0,0,0,.35);
}
.ly-hero-lead{
  margin:16px 0 0;
  max-width:34ch;
  font-size:clamp(14px,1.4vw,17px);
  line-height:1.55;
  color:rgba(255,255,255,.88);
  text-shadow:0 1px 16px rgba(0,0,0,.45);
}
.ly-hero-meta{
  margin:28px 0 0;
  display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;
  font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.82);
}
.ly-hero-cta{
  padding-bottom:3px;
  border-bottom:1px solid rgba(255,255,255,.85);
  color:#fff;
}
@media (max-width:760px){
  .ly-hero-img{aspect-ratio:4 / 5;min-height:420px}
  .ly-hero-copy{padding:32px 20px}
  .ly-hero-title{font-size:clamp(36px,12vw,52px)}
}

/* —— Product rail —— */
.ly-rail{padding:clamp(40px,5vw,72px) 0 clamp(56px,7vw,88px);background:transparent}
.ly-rail-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;margin-bottom:clamp(24px,3vw,36px);
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.ly-section-title{
  margin:0;
  font-family:var(--display);
  font-size:clamp(26px,3.2vw,34px);
  font-weight:500;
  letter-spacing:.02em;
  text-transform:none;
}
.ly-rail-controls{display:flex;gap:8px}
.ly-rail-btn{
  width:42px;height:42px;border:1.5px solid var(--ink);
  background:#fff;cursor:pointer;font-size:22px;line-height:1;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.ly-rail-btn:hover{background:var(--ink);color:#fff;transform:translateY(-1px)}
.ly-rail-btn:active{transform:translateY(0)}
.ly-rail-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(240px,280px);
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  /* Use a minimum inset so the first card never touches the screen edge */
  --oz-rail-inset: max(
    22px,
    env(safe-area-inset-left),
    env(safe-area-inset-right),
    clamp(16px,3vw,calc((100vw - var(--shell)) / 2 + 40px))
  );
  padding-top:0;
  padding-bottom:0;
  padding-left:var(--oz-rail-inset);
  padding-right:var(--oz-rail-inset);
  /* Important: make scroll snap respect the inset (otherwise it snaps to the border edge) */
  scroll-padding-left:var(--oz-rail-inset);
  scroll-padding-right:var(--oz-rail-inset);
  scrollbar-width:none;
}
.ly-rail-track::-webkit-scrollbar{display:none}
.ly-rail-card{scroll-snap-align:start}
.ly-rail-media{
  display:block;background:var(--bg-2);aspect-ratio:4/5;overflow:hidden;
}
.ly-rail-media img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .45s ease;
}
.ly-rail-card:hover .ly-rail-media img{transform:scale(1.04)}
.ly-rail-name{
  margin:14px 0 4px;
  font-family:var(--display);
  font-size:18px;font-weight:500;line-height:1.25;
}
.ly-rail-name a:hover{color:var(--seal)}
.ly-rail-price{
  font-size:13px;color:var(--ink-2);letter-spacing:.04em;
}
.ly-empty{padding:40px;color:var(--ink-3)}

/* —— Campaign tiles —— */
.ly-campaigns{background:transparent;padding:clamp(24px,4vw,56px) 0 8px}
.ly-campaigns-head{display:flex;flex-direction:column;gap:10px;margin-bottom:clamp(24px,3vw,36px);padding-bottom:16px;border-bottom:1px solid var(--line)}
.ly-campaigns-sub{font-family:var(--display);font-style:italic;font-size:15px;color:var(--ink-2);margin:0;max-width:62ch}
/* 疏密：大小错落，避免四格等分的呆板 */
.ly-campaign-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:8px;
  padding:0 clamp(16px,3vw,40px) 8px;
  max-width:calc(var(--shell) + 80px);
  margin:0 auto;
}
.ly-campaign:nth-child(1){grid-column:span 4}
.ly-campaign:nth-child(2){grid-column:span 2}
.ly-campaign:nth-child(3){grid-column:span 2}
.ly-campaign:nth-child(4){grid-column:span 4}
.ly-campaign:nth-child(5){grid-column:span 2}
.ly-campaign:nth-child(6){grid-column:span 2}
.ly-campaign:nth-child(7){grid-column:span 2}

/* —— Era collections —— */
.ly-era-collections{padding:clamp(48px,6vw,80px) 0 clamp(56px,7vw,88px)}
.ly-era-collections-head{display:flex;flex-direction:column;gap:10px;margin-bottom:clamp(24px,3vw,36px);padding-bottom:16px;border-bottom:1px solid var(--line)}
.ly-era-collections-sub{font-family:var(--display);font-style:italic;font-size:15px;color:var(--ink-2);margin:0;max-width:62ch}

/* —— History era gate (Qin-Han entry) —— */
.ly-era-gate{position:relative;background:#0c0b0a;margin-top:clamp(24px,4vw,52px);scroll-margin-top:calc(var(--announce-h) + var(--header-h) + 46px)}
.ly-era-gate-link{display:block;position:relative;overflow:hidden;cursor:pointer}
.ly-era-gate-media{position:absolute;inset:0}
.ly-era-gate-img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.05) brightness(.96);transition:transform 1.4s cubic-bezier(.2,.6,.2,1)}
.ly-era-gate-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,7,5,.4) 0%,rgba(9,7,5,.54) 52%,rgba(9,7,5,.76) 100%)}
.ly-era-gate-link:hover .ly-era-gate-img{transform:scale(1.05)}
.ly-era-gate-stage{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:clamp(360px,52vh,560px)}
.ly-era-gate-copy{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;max-width:720px;padding:clamp(48px,7vw,88px) 0;color:var(--on-dark)}
.ly-era-gate-eyebrow{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.58)}
.ly-era-gate-title{font-family:var(--display);font-size:clamp(46px,8vw,100px);line-height:1;font-weight:400;letter-spacing:.01em;color:#fff;margin:0}
.ly-era-gate-caption{font-family:var(--display);font-style:italic;font-size:clamp(14px,1.6vw,18px);letter-spacing:.03em;color:rgba(255,255,255,.72);max-width:46ch}
.ly-era-gate-keywords{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45em;font-family:var(--cn);font-size:clamp(15px,1.8vw,22px);letter-spacing:.16em;color:rgba(255,255,255,.86);margin-top:6px}
.ly-glyph{white-space:nowrap}
.ly-glyph-sep{opacity:.5;font-family:var(--sans);font-size:.8em}
.ly-era-gate-cta{display:inline-flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-dark);border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:5px;transition:color .3s,border-color .3s;margin-top:8px}
.ly-era-gate-link:hover .ly-era-gate-cta{color:#e0bd8a;border-color:#e0bd8a}
@media (max-width:760px){
  .ly-era-gate-stage{min-height:340px}
  .ly-era-gate-copy{gap:12px;padding:48px 0}
  .ly-era-gate-title{font-size:clamp(40px,14vw,60px)}
  .ly-era-gate-keywords{font-size:14px;letter-spacing:.12em;gap:.35em}
  .ly-era-gate-cta{margin-top:4px}
}
.ly-campaign{
  min-height:clamp(280px,42vw,420px);
  position:relative;
  color:#fff;
  display:flex;align-items:flex-end;
  padding:28px;
  overflow:hidden;
  background:#1a1a1a;
}
.ly-campaign-img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.ly-campaign:hover .ly-campaign-img{transform:scale(1.04)}
.ly-campaign:after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(18,22,20,.78), rgba(18,22,20,.18) 55%, rgba(18,22,20,.28));
}
.ly-campaign-copy{
  position:relative;z-index:1;
  display:flex;flex-direction:column;gap:8px;max-width:36ch;
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.ly-campaign:hover .ly-campaign-copy{transform:translateY(-4px)}
.ly-campaign-kicker{
  font-family:var(--cn);font-size:13px;opacity:.9;
}
.ly-campaign-title{
  font-family:var(--display);
  font-size:clamp(28px,3.5vw,42px);
  font-weight:500;
  text-transform:none;
  letter-spacing:.01em;
  line-height:1.05;
}
.ly-campaign-desc{font-size:14px;line-height:1.45;opacity:.88}

/* —— About strip —— */
.ly-about-strip{
  padding:96px 0;
  background:
    radial-gradient(520px 240px at 50% 0%, rgba(180,35,24,.16), transparent 62%),
    #111111;
  color:#fff;
  text-align:center;
}
.ly-about-title{
  margin:0 0 14px;
  font-family:var(--display);
  font-size:clamp(28px,3.6vw,40px);
  font-weight:500;
  text-transform:none;
  letter-spacing:.02em;
}
.ly-about-copy{
  margin:0 auto 28px;
  max-width:36ch;
  color:rgba(255,255,255,.7);
  font-size:15px;line-height:1.75;
}
.ly-about-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.ly-about-strip .btn-primary{background:#fff;color:var(--ink);border-color:#fff}
.ly-about-strip .btn-primary:hover{background:var(--seal);border-color:var(--seal);color:#fff}
.ly-about-strip .btn-ghost{border-color:rgba(255,255,255,.5);color:#fff}
.ly-about-strip .btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}

/* —— Footer —— */
.site-footer{
  background:#0c0c0c;
  color:rgba(255,255,255,.82);
  padding:56px 0 28px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:32px;
}
.footer-brand-mark{
  margin-bottom:12px;
}
.footer-brand-name{
  font-family:var(--display);font-weight:500;letter-spacing:.1em;
  text-transform:uppercase;margin-bottom:10px;color:#fff;
}
.footer-desc{margin:0;font-size:13px;line-height:1.6;color:rgba(255,255,255,.62);max-width:36ch}
.footer-heading{
  margin:0 0 14px;
  font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff;
}
.footer-list{list-style:none;margin:0;padding:0}
.footer-list li{margin:0 0 10px}
.footer-list a{font-size:13px;color:rgba(255,255,255,.68)}
.footer-list a:hover{color:#fff}
.footer-bottom{
  margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-size:12px;color:rgba(255,255,255,.5);letter-spacing:.06em;
}

/* —— Journal：文化追溯 / 生活方式沉浸 —— 给读者走进另一种日常的感觉 —— */
body.oz-journal-shell{
  --journal-bg:#f3efe9;
  --journal-ink:#2a2624;
  --journal-mute:#6b645c;
  --journal-line:#e2dbd2;
  --journal-seal:#8f3f3c;
  --journal-orchid:#9a5f7a;
  --journal-celadon:#4f6b62;
  --journal-danxia:#c45c48;
  --journal-violet:#5c4570;
  background:
    radial-gradient(920px 500px at 90% -8%, rgba(143,106,124,.12), transparent 58%),
    radial-gradient(760px 440px at 2% 16%, rgba(95,115,108,.08), transparent 55%),
    radial-gradient(600px 380px at 50% 100%, rgba(176,106,88,.08), transparent 58%),
    var(--journal-bg);
  color:var(--journal-ink);
}
body.oz-journal-shell .announce{display:none}

.journal-header{
  position:sticky;top:0;z-index:40;
  background:rgba(243,239,233,.86);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(226,219,210,.7);
}
.oz-journal-page{
  position:relative;
  padding:0;
  overflow:hidden;
}
.journal-header-bar{
  min-height:56px;
  display:flex;align-items:center;
  gap:16px;
}
.journal-brand{
  font-family:var(--display);
  font-size:18px;
  font-weight:500;
  letter-spacing:.06em;
  color:var(--journal-ink);
  transition:color .2s ease;
}
.journal-brand:hover{color:var(--journal-violet)}

.journal-footer{padding:40px 0 56px;background:transparent}
.journal-footer-copy{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--journal-mute);
}

/* —— Banner：书房图（琴在底部，构图必须靠下） —— */
.journal-portal,
.journal-read-figure{
  position:relative;
  overflow:hidden;
  background:#ebe4d8;
}
.journal-portal{
  z-index:1;
  /* 接近原图 1920×621，避免 cover 上下裁切吃掉古琴 */
  height:clamp(220px, calc(100vw * 621 / 1920), 520px);
}
.journal-portal-media,
.journal-read-figure-media{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center 82%;
}
.journal-portal-media{background-image:var(--journal-portal-img)}
.journal-read-figure-media{
  background-image:var(--journal-figure-img);
  background-color:#e8e0d6;
}
.journal-portal-media:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:12%;
  background:linear-gradient(to top, var(--journal-bg), transparent);
  pointer-events:none;
}

.journal-stage--list{
  position:relative;
  z-index:1;
  width:100%;
  max-width:42rem;
  margin:0 auto;
  min-height:0;
  padding:clamp(28px,4vw,48px) clamp(20px,4vw,40px) 88px;
  display:block;
}

/* —— 单篇：居中阅读栏 + 文内 banner —— */
.journal-read{
  position:relative;
  z-index:1;
  width:100%;
  max-width:42rem;
  margin:0 auto;
  padding:clamp(40px,6vw,72px) clamp(20px,4vw,40px) 88px;
}
.journal-read-head{
  margin:0 0 clamp(28px,4vw,40px);
}
.journal-read-figure{
  margin:0 0 clamp(32px,5vw,48px);
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  height:clamp(200px, calc(100vw * 621 / 1920), 440px);
}

.journal-mast{
  margin:0 0 clamp(28px,4vw,40px);
  max-width:40rem;
}
.journal-mast-kicker{
  margin:0 0 12px;
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--journal-orchid);
}
.journal-mast-title{
  margin:0;
  font-family:var(--display);
  font-size:clamp(34px,5.2vw,48px);
  font-weight:500;
  line-height:1.12;
  letter-spacing:.02em;
  color:var(--journal-ink);
}
.journal-mast-title--essay{
  font-size:clamp(28px,4.2vw,40px);
  line-height:1.22;
  max-width:16em;
}
.journal-mast-lead{
  margin:16px 0 0;
  max-width:44ch;
  font-size:16px;
  line-height:1.7;
  color:var(--journal-mute);
}
.journal-silk-rule{
  display:block;
  width:min(220px,56%);
  height:2px;
  margin:22px 0 0;
  background:linear-gradient(
    90deg,
    var(--journal-violet) 0%,
    var(--journal-orchid) 28%,
    var(--journal-celadon) 58%,
    var(--journal-danxia) 82%,
    transparent 100%
  );
  opacity:.75;
}
.journal-paths{
  list-style:none;
  margin:22px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px 28px;
}
.journal-paths li{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--journal-ink);
  opacity:.55;
  position:relative;
}
.journal-paths li:not(:last-child):after{
  content:"";
  position:absolute;
  right:-16px;top:50%;
  width:4px;height:4px;
  border-radius:50%;
  background:var(--journal-danxia);
  opacity:.45;
  transform:translateY(-50%);
}

.journal-list-label{
  margin:0 0 8px;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--journal-mute);
}

.journal-list{display:grid;gap:0}
.journal-entry{
  border-top:1px solid var(--journal-line);
}
.journal-entry:first-child{border-top-color:transparent}
.journal-entry-link{
  display:grid;
  grid-template-columns:7.5rem minmax(0,1fr);
  gap:16px 24px;
  align-items:start;
  padding:clamp(20px,2.8vw,28px) 0;
  position:relative;
  transition:opacity .25s ease;
}
.journal-entry-link:before{
  content:"";
  position:absolute;
  left:-12px;top:50%;
  width:2px;height:0;
  border-radius:1px;
  background:linear-gradient(to bottom, var(--journal-violet), var(--journal-danxia));
  transform:translateY(-50%);
  transition:height .28s ease;
  opacity:.7;
}
.journal-entry-link:hover{opacity:.72}
.journal-entry-link:hover:before{height:40%}
.journal-entry-meta{
  display:block;
  margin:6px 0 0;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--journal-orchid);
  white-space:nowrap;
}
.journal-entry-body{min-width:0}
.journal-entry-title{
  margin:0;
  font-family:var(--display);
  font-size:clamp(20px,2.4vw,26px);
  font-weight:500;
  line-height:1.35;
  letter-spacing:.01em;
  color:var(--journal-ink);
}
.journal-entry--lead .journal-entry-title{
  font-size:clamp(24px,3vw,32px);
  line-height:1.28;
}
.journal-entry-excerpt{
  margin:10px 0 0;
  max-width:48ch;
  font-size:14px;
  line-height:1.7;
  color:var(--journal-mute);
}
.journal-entry--lead .journal-entry-excerpt{
  font-size:15px;
  max-width:52ch;
}
.journal-empty{padding:32px 0;color:var(--journal-mute);font-size:15px}
.journal-pagination{margin-top:24px}

.journal-prose{
  font-size:17px;
  line-height:1.9;
  color:var(--journal-mute);
  max-width:34em;
}
.journal-prose p{margin:0 0 1.4em}
.journal-prose blockquote{
  margin:2.6em auto;
  padding:0;
  max-width:30ch;
  border:0;
  background:none;
  text-align:center;
  font-family:var(--display);
  font-size:1.15em;
  color:var(--journal-violet);
  line-height:1.7;
  font-style:normal;
  letter-spacing:.01em;
}

.journal-essay-foot{
  margin-top:clamp(48px,8vw,72px);
  padding-top:28px;
  border-top:1px solid var(--journal-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.journal-back,
.journal-essay-nav a{
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--journal-mute);
  transition:color .2s ease;
}
.journal-back:hover,
.journal-essay-nav a:hover{color:var(--journal-violet)}
.journal-essay-nav{display:flex;gap:20px;flex-wrap:wrap}

@media (max-width:720px){
  .journal-portal{height:clamp(200px, 36vw, 280px)}
  .journal-read-figure{height:clamp(180px, 34vw, 260px);min-height:180px}
  .journal-entry-link{
    grid-template-columns:1fr;
    gap:8px;
  }
  .journal-entry-link:before{display:none}
  .journal-entry-meta{margin:0}
}

/* legacy inner (philosophy still uses) —— */
.oz-inner{padding:64px 0 96px;background:var(--bg)}
.oz-inner-shell{max-width:var(--read)}
.oz-inner-kicker{
  margin:0 0 12px;
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);
  font-family:var(--cn);
}
.oz-inner-title{
  margin:0 0 16px;
  font-family:var(--display);
  font-size:clamp(38px,6vw,56px);
  font-weight:500;line-height:1.05;letter-spacing:.01em;
  text-transform:none;
}
.oz-inner-lead{margin:0;color:var(--ink-2);font-size:17px;line-height:1.7;max-width:38ch}
.oz-inner-rule{
  display:flex;align-items:center;gap:16px;margin:32px 0;color:var(--ink-3);
}
.oz-inner-rule:before,.oz-inner-rule:after{content:"";flex:1;height:1px;background:var(--line)}
.oz-inner-rule span{
  width:34px;height:34px;border:1px solid var(--ink);
  display:grid;place-items:center;font-family:var(--cn);
}
.oz-inner-content{font-size:17px;line-height:1.85;color:var(--ink-2)}
.oz-inner-content p{margin:0 0 18px}
.oz-inner-content blockquote{
  margin:36px 0;padding:0;border:0;text-align:center;
  font-family:var(--cn);font-size:clamp(20px,2.4vw,26px);color:var(--ink);line-height:1.6;
}
.oz-inner-foot{
  margin-top:40px;padding-top:24px;border-top:1px solid var(--line);
  display:flex;gap:12px;flex-wrap:wrap;
}
.archive-pagination{margin-top:36px}
.archive-pagination .nav-links{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.archive-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 14px;
  border:1px solid var(--line);font-size:13px;line-height:1;
  color:var(--ink);background:#fff;
}
.archive-pagination .page-numbers.prev,
.archive-pagination .page-numbers.next{
  min-width:auto;letter-spacing:.04em;
}
.archive-pagination .page-numbers.current{
  background:var(--ink);color:#fff;border-color:var(--ink);
}
.archive-pagination .page-numbers:hover{
  border-color:var(--ink);
}

/* —— WooCommerce pagination —— */
.woocommerce nav.woocommerce-pagination{
  margin:40px 0 0;
  text-align:left;
  clear:both;
}
.woocommerce nav.woocommerce-pagination ul{
  display:inline-flex!important;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:0!important;
  padding:0!important;
  border:0!important;
  list-style:none;
}
.woocommerce nav.woocommerce-pagination ul li{
  margin:0!important;
  padding:0!important;
  border:0!important;
  float:none!important;
  overflow:visible;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:42px;
  padding:0 14px!important;
  margin:0!important;
  border:1.5px solid var(--line)!important;
  background:#fff!important;
  color:var(--ink)!important;
  font-size:13px!important;
  font-weight:500!important;
  line-height:1!important;
  float:none!important;
  text-decoration:none!important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus{
  border-color:var(--ink)!important;
  background:#fff!important;
  color:var(--ink)!important;
}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--ink)!important;
  border-color:var(--ink)!important;
  color:#fff!important;
}

/* —— Generic pages / essays (NOT body.page — WP adds .page on <body>) —— */
article.page,
article.essay,
.site-main > .page,
.oz-inner-shell{
  max-width:var(--read);
}
article.page,
article.essay{
  margin:0 auto;
  padding:64px clamp(16px,3vw,40px) 96px;
}
.page-title,.essay-title{
  font-family:var(--display);font-weight:500;font-size:clamp(34px,5vw,48px);
  margin:0;letter-spacing:.01em;text-transform:none;line-height:1.08;
}
.page-head,.essay-head{margin-bottom:28px}
.entry-content{font-size:16px;line-height:1.8;color:var(--ink-2)}
.entry-content p{margin:0 0 16px}
.entry-content h2,.entry-content h3{
  font-family:var(--display);color:var(--ink);margin:36px 0 12px;font-weight:500;text-transform:none;
}
.entry-content a{text-decoration:underline;text-underline-offset:3px}

/* —— WooCommerce shop —— */
body.woocommerce-shop,body.woocommerce-page{--shell:1440px}
body.woocommerce .site-main,
body.woocommerce-page .site-main{
  padding-bottom:clamp(56px,8vw,96px);
}
.oz-shop-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  padding:36px 0 20px;border-bottom:1px solid var(--line);margin-bottom:28px;
}
.oz-shop-title{
  margin:0;font-family:var(--display);font-size:clamp(30px,4vw,42px);
  font-weight:500;text-transform:none;letter-spacing:.01em;
}
.oz-shop-title-suffix{
  display:inline-flex;align-items:baseline;gap:10px;
  margin-left:12px;
  font-size:14px;
  font-family:var(--sans);
  color:var(--ink-3);
  letter-spacing:.02em;
}
.oz-shop-title-sep{color:var(--line)}
.oz-shop-title-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.oz-shop-title-link:hover{color:var(--ink);border-color:currentColor}
.oz-shop-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:36px}
.oz-shop-layout--no-filters{grid-template-columns:1fr}
.oz-shop-filters .widget{border:1px solid var(--line);padding:16px;margin-bottom:14px}
.oz-shop-filters .widget-title{
  margin:0 0 10px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
}
.oz-shop-filters ul{list-style:none;margin:0;padding:0}
.oz-shop-filters li{padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.oz-shop-filters li:first-child{border-top:0;padding-top:0}
.oz-shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}
.woocommerce-result-count{margin:0;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.woocommerce-ordering select{
  border:1px solid var(--line);
  padding:10px 36px 10px 12px;
  background:#fff;
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23111111' d='M1.4.6 6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:12px 8px;
  min-width:220px;
  max-width:100%;
  cursor:pointer;
}
.oz-shop-search{margin:0 0 28px}
.oz-shop-search-form{
  display:flex;align-items:center;
  border:1px solid var(--line);
  background:#fff;
  padding-left:16px;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.oz-shop-search-form:focus-within{
  border-color:var(--ink);
  box-shadow:0 0 0 3px rgba(17,17,17,.04);
}
.oz-shop-search-icon{flex:none;color:var(--ink-3)}
.oz-shop-search-input{
  flex:1;min-width:0;
  border:0;outline:0;background:transparent;
  padding:14px 12px;
  font:inherit;font-size:15px;color:var(--ink);
  border-radius:0;
}
.oz-shop-search-input::placeholder{color:var(--ink-3)}
.oz-shop-search-input::-webkit-search-cancel-button,
.oz-shop-search-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
.oz-shop-search-clear{
  flex:none;border:0;background:transparent;cursor:pointer;
  width:40px;height:40px;display:grid;place-items:center;
  color:var(--ink-3);
}
.oz-shop-search-clear:hover{color:var(--ink)}
.oz-shop-search-clear[hidden]{display:none}
.oz-shop-search-submit{
  flex:none;border:0;background:var(--ink);color:#fff;
  align-self:stretch;padding:0 26px;
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;transition:background .2s ease;
}
.oz-shop-search-submit:hover{background:var(--seal)}
.oz-shop-search-suggest{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin-top:12px;
}
.oz-shop-search-suggest-label{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
}
.oz-shop-search-chip{
  border:1px solid var(--line);background:#fff;color:var(--ink-2);
  padding:6px 12px;border-radius:999px;cursor:pointer;
  font-size:12px;
  transition:border-color .2s ease, color .2s ease;
}
.oz-shop-search-chip:hover{border-color:var(--ink);color:var(--ink)}
.oz-shop-search-meta{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:16px 0 0;font-size:13px;color:var(--ink-2);
}
.oz-shop-search-reset{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  color:var(--seal);border-bottom:1px solid currentColor;padding-bottom:1px;
}
.oz-shop-search-reset:hover{color:var(--ink)}
@media (max-width:640px){
  .oz-shop-search-form{padding-left:12px}
  .oz-shop-search-input{padding:13px 10px;font-size:14px}
  .oz-shop-search-submit{padding:0 16px}
}
.woocommerce ul.products{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;
}
.woocommerce ul.products:before,.woocommerce ul.products:after{content:none;display:none}
.woocommerce ul.products li.product{margin:0;width:auto;float:none;clear:none}
.woocommerce ul.products[class*="columns-"] li.product{width:auto;float:none;margin:0}
.woocommerce ul.products li.product img{
  width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--bg-2);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--display);font-size:17px;font-weight:500;margin:12px 0 4px;
  text-transform:none;letter-spacing:0;
}
.woocommerce ul.products li.product .price{font-size:13px;color:var(--ink-2);margin:0}
.woocommerce ul.products li.product .button{
  margin-top:10px;display:inline-flex;padding:10px 14px;
  border:1.5px solid var(--ink)!important;
  background:transparent!important;
  color:var(--ink)!important;
  width:auto!important;
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.woocommerce ul.products li.product .button:hover{
  background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important;
}

/* —— Single product / Woo defaults override —— */
.oz-single-product{
  padding-top:8px;
}
.woocommerce div.product{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(28px,4vw,56px);
  align-items:start;
  padding:28px 0 48px;
  max-width:100%;
}
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product div.images{
  margin:0;width:100%!important;float:none!important;max-width:100%;
}
.woocommerce div.product div.summary{
  margin:0;width:100%!important;float:none!important;max-width:100%;
}
.woocommerce div.product .product_title{
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(30px,4vw,44px);
  letter-spacing:.01em;
  text-transform:none;
  margin:0 0 12px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--ink)!important;
  font-size:18px;
  font-weight:600;
  margin:0 0 16px;
}
.woocommerce div.product .woocommerce-product-details__short-description{
  color:var(--ink-2);font-size:15px;line-height:1.7;margin:0 0 22px;
}
.woocommerce div.product form.cart{
  display:flex;align-items:center;gap:12px;margin:0 0 18px;flex-wrap:wrap;
}
.woocommerce div.product form.cart .quantity .qty{
  width:72px;height:48px;border:1.5px solid var(--ink);
  text-align:center;font:inherit;
}
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt{
  background:var(--ink)!important;
  color:#fff!important;
  border:1.5px solid var(--ink)!important;
  border-radius:0!important;
  padding:14px 22px!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  height:auto!important;
  line-height:1.2!important;
  box-shadow:none!important;
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover{
  background:var(--seal)!important;
  border-color:var(--seal)!important;
  color:#fff!important;
}
.woocommerce div.product .product_meta{
  font-size:12px;letter-spacing:.08em;color:var(--ink-3);border-top:1px solid var(--line);padding-top:16px;
}
.woocommerce div.product .woocommerce-tabs{grid-column:1/-1;margin-top:24px}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  list-style:none;margin:0;padding:0;display:flex;gap:0;border-bottom:1px solid var(--line);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  border:0!important;background:transparent!important;margin:0;padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block;padding:14px 18px;font-size:12px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--ink)}
.woocommerce div.product .woocommerce-tabs .panel{padding:22px 0;color:var(--ink-2)}

/* —— Reviews / comment form —— */
.woocommerce #reviews{max-width:40rem}
.woocommerce #reviews .woocommerce-Reviews-title{
  font-family:var(--display);font-weight:500;font-size:clamp(26px,3vw,34px);
  margin:0 0 16px;text-transform:none;letter-spacing:.01em;color:var(--ink);
}
.woocommerce #reviews .woocommerce-noreviews{margin:0 0 20px;color:var(--ink-2)}
.woocommerce #review_form_wrapper{margin-top:8px}
.woocommerce #review_form #respond{margin:0;padding:0;border:0;background:transparent}
.woocommerce #review_form #respond .comment-reply-title{
  font-family:var(--display);font-weight:500;font-size:22px;
  margin:0 0 10px;color:var(--ink);text-transform:none;
}
.woocommerce #review_form #respond .comment-notes,
.woocommerce #review_form #respond .comment-form-cookies-consent{
  margin:0 0 18px;font-size:13px;line-height:1.55;color:var(--ink-3);
}
.woocommerce #review_form #respond .comment-form-cookies-consent{
  display:flex;align-items:flex-start;gap:10px;
}
.woocommerce #review_form #respond .comment-form-cookies-consent input{
  margin:3px 0 0;flex:0 0 auto;
}
.woocommerce #review_form #respond p{
  margin:0 0 18px;float:none!important;width:100%!important;
  clear:both;
}
.woocommerce #review_form #respond label{
  display:block;margin:0 0 8px;
  font-size:12px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink);
}
.woocommerce #review_form #respond .comment-form-rating{
  margin-bottom:22px;
}
/* 星级：沿用 Woo 的 text-indent 藏文案，只改颜色尺寸 */
.woocommerce #review_form #respond p.stars{
  margin:6px 0 0;padding:0;line-height:1;
}
.woocommerce #review_form #respond p.stars a{
  position:relative;
  display:inline-block;
  width:1em;height:1em;
  margin:0 6px 0 0;
  font-size:22px;
  text-indent:-999em;
  overflow:hidden;
  border:0!important;
  text-decoration:none;
  color:var(--ink);
}
.woocommerce #review_form #respond p.stars a::before{
  display:block;
  position:absolute;
  top:0;left:0;
  width:1em;height:1em;
  line-height:1;
  font-family:WooCommerce;
  content:"\e021";
  text-indent:0;
  color:var(--ink);
}
.woocommerce #review_form #respond p.stars:hover a::before{
  content:"\e020";
  color:var(--seal);
}
.woocommerce #review_form #respond p.stars a:hover ~ a::before{
  content:"\e021";
  color:var(--ink);
}
.woocommerce #review_form #respond p.stars.selected a.active::before,
.woocommerce #review_form #respond p.stars.selected a:hover::before{
  content:"\e020";
  color:var(--seal);
}
.woocommerce #review_form #respond p.stars.selected a.active ~ a::before{
  content:"\e021";
  color:var(--ink);
}
.woocommerce #review_form #respond textarea,
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"]{
  width:100%;max-width:100%;
  box-sizing:border-box;
  border:1px solid var(--line);
  background:#fff;
  padding:12px 14px;
  font:inherit;font-size:15px;color:var(--ink);
  border-radius:0;
}
.woocommerce #review_form #respond textarea{
  min-height:140px;resize:vertical;line-height:1.6;
}
.woocommerce #review_form #respond .comment-form-author,
.woocommerce #review_form #respond .comment-form-email{
  float:none!important;width:100%!important;margin-right:0!important;
}
.woocommerce #review_form #respond .form-submit{margin:8px 0 0}
.woocommerce #review_form #respond .form-submit input{
  width:auto!important;
}
.woocommerce #reviews .commentlist{
  list-style:none;margin:0 0 36px;padding:0;
}
.woocommerce #reviews .commentlist li{
  margin:0 0 22px;padding:0 0 22px;border-bottom:1px solid var(--line);
}
.woocommerce #reviews .comment-text{margin:0}
.woocommerce #reviews #comments ol.commentlist li .comment-text{margin:0!important}
.woocommerce #reviews .meta{font-size:12px;letter-spacing:.06em;color:var(--ink-3);margin:0 0 8px}
.woocommerce #reviews .description{font-size:15px;line-height:1.7;color:var(--ink-2)}
@media (min-width:720px){
  .woocommerce #review_form #respond .comment-form-author,
  .woocommerce #review_form #respond .comment-form-email{
    display:inline-block;vertical-align:top;
    width:calc(50% - 10px)!important;
  }
  .woocommerce #review_form #respond .comment-form-author{margin-right:20px!important}
}
.woocommerce div.product div.images img,
.woocommerce-product-gallery__image img{
  width:100%;height:auto;object-fit:contain;background:var(--bg-2);
}
.woocommerce ul.products li.product .woocommerce-placeholder,
.woocommerce-product-gallery__image--placeholder img{
  background:var(--bg-2)!important;
}
.related.products,
.upsells.products{grid-column:1/-1;margin-top:40px;padding-top:28px;border-top:1px solid var(--line)}
.related.products>h2,
.upsells.products>h2{
  font-family:var(--display);font-size:24px;font-weight:500;text-transform:none;letter-spacing:.01em;margin:0 0 18px;
}
@media (max-width:900px){
  .woocommerce div.product{grid-template-columns:minmax(0,1fr)}
  .woocommerce div.product div.summary,
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product div.images{
    min-width:0;
    width:100%;
    max-width:100%!important;
    overflow:hidden;
  }
}
.woocommerce-breadcrumb{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:18px 0 8px}
.related.products ul.products,
.upsells.products ul.products{
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
}

@media (max-width:1100px){
  .woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  /* Ensure the action cluster stays on the far right on mobile */
  .header-actions{justify-self:end}
  .nav-toggle{display:inline-block}
  .site-nav{
    position:absolute;left:0;right:0;top:100%;
    background:#fff;border-bottom:1px solid var(--line);
    opacity:0;pointer-events:none;transform:translateY(-6px);
    transition:opacity .2s ease,transform .2s ease;
  }
  html.nav-open .site-nav{opacity:1;pointer-events:auto;transform:none}
  .nav-menu{
    flex-direction:column;align-items:flex-start;
    padding:18px clamp(16px,3vw,40px) 24px;gap:14px;
  }
  .nav-menu .sub-menu{
    position:static;transform:none;opacity:1;pointer-events:auto;
    box-shadow:none;border:0;padding:8px 0 0 12px;min-width:0;
  }
  .ly-campaign-grid{grid-template-columns:1fr;padding:0 16px}
  .ly-campaign:nth-child(n){grid-column:auto}
  .oz-shop-layout{grid-template-columns:1fr}
  .header-search-toggle{display:none}
}
@media (max-width:640px){
  .woocommerce ul.products{grid-template-columns:1fr 1fr;gap:14px}
  .footer-grid{grid-template-columns:1fr}
  .ly-rail-track{grid-auto-columns:minmax(200px,72vw)}
}

/* —— Motion: scroll reveal —— */
.oz-reveal{
    opacity:0;
  transform:translateY(28px);
  transition:
    opacity .85s cubic-bezier(.22,1,.36,1),
    transform .85s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--oz-delay,0ms);
  will-change:opacity,transform;
}
.oz-reveal.is-in{
    opacity:1;
    transform:translateY(0);
}

/* —— Contact page —— */
.oz-contact-body{display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.oz-contact-mail-btn{padding:16px 32px;font-size:13px;letter-spacing:.18em}
.oz-contact-email{margin:0;display:flex;flex-direction:column;gap:6px;font-size:15px;color:var(--ink-2)}
.oz-contact-email-label{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.oz-contact-email a{border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .2s ease}
.oz-contact-email a:hover{border-color:var(--ink)}
@media (max-width:640px){
  .oz-contact-mail-btn{width:100%}
}
.ly-campaign.oz-reveal{transform:translateY(36px)}
.ly-campaign.oz-reveal.is-in{transform:translateY(0)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .oz-reveal,
  .ly-hero-plate,
  .ly-hero-img,
  .ly-hero-copy,
  .ly-hero-veil{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  .ly-hero.is-ready:hover .ly-hero-img,
  .ly-hero.is-ready.is-hover .ly-hero-img,
  .ly-hero.is-ready:hover .ly-hero-copy,
  .ly-hero.is-ready.is-hover .ly-hero-copy{
    transform:none!important;
  }
  .ly-shop-now:hover,
  .ly-rail-btn:hover,
  .brand:hover .brand-mark,
  .ly-campaign:hover .ly-campaign-copy{
    transform:none!important;
  }
}

/* Kill leftover TranslatePress floater if plugin still injects it */
.trp-floating-switcher,
.trp-language-switcher.trp-floating-switcher,
#trp-floater-ls{
  display:none!important;
}
