:root {
  --ink: #123443;
  --muted: #506b77;
  --teal: #087f82;
  --mint: #eff9f8;
  --mint-strong: #e1f3f1;
  --coral: #cd4741;
  --coral-hover: #b33b36;
  --paper: #fff;
  --line: #d6e6e7;
  --font: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  color-scheme: light;
  font-family: var(--font);
  color: var(--ink);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 104px; }
body { margin: 0; background: var(--paper); font-size: 16px; line-height: 1.9; overflow-wrap: break-word; }
body, button, input, select, textarea { font-family: var(--font); }
button, input, select, textarea { font-size: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-underline-offset: 4px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--teal); outline-offset: 5px; }
img { max-width: 100%; height: auto; display: block; }
figure, h1, h2, h3, p, ol, ul, dl { margin: 0; }
h1, h2, h3 { font-weight: 700; line-height: 1.6; letter-spacing: -.045em; overflow-wrap: normal; }
h2 { font-size: clamp(28px, 3vw, 40px); text-wrap: balance; }
h3 { font-size: 21px; }
button:disabled { cursor: not-allowed; }
[hidden] { display: none !important; }
.container { width: min(1200px, calc(100% - 80px)); margin-inline: auto; }
.narrow { max-width: 920px; }
.center { text-align: center; }
.section { padding-block: 96px; }
.section-mint { background: var(--mint); }
.section-heading { margin-bottom: 48px; }
.section-heading h2 { margin-bottom: 18px; }
.section-heading > p:last-child { color: var(--muted); }
.overline { font-size: 14px; font-weight: 700; color: var(--teal); margin-bottom: 12px; letter-spacing: .04em; }
.button { min-height: 62px; display: inline-flex; align-items: center; justify-content: center; gap: 28px; padding: 16px 32px; border: 0; border-radius: 99px; background: var(--coral); color: #fff; font-weight: 700; text-decoration: none; line-height: 1.55; transition: background .15s ease, transform .15s ease; }
.button:hover { background: var(--coral-hover); transform: translateY(-1px); }
.button-small { min-height: 44px; padding: 11px 22px; font-size: 13px; gap: 16px; }
.button-secondary { background: var(--paper); border: 1px solid var(--line); color: var(--ink); }
.button-secondary:hover { background: var(--mint); }
.button-ink { background: var(--ink); }
.button-ink:hover { background: #214e5f; }
.arrow { font-size: 28px; font-family: Arial, sans-serif; line-height: .8; font-weight: 400; }
.cta-note { font-size: 12px; color: var(--muted); margin-top: 12px; }
.text-link { display: inline-flex; gap: 20px; align-items: center; font-weight: 700; color: var(--teal); }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 20; padding: 8px 20px; background: #fff; color: var(--ink); border: 2px solid var(--teal); }
.skip-link:focus { top: 12px; }
.site-header { background: rgba(255,255,255,.98); position: sticky; top: 0; z-index: 10; }
.header-inner { max-width: 1360px; margin: auto; padding: 20px 40px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; flex-direction: column; text-decoration: none; flex-shrink: 0; line-height: 1.3; }
.brand strong { font-size: 27px; font-weight: 800; letter-spacing: -.05em; }
.brand span { color: var(--muted); font-size: 10px; letter-spacing: .02em; margin-top: 4px; }
.brand .brand-crop { display: block; position: relative; width: 240px; height: 44px; overflow: hidden; margin: 0; }
.brand-crop img { position: absolute; width: 264px; max-width: none; left: -12px; top: -22px; }
.main-nav { display: flex; align-items: center; gap: 32px; font-size: 13px; font-weight: 700; }
.main-nav > a:not(.button) { text-decoration: none; }
.main-nav > a:not(.button):hover { color: var(--teal); }
.menu-toggle { display: none; }
.hero { background: var(--mint); border-radius: 0 0 50% 50% / 0 0 6% 6%; }
.hero-inner { min-height: 558px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 12px; padding-block: 40px 52px; }
.hero-copy { z-index: 1; min-width: 0; }
.eyebrow { display: inline-block; border: 1px solid var(--teal); color: var(--teal); background: rgba(255,255,255,.6); padding: 3px 18px; font-weight: 700; letter-spacing: .025em; font-size: 15px; border-radius: 99px; margin-bottom: 20px; }
.hero h1 { font-size: clamp(30px,3.2vw,45px); line-height: 1.6; letter-spacing: -.055em; margin-bottom: 22px; }
[data-key-sentence] span { display: block; }
.hero-lead { font-size: 17px; font-weight: 500; line-height: 1.9; margin-bottom: 26px; }
.hero-button { font-size: 17px; }
.hero-visual { width: 110%; margin-left: -4%; }
.hero-visual img { width: 100%; mix-blend-mode: multiply; aspect-ratio: 4 / 3; object-fit: contain; }
.problems { padding-block: 64px 72px; }
.problems h2 { margin-bottom: 32px; font-size: 32px; }
.problem-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 48px; padding-inline: 28px; }
.problem { text-align: center; }
.problem figcaption { position: relative; font-size: 18px; font-weight: 700; line-height: 1.7; background: var(--mint-strong); border-radius: 12px; padding: 18px 8px; z-index: 1; }
.problem figcaption::after { content: ""; position: absolute; width: 16px; height: 16px; left: 23%; bottom: -8px; background: var(--mint-strong); transform: skewY(40deg); }
.problem img { width: 86%; margin: 0 auto; object-fit: contain; mix-blend-mode: multiply; }
.service-stages { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4,1fr); gap: 32px; counter-reset: stage; }
.service-stages li { min-width: 0; padding-top: 24px; border-top: 2px solid #8ec6c4; }
.stage-label { display: inline-block; font-size: 24px; line-height: 1.6; font-weight: 700; color: var(--teal); margin-bottom: 22px; }
.service-stages h3 { font-size: 20px; margin-bottom: 12px; }
.service-stages p { font-size: 15px; color: var(--muted); }
.stage-output { display: block; margin-top: 20px; font-size: 12px; font-weight: 700; color: var(--teal); }
.scope { margin-top: 64px; background: var(--paper); border-radius: 16px; padding: 36px 40px; display: grid; grid-template-columns: 1fr 1.3fr; gap: 40px; align-items: center; }
.scope h3 { margin-bottom: 12px; font-size: 22px; }
.scope p { font-size: 14px; color: var(--muted); }
.scope .overline { color: var(--teal); }
.scope .scope-audience { font-size: 12px; margin-top: 16px; }
.scope .scope-note { font-size: 12px; margin-top: 24px; }
.service-scope { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; }
.service-scope dt { font-size: 17px; font-weight: 700; margin-bottom: 3px; }
.service-scope dd { margin: 0; font-size: 12px; color: var(--muted); }
.service-scope dd { line-height: 1.85; }
.delivery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.delivery-example { padding: 30px 32px; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--teal); border-radius: 4px 4px 12px 12px; }
.pr-example { border-top-color: var(--ink); }
.document-top { display: flex; justify-content: space-between; gap: 16px; font-size: 13px; font-weight: 700; margin-bottom: 28px; color: var(--teal); }
.sample-mark { color: var(--muted); font-size: 11px; font-weight: 400; }
.delivery-example h3 { font-size: 22px; margin-bottom: 24px; }
.example-rows > div { display: grid; grid-template-columns: 94px 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.example-rows dt { font-size: 13px; color: var(--muted); }
.example-rows dd { margin: 0; font-size: 14px; }
.sample-footnote { margin-top: 22px; font-size: 12px; color: var(--muted); }
.pr-checklist { list-style: none; padding: 0; }
.pr-checklist li { position: relative; padding: 10px 0 14px 26px; }
.pr-checklist li::before { content: "✓"; position: absolute; left: 0; top: 10px; color: var(--teal); font-weight: 700; }
.pr-checklist strong { display: block; font-size: 15px; }
.pr-checklist span { display: block; font-size: 13px; color: var(--muted); }
.process { padding-top: 20px; }
.process-layout { display: grid; grid-template-columns: .85fr 1.25fr; gap: 80px; }
.process .section-heading { padding-top: 24px; margin-bottom: 0; }
.process .text-link { margin-top: 28px; }
.process-list { list-style: none; padding: 0; }
.process-list li { display: grid; grid-template-columns: 44px 1fr; gap: 24px; padding: 24px 0; position: relative; }
.process-list li::after { content: ""; width: 1px; position: absolute; left: 21px; top: 68px; bottom: -24px; background: var(--line); }
.process-list li:last-child::after { display: none; }
.process-number { width: 44px; height: 44px; border-radius: 50%; background: var(--mint-strong); color: var(--teal); text-align: center; font-weight: 700; line-height: 44px; font-size: 19px; }
.process-list h3 { font-size: 21px; margin-bottom: 8px; }
.process-list p { color: var(--muted); font-size: 14px; }
.role-label { font-size: 11px; display: inline-block; border-bottom: 1px solid #a4d4cf; color: var(--teal); margin-top: 10px; }
.security-layout { display: grid; grid-template-columns: .85fr 1.25fr; gap: 80px; }
.security-list > div { padding-block: 20px; border-bottom: 1px solid #c7dfdd; }
.security-list > div:first-child { padding-top: 0; }
.security-list dt { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.security-list dd { color: var(--muted); font-size: 14px; margin: 0; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; list-style: none; position: relative; font-weight: 700; padding: 24px 48px 24px 4px; line-height: 1.7; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 8px; font-size: 25px; line-height: 1; top: 27px; color: var(--teal); }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details > p { color: var(--muted); padding: 0 48px 26px 4px; font-size: 15px; }
.closing h2 { margin-bottom: 20px; }
.closing > div > p:not(.overline):not(.cta-note) { margin-bottom: 30px; color: var(--muted); }
.site-footer { padding: 36px 0; }
.footer-inner { display: flex; gap: 32px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.site-footer .brand strong { font-size: 22px; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 28px; font-size: 12px; color: var(--muted); }
.site-footer small { font-size: 10px; color: var(--muted); }
.external-note { font-size: 10px; }
.mobile-break { display: none; }
.page-heading { padding-block: 48px 36px; }
.page-heading h1 { font-size: 34px; margin-bottom: 14px; }
.page-heading p { color: var(--muted); max-width: 760px; }
.breadcrumb { font-size: 12px; margin-bottom: 28px; color: var(--muted); }
.subpage { min-height: 70vh; background: #f7fbfb; padding-bottom: 72px; }
.content-paper { background: #fff; padding: 40px 48px; border: 1px solid var(--line); border-radius: 12px; }
.content-paper h2 { font-size: 23px; margin: 32px 0 12px; }
.content-paper h2:first-child { margin-top: 0; }
.content-paper p, .content-paper li { font-size: 15px; color: var(--muted); }
.content-paper ul { padding-left: 22px; }
.notice { border-left: 3px solid var(--teal); background: var(--mint); padding: 20px 24px; font-size: 14px; margin: 24px 0; }
@media (min-width:1440px) { .hero h1 { font-size: 45px; } }
@media (max-width:1080px) {
  .container { width: calc(100% - 56px); }
  .header-inner { padding-inline: 28px; }
  .main-nav { gap: 20px; font-size: 12px; }
  .brand strong { font-size: 24px; }
  .hero h1 { font-size: 34px; }
  .hero-lead { font-size: 15px; }
  .hero-inner { min-height: 510px; }
  .problem-grid { padding-inline: 0; gap: 24px; }
  .problem figcaption { font-size: 16px; }
  .service-stages { gap: 28px; }
  .scope { gap: 28px; padding: 30px; }
  .process-layout, .security-layout { gap: 48px; }
}
@media (max-width:800px) {
  .brand .brand-crop { width: clamp(140px,48vw,188px); height: auto; aspect-ratio: 60 / 11; }
  .brand-crop img { width: 110%; left: -5%; top: -50%; }
  html { scroll-padding-top: 88px; }
  .header-inner { padding: 17px 24px; }
  .brand strong { font-size: 23px; }
  .menu-toggle { display: flex; align-items: center; gap: 12px; font-size: 11px; padding: 9px 0 9px 12px; background: transparent; border: 0; color: var(--ink); }
  .menu-symbol { display: block; width: 22px; height: 12px; border-top: 2px solid; border-bottom: 2px solid; }
  .menu-toggle[aria-expanded=true] .menu-symbol { height: 2px; border-bottom: 0; }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; padding: 22px 24px 28px; background: #fff; box-shadow: 0 10px 20px #1438440c; border-top: 1px solid var(--line); align-items: stretch; font-size: 15px; }
  .main-nav.is-open { display: flex; flex-direction: column; gap: 20px; }
  .main-nav > a { padding-block: 7px; }
  .main-nav .button { padding-block: 14px; }
  .hero-inner { grid-template-columns: 1fr; padding-block: 36px 28px; gap: 12px; }
  .hero h1 { font-size: clamp(28px,5.7vw,41px); }
  .hero-copy { text-align: center; }
  .hero-visual { width: min(90%,580px); margin: -4px auto 0; }
  .hero-visual img { max-height: 390px; }
  .hero-lead { font-size: 16px; }
  .hero h1 { margin-bottom: 16px; }
  .hero-button { min-height: 58px; font-size: 16px; }
  .section { padding-block: 72px; }
  .problems { padding-top: 48px; }
  .problem-grid { gap: 18px; }
  .problem figcaption { font-size: 14px; min-height: 92px; display: flex; justify-content: center; align-items: center; }
  .problem img { width: 100%; }
  .service-stages { gap: 22px; }
  .service-stages h3 { font-size: 18px; }
  .service-stages p { font-size: 14px; }
  .scope { grid-template-columns: 1fr; gap: 26px; }
  .delivery-grid { gap: 20px; }
  .delivery-example { padding: 24px; }
  .delivery-example h3 { font-size: 19px; }
  .document-top { gap: 8px; flex-wrap: wrap; }
  .example-rows > div { grid-template-columns: 1fr; gap: 3px; }
  .process-layout, .security-layout { grid-template-columns: 1fr; gap: 36px; }
  .process .section-heading { padding-top: 0; }
  .process .section-heading h2 br { display: none; }
  .security .section-heading { margin-bottom: 0; }
  .footer-inner { gap: 26px; }
  .site-footer small { width: 100%; }
  .desktop-break { display: none; }
}
@media (max-width:560px) {
  .container { width: calc(100% - 40px); }
  .header-inner { padding: 15px 20px; }
  .brand strong { font-size: 22px; }
  .brand span { font-size: 9px; }
  .hero-inner { padding-top: 28px; }
  .hero-copy { text-align: left; }
  .eyebrow { font-size: 12px; padding: 2px 14px; margin-bottom: 18px; }
  .hero h1 { font-size: clamp(24px,6.5vw,34px); line-height: 1.7; }
  .hero-lead { font-size: 13px; margin-bottom: 22px; }
  .hero-button { width: 100%; gap: 20px; padding: 16px 12px; font-size: 15px; }
  .hero .cta-note { text-align: center; font-size: 11px; }
  .hero-visual { width: 100%; margin-top: 0; }
  .hero-visual img { max-height: 300px; }
  .section { padding-block: 56px; }
  .section-heading { margin-bottom: 30px; }
  .section-heading > p:last-child { font-size: 14px; }
  .deliverables .section-heading h2 br { display: none; }
  .overline { font-size: 12px; }
  h2 { font-size: 27px; line-height: 1.65; }
  .problems h2 { font-size: 23px; margin-bottom: 28px; }
  .problem-grid { grid-template-columns: 1fr; gap: 18px; }
  .problem { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8px; align-items: center; }
  .problem figcaption { font-size: 14px; padding: 18px 8px; min-height: 94px; }
  .problem figcaption::after { left: auto; right: -7px; top: 42%; bottom: auto; transform: rotate(-35deg); width: 14px; height: 14px; }
  .problem img { width: 100%; max-height: 175px; }
  .service-stages { grid-template-columns: 1fr; gap: 30px; }
  .service-stages li { padding-top: 20px; }
  .stage-label { font-size: 22px; margin-bottom: 10px; }
  .service-stages h3 { font-size: 19px; }
  .stage-output { margin-top: 12px; }
  .scope { padding: 26px 22px; margin-top: 36px; }
  .scope h3 { font-size: 20px; }
  .scope p { font-size: 13px; }
  .service-scope { grid-template-columns: 1fr; gap: 14px; }
  .service-scope > div { padding-top: 14px; border-top: 1px solid var(--line); }
  .service-scope dt { font-size: 16px; }
  .delivery-grid { grid-template-columns: 1fr; }
  .delivery-example { padding: 24px 22px; }
  .delivery-example h3 { font-size: 20px; }
  .example-rows > div { grid-template-columns: 84px 1fr; gap: 16px; }
  .example-rows dt, .example-rows dd { font-size: 12px; }
  .sample-footnote { font-size: 11px; }
  .process { padding-top: 0; }
  .process-list li { gap: 18px; grid-template-columns: 36px 1fr; padding-block: 20px; }
  .process-number { width: 36px; height: 36px; line-height: 36px; font-size: 16px; }
  .process-list li::after { left: 17px; top: 56px; bottom: -20px; }
  .process-list h3 { font-size: 18px; }
  .process-list p { font-size: 13px; }
  .security-list dt { font-size: 16px; }
  .security-list dd { font-size: 13px; }
  .faq-list summary { font-size: 14px; padding-block: 22px; padding-right: 30px; }
  .faq-list details > p { font-size: 13px; padding-right: 12px; }
  .closing .button { width: 100%; padding-inline: 14px; gap: 20px; font-size: 15px; }
  .closing > div > p:not(.overline):not(.cta-note) { font-size: 14px; }
  .mobile-break { display: initial; }
  .page-heading { padding-top: 32px; }
  .page-heading h1 { font-size: 28px; }
  .page-heading p { font-size: 14px; }
  .content-paper { padding: 26px 22px; }
  .content-paper h2 { font-size: 21px; }
  .content-paper p, .content-paper li { font-size: 14px; }
}
@media (max-width:360px) {
  h2 { font-size: 24px; }
  .example-rows > div { grid-template-columns: 1fr; gap: 4px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
@media print { .site-header, .site-footer, .skip-link, .menu-toggle { display: none; } body { color: #123443; background: #fff; font-size: 10pt; } .section { padding-block: 24px; } .container { width: 100%; } .hero { border-radius: 0; } .hero-inner { min-height: 0; } .hero h1 { font-size: 24pt; } .hero-visual { width: 100%; } a { text-decoration: none; } .button { background: #fff; border: 1px solid #123443; color: #123443; } .delivery-example, .scope, .process-list li, .faq-list details { break-inside: avoid; } }

.sample-links { margin-top: 26px; }
.sample-links a { display: grid; grid-template-columns: 1fr 18px; column-gap: 16px; text-decoration: none; border-top: 1px solid var(--line); padding: 20px 0; }
.sample-links a:hover strong { color: var(--teal); }
.sample-links strong { font-size: 17px; }
.sample-links span { grid-column: 1; color: var(--muted); font-size: 13px; }
.sample-links b { grid-column: 2; grid-row: 1 / 3; align-self: center; font-size: 26px; color: var(--teal); }
.meeting-intro { margin-top: 24px; }
.meeting-intro .button { margin-top: 24px; }
.receipt-help { margin-top: 32px; border-top: 1px solid var(--line); padding-top: 22px; }
.receipt-help summary { cursor: pointer; font-weight: 700; font-size: 15px; }
.receipt-help p { margin-top: 16px; }
.privacy-link { margin-top: 20px; color: var(--muted); font-size: 13px; }
@media (max-width:560px) { .subpage .header-inner { gap: 16px; } .header-inner > .text-link { font-size: 12px; } .content-paper .button { width: 100%; padding-inline: 15px; gap: 16px; font-size: 14px; } .sample-links strong { font-size: 15px; } }
.hero-lead{margin-bottom:18px}.hero-benefit{font-size:18px;font-weight:700;color:var(--teal);margin-bottom:24px}.hero-sample-link{display:inline-block;margin-top:18px;font-size:13px;color:var(--teal);font-weight:700}.stage-label{font-size:23px}.stage-label small{font-size:12px;display:block;margin-bottom:5px}.service-stages li{position:relative}.service-stages li+li::before{content:'›';position:absolute;left:-23px;top:52px;color:var(--teal);font-size:25px}.service-stages h3{font-size:18px}.saving-example{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;margin-bottom:40px;padding:40px;background:var(--mint);border-radius:12px}.saving-intro h3{font-size:28px;margin-bottom:18px}.saving-intro>p:not(.overline){font-size:14px;color:var(--muted)}.saving-intro .text-link{margin-top:24px;font-size:14px}.saving-paper{padding:28px;background:white;border:1px solid var(--line);border-radius:6px}.saving-bars>div{display:grid;grid-template-columns:44px 1fr 65px;align-items:center;gap:12px;margin-top:20px;font-size:12px}.saving-bars i{display:block;background:#9bb5bf;width:var(--bar);height:26px;border-radius:2px}.saving-bars>div:last-child i{background:var(--teal)}.saving-bars b{text-align:right;font-size:18px}.saving-amount{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;font-size:12px}.saving-amount strong{display:block;font-size:42px;color:var(--teal);line-height:1.5}.saving-amount strong span{font-size:24px}.saving-paper .sample-footnote{font-size:11px;margin-top:12px}
@media(max-width:1080px){.service-stages{grid-template-columns:repeat(2,1fr)}.service-stages li+li::before{display:none}.saving-example{gap:30px;padding:28px}}
@media(max-width:800px){.saving-example{grid-template-columns:1fr}.saving-intro h3{font-size:26px}.hero-benefit{font-size:16px}}
@media(max-width:560px){.service-stages{grid-template-columns:1fr}.stage-label small{display:inline;margin-right:8px}.saving-example{padding:24px 20px;margin-inline:-2px}.saving-paper{padding:22px 18px}.saving-intro h3{font-size:24px}.hero-sample-link{font-size:12px}.hero-benefit{font-size:15px}.saving-bars>div{gap:8px;grid-template-columns:38px 1fr 60px}.saving-bars b{font-size:16px}}
