@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/notosansjp-400.woff2') format('woff2');}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/notosansjp-700.woff2') format('woff2');}
@font-face{font-family:'Noto Serif JP';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/notoserifjp-500.woff2') format('woff2');}
@font-face{font-family:'Noto Serif JP';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/notoserifjp-600.woff2') format('woff2');}

:root{ --navy:#21366e; --deep:#002870; --ink:#1f2330; --sub:#555d70; --gray:#f4f5f8; --beige:#f3f0ea; --line:#dfe3ea; --note:#6b7285; --accent:#c6264e; }
*{ box-sizing:border-box; }
html{ scroll-behavior:auto; }
body{ margin:0; font-family:"Noto Sans JP",-apple-system,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif; color:var(--ink); background:#fff; font-size:16px; line-height:1.9; letter-spacing:.03em; -webkit-text-size-adjust:100%; }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
.serif{ font-family:"Noto Serif JP","Hiragino Mincho ProN",serif; font-weight:500; }
.wrap{ max-width:1120px; margin:0 auto; padding:0 24px; }
.sec{ padding:80px 0; }
.eyebrow{ display:block; font-size:13px; letter-spacing:.24em; color:var(--sub); text-align:center; margin-bottom:14px; }
.h2{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:28px; line-height:1.55; color:var(--navy); text-align:center; margin:0; letter-spacing:.06em; }
.rule{ width:48px; height:1px; background:var(--navy); margin:22px auto 0; }
.lead{ text-align:center; font-size:16px; margin:24px auto 0; max-width:40em; }
.note{ font-size:11px; color:var(--note); line-height:1.7; margin:14px 0 0; letter-spacing:0; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:12px; background:var(--navy); color:#fff; text-decoration:none; font-weight:700; font-size:16px; padding:18px 36px; border-radius:100px; min-width:280px; transition:opacity .2s; }
.btn:hover{ opacity:.85; }
.btn.line{ background:#fff; color:var(--navy); border:1.5px solid var(--navy); }
.btn .arr{ font-size:12px; }


.fv{ position:relative; background:#fff; }
.fv .ttl{ text-align:center; padding:36px 20px 26px; }
.fv .ttl .sub{ display:block; margin-top:10px; font-family:"Noto Serif JP",serif; font-weight:500; font-size:17px; letter-spacing:.12em; color:var(--navy); }
.fv .ttl b{ display:block; font-family:"Noto Serif JP",serif; font-weight:600; font-size:50px; letter-spacing:.14em; line-height:1.2; color:var(--navy); margin:0; }
.fv .photo{ aspect-ratio:4/3; overflow:hidden; }
.fv .photo img{ width:100%; height:100%; object-fit:cover; }
.fv .copy{ text-align:center; padding:34px 20px 20px; }
.fv h1{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:28px; line-height:1.6; color:var(--navy); margin:0; letter-spacing:.06em; }
.pts{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; max-width:720px; margin:34px auto 0; }
.pts div{ border-top:1px solid var(--navy); padding:16px 2px 0; font-size:14px; color:var(--sub); line-height:1.55; }
.pts b{ display:block; font-family:"Noto Serif JP",serif; font-weight:500; font-size:21px; color:var(--navy); margin-bottom:6px; }
.fv .btn{ margin-top:26px; }

.intro .grid{ display:grid; gap:36px; }
.intro h2{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:26px; line-height:1.7; color:var(--navy); margin:0; letter-spacing:.06em; }
.intro p{ margin:22px 0 0; font-size:16px; line-height:2.1; }
.intro .pics{ display:grid; grid-template-columns:1fr; }
.intro .pics img{ width:100%; height:auto; object-fit:cover; aspect-ratio:3/2; }

.cat{ background:var(--beige); }
.cat .box{ display:grid; gap:26px; align-items:center; padding:44px 0; }
.cat .covers{ position:relative; height:220px; max-width:360px; margin:0 auto; width:100%; }
.cat .covers img{ position:absolute; width:44%; aspect-ratio:210/297; object-fit:cover; box-shadow:0 12px 28px rgba(0,0,0,.28); border-radius:2px; }
.cat .covers img:nth-child(1){ left:0; top:26px; }
.cat .covers img:nth-child(2){ left:28%; top:0; z-index:2; }
.cat .covers img:nth-child(3){ left:56%; top:18px; z-index:1; }
.cat .t small{ display:block; color:var(--sub); font-size:13px; letter-spacing:.1em; }
.cat .t h3{ margin:6px 0 10px; font-size:22px; color:var(--navy); line-height:1.5; }
.cat .t p{ margin:0 0 20px; font-size:15px; }

.worry{ background:var(--gray); }
.cards4{ list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cards4 li{ background:#fff; border-radius:14px; padding:20px 12px 20px; text-align:center; font-size:15px; font-weight:700; color:var(--navy); line-height:1.6; }
.cards4 li img{ width:68%; max-width:150px; margin:0 auto 12px; mix-blend-mode:multiply; }
.turn{ text-align:center; margin:44px 0 0; }
.turn i{ display:block; width:1px; height:44px; background:var(--navy); margin:0 auto 16px; }
.turn p{ margin:0; font-family:"Noto Serif JP",serif; font-weight:500; font-size:24px; color:var(--navy); line-height:1.6; }

.how .grid{ display:grid; gap:30px; align-items:center; margin-top:40px; }
.fig5{ position:relative; width:min(56%,300px); margin:0 0 0 8%; }
.fig5 img{ width:100%; }
.fig5 .zl{ position:absolute; left:calc(100% + 12px); width:3px; border-radius:2px; }
.fig5 .zl.own{ background:#21366e; } .fig5 .zl.rent{ background:#b9c4d8; } .fig5 .zl.shop{ background:#8fa88f; }
.fig5 .fl{ position:absolute; left:calc(100% + 24px); transform:translateY(-50%); white-space:nowrap; font-family:"Noto Serif JP",serif; font-weight:600; font-size:18px; line-height:1.25; }
.fig5 .fl small{ display:block; font-family:"Noto Sans JP",sans-serif; font-weight:400; font-size:13px; color:var(--sub); margin-top:4px; }
.fig5 .fl.own{ color:#21366e; } .fig5 .fl.rent{ color:#3d4f7c; } .fig5 .fl.shop{ color:#5f7a5f; }
.how .txt h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:24px; color:var(--navy); margin:0 0 14px; line-height:1.6; }
.how .txt p{ margin:0; }
.how .txt ul{ list-style:none; padding:0; margin:22px 0 0; display:grid; gap:10px; }
.how .txt li{ display:flex; gap:12px; align-items:center; font-size:15px; }
.how .txt li i{ width:14px; height:14px; border-radius:3px; flex:0 0 14px; }

.feat-block{ position:relative; margin:56px 0 0; }
.feat-block .ph{ aspect-ratio:4/3; overflow:hidden; }
.feat-block .ph img{ width:100%; height:100%; object-fit:cover; }
.feat-block .card{ position:relative; background:#fff; margin:-40px 16px 0; padding:26px 22px 4px; box-shadow:0 10px 30px rgba(0,40,112,.08); }
.feat-block .tag{ display:inline-block; font-size:13px; color:var(--navy); border-left:3px solid var(--navy); padding-left:10px; letter-spacing:.1em; }
.feat-block h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:24px; line-height:1.6; color:var(--navy); margin:10px 0 14px; }
.feat-block p{ margin:0 0 22px; }

.calc2{ background:var(--gray); border-radius:16px; padding:26px 20px 20px; margin:30px 0 0; }
.c2-ttl{ margin:0 0 16px; font-family:"Noto Serif JP",serif; font-weight:500; font-size:19px; color:var(--navy); line-height:1.5; }
.c2-ttl small{ font-size:12px; color:var(--sub); font-family:"Noto Sans JP",sans-serif; }
.c2-bar{ display:flex; height:84px; border-radius:10px; overflow:hidden; }
.c2-bar div{ display:flex; flex-direction:column; justify-content:center; align-items:center; line-height:1.2; color:#fff; }
.c2-bar .rent{ background:var(--navy); } .c2-bar .you{ background:var(--accent); }
.c2-bar b{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:26px; } .c2-bar .you b{ font-size:20px; }
.c2-bar b small{ font-size:13px; font-family:"Noto Sans JP",sans-serif; }
.c2-bar span{ font-size:13px; margin-top:4px; }
.c2-sum{ text-align:right; margin:8px 0 0; font-size:14px; color:var(--sub); }
.c2-sum b{ font-family:"Noto Serif JP",serif; font-size:22px; color:var(--navy); }
.c2-q{ margin:26px 0 12px; text-align:center; font-size:17px; font-weight:700; color:var(--navy); }
.c2-vs{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.c2-vs > div{ background:#fff; border-radius:12px; padding:18px 8px; text-align:center; line-height:1.45; }
.c2-vs span{ display:block; font-size:13px; color:var(--sub); margin-bottom:6px; }
.c2-vs b{ display:block; font-family:"Noto Serif JP",serif; font-weight:500; font-size:24px; color:var(--sub); }
.c2-vs b small{ font-size:13px; }
.c2-vs em{ display:block; font-style:normal; font-size:13px; color:var(--sub); margin-top:4px; }
.c2-vs .heiyo{ border:2px solid var(--navy); }
.c2-vs .heiyo span,.c2-vs .heiyo em{ color:var(--navy); }
.c2-vs .heiyo b{ color:var(--navy); font-size:26px; font-weight:600; }
.c2-after{ margin:20px 0 0; text-align:center; font-size:16px; }
.c2-after b{ color:var(--navy); }
.fam{ margin:30px 0 0; }

.doubt{ background:var(--deep); color:#fff; }
.doubt .h2{ color:#fff; } .doubt .eyebrow{ color:#b9c6e0; } .doubt .rule{ background:#b9c6e0; }
.doubt .cards4 li{ font-size:15px; }
.doubt .cards4 li .ic{ display:block; width:96px; height:96px; margin:0 auto 12px; border-radius:50%; background:#f4f6fa; overflow:hidden; }
.doubt .cards4 li .ic img{ width:100%; max-width:none; height:100%; object-fit:contain; padding:8px; margin:0; }
.doubt .ans{ text-align:center; margin:48px 0 0; }
.doubt .ans i{ display:block; width:2px; height:44px; background:#b9c6e0; margin:0 auto 18px; }
.doubt .ans p{ margin:0; font-family:"Noto Serif JP",serif; font-weight:500; font-size:22px; line-height:1.6; }
.doubt .ans strong{ display:block; font-size:38px; font-weight:700; line-height:1.35; margin-top:6px; letter-spacing:.06em; }

.reasons{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:40px 0 0; }
.reasons a{ position:relative; display:block; text-decoration:none; background:#5e7091; color:#fff; overflow:hidden; }
.reasons a .ph{ aspect-ratio:4/3; overflow:hidden; } .reasons a img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.reasons a:hover img{ transform:scale(1.04); }
.reasons .no{ position:absolute; left:50%; top:0; transform:translate(-50%,-2px); background:#e8edf6; color:var(--navy); width:46px; height:46px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:10px; line-height:1.1; }
.reasons .no b{ font-family:"Noto Serif JP",serif; font-size:18px; }
.reasons .t{ padding:14px 10px 16px; text-align:center; background:var(--navy); }
.reasons .t small{ display:block; font-size:12px; opacity:.85; letter-spacing:.1em; }
.reasons .t b{ display:block; font-size:15px; line-height:1.5; margin-top:4px; }
.fdet{ margin:64px 0 0; }
.fdet .ph{ aspect-ratio:16/10; overflow:hidden; } .fdet .ph img{ width:100%; height:100%; object-fit:cover; }
.fdet .body{ padding:28px 0 0; }
.fdet .no{ font-size:13px; letter-spacing:.2em; color:var(--sub); }
.fdet h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:24px; line-height:1.6; color:var(--navy); margin:8px 0 14px; }
.fdet p{ margin:0; }
.flow-ttl{ text-align:center; font-family:"Noto Serif JP",serif; font-weight:500; font-size:17px; color:var(--navy); margin:30px 0 10px; }
.flow{ display:block; width:100%; max-width:560px; margin:0 auto; height:auto; }
.flow text{ font-family:"Noto Sans JP",sans-serif; }
.duty{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:26px auto 0; max-width:480px; }
.duty div{ aspect-ratio:1; border-radius:50%; border:1.5px solid var(--navy); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; font-size:14px; font-weight:700; color:var(--navy); line-height:1.4; padding:8px 6px; background:#fff; gap:4px; }
.duty div img{ width:50%; mix-blend-mode:multiply; }
.duty div:nth-child(even){ background:#f4f6fa; }
.floors{ display:flex; justify-content:center; align-items:flex-end; gap:6px; margin:28px auto 0; padding-bottom:24px; }
.floors i{ position:relative; display:block; width:32px; background:var(--navy); border-radius:3px 3px 0 0; }
.floors i.off{ background:#dbe3f1; }
.floors i b{ position:absolute; left:0; right:0; top:100%; margin-top:5px; text-align:center; font-size:13px; font-weight:500; color:var(--sub); font-style:normal; }
.floors i.on b{ color:var(--navy); font-weight:700; }
.floors-cap{ text-align:center; font-size:15px; color:var(--sub); margin:6px 0 0; }

.life{ background:#fff; }
.lgrid{ display:grid; grid-template-columns:1fr 1fr; gap:26px 14px; margin:44px 0 0; }
.lgrid figure{ margin:0; }
.lgrid .ph{ aspect-ratio:4/3; overflow:hidden; } .lgrid img{ width:100%; height:100%; object-fit:cover; }
.lgrid figcaption{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:17px; color:var(--navy); margin-top:12px; line-height:1.5; }

.trust{ background:var(--gray); }
.tr-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:40px 0 0; }
.tr{ background:#fff; border-radius:14px; padding:24px 8px 20px; text-align:center; }
.tr .k{ display:block; font-size:13px; letter-spacing:.12em; color:var(--sub); margin-bottom:8px; }
.tr .n{ display:block; font-family:"Noto Serif JP",serif; font-weight:500; font-size:30px; line-height:1.15; color:var(--navy); }
.tr .n small{ font-size:14px; }
.tr .d{ display:block; font-size:13px; color:var(--sub); margin-top:10px; line-height:1.55; }

.case .item{ display:grid; gap:0; margin:48px 0 0; background:#fff; border:1px solid var(--line); }
.case .pics{ display:grid; grid-template-columns:1.4fr 1fr; gap:4px; }
.case .pics img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.case .pics img:nth-child(2){ aspect-ratio:auto; }
.case .t{ padding:24px 22px 28px; }
.case .story{ display:inline-block; font-size:13px; letter-spacing:.1em; color:var(--navy); border:1px solid var(--navy); border-radius:100px; padding:3px 14px; }
.case .wish{ margin:16px 0 0; font-size:14px; color:var(--sub); }
.case .wish b{ display:block; font-family:"Noto Serif JP",serif; font-weight:500; font-size:21px; color:var(--navy); margin-top:6px; line-height:1.6; }
.case .got{ margin:16px 0 0; padding-left:16px; border-left:2px solid var(--navy); font-size:15.5px; }
.case .more{ text-align:center; margin:40px 0 0; }

.set{ background:var(--deep); color:#fff; }
.set .h2{ color:#fff; } .set .eyebrow{ color:#b9c6e0; }
.set .items{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:640px; margin:40px auto 0; }
.set .items div{ text-align:center; font-size:13px; line-height:1.5; color:#d9e2f3; }
.set .items img{ width:100%; aspect-ratio:210/297; object-fit:cover; box-shadow:0 12px 28px rgba(0,0,0,.4); margin-bottom:12px; border-radius:2px; }
.set .items b{ display:block; color:#fff; font-size:14px; }
.set .btns{ display:grid; gap:14px; justify-items:center; margin:40px 0 0; }
.set .btn{ background:#fff; color:var(--navy); width:100%; max-width:420px; }
.set .btn.line{ background:transparent; color:#fff; border-color:#fff; }
.set .small{ font-size:12px; color:#b9c6e0; text-align:center; margin:22px 0 0; }

.m2{ margin:90px 0 0; background:#fff; padding:30px 20px; }
.m2 .tag{ display:inline-block; font-size:13px; color:var(--navy); border-left:3px solid var(--navy); padding-left:10px; letter-spacing:.1em; }
.m2 h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:24px; line-height:1.6; color:var(--navy); margin:10px 0 14px; }
.m2 p{ margin:0; }
.m2 .ill{ margin-top:24px; }
@media (min-width:900px){ .m2{ display:grid; grid-template-columns:1fr; gap:36px; padding:50px 60px 54px; } .m2 h3{ font-size:28px; } .m2 .ill{ margin:0; } .m2 .card{ max-width:760px; margin:0 auto; text-align:center; } .m2 .card h3 br{ display:none; } .fut{ max-width:820px; margin:0 auto; padding:34px 28px 28px; gap:14px; } .fut .fs .d{ white-space:nowrap; } .fut-cap{ font-size:16px; margin-top:16px; } }

@media (max-width:899px){
  .pts{ gap:6px; } .pts div{ font-size:12px; letter-spacing:0; } .pts b{ font-size:18px; letter-spacing:0; }
  .cards4 li{ font-size:14px; letter-spacing:0; }
}

.f1wide .flowbox{ margin-top:30px; }
@media (min-width:900px){ .f1wide{ grid-column:1/-1; } .f1wide .flowbox{ padding:36px 50px 40px; margin-top:10px; } .fb-ttl{ font-size:20px; } }

.f4{ margin:100px 0 0; }
.f4-hero{ position:relative; }
.f4-hero img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.f4-card{ position:relative; background:#fff; margin:-50px 16px 0; padding:28px 22px 24px; box-shadow:0 10px 30px rgba(0,40,112,.1); }
.f4-card .no{ font-size:13px; letter-spacing:.2em; color:var(--sub); }
.f4-card h3{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:26px; line-height:1.6; color:var(--navy); margin:8px 0 14px; }
.f4-card p{ margin:0; }
.f4-sub{ text-align:center; font-family:"Noto Serif JP",serif; font-weight:500; font-size:19px; color:var(--navy); margin:56px 0 20px; }
.f4-steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; counter-reset:s; }
.f4-steps li{ position:relative; background:var(--gray); border-radius:14px; padding:22px 8px 18px; text-align:center; counter-increment:s; }
.f4-steps li::before{ content:counter(s); position:absolute; left:10px; top:8px; font-family:"Noto Serif JP",serif; font-size:15px; color:#9fb0cf; }
.f4-steps .ic{ display:block; width:52px; height:52px; margin:0 auto 10px; }
.f4-steps b{ display:block; font-size:15px; color:var(--navy); line-height:1.4; }
.f4-steps em{ display:block; font-style:normal; font-size:12.5px; color:var(--sub); margin-top:6px; line-height:1.5; }
.f4-val{ display:grid; gap:18px; margin:30px 0 0; align-items:center; }
.f4-val .big{ background:var(--navy); color:#fff; border-radius:16px; padding:28px 16px; text-align:center; line-height:1.3; }
.f4-val .big span{ display:block; font-size:14px; color:#cdd7ea; }
.f4-val .big b{ display:block; font-family:"Noto Serif JP",serif; font-weight:500; font-size:64px; margin:6px 0 2px; }
.f4-val .big b small{ font-size:20px; }
.f4-val .big em{ font-style:normal; font-size:14px; color:#cdd7ea; }
.f4-val ul{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.f4-val li{ border-left:3px solid var(--navy); padding:2px 0 2px 16px; font-size:15px; }
.f4-val li b{ display:block; font-size:17px; color:var(--navy); margin-bottom:4px; }
@media (min-width:900px){
  .f4-hero img{ aspect-ratio:21/9; }
  .f4-card{ position:absolute; left:40px; bottom:40px; width:44%; margin:0; padding:40px 40px 34px; }
  .f4-card h3{ font-size:32px; }
  .f4-sub{ font-size:22px; margin-top:70px; }
  .f4-steps{ gap:20px; max-width:900px; margin:0 auto; }
  .f4-steps li{ padding:30px 16px 26px; } .f4-steps .ic{ width:64px; height:64px; } .f4-steps b{ font-size:18px; } .f4-steps em{ font-size:14px; }
  .f4-val{ grid-template-columns:320px 1fr; gap:50px; max-width:900px; margin:40px auto 0; }
  .f4 .note{ max-width:900px; margin-left:auto; margin-right:auto; }
}

section[id], [id^="f"], #top{ scroll-margin-top:84px; }
@media (min-width:900px){ section[id], [id^="f"], #top{ scroll-margin-top:100px; } }



@media (max-width:899px){
  .cat .box{ text-align:center; padding:40px 0 44px; gap:22px; }
  .cat .covers{ height:auto; max-width:360px; display:flex; justify-content:center; align-items:flex-end; gap:12px; }
  .cat .covers img{ position:static; width:30%; box-shadow:0 8px 20px rgba(0,0,0,.22); }
  .cat .covers img:nth-child(2){ width:34%; }
  .cat .t h3{ font-size:22px; }
  .cat .t p br{ display:none; }
}

@media (max-width:899px){
  .intro{ padding-top:56px; padding-bottom:56px; }
  .intro .grid{ gap:22px; }
  .intro .pics{ margin:0 -24px; grid-template-columns:1fr; }
  .intro .pics img{ aspect-ratio:4/3; }
  .intro h2{ font-size:24px; }
  .intro p{ margin-top:14px; font-size:15px; line-height:1.9; }
}
@media (min-width:900px){ .intro .grid{ grid-template-columns:1.6fr 1fr; } .intro .pics{ order:0; } .intro .tx{ order:1; } }

.pu{ display:inline-block; width:0; overflow:visible; }

.mk{ font-style:normal; position:relative; display:inline-block; padding:0 .1em; }
.mk::before{ content:""; position:absolute; left:0; right:0; bottom:.08em; height:.42em; background:#f2d34f; z-index:-1; transform:scaleX(0); transform-origin:left center; transition:transform .7s cubic-bezier(.22,.61,.36,1) .15s; }
.mk.on::before{ transform:scaleX(1); }
.doubt .ans strong{ position:relative; z-index:0; }
.doubt .ans .mk{ color:#fff; }

.fdet .no, .f4-card .no{ display:inline-block; transform-origin:left bottom; transform:scale(2.6); opacity:.35; transition:transform .9s cubic-bezier(.22,.61,.36,1), opacity .9s; will-change:transform; }
.fdet .no.on, .f4-card .no.on{ transform:scale(1); opacity:1; }

.cat{ background:#fff; padding:56px 0; }
.cat .box{ background:var(--beige); border:1px solid #e6e1d6; border-radius:16px; padding:36px 20px 40px; }
.cat .covers img{ box-shadow:0 10px 26px rgba(0,0,0,.28) !important; }
.cat .t small{ color:var(--navy); font-weight:700; font-size:15px; }
@media (min-width:900px){ .cat .t small{ font-size:16px; } }
.cat .t p{ color:var(--ink); }
.worry{ border-top:1px solid var(--line); }
@media (min-width:900px){ .cat{ padding:80px 0; } .cat .box{ padding:56px 48px; } }

.fb .nd .ico{ display:block; width:40px; height:40px; margin:0 auto 8px; }
.fb .nd .ico svg{ width:100%; height:100%; }
@media (min-width:640px){
  .flowbox .fb{ flex-direction:row; align-items:stretch; justify-content:center; gap:0; }
  .flowbox .fb .nd{ max-width:none; flex:1; display:flex; flex-direction:column; justify-content:center; padding:18px 8px; }
  .flowbox .fb .nd{ letter-spacing:0; } .flowbox .fb .nd b{ font-size:15px; white-space:nowrap; } .flowbox .fb .nd span{ font-size:12px; }
  .flowbox .fb .ar{ flex:0 0 88px; padding:0 4px; display:flex; flex-direction:column; justify-content:center; }
  .flowbox .fb .ar b{ font-size:13px; } .flowbox .fb .ar span{ font-size:11px; }
  .flowbox .fb .ar::after{ margin:8px auto 0; border-top:9px solid transparent; border-bottom:9px solid transparent; border-left:12px solid #9fb0cf; border-right:0; }
}
@media (max-width:639px){
  .flowbox{ padding:22px 14px 24px; }
  .fb .nd{ padding:14px 12px; } .fb .nd b{ font-size:16px; }
  .fb .ar{ padding:10px 0 18px; }
}
@media (min-width:900px){ .flowbox .fb .nd .ico{ width:52px; height:52px; } .flowbox .fb .nd b{ font-size:18px; } .flowbox .fb .nd span{ font-size:13px; } .flowbox .fb .ar{ flex-basis:120px; } .flowbox .fb .ar b{ font-size:14px; } .flowbox .fb .ar span{ font-size:12px; } }

.h2.one{ white-space:nowrap; }
@media (max-width:479px){ .h2.one{ font-size:clamp(20px,6.4vw,26px); letter-spacing:.04em; } }
.how-lead{ margin-top:16px; font-size:17px; }
@media (min-width:900px){ .how-lead{ font-size:19px; } .how .eyebrow{ font-size:18px; } }
@media (max-width:899px){ .how .eyebrow{ font-size:16px; } }
@media (max-width:479px){ .how-lead{ font-size:14px; } }

.calc3{ background:var(--gray); border-radius:16px; padding:26px 20px 22px; margin:30px 0 0; }
.c3-ttl{ margin:0 0 18px; text-align:center; font-family:"Noto Serif JP",serif; font-weight:500; font-size:20px; line-height:1.6; color:var(--navy); }
.c3-ttl small{ font-size:12px; color:var(--sub); font-family:"Noto Sans JP",sans-serif; }
.c3-rows{ background:#fff; border-radius:12px; overflow:hidden; }
.c3-row{ display:flex; justify-content:space-between; align-items:baseline; padding:14px 18px; border-bottom:1px solid var(--line); font-size:14px; }
.c3-row .v{ white-space:nowrap; } .c3-row .k small{ display:block; font-size:11px; color:var(--sub); }
.c3-row .v b{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:30px; color:var(--navy); margin-right:2px; }
.c3-row.minus .v b{ color:var(--sub); }
.c3-row.total{ border-bottom:0; background:var(--navy); color:#fff; }
.c3-row.total .k{ font-weight:700; font-size:15px; }
.c3-row.total .v b{ color:#fff; font-size:40px; }
.c3-after{ margin:18px 0 0; font-size:14px; line-height:1.9; text-align:center; }
.calc3 .note{ font-size:12px; color:var(--sub); opacity:1; margin-top:14px; }
@media (min-width:900px){ .calc3{ padding:36px 40px 28px; max-width:720px; margin-left:auto; margin-right:auto; } .c3-ttl{ font-size:24px; } .c3-row{ font-size:16px; padding:16px 24px; } .c3-row .v b{ font-size:34px; } .c3-row.total .v b{ font-size:46px; } .c3-after{ font-size:15px; } }
@media (max-width:479px){ .c3-after br{ display:none; } }

@media (min-width:900px){
  body{ font-size:16px; }
  .sec{ padding:120px 0; }
  .h2{ font-size:36px; }
  .eyebrow{ font-size:14px; }
  .hd nav{ display:flex; }
  .hd .wrap{ height:76px; }
  .fv .ttl{ padding:46px 20px 34px; }
  .fv .ttl .sub{ font-size:22px; margin-top:14px; }
  .fv .ttl b{ font-size:72px; }
  .fv .photo{ aspect-ratio:auto; height:min(62vh,640px); }
  .fv h1{ font-size:40px; }
  .pts div{ font-size:15px; } .pts b{ font-size:26px; }
  .intro .grid{ grid-template-columns:1.6fr 1fr; gap:56px; align-items:center; }
  .intro h2{ font-size:34px; }
  .cat .box{ grid-template-columns:1fr 1.1fr; padding:56px 40px; }
  .cat .covers{ height:280px; }
  .cat .t h3{ font-size:26px; }
  .cards4{ grid-template-columns:repeat(4,1fr); gap:18px; }
  .cards4 li{ font-size:16px; padding:28px 16px; }
  .turn p{ font-size:30px; }
  .how .grid{ grid-template-columns:1fr 1fr; gap:60px; }
  .how .txt h3{ font-size:28px; }
  .merit .row{ display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:start; }
  .feat-block .ph{ aspect-ratio:16/10; }
  .feat-block .card{ position:absolute; right:0; bottom:-40px; width:46%; margin:0; padding:40px 40px 18px; }
  .feat-block h3{ font-size:28px; }
  .feat-block.left .card{ right:auto; left:0; }
  .merit .feat-block{ margin-bottom:80px; }
  .calc2{ padding:36px 40px 28px; }
  .doubt .cards4 li{ font-size:16px; }
  .doubt .ans p{ font-size:28px; } .doubt .ans strong{ font-size:52px; }
  .reasons{ grid-template-columns:repeat(4,1fr); gap:16px; }
  .fdet{ display:grid; grid-template-columns:1.15fr 1fr; gap:60px; align-items:start; margin-top:100px; }
  .fdet.rev .ph{ order:2; }
  .fdet .body{ padding-top:10px; }
  .fdet h3{ font-size:30px; }
  .lgrid{ grid-template-columns:repeat(3,1fr); gap:44px 30px; }
  .lgrid figcaption{ font-size:20px; }
  .tr .n{ font-size:40px; } .tr{ padding:36px 12px 30px; }
  .case .item{ grid-template-columns:1.2fr 1fr; }
  .case .t{ padding:40px 44px; align-self:center; }
  .case .wish b{ font-size:24px; }
  .set .btns{ grid-template-columns:auto auto; justify-content:center; }
  .ft{ padding-bottom:30px; }
}

.flowbox{ background:#f4f6fa; border-radius:16px; padding:26px 18px 28px; margin:30px 0 0; }
.fb-ttl{ text-align:center; font-family:"Noto Serif JP",serif; font-weight:500; font-size:18px; color:var(--navy); margin:0 0 22px; }
.fb{ display:flex; flex-direction:column; align-items:center; gap:0; }
.fb .nd{ width:100%; max-width:300px; border-radius:14px; padding:16px 12px; text-align:center; background:#fff; border:1.5px solid #c9d1e0; }
.fb .nd b{ display:block; font-size:17px; color:var(--navy); line-height:1.45; }
.fb .nd span{ display:block; font-size:13px; color:var(--sub); margin-top:6px; }
.fb .nd.phre{ background:var(--navy); border-color:var(--navy); }
.fb .nd.phre b{ color:#fff; } .fb .nd.phre span{ color:#cdd7ea; }
.fb .nd.owner{ border:2px solid var(--navy); }
.fb .ar{ position:relative; padding:12px 0 22px; text-align:center; }
.fb .ar::after{ content:""; display:block; width:0; height:0; margin:6px auto 0; border-left:10px solid transparent; border-right:10px solid transparent; border-top:12px solid #9fb0cf; }
.fb .ar b{ display:block; font-size:14px; color:var(--navy); }
.fb .ar span{ display:block; font-size:12px; color:var(--sub); }
@media (min-width:900px){
  .fb{ flex-direction:row; align-items:stretch; justify-content:center; }
  .fb .nd{ max-width:none; flex:1; display:flex; flex-direction:column; justify-content:center; }
  .fb .ar{ flex:0 0 110px; padding:0 6px; display:flex; flex-direction:column; justify-content:center; }
  .fb .ar::after{ margin:8px auto 0; border-top:10px solid transparent; border-bottom:10px solid transparent; border-left:12px solid #9fb0cf; border-right:0; }
}

.fdet, .merit .row, .intro .grid, .how .grid, .case .item, .m2, .cat .box{ min-width:0; }
.fdet > *, .intro .grid > *, .how .grid > *, .case .item > *, .m2 > *{ min-width:0; }
.fdet .ph img, .f4-hero img, .feat-block .ph img, .lgrid img, .case .pics img{ max-width:100%; }
@media (min-width:900px){
  .wrap{ max-width:1060px; }
  .sec{ padding:104px 0; }
  .h2{ font-size:32px; }
  .fv .ttl b{ font-size:76px; }
  .fv .photo{ height:min(58vh,600px); }
  .fv h1{ font-size:36px; }
  .intro h2{ font-size:30px; }
  .feat-block h3{ font-size:26px; }
  .m2 h3{ font-size:26px; }
  .fdet{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); margin-top:84px; }
  .fdet h3{ font-size:27px; }
  .fdet .ph{ max-height:440px; }
  .f4{ margin-top:84px; }
  .f4-hero img{ max-height:560px; }
  .f4-card h3{ font-size:28px; }
  .doubt .ans strong{ font-size:46px; }
  .case .wish b{ font-size:22px; }
}
@media (min-width:1600px){
  .fv .photo{ height:min(56vh,620px); }
}

.fv-note{ font-size:12px; color:var(--sub); margin:14px 0 0; letter-spacing:0; }
.cond{ list-style:none; margin:16px 0 0; padding:14px 16px; border:1px solid var(--line); background:#fff; font-size:13px; color:var(--sub); line-height:1.7; }
.cond li{ position:relative; padding-left:1.1em; }
.cond li::before{ content:"・"; position:absolute; left:0; }
.c2-q small{ font-size:12px; font-weight:400; color:var(--sub); }
.calc2 .note{ font-size:12px; color:var(--sub); opacity:1; }
.h2, .fdet h3, .feat-block h3, .f4-card h3, .m2 h3, .lgrid figcaption, .case .wish b{ text-wrap:balance; }
.reasons a{ display:flex; flex-direction:column; background:var(--navy); }
.reasons .t{ flex:1; }
@media (min-width:900px){ .hd .wrap{ max-width:1060px; } }
@media (max-width:479px){
  .pts{ grid-template-columns:1fr; gap:0; margin-top:26px; border-top:1px solid var(--navy); }
  .pts div{ display:flex; align-items:baseline; gap:12px; border-top:0; border-bottom:1px solid var(--line); padding:10px 4px; font-size:13px; text-align:left; }
  .pts b{ margin:0; flex:0 0 7em; font-size:17px; }
  .feat-block h3, .m2 h3{ font-size:21px; letter-spacing:0; }
  .feat-block .card{ margin:-40px 12px 0; }
  .turn p{ font-size:22px; }
  .c2-vs b{ font-size:clamp(18px,5.5vw,24px); } .c2-vs .heiyo b{ font-size:clamp(19px,6vw,26px); }
  .c2-vs span{ font-size:12px; letter-spacing:0; }
  .case .wish b{ font-size:19px; }
  .tr-grid{ grid-template-columns:1fr; gap:8px; }
  .tr{ display:grid; grid-template-columns:4.5em 1fr 1.5fr; align-items:center; text-align:left; padding:14px 14px; gap:8px; }
  .tr .k, .tr .d{ margin:0; } .tr .d br{ display:none; } .tr .n{ font-size:26px; }
  .f4-steps{ grid-template-columns:1fr; gap:8px; }
  .f4-steps li{ display:grid; grid-template-columns:44px 1fr; align-items:center; gap:12px; text-align:left; padding:12px 12px 12px 30px; }
  .f4-steps .ic{ width:44px; height:44px; margin:0; grid-row:1 / 3; align-self:center; }
  .f4-steps b, .f4-steps em{ grid-column:2; } .f4-steps em{ margin-top:2px; }
  .f4-steps li::before{ left:10px; top:50%; transform:translateY(-50%); }
  .cards4 li{ font-size:13.5px; }
  .set .h2{ font-size:25px; }
  .fv .ttl b{ font-size:clamp(40px,12.5vw,50px); }
}

.cvbar{ position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex; align-items:center; justify-content:center; gap:10px; padding:8px 10px calc(8px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); border-top:1px solid var(--line); box-shadow:0 -4px 16px rgba(0,0,0,.06); }
.cvbar ul{ list-style:none; margin:0; padding:0; display:flex; gap:8px; flex:1; max-width:640px; }
.cvbar li{ flex:1; min-width:0; }
.cvbar li a{ display:flex; align-items:center; justify-content:center; gap:6px; height:48px; padding:0 6px; background:var(--navy); color:#fff; text-decoration:none; font-weight:700; font-size:11.5px; line-height:1.2; border-radius:6px; letter-spacing:0; text-align:center; }
.cvbar li a svg{ width:20px; height:20px; flex:0 0 20px; }
.cvbar li a span{ white-space:nowrap; }
.cvbar .sp{ display:none; }
@media (max-width:899px){ .cvbar{ padding:6px 8px calc(6px + env(safe-area-inset-bottom)); } .cvbar li a{ flex-direction:column; gap:3px; height:56px; font-size:10.5px; line-height:1.15; padding:0 4px; } .cvbar li a svg{ width:18px; height:18px; flex-basis:18px; } .cvbar .sp{ display:inline; } .cvbar .totop{ height:56px; } }
.cvbar .totop{ flex:0 0 44px; width:44px; height:48px; display:flex; align-items:center; justify-content:center; background:#c9cfda; color:#fff; border-radius:6px; }
.cvbar .totop svg{ width:22px; height:22px; }
@media (max-width:399px){ .cvbar ul{ gap:6px; } .cvbar .totop{ flex-basis:40px; width:40px; } }
@media (min-width:900px){
  .cvbar{ gap:16px; padding:10px 16px; }
  .cvbar ul{ gap:14px; max-width:760px; flex:0 1 auto; }
  .cvbar li{ flex:0 0 auto; }
  .cvbar li a{ height:46px; padding:0 28px; font-size:14px; gap:10px; min-width:190px; }
  .cvbar li a svg{ width:22px; height:22px; flex-basis:22px; }
  .cvbar .totop{ width:46px; height:46px; flex-basis:46px; }
  .ft{ padding-bottom:110px; }
}

.btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.5em; background:var(--navy); color:#fff; text-decoration:none; font-weight:600; font-size:19px; letter-spacing:1.5px; padding:18px 44px 18px 30px; border-radius:44px; box-shadow:0 8px 22px rgba(33,53,110,.28); transition:background .2s, transform .12s; max-width:100%; min-width:0; }
.btn::after{ content:""; width:8px; height:8px; border-top:2px solid #fff; border-right:2px solid #fff; transform:rotate(45deg); margin-left:.15em; }
.btn:hover{ background:var(--deep); opacity:1; transform:translateY(-2px); }
.btn .free{ background:#fff; color:var(--navy); font-size:13px; font-weight:700; padding:3px 11px; border-radius:20px; letter-spacing:.05em; }
.btn .arr{ display:none; }
.btn.line{ background:#fff; color:var(--navy); border:2px solid var(--navy); box-shadow:none; }
.btn.line::after{ border-color:var(--navy); }
.btn.line .free{ background:var(--navy); color:#fff; }
.btn.line:hover{ background:var(--navy); color:#fff; }
.btn.line:hover::after{ border-color:#fff; }
.set .btn{ background:#fff; color:var(--navy); box-shadow:0 8px 22px rgba(0,0,0,.25); }
.set .btn::after{ border-color:var(--navy); }
.set .btn .free{ background:var(--navy); color:#fff; }
.set .btn.line{ background:transparent; color:#fff; border-color:#fff; }
.set .btn.line::after{ border-color:#fff; }
.set .btn.line .free{ background:#fff; color:var(--navy); }
@media (max-width:899px){ .btn{ font-size:4.4vw; letter-spacing:0; padding:16px 30px 16px 20px; width:100%; max-width:420px; } .btn .free{ font-size:.72em; padding:3px 9px; } }

body{ padding-bottom:84px; }
.eyebrow{ font-size:15px; }
.fv .ttl .sub{ font-size:20px; margin-top:12px; }
.h2.one{ white-space:nowrap; font-size:clamp(20px,6vw,30px); letter-spacing:.02em; }
.fig5 .fl{ font-size:20px; } .fig5 .fl small{ font-size:13px; }
.cv3{ margin-top:26px; display:grid; gap:12px; justify-items:center; }
.cv3-sub{ display:grid; gap:10px; width:100%; max-width:420px; justify-items:center; }
.btn.sm{ font-size:15px; padding:12px 28px 12px 20px; box-shadow:none; letter-spacing:.02em; white-space:nowrap; }
.btn .free{ white-space:nowrap; }
.fv .cv3 .btn{ margin-top:0; }
.cat .t p.cat-list{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px 14px; margin:0 0 8px; font-size:14px; font-weight:700; color:var(--navy); }
.cat .t p.cat-list span{ white-space:nowrap; }
.cat .cv3 .btn{ min-width:0; }

.sim{ background:#fff; border-radius:16px; padding:26px 16px 22px; }
.sim-ttl{ margin:0 0 18px; text-align:center; font-family:"Noto Serif JP",serif; font-weight:500; font-size:22px; line-height:1.6; color:var(--navy); }
.sim-ttl small{ display:block; font-size:12px; color:var(--sub); font-family:"Noto Sans JP",sans-serif; letter-spacing:.1em; margin-top:4px; }
.sim-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -16px; padding:0 16px; }
.sim-t{ border-collapse:separate; border-spacing:0; width:100%; min-width:600px; font-size:13px; line-height:1.4; }
.sim-t th, .sim-t td{ padding:10px 8px; border-bottom:1px solid var(--line); text-align:center; vertical-align:middle; }
.sim-t thead th{ vertical-align:bottom; padding-bottom:12px; border-bottom:2px solid var(--navy); }
.sim-t thead th b{ display:block; font-size:15px; color:var(--navy); }
.sim-t thead th small{ display:block; font-size:12px; color:var(--navy); font-weight:700; }
.sim-t thead th em{ display:block; font-style:normal; font-size:11px; color:var(--sub); margin-top:4px; line-height:1.5; }
.sim-t thead th.hl b{ font-weight:700; }
.sim-t tbody th{ text-align:left; font-weight:500; color:var(--sub); background:var(--gray); white-space:nowrap; }
.sim-t tbody th small{ display:block; font-size:10px; font-weight:400; }
.sim-t td{ font-family:"Noto Serif JP",serif; font-size:15px; color:var(--ink); white-space:nowrap; }
.sim-t td small{ display:block; font-family:"Noto Sans JP",sans-serif; font-size:10px; color:var(--sub); margin-top:2px; }
.sim-t tr.total th{ color:var(--navy); font-weight:700; background:#e8edf6; }
.sim-t tr.total td{ font-size:20px; font-weight:600; background:#e8edf6; }
.sim-t td.minus{ color:var(--accent); } .sim-t td.plus{ color:var(--navy); }
.sim-after{ margin:18px 0 0; font-size:14px; line-height:1.9; text-align:left; }
.sim .note{ font-size:12px; color:var(--sub); opacity:1; margin-top:12px; }

.stk{ display:flex; flex-direction:column; gap:2px; width:72px; margin:0 auto 8px; }
.stk i{ display:flex; gap:2px; height:18px; font-style:normal; }
.stk i.own{ background:#21366e; color:#fff; font-style:normal; font-size:10px; align-items:center; justify-content:center; letter-spacing:.1em; }
.stk i.r2 b{ flex:1; background:#dbe3f1; color:#3d4f7c; font-size:10px; font-weight:500; display:flex; align-items:center; justify-content:center; letter-spacing:.05em; }
.stk i.r2 b.fam{ background:#8fa88f; color:#fff; font-weight:700; }

.fut{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:6px; align-items:start; background:var(--gray); border-radius:16px; padding:22px 10px 18px; }
.fut .fs{ text-align:center; min-width:0; }
.fut .fs em{ display:block; font-style:normal; font-size:12px; font-weight:700; color:var(--navy); margin-bottom:8px; white-space:nowrap; }
.fut .fs .stk{ width:84px; } .fut .stk i{ height:22px; } .fut .stk i.own, .fut .stk i.r2 b{ font-size:11px; }
.fut .fs .d{ display:block; font-size:11px; line-height:1.5; color:var(--sub); }
.fut .fa{ align-self:center; width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:9px solid #9fb0cf; margin-top:40px; }
.fut-cap{ margin:12px 0 0; text-align:center; font-size:13px; color:var(--navy); font-weight:700; }

.bldg{ margin:56px 0 0; }
.bldg-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -24px; padding:0 24px; }
.bldg-scroll img{ width:100%; min-width:720px; height:auto; }
.bldg-cap{ text-align:center; font-family:"Noto Serif JP",serif; font-weight:500; font-size:17px; color:var(--navy); margin:16px 0 0; }
.bldg .note{ text-align:center; }

.lgrid figcaption{ margin-top:10px; }
.lg-tg{ appearance:none; -webkit-appearance:none; background:none; border:0; padding:4px 0; margin:0; width:100%; text-align:left; font:inherit; font-family:"Noto Serif JP",serif; font-weight:500; font-size:17px; color:var(--navy); cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; line-height:1.5; }
.lg-tg i{ flex:0 0 22px; width:22px; height:22px; border:1px solid var(--navy); border-radius:50%; position:relative; }
.lg-tg i::before, .lg-tg i::after{ content:""; position:absolute; left:50%; top:50%; width:10px; height:1.5px; background:var(--navy); transform:translate(-50%,-50%); }
.lg-tg i::after{ transform:translate(-50%,-50%) rotate(90deg); transition:transform .25s; }
.lg-tg[aria-expanded="true"] i::after{ transform:translate(-50%,-50%) rotate(0); }
.lg-body{ margin:0; padding:6px 0 4px; border-top:1px solid var(--line); }
.lg-body p{ margin:8px 0 0; font-size:14px; line-height:1.9; }
.lg-body[hidden]{ display:none; }

.trust .note{ margin-top:16px; }
.tr .k, .tr .n{ white-space:nowrap; }
@media (min-width:900px){ br.sp{ display:none; } }
@media (max-width:899px){
  .feat-block h3{ font-size:18px; letter-spacing:0; text-wrap:initial; }
  .f4-card h3{ font-size:19px; letter-spacing:0; } .f4-card h3 br{ display:none; }
  .tr .n{ font-size:24px; }
  .lg-tg{ font-size:15px; } .lg-tg i{ flex-basis:20px; width:20px; height:20px; }
  .bldg-hint{ text-align:center; font-size:12px; color:var(--sub); margin:8px 0 0; letter-spacing:.1em; }
  .fig5 .fl{ font-size:17px; } .fig5 .fl small{ font-size:12px; }
  .how .txt li{ align-items:flex-start; } .how .txt li i{ margin-top:7px; }
  .fv .ttl .sub{ font-size:clamp(15px,4.3vw,18px); letter-spacing:.06em; white-space:normal; line-height:1.6; }
  .fv h1{ font-size:clamp(21px,6.4vw,28px); letter-spacing:.04em; }
  .btn.sm{ font-size:3.9vw; padding:12px 26px 12px 18px; }
  .cat .cv3{ justify-items:center; }
  .fv .ttl{ padding-top:32px; }
}
@media (min-width:900px){
  body{ padding-bottom:90px; }
  .eyebrow{ font-size:18px; }
  .h2{ font-size:38px; }
  .fv .ttl .sub{ font-size:27px; margin-top:16px; }
  .h2.one{ font-size:38px; }
  .fig5 .fl{ font-size:24px; } .fig5 .fl small{ font-size:14px; }
  .cv3{ display:grid; grid-template-columns:max-content; justify-content:center; justify-items:stretch; gap:12px; }
  .cv3 > .btn{ width:100%; max-width:none; }
  .set .cv3{ margin-top:40px; }
  .cv3-sub{ display:flex; flex-wrap:nowrap; justify-content:space-between; max-width:none; gap:12px; width:auto; }
  .cv3-sub .btn{ flex:1; }
  .cat .cv3{ justify-content:start; }
  .intro h2{ font-size:27px; }
  .sim{ padding:36px 60px 28px; }
  .sim-ttl{ font-size:28px; } .sim-ttl small{ font-size:14px; }
  .sim-t{ font-size:14px; } .sim-t td{ font-size:17px; } .sim-t tr.total td{ font-size:24px; }
  .sim-t thead th b{ font-size:17px; }
  .sim-after{ font-size:15px; }
  .fut{ padding:28px 18px 22px; gap:10px; }
  .fut .fs em{ font-size:17px; margin-bottom:12px; } .fut .fs .d{ font-size:14px; line-height:1.6; } .fut .fs .stk{ width:124px; gap:3px; margin-bottom:12px; }
  .fut .stk i{ height:30px; } .fut .stk i.own, .fut .stk i.r2 b{ font-size:13px; }
  .fut .fa{ border-top-width:9px; border-bottom-width:9px; border-left-width:12px; margin-top:70px; }
  .fut-cap{ font-size:15px; }
  .bldg{ margin-top:72px; }
  .bldg-scroll{ margin:0; padding:0; overflow:visible; } .bldg-scroll img{ min-width:0; }
  .bldg-cap{ font-size:20px; margin-top:22px; }
  .bldg-hint, .sim-ttl br{ display:none; }
  .f4-card h3{ font-size:24px; }
  .lg-tg{ font-size:20px; }
  .lg-body p{ font-size:15px; }
}

.cat .covers.row3{ position:static; height:auto; max-width:420px; display:flex; justify-content:center; align-items:flex-end; gap:14px; }
.cat .covers.row3 figure{ margin:0; flex:1; min-width:0; text-align:center; }
.cat .covers.row3 img{ position:static; width:100%; aspect-ratio:210/297; object-fit:cover; box-shadow:0 8px 20px rgba(0,0,0,.22); border-radius:2px; }
.cat .covers.row3 figcaption{ margin-top:10px; font-size:12px; line-height:1.45; color:var(--sub); }
.cat .covers.row3 figcaption b{ display:block; font-size:13px; color:var(--navy); }
@media (min-width:900px){ .cat .covers.row3{ max-width:none; gap:18px; } .cat .covers.row3 figcaption{ font-size:13px; } .cat .covers.row3 figcaption b{ font-size:14px; } }

.fig5 .zb{ position:absolute; left:calc(100% + 10px); width:14px; border:2px solid; border-left:0; border-radius:0 6px 6px 0; }
.fig5 .zb.own{ border-color:#21366e; } .fig5 .zb.rent{ border-color:#3d4f7c; }
.fig5 .fl{ left:calc(100% + 34px); }
.fig5 .fl b{ display:block; font-weight:600; }
.fig5 .fl.area{ color:#3d4f7c; }
.fig5 .fl.area b{ font-size:1em; letter-spacing:.1em; }
.fig5 .fl em{ display:block; font-style:normal; font-family:"Noto Sans JP",sans-serif; font-weight:400; font-size:13px; line-height:1.6; color:var(--sub); margin-top:8px; padding-top:6px; border-top:1px solid var(--line); }
@media (max-width:899px){ .fig5 .fl em{ font-size:11.5px; } .fig5 .zb{ left:calc(100% + 6px); width:10px; } .fig5 .fl{ left:calc(100% + 24px); } }

.fut .stk i.r2 b.fam{ background:#8fa88f; color:#fff; font-weight:700; white-space:nowrap; overflow:hidden; margin:0; height:auto; align-self:stretch; }
.fut .stk i.r2 b{ min-width:0; }
.fut .fa{ margin-top:90px; }
@media (min-width:900px){ .fut .fa{ margin-top:120px; } }

.fut-cap{ margin:22px 0 0; font-size:17px; }
@media (min-width:900px){ .m2{ padding-bottom:50px; } .fut-cap{ font-size:20px; margin-top:26px; } }

@media (min-width:900px){ .f4-card{ width:56%; max-width:560px; } .f4-card h3{ white-space:nowrap; text-wrap:initial; } }

@media (min-width:900px){ .f4-val{ grid-template-columns:260px minmax(0,1fr); gap:28px; } .f4-val li{ font-size:15px; } .f4-val .big b{ font-size:56px; } }

.lg-item .ph{ cursor:pointer; }
.lg-item .ph img{ transition:transform .4s; } .lg-item .ph:hover img{ transform:scale(1.04); }
.lg-tg i::before, .lg-tg i::after{ transform:translate(-50%,-50%) !important; } .lg-tg i::after{ transform:translate(-50%,-50%) rotate(90deg) !important; }
.lgm{ position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:16px; }
.lgm[hidden]{ display:none; }
.lgm-bg{ position:absolute; inset:0; background:rgba(16,26,51,.7); }
.lgm-box{ position:relative; background:#fff; width:100%; max-width:860px; max-height:calc(100vh - 32px); overflow:auto; border-radius:6px; }
.lgm-x{ position:absolute; right:10px; top:10px; z-index:2; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.92); cursor:pointer; box-shadow:0 2px 10px rgba(0,0,0,.2); }
.lgm-x::before, .lgm-x::after{ content:""; position:absolute; left:50%; top:50%; width:18px; height:2px; background:var(--navy); transform:translate(-50%,-50%) rotate(45deg); }
.lgm-x::after{ transform:translate(-50%,-50%) rotate(-45deg); }
.lgm-main{ aspect-ratio:16/10; background:#eef1f6; }
.lgm-main img{ width:100%; height:100%; object-fit:cover; }
.lgm-thumbs{ display:flex; gap:6px; padding:8px 12px 0; }
.lgm-thumbs button{ flex:1; padding:0; border:2px solid transparent; background:none; cursor:pointer; aspect-ratio:4/3; overflow:hidden; border-radius:3px; opacity:.7; }
.lgm-thumbs button.on{ border-color:var(--navy); opacity:1; }
.lgm-thumbs img{ width:100%; height:100%; object-fit:cover; }
.lgm-t{ padding:18px 20px 26px; }
.lgm-eyebrow{ margin:0 0 6px; font-size:12px; letter-spacing:.2em; color:var(--sub); }
.lgm-t h3{ margin:0 0 10px; font-family:"Noto Serif JP",serif; font-weight:500; font-size:22px; color:var(--navy); }
.lgm-t p{ margin:0; font-size:15px; line-height:1.9; }
@media (min-width:900px){
  .lgm-box{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); grid-template-rows:auto auto; }
  .lgm-main{ grid-column:1; grid-row:1; aspect-ratio:4/3; }
  .lgm-thumbs{ grid-column:1; grid-row:2; padding:10px 14px 14px; }
  .lgm-t{ grid-column:2; grid-row:1 / span 2; padding:40px 36px 36px; align-self:center; }
  .lgm-t h3{ font-size:26px; }
  .lgm-t p{ font-size:16px; }
  .lgm-thumbs button{ flex:0 0 31%; }
}

.tr .k{ font-size:15px; } .tr .d{ font-size:15px; }
@media (min-width:900px){ .tr .k{ font-size:17px; margin-bottom:10px; } .tr .d{ font-size:16px; margin-top:12px; } .tr .d br{ display:none; } .trust .note{ font-size:13px; } }

.case-more{ margin:18px 0 0 16px; width:auto; font-family:"Noto Sans JP",sans-serif; font-size:14px; font-weight:700; color:var(--navy); gap:8px; }
.case-more i{ flex-basis:20px; width:20px; height:20px; }
.lgm-t p b{ display:block; font-size:13px; letter-spacing:.1em; color:var(--navy); margin-bottom:2px; }
.lgm-t p + p{ margin-top:12px; }
@media (min-width:900px){ .lgm-t p{ font-size:15px; line-height:1.85; } }

@media (min-width:900px){
  .lgm-box{ max-width:1160px; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; min-height:min(720px, calc(100vh - 48px)); }
  .lgm-main{ aspect-ratio:auto; height:100%; min-height:460px; }
  .lgm-thumbs{ padding:12px 16px 16px; gap:10px; }
  .lgm-thumbs button{ flex:1; }
  .lgm-t{ padding:56px 44px 44px; }
  .lgm-t h3{ font-size:30px; line-height:1.5; margin-bottom:18px; }
  .lgm-t p{ font-size:16px; line-height:1.95; }
  .lgm-t p b{ font-size:14px; margin-bottom:4px; }
  .lgm-t p + p{ margin-top:16px; }
  .lgm-eyebrow{ font-size:13px; }
}

@media (min-width:900px){
  .lgm-box{ min-height:640px; max-height:calc(100vh - 48px); }
  .lgm-main{ position:relative; height:auto; min-height:0; }
  .lgm-main img{ position:absolute; inset:0; width:100%; height:100%; }
  .lgm-t h3{ font-size:28px; }
}

.lgm-main{ background:#eceff4; }
.lgm-main img{ object-fit:contain; }
@media (max-width:899px){ .lgm-main{ aspect-ratio:4/3; } }

.lgm-main{ overflow:hidden; }
.lgm-main .lgm-bgimg{ position:absolute; inset:-6%; width:112%; height:112%; object-fit:cover; filter:grayscale(1) blur(14px) brightness(1.08); opacity:.55; transform:scale(1.15); }
.lgm-main #lgm-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; z-index:1; filter:drop-shadow(0 10px 30px rgba(0,0,0,.25)); }

.cvbar li a{ background:var(--navy); color:#fff; }
.cvbar li a svg{ color:#fff; }
.cvbar li.main{ flex:2; }
.cvbar li.main a{ background:var(--navy); color:#fff; }
.cvbar li.main a svg{ color:#fff; }
.cvbar .totop{ background:#c9cfda; }
@media (min-width:900px){
  .cvbar li{ flex:1 1 0; } .cvbar li.main{ flex:1 1 0; }
  .cvbar ul{ flex:0 1 760px; }
  .cvbar li a{ min-width:0; padding:0 16px; }
  .cvbar li.main a{ font-size:14px; height:46px; }
}

.fut .stk i.own.fam2{ background:#8fa88f; }
.fut .stk i.own{ font-size:12px; letter-spacing:.04em; }
@media (min-width:900px){ .fut .stk i.own{ font-size:13px; } .fut .fs .stk{ width:132px; } }

.fb-img{ display:block; }
.fb-img img{ display:block; width:100%; height:auto; max-width:1000px; margin:0 auto; }
@media (max-width:899px){ .fb-img img{ max-width:282px; } .flowbox{ padding:24px 16px 26px; } }

.cond{ border:0 !important; background:none !important; padding:0 4px !important; margin:12px 0 0 !important; font-size:11px !important; color:var(--note) !important; line-height:1.7; }
.cond li{ margin:0; }

.fb-ttl{ font-size:22px; margin-bottom:24px; }
@media (min-width:900px){ .fb-ttl{ font-size:28px; margin-bottom:30px; } }

.f2wide{ grid-column:1 / -1; }
@media (min-width:900px){ .f2wide .duty{ grid-template-columns:repeat(6,1fr); gap:18px; margin:48px 0 0; max-width:none; } .f2wide .duty img{ width:70%; } .f2wide .duty span{ font-size:14px; } }

@media (max-width:899px){
  .cv3-sub{ display:flex; flex-direction:row; gap:8px; max-width:420px; width:100%; }
  .cv3-sub .btn.sm{ flex:1 1 0; min-width:0; width:auto; max-width:none; font-size:11px; padding:9px 16px 9px 8px; letter-spacing:0; white-space:normal; line-height:1.3; text-align:center; }
  .cv3-sub .btn.sm::after{ width:6px; height:6px; margin-left:0; }
  .cat .covers.row3{ align-items:flex-start; }
  .cat .covers.row3 figcaption b{ white-space:normal; font-size:11.5px; line-height:1.35; }
  .cat .covers.row3{ max-width:100%; }
}

.fig5 .fl{ text-align:center; }
.fig5 .fl b, .fig5 .fl small, .fig5 .fl em{ text-align:center; }

@media (max-width:899px){
  .how .txt li{ font-size:13px; white-space:nowrap; } .how .txt li i{ margin-top:5px; }
  #how .h2.one{ font-size:30px; }
}

.how .txt .note{ margin-top:14px; }

.sim-cards{ display:none; }
@media (max-width:899px){
  .sim-scroll{ display:none; }
  .sim-cards{ display:grid; gap:14px; }
  .sc{ border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; }
  .sc.hl{ border-color:var(--navy); }
  .sc-h{ display:flex; gap:14px; align-items:center; padding:14px 14px 12px; background:var(--gray); }
  .sc.hl .sc-h{ background:#e8edf6; }
  .sc-h .stk{ margin:0; width:64px; flex:0 0 64px; }
  .sc-h b{ display:block; font-size:16px; color:var(--navy); line-height:1.3; }
  .sc-h small{ display:inline-block; font-size:12px; font-weight:700; color:var(--navy); margin-top:2px; }
  .sc-h em{ display:block; font-style:normal; font-size:11px; color:var(--sub); margin-top:4px; line-height:1.5; }
  .sc dl{ margin:0; padding:4px 14px 6px; display:grid; grid-template-columns:1fr auto; }
  .sc dt, .sc dd{ margin:0; padding:9px 0; border-bottom:1px solid var(--line); font-size:13px; line-height:1.4; }
  .sc dt{ color:var(--sub); }
  .sc dt small{ display:block; font-size:10px; }
  .sc dd{ text-align:right; font-family:"Noto Serif JP",serif; font-size:15px; color:var(--ink); white-space:nowrap; align-self:center; }
  .sc dt.total, .sc dd.total{ border-bottom:0; padding-top:12px; }
  .sc dt.total{ color:var(--navy); font-weight:700; align-self:center; }
  .sc dd.total{ font-size:22px; font-weight:600; }
  .sc dd.minus{ color:var(--accent); } .sc dd.plus{ color:var(--navy); }
}

.btn.sm .s2{ display:flex; flex-direction:column; align-items:center; line-height:1.15; }
.btn.sm .s2 small{ font-size:10px; font-weight:500; letter-spacing:.02em; margin-bottom:2px; }
.btn.sm .s2{ font-size:15px; font-weight:700; }
@media (min-width:900px){ .btn.sm{ padding:10px 30px 10px 22px; } .btn.sm .s2{ font-size:17px; } .btn.sm .s2 small{ font-size:12px; } }
@media (max-width:899px){ .cv3-sub .btn.sm{ padding:8px 14px 8px 8px; } }

@media (max-width:899px){ .cards4 li{ font-size:14px; padding:18px 8px; letter-spacing:0; } .cards4 li br{ display:inline; } .cards4 li{ font-size:13.5px; } }

@media (max-width:899px){ .cat .t h3.one{ white-space:nowrap; font-size:clamp(17px,5.6vw,22px); letter-spacing:.02em; } }

.lgm-main{ position:relative; }

@media (max-width:899px){
  .tr{ display:block; text-align:center; padding:18px 12px 16px; }
  .tr .k{ margin-bottom:6px; white-space:normal; font-size:14px; }
  .tr .n{ font-size:30px; white-space:nowrap; }
  .tr .d{ margin-top:6px; font-size:13px; } .tr .d br{ display:inline; }
  .tr-grid{ gap:10px; }
}

/* ===== MT共通CSS対策（サイト共通の a / a:hover / p 等に負けないよう #contents で強制） ===== */
#contents a{ text-decoration:none; }
#contents .btn, #contents .btn:link, #contents .btn:visited, #contents .btn:hover, #contents .btn:active{ color:#fff !important; text-decoration:none !important; background:#21366e; }
#contents .btn:hover{ background:#002870 !important; }
#contents .btn.line, #contents .btn.line:link, #contents .btn.line:visited{ color:#21366e !important; background:#fff !important; }
#contents .btn.line:hover{ color:#fff !important; background:#21366e !important; }
#contents .set .btn, #contents .set .btn:link, #contents .set .btn:visited{ color:#21366e !important; background:#fff !important; }
#contents .set .btn.line, #contents .set .btn.line:link, #contents .set .btn.line:visited{ color:#fff !important; background:transparent !important; }
#contents .btn .free{ color:#21366e !important; background:#fff !important; text-decoration:none !important; }
#contents .btn.line .free, #contents .set .btn .free{ color:#fff !important; background:#21366e !important; }
#contents .set .btn.line .free{ color:#21366e !important; background:#fff !important; }
#contents .btn .s2, #contents .btn .s2 small{ color:inherit !important; }
#contents .cvbar li a, #contents .cvbar li a:link, #contents .cvbar li a:visited{ color:#fff !important; text-decoration:none !important; }
#contents .cvbar li.main a, #contents .cvbar li.main a:link, #contents .cvbar li.main a:visited{ color:#fff !important; }
#contents .cvbar .totop{ color:#fff !important; }
#contents .lg-tg, #contents .case-more, #contents .sa-h, #contents .ss, #contents .fam3-tabs button{ text-decoration:none !important; }
#contents .fam3-tabs button[aria-selected="true"]{ color:#fff !important; }
#contents .set .small a{ color:#fff !important; text-decoration:underline !important; }
#contents p{ margin-top:0; }
#contents img{ max-width:100%; height:auto; vertical-align:bottom; }

/* ===== 注釈まとめ ===== */
.nref{ font-size:.6em; vertical-align:super; line-height:0; margin-left:2px; font-weight:400; letter-spacing:0; }
.notes{ padding:28px 0 40px; background:#fff; }
.notes-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); padding-top:18px; }
.notes-list li{ display:flex; gap:8px; font-size:11px; line-height:1.7; color:var(--note); letter-spacing:0; margin:0 0 6px; }
.notes-list .nn{ flex:0 0 2.6em; white-space:nowrap; }
@media (min-width:900px){ .notes{ padding:36px 0 48px; } .notes-list{ max-width:960px; margin:0 auto; } }

/* 特長番号バッジを画像の外（上）に */
.reasons a{ background:transparent; overflow:visible; }
.reasons .no{ order:-1; position:static; transform:none; margin:0 auto 10px; }
.reasons .t{ background:var(--navy); }
.reasons a .ph{ position:relative; width:100%; }
.reasons a img, #contents .reasons a img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; }
.reasons .t b{ letter-spacing:0; }
@media (min-width:900px){ .reasons .t b{ font-size:14px; } }
.tr .n .sep{ font-size:.5em; margin:0 .1em; color:var(--sub); }

/* ===== 10/8打合せ：固定バーは「プロに相談」のみ。FVを過ぎたら上部に出現（Apple式） ===== */
.cvbar, #contents .cvbar{ position:fixed; top:0; left:0; right:0; bottom:auto; z-index:60; display:block; padding:0; background:rgba(255,255,255,.96); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-top:0; border-bottom:1px solid var(--line); transform:translateY(-100%); transition:transform .3s ease; }
.cvbar.show, #contents .cvbar.show{ transform:translateY(0); }
.cvbar-in{ max-width:1060px; margin:0 auto; padding:8px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cvbar-ttl{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:14px; color:var(--navy); letter-spacing:.04em; white-space:nowrap; display:flex; align-items:baseline; gap:8px; }
.cvbar-ttl small{ font-family:"Noto Sans JP",sans-serif; font-size:11px; color:var(--sub); letter-spacing:.06em; }
.cvbar-btn, #contents .cvbar-btn, #contents .cvbar-btn:link, #contents .cvbar-btn:visited{ display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 22px; background:var(--navy); color:#fff !important; text-decoration:none !important; font-weight:700; font-size:14px; border-radius:6px; white-space:nowrap; }
.cvbar-btn svg{ width:20px; height:20px; }
#contents .cvbar-btn:hover{ background:var(--deep); }
@media (max-width:899px){ .cvbar-in{ padding:8px 12px; } .cvbar-ttl{ font-size:12px; } .cvbar-ttl small{ display:none; } .cvbar-btn, #contents .cvbar-btn{ height:42px; padding:0 18px; font-size:13px; } }
@media (min-width:900px){ .cvbar-btn, #contents .cvbar-btn{ height:46px; padding:0 32px; font-size:15px; min-width:220px; } }
.cvbar ul, .cvbar .totop{ display:none; }
body{ padding-bottom:0; }

/* ===== 10/8打合せ：ライフステージ図 SPは縦積み＋下向き矢印、スクロール連動で段階をハイライト ===== */
.fut .fs{ transition:opacity .35s ease; }
.fut.linked .fs{ opacity:.45; }
.fut.linked .fs.on{ opacity:1; }
.fut .fs em{ transition:background .3s, color .3s; padding:2px 10px; border-radius:999px; display:inline-block; }
.fut.linked .fs.on em{ background:var(--navy); color:#fff; }
@media (max-width:899px){
  .fut{ grid-template-columns:1fr; gap:10px; padding:20px 14px 16px; }
  .fut .fs{ display:grid; grid-template-columns:84px 1fr; column-gap:14px; align-items:center; text-align:left; }
  .fut .fs em{ grid-column:1 / -1; justify-self:start; margin-bottom:6px; }
  .fut .fs .stk{ grid-column:1; margin:0; }
  .fut .fs .d{ grid-column:2; text-align:left; }
  .fut .fa{ width:0; height:0; margin:0 auto; border-left:9px solid transparent; border-right:9px solid transparent; border-top:12px solid #b9c4d8; border-bottom:0; }
}

/* ===== 10/13 CB反映：FV2枚・実例4枚・SP建物2段・ポップアップ肩文言なし ===== */
.fv .photo.photo2{ display:grid; grid-template-columns:1fr 1fr; gap:0; aspect-ratio:auto; height:auto; }
.fv .photo.photo2 img{ width:100%; height:100%; object-fit:cover; aspect-ratio:3/2; }
@media (max-width:899px){ .fv .photo.photo2{ grid-template-columns:1fr; } .fv .photo.photo2 img.pc{ display:none; } .fv .photo.photo2 img{ aspect-ratio:4/3; } }
@media (min-width:900px){ .fv .photo.photo2{ height:min(62vh,640px); grid-template-rows:100%; } .fv .photo.photo2 img, #contents .fv .photo.photo2 img{ aspect-ratio:auto; height:100% !important; } }
.bldg-sp{ display:none; }
@media (max-width:899px){ .bldg-scroll.pc{ display:none; } .bldg-sp{ display:grid; gap:6px; } .bldg-sp img{ width:100%; height:auto; display:block; } }
.case .pics4{ display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.case .pics4 figure{ margin:0; position:relative; }
.case .pics4 img, #contents .case .pics4 img{ width:100%; height:100% !important; object-fit:cover; aspect-ratio:4/3; display:block; }
.case .pics4 figcaption{ position:absolute; left:0; bottom:0; background:rgba(33,54,110,.82); color:#fff; font-size:11px; letter-spacing:.06em; padding:4px 10px; line-height:1.4; }
.case .case-name{ font-size:13px; color:var(--sub); letter-spacing:.04em; margin:0 0 12px; }
.lgm-eyebrow[hidden]{ display:none; }
@media (min-width:900px){ .case .item{ grid-template-columns:1.25fr 1fr; } .case .pics4 figcaption{ font-size:12px; padding:5px 12px; } }

/* ===== 10/13：FV直下の資料請求CTA（スクロールで上部に張り付く） ===== */
.cta-top{ position:relative; }
.cta-top-in{ background:#fff; border-bottom:1px solid var(--line); }
.cta-top-row{ max-width:1060px; margin:0 auto; padding:10px 16px; display:flex; align-items:center; justify-content:center; gap:16px; }
.cta-top-ttl{ display:none; font-family:"Noto Serif JP",serif; font-weight:500; font-size:14px; color:var(--navy); letter-spacing:.04em; white-space:nowrap; align-items:baseline; gap:8px; }
.cta-top-ttl small{ font-family:"Noto Sans JP",sans-serif; font-size:11px; color:var(--sub); letter-spacing:.06em; }
.cta-top-btn, #contents .cta-top-btn, #contents .cta-top-btn:link, #contents .cta-top-btn:visited{ display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; max-width:522px; height:52px; padding:0 20px; background:var(--navy); color:#fff !important; text-decoration:none !important; font-weight:700; font-size:16px; border-radius:8px; white-space:nowrap; }
#contents .cta-top-btn .free{ color:var(--navy) !important; background:#fff !important; font-size:12px; padding:2px 8px; border-radius:999px; }
.cta-top-btn .arr{ font-size:18px; line-height:1; }
#contents .cta-top-btn:hover{ background:var(--deep); }
.cta-top.stuck .cta-top-in{ position:fixed; top:0; left:0; right:0; z-index:60; background:rgba(255,255,255,.96); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); box-shadow:0 2px 12px rgba(0,40,112,.08); }
.cta-top.stuck .cta-top-row{ justify-content:space-between; }
.cta-top.stuck .cta-top-ttl{ display:flex; }
.cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ width:auto; height:44px; padding:0 22px; font-size:14px; }
@media (max-width:899px){ .cta-top-row{ padding:10px 20px; } .cta-top.stuck .cta-top-ttl{ display:none; } .cta-top.stuck .cta-top-row{ justify-content:center; padding:8px 16px; } .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ width:100%; max-width:none; height:46px; padding:0 14px; font-size:14px; gap:8px; } }
.cv3.cv3-subonly{ margin-top:8px; }
.cvbar{ display:none !important; }
body{ padding-bottom:0 !important; }

/* 導入h2: PCで2行に収める */
@media (min-width:900px){ .intro h2{ font-size:25px; letter-spacing:.02em; white-space:nowrap; } }

/* CTA帯：もらえる資料の説明＋上下パディング */
.cta-top-row{ flex-wrap:wrap; padding:20px 16px 24px; row-gap:10px; }
.cta-top-lead{ flex:1 0 100%; margin:0; text-align:center; font-size:13px; line-height:1.6; color:var(--sub); letter-spacing:.02em; }
.cta-top-lead b{ color:var(--navy); font-weight:700; }
.cta-top.stuck .cta-top-lead{ display:none; }
.cta-top.stuck .cta-top-row{ flex-wrap:nowrap; padding:8px 16px; }
@media (max-width:899px){ .cta-top-row{ padding:18px 20px 22px; } .cta-top-lead{ font-size:12px; } .cta-top-lead br.sp{ display:inline; } }

/* ===== 10/13：FV直下CTA帯＝資料3点セット風（ボタンはこれ1つ） ===== */
.cta-top-in{ background:var(--beige); border-bottom:0; }
.cta-top-row{ display:grid; grid-template-columns:1fr; gap:18px; padding:28px 20px 30px; max-width:1060px; margin:0 auto; align-items:center; }
.cta-top-lead{ display:none; }
.cta-top-covers{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:start; }
.cta-top-covers figure{ margin:0; text-align:center; }
.cta-top-covers img, #contents .cta-top-covers img{ width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; box-shadow:0 6px 18px rgba(0,40,112,.12); }
.cta-top-covers figcaption{ margin-top:8px; font-size:12px; line-height:1.4; color:var(--sub); }
.cta-top-covers figcaption b{ display:block; color:var(--navy); font-weight:700; font-size:13px; }
.cta-top-t{ text-align:center; }
.cta-top-t > small{ display:block; font-size:13px; font-weight:700; color:var(--navy); letter-spacing:.08em; }
.cta-top-t h2{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:22px; line-height:1.5; color:var(--navy); margin:8px 0 10px; letter-spacing:.04em; }
.cta-top-t p{ margin:0 0 18px; font-size:14px; line-height:1.8; color:var(--ink); }
.cta-top-ttl{ display:none; }
.cta-top-btn, #contents .cta-top-btn, #contents .cta-top-btn:link, #contents .cta-top-btn:visited{ border-radius:999px; height:58px; font-size:17px; padding:0 28px; max-width:none; width:100%; }
#contents .cta-top-btn .free{ font-size:13px; padding:4px 10px; }
.cta-top.stuck .cta-top-in{ background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); }
.cta-top.stuck .cta-top-row{ display:flex; justify-content:space-between; padding:8px 16px; gap:12px; }
.cta-top.stuck .cta-top-covers, .cta-top.stuck .cta-top-t > small, .cta-top.stuck .cta-top-t h2, .cta-top.stuck .cta-top-t p{ display:none; }
.cta-top.stuck .cta-top-t{ display:flex; align-items:center; justify-content:space-between; width:100%; gap:12px; }
.cta-top.stuck .cta-top-ttl{ display:flex; }
.cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ width:auto; height:46px; font-size:14px; padding:0 24px; }
@media (max-width:899px){
  .cta-top-row{ padding:24px 20px 26px; gap:16px; }
  .cta-top-covers{ gap:10px; padding:0 8px; }
  .cta-top-t h2{ font-size:21px; }
  .cta-top-t p{ font-size:13.5px; }
  .cta-top.stuck .cta-top-ttl{ display:none; }
  .cta-top.stuck .cta-top-t{ justify-content:center; }
  .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ width:100%; height:46px; }
}
@media (min-width:900px){
  .cta-top-row{ grid-template-columns:1.1fr 1fr; gap:48px; padding:40px 24px 44px; }
  .cta-top-t{ text-align:left; }
  .cta-top-t h2{ font-size:28px; }
  .cta-top-t p{ font-size:15px; margin-bottom:22px; }
  .cta-top-btn, #contents .cta-top-btn{ width:auto; min-width:420px; }
  .cta-top-covers figcaption{ font-size:13px; } .cta-top-covers figcaption b{ font-size:14px; }
}
/* サブボタン撤去に伴う調整 */
.cv3{ justify-content:center; }

/* ===== FV写真: SPカルーセル ===== */
.fv .photo.photo2{ display:block; position:relative; }
.fv-track{ display:grid; grid-template-columns:1fr 1fr; gap:0; }
.fv-dots{ display:none; }
@media (min-width:900px){ .fv .photo.photo2{ height:min(62vh,640px); } .fv-track{ height:100%; grid-template-rows:100%; } .fv-track img, #contents .fv-track img{ width:100%; height:100% !important; object-fit:cover; aspect-ratio:auto; display:block; } }
@media (max-width:899px){
  .fv .photo.photo2{ height:auto; aspect-ratio:auto; }
  .fv-track{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .fv-track::-webkit-scrollbar{ display:none; }
  .fv-track img, #contents .fv-track img{ flex:0 0 100%; width:100%; height:auto !important; aspect-ratio:4/3; object-fit:cover; scroll-snap-align:start; display:block; }
  .fv-dots{ display:flex; justify-content:center; gap:8px; position:absolute; left:0; right:0; bottom:10px; }
  .fv-dots i{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.55); box-shadow:0 0 0 1px rgba(0,0,0,.08); transition:background .3s, transform .3s; }
  .fv-dots i.on{ background:#fff; transform:scale(1.25); }
}

/* 張り付き帯の商品名を大きく */
.cta-top.stuck .cta-top-ttl{ font-size:20px; gap:12px; align-items:center; height:46px; line-height:1; }
.cta-top-btn, #contents .cta-top-btn, .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ margin:0 !important; }
.cta-top.stuck .cta-top-ttl small{ font-size:14px; color:var(--navy); }

/* お悩みセクション末尾の相談CTA */
.cv1{ text-align:center; margin:36px 0 0; }
.cv1 .btn, #contents .cv1 .btn{ min-width:320px; }
@media (max-width:899px){ .cv1{ margin-top:28px; } .cv1 .btn, #contents .cv1 .btn{ width:100%; min-width:0; } }

/* 導入セクションの見学CTA */
.cv1-l{ margin-top:24px; }
@media (min-width:900px){ .cv1-l{ text-align:left; margin-top:28px; } .cv1-l .btn, #contents .cv1-l .btn{ min-width:0; padding-left:32px; padding-right:32px; } }

/* お悩みカード（SP）: 2行に収める */
@media (max-width:899px){ .cards4 li{ font-size:12px; letter-spacing:0; line-height:1.6; padding-left:5px; padding-right:5px; } }

/* ===== ライフステージ図: ピン留め＋3つ同時表示で濃淡が移る（右→左に寄る動き付き） ===== */
.fut-pin{ position:relative; }
.fut-stage{ position:relative; width:100%; }
.fut-stage.fixed{ position:fixed; z-index:5; }
.fut-stage.done{ position:absolute; left:0; bottom:0; }
.fut-view .fut{ transition:none; }
.fut-view .fut .fs{ transition:opacity .45s ease, transform .45s ease; opacity:.4; transform:translateX(14px); }
.fut-view .fut .fs.on{ opacity:1; transform:translateX(0); }
.fut-view .fut .fs.past{ opacity:.55; transform:translateX(0); }
.fut-view .fut .fs em{ transition:background .3s, color .3s; padding:2px 10px; border-radius:999px; display:inline-block; }
.fut-view .fut .fs.on em{ background:var(--navy); color:#fff; }
.fut-dots{ display:flex; justify-content:center; gap:8px; margin:12px 0 0; }
.fut-dots i{ width:8px; height:8px; border-radius:50%; background:#c9cfda; transition:background .3s, transform .3s; }
.fut-dots i.on{ background:var(--navy); transform:scale(1.25); }

/* メリット後CTA: 2段ラベル（小見出し＋本文） */
.btn.btn-2l, #contents .btn.btn-2l{ padding-top:12px; padding-bottom:12px; }
.btn.btn-2l .s2{ display:flex; flex-direction:column; align-items:center; line-height:1.25; }
.btn.btn-2l .s2 small{ font-size:12px; font-weight:500; opacity:.9; letter-spacing:.04em; margin-bottom:2px; }

/* ピン留め中もCTAが見えるよう、相談CTAを図のブロック内に */
.fut-cta{ margin:18px 0 0; }
@media (max-width:899px){ .fut-cta{ margin-top:14px; } .fut-cta .btn, #contents .fut-cta .btn{ width:100%; } }
.m2{ padding-bottom:40px; }

/* SP: ピン留めブロックを1画面に収めるための圧縮 */
@media (max-width:899px){
  .fut-view .fut{ padding:14px 12px 10px; gap:4px; }
  .fut-view .fut .fs{ grid-template-columns:72px 1fr; column-gap:12px; }
  .fut .stk i{ height:16px; } .fut .stk i.own, .fut .stk i.r2 b{ font-size:10px; }
  .fut-view .fut .fs em{ font-size:11px; padding:1px 8px; margin-bottom:4px; }
  .fut-view .fut .fs .d{ font-size:12px; line-height:1.5; }
  .fut-view .fut .fa{ border-top-width:9px; border-left-width:7px; border-right-width:7px; }
  .fut-cap{ font-size:13.5px; margin-top:10px; line-height:1.5; letter-spacing:0; }
  .fut-dots{ margin-top:8px; }
  .fut-cta{ margin-top:10px; }
  .fut-cta .btn.btn-2l, #contents .fut-cta .btn.btn-2l{ padding-top:10px; padding-bottom:10px; }
}

/* SP: 各段階を中央寄せの2カラム（タイル＋説明）に */
@media (max-width:899px){
  .fut-view .fut .fs{ grid-template-columns:104px auto; column-gap:18px; justify-content:center; align-items:center; width:100%; }
  .fut-view .fut .fs em{ grid-column:1 / -1; justify-self:center; font-size:12px; padding:2px 12px; margin-bottom:6px; }
  .fut-view .fut .fs .stk{ grid-column:1; width:104px; margin:0; }
  .fut .stk i{ height:20px; } .fut .stk i.own, .fut .stk i.r2 b{ font-size:11px; }
  .fut-view .fut .fs .d{ grid-column:2; text-align:left; font-size:13.5px; line-height:1.6; font-weight:700; color:var(--navy); max-width:none; white-space:nowrap; }
  .fut-view .fut .fs:not(.on) .d{ font-weight:500; color:var(--ink); }
}

@media (max-width:899px){ .fut-cap, #contents .fut-cap{ font-size:13.5px !important; letter-spacing:0 !important; white-space:nowrap; } }

/* ロック中のスクロールバー跳ね防止 */
html.fut-locked{ scroll-behavior:auto; overscroll-behavior:none; }
.fut-pin{ height:auto !important; }
.fut-stage{ position:static !important; }

/* SP: 段階ごとのズレをなくす（横シフトなし・固定2カラムで左揃え） */
@media (max-width:899px){
  .fut-view .fut{ padding-left:0; padding-right:0; }
  .fut-view .fut .fs, .fut-view .fut .fs.on, .fut-view .fut .fs.past{ transform:none !important; grid-template-columns:104px 1fr; column-gap:16px; justify-content:start; width:296px; margin:0 auto; padding:0; }
  .fut-view .fut .fs em{ justify-self:start; }
  .fut-view .fut .fs .d{ white-space:normal; }
}

/* メリット2見出し: PCも2行 */
@media (min-width:900px){ .m2 .card h3 br{ display:inline !important; } }

/* メリット2見出し: SPも指定の2行で */
@media (max-width:899px){ .m2 .card h3, #contents .m2 .card h3{ font-size:17.5px !important; letter-spacing:0 !important; white-space:nowrap; text-wrap:initial; line-height:1.6; } }

/* 特長2: PCは 文章(左)＋写真(右) を1行目に、6つの円を2行目に */
@media (min-width:900px){
  #f2.fdet.rev{ grid-template-rows:auto auto; }
  #f2.fdet.rev .body{ grid-column:1; grid-row:1; }
  #f2.fdet.rev .ph{ grid-column:2; grid-row:1; order:0; align-self:center; }
  #f2.fdet.rev .f2wide{ grid-column:1 / -1; grid-row:2; }
}

/* 3〜9階建の帯: SPも1枚を横幅いっぱいに収める（2段表示・横スクロールなし） */
@media (max-width:899px){
  .bldg-scroll.pc{ display:block; overflow:visible; margin:0; padding:0; }
  .bldg-scroll.pc img, #contents .bldg-scroll.pc img{ width:100%; min-width:0; height:auto; }
  .bldg-sp{ display:none !important; }
  .bldg-hint{ display:none; }
}

/* 暮らしタイル: 写真の高さを統一 */
.lgrid .ph{ aspect-ratio:4/3; overflow:hidden; position:relative; }
.lgrid .ph img, #contents .lgrid .ph img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; }

/* 実績タイル: 時点表記は2段目に小さく */
.tr .d .asof{ display:block; font-size:12px; color:var(--note); letter-spacing:0; margin-top:2px; }
.tr .d .asof .nref{ font-size:.75em; }

/* 実例: 左は外観1枚のみ（ラベルなし）。4枚はポップアップで */
.case .pics4{ grid-template-columns:1fr; gap:0; }
.case .pics4 figure:not(:first-child){ display:none; }
.case .pics4 figcaption{ display:none; }
.case .pics4 img, #contents .case .pics4 img{ aspect-ratio:4/3; }
@media (min-width:900px){ .case .pics4 img, #contents .case .pics4 img{ aspect-ratio:auto; height:100% !important; min-height:380px; } }

@media (max-width:899px){ .case .wish b{ text-wrap:initial; letter-spacing:0; } }

/* 賃貸モデルルーム検索ウィジェット */
.kyoten{ padding:64px 0; background:#fff; }
@media (min-width:900px){ .kyoten{ padding:88px 0; } }

/* CTA帯: 見出しを表紙の上に（SP）。PCは右カラム上段 */
.cta-top-head{ text-align:center; }
.cta-top-head > small{ display:block; font-size:13px; font-weight:700; color:var(--navy); letter-spacing:.08em; }
.cta-top-head h2{ font-family:"Noto Serif JP",serif; font-weight:500; font-size:22px; line-height:1.5; color:var(--navy); margin:8px 0 0; letter-spacing:.04em; }
.cta-top.stuck .cta-top-head{ display:none; }
@media (min-width:900px){
  .cta-top-row{ grid-template-columns:1.1fr 1fr; grid-template-rows:auto auto; align-items:center; row-gap:14px; }
  .cta-top-head{ grid-column:2; grid-row:1; text-align:left; align-self:end; }
  .cta-top-head h2{ font-size:28px; }
  .cta-top-covers{ grid-column:1; grid-row:1 / 3; }
  .cta-top-t{ grid-column:2; grid-row:2; align-self:start; }
  .cta-top.stuck .cta-top-row{ display:flex; }
}
@media (max-width:899px){ .cta-top-head h2{ font-size:21px; } }

/* 収支カード: 行の下線を dt/dd で揃える（dd は伸ばして中身だけ中央） */
@media (max-width:899px){
  .sc dd{ align-self:stretch; display:flex; align-items:center; justify-content:flex-end; }
  .sc dd.total{ align-self:stretch; }
}

/* 賃貸モデルルーム検索ウィジェット: 横はみ出し防止・余白調整 */
.kyoten{ overflow-x:hidden; }
.kyoten .wrap{ max-width:1060px; }
.kyoten [data-tw]{ max-width:100%; }
.kyoten [data-tw] *{ max-width:100%; box-sizing:border-box; }
@media (max-width:899px){ .kyoten{ padding:32px 0 40px; } .kyoten .wrap{ padding:0 12px; } }

/* ウィジェットを特長1の直下（特長2の前）に */
.kyoten{ margin:56px 0 8px; padding:0; }
@media (min-width:900px){ .kyoten{ margin:72px 0 0; } }

/* 特長1〜3（SP）: 見出しの下に写真 → 本文 の順 */
@media (max-width:899px){
  .fdet{ display:flex; flex-direction:column; }
  .fdet .body{ display:contents; }
  .fdet .no{ order:1; }
  .fdet h3{ order:2; margin-bottom:14px; }
  .fdet .ph{ order:3; margin-bottom:16px; }
  .fdet .body > p{ order:4; }
  .fdet .f1wide, .fdet .f2wide, .fdet .flowbox, .fdet .kariage, .fdet .bldg, .fdet > *:not(.body):not(.ph):not(.no):not(h3){ order:5; }
}

/* 張り付き帯: 相談・見学のサブボタンを追加表示 */
.cta-top-more{ display:none; }
.cta-top.stuck .cta-top-more{ display:flex; gap:8px; }
.cta-top-sub, #contents .cta-top-sub, #contents .cta-top-sub:link, #contents .cta-top-sub:visited{ display:inline-flex; align-items:center; justify-content:center; height:46px; padding:0 16px; border:1.5px solid var(--navy); border-radius:999px; color:var(--navy) !important; background:#fff; text-decoration:none !important; font-weight:700; font-size:13px; white-space:nowrap; }
#contents .cta-top-sub:hover{ background:#eef1f7; }
@media (min-width:900px){
  .cta-top.stuck .cta-top-t{ justify-content:flex-end; gap:10px; }
  .cta-top.stuck .cta-top-ttl{ margin-right:auto; }
}
@media (max-width:899px){
  .cta-top.stuck .cta-top-row{ padding:6px 10px; }
  .cta-top.stuck .cta-top-t{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:6px; width:100%; }
  .cta-top.stuck .cta-top-more{ display:contents; }
  .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ width:100%; height:44px; padding:0 8px; font-size:12px; gap:4px; }
  #contents .cta-top.stuck .cta-top-btn .free{ font-size:10px; padding:2px 6px; }
  .cta-top.stuck .cta-top-btn .arr{ display:none; }
  .cta-top-sub, #contents .cta-top-sub{ height:44px; padding:0 6px; font-size:11px; }
}

@media (max-width:899px){
  .cta-top.stuck .cta-top-t{ grid-template-columns:minmax(0,1.25fr) minmax(0,0.9fr) minmax(0,1.15fr); }
  .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ white-space:normal; line-height:1.2; text-align:center; font-size:11.5px; padding:0 6px; }
  .cta-top-sub, #contents .cta-top-sub{ white-space:normal; line-height:1.2; text-align:center; font-size:11px; padding:0 5px; }
}

/* 張り付き帯（SP）: 短いラベルに切り替え */
.lbl-sp{ display:none; }
.cta-top.stuck .cta-top-btn .lbl-pc{ display:inline; }
@media (max-width:899px){
  .cta-top.stuck .lbl-pc{ display:none !important; } .cta-top.stuck .lbl-sp{ display:inline; }
  .cta-top.stuck .cta-top-t{ grid-template-columns:minmax(0,1.35fr) minmax(0,0.95fr) minmax(0,1.1fr); gap:6px; }
  .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ white-space:nowrap; font-size:12px; gap:4px; padding:0 6px; }
  .cta-top-sub, #contents .cta-top-sub{ white-space:nowrap; font-size:11.5px; padding:0 4px; overflow:hidden; }
}

/* 張り付き帯（SP）: 2段（上=資料請求 全幅／下=相談・見学）に */
@media (max-width:899px){
  .cta-top.stuck .cta-top-row{ padding:6px 12px 8px; }
  .cta-top.stuck .cta-top-t{ grid-template-columns:1fr 1fr; gap:6px; }
  .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn{ grid-column:1 / -1; height:42px; font-size:13px; gap:8px; padding:0 12px; }
  .cta-top.stuck .lbl-pc{ display:inline !important; } .cta-top.stuck .cta-top-btn .lbl-sp{ display:none !important; }
  .cta-top.stuck .cta-top-btn .arr{ display:inline; }
  #contents .cta-top.stuck .cta-top-btn .free{ font-size:11px; padding:2px 8px; }
  .cta-top-sub, #contents .cta-top-sub{ height:36px; font-size:12px; padding:0 8px; }
  .cta-top-sub .lbl-sp{ display:none !important; } .cta-top-sub .lbl-pc{ display:inline !important; }
}

@media (max-width:899px){ .cta-top.stuck .cta-top-btn .arr{ display:none !important; } }

/* ウィジェットは最下部（資料セットの下・注釈の上） */
section.kyoten{ margin:0; padding:0 0 24px; background:#fff; }
@media (min-width:900px){ section.kyoten{ padding:0 0 32px; } }

/* 暮らしタイル見出し: 「全館空調／（エアロハスM）」で改行、他も単位で折り返す */
.lg-tg .nb{ display:inline-block; white-space:nowrap; }
.lg-tg{ flex-wrap:wrap; }
.lg-tg i{ margin-left:auto; }

/* 10/13 修正依頼: 表紙キャプション（ページ数・一言）、特長カードの写真トリミング、ポップアップ縦写真 */
.cta-top-covers figcaption .pg{ display:inline-block; margin-top:4px; font-size:11px; font-weight:700; color:#fff; background:var(--navy); padding:2px 8px; border-radius:3px; letter-spacing:.04em; }
.cta-top-covers figcaption em{ display:block; font-style:normal; font-size:11px; line-height:1.5; color:var(--sub); margin-top:6px; }
@media (max-width:899px){ .cta-top-covers figcaption em{ display:none; } }
.set .items .pg{ display:inline-block; margin-top:6px; font-size:11px; font-weight:700; color:var(--navy); background:#fff; padding:2px 8px; border-radius:3px; }
.reasons a .ph{ aspect-ratio:13/10; }
.reasons a img, #contents .reasons a img{ object-position:50% 60%; }
.lgm-thumbs button{ background:#eef1f7; }

/* 特長1〜3の写真: 枠にぴったり（#contents img{height:auto} に負けないよう） */
.fdet .ph{ position:relative; }
.fdet .ph img, #contents .fdet .ph img{ position:absolute; inset:0; width:100%; height:100% !important; object-fit:cover; }

/* 特長1 写真: 地面側まで見せる */
#f1 .ph img, #contents #f1 .ph img{ object-position:50% 100%; }

/* 特長1 写真: 写真の比率に合わせて切らない */
#f1 .ph{ aspect-ratio:1600/1232; max-height:none; }
#f1 .ph img, #contents #f1 .ph img{ object-position:50% 50%; }

/* 特長1カード: 少し寄せる（中心やや下） */
.reasons a[href="#f1"] img, #contents .reasons a[href="#f1"] img{ transform:scale(1.18); transform-origin:50% 62%; object-position:50% 62%; }
.reasons a[href="#f1"]:hover img{ transform:scale(1.22); }

/* 特長1 詳細写真も同じく少し寄せる */
#f1 .ph img, #contents #f1 .ph img{ transform:scale(1.18); transform-origin:50% 62%; }

/* 特長3 写真: 柱の天端まで入る 4:3 */
#f3 .ph{ aspect-ratio:4/3; max-height:none; }

/* 実例の希望見出し（SP）: 1行に */
@media (max-width:899px){ .case .wish b, #contents .case .wish b{ font-size:17px !important; letter-spacing:0 !important; white-space:nowrap; } }

/* 張り付き帯（PC）: 画面下部に固定、3ボタンをネイビー・同サイズで */
@media (min-width:900px){
  .cta-top.stuck .cta-top-in{ top:auto; bottom:0; border-bottom:0; border-top:1px solid var(--line); box-shadow:0 -2px 12px rgba(0,40,112,.08); }
  .cta-top.stuck .cta-top-row{ padding:10px 16px; }
  .cta-top.stuck .cta-top-t{ justify-content:center; gap:12px; }
  .cta-top.stuck .cta-top-ttl{ margin-right:16px; }
  .cta-top.stuck .cta-top-btn, #contents .cta-top.stuck .cta-top-btn,
  .cta-top.stuck .cta-top-sub, #contents .cta-top.stuck .cta-top-sub, #contents .cta-top.stuck .cta-top-sub:link, #contents .cta-top.stuck .cta-top-sub:visited{
    width:250px; min-width:0; height:48px; padding:0 16px; font-size:14px; border-radius:999px; background:var(--navy); color:#fff !important; border:0; gap:8px; }
  #contents .cta-top.stuck .cta-top-sub:hover, #contents .cta-top.stuck .cta-top-btn:hover{ background:var(--deep); }
  .cta-top.stuck .cta-top-more{ gap:12px; }
}

@media (min-width:900px){
  .cta-top.stuck .cta-top-t .cta-top-btn, #contents .cta-top.stuck .cta-top-t .cta-top-btn{ width:250px !important; min-width:250px; max-width:250px; flex:0 0 250px; height:48px; padding:0 14px; font-size:14px; white-space:nowrap; box-sizing:border-box; }
  #contents .cta-top.stuck .cta-top-btn .free{ font-size:11px; padding:2px 7px; flex:0 0 auto; }
  .cta-top.stuck .cta-top-btn .arr{ display:none; }
}

/* ===== 張り付き帯（PC）最終: 左に商品名、右に同サイズ3ボタンを等間隔 ===== */
@media (min-width:900px){
  .cta-top.stuck .cta-top-row{ max-width:1120px; padding:12px 24px; }
  .cta-top.stuck .cta-top-t{ display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; }
  .cta-top.stuck .cta-top-ttl{ margin:0; font-size:18px; gap:10px; flex:0 0 auto; }
  .cta-top.stuck .cta-top-ttl small{ font-size:13px; }
  .cta-top.stuck .cta-top-more{ display:contents; }
  .cta-top.stuck .cta-top-t > .cta-top-btn, .cta-top.stuck .cta-top-more > .cta-top-sub,
  #contents .cta-top.stuck .cta-top-t > .cta-top-btn, #contents .cta-top.stuck .cta-top-more > .cta-top-sub{
    flex:0 0 232px; width:232px !important; min-width:0; max-width:none; height:48px; padding:0 12px; margin:0 0 0 12px !important;
    font-size:14px; letter-spacing:0; border-radius:999px; background:var(--navy); color:#fff !important; border:0; gap:8px; white-space:nowrap; box-sizing:border-box; justify-content:center; }
  .cta-top.stuck .cta-top-t > .cta-top-btn{ margin-left:auto !important; }
  #contents .cta-top.stuck .cta-top-btn .free{ font-size:10.5px; padding:2px 6px; line-height:1.3; }
  .cta-top.stuck .cta-top-btn .arr{ display:none; }
}

.cta-top.stuck .cta-top-btn::after, .cta-top.stuck .cta-top-btn::before, #contents .cta-top.stuck .cta-top-btn::after{ display:none !important; content:none !important; }

/* 収支シミュレーション表（PC）: 建物タイルを大きく */
@media (min-width:900px){
  .sim-t .stk{ width:132px; gap:3px; margin-bottom:12px; }
  .sim-t .stk i{ height:30px; }
  .sim-t .stk i.own, .sim-t .stk i.r2 b{ font-size:13px; }
}

/* 表紙3冊: 比率が違うので切らずに原寸比で表示（下揃え） */
.cta-top-covers{ align-items:end; }
.cta-top-covers img, #contents .cta-top-covers img{ aspect-ratio:auto; height:auto !important; object-fit:contain; }
.covers.row3{ align-items:end; }
.covers.row3 img, #contents .covers.row3 img{ aspect-ratio:auto; height:auto !important; object-fit:contain; }
.set .items{ align-items:end; }
.set .items img, #contents .set .items img{ aspect-ratio:auto; height:auto !important; object-fit:contain; }

/* 表紙3冊: 高さを揃え、幅は素材の比率のまま */
.cta-top-covers{ display:flex; justify-content:center; align-items:flex-end; gap:12px; }
.cta-top-covers figure{ flex:0 0 auto; width:auto; max-width:32%; }
.cta-top-covers img, #contents .cta-top-covers img{ height:150px !important; width:auto; max-width:100%; aspect-ratio:auto; object-fit:contain; display:block; margin:0 auto; }
.cat .covers.row3{ display:flex; justify-content:center; align-items:flex-end; gap:12px; }
.cat .covers.row3 figure{ flex:0 0 auto; width:auto; max-width:32%; }
.cat .covers.row3 img, #contents .cat .covers.row3 img{ height:150px !important; width:auto; max-width:100%; aspect-ratio:auto; object-fit:contain; margin:0 auto; }
.set .items{ display:flex; justify-content:center; align-items:flex-end; gap:14px; max-width:none; }
.set .items > div{ flex:0 0 auto; width:auto; max-width:32%; }
.set .items img, #contents .set .items img{ height:190px !important; width:auto; max-width:100%; aspect-ratio:auto; object-fit:contain; margin:0 auto; }
@media (min-width:900px){
  .cta-top-covers img, #contents .cta-top-covers img{ height:220px !important; }
  .cat .covers.row3 img, #contents .cat .covers.row3 img{ height:190px !important; }
  .set .items img, #contents .set .items img{ height:280px !important; }
}

@media (max-width:899px){
  .cta-top-covers figure, .cat .covers.row3 figure, .set .items > div{ max-width:none; }
  .cta-top-covers img, #contents .cta-top-covers img, .cat .covers.row3 img, #contents .cat .covers.row3 img{ height:128px !important; }
  .set .items img, #contents .set .items img{ height:128px !important; }
  .cta-top-covers, .cat .covers.row3, .set .items{ gap:10px; }
}

/* 表紙: 幅の上限を外し、必ず同じ高さで描画（レターボックス防止） */
.cta-top-covers figure, .cat .covers.row3 figure, .set .items > div{ max-width:none !important; flex:0 0 auto !important; }
.cta-top-covers img, #contents .cta-top-covers img, .cat .covers.row3 img, #contents .cat .covers.row3 img, .set .items img, #contents .set .items img{ max-width:none !important; width:auto !important; object-fit:fill; }
@media (min-width:900px) and (max-width:1199px){
  .cta-top-covers img, #contents .cta-top-covers img{ height:180px !important; }
  .cat .covers.row3 img, #contents .cat .covers.row3 img{ height:160px !important; }
}

/* 下部バー（PC中間幅）: 3ボタンが収まるようサイズを縮小 */
@media (min-width:900px) and (max-width:1199px){
  .cta-top.stuck .cta-top-ttl{ display:none; }
  .cta-top.stuck .cta-top-t > .cta-top-btn, .cta-top.stuck .cta-top-more > .cta-top-sub,
  #contents .cta-top.stuck .cta-top-t > .cta-top-btn, #contents .cta-top.stuck .cta-top-more > .cta-top-sub{ flex:0 0 200px; width:200px !important; font-size:13px; margin-left:10px !important; }
  .cta-top.stuck .cta-top-t{ justify-content:center; }
  .cta-top.stuck .cta-top-t > .cta-top-btn{ margin-left:0 !important; }
}

/* 特長2 6つの円（PC中間幅）: はみ出し防止 */
@media (min-width:900px){ .f2wide .duty{ grid-template-columns:repeat(6, minmax(0,1fr)); } .f2wide .duty div{ min-width:0; width:auto; font-size:13px; } .f2wide .duty span{ font-size:13px; } }
