@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@500;600;700&display=swap');

:root { --navy:#082f6c; --navy-2:#0c438c; --blue:#eaf4ff; --line:#d9e3f0; --yellow:#ffcf16; --ink:#0c2d5c; --muted:#526986; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:"Noto Sans JP",sans-serif; line-height:1.75; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; }
.site-header { height:82px; position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:30px; padding:11px clamp(20px,4vw,72px); background:rgba(255,255,255,.95); border-bottom:1px solid #edf2f8; backdrop-filter:blur(12px); }
.brand { display:flex; width:163px; flex:none; } .brand img { width:100%; height:auto; }
nav { display:flex; align-items:center; gap:clamp(15px,1.8vw,32px); margin-left:auto; } nav a { font-size:13px; font-weight:600; white-space:nowrap; } nav a:hover,.text-link:hover { color:#1771bd; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:52px; padding:11px 22px; border-radius:6px; font-weight:700; font-size:14px; transition:.2s ease; } .button:hover { transform:translateY(-2px); } .button span,.text-link span { font-size:20px; line-height:1; }
.header-cta,.primary { background:var(--yellow); box-shadow:0 7px 18px rgba(255,207,22,.2); }.header-cta { min-height:42px; padding:8px 16px; font-size:12px; white-space:nowrap; }.header-cta span { font-size:16px; }
.menu-button { display:none; margin-left:auto; border:0; background:transparent; color:var(--navy); font-size:28px; }
.hero { min-height:535px; position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(460px,46%) 1fr; background:linear-gradient(110deg,#fff 0%,#f7fbff 50%,#e6f1fb 100%); }
.hero::before,.hero::after { content:""; position:absolute; opacity:.6; pointer-events:none; }.hero::before { width:230px; height:230px; border:37px solid #dceafb; border-radius:22px; transform:rotate(45deg); left:-145px; bottom:-160px; }.hero::after { width:95px; height:95px; border:20px solid #dceafb; border-radius:11px; transform:rotate(45deg); left:50%; top:34px; }
.hero-content { position:relative; z-index:2; max-width:720px; padding:82px 24px 65px clamp(28px,7vw,128px); }.eyebrow { margin:0 0 6px; color:#1b67a9; font-size:11px; font-weight:700; letter-spacing:.16em; }.hero h1,.section h2,.consult-cta h2 { font-family:"Noto Serif JP",serif; letter-spacing:.04em; line-height:1.48; }.hero h1 { margin:0; font-size:clamp(35px,3vw,54px); font-weight:600; }.hero-copy { margin:14px 0 16px; font-size:15px; font-weight:500; }.trust-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; }.trust-chips span { border:1px solid #bfd2eb; border-radius:5px; padding:5px 10px 5px 28px; font-size:12px; font-weight:600; background:rgba(255,255,255,.7); position:relative; }.trust-chips span::before { content:"✓"; position:absolute; left:10px; color:var(--navy-2); font-weight:800; }.hero-image { position:relative; min-height:535px; clip-path:polygon(20% 0,100% 0,100% 100%,0 100%); }.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center right; }
.section { padding:78px clamp(24px,7vw,128px); }.strengths-band { display:grid; grid-template-columns:210px 1fr; align-items:stretch; gap:28px; padding-top:24px; padding-bottom:24px; background:#f7fbff; }.section-label { display:flex; flex-direction:column; justify-content:center; border-right:1px solid #b8cce5; }.section-label p { margin:0; font-family:"Noto Serif JP",serif; font-size:17px; }.section-label h2 { margin:0; font-size:36px; line-height:1.25; font-family:"Noto Serif JP",serif; }.strength-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.strength-grid article { position:relative; min-height:150px; padding:30px 20px 18px; background:#fff; border:1px solid var(--line); }.strength-grid b { position:absolute; top:0; left:0; background:var(--navy); color:#fff; padding:2px 8px; font-size:12px; }.strength-grid h3 { margin:6px 0 7px; font-size:15px; line-height:1.65; }.strength-grid p { margin:0; font-size:12px; color:var(--muted); line-height:1.8; }
.method-preview { display:grid; grid-template-columns:270px 1fr; gap:28px; align-items:center; }.section-heading h2 { margin:0 0 12px; font-size:32px; line-height:1.45; }.section-heading > p:last-child { margin:0; font-size:13px; color:var(--muted); }.steps { grid-column:2; display:grid; grid-template-columns:repeat(5,1fr); padding:0; margin:0; list-style:none; border:1px solid var(--line); border-radius:5px; overflow:hidden; }.steps li { position:relative; min-height:162px; padding:18px 13px; border-right:1px solid var(--line); }.steps li:last-child { border-right:0; }.steps b { display:block; margin-bottom:13px; color:#2b65a4; font-size:10px; letter-spacing:.08em; }.steps strong { display:block; font-size:14px; line-height:1.5; }.steps span { display:block; margin-top:8px; color:var(--muted); font-size:11px; line-height:1.7; }.method-preview .text-link { grid-column:2; justify-self:center; }
.text-link { display:inline-flex; align-items:center; gap:12px; color:var(--navy); font-size:14px; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:4px; }
.entry-links { background:linear-gradient(90deg,#f8fbff,#edf5fd); }.wrap { padding-top:46px; padding-bottom:46px; }.wrap h2 { margin:0 0 20px; font-family:"Noto Serif JP",serif; font-size:28px; }.entry-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; }.entry-grid a { display:flex; justify-content:space-between; align-items:center; padding:13px 12px; min-height:68px; background:#fff; border:1px solid var(--line); border-radius:4px; font-size:12px; font-weight:700; line-height:1.5; }.entry-grid a span { font-size:18px; color:#1d6ab0; }
.results-pricing { display:grid; grid-template-columns:260px 1fr; gap:24px; padding-top:62px; padding-bottom:40px; }.results-card { padding:22px; background:linear-gradient(145deg,#f6fbff,#e6f1fd); border:1px solid #c9ddf4; }.results-card h2 { margin:0 0 16px; font-size:18px; }.rate { display:flex; align-items:end; gap:8px; border-top:1px solid #bcd2ea; padding-top:12px; }.rate span { font-weight:700; font-size:13px; }.rate strong { color:var(--navy); font-family:"Noto Serif JP",serif; font-size:48px; line-height:1; }.rate small { font-size:20px; }.results-card > small { font-size:9px; color:var(--muted); }.case-list { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.case-list article { display:flex; gap:12px; padding:10px; border:1px solid var(--line); }.case-photo { width:72px; flex:none; aspect-ratio:1; background:linear-gradient(140deg,#527fab,#d7eafa 52%,#fbd05c); }.case-two { background:linear-gradient(130deg,#153f7a,#8cb6e1 48%,#f0f7fe); }.case-three { background:linear-gradient(135deg,#e1f2ff,#2b5b9b 60%,#ffc516); }.case-list h3 { margin:0; font-size:13px; line-height:1.5; }.case-list b { display:block; margin:4px 0; font-size:11px; line-height:1.5; }.case-list p { margin:0; color:var(--muted); font-size:10px; line-height:1.6; }
.plans { background:#f8fbff; text-align:center; }.plans .section-heading { max-width:600px; margin:0 auto 30px; }.plan-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:1040px; margin:0 auto 22px; text-align:left; }.plan-grid article { min-height:270px; padding:22px; background:#fff; border:1px solid #bcd0e8; border-top:4px solid var(--navy); }.plan-grid span { color:#2d6fae; font-size:11px; font-weight:700; letter-spacing:.1em; }.plan-grid h3 { margin:14px 0; font-size:18px; line-height:1.55; }.plan-grid strong { display:block; color:var(--navy); font-family:"Noto Serif JP",serif; font-size:34px; line-height:1; }.plan-grid strong small { margin-left:4px; font-family:"Noto Sans JP",sans-serif; font-size:12px; }.plan-grid p { margin:18px 0 0; padding-top:15px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.85; }.plans .text-link { margin-top:4px; }
.online { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(30px,6vw,88px); }.online-image { overflow:hidden; border-radius:4px; }.online-image img { width:100%; display:block; aspect-ratio:3/2; object-fit:cover; }.online h2 { margin:0 0 14px; font-size:34px; }.online p:not(.eyebrow) { color:var(--muted); font-size:14px; }.online .text-link { margin-top:8px; }
.consult-cta { display:flex; justify-content:space-between; align-items:center; gap:30px; padding:48px clamp(24px,7vw,128px); background:linear-gradient(110deg,#082f6c,#0c4c9e); color:#fff; }.consult-cta .eyebrow { color:#bddcff; }.consult-cta h2 { margin:0; font-size:30px; }.consult-cta p:not(.eyebrow) { margin:8px 0 0; font-size:13px; color:#d3e6ff; }.consult-cta .primary { flex:none; color:var(--navy); }
.site-footer { display:grid; grid-template-columns:1.3fr repeat(3,1fr); gap:34px; position:relative; padding:46px clamp(24px,7vw,128px) 34px; background:#05275d; color:#d9e8fc; }.site-footer img { width:158px; background:#fff; border-radius:3px; }.site-footer p { font-size:12px; line-height:1.8; }.site-footer b { display:block; margin-bottom:8px; color:#fff; font-size:13px; }.site-footer a { display:block; margin:5px 0; font-size:12px; }.site-footer small { grid-column:1/-1; padding-top:18px; border-top:1px solid rgba(255,255,255,.2); font-size:10px; }
.mobile-cta { display:none; }

.page-hero { min-height:240px; padding:45px clamp(24px,8vw,128px); display:flex; align-items:end; position:relative; overflow:hidden; background:linear-gradient(110deg,#fff 0%,#f1f8ff 70%,#dcecff); border-bottom:1px solid var(--line); }
.page-hero::after { content:""; position:absolute; width:150px; height:150px; right:13%; top:-40px; border:27px solid rgba(207,227,247,.8); border-radius:18px; transform:rotate(45deg); }.page-hero h1 { margin:0; position:relative; z-index:1; font-family:"Noto Serif JP",serif; font-size:clamp(34px,4vw,52px); line-height:1.35; }.breadcrumbs { margin:0 0 18px; font-size:11px; color:#6380a2; }.inner { max-width:1180px; margin:0 auto; }.lead { max-width:820px; margin:0 auto; padding:64px 24px 36px; text-align:center; }.lead h2 { margin:0 0 14px; font-family:"Noto Serif JP",serif; font-size:28px; line-height:1.55; }.lead p { margin:0; color:var(--muted); font-size:14px; }
.content-section { padding:28px 24px 70px; }.content-section h2 { font-family:"Noto Serif JP",serif; font-size:26px; }.surface { padding:28px; border:1px solid var(--line); background:#fff; border-radius:5px; }.three-column { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.info-card { padding:24px 20px; border:1px solid var(--line); background:#fff; }.info-card h3 { margin:0 0 8px; font-size:17px; }.info-card p { margin:0; color:var(--muted); font-size:13px; }.page-cta { max-width:1180px; margin:0 auto 70px; padding:30px 34px; display:flex; justify-content:space-between; align-items:center; gap:20px; color:#fff; background:linear-gradient(110deg,#082f6c,#0c4c9e); }.page-cta h2 { margin:0; font-family:"Noto Serif JP",serif; font-size:24px; }.page-cta p { margin:5px 0 0; color:#dcecff; font-size:13px; }.page-cta .button { color:var(--navy); flex:none; }
.comparison { width:100%; border-collapse:collapse; }.comparison th,.comparison td { padding:15px; border-bottom:1px solid var(--line); text-align:left; font-size:13px; }.comparison th { background:#f3f8fe; color:var(--navy); }.comparison td strong { font-family:"Noto Serif JP",serif; font-size:22px; }.support-photo { margin:12px 0 28px; overflow:hidden; max-height:350px; }.support-photo img { width:100%; display:block; object-fit:cover; object-position:center 42%; }.faq-list details { border:1px solid var(--line); border-bottom:0; padding:18px 22px; }.faq-list details:last-child { border-bottom:1px solid var(--line); }.faq-list summary { cursor:pointer; font-weight:700; font-size:15px; }.faq-list p { margin:13px 0 0; color:var(--muted); font-size:13px; }.form-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:28px; }.consult-list { padding:25px; border:1px solid var(--line); background:#f7fbff; }.consult-list li { margin:14px 0; font-size:14px; font-weight:600; }.booking-form { padding:26px; border:1px solid var(--line); }.booking-form label { display:block; margin:0 0 13px; font-size:12px; font-weight:700; }.booking-form input,.booking-form select,.booking-form textarea { width:100%; margin-top:5px; padding:11px; border:1px solid #cbd9e8; border-radius:3px; font:inherit; }.booking-form textarea { min-height:100px; }.booking-form .button { width:100%; border:0; cursor:pointer; color:var(--navy); }.note { color:var(--muted); font-size:11px; }

.hero h1 { font-size:clamp(31px,2.5vw,40px); }

.case-photo { width:96px; background:center/cover no-repeat; }.case-one { background-image:url('/assets/official-site/campus-innovation.png'); }.case-two { background-image:url('/assets/official-site/campus-urban.png'); }.case-three { background-image:url('/assets/official-site/campus-metropolitan.png'); }
.news { padding:70px clamp(24px,7vw,128px); background:#fff; }.news-head { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:24px; }.news h2 { margin:0; font-family:"Noto Serif JP",serif; font-size:30px; }.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.news-card { display:block; min-height:180px; padding:21px; border:1px solid var(--line); background:linear-gradient(145deg,#fff,#f4f9ff); }.news-card time { color:#2d6fae; font-size:11px; font-weight:700; }.news-card h3 { margin:10px 0 8px; font-size:16px; line-height:1.65; }.news-card p { margin:0; color:var(--muted); font-size:12px; line-height:1.75; }.news-card:hover { border-color:#7ca9d9; transform:translateY(-2px); transition:.2s ease; }
.hero-note { margin:21px 0 0; font-size:13px; color:var(--muted); }
.case-study-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:28px; }.case-study-grid article { overflow:hidden; border:1px solid var(--line); background:#fff; }.case-study-grid img { width:100%; display:block; aspect-ratio:4/3; object-fit:cover; }.case-copy { padding:20px; }.case-copy h2 { margin:0; font-size:19px; }.case-copy h3 { margin:10px 0; font-size:16px; line-height:1.6; }.case-copy p:not(.eyebrow) { margin:0; color:var(--muted); font-size:13px; line-height:1.85; }.case-copy small { display:block; margin-top:12px; color:#7890aa; font-size:10px; }

@media (max-width:1020px) { nav { gap:12px; } nav a { font-size:11px; } .site-header { gap:15px; padding-inline:22px; } .brand { width:136px; } .header-cta { font-size:10px; } .hero-content { padding-left:7vw; } .strengths-band,.method-preview,.results-pricing { grid-template-columns:1fr; } .section-label { border-right:0; border-bottom:1px solid #b8cce5; padding-bottom:15px; } .method-preview .steps,.method-preview .text-link { grid-column:auto; } .case-list { grid-template-columns:1fr; } .case-list article { min-height:95px; } .entry-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:700px) { body { padding-bottom:62px; } .site-header { height:68px; padding:8px 18px; } .brand { width:142px; } nav,.header-cta { display:none; }.menu-button { display:block; }.hero { min-height:auto; display:flex; flex-direction:column; }.hero-content { padding:42px 24px 27px; }.hero h1 { font-size:29px; line-height:1.55; }.hero-copy { font-size:13px; }.trust-chips { gap:6px; }.trust-chips span { font-size:10px; padding:4px 7px 4px 22px; }.trust-chips span::before { left:8px; }.hero-image { min-height:245px; clip-path:none; }.hero-image img { object-position:center; }.section { padding:47px 20px; }.strengths-band { padding-top:22px; padding-bottom:24px; gap:16px; }.section-label { padding-bottom:12px; }.section-label h2 { font-size:28px; }.strength-grid { grid-template-columns:1fr; gap:8px; }.strength-grid article { min-height:0; padding:23px 17px 15px; }.method-preview { gap:18px; }.section-heading h2 { font-size:27px; }.steps { grid-template-columns:repeat(5,minmax(126px,1fr)); overflow:auto; }.steps li { min-height:145px; }.steps::-webkit-scrollbar { height:5px; }.steps::-webkit-scrollbar-thumb { background:#bcd1e8; }.entry-grid { grid-template-columns:repeat(2,1fr); }.wrap { padding-block:37px; }.wrap h2 { font-size:24px; }.results-pricing { gap:12px; }.results-card { padding:18px; }.case-list { grid-template-columns:1fr; }.plans .section-heading { text-align:left; }.plan-grid { grid-template-columns:1fr; }.plan-grid article { min-height:0; }.online { grid-template-columns:1fr; gap:24px; }.online h2 { font-size:28px; }.consult-cta { display:block; padding:40px 24px; }.consult-cta h2 { font-size:27px; }.consult-cta .primary { width:100%; margin-top:22px; }.site-footer { grid-template-columns:1fr 1fr; gap:23px; padding:34px 24px 25px; }.site-footer > div:first-child { grid-column:1/-1; }.site-footer small { font-size:9px; }.mobile-cta { position:fixed; z-index:30; bottom:0; left:0; right:0; display:flex; justify-content:center; align-items:center; gap:30px; height:62px; color:var(--navy); background:var(--yellow); font-size:15px; font-weight:800; box-shadow:0 -3px 14px rgba(8,47,108,.18); }.mobile-cta span { font-size:21px; } }

@media (max-width:700px) { .page-hero { min-height:170px; padding:35px 24px; } .page-hero h1 { font-size:33px; } .lead { padding:42px 24px 25px; text-align:left; }.lead h2 { font-size:24px; }.content-section { padding:20px 20px 48px; }.content-section h2 { font-size:22px; }.surface { padding:20px; }.three-column,.form-grid { grid-template-columns:1fr; }.page-cta { display:block; margin:0 20px 48px; padding:28px 23px; }.page-cta h2 { font-size:21px; }.page-cta .button { width:100%; margin-top:18px; }.comparison th,.comparison td { padding:11px 8px; font-size:12px; }.faq-list details { padding:15px; }.faq-list summary { font-size:13px; }.booking-form { padding:20px; } }

@media (max-width:700px) { body { overflow-x:hidden; } .hero h1 { max-width:100%; font-size:27px; letter-spacing:0; overflow-wrap:anywhere; word-break:break-all; } }

@media (max-width:700px) { .news { padding:48px 20px; }.news-head { display:block; }.news-head .text-link { margin-top:13px; }.news h2 { font-size:25px; }.news-grid,.case-study-grid { grid-template-columns:1fr; }.news-card { min-height:0; }.case-photo { width:86px; } }

/* SEO guide pages */
.guide-hero { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(320px,.96fr); min-height:430px; background:#f4f9ff; overflow:hidden; }
.guide-hero-copy { display:flex; flex-direction:column; justify-content:center; padding:70px clamp(28px,7vw,128px); }.guide-hero-copy h1 { max-width:720px; margin:8px 0 16px; color:var(--navy); font-family:"Noto Serif JP",serif; font-size:clamp(32px,3.2vw,48px); font-weight:600; letter-spacing:.04em; line-height:1.45; }.guide-hero-copy > p:last-child { max-width:650px; margin:0; color:var(--muted); font-size:15px; line-height:2; }.guide-hero > img { width:100%; height:100%; min-height:430px; object-fit:cover; object-position:center; }
.guide-article { max-width:900px; margin:0 auto; padding:65px 24px 92px; }.guide-article > section { margin:0 0 48px; }.guide-article h2 { margin:0 0 16px; color:var(--navy); font-family:"Noto Serif JP",serif; font-size:28px; line-height:1.55; letter-spacing:.03em; }.guide-article > section > p { margin:0; color:#314d71; font-size:15px; line-height:2.15; }.guide-contents { margin:0 0 56px; padding:25px 30px; border-left:4px solid var(--yellow); background:#f5f9fe; }.guide-contents > p { margin:0 0 10px; color:var(--navy); font-weight:700; }.guide-contents ol { margin:0; padding-left:22px; }.guide-contents li { margin:7px 0; color:#315a8c; font-size:14px; line-height:1.65; }.guide-contents a:hover { text-decoration:underline; }
.guide-stance { padding:36px; border:1px solid #bcd4ed; background:linear-gradient(135deg,#edf7ff,#fff); }.guide-stance h2 { max-width:650px; }.guide-stance > p:not(.eyebrow) { max-width:680px; }.guide-stance .button { margin-top:22px; }
.guide-faq { margin-top:58px !important; }.guide-faq details { padding:18px 20px; border:1px solid var(--line); border-bottom:0; background:#fff; }.guide-faq details:last-child { border-bottom:1px solid var(--line); }.guide-faq summary { cursor:pointer; color:var(--navy); font-weight:700; line-height:1.65; }.guide-faq details p { margin:13px 0 0; color:var(--muted); font-size:14px; line-height:1.9; }
.guide-related { margin-top:58px !important; }.guide-related > div { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.guide-related a { display:flex; align-items:center; justify-content:space-between; min-height:94px; padding:18px; border:1px solid var(--line); color:var(--navy); font-size:14px; font-weight:700; line-height:1.6; }.guide-related a:hover { border-color:#6f9bcb; background:#f4f9ff; }.guide-related span { color:#1969b0; font-size:20px; }
@media (max-width:700px) { .guide-hero { grid-template-columns:1fr; }.guide-hero-copy { padding:38px 24px 30px; }.guide-hero-copy h1 { font-size:29px; }.guide-hero-copy > p:last-child { font-size:13px; }.guide-hero > img { min-height:220px; }.guide-article { padding:42px 20px 58px; }.guide-article > section { margin-bottom:38px; }.guide-article h2 { font-size:23px; }.guide-article > section > p { font-size:14px; line-height:2; }.guide-contents { margin-bottom:40px; padding:20px; }.guide-stance { padding:25px 20px; }.guide-related > div { grid-template-columns:1fr; }.guide-related a { min-height:0; }.guide-faq details { padding:15px; } }
