/* Made in AI. — partner site
   Direction: an editorial spec sheet. Paper, ink, one vermilion accent.
   Type: IBM Plex Sans / Sans JP / Mono (one family across both languages). */

/* ---------- Bundled fonts (IBM Plex, SIL Open Font License 1.1 — fonts/OFL.txt) ----------
   IBM Plex Sans / Mono: Latin subset. IBM Plex Sans JP: only the characters used on this page
   (re-create the JP files when new kanji are added; see サイトの編集メモ.md). */
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("fonts/IBMPlexSans-var-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; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/IBMPlexMono-400-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; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/IBMPlexMono-500-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; }
@font-face { font-family: "IBM Plex Sans JP"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("fonts/IBMPlexSansJP-400-subset.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans JP"; font-style: normal; font-weight: 500; font-display: swap;
  src: url("fonts/IBMPlexSansJP-500-subset.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans JP"; font-style: normal; font-weight: 600; font-display: swap;
  src: url("fonts/IBMPlexSansJP-600-subset.woff2") format("woff2"); }

:root {
  --paper: #f5f3ee;
  --paper-2: #ecE9e1;
  --ink: #191917;
  --ink-2: #4e4c47;
  --ink-3: #6b6860;
  --rule: #d6d2c8;
  --rule-strong: #191917;
  --accent: #c2412b;

  --sans-en: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
  --sans-ja: "IBM Plex Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  --mono: "IBM Plex Mono", "IBM Plex Sans JP", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --sans: var(--sans-en), var(--sans-ja);

  --wrap: 1120px;
  --gutter: clamp(16px, 4vw, 40px);
  --label-col: 13.5rem;
  --body-size: 1.0625rem;
  --lh: 1.6;
}

html[lang="ja"] {
  --sans: var(--sans-ja);
  --body-size: 1rem;
  --lh: 1.9;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 72px;
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--body-size);
  line-height: var(--lh);
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Japanese composition: strict line breaking, no breaks inside words/phrases where supported */
html[lang="ja"] body {
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
  letter-spacing: 0.02em;
  text-spacing-trim: trim-start;
  text-autospace: normal;
}
html[lang="ja"] h1, html[lang="ja"] h2, html[lang="ja"] h3,
html[lang="ja"] .case__title, html[lang="ja"] .kicker {
  word-break: auto-phrase;
  font-feature-settings: "palt" 1;
  letter-spacing: 0.01em;
}

/* Language switching: elements carry data-l="en" or data-l="ja" */
html[data-lang="en"] [data-l="ja"],
html[data-lang="ja"] [data-l="en"] { display: none !important; }

/* Drafts: placeholders that only show with ?draft=1 */
.draft { display: none !important; }
html.show-drafts .draft {
  display: revert !important;
  outline: 1.5px dashed var(--accent);
  outline-offset: 6px;
  position: relative;
  background: repeating-linear-gradient(135deg, transparent 0 10px, rgba(194,65,43,.05) 10px 20px);
}
html.show-drafts article.draft, html.show-drafts div.draft { display: block !important; }
html.show-drafts .facts div.draft { display: grid !important; }
html.show-drafts .draft::before {
  content: "DRAFT — " attr(data-draft-note);
  display: block;
  font: 500 11px/1.4 var(--mono);
  letter-spacing: .04em;
  color: var(--accent);
  margin-bottom: 8px;
}

/* Pricing switch */
.pricing__table { display: none; }
html[data-pricing="show"] .pricing__table { display: table; }
html[data-pricing="show"] .pricing__quote { display: none; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; text-decoration-color: var(--ink-3); }
a:hover { color: var(--accent); text-decoration-color: currentColor; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

strong { font-weight: 600; }
h1, h2, h3 { margin: 0; font-weight: 500; }
p { margin: 0; }
p + p { margin-top: .8em; }

.wrap {
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
.skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--ink); color: var(--paper); padding: 8px 12px; z-index: 10;
}
.skip:focus { left: 8px; top: 8px; }

/* ---------- Masthead ---------- */
.masthead {
  position: sticky; top: 0; z-index: 5;
  background: var(--paper);
  border-bottom: 1px solid var(--rule-strong);
}
.masthead__inner {
  display: flex; align-items: center; gap: 24px;
  height: 56px;
}
.wordmark {
  font-family: var(--sans-en);
  font-weight: 600;
  font-size: 1.125rem;
  letter-spacing: -0.01em;
  text-decoration: none;
  white-space: nowrap;
}
.wordmark__dot { color: var(--accent); }
.nav {
  display: flex; gap: 22px; margin-left: auto;
  font-size: .875rem;
}
.nav a { text-decoration: none; color: var(--ink-2); white-space: nowrap; }
.nav a:hover { color: var(--accent); }
.lang {
  display: flex;
  border: 1px solid var(--ink);
  flex: none;
}
.lang button {
  appearance: none; border: 0; margin: 0;
  background: transparent; color: var(--ink);
  font: 500 .8125rem/1 var(--sans);
  padding: 7px 10px;
  cursor: pointer;
}
.lang button + button { border-left: 1px solid var(--ink); }
.lang button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.lang button[lang="ja"] { font-family: var(--sans-ja); }

/* ---------- Intro ---------- */
.intro { padding: clamp(48px, 9vw, 112px) 0 clamp(40px, 6vw, 72px); border-bottom: 1px solid var(--rule-strong); }
.kicker {
  font: 500 .8125rem/1.5 var(--mono);
  letter-spacing: .02em;
  color: var(--accent);
  margin-bottom: 20px;
}
html[lang="ja"] .kicker { font-family: var(--sans-ja); letter-spacing: .04em; }
.intro__title {
  font-size: clamp(1.875rem, 4.2vw, 3.25rem);
  line-height: 1.16;
  letter-spacing: -0.018em;
  font-weight: 500;
  max-width: 20ch;
  text-wrap: balance;
}
html[lang="ja"] .intro__title {
  font-size: clamp(1.625rem, 3.4vw, 2.625rem);
  line-height: 1.45;
  letter-spacing: 0.01em;
  max-width: 24em;
}
.intro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: clamp(28px, 5vw, 72px);
  margin-top: clamp(32px, 5vw, 56px);
}
.intro__lead p { color: var(--ink-2); max-width: 36em; text-wrap: pretty; }
.mini-head {
  font: 500 .75rem/1.4 var(--mono);
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-3);
  margin-bottom: 12px;
}
html[lang="ja"] .mini-head { font-family: var(--sans-ja); text-transform: none; letter-spacing: .06em; font-size: .8125rem; }
.get-list {
  list-style: none; margin: 0; padding: 0;
  counter-reset: get;
  border-top: 1px solid var(--rule-strong);
}
.get-list li {
  counter-increment: get;
  display: grid; grid-template-columns: 2.25rem 1fr;
  padding: 11px 0;
  border-bottom: 1px solid var(--rule);
  line-height: 1.45;
}
.get-list li::before {
  content: counter(get, decimal-leading-zero);
  font: 400 .8125rem/1.8 var(--mono);
  color: var(--ink-3);
}
.facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 24px;
  margin: clamp(36px, 5vw, 56px) 0 0;
  border-top: 1px solid var(--rule);
  padding-top: 14px;
}
.facts div { display: grid; gap: 2px; }
.facts dt { font: 400 .75rem/1.4 var(--mono); color: var(--ink-3); letter-spacing: .03em; }
html[lang="ja"] .facts dt { font-family: var(--sans-ja); }
.facts dd { margin: 0; font-size: .9375rem; overflow-wrap: anywhere; }

/* ---------- Sections ---------- */
.section { padding: clamp(48px, 7vw, 88px) 0; border-bottom: 1px solid var(--rule-strong); }
.section__grid {
  display: grid;
  grid-template-columns: var(--label-col) minmax(0, 1fr);
  gap: 0 clamp(24px, 4vw, 56px);
}
.section__head { align-self: start; position: sticky; top: 88px; }
.section__no { font: 400 .8125rem/1 var(--mono); color: var(--accent); margin-bottom: 10px; }
.section__head h2 { font-size: 1.375rem; line-height: 1.3; letter-spacing: -0.01em; }
html[lang="ja"] .section__head h2 { font-size: 1.25rem; letter-spacing: .02em; }
.asof {
  display: inline-block;
  margin-top: 12px;
  font: 400 .75rem/1 var(--mono);
  border: 1px solid var(--ink);
  padding: 5px 7px 4px;
  letter-spacing: .04em;
}
.asof-inline { font: 400 .75rem/1 var(--mono); color: var(--ink-3); margin-left: .4em; white-space: nowrap; }
.section__body { max-width: 760px; }
.section__intro { color: var(--ink-2); margin-bottom: 28px; max-width: 40em; }

/* Spec table */
.spec { width: 100%; border-collapse: collapse; border-top: 1px solid var(--rule-strong); }
.spec th, .spec td { padding: 10px 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
.spec th { text-align: left; font-weight: 400; color: var(--ink-2); padding-right: 16px; }
.spec td.num {
  text-align: right;
  font-family: var(--mono);
  font-feature-settings: "tnum" 1;
  font-size: 1.0625rem;
  white-space: nowrap;
  color: var(--ink);
}
html[lang="ja"] .spec td.num [data-l="ja"] { font-family: var(--mono), var(--sans-ja); }
.spec__group th {
  padding-top: 22px;
  font: 500 .75rem/1.4 var(--mono) !important;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-3) !important;
  border-bottom-color: var(--rule-strong);
}
html[lang="ja"] .spec__group th { font-family: var(--sans-ja) !important; text-transform: none; letter-spacing: .06em; font-size: .8125rem !important; }
.source { font-size: .8125rem; line-height: 1.6; color: var(--ink-3); margin-top: 12px; }

.ledger { margin-top: 40px; border-top: 1px solid var(--rule-strong); }
.ledger__row {
  display: grid;
  grid-template-columns: 10rem minmax(0, 1fr);
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--rule);
}
.ledger__label { font-size: .875rem; font-weight: 400; color: var(--ink-2); line-height: 1.6; }
.partners { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 10px; }
.partners__label { font: 400 .75rem/1.4 var(--mono); color: var(--ink-3); }
html[lang="ja"] .partners__label { font-family: var(--sans-ja); }
.partners__names { font-weight: 500; font-family: var(--sans-en); }
.partners .sep, .partners__names .sep { color: var(--ink-3); margin: 0 .55em; font-weight: 400; }

/* Cases */
.case { padding: 24px 0 28px; border-top: 1px solid var(--rule-strong); }
.case + .case { margin-top: 8px; }
.case__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; }
.case__client { font-family: var(--sans-en); font-weight: 600; font-size: 1rem; letter-spacing: .01em; }
.case__meta { font: 400 .8125rem/1.5 var(--mono); color: var(--ink-3); }
html[lang="ja"] .case__meta { font-family: var(--mono), var(--sans-ja); }
.case__title {
  margin-top: 10px;
  font-size: clamp(1.25rem, 2.2vw, 1.5rem);
  line-height: 1.3;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
html[lang="ja"] .case__title { font-size: clamp(1.125rem, 2vw, 1.375rem); line-height: 1.55; letter-spacing: .01em; }
.case__orig { font-family: var(--sans-ja); font-size: .875rem; color: var(--ink-3); margin-top: 4px; }
.case__fig { margin: 18px 0 0; }
.case__fig img { display: block; width: 100%; height: auto; border: 1px solid var(--rule); }
.case__spec { margin: 18px 0 0; }
.case__spec div {
  display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 12px;
  padding: 9px 0; border-top: 1px solid var(--rule);
}
.case__spec dt { font: 400 .75rem/1.9 var(--mono); color: var(--ink-3); letter-spacing: .03em; }
html[lang="ja"] .case__spec dt { font-family: var(--sans-ja); font-size: .8125rem; line-height: 1.9; }
.case__spec dd { margin: 0; text-wrap: pretty; }
.case__spec dd a { font-family: var(--mono); font-size: .875rem; overflow-wrap: anywhere; }
html[lang="ja"] .case__spec dd a { font-family: var(--mono), var(--sans-ja); }

/* Services */
.service {
  display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 8px;
  padding: 22px 0 26px;
  border-top: 1px solid var(--rule-strong);
}
.service__no { font: 500 .9375rem/1.5 var(--mono); color: var(--accent); }
.service__title { font-size: 1.25rem; line-height: 1.35; letter-spacing: -0.005em; }
html[lang="ja"] .service__title { font-size: 1.1875rem; letter-spacing: .02em; }
.service__where { font-size: .875rem; color: var(--ink-3); margin: 4px 0 12px; }
.service__main > p { max-width: 38em; }
.ticks { list-style: none; margin: 14px 0 0; padding: 0; }
.ticks li { position: relative; padding: 6px 0 6px 20px; border-top: 1px solid var(--rule); line-height: 1.5; }
.ticks li::before { content: ""; position: absolute; left: 2px; top: calc(6px + .75em - 1px); width: 8px; height: 1px; background: var(--ink); }
.formats { width: 100%; border-collapse: collapse; margin-top: 4px; }
.formats th, .formats td { text-align: left; vertical-align: baseline; padding: 9px 0; border-top: 1px solid var(--rule); }
.formats th { font-weight: 500; width: 11rem; padding-right: 16px; }
.formats td { color: var(--ink-2); }
.tag {
  display: inline-block;
  font: 500 .6875rem/1 var(--mono);
  letter-spacing: .08em; text-transform: uppercase;
  border: 1px solid var(--accent); color: var(--accent);
  padding: 4px 6px 3px; margin-right: 6px; vertical-align: 1px;
}
html[lang="ja"] .tag { font-family: var(--sans-ja); text-transform: none; letter-spacing: .04em; font-size: .75rem; }

.bundle {
  margin-top: 16px;
  border: 1px solid var(--ink);
  background: var(--paper-2);
  padding: clamp(18px, 3vw, 28px);
}
.bundle__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 16px; }
.bundle__title { font-size: 1.25rem; }
.bundle__note { font: 400 .75rem/1.4 var(--mono); color: var(--accent); letter-spacing: .04em; }
html[lang="ja"] .bundle__note { font-family: var(--sans-ja); }
.bundle__parts {
  list-style: none; margin: 18px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--ink);
}
.bundle__parts li {
  display: grid; gap: 4px; align-content: start;
  padding: 14px 14px 4px 0;
  line-height: 1.4;
}
.bundle__parts li + li { padding-left: 14px; border-left: 1px solid var(--rule); }
.bundle__parts li + li::before {
  content: "+"; position: absolute; left: 0; top: 30px; transform: translate(-50%, -50%);
  font: 400 1rem/1 var(--mono); color: var(--ink-3); background: var(--paper-2); padding: 3px 0;
}
.bundle__parts li { position: relative; }
.bundle__qty { font: 400 2rem/1 var(--mono); letter-spacing: -0.02em; }
.bundle__qty small { font-size: .8125rem; margin-left: 4px; letter-spacing: 0; font-family: var(--sans); }
.bundle__desc { margin-top: 16px; font-size: .9375rem; color: var(--ink-2); max-width: 40em; }

.pricing { margin-top: 40px; }
.pricing__quote { max-width: 38em; }

/* Process */
.steps { list-style: none; margin: 0; padding: 0; counter-reset: step; border-top: 1px solid var(--rule-strong); }
.steps li {
  counter-increment: step;
  display: grid; grid-template-columns: 2.5rem 12rem minmax(0, 1fr); gap: 0 16px;
  padding: 14px 0; border-bottom: 1px solid var(--rule);
  align-items: baseline;
}
.steps li::before { content: counter(step, decimal-leading-zero); font: 400 .8125rem/1 var(--mono); color: var(--accent); }
.steps h3 { font-size: 1rem; font-weight: 500; line-height: 1.5; }
.steps p { color: var(--ink-2); line-height: 1.55; }
html[lang="ja"] .steps p { line-height: 1.8; }

.terms { margin: 40px 0 0; border-top: 1px solid var(--rule-strong); }
.terms div {
  display: grid; grid-template-columns: 12rem minmax(0, 1fr); gap: 16px;
  padding: 14px 0; border-bottom: 1px solid var(--rule);
}
.terms dt { font-weight: 500; line-height: 1.55; }
.terms dd { margin: 0; color: var(--ink-2); text-wrap: pretty; }

/* FAQ */
.faq { margin: 0; border-top: 1px solid var(--rule-strong); }
.faq div { padding: 16px 0 18px; border-bottom: 1px solid var(--rule); }
.faq dt { font-weight: 500; line-height: 1.45; }
html[lang="ja"] .faq dt { line-height: 1.7; }
.faq dd { margin: 6px 0 0; color: var(--ink-2); max-width: 42em; text-wrap: pretty; }

/* Contact */
.contact__mail { font-size: clamp(1.375rem, 3.6vw, 2.25rem); line-height: 1.2; letter-spacing: -0.015em; font-family: var(--sans-en); overflow-wrap: anywhere; }
.contact__mail a { text-decoration-thickness: 2px; text-underline-offset: .18em; text-decoration-color: var(--accent); }
.contact__ask { margin-top: 24px; color: var(--ink-2); }
.contact__list { margin: 8px 0 0; padding-left: 1.4em; color: var(--ink-2); }
.contact__list li { padding: 2px 0; }
.contact__list li::marker { font-family: var(--mono); font-size: .875em; color: var(--ink-3); }
.facts--contact { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 32px; }
.section--contact { border-bottom: 0; }

/* Footer */
.colophon { border-top: 1px solid var(--rule-strong); padding: 20px 0 32px; font-size: .8125rem; color: var(--ink-3); }
.colophon__inner { display: flex; flex-wrap: wrap; gap: 8px 32px; }
.colophon__print { margin-left: auto; }
.linkish {
  appearance: none; background: none; border: 0; padding: 0; margin: 0;
  font: inherit; color: var(--ink-2); text-decoration: underline; text-underline-offset: .2em; cursor: pointer;
}
.linkish:hover { color: var(--accent); }

/* ---------- Additions: proof strip, CTAs, featured cases, index, rates ---------- */
.nav__cta { color: var(--ink) !important; border-bottom: 1px solid var(--accent); }
.intro__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 28px !important; }
.button {
  display: inline-block; text-decoration: none;
  background: var(--ink); color: var(--paper);
  font-weight: 500; font-size: .9375rem; line-height: 1;
  padding: 14px 20px 13px;
}
.button:hover { background: var(--accent); color: #fff; }
.textlink { font-size: .9375rem; color: var(--ink-2); }

.proof {
  position: relative;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: clamp(36px, 5vw, 56px) 0 0;
  border-top: 1px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule);
}
.proof div { padding: 16px 16px 18px 0; display: flex; flex-direction: column-reverse; gap: 6px; }
.proof div + div { padding-left: 16px; border-left: 1px solid var(--rule); }
.proof dt { font-size: .8125rem; color: var(--ink-3); line-height: 1.4; }
.proof dd { margin: 0; font: 400 clamp(1.75rem, 3.4vw, 2.5rem)/1 var(--mono); letter-spacing: -0.02em; }
html[lang="ja"] .proof dd [data-l="ja"] { font-family: var(--mono), var(--sans-ja); }
.proof__asof { position: absolute; right: 0; top: -1.9em; font: 400 .75rem/1 var(--mono); color: var(--ink-3); }

.ledger__note { font-size: .875rem; color: var(--ink-3); margin-top: 8px !important; }
.ledger__body .partners__names { font-size: 1.0625rem; line-height: 1.7; }

.case--feature { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 0 28px; align-items: start; }
.case--feature .case__fig { margin: 4px 0 0; }
.case__fig img { aspect-ratio: 16 / 9; object-fit: cover; background: var(--paper-2); }
.case__fig.is-empty { display: none; }
.case--feature:has(.case__fig.is-empty) { grid-template-columns: minmax(0, 1fr); }
.case__fig--stat {
  border: 1px solid var(--ink); background: var(--paper-2);
  padding: 16px 16px 14px; display: grid; gap: 2px; align-content: start;
}
.stat__big { font: 400 2.5rem/1 var(--mono); letter-spacing: -0.02em; }
.stat__big--sub { margin-top: 14px !important; font-size: 1.75rem; }
.stat__label { font-size: .8125rem; color: var(--ink-2); line-height: 1.4; margin: 0 !important; }
.case__quote { margin: 16px 0 0; padding: 12px 0 0 16px; border-left: 2px solid var(--accent); }
.case__quote p { font-size: 1.0625rem; }
.case__quote footer { font-size: .8125rem; color: var(--ink-3); margin-top: 4px; }

.index__head { margin-top: 44px; }
.index { width: 100%; border-collapse: collapse; border-top: 1px solid var(--rule-strong); font-size: .9375rem; }
.index th, .index td { text-align: left; vertical-align: baseline; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--rule); }
.index thead th { font: 400 .75rem/1.4 var(--mono); color: var(--ink-3); letter-spacing: .03em; padding-top: 8px; padding-bottom: 8px; }
html[lang="ja"] .index thead th { font-family: var(--sans-ja); }
.index tbody th { font-family: var(--sans-en); font-weight: 600; white-space: nowrap; }
.index__date { font-family: var(--mono); font-size: .8125rem; color: var(--ink-3); white-space: nowrap; }
.index td:last-child { font-family: var(--mono); font-size: .8125rem; white-space: nowrap; padding-right: 0; }
.index td:nth-child(3) { color: var(--ink-2); line-height: 1.55; }
.index__muted { color: var(--ink-3); }
html[lang="ja"] .index td:last-child [data-l="ja"] { font-family: var(--sans-ja); }

.rates { width: 100%; border-collapse: collapse; border-top: 1px solid var(--rule-strong); }
.rates th, .rates td { text-align: left; vertical-align: baseline; padding: 11px 14px 11px 0; border-bottom: 1px solid var(--rule); }
.rates thead th { font: 400 .75rem/1.4 var(--mono); color: var(--ink-3); letter-spacing: .03em; padding-top: 8px; padding-bottom: 8px; }
html[lang="ja"] .rates thead th { font-family: var(--sans-ja); }
.rates tbody th { font-weight: 500; width: 13rem; }
.rates td { color: var(--ink-2); line-height: 1.55; }
.rates .num { text-align: right; padding-right: 0; white-space: nowrap; font-family: var(--mono); color: var(--ink); font-feature-settings: "tnum" 1; }
html[lang="ja"] .rates .num [data-l="ja"] { font-family: var(--mono), var(--sans-ja); }
.rates__feature th, .rates__feature td { background: var(--paper-2); }
.rates__feature th { padding-left: 10px; box-shadow: inset 2px 0 0 var(--accent); }
.rates__feature .num { padding-right: 10px; }
.rates__notes { font-size: .8125rem; color: var(--ink-3); margin-top: 12px !important; max-width: 46em; }
.pricing .mini-head .asof-inline { text-transform: none; letter-spacing: .04em; }

.steps__timeline { margin-top: 12px; font-size: .875rem; color: var(--ink-2); }
.contact__reply { margin-top: 10px; color: var(--ink-2); }

/* ---------- Responsive ---------- */
@media screen and (max-width: 960px) {
  .nav { display: none; }
  .lang { margin-left: auto; }
  :root { --label-col: 9rem; }
}
@media screen and (max-width: 760px) {
  .section__grid { grid-template-columns: minmax(0, 1fr); }
  .section__head { position: static; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin-bottom: 22px; }
  .section__no { margin: 0; }
  .asof { margin-top: 0; margin-left: auto; }
  .intro__grid { grid-template-columns: minmax(0, 1fr); }
  .facts { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .facts--contact { grid-template-columns: minmax(0, 1fr); }
  .ledger__row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .steps li { grid-template-columns: 2.25rem minmax(0, 1fr); }
  .steps li p { grid-column: 2; margin-top: 2px; }
  .terms div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .case__spec div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .formats th { width: 8.5rem; }
}
@media screen and (max-width: 520px) {
  :root { --body-size: 1rem; }
  html[lang="ja"] { --body-size: .9375rem; --lh: 1.85; }
  .bundle__parts { grid-template-columns: minmax(0, 1fr); }
  .bundle__parts li { padding: 12px 0; display: flex; align-items: baseline; gap: 14px; }
  .bundle__parts li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .bundle__parts li + li::before { display: none; }
  .bundle__qty { min-width: 4.5rem; font-size: 1.625rem; }
  .formats th, .formats td { display: block; width: auto; padding: 0; border: 0; }
  .formats tr { display: block; padding: 9px 0; border-top: 1px solid var(--rule); }
  .formats td { margin-top: 2px; }
  .spec td.num { font-size: 1rem; }
  .colophon__print { margin-left: 0; }
}

/* ---------- Print (A4, aims for 2 pages) ---------- */
@page { size: A4; margin: 13mm 14mm 12mm; }
@media print {
  /* rem-based sizes scale down with the root size on paper */
  :root { font-size: 8.1pt; --body-size: 1rem; --lh: 1.4; --label-col: 26mm; }
  html[lang="ja"] { font-size: 7.8pt; --body-size: 1rem; --lh: 1.58; }
  html { scroll-behavior: auto; }
  .section__intro, .case__orig { display: none !important; }
  body { background: #fff; color: #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .masthead, .skip, .colophon__print, .lang, .nav, .draft { display: none !important; }
  .wrap { max-width: none; padding: 0; }

  .intro { padding: 0 0 5mm; }
  .intro::before {
    content: "Made in AI.";
    display: block; font: 600 11pt/1 var(--sans-en); margin-bottom: 5mm;
    padding-bottom: 2.5mm; border-bottom: 0.6pt solid #000;
  }
  .kicker { margin-bottom: 2.5mm; font-size: 7.5pt; }
  .intro__title { font-size: 17pt; line-height: 1.2; max-width: none; }
  html[lang="ja"] .intro__title { font-size: 13.5pt; line-height: 1.5; max-width: none; }
  .intro__grid { margin-top: 4mm; gap: 8mm; grid-template-columns: 1.2fr 1fr; }
  .get-list li { padding: 1.3mm 0; }
  .facts { margin-top: 4mm; padding-top: 2mm; grid-template-columns: repeat(3, 1fr); }
  .facts dd { font-size: 8.4pt; }

  .section { padding: 4.5mm 0; break-inside: auto; }
  .section__grid { grid-template-columns: var(--label-col) minmax(0, 1fr); gap: 0 6mm; }
  .section__head { position: static; display: block; margin: 0; }
  .section__head h2 { font-size: 10.5pt; }
  html[lang="ja"] .section__head h2 { font-size: 10pt; }
  .asof { margin: 2mm 0 0; font-size: 6.5pt; padding: 1mm 1.4mm .8mm; }
  .section__body { max-width: none; }
  .section__intro { margin-bottom: 2mm; }

  .spec th, .spec td { padding: 1mm 0; }
  .spec td.num { font-size: 8.6pt; }
  .spec__group th { padding-top: 2.4mm; font-size: 6.5pt !important; }
  .source { font-size: 7pt; margin-top: 1.5mm; }
  .ledger { margin-top: 3mm; }
  .ledger__row { padding: 1.8mm 0; grid-template-columns: 28mm 1fr; }
  .ledger__label { font-size: 8pt; }
  .partners { margin-top: 1mm; }

  .case { padding: 2.6mm 0 2.8mm; break-inside: avoid; }
  .case__title { font-size: 10.5pt; margin-top: 1mm; }
  html[lang="ja"] .case__title { font-size: 9.6pt; }
  .case__orig { font-size: 7.5pt; margin-top: 0; }
  .case__spec { margin-top: 1.6mm; }
  .case__spec div { padding: 1mm 0; grid-template-columns: 20mm 1fr; gap: 3mm; }
  .case__spec dt { font-size: 7pt; line-height: 1.6; }
  .case__spec dd a { font-size: 7.6pt; }

  .service { padding: 2.4mm 0 2.6mm; grid-template-columns: 6mm 1fr; break-inside: avoid; }
  .service__title { font-size: 10pt; }
  html[lang="ja"] .service__title { font-size: 9.6pt; }
  .service__where { margin: .5mm 0 1.2mm; font-size: 7.6pt; }
  .ticks { margin-top: 1.2mm; columns: 2; column-gap: 6mm; }
  .ticks li { padding: .8mm 0 .8mm 4mm; break-inside: avoid; }
  .ticks li::before { top: calc(.8mm + .7em); }
  .formats th, .formats td { padding: .9mm 0; }
  .formats th { width: 30mm; }
  .bundle { margin-top: 1.6mm; padding: 3mm 4mm; break-inside: avoid; background: #f1efea; }
  .bundle__title { font-size: 10pt; }
  .bundle__parts { margin-top: 2mm; }
  .bundle__parts li { padding: 2mm 3mm 0 0; }
  .bundle__parts li + li { padding-left: 3mm; }
  .bundle__parts li + li::before { background: #f1efea; transform: translate(calc(-3mm - 50%), -1px); font-size: 8pt; }
  .bundle__qty { font-size: 15pt; }
  .bundle__desc { margin-top: 2mm; font-size: 8pt; }
  .pricing { margin-top: 3mm; }
  .pricing .mini-head { margin-bottom: 1mm; }

  .steps li { padding: 1.3mm 0; grid-template-columns: 6mm 30mm 1fr; gap: 0 3mm; }
  .steps h3 { font-size: 8.6pt; }
  .terms { margin-top: 3mm; }
  .terms div { padding: 1.3mm 0; grid-template-columns: 30mm 1fr; gap: 3mm; }

  .faq { columns: 2; column-gap: 7mm; border-top: 0.6pt solid #000; }
  .faq div { padding: 1.6mm 0 1.8mm; break-inside: avoid; }
  .faq dd { margin-top: .6mm; }

  .contact__mail { font-size: 14pt; }
  .contact__ask { margin-top: 2mm; }
  .contact__list { margin-top: 1mm; columns: 2; column-gap: 6mm; }
  .contact__list li { padding: 0; }
  .facts--contact { margin-top: 3mm; }

  .colophon { padding: 2.5mm 0 0; font-size: 7pt; }

  a { text-decoration: none; }
  .section, .intro, .case, .service { border-color: #000; }

  /* Compaction for two A4 pages */
  .section { padding: 3.2mm 0; }
  .service__main { min-width: 0; }
  .ticks { columns: 1; }
  .ticks li { display: inline-block; width: 49%; vertical-align: top; border-top: 0; padding-right: 2mm; }

  /* Track-record table in two columns: basics + per-video | last 90 days */
  .spec--record tbody {
    display: grid; grid-template-columns: 1fr 1fr; column-gap: 7mm;
    grid-auto-flow: column; grid-template-rows: repeat(6, auto);
  }
  .spec--record tr { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 0.4pt solid var(--rule); }
  .spec--record th, .spec--record td { display: block; border: 0; }
  .spec--record tr:nth-child(-n+4) { order: 1; }
  .spec--record tr:nth-child(10), .spec--record tr:nth-child(11) { order: 2; }
  .spec--record tr:nth-child(n+5):nth-child(-n+9) { order: 3; }
  .spec--record .spec__group { border-bottom: 0.6pt solid #000; }
  .spec--record .spec__group th { padding-top: 1.6mm; }
  .spec--record tr:nth-child(5) th { padding-top: 1mm; }

  /* Cases side by side */
  #work .section__body { display: grid; grid-template-columns: 1fr 1fr; column-gap: 6mm; align-items: start; }
  #work .case + .case { margin-top: 0; }
  .case__spec div { grid-template-columns: 1fr; gap: 0; }
  .case__head { display: block; }
  .case__meta { font-size: 6.8pt; }

  /* Services: A | B, C | Ad Bundle, pricing across */
  #services .section__body { display: grid; grid-template-columns: 1fr 1fr; column-gap: 6mm; align-items: start; }
  #services .pricing { grid-column: 1 / -1; margin-top: 2mm; }
  #services .bundle { margin-top: 2.4mm; }
  .ticks li { display: block; width: auto; border-top: 0.4pt solid var(--rule); }
  .formats th { width: 22mm; }
  .bundle__parts li { padding-right: 2mm; }
  .bundle__parts li + li { padding-left: 2mm; }
  .bundle__parts li + li::before { transform: translate(calc(-2mm - 50%), -1px); }
  .bundle__qty { font-size: 13pt; }

  /* Process terms 2 x 2 */
  .terms { display: grid; grid-template-columns: 1fr 1fr; column-gap: 6mm; }
  .terms div { grid-template-columns: 1fr; gap: .4mm; }

  /* Contact on one band */
  .contact__list { columns: 4; column-gap: 4mm; padding-left: 1.2em; }
  .facts--contact { margin-top: 2mm; padding-top: 1.5mm; }
  .intro__lead p, .get-list li { line-height: 1.4; }
  html[lang="ja"] .intro__lead p, html[lang="ja"] .get-list li { line-height: 1.6; }

  /* The FAQ stays on the web page; the PDF keeps the two-page leave-behind */
  #faq { display: none !important; }

  /* Page 1: intro, record, work. Page 2: services, process, contact */
  #services { break-before: page; border-top: 0; }
  .contact__list { columns: 2; }
  /* Ad Bundle parts stacked in the half-width column */
  .bundle__parts { grid-template-columns: 1fr; }
  .bundle__parts li, .bundle__parts li + li { display: flex; align-items: baseline; gap: 3mm; padding: 1.2mm 0; border-left: 0; }
  .bundle__parts li + li { border-top: 0.4pt solid var(--rule); }
  .bundle__parts li + li::before { display: none; }
  .bundle__qty { min-width: 12mm; font-size: 11pt; }
  .contact__ask, .contact__list { display: none; }
  .steps li { padding: 1mm 0; }
}

/* ---------- Additions: small screens ---------- */
@media screen and (max-width: 760px) {
  .proof { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof div:nth-child(3) { padding-left: 0; border-left: 0; }
  .proof div:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .case--feature { grid-template-columns: minmax(0, 1fr); }
  .case--feature .case__fig { margin: 0 0 16px; max-width: 28rem; }
  .case__fig--stat { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
  .case__fig--stat .stat__big--sub { margin-top: 0 !important; }
  .index thead { display: none; }
  .index, .index tbody, .index tr, .index th, .index td { display: block; }
  .index tr { padding: 12px 0; border-bottom: 1px solid var(--rule); }
  .index th, .index td { border: 0; padding: 0; }
  .index tbody th { display: inline; }
  .index__date { display: inline !important; margin-left: 10px; }
  .index td:nth-child(3) { margin-top: 4px; }
  .index td:last-child { margin-top: 4px; }
  .rates thead { display: none; }
  .rates, .rates tbody, .rates tr, .rates th, .rates td { display: block; width: auto !important; }
  .rates tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 12px 0; border-bottom: 1px solid var(--rule); }
  .rates th, .rates td { border: 0; padding: 0; }
  .rates td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; font-size: .875rem; }
  .rates .num { grid-column: 2; grid-row: 1; }
  .rates__feature { background: var(--paper-2); padding-left: 10px !important; padding-right: 10px !important; box-shadow: inset 2px 0 0 var(--accent); }
  .rates__feature th, .rates__feature td { background: none; box-shadow: none; padding: 0 !important; }
  html.show-drafts tr.draft { display: block !important; }
}
@media screen and (max-width: 520px) {
  .proof dd { font-size: 1.75rem; }
  .intro__actions .button { width: 100%; text-align: center; }
}

/* ---------- Additions: print ---------- */
@media print {
  .case__fig img, .case__fig:not(.case__fig--stat), .intro__actions, .nav__cta { display: none !important; }
  .proof { margin-top: 4mm; }
  .proof div { padding: 2mm 3mm 2mm 0; }
  .proof div + div { padding-left: 3mm; }
  .proof dd { font-size: 15pt; }
  .proof dt { font-size: 7pt; }
  .proof__asof { font-size: 6.5pt; top: -1.6em; }
  .ledger__body .partners__names { font-size: 8.6pt; }
  .ledger__note { font-size: 7.4pt; margin-top: .6mm !important; }
  #work .section__body { display: block; }
  .case--feature { display: grid; grid-template-columns: 34mm 1fr; gap: 0 4mm; }
  .case--feature:has(.case__fig:not(.case__fig--stat)) { grid-template-columns: 1fr; }
  .case__fig--stat { padding: 2mm 3mm; }
  .stat__big { font-size: 15pt; }
  .stat__big--sub { font-size: 11pt; margin-top: 1.5mm !important; }
  .stat__label { font-size: 6.8pt; }
  .case__spec div { grid-template-columns: 20mm 1fr; gap: 3mm; }
  .case__head { display: flex; }
  .index__head { margin-top: 3mm; margin-bottom: 1mm; }
  .index { font-size: 7.6pt; }
  .index th, .index td { padding: .9mm 2.5mm .9mm 0; }
  .index thead th { font-size: 6.4pt; padding: .6mm 2.5mm .6mm 0; }
  .index__date, .index td:last-child { font-size: 6.8pt; }
  .index td:nth-child(3) { line-height: 1.4; }
  .rates { font-size: 7.8pt; }
  .rates th, .rates td { padding: 1mm 3mm 1mm 0; }
  .rates thead th { font-size: 6.4pt; padding: .6mm 3mm .6mm 0; }
  .rates tbody th { width: 34mm; }
  .rates__notes { font-size: 6.8pt; margin-top: 1.2mm !important; }
  .steps__timeline { margin-top: 1mm; font-size: 7.6pt; }
  .terms { grid-template-columns: 1fr 1fr 1fr; }
  #services .pricing { margin-top: 1mm; }
}

/* Print: the PDF is a two-page leave-behind — index table and rate card instead of full case and service write-ups */
@media print {
  .case--feature, #services .service, #services .bundle { display: none !important; }
  #work .index__head { margin-top: 0; }
  #services .section__body { display: block; }
  .pricing .mini-head { margin-bottom: 1mm; }
}
@media print {
  #services { break-before: auto; border-top: 0.6pt solid #000; }
  .index tr, .rates tr, .steps li, .terms div { break-inside: avoid; }
}
@media print {
  .intro > .wrap > .facts { display: none; }
  .intro__grid { margin-top: 3mm; }
  .proof { margin-top: 3mm; }
}
@media print {
  .index { table-layout: fixed; }
  .index th:first-child { width: 20mm; }
  .index .index__date, .index thead th:nth-child(2) { width: 17mm; }
  .index td:last-child, .index thead th:last-child { width: 24mm; white-space: normal; overflow-wrap: anywhere; }
  /* Steps as one line of stages */
  .steps { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 0.4pt solid var(--rule); }
  .steps li { display: flex; align-items: baseline; gap: 1.5mm; padding: 1.4mm 4mm 1.4mm 0; border: 0; }
  .steps li p { display: none; }
  .steps li + li::after { content: none; }
  .steps li:not(:last-child) h3::after { content: "→"; margin-left: 3mm; color: var(--ink-3); font-weight: 400; }
  .terms div { display: block; }
  .terms dd { margin-top: .5mm; }
}

/* proof label */
.proof__asof { position: static !important; text-align: right; margin: clamp(36px, 5vw, 56px) 0 8px !important; font: 400 .75rem/1 var(--mono); color: var(--ink-3); }
.proof { margin-top: 0 !important; }
@media print {
  .proof__asof { margin: 3mm 0 1mm !important; font-size: 6.5pt; }
}

/* sub-row under a figure (e.g. views not from ads) */
.spec__sub th { padding-left: 1.2em !important; font-size: .875em; color: var(--ink-3) !important; }
.spec__sub td.num { font-size: .9375rem; color: var(--ink-2); }
@media print {
  .spec--record tr:nth-child(n) { order: 3; }
  .spec--record tr:nth-child(-n+4) { order: 1; }
  .spec--record tr:nth-child(11), .spec--record tr:nth-child(12) { order: 2; }
  .spec--record tr:nth-child(5) th { padding-top: 1mm; }
  .spec--record .spec__sub td.num { font-size: 7.6pt; }
}

/* Reel of frames from sponsored videos */
.reel { list-style: none; margin: clamp(28px, 4vw, 44px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.reel li.is-empty { display: none; }
.reel figure { margin: 0; }
.reel img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: var(--paper-2); border: 1px solid var(--rule); }
.reel figcaption { margin-top: 6px; font-size: .75rem; line-height: 1.4; color: var(--ink-3); }
.reel figcaption { font-family: "IBM Plex Sans", var(--sans-ja); }
@media screen and (max-width: 760px) { .reel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

/* Views column in the partnerships index */
.index .index__views { text-align: right; font-family: var(--mono); font-size: .8125rem; white-space: nowrap; color: var(--ink); }
.index thead .index__views { color: var(--ink-3); }
.index__views small { display: block; font-size: .6875rem; color: var(--ink-3); }
html[lang="ja"] .index__views [data-l="ja"] { font-family: var(--mono), var(--sans-ja); }
.index__source { margin-top: 8px; }
@media screen and (max-width: 760px) {
  .index td.index__views { display: inline-block !important; text-align: left; margin-top: 4px; margin-right: 12px; }
  html[lang="en"] .index td.index__views::before { content: "Non-ad views  "; color: var(--ink-3); }
  html[lang="ja"] .index td.index__views::before { content: "再生（広告以外） "; color: var(--ink-3); font-family: var(--sans-ja); }
  .index__views small { display: inline; margin-left: 4px; }
}
@media print {
  .reel { display: none !important; }
  .index .index__views, .index thead th.index__views { width: 16mm; font-size: 6.8pt; }
  .index td:nth-child(3) { width: auto; }
  .index__source { font-size: 6.6pt; margin-top: 1mm; }
}
@media print {
  .index__source { display: none; }
  .index__head::after { content: "  ·  views exclude YouTube ads, as of 2026-11-05"; text-transform: none; letter-spacing: 0; }
  html[lang="ja"] .index__head::after { content: "　再生は広告経由を除く（2026-11-05時点）"; }
}
@media print {
  .spec--record tr { gap: 2mm; }
  .spec--record th { flex: 1 1 auto; min-width: 0; }
  .spec--record td { flex: 0 0 auto; }
  .index th:first-child { width: 18mm; }
  .index .index__date, .index thead th:nth-child(2) { width: 19mm; font-size: 6.4pt; white-space: normal; }
  .index .index__views, .index thead th.index__views { width: 19mm; padding-right: 3mm; }
  .index td:last-child, .index thead th:last-child { width: 22mm; }
}
@media print { .index thead th.index__views { white-space: normal; line-height: 1.2; } }
.index td.index__counting { color: var(--ink-3); font-family: var(--sans-en), var(--sans-ja); }
@media print {
  .index__head::after { content: "  ·  views exclude YouTube ads, as of 2026-11-05; under 30 days: counting"; }
  html[lang="ja"] .index__head::after { content: "　再生は広告経由を除く（2026-11-05時点、公開30日未満は集計中）"; }
}

/* ---------- Services & rates: one table ---------- */
#pricing .pricing__quote { display: none; }
html[data-pricing="hide"] #pricing .pricing__quote { display: block; margin-bottom: 16px; }
html[data-pricing="hide"] #pricing-table .num { display: none; }
.menu { margin-top: 0; }
.menu .menu__head th {
  width: auto !important; padding: 26px 0 10px; border-bottom: 1px solid var(--rule-strong);
  font-weight: 400; background: none !important; box-shadow: none !important;
}
.menu tbody.menu__group:first-of-type .menu__head th { padding-top: 14px; }
.menu__no { font: 500 .9375rem/1 var(--mono); color: var(--accent); margin-right: 12px; }
.menu__title { font-size: 1.1875rem; font-weight: 500; color: var(--ink); }
html[lang="ja"] .menu__title { font-size: 1.125rem; letter-spacing: .02em; }
.menu__where { display: inline-block; margin-left: 10px; font-size: .8125rem; color: var(--ink-3); }
.menu .tag { margin-left: 10px; vertical-align: 2px; }
.tag--fill { background: var(--accent); color: #fff; border-color: var(--accent); }
.menu__group--feature .rates__feature th { font-weight: 600; }
.menu__group--feature .rates__feature .num { font-size: 1.0625rem; }
.ticks--inline { margin: 8px 0 0; }
.ticks--inline li { padding: 4px 0 4px 18px; font-size: .875rem; border-top: 0; }
.ticks--inline li::before { top: calc(4px + .75em - 1px); }
@media screen and (max-width: 760px) {
  .menu .menu__head { display: block; padding: 0; border: 0; }
  .menu .menu__head th { display: block; padding: 22px 0 8px !important; }
  .menu__where { display: block; margin: 4px 0 0; }
  .menu tbody.menu__group { display: block; }
}
@media print {
  #services .section__body { display: block; }
  .menu .menu__head th { padding: 2mm 0 .8mm; }
  .menu tbody.menu__group:first-of-type .menu__head th { padding-top: .5mm; }
  .menu__no { font-size: 8pt; margin-right: 2mm; }
  .menu__title, html[lang="ja"] .menu__title { font-size: 8.8pt; }
  .menu__where { font-size: 7pt; margin-left: 2mm; }
  .ticks--inline { columns: 2; column-gap: 4mm; margin-top: .8mm; }
  .ticks--inline li { display: block; padding: .3mm 0 .3mm 3mm; font-size: 7.2pt; break-inside: avoid; }
  .ticks--inline li::before { width: 1.6mm; top: calc(.3mm + .7em); }
  .tag { font-size: 6pt; padding: .6mm 1mm .4mm; }
  .menu__group { break-inside: avoid; }
}

/* First screen: headline, frames and the figures strip fit in ~680px */
@media screen and (min-width: 761px) {
  .intro { padding-top: clamp(32px, 4.5vw, 64px); }
  .kicker { margin-bottom: 14px; }
  .reel { margin-top: 28px; }
  .reel figcaption { margin-top: 4px; }
  .proof__asof { margin: 18px 0 6px !important; }
  .proof div { padding-top: 12px; padding-bottom: 14px; }
  .intro__grid { margin-top: clamp(28px, 4vw, 48px); }
}
@media screen and (min-width: 761px) {
  html[lang="en"] .intro__title { max-width: 33ch; font-size: clamp(1.875rem, 3.6vw, 2.875rem); }
}
@media print {
  .intro__grid, .ticks--inline { display: none !important; }
}

/* Key figures: keep the four numbers on one line when a label wraps to two lines */
.proof div { justify-content: flex-end; }
