/* トップページ */
/* 画像の切り取り: object-fit:cover + 位置(ax,ay) + 拡大(zoom)。正本JSONの ax/ay/zoom を --ax/--ay/--z に対応 */
.crop{position:relative;overflow:hidden}
.crop img{width:100%;height:100%;object-fit:cover;object-position:calc(var(--ax,.5)*100%) calc(var(--ay,.5)*100%);transform:scale(var(--z,1));transform-origin:calc(var(--ax,.5)*100%) calc(var(--ay,.5)*100%)}

/* ヒーロー */
.hero{padding:38px 20px 0;display:flex;flex-direction:column}
.hero .txt{display:contents}
.hero .eyebrow-s{order:1}.hero h1{order:2}.hero .photo{order:3}.hero .lead{order:4}.hero .btn-pill{order:5}.hero .note{order:6}
.hero .eyebrow-s{font-size:12.5px;font-weight:600;color:var(--blue);letter-spacing:.02em;line-height:1.6}
.hero h1{font-size:33px;line-height:1.45;font-weight:600;margin:13px 0 0;letter-spacing:.01em}
.hero h1 span{color:var(--blue);display:block}
.hero .photo{margin:22px -1px 0;aspect-ratio:352/225}
.hero .lead{margin-top:19px;font-size:15px;line-height:1.95;color:var(--gray)}
.hero .btn-pill{max-width:none;margin-top:20px;height:58px;padding:0 6px 0 25px;font-size:16px}
.hero .btn-pill .circ{width:38px;height:38px}
.hero .note{text-align:center;font-size:12.5px;color:var(--gray);margin:12px 0 0;padding-bottom:38px}
.hero-band{display:none}
@media(min-width:1024px){
  .hero{position:relative;padding:0;flex-direction:row;display:grid;grid-template-columns:max(38.33vw,calc((100vw - 1440px)/2 + 552px)) minmax(0,1fr);height:clamp(600px,58.33vw,840px)}
  .hero .txt{padding:clamp(56px,calc(16vw - 109px),121px) 0 0 calc(clamp(40px,4.44vw,64px) + max(0px,(100vw - 1440px)/2));display:flex;flex-direction:column;align-items:flex-start}
  .hero .eyebrow-s{font-size:16px;letter-spacing:.02em}
  .hero h1{font-size:clamp(38px,3.89vw,56px);line-height:1.446;margin-top:clamp(16px,1.8vw,26px);margin-left:-4px;white-space:nowrap}
  .hero .lead{font-size:17px;line-height:2;margin-top:clamp(28px,4.4vw,63px);max-width:470px}
  .hero .btn-pill{margin-top:clamp(36px,6.1vw,88px);height:72px;padding:0 12px 0 40px;font-size:17px;max-width:360px}
  .hero .btn-pill .circ{width:48px;height:48px}
  .hero .photo{margin:0;aspect-ratio:auto;height:100%;order:2}
  .hero .txt{order:1}
  .hero .note{display:none}
  .hero-band{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;max-width:1280px;margin:20px auto 0;width:calc(100% - 2*var(--pad-in));background:var(--pale);height:108px;color:var(--blue)}
  .hero-band>*{text-align:center}
  .hero-band .c1{font-size:22px;font-weight:600;border-right:1px solid #D3E1EC;line-height:52px}
  .hero-band .c2{display:flex;justify-content:center;align-items:center;gap:20px;margin:0;height:100%}
  .hero-band p{margin:0}
  .hero-band .c2 .tel{font-size:37px}
  .hero-band .c2 .h{font-size:14px;color:var(--gray);font-weight:300}
  .hero-band .c3{font-size:15px;font-weight:600;color:var(--navy);border-left:1px solid #D3E1EC;line-height:52px}
  .hero-band{grid-template-columns:412px 1fr 412px}
}
@media(min-width:1024px) and (max-width:1279px){.hero-band{grid-template-columns:1fr 1.4fr 1fr}.hero-band .c2 .h{display:none}}

/* お困りごと */
.concerns{background:var(--pale);padding:57px 20px 55px}
.concerns .eyebrow{margin-bottom:20px}
.concerns h2{font-size:27px;line-height:1.55;margin-bottom:30px}
.cards3{display:grid;gap:19px}
.card-c{background:#fff;padding:24px 24px 24px;display:flex;flex-direction:column}
.card-c .il{aspect-ratio:3/2;width:min(100%,300px);margin:0 auto 24px;overflow:hidden}
.card-c .il img{display:block;width:100%;height:auto}
.card-c .il img[src*="concern-tokushu"]{transform:translateY(9%)}
.card-c .il img[src*="concern-ihin"]{transform:translateY(8.5%)}
.card-c h3{font-size:21px;line-height:33.5px;font-weight:600}
.card-c p{font-size:16px;line-height:29px;color:var(--gray);margin-top:12.5px}
.card-c .lk{margin-top:19.5px;display:flex;align-items:center;gap:14px;color:var(--blue);font-weight:600;font-size:16px}
@media(min-width:1024px){
  .concerns{margin-top:0;padding:60px var(--pad) 64px;position:relative;margin-top:52px}
  .concerns::before{content:"";position:absolute;left:var(--pad);right:var(--pad);top:0;height:1px;background:var(--line)}
  .concerns::after{content:"";position:absolute;left:var(--pad);top:-1px;width:clamp(40px,3.6vw,52px);height:3px;background:var(--blue)}
  .concerns h2{margin-bottom:57px;font-size:clamp(26px,2.43vw,35px);line-height:1.5}
  .concerns .eyebrow{margin-bottom:38px}
  .cards3{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.78vw,40px)}
  .card-c{padding:30px 32px 0;border-top:2px solid #C9DCEE;text-align:center;min-height:420px;position:relative}
  .card-c .il{width:min(100%,280px);aspect-ratio:3/2;margin:0 auto 22px}
  .card-c h3{font-size:clamp(19px,1.6vw,23px);line-height:1.57;font-weight:600}
  .card-c p{font-size:16px;margin-top:14px;line-height:27px;padding-bottom:16px;border-bottom:1px solid var(--line);margin-inline:auto;width:100%}
  .card-c .lk{position:absolute;left:32px;right:32px;bottom:0;height:70px;margin:0;justify-content:space-between;font-size:15px}
  .card-c{padding-bottom:70px}
}

/* アプローチ */
.approach{padding:57px 20px 0;display:flex;flex-direction:column}
.approach .t{display:contents}
.approach .eyebrow{order:1;margin-bottom:20px}
.approach h2{order:2;margin-bottom:27px}
.approach .photo{order:3;aspect-ratio:352/221;margin:0 -1px}
.approach .t>p:not(.eyebrow){order:4}
.approach .rule-s{order:5}
.approach p:not(.eyebrow){font-size:15px;line-height:29.5px;color:var(--gray);margin-top:22px}
.approach p.s{font-size:13px;margin-top:11px;line-height:24.7px}
@media(min-width:1024px){
  .approach{background:var(--pale);padding:0 var(--pad) 64px;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,480px);gap:clamp(40px,4.4vw,64px);align-items:stretch;margin-top:-1px}
  .approach .t{display:block;grid-column:1;grid-row:1}
  .approach .photo{grid-column:2;grid-row:1;aspect-ratio:auto;margin:0;min-height:360px}
  .approach .eyebrow{margin-bottom:24px;height:13px;line-height:13px}
  .approach h2{margin-bottom:28px}
  .approach .t>p:not(.eyebrow){font-size:17px;line-height:31px;margin:0}
  .approach .rule-s{margin-top:30px;border-top:1px solid var(--line);padding-top:18px;max-width:565px}
  .approach p.s{font-size:15px;line-height:28px;margin:0}
  .approach .t>p.eyebrow{margin:0 0 24px}
}

/* PC: 相談帯 */
.contact-mid{display:none}
@media(min-width:1024px){
  .contact-mid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:0;margin:0 var(--pad);min-height:372px;position:relative;border-top:1px solid var(--line)}
  .contact-mid::before{content:"";position:absolute;left:0;top:-2px;width:clamp(40px,3.6vw,52px);height:3px;background:var(--blue)}
  .contact-mid .l{padding:42px 40px 0 0}
  .contact-mid .r{padding:44px 0 0 clamp(24px,4.44vw,64px);position:relative}
  .contact-mid .r::before{content:"";position:absolute;left:0;top:49px;height:271px;width:1px;background:var(--line)}
  .contact-mid .eyebrow{margin:0 0 32px;height:13px;line-height:13px}
  .contact-mid h2{font-size:clamp(24px,2.22vw,32px);font-weight:600;line-height:1.5;margin:0 0 28px}
  .contact-mid .l p:not(.eyebrow){font-size:18px;line-height:34px;color:var(--gray);margin:0}
  .contact-mid .free{margin-top:37px!important;font-size:17px!important;font-weight:600;color:var(--blue)!important;line-height:26px!important}
  .contact-mid .lab{font-size:14px;color:var(--gray);margin:0;font-weight:600;line-height:24px}
  .contact-mid .tel{font-size:42px;color:var(--blue);margin-top:7px;display:inline-flex}
  .contact-mid .hrs{font-size:14px;color:var(--gray);margin:14px 0 0;line-height:24px}
  .contact-mid .btn{margin-top:42px;height:64px;width:416px;max-width:100%;padding:0 24px;font-size:17px}
  .contact-mid .sm{font-size:13px;color:var(--gray);margin:16px 0 0;line-height:22px}
}

/* サービス */
.services{padding:114px 20px 55px}
.services .eyebrow{margin-bottom:20px}
.services h2{margin-bottom:0}
.svc{border-top:2px solid var(--blue);margin-top:35px}
.svc:first-of-type{margin-top:30px}
.svc .photo{aspect-ratio:352/226;margin:16px -1px 0}
.svc .ttl{display:flex;align-items:center;gap:14px;margin-top:22px}
.svc .no{background:#E5EEF8;color:var(--blue);font:500 14px/1 var(--latin);width:36px;height:34px;display:grid;place-items:center}
.svc h3{font-size:24px;font-weight:600;line-height:1.4}
.svc .sub{font-size:18px;line-height:30px;font-weight:600;margin-top:14px}
.svc .num{display:none}
.svc details{margin-top:16px;border-top:1px solid var(--line)}
.svc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:56px;font-size:15px;font-weight:500}
.svc summary::-webkit-details-marker{display:none}
.svc summary::after,.faq-item summary::after{content:"";width:14px;height:14px;background:linear-gradient(var(--blue),var(--blue)) center/100% 1.6px no-repeat,linear-gradient(var(--blue),var(--blue)) center/1.6px 100% no-repeat}
.svc details[open] summary::after,.faq-item[open] summary::after{background:linear-gradient(var(--blue),var(--blue)) center/100% 1.6px no-repeat}
.svc .d p{font-size:15px;line-height:1.9;color:var(--gray);margin:0 0 8px}
.svc .d .ex{font-size:13px;color:var(--navy);margin-top:12px;line-height:1.8}
.svc .go{display:flex;align-items:center;justify-content:space-between;margin-top:18px;height:59px;padding:0 22px 0 20px;border:1px solid var(--blue);color:var(--blue);font-size:15px;font-weight:600}
@media(min-width:1024px){
  .services{padding:121px var(--pad) 120px}
  .services .eyebrow{margin-bottom:36px}
  .services h2{margin-bottom:26px}
  .services .intro{font-size:17px;color:var(--gray);margin-bottom:31px;line-height:1.9}
  .svc{border-top:1px solid var(--line);margin-top:0;padding:40px 0 0;position:relative;display:grid;grid-template-columns:clamp(240px,25vw,360px) minmax(0,1fr);column-gap:clamp(32px,3.9vw,56px);min-height:390px;align-content:start}
  .svc::before{content:"";position:absolute;left:0;top:-2px;width:clamp(40px,3.6vw,52px);height:3px;background:var(--blue)}
  .svc:last-of-type{border-bottom:0}
  .svc:first-of-type{margin-top:0}
  .svc .photo{grid-row:1/3;margin:0;height:290px;aspect-ratio:auto}
  .svc .ttl{margin-top:-1px}
  .svc .ttl .no{display:none}
  .svc h3{font-size:clamp(26px,2.3vw,33px);font-weight:600;color:var(--blue);line-height:1.3;margin-top:-1px}
  .svc .num{display:block;position:absolute;right:0;top:36px;font:200 37px/1 var(--latin);color:var(--num)}
  .svc .sub{font-size:clamp(17px,1.46vw,21px);font-weight:600;margin-top:22px;line-height:1.5}
  .svc details{border:0;margin-top:0}
  .svc summary{display:none}
  .svc .d p{font-size:17px;line-height:34px;margin:0}
  .svc .d p br{display:none}
  .svc .d p:first-child{margin-top:12px}
  .svc .d .ex{font-size:14px;margin-top:22px;color:var(--navy);line-height:1.8}
  .svc .go{border:0;border-bottom:1.5px solid #6D9AD0;width:312px;height:50px;margin-top:28px;padding:0;font-size:16px}
  .svc .go:hover{border-color:var(--blue)}
  .svc .go .arw{width:24px}
}

/* 会社紹介 */
.about{background:var(--pale);padding:57px 20px 24px;display:flex;flex-direction:column}
.about .head{display:contents}
.about .head>div{order:1}
.about .eyebrow{margin-bottom:20px}
.about h2{margin-bottom:29px}
.about .photo{order:2;aspect-ratio:352/163;margin:0 -1px}
.about .lead{order:3;font-size:16px;line-height:29.5px;color:var(--gray);margin-top:22px}
.feats{order:4;margin-top:33px;border-top:1px solid var(--line)}
.feat{display:grid;grid-template-columns:36px 1fr;gap:20px;padding:23px 0 25px;border-bottom:1px solid var(--line)}
.feat .ico{width:36px;height:38px;color:var(--blue);stroke-width:1.9}
.feat h3{font-size:17px;font-weight:600;line-height:25.5px}
.feat p{font-size:14px;line-height:26.6px;color:var(--gray);margin-top:11px}
.feat p br{display:none}
@media(min-width:1024px){
  .about{padding:90px var(--pad) 120px;min-height:1330px;position:relative;display:block}
  .about::before{content:"";position:absolute;left:var(--pad);right:var(--pad);top:0;height:1px;background:var(--line)}
  .about::after{content:"";position:absolute;left:var(--pad);top:-1px;width:clamp(40px,3.6vw,52px);height:3px;background:var(--blue)}
  .about .head>div{order:0}
  .about .head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,640px);gap:0 24px;align-items:start}
  .about .eyebrow{margin:0 0 24px;height:13px;line-height:13px}
  .about .h2{font-size:clamp(26px,2.57vw,37px);line-height:1.54}
  .about .lead{font-size:17px;line-height:29px;margin:34px 0 0}
  .about .lead span{display:block;text-wrap:balance}
  .about .lead span+span{margin-top:14px}
  .about .photo{aspect-ratio:auto;height:590px;margin:34px 0 0}
  .feats{border:0;margin-top:64px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4.4vw,64px)}
  .feat{display:block;padding:0;border:0;border-top:1px solid var(--line);position:relative;padding-top:24px}
  .feat::before{content:"";position:absolute;left:0;top:-2px;width:38px;height:3px;background:var(--blue)}
  .feat .ico{width:48px;height:60px;display:block;margin-bottom:20px}
  .feat h3{font-size:clamp(19px,1.7vw,24px);line-height:1.5}
  .feat p{font-size:16px;line-height:33px;margin-top:14px}
  .feat h3{line-height:1.5}
  .feat p br{display:inline}
}

/* 事例 */
.cases{padding:64px 20px 0;background:var(--pale)}
.cases .eyebrow{margin-bottom:19px}
.cases h2{margin-bottom:27px}
.case-card{background:#fff;padding:25px 22px 24px;margin-top:17px}
.case-card:first-of-type{margin-top:0}
.case-card p br{display:none}
.case-card .lb{font:500 12px/1 var(--latin);letter-spacing:.06em;color:var(--blue);font-weight:600}
.case-card h3{font-size:21px;font-weight:600;margin-top:16px;line-height:31.5px}
.case-card p:not(.lb):not(.lb-pc):not(.w):not(.price){font-size:15px;line-height:28px;color:var(--gray);margin-top:14.5px}
.case-card .meta{display:flex;justify-content:space-between;align-items:flex-start;border-top:1px solid var(--line);margin-top:21px;padding-top:19px;gap:10px}
.case-card .meta .w{font-size:13px;color:var(--gray);line-height:28.5px;margin:0}
.case-card .meta .w b{display:block;font-weight:400;font-size:13.5px;color:var(--ink)}
.case-card .price{text-align:right;color:var(--blue);font-size:26px;font-weight:600;line-height:28.5px;white-space:nowrap;margin:0}
.case-card .price small{display:block;font-size:11px;font-weight:300;color:var(--gray);line-height:28.5px;margin:0}
.cases .fn{font-size:13px;line-height:23px;color:var(--gray);margin-top:18px;padding-bottom:57px}
.cases .head-link,.cases .cat-links{display:none}
.cases .lb-pc{display:none}
@media(min-width:1024px){
  .cases{background:#fff;padding:0 var(--pad) 120px;position:relative}
  .cases::before{content:"";position:absolute;left:var(--pad);right:var(--pad);top:0;height:1px;background:var(--line)}
  .cases::after{content:"";position:absolute;left:var(--pad);top:-1px;width:clamp(40px,3.6vw,52px);height:3px;background:var(--blue)}
  .cases .top{display:flex;justify-content:space-between;align-items:flex-end;padding-top:140px}
  .cases .eyebrow{position:absolute;top:132px;margin:0}
  .cases h2{margin:38px 0 0;font-size:clamp(26px,2.36vw,34px)}
  .cases .head-link{display:flex;width:clamp(240px,21.25vw,306px);margin-bottom:-4px}
  .cases .grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3.33vw,48px);margin-top:70px}
  .case-card{margin:0;padding:27px 28px 0;height:288px;position:relative;background:var(--pale)}
  .case-card .lb{display:none}
  .cases .case-card p.lb-pc{display:block;font-size:13px;color:var(--blue);font-weight:600;line-height:1;margin:0}
  .case-card h3{font-size:24px;font-weight:600;margin-top:22px;line-height:1.4}
  .case-card p:not(.lb):not(.lb-pc):not(.w):not(.price){font-size:16px;line-height:34px;margin-top:14px}
  .case-card p br{display:inline}
  .case-card .meta{position:absolute;left:28px;right:28px;bottom:0;margin:0;padding:0;height:92px;align-items:center;border-top:1px solid var(--line)}
  .case-card .meta .w{font-size:14px;display:flex;gap:8px;align-self:flex-start;margin-top:26px;line-height:25px}
  .case-card .meta .w b{display:inline;font-size:14px;color:var(--gray);font-weight:300}
  .case-card .price{font-size:29px;margin-top:4px;line-height:1.2}
  .case-card .price small{font-size:12px;margin-top:6px;line-height:1.5}
  .cases .fn{font-size:13px;margin:14px 0 0;padding:0}
  .cat-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4.4vw,64px);margin-top:44px}
  .cases .cat-links{display:grid}
}

/* 進め方 */
.before{padding:57px 20px 56px}
.before .eyebrow{margin-bottom:20px}
.before h2{margin-bottom:29px}
.b-item{display:grid;grid-template-columns:36px 1fr;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}
.b-item:last-of-type{border-bottom:0}
.b-item:first-of-type{border-top:0}
.b-item .ico{width:36px;height:36px;color:var(--blue);stroke-width:1.9;margin-top:8px}
.b-item h3{font-size:17px;font-weight:600;line-height:25.5px}
.b-item p{font-size:15px;line-height:27.5px;color:var(--gray);margin-top:10.5px}
.b-item p br{display:none}
.before .btn-pill{max-width:none;margin-top:24px;height:58px;padding:0 6px 0 25px;font-size:16px}
.before .btn-pill .circ{width:38px;height:38px}
.before .desc{display:none}
.before .btn-sq{display:none}
@media(min-width:1024px){
  .before{background:var(--pale);padding:66px var(--pad) 0;min-height:543px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,610px);gap:clamp(32px,4vw,60px);align-content:start}
  .before .eyebrow{margin-bottom:34px}
  .before h2{font-size:clamp(26px,2.36vw,34px);line-height:61px;margin:0}
  .before .desc{display:block;font-size:17px;line-height:37px;color:var(--gray);margin-top:34px}
  .before .btn-sq{display:flex;margin-top:56px;width:326px;height:73px;font-size:17px;padding:0 24px}
  .before .items{padding-top:0;margin-top:0}
  .b-item{grid-template-columns:66px 1fr;gap:34px;padding:17px 0 17px 0;border-bottom:1px solid var(--line);min-height:142px;align-content:center;align-items:center;margin-top:0}
  .b-item:first-child{padding-top:17px}
  .b-item:last-child{border:0}
  .b-item .ico{width:66px;height:68px;margin-top:0;margin-left:0}
  .b-item h3{font-size:21px;font-weight:600;line-height:1.5}
  .b-item p{font-size:16px;line-height:32px;margin-top:12px}
  .b-item p br{display:inline}
  .before .btn-pill{display:none}
}

/* FAQ */
.faq{padding:56px 20px 57px}
.faq .eyebrow{margin-bottom:20px}
.faq h2{margin-bottom:30px}
.faq .all{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--blue);padding-right:14px}
.faq .all.s{margin:0}
.faq-list{margin-top:39px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:28px 1fr 14px;align-items:start;gap:0;padding:22px 0 22px;font-size:16px;font-weight:500;line-height:23px;min-height:56px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"Q";font:500 17px/23px var(--latin);color:var(--blue)}
.faq-item summary::after{margin-top:5px}
.faq-item .a{padding:0 30px 24px 28px;font-size:14px;line-height:1.95;color:var(--gray)}
.faq .pc-side{display:none}
.faq .all.p{display:none}
@media(min-width:1024px){
  .faq{padding:73px var(--pad) 0;min-height:1589px;position:relative;display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(40px,4vw,56px);align-content:start}
  .faq::before{content:"";position:absolute;left:var(--pad);right:var(--pad);top:73px;height:1px;background:var(--line)}
  .faq::after{content:"";position:absolute;left:var(--pad);top:72px;width:clamp(40px,3.6vw,52px);height:3px;background:var(--blue)}
  .faq .left{padding-top:64px}
  .faq .eyebrow{margin-bottom:34px}
  .faq h2{font-size:clamp(26px,2.29vw,33px);line-height:1.8;margin:0}
  .faq .pc-side{display:block;font-size:16px;color:var(--gray);margin-top:58px}
  .faq .all{display:none}
  .faq .all.p{display:flex;width:312px;margin-top:64px;font-weight:600;font-size:16px;border-bottom:1.5px solid #6D9AD0;padding:16px 0 15px}
  .faq-list{margin:64px 0 0}
  .faq-item summary{grid-template-columns:32px 1fr;padding:32px 0 0;cursor:default;font-size:19px;font-weight:600;line-height:32px;min-height:0;pointer-events:none}
  .faq-item summary::before{font-size:19px;line-height:32px}
  .faq-item summary::after{display:none}
  .faq-item .a{padding:15px 0 33px 32px;font-size:16px;line-height:32px}
  .faq-item{border-bottom:1px solid var(--line)}
  .faq-item:first-child summary{padding-top:0}
  .faq-item:last-child{border:0}
}
