:root {
  --ink: #153348;
  --ink-soft: #4f6775;
  --aqua: #0ca7b3;
  --aqua-dark: #087783;
  --blue: #0e6da9;
  --pale: #effafa;
  --pale-blue: #e5f3f8;
  --white: #ffffff;
  --line: #cfe0e4;
  --navy: #0e3149;
  --danger: #b23b39;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  color: var(--ink);
  background: #dfe6e8;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #dfe6e8; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-frame {
  width: min(100%, 384px);
  min-height: 100vh;
  margin: 0 auto;
  overflow: visible;
  background: var(--white);
  box-shadow: 0 20px 70px rgba(14, 49, 73, .22);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 20px;
  border-bottom: 1px solid rgba(21, 51, 72, .08);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(12px);
  transition: height .22s ease, padding .22s ease, box-shadow .22s ease;
}

.site-logo img { width: 57px; height: 57px; object-fit: contain; }
.menu-button { width: 43px; height: 43px; padding: 9px; border: 0; border-radius: 50%; display: grid; align-content: center; gap: 4px; color: var(--ink); background: #e5f7f7; cursor: pointer; }
.menu-button span { width: 19px; height: 1px; margin: auto; background: currentColor; transition: transform .2s, opacity .2s; }
.menu-button b { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.site-menu { position: fixed; z-index: 25; inset: 72px auto 0 50%; width: min(100%, 384px); padding: 30px 24px 110px; transform: translateX(-50%) translateY(-110%); display: flex; flex-direction: column; overflow-y: auto; background: rgba(244, 253, 253, .99); transition: transform .28s ease; }
.site-menu.is-open { transform: translateX(-50%) translateY(0); }
.site-menu a { padding: 17px 4px; border-bottom: 1px solid var(--line); text-decoration: none; font-size: 15px; font-weight: 700; }
.site-menu .menu-cta { margin-top: 24px; padding: 16px; border: 0; border-radius: 30px; text-align: center; color: white; background: var(--aqua); }

.home-hero { padding: 44px 24px 34px; background: linear-gradient(164deg, #f8ffff 0 73%, #ddf5f3 73%); }
.pill { display: inline-block; margin: 0 0 15px; padding: 7px 10px; border: 1px solid #7bd2d7; border-radius: 20px; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.home-hero h1 { margin: 0; font-size: clamp(30px, 9.1vw, 35px); line-height: 1.3; letter-spacing: -.045em; }
.home-hero h1 span { display: block; white-space: nowrap; }
.accent-text { color: #0b9da8; }
.hero-lead { margin: 22px 0 0; font-size: 15px; line-height: 1.9; }
.hero-actions { margin-top: 25px; }

.button { display: block; width: 100%; padding: 15px 18px; border: 1px solid transparent; border-radius: 30px; text-align: center; text-decoration: none; font-size: 14px; font-weight: 800; cursor: pointer; }
.button-primary { color: white; background: var(--aqua); box-shadow: 0 8px 20px rgba(12, 167, 179, .18); }
.button-primary:hover, .button-primary:focus-visible { background: var(--aqua-dark); }
.button-outline { margin-top: 10px; color: var(--blue); border-color: var(--blue); background: transparent; }
.button-text { padding-block: 13px 0; color: var(--ink); background: transparent; font-size: 11px; }
.button-text span { color: var(--aqua); }

.orbit-card { position: relative; height: 190px; margin-top: 34px; overflow: hidden; border-radius: 19px; color: white; background: radial-gradient(circle at 50% 50%, white 0 14%, transparent 15%), linear-gradient(135deg, #0ca3af, #1672b2); }
.orbit-card::before, .orbit-card::after { content: ""; position: absolute; border: 1px solid rgba(255, 255, 255, .3); border-radius: 50%; }
.orbit-card::before { width: 200px; height: 110px; left: 35px; top: 35px; transform: rotate(18deg); }
.orbit-card::after { width: 115px; height: 170px; left: 78px; top: 7px; transform: rotate(-32deg); }
.orbit { position: absolute; z-index: 2; width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .65); border-radius: 50%; font-size: 10px; }
.orbit-ai { left: 27px; top: 30px; }.orbit-dx { right: 26px; top: 25px; }.orbit-bpo { left: 43px; bottom: 23px; }
.orbit-card strong { position: absolute; z-index: 2; right: 43px; bottom: 28px; width: 49px; height: 49px; display: grid; place-items: center; border-radius: 50%; color: #0a7d8b; background: white; font-size: 11px; }

.section { padding: 60px 24px; }
.section-label { margin: 0 0 9px; color: var(--aqua-dark); font-size: 9px; font-weight: 900; letter-spacing: .17em; }
.section h2, .final-cta h2, .simple-cta h2 { margin: 0 0 20px; font-size: clamp(24px, 7.2vw, 28px); line-height: 1.45; letter-spacing: -.035em; }
.section > p:not(.section-label):not(.small-note):not(.legal-note), .final-cta p { font-size: 15px; line-height: 1.95; }
.intro-section { background: white; }

.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 30px; }
.service-grid article { min-height: 174px; padding: 15px; border-radius: 14px; background: #edf8f8; }
.service-grid b { color: var(--aqua); font-size: 10px; }
.service-grid h3 { margin: 27px 0 7px; font-size: 15px; }
.service-grid p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.75; }

.wide-photo { position: relative; margin: 0; height: 265px; overflow: hidden; background: var(--navy); }
.wide-photo img { width: 100%; height: 100%; object-fit: cover; }
.wide-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(9, 35, 54, .78)); }
.wide-photo figcaption { position: absolute; z-index: 2; left: 22px; bottom: 19px; color: white; font-size: 9px; font-weight: 800; letter-spacing: .13em; }

.location-section { color: white; background: #126ea8; border-radius: 25px 25px 0 0; }
.location-section .section-label { color: #bfeef1; }
.location-section > p { color: #e5f2f8; }
.image-card { margin: 30px -8px 0; overflow: hidden; border-radius: 16px; color: var(--ink); background: white; }
.image-card img { width: 100%; height: 185px; object-fit: cover; }
.image-card div { padding: 18px; }
.image-card small { color: var(--aqua-dark); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.image-card h3 { margin: 8px 0 0; font-size: 20px; line-height: 1.5; }
.reason-list { margin-top: 32px; }
.reason-list article { display: grid; grid-template-columns: 39px 1fr; gap: 13px; align-items: start; padding: 17px 0; border-top: 1px solid rgba(255, 255, 255, .22); }
.reason-list article > span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: white; font-size: 10px; font-weight: 900; }
.reason-list h3 { margin: 0 0 5px; font-size: 15px; }.reason-list p { margin: 0; color: #dcebf3; font-size: 12px; line-height: 1.75; }

.approach-section { background: #f4fbfb; }
.approach-steps { margin-top: 29px; border-left: 1px solid #96ced2; }
.approach-steps article { position: relative; padding: 0 0 30px 26px; }
.approach-steps article::before { content: ""; position: absolute; left: -5px; top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--aqua); box-shadow: 0 0 0 5px #d7f0f0; }
.approach-steps b { color: var(--aqua); font-size: 9px; letter-spacing: .12em; }
.approach-steps h3 { margin: 5px 0; font-size: 17px; }.approach-steps p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.8; }
.small-note { margin: 0; padding: 14px; border-left: 3px solid var(--aqua); color: var(--ink-soft); background: white; font-size: 11px; line-height: 1.8; }

.network-section { background: white; }
.office-photo { margin: 27px 0 25px; border-radius: 16px; overflow: hidden; }
.office-photo img { width: 100%; height: 190px; object-fit: cover; }
.role-cards article { padding: 19px 0; border-top: 1px solid var(--line); }
.role-cards small { color: var(--aqua-dark); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.role-cards h3 { margin: 6px 0; font-size: 18px; }.role-cards p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.8; }
.legal-note { margin-top: 18px; padding: 13px; color: #677882; background: #f3f6f7; font-size: 10px; line-height: 1.8; }

.faq-preview { background: #f3fafa; }
.faq-preview > a:not(.inline-link) { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 19px 0; border-top: 1px solid var(--line); text-decoration: none; font-size: 14px; font-weight: 700; line-height: 1.6; }
.faq-preview > a b { color: var(--aqua); font-size: 20px; font-weight: 400; }
.inline-link { display: inline-block; margin-top: 22px; color: var(--aqua-dark); font-size: 12px; font-weight: 800; text-decoration: none; }

.final-cta { color: var(--ink); background: white; }
.cta-visual { height: 230px; overflow: hidden; }.cta-visual img { width: 100%; height: 100%; object-fit: cover; }
.cta-content { padding: 48px 24px 60px; text-align: center; }
.cta-content .section-label { color: var(--aqua-dark); }.cta-content p { color: var(--ink-soft); }.cta-content .button { margin-top: 10px; }

.site-footer { padding: 45px 24px 92px; color: #cbdbe4; background: var(--navy); }
.site-footer > img { width: 72px; height: 72px; object-fit: contain; padding: 5px; border-radius: 9px; background: white; }
.site-footer p { margin: 20px 0; font-size: 10px; line-height: 1.85; }.site-footer p b { color: white; font-size: 12px; }
.site-footer nav { display: grid; gap: 0; margin: 28px 0; }.site-footer nav a { padding: 11px 0; border-bottom: 1px solid rgba(255, 255, 255, .13); font-size: 10px; text-decoration: none; }
.site-footer small { color: #7f9aaa; font-size: 8px; letter-spacing: .08em; }
.bottom-cta { position: fixed; z-index: 20; left: 50%; bottom: 0; width: min(100%, 384px); padding: 10px 16px max(10px, env(safe-area-inset-bottom)); transform: translateX(-50%) translateY(110%); opacity: 0; pointer-events: none; background: rgba(255, 255, 255, .96); box-shadow: 0 -6px 22px rgba(14, 49, 73, .12); transition: transform .22s ease, opacity .22s ease; }
.bottom-cta.is-visible { transform: translateX(-50%) translateY(0); opacity: 1; pointer-events: auto; }
.bottom-cta a { display: block; padding: 13px; border-radius: 28px; text-align: center; color: white; background: var(--aqua); text-decoration: none; font-size: 12px; font-weight: 800; }

.page-hero { padding: 54px 24px 48px; background: linear-gradient(160deg, #f7ffff, #def5f3); }
.page-hero h1 { margin: 8px 0 14px; font-size: 35px; letter-spacing: -.04em; }.page-hero > p:last-child { margin: 0; color: var(--ink-soft); font-size: 15px; line-height: 1.9; }

.faq-list { padding-top: 34px; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 22px 36px 22px 0; list-style: none; font-size: 14px; font-weight: 800; line-height: 1.65; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::before, .faq-list summary::after { content: ""; position: absolute; right: 7px; top: 32px; width: 15px; height: 1px; background: var(--aqua); transition: transform .2s; }
.faq-list summary::after { transform: rotate(90deg); }.faq-list details[open] summary::after { transform: rotate(0); }
.faq-list details div { padding: 0 8px 22px 0; }.faq-list details p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.9; }
.simple-cta { padding: 55px 24px 68px; text-align: center; background: #e8f7f7; }.simple-cta .button { margin-top: 10px; }

.contact-hero { background: linear-gradient(160deg, #f7ffff, #dceff8); }
.form-section { padding-top: 34px; }
.referral-notice { margin-bottom: 26px; padding: 15px; border: 1px solid #8dd0d4; border-radius: 10px; background: #eefafa; }.referral-notice b { font-size: 13px; }.referral-notice p { margin: 5px 0 0; color: var(--ink-soft); font-size: 11px; line-height: 1.7; }
.required-note { font-size: 11px !important; }.required-note span, .form-field span b, legend span, .meeting-schedule-heading h2 span, .consent b { color: var(--danger); font-size: 9px; }
form fieldset { margin: 0 0 26px; padding: 0; border: 0; } form legend { margin-bottom: 12px; font-size: 13px; font-weight: 800; }
.radio-card { display: flex; align-items: center; gap: 10px; margin: 8px 0; padding: 14px; border: 1px solid var(--line); border-radius: 10px; font-size: 13px; cursor: pointer; }.radio-card:has(input:checked) { border-color: var(--aqua); background: #edfafa; }.radio-card input { accent-color: var(--aqua); }
.meeting-schedule { margin: -4px 0 30px; padding: 20px; border: 1px solid #9ed5d8; border-radius: 12px; background: #f0fbfb; }
.meeting-schedule-heading h2 { margin: 0; font-size: 17px; line-height: 1.55; }
.meeting-schedule-heading p { margin: 8px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.8; }
.meeting-candidate { margin-top: 20px; padding-top: 18px; border-top: 1px solid #c5e2e4; }
.meeting-candidate-title { margin: 0; color: var(--navy); font-size: 14px; font-weight: 800; }
.meeting-fields { display: grid; gap: 0; }
.meeting-fields .form-field { margin: 13px 0 0; }
.form-field { display: grid; gap: 8px; margin: 22px 0; }.form-field > span { font-size: 13px; font-weight: 800; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-height: 48px; padding: 12px; border: 1px solid #b8cbd1; border-radius: 7px; color: var(--ink); background: white; font-size: 16px; }.form-field textarea { resize: vertical; }.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 2px solid rgba(12, 167, 179, .25); border-color: var(--aqua); }
.consent { display: grid; grid-template-columns: 22px 1fr; gap: 8px; align-items: start; margin: 30px 0 22px; padding: 15px; border-radius: 9px; background: #f1f6f7; font-size: 11px; line-height: 1.75; }.consent input { width: 18px; height: 18px; accent-color: var(--aqua); }
.submit-button { border: 0; }.form-assurance { color: var(--ink-soft); text-align: center; font-size: 9px !important; line-height: 1.7 !important; }
.form-message { margin: 18px 0; padding: 14px; border: 1px solid #e1b36c; border-radius: 8px; color: #714b13; background: #fff7e9; font-size: 12px; line-height: 1.75; }.form-message a { font-weight: 800; }
.direct-contact { margin-top: 46px; padding: 22px; border-radius: 13px; color: white; background: var(--navy); }.direct-contact h2 { margin: 0 0 8px; font-size: 17px; }.direct-contact p { color: #c9dae4; font-size: 12px; line-height: 1.8; }.direct-contact a { color: #8fe2e5; font-size: 14px; font-weight: 800; }

.policy-content { padding-top: 34px; }.policy-date { color: var(--ink-soft); font-size: 10px !important; }.policy-content h2 { margin: 34px 0 10px; font-size: 17px; letter-spacing: 0; }.policy-content p, .policy-content li { color: #455d6b; font-size: 14px; line-height: 1.9; }.policy-content ul { padding-left: 20px; }
.thanks-page { min-height: 68vh; display: flex; flex-direction: column; justify-content: center; padding: 65px 24px; text-align: center; background: linear-gradient(160deg, #f7ffff, #def5f3); }.thanks-mark { width: 62px; height: 62px; margin: 0 auto 22px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--aqua); font-size: 28px; }.thanks-page h1 { margin: 6px 0 15px; font-size: 30px; line-height: 1.5; }.thanks-page > p:not(.section-label) { margin: 0 0 28px; color: var(--ink-soft); font-size: 15px; line-height: 1.85; }

[hidden] { display: none !important; }

@media (max-width: 350px) {
  .home-hero, .section, .page-hero, .cta-content, .simple-cta { padding-left: 20px; padding-right: 20px; }
  .home-hero h1 { font-size: 29px; }
  .home-hero h1 span { white-space: normal; }
  .site-header { padding-inline: 16px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-grid article { min-height: 145px; }
}

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

/* Stable off-canvas menu behavior for local file previews and narrow browsers. */
.site-header { z-index: 110; isolation: isolate; background: #ffffff; }
.site-logo, .menu-button { position: relative; z-index: 2; }
.site-menu {
  z-index: 100;
  top: 72px;
  right: auto;
  bottom: 0;
  left: 50%;
  height: calc(100dvh - 72px);
  transform: translateX(-50%);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}
.site-menu.is-open {
  transform: translateX(-50%);
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.x-tools-brand { display: flex; align-items: center; gap: 4px; text-decoration: none; }
.x-tools-brand img { width: 48px; height: 48px; object-fit: contain; }
.x-tools-brand > span { display: grid; line-height: 1; }
.x-tools-brand b { font-size: 12px; letter-spacing: .06em; }
.x-tools-brand small { margin-top: 4px; color: var(--ink-soft); font-size: 6px; letter-spacing: .14em; }
.site-menu { padding-top: 18px; }
.site-menu a { padding-block: 12px; font-size: 13px; }
.site-menu .menu-cta { margin-top: 14px; }
.site-header.is-compact { height: 54px; padding-block: 4px; box-shadow: 0 5px 18px rgba(14,49,73,.12); }
.site-header.is-compact .x-tools-brand img { width: 36px; height: 36px; }
.site-header.is-compact .x-tools-brand b { font-size: 10px; }
.site-header.is-compact .x-tools-brand small { display: none; }
.site-header.is-compact .menu-button { width: 37px; height: 37px; }
.site-header.is-compact .site-menu { top: 54px; height: calc(100dvh - 54px); }
.footer-logos { display: flex; align-items: center; gap: 12px; }
.footer-logos img { width: 68px; height: 68px; padding: 4px; border-radius: 9px; object-fit: contain; background: white; }
.site-footer p small { color: #72c8ce; font-size: 7px; font-weight: 900; letter-spacing: .14em; }

.top-hero { position: relative; padding: 42px 24px 0; overflow: hidden; color: white; background: var(--navy); }
.top-hero .hub-logo { width: 77px; height: 77px; margin-bottom: 24px; padding: 5px; border-radius: 12px; object-fit: contain; background: white; }
.formal-program-name { display: grid; gap: 4px; margin: 0 0 22px; padding-left: 12px; border-left: 2px solid #66d2d7; }
.formal-program-name span { color: #b9dce3; font-size: 10px; font-weight: 700; letter-spacing: .04em; }
.formal-program-name strong { color: #fff; font-size: 14px; line-height: 1.5; letter-spacing: .02em; }
.top-hero h1 { margin: 0; font-size: clamp(31px, 9vw, 36px); line-height: 1.38; letter-spacing: -.045em; }
.top-hero h1 span, .article-hero h1 span, .page-hero h1 span, .thanks-page h1 span { display: block; white-space: nowrap; }
.top-hero h1 em { color: #66d2d7; font-style: normal; }
.top-hero .hero-lead { color: #d7e7ef; }
.top-hero .button-primary { margin-top: 26px; }
.top-hero .hero-lead + .hero-photo { margin-top: 30px; }
.hero-photo { height: 275px; margin: 38px -24px 0; position: relative; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(14,49,73,.6)); }

.top-manifesto { padding: 62px 24px; background: #f3fbfb; }
.top-manifesto h2 { margin: 0 0 22px; font-size: 27px; line-height: 1.55; letter-spacing: -.04em; }
.top-manifesto p { color: #435e6c; font-size: 15px; line-height: 1.95; }
.manifesto-line { margin: 30px 0; padding: 22px 0; border-block: 1px solid var(--line); color: var(--aqua-dark); font-size: 17px; font-weight: 900; line-height: 1.75; }

.path-grid { display: grid; gap: 14px; margin-top: 28px; }
.path-card { padding: 23px; border-radius: 16px; text-decoration: none; }
.path-card:first-child { color: white; background: linear-gradient(145deg, #0c7886, #136fac); }
.path-card:last-child { color: var(--ink); background: #dff4f3; }
.path-card small { font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.path-card h3 { margin: 18px 0 8px; font-size: 22px; line-height: 1.5; }
.path-card p { margin: 0 0 20px; font-size: 13px; line-height: 1.8; opacity: .9; }
.path-card b { font-size: 11px; }

.top-index { padding: 58px 24px; background: white; }
.top-index h2 { margin: 0 0 24px; font-size: 27px; }
.index-link { display: grid; grid-template-columns: 38px 1fr 15px; gap: 12px; align-items: center; padding: 18px 0; border-top: 1px solid var(--line); text-decoration: none; }
.index-link span:first-child { color: var(--aqua-dark); font-size: 10px; font-weight: 900; }
.index-link b { font-size: 14px; }.index-link i { color: var(--aqua); font-style: normal; }

.article-hero { padding: 50px 24px 44px; background: linear-gradient(155deg, #f7ffff, #dff4f3); }
.article-hero.dark { color: white; background: linear-gradient(145deg, #0f3149, #0f6e87); }
.article-hero .section-label { color: var(--aqua-dark); }
.article-hero.dark .section-label { color: #7adbe0; }
.article-hero h1 { margin: 8px 0 17px; font-size: 32px; line-height: 1.45; letter-spacing: -.045em; }
.article-hero p:last-child { margin: 0; color: var(--ink-soft); font-size: 15px; line-height: 1.9; }
.article-hero.dark p:last-child { color: #d3e4ec; }
.article-image { height: 250px; margin: 0; overflow: hidden; }
.article-image img { width: 100%; height: 100%; object-fit: cover; }

.content-section { padding: 54px 24px; }
.content-section.alt { background: #f2f9f9; }
.content-section.country-section { background: #e8f3f8; }
.content-section.dark { color: white; background: var(--navy); }
.content-section .section-label { margin-bottom: 9px; }
.content-section h2 { margin: 0 0 20px; font-size: 25px; line-height: 1.55; letter-spacing: -.035em; }
.content-section h3 { margin: 28px 0 10px; font-size: 18px; line-height: 1.55; }
.content-section p, .content-section li { color: #405a69; font-size: 15px; line-height: 1.9; }
.content-section.dark p, .content-section.dark li { color: #cfdee7; }
.content-section ul { padding-left: 20px; }
.lead-copy { font-size: 17px !important; font-weight: 800; line-height: 1.9 !important; color: var(--ink) !important; }
.dark .lead-copy { color: white !important; }
.emphasis-box { margin: 28px 0; padding: 20px; border-left: 4px solid var(--aqua); background: #eef9f9; }
.dark .emphasis-box { background: rgba(255,255,255,.08); }
.emphasis-box strong { display: block; margin-bottom: 8px; font-size: 16px; line-height: 1.6; }
.emphasis-box p { margin: 0; font-size: 13px; }

.metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 25px 0; }
.metric { min-height: 120px; padding: 16px; border-radius: 12px; background: #eaf7f7; }
.metric b { display: block; color: var(--aqua-dark); font-size: 23px; }
.metric b.metric-long { font-size: 15px; line-height: 1.45; }
.metric span { display: block; margin-top: 8px; font-size: 12px; line-height: 1.7; }
.dark .metric { background: rgba(255,255,255,.08); }.dark .metric b { color: #72d9dd; }

.number-list { counter-reset: item; display: grid; gap: 0; margin-top: 24px; }
.number-list article { position: relative; padding: 22px 0 22px 50px; border-top: 1px solid var(--line); }
.number-list article::before { counter-increment: item; content: counter(item, decimal-leading-zero); position: absolute; left: 0; top: 23px; color: var(--aqua); font-size: 10px; font-weight: 900; }
.number-list h3 { margin: 0 0 7px; font-size: 16px; }.number-list p { margin: 0; font-size: 13px; }
.dark .number-list article { border-color: rgba(255,255,255,.18); }

.cycle { margin: 25px 0; padding-left: 0; list-style: none; }
.cycle li { position: relative; margin: 0; padding: 15px 15px 15px 42px; border-bottom: 1px solid var(--line); }
.cycle li::before { content: "↓"; position: absolute; left: 12px; color: var(--aqua); font-weight: 900; }
.cycle li:first-child::before { content: "START"; left: 0; font-size: 7px; letter-spacing: .08em; }

.compare-grid { display: grid; gap: 12px; margin-top: 25px; }
.compare-card { padding: 21px; border-radius: 14px; background: #edf7f8; }
.compare-card.blue { color: white; background: linear-gradient(145deg, #0d7184, #126dac); }
.compare-card small { font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.compare-card h3 { margin: 12px 0 9px; font-size: 19px; }
.compare-card p { margin: 0; font-size: 13px; line-height: 1.8; }.compare-card.blue p { color: #dcecf3; }

.process-diagram { display: grid; gap: 7px; margin: 25px 0; }
.process-diagram div { padding: 16px; border-radius: 10px; text-align: center; background: #eaf7f7; font-size: 13px; font-weight: 800; }
.process-diagram i { text-align: center; color: var(--aqua); font-style: normal; }

.source-note, .compliance-note { margin-top: 28px; padding: 16px; border-radius: 9px; color: #5b6d77 !important; background: #f2f5f6; font-size: 10px !important; line-height: 1.8 !important; }
.vat-note { margin-top: -4px !important; margin-bottom: 18px !important; padding: 0; background: transparent; }
.tax-hero-number { display: block; margin: 12px 0; color: #67d6db; font-size: 72px; font-weight: 900; line-height: 1; }
.tax-hero-number small { font-size: 17px; }
.tax-table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 11px; }
.tax-table th, .tax-table td { padding: 12px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.7; }
.tax-table th { color: var(--aqua-dark); background: #edf8f8; }

.page-links { padding: 44px 24px 64px; background: #e8f7f7; }
.page-links h2 { margin: 0 0 20px; font-size: 21px; }
.page-links a { display: flex; justify-content: space-between; gap: 12px; padding: 16px 0; border-top: 1px solid #bcdadd; text-decoration: none; font-size: 13px; font-weight: 800; }
.page-links a span { color: var(--aqua-dark); }

.company-table { width: 100%; border-collapse: collapse; }
.company-table th, .company-table td { padding: 13px 6px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; font-size: 12px; line-height: 1.8; }
.company-table th { width: 33%; color: var(--aqua-dark); }
.company-jp-name { margin-left: 7px; color: var(--ink-soft); font-size: 11px; font-weight: 700; white-space: nowrap; }

.chapter-status { display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; border-bottom: 1px solid var(--line); background: #fff; }
.chapter-status a { color: var(--aqua-dark); font-size: 9px; font-weight: 900; text-decoration: none; }
.chapter-status span { color: #728792; font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.reading-route { padding: 48px 24px 110px; background: #dff3f3; }
.reading-route > p { display: grid; gap: 5px; margin: 0 0 20px; font-size: 20px; font-weight: 900; }
.reading-route > p span { color: var(--aqua-dark); font-size: 8px; letter-spacing: .16em; }
.reading-route > div { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.home-reading-route > div { display: block; }
.home-reading-route .reading-next { width: 100%; min-height: 112px; margin-left: 0; }
.reading-route > div a { min-height: 128px; display: flex; flex-direction: column; justify-content: space-between; padding: 17px; border-radius: 13px; text-decoration: none; background: white; }
.reading-route .reading-next { color: white; text-align: right; background: var(--aqua-dark); }
.reading-route small { color: #6a818d; font-size: 8px; font-weight: 900; }
.reading-route .reading-next small { color: #bfe8e9; }
.reading-route b { font-size: 14px; line-height: 1.6; }
.reading-index { display: block; margin-top: 12px; padding: 13px; border: 1px solid #86bcc0; border-radius: 25px; text-align: center; color: var(--aqua-dark); text-decoration: none; font-size: 10px; font-weight: 900; }
.reading-progress { position: fixed; z-index: 111; top: 0; left: 50%; width: min(100%,384px); height: 3px; transform: translateX(-50%); pointer-events: none; }
.reading-progress span { display: block; width: 0; height: 100%; background: #22bec7; transition: width .08s linear; }
.back-to-top { position: fixed; z-index: 45; right: max(14px, calc((100vw - 384px) / 2 + 14px)); bottom: 76px; width: 48px; height: 48px; display: grid; place-items: center; padding: 5px; border: 0; border-radius: 50%; color: white; background: rgba(14,49,73,.92); box-shadow: 0 8px 20px rgba(14,49,73,.25); opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .2s, transform .2s; cursor: pointer; }
.back-to-top svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.back-to-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.detail-grid { display: grid; gap: 10px; margin: 25px 0; }
.detail-card { padding: 20px; border: 1px solid var(--line); border-radius: 13px; background: white; }
.detail-card small { color: var(--aqua-dark); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.detail-card h3 { margin: 10px 0 8px; font-size: 17px; }
.detail-card p { margin: 0; font-size: 13px; }
.content-table { width: 100%; border-collapse: collapse; margin: 22px 0; }
.content-table th, .content-table td { padding: 13px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; font-size: 12px; line-height: 1.8; }
.content-table th { width: 34%; color: var(--aqua-dark); background: #eff8f8; }
.section-intro { margin-bottom: 28px !important; font-size: 15px !important; }

@media (max-width: 350px) {
  .top-hero, .top-manifesto, .top-index, .article-hero, .content-section, .page-links { padding-left: 20px; padding-right: 20px; }
  .top-hero h1 { font-size: 29px; }
  .metric-grid { grid-template-columns: 1fr; }
  .top-hero h1, .article-hero h1, .page-hero h1 { font-size: 28px; }
  .chapter-status, .reading-route { padding-left: 20px; padding-right: 20px; }
}

/* Clearer first-visit explanation and moderately denser reading rhythm. */
.top-hero { padding-top: 34px; }
.top-hero .section-label { color: #8fe3e6; }
.top-hero h1 { line-height: 1.31; }
.top-hero .hero-lead { margin-top: 18px; color: #f0f6f8; line-height: 1.72; }
.hero-photo { height: 240px; margin-top: 30px; }
.audience-section, .scheme-overview { padding: 46px 24px; }
.audience-section { background: #f3fbfb; }
.audience-section h2, .scheme-overview h2 { margin: 0 0 18px; font-size: 26px; line-height: 1.45; letter-spacing: -.035em; }
.audience-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.audience-grid article { min-height: 162px; padding: 16px; border: 1px solid #c9e3e4; border-radius: 13px; background: white; }
.audience-grid small { color: var(--aqua-dark); font-size: 7px; font-weight: 900; letter-spacing: .12em; }
.audience-grid h3 { margin: 18px 0 7px; font-size: 15px; line-height: 1.5; }
.audience-grid p { margin: 0; color: #425d6b; font-size: 12px; line-height: 1.7; }
.scheme-overview { color: white; background: #0f3149; }
.scheme-overview .section-label { color: #8fe3e6; }
.scheme-lead { margin: 0 0 24px; color: #e7f1f5; font-size: 15px; line-height: 1.85; }
.scheme-flow { padding: 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 16px; background: rgba(255,255,255,.05); }
.scheme-party { padding: 18px; border-radius: 12px; }
.scheme-party.japan { color: var(--ink); background: white; }
.scheme-party.sbfz { color: white; background: linear-gradient(145deg,#0b8792,#116cab); }
.scheme-party small { color: var(--aqua-dark); font-size: 7px; font-weight: 900; letter-spacing: .13em; }
.scheme-party.sbfz small { color: #c7f1f2; }
.scheme-party h3 { margin: 7px 0 11px; font-size: 18px; }
.scheme-party p { margin: 5px 0; color: #425d6b; font-size: 12px; line-height: 1.7; }
.scheme-party.sbfz p { color: #f2fbfc; }
.scheme-party p b { color: var(--aqua-dark); }
.scheme-arrow { padding: 10px; text-align: center; color: #9ce6e9; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.benefit-grid { display: grid; gap: 8px; margin-top: 14px; }
.benefit-grid article { position: relative; padding: 17px 17px 17px 54px; border-radius: 12px; color: var(--ink); background: white; }
.benefit-grid article > b { position: absolute; left: 16px; top: 18px; color: var(--aqua-dark); font-size: 10px; }
.benefit-grid h3 { margin: 0 0 6px; font-size: 16px; line-height: 1.45; }
.benefit-grid p { margin: 0; color: #425d6b; font-size: 12px; line-height: 1.7; }
.scheme-note { margin: 14px 0 0; color: #cfe0e8; font-size: 10px; line-height: 1.7; }
.top-manifesto { padding-block: 46px; }
.top-manifesto h2 { margin-bottom: 14px; }
.top-manifesto p { line-height: 1.78; }
.path-card:first-child p { color: #f2fbfc; opacity: 1; }
.content-section { padding-block: 44px; }
.content-section h2 { margin-bottom: 14px; }
.content-section h3 { margin-top: 22px; }
.content-section p, .content-section li { line-height: 1.78; }
.content-section.dark p, .content-section.dark li { color: #e7f0f4; }
.content-section.dark .section-label { color: #86e0e4; }
.content-section.dark .button-outline { color: white; border-color: #72d9dd; }
.article-hero { padding-block: 40px 34px; }
.article-hero h1 { margin-bottom: 13px; line-height: 1.34; }
.article-hero p:last-child, .article-hero.dark p:last-child { line-height: 1.72; }
.article-hero.dark p:last-child { color: #e7f0f4; }
.article-image { height: 230px; }
.page-hero { padding-block: 44px 38px; }
.page-hero h1 { margin-bottom: 11px; }
.section { padding-block: 50px; }
.section h2, .final-cta h2, .simple-cta h2 { margin-bottom: 14px; }
.section > p:not(.section-label):not(.small-note):not(.legal-note), .final-cta p { line-height: 1.78; }
.number-list article { padding-block: 18px; }
.number-list p { line-height: 1.72; }
.detail-grid { margin-block: 20px; }
.detail-card { padding: 17px; }
.detail-card h3 { margin-top: 8px; }
.content-table { margin-block: 18px; }
.content-table th, .content-table td, .tax-table th, .tax-table td { padding-block: 10px; line-height: 1.65; }
.metric-grid { margin-block: 20px; }
.metric { min-height: 108px; }
.emphasis-box { margin-block: 22px; }
.page-links { padding-block: 36px 50px; }
.reading-route { padding-top: 38px; }
.site-footer { padding-top: 38px; }
.top-index { padding-block: 46px; }

@media (max-width: 350px) {
  .audience-section, .scheme-overview { padding-left: 20px; padding-right: 20px; }
  .audience-grid { grid-template-columns: 1fr; }
  .audience-grid article { min-height: 130px; }
}
