:root {
  --navy-950:#05233f;
  --navy-900:#073358;
  --navy-800:#0a466f;
  --blue-700:#0878b8;
  --blue-500:#19a7df;
  --blue-300:#91d7f4;
  --ink:#162638;
  --muted:#607186;
  --line:#dce5ed;
  --soft:#f4f8fb;
  --soft-blue:#eaf4fa;
  --white:#fff;
  --shadow:0 16px 45px rgba(8,49,84,.10);
  --radius:18px;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,-apple-system,sans-serif;background:#fff;line-height:1.75;letter-spacing:.02em}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{cursor:pointer}
.container{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.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}
.skip-link{position:fixed;left:12px;top:-100px;background:#fff;padding:10px 16px;z-index:1000;border-radius:8px;box-shadow:var(--shadow)}
.skip-link:focus{top:12px}

.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,229,237,.75)}
.header-inner{height:82px;display:flex;align-items:center;gap:24px}
.brand{width:156px;flex:0 0 auto}
.brand img{width:100%;height:62px;object-fit:contain;object-position:left center}
.global-nav{display:flex;align-items:center;gap:26px;margin-left:auto;font-size:14px;font-weight:700;color:#27425b}
.global-nav a{position:relative;padding:8px 0}
.global-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:2px;background:var(--blue-700);transition:.25s}
.global-nav a:hover::after{right:0}
.nav-support{color:#4b6176}
.header-actions{display:flex;align-items:center;gap:10px}
.phone{display:flex;align-items:center;gap:8px;color:var(--navy-900);line-height:1.2}
.phone-icon{font-size:20px}
.phone strong{display:block;font-size:14px;white-space:nowrap}
.phone small{display:block;color:#7c8a98;font-size:10px;margin-top:3px}
.menu-button{display:none;border:0;background:transparent;padding:8px}
.menu-button span:not(.sr-only){display:block;width:24px;height:2px;background:var(--navy-900);margin:5px 0}

.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 18px;border:1px solid transparent;border-radius:6px;font-weight:800;font-size:14px;transition:.22s ease;letter-spacing:.03em}
.button:hover{transform:translateY(-1px)}
.button-primary{background:linear-gradient(135deg,var(--navy-900),var(--blue-700));color:#fff;box-shadow:0 10px 24px rgba(7,51,88,.16)}
.button-primary:hover{box-shadow:0 13px 30px rgba(7,51,88,.24)}
.button-ghost{border-color:#a9bdcf;color:var(--navy-900);background:#fff}
.button-outline{border-color:#7ea2bd;color:var(--navy-900);background:rgba(255,255,255,.78)}
.button-outline-light{border-color:rgba(255,255,255,.66);color:#fff;background:transparent}
.button-white{background:#fff;color:var(--navy-900)}
.button-lg{min-height:54px;padding:14px 24px;font-size:15px}
.button.full{width:100%}

.hero{position:relative;overflow:hidden;background:linear-gradient(102deg,#fff 0%,#f5fbff 42%,#dff2fb 55%,#052f55 100%)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 73% 15%,rgba(52,170,221,.25),transparent 28%),linear-gradient(115deg,transparent 0 61%,rgba(3,35,65,.14) 61% 100%);pointer-events:none}
.hero-grid{min-height:610px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;position:relative}
.hero-copy{padding:82px 0 74px;position:relative;z-index:3}
.eyebrow,.section-kicker{font-size:12px;letter-spacing:.22em;font-weight:900;color:var(--blue-700);text-transform:uppercase;margin:0 0 10px}
.section-kicker.light{color:#9fdbf4}
.hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(46px,5vw,74px);line-height:1.1;margin:0 0 24px;color:#092d50;letter-spacing:.04em}
.hero-lead{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(22px,2.2vw,34px);font-weight:700;line-height:1.65;margin:0 0 22px;color:#143b5e}
.hero-body{max-width:710px;font-size:15px;line-height:2;color:#445f78;margin:0 0 30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-visual{align-self:stretch;position:relative;min-height:610px}
.globe-wrap{position:absolute;inset:0 -24% 0 -10%;display:flex;align-items:center;justify-content:center}
.globe{width:min(620px,92%);filter:drop-shadow(0 26px 38px rgba(3,37,69,.24));opacity:.96}
.hero-side-copy{position:absolute;right:6%;top:19%;color:rgba(255,255,255,.78);font-family:Georgia,"Times New Roman",serif;font-size:34px;line-height:1.18;text-shadow:0 2px 18px rgba(0,0,0,.14);letter-spacing:.01em}
.hero-side-copy strong{font-weight:700}
.hero-side-copy span{display:block;width:104px;border-top:1px solid rgba(255,255,255,.38);margin:24px 0 18px}
.hero-side-copy i{display:block;width:104px;border-top:1px solid rgba(255,255,255,.38);margin:24px 0 18px}
.hero-side-copy small{font-family:"Yu Gothic",sans-serif;font-size:15px;line-height:1.9;letter-spacing:.16em;color:rgba(255,255,255,.76)}

.problem-strip{background:linear-gradient(180deg,#f9fcfe,#f1f7fb);border-bottom:1px solid var(--line)}
.problem-grid{display:grid;grid-template-columns:1.18fr repeat(4,1fr);min-height:165px}
.problem-heading,.problem-item{padding:28px 24px;display:flex;flex-direction:column;justify-content:center}
.problem-heading{padding-left:0}
.problem-heading h2{font-size:25px;line-height:1.45;margin:0;color:#133a5e}
.problem-item{border-left:1px solid var(--line);text-align:center;align-items:center}
.problem-item h3{font-size:14px;line-height:1.6;margin:10px 0 4px;color:#183f64}
.problem-item p{font-size:12px;color:#708195;margin:0}
.line-icon{width:38px;height:38px;border:2px solid var(--blue-700);border-radius:12px;display:block;position:relative}
.line-icon.bulb{border-radius:50% 50% 42% 42%}
.line-icon.heart::before{content:"♡";font-size:28px;position:absolute;inset:-3px 0 0;text-align:center;color:var(--blue-700)}
.line-icon.data::before{content:"≡";font-size:27px;position:absolute;inset:-2px 0 0;text-align:center;color:var(--blue-700);transform:rotate(90deg)}
.line-icon.people::before{content:"◌";font-size:30px;position:absolute;inset:-4px 0 0;text-align:center;color:var(--blue-700)}

.section{padding:88px 0}
.section-heading{margin-bottom:34px}
.section-heading h2{font-size:34px;line-height:1.25;margin:0;color:#123a5e}
.split-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end}
.split-heading>p,.case-heading-copy{max-width:560px;color:#617287;margin:0}
.vertical-heading p:last-child{color:#64758a}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{background:#fff;border:1px solid #e1e8ef;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(7,51,88,.06);transition:.25s}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.service-art{height:180px;position:relative;overflow:hidden;background:#e8f2f8}
.service-art-business{background:linear-gradient(130deg,#d7e9f4,#f9fbfd)}
.service-art-business span{position:absolute;height:7px;background:#87acc5;border-radius:10px;transform:rotate(-28deg);left:20%;right:17%;top:50%}
.service-art-business span:nth-child(2){top:42%;left:28%;background:#0b638f;transform:rotate(18deg)}
.service-art-business span:nth-child(3){top:61%;left:37%;right:24%;background:#7bc1e0;transform:rotate(-8deg)}
.service-art-health{background:radial-gradient(circle at 50% 50%,#fff 0 18%,transparent 19%),linear-gradient(135deg,#e5f3f9,#b9d8e8)}
.service-art-health span{position:absolute;inset:46px 44px;border:2px solid rgba(8,120,184,.42);border-radius:50%}
.service-art-health::before,.service-art-health::after{content:"";position:absolute;background:#0d6e9e;opacity:.72;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:4px}
.service-art-health::before{width:72px;height:18px}.service-art-health::after{width:18px;height:72px}
.service-art-dx{background:linear-gradient(135deg,#102f50,#0d75a9)}
.service-art-dx span{position:absolute;width:70px;height:70px;border:1px solid rgba(255,255,255,.38);transform:rotate(45deg);border-radius:10px}
.service-art-dx span:nth-child(1){left:8%;top:18%}.service-art-dx span:nth-child(2){left:35%;top:40%}.service-art-dx span:nth-child(3){right:12%;top:16%}.service-art-dx span:nth-child(4){right:34%;bottom:-12%}
.service-body{padding:24px 24px 28px;position:relative}
.service-no{margin:0 0 2px;color:var(--blue-700);font-weight:800;font-size:12px}
.service-body h3{margin:0 0 12px;color:#153e62;font-size:20px}
.service-body p{margin:0 0 18px;color:#5f7185;font-size:14px}
.text-link{display:inline-flex;gap:10px;align-items:center;color:var(--navy-900);font-weight:800;font-size:13px}
.text-link span{transition:.2s}.text-link:hover span{transform:translateX(4px)}

.section-why{background:linear-gradient(180deg,#eef5fa,#f7fafc)}
.why-layout{display:grid;grid-template-columns:230px 1fr;gap:36px;align-items:center}
.why-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.why-grid article{background:#fff;border:1px solid #e4ebf0;padding:28px 18px;min-height:144px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 6px 20px rgba(8,49,84,.04)}
.why-grid span{color:var(--blue-700);font-size:13px;margin-bottom:12px;letter-spacing:.1em}
.why-grid strong{font-size:14px;line-height:1.65;color:#214767}

.case-heading-copy{display:flex;gap:26px;align-items:center;justify-content:flex-end}
.case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.case-card{border:1px solid #e0e8ef;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(7,51,88,.05);position:relative}
.case-thumb{height:150px;display:flex;align-items:flex-end;padding:14px;position:relative;overflow:hidden}
.case-thumb::before,.case-thumb::after{content:"";position:absolute}
.case-thumb span{position:relative;z-index:2;color:#fff;font-size:11px;letter-spacing:.16em;font-weight:800}
.thumb-lab{background:linear-gradient(135deg,#3d769c,#b8d3e4)}
.thumb-lab::before{width:120px;height:80px;border:10px solid rgba(255,255,255,.55);border-radius:20px;right:12px;top:20px;transform:rotate(-10deg)}
.thumb-lab::after{width:16px;height:72px;background:#f0fbff;right:70px;top:38px;border-radius:10px}
.thumb-medical{background:linear-gradient(135deg,#476b81,#c8dae6)}
.thumb-medical::before{width:64px;height:64px;border-radius:50%;border:3px solid rgba(255,255,255,.68);right:44px;top:30px}
.thumb-medical::after{width:50px;height:3px;background:#fff;right:51px;top:62px;box-shadow:0 -18px 0 rgba(255,255,255,.45),0 18px 0 rgba(255,255,255,.45)}
.thumb-system{background:linear-gradient(135deg,#082f53,#4a92b8)}
.thumb-system::before{inset:24px;border:1px solid rgba(255,255,255,.28);background:linear-gradient(90deg,transparent 49%,rgba(255,255,255,.25) 50%,transparent 51%),linear-gradient(transparent 49%,rgba(255,255,255,.25) 50%,transparent 51%);background-size:44px 44px}
.thumb-tech{background:linear-gradient(135deg,#66839a,#d6e1e8)}
.thumb-tech::before{width:170px;height:70px;background:rgba(255,255,255,.35);right:-15px;top:35px;transform:skewX(-22deg);border:1px solid rgba(255,255,255,.45)}
.case-body{padding:18px 18px 22px;position:relative;min-height:210px}
.tag{display:inline-block;background:#e9f5fb;color:#0a699d;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:900;margin-bottom:10px}
.case-body h3{font-size:17px;line-height:1.55;margin:0 34px 8px 0;color:#183e61}
.case-body p{font-size:12px;color:#6a7c8f;margin:0 34px 0 0}
.circle-arrow{position:absolute;right:14px;bottom:18px;width:31px;height:31px;border-radius:50%;border:1px solid #4d7a9b;background:#fff;color:#14527c;font-weight:900}

.diagnosis{background:linear-gradient(110deg,#052946,#084c76 55%,#0c6ea1);color:#fff;padding:46px 0;position:relative;overflow:hidden}
.diagnosis::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 30%,rgba(93,198,237,.22),transparent 28%);pointer-events:none}
.diagnosis-layout{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:34px;align-items:center;position:relative;z-index:1}
.diagnosis h2{font-size:34px;margin:0 0 8px}.diagnosis-copy p:last-child{font-size:13px;color:#c9deeb;margin:0}
.diagnosis-main{text-align:center}.diagnosis-lead{font-size:19px;letter-spacing:.08em;margin:0 0 16px}
.diagnosis-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center;text-align:center;font-size:12px}
.diagnosis-steps span{border:1px solid rgba(255,255,255,.48);padding:10px 8px;border-radius:5px;background:rgba(255,255,255,.05)}

.section-download{background:linear-gradient(110deg,#f8fbfd,#eaf4fa 72%,#d6eaf5)}
.download-layout{display:grid;grid-template-columns:1.15fr .7fr 1.1fr;gap:40px;align-items:center}
.download-copy h2{font-size:34px;margin:0 0 12px;color:#123b5e}.download-copy p{color:#617287}.download-copy ul{padding-left:18px;color:#516980;font-size:14px}
.download-book{display:flex;justify-content:center;perspective:700px}
.book-cover{width:190px;aspect-ratio:1/1.38;background:linear-gradient(140deg,#fff,#e7f1f7);box-shadow:0 22px 38px rgba(7,51,88,.20);border:1px solid #d6e2ea;transform:rotateY(-12deg);padding:28px 20px;display:flex;flex-direction:column;justify-content:center}
.book-cover img{height:52px;object-fit:contain;margin-bottom:32px}.book-cover span{font-weight:900;color:#173c5e}.book-cover small{font-size:9px;color:#7790a3;letter-spacing:.12em;margin-top:6px}
.download-cta h3{font-size:22px;margin:0 0 10px;color:#163d60}.download-cta p{color:#607185}.download-cta small{display:block;margin-top:10px;color:#7890a3}

.process{background:#fff}
.process-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.process-grid article{position:relative;background:#f3f7fa;padding:26px 18px 24px;min-height:150px;clip-path:polygon(0 0,91% 0,100% 50%,91% 100%,0 100%,9% 50%)}
.process-grid article:first-child{clip-path:polygon(0 0,91% 0,100% 50%,91% 100%,0 100%)}
.process-grid article:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,9% 50%)}
.process-grid span{font-weight:900;color:var(--blue-700)}.process-grid h3{margin:5px 0;color:#173f62;font-size:16px}.process-grid p{margin:0;color:#738396;font-size:11px}

.about{background:linear-gradient(110deg,#f8fbfd,#eef6fa)}
.about-layout{display:grid;grid-template-columns:.9fr .85fr 1.35fr;gap:42px;align-items:center}
.about-brand{border-right:1px solid #d8e3eb;padding-right:42px}.about-brand img{max-height:150px;object-fit:contain}
.about-copy h3{font-size:26px;line-height:1.5;color:#163e61;margin:0 0 14px}.about-copy p{color:#607286}.company-meta{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#8191a0;margin:16px 0 22px}

.news{background:#fff}.news-layout{display:grid;grid-template-columns:230px 1fr;gap:50px}.news-layout h2{font-size:34px;margin:0;color:#123b5e}.news-list{border-top:1px solid var(--line)}.news-list a{display:grid;grid-template-columns:120px 1fr auto;gap:20px;align-items:center;padding:18px 4px;border-bottom:1px solid var(--line);font-size:13px}.news-list time{color:#7790a4}.news-list b{color:var(--blue-700)}

.final-cta{background:linear-gradient(110deg,#082944,#0b4c73 60%,#0e6997);color:#fff;padding:50px 0;position:relative;overflow:hidden}.final-cta::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(67,177,222,.18));pointer-events:none}.final-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;position:relative;z-index:1}.final-cta h2{font-size:30px;margin:0 0 8px}.final-cta p{margin:0;color:#c7d9e5}.final-cta-actions{display:flex;gap:12px;flex-wrap:wrap}

.site-footer{background:#f8fafc;border-top:1px solid var(--line);padding:34px 0}.footer-grid{display:grid;grid-template-columns:260px 1fr auto;gap:30px;align-items:center}.footer-brand img{height:76px;object-fit:contain;object-position:left}.footer-brand p{font-size:10px;color:#8796a3;margin:2px 0 0}.footer-nav{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#52697e;font-weight:700}.footer-policy{display:flex;flex-direction:column;gap:4px;align-items:flex-end;font-size:9px;color:#738698}.footer-policy small{margin-top:5px}

.modal{border:0;padding:0;background:transparent;width:min(720px,calc(100% - 30px));max-height:90vh}.modal::backdrop{background:rgba(3,25,44,.64);backdrop-filter:blur(4px)}.modal-card{position:relative;background:#fff;border-radius:14px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.25);max-height:88vh;overflow:auto}.modal-card h2{font-size:28px;color:#153e61;margin:0 0 8px}.modal-intro{color:#6e8092;font-size:13px;margin-bottom:24px}.modal-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:30px;color:#526a7f}.modal fieldset{border:1px solid #dfe8ee;border-radius:10px;padding:16px 18px;margin:0 0 12px}.modal legend{font-size:14px;font-weight:800;color:#1c4566;padding:0 4px}.modal fieldset label{display:inline-flex;gap:7px;margin:10px 22px 0 0;font-size:13px}.diagnosis-result{margin-top:18px;background:#eff7fb;border-left:4px solid var(--blue-700);padding:18px;color:#244b69;border-radius:0 8px 8px 0}.lead-form>label{display:block;margin:0 0 14px;color:#294b66;font-size:13px;font-weight:700}.lead-form>label span{font-size:10px;color:#fff;background:#0d709f;padding:2px 6px;border-radius:3px;margin-left:8px}.lead-form>label .optional{background:#9baab7}.lead-form input{width:100%;margin-top:6px;border:1px solid #cfdbe4;border-radius:7px;padding:12px 13px;outline:0}.lead-form input:focus{border-color:var(--blue-700);box-shadow:0 0 0 3px rgba(25,167,223,.12)}.form-note{font-size:11px;color:#8797a6;text-align:center}

.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}

@media (max-width:1100px){
  .header-actions .phone{display:none}.global-nav{gap:16px}.button-ghost{display:none}
  .hero-grid{grid-template-columns:1fr .8fr}.hero-side-copy{display:none}
  .problem-grid{grid-template-columns:1fr 1fr 1fr}.problem-heading{grid-column:1/-1;padding-left:0}.problem-item{border-top:1px solid var(--line)}
  .why-layout{grid-template-columns:1fr}.why-grid{grid-template-columns:repeat(5,1fr)}
  .case-grid{grid-template-columns:repeat(2,1fr)}
  .process-grid{grid-template-columns:repeat(3,1fr)}
  .process-grid article,.process-grid article:first-child,.process-grid article:last-child{clip-path:none;border-radius:7px}
  .about-layout{grid-template-columns:1fr 1fr}.about-layout>.section-heading{grid-column:1/-1}.about-brand{border-right:0;padding-right:0}
}

@media (max-width:820px){
  .container{width:min(calc(100% - 30px),var(--max))}
  .header-inner{height:70px}.brand{width:130px}.brand img{height:54px}.menu-button{display:block;margin-left:auto}.header-actions{display:none}
  .global-nav{position:absolute;top:70px;left:0;right:0;background:#fff;display:none;flex-direction:column;align-items:flex-start;padding:22px 24px;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(5,35,63,.08)}.global-nav.is-open{display:flex}
  .hero{background:linear-gradient(180deg,#fff 0,#eff8fd 72%,#dceef7 100%)}.hero-grid{display:block}.hero-copy{padding:58px 0 30px}.hero-visual{min-height:330px}.globe-wrap{inset:-40px -18% -80px 22%}.globe{width:430px;opacity:.92}.hero-body br{display:none}
  .problem-grid{grid-template-columns:1fr 1fr}.problem-heading{grid-column:1/-1}.problem-item{border-left:0}.problem-item:nth-child(even){border-left:1px solid var(--line)}
  .section{padding:64px 0}.split-heading{display:block}.split-heading>p,.case-heading-copy{margin-top:14px}.case-heading-copy{justify-content:space-between}
  .service-grid{grid-template-columns:1fr}.service-art{height:160px}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .diagnosis-layout{grid-template-columns:1fr;text-align:center}.diagnosis-steps{max-width:520px;margin:auto}
  .download-layout{grid-template-columns:1fr}.download-book{order:2}.download-cta{order:3}
  .process-grid{grid-template-columns:repeat(2,1fr)}
  .news-layout{grid-template-columns:1fr}.final-cta-inner{display:block}.final-cta-actions{margin-top:22px}
  .footer-grid{grid-template-columns:1fr}.footer-policy{align-items:flex-start}
}

@media (max-width:560px){
  .hero h1{font-size:42px}.hero-lead{font-size:21px}.hero-actions{display:grid}.hero-actions .button{width:100%}.hero-visual{min-height:270px}.globe-wrap{inset:-12px -38% -50px 15%}
  .problem-grid{grid-template-columns:1fr}.problem-item,.problem-item:nth-child(even){border-left:0}.problem-item{text-align:left;align-items:flex-start;padding:20px 0}.problem-heading{padding-bottom:8px}
  .service-body{padding:20px}.why-grid{grid-template-columns:1fr}.case-grid{grid-template-columns:1fr}.case-heading-copy{display:block}.case-heading-copy .text-link{margin-top:12px}
  .diagnosis-steps{grid-template-columns:1fr}.diagnosis-steps b{transform:rotate(90deg)}
  .process-grid{grid-template-columns:1fr}.about-layout{grid-template-columns:1fr}.about-brand{padding-bottom:18px;border-bottom:1px solid var(--line)}
  .news-list a{grid-template-columns:1fr auto}.news-list time{grid-column:1/-1}.final-cta-actions{display:grid}.final-cta-actions .button{width:100%}
  .modal-card{padding:28px 20px}.footer-nav{display:grid;grid-template-columns:1fr 1fr}
}

/* ========================================================================== */
/* 2026-09 layout repair: styles for current production markup                */
/* ========================================================================== */
.container-wide{width:min(calc(100% - 40px),1460px);margin-inline:auto}
.global-nav .is-active{color:var(--blue-700)}
.support-button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:7px 12px;border:1px solid #8fb2c9;border-radius:7px;background:#fff;color:#173f62;line-height:1.1;transition:.2s ease;white-space:nowrap}
.support-button:hover{background:#f1f8fc;border-color:#4b8fb7;transform:translateY(-1px)}
.support-icon{display:block;width:21px;height:21px;flex:0 0 21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.support-copy{display:flex;flex-direction:column;gap:3px}.support-copy strong{font-size:12px}.support-copy small{font-size:8px;color:#75899b;font-weight:700}
.header-contact{white-space:nowrap}

/* hero matching the current top-page markup */
.hero{min-height:610px;background:#f3f9fd}
.hero-media{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.92) 34%,rgba(255,255,255,.24) 63%,rgba(2,39,69,.08) 100%),url('assets/topimage.jpg');background-size:cover;background-position:center right;background-repeat:no-repeat}
.hero::before{display:none}
.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(300px,.88fr);z-index:1}
.hero-spacer{min-height:1px}
.blank-space{display:inline-block;width:.9em;border-bottom:1px solid currentColor;transform:translateY(-.12em);margin:0 .12em}
.hero-lead span{display:block}
.desktop-only{display:inline}

/* issues */
.issues{padding:74px 0 82px;background:#fff}
.issues-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:58px;align-items:start}
.issues-heading{padding-top:6px}.issues-heading h2{margin:0;color:#123a5e;font-size:30px;line-height:1.5}.short-rule{display:block;width:44px;border-top:2px solid var(--blue-700);margin-top:18px}.light-rule{border-color:#9fdbf4}
.issue-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.issue-card{min-width:0;padding:24px 20px 22px;border:1px solid #e1e9ef;border-radius:10px;background:#fff;box-shadow:0 7px 22px rgba(7,51,88,.055)}
.icon-shell{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:18px;border-radius:11px;background:#edf7fc;color:#0b719f}
.icon-shell svg{display:block;width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.issue-card h3{margin:0 0 9px;color:#183f63;font-size:16px;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}.issue-card p{margin:0;color:#6d7e90;font-size:12px;line-height:1.75}

/* service top */
.services{background:#f7fafc}.service-layout{display:grid;grid-template-columns:220px 1fr;gap:46px;align-items:start}.service-heading h2,.case-heading h2,.why-heading h2,.process-heading h2,.about-heading h2{font-size:34px;line-height:1.3;margin:0;color:#123a5e}.service-heading>p:last-child,.case-heading>p:last-child,.process-heading>p:last-child,.about-heading>p:last-child{font-size:13px;color:#64768a;margin-top:18px}
.service-grid{gap:18px}.service-visual{height:220px;overflow:hidden;background:#e8f2f8}.service-visual img{width:100%;height:100%;object-fit:cover}.service-card .service-body{min-height:165px}.service-card .service-body h3{font-size:19px}.service-card .circle-arrow{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}

/* why */
.why-null{background:linear-gradient(180deg,#eef5fa,#f8fbfd)}.why-heading{padding-top:4px}.why-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.why-card{position:relative;background:#fff;border:1px solid #e3ebf1;border-radius:8px;padding:24px 16px 22px;min-height:170px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 6px 18px rgba(7,51,88,.04)}
.why-no{position:absolute;left:16px;top:13px;color:#c6d9e7!important;font-size:31px!important;font-weight:800;letter-spacing:-.04em!important;margin:0!important}.why-card svg{width:37px;height:37px;margin:0 0 17px;color:#0b719f;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.why-card strong{font-size:13px;line-height:1.7;color:#214767;word-break:keep-all}

/* case top */
.cases{background:#fff}.case-layout{display:grid;grid-template-columns:220px 1fr;gap:46px}.case-main{min-width:0}.all-cases{display:block;width:max-content;margin:0 0 18px auto;color:#1b557c;font-size:12px;font-weight:800}.case-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.case-card{height:100%}.case-visual{height:168px;overflow:hidden;background:#e6eef4}.case-visual img{width:100%;height:100%;object-fit:cover}.case-card .case-body{padding:20px 18px 54px}.case-card .case-body h3{font-size:17px;word-break:keep-all}.case-card .case-body p{font-size:12.5px;line-height:1.75;color:#65788a}.tag{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:4px;background:#e9f5fb;color:#096b9c;font-size:10px;font-weight:900}.case-link{position:absolute;right:15px;bottom:15px;width:31px;height:31px;border:1px solid #7ea3bd;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#14527c;background:#fff;font-weight:900}

/* diagnosis */
.diagnosis-flow{display:flex;align-items:center;justify-content:flex-end;gap:14px}.diag-icon{display:flex;width:72px;height:72px;border:1px solid rgba(255,255,255,.45);border-radius:50%;align-items:center;justify-content:center}.diag-icon svg{width:42px;height:42px;fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.flow-arrow{font-size:25px;color:#97d6f1}.flow-boxes{display:flex;flex-direction:column;gap:5px}.flow-boxes b{display:block;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.07);border-radius:4px;padding:5px 8px;font-size:10px;white-space:nowrap}.diagnosis-main p{font-size:18px;font-weight:700;letter-spacing:.05em;margin:0 0 17px}

/* download current markup */
.download{padding:82px 0;background:linear-gradient(110deg,#f8fbfd,#eaf4fa 72%,#d6eaf5)}.download-label{font-size:11px;font-weight:900;color:#16709d;letter-spacing:.08em}.download-book .book-cover i{font-style:normal;margin-top:auto;font-size:23px;font-weight:900;color:#123d61}.download-cta h3{font-size:22px;line-height:1.55}

/* process current markup */
.process{padding:82px 0;background:#fff}.process-layout{display:grid;grid-template-columns:220px 1fr;gap:46px}.process-grid{align-self:start}.process-grid article{min-width:0;padding:22px 16px 22px}.process-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.process-no{font-size:20px!important;line-height:1;color:#0a78ad!important}.process-no small{font-size:9px;color:#9ab0c0;margin-left:2px}.process-icon{width:31px;height:31px;fill:none;stroke:#276c94;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.process-grid h3{font-size:14px;word-break:keep-all}.process-grid p{font-size:10.5px;line-height:1.65}

/* about current markup */
.about{padding:82px 0;background:linear-gradient(110deg,rgba(248,251,253,.97),rgba(238,246,250,.94)),url('assets/about-bg.jpg') center/cover no-repeat}.about-heading>p:last-child{line-height:1.8}.about-copy h3{word-break:keep-all}

/* generic sub pages */
.breadcrumb{display:flex;align-items:center;gap:8px;padding-top:16px;padding-bottom:16px;color:#8291a0;font-size:11px}.breadcrumb a{color:#42657e}.subhero{background:linear-gradient(110deg,#f7fbfd,#eaf4fa);overflow:hidden}.subhero-grid{min-height:330px;display:grid;grid-template-columns:1fr .82fr;align-items:stretch}.subhero-copy{padding:72px 0;align-self:center}.subhero-copy h1{font-size:42px;line-height:1.25;color:#10395d;margin:0 0 14px;word-break:keep-all}.subhero-copy>p:last-child{font-size:17px;color:#587087;margin:0}.subhero-image{min-height:330px;margin-right:calc((100vw - min(calc(100vw - 48px),var(--max)))/-2);overflow:hidden}.subhero-image img{width:100%;height:100%;object-fit:cover}
.page-section{padding:82px 0}.page-section.pale{background:#f4f8fb}.section-two-col{display:grid;grid-template-columns:280px 1fr;gap:58px}.section-side h2,.page-section-heading h2{font-size:32px;line-height:1.4;color:#123a5e;margin:0 0 14px;word-break:keep-all}.section-side>p:last-child,.page-section-heading>p:last-child{font-size:14px;line-height:1.9;color:#64758a}.page-section-heading{max-width:780px;margin-bottom:34px}
.challenge-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.challenge-card{display:flex;gap:14px;align-items:flex-start;border:1px solid #e0e8ee;border-radius:9px;background:#fff;padding:20px}.challenge-card p{margin:0;font-size:14px;line-height:1.75;color:#334f66}.check{display:flex;align-items:center;justify-content:center;flex:0 0 27px;width:27px;height:27px;border-radius:50%;background:#e9f6fc;color:#0877ad;font-weight:900}
.offer-grid,.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.offer-card,.value-card{border:1px solid #dfe8ee;border-radius:10px;background:#fff;padding:25px;box-shadow:0 7px 20px rgba(7,51,88,.04)}.offer-no{font-size:12px;color:#0b78ad;font-weight:900}.offer-card h3,.value-card h3{font-size:19px;color:#183f63;margin:10px 0 10px}.offer-card p,.value-card p{font-size:13px;color:#617387;line-height:1.8}.offer-meta{display:block;margin-top:18px;font-size:10px;color:#8797a5}
.inner-process{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.inner-process article{border-top:3px solid #70b8da;background:#f3f8fb;padding:18px 14px;min-height:126px}.inner-process .num{font-size:12px;color:#0b77aa;font-weight:900}.inner-process h3{font-size:14px;color:#173f62;margin:8px 0 5px}.inner-process p{font-size:10.5px;color:#718294;margin:0}
.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.related-card{overflow:hidden;border:1px solid #e1e8ef;border-radius:9px;background:#fff}.related-card>img{width:100%;height:145px;object-fit:cover}.related-body{padding:17px}.related-body h3{font-size:15px;color:#183e61;margin:9px 0}.related-body p{font-size:11px;color:#6d7e90}.related-body a{font-size:11px;color:#17618c;font-weight:800}
.phase-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:#d9e4eb;border-radius:7px;overflow:hidden}.phase-bar span{padding:17px 10px;background:#edf5f9;color:#315a78;text-align:center;font-size:12px;font-weight:800}.sub-cta{padding:52px 0;background:linear-gradient(110deg,#082944,#0b5079);color:#fff}.sub-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.sub-cta h2{font-size:27px;line-height:1.5;margin:0 0 7px}.sub-cta p{color:#c8d9e4;margin:0}.sub-cta-actions{display:flex;gap:10px;flex-wrap:wrap}

/* case listing */
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.filter-button{border:1px solid #cddbe5;border-radius:999px;background:#fff;color:#42627b;padding:8px 14px;font-size:11px;font-weight:800}.filter-button.is-active{background:#0b5e8e;color:#fff;border-color:#0b5e8e}.case-list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.case-list-card{overflow:hidden;border:1px solid #e0e8ee;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(7,51,88,.055)}.case-list-card>img{width:100%;height:190px;object-fit:cover}.case-list-card .inner{padding:20px}.case-list-card h2{font-size:18px;line-height:1.5;color:#183e61;margin:9px 0}.case-list-card p{font-size:12.5px;line-height:1.8;color:#66798b}.case-list-card a{font-size:12px;color:#155e8a;font-weight:800}

/* case detail */
.case-detail-hero{padding:64px 0 56px;background:linear-gradient(110deg,#f8fbfd,#eaf4fa)}.case-detail-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:54px;align-items:center}.case-detail-hero h1{font-size:40px;line-height:1.3;color:#10395d;margin:0 0 14px;word-break:keep-all}.case-client{font-size:12px;color:#6d8092;margin:14px 0}.tag-row{display:flex;flex-wrap:wrap;gap:7px}.case-detail-image{height:360px;overflow:hidden;border-radius:12px;box-shadow:0 14px 38px rgba(7,51,88,.13)}.case-detail-image img{width:100%;height:100%;object-fit:cover}.case-story{max-width:930px;margin-inline:auto}.story-block{display:grid;grid-template-columns:180px 1fr;gap:28px;padding:34px 0;border-bottom:1px solid #e1e8ed}.story-label{font-size:11px;letter-spacing:.12em;font-weight:900;color:#0b77aa}.story-content h2{font-size:22px;color:#173f62;margin:0 0 9px}.story-content p{font-size:14px;color:#586d81;line-height:2;margin:0}.action-list{margin:0;padding-left:1.2em;color:#526a7e}.action-list li{margin:6px 0}.public-evidence{padding:28px;border-radius:10px;background:#edf6fa}.evidence-links{display:flex;flex-direction:column;gap:10px}.evidence-link{display:flex;justify-content:space-between;gap:20px;padding:13px 15px;border:1px solid #d5e4ec;background:#fff;border-radius:7px;color:#174f76;font-size:12px;font-weight:800}.evidence-gallery,.case-evidence-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.evidence-gallery--cricket{grid-template-columns:repeat(3,1fr)}.evidence-gallery--pcr{grid-template-columns:1fr 1fr}.evidence-card,.evidence-photo{overflow:hidden;border-radius:8px;border:1px solid #dfe8ee;background:#fff}.evidence-card img,.evidence-photo img{width:100%;height:220px;object-fit:cover}.evidence-card figcaption,.evidence-photo figcaption{padding:10px 12px;font-size:10px;line-height:1.6;color:#607386}.evidence-photo--wide{grid-column:span 2}

/* about / policy / forms / news */
.company-table{width:100%;border-collapse:collapse}.company-table th,.company-table td{padding:14px 12px;border-bottom:1px solid #dfe7ed;text-align:left;vertical-align:top}.company-table th{width:180px;color:#315672;font-size:12px}.company-table td{color:#526b7e;font-size:13px}.form-page-grid{display:grid;grid-template-columns:1fr 340px;gap:34px;align-items:start}.form-panel,.form-aside,.policy,.news-article,.casebook-preview,.casebook-copy{border:1px solid #e0e8ee;border-radius:10px;background:#fff;padding:28px}.page-form label{display:block;margin:0 0 16px;color:#294b66;font-size:13px;font-weight:700}.page-form input,.page-form select,.page-form textarea{width:100%;margin-top:6px;padding:12px;border:1px solid #cfdbe4;border-radius:7px;background:#fff}.form-status{font-size:12px;color:#245c79}.form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.policy h2,.news-article h2{font-size:22px;color:#173f62;margin-top:30px}.policy p,.policy li,.news-content p{font-size:13px;line-height:2;color:#5c7184}.policy-contact{margin-top:26px;padding:18px;background:#f2f7fa;border-radius:7px}.news-list{display:flex;flex-direction:column;border-top:1px solid #dfe7ed}.news-item{display:grid;grid-template-columns:110px 100px 1fr auto;gap:14px;align-items:center;padding:17px 0;border-bottom:1px solid #dfe7ed}.news-meta{font-size:11px;color:#8292a0}.news-cat{font-size:10px;color:#0b70a1;font-weight:900}.news-content{max-width:850px}.news-content img{max-width:100%;height:auto}.notfound{min-height:64vh;display:grid;place-items:center;text-align:center;padding:60px 24px}.notfound strong{display:block;font-size:86px;line-height:1;color:#d4e4ee}.notfound h1{font-size:28px;color:#153f61}.toc-list{padding-left:1.2em}.back{display:inline-block;margin-bottom:18px;color:#17618c;font-size:12px;font-weight:800}.casebook-preview img{width:100%;height:auto}.lead{font-size:17px;line-height:1.9;color:#526a7f}.logo{max-width:260px}

/* svg safety net: prevent unstyled inline SVG from becoming giant black blocks */
.issue-card svg,.why-card svg,.process-top svg,.diag-icon svg,.support-button svg{max-width:100%;max-height:100%;fill:none!important;stroke:currentColor;vector-effect:non-scaling-stroke}

@media (max-width:1180px){
  .global-nav{gap:14px}.header-actions{gap:7px}.support-copy small{display:none}.support-button{padding:8px}.support-copy strong{font-size:11px}
  .issue-grid{grid-template-columns:repeat(2,1fr)}.case-grid{grid-template-columns:repeat(2,1fr)}.why-grid{grid-template-columns:repeat(3,1fr)}
  .related-grid{grid-template-columns:repeat(2,1fr)}.case-list-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .container-wide{width:min(calc(100% - 30px),1460px)}
  .header-actions{display:none}.hero-grid{display:block;min-height:auto}.hero-copy{padding:72px 0 320px}.hero-spacer{display:none}.hero-media{background-image:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 49%,rgba(255,255,255,.2) 74%),url('assets/topimage.jpg');background-position:center bottom;background-size:auto 100%;}.hero-side-copy{display:none}
  .issues-layout,.service-layout,.why-layout,.case-layout,.process-layout,.section-two-col{grid-template-columns:1fr;gap:28px}.issues-heading h2 br,.service-heading p br,.case-heading p br,.process-heading p br{display:none}.issue-grid{grid-template-columns:repeat(2,1fr)}.why-grid{grid-template-columns:repeat(2,1fr)}
  .subhero-grid{grid-template-columns:1fr}.subhero-image{margin-right:0;height:260px;min-height:260px}.subhero-copy{padding:48px 0 28px}.case-detail-grid{grid-template-columns:1fr}.case-detail-image{height:320px}.story-block{grid-template-columns:1fr;gap:8px}.inner-process{grid-template-columns:repeat(3,1fr)}.form-page-grid{grid-template-columns:1fr}.sub-cta-inner{display:block}.sub-cta-actions{margin-top:22px}
}
@media (max-width:620px){
  .hero-copy{padding:54px 0 260px}.hero h1{font-size:39px}.hero-lead{font-size:20px}.hero-body{font-size:13px}.desktop-only{display:none}
  .issues{padding:54px 0}.issue-grid,.why-grid,.case-grid,.challenge-grid,.offer-grid,.value-grid,.related-grid,.case-list-grid,.evidence-gallery,.case-evidence-gallery,.evidence-gallery--cricket,.evidence-gallery--pcr{grid-template-columns:1fr}.issue-card{padding:20px}.card-break{display:none}
  .section,.page-section,.process,.about,.download{padding:58px 0}.service-visual{height:190px}.case-visual{height:190px}.why-card{min-height:150px}
  .diagnosis-flow{justify-content:center}.diagnosis-layout{gap:24px}.flow-arrow{transform:rotate(90deg)}
  .process-grid{grid-template-columns:1fr!important}.process-grid article,.process-grid article:first-child,.process-grid article:last-child{clip-path:none;border-radius:7px;min-height:auto}.process-top{justify-content:flex-start}.process-icon{margin-left:auto}
  .subhero-copy h1,.case-detail-hero h1{font-size:32px}.subhero-image{height:220px;min-height:220px}.case-detail-image{height:240px}.inner-process{grid-template-columns:1fr 1fr}.phase-bar{grid-template-columns:1fr 1fr}.sub-cta-actions{display:grid}.sub-cta-actions .button{width:100%}.evidence-photo--wide{grid-column:auto}.evidence-card img,.evidence-photo img{height:auto}.news-item{grid-template-columns:1fr auto}.news-item>*:first-child{grid-column:1/-1}
}

/* ========================================================================== */
/* 2026-09 visual hierarchy redesign                                          */
/* Goal: strong reading priority, restrained B2B contrast, accessible sizing  */
/* ========================================================================== */

:root{
  --text-display-xl:clamp(52px,5vw,64px);
  --text-display:clamp(42px,4vw,48px);
  --text-h2:36px;
  --text-h3-lg:28px;
  --text-h3:21px;
  --text-lead:20px;
  --text-body-lg:17px;
  --text-body:16px;
  --text-small:14px;
  --text-caption:12px;
  --navy-panel:#073358;
  --navy-panel-2:#0a466f;
  --line-strong:#c4d4df;
}

body{font-size:var(--text-body);color:#1a2c3e}
.section-kicker,.eyebrow{font-size:13px;font-weight:800;letter-spacing:.19em}
.short-rule{border-top-width:3px}

/* Primary headings and body hierarchy */
.hero h1{font-size:var(--text-display-xl);font-weight:700}
.hero-lead{font-size:clamp(25px,2.25vw,30px);font-weight:700}
.hero-body{font-size:16px;line-height:2}
.section-heading h2,
.service-heading h2,.case-heading h2,.why-heading h2,.process-heading h2,.about-heading h2,
.download-copy h2,.diagnosis h2{font-size:var(--text-h2);font-weight:700;line-height:1.32}
.service-heading>p:last-child,.case-heading>p:last-child,.process-heading>p:last-child,.about-heading>p:last-child,
.download-copy>p,.diagnosis-copy p:last-child{font-size:15px;line-height:1.9}

/* Issues: readable and visually anchored */
.issues-heading h2{font-size:36px;font-weight:700;line-height:1.45}
.issue-card{border:2px solid var(--line-strong);box-shadow:0 10px 26px rgba(7,51,88,.07)}
.issue-card h3{font-size:18px;font-weight:600;line-height:1.55;color:#143d61}
.issue-card p{font-size:15px;line-height:1.8;color:#586f83}
.icon-shell{background:#e6f5fc;color:#0878b8;border:1px solid #c8e7f6}
.icon-shell svg{stroke-width:2.1}

/* Service cards */
.service-card{border:2px solid var(--line-strong);box-shadow:0 12px 30px rgba(7,51,88,.07)}
.service-card .service-body h3{font-size:21px;font-weight:700;line-height:1.45}
.service-card .service-body p{font-size:16px;line-height:1.8}

/* WHY NULL: intentional dark break, with strong message hierarchy */
.why-null{background:linear-gradient(118deg,#052946 0%,#073d63 56%,#0b5c86 100%);color:#fff;position:relative;overflow:hidden}
.why-null::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 84% 18%,rgba(92,198,239,.18),transparent 30%);pointer-events:none}
.why-null>.container{position:relative;z-index:1}
.why-null .section-kicker{color:#9fdbf4}
.why-null .why-heading h2{color:#fff;font-size:36px;font-weight:700}
.why-null .short-rule{border-color:#9fdbf4}
.why-grid{gap:14px}
.why-card{background:rgba(255,255,255,.075);border:1.5px solid rgba(255,255,255,.28);box-shadow:none;min-height:250px;padding:34px 20px 24px;justify-content:flex-start;backdrop-filter:blur(3px)}
.why-no{color:rgba(255,255,255,.25)!important;font-size:44px!important;top:13px;left:18px}
.why-card svg{margin-top:58px;width:42px;height:42px;color:#9fdbf4;stroke-width:1.9}
.why-card strong{font-size:20px;line-height:1.5;color:#fff;font-weight:700}
.why-card em{display:block;margin-top:12px;color:#d7e8f2;font-size:15px;line-height:1.7;font-style:normal;font-weight:500}

/* Case cards: titles and summaries must be scannable */
.case-card{border:1.5px solid #d5e1e9;box-shadow:0 10px 28px rgba(7,51,88,.06)}
.case-card .case-body h3{font-size:20px;font-weight:700;line-height:1.5}
.case-card .case-body p{font-size:15px;line-height:1.8;color:#586f83}
.tag{font-size:12px}
.all-cases{font-size:14px}

/* Diagnosis remains a high-contrast conversion point */
.diagnosis h2{font-size:38px}
.diagnosis-main p{font-size:20px;font-weight:700}
.diagnosis-copy p:last-child{font-size:15px}
.flow-boxes b{font-size:12px}

/* Download */
.download-copy h2{font-size:36px}
.download-cta h3{font-size:25px;font-weight:700}
.download-cta p{font-size:16px}
.download-label{font-size:13px}

/* Process: compact, but genuinely readable */
.process-grid article{padding:25px 18px 25px;min-height:172px}
.process-no{font-size:24px!important}
.process-icon{width:35px;height:35px;stroke-width:1.9}
.process-grid h3{font-size:18px;font-weight:700;line-height:1.45;margin-top:10px}
.process-grid p{font-size:14px;line-height:1.7;color:#5f7487}

/* Top-page ABOUT is a second strong brand moment */
.about{background:linear-gradient(115deg,#052946,#0a456d 63%,#0b628d);color:#fff;position:relative;overflow:hidden}
.about::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(113,205,240,.11));pointer-events:none}
.about>.container{position:relative;z-index:1}
.about .section-kicker{color:#9fdbf4}
.about .about-heading h2,.about .about-copy h3{color:#fff}
.about .about-heading>p:last-child,.about .about-copy p{color:#d4e4ee;font-size:16px}
.about .about-copy h3{font-size:30px;font-weight:700;line-height:1.5}
.about .about-brand{border-right-color:rgba(255,255,255,.25);background:rgba(255,255,255,.96);padding:24px;border-radius:12px}
.about .button-outline{border-color:rgba(255,255,255,.65);color:#fff;background:transparent}
.about .button-outline:hover{background:rgba(255,255,255,.09)}

.final-cta h2{font-size:36px;font-weight:700}
.final-cta p{font-size:16px}

/* Sub pages */
.subhero-copy h1{font-size:var(--text-display);font-weight:700}
.subhero-copy>p:last-child{font-size:18px;line-height:1.8;font-weight:500}
.section-side h2,.page-section-heading h2{font-size:36px;font-weight:700;line-height:1.4}
.section-side>p:last-child,.page-section-heading>p:last-child{font-size:16px;line-height:1.9}
.challenge-card{border:2px solid var(--line-strong);padding:22px}
.challenge-card p{font-size:17px;line-height:1.75;font-weight:500}
.check{font-size:15px;border:1px solid #c7e7f6}
.offer-card,.value-card{border:1.5px solid var(--line-strong);box-shadow:0 9px 24px rgba(7,51,88,.055)}
.offer-card h3,.value-card h3{font-size:21px;font-weight:700}
.offer-card p,.value-card p{font-size:16px;line-height:1.8}
.offer-meta{font-size:13px;line-height:1.7}
.inner-process article{border-top-width:4px;padding:20px 15px;min-height:150px}
.inner-process .num{font-size:14px}
.inner-process h3{font-size:18px;font-weight:700}
.inner-process p{font-size:14px;line-height:1.65}
.related-body h3{font-size:18px;font-weight:700}
.related-body p,.related-body a{font-size:14px}
.phase-bar span{font-size:14px}
.sub-cta h2{font-size:31px;font-weight:700}
.sub-cta p{font-size:16px}

/* Case listing */
.case-list-card h2{font-size:21px;font-weight:700}
.case-list-card p{font-size:15px;line-height:1.8}
.case-list-card a{font-size:14px}
.filter-button{font-size:13px}

/* Case detail: important reading page, one step larger */
.case-detail-hero h1{font-size:48px;font-weight:700;line-height:1.28}
.case-detail-hero .lead{font-size:20px;line-height:1.85;font-weight:600;color:#35556d}
.case-client{font-size:14px}
.story-label{font-size:13px}
.story-content h2{font-size:28px;font-weight:700;margin-bottom:12px}
.story-content p,.action-list{font-size:17px;line-height:1.95;color:#4f6679}
.action-list li{margin:9px 0}
.story-block{padding:42px 0}
.case-story .story-block:last-child{margin-top:32px;padding:38px 42px;border:0;border-radius:14px;background:linear-gradient(115deg,#052946,#0a527c);box-shadow:0 18px 42px rgba(7,51,88,.14)}
.case-story .story-block:last-child .story-label{color:#9fdbf4}
.case-story .story-block:last-child .story-content h2{color:#fff;font-size:30px}
.case-story .story-block:last-child .story-content p{color:#e0edf4;font-size:19px;font-weight:500;line-height:1.9}
.evidence-card figcaption,.evidence-photo figcaption{padding:14px 15px;font-size:14px;line-height:1.7;color:#556d80}
.evidence-card figcaption strong,.evidence-photo figcaption strong{display:block;color:#173f62;font-size:15px;margin-bottom:4px}
.evidence-card figcaption span,.evidence-photo figcaption span{display:block}
.evidence-link{font-size:14px;padding:15px 17px}

/* CASE06: show the academic output as first impression */
.case-cricket .case-detail-image{background:#fff;height:390px;padding:8px}
.case-cricket .case-detail-image img{object-fit:cover;object-position:50% 18%;border-radius:8px}
.case-cricket .case-evidence-gallery{background:#f7fafc}
.case-cricket .evidence-gallery--cricket{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.case-cricket .evidence-photo{border:1.5px solid #d2e0e8;box-shadow:0 9px 24px rgba(7,51,88,.055)}
.case-cricket .evidence-photo--wide{grid-column:span 2}
.case-cricket .evidence-photo img{height:330px}

/* ABOUT detail: strong manifesto, then calm evidence and company information */
.page-about .about-manifesto{background:linear-gradient(115deg,#052946,#0a4a73);color:#fff}
.page-about .about-manifesto .section-kicker{color:#9fdbf4}
.page-about .about-manifesto .section-side h2{color:#fff;font-size:44px}
.page-about .about-manifesto .short-rule{border-color:#9fdbf4}
.page-about .manifesto-message{margin:0 0 18px;font-size:32px;line-height:1.55;color:#fff;font-weight:700}
.page-about .manifesto-body{margin:0;color:#d8e7ef;font-size:17px;line-height:2}
.page-about .about-core{background:#f3f8fb}
.page-about .about-core .page-section-heading{margin-bottom:40px}
.page-about .about-core .value-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.page-about .about-core .value-card{position:relative;min-height:235px;padding:30px 26px;border-top:4px solid #0b78ad}
.page-about .about-core .value-card span{font-size:38px;font-weight:700;color:#c7dbe8;line-height:1}
.page-about .about-core .value-card h3{font-size:21px;margin:15px 0 8px}
.value-key{display:block;color:#123d61;font-size:17px;line-height:1.65;font-weight:600;margin-bottom:10px}
.page-about .about-core .value-card p{font-size:15px;margin:0}
.page-about .company-table th{font-size:14px;font-weight:600}
.page-about .company-table td{font-size:15px}
.track-record-body{margin:0;color:#4f6b80;font-size:16px;line-height:2}

/* Policy/news/form pages: avoid tiny reading text */
.policy h2,.news-article h2{font-size:26px;font-weight:700}
.policy p,.policy li,.news-content p{font-size:16px;line-height:1.95}
.news-meta{font-size:13px}.news-cat{font-size:12px}
.page-form label{font-size:14px}.form-status{font-size:13px}

/* Responsive hierarchy */
@media (max-width:900px){
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .why-card{min-height:225px}
  .page-about .about-core .value-grid{grid-template-columns:repeat(2,1fr)}
  .case-detail-hero h1{font-size:42px}
  .case-cricket .evidence-gallery--cricket{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  :root{--text-h2:28px;--text-h3:19px;--text-body:15px}
  .hero h1{font-size:40px}.hero-lead{font-size:22px}.hero-body{font-size:15px}
  .section-heading h2,.service-heading h2,.case-heading h2,.why-heading h2,.process-heading h2,.about-heading h2,.download-copy h2,.diagnosis h2,.issues-heading h2{font-size:28px}
  .issue-card h3{font-size:17px}.issue-card p{font-size:15px}
  .why-grid{grid-template-columns:1fr}.why-card{min-height:210px}.why-card strong{font-size:19px}.why-card em{font-size:15px}
  .case-card .case-body h3{font-size:19px}.case-card .case-body p{font-size:15px}
  .process-grid h3{font-size:18px}.process-grid p{font-size:14px}
  .about .about-copy h3{font-size:26px}
  .subhero-copy h1,.case-detail-hero h1{font-size:34px}
  .subhero-copy>p:last-child{font-size:16px}
  .section-side h2,.page-section-heading h2{font-size:28px}
  .challenge-card p{font-size:16px}
  .offer-card h3,.value-card h3{font-size:19px}.offer-card p,.value-card p{font-size:15px}
  .case-detail-hero .lead{font-size:18px}
  .story-content h2{font-size:24px}.story-content p,.action-list{font-size:16px}
  .case-story .story-block:last-child{padding:28px 24px}.case-story .story-block:last-child .story-content h2{font-size:26px}.case-story .story-block:last-child .story-content p{font-size:17px}
  .case-cricket .evidence-gallery--cricket{grid-template-columns:1fr}.case-cricket .evidence-photo--wide{grid-column:auto}.case-cricket .evidence-photo img{height:auto}
  .page-about .about-manifesto .section-side h2{font-size:36px}.page-about .manifesto-message{font-size:27px}.page-about .manifesto-body{font-size:16px}
  .page-about .about-core .value-grid{grid-template-columns:1fr}.page-about .about-core .value-card{min-height:auto}
  .company-table th,.company-table td{display:block;width:100%}.company-table th{padding-bottom:5px;border-bottom:0}.company-table td{padding-top:0}
}

/* ========================================================================== */
/* 2026-09 visual hierarchy refinement: background typography + focal titles  */
/* ========================================================================== */

/* CASE detail: English labels become oversized background typography. */
.case-story{
  max-width:1120px;
}
.case-story .story-block{
  position:relative;
  display:block;
  min-height:220px;
  padding:64px 36px 58px 300px;
  border-bottom:1.5px solid #cfdbe4;
  overflow:hidden;
}
.case-story .story-label{
  position:absolute;
  z-index:0;
  left:0;
  top:34px;
  width:300px;
  margin:0;
  color:rgba(52,127,205,.14);
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:clamp(52px,6.2vw,88px);
  line-height:.88;
  letter-spacing:-.05em;
  font-weight:900;
  white-space:nowrap;
  text-transform:uppercase;
  pointer-events:none;
  user-select:none;
}
.case-story .story-content{
  position:relative;
  z-index:1;
  max-width:760px;
}
.case-story .story-content h2{
  margin:0 0 18px;
  color:#0b365c;
  font-size:clamp(30px,3vw,42px);
  line-height:1.25;
  letter-spacing:.02em;
  font-weight:800;
}
.case-story .story-content p,
.case-story .action-list{
  margin:0;
  color:#334f69;
  font-size:18px;
  line-height:1.95;
  font-weight:500;
}
.case-story .action-list{
  padding-left:1.25em;
}
.case-story .action-list li{
  margin:10px 0;
}

/* The final VALUE block remains the strongest section, but keeps the same
   background-letter language for visual continuity. */
.case-story .story-block:last-child{
  margin:46px 0 8px;
  min-height:280px;
  padding:58px 52px 56px 330px;
  border:0;
  border-radius:18px;
  background:linear-gradient(120deg,#052946 0%,#0a527c 72%,#0b6e9e 100%);
  box-shadow:0 22px 54px rgba(7,51,88,.18);
}
.case-story .story-block:last-child .story-label{
  left:24px;
  top:36px;
  width:300px;
  color:rgba(255,255,255,.10);
  font-size:clamp(66px,7vw,100px);
}
.case-story .story-block:last-child .story-content{
  max-width:780px;
}
.case-story .story-block:last-child .story-content h2{
  color:#fff;
  font-size:clamp(32px,3.1vw,44px);
  font-weight:800;
}
.case-story .story-block:last-child .story-content p{
  color:#e3eff6;
  font-size:20px;
  line-height:1.9;
  font-weight:600;
}

/* ABOUT / core competence: number is not a label, but a background motif. */
.page-about .about-core .value-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.page-about .about-core .value-card{
  position:relative;
  isolation:isolate;
  min-height:300px;
  padding:42px 30px 30px;
  border:1.5px solid #cbd9e4;
  border-top:5px solid #0b78ad;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 12px 32px rgba(7,51,88,.07);
}
.page-about .about-core .value-card::after{
  content:"";
  position:absolute;
  inset:auto -70px -95px auto;
  width:190px;
  height:190px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(26,151,205,.08),rgba(26,151,205,0) 70%);
  z-index:-1;
}
.page-about .about-core .value-card>span{
  position:absolute;
  z-index:-1;
  left:20px;
  top:8px;
  margin:0;
  color:rgba(35,121,185,.095);
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:96px;
  line-height:.95;
  letter-spacing:-.08em;
  font-weight:900;
}
.page-about .about-core .value-card h3{
  position:relative;
  z-index:1;
  margin:84px 0 14px;
  color:#0b365c;
  font-size:clamp(26px,2.1vw,34px);
  line-height:1.28;
  font-weight:800;
  letter-spacing:.01em;
}
.page-about .about-core .value-card .value-key{
  position:relative;
  z-index:1;
  display:block;
  margin:0 0 12px;
  color:#126b9a;
  font-size:17px;
  line-height:1.65;
  font-weight:700;
}
.page-about .about-core .value-card p{
  position:relative;
  z-index:1;
  margin:0;
  color:#465f75;
  font-size:16px;
  line-height:1.85;
  font-weight:400;
}

/* General numbered cards: use large pale numbers where markup already exposes
   a numeric label. This keeps the visual language consistent beyond ABOUT. */
.offer-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:38px 26px 28px;
}
.offer-card .offer-no{
  position:absolute;
  z-index:-1;
  left:20px;
  top:10px;
  margin:0;
  color:rgba(34,123,187,.10);
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:72px;
  line-height:1;
  letter-spacing:-.06em;
  font-weight:900;
}
.offer-card h3{
  margin-top:56px;
  font-size:24px;
  font-weight:800;
  color:#0b365c;
}
.offer-card p{
  font-size:16px;
  line-height:1.85;
}

/* Step numbers work as guide marks, not competing headlines. */
.inner-process article{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:30px 20px 24px;
}
.inner-process .num{
  position:absolute;
  z-index:-1;
  top:8px;
  left:14px;
  color:rgba(38,127,188,.10);
  font-size:58px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.05em;
}
.inner-process h3{
  margin-top:48px;
  font-size:20px;
  font-weight:800;
}

/* Top-page WHY NULL follows the same background-number system on dark ground. */
.why-card{
  isolation:isolate;
  overflow:hidden;
}
.why-no{
  z-index:-1;
  top:10px!important;
  left:12px!important;
  font-size:84px!important;
  line-height:.95!important;
  color:rgba(255,255,255,.085)!important;
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-weight:900!important;
  letter-spacing:-.08em!important;
}
.why-card svg{
  margin-top:72px;
}
.why-card strong{
  font-size:21px;
  font-weight:800;
}

/* Better hierarchy for case hero metadata; keep metadata subdued. */
.case-detail-hero .tag-row{
  margin-bottom:10px;
}
.case-detail-hero .tag{
  font-size:13px;
  letter-spacing:.04em;
}
.case-detail-hero .case-client{
  font-size:14px;
  color:#6b7f91;
}

@media (max-width:980px){
  .case-story .story-block{
    min-height:auto;
    padding:86px 24px 46px;
  }
  .case-story .story-label{
    left:20px;
    top:24px;
    width:auto;
    font-size:58px;
  }
  .case-story .story-content{
    max-width:none;
  }
  .case-story .story-block:last-child{
    padding:92px 30px 38px;
  }
  .case-story .story-block:last-child .story-label{
    left:24px;
    top:24px;
    width:auto;
    font-size:70px;
  }
  .page-about .about-core .value-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:620px){
  .case-story .story-block{
    padding:72px 0 34px;
  }
  .case-story .story-label{
    left:0;
    top:20px;
    font-size:42px;
    color:rgba(52,127,205,.13);
  }
  .case-story .story-content h2{
    font-size:28px;
    margin-bottom:12px;
  }
  .case-story .story-content p,
  .case-story .action-list{
    font-size:16px;
    line-height:1.85;
  }
  .case-story .story-block:last-child{
    margin-top:28px;
    padding:78px 22px 30px;
    border-radius:14px;
  }
  .case-story .story-block:last-child .story-label{
    left:18px;
    top:20px;
    font-size:54px;
  }
  .case-story .story-block:last-child .story-content h2{
    font-size:28px;
  }
  .case-story .story-block:last-child .story-content p{
    font-size:17px;
  }
  .page-about .about-core .value-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .page-about .about-core .value-card{
    min-height:250px;
    padding:34px 22px 24px;
  }
  .page-about .about-core .value-card>span{
    left:14px;
    top:8px;
    font-size:74px;
  }
  .page-about .about-core .value-card h3{
    margin-top:64px;
    font-size:27px;
  }
  .page-about .about-core .value-card .value-key{
    font-size:16px;
  }
  .page-about .about-core .value-card p{
    font-size:15px;
  }
  .offer-card .offer-no{
    font-size:60px;
  }
  .offer-card h3{
    margin-top:48px;
    font-size:22px;
  }
  .why-no{
    font-size:70px!important;
  }
}

/* 2026-09 final QA fixes: alignment, contrast, hierarchy, wrapping */
:root{
  --content-reading:1120px;
  --card-border:#c6d6e1;
}

/* Japanese line breaking: keep phrases together, but never overflow. */
h1,h2,h3,.lead,.case-body p,.case-list-card p,.issue-card h3,.issue-card p,
.why-card strong,.why-card em,.story-content p,.public-evidence p,
.casebook-copy p,.form-aside li{
  word-break:keep-all;
  overflow-wrap:anywhere;
}

/* CASE detail: align every reading block to the same centered axis. */
.case-detail-grid,
.case-story,
.public-evidence > .container,
.page-section.pale > .container{
  width:min(calc(100% - 48px),var(--content-reading));
  margin-inline:auto;
}
.case-detail-grid{gap:64px}
.case-detail-hero .lead{max-width:650px}
.case-story .story-block{padding-left:280px;padding-right:28px}
.case-story .story-label{width:260px;font-size:clamp(48px,5.2vw,78px);top:42px}
.case-story .story-content{max-width:760px}
.case-story .story-content h2{font-size:36px}
.case-story .story-content p,.case-story .action-list{font-size:17px;line-height:1.95}
.case-story .story-block:last-child{padding-left:310px;padding-right:48px}
.case-story .story-block:last-child .story-label{width:275px}

/* PUBLIC RESULT: a deliberate evidence panel, not a nested full-width card. */
.public-evidence{
  padding:72px 0;
  border-radius:0;
  background:linear-gradient(180deg,#edf6fb 0%,#f6fafc 100%);
}
.public-evidence > .container.evidence-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);
  gap:42px;
  align-items:center;
  padding:38px 42px;
  border:1.5px solid var(--card-border);
  border-radius:14px;
  background:#fff;
  box-shadow:0 12px 34px rgba(7,51,88,.07);
}
.public-evidence .section-kicker{margin-bottom:12px}
.public-evidence h2{margin:0 0 14px;font-size:32px;line-height:1.35;color:#0b365c}
.public-evidence p{margin:0;font-size:16px;line-height:1.95;color:#4f687d}
.public-evidence .evidence-links{margin:0;gap:12px}
.public-evidence .evidence-link{
  display:grid;
  grid-template-columns:1fr auto auto;
  align-items:center;
  min-height:62px;
  gap:18px;
  padding:14px 16px;
  border:1.5px solid #cbdbe6;
  font-size:14px;
  transition:.2s ease;
}
.public-evidence .evidence-link:hover{border-color:#7aa9c5;background:#f5fbfe;transform:translateY(-1px)}
.public-evidence .evidence-link small{font-size:12px;color:#5e7689;text-align:right}
.public-evidence .evidence-link b{font-size:17px}

/* WHY NULL: fix specificity collision that turned cards white on dark background. */
.why-null .why-grid article.why-card{
  background:rgba(255,255,255,.075)!important;
  border:1.5px solid rgba(255,255,255,.28)!important;
  box-shadow:none!important;
  color:#fff;
}
.why-null .why-card svg{color:#8fd8f5!important}
.why-null .why-card strong{color:#fff!important;font-size:20px!important;line-height:1.5}
.why-null .why-card em{color:#d9eaf3!important;font-size:15px!important;line-height:1.75}
.why-null .why-no{color:rgba(255,255,255,.10)!important}

/* Top CASE: prioritize readable titles and stable Japanese wrapping. */
.cases .case-layout{grid-template-columns:210px minmax(0,1fr);gap:54px}
.cases .case-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.cases .case-card{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:250px}
.cases .case-visual{height:100%;min-height:250px}
.cases .case-card .case-body{padding:24px 22px 58px}
.cases .case-card .case-body h3{font-size:21px;line-height:1.45;font-weight:800;word-break:keep-all;overflow-wrap:anywhere}
.cases .case-card .case-body p{font-size:15px;line-height:1.82}
.cases .case-link{right:18px;bottom:18px}

/* CASE list page: titles and cards remain compact, but no awkward mid-word wrapping. */
.case-list-card h2{font-size:20px;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
.case-list-card p{font-size:15px;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
.filter-button{cursor:pointer;transition:.18s ease}
.filter-button:hover{border-color:#0b6f9e;color:#0b5e8e}
.filter-button[aria-pressed="true"]{background:#0b5e8e;color:#fff;border-color:#0b5e8e}
.case-list-card[hidden]{display:none!important}

/* Download page: explicit two-column preview layout; remove nested-card visual drift. */
.page-section.pale .casebook-preview{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:54px;
  align-items:center;
  min-height:0;
  padding:42px;
  border:1.5px solid var(--card-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 34px rgba(7,51,88,.06);
}
.page-section.pale .casebook-preview .book-cover{
  width:230px;
  margin-inline:auto;
  aspect-ratio:1/1.38;
  transform:none;
  padding:24px 20px;
}
.page-section.pale .casebook-preview .book-cover img{
  width:auto;
  max-width:150px;
  height:46px;
  object-fit:contain;
  margin:0 0 40px;
}
.page-section.pale .casebook-preview .book-cover h2{
  margin:0;
  font-size:20px;
  line-height:1.8;
  color:#173a59;
  word-break:keep-all;
}
.page-section.pale .casebook-preview .book-cover h2 small{display:block;margin-top:18px;font-size:10px;line-height:1.7;color:#6c8598}
.page-section.pale .casebook-copy{
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.page-section.pale .casebook-copy h1{margin:0 0 20px;font-size:38px;line-height:1.3;color:#0b365c}
.page-section.pale .casebook-copy>p{font-size:16px;line-height:1.95;color:#4e677c;max-width:760px}
.page-section.pale .toc-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;padding:0;list-style:none}
.page-section.pale .toc-list span{display:inline-flex;padding:8px 12px;border-radius:999px;background:#edf6fb;color:#195b82;font-size:13px;font-weight:700}
.form-panel,.form-aside{border:1.5px solid var(--card-border);border-radius:14px;padding:32px}
.form-panel h2,.form-aside h2{font-size:26px;color:#0b365c}
.page-form label{font-size:14px}
.page-form label span{font-size:12px;color:#6a8192;margin-left:6px}
.page-form input,.page-form select,.page-form textarea{font-size:16px;border-width:1.5px}
.form-aside p,.form-aside li{font-size:15px;line-height:1.8;color:#506a7e}

/* Company naming is intentionally styled without changing the logo wordmark. */
.company-name-reading{white-space:nowrap}

@media (max-width:1080px){
  .public-evidence > .container.evidence-card{grid-template-columns:1fr;gap:28px}
  .cases .case-grid{grid-template-columns:1fr}
  .cases .case-card{grid-template-columns:250px minmax(0,1fr)}
  .page-section.pale .casebook-preview{grid-template-columns:230px minmax(0,1fr);gap:36px}
}
@media (max-width:900px){
  .case-story .story-block{padding:86px 24px 46px}
  .case-story .story-label{width:auto;left:20px;top:24px}
  .case-story .story-block:last-child{padding:92px 30px 38px}
  .cases .case-layout{grid-template-columns:1fr;gap:28px}
  .cases .case-heading p br{display:none}
  .page-section.pale .casebook-preview{grid-template-columns:1fr;text-align:left}
  .page-section.pale .casebook-preview .book-cover{width:210px;margin:0}
}
@media (max-width:700px){
  .public-evidence{padding:52px 0}
  .public-evidence > .container.evidence-card{width:min(calc(100% - 32px),var(--content-reading));padding:26px 20px}
  .public-evidence h2{font-size:27px}
  .public-evidence p{font-size:15px}
  .public-evidence .evidence-link{grid-template-columns:1fr auto;gap:10px}
  .public-evidence .evidence-link small{grid-column:1/-1;text-align:left}
  .cases .case-card{grid-template-columns:1fr}
  .cases .case-visual{min-height:210px;height:210px}
  .page-section.pale .casebook-preview{width:min(calc(100% - 32px),var(--content-reading));padding:26px 20px}
  .page-section.pale .casebook-copy h1{font-size:31px}
}

/* 2026-09-21 visual polish: controlled line breaks, aligned WHY icons, restore clean CASE cards */
.title-line{display:block;white-space:nowrap}

/* WHY NULL: align all visual anchors and prevent accidental Japanese orphaning. */
.why-null .why-grid{align-items:stretch}
.why-null .why-card{
  min-height:318px;
  padding:30px 18px 24px;
  display:grid;
  grid-template-rows:92px 44px 82px 1fr;
  align-content:start;
  justify-content:stretch;
}
.why-null .why-no{
  top:12px!important;
  left:16px!important;
  font-size:80px!important;
  line-height:1!important;
}
.why-null .why-card svg{
  grid-row:2;
  align-self:start;
  margin:0!important;
  width:36px;
  height:36px;
}
.why-null .why-card strong{
  grid-row:3;
  align-self:start;
  margin:14px 0 0;
  font-size:18px!important;
  line-height:1.5!important;
  min-height:0;
}
.why-null .why-card strong .title-line{white-space:nowrap}
.why-null .why-card em{
  grid-row:4;
  margin-top:8px;
  font-size:14px!important;
  line-height:1.72!important;
}

/* TOP CASE STUDY: return to the cleaner four-card vertical composition. */
.cases .case-layout{
  grid-template-columns:210px minmax(0,1fr);
  gap:54px;
  align-items:start;
}
.cases .case-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.cases .case-card{
  display:flex;
  flex-direction:column;
  min-height:470px;
  overflow:hidden;
}
.cases .case-visual{
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  min-height:0;
  overflow:hidden;
  background:#e6eef4;
}
.cases .case-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.cases .case-card .case-body{
  position:relative;
  display:flex;
  flex-direction:column;
  flex:1;
  padding:20px 18px 54px;
}
.cases .case-card .case-body h3{
  margin:14px 0 10px;
  min-height:58px;
  font-size:18px;
  line-height:1.55;
  font-weight:800;
  word-break:normal;
  overflow-wrap:normal;
}
.cases .case-card .case-body h3 .title-line{white-space:nowrap}
.cases .case-card .case-body p{
  margin:0;
  font-size:14px;
  line-height:1.85;
  color:#586f83;
  word-break:normal;
  overflow-wrap:anywhere;
}
.cases .case-link{right:16px;bottom:16px}

@media (max-width:1180px){
  .why-null .why-card strong{font-size:17px!important}
  .why-null .why-card em{font-size:13.5px!important}
  .cases .case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cases .case-card{min-height:440px}
}
@media (max-width:760px){
  .why-null .why-card{
    min-height:250px;
    grid-template-rows:72px 38px auto 1fr;
  }
  .why-null .why-no{font-size:64px!important}
  .why-null .why-card strong{font-size:19px!important}
  .why-null .why-card em{font-size:15px!important}
  .cases .case-grid{grid-template-columns:1fr}
  .cases .case-card{min-height:0}
  .cases .case-card .case-body h3{min-height:0;font-size:20px}
}

/* CASE10 actual implementation photography */
.case-implementation-photos{background:#fff}
.implementation-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px}
.implementation-photo{margin:0;overflow:hidden;border:1px solid #d7e3eb;border-radius:12px;background:#fff;box-shadow:0 10px 28px rgba(7,51,88,.06)}
.implementation-photo--wide{grid-column:1/-1}
.implementation-photo img{display:block;width:100%;height:360px;object-fit:cover}
.implementation-photo--wide img{height:520px;object-position:center center}
.implementation-photo figcaption{padding:14px 16px;font-size:14px;line-height:1.7;color:#526b7f}
@media (max-width:767px){
  .implementation-photo-grid{grid-template-columns:1fr;gap:14px}
  .implementation-photo--wide{grid-column:auto}
  .implementation-photo img,.implementation-photo--wide img{height:auto;aspect-ratio:4/3;object-fit:cover}
  .implementation-photo figcaption{font-size:13px}
}

/* ========================================================================== */
/* 2026-09 CASE refinement: quieter value statement + stable research gallery */
/* ========================================================================== */

/* Value: keep the highlighted panel, but use the same background-typography language as the other CASE blocks. */
.case-story .story-block.story-value,
.case-story .story-block:last-child{
  position:relative;
  margin:42px 0 8px;
  min-height:0;
  padding:62px 48px 46px 300px;
  border:1px solid #d9e4eb;
  border-radius:16px;
  background:linear-gradient(135deg,#f7fbfd 0%,#eef6fa 100%);
  box-shadow:none;
  overflow:hidden;
}
.case-story .story-block.story-value .story-label,
.case-story .story-block:last-child .story-label{
  left:24px;
  top:28px;
  width:260px;
  color:rgba(52,127,205,.12);
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:clamp(48px,5vw,78px);
  line-height:.88;
  letter-spacing:-.05em;
  font-weight:900;
  font-style:normal;
  text-transform:uppercase;
  white-space:nowrap;
}
.case-story .story-block.story-value .story-content,
.case-story .story-block:last-child .story-content{max-width:740px}
.case-story .story-block.story-value .story-content h2,
.case-story .story-block:last-child .story-content h2{
  color:#16466a;
  font-size:22px;
  line-height:1.35;
  font-weight:700;
  margin:0 0 12px;
}
.case-story .story-block.story-value .story-content p,
.case-story .story-block:last-child .story-content p{
  color:#3f5d72;
  font-size:17px;
  line-height:1.95;
  font-weight:500;
}

/* CASE06: the section itself must remain a normal block; only inner grids use grid. */
.case-evidence-gallery{
  display:block!important;
  margin-top:0!important;
  padding:84px 0 92px;
  background:#fff;
}
.case-evidence-gallery > .container{
  width:min(calc(100% - 48px),1120px);
  margin-inline:auto;
}
.research-heading{max-width:760px;margin-bottom:42px}
.research-heading p:last-child{max-width:720px;font-size:16px;line-height:1.9;color:#5a7083}
.research-group{margin-top:42px}
.research-group + .research-group{margin-top:64px;padding-top:48px;border-top:1px solid #d9e4eb}
.research-group-head{display:flex;align-items:baseline;gap:14px;margin-bottom:22px}
.research-group-head>span{font-size:13px;font-weight:800;letter-spacing:.12em;color:#1680b4}
.research-group-head h3{margin:0;font-size:25px;line-height:1.3;color:#123f62;font-weight:750}
.research-process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.research-output-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.case-cricket .research-process-grid .evidence-photo,
.case-cricket .research-output-grid .evidence-photo{
  margin:0;
  border:1px solid #d7e2e9;
  border-radius:12px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(7,51,88,.045);
}
.case-cricket .research-process-grid .evidence-photo--feature{grid-column:1/-1}
.case-cricket .research-process-grid .evidence-photo img{
  display:block;width:100%;height:280px;object-fit:cover;
}
.case-cricket .research-process-grid .evidence-photo--feature img{height:360px;object-position:center 52%}
.case-cricket .research-output-grid .evidence-photo img{
  display:block;width:100%;height:330px;object-fit:cover;object-position:center top;
}
.case-cricket .research-process-grid figcaption,
.case-cricket .research-output-grid figcaption{padding:17px 18px 19px}
.case-cricket .research-process-grid figcaption strong,
.case-cricket .research-output-grid figcaption strong{display:block;margin-bottom:7px;color:#153f61;font-size:16px;line-height:1.55;font-weight:700}
.case-cricket .research-process-grid figcaption span,
.case-cricket .research-output-grid figcaption span{display:block;color:#5a7083;font-size:13px;line-height:1.75}

/* New CASE images: keep card crops stable and intentional. */
.case-list-card img,.related-card img,.case-card .case-visual img{object-fit:cover}
.case-detail-page .case-detail-image img[src*="case-cloud-accounting"],
.case-detail-page .case-detail-image img[src*="case-subsidy-support"]{object-position:center 55%}
.case-detail-page .case-detail-image img[src*="case-hr-integration"]{object-position:center 48%}

@media (max-width:980px){
  .case-story .story-block.story-value,
  .case-story .story-block:last-child{padding:92px 30px 34px}
  .case-story .story-block.story-value .story-label,
  .case-story .story-block:last-child .story-label{left:20px;top:24px;width:auto;font-size:58px}
  .research-output-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .research-output-grid .evidence-photo:last-child{grid-column:1/-1;max-width:calc(50% - 11px)}
}
@media (max-width:620px){
  .case-story .story-block.story-value,
  .case-story .story-block:last-child{margin-top:28px;padding:76px 20px 28px;border-radius:12px}
  .case-story .story-block.story-value .story-label,
  .case-story .story-block:last-child .story-label{left:0;top:18px;width:auto;font-size:42px}
  .case-story .story-block.story-value .story-content h2,
  .case-story .story-block:last-child .story-content h2{font-size:20px}
  .case-story .story-block.story-value .story-content p,
  .case-story .story-block:last-child .story-content p{font-size:16px}
  .case-evidence-gallery{padding:62px 0 70px}
  .case-evidence-gallery > .container{width:min(calc(100% - 32px),1120px)}
  .research-process-grid,.research-output-grid{grid-template-columns:1fr;gap:16px}
  .research-output-grid .evidence-photo:last-child{grid-column:auto;max-width:none}
  .case-cricket .research-process-grid .evidence-photo img,
  .case-cricket .research-process-grid .evidence-photo--feature img{height:auto;aspect-ratio:4/3;object-fit:cover}
  .case-cricket .research-output-grid .evidence-photo img{height:auto;aspect-ratio:4/3;object-fit:cover}
}

/* 2026-09-21 refinement: condensed background labels/numbers + cricket gallery curation */
:root{
  --display-condensed:"Arial Narrow","Aptos Narrow","Helvetica Neue",Arial,sans-serif;
}

.page-about .about-core .value-card>span,
.offer-card .offer-no,
.inner-process .num,
.why-no,
.case-story .story-label,
.research-group-head>span{
  font-family:var(--display-condensed);
  font-stretch:condensed;
  font-variant-numeric:lining-nums tabular-nums;
  letter-spacing:-.04em!important;
}

.page-about .about-core .value-card>span,
.offer-card .offer-no,
.inner-process .num,
.why-no,
.case-story .story-label{
  transform:scaleX(.82);
  transform-origin:left top;
}

.page-about .about-core .value-card>span{
  left:8px;
  top:10px;
}
.offer-card .offer-no{
  left:12px;
  top:12px;
}
.inner-process .num{
  left:8px;
  top:10px;
}
.why-no{
  left:6px!important;
  top:10px!important;
  font-size:92px!important;
  line-height:.92!important;
}
.case-story .story-label{
  left:-18px;
  top:40px;
  width:300px;
  font-size:clamp(54px,5.2vw,82px);
  line-height:.84;
  letter-spacing:-.03em!important;
}
.case-story .story-block:last-child .story-label,
.case-story .story-block.story-value .story-label{
  left:8px;
  top:34px;
}
.research-group-head>span{
  font-size:16px;
  line-height:1;
  letter-spacing:-.02em;
}

.case-cricket .research-process-grid,
.case-cricket .research-output-grid,
.case-cricket .research-process-grid--compact,
.case-cricket .research-output-grid--compact{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}
.case-cricket .research-process-grid .evidence-photo,
.case-cricket .research-output-grid .evidence-photo{
  margin:0;
}
.case-cricket .research-process-grid .evidence-photo img,
.case-cricket .research-output-grid .evidence-photo img{
  height:320px;
  object-fit:cover;
}
.case-cricket .research-process-grid .evidence-photo img{object-position:center 52%}
.case-cricket .research-output-grid .evidence-photo img{object-position:center top}

@media (max-width:980px){
  .case-story .story-label{
    left:4px;
    top:26px;
    width:auto;
    font-size:62px;
  }
  .case-story .story-block:last-child .story-label,
  .case-story .story-block.story-value .story-label{
    left:4px;
    top:24px;
    width:auto;
    font-size:62px;
  }
  .why-no{font-size:76px!important}
}

@media (max-width:620px){
  .page-about .about-core .value-card>span,
  .offer-card .offer-no,
  .inner-process .num,
  .why-no,
  .case-story .story-label{
    transform:scaleX(.88);
  }
  .case-story .story-label{
    left:0;
    top:18px;
    font-size:44px;
  }
  .case-story .story-block:last-child .story-label,
  .case-story .story-block.story-value .story-label{
    left:0;
    top:18px;
    font-size:44px;
  }
  .why-no{font-size:70px!important}
  .case-cricket .research-process-grid,
  .case-cricket .research-output-grid,
  .case-cricket .research-process-grid--compact,
  .case-cricket .research-output-grid--compact{
    grid-template-columns:1fr;
    gap:16px;
  }
  .case-cricket .research-process-grid .evidence-photo img,
  .case-cricket .research-output-grid .evidence-photo img{
    height:auto;
    aspect-ratio:4/3;
  }
}

/* 2026-09-21 refinement v2: tighter condensed display labels without clipping */
:root{
  --display-condensed:"Arial Narrow","Aptos Narrow","Helvetica Neue",Arial,sans-serif;
}

.page-about .about-core .value-card>span,
.offer-card .offer-no,
.inner-process .num,
.why-no,
.case-story .story-label,
.research-group-head>span{
  font-family:var(--display-condensed);
  font-stretch:condensed;
  font-variant-numeric:lining-nums tabular-nums;
  letter-spacing:-.06em!important;
}

.page-about .about-core .value-card>span,
.offer-card .offer-no,
.inner-process .num,
.why-no,
.case-story .story-label{
  transform:scaleX(.74);
  transform-origin:left top;
}

.page-about .about-core .value-card>span{left:12px;top:12px}
.offer-card .offer-no{left:14px;top:12px}
.inner-process .num{left:12px;top:12px}
.why-no{left:12px!important;top:12px!important;line-height:.84!important}

.case-story .story-label{
  left:8px;
  top:40px;
  width:340px;
  font-size:clamp(54px,5.15vw,82px);
  line-height:.82;
  white-space:nowrap;
}
.case-story .story-block.story-value .story-label,
.case-story .story-block:last-child .story-label{
  left:20px;
  top:30px;
  width:320px;
}

@media (max-width:980px){
  .page-about .about-core .value-card>span,
  .offer-card .offer-no,
  .inner-process .num,
  .why-no,
  .case-story .story-label{
    transform:scaleX(.78);
  }
  .case-story .story-label{
    left:6px;
    top:24px;
    width:auto;
    font-size:60px;
  }
  .case-story .story-block.story-value .story-label,
  .case-story .story-block:last-child .story-label{
    left:12px;
    top:24px;
    width:auto;
    font-size:60px;
  }
}

@media (max-width:620px){
  .page-about .about-core .value-card>span,
  .offer-card .offer-no,
  .inner-process .num,
  .why-no,
  .case-story .story-label{
    transform:scaleX(.84);
  }
  .case-story .story-label,
  .case-story .story-block.story-value .story-label,
  .case-story .story-block:last-child .story-label{
    left:0;
    top:18px;
    width:auto;
    font-size:42px;
  }
}

/* CASE12 actual photo: keep the intentionally cropped, privacy-conscious composition. */
.case-detail-page .case-detail-image img[src*="case-medical-travel"]{
  object-position:center 42%;
}
.case-list-card img[src*="case-medical-travel"],
.related-card img[src*="case-medical-travel"]{
  object-position:center 40%;
}

/* ========================================================================== */
/* 2026-09-21 SUPPORT & FEE / PRICE GUIDE                                     */
/* ========================================================================== */
.price-teaser{background:#f3f8fb;padding:92px 0}
.price-teaser-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:58px;align-items:start}
.price-teaser-heading{position:sticky;top:110px}
.price-teaser-heading h2{font-size:34px;line-height:1.3;color:#0b365c;margin:0 0 18px}
.price-teaser-heading>p:not(.section-kicker){font-size:15px;line-height:1.9;color:#5a7083;margin-bottom:24px}
.text-arrow-link{display:inline-flex;align-items:center;gap:8px;color:#086d9f;font-size:14px;font-weight:800;border-bottom:1px solid rgba(8,109,159,.28);padding-bottom:4px}
.price-teaser-grid{display:grid;grid-template-columns:1fr;gap:12px}
.price-teaser-grid article{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr) 126px;gap:18px;align-items:center;min-height:112px;padding:20px 24px;border:1.5px solid #ccdce6;border-radius:12px;background:#fff;box-shadow:0 8px 22px rgba(7,51,88,.035)}
.price-teaser-grid article>span{font-family:var(--display-condensed,"Arial Narrow",Arial,sans-serif);font-size:40px;line-height:1;font-weight:900;color:rgba(19,102,151,.20);letter-spacing:-.05em;transform:scaleX(.78);transform-origin:left center}
.price-teaser-grid h3{margin:0 0 6px;color:#123e61;font-size:18px;line-height:1.55;font-weight:800;word-break:keep-all;overflow-wrap:anywhere}
.price-teaser-grid p{margin:0;color:#6b7e8e;font-size:12.5px;line-height:1.65}
.price-teaser-grid strong{justify-self:end;white-space:nowrap;color:#075f8c;font-size:22px;line-height:1;font-weight:900}
.price-teaser-grid .price-teaser-feature{background:linear-gradient(115deg,#073553,#0b6a96);border-color:transparent;box-shadow:0 16px 36px rgba(7,51,88,.14)}
.price-teaser-grid .price-teaser-feature>span{color:rgba(255,255,255,.16)}
.price-teaser-grid .price-teaser-feature h3,.price-teaser-grid .price-teaser-feature strong{color:#fff}
.price-teaser-grid .price-teaser-feature p{color:#d9eaf3}

.price-hero{padding:78px 0 72px;background:linear-gradient(110deg,#f8fbfd 0%,#eef7fb 60%,#e2f1f8 100%)}
.price-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:72px;align-items:center}
.price-hero h1{margin:8px 0 22px;color:#0a365b;font-size:clamp(36px,4vw,54px);line-height:1.2;font-weight:850;letter-spacing:.01em}
.price-hero-catch{margin:0 0 24px!important;color:#526d82!important;font-size:20px!important;line-height:1.5!important}
.price-hero-catch strong{display:inline-block;color:#0874a9;font-size:30px;font-weight:850;margin-left:6px}
.price-hero-grid>div>p:not(.section-kicker):not(.price-hero-catch){max-width:760px;margin:8px 0;color:#526b7f;font-size:16px;line-height:1.95}
.price-hero-note{position:relative;padding:36px 30px 32px;border-radius:16px;background:linear-gradient(140deg,#073655,#0b6d9a);color:#fff;box-shadow:0 18px 44px rgba(7,51,88,.16);overflow:hidden}
.price-hero-note:after{content:"FEE";position:absolute;right:-6px;top:-14px;font-family:var(--display-condensed,"Arial Narrow",Arial,sans-serif);font-weight:900;font-size:94px;line-height:1;color:rgba(255,255,255,.065);transform:scaleX(.72);transform-origin:right top}
.price-hero-note span{position:relative;z-index:1;display:block;color:#9fdcf6;font-size:13px;font-weight:800;letter-spacing:.08em}
.price-hero-note strong{position:relative;z-index:1;display:block;margin:10px 0 18px;font-size:38px;line-height:1;font-weight:900}
.price-hero-note p{position:relative;z-index:1;margin:0;color:#dfedf4;font-size:14px;line-height:1.85}

.price-menu-section{padding-top:88px}
.price-menu-section .page-section-heading{max-width:760px}
.price-guide-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:38px}
.price-guide-card{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) 180px;gap:22px;align-items:center;padding:28px 30px;border:1.5px solid #d4e0e8;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(7,51,88,.035)}
.price-guide-card .price-no{font-family:var(--display-condensed,"Arial Narrow",Arial,sans-serif);font-size:58px;line-height:1;font-weight:900;color:rgba(23,115,169,.15);letter-spacing:-.06em;transform:scaleX(.72);transform-origin:left center}
.price-guide-copy h3{margin:0 0 8px;color:#0b365c;font-size:21px;line-height:1.45;font-weight:800;word-break:keep-all;overflow-wrap:anywhere}
.price-example{margin:0 0 8px;color:#536e83;font-size:15px;line-height:1.75}
.price-scope{margin:0;color:#8494a0;font-size:12px;line-height:1.65}
.price-amount{text-align:right;white-space:nowrap}
.price-amount small{display:block;margin-bottom:9px;color:#7b8f9f;font-size:10px;font-weight:700}
.price-amount strong{color:#086d9f;font-size:28px;line-height:1;font-weight:900}
.price-guide-card--featured{background:linear-gradient(115deg,#062f4d,#0a628d);border-color:transparent}
.price-guide-card--featured .price-no{color:rgba(255,255,255,.14)}
.price-guide-card--featured h3,.price-guide-card--featured .price-amount strong{color:#fff}
.price-guide-card--featured .price-example{color:#e2edf3}
.price-guide-card--featured .price-scope,.price-guide-card--featured .price-amount small{color:#a8c9da}
.price-disclaimer{margin:20px 2px 0;color:#728696;font-size:12px;line-height:1.8}

.price-factor-section{padding-top:90px;padding-bottom:90px}
.price-factor-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:58px;align-items:start}
.price-factor-layout .section-side h2{font-size:32px;line-height:1.4}
.price-factor-layout .section-side>p:last-child{font-size:14px;line-height:1.9;color:#607587}
.price-factor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.price-factor-grid article{position:relative;min-height:180px;padding:30px 24px 24px;border:1.5px solid #cfdee7;border-radius:12px;background:#fff;overflow:hidden}
.price-factor-grid article>span{position:absolute;right:12px;top:4px;font-family:var(--display-condensed,"Arial Narrow",Arial,sans-serif);font-size:68px;line-height:1;font-weight:900;color:rgba(24,111,163,.08);letter-spacing:-.06em;transform:scaleX(.72);transform-origin:right top}
.price-factor-grid h3{position:relative;margin:34px 0 10px;color:#0e4267;font-size:20px;font-weight:800}
.price-factor-grid p{position:relative;margin:0;color:#5d7183;font-size:14px;line-height:1.8}
.price-team-note{display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:center;margin-top:34px;padding:28px 32px;border-left:5px solid #0a78ad;background:#fff}
.price-team-note strong{color:#0b365c;font-size:20px;line-height:1.5}
.price-team-note p{margin:0;color:#536e82;font-size:15px;line-height:1.85}

.price-case-section{padding-top:88px;padding-bottom:96px}
.price-case-section .related-grid{margin-top:34px}
.price-case-section .related-card p{font-size:13px;line-height:1.75}
.price-contact{padding:72px 0;background:linear-gradient(115deg,#052c49,#0a618c);color:#fff}
.price-contact-inner{display:flex;align-items:center;justify-content:space-between;gap:50px}
.price-contact h2{margin:6px 0 12px;font-size:34px;line-height:1.35;color:#fff}
.price-contact p:not(.section-kicker){margin:0;max-width:760px;color:#dbeaf2;font-size:16px;line-height:1.85}
.contact-price-guide{margin:22px 0 0!important;padding:18px 20px;border-radius:9px;background:#eef7fb}
.contact-price-guide .text-link{font-size:14px;font-weight:800}

@media (max-width:980px){
  .price-teaser-layout,.price-factor-layout{grid-template-columns:1fr;gap:34px}
  .price-teaser-heading{position:static}
  .price-hero-grid{grid-template-columns:1fr;gap:36px}
  .price-hero-note{max-width:420px}
  .price-guide-card{grid-template-columns:58px minmax(0,1fr) 150px;padding:24px 22px}
  .price-factor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .price-contact-inner{align-items:flex-start}
}
@media (max-width:700px){
  .price-teaser{padding:68px 0}
  .price-teaser-grid article{grid-template-columns:38px 1fr;gap:12px;padding:18px}
  .price-teaser-grid article>span{font-size:32px}
  .price-teaser-grid strong{grid-column:2;justify-self:start;font-size:21px;margin-top:2px}
  .price-hero{padding:56px 0}
  .price-hero h1{font-size:34px}
  .price-hero-catch strong{display:block;margin:4px 0 0;font-size:28px}
  .price-guide-card{grid-template-columns:42px 1fr;padding:22px 18px;gap:10px}
  .price-guide-card .price-no{font-size:42px}
  .price-amount{grid-column:2;text-align:left;margin-top:8px}
  .price-amount small{margin-bottom:6px}
  .price-factor-grid{grid-template-columns:1fr}
  .price-factor-grid article{min-height:150px}
  .price-team-note{grid-template-columns:1fr;gap:10px;padding:24px 20px}
  .price-contact-inner{display:block}
  .price-contact h2{font-size:28px}
  .price-contact .button{margin-top:24px}
}


/* 2026-09-21 price page refinement: consistent navigation and intentional Japanese line breaks */
.price-hero-grid{grid-template-columns:minmax(0,880px);gap:0;align-items:start}
.price-hero-grid>div{max-width:880px}
.price-factor-layout .section-side h2 .title-line,
.price-guide-copy h3 .title-line,
.price-teaser-grid h3 .title-line{display:block;white-space:nowrap}
.price-factor-layout .section-side h2{word-break:keep-all;overflow-wrap:normal;text-wrap:balance}
.price-guide-copy h3,.price-teaser-grid h3{word-break:keep-all;overflow-wrap:normal}
@media (max-width:700px){
  .price-factor-layout .section-side h2 .title-line,
  .price-guide-copy h3 .title-line,
  .price-teaser-grid h3 .title-line{white-space:normal}
}

/* ========================================================================== */
/* 2026-09-21 final content / responsive refinement                           */
/* ========================================================================== */

/* Intentional Japanese line breaks supplied in content. */
.line-lock{white-space:nowrap}

/* TOP: CASE and FEE side headings behave consistently while their cards scroll. */
.cases .case-heading,
.price-teaser-heading{
  position:sticky;
  top:110px;
  align-self:start;
}

/* WHY NULL: do not insert hard breaks in the explanatory sentence. */
.why-null .why-card em{
  white-space:normal;
  text-wrap:pretty;
  word-break:keep-all;
  overflow-wrap:anywhere;
}

/* Footer: logo intentionally removed. */
.site-footer .footer-grid{
  grid-template-columns:minmax(0,1fr) auto;
  gap:36px;
}
.site-footer .footer-nav{align-self:center}

/* Price page: friendly lead and stable alignment. */
.price-hero-first{
  margin:0 0 10px!important;
  color:#123f62!important;
  font-size:22px!important;
  line-height:1.65!important;
  font-weight:800;
}
.price-team-note{
  align-items:start;
}
.price-team-note strong{
  padding-top:1px;
}

/* Case list / body prose: no artificial line breaks; let Japanese wrap naturally. */
.case-card .case-body p,
.case-list-card p,
.related-card p{
  word-break:normal;
  overflow-wrap:anywhere;
  text-wrap:pretty;
}

/* Diagnosis landing point should not sit underneath the sticky header. */
#case-list{scroll-margin-top:110px}

@media (max-width:980px){
  .cases .case-heading,
  .price-teaser-heading{position:static}
  .site-footer .footer-grid{grid-template-columns:1fr;gap:20px}
  .site-footer .footer-policy{align-items:flex-start}
}

@media (max-width:700px){
  /* TOP hero: retain the globe / right-side visual even on a phone. */
  .hero{
    min-height:620px;
    background:#f5fafc;
  }
  .hero-grid{
    display:block;
    min-height:620px;
  }
  .hero-copy{
    position:relative;
    z-index:2;
    padding:52px 0 170px;
    width:min(100%,560px);
  }
  .hero-media{
    background-image:
      linear-gradient(90deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.92) 42%,rgba(255,255,255,.42) 67%,rgba(255,255,255,.03) 100%),
      url('assets/topimage.jpg');
    background-size:auto 100%;
    background-position:62% center;
    background-repeat:no-repeat;
  }
  .hero-copy h1{font-size:clamp(38px,11vw,52px);line-height:1.22}
  .hero-lead{font-size:clamp(21px,6vw,28px);line-height:1.55}
  .hero-body{max-width:92%;font-size:13px;line-height:1.9}
  .hero-actions{gap:10px;flex-wrap:wrap}
  .hero-actions .button{min-width:0;padding-inline:18px}

  /* Issue cards: keep the requested breaks, but avoid edge collisions. */
  .issue-card h3,.issue-card p{overflow-wrap:normal}
  .line-lock{white-space:nowrap}

  /* TOP case study: give the heading and cards breathing room on phones. */
  .cases{padding-top:64px;padding-bottom:68px}
  .cases .case-layout{display:block}
  .cases .case-heading{margin:0 0 28px}
  .cases .case-heading p{max-width:100%;line-height:1.85}
  .cases .case-main{width:100%}
  .cases .all-cases{margin:0 0 18px 0}
  .cases .case-grid{grid-template-columns:1fr!important;gap:18px}
  .cases .case-card{min-height:0;height:auto}
  .cases .case-visual{height:auto;aspect-ratio:16/9;min-height:0}
  .cases .case-card .case-body{padding:18px 18px 54px}
  .cases .case-card .case-body h3{min-height:0;font-size:19px;line-height:1.5}
  .cases .case-card .case-body h3 .title-line{white-space:normal}
  .cases .case-card .case-body p{font-size:14px;line-height:1.8}

  /* CASE listing page: avoid the cramped mobile layout. */
  .subhero-grid{display:block;min-height:0}
  .subhero-copy{padding:40px 0 28px}
  .subhero-copy>p:last-child{font-size:15px;line-height:1.9}
  .subhero-image{height:auto;min-height:0;aspect-ratio:16/9;margin:0 calc((100vw - 100%)/-2)}
  .case-list-grid{grid-template-columns:1fr!important;gap:18px}
  .case-list-card>img{height:auto;aspect-ratio:16/9}
  .case-list-card .inner{padding:18px}
  .case-list-card h2{font-size:20px;line-height:1.45}
  .case-list-card p{font-size:14px;line-height:1.8}
  .filter-bar{gap:7px;margin-bottom:22px}
  .filter-button{padding:8px 11px;font-size:10.5px}

  /* Price layouts: predictable line breaks and no accidental narrow columns. */
  .price-team-note{grid-template-columns:1fr;gap:12px}
  .price-team-note strong{font-size:20px;line-height:1.55}
  .price-hero-first{font-size:19px!important;line-height:1.65!important}
  .price-factor-layout .section-side h2 .title-line,
  .price-guide-copy h3 .title-line,
  .price-teaser-grid h3 .title-line{white-space:normal}
}

@media (max-width:430px){
  .hero-media{
    background-position:66% center;
    background-size:auto 100%;
  }
  .hero-copy{padding-bottom:150px}
  .hero-body{max-width:90%}
  .issue-card{padding:18px 16px}
  .issue-card h3{font-size:16px;line-height:1.55}
  .issue-card p{font-size:14px;line-height:1.7}
}

.diagnosis-filter-note{
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 22px;
  padding:14px 18px;
  border-left:4px solid #0b78ad;
  background:#eef7fb;
  color:#375b73;
  scroll-margin-top:110px;
}
.diagnosis-filter-note strong{color:#0b365c;font-size:14px}
.diagnosis-filter-note span{font-size:13px}
@media (max-width:700px){
  .diagnosis-filter-note{display:block;padding:14px 15px}
  .diagnosis-filter-note strong,.diagnosis-filter-note span{display:block}
  .diagnosis-filter-note span{margin-top:5px;line-height:1.6}
}

/* 2026-09-21 section-heading sticky refinement: ISSUES through PROCESS */
.issues-heading,
.service-heading,
.why-heading,
.case-heading,
.price-teaser-heading,
.diagnosis-copy,
.download-copy,
.process-heading{
  position:sticky;
  top:110px;
  align-self:start;
}

@media (max-width:900px){
  .issues-heading,
  .service-heading,
  .why-heading,
  .case-heading,
  .price-teaser-heading,
  .diagnosis-copy,
  .download-copy,
  .process-heading{
    position:static;
    top:auto;
  }
}

/* price page: align the opening block with the common subpage hero */
.price-subhero .subhero-copy>p:last-child{max-width:620px}
.price-intro-section{padding-top:56px;padding-bottom:26px}
.price-intro-section .page-section-heading{max-width:900px}
.price-intro-section .page-section-heading p{max-width:860px}
.price-menu-section{padding-top:46px}
@media(max-width:620px){
  .price-intro-section{padding-top:40px;padding-bottom:18px}
  .price-menu-section{padding-top:34px}
}

/* Contact form: PHP submission / result pages */
.contact-result-page{min-height:68vh;display:flex;align-items:center;background:#f5f9fc}
.contact-result-card{max-width:760px;margin:0 auto;padding:56px 60px;border:1px solid #dce7ee;border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(7,53,83,.07);text-align:center}
.contact-result-card h1{margin:8px 0 18px;color:#073b61;font-size:34px;line-height:1.4}
.contact-result-card p{margin:0 auto 12px;max-width:620px;color:#567087;font-size:14px;line-height:2}
.contact-result-card .button{margin-top:24px}
.contact-result-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
@media(max-width:620px){.contact-result-card{padding:38px 22px}.contact-result-card h1{font-size:26px}}


/* 2026-09-21 NEWS readability & tags */
.news-list{
  border-top:1px solid #d9e5ed;
}
.news-item{
  display:grid;
  grid-template-columns:118px 190px minmax(0,1fr) 28px;
  gap:20px;
  align-items:center;
  padding:25px 4px;
  border-bottom:1px solid #d9e5ed;
}
.news-item time{
  color:#68839a;
  font-size:13px;
  font-weight:700;
  letter-spacing:.03em;
}
.news-item strong{
  color:#0a3558;
  font-size:16px;
  line-height:1.65;
  font-weight:800;
}
.news-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  align-items:center;
}
.news-cat,.news-tag{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  font-weight:800;
  letter-spacing:.03em;
}
.news-cat{
  color:#0674a8;
  background:#e9f6fc;
}
.news-tag{
  color:#49687f;
  background:#f0f4f7;
  border:1px solid #dce6ed;
}
.news-arrow{
  color:#0b6f9e;
  font-size:18px;
  font-weight:700;
}
.news-article{
  padding:42px 46px;
}
.news-article > h1{
  margin:10px 0 18px;
  color:#0a3558;
  font-size:clamp(30px,3.1vw,42px);
  line-height:1.35;
  letter-spacing:.01em;
}
.news-article .news-meta{
  display:flex;
  align-items:center;
  gap:18px;
  margin:0 0 34px;
  color:#68839a;
  font-size:14px;
}
.news-article .news-meta time{
  font-size:14px;
  font-weight:700;
  letter-spacing:.03em;
}
.news-content p{
  font-size:15px;
  line-height:2;
}
@media (max-width:760px){
  .news-item{
    grid-template-columns:1fr auto;
    gap:9px 14px;
    padding:22px 2px;
  }
  .news-item time{
    grid-column:1;
    font-size:12px;
  }
  .news-item .news-tags{
    grid-column:1;
  }
  .news-item strong{
    grid-column:1;
    font-size:15px;
  }
  .news-item .news-arrow{
    grid-column:2;
    grid-row:1 / span 3;
    align-self:center;
  }
  .news-article{
    padding:28px 22px;
  }
  .news-article > h1{
    font-size:28px;
  }
  .news-article .news-meta{
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    margin-bottom:26px;
  }
}


/* 2026-09-22 TOP hero mobile headline: keep Japanese full stop on same line */
@media (max-width:700px){
  .hero-copy h1{
    white-space:nowrap;
    font-size:clamp(36px,10vw,48px);
    letter-spacing:.02em;
    line-height:1.18;
  }
}
@media (max-width:360px){
  .hero-copy h1{
    font-size:34px;
  }
}
