:root {
  --brand: #d90000;
  --brand-dark: #a40000;
  --ink: #1f2933;
  --slate: #52606d;
  --blue-gray: #31596b;
  --pale-blue: #edf2f4;
  --warm-white: #fafaf8;
  --white: #ffffff;
  --border: #d7dde2;
  --focus: #005fcc;
  --max-width: 1200px;
  --text-width: 720px;
  --header-height: 82px;
  --section-space: clamp(76px, 7.5vw, 112px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); }
.no-break { white-space: nowrap; }
body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "YuGothic", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.82;
  letter-spacing: .01em;
  text-rendering: optimizeLegibility;
  overflow-wrap: anywhere;
}
a { color: inherit; text-underline-offset: 0.2em; }
img { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button, summary, select { cursor: pointer; }
::selection { background: #ffd9d9; color: var(--ink); }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.skip-link {
  position: fixed; z-index: 1000; top: 10px; left: 10px; padding: 10px 16px;
  transform: translateY(-150%); background: var(--ink); color: var(--white); font-weight: 700;
}
.skip-link:focus { transform: translateY(0); }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.wrap { width: min(calc(100% - 64px), var(--max-width)); margin-inline: auto; }
.narrow { max-width: var(--text-width); }

.site-header {
  position: sticky; top: 0; z-index: 50; height: var(--header-height);
  background: var(--white); border-bottom: 1px solid rgba(215,221,226,.9);
}
.header-inner { width: min(calc(100% - 48px), 1320px); height: 100%; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { min-height: 44px; display: flex; align-items: center; gap: 18px; text-decoration: none; min-width: 380px; }
.brand-logo { width: 238px; height: auto; flex: 0 0 auto; }
.brand-tagline { color: var(--slate); font-size: 11px; line-height: 1.55; letter-spacing: .035em; }
.brand-tagline span { display: block; white-space: nowrap; }
.desktop-nav { display: flex; align-items: center; gap: clamp(12px, 1.5vw, 25px); }
.desktop-nav > a { min-height: 44px; position: relative; display: inline-flex; align-items: center; text-decoration: none; font-size: 13px; font-weight: 700; white-space: nowrap; }
.desktop-nav > a:not(.header-contact)::after { content: ""; position: absolute; left: 0; right: 0; bottom: -8px; height: 2px; background: var(--brand); transform: scaleX(0); transform-origin: right; transition: transform .18s ease-out; }
.desktop-nav > a:hover::after { transform: scaleX(1); transform-origin: left; }
.header-contact { min-height: 46px; padding: 8px 20px; display: inline-flex; align-items: center; justify-content: center; background: var(--brand); color: var(--white); text-decoration: none; font-weight: 700; }
.header-contact:hover { background: var(--brand-dark); }
.mobile-nav { display: none; }
.mobile-menu-button { min-height: 44px; padding: 8px 14px; border: 1px solid var(--border); background: var(--white); color: var(--ink); font-size: 13px; font-weight: 700; white-space: nowrap; }
.mobile-menu-panel { position: fixed; z-index: 70; inset: var(--header-height) 0 0; padding: 24px max(20px, calc((100% - var(--max-width))/2)); background: var(--white); border-top: 1px solid var(--border); overflow: auto; }
.mobile-panel-close { min-height: 44px; margin: 0 0 16px auto; padding: 8px 14px; display: block; border: 1px solid var(--border); background: var(--white); color: var(--ink); font-size: 13px; font-weight: 700; }
.mobile-menu-panel nav { display: grid; }
.mobile-menu-panel nav a { min-height: 54px; padding: 12px 4px; display: flex; align-items: center; border-bottom: 1px solid var(--border); text-decoration: none; font-weight: 700; }
.mobile-menu-panel nav a[aria-current="page"] { color: var(--brand-dark); }
.mobile-menu-panel nav .header-contact,
.mobile-menu-panel nav .header-contact[aria-current="page"] { margin-top: 18px; justify-content: center; border-bottom: 0; color: var(--white); }
.eyebrow { margin: 0 0 12px; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.home-hero { position: relative; min-height: clamp(640px, calc(100svh - var(--header-height)), 820px); overflow: hidden; background: #1c2c33; color: var(--white); border-bottom: 1px solid #17242a; isolation: isolate; }
.home-hero-media { position: absolute; z-index: -3; inset: 0; background: #26373d url("../media/home-hero-poster.webp") center center / cover no-repeat; }
.home-hero-video { width: 100%; height: 100%; object-fit: cover; }
.home-hero-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(11,23,29,.9) 0%, rgba(13,25,31,.76) 40%, rgba(14,27,32,.32) 72%, rgba(14,27,32,.16) 100%), linear-gradient(0deg, rgba(8,18,23,.28), transparent 45%); pointer-events: none; }
.home-hero-inner { position: relative; z-index: 1; width: min(calc(100% - 64px), 1320px); min-height: clamp(640px, calc(100svh - var(--header-height)), 820px); display: flex; align-items: center; padding-block: clamp(88px, 9vw, 128px); }
.home-hero-copy { max-width: 650px; }
.home-hero .eyebrow { color: #ffb0b0; text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.home-hero h1 { max-inline-size: 8.5em; margin: 0; font-size: clamp(52px, 5.8vw, 78px); line-height: 1.12; letter-spacing: .012em; font-weight: 700; font-feature-settings: "palt" 1; line-break: strict; text-wrap: balance; text-shadow: 0 3px 28px rgba(0,0,0,.34); }
.home-hero h1 span { display: block; white-space: nowrap; }
.hero-lead { max-width: 610px; margin: 26px 0 0; color: #f2f5f6; font-size: clamp(16px, 1.3vw, 18px); line-height: 1.9; text-shadow: 0 2px 14px rgba(0,0,0,.48); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 18px 24px; margin-top: 38px; align-items: center; }
.hero-actions .text-link { margin-top: 0; padding-inline: 5px; }
.button { min-height: 52px; padding: 11px 25px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 2px; text-decoration: none; font-weight: 700; transition: background-color .18s ease-out, border-color .18s ease-out, color .18s ease-out; }
.button-primary { background: var(--brand); color: var(--white); }
.button-primary:hover { background: var(--brand-dark); }
.button-secondary { background: var(--white); border-color: #6f7d86; color: var(--ink); }
.button-secondary:hover { border-color: var(--brand); color: var(--brand-dark); }
.hero-contact-button { border-color: var(--white); color: var(--ink); }
.hero-contact-button:hover { background: #fff7f7; border-color: var(--white); color: var(--brand-dark); }
.button:disabled { background: #8d98a1; color: var(--white); cursor: not-allowed; }
.hero-motion-control { position: absolute; z-index: 3; right: max(24px, calc((100% - 1320px) / 2)); bottom: 24px; min-height: 44px; padding: 8px 14px; display: inline-flex; align-items: center; gap: 9px; border: 1px solid rgba(255,255,255,.72); background: rgba(11,23,29,.66); color: var(--white); font-size: 12px; font-weight: 700; backdrop-filter: blur(8px); }
.hero-motion-control:hover { background: rgba(11,23,29,.88); }
.hero-motion-control span { width: 13px; text-align: center; font-size: 11px; }
.section { padding-block: var(--section-space); }
.section-background { background: var(--warm-white); }
.section-ink { background: radial-gradient(850px circle at 86% 16%, rgba(217,0,0,.12), transparent 48%), #192a32; color: var(--white); }
.section-ink .eyebrow, .section-ink .section-heading > p { color: #ff8989; }
.section-ink .section-heading h2::before { background: #ff8989; }
.section-ink :focus-visible { outline-color: var(--white); }
.section-heading { max-width: 800px; margin-bottom: 40px; }
.section-heading > p { margin: 0 0 12px; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.section-heading h2 { position: relative; margin: 0; padding-top: 18px; font-size: clamp(29px, 3vw, 42px); line-height: 1.32; letter-spacing: .008em; font-feature-settings: "palt" 1; }
.section-heading h2::before { content: ""; position: absolute; top: 0; left: 0; width: 30px; height: 2px; background: var(--brand); }
.section-lead { margin-top: 14px; color: var(--slate); font-size: 16px; }
.section-ink .section-lead { color: #c4d0d6; }
.split-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(56px, 10vw, 128px); align-items: start; }
.split-intro .section-heading { position: sticky; top: calc(var(--header-height) + 48px); }
#about-mission .section-heading { margin-bottom: 0; }
#about-mission .mission-heading h2 { padding-top: 0; }
#about-mission .mission-heading h2::before { content: none; }
.mission-support { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.mission-support svg { flex: 0 0 32px; width: 32px; height: 32px; }
.mission-support::after { content: ""; flex: 1; max-width: 72px; height: 1px; background: var(--border); }
@media (max-width: 860px) {
  #about-mission .split-intro { row-gap: 24px; }
}
.home-partners { padding: 28px 0 24px; background: #fff; border-bottom: 1px solid var(--border); }
.home-partners-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 24px; margin-bottom: 16px; }
.home-partners-heading h2 { margin: 0; font-size: clamp(17px, 2vw, 22px); line-height: 1.5; }
.partner-motion-control { background: transparent; color: var(--slate); border: 1px solid var(--border); padding: 7px 12px; font: inherit; font-size: 12px; cursor: pointer; min-height: 36px; }
.partner-marquee { overflow: hidden; }
.partner-marquee-track { display: flex; width: max-content; animation: partner-scroll 75s linear infinite; }
.partner-marquee-group { display: flex; flex-shrink: 0; align-items: center; gap: 32px; padding: 0 32px 0 0; margin: 0; list-style: none; }
.partner-marquee-group li { display: flex; align-items: center; justify-content: center; width: 144px; height: 64px; }
.partner-marquee-group img { width: auto; height: auto; max-width: 144px; max-height: 56px; object-fit: contain; }
.home-partners.is-paused .partner-marquee-track, .partner-marquee:hover .partner-marquee-track { animation-play-state: paused; }
@keyframes partner-scroll { to { transform: translateX(-50%); } }
@media (max-width: 620px) {
  .partner-marquee-group { gap: 16px; padding-right: 16px; }
  .partner-marquee-group li { width: auto; min-width: 48px; max-width: 120px; height: 56px; }
  .partner-marquee-group img { max-width: 120px; max-height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .partner-marquee-track { animation: none; width: auto; }
  .partner-marquee-group { flex-wrap: wrap; justify-content: center; gap: 16px; padding: 0 20px; width: 100%; }
  .partner-marquee-group[aria-hidden="true"], .partner-motion-control { display: none; }
}
.prose { font-size: 16px; line-height: 1.9; }
.prose-large { font-size: 17px; line-height: 1.95; }
.prose p { margin: 0 0 1.35em; }
.prose h3 { margin: 48px 0 16px; font-size: 22px; line-height: 1.4; letter-spacing: .01em; }
.prose blockquote { margin: 36px 0; padding: 24px 0; border: 0; border-block: 1px solid #bcc9cf; background: transparent; font-size: 19px; font-weight: 700; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: .65em; margin-top: 8px; color: var(--brand-dark); font-weight: 700; text-decoration: none; }
.link-label { text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: .23em; text-decoration-color: currentColor; }
.link-arrow { flex: 0 0 auto; display: inline-block; text-decoration: none; transition: transform .18s ease-out; }
.text-link .link-arrow { font-size: 20px; }
.text-link:hover .link-arrow { transform: translateX(4px); }
.training-track-copy .text-link { min-height: 48px; max-width: 100%; padding: 12px 20px; gap: 16px; border-radius: 6px; background: var(--brand); color: #fff; font-size: 14px; line-height: 1.5; white-space: nowrap; }
.training-track-copy .text-link .link-label { text-decoration: none; }
.training-track-copy .text-link:hover { background: var(--brand-dark); }
@media (max-width: 620px) { .training-track-copy .text-link { width: 100%; justify-content: space-between; } }
.section-ink .text-link { color: var(--white); }

.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.service-card { padding: 28px 25px; display: flex; flex-direction: column; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); text-decoration: none; background: var(--white); transition: background-color .18s ease-out; }
.service-card:hover { background: var(--warm-white); }
.service-number { color: var(--brand); font-size: 13px; font-weight: 700; letter-spacing: .13em; }
.service-card h3 { margin: 54px 0 18px; font-size: 22px; line-height: 1.5; }
.service-card--plain h3 { margin-top: 0; }
.service-card p { margin: 0; color: var(--slate); font-size: 14px; line-height: 1.85; }
.card-action { margin-top: auto; padding-top: 28px; display: inline-flex; align-items: center; gap: .65em; color: var(--brand-dark); font-size: 13px; font-weight: 700; }
.service-list { border-top: 1px solid var(--border); }
.home-consultation { padding-bottom: clamp(40px, 6vw, 80px); background: #eef3f5; }
.consultation-heading { padding: clamp(32px, 5vw, 64px) 0 72px; background: #1e303d; color: #fff; }
.consultation-kicker { margin: 0 0 12px; color: #ffada5; font-size: 13px; font-weight: 700; letter-spacing: .12em; }
.consultation-heading h2 { margin: 0 0 16px; color: #fff; font-size: clamp(27px, 3vw, 42px); line-height: 1.4; }
.consultation-lead { margin: 0; color: #e0e8ed; font-size: 16px; line-height: 1.85; }
.consultation-grid { position: relative; margin-top: -32px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.consultation-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border-radius: 8px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: 0 5px 16px #0000000a; }
.consultation-media { display: block; height: clamp(180px, 22vw, 270px); background: #f9faf9; overflow: hidden; }
.consultation-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.consultation-media.contain img { object-fit: contain; padding: 20px; }
.consultation-copy { display: flex; flex-direction: column; flex: 1; padding: clamp(18px, 3vw, 30px); }
.consultation-copy h3 { margin: 0 0 12px; font-size: clamp(20px, 2vw, 27px); line-height: 1.5; }
.consultation-copy p { margin: 0 0 24px; color: var(--slate); font-size: 15px; line-height: 1.85; }
.consultation-action { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 12px 18px; margin-top: auto; border-radius: 5px; background: var(--brand); color: #fff; font-size: 14px; line-height: 1.5; font-weight: 700; white-space: nowrap; }
.consultation-card:hover .consultation-action, .consultation-card:focus-visible .consultation-action { background: var(--brand-dark); }
@media (max-width: 500px) {
  .consultation-grid { grid-template-columns: 1fr; gap: 20px; }
  .consultation-media { height: 190px; }
  .consultation-lead { font-size: 14px; }
}
.service-row { padding: 29px 0; display: grid; grid-template-columns: 176px minmax(0, 1fr) auto; gap: clamp(24px, 4vw, 56px); align-items: center; border-bottom: 1px solid var(--border); text-decoration: none; }
.service-row-media { width: 100%; aspect-ratio: 8 / 5; display: flex; align-items: center; justify-content: center; overflow: hidden; background: var(--warm-white); }
.service-row-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .28s ease-out; }
.service-row-media.contain img { padding: 14px; object-fit: contain; }
.service-row:hover .service-row-media img { transform: scale(1.025); }
.service-row-copy { display: grid; gap: 8px; }
.service-row h3 { margin: 0; font-size: clamp(21px, 2vw, 28px); line-height: 1.5; }
.service-row p { margin: 0; color: var(--slate); font-size: 14px; }
.service-row-action { display: inline-flex; align-items: center; gap: .65em; color: var(--brand-dark); font-size: 13px; font-weight: 700; white-space: nowrap; }
.service-row:hover .service-row-action .link-arrow { transform: translateX(4px); }
.home #about-mission .text-link,
.home #services .service-row-action { min-height: 48px; width: fit-content; max-width: 100%; padding: 12px 20px; justify-content: center; gap: 14px; border: 1px solid var(--brand); border-radius: 6px; background: var(--brand); color: var(--white); font-size: 14px; line-height: 1.5; white-space: normal; transition: background-color .18s ease-out, border-color .18s ease-out; }
.home #about-mission .text-link .link-label,
.home #services .service-row-action .link-label { text-decoration: none; }
.home #about-mission .text-link:hover,
.home #services .service-row:hover .service-row-action,
.home #services .service-row:focus-visible .service-row-action { background: var(--brand-dark); border-color: var(--brand-dark); }
@media (max-width: 620px) {
  .home #about-mission .text-link,
  .home #services .service-row-action { width: 100%; justify-content: space-between; }
}

.pickup-archive { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pickup-card { min-width: 0; background: var(--white); border: 1px solid var(--border); transition: border-color .2s ease-out, box-shadow .2s ease-out, transform .2s ease-out; }
.pickup-card:hover { border-color: #b8c1c8; box-shadow: 0 18px 46px rgba(24,40,48,.09); transform: translateY(-3px); }
.pickup-card > a { height: 100%; padding: 0 24px 25px; display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.pickup-card-media { width: calc(100% + 48px); margin-left: -24px; aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #eef1f2; border-bottom: 1px solid var(--border); }
.pickup-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .28s ease-out; }
.pickup-card-media.contain img { padding: clamp(24px, 3vw, 42px); object-fit: contain; background: var(--white); }
.pickup-card:hover .pickup-card-media img { transform: scale(1.025); }
.pickup-card-category { margin-top: 22px; color: var(--brand-dark); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.pickup-card h3 { margin: 10px 0 10px; font-size: clamp(20px, 2vw, 25px); line-height: 1.48; }
.pickup-card p { margin: 0; color: var(--slate); font-size: 14px; line-height: 1.8; }
.pickup-card-action { margin-top: auto; padding-top: 24px; display: inline-flex; align-items: center; gap: .65em; color: var(--brand-dark); font-size: 13px; font-weight: 700; }
.pickup-card:hover .pickup-card-action .link-arrow { transform: translateX(4px); }
.breadcrumbs { padding-block: 8px; font-size: 12px; color: var(--slate); }
.breadcrumbs ol { margin: 0; padding: 0; display: flex; flex-wrap: wrap; list-style: none; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin: 0 10px; color: #9aa5ad; }
.breadcrumbs li, .breadcrumbs a, .breadcrumbs span { min-height: 44px; display: inline-flex; align-items: center; }
.breadcrumbs a { min-width: 44px; margin-inline: -4px; padding-inline: 4px; justify-content: center; text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.page-hero { position: relative; background: linear-gradient(118deg, #fafaf8 0%, #fafaf8 62%, #edf2f4 100%); overflow: hidden; border-bottom: 1px solid var(--border); }
.page-hero::after { content: ""; position: absolute; width: min(46vw, 640px); aspect-ratio: 1; top: -92%; right: -12%; border-radius: 50%; background: radial-gradient(circle, rgba(49,89,107,.1), transparent 67%); pointer-events: none; }
.page-hero-inner { position: relative; z-index: 1; min-height: 350px; padding-block: 72px 80px; display: flex; align-items: center; }
.page-hero--article .page-hero-inner { min-height: 300px; }
.page-hero--utility .page-hero-inner { min-height: 230px; padding-block: 52px 60px; }
.page-hero-copy { max-width: 900px; }
.page-hero--article .page-hero-copy { max-width: 820px; }
.page-hero--utility .page-hero-copy { max-width: 760px; }
.page-hero h1 { margin: 0; font-size: clamp(38px, 4.4vw, 60px); line-height: 1.22; letter-spacing: .01em; font-feature-settings: "palt" 1; text-wrap: balance; }
.page-intro { max-width: 700px; margin: 20px 0 0; color: #3f4f5a; font-size: 17px; line-height: 1.85; }

.training-track-list { border-top: 1px solid var(--border); }
.training-track { padding-block: 48px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); gap: clamp(42px, 7vw, 84px); align-items: center; border-bottom: 1px solid var(--border); }
.training-track--reverse { grid-template-columns: minmax(300px, .95fr) minmax(0, 1.05fr); }
.training-track--reverse .training-track-copy { order: 2; }
.training-track--compact { grid-template-columns: 1fr; gap: 28px; align-items: start; }
.training-track--compact .training-track-copy { max-width: 820px; }
.training-track--compact .content-image { max-width: 720px; }
.training-track-copy h3 { margin: 0 0 18px; font-size: clamp(24px, 2.4vw, 32px); line-height: 1.4; letter-spacing: .01em; }
.training-track-copy > p:not(.track-number) { color: #42525d; }
.track-number { margin: 0 0 12px; color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .13em; }
.training-track .content-image img { max-height: 390px; }
.training-track--reverse .content-image img { max-height: none; }
.manga-promo-row { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: end; }
.manga-promo-row h2 { max-width: 720px; margin: 0 0 12px; font-size: clamp(27px, 3vw, 38px); line-height: 1.5; }
.manga-promo-row p:not(.eyebrow) { max-width: 720px; margin-bottom: 0; color: var(--slate); }
.article-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(56px, 8vw, 112px); align-items: start; }
.article-index { position: sticky; top: calc(var(--header-height) + 40px); padding: 24px; border-top: 4px solid var(--brand); background: var(--warm-white); display: grid; gap: 10px; }
.article-index strong { padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.article-index a { min-height: 44px; display: flex; align-items: center; color: var(--slate); font-size: 13px; text-decoration: none; }
.article-index a:hover { color: var(--brand-dark); text-decoration: underline; }
.article-body { max-width: 760px; }
.article-body > section { margin-bottom: clamp(56px, 6vw, 80px); }
.article-body > section:last-child { margin-bottom: 0; }
.article-body .section-heading { margin-bottom: 28px; }
.step-list { margin: 0; padding: 0; list-style: none; }
.step-list li { display: grid; grid-template-columns: 92px 1fr; gap: 28px; padding: 32px 0; border-top: 1px solid var(--border); }
.step-list li > span { color: var(--brand); font-size: 13px; font-weight: 700; letter-spacing: .06em; }
.step-list h3 { margin: 0 0 10px; }
.step-list p { margin: 0; }
.consultation-box, .price-box { padding: clamp(28px, 5vw, 54px); background: var(--pale-blue); border: 1px solid var(--border); }
.consultation-box h2, .price-box h2 { margin-top: 0; }
.consultation-box ul { padding-left: 1.25em; }
.consultation-box .button { margin-top: 24px; }
.credit { margin: 0 0 24px; color: var(--slate); font-size: 14px; }
.company-manga .section-heading { max-width: 900px; }
.manga-sequence { margin-top: 44px; }
.manga-reading-guide { margin: 0 0 26px; color: var(--slate); font-size: 14px; }
.manga-reading-guide span { margin-right: 12px; color: var(--brand-dark); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.manga-grid { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 52px clamp(24px, 3vw, 40px); align-items: stretch; list-style: none; }
.manga-step { min-width: 0; }
.manga-panel { height: 100%; margin: 0; padding-top: 16px; display: grid; grid-template-rows: auto auto 1fr; border-top: 1px solid #b7c0c6; }
.manga-panel-heading { min-height: 94px; margin-bottom: 14px; display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; }
.manga-position { color: var(--brand); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.manga-panel-heading strong { font-size: 15px; line-height: 1.65; }
.manga-image { aspect-ratio: 8 / 5; padding: clamp(10px, 1.4vw, 18px); display: flex; align-items: center; justify-content: center; background: var(--white); border: 1px solid var(--border); }
.manga-image img { width: 100%; height: 100%; object-fit: contain; }
.manga-panel figcaption { padding-top: 14px; display: flex; flex-direction: column; align-items: flex-start; color: var(--slate); font-size: 13px; line-height: 1.75; }
.manga-panel figcaption p { margin: 0; }
.manga-document-link { margin-top: auto; padding-top: 12px; font-size: 14px; }
.event-records { display: grid; gap: 56px; }
.event-records h3 { margin: 0; font-size: clamp(24px, 2.5vw, 32px); line-height: 1.5; }
.event-records__seminars { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(40px, 7vw, 80px); align-items: start; }
.event-records__seminars .list-panel ul { margin-bottom: 0; }
.seminar-photo-stack { display: grid; gap: 20px; }
.seminar-photo-stack figure { margin: 0; }
.seminar-photo-stack img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.seminar-photo-stack figcaption { margin-top: 9px; color: var(--slate); font-size: 12px; }
.event-records__events { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); gap: clamp(40px, 7vw, 80px); align-items: start; }
.event-gallery { margin-top: 64px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 22px; }
.event-gallery figure { margin: 0; }
.event-gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: contain; background: var(--white); border: 1px solid var(--border); }
.event-gallery figcaption { margin-top: 9px; color: var(--slate); font-size: 12px; }
.list-panel ul { margin: 28px 0 36px; padding: 0; list-style: none; }
.list-panel li { padding: 13px 0 13px 22px; position: relative; border-bottom: 1px solid var(--border); }
.list-panel li::before { content: ""; position: absolute; left: 0; top: 26px; width: 7px; height: 2px; background: var(--brand); }
.experts-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: clamp(48px, 8vw, 96px); align-items: start; }
.experts-main > p { color: #42525d; }
.eeq-page { --eeq-red: #c90012; --eeq-ink: #18181b; --eeq-muted: #5b6068; --eeq-line: #d9dce1; --eeq-soft: #f6f7f8; --eeq-yellow: #fff31a; margin-top: clamp(40px, 6vw, 64px); overflow: hidden; color: var(--eeq-ink); background: var(--white); box-shadow: 0 18px 52px rgba(17, 24, 39, .09); font-feature-settings: "palt"; }
.eeq-hero { position: relative; padding: 34px clamp(22px, 4vw, 46px) 24px; }
.eeq-hero::after { content: ""; display: block; height: 5px; margin-top: 22px; background: var(--eeq-red); }
.eeq-hero__row { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.eeq-title-lockup { min-width: 0; }
.eeq-title-lockup h3 { margin: 0; font-size: clamp(24px, 3vw, 34px); line-height: 1.3; letter-spacing: .015em; }
.eeq-organization { flex: 0 0 auto; display: flex; align-items: center; gap: 11px; font-weight: 700; font-size: 11px; line-height: 1.55; }
.eeq-organization__seal { display: grid; place-items: center; width: 44px; height: 44px; color: var(--white); background: var(--eeq-red); border-radius: 50%; font-size: 10px; letter-spacing: .08em; box-shadow: inset 0 0 0 5px var(--white), 0 0 0 2px var(--eeq-red); }
.eeq-main { padding: 26px clamp(22px, 4vw, 46px) 44px; }
.eeq-overview { display: grid; grid-template-columns: 1fr; gap: 30px; align-items: center; }
.eeq-copy { padding: 6px 0; }
.eeq-eyebrow { margin: 0 0 14px; color: var(--eeq-red); font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eeq-lead, .eeq-support { margin: 0; font-size: clamp(17px, 2.1vw, 22px); line-height: 1.9; }
.eeq-lead { padding-bottom: 22px; border-bottom: 1px solid var(--eeq-line); }
.eeq-support { margin-top: 20px; }
.eeq-formula { display: block; margin: 7px 0 2px; font-weight: 800; line-height: 1.5; }
.eeq-accent { color: var(--eeq-red); }
.eeq-page strong { font-weight: 800; }
.eeq-chart-card { position: relative; margin: 0; padding: 14px 16px 8px; border: 1px solid #e5e7eb; border-radius: 16px; background: linear-gradient(180deg, #fff, #fbfbfc); box-shadow: 0 12px 36px rgba(17, 24, 39, .06); }
.eeq-chart-card svg { display: block; width: 100%; height: auto; }
.eeq-takeaway { display: grid; grid-template-columns: auto 1fr; gap: 16px 22px; align-items: center; margin-top: 34px; padding: 24px 26px; background: var(--eeq-soft); border-left: 6px solid var(--eeq-red); }
.eeq-takeaway__icon { width: 56px; height: 48px; background-color: var(--eeq-yellow); background-image: radial-gradient(circle at 2px 2px, #171717 0 1.15px, transparent 1.35px), radial-gradient(circle at 6px 6px, #171717 0 .8px, transparent 1px); background-size: 8px 8px; clip-path: polygon(0 0, 100% 0, 0 100%); }
.eeq-takeaway p { margin: 0; font-size: clamp(17px, 2vw, 22px); line-height: 1.8; }
.eeq-takeaway .eeq-takeaway-continuation { grid-column: 2; margin-top: -12px; color: #000; letter-spacing: .02em; }
.eeq-footer { display: flex; justify-content: space-between; gap: 18px; padding: 15px clamp(22px, 4vw, 46px); color: #686b70; border-top: 1px solid #eceef1; font-size: 10px; }
.experts-official-banner { display: block; width: 100%; margin-top: 28px; border: 1px solid #d4dce1; border-radius: 10px; overflow: hidden; background: #fff; box-shadow: 0 8px 24px rgba(27, 42, 52, .08); transition: transform .2s ease, box-shadow .2s ease; }
.experts-official-banner img { display: block; width: 100%; height: auto; }
.experts-official-banner:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(27, 42, 52, .14); }
.experts-official-banner:focus-visible { outline: 3px solid var(--brand-red); outline-offset: 3px; }
.experts-aside { padding: 26px 0 0; border-top: 1px solid #aeb8c1; background: transparent; }
.experts-aside-label { margin: 0 0 10px; color: var(--brand-dark) !important; font-size: 12px; font-weight: 700; letter-spacing: .12em; }
.experts-aside h2 { margin: 0 0 20px; font-size: clamp(24px, 2.4vw, 30px); line-height: 1.5; }
.experts-aside > p:not(.experts-aside-label) { color: #3f4f5a; }
.experts-role-note { font-size: .8em; line-height: 1.65; }
@media (min-width: 861px) {
  .experts-aside { --experts-sticky-top: calc(var(--header-height) + 24px); position: sticky; top: var(--experts-sticky-top); max-height: calc(100dvh - var(--experts-sticky-top) - 24px); overflow-y: auto; }
  .admin-bar .experts-aside { --experts-sticky-top: calc(var(--header-height) + 56px); }
}
.experts-hero-inner { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, .65fr); gap: clamp(38px, 6vw, 76px); }
.experts-hero .page-hero-copy { max-width: none; }
.experts-hero h1 { font-size: clamp(38px, 4vw, 54px); }
.experts-hero-brand { width: min(100%, 390px); justify-self: end; padding: clamp(18px, 2.4vw, 28px); border-left: 3px solid var(--brand); background: rgba(255, 255, 255, .72); box-shadow: 0 14px 36px rgba(31, 41, 51, .07); }
.experts-hero-brand img { width: 100%; height: auto; }
.qualification-materials .section-heading { max-width: 760px; }
.qualification-materials-grid { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.1fr); gap: clamp(48px, 7vw, 84px); align-items: start; }
.qualification-material { min-width: 0; padding-top: 28px; border-top: 1px solid #aeb8c1; }
.qualification-card-heading { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 24px; align-items: start; }
.qualification-card-heading h3, .qualification-conduct h3 { margin: 0 0 12px; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.5; }
.qualification-card-heading p, .qualification-conduct > p { margin: 0; color: #42525d; }
.qualification-conduct-preview { margin: 20px 0 28px; }
.qualification-conduct-preview a { display: block; }
.qualification-conduct-preview img { display: block; width: 100%; height: auto; }
.qualification-shield { width: 88px; height: auto; }
.qualification-card-sample { max-width: 560px; margin: 28px 0 0; }
.qualification-card-image { position: relative; overflow: hidden; border: 1px solid var(--border); background: var(--white); }
.qualification-card-image img { width: 100%; height: auto; }
.qualification-card-sample figcaption { margin-top: 10px; color: var(--slate); font-size: 12px; }
.qualification-conduct-list { margin: 24px 0 28px; padding: 0; list-style: none; counter-reset: conduct; border-top: 1px solid var(--border); }
.qualification-conduct-list li { position: relative; padding: 15px 0 15px 42px; counter-increment: conduct; border-bottom: 1px solid var(--border); }
.qualification-conduct-list li::before { content: counter(conduct, decimal-leading-zero); position: absolute; top: 16px; left: 0; color: var(--brand-dark); font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.document-link { min-height: 44px; width: fit-content; display: inline-flex; align-items: center; gap: .65em; color: var(--brand-dark); font-weight: 700; text-decoration: none; }
.document-link:hover .link-arrow { transform: translate(2px, -2px); }
.regional-network-intro { background: var(--white); }
.regional-network-logo { width: min(100%, 500px); height: auto; display: block; margin: 0 auto clamp(36px, 5vw, 54px); }
.regional-phases-section { background: var(--white); }
.phase-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(56px, 8vw, 104px); align-items: start; }
.phase-lead { color: #42525d; }
.phase-layout .content-image { max-width: 420px; margin-top: 30px; }
.phase-layout .content-image img { background: var(--white); }
.phase-grid { display: grid; border-top: 1px solid var(--border); }
.phase-grid article { padding: 30px 0; border-bottom: 1px solid var(--border); }
.phase-grid span { color: var(--brand-dark); font-size: 13px; font-weight: 700; }
.phase-grid h3 { margin: 12px 0 8px; font-size: 22px; }
.phase-grid p { margin: 0; color: #42525d; }
.regional-information-section { background: var(--white); }
.private-shelter-section { background: linear-gradient(180deg, #f4f7f4 0%, var(--white) 72%); }
.private-shelter-layout { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); gap: clamp(52px, 8vw, 104px); align-items: center; }
.private-shelter-copy > p { color: #42525d; }
.private-shelter-logo { width: min(100%, 380px); height: auto; margin: 0 0 36px; }
.private-shelter-copy > .private-shelter-audience { margin: 0 0 12px; color: var(--brand-dark); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.private-shelter-official-link { margin-top: 28px; }
.regional-official-banner { display: block; width: 100%; border: 1px solid #d4dce1; border-radius: 10px; overflow: hidden; background: #fff; box-shadow: 0 8px 24px rgba(27, 42, 52, .08); transition: transform .2s ease, box-shadow .2s ease; }
.regional-official-banner img { display: block; width: 100%; height: auto; }
.regional-official-banner:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(27, 42, 52, .14); }
.regional-official-banner:focus-visible { outline: 3px solid var(--brand-red); outline-offset: 3px; }
.private-shelter-media { min-width: 0; margin: 0; }
.shelter-video-frame { position: relative; overflow: hidden; background: #182a27 url("../media/private-emergency-shelter-poster.webp") center center / cover no-repeat; box-shadow: 0 24px 60px rgba(24,42,39,.14); }
.shelter-video { width: 100%; aspect-ratio: 16 / 9; display: block; object-fit: cover; }
.private-shelter-media figcaption { margin-top: 12px; color: var(--slate); font-size: 12px; }
.editorial-split { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(56px, 9vw, 120px); align-items: center; }
.editorial-split.reverse { grid-template-columns: .8fr 1.2fr; }
.editorial-split.reverse > :first-child { order: 2; }
.content-image { margin: 0; }
.content-image img { width: auto; max-width: 100%; margin-inline: auto; border: 1px solid var(--border); object-fit: cover; }
.content-image.contain img { padding: 22px; object-fit: contain; background: var(--white); }
.content-image figcaption { margin-top: 10px; color: var(--slate); font-size: 12px; }
.regional-journal-section .content-image figcaption { text-align: center; }
.regional-media-group { min-width: 0; margin: 0; }
.regional-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; }
.regional-media-grid img { width: 100%; height: auto; aspect-ratio: 4 / 3; display: block; border: 1px solid var(--border); object-fit: contain; background: var(--white); }
.regional-media-group figcaption { margin-top: 12px; color: var(--slate); font-size: 12px; text-align: center; }
.benefit-list { margin: 20px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--border); }
.benefit-list li { padding: 22px 0; display: grid; grid-template-columns: 42px 1fr; gap: 16px; border-bottom: 1px solid var(--border); }
.benefit-list span { color: var(--brand); font-size: 13px; }
.benefit-list h3 { margin: 0 0 6px; font-size: 17px; }
.benefit-list p { margin: 0; color: var(--slate); font-size: 14px; font-weight: 400; }
.program-list { display: grid; border-top: 1px solid var(--border); }
.program-list article { padding-block: 30px; display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); gap: 32px; align-items: center; border-bottom: 1px solid var(--border); }
.program-list article > div > h3 { margin-top: 0; }
.program-list article > div > p { margin-bottom: 0; }
.program-list .content-image { max-width: 560px; }
.program-list__text { grid-template-columns: 1fr !important; }
.price-label { margin-bottom: 10px !important; color: var(--slate); font-size: 13px; font-weight: 700; }
.price-row { margin: 0 0 28px; padding: 24px; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 14px 22px; align-items: center; background: var(--white); border: 1px solid var(--border); }
.price-row > div { display: grid; gap: 4px; }
.price-row > div > span { color: var(--slate); font-size: 13px; font-weight: 700; }
.price-row strong { color: var(--ink); font-size: clamp(24px, 2.6vw, 30px); line-height: 1.35; }
.price-row .price-discount strong { color: var(--brand-dark); }
.price-arrow { color: var(--brand); font-size: 24px; }
.price-row small { grid-column: 1 / -1; color: var(--slate); }
.external-links { display: grid; gap: 8px; }
.external-text-link { min-height: 44px; width: fit-content; display: inline-flex; align-items: center; gap: .65em; color: var(--brand-dark); font-weight: 700; text-decoration: none; }
.external-text-link:hover .link-arrow { transform: translate(2px, -2px); }
.about-facts { max-width: 900px; }
.about-facts dl { margin: 0; border-top: 1px solid var(--border); }
.about-facts dl > div { display: grid; grid-template-columns: 220px 1fr; padding: 23px 0; border-bottom: 1px solid var(--border); }
.about-facts dt { font-weight: 700; }
.about-facts dd { margin: 0; display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.about-members { max-width: 980px; }
.about-representative { margin: 0 0 46px; border-top: 1px solid var(--border); }
.about-representative > div { padding: 23px 0; display: grid; grid-template-columns: 220px 1fr; border-bottom: 1px solid var(--border); }
.about-representative dt { font-weight: 700; }
.about-representative dd { margin: 0; }
.member-subheading { margin: 0 0 18px; font-size: clamp(20px, 2.1vw, 25px); }
.member-subheading span { color: var(--slate); font-size: 13px; font-weight: 500; }
.council-member-table { width: 100%; border-collapse: collapse; background: var(--white); }
.council-member-table th, .council-member-table td { padding: 18px 20px; border: 1px solid var(--border); text-align: left; vertical-align: top; }
.council-member-table thead th { background: #eef2f4; font-size: 13px; letter-spacing: .05em; }
.council-member-table tbody th { width: 24%; font-weight: 700; white-space: nowrap; }
.council-member-table td { color: var(--slate); }
.member-position { margin-left: .65em; color: var(--ink); white-space: nowrap; }
.cooperation-name-list { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 6vw, 72px); list-style: none; }
.cooperation-name-list li { padding: 17px 0; border-bottom: 1px solid var(--border); color: var(--slate); font-size: 14px; line-height: 1.75; }
.cooperation-name-list li { display: flex; align-items: center; gap: 18px; }
.cooperation-logo { flex: 0 0 100px; height: 64px; display: flex; align-items: center; justify-content: center; }
.cooperation-logo img { max-width: 100%; max-height: 64px; width: auto; height: auto; object-fit: contain; }
.cooperation-name { min-width: 0; }
@media (max-width: 620px) {
  .cooperation-name-list li { gap: 14px; }
  .cooperation-logo { flex-basis: 80px; height: 56px; }
  .cooperation-logo img { max-height: 56px; }
}

.sitemap-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(56px, 9vw, 120px); align-items: start; }
.sitemap-layout > .section-heading { position: sticky; top: calc(var(--header-height) + 48px); }
.sitemap-nav { border-top: 1px solid var(--border); }
.sitemap-group { padding-block: 34px; border-bottom: 1px solid var(--border); }
.sitemap-group h2 { margin: 0 0 18px; color: var(--slate); font-size: 14px; line-height: 1.5; letter-spacing: .08em; }
.sitemap-group ul { margin: 0; padding: 0; list-style: none; }
.sitemap-group li { padding-block: 16px; }
.sitemap-group li + li { border-top: 1px solid #e8ecef; }
.sitemap-group .text-link { margin-top: 0; font-size: clamp(17px, 1.7vw, 21px); }
.sitemap-group li > p { max-width: 600px; margin: 4px 0 0; color: var(--slate); font-size: 14px; line-height: 1.8; }
.sitemap-group .sitemap-child { padding-left: clamp(20px, 4vw, 48px); }
.sitemap-child .text-link { font-size: 16px; }

.contact-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(56px, 9vw, 120px); align-items: start; }
.contact-form { padding: clamp(28px, 5vw, 54px); background: var(--warm-white); border: 1px solid var(--border); }
.form-status { margin: 0 0 28px; padding-bottom: 16px; border-bottom: 1px solid var(--border); color: #3f4f5a; font-size: 13px; line-height: 1.7; }
.contact-form label { margin-bottom: 22px; display: grid; gap: 7px; font-weight: 700; }
.field-label { display: flex; align-items: baseline; gap: 8px; }
.field-label small { color: var(--slate); font-size: 12px; font-weight: 500; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; min-height: 50px; padding: 10px 12px; border: 1px solid #6f7d86; border-radius: 0; background: var(--white); color: var(--ink); }
.contact-form textarea { resize: vertical; }
.contact-subjects { min-width: 0; margin: 0 0 28px; padding: 0; border: 0; }
.contact-subjects legend { margin: 0 0 10px; padding: 0; font-weight: 700; }
.contact-subjects legend span { margin-left: 8px; color: var(--slate); font-size: 12px; font-weight: 500; }
.contact-subjects__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.contact-subjects__list label { min-height: 52px; margin: 0; padding: 9px 12px; display: flex; align-items: center; gap: 9px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); background: var(--white); color: var(--ink); font-weight: 500; cursor: pointer; }
.contact-subjects__list label:hover { background: #fff7f7; }
.contact-subjects__list label:has(input:checked) { background: #fff2f2; box-shadow: inset 0 0 0 1px var(--brand-dark); }
.contact-subjects__list label > span { margin: 0; color: inherit; font-size: 13px; font-weight: inherit; }
.contact-subjects__list input { width: 18px; min-height: 18px; padding: 0; accent-color: var(--brand); }
.contact-subjects__list input:checked + span { color: var(--brand-dark); font-weight: 700; }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.checkbox-label { min-height: 44px; grid-template-columns: 24px 1fr; align-items: center; font-size: 14px; font-weight: 500 !important; }
.checkbox-label input { width: 20px; min-height: 20px; margin: 0; }

.contact-cta { padding-block: 68px; background: var(--pale-blue); border-top: 1px solid var(--border); }
.contact-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 44px; }
.contact-cta h2 { margin: 0; font-size: clamp(27px, 2.8vw, 36px); line-height: 1.5; }
.contact-cta p:not(.eyebrow) { margin-bottom: 0; color: var(--slate); }
.contact-cta .button { flex: 0 0 auto; }
.source-mark { max-width: 520px; margin: 34px 0 8px; }
.source-mark img { width: 100%; height: auto; border: 1px solid var(--border); }
.source-mark figcaption { margin-top: 8px; color: var(--slate); font-size: 12px; }

.site-footer { background: var(--white); color: var(--ink); border-top: 3px solid var(--brand); }
.footer-inner { width: min(calc(100% - 64px), var(--max-width)); margin: auto; padding-block: 68px; display: grid; grid-template-columns: 1fr 1.3fr; gap: 72px; }
.footer-brand { display: flex; align-items: flex-start; }
.footer-brand img { width: min(100%, 300px); height: auto; }
.footer-inner nav { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 32px; }
.footer-inner nav a { min-height: 44px; display: flex; align-items: center; color: #3f4f5a; font-size: 13px; text-decoration: none; }
.footer-inner nav a:hover { color: var(--brand-dark); text-decoration: underline; }
.footer-bottom { border-top: 1px solid var(--border); padding: 18px max(32px, calc((100% - var(--max-width))/2)); display: flex; color: var(--slate); font-size: 12px; }

@keyframes hero-enter {
  from { opacity: .82; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: no-preference) {
  .home-hero-copy > * { animation: hero-enter .68s cubic-bezier(.2,.7,.2,1) both; }
  .home-hero-copy > :nth-child(2) { animation-delay: .06s; }
  .home-hero-copy > :nth-child(3) { animation-delay: .12s; }
  .home-hero-copy > :nth-child(4) { animation-delay: .18s; }
  .page-hero-copy { animation: hero-enter .62s cubic-bezier(.2,.7,.2,1) both; }
}

@media (max-width: 1180px) {
  .desktop-nav { display: none; }
  .mobile-nav { display: block; position: relative; }
  .mobile-menu-panel nav { max-width: 640px; margin-inline: auto; }
}

@media (max-width: 1120px) {
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .manga-sequence { max-width: 900px; margin-inline: auto; }
  .manga-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  .home-hero-inner { padding-block: 72px 80px; }
  .home-hero-copy { max-width: 620px; }
  .home-hero h1 { max-inline-size: 11em; font-size: clamp(44px, 8vw, 60px); }
}

@media (max-width: 860px) {
  :root { --header-height: 66px; }
  .wrap { width: min(calc(100% - 40px), var(--max-width)); }
  .header-inner { width: calc(100% - 32px); }
  .brand { min-width: 0; }
  .brand-logo { width: 218px; }
  .brand-tagline { display: none; }
  .service-row { grid-template-columns: 150px minmax(0, 1fr); gap: 22px 28px; }
  .service-row-action { grid-column: 2; }
  .split-intro, .article-layout, .editorial-split, .editorial-split.reverse, .contact-layout, .phase-layout, .experts-layout, .qualification-materials-grid, .private-shelter-layout, .event-records__seminars, .event-records__events, .training-track, .training-track--reverse, .sitemap-layout { grid-template-columns: 1fr; }
  .split-intro .section-heading, .article-index, .sitemap-layout > .section-heading { position: static; }
  .training-track--reverse .training-track-copy { order: 0; }
  .page-hero-inner { min-height: 290px; }
  .page-hero--article .page-hero-inner { min-height: 250px; }
  .page-hero--utility .page-hero-inner { min-height: 190px; }
  .article-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
  .article-index strong { width: 100%; }
  .article-index strong { grid-column: 1 / -1; }
  .editorial-split.reverse > :first-child { order: 0; }
  .editorial-split, .editorial-split.reverse { gap: 36px; }
  .phase-layout, .contact-layout { gap: 44px; }
  .qualification-materials-grid { max-width: 760px; gap: 56px; }
  .private-shelter-layout { gap: 42px; }
  .private-shelter-logo { width: min(100%, 320px); }
  .event-records__seminars { gap: 36px; }
  .seminar-photo-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-records__events { gap: 36px; }
  .event-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.experts-hero-inner { grid-template-columns: 1fr; gap: 34px; }
	.experts-hero-brand { width: min(68%, 390px); justify-self: start; }
  .manga-promo-row { grid-template-columns: 1fr; gap: 18px; align-items: start; }
  .pickup-archive { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .manga-sequence { max-width: 640px; }
  .manga-grid { display: flex; gap: 20px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: inline mandatory; scrollbar-width: thin; }
  .manga-step { flex: 0 0 100%; scroll-snap-align: start; }
  .manga-panel-heading { min-height: 0; }
}

@media (max-width: 620px) {
  body { line-height: 1.85; }
  .wrap { width: calc(100% - 32px); }
  .section { padding-block: 68px; }
  .section-heading { margin-bottom: 32px; }
  .home-hero { min-height: 620px; }
  .home-hero-media { background-position: 58% center; }
  .home-hero-video { object-position: 54% center; }
  .home-hero-shade { background: linear-gradient(90deg, rgba(11,23,29,.88), rgba(11,23,29,.55)), linear-gradient(0deg, rgba(8,18,23,.5), transparent 56%); }
  .home-hero-inner { min-height: 620px; padding-block: 60px 68px; align-items: flex-end; }
  .home-hero h1 { font-size: clamp(40px, 11vw, 46px); line-height: 1.2; }
  .hero-motion-control { top: 14px; right: 16px; bottom: auto; }
  .hero-lead, .page-intro { font-size: 16px; }
  .hero-actions { display: grid; }
  .button { width: 100%; }
  .prose-large { font-size: 16px; }
  .service-grid, .form-row, .contact-subjects__list { grid-template-columns: 1fr; }
  .pickup-archive { grid-template-columns: 1fr; }
  .service-row { grid-template-columns: 1fr; gap: 10px; }
  .service-row-media { margin-bottom: 8px; aspect-ratio: 16 / 9; }
  .service-row-action { grid-column: auto; margin-top: 4px; white-space: normal; }
  .page-hero-inner { min-height: 0; padding-block: 56px 64px; }
  .page-hero--article .page-hero-inner { min-height: 0; padding-block: 44px 52px; }
  .page-hero--utility .page-hero-inner { min-height: 0; padding-block: 38px 46px; }
  .page-hero h1 { font-size: clamp(32px, 9.2vw, 38px); line-height: 1.28; }
	.experts-hero-inner { gap: 28px; }
	.experts-hero-brand { width: min(88%, 360px); padding: 16px 18px; }
  .article-index { padding: 18px; }
  .article-index { grid-template-columns: 1fr; }
  .article-index strong { grid-column: auto; }
  .step-list li { grid-template-columns: 1fr; gap: 8px; }
  .content-image.contain img { padding: 12px; }
  .program-list article { grid-template-columns: 1fr; gap: 20px; }
  .training-track { padding-block: 36px; gap: 28px; }
  .training-track .content-image img { max-height: 340px; }
  .event-records { gap: 44px; }
  .seminar-photo-stack { grid-template-columns: 1fr; gap: 28px; }
  .event-gallery { margin-top: 48px; grid-template-columns: 1fr; gap: 28px; }
  .experts-aside { padding: 24px 0 0; }
  .eeq-hero { padding: 25px 18px 18px; }
  .eeq-hero__row { container-type: inline-size; }
  .eeq-title-lockup { flex: 1; }
  .eeq-title-lockup h3 { font-size: min(24px, calc((100vw - 80px) / 16)); font-size: min(24px, 6cqi); white-space: nowrap; }
  .eeq-organization { display: none; }
  .eeq-main { padding: 14px 18px 32px; }
  .eeq-overview { gap: 24px; }
  .eeq-lead, .eeq-support { font-size: 16px; line-height: 1.8; }
  .eeq-chart-card { margin-inline: -8px; padding: 7px 4px 2px; border-radius: 10px; }
  .eeq-takeaway { grid-template-columns: 44px 1fr; padding: 20px 16px; gap: 11px 14px; }
  .eeq-takeaway__icon { width: 44px; height: 38px; }
  .eeq-takeaway p { font-size: 16px; }
  .eeq-footer { flex-direction: column; gap: 3px; padding-inline: 18px; }
  .qualification-materials-grid { gap: 44px; }
  .qualification-card-heading { grid-template-columns: 64px minmax(0, 1fr); gap: 16px; }
  .qualification-shield { width: 64px; }
  .regional-media-grid { grid-template-columns: 1fr; }
  .regional-media-grid .content-image img { aspect-ratio: auto; }
  .price-row { grid-template-columns: 1fr; gap: 12px; }
  .price-arrow { transform: rotate(90deg); justify-self: start; }
  .price-row small { grid-column: auto; }
  .about-facts dl > div { grid-template-columns: 1fr; gap: 8px; }
  .about-representative > div { grid-template-columns: 1fr; gap: 8px; }
  .council-member-table { background: transparent; }
  .council-member-table thead { display: none; }
  .council-member-table, .council-member-table tbody, .council-member-table tr, .council-member-table th, .council-member-table td { display: block; width: 100%; }
  .council-member-table tbody tr { padding: 18px 0; border-bottom: 1px solid var(--border); }
  .council-member-table tbody tr:first-child { border-top: 1px solid var(--border); }
  .council-member-table tbody th, .council-member-table tbody td { padding: 0; border: 0; }
  .council-member-table tbody th { white-space: normal; }
  .council-member-table tbody td { margin-top: 6px; }
  .member-position { display: block; margin: 4px 0 0; }
  .cooperation-name-list { grid-template-columns: 1fr; }
  .sitemap-group { padding-block: 28px; }
  .sitemap-group .sitemap-child { padding-left: 18px; }
  .contact-cta-inner { align-items: stretch; flex-direction: column; }
  .footer-inner { width: calc(100% - 32px); grid-template-columns: 1fr; gap: 42px; padding-block: 52px; }
  .footer-inner nav { grid-template-columns: 1fr; }
  .footer-bottom { padding-inline: 16px; flex-direction: column; gap: 5px; }
}

@media (max-width: 360px) {
  .header-inner { gap: 10px; }
  .brand-logo { width: 180px; }
  .mobile-menu-button { padding-inline: 10px; }
  .home-hero h1 { font-size: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .home-hero-copy > *, .page-hero-copy { animation: none !important; opacity: 1; transform: none; }
  .home-hero-video, .hero-motion-control { display: none; }
  .text-link:hover .link-arrow, .service-row:hover .link-arrow, .external-text-link:hover .link-arrow, .pickup-card:hover .pickup-card-action .link-arrow { transform: none; }
  .service-row:hover .service-row-media img, .pickup-card:hover .pickup-card-media img { transform: none; }
  .pickup-card:hover { transform: none; }
}
