:root {
  --blue:#2563eb; --indigo:#203882; --ink:#031e22; --body:#24333b;
  --subtle:#506173; --line:#dce5ea; --pale:#f4f8fc;
  --brand-fill:linear-gradient(100deg,#2563eb,#233b86);
  --title-fill:linear-gradient(90deg,#2563eb 0%,#031e22 70%);
  --jp:Outfit,"Noto Sans JP",Roboto,"Hiragino Sans",Meiryo,"Hiragino Kaku Gothic ProN",sans-serif;
  --en:Outfit,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);font:400 16px/1.95 var(--jp);background:white;-webkit-font-smoothing:antialiased}
p,h1,h2,h3,figure,fieldset,dl,dd,ol{margin:0}a{color:inherit;text-decoration:none}button,input,summary{font:inherit}a,button,summary,label{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #649bff;outline-offset:4px}.wrap{width:min(1140px,84%);margin-inline:auto}
.skip,.sr-only{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.skip:focus{clip-path:none;width:auto;height:auto;top:8px;left:8px;z-index:99;background:white;padding:8px 18px}
.header{position:absolute;top:0;left:0;right:0;z-index:15;color:white}.head-inner{display:flex;align-items:flex-start;gap:28px;margin:0 auto;padding:22px 2.6% 0;max-width:1800px}.wordmark{display:block;flex:none;width:clamp(145px,15.5vw,211px);line-height:0}.wordmark img{display:block;width:100%;height:auto}.wordmark .logo-on-light,.menu-toggle{display:none}
.head-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(16px,1.9vw,32px);border-bottom:1px solid #ffffff52;min-height:79px;flex:1;font-size:15px;padding-bottom:18px;line-height:1.6}
.head-nav>a:not(.header-contact),.head-nav summary{white-space:nowrap}.head-nav>a:hover,.nav-group summary:hover{color:#d6e8ff}.header-contact{border:1px solid #ffffff78;border-radius:100px;padding:10px 21px;background:#ffffff0a}.header-contact:hover{background:#ffffff25}.nav-group{position:relative}.nav-group summary{list-style:none;cursor:pointer}.nav-group summary::-webkit-details-marker,.questions summary::-webkit-details-marker{display:none}.nav-group summary::after{content:"";position:absolute;bottom:-12px;left:47%;width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg)}.dropdown{position:absolute;top:calc(100% + 18px);left:50%;transform:translateX(-50%);padding:8px 16px;min-width:220px;background:white;color:var(--ink);border:1px solid #e1e8ee;border-radius:8px;box-shadow:0 12px 32px #061c3024}.dropdown a{display:block;padding:9px 2px;font-size:13px;border-bottom:1px solid #eef2f6}.dropdown a:last-child{border:0}
.dropdown a.sub{padding-left:14px}
.dropdown .dd-label{display:block;padding:9px 2px 4px;font-size:12px;color:var(--subtle);border-bottom:1px solid #eef2f6}.dropdown a:hover,.dropdown a[aria-current]{color:var(--blue)}
.header.compact{position:fixed;background:#fffffff7;color:var(--ink);box-shadow:0 2px 14px #10213a10;backdrop-filter:blur(12px)}.header.compact .head-inner{align-items:center;padding-block:7px}.header.compact .wordmark{width:110px}.header.compact .logo-on-dark{display:none}.header.compact .logo-on-light{display:block}.header.compact .head-nav{min-height:47px;padding-bottom:0;border:0}.header.compact .header-contact{color:white;background:var(--brand-fill);border-color:transparent}.header.compact .head-nav>a:not(.header-contact):hover,.header.compact .nav-group summary:hover{color:var(--blue)}
.hero{min-height:clamp(640px,83vh,810px);position:relative;display:flex;align-items:center;background:linear-gradient(90deg,#2563eb 0%,#123d76 24%,#031e22 46%,#031e22 100%);color:white;isolation:isolate;overflow:hidden}
.hero-photo{position:absolute;z-index:-1;inset:0 0 0 auto;width:54%;display:block}.hero-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:55% 39%}.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#031e22 0%,rgba(3,30,34,.60) 8%,rgba(3,30,34,0) 35%)}.hero-copy{padding-block:148px 74px}.hero-over{font:400 15px/1.65 var(--jp);color:#d2dfeb}.hero h1{font-weight:400;letter-spacing:.015em;font-size:clamp(41px,3.48vw,56px);line-height:1.52;margin:17px 0 21px}.hero h1 em{color:#c4dbe8;font-style:normal}.phrase{display:inline-block}.lead{font-size:clamp(15px,1.26vw,19px);line-height:1.95}.hero-actions{display:flex;gap:20px;align-items:center;margin-top:34px}.button{position:relative;display:inline-flex;justify-content:center;align-items:center;text-align:center;min-width:240px;min-height:55px;padding:11px 46px 11px 22px;border:1px solid #ffffff5e;border-radius:999px;font-size:15px;transition:background-color .2s,filter .2s,box-shadow .2s}.button.primary{color:white;background:var(--brand-fill)}.button.glass{background:#ffffff28;color:white;min-width:195px}.button b{border-radius:50%;display:grid;place-items:center;position:absolute;right:15px;top:50%;transform:translateY(-50%);background:white;color:var(--blue);font:600 17px/1 var(--en);width:23px;height:23px}.button.primary:hover{filter:brightness(1.11);box-shadow:0 6px 18px #0001}.button.glass:hover{background:#ffffff40}
.hero-caption{height:.51em;position:relative;z-index:2;display:flex;align-items:center;justify-content:center;white-space:nowrap;pointer-events:none;margin-top:-.23em;margin-bottom:.23em;color:#9fa9ae;font:200 clamp(46px,8.9vw,152px)/1 var(--en);letter-spacing:-.055em}.contents{padding:28px 0 8px}.index-links{display:grid;grid-template-columns:repeat(5,1fr);border-block:1px solid var(--line);padding:11px 0}.index-links a{display:flex;align-items:center;justify-content:center;gap:13px;font-size:14px;padding:5px 8px;line-height:1.6;border-left:1px solid var(--line)}.index-links a:first-child{border-left:0}.index-links a span{color:var(--blue);font:15px var(--en)}.index-links a:hover{color:var(--blue)}
.section{padding:clamp(65px,7vw,110px) 0}.eyebrow{font:400 16px/1.6 var(--en);letter-spacing:.01em;color:#526776;text-align:center;margin-bottom:8px}
h2{font-size:clamp(31px,2.8vw,44px);line-height:1.58;letter-spacing:.005em;font-weight:400}.section h2{display:table;color:var(--ink);background:var(--title-fill);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.section-intro{text-align:center;margin:0 auto 43px}.section-intro h2,.flow h2{margin-inline:auto}.section-intro h2 br{display:none}.section-intro>p{max-width:785px;margin:15px auto 0;color:var(--body);line-height:1.95}.section h3{font-size:clamp(19px,1.6vw,25px);font-weight:500;line-height:1.65}.checklist{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,46px)}.check-item{border-top:1px solid #c5d5e4;padding-top:22px}.line-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--blue);width:42px;height:42px}.line-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.check-item h3{margin:9px 0}.check-item p,.scope-list p,.case-copy>p:last-child,.steps p,.questions p{color:var(--body);font-size:15px;line-height:1.95}
.advisory{display:flex;gap:15px;border:1px solid #d9e4f1;border-radius:10px;background:#f5f9ff;padding:21px 25px;margin-top:32px}.info{display:grid;place-items:center;width:18px;height:18px;flex:none;margin-top:5px;font:600 12px Georgia,serif;color:var(--blue);border-radius:50%;border:1px solid currentColor}.advisory strong{font-weight:550;font-size:16px}.advisory p{color:var(--body);font-size:14px;margin-top:3px}.source-links{display:flex;flex-wrap:wrap;gap:4px 17px;margin-top:6px}.source-links a{font-size:12px;color:#234d9a;text-decoration:underline;text-underline-offset:3px}.source-links a:hover,.to-top:hover{color:var(--blue)}
.service{background:linear-gradient(130deg,#f0f5fd,#fbfdff 60%,#f2f6fa)}.service-body{display:grid;grid-template-columns:.87fr 1.13fr;gap:clamp(30px,4.5vw,76px);align-items:stretch}.service-photo{min-height:350px;position:relative;border-radius:14px;overflow:hidden}.service-photo img{display:block;width:100%;height:100%;position:absolute;object-fit:cover;object-position:center}.scope-list{align-self:center}.scope-list article{display:grid;grid-template-columns:42px 1fr;align-items:start;gap:14px;border-bottom:1px solid #cfdae3;padding:16px 0}.scope-list article:first-child{padding-top:0}.scope-list article:last-child{border:0}.scope-list .line-icon{border-radius:50%;background:#e3edfb}.scope-list .line-icon svg{width:23px;height:23px}.scope-list h3{font-size:20px;margin:1px 0 4px}.scope-list p{font-size:14px}.case{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:6%;background:#fff;border:1px solid #d7e2ed;border-radius:14px;margin-top:36px;padding:29px 37px}.case .eyebrow{text-align:left;margin-bottom:3px;color:#476693}.case h3{font-size:24px}.case-copy>p:last-child{font-size:14px;margin-top:6px}.case-chart figcaption{font:500 16px var(--en);color:#102e58;margin-bottom:13px}.case-chart figcaption span{font:12px var(--jp);margin-left:8px;color:var(--subtle)}.bar-row{display:grid;grid-template-columns:91px 1fr 31px;gap:10px;align-items:center;min-height:29px}.bar-row>span{font-size:12px}.bar-row>div{height:8px;border-radius:10px;background:#eaf0f8;overflow:hidden}.bar-row i{display:block;height:100%;border-radius:inherit;background:#8eabd5}.bar-row:nth-of-type(2) i{background:#668cca}.bar-row.final i{background:var(--brand-fill)}.bar-row b{font:500 19px var(--en);text-align:right;color:#2759ae}.case-chart>small{font-size:11px;display:block;margin-top:10px;color:var(--subtle)}
.price-panel{display:grid;grid-template-columns:.95fr 1.05fr;border:1px solid #d3e0ee;border-radius:14px;overflow:hidden}.base,.monthly{padding:27px 33px}.base{background:linear-gradient(120deg,#edf4fe,#f8fbff);display:flex;flex-direction:column;justify-content:center;gap:8px}.base p,.monthly h3{font-size:17px;font-weight:500}.base p span{font-size:13px;margin-left:12px;color:var(--subtle)}.base strong,.estimate output{font:400 clamp(44px,4.45vw,68px)/1.2 var(--en);letter-spacing:-.055em;font-variant-numeric:tabular-nums}.base strong{color:#214d97}.base b{font-size:16px;font-weight:500;margin-left:6px}.base small,.fine{color:var(--subtle);font-size:12px}.monthly{background:white}.monthly dl div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #e1e7ed}.monthly dl div:last-child{border:0}.monthly dt{font-size:14px}.monthly dd{font:500 20px var(--en);white-space:nowrap}.monthly dd small{font:12px var(--jp)}
.calc{margin-top:35px}.calc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:14px}.calc-head .eyebrow{text-align:left;margin:0 0 2px}.calc-head>span{font-size:12px;color:var(--subtle)}.calc-grid{display:grid;grid-template-columns:1.35fr .8fr;gap:26px}.calc fieldset{border:0;border-top:1px solid var(--line);min-width:0;padding:0}.calc label{display:flex;align-items:center;gap:10px;padding:12px 4px;border-bottom:1px solid var(--line);cursor:pointer;font-size:15px}.calc label:hover{background:#f5f8ff}.calc label input{width:18px;height:18px;accent-color:var(--blue);flex:none}.calc label span{flex:1}.calc label small{font-size:11px;font-weight:400;display:block;color:var(--subtle)}.calc label b{font-size:14px;font-weight:500;white-space:nowrap}.estimate{border-radius:12px;background:linear-gradient(120deg,#2255b4,#10294c 72%);color:white;display:flex;flex-direction:column;justify-content:center;padding:24px 30px}.estimate>span{font-size:14px}.estimate output{font-size:clamp(38px,3.6vw,56px)}.estimate b{font-size:14px;font-weight:500}.estimate small{color:#d7e4f5;font-size:12px}.estimate a{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff69;font-size:14px;padding-top:10px;margin-top:16px}.estimate a:hover{text-decoration:underline}.fine{margin-top:13px}
.flow{background:var(--pale)}.steps{list-style:none;margin-top:32px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:26px}.steps li{border-top:1px solid #bcd0e8;padding-top:16px}.steps b{font:300 32px var(--en);color:#326acb;letter-spacing:-.04em}.steps h3{margin:7px 0}.steps p{font-size:14px}.faq-grid{display:grid;grid-template-columns:.65fr 1.5fr;gap:8%}.faq-grid .eyebrow{text-align:left}.questions details{border-bottom:1px solid var(--line)}.questions details:first-child{border-top:1px solid var(--line)}.questions summary{list-style:none;cursor:pointer;position:relative;padding:17px 28px 17px 32px;font-weight:500;line-height:1.8}.questions summary:before{content:"Q";position:absolute;left:0;color:var(--blue);font:400 20px/1.45 var(--en)}.questions summary:after{content:"＋";position:absolute;right:0;top:17px;color:var(--blue)}.questions details[open] summary:after{content:"－"}.questions summary:hover{color:var(--blue)}.questions p{padding:0 27px 19px 32px;font-size:14px}
.contact{background:radial-gradient(ellipse at 36% 28%,#172f61,#0d1c39 62%,#080f20);color:white}.footer-grid{width:min(1360px,94%);display:grid;grid-template-columns:1.2fr .9fr;gap:clamp(30px,7vw,105px);align-items:center;padding:clamp(48px,6vw,90px) 0}.footer-brand>a{display:inline-block}.footer-brand img{width:min(25vw,290px);height:auto;display:block}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:14px;margin-top:36px}.footer-nav a{display:table;margin-bottom:4px}.footer-nav a:hover,.foot a:hover{text-decoration:underline}.contact-card{border-radius:15px;border:1px solid #ffffff45;background:#dfe7ea28;padding:clamp(24px,3.2vw,48px)}.contact-card .eyebrow{text-align:left;color:#c1ccdf}.contact-card h2{font-size:clamp(24px,2.25vw,34px);line-height:1.55}.contact-card>p:not(.eyebrow){margin:12px 0 23px;font-size:15px;color:#f0f3fa}.contact-card small{display:block;font-size:11px;color:#d3dfef;margin-top:9px}footer{background:#080f20;color:#d9e1ef}.foot{width:min(1360px,94%);display:flex;gap:20px;align-items:center;padding:22px 0;border-top:1px solid #ffffff25;font-size:12px}.foot small{font:12px var(--jp);margin-left:auto}.to-top{margin-left:auto}
@media(max-width:1060px){.wrap{width:89%}.head-nav{gap:15px;font-size:13px}.hero-actions{gap:12px}.button{min-width:225px}.button.glass{min-width:155px}.service-body{gap:26px}.case{padding:24px}.base,.monthly{padding:23px}.footer-grid,.foot{width:94%}}
@media(max-width:760px){html{scroll-padding-top:70px}.wrap{width:calc(100% - 40px)}.head-inner{min-height:70px;margin:0;padding:10px 20px;align-items:center;justify-content:space-between}.wordmark{width:96px}.menu-toggle{width:42px;height:42px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;background:transparent;color:inherit;border:1px solid #ffffff87;border-radius:50%;cursor:pointer}.menu-toggle span{height:1px;width:18px;background:currentColor;transition:transform .18s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.header.compact .head-inner{padding:8px 20px}.header.compact .wordmark{width:93px}.header.compact .menu-toggle{border-color:#a3b5c5}.head-nav,.header.compact .head-nav{display:none}.header.menu-open{background:white;color:var(--ink)}.header.menu-open .logo-on-dark{display:none}.header.menu-open .logo-on-light{display:block}.header.menu-open .menu-toggle{border-color:#bfcddd}.header.menu-open .head-nav{display:flex;background:white;color:var(--ink);position:absolute;top:100%;left:0;right:0;padding:8px 20px 22px;gap:0;max-height:calc(100dvh - 70px);overflow:auto;align-items:stretch;flex-direction:column;box-shadow:0 12px 20px #05234322;font-size:15px}.head-nav>a:not(.header-contact),.head-nav summary{padding:11px 5px;border-bottom:1px solid var(--line)}.nav-group summary::after{left:auto;right:10px;bottom:auto;top:20px}.dropdown{position:static;transform:none;min-width:0;border:0;border-radius:0;box-shadow:none;padding:2px 18px;background:var(--pale)}.head-nav .header-contact{margin-top:13px;text-align:center;background:var(--brand-fill);color:white;border:0}
.hero{min-height:auto;display:block;background:linear-gradient(124deg,#2563eb 0%,#103e78 53%,#031e22 100%)}.hero-copy{padding:119px 0 192px;position:relative}.hero-photo{inset:auto 0 0;width:100%;height:59%;opacity:.98}.hero-photo img{object-position:50% 34%}.hero-photo:after{background:linear-gradient(180deg,#133f79 0%,rgba(13,50,88,.87) 10%,rgba(3,30,34,.48) 38%,rgba(3,30,34,0) 78%)}.hero-over{font-size:12px}.hero h1{font-size:clamp(31px,6.9vw,44px);line-height:1.5;letter-spacing:-.02em;margin:13px 0 15px}.lead{font-size:14px;max-width:36em}.hero-actions{margin-top:22px;gap:8px}.button{min-height:46px;min-width:0;font-size:12px;padding:9px 31px 9px 13px}.button b{width:18px;height:18px;right:9px;font-size:13px}.button.glass{min-width:94px}.hero-caption{font-size:clamp(38px,10vw,68px)}.contents{padding-top:19px;padding-bottom:0}.index-links{display:flex;flex-wrap:wrap;justify-content:center;padding:5px 0}.index-links a{font-size:12px;gap:5px;margin:4px 0;padding:2px 10px}.index-links a span{font-size:12px}.index-links a:first-child{border-left:1px solid var(--line)}
.section{padding:51px 0}.eyebrow{font-size:14px}.section h2{font-size:28px;line-height:1.58}.section-intro h2 br{display:block}.section-intro{margin-bottom:26px}.section-intro>p{text-align:left;font-size:14px;line-height:1.9;margin-top:13px}.checklist{grid-template-columns:1fr;gap:0}.check-item{display:grid;grid-template-columns:37px 1fr;gap:2px 10px;padding:15px 0}.check-item .line-icon{grid-row:span 2;width:34px;height:35px}.check-item h3{font-size:18px;margin:0}.check-item p{font-size:14px}.advisory{margin-top:12px;padding:15px;gap:10px}.advisory strong{font-size:14px}.advisory p,.source-links a{font-size:12px}.source-links{gap:3px 12px}.service-body,.case,.price-panel,.calc-grid,.faq-grid,.footer-grid{grid-template-columns:1fr}.service-photo{min-height:210px;height:clamp(210px,53vw,300px)}.scope-list article{padding:14px 0}.scope-list h3{font-size:18px}.case{padding:20px;margin-top:25px;gap:22px}.case h3{font-size:22px}.price-panel .base,.monthly{padding:18px 20px}.monthly dt{font-size:13px}.monthly dd{font-size:18px}.calc-head{align-items:start;flex-direction:column;gap:2px}.calc-head>span{font-size:11px}.calc-grid{gap:16px}.calc label{gap:6px;font-size:13px}.calc label b{font-size:12px}.estimate{padding:20px}.estimate output{font-size:44px}.steps{grid-template-columns:1fr 1fr;gap:22px 16px}.steps h3{font-size:17px}.steps p{font-size:13px}.faq-grid{gap:20px}.faq-grid .eyebrow{text-align:center}.faq-grid h2{margin:auto}.desktop-br{display:none}.questions summary{font-size:14px;padding-inline-start:27px}.questions p{padding-inline-start:27px}.footer-grid{gap:25px;padding-block:33px}.footer-brand img{width:133px}.footer-nav{display:none}.contact-card{padding:21px}.contact-card h2{font-size:25px}.contact-card>p:not(.eyebrow){font-size:14px}.foot{flex-wrap:wrap;gap:6px 15px;padding:14px 0;font-size:11px}.foot small{margin:5px 0 0;width:100%;font-size:10px}}
@media(max-width:370px){.wrap{width:calc(100% - 30px)}.hero-copy{padding-top:99px}.hero-actions{gap:6px}.button{font-size:11px}.monthly dt{max-width:170px}.source-links{gap:4px 10px}.bar-row{grid-template-columns:83px 1fr 26px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(forced-colors:active){.section h2{-webkit-text-fill-color:CanvasText}.button b{border:1px solid currentColor}}

.hero-caption img{display:block;width:min(93%,1150px);height:auto;max-height:1em}.hero-photo{mask-image:linear-gradient(90deg,transparent 0%,black 9%)}
@media(max-width:760px){.hero-photo{height:245px;mask-image:linear-gradient(180deg,transparent 0%,black 33%)}.hero-photo img{object-position:50% 41%}.hero-photo::after{background:linear-gradient(180deg,rgba(7,41,80,.22),transparent 65%)}.hero-copy{padding-bottom:240px}.hero-caption img{width:95%}}
