/* Per-section dimensions extracted from the approved 1672px PC / 941px SP FV.
   This stylesheet replaces the former wireframe presentation, not the source. */
@font-face{font-family:"FF Noto Sans JP";src:url("assets/NotoSansJP-VF.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
:root{--font:"FF Noto Sans JP","Yu Gothic","Meiryo",sans-serif;--gradient:linear-gradient(105deg,#f20acb 0%,#7900ff 42%,#253cff 66%,#00b4ef 100%);--fv-header:clamp(72px,5.20335vw,104px)}
body{font-weight:400}
.site-header{height:var(--fv-header);background:#001025;border-bottom:1px solid #194570;position:relative}
.header-inner{height:100%;min-height:0;width:94.25%;max-width:1880px;margin:auto;gap:clamp(18px,1.45vw,30px)}
.site-header .brand{width:clamp(200px,15vw,240px);padding:0;border-radius:0}
.brand-tagline{border-left:1px solid #acc6dd;padding-left:clamp(15px,1.2vw,24px);font-size:clamp(11px,.84vw,17px);line-height:1.55;flex:none;white-space:nowrap}
.site-nav{margin-left:auto;gap:clamp(17px,1.95vw,39px)}
.site-nav a{font-size:clamp(13px,.96vw,19px);font-weight:700;white-space:nowrap}
.site-header .header-cta{width:12.9vw;min-width:155px;min-height:44px;height:3.3vw;max-height:66px;padding:8px 24px;gap:18px;font-size:clamp(14px,1.07vw,21px);flex-shrink:0;line-height:1;white-space:nowrap}
/* Use a soft inset edge rather than a high-contrast border on the rounded CTA. */
.site-header .header-cta{border:0;background-clip:border-box;box-shadow:inset 0 0 0 1px #ffffff38,0 3px 12px #592eff26}
.hero{padding:0 0 1.5vw;background:#001126;color:white;min-width:0;overflow:hidden}
.hero .hero-backdrop{top:calc(-1 * var(--fv-header));bottom:0}
.hero .hero-backdrop img{height:auto;object-fit:contain;object-position:top center;width:100%;max-width:none}
.hero .hero-backdrop:after{display:none}
.hero-main{position:relative;width:93%;max-width:1860px;margin:auto}
.hero .hero-body{padding:3.35vw 0 1.45vw;max-width:none;min-height:0;width:43%;position:relative;z-index:1}
.hero .hero-intro{font-size:clamp(15px,1.2vw,24px);font-weight:700;letter-spacing:.06em;line-height:1.5;margin:0 0 1.4vw;max-width:none;white-space:nowrap;display:flex;align-items:center;gap:0}
.hero .hero-intro:before{display:block;flex:none;width:1.7vw;margin:0 1.1vw 0 0;border-top:1px solid #9dd6f6}
.hero .hero-intro span{display:inline;color:#a6d7ff}
.hero h1{font-size:clamp(48px,4.05vw,81px);font-weight:800;line-height:1.1;letter-spacing:.01em;margin:0 0 1.15vw;max-width:none;text-shadow:0 2px 14px #06193422;overflow-wrap:normal}
.hero h1>span{display:block;white-space:nowrap}
.hero h1 .hero-title-first{font-size:1.34em;margin-bottom:0}
.hero h1 .hero-title-service>span{display:inline}
.hero h1 .hero-title-result{display:flex;align-items:baseline;font-size:1.2em;margin-top:0}
.hero h1 .hero-title-result>.gradient-text{display:inline;background-image:linear-gradient(95deg,#04caef 0%,#429fff 34%,#d279f0 68%,#f04de9 100%);width:auto}
.hero h1 .hero-title-end{display:inline;font-size:.85em}
.hero .hero-lead{font-size:clamp(16px,1.22vw,24px);line-height:1.65;font-weight:600;max-width:none;letter-spacing:.018em;margin:0}
.hero .hero-actions{margin-top:1.9vw;gap:.9vw;align-items:stretch}
.hero .hero-actions .button{min-height:0;height:3.65vw;max-height:74px;font-size:clamp(15px,1.2vw,24px);font-weight:700;line-height:1.1;padding:12px 20px;gap:1vw;white-space:nowrap}
.hero .hero-actions .button:first-child{flex:1.5;border:1.4px solid #81dbff;box-shadow:0 0 22px #bb05dc55}
.hero .hero-actions .button--outline{flex:1;border-radius:14px;background:#03122666;border:1px solid #e5edff}
.hero .hero-caption{font-size:clamp(12px,.94vw,19px);line-height:1.5;margin:1vw 0 0;display:flex;align-items:center;gap:1vw;white-space:nowrap}
.hero-caption:before{content:"";width:1.6vw;border-top:1px solid #a4e2ff;flex:none}
.hero-side-copy{position:absolute;top:3.2vw;right:.3vw;font:clamp(14px,1.18vw,24px)/1.65 "Yu Mincho",serif;letter-spacing:.22em;text-align:center;margin:0}
.hero-signature{position:absolute;right:0;top:26.5vw;transform:rotate(-11deg);text-align:center;font-family:"Yu Mincho",serif;color:white}
.hero-signature p{font-size:clamp(28px,3vw,60px);font-style:italic;line-height:1.2}
.hero-signature p span{font-size:.58em;border-bottom:1px solid white;padding-bottom:6px}
.hero-signature small{display:block;font:clamp(9px,.65vw,13px)/1.4 "Yu Gothic",sans-serif;text-align:left;letter-spacing:.06em;margin:1.7vw 0 0 7vw;transform:rotate(11deg)}
.hero-support{width:95%;max-width:1900px;margin:0 auto;padding:1.4vw 2vw 1.2vw;display:grid;grid-template-columns:1fr 1.03fr;gap:2.2vw;background:linear-gradient(120deg,#051c32cc,#103a6dcc,#001022cf);border:1px solid #185789;border-radius:13px}
.hero-support h2{font-size:clamp(15px,1.2vw,24px);font-weight:700;line-height:1.5;letter-spacing:0;margin:0 0 .9vw;color:#acd7ff}
.support-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:3.3vw}
.support-steps li+li:before{content:"";width:9px;height:9px;border-top:1px solid #a9dcff;border-right:1px solid #a9dcff;transform:rotate(45deg);left:-1.9vw;top:.6vw}


.support-steps h3{font-size:clamp(14px,1.08vw,22px);font-weight:700;line-height:1.5}
.support-steps p{font-size:clamp(11px,.87vw,17px);line-height:1.65;margin:0;white-space:nowrap;color:#dfebfb}
.hero-service-summary{border-left:1px solid #9bc8ed;padding-left:2.2vw;min-width:0}
.hero-service-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) .42fr;gap:.7vw;align-items:stretch}
.hero-service{display:flex;align-items:center;gap:.75vw;text-decoration:none;border:1px solid #6b8cad;border-radius:13px;padding:1vw .7vw;background:#24436636;min-width:0}
.hero-service>span{min-width:0;max-width:100%}



.hero-service strong{display:block;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;font-size:clamp(10px,.86vw,17px);font-weight:700;color:#f1f4ff}
.hero-service small{display:block;font-size:clamp(9px,.71vw,14px);line-height:1.65;color:#d0e1fa;margin-top:.35vw;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}
.hero-search-links{display:flex;flex-direction:column;justify-content:space-between;gap:4px}
.hero-search-links a{border:1px solid #92a7c2;border-radius:20px;text-decoration:none;text-align:center;font-size:clamp(11px,.84vw,17px);line-height:1.8;background:#1a2c4480;color:#e7edfb}
.hero-bottom-copy{display:none}
.news{padding:4vw 0 5vw;background-size:100% 100%}
.news>.container{width:86.6%;max-width:1732px}
.news-heading{margin-bottom:3vw;align-items:flex-end}
.news-heading .section-title{font-size:clamp(60px,5.65vw,113px);line-height:1.2;font-weight:800;letter-spacing:.02em}
.news .eyebrow{font-size:clamp(14px,.92vw,18px);margin-bottom:1.3vw;letter-spacing:.7em;font-weight:400}
.news-intro{font-size:clamp(18px,1.5vw,30px);line-height:1.7;margin-top:.7vw}
.news .planned-link>span{border-radius:18px;min-height:4.4vw;padding:.8vw 2.5vw;font-size:clamp(18px,1.45vw,29px)}
.news-row{grid-template-columns:135px 112px minmax(0,1fr) 52px;gap:26px;padding:22px 30px;min-height:95px;border-radius:18px}
.news-row h3{font-size:clamp(21px,1.5vw,30px);line-height:1.5;font-weight:700;padding-left:35px}
.news-list{gap:16px}
.news-toggle{font-size:18px;white-space:normal;flex-shrink:0}
.news-entry{min-width:0}
summary.news-row{cursor:pointer;list-style:none}
summary.news-row::-webkit-details-marker{display:none}
.news-entry[open] .news-row{border-radius:18px 18px 0 0}
.news-entry[open] .news-arrow{transform:rotate(90deg)}
.news-detail{background:#ffffffed;border-radius:0 0 18px 18px;padding:4px 30px 25px;color:#25366a;font-size:18px;line-height:1.85}
.news-detail p{margin:12px 0 0}
.news-entry summary:focus-visible{outline:3px solid #004dff;outline-offset:4px}
.news-date,.news-category{font-size:17px}
.news .note{font-size:15px}
.reviews{padding:4vw 0 4.4vw}
.reviews>.container{width:87%;max-width:1740px}
.reviews .eyebrow{font-size:17px;margin-bottom:1.7vw;letter-spacing:.37em}
.reviews .section-title{font-size:clamp(38px,3.6vw,72px);letter-spacing:-.02em;line-height:1.4;margin-bottom:2.7vw;white-space:nowrap}
.reviews-summary{gap:2.1vw;margin-bottom:1.9vw;flex-wrap:nowrap}
.reviews-summary h3{font-size:clamp(22px,2.3vw,46px);white-space:nowrap;font-weight:700}
.reviews-summary .note{font-size:clamp(14px,1.3vw,26px);white-space:nowrap}
.review-score{font-size:2.3vw;padding-left:2.2vw;gap:.5vw}
.review-score strong{font-size:4.9vw;font-weight:700}
.review-count{font-size:2.8vw;font-weight:700;white-space:nowrap}
.reviews-summary .button{font-size:clamp(15px,1.32vw,26px);padding:1vw 2.3vw;min-height:4vw;white-space:nowrap}
.review-track{margin-inline:-2.5vw;gap:1.5vw;padding-bottom:0}
.review-card{flex-basis:calc((100% - 3vw)/3);padding:2.4vw 2.6vw 1.4vw;border-radius:9px;border-right:1px solid #b8d8ff;background:#f3f9ffb3}
.review-quote{height:3vw;line-height:.9;font-size:7.5vw;margin:-.6vw 0 1vw;font-weight:700}
.review-card blockquote{font-size:clamp(22px,1.78vw,35px);font-weight:600;line-height:1.55;margin-bottom:2.6vw}
.review-author{font-size:clamp(18px,1.35vw,27px);position:relative}
.review-author:before{content:"";position:absolute;top:-1.3vw;left:0;width:2.7vw;border-top:1px solid #87afff}
.review-card .note,.review-card a{font-size:clamp(15px,1.13vw,23px)}
.review-card a{margin-top:1vw}
.reviews-control{margin-top:1.4vw}
.reviews-control .note{font-size:clamp(14px,1.08vw,22px)}
.review-range{font-size:2.1vw;font-weight:600;display:flex;align-items:center;gap:3vw}
.review-range:before,.review-range:after{content:"";width:7.3vw;border-top:1px solid #bfddff}
.review-buttons{gap:1.4vw}
.review-buttons button{width:4.3vw;height:4.3vw;border:1.5px solid #007bff;background:transparent;min-width:44px;min-height:44px}
.reviews-caveat{font-size:clamp(13px,.98vw,20px);text-align:center;margin-top:2.3vw}
.reviews-all-mobile,.reviews-selection-mobile{display:none}
@media(max-width:1150px){
 .brand-tagline{display:none}.site-nav{gap:18px}.hero .hero-body{width:51%}.hero h1{font-size:4.9vw}.hero .hero-lead{font-size:16px}.hero .hero-intro{font-size:16px}.hero-main{width:92%}.hero-support{grid-template-columns:1fr 1fr;gap:20px}.hero-service-summary{padding-left:20px}.hero-service-items{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-search-links{display:none}.hero-service{flex-direction:column;align-items:flex-start}.hero-service strong{font-size:11px}.hero-service small{font-size:10px}.support-steps{gap:20px}.support-steps p{white-space:normal}.reviews-summary{flex-wrap:wrap;gap:22px}.reviews-summary .button{margin-left:auto}.review-track{margin-inline:0}.review-card{flex-basis:calc((100% - 1.5vw)/2)}.reviews .section-title{white-space:normal}.news-row{grid-template-columns:115px 88px minmax(0,1fr) 48px;gap:16px}
}
@media(max-width:980px){
 :root{--fv-header:64px}
 .site-header{position:sticky;top:0;background:rgb(0 16 37 / 84%);border-bottom-color:rgb(128 181 224 / 20%);box-shadow:0 4px 18px rgb(0 12 35 / 12%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
 .site-nav{display:none}.site-nav.is-open{display:grid}.header-inner{gap:20px}.site-header .brand{width:200px}.brand-tagline{display:block;font-size:12px}.header-cta{margin-left:auto}.hero .hero-body{width:57%;padding-top:32px}.hero h1{font-size:5vw}.hero-side-copy{right:0;font-size:14px}.hero-signature{top:34vw;font-size:22px}.hero .hero-actions .button{height:50px;font-size:14px;padding:10px 15px}.hero-support{margin-top:15px}.hero-service{padding:10px 6px}.hero-service strong{white-space:normal}.hero-service small{white-space:normal}.hero .hero-caption{font-size:12px}.news>.container,.reviews>.container{width:90%}
}
@media(min-width:651px) and (max-width:700px){
 .brand-tagline{display:none}
}
@media(max-width:650px){
 :root{--fv-header:56px}
 .header-inner{width:92%;gap:12px}.site-header .brand{width:158px;max-width:43%;padding:0}.brand-tagline{display:none}.site-header .header-cta{margin-left:auto;width:auto;min-width:102px;min-height:42px;height:42px;font-size:13px;padding:8px 13px;gap:8px;flex-shrink:0}.header-cta .icon{width:20px;height:20px}.menu-toggle{width:34px;min-width:34px;height:44px;padding:2px}.menu-toggle span{height:1.5px;margin:7px 0}.site-nav{top:100%}
 .hero{padding-bottom:26px}.hero-main{width:90%}.hero .hero-backdrop{top:calc(-1 * var(--fv-header));bottom:auto;aspect-ratio:941 / 1672}.hero .hero-backdrop img{width:100%;height:auto}.hero .hero-backdrop:after{display:none}
 .hero .hero-body{padding:25px 0 20px;width:100%;max-width:none}.hero .hero-intro{display:block;position:relative;padding-left:26px;font-size:14px;line-height:1.5;max-width:215px;white-space:normal;margin-bottom:24px;letter-spacing:.03em}.hero .hero-intro:before{position:absolute;left:0;top:11px;width:17px;margin:0}.hero .hero-intro span{display:inline;color:#b2d8ff}
 .hero h1{font-size:clamp(30px,8.1vw,49px);line-height:1.22;max-width:none;margin-bottom:20px;letter-spacing:0}.hero h1 .hero-title-first{font-size:1.24em;line-height:1.1;margin-bottom:.18em}.hero h1 .hero-title-service>span{display:block}.hero h1 .hero-title-result{margin-top:.13em;font-size:1.16em;display:flex}.hero h1 .hero-title-end{font-size:.65em}.hero h1>span{white-space:nowrap}
 .hero .hero-lead{font-size:15px;font-weight:600;line-height:1.8;width:71%;max-width:360px;letter-spacing:0}.hero .hero-actions{margin-top:27px;display:flex;flex-direction:column;gap:12px;width:100%;max-width:420px}.hero .hero-actions .button{flex:none;width:100%;height:50px;font-size:16px;gap:18px;padding:12px 15px}.hero .hero-actions .button--outline{border-radius:999px;background:#0011276e}.hero .hero-caption{font-size:12px;white-space:normal;margin:17px 0 0;line-height:1.8;gap:12px}.hero-caption:before{width:18px}
 .hero-side-copy{top:14px;right:-7px;font-size:10px;line-height:1.55;letter-spacing:.12em}.hero-signature{top:180px;right:-4px;width:142px;transform:rotate(-11deg)}.hero-signature p{font-size:23px;line-height:1.35}.hero-signature p span{font-size:.48em}.hero-signature small{font-size:7px;margin:17px 0 0 50px}
 .hero-support{width:92%;display:flex;flex-direction:column;gap:14px;padding:0;background:none;border:0;margin:0 auto}.hero-strategy,.hero-service-summary{border:1px solid #0a69ab;border-radius:10px;padding:16px 13px;background:linear-gradient(130deg,#071a37d9,#073057b8,#00172ad9)}.hero-support h2{font-size:15px;margin-bottom:12px;letter-spacing:0}.support-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.support-steps li+li:before{left:-11px;top:6px;width:6px;height:6px}.support-steps h3{font-size:13px;white-space:nowrap}.support-steps p{font-size:11px;line-height:1.7;white-space:normal}.hero-service-summary{padding-left:13px}.hero-service-items{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.hero-service{padding:9px 7px;gap:7px;border-radius:10px}.hero-service strong{font-size:11px;line-height:1.5;white-space:normal}.hero-service small{font-size:10px;line-height:1.6;margin-top:4px;white-space:normal}.hero-search-links{display:none}.hero-bottom-copy{display:block;font-size:11px;line-height:1.7;text-align:center;margin:22px 10px 0;letter-spacing:.015em}
 .news{padding:52px 0 60px;background-size:auto 100%;background-position:center bottom}.news>.container{width:88%}.news .eyebrow{font-size:13px;margin-bottom:17px}.news-heading{margin-bottom:25px}.news-heading .section-title{font-size:48px;line-height:1.1}.news-intro{font-size:16px;line-height:1.7;margin-top:20px}.news .planned-link>span{font-size:16px;min-height:50px;border-radius:14px;padding:12px 24px}.news-list{gap:15px}.news-row{grid-template-columns:1fr auto 34px;padding:19px 18px;min-height:154px;gap:12px 10px;border-radius:14px}.news-date,.news-category{font-size:13px}.news-category{padding:2px 14px}.news-row h3{grid-column:1/3;font-size:20px;line-height:1.55;padding:0;border:0;font-weight:700}.news-arrow{width:34px;height:34px;grid-row:2;grid-column:3}.news-arrow .icon{width:23px;height:23px}.news .note{font-size:14px;line-height:1.8;margin-top:25px}.news-mobile-link{margin-top:27px}
 .reviews{padding:52px 0 46px;overflow:hidden}.reviews>.container{width:88%}.reviews .eyebrow{font-size:12px;letter-spacing:.22em;margin-bottom:18px}.reviews .section-title{font-size:32px;line-height:1.55;letter-spacing:0;margin-bottom:24px;white-space:normal}.reviews-summary{display:flex;flex-wrap:wrap;gap:10px 15px;margin-bottom:24px}.reviews-summary h3{font-size:20px;flex-basis:100%;font-weight:700}.review-score{font-size:24px;border:0;padding:0;gap:9px}.review-score strong{font-size:54px}.review-count{font-size:27px}.reviews-summary .note{font-size:12px}.reviews-summary .button{margin:8px 0 0;min-height:48px;font-size:15px;padding:10px 20px;width:100%}.review-track{margin:0 -6.8vw 0 0;gap:15px;padding:0 22px 0 0}.review-card{flex-basis:calc(100% - 22px);padding:25px 22px 18px}.review-quote{font-size:85px;height:42px;margin:-8px 0 16px}.review-card blockquote{font-size:22px;line-height:1.75;margin-bottom:35px}.review-author{font-size:17px}.review-author:before{top:-18px;width:28px}.review-card .note,.review-card a{font-size:14px;line-height:1.7}.review-card a{margin-top:15px}.reviews-control{margin-top:20px;gap:10px;flex-wrap:wrap}.reviews-control .note{font-size:12px;flex-basis:100%}.review-range{font-size:21px;gap:0}.review-range:before,.review-range:after{display:none}.review-buttons{gap:12px}.review-buttons button{width:48px;height:48px}.reviews-caveat{font-size:12px;text-align:left;line-height:1.8;margin-top:20px}
}

@media(max-width:650px){
 .support-steps li{display:block;text-align:center;min-width:0}
 .support-steps li+li:before{display:block}
 .hero .hero-backdrop{top:0}
 .news{background-image:url("assets/faq-trails.png");background-size:100% 100%}
 .news-intro{display:none}
 .news-row{grid-template-columns:auto 1fr 34px;min-height:98px;padding:18px;gap:14px 12px}
 .news-date{border-right:1px solid #a9bade;padding-right:12px}
 .news-category{justify-self:start}
.news-row h3{font-size:19px}
 .news-arrow{grid-row:1/3;align-self:center}
 .hero-signature{top:275px;right:-7px;width:104px}
 .hero-signature p{font-size:18px}
 .hero-signature small{font-size:7px;margin-left:37px}
 .reviews .section-title{font-size:30px;line-height:1.45}
 .reviews-summary{display:grid;grid-template-columns:auto auto auto;gap:4px 10px;align-items:center}
 .reviews-summary h3{font-size:15px;flex-basis:auto;white-space:nowrap;grid-column:auto;width:auto}
 .reviews-summary p{margin:0}
 .review-score{font-size:19px;gap:5px;border-left:1px solid #c6d7f5;padding-left:10px}
 .review-score strong{font-size:38px}
 .review-count{font-size:21px}
 .reviews-summary .note{grid-column:1/-1;text-align:right;font-size:13px}
 .reviews-summary .button{display:none}
 .review-card blockquote{font-size:18px;line-height:1.8}
 .reviews-control .note{display:none}
 .reviews-all-mobile{display:flex;font-size:15px;margin-top:23px;min-height:48px;padding:12px 16px}
 .reviews-selection-mobile{display:block;font-size:13px;text-align:center;margin:24px 0 0}
 .reviews-caveat{margin-top:7px;text-align:center}
}

/* Complete news copy remains readable when expanded on narrow screens. */
@media(max-width:650px){
 .news-heading .news-toggle{display:none}
 .news-mobile-link .news-toggle{width:100%;font-size:17px;min-height:50px}
 .news-detail{font-size:16px;padding:4px 18px 21px;line-height:1.85}
 .sc-case-summary{font-size:17px;line-height:1.8}
}

/* Canonical private-review CSS adopted from the pinned fidelity resource.
   Back mobile hero copy with a gradient without changing its box geometry. */
@media(max-width:650px){
 .hero .hero-body{isolation:isolate}
 .hero .hero-body::before{content:"";position:absolute;inset:0 -12px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgb(0 17 38 / 72%) 0%,rgb(0 17 38 / 68%) 72%,rgb(0 17 38 / 0%) 100%)}
}
