/* ============================================================================
   OneMediaKit — shared chrome: the kit shell (member header/footer, password
   gate, 404), the members' manual (/docs/) and the legal pages. Built on
   tokens.css: warm paper, ink, one vermilion accent, hairline rules,
   Bricolage Grotesque for headings, Inter for text, tabular figures.
   The two imports make the sheet self-sufficient on pages whose template
   does not print fonts.css and tokens.css itself (same origin, same files,
   so a page that already links them pays nothing twice).
   ============================================================================ */
@import url('fonts/fonts.css');
@import url('tokens.css');

/* The legacy names the older rules below still read, mapped onto the tokens.
   Nothing is a new colour: soft/mute are ink-2, cream is paper-2, babe-deep
   and gold are ink and the AA-safe accent, good is ink (green means verified,
   never a checkmark). */
.omk { --soft: var(--ink-2); --mute: var(--ink-2); --cream: var(--paper-2); --babe: var(--line-2); --babe-deep: var(--ink); --gold: var(--accent-strong); --good: var(--ink);
  font-family: var(--font-text); color: var(--ink);
  line-height: 1.6; font-size: 16px; background: var(--paper); font-variant-numeric: tabular-nums;
  width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.omk *, .omk *::before, .omk *::after { box-sizing:border-box; }
.omk h1, .omk h2, .omk h3, .omk h4 { margin:0; color:var(--ink); font-family:var(--font-display); font-weight:600; letter-spacing:0; line-height:1.15; text-wrap:balance; }
.omk h1 { letter-spacing:-.02em; line-height:1.05; }
.omk h2 { letter-spacing:-.01em; }
.omk :focus-visible { outline:2px solid var(--focus); outline-offset:2px; box-shadow:var(--ring); }
.omk p { margin:0 0 1em; }
.omk p:last-child { margin-bottom:0; }
.omk a { text-decoration:none; color:inherit; }
.omk img, .omk svg { max-width:100%; }
.omk .omk-ico { flex:0 0 auto; color:var(--gold); }

/* -------------------------------------------------------------- typography */
.omk-eyebrow { display:inline-flex; align-items:center; gap:.5rem; margin:0 0 1rem;
  font-size:.8125rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); }
.omk-eyebrow .omk-ico { width:18px; height:18px; }
.omk-sub { max-width:640px; font-size:clamp(1rem,1.6vw,1.15rem); color:var(--soft); }
.omk-lede { max-width:680px; margin:1rem auto 0; font-size:clamp(.98rem,1.5vw,1.08rem); color:var(--soft); }
.omk-center { text-align:center; margin:2.4rem 0 0; }

/* ----------------------------------------------------------------- buttons */
.omk-btn { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:2.75rem;
  padding:.75rem 1.5rem; border-radius:var(--radius-2); font-weight:600; font-size:1rem; line-height:1.2;
  border:1px solid transparent; cursor:pointer; white-space:nowrap; transition:background var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), transform var(--dur-1) var(--ease-out); }
.omk-btn .omk-ico { width:18px; height:18px; color:currentColor; }
.omk-btn-primary { background:var(--accent-strong); color:var(--on-accent) !important; border-color:var(--accent-strong); }
.omk-btn-primary:hover { background:var(--accent); border-color:var(--accent); }
.omk-btn-primary:active { transform:translateY(1px); }
.omk-btn-ghost { background:var(--paper-0); color:var(--ink) !important; border-color:var(--line-2); }
.omk-btn-ghost:hover { border-color:var(--ink); }
.omk-btn-light { background:var(--paper-0); color:var(--ink) !important; border-color:var(--paper-0); }
.omk-btn-light:hover { background:var(--paper); }
.omk-btn-wide { width:100%; }
.omk-textlink { display:inline-flex; align-items:center; gap:.45rem; font-weight:600; color:var(--ink) !important; font-size:1rem; text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:2px; text-underline-offset:3px; }
.omk-textlink:hover { color:var(--accent-strong) !important; }
.omk-textlink .omk-ico { width:18px; height:18px; color:currentColor; transition:transform .18s ease; }
.omk-textlink:hover .omk-ico { transform:translateX(4px); }

/* ------------------------------------------------------------------ header */
.omk-header { position:sticky; top:0; z-index:var(--z-header); background:var(--paper);
  border-bottom:1px solid transparent; transition:box-shadow var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out); }
.omk-header.is-scrolled { border-bottom-color:var(--line); box-shadow:var(--shadow-1); }
.omk-header-inner { max-width:1160px; margin:0 auto; padding:.9rem 1.5rem;
  display:flex; align-items:center; gap:1.6rem; }
.omk-logo { font-family:var(--font-display); font-weight:600; font-size:1.25rem; letter-spacing:-.01em; color:var(--ink); white-space:nowrap; }
.omk-logo-media { color:var(--accent); }
.omk-nav { display:flex; align-items:center; gap:1.5rem; margin-left:auto; }
.omk-nav > a { font-size:.92rem; font-weight:600; color:var(--soft); position:relative; padding:.25rem 0; transition:color .15s ease; }
.omk-nav > a:hover { color:var(--ink); }
.omk-nav > a::after { content:''; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background:var(--accent); border-radius:2px; transition:right var(--dur-2) var(--ease-out); }
.omk-nav > a:hover::after, .omk-nav > a[aria-current="page"]::after { right:0; }
.omk-nav > a[aria-current="page"] { color:var(--ink); }
.omk-header-cta { min-height:2.5rem; padding:.5rem 1rem; font-size:var(--text-small); }
.omk-header-login { font-size:.92rem; font-weight:600; color:var(--soft); margin-right:1.1rem; transition:color .15s ease; }
.omk-header-login:hover { color:var(--ink); }
.omk-nav-cta { display:none; }
.omk-nav-login { display:none; }
.omk-nav-toggle { display:none; margin-left:auto; background:none; border:1px solid var(--line-2);
  border-radius:var(--radius-2); padding:.5rem .6rem; color:var(--ink); cursor:pointer; }

@media (max-width: 880px) {
  .omk-header-inner { gap:1rem; }
  .omk-nav { position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch;
    gap:0; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:var(--shadow-2);
    padding:.6rem 1.5rem 1.2rem; display:none; }
  .omk-nav.is-open { display:flex; }
  .omk-nav > a { padding:.8rem 0; font-size:1rem; border-bottom:1px solid var(--line); }
  .omk-nav > a::after { display:none; }
  .omk-nav-cta { display:inline-flex; margin-top:1rem; }
  .omk-nav-login { display:inline-flex; margin-top:1rem; }
  .omk-header-cta { display:none; }
  .omk-header-login { display:none; }
  .omk-nav-toggle { display:inline-flex; }
}

/* ---------------------------------------------------------- account notice */
/* shown under the header for a signed-in account with no usable space */
.omk-notice-wrap { background:var(--paper); border-bottom:1px solid var(--line); }
.omk-notice-card { max-width:1160px; margin:0 auto; padding:1rem 1.5rem;
  display:flex; align-items:center; gap:1.2rem; }
.omk-notice-text { display:flex; flex-direction:column; gap:.15rem; font-size:.92rem; color:var(--soft); }
.omk-notice-text strong { color:var(--ink); font-weight:700; }
.omk-notice-text a { color:var(--gold); font-weight:600; }
.omk-notice-action { margin-left:auto; min-height:2.5rem; padding:.5rem 1rem; font-size:var(--text-small); white-space:nowrap; }
@media (max-width: 640px) {
  .omk-notice-card { flex-direction:column; align-items:flex-start; }
  .omk-notice-action { margin-left:0; }
}

/* -------------------------------------------------------------------- hero */
.omk-hero { background:var(--paper); overflow:hidden; }
.omk-hero-inner { max-width:1160px; margin:0 auto; padding:clamp(3.5rem,8vw,6rem) 1.5rem clamp(3rem,6vw,4.5rem);
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(2rem,5vw,4rem); align-items:center; }
.omk-hero h1 { font-size:clamp(2.1rem,4.6vw,3.5rem); }
.omk-hero .omk-sub { margin:1.4rem 0 2rem; }
.omk-cta-row { display:flex; gap:.8rem; flex-wrap:wrap; margin:0; }
.omk-trust { display:flex; align-items:center; gap:.5rem; margin:1.6rem 0 0; font-size:.85rem; font-weight:600; color:var(--good); }
.omk-trust .omk-ico { width:19px; height:19px; color:var(--good); }
@media (max-width: 880px) {
  .omk-hero-inner { grid-template-columns:1fr; text-align:center; }
  .omk-hero .omk-sub { margin-left:auto; margin-right:auto; }
  .omk-cta-row, .omk-trust { justify-content:center; }
}

/* ------------------------------------------------------------- page heroes */
.omk-page-hero { background:var(--paper); text-align:center; }
.omk-page-hero-inner { max-width:820px; margin:0 auto; padding:clamp(3rem,7vw,5rem) 1.5rem clamp(2.5rem,5vw,3.5rem); }
.omk-page-hero h1 { font-size:clamp(1.9rem,4vw,2.9rem); }
.omk-page-hero .omk-sub { margin:1.3rem auto 0; }
.omk-page-hero .omk-cta-row { justify-content:center; margin-top:1.8rem; }
/* every block inside a centred hero stays centred, whatever `.omk p` says about margins */
.omk .omk-page-hero-inner > * { margin-left:auto; margin-right:auto; }
.omk-page-hero .omk-btn { white-space:nowrap; }

/* ---------------------------------------------------------------- sections */
.omk-section { max-width:1160px; margin:0 auto; padding:clamp(3rem,7vw,5.5rem) 1.5rem; }
.omk-section-tight { padding-top:clamp(2rem,4vw,3rem); }
.omk-alt { max-width:none; background:var(--paper-2); }
.omk-alt > * { max-width:1160px; margin-left:auto; margin-right:auto; }
.omk-section-inner { max-width:1160px; margin:0 auto; }
.omk-section-head { text-align:center; max-width:760px; margin:0 auto 3rem; }
.omk-section-head h2 { font-size:clamp(1.55rem,3.2vw,2.3rem); }

/* ------------------------------------------------------------ cards & grids */
.omk-grid { display:grid; gap:1.3rem; }
.omk-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width: 960px) { .omk-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 640px) { .omk-grid-3 { grid-template-columns:1fr; } }
.omk-card { background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-3); padding:1.7rem 1.7rem 1.6rem;
  transition:box-shadow var(--dur-2) var(--ease-out); }
.omk-card:hover { box-shadow:var(--shadow-2); }
.omk-card .omk-ico { width:30px; height:30px; margin-bottom:.9rem; }
.omk-card h3 { font-size:1.06rem; margin-bottom:.45rem; }
.omk-card p { font-size:.9rem; color:var(--soft); }
.omk-card-pain .omk-ico { color:var(--mute); }

/* ------------------------------------------------------------------- steps */
.omk-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.4rem; }
@media (max-width: 880px) { .omk-steps { grid-template-columns:1fr; } }
.omk-step { background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-3); padding:1.8rem;
  transition:box-shadow var(--dur-2) var(--ease-out); }
.omk-step:hover { box-shadow:var(--shadow-2); }
.omk-step-num { display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center;
  border-radius:50%; background:var(--ink); color:var(--on-ink); font-weight:600; font-size:1rem; margin-bottom:1rem; }
.omk-step h3 { font-size:1.08rem; margin-bottom:.5rem; }
.omk-step p { font-size:.9rem; color:var(--soft); }
.omk-step-badge { display:inline-block; margin:0 0 1rem; padding:.32rem 1rem; border-radius:999px;
  background:var(--paper-2); color:var(--ink-2); font-size:var(--text-small); font-weight:600; letter-spacing:0; text-transform:none; }

/* -------------------------------------------------------------- stats band */
.omk-stats { background:var(--ink); }
.omk-stats-inner { max-width:1160px; margin:0 auto; padding:clamp(2.5rem,5vw,3.6rem) 1.5rem;
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem; text-align:center; }
@media (max-width: 720px) { .omk-stats-inner { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.omk-stat strong { display:block; font-family:var(--font-display); font-size:clamp(2.1rem,4.5vw,3rem); font-weight:600; color:var(--on-ink); line-height:1.1; }
.omk-stat-label { display:block; margin-top:.35rem; font-size:.82rem; font-weight:500; color:var(--on-ink); opacity:.8; }

/* ----------------------------------------------------------------- marquee */
.omk-marquee { overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--paper); padding:1rem 0; position:relative; }
.omk-marquee-track { display:inline-flex; align-items:center; gap:2.2rem; white-space:nowrap;
  animation:omk-marquee 36s linear infinite; will-change:transform; padding-right:2.2rem; }
.omk-marquee-item { font-size:var(--text-small); font-weight:600; letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--ink-2); }
.omk-marquee-dot { width:6px; height:6px; border-radius:50%; background:var(--accent); flex:0 0 auto; }
@keyframes omk-marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .omk-marquee-track { animation:none; } }

/* -------------------------------------------------------------- split rows */
.omk-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,4.5rem); align-items:center; max-width:1160px; margin:0 auto; }
.omk-split-flip .omk-split-copy { order:2; }
.omk-split-flip .omk-split-visual { order:1; }
.omk-split-copy h2 { font-size:clamp(1.5rem,3vw,2.15rem); margin-bottom:1.1rem; }
.omk-split-copy p { color:var(--soft); font-size:.97rem; }
@media (max-width: 880px) {
  .omk-split { grid-template-columns:1fr; }
  .omk-split-flip .omk-split-copy { order:1; }
  .omk-split-flip .omk-split-visual { order:2; }
}

/* --------------------------------------------------------------- checklist */
.omk-checklist { list-style:none; margin:1.4rem 0 0; padding:0; display:flex; flex-direction:column; gap:.65rem; }
.omk-checklist li { display:flex; align-items:flex-start; gap:.6rem; font-size:.93rem; color:var(--soft); font-weight:500; }
.omk-checklist .omk-ico { width:19px; height:19px; color:var(--good); margin-top:.15rem; }

/* -------------------------------------------------- placeholder mock frames */
.omk-mock { margin:0; border-radius:var(--radius-3); background:var(--paper-0); border:1px solid var(--line);
  box-shadow:var(--shadow-3); overflow:hidden; }
.omk-mock-bar { display:flex; align-items:center; gap:.45rem; padding:.7rem 1rem; border-bottom:1px solid var(--line); background:var(--paper); }
.omk-mock-bar > span { width:10px; height:10px; border-radius:50%; background:var(--line-2); }
.omk-mock-bar > span:first-child { background:var(--accent); }
.omk-mock-url { margin-left:.6rem; font-style:normal; font-size:.72rem; font-weight:600; color:var(--mute);
  background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-1); padding:.2rem .8rem; }
.omk-mock-body { position:relative; min-height:300px; display:flex; align-items:center; justify-content:center;
  background:var(--paper); }
.omk-mock-lines { position:absolute; inset:1.6rem; display:flex; flex-direction:column; gap:.8rem; opacity:.55; }
.omk-mock-lines span { display:block; height:12px; border-radius:6px; background:var(--cream); }
.omk-mock-lines span:nth-child(1) { width:42%; height:22px; }
.omk-mock-lines span:nth-child(2) { width:68%; }
.omk-mock-lines span:nth-child(3) { width:55%; }
.omk-mock-label { position:relative; z-index:1; font-size:.74rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-2); background:var(--paper-0); border:1px dashed var(--line-2);
  border-radius:999px; padding:.45rem 1.1rem; }
.omk-mock-phone { width:min(280px,80%); margin:0 auto; border-radius:34px; border:1px solid var(--line); padding:.6rem; }
.omk-mock-phone .omk-mock-notch { width:88px; height:20px; margin:.2rem auto .4rem; border-radius:999px; background:var(--cream); }
.omk-mock-phone .omk-mock-body { border-radius:26px; min-height:420px; }
.omk-mock-phone .omk-mock-lines { inset:1.2rem; }

/* -------------------------------------------------------------- pricing card */
.omk-plan { position:relative; max-width:460px; margin:0 auto; background:var(--paper-0); border:1px solid var(--ink);
  border-radius:var(--radius-3); padding:2.6rem 2.4rem 2.2rem; text-align:center; box-shadow:var(--shadow-2); }
.omk-plan-badge { position:absolute; top:-15px; left:50%; transform:translateX(-50%); white-space:nowrap;
  background:var(--accent-strong); color:var(--on-accent); font-size:var(--text-micro); font-weight:600; letter-spacing:0; text-transform:none;
  padding:.35rem 1.1rem; border-radius:var(--radius-pill); margin:0; }
.omk-plan-name { font-size:1.15rem; margin-bottom:1rem; }
.omk-plan-price { display:flex; flex-direction:column; align-items:center; gap:.15rem; margin:0 0 .8rem; }
.omk-plan-regular { font-size:1.05rem; font-weight:600; color:var(--mute); text-decoration-color:var(--mute); }
.omk-plan-launch { font-family:var(--font-display); font-size:clamp(2.1rem,4vw,2.7rem); font-weight:600; color:var(--ink); line-height:1.1; }
.omk-plan-note { font-size:.85rem; color:var(--ink-2); font-weight:500; margin-bottom:1.6rem; }
.omk-plan-list { text-align:left; margin:0 0 1.8rem; }
.omk-plan-fine { margin-top:1rem; font-size:.78rem; color:var(--mute); }

/* --------------------------------------------------------------- guarantee */
.omk-guarantee { display:flex; gap:1.2rem; align-items:flex-start; max-width:640px; margin:2.2rem auto 0;
  background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-3); padding:1.6rem 1.8rem; }
.omk-guarantee .omk-ico { width:34px; height:34px; color:var(--good); margin-top:.2rem; }
.omk-guarantee h3 { font-size:1.02rem; margin-bottom:.4rem; }
.omk-guarantee p { font-size:.9rem; color:var(--soft); }

/* -------------------------------------------------------------------- FAQ */
.omk-faq-group { text-align:center; font-size:clamp(1.25rem,2.4vw,1.6rem); margin-bottom:1.6rem; }
.omk-faq-narrow { max-width:760px; margin:0 auto; }
.omk-faq { margin:0 0 .8rem; background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-2);
  padding:1.05rem 1.4rem; transition:border-color var(--dur-1) var(--ease-out); }
.omk-faq[open] { border-color:var(--ink); }
.omk-faq summary { display:flex; align-items:center; justify-content:space-between; gap:1rem;
  cursor:pointer; font-weight:700; font-size:.96rem; list-style:none; }
.omk-faq summary::-webkit-details-marker { display:none; }
.omk-faq-mark { position:relative; width:20px; height:20px; flex:0 0 auto; }
.omk-faq-mark::before, .omk-faq-mark::after { content:''; position:absolute; top:50%; left:50%;
  width:12px; height:2px; background:var(--ink); border-radius:2px; transform:translate(-50%,-50%); transition:transform var(--dur-1) var(--ease-out); }
.omk-faq-mark::after { transform:translate(-50%,-50%) rotate(90deg); }
.omk-faq[open] .omk-faq-mark::after { transform:translate(-50%,-50%) rotate(0deg); }
.omk-faq p { margin:.8rem 0 0; font-size:.9rem; color:var(--soft); }

/* --------------------------------------------------------------- platforms */
.omk-platforms { text-align:center; }
.omk-platforms-label { font-size:var(--text-small); font-weight:600; letter-spacing:var(--tracking-eyebrow); text-transform:uppercase;
  color:var(--ink-2); margin-bottom:1.2rem; }
.omk-platforms-row { display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; }
.omk-platform { display:inline-flex; align-items:center; gap:.55rem; padding:.65rem 1.3rem; background:var(--paper-0);
  border:1px solid var(--line-2); border-radius:var(--radius-pill); font-weight:600; font-size:.9rem;
  transition:border-color var(--dur-1) var(--ease-out); }
.omk-platform:hover { border-color:var(--ink); }
.omk-platform .omk-ico { width:20px; height:20px; }

/* ----------------------------------------------------------------- contact */
.omk-contact-card { max-width:560px; margin:0 auto 3rem; text-align:center; background:var(--paper-0);
  border:1px solid var(--line); border-radius:var(--radius-3); padding:2.6rem 2.2rem; }
.omk-contact-card > .omk-ico { width:38px; height:38px; }
.omk-contact-email { font-family:var(--font-display); font-size:clamp(1.15rem,2.6vw,1.5rem); font-weight:600; margin:.9rem 0 .4rem; word-break:break-all; }
.omk-contact-note { font-size:.88rem; color:var(--soft); margin-bottom:1.6rem; }
.omk-contact-hints { margin-top:0; }

/* ---------------------------------------------------------------- CTA band */
.omk-cta-band { background:var(--ink); }
.omk-cta-band-inner { max-width:760px; margin:0 auto; text-align:center; padding:clamp(3.2rem,7vw,5rem) 1.5rem; }
.omk-cta-band h2 { color:var(--on-ink); font-size:clamp(1.5rem,3.2vw,2.25rem); margin-bottom:.9rem; }
.omk-cta-band p { color:var(--on-ink); opacity:.8; font-size:.98rem; margin-bottom:1.8rem; }

/* ------------------------------------------------------------------ footer */
.omk-footer { background:var(--paper-2); border-top:1px solid var(--line); }
.omk-footer-inner { max-width:1160px; margin:0 auto; padding:clamp(2.6rem,5vw,3.6rem) 1.5rem 2rem;
  display:grid; grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)); gap:2rem; }
@media (max-width: 880px) { .omk-footer-inner { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .omk-footer-inner { grid-template-columns:1fr; } }
.omk-logo-footer { font-size:1.15rem; margin:0 0 .8rem; }
.omk-footer-tag { font-size:.85rem; color:var(--soft); max-width:320px; }
.omk-footer-col h4 { font-family:var(--font-text); font-size:var(--text-small); font-weight:600; letter-spacing:var(--tracking-eyebrow); text-transform:uppercase;
  color:var(--ink-2); margin-bottom:1rem; }
.omk-footer-col a { display:block; font-size:.9rem; font-weight:500; color:var(--soft); padding:.28rem 0; transition:color .15s ease; }
.omk-footer-col a:hover { color:var(--accent-strong); }
.omk-footer-bottom { border-top:1px solid var(--line); }
.omk-footer-bottom { max-width:1160px; margin:0 auto; padding:1.3rem 1.5rem 1.8rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.omk-footer-bottom p { margin:0; font-size:.78rem; color:var(--mute); }

/* ------------------------------------------------------- reveal-on-scroll */
/* Hidden state only applies once site.js has tagged the root with .omk-js,
   so the site is fully visible without JavaScript. */
.omk.omk-js [data-omk-reveal] { opacity:0; transform:translateY(22px);
  transition:opacity .6s ease, transform .6s ease; }
.omk.omk-js [data-omk-reveal].omk-in { opacity:1; transform:none; }
.omk.omk-js [data-omk-delay="1"] { transition-delay:.12s; }
.omk.omk-js [data-omk-delay="2"] { transition-delay:.24s; }
@media (prefers-reduced-motion: reduce) {
  .omk.omk-js [data-omk-reveal] { opacity:1; transform:none; transition:none; }
  .omk-btn, .omk-card, .omk-step, .omk-platform { transition:none; }
}

/* -------------------------------------------------------------- small sizes */
@media (max-width: 400px) {
  .omk-btn { padding:.85rem 1.4rem; font-size:.92rem; }
  .omk-plan { padding:2.2rem 1.4rem 1.8rem; }
  .omk-guarantee { flex-direction:column; }
  .omk-footer-bottom { flex-direction:column; }
}

/* ---------------------------------------------------- theme chrome takeover
   platform.css only loads on pages rendering an omk shortcode, so these
   rules never touch plain theme pages (Privacy, Terms). */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > footer.wp-block-template-part,
.site-header.wp-block-template-part,
.wp-block-post-title { display:none !important; }
.wp-site-blocks { padding:0 !important; margin:0 !important; }
.wp-site-blocks .entry-content,
.wp-site-blocks .wp-block-post-content { margin:0 !important; max-width:none !important; padding:0 !important; }
body:not(#omk-specificity) { margin:0; }

/* ---- members-only documentation (/docs/) ---- */
.omk-docs { display:grid; grid-template-columns:220px 1fr; gap:2.5rem; align-items:start; max-width:1080px; margin:0 auto; padding-left:1.5rem; padding-right:1.5rem; }
.omk-docs-toc { position:sticky; top:90px; background:var(--paper-0); border:1px solid var(--line); border-radius:var(--radius-2); padding:1rem 1.2rem; }
.omk-docs-toc-title { font-weight:600; font-size:var(--text-small); text-transform:uppercase; letter-spacing:var(--tracking-eyebrow); margin:0 0 .5rem; color:var(--ink-2); }
.omk-docs-toc ul { list-style:none; margin:0; padding:0; }
.omk-docs-toc li { margin:.35rem 0; }
.omk-docs-toc a { text-decoration:none; color:var(--ink); font-size:.92rem; }
.omk-docs-toc a:hover { color:var(--accent-strong); }
.omk-docs-section { margin-bottom:2.2rem; scroll-margin-top:100px; }
.omk-docs-section h2 { font-size:1.35rem; margin:0 0 .7rem; }
.omk-docs-section p { line-height:1.65; color:var(--ink-2); }
.omk-docs-list { line-height:1.65; color:var(--ink-2); padding-left:1.2rem; }
.omk-docs-list li { margin:.45rem 0; }
.omk-docs-foot { border-top:1px solid var(--line); padding-top:1.2rem; color:var(--ink-2); }
@media (max-width: 900px) { .omk-docs { grid-template-columns:1fr; } .omk-docs-toc { position:static; } }

/* ---- legal pages (privacy / terms) ---- */
.omk-legal { max-width:820px; margin:0 auto; padding-left:1.5rem; padding-right:1.5rem; }
.omk-legal-body .omk-docs-section h2 { font-size:1.25rem; }

/* ---------------------------------------------------------------- shell
   templates/shell.php: every page the theme used to draw (member media
   kits, the password gate, 404s, stray pages). Header/footer live inside
   their own .omk wrappers so the kit's own stylesheet stays untouched. */
.omk-shell { margin:0; background:var(--paper); }
.omk-shell-wrap { min-height:100vh; display:flex; flex-direction:column; }
.omk-shell-main { flex:1 0 auto; }
.omk-shell-head .omk-header, .omk-shell-foot .omk-footer { width:100%; }
.omk-shell-hero .omk-page-hero-inner { padding-top:clamp(4rem,10vw,7rem); padding-bottom:clamp(4rem,10vw,7rem); }
.omk-shell-page { max-width:820px; margin:0 auto; padding:2.5rem 1.5rem 4rem; font-family:var(--font-text); color:var(--ink); line-height:1.7; }
.omk-shell-page h2 { font-size:1.5rem; margin:2rem 0 .6rem; }
.omk-shell-page a { color:var(--ink); text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:2px; text-underline-offset:3px; }
.omk-shell-page a:hover { color:var(--accent-strong); }

/* creator header/footer on a member space */
.omk-header-kit .omk-header-inner { justify-content:space-between; }
.omk-kit-brand { display:inline-flex; align-items:baseline; gap:.6rem; font-family:var(--font-display); font-weight:600; font-size:1.15rem; letter-spacing:-.01em; color:var(--ink); }
.omk-kit-tag { font-family:var(--font-text); font-size:var(--text-micro); font-weight:600; letter-spacing:var(--tracking-eyebrow); text-transform:uppercase; color:var(--ink-2); }
.omk-powered { display:inline-flex; align-items:center; gap:.4rem; font-size:.8rem; font-weight:600; color:var(--soft); padding:.45rem .8rem; border:1px solid var(--line-2); border-radius:var(--radius-pill); background:var(--paper-0); transition:border-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out); }
.omk-powered:hover { border-color:var(--ink); color:var(--ink); }
.omk-logo-inline { font-size:.85rem; }
.omk-footer-kit-inner { max-width:1160px; margin:0 auto; padding:2rem 1.5rem; display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 2rem; font-size:.85rem; color:var(--soft); }
.omk-footer-kit-brand { margin:0; color:var(--ink); }
.omk-footer-kit-note { margin:0; }
.omk-footer-kit-links { margin-left:auto; display:flex; gap:1.2rem; }
.omk-footer-kit-links a { font-weight:600; color:var(--soft); }
.omk-footer-kit-links a:hover { color:var(--ink); }
@media (max-width: 640px) { .omk-footer-kit-links { margin-left:0; } .omk-powered span.omk-logo-inline { display:none; } }

/* password gate */
.omk-gate { max-width:460px; margin:2rem auto 0; text-align:left; }
.omk-gate-label { display:block; font-size:var(--text-small); font-weight:500; color:var(--ink-2); margin:0 0 .5rem; }
.omk-gate-row { display:flex; gap:.6rem; align-items:stretch; }
.omk-gate-row .omk-btn { flex:0 0 auto; white-space:nowrap; }
.omk-gate-input { flex:1 1 auto; min-width:0; min-height:3rem; padding:.75rem 1rem; font:inherit; font-size:1rem; font-family:var(--font-mono); border:1px solid var(--line-2); border-radius:var(--radius-2); background:var(--paper-0); color:var(--ink); box-shadow:var(--shadow-1); }
.omk-gate-input:focus { outline:none; border-color:var(--accent); box-shadow:var(--ring); }
.omk-gate-hint { margin:.9rem 0 0; font-size:.85rem; color:var(--soft); }
@media (max-width: 480px) { .omk-gate-row { flex-direction:column; } }

/* docs: search + richer blocks */
.omk-docs-search-wrap { margin:1.6rem auto 0; max-width:560px; }
.omk-docs-search { width:100%; padding:.95rem 1.1rem; font:inherit; font-size:1rem; border:1px solid var(--line-2); border-radius:var(--radius-2); background:var(--paper-0); color:var(--ink); box-shadow:var(--shadow-1); }
.omk-docs-search:focus { outline:none; border-color:var(--accent); box-shadow:var(--ring); }
.omk-docs-section h3 { font-size:1.05rem; margin:1.4rem 0 .5rem; }
.omk-docs-steps { padding-left:1.4rem; margin:.4rem 0 1rem; }
.omk-docs-steps li { margin:.35rem 0; }
.omk-docs-note { background:var(--paper-2); border-left:3px solid var(--accent); padding:.9rem 1.1rem; border-radius:var(--radius-2); font-size:.95rem; }
.omk-docs-toc-foot { margin:.9rem 0 0; font-size:.82rem; }
.omk-docs-toc-foot a { color:var(--accent-strong); font-weight:600; }
.omk-docs-empty { color:var(--soft); }

/* Ask Arton (docs page) */

/* headings in the shell body (legal, docs prose) share the display face */
.omk-shell-page h1, .omk-shell-page h2, .omk-shell-page h3 { font-family:var(--font-display); font-weight:600; letter-spacing:-.01em; line-height:1.15; }
.omk-shell-page h1 { letter-spacing:-.02em; }
