/* Elio Kokugo Kakomon base CSS — mechanically consolidated from inline <style> blocks. Order preserved. */

/* source-style-01 */
/* cyrillic-ext */

/* cyrillic-ext */

/* cyrillic */
/* cyrillic */
/* elio Web Design System
   ------------------------------------------------------------------
   Global entry point. Consumers link THIS file only.
   It is a manifest of @imports; all real declarations live in tokens/. */
/* elio Web Design System — Fonts
   NOTE: The original elio site fonts are not provided. These are the nearest
   Google Fonts matches and are SUBSTITUTIONS (flagged in readme.md):
     - Japanese Mincho  → Noto Serif JP
     - Latin display    → Cormorant Garamond (elegant classical serif, wide tracking)
     - UI / utility sans→ Noto Sans JP
   Importing here registers the webfonts (@font-face) for all consumers. */
/* cyrillic-ext */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic-ext */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* cyrillic */
/* vietnamese */
/* latin-ext */
/* latin */
/* elio Web Design System — Color tokens
   Palette derived from the elio brand: metallic gold script logo, deep crimson
   membership red, charcoal ink, and warm neutral papers. Refined, calm, trusted. */
:root {
  /* ---- Brand: Gold (metallic script logo, hairlines, eyebrow accents) ---- */
  --gold-100: #F6ECC9;   /* pale gold wash */
  --gold-300: #E7C86A;   /* light highlight of the metallic gradient */
  --gold-500: #C8A23A;   /* base gold */
  --gold-600: #B4881F;   /* deep gold */
  --gold-700: #A97F1B;   /* shadow gold */
  /* Metallic gradient used on the logo / gold rules */
  --gold-gradient: linear-gradient(160deg, #EFD98A 0%, #D9B443 38%, #B4881F 72%, #E7C86A 100%); /* @kind color */

  /* ---- Brand: Red (membership crimson, primary CTA) ---- */
  --red-500: #B02A24;    /* logo background crimson (brightest) */
  --red-600: #A6242A;    /* primary CTA / button base */
  --red-700: #8A1D22;    /* hover / pressed */
  --red-800: #6E171B;    /* deep crest red */

  /* ---- Ink / neutrals (warm-cool charcoal + warm papers) ---- */
  --ink-900: #1A1A1A;    /* footer, dark sections */
  --ink-800: #262524;    /* icon tiles, dark UI */
  --ink-700: #33322F;    /* headings on light */
  --ink-600: #4A4844;    /* body text */
  --ink-500: #6B6863;    /* secondary text */
  --ink-400: #8E8B84;    /* muted / captions */
  --ink-300: #B7B4AD;    /* disabled text */

  --paper-0:  #FFFFFF;   /* pure card white */
  --paper-50: #FBFAF8;   /* warm off-white page */
  --paper-100:#F5F3F0;   /* warm neutral */
  --paper-200:#F1F0EE;   /* light gray section band */
  --paper-300:#E9E7E3;   /* raised panel */

  --line-200: #E3E1DD;   /* hairline / divider */
  --line-300: #D4D1CB;   /* stronger border */

  /* ---- Antique-olive eyebrow (section labels: EDUCATIONAL POLICY, etc.) ---- */
  --olive-500: #9A8B4F;
  --olive-600: #857643;

  /* ---- Semantic aliases ---- */
  --brand-primary:   var(--red-600);
  --brand-accent:    var(--gold-500);
  --surface-page:    var(--paper-50);
  --surface-card:    var(--paper-0);
  --surface-band:    var(--paper-200);
  --surface-dark:    var(--ink-900);

  --text-heading:    var(--ink-700);
  --text-body:       var(--ink-600);
  --text-muted:      var(--ink-400);
  --text-eyebrow:    var(--olive-500);
  --text-on-dark:    #F3F1EC;
  --text-on-dark-muted: #B7B2A8;

  --border-hairline: var(--line-200);
  --border-strong:   var(--line-300);

  --focus-ring:      color-mix(in srgb, var(--red-600) 45%, transparent);
}

/* elio Web Design System — Typography tokens
   The elio brand reads as a refined Japanese Mincho voice paired with a classical
   Latin serif for English display (STUDY × FUTURE, BELIEF, COURSE). Small UI labels
   use a quiet sans. Generous tracking on Latin caps; airy line-height on body. */
:root {
  /* ---- Families ---- */
  --font-serif-jp:   "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  --font-serif-latin:"Cormorant Garamond", "Times New Roman", serif;
  --font-sans-jp:    "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;

  /* Semantic roles */
  --font-display:    var(--font-serif-latin); /* English hero / eyebrows */
  --font-heading:    var(--font-serif-jp);    /* Japanese section headings */
  --font-body:       var(--font-serif-jp);    /* Japanese body copy */
  --font-ui:         var(--font-sans-jp);     /* nav, buttons, small labels */

  /* ---- Type scale (px) ---- */
  --fs-eyebrow:  13px;   /* EDUCATIONAL POLICY etc. */
  --fs-caption:  13px;
  --fs-sm:       14px;
  --fs-body:     16px;
  --fs-lg:       18px;
  --fs-h4:       20px;
  --fs-h3:       24px;
  --fs-h2:       30px;
  --fs-h1:       40px;
  --fs-display:  56px;   /* STUDY × FUTURE hero */
  --fs-display-lg: 72px;

  /* ---- Weights ---- */
  --fw-regular: 400; /* @kind font */
  --fw-medium:  500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:    700; /* @kind font */

  /* ---- Line heights ---- */
  --lh-tight:   1.2; /* @kind font */
  --lh-heading: 1.5; /* @kind font */
  --lh-body:    1.9; /* @kind font */
  --lh-relaxed: 2.1; /* @kind font */

  /* ---- Letter spacing ---- */
  --ls-display: 0.12em; /* @kind font */
  --ls-eyebrow: 0.32em; /* @kind font */
  --ls-heading: 0.08em; /* @kind font */
  --ls-ui:      0.04em; /* @kind font */
  --ls-body:    0.02em; /* @kind font */
}

/* elio Web Design System — Spacing & layout tokens
   8px base rhythm with a couple of finer steps. Generous section padding echoes the
   airy, high-whitespace elio site. */
:root {
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  24px;
  --space-6:  32px;
  --space-7:  48px;
  --space-8:  64px;
  --space-9:  96px;
  --space-10: 128px;

  /* Section vertical rhythm */
  --section-pad-y:   var(--space-9);
  --content-gap:     var(--space-6);

  /* Layout */
  --sidebar-w:   116px;   /* fixed left nav rail */
  --content-max: 1040px;  /* readable content column */
  --page-max:    1280px;
}

/* elio Web Design System — Effects: radius, shadow, border, motion
   The elio look is flat and calm: near-square corners, hairline borders, and soft
   low-contrast shadows only where elevation is needed. No glossy or heavy drops. */
:root {
  /* ---- Radius (mostly sharp / very subtle) ---- */
  --radius-none: 0px;
  --radius-xs:   2px;    /* buttons, tags */
  --radius-sm:   4px;    /* cards, inputs */
  --radius-md:   8px;
  --radius-pill: 999px;  /* circular number badges, icon rings */

  /* ---- Borders ---- */
  --border-width: 1px;
  --border-hairline-style: 1px solid var(--line-200);
  --border-strong-style:   1px solid var(--line-300);

  /* ---- Shadows (soft, warm-neutral, low opacity) ---- */
  --shadow-none: none;
  --shadow-sm:  0 1px 2px rgba(26,26,26,0.04), 0 1px 3px rgba(26,26,26,0.06);
  --shadow-md:  0 4px 14px rgba(26,26,26,0.07);
  --shadow-lg:  0 12px 34px rgba(26,26,26,0.10);
  --shadow-card:0 2px 10px rgba(40,37,34,0.06);

  /* ---- Motion (quiet, understated) ---- */
  --ease-standard: cubic-bezier(0.4, 0.0, 0.2, 1); /* @kind other */
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1); /* @kind other */
  --dur-fast:  140ms; /* @kind other */
  --dur-base:  240ms; /* @kind other */
  --dur-slow:  480ms; /* @kind other */

  /* Dark-overlay gradient used over hero photography */
  --hero-scrim: linear-gradient(90deg, rgba(20,20,20,0.55) 0%, rgba(20,20,20,0.15) 55%, rgba(20,20,20,0) 100%); /* @kind color */
  --hero-scrim-bottom: linear-gradient(180deg, rgba(20,20,20,0) 40%, rgba(20,20,20,0.35) 100%); /* @kind color */
}


:root{
  /* 横幅 */
  --lp-wide:   1120px;  /* カードグリッド等の最大幅 */
  --lp-mid:     880px;  /* 図版を含む読み物 */
  --lp-narrow:  680px;  /* 本文だけの読み物（FAQ・リード文） */

  /* 左右ガター：狭い画面ほど小さく。ここが崩れの元凶だったので固定値は禁止 */
  --lp-gutter: clamp(20px, 5vw, 64px);

  /* セクションの上下リズム */
  --lp-sec-y:  clamp(56px, 7.5vw, 104px);

  /* 日本語本文の可読行長（1行 32〜36字を目安に） */
  --lp-measure: 34em;

  /* 流体タイプスケール
     すべて clamp。最小値は 375px 端末で溢れない値を実測して決めている。
     HTML側で font-size をインライン指定しない（clampが無効化されるため）。 */
  --lp-fs-hero:  clamp(29px, 5.6vw, 50px);
  --lp-fs-h2:    clamp(23px, 3.4vw, 34px);
  --lp-fs-h3:    clamp(19px, 2.0vw, 23px);
  --lp-fs-lead:  clamp(17px, 1.9vw, 21px);
  --lp-fs-body:  clamp(16px, 1.4vw, 18px);
  --lp-fs-sm:    clamp(14px, 1.2vw, 15.5px);
  --lp-fs-label: clamp(12px, 1.1vw, 13px);

  /* ヘッダー高さ（アンカースクロールのオフセットに使う） */
  --lp-header-h: 68px;

  /* CTA帯の背景写真。画像パスをCSSの一箇所に閉じ込めておく */
  --cta-band-photo: url("../img/cta-background.jpg");
}*,
*::before,
*::after{ box-sizing: border-box; }html{
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--lp-header-h) + var(--space-4));
}
body{
  margin: 0;
  background: var(--surface-page);
  color: var(--text-body);
  font-family: var(--font-body);
  font-size: var(--lp-fs-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  line-break: strict;
  text-wrap: pretty;
  /* 追従CTAの高さ分。これが無いと最下部コンテンツがCTAに隠れる */
  padding-bottom: 84px;
}
@media (min-width: 721px) {body{ padding-bottom: 92px; }}img,
video,
svg{ max-width: 100%; height: auto; }a{ color: var(--red-700); text-decoration: none; transition: color var(--dur-fast) var(--ease-standard); }a:hover{ color: var(--red-600); }h1,
h2,
h3,
h4{ font-family: var(--font-heading); color: var(--text-heading); margin: 0; }.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  font-family: var(--font-ui);
  font-size: var(--lp-fs-body);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-ui);
  line-height: 1.4;
  padding: var(--space-4) var(--space-6);
  min-height: 52px;            /* タップターゲット確保 */
  border: 1px solid var(--red-600);
  border-radius: var(--radius-xs);
  background: var(--red-600);
  color: var(--paper-0);
  cursor: pointer;
  text-align: center;
  transition: background var(--dur-base) var(--ease-standard),
              border-color var(--dur-base) var(--ease-standard);
}.btn:hover{ background: var(--red-700); border-color: var(--red-700); color: var(--paper-0); }.btn--sm{ min-height: 42px; padding: var(--space-2) var(--space-5); font-size: var(--lp-fs-sm); }

/* スマホ：コース名と電話「番号」は畳み、電話はアイコンボタンに。
   旧実装はここが無く、ヘッダーが画面外にはみ出していた。 */

.float-cta{
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 45;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-3) var(--lp-gutter);
  background: color-mix(in srgb, var(--ink-900) 93%, transparent);
  backdrop-filter: blur(6px);
  transform: translateY(110%);
  transition: transform var(--dur-base) var(--ease-out);
}.float-cta.is-visible{ transform: translateY(0); }.float-cta__text{
  font-family: var(--font-heading);
  font-size: var(--lp-fs-sm);
  font-weight: var(--fw-medium);
  color: var(--paper-0);
  letter-spacing: var(--ls-heading);
}.float-cta__text .hi{ color: var(--gold-300); font-weight: var(--fw-bold); }.float-cta .btn{ flex-shrink: 0; }
/* 狭い画面では説明文を出さない。両方入れるとボタン側が3行に折れて
   バーが画面の1/4を占めてしまう（希少性の訴求はヒーローのチップで担保）。 */
@media (max-width: 620px) {.float-cta{ padding-inline: var(--space-4); }.float-cta__text{ display: none; }.float-cta .btn{ flex: 1; white-space: nowrap; }}
@media (prefers-reduced-motion: reduce) {.float-cta{ transition: none; }}

/* --------------------------------------------------------------------------
   18. スクロール演出
   旧実装は ANIM-OFF で無効化されたまま納品されていた。
   対象セレクタを実在する要素に直したうえで復帰させる。
   reduce 指定時は最初から表示済みの状態にする。
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
  @keyframes heroIn { to { opacity: 1; transform: none; } }}:root{
  /* ページ全体で使う幅を3段階に限定する */
  --lp-wide: 1080px;
  --lp-mid: 860px;
  --lp-narrow: 680px;
  --lp-stream: 860px;
  --lp-measure: 36em;

  /* 左右・上下の余白を共通化する */
  --lp-gutter: clamp(20px, 4.2vw, 56px);
  --lp-sec-y: clamp(64px, 7vw, 88px);
  --lp-item-y: clamp(34px, 4vw, 44px);

  /* 本文・補足・見出しの段階を絞ったLP用タイプスケール */
  --lp-fs-hero: clamp(32px, 5.2vw, 52px);
  --lp-fs-h2: clamp(28px, 3.2vw, 34px);
  --lp-fs-h3: clamp(21px, 2vw, 24px);
  --lp-fs-lead: clamp(18px, 1.8vw, 20px);
  --lp-fs-body: clamp(16px, 1.25vw, 17px);
  --lp-fs-sm: clamp(14px, 1.1vw, 15px);
  --lp-fs-label: clamp(12px, 1vw, 13px);
}body{ line-height: 1.9; }:root{
  /* #B4881F は紙色の上で 3.1:1 しかない。文字に使える濃さまで落とした金 */
  --gold-text: #7F6110;
}

/* source-style-02 */
@charset "UTF-8";

:root {
  --paper: #f7f3eb;
  --paper-2: #eee8dd;
  --white: #fffdf8;
  --ink: #1c1b19;
  --charcoal: #302f2c;
  --muted: #6d6962;
  --line: #cec7bb;
  --line-dark: #79736b;
  --red: #9f252a;
  --red-dark: #7d191f;
  --header-h: 76px;
  --sans: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  --serif: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

/* 03-features: responsive editorial sheet */






/* 10-trial: coordinate mapping from the fixed 1536 x 1024 visual source */


























































html { scroll-behavior: smooth; }
body.lp-latest {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .025em;
  overflow-x: clip;
}
body.lp-latest *, body.lp-latest *::before, body.lp-latest *::after { box-sizing: border-box; }
body.lp-latest img { display: block; max-width: 100%; height: auto; }
body.lp-latest a { color: inherit; }
body.lp-latest p, body.lp-latest h1, body.lp-latest h2, body.lp-latest h3, body.lp-latest figure, body.lp-latest blockquote { margin-top: 0; }

.skip-link { position: fixed; top: 8px; left: 8px; z-index: 1000; padding: 10px 14px; color: #fff; background: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

[id] { scroll-margin-top: calc(var(--header-h) + 24px); }
.l-wrap { width: min(1180px, calc(100% - 72px)); margin-inline: auto; }

.l-section { position: relative; padding: 112px 0; }



.l-header { position: sticky; top: 0; z-index: 100; height: var(--header-h); background: rgba(247,243,235,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px); }
.l-header__inner { width: min(1360px, calc(100% - 48px)); height: 100%; margin: auto; display: flex; align-items: center; gap: 30px; }
.l-header__brand { display: flex; align-items: center; gap: 16px; text-decoration: none; min-width: 0; }
.l-header__brand img { width: 128px; height: auto; }
.l-header__brand span { padding-left: 16px; border-left: 1px solid var(--line); color: #484541; font-family: var(--serif); font-size: 13px; white-space: nowrap; }
.l-header__nav { display: none; gap: 24px; margin-left: auto; }
.header-drawer { position: fixed; transform: translateX(104%); opacity: 0; visibility: hidden; pointer-events: none; }
.l-header__nav a { color: #4d4944; font-size: 12px; letter-spacing: .08em; text-decoration: none; }
.l-header__nav a:hover { color: var(--red); }

.l-button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; padding: 14px 34px; border: 1px solid var(--red); color: #fff; background: var(--red); font-weight: 700; font-size: 15px; letter-spacing: .06em; text-decoration: none; transition: background .2s, color .2s, transform .2s; }
.l-button::after { content: "→"; margin-left: 22px; font-family: var(--sans); font-weight: 400; }
.l-button:hover { color: var(--red); background: transparent; transform: translateY(-1px); }
.l-button--header { min-height: 44px; padding: 8px 20px; font-size: 12px; }
.l-button--header::after { margin-left: 12px; }



.l-kicker, .l-point__no, .l-label { display: block; margin-bottom: 20px; color: var(--red); font-size: 11px; font-weight: 700; line-height: 1.4; letter-spacing: .2em; text-transform: uppercase; }


.l-section h2, .l-final h2 { margin-bottom: 44px; font-family: var(--serif); font-size: clamp(36px, 4vw, 58px); font-weight: 500; line-height: 1.42; letter-spacing: .02em; }

/* First view: editorial copy + actual document */
.l-hero { --fv-u: calc(100cqw / 1672); container-type: inline-size; position: relative; display: block; height: auto; min-height: 0; padding: 0; aspect-ratio: 1672 / 941; background: #ddcdb8; overflow: hidden; }
.l-hero::before { content: ""; position: absolute; z-index: 0; top: 0; left: 0; width: calc(930 * var(--fv-u)); height: calc(941 * var(--fv-u)); background: url("../img/lp-optimized/img-fe67fada7835a003.webp") center / 100% 100% no-repeat; filter: sepia(.05) saturate(1.03) brightness(.99); }
.l-hero::after { content: ""; position: absolute; z-index: 4; bottom: 0; left: 0; width: calc(930 * var(--fv-u)); height: calc(91 * var(--fv-u)); background: url("../img/lp-optimized/img-ceea93d72d40e7c9.webp") center / 100% 100% no-repeat; pointer-events: none; }
.l-hero__inner { position: relative; width: 100%; height: 100%; margin: 0; }
.l-hero__copy { position: absolute; z-index: 3; inset: 0; padding: 0; }
.l-hero__name { position: absolute; top: calc(77 * var(--fv-u)); left: calc(89 * var(--fv-u)); width: calc(650 * var(--fv-u)); margin: 0; color: #242321; border: 0; font-family: var(--serif); font-size: calc(42 * var(--fv-u)); font-weight: 500; line-height: 1.3; letter-spacing: calc(3.8 * var(--fv-u)); white-space: nowrap; }
.l-hero__name::before, .l-hero__name::after { content: ""; position: absolute; left: 0; top: calc(81 * var(--fv-u)); height: calc(1 * var(--fv-u)); background: rgba(159,37,42,.72); }
.l-hero__name::before { width: calc(650 * var(--fv-u)); }
.l-hero__name::after { width: calc(132 * var(--fv-u)); height: calc(3 * var(--fv-u)); background: #9f252a; }
.l-hero h1 { position: absolute; top: calc(191 * var(--fv-u)); left: calc(84 * var(--fv-u)); width: calc(850 * var(--fv-u)); margin: 0; color: #282725; font-family: var(--serif); font-size: calc(120 * var(--fv-u)); font-weight: 500; line-height: calc(152 * var(--fv-u)); letter-spacing: calc(1.5 * var(--fv-u)); }
.l-hero__headline-line { position: relative; top: calc(4 * var(--fv-u)); display: block; letter-spacing: calc(2.5 * var(--fv-u)); white-space: nowrap; }
.l-hero h1 em { display: inline-block; color: #a41e1f; font-style: normal; transform: scaleX(1.03); transform-origin: left center; }
.l-hero__concept { position: absolute; top: calc(519 * var(--fv-u)); left: calc(94 * var(--fv-u)); width: calc(650 * var(--fv-u)); margin: 0; color: #282725; font-family: var(--serif); font-size: calc(24 * var(--fv-u)); font-weight: 600; line-height: 1.85; letter-spacing: calc(2.45 * var(--fv-u)); }
.l-hero .l-label { position: absolute; top: calc(640 * var(--fv-u)); left: calc(94 * var(--fv-u)); display: flex; flex-wrap: nowrap; gap: calc(17 * var(--fv-u)); width: calc(794 * var(--fv-u)); margin: 0; color: #8f2224; font-family: var(--serif); font-size: calc(20 * var(--fv-u)); font-weight: 600; line-height: 1; letter-spacing: calc(2 * var(--fv-u)); }
.l-hero .l-label span { display: flex; align-items: center; justify-content: center; width: calc(201 * var(--fv-u)); height: calc(52 * var(--fv-u)); padding: 0; border: calc(1 * var(--fv-u)) solid #9f252a; border-radius: calc(4 * var(--fv-u)); text-align: center; white-space: nowrap; }
.l-hero .l-label span:nth-child(2) { width: calc(188 * var(--fv-u)); }
.l-hero .l-label span:nth-child(3) { width: calc(153 * var(--fv-u)); }
.l-hero .l-label span:nth-child(4) { width: calc(199 * var(--fv-u)); }
.l-hero .l-button--primary { position: absolute; top: calc(736 * var(--fv-u)); left: calc(94 * var(--fv-u)); width: calc(495 * var(--fv-u)); min-width: 0; height: calc(110 * var(--fv-u)); min-height: 0; padding: 0; color: #fff; border: 0; border-radius: calc(5 * var(--fv-u)); background-color: #9c211f; background-image: url("../img/lp-optimized/img-fe67fada7835a003.webp"); background-size: cover; background-blend-mode: multiply; box-shadow: 0 calc(7 * var(--fv-u)) calc(12 * var(--fv-u)) rgba(70,30,24,.28); font-family: var(--serif); font-size: calc(31 * var(--fv-u)); font-weight: 500; letter-spacing: calc(2.5 * var(--fv-u)); }
.l-hero .l-button--primary::after { content: ""; width: 0; height: 0; margin-left: calc(36 * var(--fv-u)); border-top: calc(6 * var(--fv-u)) solid transparent; border-bottom: calc(6 * var(--fv-u)) solid transparent; border-left: calc(8 * var(--fv-u)) solid #fff; }
.l-hero .l-button--primary:hover { color: #fff; background-color: #8f1b1a; transform: none; }
.l-hero__evidence { position: absolute; z-index: 2; top: 0; left: calc(930 * var(--fv-u)); width: calc(742 * var(--fv-u)); height: calc(941 * var(--fv-u)); min-height: 0; margin: 0; }
.l-hero__crop { position: absolute; inset: 0; overflow: visible; background: transparent; border: 0; clip-path: none; }
.l-hero__crop::after { content: none; }
.lp-latest .l-hero__crop img { width: 100%; max-width: none; height: 100%; object-fit: fill; object-position: center; filter: none; }

/* 02-empathy: PAST QUESTIONS fixed editorial sheet */
.l-empathy { --em-u: calc(100cqw / 1024); container-type: inline-size; position: relative; width: 100%; min-height: 0; padding: 0; aspect-ratio: 1024 / 1536; overflow: hidden; border: 0; background: #f6f2ec url("../img/lp-optimized/img-fe67fada7835a003.webp") center top / 100% auto repeat-y; }
.l-empathy__sheet { position: relative; width: 100%; height: 100%; margin: 0; color: #211f1d; font-family: var(--serif); }
.l-empathy__decor { position: absolute; z-index: 1; max-width: none; margin: 0; }
.lp-latest .l-empathy__decor--top { top: 0; left: calc(260 * var(--em-u)); width: calc(764 * var(--em-u)); height: calc(145 * var(--em-u)); }
.lp-latest .l-empathy__decor--bottom { top: calc(1430 * var(--em-u)); left: 0; width: calc(1024 * var(--em-u)); height: calc(106 * var(--em-u)); }







.l-empathy__voices { position: absolute; z-index: 2; top: calc(230 * var(--em-u)); left: calc(101 * var(--em-u)); margin: 0; color: #211f1d; }
.l-empathy__voices p { margin: 0; font-size: calc(32 * var(--em-u)); font-weight: 500; line-height: calc(49 * var(--em-u)); letter-spacing: calc(2.4 * var(--em-u)); white-space: nowrap; }
.l-empathy__voices p:nth-child(2) { position: relative; top: calc(-1 * var(--em-u)); left: calc(1 * var(--em-u)); font-size: calc(31 * var(--em-u)); transform: scaleX(.96); transform-origin: left center; }
.l-empathy__reframe { position: absolute; z-index: 2; top: calc(371 * var(--em-u)); left: calc(116 * var(--em-u)); width: calc(760 * var(--em-u)); }
.lp-latest .l-empathy__reframe h2 { margin: 0; color: #211f1d; font-size: calc(39 * var(--em-u)); font-weight: 500; line-height: calc(58 * var(--em-u)); letter-spacing: calc(1.6 * var(--em-u)); }
.l-empathy__reframe h2 span, .l-empathy__reframe h2 em { display: block; white-space: nowrap; }
.l-empathy__reframe h2 span { position: relative; top: calc(2 * var(--em-u)); transform: scaleX(.964); transform-origin: left center; }
.l-empathy__reframe h2 em { color: #a02120; font-style: normal; transform: scaleX(1.052); transform-origin: left center; }






.l-empathy__symptoms { position: absolute; z-index: 2; top: calc(662 * var(--em-u)); left: calc(114 * var(--em-u)); width: calc(590 * var(--em-u)); height: calc(125 * var(--em-u)); margin: 0; padding: calc(2 * var(--em-u)) 0 0 calc(57 * var(--em-u)); border-left: calc(1 * var(--em-u)) solid #97928c; list-style: none; font-size: calc(21 * var(--em-u)); font-weight: 500; line-height: calc(40 * var(--em-u)); letter-spacing: calc(1.5 * var(--em-u)); }
.l-empathy__symptoms li { position: relative; white-space: nowrap; }
.l-empathy__symptoms li:nth-child(1) { transform: scaleX(1.024); transform-origin: left center; }
.l-empathy__symptoms li:nth-child(2) { top: calc(1 * var(--em-u)); transform: scaleX(1.04); transform-origin: left center; }
.l-empathy__symptoms li:nth-child(3) { top: calc(1 * var(--em-u)); transform: scaleX(1.05); transform-origin: left center; }
.l-empathy__symptoms li::before { content: "•"; position: absolute; left: calc(-20 * var(--em-u)); color: #a02120; transform: translateX(-100%); }
.l-empathy__diagnosis { position: absolute; z-index: 2; top: calc(821 * var(--em-u)); left: calc(115 * var(--em-u)); width: calc(760 * var(--em-u)); }
.l-empathy__diagnosis p, .l-empathy__elio p { margin: 0; font-size: calc(19 * var(--em-u)); font-weight: 500; line-height: calc(36 * var(--em-u)); letter-spacing: calc(1.45 * var(--em-u)); }




.l-empathy__possibility { position: absolute; z-index: 2; top: calc(971 * var(--em-u)); left: calc(115 * var(--em-u)); margin: 0; color: #a02120; font-size: calc(21 * var(--em-u)); font-weight: 500; line-height: calc(32 * var(--em-u)); letter-spacing: calc(2 * var(--em-u)); white-space: nowrap; transform: scaleX(1.012); transform-origin: left center; }
.l-empathy__elio { position: absolute; z-index: 2; top: calc(1013 * var(--em-u)); left: calc(115 * var(--em-u)); width: calc(650 * var(--em-u)); }




.l-empathy__handwritten { position: absolute; z-index: 2; top: calc(1191 * var(--em-u)); left: calc(169 * var(--em-u)); width: calc(753 * var(--em-u)); height: calc(223 * var(--em-u)); margin: 0; }
.lp-latest .l-empathy__handwritten img { width: 100%; max-width: none; height: 100%; object-fit: fill; }

/* four features */



































































/* 04-three-causes: 1440 × 2138 approved composition */

















































































/* 05-observation: 1448 × 1086 editorial sheet */














































/* loop */





































/* instructor + actual work */
















/* lesson timeline */












/* voices */












/* trial */
















































/* final */













.l-footer { padding: 58px 0 20px; color: #e4ded5; background: #141412; }
.l-footer__grid { display: grid; grid-template-columns: 1fr 1.2fr auto; gap: 56px; align-items: start; }
.l-footer img { width: 150px; filter: brightness(0) invert(1); opacity: .88; }
.l-footer p, .l-footer a { color: #bdb6ab; font-size: 11px; }
.l-footer nav { display: grid; gap: 10px; }
.l-footer__copy { margin: 36px 0 0; padding-top: 18px; border-top: 1px solid #37342f; text-align: center; }

@media (max-width: 980px) {
  :root { --header-h: 68px; }
  .l-wrap, .l-narrow { width: min(100% - 48px, 900px); }
  .l-section { padding: 90px 0; }
  .l-header__inner { width: calc(100% - 32px); gap: 18px; }
  .l-header__brand img { width: 108px; }
  .l-header__brand span { display: none; }
  .l-header__nav { gap: 14px; }
  .l-button--header { padding-inline: 16px; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

@media (max-width: 720px) {
  :root { --header-h: 62px; }
  body.lp-latest { font-size: 15px; line-height: 1.85; }
  .l-wrap, .l-narrow { width: calc(100% - 36px); }
  .l-section { padding: 72px 0; }
  
  
  .l-section h2, .l-final h2 { margin-bottom: 34px; font-size: 25px; line-height: 1.55; text-wrap: balance; }
  
  
  
  
  
  
  
  .l-header__inner { width: calc(100% - 24px); gap: 10px; }
  .l-header__brand img { width: 94px; }
  .l-header__nav { display: none; }
  .l-button--header { min-height: 40px; margin-left: auto; padding: 7px 12px; font-size: 10px; }
  .l-button--header::after { margin-left: 7px; }
  .l-button:not(.l-button--header) { width: 100%; padding-inline: 20px; }
  .l-hero { height: auto; min-height: 0; aspect-ratio: auto; background: #ddcdb8; overflow: hidden; }
  .l-hero::before { inset: 0; width: 100%; height: 100%; background-size: 100% 100%; }
  .l-hero::after { left: 0; width: 100%; height: 38px; background-size: 100% 100%; }
  .l-hero__inner { display: flex; flex-direction: column; width: 100%; height: auto; margin: 0; }
  .l-hero__evidence { position: relative; order: 0; top: auto; left: auto; width: 100%; height: auto; aspect-ratio: 742 / 941; }
  .l-hero__crop { position: absolute; inset: 0; }
  .l-hero__copy { position: relative; order: 1; inset: auto; padding: 34px 18px 72px; }
  .l-hero__name { position: relative; top: auto; left: auto; width: 100%; margin: 0 0 34px; padding-bottom: 15px; font-size: 16px; line-height: 1.55; letter-spacing: .08em; white-space: nowrap; }
  .l-hero__name::before, .l-hero__name::after { top: auto; bottom: 0; height: 1px; }
  .l-hero__name::before { width: 100%; }
  .l-hero__name::after { width: 64px; height: 2px; }
  .l-hero h1 { position: static; width: 100%; margin: 0 0 24px; font-size: clamp(40px, 10.5vw, 44px); line-height: 1.42; letter-spacing: .015em; }
  .l-hero__headline-line { position: static; letter-spacing: .02em; }
  .l-hero h1 em { transform: none; }
  .l-hero__concept { position: static; width: 100%; margin: 0 0 27px; font-size: 16px; line-height: 1.92; letter-spacing: .045em; }
  .l-hero .l-label { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin: 0; font-size: 12px; line-height: 1; letter-spacing: .08em; }
  .l-hero .l-label span,
  .l-hero .l-label span:nth-child(2),
  .l-hero .l-label span:nth-child(3),
  .l-hero .l-label span:nth-child(4) { width: auto; height: 42px; border-width: 1px; border-radius: 3px; }
  .l-hero .l-button--primary { position: static; width: 100%; height: 64px; min-height: 64px; margin-top: 28px; border-radius: 4px; box-shadow: 0 5px 9px rgba(70,30,24,.26); font-size: 17px; letter-spacing: .08em; }
  .l-hero .l-button--primary::after { margin-left: 22px; border-top-width: 5px; border-bottom-width: 5px; border-left-width: 7px; }
  .l-empathy { width: 100%; min-height: 0; padding: 0; aspect-ratio: auto; overflow: hidden; }
  .l-empathy__sheet { display: flex; flex-direction: column; width: 100%; height: auto; min-height: 0; }
  .lp-latest .l-empathy__decor--top { position: relative; order: 0; top: auto; left: auto; width: 100%; height: auto; }
  
  
  
  
  
  
  
  .l-empathy__voices { position: static; order: 2; margin: 38px 18px 0; }
  .l-empathy__voices p, .l-empathy__voices p:nth-child(2) { position: static; font-size: 17px; line-height: 2; letter-spacing: .04em; white-space: normal; transform: none; }
  .l-empathy__reframe { position: static; order: 3; width: auto; margin: 48px 18px 0; }
  .lp-latest .l-empathy__reframe h2 { font-size: 30px; line-height: 1.58; letter-spacing: .025em; }
  .l-empathy__reframe h2 span, .l-empathy__reframe h2 em { position: static; white-space: normal; transform: none; }
  .l-empathy__reframe h2 em { margin-top: 6px; }
  
  
  .l-empathy__symptoms { position: static; order: 4; width: auto; height: auto; margin: 40px 18px 0; padding: 10px 0 10px 30px; border-left-width: 1px; font-size: 15px; line-height: 2.3; letter-spacing: .035em; }
  .l-empathy__symptoms li,
  .l-empathy__symptoms li:nth-child(1),
  .l-empathy__symptoms li:nth-child(2),
  .l-empathy__symptoms li:nth-child(3) { position: relative; top: auto; white-space: normal; transform: none; }
  .l-empathy__symptoms li::before { left: -14px; transform: translateX(-100%); }
  .l-empathy__diagnosis { position: static; order: 5; width: auto; margin: 40px 18px 0; }
  .l-empathy__diagnosis p, .l-empathy__elio p { font-size: 15px; line-height: 2.05; letter-spacing: .025em; }
  
  .l-empathy__possibility { position: static; order: 6; margin: 42px 18px 0; font-size: 18px; line-height: 1.8; letter-spacing: .045em; white-space: normal; transform: none; }
  .l-empathy__elio { position: static; order: 7; width: auto; margin: 26px 18px 0; }
  
  .l-empathy__handwritten { position: static; order: 8; width: calc(100% - 36px); height: auto; margin: 52px 18px 0; }
  .lp-latest .l-empathy__handwritten img { height: auto; }
  .lp-latest .l-empathy__decor--bottom { position: relative; order: 9; top: auto; left: auto; width: 100%; height: auto; margin-top: 38px; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .l-footer__grid { display: block; }
  .l-footer__grid > div, .l-footer__grid nav { margin-bottom: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* 05-observation: SP reconstruction derived from the locked PC hierarchy. */


/* Kept after the legacy breakpoints so the 03-features sheet owns its responsive geometry. */
/* 04-three-causes: minimum SP translation of the fixed PC composition. */







/* source-style-06 */
@charset "UTF-8";

/* 2026-08-15 precision reconstruction from visual master 1448x1086 */
.l-feature-tabs.ft-precision {
  --ft-red:#64101b;
  --ft-red-2:#8d1f28;
  --ft-gold:#bd944b;
  --ft-ink:#171412;
  --ft-paper:#fcfaf5;
  --ft-stage:#fdfbf7;
  --ft-rule:#b9987f;
  --ft-serif:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN",serif;
  box-sizing:border-box;
  position:relative;
  width:100%;
  padding:28px 44px 46px;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 5%,rgba(255,255,255,.82),transparent 36%),
    linear-gradient(180deg,#fcfaf5 0%,#fdfbf7 72%,#fff 100%);
  color:var(--ft-ink);
  font-family:var(--ft-serif);
}
.l-feature-tabs.ft-precision *{box-sizing:border-box}
.ft-shell{width:min(1354px,100%);margin:0 auto}
.ft-heading{text-align:center;margin:0 0 40px}
.ft-heading__kicker{display:flex;align-items:center;justify-content:center;gap:28px;margin:0 0 4px;color:#7c2027;font-family:Georgia,"Times New Roman",serif;font-size:16px;font-weight:700;letter-spacing:.18em;line-height:1}
.ft-heading__kicker::before,.ft-heading__kicker::after{content:"";width:48px;height:1px;background:#b77c79}
.ft-heading h2{margin:0;font-family:var(--ft-serif);font-size:70px;font-weight:500;line-height:1.30;letter-spacing:0;transform:translate(11px,-6px) scaleY(1.30);transform-origin:center;color:#0d0c0b}
.ft-heading h2 span{display:inline-block;margin:0 4px;color:#7f1320;font-size:1.25em;font-weight:500;vertical-align:-.05em}
.ft-heading__lead{margin:4px 0 0;font-family:var(--ft-serif);font-size:26px;font-weight:400;letter-spacing:.10em;line-height:1.30;transform:translateX(18px);color:#292522}

.ft-tabs{position:relative;z-index:3;display:grid;grid-template-columns:327px repeat(3,1fr);width:calc(100% - 84px);height:98px;margin:0 0 0 23px;border:1px solid #c6ab93;border-bottom:0;border-radius:6px 6px 0 0;overflow:visible;background:#fdfbf7}
.ft-tab{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;margin:0;padding:0 20px;border:0;border-right:1px solid #c6ab93;background:#fdfbf7;color:#2c2521;font-family:var(--ft-serif);cursor:pointer;transition:background .16s ease,color .16s ease}
.ft-tab:last-child{border-right:0}
.ft-tab__num{color:#8a2029;font-family:Georgia,"Times New Roman",serif;font-size:37px;font-style:italic;font-weight:400;line-height:1}
.ft-tab__label{font-size:18px;font-weight:500;letter-spacing:.015em;white-space:nowrap}
.ft-tab[aria-selected="true"]{z-index:2;margin:-1px -1px 0;background:linear-gradient(180deg,#75151f,#5d0d17);color:#fff;border:1px solid #5a0913;border-top:5px solid #801925;box-shadow:0 0 0 2px rgba(120,55,45,.13),inset 0 1px 0 rgba(255,255,255,.12)}
.ft-tab[aria-selected="true"] .ft-tab__num{color:#d4ad64}
.ft-tab[aria-selected="true"]::after{content:"";position:absolute;left:50%;bottom:-11px;width:20px;height:20px;background:#fdfbf7;border-left:1px solid #9e7b66;border-top:1px solid #9e7b66;transform:translateX(-50%) rotate(45deg)}


.ft-stage{position:relative;z-index:2;min-height:642px;margin-top:0;padding:36px 50px 0;border:1.35px solid #9b3540;border-radius:0 0 13px 13px;background:rgba(255,253,249,.88);box-shadow:inset 0 0 42px rgba(112,72,45,.018)}
.ft-panel[hidden]{display:none!important}
.ft-panel{animation:ftFade .18s ease both}
@keyframes ftFade{from{opacity:.18}to{opacity:1}}
.ft-panel__main{display:grid;grid-template-columns:45.2% 54.8%;min-height:495px}
.ft-panel__copy{padding:0 30px 0 10px}
.ft-panel__titleline{display:flex;align-items:center;height:80px;margin-bottom:8px}
.ft-panel__number{color:#bd944b;font-family:Georgia,"Times New Roman",serif;font-size:66px;font-style:italic;font-weight:400;line-height:1}
.ft-panel__titleline i{display:block;width:1px;height:58px;margin:0 41px 0 22px;background:#c8a764}
.ft-panel__titleline h3{margin:0;color:#5d1018;font-family:var(--ft-serif);font-size:47px;font-weight:600;line-height:1.2;letter-spacing:.02em;white-space:nowrap}
.ft-panel__hero{margin:0;color:#171412;font-size:24px;font-weight:500;line-height:1.75;letter-spacing:.035em;transform:scaleX(1.14);transform-origin:left}
.ft-panel__rule{position:relative;width:100%;height:27px;margin:6px 0 13px}
.ft-panel__rule::before{content:"";position:absolute;left:0;right:0;top:13px;height:1px;background:#d1ad6c}
.ft-panel__rule span{position:absolute;left:50%;top:10px;width:7px;height:7px;border:1px solid #c49f5e;background:#fdfbf7;transform:translateX(-50%) rotate(45deg)}
.ft-panel__body{margin:0 0 21px;color:#34302d;font-size:15.8px;font-weight:400;line-height:1.88;letter-spacing:.02em;transform:scaleX(1.135);transform-origin:left}
.ft-panel__checks{display:grid;gap:0;margin:0;padding:0;list-style:none}
.ft-panel__checks li{position:relative;min-height:52px;padding:12px 0 10px 45px;border-bottom:1px dashed #d8d0c8;color:#211d1a;font-size:19.5px;font-weight:600;line-height:1.6;letter-spacing:0}
.ft-panel__checks li:last-child{border-bottom:0}
.ft-panel__checks li::before{content:"✓";position:absolute;left:1px;top:9px;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#731018;color:#f6d585;font-family:Arial,sans-serif;font-size:17px;font-weight:700;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.ft-panel__visual{position:relative;min-width:0}
.ft-closing{display:flex;align-items:center;justify-content:center;width:calc(100% + 64px);height:90px;margin:9px -32px 0;padding:0 40px;background:linear-gradient(180deg,rgba(248,244,236,.45),#f8f3ea);color:#2b2420;font-size:29px;font-weight:500;line-height:1.4;letter-spacing:.035em;text-align:center;position:relative;top:4px}
.ft-closing strong{margin-left:10px;color:#8b1d25;font-weight:500}

/* feature 01 — visual master */














/* feature 02 */
.ft-school-visual{padding:8px 2px 0 30px}



/* feature 03 */
.ft-plan-visual{padding:8px 4px 0 28px}

/* feature 04 */
.ft-line-visual{padding:8px 5px 0 32px}

.ft-bottom-rule{position:relative;width:min(1260px,90%);height:28px;margin:33px auto 0}.ft-bottom-rule::before{content:"";position:absolute;left:0;right:0;top:13px;height:1px;background:#b7ada3}.ft-bottom-rule span{position:absolute;left:50%;top:9px;width:8px;height:8px;border:1px solid #b7a78e;background:#fff;transform:translateX(-50%) rotate(45deg)}

/* keep the four PC panels at the same height after structural adaptation */
.ft-panel--03 .ft-panel__body,.ft-panel--04 .ft-panel__body{font-size:14.6px}

@media(max-width:1100px){
  .l-feature-tabs.ft-precision{padding-left:24px;padding-right:24px}.ft-heading h2{font-size:46px}.ft-tabs{width:100%;margin:0}.ft-tab{gap:10px;padding:0 10px}.ft-tab__label{font-size:14px}.ft-stage{padding:30px}.ft-panel__main{grid-template-columns:47% 53%}.ft-panel__titleline h3{font-size:31px}.ft-panel__hero{font-size:20px}.ft-panel__body{font-size:13px}.ft-panel__checks li{font-size:14px}.ft-closing{width:calc(100% + 30px);margin-left:-15px;margin-right:-15px;font-size:21px}
}
@media(max-width:720px){
  .ft-heading h2{transform:none}
  .ft-heading__lead{transform:none}
  .ft-panel__hero,.ft-panel__body{transform:none}
  .l-feature-tabs.ft-precision{padding:54px 15px 62px}.ft-heading{margin-bottom:26px}.ft-heading__kicker{font-size:11px;gap:14px}.ft-heading__kicker::before,.ft-heading__kicker::after{width:28px}.ft-heading h2{font-size:32px;letter-spacing:.02em}.ft-heading h2 span{font-size:1.22em}.ft-heading__lead{font-size:13px;letter-spacing:.03em}.ft-tabs{grid-template-columns:repeat(2,1fr);height:auto;border:0;gap:7px;background:transparent}.ft-tab{min-height:68px;border:1px solid #c6ab93!important;border-radius:6px;gap:7px;padding:8px}.ft-tab[aria-selected="true"]{margin:0;border-top:4px solid #801925!important}.ft-tab[aria-selected="true"]::after{display:none}.ft-tab__num{font-size:26px}.ft-tab__label{font-size:11px;white-space:normal}.ft-stage{margin-top:10px;padding:25px 17px 0;border-radius:8px}.ft-panel__main{display:block;min-height:0}.ft-panel__copy{padding:0}.ft-panel__titleline{height:auto;margin-bottom:16px}.ft-panel__number{font-size:48px}.ft-panel__titleline i{height:42px;margin:0 15px}.ft-panel__titleline h3{font-size:25px;white-space:normal}.ft-panel__hero{font-size:18px;line-height:1.7}.ft-panel__body{font-size:13px;line-height:1.85}.ft-panel__checks li{min-height:46px;padding-left:37px;font-size:13px}.ft-panel__checks li::before{width:24px;height:24px}.ft-panel__visual{margin-top:24px}.ft-closing{width:calc(100% + 20px);height:auto;min-height:84px;margin:12px -10px 0;padding:20px 12px;font-size:17px;flex-wrap:wrap}.ft-closing strong{margin:2px 0 0}.ft-school-visual,.ft-plan-visual,.ft-line-visual{padding:0}.ft-bottom-rule{margin-top:34px}
}

/* source-style-07 */
@charset "UTF-8";
/* Repair 2026-08-15: minimal-diff overrides on the last known-good integrated LP. */

/* New FV-under message: preserve the existing 1024×1536 sheet geometry but remove duplicate handwritten close. */
.l-empathy__reframe h2 { font-size: calc(31 * var(--em-u)); line-height: calc(48 * var(--em-u)); }
.l-empathy__symptoms li::before { content: "✓"; left: calc(-16 * var(--em-u)); font-size: calc(16 * var(--em-u)); }
.l-empathy__diagnosis p strong { color: #a02120; font-weight: 500; }

.l-empathy__elio { top: calc(1050 * var(--em-u)); }

/* Feature heading only: the precision tab sheet itself is untouched. */
.ft-heading__kicker { letter-spacing: .12em; }
.ft-heading h2 { white-space: nowrap; }

/* Lesson: extend the proven normal-flow section rather than replacing it. */















/* VOICES: reuse the approved copy and cards, remove illustrations and absolute poster composition. */





















/* Keep the moved CTA quiet between proof and conversion. */


@media (max-width: 767px) {
  .l-empathy__reframe h2 { font-size: calc(30 * var(--em-u)); }
  .ft-heading h2 { white-space: normal; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

/* source-style-08 */
@charset "UTF-8";
/* 2026-08-15 13:30 — final-polish overrides. */

/* Remove the dead vertical space left by the former PAST QUESTIONS marker and old 1536px composition. */
@media (min-width: 768px) {
  .l-empathy { aspect-ratio: 1024 / 1235; }
  .l-empathy__voices { top: calc(175 * var(--em-u)); }
  .l-empathy__reframe { top: calc(320 * var(--em-u)); }
  .l-empathy__symptoms { top: calc(515 * var(--em-u)); }
  .l-empathy__diagnosis { top: calc(675 * var(--em-u)); }
  .l-empathy__possibility { top: calc(860 * var(--em-u)); }
  .l-empathy__elio { top: calc(930 * var(--em-u)); }
  .lp-latest .l-empathy__decor--bottom { top: calc(1129 * var(--em-u)); }
}

/* On SP, keep the same content order but tighten margins once the section marker is gone. */
@media (max-width: 767px) {
  .l-empathy__voices { margin-top: 26px; }
  .l-empathy__reframe { margin-top: 34px; }
  .l-empathy__symptoms { margin-top: 30px; }
  .l-empathy__diagnosis { margin-top: 30px; }
  .l-empathy__possibility { margin-top: 32px; }
  .l-empathy__elio { margin-top: 20px; }
  .lp-latest .l-empathy__decor--bottom { margin-top: 26px; }
}

/* Kicker labels were removed from these sections; close up the space they previously occupied. */




/* source-style-10 */
@charset "UTF-8";

/*
 * 2026-08-15 — 4つの秘訣 → 授業 → 声 を一つの章として接続。
 * 各セクションの内部デザインは維持し、背景・余白・境界の文法を統一する。
 */
.l-story-group{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-color:#faf7f1;
  background-image:
    radial-gradient(circle at 16% 7%,rgba(255,255,255,.74),transparent 28%),
    radial-gradient(circle at 88% 58%,rgba(255,255,255,.44),transparent 32%),
    linear-gradient(180deg,#fffdf9 0%,#faf7f1 18%,#f7f3ec 58%,#f8f5ef 100%),
    url("../img/lp-optimized/img-fe67fada7835a003.webp");
  background-size:auto,auto,auto,1024px 1024px;
}
.l-story-group::before,
.l-story-group::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:50%;
  width:min(1180px,calc(100% - 72px));
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,#d9cec1 10%,#b88f79 50%,#d9cec1 90%,transparent);
  opacity:.55;
}
.l-story-group::before{top:0;opacity:.18}
.l-story-group::after{bottom:0;opacity:.28}

/* shared substrate: child sections no longer paint separate page-sized backgrounds */
.l-story-group>.l-feature-tabs.ft-precision,
.l-story-group>.l-lesson-cycle,
.l-story-group>.l-voices{
  background-color:transparent!important;
  background-image:none!important;
  border:0!important;
}

/* 4 features → lesson: retain the tab section, dissolve its artificial ending */
.l-story-group>.l-feature-tabs.ft-precision{
  padding-top:54px;
  padding-bottom:54px;
}
.l-story-group .ft-bottom-rule{
  width:min(1180px,calc(100% - 72px));
  height:44px;
  margin:30px auto -54px;
}
.l-story-group .ft-bottom-rule::before{
  top:21px;
  background:linear-gradient(90deg,transparent,#d9cec1 9%,#a88675 50%,#d9cec1 91%,transparent);
  opacity:.72;
}
.l-story-group .ft-bottom-rule span{
  top:17px;
  width:9px;
  height:9px;
  border-color:#bca996;
  background:#faf7f1;
}

/* lesson: remove the large independent white canvas; cards sit on the common paper */









/* lesson → voices: use a soft breath and a shared divider, not a background jump */





@media (max-width:767px){
  .l-story-group{
    background-image:
      linear-gradient(180deg,#fffdf9 0%,#faf7f2 18%,#f7f3ec 62%,#f8f5ef 100%),
      url("../img/lp-optimized/img-fe67fada7835a003.webp");
    background-size:auto,760px 760px;
  }
  .l-story-group::before,
  .l-story-group::after,
  .l-story-group .ft-bottom-rule,
  .l-story-group>.l-voices::before{
    width:calc(100% - 36px);
  }
  .l-story-group>.l-feature-tabs.ft-precision{
    padding-top:46px;
    padding-bottom:34px;
  }
  .l-story-group .ft-bottom-rule{
    height:34px;
    margin:22px auto -34px;
  }
  
  
  
  
  
  
}

/* source-style-11 */
@charset "UTF-8";

/*
 * 2026-08-15 — story refinement
 * 4つの秘訣 → 1回50分の授業 → 個別最適化 → 声
 * one continuous editorial chapter: fewer boxes, stronger rhythm, shared width.
 */
.l-story-group{
  --story-max:1180px;
  --story-side:36px;
  --story-ink:#201b18;
  --story-red:#7b141c;
  --story-gold:#b68a3d;
  --story-line:rgba(125,92,66,.22);
  --story-paper:#faf7f1;
  background:
    radial-gradient(circle at 14% 10%,rgba(255,255,255,.72),transparent 30%),
    radial-gradient(circle at 88% 74%,rgba(255,255,255,.48),transparent 27%),
    linear-gradient(180deg,#fffdf9 0%,#fbf8f2 32%,#f7f3ec 70%,#faf7f1 100%),
    url("../img/lp-optimized/img-fe67fada7835a003.webp");
  background-size:auto,auto,auto,1080px 1080px;
}

/* common width rail */
.l-story-group .ft-shell,
.l-story-group .lesson-cycle__sheet{
  width:min(var(--story-max),calc(100% - (var(--story-side) * 2)));
  max-width:var(--story-max);
}

/* Features: keep the content, reduce the sense of a self-contained poster */
.l-story-group>.l-feature-tabs.ft-precision{
  padding-top:56px;
  padding-bottom:26px;
}
.l-story-group .ft-heading{
  margin-bottom:34px;
}
.l-story-group .ft-heading__kicker{
  opacity:.82;
}
.l-story-group .ft-stage{
  border-color:rgba(123,20,28,.62);
  background:rgba(255,253,249,.74);
  box-shadow:none;
}
.l-story-group .ft-closing{
  background:linear-gradient(180deg,rgba(248,244,236,.28),rgba(246,240,230,.68));
}
.l-story-group .ft-bottom-rule{
  width:min(var(--story-max),calc(100% - (var(--story-side) * 2)));
  height:28px;
  margin:28px auto -8px;
}
.l-story-group .ft-bottom-rule::before{
  top:13px;
  background:linear-gradient(90deg,transparent,var(--story-line) 12%,rgba(123,20,28,.34) 50%,var(--story-line) 88%,transparent);
  opacity:1;
}
.l-story-group .ft-bottom-rule span{
  top:9px;
  width:8px;
  height:8px;
  border-color:rgba(123,20,28,.38);
  background:#faf7f1;
}

/* Lesson: editorial continuation instead of two nested rounded boxes */

















/* Individualization: one chapter strip, cards become quiet columns */











/* Voices: align with the same content width on desktop and dissolve card shadows */


/* mobile: preserve readable reflow, reduce visual boxing and vertical dead space */
@media (max-width:720px){
  .l-story-group{
    --story-side:18px;
  }
  .l-story-group>.l-feature-tabs.ft-precision{
    padding-top:40px;
    padding-bottom:18px;
  }
  .l-story-group .ft-heading{
    margin-bottom:22px;
  }
  .l-story-group .ft-stage{
    border-radius:5px;
    background:rgba(255,253,249,.66);
  }
  .l-story-group .ft-bottom-rule{
    height:22px;
    margin:18px auto -4px;
  }
  .l-story-group .ft-bottom-rule::before{top:10px}
  .l-story-group .ft-bottom-rule span{top:7px;width:7px;height:7px}

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
}

/* source-style-12 */
@charset "UTF-8";

/*
 * 2026-08-15 17:20
 * Layout + typography integration pass.
 * - moves course overview into the story chapter before voices
 * - gives the page one reusable type scale instead of section-local scales
 * - preserves deliberate display/decorative exceptions (hero, final CTA, diagrams)
 */

:root{
  --type-display:clamp(46px,4vw,56px);
  --type-section:clamp(38px,3.25vw,46px);
  --type-subsection:clamp(24px,2vw,28px);
  --type-card-title:18px;
  --type-lead:17px;
  --type-body:15px;
  --type-small:12px;
  --type-micro:11px;
  --type-line-body:1.9;
  --type-line-title:1.45;
}

body.lp-latest{
  font-size:var(--type-body);
  line-height:var(--type-line-body);
}

/* ---- Common hierarchy: same role = same scale ---- */
.l-story-group .ft-heading h2{
  font-size:var(--type-section);
  line-height:1.28;
  transform:none;
  letter-spacing:.015em;
}
.l-story-group .ft-heading h2 span{font-size:1.16em;}
.l-story-group .ft-heading__lead{
  font-size:var(--type-lead);
  line-height:1.7;
  letter-spacing:.045em;
  transform:none;
}
.l-story-group .ft-panel__titleline h3{
  font-size:32px;
  line-height:1.3;
}
.l-story-group .ft-panel__hero{
  font-size:20px;
  line-height:1.75;
  transform:none;
}
.l-story-group .ft-panel__body,
.l-story-group .ft-panel--03 .ft-panel__body,
.l-story-group .ft-panel--04 .ft-panel__body{
  font-size:var(--type-body);
  line-height:1.9;
  transform:none;
}
.l-story-group .ft-panel__checks li{
  font-size:15px;
  line-height:1.65;
}













/* Teacher / trial / FAQ use the same page-wide hierarchy. */







/* ---- Course overview: compact specification band before voices ---- */














/* voice begins as the next chapter beat, not another detached page */



/* Overview moved out: FAQ gets a single, calm reading column. */



/* ---- Functional minimums. Tiny text inside simulated documents/charts is excluded. ---- */
.l-header__nav a,
.l-footer p,
.l-footer a,
.l-voices__disclaimer,
.l-teacher__stats span{
  font-size:max(11px,1em);
}

@media (max-width:720px){
  :root{
    --type-display:40px;
    --type-section:32px;
    --type-subsection:23px;
    --type-card-title:17px;
    --type-lead:16px;
    --type-body:14px;
    --type-small:12px;
    --type-micro:11px;
  }
  body.lp-latest{font-size:var(--type-body);line-height:1.85;}
  .l-story-group .ft-heading h2{font-size:var(--type-section);line-height:1.45;}
  .l-story-group .ft-heading__lead{font-size:13px;line-height:1.75;}
  .l-story-group .ft-panel__titleline h3{font-size:25px;}
  .l-story-group .ft-panel__hero{font-size:18px;}
  .l-story-group .ft-panel__body,
  .l-story-group .ft-panel--03 .ft-panel__body,
  .l-story-group .ft-panel--04 .ft-panel__body{font-size:13px;}
  .l-story-group .ft-panel__checks li{font-size:13px;}
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
  
  
  
  
  
}

/* Final minimum-size normalization for functional labels. */
.l-story-group .lesson-type__top>span,
.l-story-group .lesson-type__focus>b,
.l-story-group .lesson-type__focus span,
.l-voice-card__profile p + p span,
.l-voices__disclaimer,
.l-footer p,
.l-footer a{
  font-size:11px!important;
}

/* Display-role cap: hero and final CTA share one maximum scale on desktop. */
@media (min-width:721px){
  .l-hero h1{
    font-size:84px;
    line-height:1.34;
    letter-spacing:.012em;
  }
  .l-hero__headline-line{letter-spacing:.02em;}
  
}

@media (max-width:720px){
  .l-button--header,
  .lesson-cycle__time small{
    font-size:11px!important;
  }
}

/* source-style-13 */
@charset "UTF-8";

/* 2026-08-15 17:45
   - reduce oversized display cap
   - soften FV下 message typography
   - restore handwritten encouragement image
*/

@media (min-width:721px){
  .l-hero h1{font-size:72px;line-height:1.32;}
  

  .l-empathy__voices{top:calc(188 * var(--em-u));}
  .l-empathy__voices p{font-size:calc(27 * var(--em-u));line-height:calc(42 * var(--em-u));letter-spacing:calc(1.7 * var(--em-u));}
  .l-empathy__voices p:nth-child(2){font-size:calc(26 * var(--em-u));}
  .l-empathy__reframe{top:calc(306 * var(--em-u));}
  .lp-latest .l-empathy__reframe h2{font-size:calc(28 * var(--em-u));line-height:calc(44 * var(--em-u));letter-spacing:calc(1.2 * var(--em-u));}
  .l-empathy__symptoms{top:calc(496 * var(--em-u));font-size:calc(18 * var(--em-u));line-height:calc(34 * var(--em-u));letter-spacing:calc(1.05 * var(--em-u));}
  .l-empathy__diagnosis{top:calc(636 * var(--em-u));width:calc(770 * var(--em-u));}
  .l-empathy__diagnosis p,.l-empathy__elio p{font-size:calc(17 * var(--em-u));line-height:calc(31 * var(--em-u));letter-spacing:calc(1.1 * var(--em-u));}
  .l-empathy__possibility{top:calc(804 * var(--em-u));font-size:calc(18 * var(--em-u));line-height:calc(30 * var(--em-u));letter-spacing:calc(1.3 * var(--em-u));}
  .l-empathy__elio{top:calc(872 * var(--em-u));}
  .l-empathy__handwritten{top:calc(1132 * var(--em-u));left:calc(138 * var(--em-u));width:calc(766 * var(--em-u));height:calc(227 * var(--em-u));}
}

@media (max-width:720px){
  .l-hero h1{font-size:36px;line-height:1.32;}
  

  .l-empathy__voices{margin-top:22px;}
  .l-empathy__voices p, .l-empathy__voices p:nth-child(2){font-size:15px;line-height:1.8;letter-spacing:.03em;}
  .l-empathy__reframe{margin-top:28px;}
  .lp-latest .l-empathy__reframe h2{font-size:26px;line-height:1.5;}
  .l-empathy__symptoms{margin-top:26px;font-size:14px;line-height:2.1;}
  .l-empathy__diagnosis{margin-top:28px;}
  .l-empathy__diagnosis p,.l-empathy__elio p{font-size:14px;line-height:1.95;}
  .l-empathy__possibility{margin-top:28px;font-size:16px;line-height:1.7;}
  .l-empathy__elio{margin-top:18px;}
  .l-empathy__handwritten{position:static;width:auto;height:auto;margin:28px 18px 0;}
  .lp-latest .l-empathy__handwritten img{display:block;width:100%;height:auto;object-fit:contain;}
}

/* source-style-14 */
@charset "UTF-8";

/* 2026-08-15 17:55 — page-wide typography system
   Same semantic role = same visual scale across sections.
   Display exceptions are limited to FV / final CTA and the fixed editorial empathy composition.
*/
:root{
  --ts-display:72px;
  --ts-section:40px;
  --ts-subsection:28px;
  --ts-detail:30px;
  --ts-card:18px;
  --ts-lead:17px;
  --ts-body:15px;
  --ts-compact:14px;
  --ts-small:12px;
  --ts-micro:11px;
}

/* Display layer */
@media (min-width:721px){
  .l-hero h1,
  .l-final .l-final__copy h2 span:first-child,
  .l-final .l-final__copy h2 span:last-child{
    font-size:var(--ts-display);
  }
}

/* Major section headings */
@media (min-width:721px){
  .l-story-group .ft-heading h2,
  .l-story-group .l-voices .l-voices__intro h2,
  .l-teacher__profile h2,
  .l-trial__intro h2,
  .lp-latest .l-trial h2{
    font-size:var(--ts-section);
    line-height:1.42;
  }
}

/* Section-within-section headings */


/* Feature detail heading */
.l-story-group .ft-panel__titleline h3{
  font-size:var(--ts-detail);
  line-height:1.36;
}

/* Body / lead scale */
.l-story-group .ft-heading__lead,
.l-trial__lead{
  font-size:var(--ts-lead);
}
.l-story-group .ft-panel__body,
.l-story-group .ft-panel--03 .ft-panel__body,
.l-story-group .ft-panel--04 .ft-panel__body,
.l-teacher__profile>p,
.l-teacher__profile .l-teacher__message p{
  font-size:var(--ts-body);
  line-height:1.9;
}




/* FV下: keep editorial hierarchy, but cap its actual rendered sizes on wide screens. */
@media (min-width:768px){
  .l-empathy{
    aspect-ratio:1024 / 1340;
  }
  .l-empathy__voices{top:calc(170 * var(--em-u));}
  .l-empathy__voices p,
  .l-empathy__voices p:nth-child(2){
    font-size:clamp(22px,calc(17 * var(--em-u)),26px);
    line-height:1.72;
    letter-spacing:.045em;
  }
  .l-empathy__reframe{top:calc(285 * var(--em-u));}
  .lp-latest .l-empathy__reframe h2{
    font-size:clamp(30px,calc(23 * var(--em-u)),34px);
    line-height:1.48;
    letter-spacing:.02em;
  }
  .l-empathy__symptoms{
    top:calc(455 * var(--em-u));
    font-size:clamp(16px,calc(12.2 * var(--em-u)),18px);
    line-height:1.9;
    letter-spacing:.035em;
  }
  .l-empathy__diagnosis{
    top:calc(590 * var(--em-u));
    width:calc(760 * var(--em-u));
  }
  .l-empathy__diagnosis p,
  .l-empathy__elio p{
    font-size:clamp(14px,calc(10.8 * var(--em-u)),16px);
    line-height:1.92;
    letter-spacing:.035em;
  }
  .l-empathy__possibility{
    top:calc(740 * var(--em-u));
    font-size:clamp(16px,calc(12.2 * var(--em-u)),18px);
    line-height:1.7;
    letter-spacing:.05em;
  }
  .l-empathy__elio{top:calc(800 * var(--em-u));}
  .l-empathy__handwritten{
    top:calc(1020 * var(--em-u));
    left:calc(142 * var(--em-u));
    width:calc(740 * var(--em-u));
    height:auto;
  }
  .lp-latest .l-empathy__handwritten img{
    display:block;
    width:100%;
    height:auto;
    object-fit:contain;
  }
  .lp-latest .l-empathy__decor--bottom{top:calc(1234 * var(--em-u));}
}

@media (max-width:720px){
  :root{
    --ts-display:36px;
    --ts-section:30px;
    --ts-subsection:22px;
    --ts-detail:24px;
    --ts-card:17px;
    --ts-lead:16px;
    --ts-body:14px;
    --ts-compact:13px;
    --ts-small:12px;
    --ts-micro:11px;
  }
  .l-hero h1,
  .l-final .l-final__copy h2 span:first-child,
  .l-final .l-final__copy h2 span:last-child{font-size:var(--ts-display);}
  .l-story-group .ft-heading h2,
  .l-story-group .l-voices .l-voices__intro h2,
  .l-teacher__profile h2,
  .l-trial__intro h2,
  .lp-latest .l-trial h2{font-size:var(--ts-section);line-height:1.45;}
  
  .l-story-group .ft-panel__titleline h3{font-size:var(--ts-detail);}
  .l-story-group .ft-heading__lead,
  .l-trial__lead{font-size:var(--ts-lead);}
  .l-story-group .ft-panel__body,
  .l-story-group .ft-panel--03 .ft-panel__body,
  .l-story-group .ft-panel--04 .ft-panel__body,
  .l-teacher__profile>p,
  .l-teacher__profile .l-teacher__message p{font-size:var(--ts-body);}
  
  
  
}

/* source-style-15 */
@charset "UTF-8";

/* 2026-08-15 18:17 — post-typography layout polish
 * Purpose: remove dead space and clipping created after the unified type scale,
 * and restore intentional line breaks without changing the approved font hierarchy.
 */

/* 1) FV下: the text got smaller, so tighten the fixed editorial composition too. */
@media (min-width:768px){
  .l-empathy{aspect-ratio:1024 / 1245;}
  .l-empathy__voices{top:calc(158 * var(--em-u));}
  .l-empathy__reframe{top:calc(252 * var(--em-u));}
  .l-empathy__symptoms{top:calc(398 * var(--em-u));}
  .l-empathy__diagnosis{top:calc(516 * var(--em-u));}
  .l-empathy__possibility{top:calc(646 * var(--em-u));}
  .l-empathy__elio{top:calc(702 * var(--em-u));}
  .l-empathy__handwritten{
    top:calc(875 * var(--em-u));
    left:calc(142 * var(--em-u));
    width:calc(740 * var(--em-u));
  }
  .lp-latest .l-empathy__decor--bottom{top:calc(1139 * var(--em-u));}
}

/* 2) Voices: the approved 15px body no longer fits the old poster-height constraint. */


/* 3) Instructor: l-section's generic 112px padding duplicated the internal spacing. */


/* 4) Trial: keep “わずか 3 ステップ。” as one designed phrase. */








@media (max-width:720px){
  /* FV下: avoid character-level orphan lines after reducing the scale. */
  .l-empathy__voices{margin-top:18px;}
  .l-empathy__reframe{margin-top:24px;}
  .lp-latest .l-empathy__reframe h2{
    font-size:22px;
    line-height:1.55;
    letter-spacing:.012em;
  }
  .l-empathy__reframe h2>span{
    font-size:20px;
    white-space:nowrap;
    letter-spacing:0;
  }
  .l-empathy__reframe h2>em{
    margin-top:8px;
    font-size:22px;
    line-height:1.55;
  }
  .l-empathy__symptoms{margin-top:22px;}
  .l-empathy__diagnosis{margin-top:24px;}
  .l-empathy__possibility{margin-top:24px;}
  .l-empathy__elio{margin-top:16px;}
  .l-empathy__handwritten{margin-top:22px;}

  /* Features: make the heading and closing read as deliberate two-line phrases. */
  .l-story-group .ft-heading h2{line-height:1.38;}
  .l-story-group .ft-heading h2 span::before{
    content:"\A ";
    white-space:pre;
  }
  .l-story-group .ft-heading__lead{
    max-width:340px;
    margin-left:auto;
    margin-right:auto;
    letter-spacing:.015em;
  }
  .l-story-group .ft-closing{
    font-size:16px;
    line-height:1.7;
  }
  .l-story-group .ft-closing strong{
    display:block;
    flex-basis:100%;
    margin-top:2px;
  }

  /* Lesson: never split the red phrase in the middle of “スタイル”. */
  

  /* Voices: remove legacy forced BRs so the new width/type scale wraps naturally. */
  
  

  /* Trial mobile: compact the old poster spacing around the smaller typography. */
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
}


/* Feature heading markup refinement: desktop stays one line; mobile gets a balanced two-line phrase. */
.ft-heading h2 .ft-heading__tail{
  display:inline;
  margin-left:.12em;
  color:inherit;
  font-size:1em;
  font-weight:500;
  vertical-align:baseline;
}
.ft-heading h2 .ft-heading__tail b{
  color:#7f1320;
  font-size:1.16em;
  font-weight:500;
}
.ft-sp-break{display:none;}

@media (max-width:720px){
  .l-story-group .ft-heading h2 span::before{content:none;}
  .ft-heading h2 .ft-heading__tail{
    display:block;
    margin:2px 0 0;
  }
  .ft-sp-break{display:block;}
  .l-story-group .ft-heading__lead{line-height:1.65;}
  .l-story-group .ft-closing{font-size:15px;}

  
  
  
  
}

@media (max-width:720px){
  .l-story-group .ft-closing{
    display:block;
    text-align:center;
  }
  .l-story-group .ft-closing strong{display:block;}
}

/* source-style-16 */
:root{--completion-red:#9c171a;--completion-red-dark:#761013;--completion-gold:#b98d2c;--completion-ink:#2c2925;--completion-muted:#6b645d;--completion-paper:#fbf7f0;--completion-line:#d9cfc2}








/* overview */







/* voices */


/* teacher */


/* trial */



/* final */



/* Human Figma MASTER typography carried into code for sections already art-directed. */
@media (min-width: 781px){
  .l-header__inner{max-width:1360px!important}
  .l-header__brand{width:514px!important}
  .l-header__brand img{width:257px!important;height:45px!important;object-fit:contain!important}
  .l-header__brand span{font-size:20px!important;line-height:25px!important;width:auto!important;margin-left:16px!important}
  .l-header__nav a{font-size:20px!important;line-height:29px!important}
  .l-button--header{width:272px!important;font-size:16px!important}
  .l-hero__concept{font-size:24px!important;line-height:38.24px!important}
  .l-empathy__symptoms{font-size:20px!important;line-height:33px!important}
  .l-empathy__diagnosis p,.l-empathy__elio p{font-size:20px!important;line-height:36px!important}
  .l-empathy__possibility{font-size:20px!important;line-height:32px!important}
  .ft-heading__lead{font-size:20px!important;line-height:28.9px!important}
  .ft-panel__hero{font-size:32px!important;line-height:35px!important}
  .ft-panel__body{font-size:20px!important;line-height:40.5px!important}
  .ft-panel__checks li{font-size:18px!important;line-height:24.75px!important}
  .ft-closing{font-size:29px!important;line-height:40.6px!important}
  #lesson-flow-title{font-size:36px!important;line-height:40.6px!important}
  
  
  
  
  #lesson-styles-title{font-size:32px!important;line-height:40.6px!important}
  
}









/* source-style-17 */
@charset "UTF-8";

/*
 * 2026-08-16 — Figma MASTER / Drive canonical merge
 * Figma canonical: page start through 「授業の流れ」.
 * Drive canonical: 「時期や課題に応じて、授業スタイルを個別化」 onward.
 * Desktop geometry is matched to Figma node 5:132 at 1440px.
 * Existing mobile behavior is intentionally preserved unless content itself changed.
 */

@media (min-width: 781px){
  /* 02 empathy — Figma MASTER node 5:166 (1440 × 1171) */
  .l-empathy{
    --em-master-u: calc(100cqw / 1440);
    aspect-ratio: 1440 / 1171;
  }
  .lp-latest .l-empathy__decor--top{display:none;}

  .l-empathy__voices{
    top:calc(73.58 * var(--em-master-u));
    left:calc(328 * var(--em-master-u));
    width:calc(425 * var(--em-master-u));
  }
  .l-empathy__voices p,
  .l-empathy__voices p:nth-child(2){
    position:static;
    margin:0;
    color:#211f1d;
    font-size:calc(24 * var(--em-master-u));
    font-weight:500;
    line-height:calc(41.119 * var(--em-master-u));
    letter-spacing:calc(1.076 * var(--em-master-u));
    white-space:nowrap;
    transform:none;
  }

  .l-empathy__reframe{
    top:calc(174.58 * var(--em-master-u));
    left:calc(328 * var(--em-master-u));
    width:calc(1069 * var(--em-master-u));
  }
  .lp-latest .l-empathy__reframe h2{
    margin:0!important;
    font-size:calc(31.756 * var(--em-master-u));
    line-height:calc(46.999 * var(--em-master-u));
    letter-spacing:calc(.635 * var(--em-master-u));
  }
  .l-empathy__reframe h2 span,
  .l-empathy__reframe h2 em{
    position:static;
    display:block;
    white-space:nowrap;
    transform:none;
  }
  .l-empathy__reframe h2 em{color:#9f252a;}

  .l-empathy__symptoms{
    top:calc(315.58 * var(--em-master-u));
    left:calc(328 * var(--em-master-u));
    width:calc(830 * var(--em-master-u));
    height:calc(113 * var(--em-master-u));
    padding:calc(2.8 * var(--em-master-u)) 0 0 calc(81.156 * var(--em-master-u));
    border-left:calc(1 * var(--em-master-u)) solid #97928c;
    font-size:calc(20 * var(--em-master-u))!important;
    line-height:calc(33.24 * var(--em-master-u))!important;
    letter-spacing:calc(.61 * var(--em-master-u));
  }
  .l-empathy__symptoms li,
  .l-empathy__symptoms li:nth-child(1),
  .l-empathy__symptoms li:nth-child(2),
  .l-empathy__symptoms li:nth-child(3){
    top:auto;
    transform:none;
  }
  .l-empathy__symptoms li::before{
    content:"✓";
    left:calc(-47 * var(--em-master-u));
    color:#a02120;
    font-size:calc(20 * var(--em-master-u));
    transform:none;
  }

  .l-empathy__diagnosis{
    top:calc(473.58 * var(--em-master-u));
    left:calc(328 * var(--em-master-u));
    width:calc(1069 * var(--em-master-u));
  }
  .l-empathy__diagnosis p{
    margin:0;
    color:#211f1d;
    font-size:calc(20 * var(--em-master-u))!important;
    font-weight:500;
    line-height:calc(29.334 * var(--em-master-u))!important;
    letter-spacing:calc(.535 * var(--em-master-u));
    white-space:nowrap;
  }
  .l-empathy__diagnosis p strong{
    color:#9f252a;
    font-weight:500;
  }

  .l-empathy__possibility{
    top:calc(559.86 * var(--em-master-u));
    left:calc(328 * var(--em-master-u));
    width:calc(1069 * var(--em-master-u));
    margin:0;
    color:#211f1d;
    font-size:calc(20 * var(--em-master-u))!important;
    font-weight:500;
    line-height:calc(36.2 * var(--em-master-u))!important;
    letter-spacing:calc(.532 * var(--em-master-u));
    white-space:nowrap;
    transform:none;
  }

  .l-empathy__elio{
    top:calc(697.58 * var(--em-master-u));
    left:calc(328 * var(--em-master-u));
    width:calc(914 * var(--em-master-u));
  }
  .l-empathy__elio p{
    margin:0;
    color:#211f1d;
    font-size:calc(20 * var(--em-master-u))!important;
    font-weight:500;
    line-height:calc(37.6 * var(--em-master-u))!important;
    letter-spacing:calc(.54 * var(--em-master-u));
    white-space:nowrap;
  }
  .l-empathy__elio p strong{
    color:#9f252a;
    font-weight:500;
  }

  .l-empathy__handwritten{
    top:calc(814.58 * var(--em-master-u));
    left:calc(505 * var(--em-master-u));
    width:calc(748 * var(--em-master-u));
    height:calc(221 * var(--em-master-u));
  }
  .lp-latest .l-empathy__decor--bottom{
    top:calc(1036.58 * var(--em-master-u));
    left:0;
    width:calc(1440 * var(--em-master-u));
    height:calc(149.063 * var(--em-master-u));
  }

  /* 03 features — Figma MASTER node 5:221. Existing shell/stage geometry already matches. */
  .l-story-group>.l-feature-tabs.ft-precision{
    padding-top:82px;
  }
  /* The MASTER default state intentionally leaves the right half of feature 01 quiet. */
  .l-story-group .ft-panel--01 .ft-panel__visual{
    visibility:hidden;
  }

  /* 授業の流れ — Figma MASTER node 5:303. Boundary stops before .lesson-cycle__styles. */
  
  
  
  
  
}

@media (max-width: 780px){
  /* New source copy has explicit desktop line breaks; let mobile wrap naturally. */
  .l-empathy__diagnosis br,
  .l-empathy__possibility br,
  .l-empathy__elio br{display:none;}
  .l-empathy__diagnosis p,
  .l-empathy__possibility,
  .l-empathy__elio p{white-space:normal;}
}

@media (min-width: 781px){
  /* Feature 01 internal geometry: mirror the active MASTER panel without affecting other tabs. */
  .l-story-group .ft-stage:has(.ft-panel--01:not([hidden])){
    height:642px;
    min-height:642px;
  }
  .l-story-group .ft-panel--01 .ft-panel__main{
    height:495px;
    min-height:495px;
    grid-template-columns:539px 539px;
  }
  .l-story-group .ft-panel--01 .ft-panel__copy{
    position:relative;
    width:539px;
    height:495px;
    padding:0;
  }
  .l-story-group .ft-panel--01 .ft-panel__titleline{
    position:absolute;
    left:10px;
    top:0;
    width:499px;
    height:80px;
    margin:0;
  }
  .l-story-group .ft-panel--01 .ft-panel__hero{
    position:absolute;
    left:10px;
    top:80px;
    width:447.25px;
    height:78px;
    margin:0;
    padding-top:8px;
    box-sizing:border-box;
    white-space:nowrap;
  }
  .l-story-group .ft-panel--01 .ft-panel__rule{
    position:absolute;
    left:10px;
    top:164px;
    width:447.25px;
    height:27px;
    margin:0;
  }
  .l-story-group .ft-panel--01 .ft-panel__body{
    position:absolute;
    left:10px;
    top:198px;
    width:525px;
    margin:0;
  }
  
  .l-story-group .ft-panel--01 .ft-panel__checks{
    position:absolute;
    left:10px;
    top:358px;
    width:451px;
    height:156px;
  }
  .l-story-group .ft-panel--01 .ft-closing{
    height:71px;
    margin-top:19.58px;
    top:0;
  }

  /* Fix the two-column placement explicitly; the legacy center-total cell is desktop-hidden. */
  
  
  
  
}

@media (min-width: 781px){
  /* Figma frame height excludes the legacy section bottom padding; the rule occupies that space. */
  .l-story-group>.l-feature-tabs.ft-precision{padding-bottom:0;}
}

/* source-style-18 */
@charset "UTF-8";
/* 2026-08-17 — Figma node 144:70 (2026-08-16 23:00更新) final implementation */
:root{--f23-paper:#f8f4ed;--f23-paper2:#fbf8f2;--f23-ink:#292522;--f23-red:#a51c1d;--f23-red-dark:#7d0c11;--f23-gold:#c99a43;--f23-line:#dacdba;--f23-muted:#716a63;--f23-green:#557f3e;--f23-blue:#34588c}
.final-school-analysis,.final-lesson-styles,.final-instructor-voices,.final-overview,.final-trial,.final-faq,.final-cta{box-sizing:border-box;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;color:var(--f23-ink)}
.final-school-analysis *,.final-lesson-styles *,.final-instructor-voices *,.final-overview *,.final-trial *,.final-faq *,.final-cta *{box-sizing:border-box}

/* 04 school analysis */
.final-school-analysis{background:var(--f23-paper);padding:20px 30px 21px}
.final-school-analysis__inner{height:778px;max-width:1380px;margin:auto;border:1px solid #d8a8a8;border-radius:11px;padding:24px 69px 25px;background:rgba(255,255,255,.38)}
.final-eyebrow{margin:0;text-align:center;color:#8f1a1d;font:600 18px/1.6 "Noto Serif JP",serif;letter-spacing:.03em;display:flex;justify-content:center;align-items:center;gap:42px}.final-eyebrow span{display:block;width:52px;height:1px;background:#b84545}
.final-school-analysis h2{font-size:34px!important;line-height:48px!important;text-align:center;font-weight:600!important;letter-spacing:.02em;margin:15px 0 9px!important;white-space:nowrap}
.final-heading-rule{width:505px;height:16px;margin:0 auto 10px;position:relative;border-top:1px solid var(--f23-gold)}.final-heading-rule i{position:absolute;width:7px;height:7px;border:1px solid var(--f23-gold);background:var(--f23-paper2);left:50%;top:-4px;transform:translateX(-50%) rotate(45deg)}
.final-school-analysis__lead{text-align:center;font-size:18px!important;line-height:32px!important;margin:0 0 25px!important}
.final-school-featured{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:0 0 31px}
.final-school-featured__card{height:214px;border:1px solid var(--f23-line);border-radius:8px;background:#fff;color:inherit!important;text-decoration:none!important;padding:83px 28px 16px;position:relative;box-shadow:0 3px 7px rgba(40,25,15,.08);overflow:hidden}
.final-school-badge{position:absolute;left:0;top:0;padding:4px 15px;background:#a7191c;color:#fff;font:600 14px/1.4 "Noto Sans JP",sans-serif;border-radius:7px 0 5px 0}



.final-school-featured__card h3{font-size:20px!important;line-height:28px!important;font-weight:500!important;margin:0 0 3px!important;white-space:nowrap}.final-school-featured__card p{font-size:15px!important;line-height:25px!important;margin:0!important}.final-school-featured__card b{position:absolute;left:28px;bottom:15px;color:#8e1718;font:500 14px/1.4 "Noto Serif JP",serif}.final-school-featured__card em{position:absolute;right:0;bottom:0;width:37px;height:37px;background:#a9191d}
.final-school-list{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 18px;margin-bottom:16px}.final-school-list a{height:51px;border:1px solid var(--f23-line);border-radius:7px;background:#fff;box-shadow:0 3px 7px rgba(40,25,15,.08);text-decoration:none!important;color:inherit!important;display:grid;grid-template-columns:54px 1fr 24px;align-items:center;padding:0 13px}.final-school-list a span{font-size:15px;white-space:nowrap}.final-school-list a b{font-size:25px;color:#8e1718;font-weight:400}.final-school-analysis__cta{width:530px;height:65px;margin:16px auto 0;background:#ad171a;color:#fff!important;text-decoration:none!important;display:flex;align-items:center;justify-content:center;gap:25px;border-radius:4px;box-shadow:0 4px 8px rgba(78,20,20,.18);font-size:20px}.final-school-analysis__cta span{font-size:26px}.final-school-analysis__cta b{font-size:27px;font-weight:300}

/* 05 individualized styles */



/* 06 instructor + voices */
.final-instructor-voices{background:#fff}.final-instructor{height:960px;display:grid;grid-template-columns:640px 1fr;overflow:hidden}.final-instructor__photo{height:960px;position:relative;overflow:hidden;background:#eee}.final-instructor__photo>img:first-child{width:100%;height:960px;object-fit:cover;object-position:38% center}.final-instructor__copy{padding:54px 79px 28px 58px}.final-instructor__eyebrow{font:500 16px/22px Georgia,serif;color:#a7191c;letter-spacing:.13em;margin:0 0 7px!important;display:flex;align-items:center;gap:12px}.final-instructor__eyebrow span{width:52px;height:1px;background:#b74646}.final-instructor__name{font-size:17px!important;line-height:34px!important;font-weight:600!important;margin:0 0 12px!important}.final-instructor__copy h2{font-size:50px!important;line-height:68px!important;font-weight:500!important;margin:0 0 23px!important;letter-spacing:.02em}.final-instructor__copy h2 em{font-style:normal;color:#b41d1f}.final-instructor__statement{font-size:16px;line-height:27px;margin-bottom:23px}.final-instructor__statement p{font-size:16px!important;line-height:27px!important;margin:0 0 14px!important}.final-instructor__facts{display:grid;grid-template-columns:1fr .68fr;gap:26px;margin-top:4px}.final-instructor__facts h3{color:#b12627;font-size:18px!important;line-height:28px!important;font-weight:500!important;border-bottom:1px solid #b12627;margin:0 0 11px!important;padding-bottom:8px}.final-instructor__facts h3 small{font-size:12px}.final-instructor__facts p{font-size:15px!important;line-height:28px!important;margin:0!important}.final-instructor__cta{display:flex;width:295px;height:46px;margin:33px auto 0;align-items:center;justify-content:center;background:#ad171a;color:#fff!important;text-decoration:none!important;font-size:16px}
.final-voices{height:743px;background:#fff;padding:64px 102px}.final-voices>h2{text-align:center;font-size:40px!important;line-height:54px!important;font-weight:500!important;margin:0 0 8px!important}.final-voices>p{text-align:center;font-size:18px!important;line-height:32px!important;margin:0 0 39px!important;color:#6b645d}.final-voices__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.final-voices blockquote{height:390px;border:1px solid #ddd2c3;margin:0!important;padding:25px 26px 20px!important;background:#fff}.final-voices blockquote>span{display:inline-block;background:#aa1519;color:#fff;padding:5px 12px;font:700 14px/1.1 "Noto Sans JP",sans-serif;margin-bottom:22px}.final-voices blockquote.is-gold>span{background:#b98b26}.final-voices blockquote h3{font-size:24px!important;line-height:37px!important;font-weight:500!important;margin:0 0 20px!important;padding-bottom:18px;border-bottom:1px solid #e2d7c8}.final-voices blockquote p{font-size:16px!important;line-height:30px!important;margin:0!important}

/* 07 overview */
.final-overview{height:326px;background:#f8f4ed;padding:18px 74px 15px}.final-overview__inner{max-width:1292px;margin:auto}.final-section-heading{display:flex;align-items:center;justify-content:center;gap:87px}.final-section-heading span{width:118px;height:1px;background:#c7933e;position:relative}.final-section-heading span:after{content:"";position:absolute;top:-4px;width:7px;height:7px;background:#c7933e;transform:rotate(45deg)}.final-section-heading span:first-child:after{right:0}.final-section-heading span:last-child:after{left:0}.final-section-heading h2{font-size:40px!important;line-height:54px!important;margin:0!important;font-weight:500!important}.final-overview__lead{text-align:center;font-size:18px!important;line-height:30px!important;margin:4px 0 16px!important}.final-overview__grid{height:130px;border:1px solid #d7c8b4;border-radius:7px;background:rgba(255,255,255,.56);display:grid;grid-template-columns:repeat(5,1fr);box-shadow:0 4px 9px rgba(45,33,22,.08)}.final-overview__grid>div{display:grid;grid-template-columns:72px 1fr;align-items:center;padding:12px 22px;position:relative}.final-overview__grid>div+div:before{content:"";position:absolute;left:0;top:21px;bottom:21px;width:1px;background:#dcc8af}.final-overview__grid img{width:55px;height:55px;object-fit:contain}.final-overview__grid p{margin:0!important}.final-overview__grid b{display:block;color:#b11317;font-size:16px!important;line-height:22px!important;margin-bottom:4px}.final-overview__grid span{display:block;font-size:18px!important;line-height:25px!important}.final-overview__grid small{display:block;font:10px/15px "Noto Sans JP",sans-serif;margin-top:4px}.final-overview__note{text-align:center;font:13px/22px "Noto Sans JP",sans-serif!important;color:#77706a;margin:15px 0 0!important}

/* 08 trial */
.final-trial{height:754px;background:#f7f1e9 url("../img/lp-optimized/img-1d2b0a9d99ad871b.webp") center/cover no-repeat;position:relative;overflow:hidden}.final-trial:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(249,245,239,.98) 0%,rgba(249,245,239,.94) 48%,rgba(249,245,239,.35) 67%,rgba(249,245,239,.02) 100%)}.final-trial__inner{position:relative;z-index:1;height:100%;padding:58px 55px 29px}.final-trial h2{font-size:42px!important;line-height:64px!important;font-weight:500!important;margin:0 0 11px!important;letter-spacing:.01em}.final-trial h2 em{font-style:normal;color:#b40005}.final-trial__lead{font-size:17px!important;line-height:28px!important;margin:0 0 17px!important}.final-trial__lead em{font-style:normal;color:#b30004}.final-trial__steps{list-style:none!important;padding:0!important;margin:0 0 16px!important;display:grid;grid-template-columns:repeat(3,320px);gap:56px;justify-content:start}.final-trial__steps li{height:248px;background:#fff;position:relative;padding:36px 22px 18px!important;text-align:center;box-shadow:0 2px 5px rgba(80,45,20,.08);transform:rotate(-.5deg)}.final-trial__steps li:nth-child(2){transform:rotate(.6deg)}.final-trial__steps li:nth-child(3){transform:rotate(-.4deg)}.final-trial__no{position:absolute;left:18px;top:11px;color:#c99943;font:400 54px/1 Georgia,serif}.final-trial__icons{height:72px;display:flex;align-items:center;justify-content:center;gap:0}.final-trial__icons img{width:62px;height:62px;object-fit:contain}.final-trial__icons--pair{gap:3px}.final-trial__icons--pair img{width:48px;height:48px}.final-trial__steps h3{font-size:20px!important;line-height:28px!important;font-weight:600!important;margin:0 0 8px!important}.final-trial__steps p{font-size:14px!important;line-height:22px!important;margin:0!important}.final-trial__steps li:not(:last-child):after{content:"→";position:absolute;right:-47px;top:105px;color:#c5943b;font:400 42px/1 Georgia,serif}
.final-trial__band{height:150px;border:1px solid #d69b3d;border-radius:8px;background:#fbf7ef;display:grid;grid-template-columns:570px 1fr 385px;overflow:hidden}.final-trial__outcomes{display:grid;grid-template-columns:145px 1fr;align-items:center;border-right:1px solid #ddcbb6}.final-trial__outcomes strong{width:105px;height:105px;border-radius:50%;background:#b20a0b;color:#fff;display:grid;place-items:center;text-align:center;font-size:16px;line-height:27px;justify-self:center}.final-trial__outcomes ul{list-style:none;margin:0!important;padding:0!important}.final-trial__outcomes li{font-size:15px!important;line-height:32px!important;white-space:nowrap}.final-trial__outcomes li:before{content:"✓";color:#c89943;font-size:23px;margin-right:16px}.final-trial__decision{padding:23px 24px}.final-trial__decision p{font-size:13px!important;line-height:26px!important;margin:14px 0 0!important}.final-trial__action{padding:24px 18px;text-align:center}.final-trial__action a{height:73px;background:#ae1517;color:#fff!important;text-decoration:none!important;display:flex;align-items:center;justify-content:center;font-size:19px;box-shadow:0 4px 7px rgba(70,20,10,.25)}

/* 09 FAQ */
.final-faq{height:624px;background:#f7f3ec;padding:47px 130px}.final-faq__inner{max-width:1180px;margin:auto}.final-faq h2{text-align:center;font-size:40px!important;line-height:54px!important;font-weight:500!important;margin:0 0 29px!important}.final-faq details{border:1px solid #d3c4b3;border-bottom:0;background:rgba(255,255,255,.18)}.final-faq details:last-child{border-bottom:1px solid #d3c4b3}.final-faq summary{height:63px;list-style:none;cursor:pointer;padding:17px 55px 14px 48px;position:relative;font:600 18px/28px "Noto Sans JP",sans-serif}.final-faq details[open] summary{height:51px;padding-top:14px}.final-faq summary:before{content:"Q";position:absolute;left:15px;top:14px;width:24px;height:24px;border-radius:50%;background:#a8191b;color:#fff;display:grid;place-items:center;font:700 14px/1 Georgia,serif}.final-faq summary:after{content:"⌄";position:absolute;right:37px;color:#a8191b;font-size:18px}.final-faq details[open] summary:after{content:"⌃"}.final-faq details p{font-size:15px!important;line-height:27px!important;color:#756f68;padding:0 48px 15px!important;margin:0!important}.final-faq details[open]{height:112px}

/* 10 final CTA */
.final-cta{height:352px;background:#9b0e12;color:#fff;padding:82px 84px}.final-cta__inner{display:grid;grid-template-columns:540px 1fr;gap:65px;align-items:start}.final-cta__copy h2{font-size:42px!important;line-height:64px!important;font-weight:500!important;margin:0 0 20px!important;color:#fff!important}.final-cta__copy p{font-size:17px!important;margin:0!important;color:#fff!important}.final-cta__box{width:630px;height:172px;background:#fbf8f2;color:#332c27;display:grid;grid-template-columns:180px 1fr;padding:28px 28px}.final-cta__box>strong{font-size:20px;line-height:35px;color:#aa1518;text-align:center;display:grid;place-items:center;border-right:1px solid #dccdbd}.final-cta__box>div{padding-left:24px}.final-cta__box a{height:52px;background:#a7191c;color:#fff!important;text-decoration:none!important;display:flex;align-items:center;justify-content:center;font-size:16px}

/* final footer geometry */


@media (max-width:780px){
  .final-school-analysis{padding:18px 14px}.final-school-analysis__inner{height:auto;padding:26px 16px}.final-eyebrow{font-size:13px;gap:12px}.final-eyebrow span{width:28px}.final-school-analysis h2{font-size:25px!important;line-height:1.5!important;white-space:normal}.final-heading-rule{width:68%;}.final-school-analysis__lead{font-size:15px!important;line-height:1.8!important}.final-school-analysis__lead br{display:none}.final-school-featured{grid-template-columns:1fr 1fr;gap:12px}.final-school-featured__card{height:235px;padding:86px 15px 15px}.final-school-featured__card h3{font-size:16px!important;white-space:normal;line-height:1.5!important}.final-school-featured__card p{font-size:13px!important;line-height:1.6!important}.final-school-featured__card b{left:15px}.final-school-list{grid-template-columns:1fr;gap:8px}.final-school-analysis__cta{width:100%;height:56px;font-size:15px;gap:14px}
  
  .final-instructor{height:auto;display:block}.final-instructor__photo{height:460px}.final-instructor__photo>img:first-child{height:460px;object-position:40% center}.final-instructor__copy{padding:36px 22px 44px}.final-instructor__copy h2{font-size:34px!important;line-height:1.55!important}.final-instructor__statement p{font-size:15px!important;line-height:1.9!important}.final-instructor__facts{grid-template-columns:1fr;gap:22px}.final-instructor__cta{width:100%;max-width:340px}.final-voices{height:auto;padding:44px 16px}.final-voices>h2{font-size:32px!important}.final-voices>p{font-size:14px!important}.final-voices__grid{grid-template-columns:1fr}.final-voices blockquote{height:auto;min-height:330px}.final-voices blockquote h3{font-size:21px!important}.final-voices blockquote p{font-size:15px!important;line-height:1.9!important}
  .final-overview{height:auto;padding:34px 16px}.final-section-heading{gap:16px}.final-section-heading span{width:45px}.final-section-heading h2{font-size:32px!important}.final-overview__lead{font-size:14px!important}.final-overview__grid{height:auto;grid-template-columns:1fr;border-radius:6px}.final-overview__grid>div{min-height:105px;grid-template-columns:80px 1fr;padding:12px 26px}.final-overview__grid>div+div:before{top:0;bottom:auto;left:20px;right:20px;width:auto;height:1px}.final-overview__grid span br{display:none}.final-overview__note{font-size:11px!important}
  .final-trial{height:auto;background-position:68% center}.final-trial:before{background:rgba(249,245,239,.55)}.final-trial__inner{padding:42px 16px 30px}.final-trial h2{font-size:27.5px!important;line-height:1.55!important}.final-trial__lead{font-size:14px!important;line-height:1.8!important}.final-trial__steps{grid-template-columns:1fr;gap:20px}.final-trial__steps li{height:auto;min-height:220px;transform:none!important}.final-trial__steps li:not(:last-child):after{content:"↓";right:50%;top:auto;bottom:-23px;transform:translateX(50%);font-size:28px}.final-trial__band{height:auto;display:block}.final-trial__outcomes{grid-template-columns:110px 1fr;border-right:0;border-bottom:1px solid #ddcbb6;padding:15px 8px}.final-trial__outcomes strong{width:90px;height:90px;font-size:14px}.final-trial__outcomes li{font-size:13px!important;line-height:2!important;white-space:normal}.final-trial__decision{border-bottom:1px solid #ddcbb6}.final-trial__action{padding:18px}
  .final-faq{height:auto;padding:42px 16px}.final-faq h2{font-size:32px!important}.final-faq details[open]{height:auto}.final-faq summary,.final-faq details[open] summary{height:auto;min-height:62px;font-size:15px;line-height:1.5;padding:18px 45px 15px 47px}.final-faq details p{font-size:13px!important;line-height:1.8!important;padding:0 20px 18px 47px!important}
  .final-cta{height:auto;padding:44px 18px}.final-cta__inner{display:block}.final-cta__copy h2{font-size:31px!important;line-height:1.55!important}.final-cta__copy p{font-size:14px!important;margin-bottom:30px!important}.final-cta__box{width:100%;height:auto;grid-template-columns:105px 1fr;padding:20px 16px}.final-cta__box>strong{font-size:16px;line-height:1.6}.final-cta__box>div{padding-left:14px}.final-cta__box a{font-size:13px}
}

/* measured refinements against final Figma frame 144:70 */
@media (min-width:781px){
  body.lp-latest{padding-bottom:0!important}
  .l-empathy{height:1067px!important;min-height:0!important;aspect-ratio:auto!important;overflow:hidden!important}
  .final-school-analysis{padding-bottom:22px}

  .final-instructor-voices{height:1703px;overflow:hidden}
  .final-instructor__copy{padding-left:72px;padding-right:42px}
  .final-instructor__statement{height:351px;margin-bottom:33px}
  .final-instructor__facts{grid-template-columns:352px 239px;gap:33px;height:212px;margin-top:0}
  .final-instructor__cta{width:372px;height:58px;margin:63px 0 0 144px}
  .final-voices{height:627px;margin-top:116px;padding:15px 130px}
  .final-voices>h2{margin-bottom:8px!important}
  .final-voices>p{margin-bottom:39px!important}
  .final-voices__grid{gap:18px}
  .final-voices blockquote{height:359px}

  .final-trial h2,.final-trial__lead{margin-left:40px!important}
  .final-trial__steps{margin-left:70px!important;gap:65px}

  .final-cta__copy h2{font-size:40px!important;line-height:64px!important;white-space:nowrap}
  .l-footer{height:234.562px!important;padding-top:58px!important;padding-bottom:20px!important}
}
@media (min-width:781px){
  .final-voices>h2{margin-bottom:16px!important}
  .final-voices>p{margin-bottom:52px!important}
}

/* 03 feature 01 — sync to final Figma node 144:176 / 144:207 */
@media (min-width:721px){
  .l-story-group .ft-panel--01 .ft-panel__visual{visibility:visible!important}
  .l-story-group .ft-panel--01 .ft-panel__main{grid-template-columns:50% 50%}
  .l-story-group .ft-panel--01 .final-feature-photo{height:495px;margin:0;overflow:hidden;background:#eee}
  .l-story-group .ft-panel--01 .final-feature-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
  .l-story-group .ft-panel--01 .ft-panel__body{font-size:15.8px;line-height:1.88;transform:none;letter-spacing:.02em}
}
@media (max-width:720px){
  .l-story-group .ft-panel--01 .ft-panel__visual{visibility:visible!important}
  .l-story-group .ft-panel--01 .final-feature-photo{height:330px;margin-top:24px;overflow:hidden;background:#eee}
  .l-story-group .ft-panel--01 .final-feature-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
}

/* Keep the keyboard skip-link out of visual captures until focused. */
.skip-link{opacity:0;pointer-events:none}
.skip-link:focus{opacity:1;pointer-events:auto}
