/* =====================================================
   YUSO — editorial / help / legal pages
   Loaded only by faq · track · policies · ingredients ·
   journal · 404. Depends on style.css + theme-lumiere.css.
   ===================================================== */

/* ---------- shared two-column shell ---------- */
.legal-layout{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:72px;
  padding-block:74px 110px;
  align-items:start;
}
.legal-nav{
  position:sticky; top:110px;
  display:flex; flex-direction:column; gap:2px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--cream-2);
}
.legal-nav h5{
  font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin:0 0 12px;
}
.legal-nav a{
  font-size:12.5px; color:var(--ink); padding:9px 0;
  border-bottom:1px solid rgba(0,0,0,.045);
  transition:color .25s var(--ease);
}
.legal-nav a:last-child{ border-bottom:0; }
.legal-nav a:hover{ color:var(--green); }
.legal-nav a.on{ color:var(--green); }

.legal-body{ max-width:720px; }
.legal-body section{ padding-bottom:56px; scroll-margin-top:110px; }
.legal-body section + section{ border-top:1px solid var(--line-soft); padding-top:44px; }
.legal-body .eyebrow{ margin-bottom:14px; }
.legal-body h2{ font-size:clamp(24px,2.4vw,32px); font-weight:500; letter-spacing:-.01em; margin-bottom:18px; }
.legal-body h3{ font-size:15px; font-weight:600; margin:26px 0 10px; color:var(--ink); }
.legal-body p{ font-size:14px; line-height:1.95; color:var(--ink-soft); margin-bottom:14px; }
.legal-body p:last-child{ margin-bottom:0; }
.legal-body ul{ margin:6px 0 16px; padding-left:0; list-style:none; }
.legal-body li{
  position:relative; padding-left:20px; margin-bottom:10px;
  font-size:14px; line-height:1.9; color:var(--ink-soft);
}
.legal-body li::before{
  content:""; position:absolute; left:2px; top:.72em;
  width:6px; height:6px; border-radius:50%; background:var(--sage);
}
.legal-body strong{ color:var(--ink); font-weight:600; }

.legal-meta{
  display:inline-flex; gap:10px; flex-wrap:wrap;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
}
.legal-callout{
  margin:22px 0;
  padding:20px 22px;
  border-left:3px solid var(--green);
  border-radius:0 var(--r-md) var(--r-md) 0;
  background:var(--cream-2);
  font-size:13.5px; line-height:1.85; color:var(--ink-soft);
}
.legal-callout b{ color:var(--ink); }

/* ---------- FAQ ---------- */
.faq-list .acc-item{ border-color:var(--line); }
.faq-list .acc-btn{ font-size:14.5px; font-weight:500; }
.faq-list .inner{ font-size:13.8px; line-height:1.9; color:var(--ink-soft); }
.faq-group + .faq-group{ margin-top:44px; }
.faq-group h3{
  font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin-bottom:16px; font-weight:500;
}

.contact-grid{
  display:grid; grid-template-columns:minmax(0,1fr) 300px;
  gap:40px; align-items:start;
}
.contact-card{
  padding:26px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--cream-2);
}
.contact-card h5{
  font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin-bottom:12px;
}
.contact-card p{ font-size:13px; line-height:1.9; color:var(--ink-soft); margin-bottom:4px; }
.contact-card a{ color:var(--ink); border-bottom:1px solid var(--line); }
.contact-card a:hover{ color:var(--green); border-color:var(--green); }
.contact-form{ display:grid; gap:16px; }
.contact-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label{
  display:block; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin-bottom:8px;
}
.contact-form input, .contact-form textarea, .contact-form select{
  width:100%; border:1px solid var(--line); border-radius:var(--r-md);
  background:#fff; padding:13px 15px;
  font-family:var(--sans); font-size:13.5px; color:var(--ink);
}
.contact-form textarea{ min-height:130px; resize:vertical; }

/* ---------- order tracking ---------- */
.track-wrap{ max-width:760px; margin:0 auto; padding-block:70px 110px; }
.track-card{
  padding:34px 36px;
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  background:#fff;
  box-shadow:var(--sh-2);
}
.track-form{ display:grid; grid-template-columns:1fr 1fr auto; gap:14px; align-items:end; }
.track-form label{
  display:block; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin-bottom:8px;
}
.track-form input{
  width:100%; border:1px solid var(--line); border-radius:var(--r-md);
  padding:13px 15px; font-family:var(--sans); font-size:13.5px; color:var(--ink);
}
.track-result{ margin-top:32px; }
.track-result .meta-row{
  display:flex; flex-wrap:wrap; gap:26px; justify-content:space-between;
  padding-bottom:22px; border-bottom:1px solid var(--line-soft); margin-bottom:26px;
}
.track-result .meta-row span{
  display:block; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:6px;
}
.track-result .meta-row b{ font-size:13.5px; font-weight:500; color:var(--ink); }

.timeline{ position:relative; padding-left:26px; }
.timeline::before{
  content:""; position:absolute; left:5px; top:6px; bottom:26px;
  width:1px; background:var(--line);
}
.tl-item{ position:relative; padding-bottom:26px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{
  content:""; position:absolute; left:-26px; top:5px;
  width:11px; height:11px; border-radius:50%;
  background:#fff; border:1.5px solid var(--line);
}
.tl-item.done::before{ background:var(--green); border-color:var(--green); }
.tl-item.now::before{ background:#fff; border-color:var(--green); box-shadow:0 0 0 4px rgba(124,58,237,.12); }
.tl-item b{ display:block; font-size:13.5px; font-weight:500; color:var(--ink); margin-bottom:4px; }
.tl-item span{ font-size:12px; color:var(--muted); }
.track-empty{ margin-top:28px; font-size:13px; line-height:1.9; color:var(--muted); }

/* ---------- ingredients ---------- */
.ing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:34px; }
.ing-card{
  padding:26px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--cream-2);
}
.ing-card .n{ font-size:10px; letter-spacing:.2em; color:var(--muted); }
.ing-card h4{ font-size:15px; font-weight:600; margin:10px 0 8px; color:var(--ink); }
.ing-card p{ font-size:12.8px; line-height:1.85; color:var(--ink-soft); }

.ing-table{ width:100%; border-collapse:collapse; margin-top:26px; }
.ing-table th, .ing-table td{
  text-align:left; padding:16px 14px; border-bottom:1px solid var(--line-soft);
  font-size:13px; vertical-align:top;
}
.ing-table th{
  font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); font-weight:500; border-bottom:1px solid var(--line);
}
.ing-table td:first-child{ color:var(--ink); font-weight:500; width:38%; }
.ing-table td{ color:var(--ink-soft); line-height:1.8; }

.free-from{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.free-from span{
  font-size:11.5px; letter-spacing:.06em; color:var(--ink-soft);
  padding:8px 14px; border:1px solid var(--line); border-radius:999px;
  text-decoration:line-through; text-decoration-color:var(--sage);
}

/* ---------- journal ---------- */
.journal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; padding:10px 0 110px; }
.j-card{ display:block; }
.j-media{
  aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden;
  background:var(--cream-2); margin-bottom:18px;
}
.j-media img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.j-card:hover .j-media img{ transform:scale(1.04); }
.j-card .kicker{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.j-card h3{ font-size:19px; font-weight:500; line-height:1.35; margin:10px 0 8px; color:var(--ink); }
.j-card p{ font-size:13px; line-height:1.85; color:var(--ink-soft); }
.j-card .more{ display:inline-block; margin-top:12px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--green); }

/* ---------- 404 ---------- */
.nf{ min-height:72vh; display:grid; place-items:center; text-align:center; padding-block:80px 110px; }
.nf .code{
  font-size:clamp(90px,18vw,190px); line-height:.9; font-weight:300;
  letter-spacing:-.04em; color:var(--cream-3);
}
.nf h1{ font-size:clamp(26px,3vw,38px); font-weight:500; margin:8px 0 14px; }
.nf p{ font-size:14px; color:var(--ink-soft); line-height:1.9; max-width:440px; margin:0 auto; }
.nf .btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:32px; }

/* ---------- footer legal row ---------- */
.foot-legal{
  display:flex; flex-wrap:wrap; gap:22px;
  padding:18px 0 4px; margin-top:10px;
  border-top:1px solid rgba(255,255,255,.08);
}
.foot-legal a{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.foot-legal a:hover{ color:#fff; }

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .legal-layout{ grid-template-columns:1fr; gap:34px; padding-block:52px 80px; }
  .legal-nav{ position:static; flex-direction:row; flex-wrap:wrap; gap:6px 18px; }
  .legal-nav h5{ width:100%; margin-bottom:4px; }
  .legal-nav a{ border-bottom:0; padding:6px 0; }
  .contact-grid{ grid-template-columns:1fr; }
  .ing-grid{ grid-template-columns:1fr 1fr; }
  .journal-grid{ grid-template-columns:1fr 1fr; }
  .track-form{ grid-template-columns:1fr 1fr; }
  .track-form .btn{ grid-column:1/-1; }
}
@media (max-width:640px){
  .ing-grid{ grid-template-columns:1fr; }
  .journal-grid{ grid-template-columns:1fr; }
  .track-form{ grid-template-columns:1fr; }
  .contact-form .row{ grid-template-columns:1fr; }
  .track-card{ padding:24px 20px; }
  .legal-body p, .legal-body li{ font-size:13.5px; }
  .ing-table th:nth-child(3), .ing-table td:nth-child(3){ display:none; }
  .nf{ min-height:auto; padding-block:60px 80px; }
}

@media (max-width:640px){
  .faq-list .acc-btn{ gap:16px; align-items:flex-start; }
  .faq-list .acc-btn .plus{ flex:none; margin-left:auto; }
}
