@font-face{font-family:NotoSerifLocal;src:url("assets/fonts/NotoSerifJP.ttf") format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:NotoSansLocal;src:url("assets/fonts/NotoSansJP.ttf") format("truetype");font-weight:100 900;font-display:swap}
:root{--font-display:NotoSerifLocal,serif;--font-body:NotoSansLocal,sans-serif;--ink:#18354e;--muted:#38556c;--paper:#fbfdfe;--gold:#a9936a;--line:#bbd2df;--blue:#e3f1f6}
*{box-sizing:border-box}
html{scroll-padding-top:24px}
body{font-family:var(--font-body);color:var(--ink);background:var(--paper);font-size:20px;line-height:1.85}
h1,h2,h3,.brand{font-family:var(--font-display);font-weight:600;letter-spacing:.025em}
p{color:inherit}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #507e9d;outline-offset:5px}
.skip-link{position:fixed;top:0;left:20px;background:#fff;padding:12px;z-index:200;transform:translateY(-120%)}
.skip-link:focus{transform:none}
.hero{position:relative;aspect-ratio:1536/1024;width:100%;min-height:0;margin:0;padding:0;background:url("assets/fv-bg.png") center/100% 100% no-repeat;overflow:hidden}
.hero__stage{position:static;width:100%;height:100%}
.site-header{position:absolute;inset:1.1% 5.8% auto;width:auto;padding:0;height:7%;display:flex;align-items:center;justify-content:space-between;background:none;border:0;box-shadow:none;z-index:3}
.brand{font-size:1.9vw;line-height:1.4;letter-spacing:.02em;white-space:normal}
.nav{display:flex;gap:2.7vw;align-items:center;font-size:1.23vw}
.nav a{color:var(--ink);padding:8px}
.nav a::after{display:none}
.nav-toggle{display:none}
.hero__copy{position:static;padding:0;color:var(--ink);width:auto}
.hero-proof{position:absolute;left:5.8%;top:14.4%;font-family:var(--font-display);font-size:1.47vw;letter-spacing:.025em;line-height:1.8;margin:0;border-bottom:1px solid #789caf;padding-bottom:.65vw;width:27.3%}
.hero h1{position:absolute;left:5.55%;top:21.5%;width:48%;font-size:4.35vw;line-height:1.39;letter-spacing:0;margin:0;font-weight:600}
.hero h1 .l{display:block;overflow:visible}
.hero h1 .l>span{display:block;transform:none!important;opacity:1!important;line-height:inherit}
.hero-sub{position:absolute;left:5.8%;top:48.9%;font-family:var(--font-display);font-size:1.8vw;line-height:1.5;letter-spacing:.07em;margin:0}
.hero__lead{position:absolute;left:5.8%;top:55.5%;width:45%;margin:0;font-size:1.28vw;line-height:1.9;color:var(--ink);font-family:var(--font-display);letter-spacing:.02em}
.hero__actions{position:absolute;left:5.8%;top:64.8%;width:37%;display:block;margin:0}
.btn{min-height:64px;border-radius:100px;display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:18px 30px;font-size:21px;line-height:1.4;text-decoration:none;font-weight:600;letter-spacing:.025em;transition:background .25s,box-shadow .25s}
.btn--primary{background:#153450;color:white;border:1px solid #153450}
.btn--primary:hover{background:#2f5774;box-shadow:0 6px 20px #15345015}
.btn:before,.btn:after{display:none}
.hero__actions .btn{width:100%;min-height:0;height:5.5vw;font-size:1.9vw;font-family:var(--font-display);padding:0 2vw}
.hero__actions>p{font-family:var(--font-display);font-size:1.16vw;line-height:1.5;margin:.8vw 0 0;text-align:center}
.hero-name{position:absolute;top:39.2%;left:83.4%;font-family:var(--font-display);font-size:1.52vw;line-height:1.5;border-bottom:1px solid #789caf;padding:0 0 .55vw;letter-spacing:.08em}
.image-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.image-slot{border:1px solid #adcbdc;border-radius:7px;min-width:0;text-align:center;background:#f4faff90;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:18px 12px;min-height:155px}
.image-slot strong{font-weight:500;font-size:20px;font-family:var(--font-display)}
.image-slot>span:last-child{font-size:17px;color:#3d627d}
.slot-symbol{width:42px;height:34px;color:#7b9eb4;background:#dbeaf2;border-radius:3px;font-size:29px;line-height:30px;font-weight:300;margin-bottom:5px}
.hero__copy>.image-slots{position:absolute;left:5.8%;top:79.5%;width:40.7%;gap:1.65vw}
.hero .image-slot{min-height:0;height:8.65vw;padding:.8vw .5vw;gap:.15vw}
.hero .image-slot strong{font-size:1.18vw}
.hero .image-slot>span:last-child{font-size:1.05vw}
.hero .slot-symbol{width:2.6vw;height:2.2vw;font-size:2vw;line-height:2.2vw;margin-bottom:.2vw}
.scroll-cue{position:absolute;left:49%;bottom:1.5%;height:3%;font-size:22px;color:#587a94}
.hero-mobile-photo{display:none}
.container{width:min(1160px,calc(100% - 80px));margin:0 auto}
.section{padding:110px 0;position:relative}
.section__head{margin:0 0 48px}
.eyebrow{font-family:var(--font-body);font-size:16px;letter-spacing:.15em;text-transform:uppercase;color:#476b83;margin:0 0 18px;line-height:1.5}
.eyebrow:before{display:none}
.section h2,.lp-contact h2{font-size:44px;line-height:1.5;margin:0 0 20px;letter-spacing:.035em}
.section h3{font-size:28px;line-height:1.65;margin:0 0 16px}
.section p{font-size:20px;line-height:1.9;margin:0 0 22px}
.section .eyebrow{font-size:16px;line-height:1.5;margin-bottom:18px}
.section-intro{max-width:850px}
.concerns{background:#eaf4f8}
.concern-list{margin-top:44px}
.concern-list article{display:grid;grid-template-columns:65px 1fr;gap:25px;border-top:1px solid #b5d0df;padding:30px 0}
.concern-list article:last-child{border-bottom:1px solid #b5d0df}
.number{font-family:var(--font-display);font-size:35px;color:#557c97;line-height:1.4}
.concern-list p{margin:0;max-width:840px}
.mobile-break{display:none}
.message-note{padding-top:40px;font-family:var(--font-display)}
.services{background:#fcfefe}
.service-row{display:grid;grid-template-columns:1fr 290px;gap:75px;align-items:center;padding:42px 0;border-top:1px solid var(--line)}
.service-row:nth-child(2){grid-template-columns:290px 1fr}
.service-row:nth-child(2) .service-text{order:2}
.service-row:nth-child(2) img{order:1}
.service-row img{width:100%;aspect-ratio:1;object-fit:contain}
.service-index{color:#547d96!important;font-family:var(--font-display);font-size:35px!important;line-height:1.4!important}
.service-index span{font-size:17px;padding-left:16px}
.support-process{border-top:1px solid var(--line);padding-top:32px}
.support-process p:first-child{font-family:var(--font-display);font-size:23px}
.support-process span{padding:0 8px;color:#668ca4}
.inline-cta{margin-top:40px;text-align:center;padding:40px 20px;background:#eaf4f8;border-radius:3px}
.inline-cta .btn{min-width:380px}
.profile{background:#e4f0f5}
.profile-grid{display:grid;grid-template-columns:340px 1fr;gap:70px;align-items:start}
.profile-photo{margin:0}
.profile-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:180px 180px 3px 3px}
.profile-photo figcaption{display:flex;flex-direction:column;gap:10px;padding-top:20px}
.profile-photo figcaption strong{font-family:var(--font-display);font-size:30px;font-weight:500}
.profile-photo figcaption span{font-size:17px}
.profile-copy p{margin-bottom:24px}
.profile-copy strong{font-weight:600}
.personality{display:grid;grid-template-columns:240px 1fr;gap:40px;max-width:950px;align-items:center;margin:60px auto 0;padding:32px 40px;background:#f9fdff;border:1px solid #d2e5ef;border-radius:4px}
.personality img{width:240px;height:270px;object-fit:contain}
.personality p{margin-bottom:0}
.personality .eyebrow{font-size:16px;margin-bottom:16px}
.personality h3{font-size:31px}
.companions{margin-top:65px}
.companions .image-slots{max-width:850px;margin-top:25px}
.companions .image-slot{min-height:210px;background:#f5fbff}
.companions .slot-symbol{margin-bottom:22px}
.flow{background:white}
.flow-line{margin-top:40px;padding:0;list-style:none}
.flow-line li{grid-template-columns:65px 1fr;gap:25px;padding:30px 0;border-top:1px solid var(--line);display:grid}
.flow-line__num{font-family:var(--font-display);font-size:35px;color:#567f99;position:static;background:none;width:auto;height:auto;padding:0;line-height:1.5}
.flow-line__body p{max-width:880px;margin:0}
.fee-note{margin-top:36px;padding:35px 40px;background:#eef7fb;border-left:2px solid #94b7cd}
.fee-note .small-note{font-size:17px;line-height:1.9}
.fee-note p:last-child{margin:0}
.faq{background:#f2f8fb}
.faq-list{max-width:none;margin:0}
.faq-list details{border-bottom:1px solid #adcbdc;padding:0;background:none}
.faq-list summary{font-size:22px;padding:26px 55px 26px 0;font-family:var(--font-display);font-weight:500;line-height:1.75;cursor:pointer}
.faq-list summary:before{display:none}
.faq-list summary:after{font-family:var(--font-body);font-size:25px;color:#557e98;right:4px}
.faq-list details p{font-size:20px;padding:0 35px 28px 0;margin:0;max-width:900px}
.referral{border:1px solid #c1d9e6;padding:40px;margin-top:55px;background:#fff}
.referral p{margin-bottom:0}
.lp-contact{background:#173650;color:#fff;text-align:center;padding:85px 0}
.lp-contact h2{color:white;font-size:38px}
.lp-contact .eyebrow{color:#c2ddea}
.lp-contact p{color:white;font-size:20px;margin:0 0 25px}
.lp-contact .btn{background:#f6fbfe;color:#153650;border-color:#f6fbfe;min-width:390px}
.lp-contact .btn:hover{background:#d9edf7}
.lp-contact .contact-area{font-size:17px;margin:25px 0 0;color:#e0edf5}
.footer{background:#10293e;color:#fff;display:grid;grid-template-columns:1.6fr 1fr;gap:35px;padding:55px max(40px,calc((100vw - 1160px)/2)) 30px;font-size:17px;line-height:1.85}
.footer__brand strong{font-family:var(--font-display);font-size:24px;color:#fff}
.footer__brand p{font-size:17px;color:#dae9f2;line-height:1.9}
.footer__nav{grid-template-columns:1fr 1fr;gap:20px}
.footer__nav a,.footer__sns a{font-size:17px;color:white}
.footer__sns{align-items:start}
.footer small{grid-column:1/-1;font-size:16px;color:#d3e4ef}
.sticky-cta{font-size:19px;background:#163a56;color:#fff;border:1px solid #567b96;border-radius:40px;min-height:62px;display:none;justify-content:space-between;align-items:center;padding:14px 28px;box-shadow:0 4px 18px #102c3e22}
@media(min-width:901px){.nav-overlay{display:none!important}}
@media(max-width:900px){
.hero{aspect-ratio:auto;background:#f8fcfe;overflow:visible;min-height:0}
.site-header{position:relative;inset:auto;height:auto;min-height:80px;padding:18px 24px;gap:15px;background:#fcfdfe;align-items:center}
.brand{font-size:20px;max-width:calc(100% - 55px);line-height:1.5}
.nav{display:none}
.nav-toggle{display:flex;position:relative;z-index:130;border:1px solid #afcddb;width:44px;height:44px;border-radius:50%;padding:11px;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.nav-toggle span{width:19px;height:1px;background:#153650}
.hero__stage{height:auto;display:flex;flex-direction:column;padding-bottom:30px}
.hero-mobile-photo{display:block;width:min(100%,640px);height:auto;aspect-ratio:1.15;object-fit:cover;object-position:center top;order:0;margin:0 auto}
.hero__copy{position:relative;order:1;padding:30px 24px 12px}
.hero-proof,.hero h1,.hero-sub,.hero__lead,.hero__actions,.hero__copy>.image-slots,.hero-name{position:static;width:auto;left:auto;top:auto}
.hero-proof{font-size:17px;width:max-content;max-width:100%;line-height:1.75;padding-bottom:10px;margin:0 0 24px;border-bottom:1px solid #a6c5d7}
.hero h1{font-size:clamp(30px,5.1vw,44px);line-height:1.58;letter-spacing:.015em;margin:0 0 22px;width:100%}
.hero h1 .l{overflow:visible;line-height:inherit}
.hero-sub{font-size:22px;line-height:1.7;letter-spacing:.01em;margin:0 0 24px}
.hero__lead{font-size:20px;font-family:var(--font-body);line-height:1.85;margin:0 0 28px}
.hero__lead br{display:none}
.hero__actions{width:100%;margin:0 0 30px}
.hero__actions .btn{font-size:21px;height:auto;min-height:64px;line-height:1.5;padding:17px 20px;width:100%;gap:20px}
.hero__actions>p{font-family:var(--font-body);font-size:16px;line-height:1.8;margin:14px 0 0}
.hero__copy>.image-slots{gap:12px;margin:0;grid-template-columns:repeat(3,minmax(0,1fr))}
.hero .image-slot{height:auto;min-height:135px;padding:15px 6px;gap:6px}
.hero .image-slot strong{font-size:18px}
.hero .image-slot>span:last-child{font-size:16px;line-height:1.6}
.hero .slot-symbol{width:32px;height:28px;line-height:26px;font-size:24px;margin-bottom:2px}
.hero-name{order:0;text-align:center;font-size:25px;font-weight:500;line-height:1.6;padding:10px 0;border:0;background:#edf6fa;margin:0}
.scroll-cue{display:none}
.container{width:calc(100% - 48px)}
.section{padding:65px 0}
.section__head{margin-bottom:30px}
.section h2{font-size:34px;line-height:1.6;letter-spacing:.02em}
.section h3{font-size:25px;line-height:1.7}
.section p{font-size:20px;line-height:1.85}
.section-intro br{display:none}
.concern-list article{grid-template-columns:40px 1fr;gap:14px;padding:26px 0}
.number{font-size:28px}
.concern-list h3{font-size:24px}
.message-note br{display:none}
.service-row,.service-row:nth-child(2){grid-template-columns:1fr;gap:20px;padding:32px 0}
.service-row .service-text,.service-row:nth-child(2) .service-text{order:1}
.service-row img,.service-row:nth-child(2) img{order:0;width:190px;height:190px;margin:0 auto}
.support-process p:first-child{font-size:21px;line-height:2}
.support-process span{padding:0 4px}
.inline-cta{padding:30px 20px}
.inline-cta .btn{width:100%;min-width:0;font-size:20px;padding:17px 15px;gap:15px}
.profile-grid{grid-template-columns:1fr;gap:35px}
.profile-photo{max-width:350px;margin:0 auto;width:100%}
.profile-photo img{aspect-ratio:3/4}
.profile-photo figcaption{text-align:center}
.personality{grid-template-columns:1fr;padding:25px 24px;gap:20px;margin-top:40px}
.personality img{width:190px;height:230px;margin:0 auto}
.personality h3{font-size:29px}
.companions{margin-top:45px}
.companions .image-slots{grid-template-columns:1fr;gap:15px}
.companions .image-slot{min-height:155px}
.companions .slot-symbol{margin-bottom:5px}
.flow-line li{grid-template-columns:42px 1fr;gap:15px;padding:27px 0}
.flow-line__num{font-size:29px}
.fee-note{padding:28px 24px}
.fee-note h3{font-size:24px}
.fee-note .small-note{font-size:17px}
.faq-list summary{font-size:22px;line-height:1.8;padding-right:38px}
.faq-list details p{padding-right:0}
.referral{padding:28px 24px}
.lp-contact{padding:60px 0}
.lp-contact h2{font-size:30px;line-height:1.7}
.lp-contact h2 br{display:none}
.lp-contact .btn{width:100%;min-width:0;font-size:20px;gap:15px}
.lp-contact .contact-area{font-size:17px}
.footer{padding:40px 24px 110px;grid-template-columns:1fr;gap:28px}
.footer__brand strong{font-size:22px}
.footer__nav{gap:20px}
.sticky-cta{display:flex;left:18px;right:18px;bottom:14px;width:auto;z-index:70}
.nav-overlay{padding:95px 24px 35px;background:#f5fbfe;color:var(--ink);z-index:100;overflow:auto}
.nav-overlay nav{font-size:24px}
}
@media(max-width:380px){.hero h1{font-size:28px}.hero__copy{padding-left:20px;padding-right:20px}.hero .image-slot strong{font-size:17px}.container{width:calc(100% - 40px)}}
@media(prefers-reduced-motion:reduce){

.hero__ambient{display:none}
.hero h1 .l>span{animation:none;transform:none;transition:opacity .6s ease}
.concept__fullbleed img,.hero__photo-wrap{transform:none!important;transition:none}
.hero__info{transition:opacity .6s ease}
.hero__info>*{transform:none}
.ghost{display:none}
}
/* CTA availability from the first mobile screen; hidden when the final contact is in view. */
@media(max-width:900px){.sticky-cta{opacity:1;transform:none;pointer-events:auto}.sticky-cta.at-contact{opacity:0;pointer-events:none}}

/* 文字の字面を画像枠の中央に収める */
.slot-symbol,.hero .slot-symbol{display:flex;align-items:center;justify-content:center;line-height:1;height:auto;min-height:42px;padding:5px}
@media(min-width:901px){.hero .slot-symbol{min-height:2.7vw}}

.scroll-cue{display:flex;align-items:center;justify-content:center;line-height:1;min-height:44px;min-width:44px;padding:0}.scroll-cue span{line-height:1}
@media(max-width:900px){.scroll-cue{display:none}.hero__copy>.image-slots{grid-template-columns:1fr}.hero .image-slot{min-height:100px;display:grid;grid-template-columns:40px 1fr;column-gap:12px;padding:18px;text-align:left}.hero .slot-symbol{grid-row:1/3}.hero .image-slot>span:last-child{grid-column:2}.sticky-cta{opacity:0;pointer-events:none}.sticky-cta.is-visible:not(.at-contact){opacity:1;pointer-events:auto}}

.slot-symbol{position:relative}.slot-symbol:before,.slot-symbol:after{content:"";position:absolute;background:#7b9eb4;left:25%;right:25%;height:2px;top:50%}.slot-symbol:after{transform:rotate(90deg)}
.footer__sns a{width:auto;height:auto;min-height:52px;padding:12px 18px;display:inline-flex;align-items:center;line-height:1.5;border-radius:6px}
:root{--font-en:serif;--fw-display:600;--fw-body:400;--fw-strong:600;--ls-display:.025em;--ls-body:0em;--ls-en:.15em;--lh-display:1.5;--lh-body:1.85}

@media(min-width:901px){.profile-photo{position:sticky;top:36px;align-self:start}}

/* v2：控えめなパールの艶・光だけを背景へ追加 */
.hero{background-image:url("assets/v2_pearl-light.png"),url("assets/fv-bg.png");background-position:center,center;background-size:100% 100%,100% 100%;background-repeat:no-repeat}
.profile{background-image:url("assets/v2_pearl-light.png");background-size:100% 100%;background-position:center;background-repeat:no-repeat}
@media(max-width:900px){.hero{background-image:url("assets/v2_pearl-light.png");background-size:100% 100%;background-position:center;background-repeat:no-repeat}}
