/* AIパーソナル LP — 「閉院後の灯り」
   夜の院から始まり、朝の院で終わる。温かい色はボタン（灯り）だけ。 */

@font-face {
  font-family: "Noto Serif JP";
  src: url("../fonts/NotoSerifJP-VF.subset.woff2") format("woff2");
  font-weight: 200 900;
  font-display: swap;
}
@font-face {
  font-family: "Noto Sans JP";
  src: url("../fonts/NotoSansJP-VF.subset.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --night: #0F1416;
  --night-2: #171E21;
  --paper: #FBF8F2;
  --sand: #F2EDE3;
  --card: #FFFFFF;
  --ink: #1C1F20;
  --ink-sub: #5F6568;
  --rule: #E1D9CA;
  --rule-night: rgba(244, 239, 230, .16);
  --on-night: #F4EFE6;
  --on-night-sub: #B4B9B5;
  --lamp: #F4B740;
  --lamp-hover: #E6A520;
  --lamp-deep: #A86E08;
  --pending-bg: #FFF1B8;
  --pending-ink: #6B5300;

  --serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;

  --container: 1120px;
  --read: 720px;
  --gutter: 40px;
  --section-y: 120px;
  --radius: 10px;
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }

body {
  margin: 0;
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.95;
  letter-spacing: .04em;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  line-break: strict;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
}

img, svg { max-width: 100%; display: block; }
img { height: auto; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: inherit; }

h1, h2, h3 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 700;
  font-feature-settings: "palt";
  letter-spacing: .03em;
  text-wrap: balance;
}

:focus-visible { outline: 2px solid var(--lamp-deep); outline-offset: 3px; border-radius: 4px; }
.night :focus-visible { outline-color: var(--lamp); }

.skip {
  position: absolute; left: 16px; top: -56px; z-index: 200;
  background: var(--ink); color: #fff; padding: 8px 16px; border-radius: 4px;
  text-decoration: none; font-size: 14px;
}
.skip:focus { top: 12px; }
.sp { display: none; }

/* ---------- 器 ---------- */
.container {
  width: 100%;
  max-width: calc(var(--container) + var(--gutter) * 2);
  margin-inline: auto; padding-inline: var(--gutter);
}
.read { max-width: var(--read); margin-inline: auto; }
.section { padding-block: var(--section-y); }
.section--sand { background: var(--sand); }
.night { background: var(--night); color: var(--on-night); }
.night--2 { background: var(--night-2); }

.eyebrow {
  display: flex; align-items: center; gap: 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .14em; color: var(--ink-sub);
}
.eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; flex: none; }
.night .eyebrow { color: var(--on-night-sub); }

.h2 { font-size: clamp(28px, 3.5vw, 46px); line-height: 1.45; margin-top: 20px; }
.lead { font-size: 18px; line-height: 2; margin-top: 28px; }
.body > * + * { margin-top: 1.5em; }
.note { font-size: 13px; line-height: 1.8; color: var(--ink-sub); }
.night .note { color: var(--on-night-sub); }

.pending {
  display: inline-block; background: var(--pending-bg); color: var(--pending-ink);
  font-size: 13px; line-height: 1.6; letter-spacing: .02em; padding: 4px 10px; border-radius: 4px;
}
.pending::before { content: "要確認｜"; font-weight: 700; }

/* ---------- 灯り（ボタン） ---------- */
.cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 60px; padding: 0 40px;
  background: var(--lamp); color: #1B1608;
  font-family: var(--sans); font-size: 17px; font-weight: 700;
  font-feature-settings: "palt"; letter-spacing: .06em;
  text-decoration: none; border-radius: 999px;
  box-shadow: 0 0 0 0 rgba(244, 183, 64, 0);
  transition: background-color .2s ease, box-shadow .3s ease, transform .2s ease;
}
.cta::after {
  content: ""; width: 18px; height: 10px; flex: none; background: currentColor;
  clip-path: polygon(0 4px, 13px 4px, 13px 0, 18px 5px, 13px 10px, 13px 6px, 0 6px);
  transition: transform .2s ease;
}
.cta:hover { background: var(--lamp-hover); box-shadow: 0 0 0 8px rgba(244, 183, 64, .16); }
.cta:hover::after { transform: translateX(3px); }
.cta:active { transform: translateY(1px); }
.cta--s { min-height: 44px; padding: 0 24px; font-size: 14px; gap: 10px; }
.cta--s::after { width: 14px; height: 8px; clip-path: polygon(0 3px, 10px 3px, 10px 0, 14px 4px, 10px 8px, 10px 5px, 0 5px); }

.cta-block { margin-top: 44px; }
.cta-sub { margin-top: 14px; font-size: 13px; color: var(--ink-sub); letter-spacing: .03em; }
.night .cta-sub { color: var(--on-night-sub); }

/* ---------- 上の帯（スクロール後に出る） ---------- */
.topbar {
  position: fixed; inset: 0 0 auto 0; z-index: 60;
  background: rgba(251, 248, 242, .94); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--rule);
  transform: translateY(-110%); transition: transform .3s ease;
}
.topbar.is-on { transform: none; }
.topbar__in { display: flex; align-items: center; justify-content: space-between; height: 68px; }
.topbar__logo img { height: 22px; width: auto; }

/* ---------- 最初の画面（夜） ---------- */
.hero { position: relative; min-height: min(100svh, 920px); display: flex; flex-direction: column; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 78% 50%; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(15,20,22,.94) 0%, rgba(15,20,22,.82) 34%, rgba(15,20,22,.28) 62%, rgba(15,20,22,0) 82%),
    linear-gradient(0deg, rgba(15,20,22,.72) 0%, rgba(15,20,22,0) 34%);
}
.hero > .container { position: relative; z-index: 2; }
.hero__head { display: flex; align-items: center; justify-content: space-between; height: 84px; }
.hero__logo img { height: 24px; width: auto; filter: brightness(0) invert(1); opacity: .92; }
.hero__ghost {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 20px;
  border: 1px solid rgba(244,239,230,.5); border-radius: 999px;
  font-size: 13px; font-weight: 700; letter-spacing: .06em; text-decoration: none; color: var(--on-night);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.hero__ghost:hover { background: var(--on-night); color: var(--night); border-color: var(--on-night); }
.hero__main { flex: 1; display: flex; align-items: center; padding-block: 40px 96px; }
.hero__copy { max-width: 880px; }
.hero__title { margin-top: 26px; font-size: clamp(34px, 4vw, 58px); line-height: 1.42; color: #fff; }
.hero__lead { margin-top: 32px; max-width: 560px; font-size: 17px; line-height: 2; color: var(--on-night); }
.hero__lead p + p { margin-top: .7em; }
.hero__first {
  margin-top: 28px; padding-left: 20px; max-width: 560px;
  border-left: 2px solid var(--lamp);
  font-family: var(--serif); font-weight: 700; font-size: 19px; line-height: 1.8;
  font-feature-settings: "palt"; letter-spacing: .04em; color: #fff;
}
.hero .cta-block { margin-top: 36px; }
.hero__price { margin-top: 4px; font-size: 13px; color: var(--on-night-sub); letter-spacing: .03em; }

/* ---------- 第2段：任せると（夜の続き） ---------- */
.day {
  position: relative; margin-top: 64px;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px;
}
.day::before { content: ""; position: absolute; left: 6px; right: 0; top: 6px; height: 1px; background: var(--rule-night); }
.day__item { position: relative; padding-top: 44px; }
.day__item::before {
  content: ""; position: absolute; left: 0; top: 0; width: 13px; height: 13px; border-radius: 50%;
  background: var(--lamp); box-shadow: 0 0 0 6px rgba(244,183,64,.14);
}
.day__tag { font-size: 13px; font-weight: 700; letter-spacing: .18em; color: var(--lamp); }
.day__text {
  margin-top: 12px; font-family: var(--serif); font-weight: 500; font-size: 19px; line-height: 1.85;
  font-feature-settings: "palt"; letter-spacing: .04em; color: #fff;
}

.s2 { padding-bottom: 0; }
.swap {
  position: relative; z-index: 2;
  margin-top: 88px; margin-bottom: -96px;
  background: var(--card); color: var(--ink);
  border-radius: var(--radius);
  box-shadow: 0 24px 60px rgba(15, 20, 22, .18);
  padding: 52px 56px 48px;
}
.swap__title { font-family: var(--serif); font-weight: 700; font-size: 24px; line-height: 1.6; font-feature-settings: "palt"; }
.swap__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 30px; }
.swap__list li { padding: 2px 32px; border-left: 1px solid var(--rule); font-size: 16px; line-height: 1.9; }
.swap__list li:first-child { padding-left: 0; border-left: 0; }
.swap__note { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--rule); font-size: 14px; color: var(--ink-sub); }
.after-swap { padding-top: calc(var(--section-y) + 96px); }

/* ---------- 第3段：パソコンが苦手でも ---------- */
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 88px; align-items: start; margin-top: 64px; }
.voice {
  font-family: var(--serif); font-weight: 700; font-size: 22px; line-height: 1.9;
  font-feature-settings: "palt"; letter-spacing: .04em;
}
.screen {
  margin-top: 40px; border: 1px solid var(--rule); border-radius: var(--radius);
  background: var(--card); padding: 22px 22px 26px;
}
.screen__bar { display: flex; gap: 6px; }
.screen__bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--rule); }
.screen__rows { margin-top: 20px; display: grid; gap: 12px; }
.screen__rows span { height: 10px; border-radius: 5px; background: var(--sand); }
.screen__rows span:nth-child(1) { width: 62%; }
.screen__rows span:nth-child(2) { width: 84%; }
.screen__rows span:nth-child(3) { width: 48%; }
.screen__act { position: relative; margin-top: 26px; display: flex; align-items: center; gap: 18px; }
.screen__btn {
  position: relative; flex: none; width: 112px; height: 40px; border-radius: 8px;
  background: var(--lamp); box-shadow: 0 0 0 7px rgba(244,183,64,.2), 0 0 0 8px rgba(168,110,8,.35);
}
.screen__say {
  position: relative; font-family: var(--serif); font-weight: 700; font-size: 16px; line-height: 1.6;
  font-feature-settings: "palt"; padding-left: 34px;
}
.screen__say::before { content: ""; position: absolute; left: 0; top: 50%; width: 24px; height: 1px; background: var(--lamp-deep); }
.screen__cap { margin-top: 18px; font-size: 12px; color: var(--ink-sub); line-height: 1.7; }

/* ---------- 第4段：無料の30分（夜） ---------- */
.calc {
  margin-top: 56px; padding-block: 40px;
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 64px; align-items: center;
  border-top: 1px solid var(--rule-night); border-bottom: 1px solid var(--rule-night);
}
.calc__eq {
  font-family: var(--serif); font-weight: 700; font-feature-settings: "palt";
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font-size: 20px; line-height: 1.4;
}
.calc__grp { display: inline-flex; align-items: baseline; gap: 6px 14px; white-space: nowrap; }
.calc__eq b { font-size: 52px; font-weight: 700; letter-spacing: 0; line-height: 1; }
.calc__eq .op { font-size: 22px; opacity: .6; }
.calc__eq .res { color: var(--lamp); }
.calc__text { font-size: 16px; line-height: 2; color: var(--on-night); }
.calc__text p + p { margin-top: .7em; }

.count { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px; margin-top: 72px; }
.count__num { font-family: var(--serif); font-weight: 700; font-size: 56px; line-height: 1; color: var(--lamp); letter-spacing: 0; }
.count__title { margin-top: 22px; font-size: 21px; line-height: 1.65; color: #fff; }
.count__text { margin-top: 16px; font-size: 15px; line-height: 1.95; color: var(--on-night-sub); }
.count__text p + p { margin-top: .7em; }

.wont {
  margin-top: 80px; padding: 44px 52px 48px;
  background: var(--night-2); border-radius: var(--radius);
  display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: 48px;
}
.wont__title { font-family: var(--serif); font-weight: 700; font-size: 23px; line-height: 1.6; font-feature-settings: "palt"; color: #fff; }
.wont__list li { position: relative; padding-left: 34px; font-size: 16px; line-height: 1.9; }
.wont__list li + li { margin-top: 14px; }
.wont__list li::before, .wont__list li::after {
  content: ""; position: absolute; left: 4px; top: .95em; width: 15px; height: 1px; background: var(--on-night-sub);
}
.wont__list li::before { transform: rotate(45deg); }
.wont__list li::after { transform: rotate(-45deg); }
.prep { margin-top: 56px; font-size: 17px; line-height: 2; }

/* ---------- 第5段：流れ ---------- */
.flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; margin-top: 64px; counter-reset: flow; }
.flow__step { position: relative; padding-top: 76px; counter-increment: flow; }
.flow__step::before {
  content: counter(flow); position: absolute; left: 0; top: 0;
  width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--ink);
  display: grid; place-items: center; background: var(--paper);
  font-family: var(--serif); font-weight: 700; font-size: 19px; letter-spacing: 0;
}
.flow__step::after { content: ""; position: absolute; left: 60px; right: -24px; top: 24px; height: 1px; background: var(--rule); }
.flow__step:last-child::after { display: none; }
.flow__title { font-family: var(--serif); font-weight: 700; font-size: 20px; line-height: 1.6; font-feature-settings: "palt"; }
.flow__text { margin-top: 12px; font-size: 15px; line-height: 1.85; color: var(--ink-sub); }

/* ---------- 第6段：続ける場合 ---------- */
.plan {
  margin-top: 64px; background: var(--card); border-radius: var(--radius);
  box-shadow: 0 1px 0 var(--rule), 0 20px 50px rgba(28, 31, 32, .06);
  padding: 56px 60px 56px;
}
.plan__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; padding-bottom: 32px; border-bottom: 1px solid var(--rule); }
.plan__name { font-family: var(--serif); font-weight: 700; font-size: 28px; line-height: 1.4; letter-spacing: .04em; }
.plan__what { margin-top: 8px; font-size: 15px; color: var(--ink-sub); }
.plan__price { font-family: var(--serif); font-weight: 700; line-height: 1; white-space: nowrap; font-size: 20px; letter-spacing: 0; }
.plan__price b { font-size: 52px; font-weight: 700; margin-inline: 6px 2px; }
.plan__price small { font-family: var(--sans); font-weight: 400; font-size: 14px; color: var(--ink-sub); margin-left: 4px; }
.plan__list { margin-top: 36px; }
.plan__list li { position: relative; padding-left: 38px; font-size: 16px; line-height: 1.95; }
.plan__list li + li { margin-top: 20px; }
.plan__list li::before {
  content: ""; position: absolute; left: 3px; top: .7em; width: 17px; height: 9px;
  border-left: 2px solid var(--lamp-deep); border-bottom: 2px solid var(--lamp-deep); transform: rotate(-45deg);
}
.plan__list strong { font-weight: 700; }
.plan__self { margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--rule); font-size: 16px; line-height: 2; }
.plan__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; margin-top: 36px; padding-top: 36px; border-top: 1px solid var(--rule); }
.plan__sub { font-family: var(--serif); font-weight: 700; font-size: 18px; line-height: 1.6; font-feature-settings: "palt"; margin-bottom: 14px; }
.plain li { position: relative; padding-left: 20px; font-size: 15px; line-height: 1.9; }
.plain li + li { margin-top: 6px; }
.plain li::before { content: ""; position: absolute; left: 2px; top: .92em; width: 9px; height: 1px; background: var(--ink-sub); }
.plan__terms { font-size: 15px; line-height: 1.95; }
.plan__terms p + p { margin-top: .9em; }

/* ---------- 第7段：担当 ---------- */
.person { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 80px; align-items: start; margin-top: 64px; }
.person__photo {
  aspect-ratio: 4 / 5; border-radius: var(--radius); background: var(--sand); border: 1px dashed var(--rule);
  display: grid; place-items: center; text-align: center; font-size: 13px; color: var(--ink-sub); line-height: 1.8; padding: 24px;
}
.person__name { font-family: var(--serif); font-weight: 700; font-size: 30px; line-height: 1.4; letter-spacing: .08em; }
.person__role { margin-top: 6px; font-size: 14px; color: var(--ink-sub); }
.person__body { margin-top: 28px; }
.person__cap { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--rule); font-size: 16px; }

/* ---------- 第8段：よくある質問 ---------- */
.faq { margin-top: 56px; border-top: 1px solid var(--rule); }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary {
  list-style: none; cursor: pointer;
  display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: baseline;
  padding: 28px 4px; font-size: 18px; font-weight: 700; line-height: 1.7;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: "Q"; font-family: var(--serif); font-size: 22px; color: var(--lamp-deep); letter-spacing: 0; }
.faq summary::after {
  content: ""; width: 10px; height: 10px; align-self: center;
  border-right: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink);
  transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s ease;
}
.faq details[open] summary::after { transform: rotate(-135deg) translate(-2px, -2px); }
.faq__a { padding: 0 4px 32px 46px; font-size: 16px; line-height: 2; }
.faq__a p + p { margin-top: .6em; }

/* ---------- 第9段：締め（朝） ---------- */
.dawn { position: relative; overflow: hidden; padding-block: 140px 150px; background: #EDE9E0; }
.dawn__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 80% 50%; }
.dawn::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(90deg, rgba(251,248,242,.96) 0%, rgba(251,248,242,.88) 40%, rgba(251,248,242,.3) 66%, rgba(251,248,242,0) 84%);
}
.dawn .container { position: relative; z-index: 2; }
.dawn__copy { max-width: 760px; }
.dawn .h2 { margin-top: 0; font-size: clamp(28px, 3vw, 42px); line-height: 1.6; }
.dawn__text { margin-top: 32px; font-size: 17px; line-height: 2.1; }
.dawn__text p + p { margin-top: 1em; }

/* ---------- フッター ---------- */
.footer { padding-block: 52px 60px; border-top: 1px solid var(--rule); }
.footer__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; }
.footer__logo img { height: 22px; width: auto; }
.footer__by { font-size: 13px; color: var(--ink-sub); margin-top: 10px; }
.footer__links { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 13px; color: var(--ink-sub); }

/* ---------- スマホ固定バー ---------- */
.bar { display: none; }

/* ============ タブレット以下 ============ */
@media (max-width: 960px) {
  :root { --section-y: 96px; }
  .day { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 40px; }
  .day::before { display: none; }
  .split { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .calc { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .count { gap: 36px; }
  .flow { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 36px; }
  .flow__step:nth-child(2)::after { display: none; }
  .person { gap: 48px; }
}

/* ============ スマホ ============ */
@media (max-width: 767px) {
  :root { --gutter: 22px; --section-y: 72px; }
  html { scroll-padding-top: 16px; }
  body { font-size: 16px; line-height: 1.9; padding-bottom: calc(92px + env(safe-area-inset-bottom)); }
  .sp { display: inline; }
  .pc { display: none; }
  .topbar { display: none; }

  .eyebrow { font-size: 12px; gap: 10px; letter-spacing: .1em; }
  .eyebrow::before { width: 22px; }
  .h2 { font-size: 26px; line-height: 1.5; margin-top: 14px; }
  .lead { font-size: 16px; margin-top: 20px; }
  .cta { width: 100%; min-height: 56px; padding: 0 20px; font-size: 16px; }
  .cta-block { margin-top: 32px; }
  .cta-sub { text-align: center; font-size: 12px; }

  .hero { min-height: 0; }
  .hero__bg { object-position: 74% 0; height: 62%; }
  .hero::before {
    background: linear-gradient(180deg, rgba(15,20,22,.3) 0%, rgba(15,20,22,.55) 16%, rgba(15,20,22,.92) 36%, var(--night) 58%);
  }
  .hero__head { height: 60px; }
  .hero__logo img { height: 19px; }
  .hero__ghost { display: none; }
  .hero__main { padding-block: 128px 52px; align-items: flex-start; }
  .hero__title { margin-top: 14px; font-size: 29px; line-height: 1.5; }
  .hero__lead { margin-top: 20px; font-size: 15px; line-height: 1.9; }
  .hero__first { margin-top: 20px; padding-left: 14px; font-size: 16px; line-height: 1.75; }
  .hero .cta-block { margin-top: 24px; }
  .hero__price { text-align: center; font-size: 12px; }

  .day { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 40px; }
  .day::before { display: block; left: 6px; right: auto; top: 8px; bottom: 30px; width: 1px; height: auto; }
  .day__item { padding: 0 0 30px 38px; }
  .day__item:last-child { padding-bottom: 0; }
  .day__item::before { top: 6px; }
  .day__text { margin-top: 6px; font-size: 17px; line-height: 1.8; }

  .swap { margin-top: 56px; margin-bottom: -56px; padding: 32px 24px 30px; }
  .swap__title { font-size: 20px; }
  .swap__list { grid-template-columns: minmax(0, 1fr); margin-top: 18px; }
  .swap__list li, .swap__list li:first-child { padding: 16px 0; border-left: 0; border-top: 1px solid var(--rule); font-size: 15px; }
  .swap__list li:first-child { border-top: 0; padding-top: 0; }
  .swap__note { margin-top: 4px; padding-top: 18px; font-size: 13px; }
  .after-swap { padding-top: calc(var(--section-y) + 56px); }

  .split { margin-top: 36px; gap: 36px; }
  .voice { font-size: 19px; line-height: 1.85; }
  .screen { margin-top: 28px; padding: 18px 18px 22px; }
  .screen__btn { width: 92px; height: 36px; }
  .screen__say { font-size: 15px; padding-left: 28px; }
  .screen__say::before { width: 18px; }

  .calc { margin-top: 36px; padding-block: 28px; }
  .calc__eq { font-size: 16px; gap: 4px 10px; }
  .calc__eq b { font-size: 38px; }
  .calc__eq .op { font-size: 18px; }
  .calc__text { font-size: 15px; line-height: 1.9; }
  .count { grid-template-columns: minmax(0, 1fr); gap: 40px; margin-top: 48px; }
  .count__num { font-size: 42px; }
  .count__title { font-size: 20px; margin-top: 14px; }
  .wont { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 52px; padding: 30px 24px 32px; }
  .wont__title { font-size: 20px; }
  .wont__list li { font-size: 15px; padding-left: 30px; }
  .prep { margin-top: 40px; font-size: 16px; }

  .flow { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 40px; }
  .flow__step { padding: 0 0 34px 66px; min-height: 82px; }
  .flow__step::before { width: 44px; height: 44px; font-size: 17px; }
  .flow__step::after, .flow__step:nth-child(2)::after { display: block; left: 22px; right: auto; top: 50px; bottom: 6px; width: 1px; height: auto; }
  .flow__step:last-child { padding-bottom: 0; }
  .flow__step:last-child::after { display: none; }
  .flow__title { font-size: 19px; padding-top: 6px; }
  .flow__text { font-size: 14px; margin-top: 6px; }

  .plan { margin-top: 40px; padding: 32px 24px 36px; }
  .plan__head { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-bottom: 24px; }
  .plan__name { font-size: 24px; }
  .plan__what { font-size: 14px; }
  .plan__price { font-size: 16px; }
  .plan__price b { font-size: 42px; }
  .plan__list { margin-top: 26px; }
  .plan__list li { font-size: 15px; padding-left: 32px; }
  .plan__self { font-size: 15px; margin-top: 28px; padding-top: 24px; }
  .plan__cols { grid-template-columns: minmax(0, 1fr); gap: 30px; margin-top: 28px; padding-top: 28px; }
  .plain li, .plan__terms { font-size: 14px; }

  .person { grid-template-columns: minmax(0, 1fr); gap: 30px; margin-top: 40px; }
  .person__photo { max-width: 240px; }
  .person__name { font-size: 26px; }
  .person__cap { font-size: 15px; margin-top: 26px; padding-top: 22px; }

  .faq { margin-top: 36px; }
  .faq summary { font-size: 16px; padding: 22px 2px; gap: 14px; }
  .faq summary::before { font-size: 19px; }
  .faq__a { font-size: 15px; padding: 0 2px 26px 34px; line-height: 1.9; }

  .dawn { padding-block: 0 64px; background: var(--paper); }
  .dawn__bg { position: static; height: 240px; object-position: 78% 50%; }
  .dawn::before { display: none; }
  .dawn .container { padding-top: 40px; }
  .dawn .h2 { font-size: 25px; line-height: 1.6; }
  .dawn__text { font-size: 15px; margin-top: 22px; line-height: 2; }

  .footer { padding-block: 40px 44px; }
  .footer__in { display: block; }
  .footer__links { margin-top: 18px; }

  .bar {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    background: rgba(251, 248, 242, .97); box-shadow: 0 -6px 24px rgba(15, 20, 22, .12);
    padding: 10px 22px calc(10px + env(safe-area-inset-bottom));
    transform: translateY(110%); transition: transform .28s ease;
  }
  .bar.is-on { transform: none; }
  .bar .cta { min-height: 50px; }
  .bar__sub { margin-top: 4px; text-align: center; font-size: 11px; color: var(--ink-sub); letter-spacing: .03em; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
