/* ==========================================================================
   Base / Tokens / Global Layers
   ========================================================================== */

:root {
  --font-family-base: "Inter", "Noto Sans JP", "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", sans-serif;
  --font-family-heading: "Zen Kaku Gothic New", "Noto Sans JP", "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", sans-serif;
  --font-family-number: "Sirivennela", serif;
  --font-weight-heading: 500;
  --rgb-white: 255, 255, 255;
  --rgb-frost: 247, 248, 251;
  --rgb-surface: 248, 251, 254;
  --rgb-paper: 250, 249, 245;
  --rgb-ink: 4, 25, 48;
  --rgb-text: 4, 31, 61;
  --bg: #e6e9ec;
  --bg-soft: #d9dee3;
  --bg-light-source: rgba(var(--rgb-white), 0.98);
  --bg-light-source-soft: rgba(var(--rgb-white), 0.72);
  --bg-light-ray: rgba(var(--rgb-white), 0.72);
  --bg-light-ray-soft: rgba(var(--rgb-white), 0.32);
  --bg-light-depth: rgba(45, 58, 70, 0.08);
  --bg-curtain-sheen: rgba(var(--rgb-white), 0.66);
  --bg-curtain-haze: rgba(225, 228, 231, 0.7);
  --bg-curtain-shadow: rgba(78, 88, 98, 0.12);
  --bg-curtain-shadow-soft: rgba(31, 40, 48, 0.055);
  --bg-dark: #021542;
  --bg-dark-soft: #043f8f;
  --bg-dark-light-source: rgba(0, 108, 225, 0.17);
  --bg-dark-light-source-soft: rgba(0, 58, 178, 0.13);
  --bg-dark-ray: rgba(0, 150, 226, 0.28);
  --bg-dark-ray-soft: rgba(0, 70, 210, 0.2);
  --bg-dark-fan-core: rgba(0, 168, 232, 0.68);
  --bg-dark-fan-edge: rgba(0, 58, 192, 0.66);
  --bg-dark-fan-shadow: rgba(0, 10, 74, 0.8);
  --bg-dark-sheen: rgba(0, 98, 205, 0.26);
  --bg-dark-shadow: rgba(0, 10, 44, 0.66);
  --bg-dark-fan-size: min(124rem, 118vw);
  --bg-dark-fan-depth: min(124rem, 118vw);
  --dark-bg-fan-x: 0px;
  --dark-bg-fan-y: 0px;
  --dark-bg-glow-x: 0px;
  --dark-bg-glow-y: 0px;
  --dark-bg-glow-soft-x: 0px;
  --dark-bg-glow-soft-y: 0px;
  --dark-bg-ray-x: 0px;
  --dark-bg-ray-y: 0px;
  --dark-bg-ray-soft-x: 0px;
  --dark-bg-ray-soft-y: 0px;
  --surface: #f8fbfe;
  --surface-soft: rgba(var(--rgb-white), 0.84);
  --surface-dark: #173047;
  --surface-deep: #041930;
  --text: #041f3d;
  --text-soft: #2e4b68;
  --text-muted: #38536f;
  --text-inverse: #f8fbfe;
  --text-inverse-soft: rgba(var(--rgb-frost), 0.84);
  --text-inverse-muted: rgba(var(--rgb-frost), 0.68);
  --text-inverse-strong: rgba(var(--rgb-frost), 0.88);
  --headline-color: #003084;
  --headline-gradient:
    linear-gradient(135deg, rgba(139, 215, 255, 0) 0%, rgba(139, 215, 255, 0) 18%, rgba(198, 236, 255, 0.95) 28%, rgba(139, 215, 255, 0) 38%, rgba(139, 215, 255, 0) 60%, rgba(116, 207, 255, 0.82) 70%, rgba(139, 215, 255, 0) 80%),
    linear-gradient(135deg, #00296f 0%, #0a70bf 18%, #8bd7ff 30%, #063f71 43%, #0072d6 58%, #c6ecff 72%, #04345f 100%);
  --headline-metallic-gold: #c99a3a;
  --headline-metallic-gold-gradient:
    linear-gradient(135deg, rgba(241, 212, 123, 0) 0%, rgba(241, 212, 123, 0) 18%, rgba(242, 215, 130, 0.96) 28%, rgba(184, 121, 34, 0.18) 36%, rgba(241, 212, 123, 0) 45%, rgba(241, 212, 123, 0) 58%, rgba(228, 178, 79, 0.88) 69%, rgba(241, 212, 123, 0) 80%),
    linear-gradient(135deg, #6f3f0b 0%, #b87922 16%, #f1d47b 28%, #8a5515 40%, #e2b14d 52%, #5f3608 65%, #c89434 80%, #f0cd72 88%, #5a3306 100%);
  --metric-heavy-gold-gradient:
    linear-gradient(108deg, rgba(255, 241, 183, 0) 0%, rgba(255, 241, 183, 0) 16%, rgba(255, 246, 195, 0.98) 22%, rgba(151, 92, 12, 0.16) 30%, rgba(83, 45, 4, 0) 38%, rgba(255, 225, 131, 0.82) 57%, rgba(255, 248, 202, 0.96) 64%, rgba(95, 51, 5, 0.18) 72%, rgba(255, 241, 183, 0) 82%),
    linear-gradient(128deg, #3b1d02 0%, #7a4a08 12%, #c08a22 22%, #f4d675 31%, #8f570d 43%, #4b2602 53%, #b47a17 63%, #ffe59b 72%, #93600d 82%, #2b1501 100%);
  --paper-muted: rgba(var(--rgb-paper), 0.7);
  --paper-soft: rgba(var(--rgb-paper), 0.72);
  --paper-strong: rgba(var(--rgb-paper), 0.78);
  --paper-stronger: rgba(var(--rgb-paper), 0.84);
  --paper-bright: rgba(var(--rgb-paper), 0.92);
  --paper-solid: rgba(var(--rgb-paper), 0.94);
  --paper-panel: rgba(var(--rgb-paper), 0.98);
  --line: #dae5f0;
  --line-strong: #bfd0e1;
  --line-inverse: rgba(248, 251, 254, 0.18);
  --line-dark-soft: rgba(var(--rgb-paper), 0.14);
  --line-dark-thin: rgba(var(--rgb-paper), 0.12);
  --line-dark-strong: rgba(var(--rgb-frost), 0.22);
  --accent-rgb: 0, 112, 184;
  --accent: #0070b8;
  --accent-soft: #d8ebf9;
  --accent-strong: #0b5f98;
  --accent-deep: #084b77;
  --surface-muted: #e5eef6;
  --surface-muted-line: #dbe8f3;
  --surface-muted-hover: #d8e6f2;
  --surface-muted-line-hover: #d0e0ee;
  --surface-card-line: rgba(var(--rgb-ink), 0.09);
  --surface-card: rgba(var(--rgb-white), 0.86);
  --surface-glass: rgba(var(--rgb-surface), 0.12);
  --surface-glass-ring: rgba(var(--rgb-white), 0.48);
  --max-width: 1240px;
  --section-shell-width: min(100% - 3.5rem, var(--max-width));
  --fluid-shell-padding-inline: clamp(2.5rem, 6vw, 7rem);
  --story-card-padding-inline: clamp(2rem, 6vw, 7rem);
  --page-shell-width: min(100% - 3.5rem, 1180px);
  --page-copy-max-width: 36rem;
  --page-hero-padding: calc(var(--header-height) + 5rem) 0 clamp(3.5rem, 6vw, 5rem);
  --page-content-padding-top: clamp(5rem, 8vw, 7rem);
  --page-content-padding-bottom: clamp(6rem, 10vw, 8rem);
  --content-width: 820px;
  --paragraph-gap: clamp(1.55rem, 2.3vw, 2.15rem);
  --paragraph-gap-large: clamp(2rem, 3.2vw, 2.85rem);
  --kas-heading-stack-gap: clamp(0.85rem, 1.2vw, 1.1rem);
  --kas-component-gap: clamp(1.8rem, 3.2vw, 2.8rem);
  --kas-side-component-gap: clamp(2.6rem, 5vw, 5rem);
  --header-height: 92px;
  --radius-small: 6px;
  --radius: 8px;
  --radius-card: 8px;
  --radius-large: 12px;
  --shadow: 0 18px 44px rgba(19, 35, 51, 0.06);
  --shadow-deep: 0 26px 64px rgba(19, 35, 51, 0.1);
  --shadow-card: 0 16px 40px rgba(var(--rgb-ink), 0.08);
  --ring-shadow: 0 0 0 1px rgba(191, 208, 225, 0.92);
  --space-3xs: 0.16rem;
  --space-2xs: 0.55rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.25rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 2.75rem;
  --space-3xl: 4rem;
  --transition: 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

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

html {
  scroll-behavior: smooth;
  background: var(--bg);
}

body {
  --current-bg: var(--bg);
  --current-text: #041f3d;
  --current-text-soft: #2e4b68;
  --current-text-muted: #38536f;
  --current-heading-color: #003084;
  --current-heading-gradient: -webkit-linear-gradient(-125deg, #003084 0%, #0072d6 40%, #063f71 60%, #539dce 100%);
  --current-line: #dae5f0;
  --current-line-strong: #bfd0e1;
  --current-kicker: var(--accent-strong);
  --current-nav: var(--accent);
  --current-menu-panel: var(--paper-panel);
  --text: var(--current-text);
  --text-soft: var(--current-text-soft);
  --text-muted: var(--current-text-muted);
  --headline-color: var(--current-heading-color);
  --headline-gradient: var(--current-heading-gradient);
  --line: var(--current-line);
  --line-strong: var(--current-line-strong);
  margin: 0;
  color: var(--text);
  background-color: var(--current-bg);
  font-family: var(--font-family-base);
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  position: relative;
  isolation: isolate;
  overflow-x: clip;
  transition:
    background-color 900ms cubic-bezier(0.22, 1, 0.36, 1),
    color 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-light,
body:not(.is-dark) {
  --current-bg: #ffffff;
  --current-text: #041f3d;
  --current-text-soft: #2e4b68;
  --current-text-muted: #38536f;
  --current-heading-color: #003084;
  --current-heading-gradient: -webkit-linear-gradient(-125deg, #003084 0%, #0072d6 40%, #063f71 60%, #539dce 100%);
  --current-line: #dae5f0;
  --current-line-strong: #bfd0e1;
  --current-kicker: var(--accent-strong);
  --current-nav: var(--accent);
  --current-menu-panel: var(--paper-panel);
}

body.is-dark {
  --current-bg: #033f82;
  --current-text: #ffffff;
  --current-text-soft: rgba(var(--rgb-white), 0.94);
  --current-text-muted: rgba(var(--rgb-white), 0.84);
  --current-heading-color: var(--headline-metallic-gold);
  --current-heading-gradient: var(--headline-metallic-gold-gradient);
  --current-line: rgba(229, 244, 255, 0.2);
  --current-line-strong: rgba(229, 244, 255, 0.34);
  --current-kicker: rgba(187, 226, 255, 0.82);
  --current-nav: #d9f2ff;
  --current-menu-panel: rgba(5, 20, 38, 0.94);
  --accent-soft: rgba(111, 191, 248, 0.16);
  --surface-card-line: rgba(229, 244, 255, 0.16);
  --surface-card: rgba(8, 31, 57, 0.34);
  --paper-strong: rgba(var(--rgb-frost), 0.82);
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

body::before {
  background:
    radial-gradient(ellipse at 16% -10%, rgba(var(--rgb-white), 0.98) 0%, rgba(var(--rgb-white), 0.58) 18rem, rgba(var(--rgb-white), 0) 50rem),
    radial-gradient(ellipse at 84% 4%, rgba(231, 243, 252, 0.44) 0%, rgba(var(--rgb-white), 0) 42rem),
    linear-gradient(118deg, rgba(var(--rgb-white), 0) 0%, rgba(var(--rgb-white), 0) 18%, rgba(244, 250, 255, 0.5) 36%, rgba(var(--rgb-white), 0) 62%),
    linear-gradient(180deg, #ffffff 0%, #fbfdff 48%, #ffffff 100%);
  filter: blur(24px);
  opacity: 0.9;
  transform: scaleX(1.04) translateX(-0.75rem);
  transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

body::after {
  background:
    radial-gradient(ellipse at 52% 34%, rgba(62, 145, 216, 0.14) 0%, rgba(62, 145, 216, 0.07) 30rem, rgba(62, 145, 216, 0) 70rem),
    linear-gradient(180deg, #0557a8 0%, #04498f 46%, #022f6d 100%);
  opacity: 0;
  background-blend-mode: normal;
  filter: none;
  will-change: opacity, background-position;
  transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-dark::before {
  opacity: 0;
}

.theme-backdrop {
  display: none;
}

body.is-dark::after {
  opacity: 1;
}

body > *:not(.wind-field):not(.site-header):not(.hero-scope__visual):not(.kas-floating-news) {
  position: relative;
  z-index: 3;
}

.wind-field {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: clip;
}

.wind-field__layer {
  position: absolute;
  left: 0;
  top: 0;
  width: 80vw;
  height: 18rem;
  --wind-ribbon-color: rgb(230 243 255);
  --wind-ribbon-opacity: 0.28;
  --wind-ribbon-blur: 14px;
  opacity: 0;
  transform-origin: center;
  will-change: transform, opacity, filter;
}

.wind-field__layer::before,
.wind-field__layer::after {
  content: "";
  position: absolute;
  left: -24%;
  right: -24%;
  border-radius: 999px;
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0) 0%,
      var(--wind-ribbon-color) 14%,
      var(--wind-ribbon-color) 66%,
      rgba(255, 255, 255, 0) 100%
    );
  filter: blur(var(--wind-ribbon-blur));
  opacity: var(--wind-ribbon-opacity);
  pointer-events: none;
  transform-origin: center;
  will-change: transform, opacity, filter;
}

.wind-field__layer::before {
  top: 20%;
  height: 38%;
  transform: translateX(-7%) scaleX(1.52) skewX(-9deg);
}

.wind-field__layer::after {
  top: 48%;
  height: 28%;
  opacity: calc(var(--wind-ribbon-opacity) * 0.72);
  transform: translateX(11%) scaleX(1.32) skewX(7deg);
}

.wind-field__shape {
  position: absolute;
  inset: 0;
  background: var(--wind-color, rgb(255 255 255));
  -webkit-mask-image: var(--wind-image);
  mask-image: var(--wind-image);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  transform-origin: center;
  will-change: transform, opacity, filter;
}

.wind-field__layer--white {
  mix-blend-mode: screen;
}

.wind-field__layer--blue {
  mix-blend-mode: normal;
}

body.is-dark .wind-field__layer--blue {
  mix-blend-mode: lighten;
}

body.has-menu-open {
  overflow: hidden;
}

#smooth-wrapper {
  overflow-x: clip;
  overflow-y: visible;
  position: relative;
  z-index: 3;
  isolation: isolate;
}

#smooth-content {
  min-height: 100vh;
  position: relative;
  z-index: auto;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
}

p,
ul,
ol,
figure,
blockquote {
  margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-heading);
  letter-spacing: -0.03em;
  line-height: 1.28;
}

button,
input,
textarea,
select {
  font: inherit;
}

/* ==========================================================================
   Shared Layout / Components
   ========================================================================== */

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.site-main {
  display: block;
}

.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--current-kicker);
  font-size: 0.76rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  transition: color 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.section-kicker::before {
  content: "";
  display: block;
  width: 2.75rem;
  height: 1px;
  background: currentColor;
}

.section-shell {
  position: relative;
  padding: clamp(5.5rem, 9vw, 9.5rem) 0;
}

.section-shell--offset {
  padding-top: clamp(3.5rem, 6vw, 5.5rem);
}

.section-shell--tint {
  background: transparent;
}

.section-shell--dark {
  color: var(--text);
  background: transparent;
}

body.home .section-shell {
  background: transparent;
}

.section-shell--dark .section-kicker {
  color: var(--current-kicker);
}

.section-shell__inner {
  width: var(--section-shell-width);
  margin: 0 auto;
}

.section-shell__inner--split {
  display: block;
  gap: clamp(2.5rem, 6vw, 6rem);
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.95fr);
  align-items: start;
}

.section-shell__inner--reverse {
  grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1fr);
}

.section-heading {
  display: grid;
  gap: 1.5rem;
  margin-bottom: clamp(2.75rem, 5vw, 4rem);
  max-width: 46rem;
}

.section-heading h2 {
  font-size: clamp(2.3rem, 4.4vw, 4rem);
  line-height: 1.32;
}

.section-heading p {
  max-width: 38rem;
  color: var(--text-soft);
  font-size: clamp(1.02rem, 1.15vw, 1.12rem);
  line-height: 2;
  transition: color 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.section-shell--dark .section-heading p,
.section-shell--dark .split-feature__copy p {
  color: var(--text-soft);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.75rem;
  padding: 0 1.85rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  font-size: 0.96rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-decoration: none;
  box-shadow: var(--ring-shadow);
  transition:
    transform var(--transition),
    border-color var(--transition),
    color var(--transition),
    background-color var(--transition),
    box-shadow var(--transition),
    opacity var(--transition);
}

:where(p, li, h1, h2, h3, h4, h5, h6, a, span, small, time) {
  transition:
    color 520ms cubic-bezier(0.22, 1, 0.36, 1),
    border-color 520ms cubic-bezier(0.22, 1, 0.36, 1),
    background-color 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

.button:hover {
  transform: translateY(-1px);
}

.button--primary {
  color: var(--text-inverse);
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(var(--accent-rgb), 0.22);
}

.button--primary:hover {
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

.button--secondary {
  color: var(--text);
  background: var(--surface-muted);
  border-color: var(--surface-muted-line);
}

.button--secondary:hover {
  background: var(--surface-muted-hover);
  border-color: var(--surface-muted-line-hover);
}

.button--ghost {
  color: var(--text);
  border-color: var(--line-strong);
  background: transparent;
  box-shadow: none;
}

.section-shell--dark .button--ghost,
.site-footer .button--ghost {
  color: var(--text);
  border-color: var(--line-strong);
}

.button--ghost:hover {
  border-color: currentColor;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--accent-deep);
  font-size: 0.96rem;
  font-weight: 600;
  text-decoration: none;
}

body.is-dark .text-link {
  color: var(--text);
}

.text-link::after {
  content: "";
  width: 0.75rem;
  height: 0.75rem;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: translateY(-0.04rem) rotate(45deg);
  transition: transform var(--transition);
}

.text-link:hover::after {
  transform: translate(0.18rem, -0.04rem) rotate(45deg);
}

.confirm-note {
  color: var(--text-soft);
  font-size: 0.92rem;
}

/* ==========================================================================
   Header / Navigation Base
   ========================================================================== */

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 100;
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  transition:
    background-color var(--transition),
    border-color var(--transition),
    box-shadow var(--transition),
    backdrop-filter var(--transition);
}

.site-brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  padding-top: clamp(1.35rem, 2vw, 2rem);
  text-decoration: none;
}

.site-brand__logo {
  display: block;
  width: clamp(11.25rem, 18vw, 15.2rem);
  height: auto;
}

.site-header__inner {
  width: 100%;
  min-height: 0;
  padding: 0 clamp(2rem, 3.5vw, 3.5rem);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2.5rem;
}

.site-header__menu {
  display: block;
  flex: 0 0 auto;
}

.site-nav {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 0;
  padding-right: clamp(0rem, 1.8vw, 2.75rem);
}

.site-nav a {
  position: relative;
  display: block;
  font-size: 0.94rem;
  min-height: 0;
  margin-left: clamp(0.95rem, 2vw, 2.75rem);
  padding: clamp(1.6rem, 2.1vw, 2.85rem) 0.5rem 1rem;
  text-decoration: none;
}

.site-nav a::after {
  content: none;
}

.site-nav a span {
  display: block;
  font-family: var(--font-family-heading);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 1rem;
  line-height: 1.18;
  letter-spacing: 0.3em;
  font-weight: var(--font-weight-heading);
  text-align: center;
  color: var(--accent);
  transition: color var(--transition);
}

.site-nav a:hover span {
  color: var(--accent-strong);
}

.site-nav__item--cta {
  margin-left: clamp(1.2rem, 2.1vw, 3rem);
}

.site-nav__item--cta span {
  color: var(--accent-strong);
}

.site-footer__nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.35rem;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--transition);
}

.site-footer__nav a:hover::after {
  transform: scaleX(1);
}

.nav-toggle {
  display: none;
  align-items: center;
  gap: 0.85rem;
  padding: 0;
  color: var(--text);
  background: transparent;
  border: 0;
  cursor: pointer;
}

.nav-toggle__line {
  display: block;
  width: 1.35rem;
  height: 1px;
  background: currentColor;
  transition: transform var(--transition), opacity var(--transition);
}

.nav-toggle__label {
  font-size: 0.84rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.editorial-intro {
  --editorial-headline-start-x: clamp(-27rem, -27vw, -18rem);
  --editorial-headline-blur: 0.62rem;
  --editorial-headline-shift: var(--editorial-headline-start-x);
  --editorial-headline-opacity: 1;
  --editorial-intro-opacity: 1;
  --editorial-intro-scale: 1;
  --editorial-intro-blur: 0px;
  --editorial-mobile-body-y: 0px;
  overflow: visible;
  min-height: 340svh;
  padding: 0;
}

@media (prefers-reduced-motion: no-preference) {
  body.home.has-motion-js .editorial-intro {
    margin-top: -122svh;
  }
}

@media (max-width: 1100px) and (prefers-reduced-motion: no-preference) {
  body.home.has-motion-js .editorial-intro {
    margin-top: -70svh;
  }
}

@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  body.home.has-motion-js .editorial-intro {
    margin-top: -44svh;
  }
}

.editorial-intro__inner {
  position: sticky;
  top: 0;
  display: grid;
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  height: 100svh;
  min-height: 100svh;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: center;
  justify-items: center;
  padding-inline: var(--fluid-shell-padding-inline);
  opacity: var(--editorial-intro-opacity);
  filter: blur(var(--editorial-intro-blur));
  transform: scale(var(--editorial-intro-scale));
  transform-origin: center;
  will-change: opacity, filter, transform;
}

.editorial-intro__message {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: minmax(16rem, 1fr) auto;
  box-sizing: border-box;
  width: min(100%, 72rem);
  min-height: clamp(28rem, 56svh, 42rem);
  column-gap: clamp(2.5rem, 6vw, 7rem);
  align-items: center;
  justify-content: center;
  padding-inline: var(--story-card-padding-inline);
  color: var(--text);
}

.editorial-intro__message h2 {
  position: relative;
  z-index: 6;
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  justify-self: start;
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: clamp(1.72rem, 2.3vw, 2.6rem);
  font-weight: var(--font-weight-heading);
  line-height: 1.75;
  letter-spacing: 0.18em;
}

.editorial-intro__message h2 > span {
  display: block;
  white-space: nowrap;
}

.editorial-intro__body {
  position: relative;
  z-index: 6;
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  justify-self: end;
  display: grid;
  gap: clamp(1.1rem, 1.7vw, 1.9rem);
  max-width: min(100%, 39rem);
  height: min(48svh, clamp(19rem, 24.5vw, 23rem));
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: clamp(0.9rem, 0.98vw, 1.04rem);
  line-height: 1.9;
  letter-spacing: 0.06em;
  color: var(--text);
}

.editorial-intro__body p {
  display: inline;
  margin: 0;
}

.editorial-intro__body p + p::before {
  content: " ";
}

.editorial-intro__wind-char {
  display: inline-block;
  transform: translate3d(0, 0, 0);
  transform-origin: center;
  will-change: opacity, filter, transform;
  backface-visibility: hidden;
  contain: paint;
}

.editorial-intro__wind-char--body {
  transform-origin: 50% 55%;
}

.editorial-intro__wind-space {
  width: 0.35em;
  height: 0.35em;
}

.has-motion-js .editorial-intro__message h2 {
  opacity: var(--editorial-headline-opacity);
  filter: blur(var(--editorial-headline-blur));
  transform: translate3d(var(--editorial-headline-shift), 0, 0);
  transition: none;
  will-change: opacity, filter, transform;
}

.has-motion-js .editorial-intro.is-intro-motion-ready .editorial-intro__message h2 {
  transition:
    opacity 720ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 420ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 860ms cubic-bezier(0.16, 1, 0.3, 1);
}

.has-motion-js .editorial-intro__message h2 > span {
  opacity: 0;
  filter: blur(0.62rem);
  transition: none;
}

.has-motion-js .editorial-intro.is-intro-motion-ready .editorial-intro__message h2 > span {
  transition:
    opacity 1640ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 1840ms cubic-bezier(0.16, 1, 0.3, 1);
}

.has-motion-js .editorial-intro__message h2 > span:nth-child(1) {
  transition-delay: 640ms;
}

.has-motion-js .editorial-intro__message h2 > span:nth-child(2) {
  transition-delay: 320ms;
}

.has-motion-js .editorial-intro__message h2 > span:nth-child(3) {
  transition-delay: 0ms;
}

.has-motion-js .editorial-intro.is-intro-title-visible .editorial-intro__message h2 > span {
  opacity: 1;
  filter: blur(0);
}

.has-motion-js .editorial-intro.is-intro-title-visible .editorial-intro__message h2 > span:nth-child(1) {
  transition-delay: 0ms;
}

.has-motion-js .editorial-intro.is-intro-title-visible .editorial-intro__message h2 > span:nth-child(2) {
  transition-delay: 320ms;
}

.has-motion-js .editorial-intro.is-intro-title-visible .editorial-intro__message h2 > span:nth-child(3) {
  transition-delay: 640ms;
}

.has-motion-js .editorial-intro__body {
  transform: none;
}

.has-motion-js .editorial-intro__body p {
  opacity: 0;
  filter: blur(0.62rem);
  transition: none;
  will-change: opacity, filter;
}

.has-motion-js .editorial-intro.is-intro-motion-ready .editorial-intro__body p {
  transition:
    opacity 1780ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 1980ms cubic-bezier(0.16, 1, 0.3, 1);
}

.has-motion-js .editorial-intro__body p:nth-child(1) {
  transition-delay: 1140ms;
}

.has-motion-js .editorial-intro__body p:nth-child(2) {
  transition-delay: 950ms;
}

.has-motion-js .editorial-intro__body p:nth-child(3) {
  transition-delay: 760ms;
}

.has-motion-js .editorial-intro__body p:nth-child(4) {
  transition-delay: 570ms;
}

.has-motion-js .editorial-intro__body p:nth-child(5) {
  transition-delay: 380ms;
}

.has-motion-js .editorial-intro__body p:nth-child(6) {
  transition-delay: 190ms;
}

.has-motion-js .editorial-intro__body p:nth-child(7) {
  transition-delay: 0ms;
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p {
  opacity: 1;
  filter: blur(0);
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p:nth-child(1) {
  transition-delay: 0ms;
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p:nth-child(2) {
  transition-delay: 190ms;
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p:nth-child(3) {
  transition-delay: 380ms;
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p:nth-child(4) {
  transition-delay: 570ms;
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p:nth-child(5) {
  transition-delay: 760ms;
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p:nth-child(6) {
  transition-delay: 950ms;
}

.has-motion-js .editorial-intro.is-intro-body-visible .editorial-intro__body p:nth-child(7) {
  transition-delay: 1140ms;
}

@media (prefers-reduced-motion: reduce) {
  .has-motion-js .editorial-intro__inner,
  .has-motion-js .editorial-intro__message h2,
  .has-motion-js .editorial-intro__body {
    opacity: 1;
    filter: none;
    transform: none;
    animation: none;
  }

  .has-motion-js .editorial-intro__message h2 > span {
    opacity: 1;
    filter: none;
    transition: none;
  }

  .has-motion-js .editorial-intro__body p {
    opacity: 1;
    filter: none;
    transition: none;
  }
}

.story-grid {
  padding: clamp(8rem, 14vw, 13rem) 0 clamp(8rem, 13vw, 12rem);
}

.story-grid > .section-shell__inner {
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  padding-inline: var(--fluid-shell-padding-inline);
  box-sizing: border-box;
}

.story-grid .section-heading {
  position: relative;
  z-index: 3;
  min-height: auto;
  margin-bottom: 0;
  align-content: end;
  padding-block: 0 clamp(5.5rem, 10vw, 9rem);
  max-width: none;
}

.story-grid__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(6rem, 12vw, 11rem);
}

.story-card {
  display: grid;
  min-height: min(100svh, 54rem);
  box-sizing: border-box;
  position: relative;
  grid-template-columns: minmax(0, 1.15fr) minmax(24rem, 32rem);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
  padding: clamp(2.2rem, 4vw, 3rem) var(--story-card-padding-inline);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.story-card:nth-child(even) {
  grid-template-columns: minmax(24rem, 32rem) minmax(0, 1.15fr);
}

.story-card:nth-child(even) .story-card__copy {
  order: 2;
  justify-self: end;
}

.story-card:nth-child(even) .story-card__media {
  order: 1;
}

.story-card__copy {
  display: grid;
  gap: 1.5rem;
  padding: 0;
  min-height: clamp(22rem, 42svh, 30rem);
  align-content: center;
  justify-self: start;
  max-width: 32rem;
}

.story-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  align-items: baseline;
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-strong);
}

.story-card h3 {
  font-size: clamp(1.85rem, 2.7vw, 2.7rem);
  line-height: 1.32;
  margin: 0.4rem 0 0.4rem;
}

.story-card p {
  color: var(--text-soft);
  max-width: 32rem;
  font-size: clamp(1.02rem, 1.18vw, 1.12rem);
  line-height: 2.05;
}

.story-card__media {
  align-self: center;
  height: clamp(24rem, 62svh, 42rem);
  overflow: hidden;
  border-radius: 1.4rem;
  position: relative;
}

.story-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.story-card__media::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 22%;
  background: linear-gradient(180deg, rgba(var(--rgb-ink), 0), rgba(var(--rgb-ink), 0.08));
}

.story-card--illustration {
  grid-template-columns: minmax(20rem, 28rem) minmax(0, 1.45fr);
}

.story-card--illustration:nth-child(even) {
  grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 28rem);
}

.story-card--illustration .story-card__copy {
  max-width: 28rem;
}

.story-card--illustration .story-card__media {
  display: grid;
  place-items: center;
  overflow: visible;
  height: clamp(27rem, 64svh, 45rem);
  border-radius: 0;
}

.story-card--illustration .story-card__media img {
  width: min(100%, 52rem);
  height: auto;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0;
  filter: drop-shadow(0 2.2rem 3rem rgba(var(--accent-rgb), 0.14));
}

.story-card--illustration .story-card__media::after {
  content: none;
}

.story-grid__body {
  display: grid;
  grid-template-columns: minmax(22rem, 40rem) minmax(0, 1fr);
  gap: clamp(3rem, 6vw, 7rem);
  align-items: start;
}

.story-grid__body .story-grid__list {
  grid-column: 2;
  gap: clamp(4.5rem, 9vw, 8rem);
}

.story-grid__visual {
  position: sticky;
  grid-column: 1;
  grid-row: 1;
  top: calc(var(--header-height) + clamp(1.5rem, 5vh, 3.5rem));
  display: grid;
  align-items: center;
  min-height: calc(100svh - var(--header-height) - clamp(3rem, 8vh, 6rem));
  pointer-events: none;
}

.story-grid__visual-stage {
  position: relative;
  width: min(100%, 40rem);
  aspect-ratio: 1 / 1;
  margin-inline: auto;
}

.story-grid__visual-item {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: grid;
  place-items: center;
  margin: 0;
  opacity: 0;
  filter: blur(12px);
  transform: translate3d(0, 1.8rem, 0) scale(0.96);
  transition:
    opacity 1.15s cubic-bezier(0.16, 1, 0.3, 1),
    filter 1.15s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.story-grid__visual-item.is-active {
  z-index: 1;
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}

.story-grid__visual-item img {
  width: min(100%, 40rem);
  height: auto;
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 2.2rem 3rem rgba(var(--accent-rgb), 0.16));
}

.story-grid__body .story-card,
.story-grid__body .story-card:nth-child(even),
.story-grid__body .story-card--illustration,
.story-grid__body .story-card--illustration:nth-child(even) {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  min-height: min(96svh, 46rem);
  padding: clamp(2.2rem, 4vw, 3rem) 0;
}

.story-grid__body .story-card:nth-child(even) .story-card__copy {
  order: 0;
  justify-self: start;
}

.story-grid__body .story-card:nth-child(even) .story-card__media {
  order: 0;
}

.story-grid__body .story-card__copy,
.story-grid__body .story-card--illustration .story-card__copy {
  max-width: min(36rem, 100%);
}

.story-grid__body .story-card__media {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .story-grid__visual-item {
    transform: none;
    transition: none;
  }
}

.story-facts {
  padding: 0 0 clamp(8rem, 13vw, 12rem);
  overflow: clip;
  --story-facts-title-opacity: 1;
  --story-facts-title-y: 0rem;
  --story-facts-metric-opacity: 0;
  --story-facts-metric-y: 1.35rem;
}

.story-facts__motion {
  position: relative;
  width: 100vw;
  min-height: 850svh;
  margin-inline: calc(50% - 50vw);
  background: transparent;
}

.story-facts__stage {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 42rem;
  overflow: hidden;
  background: transparent;
  isolation: isolate;
}

.story-facts__stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: transparent;
}

body.home.has-smooth-pins .editorial-intro__inner,
body.home.has-smooth-pins .hero-scope__stage,
body.home.has-smooth-pins .story-grid__visual,
body.home.has-smooth-pins .story-facts__stage {
  position: relative;
  top: auto;
}

body.home.has-smooth-pins .hero-scope__stage {
  left: auto;
  right: auto;
}

body.home.has-smooth-pins .editorial-intro__inner {
  transform: none;
  will-change: opacity, filter;
}

body.home.has-smooth-pins .editorial-intro__message {
  transform: scale(var(--editorial-intro-scale));
  transform-origin: center;
  will-change: transform;
}

body.home.has-smooth-pins .story-grid__visual {
  margin-top: calc(-1 * clamp(3rem, 8vh, 6rem));
}

.story-facts__motion-media {
  position: absolute;
  z-index: 2;
  margin: 0;
  width: 50vw;
  height: 50svh;
  overflow: hidden;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  transform: translateZ(0);
  will-change: left, top, width, height, clip-path;
}

.story-facts__metric-stream {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  pointer-events: none;
  clip-path: polygon(22% 0, 60% 0, 78% 100%, 40% 100%);
  background: transparent;
}

.story-facts__metric-items {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: min(31rem, 34vw);
  min-height: clamp(15rem, 24vw, 21rem);
  padding: clamp(1.4rem, 3vw, 2.4rem);
  text-align: center;
  opacity: var(--story-facts-metric-opacity);
  transform: translateY(var(--story-facts-metric-y));
  will-change: opacity, transform;
}

.story-facts__metric-item {
  grid-column: 1;
  grid-row: 1;
  display: grid;
  justify-items: center;
  gap: clamp(0.45rem, 1vw, 0.7rem);
  width: 100%;
  opacity: 0;
  transform: translateY(2rem) scale(0.96);
  transition:
    opacity 0.28s ease,
    transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.story-facts__metric-item.is-active {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.story-facts__metric-item.is-before {
  transform: translateY(-2rem) scale(0.96);
}

.story-facts__metric-item.is-after {
  transform: translateY(2rem) scale(0.96);
}

.story-facts__metric-number {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.05em;
  font-family: var(--font-family-base);
  color: var(--headline-metallic-gold);
  white-space: nowrap;
}

.story-facts__metric-part {
  background-image: var(--metric-heavy-gold-gradient);
  background-size: 190% 100%;
  background-position: 34% 50%;
  background-clip: text;
  -webkit-background-clip: text;
  color: var(--headline-metallic-gold);
  -webkit-text-fill-color: transparent;
}

.story-facts__metric-value {
  display: inline-block;
  font-family: var(--font-family-number);
  font-size: clamp(5.8rem, 10.5vw, 10.8rem);
  font-weight: 400;
  line-height: 0.82;
  letter-spacing: 0;
}

.story-facts__metric-unit,
.story-facts__metric-separator {
  display: inline-block;
  font-family: var(--font-family-base);
  font-size: clamp(1.3rem, 2vw, 2rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0;
  color: currentColor;
}

.story-facts__metric-title {
  max-width: 100%;
  margin: 0;
  font-size: clamp(1.15rem, 1.55vw, 1.55rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  color: rgba(var(--rgb-frost), 0.98);
  text-wrap: balance;
}

.story-facts__metric-lead {
  max-width: min(29rem, 34vw);
  margin: 0;
  font-size: clamp(0.78rem, 0.95vw, 0.92rem);
  font-weight: 500;
  line-height: 1.75;
  color: rgba(var(--rgb-frost), 0.86);
  text-wrap: balance;
}

.story-facts__motion-media--teacher {
  top: 0;
  left: 0;
  clip-path: polygon(0 0, 100% 0, 0 100%, 0 100%);
}

.story-facts__motion-media--student {
  right: 0;
  bottom: 0;
  clip-path: polygon(100% 0, 100% 100%, 0 100%, 100% 0);
}

.story-facts__motion-media video,
.story-facts__motion-media img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.story-facts__motion-media video {
  z-index: 2;
  filter: saturate(1.04) contrast(1.04);
}

.story-facts__motion-media img {
  z-index: 1;
  opacity: 0;
}

.story-facts__motion-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background-image: radial-gradient(circle, rgba(0, 0, 0, 0.42) 0 1px, rgba(0, 0, 0, 0) 1.2px);
  background-size: 4px 4px;
  background-position: 0 0;
}

.story-facts__motion-media--student video {
  opacity: 1;
}

.story-facts__motion-media--teacher video {
  opacity: 1;
}

.story-facts__motion-media--teacher img {
  filter: saturate(1.02) contrast(1.02);
}

.story-facts__motion-media--student img {
  filter: saturate(1.03) contrast(1.02);
}

.story-facts__motion-media--teacher video,
.story-facts__motion-media--teacher img {
  inset: 0 0 0 auto;
  width: 168%;
  max-width: none;
  object-position: 50% 38%;
}

.story-facts__motion-media--student video,
.story-facts__motion-media--student img {
  inset: 0 auto 0 0;
  width: 168%;
  max-width: none;
  object-position: 50% 58%;
}

.story-facts__motion-title {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: grid;
  place-items: center;
  padding: var(--fluid-shell-padding-inline);
  color: #fff;
  text-align: center;
  mix-blend-mode: normal;
  pointer-events: none;
}

.story-facts__motion-title > * {
  grid-column: 1;
  grid-row: 1;
}

.story-facts__motion-kicker {
  align-self: start;
  margin: clamp(7rem, 11vh, 9rem) 0 0;
  font-size: 0.72rem;
  line-height: 1;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.story-facts__motion-copy {
  align-self: center;
  justify-self: center;
  display: grid;
  justify-items: center;
  gap: clamp(0.9rem, 1.8vw, 1.35rem);
  max-width: min(46rem, 90vw);
  opacity: var(--story-facts-title-opacity);
  transform: translateY(var(--story-facts-title-y));
  will-change: opacity, transform;
}

.story-facts__motion-title h2 {
  display: grid;
  gap: clamp(0.5rem, 1.6vw, 1rem);
  margin: 0;
  font-size: clamp(1.75rem, 3.8vw, 4.4rem);
  line-height: 1.08;
  letter-spacing: 0;
  color: var(--headline-metallic-gold);
}

.story-facts__motion-title h2 span {
  display: block;
  white-space: nowrap;
}

.story-facts__motion-lead {
  max-width: 42rem;
  margin: 0;
  font-size: clamp(0.92rem, 1.18vw, 1.08rem);
  line-height: 1.9;
  color: currentColor;
  opacity: 0.82;
  text-wrap: balance;
}

.story-journal {
  --story-journal-line: rgba(var(--rgb-text), 0.18);
  --story-journal-category-color: var(--accent-strong);
  --story-journal-category-bg: var(--accent-soft);
  --story-journal-category-border: rgba(var(--accent-rgb), 0.24);
  padding: clamp(4.5rem, 7vw, 7rem) 0;
}

body.is-dark .story-journal {
  --story-journal-line: rgba(229, 244, 255, 0.42);
  --story-journal-category-color: rgba(var(--rgb-white), 0.96);
  --story-journal-category-bg: rgba(229, 244, 255, 0.12);
  --story-journal-category-border: rgba(229, 244, 255, 0.52);
}

.story-journal__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.4rem, 3vw, 2.2rem);
}

.story-journal__lead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--story-journal-line);
}

.story-journal__lead h2 {
  margin: 0;
  font-size: clamp(1.15rem, 1.8vw, 1.45rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.story-journal__list {
  min-width: 0;
}

.news-list,
.news-list--compact {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.news-card {
  min-height: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.news-card__link {
  position: relative;
  display: grid;
  gap: 0.95rem;
  height: 100%;
  padding: 2.4rem 0 2.5rem;
  color: inherit;
  text-decoration: none;
  border-top: 1px solid rgba(var(--rgb-text), 0.12);
  background: transparent;
  outline: none;
  transition:
    transform var(--transition),
    border-color var(--transition),
    background-color var(--transition),
    box-shadow var(--transition);
}

.news-card__link::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--accent-strong);
  opacity: 0;
  transform: scaleY(0.32);
  transform-origin: center;
  transition:
    opacity var(--transition),
    transform var(--transition);
}

.news-card__link:hover,
.news-card__link:focus-visible {
  transform: none;
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.055);
  box-shadow: inset 0 1px 0 rgba(var(--accent-rgb), 0.08);
}

.news-card__link:hover::before,
.news-card__link:focus-visible::before {
  opacity: 1;
  transform: scaleY(1);
}

.news-card__date {
  color: var(--text-soft);
  font-size: 0.92rem;
  font-weight: 500;
}

.news-card__category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 2.1rem;
  padding: 0 0.95rem;
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: 0.76rem;
  font-weight: 400;
  letter-spacing: 0.14em;
  transition:
    color var(--transition),
    background-color var(--transition),
    border-color var(--transition);
}

.news-card__title {
  font-family: var(--font-family-heading);
  max-width: 40rem;
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
  font-weight: var(--font-weight-heading);
  line-height: 1.42;
  transition: color var(--transition);
}

.news-card__link:hover .news-card__category,
.news-card__link:focus-visible .news-card__category {
  border-color: rgba(var(--accent-rgb), 0.42);
  color: var(--accent-deep);
  background: rgba(var(--accent-rgb), 0.12);
}

.news-card__link:hover .news-card__title,
.news-card__link:focus-visible .news-card__title {
  color: var(--accent-deep);
}

.story-journal .news-card__link {
  grid-template-columns: minmax(6.5rem, auto) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.8rem clamp(1rem, 2.5vw, 1.8rem);
  padding: 1.25rem 0 1.25rem clamp(0.85rem, 1.4vw, 1.1rem);
  border-top: 0;
  border-bottom: 1px solid var(--story-journal-line);
}

.story-journal .news-card__date {
  font-size: 0.84rem;
}

.story-journal .news-card__category {
  min-height: 2.1rem;
  padding: 0 0.7rem;
  border: 1px solid var(--story-journal-category-border);
  color: var(--story-journal-category-color);
  background: var(--story-journal-category-bg);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
}

.story-journal .news-card__title {
  max-width: none;
  margin: 0;
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  line-height: 1.55;
}

.kas-floating-news {
  position: fixed;
  z-index: 90;
  left: clamp(1rem, 2.2vw, 2rem);
  bottom: clamp(1rem, 2.2vw, 2rem);
  width: min(25rem, calc(100vw - 2rem));
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    opacity 0.36s ease,
    transform 0.36s ease,
    visibility 0.36s ease;
}

.kas-floating-news__link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  padding: 0.35rem 0;
  color: var(--text);
  text-decoration: none;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.kas-floating-news__label {
  position: relative;
  grid-column: 1;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.4rem;
  min-height: 2.1rem;
  padding: 0 0.7rem;
  color: var(--text-inverse);
  background: var(--accent);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  overflow: hidden;
  isolation: isolate;
}

.kas-floating-news__label::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: -60% -38%;
  background: linear-gradient(
    112deg,
    rgba(var(--rgb-white), 0) 0%,
    rgba(var(--rgb-white), 0) 38%,
    rgba(var(--rgb-white), 0.82) 48%,
    rgba(var(--rgb-white), 0.24) 55%,
    rgba(var(--rgb-white), 0) 66%,
    rgba(var(--rgb-white), 0) 100%
  );
  transform: translateX(-120%) skewX(-18deg);
  animation: kas-floating-label-shine 3.8s ease-in-out infinite;
  pointer-events: none;
}

.kas-floating-news__title {
  overflow: hidden;
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: 0.95rem;
  font-weight: var(--font-weight-heading);
  line-height: 1.5;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kas-floating-news__link:hover {
  transform: translateY(-2px);
}

body.is-dark .kas-floating-news__label {
  color: var(--accent-deep);
  background: rgba(var(--rgb-white), 0.94);
  box-shadow: 0 0 22px rgba(var(--rgb-white), 0.24);
}

body.is-dark .kas-floating-news__label::after {
  background: linear-gradient(
    112deg,
    rgba(var(--accent-rgb), 0) 0%,
    rgba(var(--accent-rgb), 0) 36%,
    rgba(var(--accent-rgb), 0.28) 48%,
    rgba(var(--rgb-white), 0.72) 54%,
    rgba(var(--accent-rgb), 0) 66%,
    rgba(var(--accent-rgb), 0) 100%
  );
}

body.is-dark .kas-floating-news__title {
  text-shadow: 0 2px 18px rgba(0, 18, 58, 0.42);
}

body.is-dark .kas-floating-news__title {
  color: #ffffff;
}

body.home.has-motion-js .kas-floating-news {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 1rem, 0);
}

body.home.has-motion-js.is-floating-news-visible .kas-floating-news {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
}

body.is-floating-news-at-footer .kas-floating-news,
body.home.has-motion-js.is-floating-news-visible.is-floating-news-at-footer .kas-floating-news {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 1rem, 0);
}

@media (prefers-reduced-motion: reduce) {
  .kas-floating-news,
  .kas-floating-news__link {
    transition: none;
  }

  .kas-floating-news__label::after {
    animation: none;
    opacity: 0;
  }
}

@keyframes kas-floating-label-shine {
  0%,
  58% {
    transform: translateX(-120%) skewX(-18deg);
  }

  78%,
  100% {
    transform: translateX(120%) skewX(-18deg);
  }
}

.split-feature {
  background: transparent;
}

.split-feature--editorial {
  padding: clamp(8rem, 13vw, 12rem) 0;
}

.split-feature__media {
  position: relative;
  min-height: clamp(30rem, 62svh, 44rem);
  overflow: hidden;
  border: 1px solid rgba(var(--rgb-frost), 0.18);
  border-radius: 1.6rem;
  box-shadow: 0 24px 80px rgba(0, 10, 24, 0.22);
}

.split-feature__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.split-feature__copy {
  display: grid;
  gap: 1.5rem;
  max-width: 36rem;
}

.split-feature__heading,
.split-feature__body {
  display: grid;
  gap: 1.5rem;
}

.split-feature__copy h2 {
  font-size: clamp(2.4rem, 4vw, 4.2rem);
  line-height: 1.32;
}

.split-feature__copy p {
  line-height: 2.05;
}

.split-feature__copy .signature {
  padding-top: 2rem;
  color: var(--text);
  font-weight: 500;
  letter-spacing: 0.08em;
}

.signature__name {
  margin-left: 0.9em;
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", "MS Mincho", serif;
  font-size: 1.22em;
  font-weight: 400;
  letter-spacing: 0.06em;
}

.split-feature--principal .section-shell__inner--split {
  display: grid;
  grid-template-columns: minmax(16rem, 0.62fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(3rem, 6vw, 6rem);
  justify-items: stretch;
}

.split-feature--principal .split-feature__copy {
  grid-column: 2;
  grid-row: 1;
  grid-template-columns: 1fr;
  row-gap: clamp(2.5rem, 5vw, 4.25rem);
  align-items: start;
  justify-items: stretch;
  width: 100%;
  max-width: none;
  min-height: auto;
}

.split-feature--principal .split-feature__media {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: auto;
  overflow: visible;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.split-feature--principal .split-feature__media img {
  width: min(100%, 25rem);
  height: auto;
  max-height: min(68svh, 40rem);
  object-fit: contain;
  object-position: center bottom;
  border-radius: var(--radius-card);
  filter: drop-shadow(0 1.5rem 2rem rgba(var(--rgb-ink), 0.18));
}

.split-feature--principal .split-feature__heading {
  display: grid;
  grid-column: 1;
  grid-row: 1;
  grid-template-columns: auto auto;
  column-gap: clamp(1rem, 2vw, 1.6rem);
  align-self: start;
  justify-self: center;
  align-items: start;
  justify-content: start;
}

.split-feature--principal .section-kicker {
  position: relative;
  display: block;
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  align-self: start;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  line-height: 1.2;
  letter-spacing: 0.16em;
}

.split-feature--principal .section-kicker::before {
  position: absolute;
  top: 0;
  left: -0.75rem;
  width: 1px;
  height: 2.75rem;
  margin-top: -0.08em;
  transform: translateX(-100%);
}

.split-feature--principal .split-feature__copy h2 {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: clamp(1.72rem, 2.3vw, 2.6rem);
  font-weight: var(--font-weight-heading);
  line-height: 1.75;
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.split-feature--principal .split-feature__body {
  grid-column: 1;
  grid-row: 2;
  align-self: start;
  justify-self: stretch;
  max-width: min(100%, 38rem);
}

.site-footer {
  color: var(--text);
  background: transparent;
}

.site-footer__inner {
  width: min(100% - 3.5rem, var(--max-width));
  margin: 0 auto;
  padding: clamp(4rem, 7vw, 6.5rem) 0 2.5rem;
  display: grid;
  gap: 3.5rem;
}

.site-footer__top,
.site-footer__grid {
  display: grid;
  gap: 2.75rem;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
}

.site-footer__brand {
  display: grid;
  gap: 1.4rem;
  max-width: 35rem;
}

.site-footer__eyebrow {
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.site-footer__brand h2 {
  font-size: clamp(2.4rem, 4vw, 4rem);
  line-height: 1.32;
}

.site-footer__brand p {
  color: var(--text-soft);
  line-height: 2;
}

.site-footer__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 1.1rem;
}

.site-footer__nav {
  display: grid;
  gap: 1.1rem 1.85rem;
  justify-items: start;
}

.site-footer__nav-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1.1rem 1.85rem;
}

.site-footer__nav a {
  position: relative;
  color: var(--text-soft);
  font-size: 0.94rem;
  text-decoration: none;
}

.site-footer__info {
  display: grid;
  gap: 0.2rem;
  color: var(--text-muted);
  text-align: right;
}

.site-footer__info p + p {
  margin-top: 0.35rem;
}

.site-footer__actions .button--primary {
  color: var(--accent-deep);
  background: rgba(var(--rgb-white), 0.94);
  border-color: rgba(var(--rgb-white), 0.94);
  box-shadow:
    0 0 0 1px rgba(var(--rgb-white), 0.32),
    0 16px 36px rgba(0, 10, 44, 0.22);
}

.site-footer__actions .button--primary:hover {
  color: var(--accent-deep);
  background: #ffffff;
  border-color: #ffffff;
}

.site-footer__actions .button--ghost {
  color: rgba(var(--rgb-white), 0.98);
  background: rgba(229, 244, 255, 0.08);
  border-color: rgba(229, 244, 255, 0.58);
  box-shadow: inset 0 0 0 1px rgba(var(--rgb-white), 0.06);
}

.site-footer__actions .button--ghost:hover {
  background: rgba(229, 244, 255, 0.14);
  border-color: rgba(229, 244, 255, 0.82);
}

body:not(.is-dark) .site-footer__actions .button--primary {
  color: var(--text-inverse);
  background: var(--accent);
  border-color: var(--accent);
  box-shadow:
    0 0 0 1px rgba(var(--accent-rgb), 0.16),
    0 16px 34px rgba(var(--accent-rgb), 0.18);
}

body:not(.is-dark) .site-footer__actions .button--primary:hover {
  color: var(--text-inverse);
  background: var(--accent-strong);
  border-color: var(--accent-strong);
}

body:not(.is-dark) .site-footer__actions .button--ghost {
  color: var(--accent-deep);
  background: rgba(var(--rgb-white), 0.78);
  border-color: rgba(var(--accent-rgb), 0.28);
  box-shadow:
    inset 0 0 0 1px rgba(var(--rgb-white), 0.52),
    0 12px 28px rgba(var(--rgb-ink), 0.06);
}

body:not(.is-dark) .site-footer__actions .button--ghost:hover {
  color: var(--accent-deep);
  background: rgba(var(--accent-rgb), 0.08);
  border-color: rgba(var(--accent-rgb), 0.48);
}

.site-footer__copy {
  padding-top: 1.2rem;
  border-top: 1px solid var(--line);
  color: var(--text-muted);
  font-size: 0.86rem;
}

/* ==========================================================================
   Lower Pages / Shared Content Blocks
   ========================================================================== */

.page-content p,
.single-content p,
.page-content li,
.single-content li {
  color: var(--text);
}

.page-content .kas-section,
.single-content .kas-section {
  display: grid;
  gap: 1rem;
  background: transparent;
}

.page-content .kas-section > *,
.single-content .kas-section > * {
  margin-block: 0;
}

.page-content .kas-section h2:first-child,
.single-content .kas-section h2:first-child,
.page-content .kas-section h3:first-child,
.single-content .kas-section h3:first-child {
  margin-top: 0;
}

.page-content ul,
.page-content ol,
.single-content ul,
.single-content ol {
  padding-left: 1.35rem;
}

.page-content li + li,
.single-content li + li {
  margin-top: 0.55rem;
}

.page-content a,
.single-content a {
  color: var(--accent);
}

.page-content figure img,
.single-content figure img {
  width: 100%;
  box-shadow: var(--shadow);
}

.page-content blockquote,
.single-content blockquote {
  padding: 1.5rem 1.6rem;
  border-left: 2px solid var(--accent);
  background: #f7f9fd;
  color: var(--text-soft);
}

.page-content table,
.single-content table {
  width: 100%;
  border-collapse: collapse;
}

.page-content th,
.page-content td,
.single-content th,
.single-content td {
  padding: 0.95rem 1rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.page-content th,
.single-content th {
  font-weight: 700;
}

.page-content .wp-block-group.is-style-kas-flow,
.page-content .wp-block-group.is-style-kas-note,
.page-content .kas-muted-panel,
.single-content .wp-block-group.is-style-kas-flow,
.single-content .wp-block-group.is-style-kas-note,
.single-content .kas-muted-panel {
  padding: 2.2rem 0 0.5rem;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
}

.page-content .kas-learning-assessment-note,
.single-content .kas-learning-assessment-note {
  border-top: 0;
}

.page-content .kas-subsection > h3:first-child,
.single-content .kas-subsection > h3:first-child,
.page-content .kas-subsection > .wp-block-group__inner-container > h3:first-child,
.single-content .kas-subsection > .wp-block-group__inner-container > h3:first-child {
  margin: 0;
  padding-bottom: clamp(0.7rem, 1.3vw, 1rem);
  border-bottom: 1px solid rgba(var(--accent-rgb), 0.22);
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: clamp(1.22rem, 1.55vw, 1.55rem);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.04em;
  text-wrap: pretty;
}

.page-content .kas-note-panel,
.single-content .kas-note-panel {
  padding: 2.2rem 0 0.5rem;
  border: 0;
  border-top: 2px solid var(--accent);
  background: transparent;
}

.page-content .kas-card-grid .wp-block-columns,
.single-content .kas-card-grid .wp-block-columns {
  gap: 2.4rem 2rem;
  margin-bottom: 0;
}

.page-content .kas-card-grid .wp-block-column,
.single-content .kas-card-grid .wp-block-column,
.page-content .kas-step-blocks .wp-block-column,
.single-content .kas-step-blocks .wp-block-column {
  display: grid;
  gap: 1.2rem;
  padding: 2rem 0 0;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  box-shadow: none;
}

.page-content .wp-block-list.is-style-kas-checks,
.page-content .is-style-kas-checks,
.single-content .wp-block-list.is-style-kas-checks,
.single-content .is-style-kas-checks {
  list-style: none;
  padding-left: 0;
}

.page-content .wp-block-list.is-style-kas-checks li,
.page-content .is-style-kas-checks li,
.single-content .wp-block-list.is-style-kas-checks li,
.single-content .is-style-kas-checks li {
  position: relative;
  padding-left: 1.6rem;
}

.page-content .wp-block-list.is-style-kas-checks li::before,
.page-content .is-style-kas-checks li::before,
.single-content .wp-block-list.is-style-kas-checks li::before,
.single-content .is-style-kas-checks li::before {
  content: "";
  position: absolute;
  top: 0.82rem;
  left: 0;
  width: 0.58rem;
  height: 0.58rem;
  background: var(--accent);
  border-radius: 999px;
}

.page-content .kas-number-list,
.single-content .kas-number-list {
  list-style: none;
  padding-left: 0;
  display: grid;
  gap: 0.95rem;
  counter-reset: kas-step;
}

.page-content .kas-number-list > li,
.single-content .kas-number-list > li {
  position: relative;
  padding: 1rem 1rem 1rem 4rem;
  border-top: 1px solid var(--line);
}

.page-content .kas-number-list > li::before,
.single-content .kas-number-list > li::before {
  counter-increment: kas-step;
  content: counter(kas-step, decimal-leading-zero);
  position: absolute;
  top: 1rem;
  left: 0;
  color: var(--accent-strong);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.page-content .kas-check-list,
.single-content .kas-check-list {
  list-style: none;
  padding-left: 0;
  display: grid;
  gap: 0.8rem;
}

.page-content .kas-check-list > li,
.single-content .kas-check-list > li {
  position: relative;
  padding-left: 1.8rem;
}

.page-content .kas-check-list > li::before,
.single-content .kas-check-list > li::before {
  content: "";
  position: absolute;
  top: 0.82rem;
  left: 0;
  width: 0.55rem;
  height: 0.55rem;
  background: var(--accent);
  border-radius: 999px;
}

.page-content .kas-faq-list,
.single-content .kas-faq-list,
.page-content .kas-faq-list > .wp-block-group__inner-container,
.single-content .kas-faq-list > .wp-block-group__inner-container {
  display: grid;
  gap: clamp(0.7rem, 1.2vw, 1rem);
}

.page-content .kas-faq-list .wp-block-details,
.single-content .kas-faq-list .wp-block-details {
  margin: 0;
  border: 1px solid var(--line);
}

.page-content .kas-faq-list .wp-block-details:first-child,
.single-content .kas-faq-list .wp-block-details:first-child {
  border-top: 1px solid var(--line);
}

.page-content .kas-faq-list .wp-block-details summary,
.single-content .kas-faq-list .wp-block-details summary {
  position: relative;
  display: block;
  padding: 1.35rem 3rem 1.35rem 0;
  color: var(--blue);
  font-size: clamp(1.08rem, 1.35vw, 1.28rem);
  font-weight: 700;
  line-height: 1.7;
  cursor: pointer;
  list-style: none;
}

.page-content .kas-faq-list .wp-block-details summary::-webkit-details-marker,
.single-content .kas-faq-list .wp-block-details summary::-webkit-details-marker {
  display: none;
}

.page-content .kas-faq-list .wp-block-details summary::after,
.single-content .kas-faq-list .wp-block-details summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 1.7rem;
  height: 1.7rem;
  transform: translateY(-50%);
  border: 1px solid rgba(0, 104, 183, 0.28);
  border-radius: 999px;
  background:
    linear-gradient(var(--accent), var(--accent)) center / 0.72rem 2px no-repeat,
    linear-gradient(var(--accent), var(--accent)) center / 2px 0.72rem no-repeat;
}

.page-content .kas-faq-list .wp-block-details[open] summary::after,
.single-content .kas-faq-list .wp-block-details[open] summary::after {
  background:
    linear-gradient(var(--accent), var(--accent)) center / 0.72rem 2px no-repeat;
}

.page-content .kas-faq-list .wp-block-details p,
.single-content .kas-faq-list .wp-block-details p {
  margin: 0;
  padding: 0 3rem 1.35rem 0;
  color: var(--text-soft);
}

.page-content .kas-faq-list h3,
.single-content .kas-faq-list h3 {
  margin-top: 0;
  padding-top: 1.35rem;
  border-top: 1px solid var(--line);
}

.page-content .kas-faq-list h3:first-child,
.single-content .kas-faq-list h3:first-child {
  padding-top: 0;
  border-top: 0;
}

.page-content .kas-faq-list p,
.single-content .kas-faq-list p {
  padding-bottom: 1.35rem;
  color: var(--text-soft);
}

.page-content .kas-mw-form-panel,
.single-content .kas-mw-form-panel {
  padding: clamp(1.5rem, 3vw, 2.4rem) 0 0;
  border-top: 1px solid var(--line);
}

.page-content .kas-mw-form-panel--plain,
.single-content .kas-mw-form-panel--plain,
.page-content .kas-mw-form-panel--assignment,
.single-content .kas-mw-form-panel--assignment {
  padding-top: 0;
  border-top: 0;
}

.page-content .kas-mw-form-editor-preview,
.single-content .kas-mw-form-editor-preview {
  display: none;
}

.page-content .kas-mw-form-panel h2,
.single-content .kas-mw-form-panel h2 {
  margin: 0 0 clamp(1.1rem, 2vw, 1.6rem);
  font-size: clamp(1.45rem, 1.85vw, 2rem);
  line-height: 1.55;
  letter-spacing: 0.04em;
}

.page-content .mw_wp_form .kas-mw-form,
.single-content .mw_wp_form .kas-mw-form {
  display: grid;
  gap: clamp(1rem, 1.8vw, 1.4rem);
}

.page-content .kas-mw-form__lead,
.single-content .kas-mw-form__lead {
  margin: 0;
  color: var(--text-soft);
}

.page-content .kas-mw-form__fields,
.single-content .kas-mw-form__fields {
  display: grid;
  margin: 0;
  border-top: 1px solid var(--line);
}

.page-content .kas-mw-form__field,
.single-content .kas-mw-form__field {
  display: grid;
  grid-template-columns: minmax(10rem, 0.32fr) minmax(0, 1fr);
  gap: clamp(0.9rem, 2vw, 1.6rem);
  padding: clamp(0.95rem, 1.8vw, 1.25rem) 0;
  border-bottom: 1px solid var(--line);
}

.page-content .kas-mw-form__field dt,
.single-content .kas-mw-form__field dt {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.page-content .kas-mw-form__field dd,
.single-content .kas-mw-form__field dd {
  min-width: 0;
  margin: 0;
}

.page-content .kas-required,
.single-content .kas-required {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.45rem;
  color: var(--text-inverse);
  background: var(--accent-strong);
  border-radius: 999px;
  font-family: var(--font-family-base);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}

.page-content .mw_wp_form input[type="text"],
.page-content .mw_wp_form input[type="email"],
.page-content .mw_wp_form input[type="tel"],
.page-content .mw_wp_form input[type="url"],
.page-content .mw_wp_form input[type="number"],
.page-content .mw_wp_form textarea,
.page-content .mw_wp_form select,
.single-content .mw_wp_form input[type="text"],
.single-content .mw_wp_form input[type="email"],
.single-content .mw_wp_form input[type="tel"],
.single-content .mw_wp_form input[type="url"],
.single-content .mw_wp_form input[type="number"],
.single-content .mw_wp_form textarea,
.single-content .mw_wp_form select {
  width: 100%;
  padding: 0.82rem 0.95rem;
  color: var(--text);
  background: rgba(var(--rgb-white), 0.88);
  border: 1px solid rgba(var(--accent-rgb), 0.2);
  border-radius: var(--radius-small);
  outline: none;
}

.page-content .mw_wp_form textarea,
.single-content .mw_wp_form textarea {
  min-height: 10rem;
  resize: vertical;
}

.page-content .mw_wp_form input:focus,
.page-content .mw_wp_form textarea:focus,
.page-content .mw_wp_form select:focus,
.single-content .mw_wp_form input:focus,
.single-content .mw_wp_form textarea:focus,
.single-content .mw_wp_form select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.12);
}

.page-content .mw_wp_form .mwform-checkbox-field,
.page-content .mw_wp_form .mwform-radio-field,
.single-content .mw_wp_form .mwform-checkbox-field,
.single-content .mw_wp_form .mwform-radio-field {
  display: inline-flex;
  align-items: center;
  margin: 0 1rem 0.45rem 0;
}

.page-content .mw_wp_form .kas-mw-form__actions,
.single-content .mw_wp_form .kas-mw-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.5rem;
}

.page-content .mw_wp_form input[type="submit"],
.page-content .mw_wp_form button,
.single-content .mw_wp_form input[type="submit"],
.single-content .mw_wp_form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.78rem 1.35rem;
  color: var(--text-inverse);
  background: var(--accent-strong);
  border: 1px solid var(--accent-strong);
  border-radius: var(--radius-small);
  font-weight: 700;
  cursor: pointer;
}

.page-content .mw_wp_form .error,
.single-content .mw_wp_form .error {
  margin-top: 0.35rem;
  color: #b42318;
  font-size: 0.88rem;
  font-weight: 700;
}

.page-content .wp-block-buttons,
.single-content .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-start;
}

.page-content .wp-block-buttons.kas-action-row--center,
.single-content .wp-block-buttons.kas-action-row--center {
  justify-content: center;
  align-items: center;
}

.page-content .kas-schedule-download,
.single-content .kas-schedule-download {
  margin-top: clamp(1.2rem, 2.4vw, 1.8rem);
}

.page-content .wp-block-button,
.single-content .wp-block-button {
  margin: 0;
}

.page-content .wp-block-button__link,
.single-content .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0 1.35rem;
  color: var(--text-inverse);
  background: var(--accent);
  border-radius: var(--radius);
  font-size: 0.94rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.page-content .wp-block-button.is-style-outline .wp-block-button__link,
.single-content .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--text);
  background: transparent;
  border: 1px solid var(--line-strong);
  box-shadow: none;
}

.page-content .wp-block-cover,
.page-content .wp-block-image,
.single-content .wp-block-cover,
.single-content .wp-block-image {
  margin-top: clamp(2.4rem, 4vw, 3.2rem);
}

.page-content figure img,
.single-content figure img,
.page-content .wp-block-cover,
.single-content .wp-block-cover {
  border-radius: var(--radius-small);
  border: 1px solid var(--line);
  box-shadow: none;
}

.page-content .wp-block-table,
.single-content .wp-block-table {
  margin-top: clamp(2.4rem, 4vw, 3.2rem);
  overflow-x: auto;
}

.page-content .wp-block-group > .wp-block-group__inner-container,
.single-content .wp-block-group > .wp-block-group__inner-container {
  width: 100%;
  min-width: 0;
  max-width: none;
}

.page-content .kas-lead-block,
.single-content .kas-lead-block {
  width: 100%;
  max-width: none;
  padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(3rem, 6vw, 5rem);
  border-bottom: 1px solid var(--line);
}

.page-content .kas-lead-block > .wp-block-group__inner-container,
.single-content .kas-lead-block > .wp-block-group__inner-container {
  width: 100%;
  min-width: 0;
  max-width: none;
}

.page-content .kas-lead-block h2,
.single-content .kas-lead-block h2 {
  max-width: 18em;
  color: var(--text);
  font-size: clamp(2rem, 4vw, 3.35rem);
  line-height: 1.55;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
}

.page-content .kas-lead-block p,
.single-content .kas-lead-block p {
  max-width: 52rem;
  font-size: clamp(1.06rem, 1.6vw, 1.24rem);
  line-height: 2.2;
}

.page-content .kas-lead-block--fill h2,
.single-content .kas-lead-block--fill h2 {
  position: relative;
  max-width: 100%;
  padding-bottom: clamp(0.75rem, 1.2vw, 1rem);
  margin-bottom: clamp(1.55rem, 2.8vw, 2.35rem);
}

.page-content .kas-lead-block--fill h2::after,
.single-content .kas-lead-block--fill h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(5rem, 9vw, 8rem);
  height: 2px;
  background: linear-gradient(90deg, var(--accent-strong), rgba(var(--accent-rgb), 0.16));
}

.page-content .kas-lead-block--fill p,
.single-content .kas-lead-block--fill p {
  max-width: 100%;
}

.page-content .kas-lead-block--learning-intro,
.single-content .kas-lead-block--learning-intro {
  border-bottom: 0;
}

.page-content .kas-media-split,
.single-content .kas-media-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(19rem, 0.86fr);
  gap: clamp(2.4rem, 5vw, 5.6rem);
  align-items: center;
  padding: clamp(1rem, 2vw, 1.5rem) 0;
}

.page-content .kas-media-split:not(.has-media-on-the-right),
.single-content .kas-media-split:not(.has-media-on-the-right) {
  grid-template-columns: minmax(19rem, 0.86fr) minmax(0, 1fr);
}

.page-content .kas-media-split .wp-block-media-text__content,
.single-content .kas-media-split .wp-block-media-text__content {
  display: grid;
  gap: var(--paragraph-gap);
  padding: 0;
}

.page-content .kas-media-split .wp-block-media-text__content > *,
.single-content .kas-media-split .wp-block-media-text__content > * {
  margin-block: 0;
}

.page-content .kas-media-split .wp-block-media-text__media,
.single-content .kas-media-split .wp-block-media-text__media {
  margin: 0;
}

.page-content .kas-media-split .wp-block-media-text__media img,
.single-content .kas-media-split .wp-block-media-text__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: var(--radius-small);
}

.page-content .kas-wide-figure,
.single-content .kas-wide-figure {
  display: grid;
  gap: 0.9rem;
}

.page-content .kas-wide-figure img,
.single-content .kas-wide-figure img {
  width: 100%;
  max-height: min(68vh, 42rem);
  object-fit: contain;
  background: rgba(var(--rgb-white), 0.6);
}

.page-content .kas-learning-path-figure,
.single-content .kas-learning-path-figure {
  margin-top: 0;
  width: 100%;
}

.page-content .kas-diagram-figure img,
.single-content .kas-diagram-figure img {
  display: block;
  max-height: none;
  background: transparent;
  border: 1px solid rgba(var(--rgb-blue), 0.14);
  border-radius: var(--radius-small);
}

.page-content .kas-learning-path-figure img,
.single-content .kas-learning-path-figure img {
  background: transparent;
  border: 0;
  border-radius: 0;
}

.page-content .kas-wide-figure figcaption,
.single-content .kas-wide-figure figcaption {
  max-width: 48rem;
  color: var(--text-muted);
  font-size: 0.94rem;
  line-height: 1.9;
}

.page-content .kas-open-columns,
.page-content .kas-directory-columns,
.page-content .kas-flow-columns,
.single-content .kas-open-columns,
.single-content .kas-directory-columns,
.single-content .kas-flow-columns {
  gap: clamp(1.4rem, 3vw, 2.5rem);
}

.page-content .kas-open-columns .wp-block-columns,
.page-content .kas-directory-columns .wp-block-columns,
.page-content .kas-flow-columns .wp-block-columns,
.single-content .kas-open-columns .wp-block-columns,
.single-content .kas-directory-columns .wp-block-columns,
.single-content .kas-flow-columns .wp-block-columns {
  gap: clamp(1.8rem, 4vw, 4.5rem);
  margin-block: 0;
}

.page-content .kas-open-columns .wp-block-column,
.page-content .kas-directory-columns .wp-block-column,
.single-content .kas-open-columns .wp-block-column,
.single-content .kas-directory-columns .wp-block-column {
  padding-top: 1.35rem;
  border-top: 1px solid var(--line);
}

.page-content .kas-flow-columns .wp-block-column,
.single-content .kas-flow-columns .wp-block-column {
  position: relative;
  padding: 1.5rem 0 0 3.2rem;
  border-top: 1px solid var(--line);
  counter-increment: kas-flow-item;
}

.page-content .kas-flow-columns .wp-block-columns,
.single-content .kas-flow-columns .wp-block-columns {
  counter-reset: kas-flow-item;
}

.page-content .kas-flow-columns .wp-block-column::before,
.single-content .kas-flow-columns .wp-block-column::before {
  content: counter(kas-flow-item, decimal-leading-zero);
  position: absolute;
  top: 1.45rem;
  left: 0;
  color: var(--accent-strong);
  font-family: var(--font-family-heading);
  font-size: 0.9rem;
  letter-spacing: 0.12em;
}

.page-content .kas-data-table,
.single-content .kas-data-table {
  gap: clamp(1.2rem, 3vw, 2rem);
}

.page-content .kas-data-table .wp-block-table,
.single-content .kas-data-table .wp-block-table {
  margin-top: 0;
  border-top: 1px solid var(--line);
}

.page-content .kas-admission-flow-table table,
.single-content .kas-admission-flow-table table {
  table-layout: fixed;
}

.page-content .kas-admission-flow-table tbody,
.single-content .kas-admission-flow-table tbody {
  counter-reset: kas-admission-flow;
}

.page-content .kas-admission-flow-table tbody tr,
.single-content .kas-admission-flow-table tbody tr {
  counter-increment: kas-admission-flow;
}

.page-content .kas-admission-flow-table th:first-child,
.page-content .kas-admission-flow-table td:first-child,
.single-content .kas-admission-flow-table th:first-child,
.single-content .kas-admission-flow-table td:first-child {
  width: clamp(14rem, 22vw, 17rem);
  white-space: normal;
  word-break: keep-all;
}

.page-content .kas-admission-flow-table td:first-child,
.single-content .kas-admission-flow-table td:first-child {
  position: relative;
  padding-left: clamp(4.2rem, 5vw, 4.8rem);
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-weight: 700;
  letter-spacing: 0.03em;
  vertical-align: top;
}

.page-content .kas-admission-flow-table td:first-child::before,
.single-content .kas-admission-flow-table td:first-child::before {
  content: counter(kas-admission-flow, decimal-leading-zero);
  position: absolute;
  top: 0.82rem;
  left: 1rem;
  display: grid;
  place-items: center;
  width: 2.35rem;
  aspect-ratio: 1;
  color: var(--text-inverse);
  background: var(--accent-strong);
  border-radius: 999px;
  box-shadow: 0 0 0 5px rgba(var(--accent-rgb), 0.1);
  font-family: var(--font-family-heading);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

@media (max-width: 760px) {
  .page-content .kas-mw-form__field,
  .single-content .kas-mw-form__field {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }
}

.page-content .kas-student-menu,
.single-content .kas-student-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.page-content .kas-student-menu__link,
.single-content .kas-student-menu__link,
.page-content .kas-student-menu__card,
.single-content .kas-student-menu__card,
.page-content .kas-download-list__link,
.single-content .kas-download-list__link,
.page-content .kas-download-list__card,
.single-content .kas-download-list__card {
  display: grid;
  gap: 0.45rem;
  padding: 1.4rem 1.5rem;
  color: var(--text);
  text-decoration: none;
  background: rgba(var(--rgb-white), 0.88);
  border: 1px solid rgba(var(--accent-rgb), 0.16);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(var(--rgb-ink), 0.08);
}

.page-content .kas-student-menu__card,
.single-content .kas-student-menu__card,
.page-content .kas-download-list__card,
.single-content .kas-download-list__card {
  position: relative;
  transition: border-color var(--transition), box-shadow var(--transition);
}

.page-content .kas-student-menu__card > *,
.single-content .kas-student-menu__card > *,
.page-content .kas-download-list__card > *,
.single-content .kas-download-list__card > * {
  margin: 0;
}

.page-content .kas-student-menu__link:hover,
.single-content .kas-student-menu__link:hover,
.page-content .kas-student-menu__card:hover,
.single-content .kas-student-menu__card:hover,
.page-content .kas-download-list__link:hover,
.single-content .kas-download-list__link:hover,
.page-content .kas-download-list__card:hover,
.single-content .kas-download-list__card:hover {
  border-color: rgba(var(--accent-rgb), 0.34);
  box-shadow: 0 20px 46px rgba(var(--rgb-ink), 0.1);
}

.page-content .kas-student-menu__title,
.single-content .kas-student-menu__title,
.page-content .kas-download-list__title,
.single-content .kas-download-list__title {
  color: var(--accent-deep);
  font-size: clamp(1.08rem, 0.98rem + 0.32vw, 1.32rem);
  font-weight: 800;
}

.page-content .kas-student-menu__title a,
.single-content .kas-student-menu__title a,
.page-content .kas-download-list__title a,
.single-content .kas-download-list__title a {
  color: inherit;
  text-decoration: none;
}

.page-content .kas-student-menu__title a::after,
.single-content .kas-student-menu__title a::after,
.page-content .kas-download-list__title a::after,
.single-content .kas-download-list__title a::after {
  content: "";
  position: absolute;
  inset: 0;
}

.page-content .kas-student-menu__card:hover .kas-student-menu__title,
.single-content .kas-student-menu__card:hover .kas-student-menu__title,
.page-content .kas-download-list__card:hover .kas-download-list__title,
.single-content .kas-download-list__card:hover .kas-download-list__title {
  color: var(--accent);
}

.page-content .kas-student-menu__body,
.single-content .kas-student-menu__body,
.page-content .kas-download-list__body,
.single-content .kas-download-list__body {
  color: var(--text-muted);
  line-height: 1.9;
}

.page-content .kas-download-list ul,
.single-content .kas-download-list ul,
.page-content .kas-download-list__items,
.single-content .kas-download-list__items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  padding: 0;
  margin: 1.5rem 0 0;
  list-style: none;
}

@media (max-width: 760px) {
  .page-content .kas-student-menu,
  .single-content .kas-student-menu,
  .page-content .kas-download-list__items,
  .single-content .kas-download-list__items {
    grid-template-columns: 1fr !important;
  }
}

.page-content .kas-download-list__link,
.single-content .kas-download-list__link,
.page-content .kas-download-list__card,
.single-content .kas-download-list__card {
  position: relative;
  padding-right: 5rem;
}

.page-content .kas-download-list__meta,
.single-content .kas-download-list__meta {
  position: absolute;
  top: 1.35rem;
  right: 1.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3rem;
  padding: 0.25rem 0.55rem;
  color: var(--accent-deep);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  border: 1px solid rgba(var(--accent-rgb), 0.22);
  border-radius: 999px;
}

.page-content .kas-student-menu__action,
.single-content .kas-student-menu__action,
.page-content .kas-download-list__action,
.single-content .kas-download-list__action {
  margin-top: 0.45rem;
}

.page-content .kas-student-menu__button .wp-block-button__link,
.single-content .kas-student-menu__button .wp-block-button__link,
.page-content .kas-download-list__button .wp-block-button__link,
.single-content .kas-download-list__button .wp-block-button__link {
  min-height: 2.6rem;
  padding-inline: 1.05rem;
  font-size: 0.84rem;
}

.page-content .kas-video-list__grid,
.single-content .kas-video-list__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.5rem;
}

.page-content .kas-video-list__item,
.single-content .kas-video-list__item {
  padding: 1rem;
  background: rgba(var(--rgb-white), 0.9);
  border: 1px solid rgba(var(--accent-rgb), 0.16);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(var(--rgb-ink), 0.08);
}

.page-content .kas-video-list__media,
.single-content .kas-video-list__media {
  margin: 0;
}

.page-content .kas-video-list__item video,
.single-content .kas-video-list__item video {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: var(--surface-deep);
  border-radius: 6px;
}

.page-content .kas-video-list__item h3,
.single-content .kas-video-list__item h3 {
  margin: 1rem 0 0.4rem;
  color: var(--accent-deep);
  font-size: 1.05rem;
}

.page-content .kas-video-list__item p,
.single-content .kas-video-list__item p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.94rem;
  line-height: 1.8;
}

.page-content .kas-mw-form__note,
.single-content .kas-mw-form__note {
  margin: 0 0 0.65rem;
  color: var(--text-muted);
  font-size: 0.9rem;
}

@media (max-width: 640px) {
  .page-content .kas-video-list__grid,
  .single-content .kas-video-list__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .page-content .kas-admission-flow-table .wp-block-table,
  .single-content .kas-admission-flow-table .wp-block-table {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .page-content .kas-admission-flow-table .wp-block-table table,
  .single-content .kas-admission-flow-table .wp-block-table table,
  .page-content .kas-admission-flow-table tbody,
  .single-content .kas-admission-flow-table tbody {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 0.9rem;
  }

  .page-content .kas-admission-flow-table thead,
  .single-content .kas-admission-flow-table thead {
    display: none;
  }

  .page-content .kas-admission-flow-table tr,
  .single-content .kas-admission-flow-table tr {
    display: grid;
    gap: 0.65rem;
    padding: 1rem;
    background: rgba(var(--rgb-white), 0.74);
    border: 1px solid var(--line);
    border-left: 4px solid var(--accent);
    border-radius: var(--radius-card);
  }

  .page-content .kas-admission-flow-table td,
  .single-content .kas-admission-flow-table td {
    display: block;
    width: auto;
    padding: 0;
    border: 0;
  }

  .page-content .kas-admission-flow-table th:first-child,
  .page-content .kas-admission-flow-table td:first-child,
  .single-content .kas-admission-flow-table th:first-child,
  .single-content .kas-admission-flow-table td:first-child {
    width: auto;
    white-space: normal;
  }

  .page-content .kas-admission-flow-table td:first-child,
  .single-content .kas-admission-flow-table td:first-child {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-left: 0;
  }

  .page-content .kas-admission-flow-table td:first-child::before,
  .single-content .kas-admission-flow-table td:first-child::before {
    position: static;
    flex: 0 0 auto;
    width: 2rem;
    font-size: 0.72rem;
    transform: none;
  }
}

.page-content .kas-number-list--inline,
.single-content .kas-number-list--inline {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
}

.page-content .kas-number-list--inline > li,
.single-content .kas-number-list--inline > li {
  border-top: 0;
  border-bottom: 1px solid var(--line);
}

.post-nav {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 3.2rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--line);
}

.post-nav__slot {
  display: flex;
  flex: 1 1 0;
}

.post-nav__slot--next {
  justify-content: flex-end;
}

.post-nav__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: 3rem;
  padding: 0.78rem 1.1rem;
  color: var(--accent-deep);
  background: rgba(var(--rgb-white), 0.82);
  border: 1px solid rgba(var(--accent-rgb), 0.28);
  border-radius: var(--radius-small);
  font-family: var(--font-family-heading);
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition:
    color var(--transition),
    background-color var(--transition),
    border-color var(--transition),
    transform var(--transition);
}

.post-nav__button:hover,
.post-nav__button:focus-visible {
  color: var(--text-inverse);
  background: var(--accent-strong);
  border-color: var(--accent-strong);
  transform: translateY(-1px);
}

.post-nav__icon {
  font-size: 1.05em;
  line-height: 1;
}

.pagination {
  margin-top: 2rem;
  text-align: center;
}

.pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

.pagination a,
.pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.7rem;
  min-height: 2.7rem;
  padding: 0 0.95rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
}

.pagination .current {
  color: var(--text-inverse);
  background: var(--surface-dark);
  border-color: var(--surface-dark);
}

.post-password-form {
  display: grid;
  width: min(100%, 42rem);
  gap: 1rem;
  margin-inline: auto;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: 0 18px 48px rgba(var(--rgb-ink), 0.07);
}

.post-password-form p {
  margin: 0;
}

.kas-password-form__lead {
  color: var(--text-soft);
}

.kas-password-form__field {
  display: grid;
  gap: 0.45rem;
}

.kas-password-form__field label {
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: 0.92rem;
  font-weight: 600;
}

.post-password-form input[type="password"] {
  width: 100%;
  min-height: 3rem;
  padding: 0 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-small);
  background: var(--surface);
}

.post-password-form input[type="submit"] {
  width: fit-content;
  min-height: 3rem;
  padding: 0 1.25rem;
  color: var(--text-inverse);
  background: var(--surface-dark);
  border: 0;
  border-radius: var(--radius-small);
  cursor: pointer;
}

body.has-motion-js .reveal-item:not([data-hero-stage]) {
  opacity: 0;
  transform: translate3d(0, 1.5rem, 0);
}

body.has-motion-js .reveal-item:not([data-hero-stage]).is-visible {
  opacity: 1;
  transform: none;
}

@media (max-width: 1100px) {
  .section-shell__inner--split,
  .section-shell__inner--reverse,
  .entry-banner__panel,
  .site-footer__top,
  .site-footer__grid {
    grid-template-columns: 1fr;
  }

  .split-feature--principal .section-shell__inner--split {
    grid-template-columns: 1fr;
    gap: clamp(2.25rem, 6vw, 3.5rem);
    justify-items: center;
  }

  .split-feature--principal .split-feature__media {
    grid-column: 1;
    grid-row: 1;
    width: min(100%, 22rem);
  }

  .split-feature--principal .split-feature__copy {
    grid-column: 1;
    grid-row: 2;
    width: min(100%, 44rem);
  }

  .news-list--compact,
  .story-grid__list {
    grid-template-columns: 1fr;
  }

  .page-content .kas-media-split,
  .page-content .kas-media-split:not(.has-media-on-the-right),
  .single-content .kas-media-split,
  .single-content .kas-media-split:not(.has-media-on-the-right) {
    grid-template-columns: 1fr;
  }

  .page-content .kas-number-list--inline,
  .single-content .kas-number-list--inline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  :root {
    --header-height: 82px;
    --fluid-shell-padding-inline: 1.5rem;
    --story-card-padding-inline: 0;
  }

  .section-shell__inner {
    width: min(100% - 1.5rem, var(--max-width));
  }

  .section-heading h2,
  .split-feature__copy h2 {
    letter-spacing: -0.06em;
  }

  .news-list--compact,
  .story-grid__list {
    grid-template-columns: 1fr;
  }

  .story-journal {
    padding: clamp(3.5rem, 11vw, 5rem) 0;
  }

  .story-journal__lead {
    gap: 0.9rem;
  }

  .story-journal .news-card__link {
    grid-template-columns: auto 1fr;
    gap: 0.55rem 0.8rem;
    padding: 1.05rem 0;
  }

  .story-journal .news-card__title {
    grid-column: 1 / -1;
  }

  .kas-floating-news {
    right: 0.75rem;
    left: 0.75rem;
    bottom: 0.75rem;
    width: auto;
  }

  .kas-floating-news__link {
    grid-template-columns: 1fr;
    gap: 0.35rem;
    padding: 0.85rem 0.9rem;
  }

  .kas-floating-news__label {
    grid-column: auto;
    grid-row: auto;
    justify-self: start;
    min-width: 0;
    min-height: 1.75rem;
  }

  .page-content .kas-card-grid .wp-block-column,
  .single-content .kas-card-grid .wp-block-column,
  .page-content .kas-step-blocks .wp-block-column,
  .single-content .kas-step-blocks .wp-block-column {
    padding: 1.15rem;
  }

  .page-content .kas-number-list > li,
  .single-content .kas-number-list > li {
    padding-left: 3.2rem;
  }

  .page-content .kas-lead-block h2,
  .single-content .kas-lead-block h2 {
    font-size: clamp(1.7rem, 8vw, 2.25rem);
    letter-spacing: 0.04em;
  }

  .page-content .kas-media-split,
  .single-content .kas-media-split {
    gap: 1.8rem;
  }

  .page-content .kas-number-list--inline,
  .single-content .kas-number-list--inline {
    grid-template-columns: 1fr;
  }

  .post-nav {
    flex-direction: column;
  }

  .site-footer__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .site-footer__info {
    text-align: left;
  }
}

/* ==========================================================================
   Shared Typography Refinement
   ========================================================================== */
.archive-description {
  font-weight: 400;
  letter-spacing: 0.04em;
}

strong,
b,
.page-content strong,
.single-content strong {
  font-weight: 500;
}

.single-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1rem;
  font-size: 0.84rem;
  letter-spacing: 0.08em;
  font-weight: 500;
}

.single-meta a {
  color: var(--accent-deep);
  text-decoration: none;
}

@media (max-width: 1100px) {
  .editorial-intro {
    min-height: 320svh;
  }

  .editorial-intro__inner {
    grid-template-columns: 1fr;
  }

  .editorial-intro__message {
    width: min(100%, 52rem);
    column-gap: clamp(2rem, 5vw, 4rem);
  }

  .editorial-intro__message h2 {
    font-size: clamp(1.58rem, 3.2vw, 2.45rem);
  }

  .editorial-intro__body {
    max-width: 100%;
  }

  .story-grid .section-heading {
    min-height: auto;
  }

  .story-grid__body {
    grid-template-columns: minmax(18rem, 30rem) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4rem);
  }

  .story-grid__visual-stage,
  .story-grid__visual-item img {
    width: min(100%, 30rem);
  }

  .story-grid__body .story-card,
  .story-grid__body .story-card:nth-child(even),
  .story-grid__body .story-card--illustration,
  .story-grid__body .story-card--illustration:nth-child(even) {
    min-height: min(86svh, 42rem);
  }

  .story-card {
    grid-template-columns: 1fr;
    min-height: min(100svh, 58rem);
  }

  .story-card:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .story-card--illustration,
  .story-card--illustration:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .story-card__copy {
    min-height: 0;
    max-width: 31rem;
  }

  .story-card__media {
    height: clamp(19rem, 42vw, 28rem);
  }

  .story-journal__inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .story-journal__lead {
    position: relative;
    top: auto;
    max-width: 100%;
  }

}

@media (max-width: 760px) {
  .site-brand__logo {
    width: 10.75rem;
  }

  .editorial-intro {
    --editorial-headline-start-x: -4.5rem;
    min-height: 300svh;
    padding: 0;
  }

  .editorial-intro__inner {
    position: sticky;
    top: 0;
    height: 100svh;
    min-height: 100svh;
    grid-template-columns: 1fr;
    gap: 1.75rem;
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    padding-inline: var(--fluid-shell-padding-inline);
  }

  .editorial-intro__message {
    width: 100%;
    min-height: auto;
    grid-template-columns: 1fr;
    row-gap: 2rem;
    justify-content: stretch;
    padding-inline: 0;
    transform: none;
  }

  .editorial-intro__message h2 {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    font-size: clamp(1.42rem, 5.35vw, 2.02rem);
    letter-spacing: 0.12em;
  }

  .editorial-intro__body {
    grid-column: 1;
    grid-row: 2;
    justify-self: stretch;
    display: grid;
    gap: 1rem;
    max-width: 100%;
    height: auto;
    writing-mode: horizontal-tb;
    font-size: 1rem;
    line-height: 2;
  }

  .editorial-intro__body p {
    display: block;
  }

  .editorial-intro__body p + p::before {
    content: none;
  }

  .story-grid .section-heading {
    min-height: auto;
    padding-block: 0 clamp(3.25rem, 12vw, 5rem);
  }

  .story-card {
    min-height: min(100svh, 46rem);
    gap: 1.5rem;
    padding: 1.5rem 0 1.75rem;
  }

  .story-card__copy {
    max-width: 100%;
  }

  .story-card__media {
    height: clamp(15rem, 34svh, 19rem);
  }

  .story-grid__body {
    display: block;
  }

  .story-grid__body .story-grid__list {
    grid-column: auto;
    gap: clamp(3rem, 12vw, 4.5rem);
  }

  .story-grid__visual {
    display: none;
  }

  .story-grid__body .story-card,
  .story-grid__body .story-card:nth-child(even),
  .story-grid__body .story-card--illustration,
  .story-grid__body .story-card--illustration:nth-child(even) {
    gap: 1.5rem;
    min-height: min(100svh, 46rem);
    padding: 1.5rem 0 1.75rem;
  }

  .story-grid__body .story-card__media {
    display: block;
  }

  .story-grid__body .story-card--illustration .story-card__media {
    display: grid;
  }

  .section-heading h2,
  .split-feature__copy h2,
  .page-hero h1,
  .single-hero h1,
  .site-footer__brand h2 {
    letter-spacing: -0.02em;
  }

  .split-feature__media,
  .story-card__media img {
    border-radius: var(--radius-small);
  }

  .story-facts,
  .story-journal,
  .split-feature--editorial,
  .story-grid {
    padding-top: 4.75rem;
    padding-bottom: 4.75rem;
  }

  .split-feature--principal {
    padding-top: calc(var(--header-height) + 3rem);
  }

  .split-feature--principal .split-feature__media {
    grid-column: 1;
    grid-row: 2;
    width: min(100%, 20rem);
  }

  .split-feature--principal .split-feature__copy {
    grid-column: 1;
    grid-row: 1;
    grid-template-columns: 1fr;
    row-gap: 2rem;
    width: 100%;
    min-height: auto;
  }

  .split-feature--principal .split-feature__heading {
    grid-column: 1;
    grid-row: 1;
    justify-self: center;
    justify-items: center;
  }

  .split-feature--principal .split-feature__copy h2 {
    font-size: clamp(1.42rem, 5.35vw, 2.02rem);
    letter-spacing: 0.12em;
  }

  .split-feature--principal .split-feature__body {
    grid-column: 1;
    grid-row: 2;
    justify-self: stretch;
    max-width: 100%;
  }

  .page-hero--visual::after {
    border-radius: var(--radius-small);
    height: 18rem;
  }
}

@media (max-width: 760px) {
  .story-facts {
    padding-top: 0;
  }

  .story-facts__motion {
    min-height: 780svh;
  }

  .story-facts__stage {
    min-height: 100svh;
  }

  .story-facts__motion-media {
    width: 50vw;
    height: 50svh;
  }

  .story-facts__metric-stream {
    z-index: 3;
    clip-path: polygon(0 24%, 100% 40%, 100% 86%, 0 72%);
  }

  .story-facts__metric-items {
    width: min(22rem, 86vw);
    min-height: 17rem;
  }

  .story-facts__metric-value {
    font-size: clamp(4.4rem, 19vw, 7rem);
  }

  .story-facts__metric-title {
    font-size: clamp(1.05rem, 4.8vw, 1.34rem);
  }

  .story-facts__metric-lead {
    max-width: 17rem;
    font-size: 0.78rem;
    line-height: 1.7;
  }

  .story-facts__motion-kicker {
    margin-top: clamp(6.2rem, 11vh, 8rem);
  }

  .story-facts__motion-title h2 {
    font-size: clamp(1.35rem, 5.4vw, 2.05rem);
    line-height: 1.08;
  }

  .story-facts__motion-copy {
    max-width: min(23rem, 88vw);
  }

  .story-facts__motion-lead {
    font-size: 0.86rem;
    line-height: 1.8;
  }

}

/* ==========================================================================
   Lower Pages / Final Layout
   ========================================================================== */
.site-header:not(.is-scrolled):not(.is-menu-open) .site-nav a,
.site-header:not(.is-scrolled):not(.is-menu-open) .nav-toggle,
.site-header:not(.is-scrolled):not(.is-menu-open) .nav-toggle__label {
  color: var(--paper-solid);
  text-shadow: 0 2px 16px rgba(var(--rgb-ink), 0.28);
}

body.home.wp-singular .site-header:not(.is-scrolled):not(.is-menu-open) .site-nav a,
body.home.wp-singular .site-header:not(.is-scrolled):not(.is-menu-open) .nav-toggle,
body.home.wp-singular .site-header:not(.is-scrolled):not(.is-menu-open) .nav-toggle__label {
  color: var(--text);
  text-shadow: none;
}

.site-header.is-scrolled .site-nav a,
.site-header.is-scrolled .nav-toggle,
.site-header.is-scrolled .nav-toggle__label,
.site-header.is-menu-open .site-nav a,
.site-header.is-menu-open .nav-toggle,
.site-header.is-menu-open .nav-toggle__label {
  color: var(--text);
  text-shadow: none;
}

.site-brand__picture {
  display: block;
}

.page-shell,
.archive-shell,
.single-shell {
  padding-top: 0;
  padding-bottom: 0;
}

.page-hero,
.single-hero {
  --page-hero-overlay-top: rgba(var(--rgb-ink), 0.36);
  --page-hero-overlay-mid: rgba(var(--rgb-ink), 0.12);
  --page-hero-overlay-bottom-start: rgba(var(--rgb-ink), 0.04);
  --page-hero-overlay-bottom-mid: rgba(var(--rgb-ink), 0.5);
  --page-hero-overlay-bottom-end: rgba(var(--rgb-ink), 0.72);
  --page-hero-overlay-side-start: rgba(var(--rgb-ink), 0.58);
  --page-hero-overlay-side-mid: rgba(var(--rgb-ink), 0);
  --page-hero-overlay-side-end: rgba(var(--rgb-ink), 0);
  position: relative;
  display: grid;
  align-items: end;
  min-height: 100svh;
  padding: var(--page-hero-padding);
  color: var(--text-inverse);
  background: transparent;
  isolation: isolate;
}

.page-hero.page-hero--visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--page-hero-image);
  background-position: center;
  background-size: cover;
  transform: scale(1.02);
}

.page-hero.page-hero--visual::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  width: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background:
    linear-gradient(180deg, var(--page-hero-overlay-bottom-start), var(--page-hero-overlay-bottom-mid) 58%, var(--page-hero-overlay-bottom-end)),
    linear-gradient(90deg, var(--page-hero-overlay-side-start), var(--page-hero-overlay-side-mid) 60%, var(--page-hero-overlay-side-end));
}

.page-hero__inner,
.single-hero .page-hero__inner {
  position: relative;
  z-index: 2;
  width: var(--page-shell-width);
  margin: 0 auto;
}

.page-hero__copy {
  display: grid;
  gap: 1rem;
  max-width: var(--page-copy-max-width);
}

.page-hero .section-kicker,
.single-hero .section-kicker {
  color: var(--paper-strong);
}

.page-hero .section-kicker::before,
.single-hero .section-kicker::before {
  background: currentColor;
}

.page-hero h1,
.single-hero h1 {
  color: var(--text-inverse);
  font-size: clamp(2.8rem, 5vw, 4.9rem);
  line-height: 1.12;
  text-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.page-hero p,
.single-hero p,
.single-hero .single-meta {
  color: var(--paper-stronger);
}

.single-hero .single-meta a {
  color: var(--paper-bright);
}

.page-content,
.archive-content__inner,
.single-content {
  width: var(--page-shell-width);
  margin: 0 auto;
  padding: var(--page-content-padding-top) 0 var(--page-content-padding-bottom);
  line-height: 2.05;
}

.page-content > *,
.single-content > * {
  max-width: 100%;
  margin-block: 0;
}

.page-content > * + *,
.single-content > * + * {
  margin-top: clamp(2.4rem, 3.6vw, 3.4rem);
}

.page-content h2,
.single-content h2 {
  margin-top: clamp(5rem, 8vw, 7rem);
  margin-bottom: clamp(1.4rem, 2.4vw, 2rem);
  font-size: clamp(2.15rem, 3.4vw, 3.25rem);
  line-height: 1.4;
}

.page-content h3,
.single-content h3 {
  margin-top: clamp(3.5rem, 6vw, 4.75rem);
  margin-bottom: 1.4rem;
  font-size: clamp(1.55rem, 2.2vw, 2.1rem);
  line-height: 1.5;
}

.page-content h4,
.single-content h4 {
  margin-top: clamp(2.2rem, 4vw, 2.8rem);
  margin-bottom: 0.8rem;
  font-size: clamp(1.2rem, 1.55vw, 1.42rem);
  line-height: 1.55;
}

.page-content h5,
.single-content h5,
.page-content h6,
.single-content h6 {
  margin-top: clamp(1.8rem, 3vw, 2.4rem);
  margin-bottom: 0.65rem;
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.page-content p + p,
.single-content p + p {
  margin-top: var(--paragraph-gap);
}

.page-content .wp-block-columns,
.single-content .wp-block-columns {
  gap: clamp(2rem, 4vw, 4rem);
}

.page-content .wp-block-group,
.single-content .wp-block-group,
.page-content .wp-block-columns,
.single-content .wp-block-columns,
.page-content .wp-block-media-text,
.single-content .wp-block-media-text {
  margin-top: clamp(2.4rem, 4vw, 3.2rem);
}

.archive-content {
  padding-bottom: 0;
  background: transparent;
}

@media (max-width: 1100px) {
  :root {
    --page-hero-padding: calc(var(--header-height) + 3rem) 0 2.75rem;
    --page-copy-max-width: 30rem;
    --page-shell-width: min(100% - 2rem, 1200px);
    --page-content-padding-top: 3.5rem;
  }

  .page-hero,
  .single-hero {
    min-height: min(100svh, 48rem);
  }
}

@media (max-width: 760px) {
  :root {
    --page-hero-padding: calc(var(--header-height) + 2.25rem) 0 2.25rem;
    --page-shell-width: min(100% - 1.5rem, 1200px);
    --page-content-padding-top: 3rem;
    --page-content-padding-bottom: 4rem;
    --page-copy-max-width: 22rem;
  }

  .page-hero,
  .single-hero {
    min-height: min(100svh, 42rem);
  }

  .page-hero__copy {
    gap: 0.85rem;
  }

  .page-hero h1,
  .single-hero h1 {
    font-size: clamp(2.15rem, 10vw, 3rem);
    letter-spacing: 0;
  }
}

/* ========================================================================
   Lower Page Hierarchy Heroes
   ======================================================================== */

.page-hero:not(.page-hero--lower) .page-hero__visual {
  display: none;
}

.page-hero--lower {
  --page-hero-padding: calc(var(--header-height) + clamp(4.5rem, 9vw, 8rem)) 0 calc(clamp(3.4rem, 7vw, 6rem) + 1.8rem);
  --page-copy-max-width: none;
  --page-hero-overlay-top: rgba(var(--rgb-ink), 0.12);
  --page-hero-overlay-mid: rgba(var(--rgb-ink), 0.2);
  --page-hero-overlay-bottom-start: rgba(var(--rgb-ink), 0.02);
  --page-hero-overlay-bottom-mid: rgba(var(--rgb-ink), 0.42);
  --page-hero-overlay-bottom-end: rgba(var(--rgb-ink), 0.72);
  --page-hero-overlay-side-start: rgba(var(--rgb-ink), 0.58);
  --page-hero-overlay-side-mid: rgba(var(--rgb-ink), 0);
  --page-hero-overlay-side-end: rgba(var(--rgb-ink), 0);
  min-height: clamp(34rem, 72svh, 48rem);
  align-items: end;
  color: var(--text-inverse);
  background: transparent;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%201000%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27black%27%20d%3D%27M0%200H1440V900Q1080%20780%20720%20900Q360%201020%200%20900V0Z%27%2F%3E%3C%2Fsvg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201440%201000%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20fill%3D%27black%27%20d%3D%27M0%200H1440V900Q1080%20780%20720%20900Q360%201020%200%20900V0Z%27%2F%3E%3C%2Fsvg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  overflow: clip;
}

.page-hero--lower .page-hero__inner {
  display: block;
}

.page-hero--lower.page-hero--visual::before {
  background-position: center right;
}

.page-hero--page-level-3 {
  --page-hero-padding: calc(var(--header-height) + clamp(3rem, 7vw, 5.2rem)) 0 calc(clamp(2.6rem, 6vw, 4.6rem) + 1.4rem);
  --page-copy-max-width: none;
  --page-hero-overlay-side-start: rgba(var(--rgb-ink), 0.54);
  --page-hero-overlay-side-mid: rgba(var(--rgb-ink), 0);
  --page-hero-overlay-bottom-end: rgba(var(--rgb-ink), 0.68);
  min-height: clamp(28rem, 58svh, 40rem);
}

.page-hero--lower .page-hero__copy {
  max-width: var(--page-copy-max-width);
  padding-block: clamp(0.6rem, 2vw, 1.2rem);
}

.page-hero--lower .section-kicker {
  color: var(--paper-bright);
}

.page-hero--lower h1 {
  color: var(--text-inverse);
  letter-spacing: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-shadow: 0 12px 32px rgba(0, 0, 0, 0.24);
}

.page-hero--page-level-3 h1 {
  font-size: clamp(2.35rem, 4.4vw, 3.8rem);
}

.page-hero--lower p {
  color: var(--paper-stronger);
}

.page-hero--lower .page-hero__visual {
  display: none;
}

.kas-breadcrumb {
  margin: 0 0 clamp(0.8rem, 2vw, 1.1rem);
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.6;
}

.kas-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.kas-breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.kas-breadcrumb li + li::before {
  content: "";
  width: 0.36rem;
  height: 0.36rem;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.62;
}

.kas-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.kas-breadcrumb a:hover {
  color: var(--accent-strong);
}

.page-hero--lower .kas-breadcrumb {
  color: rgba(var(--rgb-white), 0.82);
}

.page-hero--lower .kas-breadcrumb a:hover {
  color: var(--paper-bright);
}

.page-content--page-level-2 {
  --content-width: 920px;
}

.page-content--page-level-3 {
  --content-width: 800px;
  padding-top: clamp(3.5rem, 6vw, 5rem);
}

@media (max-width: 1100px) {
  .page-hero--lower {
    --page-hero-overlay-side-start: rgba(var(--rgb-ink), 0.56);
    --page-hero-overlay-side-mid: rgba(var(--rgb-ink), 0);
  }
}

@media (max-width: 760px) {
  .page-hero--lower {
    --page-hero-padding: calc(var(--header-height) + 5.5rem) 0 4rem;
    --page-hero-overlay-top: rgba(var(--rgb-ink), 0.18);
    --page-hero-overlay-mid: rgba(var(--rgb-ink), 0.22);
    --page-hero-overlay-bottom-mid: rgba(var(--rgb-ink), 0.54);
    --page-hero-overlay-bottom-end: rgba(var(--rgb-ink), 0.78);
    --page-hero-overlay-side-start: rgba(var(--rgb-ink), 0.46);
    --page-hero-overlay-side-mid: rgba(var(--rgb-ink), 0);
    --page-hero-overlay-side-end: rgba(var(--rgb-ink), 0);
    min-height: clamp(29rem, 66svh, 36rem);
  }

  .page-hero--page-level-3 {
    min-height: clamp(25rem, 58svh, 32rem);
  }

  .page-hero--lower h1 {
    font-size: clamp(1.85rem, 8vw, 2.45rem);
    line-height: 1.18;
  }

  .page-hero--lower.page-hero--visual::before {
    background-position: center;
  }
}

/* ==========================================================================
   Top Page / Hero Sequence
   ========================================================================== */
body.home .hero-scope {
  --hero-fade-distance: 56svh;
  --hero-stage-sticky-top: calc(var(--header-height) + 1.25rem);
  --hero-stage-opacity: 1;
  --hero-stage-scale: 1;
  --hero-stage-blur: 0px;
  --hero-stage-min-height: calc(100svh - var(--header-height) - 2.75rem);
  --hero-stage-inline: clamp(1.25rem, 3vw, 2.75rem);
  --hero-copy-width: min(100%, 34rem);
  --hero-copy-gap: 1.25rem;
  --hero-copy-rest-offset-y: clamp(-3.6rem, -6vh, -2.25rem);
  --hero-title-gap: clamp(1.35rem, 3.4vw, 2.6rem);
  --hero-title-line-size: clamp(2rem, 2.7vw, 2.9rem);
  --hero-lead-size: 1.04rem;
  --hero-lead-line-height: 2.02;
  --hero-support-left: clamp(1.4rem, 3.4vw, 3rem);
  --hero-support-bottom: var(--hero-support-left);
  --hero-support-gap: 1rem;
  --hero-support-max-width: min(26.5rem, calc(100vw - 4rem));
  --hero-badge-row-gap: 0.95rem;
  --hero-badge-size: clamp(7.25rem, 8.1vw, 8.35rem);
  --hero-badge-padding: 0.72rem;
  --hero-badge-font-size: 0.78rem;
  --hero-badge-title-size: calc(var(--hero-badge-font-size) * 1.08);
  --hero-badge-subtitle-size: calc(var(--hero-badge-font-size) * 1.24);
  --hero-canvas-top: 54%;
  --hero-canvas-width: calc(100% + 10rem);
  --hero-canvas-height: min(calc(100svh + 28rem), 78rem);
  --hero-fallback-card-width: clamp(9rem, 15.5vw, 18rem);
  --hero-fallback-spread-x: min(14rem, 16vw);
  --hero-fallback-spread-y: min(8.5rem, 10vw);
  --hero-fallback-offset-x: clamp(17rem, 31vw, 34rem);
  --hero-fallback-offset-y: clamp(7rem, 20vh, 13rem);
  --hero-fallback-depth-scale: 1;
  position: relative;
  min-height: calc(100svh + var(--hero-fade-distance));
  padding: calc(var(--header-height) + 1.25rem) 0 1.5rem;
  overflow: clip;
  background: none;
}

body.home .hero-scope::before {
  content: none;
}

body.home .hero-scope__stage {
  position: sticky;
  top: var(--hero-stage-sticky-top);
  z-index: 1;
  width: 100%;
  min-height: var(--hero-stage-min-height);
  margin: 0;
  padding-inline: var(--hero-stage-inline);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  place-items: center;
  overflow: visible;
  transform: none;
}

@media (prefers-reduced-motion: no-preference) {
  body.home.has-motion-js .hero-scope__stage {
    position: fixed;
    left: 0;
    right: 0;
    pointer-events: none;
  }
}

body.home .hero-scope__center,
body.home .hero-scope__supporting {
  opacity: var(--hero-stage-opacity);
  filter: blur(var(--hero-stage-blur));
  transform-origin: center;
  will-change: opacity, filter, transform;
}

body.home .hero-scope.has-hero-wind-text .hero-scope__center,
body.home .hero-scope.has-hero-wind-text .hero-scope__supporting {
  opacity: 1;
  filter: none;
}

body.home .hero-scope__visual {
  position: absolute;
  inset: 0;
  grid-column: 1;
  grid-row: 1;
  display: grid;
  place-items: center;
  overflow: visible;
}

body.home .hero-scope__visual.is-home-sequence-visual {
  --hero-canvas-top: 54%;
  --hero-canvas-width: calc(100% + 10rem);
  --hero-canvas-height: min(calc(100svh + 28rem), 78rem);
  --hero-fallback-card-width: clamp(9rem, 15.5vw, 18rem);
  --hero-fallback-spread-x: min(14rem, 16vw);
  --hero-fallback-spread-y: min(8.5rem, 10vw);
  --hero-fallback-offset-x: clamp(17rem, 31vw, 34rem);
  --hero-fallback-offset-y: clamp(7rem, 20vh, 13rem);
  --hero-fallback-depth-scale: 1;
  position: fixed;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 1;
  filter: none;
  transform: none;
  transform-origin: center;
  transition: none;
  will-change: auto;
}

body.home .hero-scope__visual::before {
  content: none;
}

body.home .hero-scope__visual::after {
  content: none;
}

body.home .hero-scope__canvas {
  position: absolute;
  top: var(--hero-canvas-top);
  left: 50%;
  width: var(--hero-canvas-width);
  height: var(--hero-canvas-height);
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: none;
}

body.home .hero-scope__visual.is-webgl-ready .hero-scope__canvas {
  opacity: 1;
}

body.home .hero-scope__canvas canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

body.home .hero-scope__fallback {
  position: absolute;
  top: var(--hero-canvas-top);
  left: 50%;
  z-index: 0;
  width: var(--hero-canvas-width);
  height: var(--hero-canvas-height);
  display: block;
  perspective: 1800px;
  transform-style: preserve-3d;
  transform: translate(-50%, -50%);
  transition: none;
}

body.home .hero-scope__visual.is-webgl-ready .hero-scope__fallback {
  opacity: 0;
  visibility: hidden;
}

body.home .hero-scope__fallback-card {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0;
  width: var(--hero-fallback-card-width);
  border: 1px solid var(--surface-card-line);
  border-radius: var(--radius-card);
  background: var(--surface-card);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transform-style: preserve-3d;
  will-change: transform;
  transform: translate3d(
      calc(
        -50% + var(--hero-fallback-offset-x) +
          (var(--fallback-x, 0) * var(--hero-fallback-spread-x))
      ),
      calc(
        -50% + var(--hero-fallback-offset-y) +
          (var(--fallback-y, 0) * var(--hero-fallback-spread-y))
      ),
      calc(var(--fallback-z, 0px) * var(--hero-fallback-depth-scale))
    )
    rotateY(var(--fallback-rotate-y, 0deg))
    scale(var(--fallback-scale, 1));
}

body.home .hero-scope__fallback-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1.62;
  object-fit: cover;
}

body.home .hero-scope__fallback-card:nth-child(1) {
  --fallback-x: -0.4;
  --fallback-y: -0.92;
  --fallback-z: 170px;
  --fallback-rotate-y: -18deg;
  --fallback-scale: 0.96;
}

body.home .hero-scope__fallback-card:nth-child(2) {
  --fallback-x: 0.58;
  --fallback-y: 0.88;
  --fallback-z: 145px;
  --fallback-rotate-y: 27deg;
  --fallback-scale: 0.94;
}

body.home .hero-scope__fallback-card:nth-child(3) {
  --fallback-x: 1.34;
  --fallback-y: -0.92;
  --fallback-z: 20px;
  --fallback-rotate-y: 72deg;
  --fallback-scale: 0.82;
}

body.home .hero-scope__fallback-card:nth-child(4) {
  --fallback-x: 1.28;
  --fallback-y: 0.88;
  --fallback-z: -145px;
  --fallback-rotate-y: 117deg;
  --fallback-scale: 0.68;
}

body.home .hero-scope__fallback-card:nth-child(5) {
  --fallback-x: 0.4;
  --fallback-y: -0.92;
  --fallback-z: -250px;
  --fallback-rotate-y: 162deg;
  --fallback-scale: 0.6;
}

body.home .hero-scope__fallback-card:nth-child(6) {
  --fallback-x: -0.58;
  --fallback-y: 0.88;
  --fallback-z: -235px;
  --fallback-rotate-y: -153deg;
  --fallback-scale: 0.62;
}

body.home .hero-scope__fallback-card:nth-child(7) {
  --fallback-x: -1.34;
  --fallback-y: -0.92;
  --fallback-z: -48px;
  --fallback-rotate-y: -108deg;
  --fallback-scale: 0.78;
}

body.home .hero-scope__fallback-card:nth-child(8) {
  --fallback-x: -1.28;
  --fallback-y: 0.88;
  --fallback-z: 135px;
  --fallback-rotate-y: -63deg;
  --fallback-scale: 0.9;
}

body.home .hero-scope__supporting {
  position: absolute;
  left: var(--hero-support-left);
  bottom: var(--hero-support-bottom);
  z-index: 6;
  display: grid;
  gap: var(--hero-support-gap);
  width: auto;
  max-width: var(--hero-support-max-width);
  align-content: end;
  transform: scale(var(--hero-stage-scale));
  pointer-events: auto;
}

body.home .hero-scope__badge-row {
  position: static;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  gap: var(--hero-badge-row-gap);
  width: max-content;
  max-width: 100%;
}

body.home .hero-scope__badge {
  position: relative;
  display: grid;
  place-items: center;
  align-content: center;
  align-self: flex-start;
  width: var(--hero-badge-size);
  aspect-ratio: 1;
  padding: var(--hero-badge-padding);
  border: 1px solid var(--accent);
  border-radius: 50%;
  color: var(--headline-color);
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  font-size: var(--hero-badge-font-size);
  line-height: 1.18;
  letter-spacing: 0.03em;
  text-decoration: none;
  text-align: center;
  text-wrap: balance;
  gap: 0.24rem;
  overflow: hidden;
  transition:
    color var(--transition),
    border-color var(--transition),
    box-shadow var(--transition);
}

body.home .hero-scope__badge::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background:
    linear-gradient(135deg, rgba(var(--rgb-white), 0.16) 0%, rgba(var(--rgb-white), 0) 34%),
    linear-gradient(135deg, var(--accent) 0%, #0a70bf 54%, var(--accent-deep) 100%);
  opacity: 0;
  transition: opacity var(--transition);
}

body.home .hero-scope__badge span {
  display: block;
  position: relative;
  z-index: 1;
  white-space: nowrap;
  transform: translateY(-0.12rem);
  transition:
    color var(--transition),
    -webkit-text-fill-color var(--transition);
}

body.home a.hero-scope__badge:hover,
body.home a.hero-scope__badge:focus-visible {
  color: var(--text-inverse);
  border-color: transparent;
  box-shadow: 0 1rem 2rem rgba(var(--accent-rgb), 0.22);
}

body.home a.hero-scope__badge:hover::before,
body.home a.hero-scope__badge:focus-visible::before {
  opacity: 1;
}

body.home a.hero-scope__badge:focus-visible {
  outline: 2px solid rgba(var(--accent-rgb), 0.35);
  outline-offset: 4px;
}

body.home a.hero-scope__badge:hover span,
body.home a.hero-scope__badge:focus-visible span {
  color: var(--text-inverse);
  background-image: none;
  -webkit-text-fill-color: var(--text-inverse);
}

body.home .hero-scope__badge-title {
  font-size: var(--hero-badge-title-size);
  font-weight: 700;
  line-height: 1.08;
}

body.home .hero-scope__badge-subtitle {
  margin-top: 0.08rem;
  font-size: var(--hero-badge-subtitle-size);
  font-weight: 800;
  line-height: 1.05;
}

body.home .hero-scope__wind-char,
body.home .hero-scope__wind-unit {
  display: inline-block;
  transform-origin: center;
  will-change: opacity, filter, transform;
  backface-visibility: hidden;
  contain: paint;
}

body.home .hero-scope__wind-char {
  transform: translate3d(0, 0, 0);
}

body.home .hero-scope__wind-char--title {
  line-height: inherit;
}

body.home .hero-scope__wind-char--lead {
  transform-origin: 50% 55%;
}

body.home .hero-scope__wind-space {
  width: 0.35em;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  body.home .hero-scope__badge span {
    background-image: var(--headline-gradient);
    background-position: 38% 44%;
    background-repeat: no-repeat;
    background-size: 180% 180%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
  }
}

body.home .hero-scope__badge-title {
  font-size: 1em;
  letter-spacing: 0.01em;
}

body.home .hero-scope__badge-subtitle {
  font-size: 1.4em;
  line-height: 1.04;
  letter-spacing: 0.01em;
  font-weight: var(--font-weight-heading);
}

body.home .hero-scope__badge--1 {
  transform: none;
}

body.home .hero-scope__badge--2 {
  transform: none;
}

body.home .hero-scope__badge--3 {
  transform: none;
}

body.home .hero-scope__center {
  position: relative;
  z-index: 5;
  grid-column: 1;
  grid-row: 1;
  display: grid;
  align-content: center;
  justify-content: center;
  justify-items: center;
  gap: var(--hero-copy-gap);
  width: var(--hero-copy-width);
  min-height: 100%;
  padding: 0;
  place-self: center;
  text-align: center;
  transform: translateY(var(--hero-copy-rest-offset-y)) scale(var(--hero-stage-scale));
}

body.home .hero-scope__center::before {
  content: none;
}

body.home .hero-scope__center .section-kicker {
  justify-content: center;
}

body.home .hero-scope__title {
  --hero-title-line-spacing: 0.5em;
  --hero-title-step-second: 1em;
  --hero-title-step-third: 2em;
  display: inline-flex;
  flex-direction: row-reverse;
  justify-content: center;
  justify-self: center;
  align-items: start;
  gap: var(--hero-title-gap);
  margin: 0;
  color: var(--text);
  line-height: 1;
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  white-space: normal;
  position: relative;
  z-index: 1;
}

body.home .hero-scope__title::before {
  content: none;
}

body.home .hero-scope__title-line {
  display: block;
  position: relative;
  font-family: var(--font-family-heading);
  color: inherit;
  font-size: var(--hero-title-line-size);
  font-weight: var(--font-weight-heading);
  letter-spacing: var(--hero-title-line-spacing);
  line-height: 1.08;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  white-space: nowrap;
}

body.home .hero-scope__title-line:nth-child(2) {
  margin-top: var(--hero-title-step-second);
}

body.home .hero-scope__title-line:nth-child(3) {
  margin-top: var(--hero-title-step-third);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  body.home .hero-scope__title-line:nth-child(1) {
    background-position: 24% 30%;
  }

  body.home .hero-scope__title-line:nth-child(2) {
    background-position: 52% 48%;
  }

  body.home .hero-scope__title-line:nth-child(3) {
    background-position: 72% 62%;
  }
}

body.home .hero-scope__title-line::before {
  content: none;
}

body.home .hero-scope__lead {
  width: 100%;
  max-width: none;
  margin: 0;
  color: var(--text-soft);
  font-size: var(--hero-lead-size);
  line-height: var(--hero-lead-line-height);
  text-align: left;
}

body.home .hero-scope__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  padding-top: 0;
}

:where(h1, h2, h3),
:where(h1, h2, h3) > span {
  color: var(--headline-color);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  :where(h1, h2, h3),
  :where(h1, h2, h3) > span {
    background-image: var(--headline-gradient);
    background-position: 38% 44%;
    background-repeat: no-repeat;
    background-size: 180% 180%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
  }
}

.page-hero--lower h1,
.page-hero--lower h1 > span {
  background-image: none;
  background-clip: border-box;
  -webkit-background-clip: border-box;
  color: var(--text-inverse);
  -webkit-text-fill-color: currentColor;
  text-shadow: 0 12px 32px rgba(0, 0, 0, 0.24);
}

.page-hero--no-visual.page-hero--page-level-4 {
  --page-hero-padding: calc(var(--header-height) + clamp(3.2rem, 7vw, 5.5rem)) 0 clamp(2.8rem, 5vw, 4.2rem);
  --page-copy-max-width: min(100%, 62rem);
  min-height: auto;
  color: var(--text);
  background: transparent;
  -webkit-mask-image: none;
  mask-image: none;
  overflow: visible;
}

.page-hero--no-visual.page-hero--page-level-4 .page-hero__copy {
  gap: clamp(0.8rem, 1.4vw, 1.1rem);
  padding-block: 0;
}

.page-hero--no-visual.page-hero--page-level-4 .section-kicker,
.page-hero--no-visual.page-hero--page-level-4 .section-kicker::before {
  color: var(--accent-deep);
}

.page-hero--no-visual.page-hero--page-level-4 h1,
.page-hero--no-visual.page-hero--page-level-4 h1 > span {
  max-width: 16em;
  color: var(--text);
  font-size: clamp(2.1rem, 4.2vw, 3.5rem);
  line-height: 1.25;
  background-image: none;
  background-clip: border-box;
  -webkit-background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  text-shadow: none;
}

.page-hero--no-visual.page-hero--page-level-4 .kas-breadcrumb {
  color: var(--text-muted);
}

.page-hero--no-visual.page-hero--page-level-4 .kas-breadcrumb a:hover {
  color: var(--accent-strong);
}

.single-hero--fill.page-hero--no-visual.page-hero--page-level-4 {
  --page-copy-max-width: min(100%, 68rem);
  background:
    linear-gradient(135deg, rgba(var(--accent-rgb), 0.13), rgba(var(--rgb-white), 0.72) 48%, rgba(var(--accent-rgb), 0.08)),
    linear-gradient(180deg, rgba(var(--rgb-white), 0.96), rgba(var(--rgb-white), 0.72));
  border-bottom: 1px solid rgba(var(--accent-rgb), 0.14);
}

.single-hero--fill.page-hero--no-visual.page-hero--page-level-4::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: -1;
  height: clamp(4.8rem, 10vw, 8.5rem);
  background: linear-gradient(180deg, rgba(var(--accent-rgb), 0), rgba(var(--accent-rgb), 0.1));
  pointer-events: none;
}

.single-hero--fill.page-hero--no-visual.page-hero--page-level-4 .page-hero__copy {
  position: relative;
  padding: clamp(1.7rem, 3.2vw, 2.7rem) clamp(1.2rem, 3vw, 2rem);
  background: rgba(var(--rgb-white), 0.72);
  border: 1px solid rgba(var(--accent-rgb), 0.16);
  border-radius: var(--radius-card);
  box-shadow: 0 22px 62px rgba(var(--rgb-ink), 0.07);
}

.page-hero--page-level-4 .single-meta--lv4 {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.7rem;
  align-items: center;
  margin-top: clamp(0.25rem, 0.6vw, 0.45rem);
  color: var(--text-soft);
  font-size: 0.86rem;
  line-height: 1.7;
}

.page-hero--page-level-4 .single-meta--lv4 a {
  display: inline-flex;
  align-items: center;
  min-height: 1.85rem;
  padding: 0 0.58rem;
  color: var(--accent-strong);
  text-decoration: none;
  border: 1px solid rgba(var(--accent-rgb), 0.22);
  border-radius: var(--radius-small);
  background: rgba(var(--accent-rgb), 0.06);
}

.page-hero--page-level-4 .single-meta--lv4 a:hover {
  color: var(--accent-deep);
  border-color: rgba(var(--accent-rgb), 0.36);
  background: rgba(var(--accent-rgb), 0.1);
}

.single-content--page-level-4 {
  --content-width: 760px;
  padding-top: clamp(3rem, 5vw, 4.5rem);
}

body.is-dark .page-hero--no-visual.page-hero--page-level-4 .section-kicker,
body.is-dark .page-hero--no-visual.page-hero--page-level-4 .section-kicker::before {
  color: rgba(var(--rgb-white), 0.9);
}

body.is-dark .page-hero--no-visual.page-hero--page-level-4 h1,
body.is-dark .page-hero--no-visual.page-hero--page-level-4 h1 > span {
  color: var(--current-text);
}

body.is-dark .single-hero--fill.page-hero--no-visual.page-hero--page-level-4 {
  background:
    linear-gradient(135deg, rgba(229, 244, 255, 0.11), rgba(var(--rgb-ink), 0.72) 52%, rgba(229, 244, 255, 0.07)),
    var(--surface-dark);
  border-bottom-color: rgba(229, 244, 255, 0.12);
}

body.is-dark .single-hero--fill.page-hero--no-visual.page-hero--page-level-4 .page-hero__copy {
  background: rgba(var(--rgb-ink), 0.52);
  border-color: rgba(229, 244, 255, 0.16);
  box-shadow: 0 22px 62px rgba(0, 0, 0, 0.28);
}

body.is-dark .page-hero--no-visual.page-hero--page-level-4 .kas-breadcrumb,
body.is-dark .page-hero--page-level-4 .single-meta--lv4 {
  color: rgba(var(--rgb-white), 0.72);
}

body.is-dark .page-hero--page-level-4 .single-meta--lv4 a {
  color: rgba(var(--rgb-white), 0.92);
  border-color: rgba(var(--rgb-white), 0.22);
  background: rgba(var(--rgb-white), 0.08);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  body.home .hero-scope.has-hero-wind-text .hero-scope__wind-char--title {
    background-image: inherit;
    background-position: inherit;
    background-repeat: inherit;
    background-size: inherit;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  body.home .editorial-intro__message h2,
  body.home .editorial-intro__message h2 > span {
    background-image: var(--headline-gradient);
    background-position: 38% 44%;
    background-repeat: no-repeat;
    background-size: 180% 180%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
  }

  body.home .editorial-intro__message h2 > span:nth-child(1) {
    background-position: 24% 30%;
  }

  body.home .editorial-intro__message h2 > span:nth-child(2) {
    background-position: 52% 48%;
  }

  body.home .editorial-intro__message h2 > span:nth-child(3) {
    background-position: 72% 62%;
  }

  body.home .editorial-intro__wind-char--title {
    background-image: inherit;
    background-position: inherit;
    background-repeat: inherit;
    background-size: inherit;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
}

@media (max-width: 1100px) {
  body.home .hero-scope {
    padding-top: calc(var(--header-height) + 1rem);
    --hero-stage-min-height: calc(100svh - var(--header-height) - 2rem);
    --hero-stage-inline: 1rem;
    --hero-canvas-width: calc(100% + 6rem);
    --hero-fallback-card-width: clamp(7.8rem, 17vw, 13.5rem);
    --hero-fallback-spread-x: min(9.6rem, 12vw);
    --hero-fallback-spread-y: min(6.8rem, 8vw);
    --hero-fallback-offset-x: clamp(10rem, 27vw, 22rem);
    --hero-fallback-offset-y: clamp(6rem, 18vh, 11rem);
    --hero-copy-width: min(100%, 28rem);
    --hero-support-left: 1rem;
    --hero-support-bottom: var(--hero-support-left);
    --hero-support-gap: 0.85rem;
    --hero-support-max-width: min(20rem, calc(100% - 2rem));
  }

  body.home .hero-scope__visual.is-home-sequence-visual {
    --hero-canvas-width: calc(100% + 6rem);
    --hero-fallback-card-width: clamp(7.8rem, 17vw, 13.5rem);
    --hero-fallback-spread-x: min(9.6rem, 12vw);
    --hero-fallback-spread-y: min(6.8rem, 8vw);
    --hero-fallback-offset-x: clamp(10rem, 27vw, 22rem);
    --hero-fallback-offset-y: clamp(6rem, 18vh, 11rem);
  }

}

@media (min-width: 761px) and (max-width: 900px) {
  body.home .hero-scope {
    --hero-copy-rest-offset-y: clamp(-7.2rem, -12vh, -5.1rem);
    --hero-canvas-top: 70%;
    --hero-canvas-width: calc(100% + 2rem);
    --hero-canvas-height: min(calc(92svh + 18rem), 64rem);
  }

  body.home .hero-scope__visual.is-home-sequence-visual {
    --hero-canvas-top: 70%;
    --hero-canvas-width: calc(100% + 2rem);
    --hero-canvas-height: min(calc(92svh + 18rem), 64rem);
  }
}

@media (max-width: 760px) {
  body.home .hero-scope {
    padding-top: calc(var(--header-height) + 0.8rem);
    padding-bottom: 1rem;
    --hero-stage-min-height: calc(92svh - var(--header-height));
    --hero-stage-inline: 0.65rem;
    --hero-copy-rest-offset-y: clamp(-7.4rem, -17vh, -4.6rem);
    --hero-copy-gap: 1rem;
    --hero-copy-width: min(100%, 21rem);
    --hero-title-gap: clamp(0.9rem, 4.4vw, 1.35rem);
    --hero-title-line-size: clamp(1.55rem, 6vw, 2rem);
    --hero-lead-size: 0.92rem;
    --hero-lead-line-height: 1.88;
    --hero-badge-size: 5.9rem;
    --hero-badge-padding: 0.5rem;
    --hero-badge-font-size: 0.67rem;
    --hero-support-left: 0.85rem;
    --hero-support-bottom: var(--hero-support-left);
    --hero-support-gap: 0.65rem;
    --hero-support-max-width: min(18.8rem, calc(100% - 1.2rem));
    --hero-badge-row-gap: 0.5rem;
    --hero-canvas-top: 104%;
    --hero-canvas-width: calc(100% + 1rem);
    --hero-canvas-height: min(calc(72svh + 9rem), 48rem);
    --hero-fallback-card-width: clamp(6.2rem, 24vw, 9rem);
    --hero-fallback-spread-x: min(5.4rem, 18vw);
    --hero-fallback-spread-y: min(3.9rem, 11vw);
    --hero-fallback-offset-x: clamp(4.8rem, 33vw, 8.2rem);
    --hero-fallback-offset-y: clamp(4rem, 14vh, 6.8rem);
    --hero-fallback-depth-scale: 0.68;
  }

  body.home .hero-scope__visual.is-home-sequence-visual {
    --hero-canvas-top: 104%;
    --hero-canvas-width: calc(100% + 1rem);
    --hero-canvas-height: min(calc(72svh + 9rem), 48rem);
    --hero-fallback-card-width: clamp(6.2rem, 24vw, 9rem);
    --hero-fallback-spread-x: min(5.4rem, 18vw);
    --hero-fallback-spread-y: min(3.9rem, 11vw);
    --hero-fallback-offset-x: clamp(4.8rem, 33vw, 8.2rem);
    --hero-fallback-offset-y: clamp(4rem, 14vh, 6.8rem);
    --hero-fallback-depth-scale: 0.68;
  }

  body.home .hero-scope__center::before {
    inset: -1.2rem -1rem;
  }

  body.home .hero-scope__title::before {
    inset: -0.8rem -1rem;
    filter: blur(16px);
    opacity: 0.54;
  }

  body.home .hero-scope__actions {
    gap: 0.6rem;
  }

  body.home .editorial-intro {
    --editorial-headline-start-x: 0px;
    --editorial-headline-shift: 0px;
    --editorial-mobile-body-y: 0px;
    min-height: auto;
    padding: 2.75rem 0 3.25rem;
  }

  body.home .editorial-intro__inner {
    position: relative;
    top: auto;
    height: auto;
    min-height: auto;
    padding-inline: var(--fluid-shell-padding-inline);
  }

  body.home .editorial-intro__message {
    width: 100%;
    min-height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    column-gap: 0;
    row-gap: 1.1rem;
    align-items: start;
    justify-items: stretch;
    padding-inline: 0;
  }

  body.home .editorial-intro__message h2 {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
    align-self: auto;
    font-size: clamp(1.45rem, 6vw, 2rem);
    line-height: 1.62;
    letter-spacing: 0.08em;
  }

  body.home .editorial-intro__body {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    align-self: auto;
    max-width: 100%;
    height: auto;
    font-size: 0.94rem;
    line-height: 1.88;
    letter-spacing: 0.045em;
    writing-mode: horizontal-tb;
  }

  body.home.has-motion-js .editorial-intro__body {
    transform: none;
    will-change: auto;
  }

}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body {
    animation: none;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }

  body.has-motion-js .reveal-item {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   Header / Navigation Final Layout
   ========================================================================== */
.site-header:not(.is-scrolled):not(.is-menu-open) .site-nav a span,
.site-header.is-scrolled .site-nav a span,
.site-header.is-menu-open .site-nav a span {
  color: var(--current-nav);
  text-shadow: none;
}

body:not(.home) .site-header:not(.is-scrolled):not(.is-menu-open) .site-nav a span {
  color: var(--paper-solid);
  text-shadow: 0 2px 16px rgba(var(--rgb-ink), 0.28);
}

body.single-post .site-header:not(.is-scrolled):not(.is-menu-open) .site-nav a span {
  color: var(--current-nav);
  text-shadow: none;
}

body.single-post .site-header:not(.is-scrolled):not(.is-menu-open) .site-nav__item--cta span {
  color: var(--accent-strong);
}

body.single-post .site-header:not(.is-scrolled):not(.is-menu-open) .nav-toggle,
body.single-post .site-header:not(.is-scrolled):not(.is-menu-open) .nav-toggle__label {
  color: var(--text);
  text-shadow: none;
}

.site-header.is-scrolled {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

body:not(.home) .site-header.is-scrolled {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.site-header.is-menu-open {
  background: var(--current-menu-panel);
  border-bottom-color: transparent;
  backdrop-filter: blur(12px);
}

body.is-dark .site-header.is-menu-open {
  box-shadow: 0 18px 48px rgba(0, 8, 18, 0.28);
}

body.is-dark .nav-toggle {
  color: var(--text-inverse);
}

.site-header.is-menu-open .nav-toggle__line:first-child {
  transform: translateY(0.22rem) rotate(45deg);
}

.site-header.is-menu-open .nav-toggle__line:last-child {
  transform: translateY(-0.22rem) rotate(-45deg);
}

@media (max-width: 1100px) {
  .site-header__inner {
    width: 100%;
    min-height: var(--header-height);
    margin: 0;
    padding: 0 1rem;
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
  }

  .nav-toggle {
    display: inline-flex;
    justify-self: end;
  }

  .site-brand {
    padding-top: 0;
  }

  .site-header__menu {
    position: fixed;
    top: var(--header-height);
    right: 0;
    left: 0;
    display: grid;
    gap: 2rem;
    padding: 2rem 1.5rem 2.5rem;
    background: var(--current-menu-panel);
    transform: translateY(-1.5rem);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition), transform var(--transition);
  }

  .site-header.is-menu-open .site-header__menu {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .site-nav {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 1rem;
    padding-right: 0;
  }

  .site-nav a,
  .site-nav__item--cta {
    margin-left: 0;
    padding: 0 0 0.3rem;
    border-right: none;
  }

  .site-nav a span {
    writing-mode: horizontal-tb;
    font-size: inherit;
    line-height: inherit;
    letter-spacing: 0;
    text-align: left;
  }
}

/* ==========================================================================
   Detail Page – Creative Layout v2
   章立て / 装飾見出し / アイコンカード / ステップ / タイムライン
   - ブロックエディタ「追加 CSS クラス」運用前提
   - 既存 .kas-* クラスと併用できるように追加スタイルとして実装
   ========================================================================== */

.page-content,
.single-content {
  counter-reset: kas-chapter;
}

/* ---- 章ラッパ kas-chapter ---- */
.page-content .kas-chapter,
.single-content .kas-chapter {
  position: relative;
  margin-top: 0;
  padding: clamp(4rem, 8vw, 7.5rem) 0 clamp(3.5rem, 7vw, 6.5rem);
  counter-increment: kas-chapter;
}

.page-content > .kas-chapter:first-child,
.single-content > .kas-chapter:first-child {
  padding-top: clamp(2.4rem, 4vw, 3.6rem);
}

.page-content > .kas-chapter + .kas-chapter,
.single-content > .kas-chapter + .kas-chapter {
  margin-top: 0;
}

.page-content .kas-chapter > *,
.single-content .kas-chapter > * {
  margin-top: clamp(1.6rem, 2.6vw, 2.4rem);
}

.page-content .kas-chapter > *:first-child,
.single-content .kas-chapter > *:first-child {
  margin-top: 0;
}

.page-content .kas-chapter > .wp-block-group__inner-container > *,
.single-content .kas-chapter > .wp-block-group__inner-container > * {
  margin-top: clamp(1.6rem, 2.6vw, 2.4rem);
}

.page-content .kas-chapter > .wp-block-group__inner-container > *:first-child,
.single-content .kas-chapter > .wp-block-group__inner-container > *:first-child {
  margin-top: 0;
}

.page-content .kas-section-heading,
.single-content .kas-section-heading {
  display: grid;
  gap: var(--kas-heading-stack-gap);
  margin-top: 0;
}

.page-content .kas-section-heading > *,
.single-content .kas-section-heading > * {
  margin-block: 0;
}

.page-content .kas-section-heading > .wp-block-group__inner-container,
.single-content .kas-section-heading > .wp-block-group__inner-container {
  display: grid;
  gap: var(--kas-heading-stack-gap);
}

.page-content .kas-section-heading > .wp-block-group__inner-container > *,
.single-content .kas-section-heading > .wp-block-group__inner-container > * {
  margin-block: 0;
}

.page-content .kas-section-heading .kas-eyebrow + .wp-block-heading,
.single-content .kas-section-heading .kas-eyebrow + .wp-block-heading {
  margin-top: clamp(-0.58rem, -0.55vw, -0.42rem);
}

.page-content .kas-section-heading p:not(.kas-eyebrow),
.single-content .kas-section-heading p:not(.kas-eyebrow) {
  max-width: 100%;
  color: var(--text-soft);
  font-size: 0.98rem;
  line-height: 1.95;
}

/* ---- 下層ページ v3: 長い情報を読みやすくする章レイアウト ---- */
.page-hero--lower {
  min-height: clamp(26rem, 54svh, 40rem);
}

.page-hero--page-level-3 {
  min-height: clamp(22rem, 46svh, 34rem);
}

@media (min-width: 961px) {
  .page-content .kas-lead-block,
  .single-content .kas-lead-block {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: clamp(1.15rem, 2vw, 1.8rem);
    align-items: start;
    width: 100%;
    max-width: none;
    padding: clamp(2.6rem, 4vw, 4.2rem) 0 clamp(3.2rem, 5vw, 5rem);
  }

  .page-content .kas-lead-block h2,
  .single-content .kas-lead-block h2 {
    margin: 0;
    max-width: 15em;
  }

  .page-content .kas-lead-block p,
  .single-content .kas-lead-block p {
    grid-column: 1;
    max-width: 52rem;
  }

  .page-content .kas-lead-block h2 + p,
  .single-content .kas-lead-block h2 + p {
    margin-top: 0.2rem;
  }

  .page-content .kas-chapter,
  .single-content .kas-chapter {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(1.8rem, 3.2vw, 3rem);
    align-items: start;
    padding: clamp(4.5rem, 8vw, 7rem) 0 clamp(4rem, 7vw, 6.25rem);
  }

  .page-content .kas-chapter > *,
  .single-content .kas-chapter > * {
    margin-top: 0;
  }

  .page-content .kas-chapter > .kas-section-heading,
  .single-content .kas-chapter > .kas-section-heading {
    position: static;
    top: auto;
    grid-column: 1;
    align-self: start;
    width: 100%;
    max-width: none;
    padding-right: 0;
  }

  .page-content .kas-chapter > :not(.kas-section-heading),
  .single-content .kas-chapter > :not(.kas-section-heading) {
    grid-column: 1;
    min-width: 0;
    width: 100%;
    max-width: none;
  }

  .page-content .kas-chapter,
  .single-content .kas-chapter {
    display: grid;
  }

  .page-content .kas-chapter > .wp-block-group__inner-container,
  .single-content .kas-chapter > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(1.8rem, 3.2vw, 3rem);
    align-items: start;
  }

  .page-content .kas-chapter > .wp-block-group__inner-container > *,
  .single-content .kas-chapter > .wp-block-group__inner-container > * {
    margin-top: 0;
  }

  .page-content .kas-chapter > .wp-block-group__inner-container > .kas-section-heading,
  .single-content .kas-chapter > .wp-block-group__inner-container > .kas-section-heading {
    position: static;
    top: auto;
    grid-column: 1;
    align-self: start;
    width: 100%;
    max-width: none;
    padding-right: 0;
  }

  .page-content .kas-chapter > .wp-block-group__inner-container > :not(.kas-section-heading),
  .single-content .kas-chapter > .wp-block-group__inner-container > :not(.kas-section-heading) {
    grid-column: 1;
    min-width: 0;
    width: 100%;
    max-width: none;
  }

}

@media (min-width: 961px) {
  .page-content .kas-chapter--stacked > .wp-block-group__inner-container,
  .single-content .kas-chapter--stacked > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
    row-gap: clamp(2.2rem, 4vw, 3.6rem);
  }

  .page-content .kas-chapter--stacked > .wp-block-group__inner-container > .kas-section-heading,
  .single-content .kas-chapter--stacked > .wp-block-group__inner-container > .kas-section-heading {
    position: static;
    grid-column: 1;
    width: 100%;
    max-width: none;
    padding-right: 0;
  }

  .page-content .kas-chapter--stacked > .wp-block-group__inner-container > :not(.kas-section-heading),
  .single-content .kas-chapter--stacked > .wp-block-group__inner-container > :not(.kas-section-heading) {
    grid-column: 1;
    width: 100%;
    max-width: none;
  }

  .page-content .kas-chapter--location-access > .wp-block-group__inner-container,
  .single-content .kas-chapter--location-access > .wp-block-group__inner-container {
    grid-template-columns: 1fr;
    row-gap: clamp(2rem, 3.2vw, 3rem);
  }

  .page-content .kas-chapter--location-access > .wp-block-group__inner-container > .kas-section-heading,
  .single-content .kas-chapter--location-access > .wp-block-group__inner-container > .kas-section-heading {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    padding-right: 0;
  }

  .page-content .kas-chapter--location-access > .wp-block-group__inner-container > .kas-access-map,
  .single-content .kas-chapter--location-access > .wp-block-group__inner-container > .kas-access-map {
    grid-column: 1;
    margin-top: 0;
  }

  .page-content .kas-chapter--location-access > .wp-block-group__inner-container > .kas-info-cards,
  .single-content .kas-chapter--location-access > .wp-block-group__inner-container > .kas-info-cards {
    grid-column: 1;
    margin-top: 0;
    align-self: stretch;
  }

  .page-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-columns,
  .single-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.page-content .kas-lead-block--illustrated,
.single-content .kas-lead-block--illustrated {
  display: block;
  max-width: 100%;
}

.page-content .kas-lead-block--illustrated > .wp-block-group__inner-container,
.single-content .kas-lead-block--illustrated > .wp-block-group__inner-container {
  display: grid;
  gap: clamp(1.4rem, 2.6vw, 2.4rem);
  align-items: center;
}

.page-content .kas-lead-block--illustrated h2,
.single-content .kas-lead-block--illustrated h2,
.page-content .kas-lead-block--illustrated p,
.single-content .kas-lead-block--illustrated p {
  max-width: 100%;
}

.page-content .kas-lead-block--illustrated h2,
.single-content .kas-lead-block--illustrated h2 {
  font-size: clamp(2.05rem, 3.4vw, 3.15rem);
  letter-spacing: 0.04em;
}

.page-content .kas-lead-block--illustrated .kas-lead-block__visual,
.single-content .kas-lead-block--illustrated .kas-lead-block__visual {
  margin: clamp(1.4rem, 3vw, 2.4rem) 0 0;
}

.page-content .kas-lead-block--illustrated .kas-lead-block__visual img,
.single-content .kas-lead-block--illustrated .kas-lead-block__visual img {
  display: block;
  width: min(100%, 36rem);
  margin-inline: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

@media (min-width: 961px) {
  .page-content .kas-lead-block--illustrated > .wp-block-group__inner-container,
  .single-content .kas-lead-block--illustrated > .wp-block-group__inner-container {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(3rem, 6vw, 6.5rem);
  }

  .page-content .kas-lead-block--illustrated h2,
  .single-content .kas-lead-block--illustrated h2,
  .page-content .kas-lead-block--illustrated p,
  .single-content .kas-lead-block--illustrated p {
    grid-column: 1;
  }

  .page-content .kas-lead-block--illustrated h2,
  .single-content .kas-lead-block--illustrated h2 {
    max-width: 12.5em;
  }

  .page-content .kas-lead-block--illustrated .kas-lead-block__visual,
  .single-content .kas-lead-block--illustrated .kas-lead-block__visual {
    grid-column: 2;
    grid-row: 1 / span 3;
    justify-self: end;
    width: 100%;
    margin: 0;
  }

  .page-content .kas-lead-block--illustrated .kas-lead-block__visual img,
  .single-content .kas-lead-block--illustrated .kas-lead-block__visual img {
    width: min(100%, 40rem);
    margin-inline: auto 0;
  }
}

/* 章番号付きエンブレム（任意） */
.page-content .kas-chapter--numbered::after,
.single-content .kas-chapter--numbered::after {
  content: "Ch." counter(kas-chapter, decimal-leading-zero);
  position: absolute;
  top: clamp(1.6rem, 3vw, 2.4rem);
  right: 0;
  color: var(--text-muted);
  font-family: var(--font-family-heading);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
}

/* ---- 装飾アイブラウ ---- */
.page-content .kas-eyebrow,
.single-content .kas-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0;
  padding: 0;
  color: var(--accent-strong);
  font-family: var(--font-family-heading);
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.18em;
}

/* ---- 装飾見出し is-style-kas-display / kas-display-heading ---- */
.page-content h2.is-style-kas-display,
.single-content h2.is-style-kas-display,
.page-content h3.is-style-kas-display,
.single-content h3.is-style-kas-display,
.page-content .kas-display-heading,
.single-content .kas-display-heading {
  position: relative;
  margin-top: clamp(1rem, 2vw, 1.5rem);
  margin-bottom: clamp(1.4rem, 2.4vw, 2.2rem);
  font-family: var(--font-family-heading);
  font-weight: 500;
  letter-spacing: 0.04em;
}

.page-content .kas-section-heading h2.is-style-kas-display,
.single-content .kas-section-heading h2.is-style-kas-display,
.page-content .kas-section-heading h3.is-style-kas-display,
.single-content .kas-section-heading h3.is-style-kas-display {
  margin: 0;
  padding-bottom: clamp(0.9rem, 1.8vw, 1.35rem);
  border-bottom: 1px solid rgba(var(--accent-rgb), 0.22);
  font-size: clamp(1.45rem, 1.85vw, 2rem);
  line-height: 1.62;
  letter-spacing: 0.08em;
  text-wrap: pretty;
}

.page-content .kas-display-heading--center,
.single-content .kas-display-heading--center {
  text-align: center;
}

/* ---- 装飾オーナメント（章間の区切り） ---- */
.page-content .kas-ornament,
.single-content .kas-ornament {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.4rem;
  margin: clamp(2rem, 4vw, 3.4rem) 0;
  color: var(--accent);
}

.page-content .kas-ornament::before,
.page-content .kas-ornament::after,
.single-content .kas-ornament::before,
.single-content .kas-ornament::after {
  content: "";
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--accent-rgb), 0), rgba(var(--accent-rgb), 0.4));
}

.page-content .kas-ornament::after,
.single-content .kas-ornament::after {
  background: linear-gradient(90deg, rgba(var(--accent-rgb), 0.4), rgba(var(--accent-rgb), 0));
}

.page-content .kas-ornament__mark,
.single-content .kas-ornament__mark {
  width: 1.4rem;
  height: 1.4rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  position: relative;
}

.page-content .kas-ornament__mark::before,
.single-content .kas-ornament__mark::before {
  content: "";
  position: absolute;
  inset: 25%;
  background: currentColor;
  border-radius: 999px;
}

/* ---- アイコンカード kas-icon-cards ---- */
.page-content .kas-icon-cards,
.single-content .kas-icon-cards {
  display: grid;
  gap: clamp(1rem, 2vw, 1.6rem);
}

.page-content .kas-icon-cards .wp-block-columns,
.single-content .kas-icon-cards .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  gap: clamp(1.5rem, 2.6vw, 2.4rem);
  margin-block: 0;
}

.page-content .kas-icon-cards .wp-block-column,
.single-content .kas-icon-cards .wp-block-column {
  position: relative;
  display: grid;
  align-content: start;
  gap: 1rem;
  padding: clamp(2.2rem, 3.4vw, 2.8rem) clamp(1.6rem, 2.4vw, 2rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 0;
  border-radius: var(--radius-card);
  box-shadow: 0 14px 40px rgba(var(--rgb-ink), 0.045);
  transition: transform var(--transition), box-shadow var(--transition);
  overflow: hidden;
}

.page-content .kas-icon-cards .wp-block-column::before,
.single-content .kas-icon-cards .wp-block-column::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), rgba(var(--accent-rgb), 0));
  opacity: 0.85;
}

.page-content .kas-icon-cards .wp-block-column:hover,
.single-content .kas-icon-cards .wp-block-column:hover {
  transform: none;
  box-shadow: 0 14px 40px rgba(var(--rgb-ink), 0.045);
}

.page-content .kas-icon-cards .wp-block-image,
.single-content .kas-icon-cards .wp-block-image {
  margin: 0 0 0.4rem;
  width: 4.6rem;
  height: 4.6rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(var(--accent-rgb), 0.08);
}

.page-content .kas-icon-cards .wp-block-image img,
.single-content .kas-icon-cards .wp-block-image img {
  width: 3.4rem;
  height: 3.4rem;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.page-content .kas-icon-cards h3,
.single-content .kas-icon-cards h3 {
  margin: 0;
  font-family: var(--font-family-heading);
  font-size: clamp(1.12rem, 1.5vw, 1.32rem);
  line-height: 1.5;
}

.page-content .kas-icon-cards p,
.single-content .kas-icon-cards p {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.96rem;
  line-height: 1.95;
}

.page-content .kas-icon-cards .wp-block-list,
.single-content .kas-icon-cards .wp-block-list,
.page-content .kas-icon-cards ul,
.single-content .kas-icon-cards ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text-soft);
  font-size: 0.94rem;
  line-height: 1.95;
}

.page-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-column,
.single-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-column,
.page-content .kas-field-cards .wp-block-column,
.single-content .kas-field-cards .wp-block-column {
  --kas-feature-card-pad-x: clamp(1.4rem, 2.2vw, 1.9rem);

  grid-template-rows: auto auto 1fr;
  gap: 0.95rem;
  padding: 0 var(--kas-feature-card-pad-x) clamp(1.8rem, 3vw, 2.25rem);
}

.page-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-column::before,
.single-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-column::before,
.page-content .kas-field-cards .wp-block-column::before,
.single-content .kas-field-cards .wp-block-column::before {
  display: none;
}

.page-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-image,
.single-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-image,
.page-content .kas-field-cards .wp-block-image,
.single-content .kas-field-cards .wp-block-image {
  display: block;
  width: calc(100% + var(--kas-feature-card-pad-x) + var(--kas-feature-card-pad-x));
  height: clamp(9.5rem, 15vw, 12.5rem);
  margin: 0 calc(-1 * var(--kas-feature-card-pad-x)) 0.65rem;
  border-radius: var(--radius-card) var(--radius-card) 0 0;
  background: linear-gradient(180deg, rgba(var(--rgb-white), 0.84), rgba(var(--rgb-paper), 0.5));
  overflow: hidden;
}

.page-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-image img,
.single-content .kas-chapter--three-strengths .kas-icon-cards .wp-block-image img,
.page-content .kas-field-cards .wp-block-image img,
.single-content .kas-field-cards .wp-block-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* ---- 学び方リスト / 講師カード ---- */
.page-content .kas-method-list,
.single-content .kas-method-list,
.page-content .kas-teacher-cards,
.single-content .kas-teacher-cards {
  width: 100%;
}

.page-content .kas-method-list__items,
.single-content .kas-method-list__items {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
}

.page-content .kas-chapter--learning-methods .kas-method-list__items,
.single-content .kas-chapter--learning-methods .kas-method-list__items {
  border-top: 0;
}

.page-content .kas-method-list__item,
.single-content .kas-method-list__item {
  display: grid;
  grid-template-columns: minmax(16rem, 0.42fr) minmax(0, 1fr);
  gap: clamp(1.4rem, 3vw, 3rem);
  align-items: center;
  padding: clamp(1.6rem, 3vw, 2.5rem) 0;
  border-bottom: 1px solid var(--line);
}

.page-content .kas-method-list__photo,
.single-content .kas-method-list__photo {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-small);
  background: rgba(var(--accent-rgb), 0.08);
}

.page-content .kas-method-list__photo img,
.single-content .kas-method-list__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.page-content .kas-method-list__body,
.single-content .kas-method-list__body {
  display: grid;
  gap: clamp(0.65rem, 1.2vw, 1rem);
}

.page-content .kas-method-list__body h3,
.single-content .kas-method-list__body h3,
.page-content .kas-teacher-card h3,
.single-content .kas-teacher-card h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0;
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: clamp(1.22rem, 1.8vw, 1.55rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.03em;
}

.page-content .kas-method-list__body h3 small,
.single-content .kas-method-list__body h3 small {
  color: var(--text-muted);
  font-size: 0.72em;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.page-content .kas-method-list__body p,
.single-content .kas-method-list__body p {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.95;
}

.page-content .kas-method-list__link a,
.single-content .kas-method-list__link a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.7rem;
  padding: 0.64rem 1.1rem;
  color: #fff;
  font-family: var(--font-family-heading);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  background: var(--accent-strong);
  border-radius: var(--radius-small);
}

.page-content .kas-method-list__link a::after,
.single-content .kas-method-list__link a::after {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  margin-left: 0.55rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

.page-content .kas-teacher-cards__grid,
.single-content .kas-teacher-cards__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 1.8rem);
}

.page-content .kas-teacher-card,
.single-content .kas-teacher-card {
  overflow: hidden;
  background: rgba(var(--rgb-white), 0.78);
  border: 1px solid var(--line);
  border-radius: var(--radius-small);
}

.page-content .kas-teacher-card__photo,
.single-content .kas-teacher-card__photo {
  margin: 0;
  min-height: clamp(8.5rem, 16vw, 12rem);
  background:
    linear-gradient(135deg, rgba(var(--accent-rgb), 0.12), rgba(var(--rgb-white), 0.74) 56%, rgba(var(--rgb-blue), 0.12)),
    radial-gradient(circle at 18% 20%, rgba(var(--rgb-white), 0.9), transparent 36%);
  border-bottom: 1px solid var(--line);
}

.page-content .kas-teacher-card__photo img,
.single-content .kas-teacher-card__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.page-content .kas-teacher-card__body,
.single-content .kas-teacher-card__body {
  display: grid;
  gap: 0.65rem;
  margin-top: 0;
  margin-block-start: 0;
  padding: clamp(1.2rem, 2vw, 1.55rem);
}

.page-content .kas-teacher-card__position,
.single-content .kas-teacher-card__position {
  margin: -0.3rem 0 0;
  color: var(--text-muted);
  font-size: 0.92rem;
  line-height: 1.65;
}

.page-content .kas-teacher-card__label,
.single-content .kas-teacher-card__label {
  margin: 0.35rem 0 -0.3rem;
  color: var(--accent-strong);
  font-family: var(--font-family-heading);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.page-content .kas-teacher-card ul,
.single-content .kas-teacher-card ul {
  display: grid;
  gap: 0.28rem;
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text-soft);
  font-size: 0.92rem;
  line-height: 1.65;
}

.page-content .kas-teacher-card__qualifications,
.single-content .kas-teacher-card__qualifications {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.92rem;
  line-height: 1.7;
}

/* ---- 生徒の声 ---- */
.page-content .kas-student-voices,
.single-content .kas-student-voices {
  width: 100%;
}

.page-content .kas-student-voices__track,
.single-content .kas-student-voices__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(min(100%, 23rem), calc((100% - clamp(1.2rem, 2.2vw, 1.9rem)) / 2));
  gap: clamp(1.2rem, 2.2vw, 1.9rem);
  margin-inline: calc(-1 * min(0.35rem, 1vw));
  padding: 0.2rem min(0.35rem, 1vw) 1rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-padding-inline: min(0.35rem, 1vw);
  scroll-snap-type: x mandatory;
  scrollbar-color: rgba(var(--accent-rgb), 0.38) rgba(var(--accent-rgb), 0.08);
  scrollbar-width: thin;
}

.page-content .kas-student-voice,
.single-content .kas-student-voice {
  --kas-voice-accent: 0, 112, 184;
  --kas-voice-ink: #0b5f98;
  display: grid;
  grid-template-columns: clamp(4.3rem, 5.6vw, 5.2rem) minmax(0, 1fr);
  gap: clamp(0.85rem, 1.6vw, 1.2rem);
  align-items: start;
  scroll-snap-align: start;
}

.page-content .kas-student-voice:nth-child(even),
.single-content .kas-student-voice:nth-child(even) {
  margin-top: 0;
}

.page-content .kas-student-voice--female-a,
.single-content .kas-student-voice--female-a {
  --kas-voice-accent: 0, 139, 178;
  --kas-voice-ink: #0d6f8f;
}

.page-content .kas-student-voice--male-a,
.single-content .kas-student-voice--male-a {
  --kas-voice-accent: 11, 95, 152;
  --kas-voice-ink: #0b5f98;
}

.page-content .kas-student-voice--female-b,
.single-content .kas-student-voice--female-b {
  --kas-voice-accent: 92, 148, 108;
  --kas-voice-ink: #457957;
}

.page-content .kas-student-voice--male-b,
.single-content .kas-student-voice--male-b {
  --kas-voice-accent: 184, 131, 45;
  --kas-voice-ink: #9a6720;
}

.page-content .kas-student-voice__avatar,
.single-content .kas-student-voice__avatar {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid rgba(var(--kas-voice-accent), 0.22);
  border-radius: 50%;
  background:
    radial-gradient(circle at 34% 24%, rgba(var(--rgb-white), 0.96), rgba(var(--rgb-white), 0) 34%),
    linear-gradient(145deg, rgba(var(--kas-voice-accent), 0.18), rgba(var(--rgb-white), 0.86) 58%, rgba(var(--kas-voice-accent), 0.09));
  box-shadow: 0 12px 30px rgba(var(--kas-voice-accent), 0.12);
}

.page-content .kas-student-voice__avatar::before,
.single-content .kas-student-voice__avatar::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: 28%;
  left: 50%;
  width: 27%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--kas-voice-ink);
  transform: translateX(-50%);
  box-shadow: inset 0 0 0 999px rgba(var(--rgb-white), 0.14);
}

.page-content .kas-student-voice__avatar::after,
.single-content .kas-student-voice__avatar::after {
  content: "";
  position: absolute;
  z-index: 1;
  right: 23%;
  bottom: 20%;
  left: 23%;
  height: 30%;
  border-radius: 50% 50% var(--radius-small) var(--radius-small);
  background: var(--kas-voice-ink);
  box-shadow: inset 0 0 0 999px rgba(var(--rgb-white), 0.2);
}

.page-content .kas-student-voice__avatar > .wp-block-group__inner-container,
.single-content .kas-student-voice__avatar > .wp-block-group__inner-container {
  display: none;
}

.page-content .kas-student-voice__avatar .wp-block-group__inner-container::before,
.single-content .kas-student-voice__avatar .wp-block-group__inner-container::before,
.page-content .kas-student-voice__avatar > div::before,
.single-content .kas-student-voice__avatar > div::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 22%;
  left: 50%;
  width: 39%;
  height: 34%;
  border-radius: 50% 50% 45% 45%;
  background: rgba(var(--kas-voice-accent), 0.28);
  transform: translateX(-50%);
}

.page-content .kas-student-voice__avatar .wp-block-group__inner-container::after,
.single-content .kas-student-voice__avatar .wp-block-group__inner-container::after,
.page-content .kas-student-voice__avatar > div::after,
.single-content .kas-student-voice__avatar > div::after {
  content: "";
  position: absolute;
  z-index: 3;
  right: 18%;
  bottom: 16%;
  left: 18%;
  height: 10%;
  border-radius: 999px;
  background: rgba(var(--rgb-white), 0.68);
}

.page-content .kas-student-voice--male .kas-student-voice__avatar .wp-block-group__inner-container::before,
.single-content .kas-student-voice--male .kas-student-voice__avatar .wp-block-group__inner-container::before,
.page-content .kas-student-voice--male .kas-student-voice__avatar > div::before,
.single-content .kas-student-voice--male .kas-student-voice__avatar > div::before {
  top: 26%;
  width: 31%;
  height: 13%;
  border-radius: 999px 999px 45% 45%;
  background: rgba(var(--kas-voice-accent), 0.34);
}

.page-content .kas-student-voice__bubble,
.single-content .kas-student-voice__bubble {
  position: relative;
  min-height: 100%;
  padding: clamp(1.15rem, 2vw, 1.55rem);
  background: rgba(var(--rgb-white), 0.88);
  border: 1px solid rgba(var(--kas-voice-accent), 0.18);
  border-radius: var(--radius-card);
  box-shadow: 0 16px 42px rgba(var(--rgb-ink), 0.055);
}

.page-content .kas-student-voice__bubble::before,
.single-content .kas-student-voice__bubble::before {
  content: "";
  position: absolute;
  top: 1.65rem;
  left: -0.5rem;
  width: 0.95rem;
  height: 0.95rem;
  background: rgba(var(--rgb-white), 0.88);
  border-bottom: 1px solid rgba(var(--kas-voice-accent), 0.18);
  border-left: 1px solid rgba(var(--kas-voice-accent), 0.18);
  transform: rotate(45deg);
}

.page-content .kas-student-voice__body,
.single-content .kas-student-voice__body {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.96rem;
  line-height: 1.95;
}

.page-content .kas-student-voice__meta,
.single-content .kas-student-voice__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin: 1rem 0 0;
  color: var(--text-muted);
  font-size: 0.86rem;
  line-height: 1.5;
}

.page-content .kas-student-voice__initial,
.single-content .kas-student-voice__initial {
  margin: 0;
  color: var(--kas-voice-ink);
  font-family: var(--font-family-heading);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.page-content .kas-student-voice__role,
.single-content .kas-student-voice__role {
  margin: 0;
  padding: 0.12rem 0.5rem;
  color: var(--kas-voice-ink);
  font-weight: 700;
  background: rgba(var(--kas-voice-accent), 0.1);
  border-radius: var(--radius-small);
}

body.is-dark .page-content .kas-student-voice__avatar,
body.is-dark .single-content .kas-student-voice__avatar {
  border-color: rgba(var(--kas-voice-accent), 0.34);
  background:
    radial-gradient(circle at 34% 24%, rgba(var(--rgb-white), 0.28), rgba(var(--rgb-white), 0) 34%),
    linear-gradient(145deg, rgba(var(--kas-voice-accent), 0.28), rgba(7, 28, 54, 0.88) 62%, rgba(var(--kas-voice-accent), 0.13));
  box-shadow: 0 16px 36px rgba(0, 10, 44, 0.26);
}

body.is-dark .page-content .kas-student-voice__bubble,
body.is-dark .single-content .kas-student-voice__bubble {
  background: rgba(6, 28, 52, 0.82);
  border-color: rgba(var(--kas-voice-accent), 0.28);
  box-shadow: 0 18px 46px rgba(0, 10, 44, 0.28);
}

body.is-dark .page-content .kas-student-voice__bubble::before,
body.is-dark .single-content .kas-student-voice__bubble::before {
  background: rgba(6, 28, 52, 0.82);
  border-color: rgba(var(--kas-voice-accent), 0.28);
}

body.is-dark .page-content .kas-student-voice__body,
body.is-dark .single-content .kas-student-voice__body,
body.is-dark .page-content .kas-student-voice__meta,
body.is-dark .single-content .kas-student-voice__meta {
  color: rgba(var(--rgb-frost), 0.84);
}

.page-content .kas-learning-schedule-figure img,
.single-content .kas-learning-schedule-figure img {
  width: 100%;
  aspect-ratio: 16 / 7;
  object-fit: cover;
  object-position: center;
}

/* ---- ステップフロー kas-step-flow ---- */
.page-content .kas-step-flow,
.single-content .kas-step-flow {
  display: grid;
  gap: clamp(1.4rem, 2.4vw, 2.2rem);
}

.page-content .kas-step-flow .wp-block-columns,
.single-content .kas-step-flow .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
  gap: clamp(1.4rem, 2.6vw, 2.2rem);
  margin-block: 0;
  counter-reset: kas-step-flow;
}

.page-content .kas-step-flow .wp-block-column,
.single-content .kas-step-flow .wp-block-column {
  position: relative;
  display: grid;
  gap: 0.9rem;
  padding: clamp(2.4rem, 3.6vw, 2.9rem) clamp(1.6rem, 2.4vw, 2rem) clamp(1.8rem, 3vw, 2.2rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  counter-increment: kas-step-flow;
}

.page-content .kas-step-flow .wp-block-column::before,
.single-content .kas-step-flow .wp-block-column::before {
  content: "STEP " counter(kas-step-flow, decimal-leading-zero);
  position: absolute;
  top: 1rem;
  left: 1.4rem;
  display: inline-flex;
  align-items: center;
  padding: 0.32rem 0.72rem;
  background: var(--accent);
  color: var(--text-inverse);
  border-radius: 999px;
  font-family: var(--font-family-heading);
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.16em;
}

.page-content .kas-step-flow .wp-block-image,
.single-content .kas-step-flow .wp-block-image {
  margin-top: 0.6rem;
  width: 3.6rem;
  height: 3.6rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(var(--accent-rgb), 0.07);
}

.page-content .kas-step-flow .wp-block-image img,
.single-content .kas-step-flow .wp-block-image img {
  width: 2.6rem;
  height: 2.6rem;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.page-content .kas-step-flow h3,
.single-content .kas-step-flow h3 {
  margin: 0.4rem 0 0;
  font-family: var(--font-family-heading);
  font-size: clamp(1.12rem, 1.5vw, 1.3rem);
}

.page-content .kas-step-flow p,
.single-content .kas-step-flow p {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.96rem;
}

/* ---- 横並びステップ列（admission の修了までの流れ用） ---- */
.page-content .kas-process-rail,
.single-content .kas-process-rail {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 1.4rem;
  padding: clamp(1.6rem, 3vw, 2.2rem) 0 0;
  margin: 0;
  list-style: none;
  counter-reset: kas-rail;
}

.page-content .kas-process-rail > li,
.single-content .kas-process-rail > li {
  position: relative;
  margin: 0;
  padding: 1.6rem 1rem 1.2rem;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  counter-increment: kas-rail;
  font-size: 0.96rem;
  text-align: left;
}

.page-content .kas-process-rail > li::before,
.single-content .kas-process-rail > li::before {
  content: counter(kas-rail, decimal-leading-zero);
  display: block;
  margin-bottom: 0.5rem;
  color: var(--accent-strong);
  font-family: var(--font-family-heading);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}

.page-content .kas-process-rail > li + li::after,
.single-content .kas-process-rail > li + li::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -0.95rem;
  width: 0.8rem;
  height: 1px;
  background: var(--line-strong);
}

/* ---- スケジュールタイムライン kas-schedule-timeline (旧 learning-schedule.png 用) ---- */
.page-content .kas-schedule-timeline,
.single-content .kas-schedule-timeline {
  position: relative;
  display: grid;
  gap: 0;
  margin: clamp(1.5rem, 3vw, 2.4rem) 0 0;
  padding: 0;
  list-style: none;
}

.page-content .kas-schedule-timeline > li,
.single-content .kas-schedule-timeline > li {
  position: relative;
  display: grid;
  grid-template-columns: minmax(7rem, 9rem) 1fr;
  align-items: start;
  gap: 0.6rem 2rem;
  padding: 1.5rem 0 1.6rem 1.5rem;
  border-top: 1px solid var(--line);
  list-style: none;
}

.page-content .kas-schedule-timeline > li::before,
.single-content .kas-schedule-timeline > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.85rem;
  width: 0.6rem;
  height: 0.6rem;
  background: var(--accent);
  border-radius: 999px;
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb), 0.12);
}

.page-content .kas-schedule-timeline > li::after,
.single-content .kas-schedule-timeline > li::after {
  content: "";
  position: absolute;
  left: 0.27rem;
  top: 2.5rem;
  bottom: -0.8rem;
  width: 1px;
  background: var(--line);
}

.page-content .kas-schedule-timeline > li:last-child::after,
.single-content .kas-schedule-timeline > li:last-child::after {
  display: none;
}

.kas-schedule-timeline__period {
  display: block;
  margin: 0;
  font-family: var(--font-family-heading);
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--accent-strong);
}

.kas-schedule-timeline__title {
  margin: 0;
  font-family: var(--font-family-heading);
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--text);
}

.kas-schedule-timeline__detail {
  margin: 0.2rem 0 0;
  color: var(--text-soft);
  font-size: 0.96rem;
}

/* ---- 比較表 kas-fee-table (旧 tuition-comparison.png 用) ---- */
.page-content .kas-fee-table,
.single-content .kas-fee-table {
  display: grid;
  gap: 1rem;
  margin-top: clamp(1.4rem, 2.6vw, 2.2rem);
}

.page-content .kas-fee-table table,
.single-content .kas-fee-table table {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

.page-content .kas-fee-table thead th,
.single-content .kas-fee-table thead th {
  background: var(--surface-muted);
  color: var(--text);
  font-family: var(--font-family-heading);
  font-weight: 500;
  letter-spacing: 0.05em;
}

.page-content .kas-fee-table tbody tr:nth-child(odd) td,
.single-content .kas-fee-table tbody tr:nth-child(odd) td {
  background: rgba(var(--rgb-paper), 0.34);
}

.page-content .kas-fee-table tbody td:last-child,
.single-content .kas-fee-table tbody td:last-child {
  font-family: var(--font-family-heading);
  font-weight: 500;
  color: var(--accent-strong);
  white-space: nowrap;
}

.page-content .kas-fee-table figcaption,
.single-content .kas-fee-table figcaption {
  color: var(--text-muted);
  font-size: 0.86rem;
}

/* ---- 添付図参照: 学費比較チャート ---- */
.page-content .kas-fee-chart,
.single-content .kas-fee-chart {
  --fee-purple: #9b84c6;
  --fee-purple-deep: #8369b4;
  --fee-green: #70c58f;
  --fee-green-deep: #59ad78;
  --fee-ink: #263042;
  --fee-line: #9b84c6;
  display: grid;
  gap: 0.9rem;
  margin-top: clamp(1.4rem, 2.6vw, 2.2rem);
}

.page-content .kas-fee-chart__figure,
.single-content .kas-fee-chart__figure {
  display: grid;
  gap: 0.9rem;
  margin: 0;
  overflow-x: auto;
  color: var(--fee-ink);
}

.page-content .kas-fee-chart__main,
.single-content .kas-fee-chart__main {
  display: grid;
  grid-template-columns: repeat(2, minmax(16rem, 1fr));
  min-width: 42rem;
  border: 2px solid var(--fee-line);
  border-radius: var(--radius);
  overflow: hidden;
  background: rgba(var(--rgb-white), 0.92);
}

.page-content .kas-fee-chart__header,
.single-content .kas-fee-chart__header,
.page-content .kas-fee-chart__total,
.single-content .kas-fee-chart__total {
  padding: 0.6rem 1rem;
  color: #fff;
  font-family: var(--font-family-heading);
  font-size: clamp(1.18rem, 2vw, 1.62rem);
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.35;
  text-align: center;
}

.page-content .kas-fee-chart__header--no-practice,
.single-content .kas-fee-chart__header--no-practice,
.page-content .kas-fee-chart__total--no-practice,
.single-content .kas-fee-chart__total--no-practice,
.page-content .kas-fee-chart__mini-label--no-practice,
.single-content .kas-fee-chart__mini-label--no-practice {
  background: var(--fee-purple);
}

.page-content .kas-fee-chart__header--practice,
.single-content .kas-fee-chart__header--practice,
.page-content .kas-fee-chart__total--practice,
.single-content .kas-fee-chart__total--practice,
.page-content .kas-fee-chart__mini-label--practice,
.single-content .kas-fee-chart__mini-label--practice {
  background: var(--fee-green);
}

.page-content .kas-fee-chart__cell,
.single-content .kas-fee-chart__cell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.45rem 1rem;
  border-top: 2px solid var(--fee-line);
  color: #343b46;
  font-family: var(--font-family-heading);
  font-size: clamp(1.05rem, 1.65vw, 1.35rem);
  line-height: 1.35;
  text-align: center;
}

.page-content .kas-fee-chart__cell:nth-child(even),
.single-content .kas-fee-chart__cell:nth-child(even) {
  border-left: 2px solid var(--fee-line);
}

.page-content .kas-fee-chart__cell--label,
.single-content .kas-fee-chart__cell--label {
  justify-content: center;
}

.page-content .kas-fee-chart__cell--value,
.single-content .kas-fee-chart__cell--value {
  font-size: clamp(1.35rem, 2.2vw, 1.9rem);
  letter-spacing: 0.04em;
}

.page-content .kas-fee-chart__cell--split,
.single-content .kas-fee-chart__cell--split {
  justify-content: space-between;
  gap: 1rem;
}

.page-content .kas-fee-chart__cell--split strong,
.single-content .kas-fee-chart__cell--split strong {
  font-size: clamp(1.2rem, 2vw, 1.7rem);
  font-weight: 600;
}

.page-content .kas-fee-chart__cell--empty,
.single-content .kas-fee-chart__cell--empty {
  overflow: hidden;
}

.page-content .kas-fee-chart__cell--empty::after,
.single-content .kas-fee-chart__cell--empty::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top right, transparent calc(50% - 1px), var(--fee-line) 50%, transparent calc(50% + 1px));
}

.page-content .kas-fee-chart__total,
.single-content .kas-fee-chart__total {
  border-top: 2px solid var(--fee-line);
  font-size: clamp(1.28rem, 2.2vw, 1.84rem);
}

.page-content .kas-fee-chart__total--practice,
.single-content .kas-fee-chart__total--practice {
  border-left: 2px solid var(--fee-line);
}

.page-content .kas-fee-chart__notes,
.single-content .kas-fee-chart__notes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 2rem;
  color: #343b46;
  font-size: 0.9rem;
  line-height: 1.65;
}

.page-content .kas-fee-chart__comparison-title,
.single-content .kas-fee-chart__comparison-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.7rem;
  margin: 0.1rem 0 0;
  color: #b44c24;
  font-family: var(--font-family-heading);
  font-size: clamp(1.12rem, 1.8vw, 1.5rem);
  font-weight: 700;
  line-height: 1.5;
}

.page-content .kas-fee-chart__comparison-title small,
.single-content .kas-fee-chart__comparison-title small {
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 500;
}

.page-content .kas-fee-chart__schools,
.single-content .kas-fee-chart__schools {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.4rem;
}

.page-content .kas-fee-chart__school,
.single-content .kas-fee-chart__school {
  display: grid;
  grid-template-columns: 4.2rem minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  border: 1px solid var(--line-strong);
  background: rgba(var(--rgb-white), 0.9);
}

.page-content .kas-fee-chart__school-name,
.single-content .kas-fee-chart__school-name {
  grid-row: span 2;
  display: grid;
  place-items: center;
  padding: 0.35rem;
  border-right: 1px solid var(--line-strong);
  color: #2b2f38;
  line-height: 1.1;
  text-align: center;
}

.page-content .kas-fee-chart__school-name strong,
.single-content .kas-fee-chart__school-name strong {
  display: block;
  font-size: 1.65rem;
  line-height: 1;
}

.page-content .kas-fee-chart__school-name small,
.single-content .kas-fee-chart__school-name small {
  display: block;
  font-size: 0.76rem;
}

.page-content .kas-fee-chart__mini-label,
.single-content .kas-fee-chart__mini-label {
  padding: 0.28rem 0.45rem;
  color: #fff;
  font-family: var(--font-family-heading);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
}

.page-content .kas-fee-chart__mini-price,
.single-content .kas-fee-chart__mini-price {
  padding: 0.42rem 0.45rem;
  color: #2c333d;
  font-family: var(--font-family-heading);
  font-size: clamp(1rem, 1.5vw, 1.32rem);
  line-height: 1.35;
  text-align: center;
  white-space: nowrap;
}

.page-content .kas-fee-chart__caption,
.single-content .kas-fee-chart__caption {
  color: var(--text-muted);
  font-size: 0.84rem;
  line-height: 1.75;
}

/* ---- ブロックエディタで編集できる学費表 ---- */
.page-content .kas-fee-block,
.single-content .kas-fee-block {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
}

.page-content .kas-fee-block__heading,
.single-content .kas-fee-block__heading {
  margin: clamp(2rem, 3.4vw, 3rem) 0 clamp(0.55rem, 1vw, 0.85rem);
  padding: 0;
  border: 0;
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: clamp(1.32rem, 2vw, 1.68rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

.page-content .kas-fee-block__summary,
.single-content .kas-fee-block__summary {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
  align-items: baseline;
  margin: 0 0 clamp(0.65rem, 1.3vw, 1rem);
  padding: clamp(0.82rem, 1.5vw, 1.08rem) clamp(0.95rem, 1.8vw, 1.35rem);
  color: var(--text);
  background: linear-gradient(90deg, rgba(var(--accent-rgb), 0.08), rgba(var(--rgb-white), 0));
  border-left: 4px solid var(--accent);
  border-radius: var(--radius-small);
}

.page-content .kas-fee-block__summary strong,
.single-content .kas-fee-block__summary strong {
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: clamp(1.04rem, 1.45vw, 1.22rem);
  font-weight: 700;
}

.page-content .kas-fee-block__summary span,
.single-content .kas-fee-block__summary span {
  color: var(--text-soft);
  line-height: 1.75;
}

.page-content .kas-fee-block__table,
.single-content .kas-fee-block__table {
  margin: 0;
  overflow-x: auto;
}

.page-content .kas-fee-block__table table,
.single-content .kas-fee-block__table table {
  width: 100%;
  min-width: 38rem;
  border-collapse: collapse;
  overflow: hidden;
  background: rgba(var(--rgb-white), 0.86);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
}

.page-content .kas-fee-block__table th,
.page-content .kas-fee-block__table td,
.single-content .kas-fee-block__table th,
.single-content .kas-fee-block__table td {
  padding: 0.82rem 1rem;
  color: var(--text);
  border: 1px solid var(--line);
  line-height: 1.65;
}

.page-content .kas-fee-block__table thead th,
.single-content .kas-fee-block__table thead th {
  color: #fff;
  background: var(--accent-strong);
  font-family: var(--font-family-heading);
  font-weight: 600;
  text-align: center;
}

.page-content .kas-fee-block__table thead th:first-child,
.single-content .kas-fee-block__table thead th:first-child {
  background: #7f8b95;
}

.page-content .kas-fee-block__table thead th:nth-child(2),
.single-content .kas-fee-block__table thead th:nth-child(2) {
  background: #8a78bd;
}

.page-content .kas-fee-block__table thead th:nth-child(3),
.single-content .kas-fee-block__table thead th:nth-child(3) {
  background: #61b884;
}

.page-content .kas-fee-block .kas-fee-block__table thead th,
.single-content .kas-fee-block .kas-fee-block__table thead th {
  color: #fff;
}

.page-content .kas-fee-block__table tbody td:not(:first-child),
.single-content .kas-fee-block__table tbody td:not(:first-child) {
  font-family: var(--font-family-heading);
  font-size: clamp(1rem, 1.4vw, 1.18rem);
  text-align: right;
  white-space: nowrap;
}

.page-content .kas-fee-block__table--main tbody tr:last-child td,
.single-content .kas-fee-block__table--main tbody tr:last-child td {
  color: var(--accent-deep);
  background: rgba(var(--accent-rgb), 0.07);
  font-weight: 700;
}

.page-content .kas-fee-block__table--comparison tbody tr:first-child td,
.single-content .kas-fee-block__table--comparison tbody tr:first-child td {
  color: var(--accent-deep);
  background: rgba(var(--accent-rgb), 0.045);
  font-weight: 700;
}

.page-content .kas-fee-block__notes,
.single-content .kas-fee-block__notes {
  display: grid;
  gap: 0.08rem;
  margin: clamp(0.45rem, 1vw, 0.75rem) 0 0;
  padding-left: 1.25rem;
  color: var(--text-soft);
  font-size: 0.92rem;
  line-height: 1.45;
}

.page-content .kas-fee-block__notes li,
.single-content .kas-fee-block__notes li {
  margin: 0;
}

.page-content .kas-fee-block__lead,
.single-content .kas-fee-block__lead {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.7rem;
  margin: 0 0 clamp(0.45rem, 1vw, 0.85rem);
  color: #b44c24;
  font-family: var(--font-family-heading);
  font-size: clamp(1.08rem, 1.7vw, 1.38rem);
  font-weight: 700;
  line-height: 1.55;
}

.page-content .kas-fee-block__lead small,
.single-content .kas-fee-block__lead small,
.page-content .kas-fee-block__table figcaption,
.single-content .kas-fee-block__table figcaption {
  color: var(--text-muted);
  font-size: 0.82rem;
  font-weight: 500;
}

/* ---- 強調カラム比較（4月生 / 10月生） ---- */
.page-content .kas-compare-cards .wp-block-columns,
.single-content .kas-compare-cards .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 1.9vw, 1.5rem);
  margin-block: 0;
}

.page-content .kas-compare-cards .wp-block-column,
.single-content .kas-compare-cards .wp-block-column {
  position: relative;
  --intake-accent: var(--accent);
  --intake-accent-soft: rgba(var(--accent-rgb), 0.08);
  overflow: hidden;
  padding: 0;
  background: rgba(var(--rgb-white), 0.88);
  border: 1px solid rgba(var(--accent-rgb), 0.16);
  border-radius: var(--radius-card);
  display: grid;
  gap: 0;
  box-shadow: 0 14px 34px rgba(var(--rgb-blue), 0.06);
}

.page-content .kas-compare-cards .wp-block-column:nth-child(2),
.single-content .kas-compare-cards .wp-block-column:nth-child(2) {
  --intake-accent: #4d99a4;
  --intake-accent-soft: rgba(77, 153, 164, 0.1);
}

.page-content .kas-compare-cards .wp-block-column > *,
.single-content .kas-compare-cards .wp-block-column > *,
.page-content .kas-compare-cards__header,
.single-content .kas-compare-cards__header,
.page-content .kas-compare-cards__list,
.single-content .kas-compare-cards__list,
.page-content .kas-compare-cards__row,
.single-content .kas-compare-cards__row {
  margin-block: 0;
}

.page-content .kas-compare-cards__header,
.single-content .kas-compare-cards__header {
  position: relative;
  display: grid;
  gap: 0.28rem;
  padding: clamp(1rem, 1.8vw, 1.35rem) clamp(1.25rem, 2vw, 1.65rem) clamp(0.95rem, 1.6vw, 1.25rem);
  background:
    linear-gradient(90deg, var(--intake-accent-soft), rgba(var(--rgb-white), 0.55)),
    rgba(var(--rgb-white), 0.72);
  border-bottom: 1px solid rgba(var(--accent-rgb), 0.1);
}

.page-content .kas-compare-cards__header::before,
.single-content .kas-compare-cards__header::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 0.28rem;
  background: var(--intake-accent);
}

.page-content .kas-compare-cards__eyebrow,
.single-content .kas-compare-cards__eyebrow {
  margin: 0;
  color: var(--intake-accent);
  font-family: var(--font-family-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.4;
}

.page-content .kas-compare-cards .wp-block-column h3,
.single-content .kas-compare-cards .wp-block-column h3 {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--text);
  font-family: var(--font-family-heading);
  font-size: clamp(1.45rem, 2vw, 1.82rem);
  line-height: 1.28;
}

.page-content .kas-compare-cards__list,
.single-content .kas-compare-cards__list {
  margin: 0;
  padding-left: 0;
  list-style: none;
  display: grid;
  gap: 0;
}

.page-content .kas-compare-cards__row,
.single-content .kas-compare-cards__row,
.page-content .kas-compare-cards__list li,
.single-content .kas-compare-cards__list li {
  display: grid;
  grid-template-columns: minmax(6.2rem, 0.36fr) minmax(0, 1fr);
  gap: clamp(0.75rem, 1.5vw, 1rem);
  align-items: baseline;
  padding: clamp(0.82rem, 1.4vw, 1rem) clamp(1.25rem, 2vw, 1.65rem);
  border-top: 1px solid rgba(var(--accent-rgb), 0.1);
  color: var(--text-soft);
  font-size: 0.96rem;
}

.page-content .kas-compare-cards__row:first-child,
.single-content .kas-compare-cards__row:first-child,
.page-content .kas-compare-cards__list li:first-child,
.single-content .kas-compare-cards__list li:first-child {
  background: rgba(var(--accent-rgb), 0.045);
}

.page-content .kas-compare-cards__term,
.single-content .kas-compare-cards__term {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.55;
}

.page-content .kas-compare-cards__value,
.single-content .kas-compare-cards__value {
  margin: 0;
  color: var(--text);
  font-weight: 700;
  line-height: 1.65;
}

@media (max-width: 760px) {
  .page-content .kas-compare-cards .wp-block-columns,
  .single-content .kas-compare-cards .wp-block-columns {
    grid-template-columns: 1fr;
  }

  .page-content .kas-compare-cards__row,
  .single-content .kas-compare-cards__row,
  .page-content .kas-compare-cards__list li,
  .single-content .kas-compare-cards__list li {
    grid-template-columns: 1fr;
    gap: 0.3rem;
  }
}

/* ---- 情報パネル kas-info-cards（所在地・連絡先など） ---- */
.page-content .kas-info-cards .wp-block-columns,
.single-content .kas-info-cards .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: clamp(1.4rem, 2.4vw, 2rem);
  margin-block: 0;
}

.page-content .kas-info-cards--stacked .wp-block-columns,
.single-content .kas-info-cards--stacked .wp-block-columns {
  grid-template-columns: 1fr;
}

.page-content .kas-info-cards .wp-block-column,
.single-content .kas-info-cards .wp-block-column {
  position: relative;
  display: grid;
  align-content: start;
  gap: 0.8rem;
  padding: clamp(1.6rem, 2.6vw, 2.2rem);
  background: rgba(var(--rgb-paper), 0.4);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.page-content .kas-info-cards .wp-block-image,
.single-content .kas-info-cards .wp-block-image {
  margin: 0;
  width: 3rem;
  height: 3rem;
}

.page-content .kas-info-cards .wp-block-image img,
.single-content .kas-info-cards .wp-block-image img {
  width: 3rem;
  height: 3rem;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.page-content .kas-info-cards h3,
.single-content .kas-info-cards h3 {
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--text);
  font-family: var(--font-family-heading);
  font-size: 1.05rem;
  letter-spacing: 0.06em;
}

.page-content .kas-info-cards p,
.single-content .kas-info-cards p {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.96rem;
  line-height: 1.95;
}

.page-content .kas-chapter--location-access .kas-info-cards--stacked .wp-block-columns,
.single-content .kas-chapter--location-access .kas-info-cards--stacked .wp-block-columns {
  gap: 0;
}

.page-content .kas-chapter--location-access .kas-info-cards--stacked .wp-block-column,
.single-content .kas-chapter--location-access .kas-info-cards--stacked .wp-block-column {
  gap: 0.45rem;
  padding: clamp(1rem, 2vw, 1.35rem) 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
}

.page-content .kas-chapter--location-access .kas-info-cards--stacked h3,
.single-content .kas-chapter--location-access .kas-info-cards--stacked h3 {
  color: var(--accent-deep);
}

.page-content .kas-chapter--location-access .kas-info-cards--stacked p,
.single-content .kas-chapter--location-access .kas-info-cards--stacked p {
  line-height: 1.7;
}

.page-content .kas-info-cards--line-list .wp-block-columns,
.single-content .kas-info-cards--line-list .wp-block-columns {
  gap: 0;
  border-top: 1px solid var(--line);
}

.page-content .kas-info-cards--line-list .wp-block-column,
.single-content .kas-info-cards--line-list .wp-block-column {
  grid-template-columns: minmax(13rem, 0.34fr) minmax(0, 1fr);
  column-gap: clamp(1.5rem, 3vw, 3rem);
  align-items: start;
  padding: clamp(1.15rem, 2.1vw, 1.55rem) 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  box-shadow: none;
}

.page-content .kas-info-cards--line-list h3,
.single-content .kas-info-cards--line-list h3 {
  color: var(--accent-deep);
  font-size: clamp(1.05rem, 1.25vw, 1.22rem);
  font-weight: 700;
}

.page-content .kas-info-cards--line-list p,
.single-content .kas-info-cards--line-list p {
  line-height: 1.85;
}

.page-content .kas-support-programs,
.single-content .kas-support-programs {
  display: grid;
  gap: clamp(1.4rem, 3vw, 2rem);
}

.page-content .kas-support-programs__items,
.single-content .kas-support-programs__items {
  display: grid;
  gap: 0;
}

.page-content .kas-support-programs__item,
.single-content .kas-support-programs__item {
  display: grid;
  grid-template-columns: minmax(11rem, 0.28fr) minmax(0, 1fr);
  gap: 1.2rem clamp(1.5rem, 3vw, 3rem);
  margin-block: 0;
  padding: clamp(1.25rem, 2.5vw, 1.8rem) 0;
  border-bottom: 1px solid var(--line);
}

.page-content .kas-support-programs__item > .kas-support-programs__term,
.single-content .kas-support-programs__item > .kas-support-programs__term,
.page-content .kas-support-programs__item > .kas-support-programs__body,
.single-content .kas-support-programs__item > .kas-support-programs__body {
  margin-block: 0;
}

.page-content .kas-support-programs__term,
.single-content .kas-support-programs__term {
  display: grid;
  align-content: start;
  gap: 0.45rem;
  padding-left: 1rem;
  border-left: 0.35rem solid var(--accent);
}

.page-content .kas-support-programs__term h4,
.single-content .kas-support-programs__term h4 {
  margin: 0;
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-size: clamp(1.02rem, 1.2vw, 1.18rem);
  line-height: 1.55;
  letter-spacing: 0.06em;
}

.page-content .kas-support-programs__term p,
.single-content .kas-support-programs__term p {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.86rem;
  line-height: 1.55;
}

.page-content .kas-support-programs__body,
.single-content .kas-support-programs__body {
  display: grid;
  gap: 0.45rem;
}

.page-content .kas-support-programs__body p,
.single-content .kas-support-programs__body p {
  margin: 0;
  line-height: 1.85;
}

.page-content .kas-support-programs__lead,
.single-content .kas-support-programs__lead {
  color: var(--accent-strong);
  font-weight: 700;
}

@media (max-width: 760px) {
  .page-content .kas-info-cards--line-list .wp-block-column,
  .single-content .kas-info-cards--line-list .wp-block-column {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .page-content .kas-support-programs__item,
  .single-content .kas-support-programs__item {
    grid-template-columns: 1fr;
  }
}

.page-content .kas-info-cards--group-sites .wp-block-columns,
.single-content .kas-info-cards--group-sites .wp-block-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-content .kas-info-cards--group-sites .wp-block-column,
.single-content .kas-info-cards--group-sites .wp-block-column {
  gap: 0.8rem;
  padding: clamp(1.8rem, 3vw, 2.35rem) clamp(1.6rem, 2.4vw, 2rem);
  background: var(--surface);
  border: 1px solid var(--line);
  border-top: 0;
  border-radius: var(--radius-card);
  box-shadow: 0 14px 40px rgba(var(--rgb-ink), 0.045);
  overflow: hidden;
}

.page-content .kas-info-cards--group-sites .wp-block-column::before,
.single-content .kas-info-cards--group-sites .wp-block-column::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), rgba(var(--accent-rgb), 0));
  opacity: 0.85;
}

.page-content .kas-info-cards--group-sites h3,
.single-content .kas-info-cards--group-sites h3 {
  color: var(--accent-deep);
  font-size: clamp(1.12rem, 1.25vw, 1.28rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

.page-content .kas-info-cards--group-sites p a,
.single-content .kas-info-cards--group-sites p a {
  color: var(--accent-strong);
  text-decoration: none;
}

.page-content .kas-info-cards--group-sites p a:hover,
.single-content .kas-info-cards--group-sites p a:hover {
  text-decoration: underline;
}

/* ---- Google Map 埋め込み kas-access-map ---- */
.page-content .kas-access-map,
.single-content .kas-access-map {
  display: grid;
  gap: 0.85rem;
  margin-top: clamp(1.4rem, 2.8vw, 2.4rem);
}

.page-content .kas-access-map iframe,
.single-content .kas-access-map iframe {
  display: block;
  width: 100%;
  min-height: clamp(20rem, 46vw, 32rem);
  border: 0;
  border-radius: var(--radius-card);
  background: var(--surface-muted);
  box-shadow: 0 18px 48px rgba(var(--rgb-ink), 0.08);
}

.page-content .kas-access-map__link,
.single-content .kas-access-map__link {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.94rem;
  line-height: 1.7;
  text-align: right;
}

.page-content .kas-access-map__link a,
.single-content .kas-access-map__link a {
  color: var(--accent-strong);
  text-decoration: none;
}

.page-content .kas-access-map__link a:hover,
.single-content .kas-access-map__link a:hover {
  text-decoration: underline;
}

.page-content .kas-chapter--location-access .kas-access-map iframe,
.single-content .kas-chapter--location-access .kas-access-map iframe {
  min-height: clamp(22rem, 34vw, 30rem);
}

.page-content .kas-chapter--location-access .kas-info-cards,
.single-content .kas-chapter--location-access .kas-info-cards,
.page-content .kas-chapter--location-access .kas-info-cards .wp-block-columns,
.single-content .kas-chapter--location-access .kas-info-cards .wp-block-columns {
  height: 100%;
}

.page-content .kas-diagram-figure img,
.single-content .kas-diagram-figure img,
.page-content .kas-career-map__figure img,
.single-content .kas-career-map__figure img {
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

/* ---- CTA パネル kas-cta-panel ---- */
.page-content .kas-cta-panel,
.single-content .kas-cta-panel {
  display: grid;
  gap: 1.2rem;
  padding: clamp(2.4rem, 4vw, 3.6rem) clamp(1.8rem, 3.4vw, 3rem);
  background: linear-gradient(150deg, rgba(var(--rgb-paper), 0.7) 0%, var(--accent-soft) 100%);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
}

.page-content .kas-cta-panel h2,
.page-content .kas-cta-panel h3,
.single-content .kas-cta-panel h2,
.single-content .kas-cta-panel h3 {
  margin: 0;
}

.page-content .kas-cta-panel .wp-block-buttons,
.single-content .kas-cta-panel .wp-block-buttons {
  margin-top: 0.5rem;
}

/* ---- 強化されたメディアスプリット ---- */
.page-content .kas-media-split.kas-media-split--soft .wp-block-media-text__media img,
.single-content .kas-media-split.kas-media-split--soft .wp-block-media-text__media img {
  border-radius: var(--radius-card);
  border: 0;
  box-shadow: 0 18px 48px rgba(var(--rgb-ink), 0.08);
}

.page-content .kas-media-split.kas-media-split--map .wp-block-media-text__media,
.single-content .kas-media-split.kas-media-split--map .wp-block-media-text__media {
  align-self: center;
}

.page-content .kas-media-split.kas-media-split--map,
.single-content .kas-media-split.kas-media-split--map {
  grid-template-columns: minmax(0, 0.78fr) minmax(20rem, 1.22fr);
  gap: clamp(1.8rem, 3.2vw, 3.4rem);
}

.page-content .kas-media-split.kas-media-split--map .wp-block-media-text__media img,
.single-content .kas-media-split.kas-media-split--map .wp-block-media-text__media img {
  aspect-ratio: auto;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

/* ---- 社会福祉士から広がる職場マップ ---- */
.page-content .kas-career-map,
.single-content .kas-career-map {
  margin-top: clamp(1.4rem, 2.6vw, 2.2rem);
}

.page-content .kas-career-map__figure,
.single-content .kas-career-map__figure {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius-card);
  border: 0;
  width: 100%;
  background: transparent;
  box-shadow: none;
}

.page-content .kas-career-map__figure img,
.single-content .kas-career-map__figure img,
.page-content .kas-career-map__image,
.single-content .kas-career-map__image {
  display: block;
  width: 100%;
  height: auto;
}

/* ---- 装飾チェックリスト ---- */
.page-content .kas-check-card,
.single-content .kas-check-card {
  display: grid;
  gap: clamp(1rem, 1.8vw, 1.4rem);
  padding: clamp(1.35rem, 2.4vw, 1.9rem) clamp(1.4rem, 2.5vw, 2rem);
  background:
    linear-gradient(90deg, rgba(var(--accent-rgb), 0.08), rgba(var(--rgb-white), 0) 62%),
    rgba(var(--rgb-white), 0.58);
  border: 1px solid rgba(var(--accent-rgb), 0.16);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius-card);
}

.page-content .kas-check-card h3,
.single-content .kas-check-card h3 {
  margin: 0 0 clamp(0.25rem, 0.8vw, 0.55rem);
  padding: 0;
  border: 0;
  color: var(--text);
  font-family: var(--font-family-heading);
  font-size: clamp(1.18rem, 1.6vw, 1.45rem);
  line-height: 1.5;
}

.page-content .kas-check-list--card,
.single-content .kas-check-list--card {
  display: grid;
  gap: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  list-style: none;
}

.page-content .kas-check-list--card > li,
.single-content .kas-check-list--card > li {
  position: relative;
  padding: 0.6rem 0 0.6rem 2rem;
  border-top: 1px dashed var(--line);
}

.page-content .kas-check-list--card > li:first-child,
.single-content .kas-check-list--card > li:first-child {
  border-top: 0;
}

.page-content .kas-check-list--card > li::before,
.single-content .kas-check-list--card > li::before {
  content: "";
  position: absolute;
  top: 1.05rem;
  left: 0;
  width: 1.1rem;
  height: 0.55rem;
  border-left: 2px solid var(--accent);
  border-bottom: 2px solid var(--accent);
  transform: rotate(-45deg);
  background: transparent;
  border-radius: 0;
}

/* ---- 追加: 章ごとの先頭タイトル余白を広めに ---- */
.page-content .kas-chapter > .kas-eyebrow + h2,
.page-content .kas-chapter > .kas-eyebrow + h3,
.single-content .kas-chapter > .kas-eyebrow + h2,
.single-content .kas-chapter > .kas-eyebrow + h3 {
  margin-top: 0.9rem;
}

/* ---- 水彩イラストカード ---- */
.page-content .kas-illustration-cards .wp-block-column,
.single-content .kas-illustration-cards .wp-block-column {
  grid-template-rows: auto auto 1fr;
  background:
    linear-gradient(180deg, rgba(var(--rgb-white), 0.9), rgba(var(--rgb-paper), 0.72)),
    radial-gradient(circle at 86% 12%, rgba(var(--accent-rgb), 0.09), rgba(var(--accent-rgb), 0) 12rem);
}

.page-content .kas-illustration-cards .wp-block-image,
.single-content .kas-illustration-cards .wp-block-image {
  width: min(100%, 12rem);
  height: auto;
  min-height: 6rem;
  justify-self: center;
  margin: 0 auto 0.2rem;
  background: transparent;
  border-radius: 0;
}

.page-content .kas-illustration-cards .wp-block-image img,
.single-content .kas-illustration-cards .wp-block-image img {
  width: 100%;
  height: auto;
  max-height: 9rem;
  object-fit: contain;
}

.page-content .kas-field-cards .wp-block-image,
.single-content .kas-field-cards .wp-block-image {
  width: calc(100% + var(--kas-feature-card-pad-x) + var(--kas-feature-card-pad-x));
}

/* ---- WordPress core block defaults for editor-authored lower pages ---- */
.page-content .wp-block-heading,
.single-content .wp-block-heading {
  text-wrap: pretty;
}

.page-content .wp-block-separator,
.single-content .wp-block-separator {
  width: 100%;
  max-width: 10rem;
  margin-inline: 0;
  border: 0;
  border-top: 1px solid var(--line-strong);
}

.page-content .wp-block-separator.is-style-wide,
.single-content .wp-block-separator.is-style-wide {
  max-width: 100%;
}

.page-content .wp-block-quote,
.single-content .wp-block-quote,
.page-content .wp-block-quote.is-style-kas-voice,
.single-content .wp-block-quote.is-style-kas-voice {
  position: relative;
  padding: clamp(1.5rem, 3vw, 2.1rem) clamp(1.5rem, 3vw, 2.4rem);
  border: 1px solid var(--line);
  border-left: 4px solid var(--accent);
  border-radius: var(--radius-card);
  background: rgba(var(--rgb-white), 0.72);
  color: var(--text-soft);
}

.page-content .wp-block-pullquote,
.single-content .wp-block-pullquote {
  padding: clamp(1.8rem, 3vw, 2.6rem);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--accent-deep);
}

.page-content .wp-block-table,
.single-content .wp-block-table {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: rgba(var(--rgb-white), 0.76);
}

.page-content .wp-block-table table,
.single-content .wp-block-table table {
  min-width: 42rem;
}

.page-content .wp-block-table thead th,
.single-content .wp-block-table thead th,
.page-content .wp-block-table.is-style-kas-data thead th,
.single-content .wp-block-table.is-style-kas-data thead th {
  background: var(--surface-muted);
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-weight: 600;
}

.page-content .wp-block-details,
.single-content .wp-block-details {
  padding: clamp(1.2rem, 2vw, 1.6rem);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: rgba(var(--rgb-white), 0.74);
}

.page-content .wp-block-details summary,
.single-content .wp-block-details summary {
  cursor: pointer;
  color: var(--accent-deep);
  font-family: var(--font-family-heading);
  font-weight: 600;
}

.page-content .wp-block-file,
.single-content .wp-block-file {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1rem;
  align-items: center;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(var(--rgb-white), 0.68);
}

.page-content .wp-block-file__button,
.single-content .wp-block-file__button {
  border-radius: var(--radius);
  background: var(--accent);
  color: var(--text-inverse);
}

.page-content .wp-block-media-text,
.single-content .wp-block-media-text {
  border-radius: var(--radius-card);
}

/* ---- Lazyweb reference: editorial lower-page flow ---- */
.page-content .kas-lead-block,
.single-content .kas-lead-block {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.15rem, 2vw, 1.8rem);
  width: 100%;
  max-width: none;
}

.page-content .kas-lead-block h2,
.single-content .kas-lead-block h2 {
  max-width: 15em;
  margin: 0 0 clamp(1.8rem, 3vw, 2.7rem);
}

.page-content .kas-lead-block--fill h2,
.single-content .kas-lead-block--fill h2 {
  margin-bottom: clamp(1.8rem, 3vw, 2.7rem);
}

.page-content .kas-lead-block p,
.single-content .kas-lead-block p {
  grid-column: 1;
  max-width: 52rem;
}

.page-content .kas-section-heading p:not(.kas-eyebrow),
.single-content .kas-section-heading p:not(.kas-eyebrow) {
  max-width: 100%;
}

.page-content .kas-section-heading .wp-block-heading + p,
.single-content .kas-section-heading .wp-block-heading + p {
  margin-top: 0;
}

.page-content .kas-chapter,
.single-content .kas-chapter {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.8rem, 3.2vw, 3rem);
}

.page-content .kas-chapter > *,
.single-content .kas-chapter > *,
.page-content .kas-chapter > .wp-block-group__inner-container > *,
.single-content .kas-chapter > .wp-block-group__inner-container > * {
  margin-top: 0;
}

.page-content .kas-chapter > .wp-block-group__inner-container,
.single-content .kas-chapter > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.8rem, 3.2vw, 3rem);
}

.page-content .kas-chapter > .kas-section-heading,
.single-content .kas-chapter > .kas-section-heading,
.page-content .kas-chapter > .wp-block-group__inner-container > .kas-section-heading,
.single-content .kas-chapter > .wp-block-group__inner-container > .kas-section-heading {
  position: static;
  top: auto;
  grid-column: 1;
  width: 100%;
  max-width: none;
  padding-right: 0;
}

.page-content .kas-chapter > :not(.kas-section-heading),
.single-content .kas-chapter > :not(.kas-section-heading),
.page-content .kas-chapter > .wp-block-group__inner-container > :not(.kas-section-heading),
.single-content .kas-chapter > .wp-block-group__inner-container > :not(.kas-section-heading) {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  max-width: none;
}

.page-content .kas-media-split,
.page-content .kas-media-split:not(.has-media-on-the-right),
.page-content .kas-media-split.kas-media-split--map,
.single-content .kas-media-split,
.single-content .kas-media-split:not(.has-media-on-the-right),
.single-content .kas-media-split.kas-media-split--map {
  grid-template-columns: 1fr;
  gap: clamp(1.5rem, 3vw, 2.6rem);
  max-width: min(100%, 72rem);
}

.page-content .kas-media-split .wp-block-media-text__content,
.single-content .kas-media-split .wp-block-media-text__content {
  grid-column: 1;
  grid-row: auto;
  justify-self: stretch;
  order: 1;
  min-width: 0;
  width: 100%;
  max-width: 52rem;
}

.page-content .kas-media-split .wp-block-media-text__media,
.single-content .kas-media-split .wp-block-media-text__media {
  grid-column: 1;
  grid-row: auto;
  justify-self: stretch;
  order: 2;
  width: 100%;
}

.page-content .kas-media-split .wp-block-media-text__media img,
.single-content .kas-media-split .wp-block-media-text__media img {
  aspect-ratio: 16 / 9;
}

@media (min-width: 761px) {
  .page-content .kas-media-split.kas-media-split--support-intro,
  .single-content .kas-media-split.kas-media-split--support-intro {
    grid-template-columns: minmax(0, 0.9fr) minmax(20rem, 0.68fr);
    align-items: center;
  }

  .page-content .kas-media-split.kas-media-split--support-intro .wp-block-media-text__content,
  .single-content .kas-media-split.kas-media-split--support-intro .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 1;
    order: 0;
    max-width: none;
  }

  .page-content .kas-media-split.kas-media-split--support-intro .wp-block-media-text__media,
  .single-content .kas-media-split.kas-media-split--support-intro .wp-block-media-text__media {
    grid-column: 2;
    grid-row: 1;
    order: 0;
  }

  .page-content .kas-media-split.kas-media-split--support-intro .wp-block-media-text__media img,
  .single-content .kas-media-split.kas-media-split--support-intro .wp-block-media-text__media img {
    aspect-ratio: 4 / 3;
  }
}

.page-content .kas-lead-block--photo .kas-lead-block__visual,
.single-content .kas-lead-block--photo .kas-lead-block__visual {
  margin-top: clamp(1.6rem, 3vw, 2.5rem);
}

.page-content .kas-lead-block--photo .kas-lead-block__visual img,
.single-content .kas-lead-block--photo .kas-lead-block__visual img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: 0 18px 48px rgba(var(--rgb-ink), 0.08);
}

@media (min-width: 961px) {
  .page-content .kas-lead-block--photo.kas-lead-block--about,
  .single-content .kas-lead-block--photo.kas-lead-block--about {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: clamp(1rem, 1.6vw, 1.5rem);
    align-items: center;
  }

  .page-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container,
  .single-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(24rem, 0.98fr);
    column-gap: clamp(2.4rem, 5vw, 5.4rem);
    row-gap: clamp(1rem, 1.7vw, 1.65rem);
    align-items: center;
  }

  .page-content .kas-lead-block--photo.kas-lead-block--about > h2,
  .single-content .kas-lead-block--photo.kas-lead-block--about > h2,
  .page-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > h2,
  .single-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > h2 {
    position: relative;
    grid-column: 1 / -1;
    max-width: min(100%, 15em);
    padding-bottom: clamp(0.75rem, 1.2vw, 1rem);
    margin-bottom: clamp(0.2rem, 0.8vw, 0.55rem);
  }

  .page-content .kas-lead-block--photo.kas-lead-block--about > h2::after,
  .single-content .kas-lead-block--photo.kas-lead-block--about > h2::after,
  .page-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > h2::after,
  .single-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: clamp(5rem, 9vw, 8rem);
    height: 2px;
    background: linear-gradient(90deg, var(--accent-strong), rgba(var(--accent-rgb), 0.16));
  }

  .page-content .kas-lead-block--photo.kas-lead-block--about > p,
  .single-content .kas-lead-block--photo.kas-lead-block--about > p,
  .page-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > p,
  .single-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > p {
    grid-column: 1;
    max-width: 100%;
  }

  .page-content .kas-lead-block--photo.kas-lead-block--about > .kas-lead-block__visual,
  .single-content .kas-lead-block--photo.kas-lead-block--about > .kas-lead-block__visual,
  .page-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > .kas-lead-block__visual,
  .single-content .kas-lead-block--photo.kas-lead-block--about > .wp-block-group__inner-container > .kas-lead-block__visual {
    grid-column: 2;
    grid-row: 2 / span 3;
    align-self: center;
    width: 100%;
    margin: 0;
  }
}

@media (min-width: 961px) {
  .page-content .kas-chapter--side-media,
  .single-content .kas-chapter--side-media,
  .page-content .kas-chapter--side-diagram,
  .single-content .kas-chapter--side-diagram,
  .page-content .kas-chapter--side-media > .wp-block-group__inner-container,
  .single-content .kas-chapter--side-media > .wp-block-group__inner-container,
  .page-content .kas-chapter--side-diagram > .wp-block-group__inner-container,
  .single-content .kas-chapter--side-diagram > .wp-block-group__inner-container {
    align-items: center;
    column-gap: var(--kas-side-component-gap);
    row-gap: var(--kas-heading-stack-gap);
  }

  .page-content .kas-chapter--side-media,
  .single-content .kas-chapter--side-media,
  .page-content .kas-chapter--side-media > .wp-block-group__inner-container,
  .single-content .kas-chapter--side-media > .wp-block-group__inner-container {
    grid-template-columns: minmax(0, 0.92fr) minmax(20rem, 0.78fr);
  }

  .page-content .kas-chapter--side-diagram,
  .single-content .kas-chapter--side-diagram,
  .page-content .kas-chapter--side-diagram > .wp-block-group__inner-container,
  .single-content .kas-chapter--side-diagram > .wp-block-group__inner-container {
    grid-template-columns: minmax(0, 0.95fr) minmax(24rem, 1.05fr);
  }

  .page-content .kas-chapter--side-media .kas-section-heading,
  .single-content .kas-chapter--side-media .kas-section-heading,
  .page-content .kas-chapter--side-diagram .kas-section-heading,
  .single-content .kas-chapter--side-diagram .kas-section-heading {
    grid-column: 1;
    width: 100%;
    max-width: none;
  }

  .page-content .kas-chapter.kas-chapter--side-diagram > .wp-block-group__inner-container > .kas-section-heading,
  .single-content .kas-chapter.kas-chapter--side-diagram > .wp-block-group__inner-container > .kas-section-heading,
  .page-content .kas-chapter.kas-chapter--side-diagram > .kas-section-heading,
  .single-content .kas-chapter.kas-chapter--side-diagram > .kas-section-heading {
    grid-column: 1;
    grid-row: 1;
  }

  .page-content .kas-chapter--side-diagram .kas-section-heading h2.is-style-kas-display,
  .single-content .kas-chapter--side-diagram .kas-section-heading h2.is-style-kas-display {
    inline-size: 100%;
    font-size: clamp(1.45rem, 1.65vw, 1.82rem);
    letter-spacing: 0.04em;
    text-wrap: pretty;
  }

  .page-content .kas-chapter.kas-chapter--side-media > .wp-block-group__inner-container > .kas-section-heading,
  .single-content .kas-chapter.kas-chapter--side-media > .wp-block-group__inner-container > .kas-section-heading,
  .page-content .kas-chapter.kas-chapter--side-media > .kas-section-heading,
  .single-content .kas-chapter.kas-chapter--side-media > .kas-section-heading {
    grid-column: 1;
    grid-row: 1;
  }

  .page-content .kas-chapter--side-media .kas-media-split,
  .single-content .kas-chapter--side-media .kas-media-split {
    display: contents;
    max-width: none;
  }

  .page-content .kas-chapter--side-media .wp-block-media-text__content,
  .single-content .kas-chapter--side-media .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 2;
    order: initial;
    max-width: 42rem;
  }

  .page-content .kas-chapter--side-media .wp-block-media-text__media,
  .single-content .kas-chapter--side-media .wp-block-media-text__media {
    grid-column: 2;
    grid-row: 1 / span 2;
    order: initial;
    align-self: center;
  }

  .page-content .kas-chapter.kas-chapter--title-media > .wp-block-group__inner-container > .kas-section-heading,
  .single-content .kas-chapter.kas-chapter--title-media > .wp-block-group__inner-container > .kas-section-heading {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .page-content .kas-chapter--title-media .wp-block-media-text__content,
  .single-content .kas-chapter--title-media .wp-block-media-text__content {
    grid-column: 1;
    grid-row: 2;
  }

  .page-content .kas-chapter--title-media .wp-block-media-text__media,
  .single-content .kas-chapter--title-media .wp-block-media-text__media {
    grid-column: 2;
    grid-row: 2;
  }

  .page-content .kas-chapter--side-media-reverse .kas-section-heading,
  .single-content .kas-chapter--side-media-reverse .kas-section-heading,
  .page-content .kas-chapter--side-media-reverse .wp-block-media-text__content,
  .single-content .kas-chapter--side-media-reverse .wp-block-media-text__content {
    grid-column: 2;
  }

  .page-content .kas-chapter.kas-chapter--side-media-reverse > .wp-block-group__inner-container > .kas-section-heading,
  .single-content .kas-chapter.kas-chapter--side-media-reverse > .wp-block-group__inner-container > .kas-section-heading {
    grid-column: 2;
    grid-row: 1;
  }

  .page-content .kas-chapter--side-media-reverse .wp-block-media-text__media,
  .single-content .kas-chapter--side-media-reverse .wp-block-media-text__media {
    grid-column: 1;
  }

  .page-content .kas-chapter--side-diagram .kas-diagram-figure,
  .single-content .kas-chapter--side-diagram .kas-diagram-figure {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    margin: 0;
    width: 100%;
  }

  .page-content .kas-chapter.kas-chapter--side-diagram > .wp-block-group__inner-container > .kas-diagram-figure,
  .single-content .kas-chapter.kas-chapter--side-diagram > .wp-block-group__inner-container > .kas-diagram-figure,
  .page-content .kas-chapter.kas-chapter--side-diagram > .kas-diagram-figure,
  .single-content .kas-chapter.kas-chapter--side-diagram > .kas-diagram-figure {
    grid-column: 2;
    grid-row: 1;
  }

  .page-content .kas-chapter--side-diagram .kas-diagram-figure img,
  .single-content .kas-chapter--side-diagram .kas-diagram-figure img {
    max-height: none;
  }

  .page-content .kas-chapter--side-diagram .kas-wide-figure figcaption,
  .single-content .kas-chapter--side-diagram .kas-wide-figure figcaption {
    max-width: 36rem;
  }
}

/* ---- レスポンシブ ---- */
@media (max-width: 1100px) {
  .page-content .kas-icon-cards .wp-block-columns,
  .single-content .kas-icon-cards .wp-block-columns,
  .page-content .kas-step-flow .wp-block-columns,
  .single-content .kas-step-flow .wp-block-columns {
    grid-template-columns: 1fr;
  }

  .page-content .kas-media-split.kas-media-split--map,
  .single-content .kas-media-split.kas-media-split--map {
    grid-template-columns: 1fr;
  }

  .page-content .kas-fee-chart__schools,
  .single-content .kas-fee-chart__schools {
    grid-template-columns: 1fr;
  }

  .page-content .kas-process-rail > li + li::after,
  .single-content .kas-process-rail > li + li::after {
    display: none;
  }
}

@media (max-width: 760px) {
  .page-content .kas-chapter,
  .single-content .kas-chapter {
    padding: 3rem 0 2.6rem;
  }

  .page-content .kas-schedule-timeline > li,
  .single-content .kas-schedule-timeline > li {
    grid-template-columns: 1fr;
    gap: 0.3rem;
  }

  .page-content .kas-info-cards .wp-block-columns,
  .single-content .kas-info-cards .wp-block-columns {
    grid-template-columns: 1fr;
  }

  .page-content .kas-method-list__item,
  .single-content .kas-method-list__item {
    grid-template-columns: 1fr;
  }

  .page-content .kas-teacher-cards__grid,
  .single-content .kas-teacher-cards__grid {
    grid-template-columns: 1fr;
  }

  .page-content .kas-student-voices__track,
  .single-content .kas-student-voices__track {
    grid-auto-columns: minmax(0, 100%);
  }

  .page-content .kas-student-voice:nth-child(even),
  .single-content .kas-student-voice:nth-child(even) {
    margin-top: 0;
  }
}

/* ==========================================================================
   Requested responsive refinements
   ========================================================================== */
.nav-toggle {
  flex-direction: column;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  gap: 0.42rem;
}

.nav-toggle__line {
  width: 1.55rem;
}

.single-hero--fill.page-hero--no-visual.page-hero--page-level-4 {
  background: transparent;
  border-bottom: 0;
}

.single-hero--fill.page-hero--no-visual.page-hero--page-level-4::after {
  content: none;
}

.single-hero--fill.page-hero--no-visual.page-hero--page-level-4 .page-hero__copy,
body.is-dark .single-hero--fill.page-hero--no-visual.page-hero--page-level-4 .page-hero__copy {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.page-content .mw_wp_form .kas-mw-form__actions,
.single-content .mw_wp_form .kas-mw-form__actions {
  justify-content: center;
}

.page-content .kas-support-programs__body,
.single-content .kas-support-programs__body {
  margin-top: 0;
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next {
  width: 2.7rem;
  padding: 0;
  color: var(--accent-strong);
}

.pagination .pagination__arrow {
  display: block;
  width: 0.72rem;
  height: 0.72rem;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  border-radius: 0;
}

.pagination__arrow--prev {
  transform: rotate(-135deg);
}

.pagination__arrow--next {
  transform: rotate(45deg);
}

.page-content .kas-student-voices__track,
.single-content .kas-student-voices__track {
  grid-auto-flow: row;
  grid-auto-columns: unset;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(1rem, 2vw, 1.5rem);
  margin-inline: 0;
  padding: 0;
  overflow: visible;
  scroll-snap-type: none;
}

.page-content .kas-student-voice,
.single-content .kas-student-voice {
  grid-template-columns: clamp(3.05rem, 4.2vw, 3.75rem) minmax(0, 1fr);
  gap: clamp(0.7rem, 1.4vw, 0.95rem);
  align-items: start;
  scroll-snap-align: none;
}

.page-content .kas-student-voice--female-a,
.single-content .kas-student-voice--female-a {
  --kas-voice-accent: 0, 139, 178;
  --kas-voice-ink: #0d6f8f;
  --kas-voice-hair: #365f74;
  --kas-voice-skin: #f1d5c7;
  --kas-voice-shirt: #8fc9d9;
}

.page-content .kas-student-voice--male-a,
.single-content .kas-student-voice--male-a {
  --kas-voice-accent: 11, 95, 152;
  --kas-voice-ink: #0b5f98;
  --kas-voice-hair: #32475c;
  --kas-voice-skin: #eac9b7;
  --kas-voice-shirt: #87aeca;
}

.page-content .kas-student-voice--female-b,
.single-content .kas-student-voice--female-b {
  --kas-voice-accent: 92, 148, 108;
  --kas-voice-ink: #457957;
  --kas-voice-hair: #4f6551;
  --kas-voice-skin: #f2d8bf;
  --kas-voice-shirt: #a9cda9;
}

.page-content .kas-student-voice--male-b,
.single-content .kas-student-voice--male-b {
  --kas-voice-accent: 184, 131, 45;
  --kas-voice-ink: #9a6720;
  --kas-voice-hair: #5a4d3e;
  --kas-voice-skin: #e8c3a8;
  --kas-voice-shirt: #d5ba7a;
}

.page-content .kas-student-voice--female-c,
.single-content .kas-student-voice--female-c {
  --kas-voice-accent: 57, 127, 161;
  --kas-voice-ink: #397fa1;
  --kas-voice-hair: #3c5265;
  --kas-voice-skin: #edd1bd;
  --kas-voice-shirt: #9cc5d2;
}

.page-content .kas-student-voice--male-c,
.single-content .kas-student-voice--male-c {
  --kas-voice-accent: 64, 132, 116;
  --kas-voice-ink: #408474;
  --kas-voice-hair: #354f4a;
  --kas-voice-skin: #e5c0a9;
  --kas-voice-shirt: #98c2b7;
}

.page-content .kas-student-voice--female-d,
.single-content .kas-student-voice--female-d {
  --kas-voice-accent: 118, 137, 185;
  --kas-voice-ink: #5f73a8;
  --kas-voice-hair: #44506d;
  --kas-voice-skin: #f0d4c4;
  --kas-voice-shirt: #b6c1df;
}

.page-content .kas-student-voice--male-d,
.single-content .kas-student-voice--male-d {
  --kas-voice-accent: 139, 117, 78;
  --kas-voice-ink: #7b6843;
  --kas-voice-hair: #554839;
  --kas-voice-skin: #dcb89d;
  --kas-voice-shirt: #cbb68d;
}

.page-content .kas-student-voice--female-e,
.single-content .kas-student-voice--female-e {
  --kas-voice-accent: 41, 151, 137;
  --kas-voice-ink: #299789;
  --kas-voice-hair: #405f5f;
  --kas-voice-skin: #f1d7c6;
  --kas-voice-shirt: #9ed4ca;
}

.page-content .kas-student-voice__avatar,
.single-content .kas-student-voice__avatar {
  border-radius: 50%;
  background:
    radial-gradient(circle at 34% 22%, rgba(var(--rgb-white), 0.96), rgba(var(--rgb-white), 0) 34%),
    linear-gradient(145deg, rgba(var(--kas-voice-accent), 0.16), rgba(var(--rgb-white), 0.82) 64%, rgba(var(--kas-voice-accent), 0.1));
}

.page-content .kas-student-voice__avatar::before,
.single-content .kas-student-voice__avatar::before {
  top: 20%;
  left: 50%;
  width: 43%;
  background:
    radial-gradient(ellipse at 50% 8%, var(--kas-voice-hair) 0 35%, transparent 36%),
    radial-gradient(circle at 50% 58%, var(--kas-voice-skin) 0 60%, transparent 61%);
  box-shadow: none;
}

.page-content .kas-student-voice__avatar::after,
.single-content .kas-student-voice__avatar::after {
  right: 20%;
  bottom: 16%;
  left: 20%;
  height: 34%;
  border-radius: 52% 52% 44% 44%;
  background:
    radial-gradient(circle at 50% 0, rgba(var(--rgb-white), 0.78), rgba(var(--rgb-white), 0) 34%),
    var(--kas-voice-shirt);
  box-shadow: none;
}

.page-content .kas-student-voice__meta,
.single-content .kas-student-voice__meta {
  display: block;
  margin: 0.65rem 0 0;
  color: var(--kas-voice-ink);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.6;
}

.page-content .kas-student-voice__meta p,
.single-content .kas-student-voice__meta p {
  margin: 0;
}

.page-content .kas-student-voice,
.single-content .kas-student-voice {
  grid-template-columns: clamp(3.05rem, 4.2vw, 3.75rem) minmax(0, 1fr);
  gap: clamp(0.7rem, 1.4vw, 0.95rem);
  margin-block: 0;
}

.page-content .kas-student-voices__track > .kas-student-voice,
.single-content .kas-student-voices__track > .kas-student-voice {
  margin-block: 0;
}

.page-content .kas-student-voice > .kas-student-voice__avatar,
.single-content .kas-student-voice > .kas-student-voice__avatar,
.page-content .kas-student-voice > .kas-student-voice__bubble,
.single-content .kas-student-voice > .kas-student-voice__bubble {
  margin-block: 0;
}

.page-content figure.kas-student-voice__avatar,
.single-content figure.kas-student-voice__avatar {
  position: relative;
  display: block;
  width: clamp(3.05rem, 4.2vw, 3.75rem);
  max-width: none;
  margin: 0.12rem 0 0;
  padding: 0;
  aspect-ratio: 1;
  overflow: hidden;
  border: 1px solid rgba(var(--kas-voice-accent), 0.24);
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 18%, rgba(var(--rgb-white), 0.98), rgba(var(--rgb-white), 0) 32%),
    linear-gradient(145deg, rgba(var(--kas-voice-accent), 0.14), rgba(var(--rgb-white), 0.86) 64%, rgba(var(--kas-voice-accent), 0.1));
  box-shadow: 0 10px 24px rgba(var(--kas-voice-accent), 0.13);
}

.page-content figure.kas-student-voice__avatar::before,
.page-content figure.kas-student-voice__avatar::after,
.single-content figure.kas-student-voice__avatar::before,
.single-content figure.kas-student-voice__avatar::after {
  content: none;
}

.page-content .kas-student-voice__avatar img,
.single-content .kas-student-voice__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center top;
  transform: scale(1.55) translateY(7%);
  transform-origin: 50% 22%;
}

.page-content .kas-student-voice__bubble::before,
.single-content .kas-student-voice__bubble::before {
  content: "";
  top: 1.15rem;
  left: -0.42rem;
  width: 0.78rem;
  height: 0.78rem;
}

.page-content .kas-student-voice__bubble,
.single-content .kas-student-voice__bubble {
  min-height: auto;
  margin-block: 0;
  padding: clamp(0.95rem, 1.6vw, 1.25rem);
  border-radius: 8px;
}

.page-content .kas-student-voice__body,
.single-content .kas-student-voice__body {
  font-size: 0.92rem;
  line-height: 1.82;
}

@media (max-width: 760px) {
  body.home .hero-scope {
    min-height: auto;
    padding: calc(var(--header-height) + 1.35rem) 0 3.6rem;
  }

  body.home .hero-scope__stage,
  body.home.has-motion-js .hero-scope__stage {
    position: relative;
    inset: auto;
    min-height: auto;
    padding-inline: 1rem;
    pointer-events: auto;
  }

  body.home .hero-scope__visual {
    display: none;
  }

  body.home .hero-scope__center {
    min-height: auto;
    transform: none;
  }

  body.home .hero-scope__supporting {
    position: relative;
    left: auto;
    bottom: auto;
    width: 100%;
    max-width: 100%;
    margin-top: 2.25rem;
    justify-items: center;
    transform: none;
  }

  body.home .hero-scope__badge-row {
    width: 100%;
    justify-content: center;
    justify-self: center;
  }

  body.home .editorial-intro,
  body.home.has-motion-js .editorial-intro {
    margin-top: 0;
    min-height: auto;
    padding: 2.75rem 0 3.25rem;
  }

  body.home .editorial-intro__inner {
    position: relative;
    top: auto;
    width: auto;
    max-width: var(--container-width);
    margin-inline: auto;
    height: auto;
    min-height: auto;
    padding-inline: var(--fluid-shell-padding-inline);
  }

  body.home .editorial-intro__message {
    width: 100%;
    min-height: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    row-gap: 1.1rem;
    align-items: start;
    justify-items: stretch;
    padding-inline: 0;
    transform: none;
  }

  body.home .editorial-intro__message h2 {
    grid-column: 1;
    grid-row: auto;
    justify-self: center;
    align-self: auto;
    font-size: clamp(1.45rem, 6vw, 2rem);
    line-height: 1.62;
    letter-spacing: 0.08em;
    text-align: center;
  }

  body.home .editorial-intro__body,
  body.home.has-motion-js .editorial-intro__body {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    align-self: auto;
    max-width: 100%;
    height: auto;
    transform: none;
    will-change: auto;
    writing-mode: horizontal-tb;
    font-size: 0.94rem;
    line-height: 1.88;
  }

  .has-motion-js .editorial-intro__message h2,
  .has-motion-js .editorial-intro__message h2 > span,
  .has-motion-js .hero-scope__wind-char,
  .has-motion-js .hero-scope__wind-unit,
  .has-motion-js .editorial-intro__wind-char,
  .has-motion-js .editorial-intro__body,
  .has-motion-js .editorial-intro__body p {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none;
  }

  .story-grid__body .story-card,
  .story-grid__body .story-card:nth-child(even),
  .story-grid__body .story-card--illustration,
  .story-grid__body .story-card--illustration:nth-child(even) {
    min-height: auto;
    gap: 0.7rem;
    padding: 1.1rem 0 2.25rem;
  }

  .story-card__copy {
    gap: 0.85rem;
  }

  .story-card__media,
  .story-grid__body .story-card--illustration .story-card__media {
    height: auto;
    min-height: 0;
  }

  .story-card--illustration .story-card__media img {
    max-height: 13.5rem;
  }

  .page-hero--lower.page-hero--visual::after {
    inset: 0;
    height: auto;
    border-radius: 0;
  }

  .page-content .kas-lead-block h2,
  .single-content .kas-lead-block h2 {
    max-width: 100%;
    margin-bottom: 1.35rem;
    word-break: normal;
    overflow-wrap: normal;
  }

  .page-content .wp-block-table table,
  .single-content .wp-block-table table {
    min-width: 34rem;
  }

  .page-content th,
  .page-content td,
  .single-content th,
  .single-content td {
    padding: 0.52rem 0.55rem;
    font-size: 0.78rem;
    line-height: 1.55;
  }

  .story-journal .news-card__link {
    padding-left: 0.9rem;
  }

  .kas-floating-news {
    display: none;
  }

  .page-content .kas-support-programs__item,
  .single-content .kas-support-programs__item {
    gap: 0.75rem;
  }

  .page-content .kas-student-voices__track,
  .single-content .kas-student-voices__track {
    grid-template-columns: 1fr;
  }
}
