/* 下地 */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%;height:auto}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* 白地・紺の文字・余白の大きい企業サイト。システム開発だけ紺の帯で分ける。明るい見た目だけで作る */
:root{
  --bg:#FFFFFF; --bg-alt:#F5F7FA; --ink:#0E1A2B; --text:#4A5565; --muted:#5B6675;
  --line:#E3E7EC; --accent:#1F4E8C; --accent-dark:#163A69; --navy-line:#2A3A52;
  --on-navy:#C9D2DE; --on-navy-accent:#9DB8DE; --photo:#E6EAF0;
  --jp:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif;
  --en:'Montserrat','Noto Sans JP',sans-serif;
  color-scheme: light;
}
body{background:var(--bg);color:var(--ink);font-family:var(--jp);font-size:15px;line-height:1.85;letter-spacing:.02em}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,h3{text-wrap:balance;margin:0;font-weight:700}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.band{padding-block:120px}
.alt{background:var(--bg-alt)}
.eyebrow{font-family:var(--en);font-size:12px;font-weight:600;letter-spacing:.24em;color:var(--accent)}
.h2{font-size:34px;margin-top:10px}
.lead{color:var(--text);max-width:520px}
.head-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:56px}
.photo{background:var(--photo);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}

/* 上の帯 */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);border-bottom:1px solid var(--line)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.hd{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;min-height:80px}
.logo img{height:32px;width:auto;filter:brightness(0);display:block}
nav.menu{display:flex;flex-wrap:wrap;align-items:center;gap:0 28px;font-size:14px;font-weight:500}
nav.menu a{padding:14px 0}
nav.menu a:hover{color:var(--accent)}
nav.menu a.cta{background:var(--accent);color:#FFFFFF;padding:12px 24px;border-radius:2px}
nav.menu a.cta:hover{background:var(--accent-dark);color:#FFFFFF}

/* 大きな一言 */
.hero{display:flex;flex-wrap:wrap;gap:56px;align-items:center;padding-block:96px 112px}
.hero > div{flex:1 1 440px;min-width:0}
.hero h1{font-size:clamp(32px,4.4vw,52px);line-height:1.38;letter-spacing:.04em;margin-top:22px}
.hero .lead{margin-top:28px;font-size:16px}
.hero .photo{flex:1 1 420px;height:460px;min-width:0}
.btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:44px}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 30px;font-size:15px;font-weight:500;border-radius:2px;border:1px solid var(--ink)}
.btn.solid{background:var(--ink);color:#FFFFFF}
.btn.solid:hover{background:var(--accent);border-color:var(--accent)}
.btn.line:hover{background:var(--ink);color:#FFFFFF}

/* 2つの事業 */
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:28px}
.biz{display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);transition:border-color .2s}
.biz:hover{border-color:var(--ink)}
.biz .photo{height:260px}
.biz .body{padding:36px}
.biz .tag{font-family:var(--en);font-size:12px;letter-spacing:.16em;color:var(--muted)}
.biz h3{font-size:26px;margin:6px 0 14px}
.biz p.t{color:var(--text)}
.more{margin-top:24px;font-size:14px;font-weight:500;color:var(--accent)}

/* 不動産の数字 */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin-bottom:64px}
.stat{padding:36px 28px 36px 0}
.stat .k{font-size:14px;color:var(--muted)}
.stat .v{font-size:20px;font-weight:700;margin-top:6px}
.stat .n{font-family:var(--en);font-size:56px;line-height:1.1;color:var(--accent);font-weight:500}
.stat .w{font-size:44px;line-height:1.3;color:var(--accent)}
.re-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:24px}
.re{display:flex;flex-direction:column;gap:14px}
.re .photo{height:150px}
.re h3{font-size:17px}
.re p{font-size:14px;color:var(--text)}
.re:hover h3{color:var(--accent)}

/* システム開発（紺の帯） */
.navy{background:var(--ink);color:#FFFFFF}
.navy .eyebrow{color:var(--on-navy-accent)}
.navy .lead{color:var(--on-navy)}
.navy .promise{margin-top:40px}
.navy .promise h2{font-size:clamp(34px,4.4vw,56px)}
.navy .steps li{border-top-color:var(--navy-line)}
.navy .steps li:first-child{border-top-color:#FFFFFF}
.navy .steps li:last-child{border-bottom-color:var(--navy-line)}
.navy .steps .no{color:var(--on-navy-accent)}
.navy .steps p{color:var(--on-navy)}
.sub{margin-top:96px;padding-top:72px;border-top:1px solid var(--navy-line)}
.sub-title{font-size:26px;margin-top:10px}
.four{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:1px;background:var(--navy-line);border:1px solid var(--navy-line)}
.four > div{background:var(--ink);padding:40px 30px}
.four h3{font-size:19px;margin:22px 0 10px}
.four p{font-size:14px;color:var(--on-navy)}

/* システム開発の要点 */
.promise{display:flex;flex-wrap:wrap;gap:56px}
.promise > div{flex:1 1 420px;min-width:0}
.promise h2{font-size:clamp(30px,3.6vw,44px);line-height:1.45;margin-top:14px}
.promise .lead{margin-top:28px;font-size:16px;max-width:none}
.steps{flex:1 1 440px;min-width:0;list-style:none;margin:0;padding:0}
.steps li{display:flex;gap:28px;padding:30px 0;border-top:1px solid var(--line)}
.steps li:first-child{border-top-color:var(--ink)}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps .no{font-family:var(--en);font-size:13px;font-weight:600;color:var(--accent);padding-top:4px;white-space:nowrap}
.steps h3{font-size:19px;margin-bottom:6px}
.steps p{font-size:14px;color:var(--text)}

/* つくれるもの */
.six{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px}
.six > div{background:var(--bg);border:1px solid var(--line);padding:34px 30px}
.six .cat{font-size:12px;font-weight:500;letter-spacing:.1em;color:var(--muted)}
.six h3{font-size:18px;margin:10px 0}
.six p{font-size:14px;color:var(--text)}

/* 約束・お知らせ */
.vision{max-width:820px;margin:0 auto;text-align:center}
.vision h2{font-size:34px;line-height:1.6;margin:14px 0 28px}
.vision p{color:var(--text);font-size:16px}
.underline{display:inline-flex;gap:12px;margin-top:36px;font-weight:500;border-bottom:1px solid var(--ink);padding-bottom:4px}
.news{display:flex;flex-wrap:wrap;gap:40px}
.news > div{flex:1 1 220px}
.news ul{flex:999 1 560px;min-width:0;list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.news li a{display:flex;flex-wrap:wrap;gap:6px 40px;padding:26px 0;border-bottom:1px solid var(--line)}
.news li a:hover span:last-child{color:var(--accent)}
.news .d{font-family:var(--en);font-size:13px;color:var(--muted);min-width:90px;font-variant-numeric:tabular-nums}

/* お問い合わせ・下の帯 */
.contact{background:var(--accent);color:#FFFFFF}
.contact .eyebrow{color:#D6E2F3}
.contact .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:36px}
.contact p.s{color:#E4ECF7;margin-top:10px}
.btn.white{background:#FFFFFF;color:var(--ink);border-color:#FFFFFF;font-weight:700;min-height:60px}
.btn.ghost{border-color:#FFFFFF;color:#FFFFFF;font-weight:700;min-height:60px}
.btn.ghost:hover{background:#FFFFFF;color:var(--ink)}
footer{background:var(--ink);color:var(--on-navy);padding-block:64px 36px;font-size:14px}
.ft{display:flex;flex-wrap:wrap;justify-content:space-between;gap:44px;padding-bottom:48px;border-bottom:1px solid var(--navy-line)}
.ft img{height:32px;width:auto;display:block}
.cols{flex:2 1 520px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:28px}
.cols div{display:flex;flex-direction:column;gap:10px}
.cols b{color:#FFFFFF}
.cols a:hover{color:#FFFFFF}
.fb{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-top:28px;font-size:12px}
.fb div{display:flex;gap:24px}


/* 下のページ共通 */
nav.menu a.on{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}
.crumb{font-size:12px;color:var(--muted);padding-block:18px}
.crumb a:hover{color:var(--accent)}
.page-head{padding-block:72px 96px;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(32px,4vw,48px);margin-top:14px}
.page-head .lead{margin-top:22px;font-size:16px;max-width:640px}
.navy .promise h2.big{font-size:clamp(34px,4.4vw,56px)}
.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1px;background:var(--navy-line);border:1px solid var(--navy-line);margin-top:72px}
.why > div{background:var(--ink);padding:36px 30px}
.why .k{font-family:var(--en);font-size:12px;letter-spacing:.16em;color:var(--on-navy-accent)}
.why h3{font-size:19px;margin:12px 0 10px}
.why p{font-size:14px;color:var(--on-navy)}
.svc{display:flex;flex-direction:column}
.svc > div{display:flex;flex-wrap:wrap;gap:24px 56px;padding-block:48px;border-top:1px solid var(--line)}
.svc > div:first-child{border-top-color:var(--ink)}
.svc > div:last-child{border-bottom:1px solid var(--line)}
.svc .l{flex:1 1 300px;min-width:0;display:flex;gap:20px;align-items:flex-start}
.svc .l h3{font-size:24px}
.svc .l .en{font-family:var(--en);font-size:12px;letter-spacing:.16em;color:var(--accent);margin-bottom:4px}
.svc .r{flex:2 1 460px;min-width:0}
.svc .r p{color:var(--text)}
.svc ul{margin:18px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px 24px}
.svc li{font-size:14px;padding-left:18px;position:relative}
.svc li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--accent)}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:16px}
.flow li{background:var(--bg);border:1px solid var(--line);padding:28px 24px}
.flow .no{font-family:var(--en);font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--accent)}
.flow h3{font-size:17px;margin:8px 0 8px}
.flow p{font-size:13px;color:var(--text)}
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;padding:26px 0;font-weight:700;font-size:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--en);font-weight:500;color:var(--accent);font-size:20px;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.faq .a{padding:0 0 26px;color:var(--text);max-width:820px}
.faq .q{font-family:var(--en);color:var(--accent);margin-right:14px}
/* 不動産のページ */
.page-hero{display:flex;flex-wrap:wrap;gap:48px;align-items:stretch;padding-block:64px 96px}
.page-hero > div{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;justify-content:center}
.page-hero .photo{flex:1 1 420px;min-height:380px}
.page-hero h1{font-size:clamp(32px,4vw,48px);margin-top:14px}
.page-hero .lead{margin-top:22px;font-size:16px}
.stats.four-col .stat .n{font-size:48px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:28px}
.card{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--bg);transition:border-color .2s}
.card:hover{border-color:var(--ink)}
.card .photo{height:220px}
.card .body{padding:30px 30px 34px;display:flex;flex-direction:column;gap:12px;flex:1}
.card .en{font-family:var(--en);font-size:12px;letter-spacing:.16em;color:var(--muted)}
.card h3{font-size:21px}
.card p{font-size:14px;color:var(--text)}
.card .more{margin-top:auto;padding-top:8px}
.policy{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.policy > div:first-child{flex:1 1 380px;min-width:0}
.policy h2{font-size:clamp(28px,3.2vw,38px);line-height:1.5;margin-top:14px}
.policy .lead{margin-top:24px;max-width:none}
.reasons{flex:1 1 460px;min-width:0;list-style:none;margin:0;padding:0}
.reasons li{display:flex;gap:28px;padding:30px 0;border-top:1px solid var(--navy-line)}
.reasons li:first-child{border-top-color:#FFFFFF}
.reasons li:last-child{border-bottom:1px solid var(--navy-line)}
.reasons .no{font-family:var(--en);font-size:28px;font-weight:500;color:var(--on-navy-accent);line-height:1.2;min-width:44px}
.reasons h3{font-size:19px;margin-bottom:6px}
.reasons p{font-size:14px;color:var(--on-navy)}
.docs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.docs span{font-size:12px;border:1px solid var(--line);padding:2px 10px;color:var(--muted)}
.case{display:flex;flex-wrap:wrap;gap:40px;align-items:center;border:1px solid var(--line);background:var(--bg);padding:48px}
.case > div{flex:1 1 360px;min-width:0}
.case h3{font-size:22px;margin:10px 0 14px}
.case p{color:var(--text)}
.case .bars{flex:1 1 360px;display:flex;flex-direction:column;gap:18px}
.bar .lbl{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:6px;font-variant-numeric:tabular-nums}
.bar .lbl b{color:var(--ink);font-family:var(--en);font-size:18px}
.bar .track{height:14px;background:var(--bg-alt)}
.bar .fill{height:100%}
.safe{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.safe > div{background:var(--bg);padding:34px 30px}
.safe h3{font-size:18px;margin:14px 0 8px}
.safe p{font-size:14px;color:var(--text)}
.others{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.others a{background:var(--bg);padding:26px 24px;display:flex;justify-content:space-between;gap:12px;font-weight:700;font-size:15px}
.others a:hover{color:var(--accent)}
/* 会社について・採用 */
.tabs{display:flex;flex-wrap:wrap;gap:0 32px;border-bottom:1px solid var(--line);font-size:14px;font-weight:500}
.tabs a{padding:16px 0}
.tabs a:hover{color:var(--accent)}
.philo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1px;background:var(--navy-line);border:1px solid var(--navy-line);margin-top:56px}
.philo > div{background:var(--ink);padding:40px 30px}
.philo p.t{font-size:20px;font-weight:700;line-height:1.6;color:#FFFFFF}
.philo .k{font-family:var(--en);font-size:12px;letter-spacing:.16em;color:var(--on-navy-accent);margin-bottom:14px}
.code{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:0 56px;border-top:1px solid var(--ink)}
.code li{display:flex;gap:20px;padding:24px 0;border-bottom:1px solid var(--line);font-size:16px}
.code .no{font-family:var(--en);font-weight:600;color:var(--accent);min-width:28px}
.policy-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.policy-list li{border:1px solid var(--line);background:var(--bg);padding:34px 30px;font-size:17px;font-weight:700;line-height:1.7}
.letter{max-width:760px;margin:0 auto}
.letter h2{font-size:clamp(28px,3.2vw,36px);line-height:1.6;margin:14px 0 36px}
.letter p{color:var(--text);font-size:16px;line-height:2.1}
.letter p + p{margin-top:24px}
.letter .sign{margin-top:40px;text-align:right;color:var(--ink);font-weight:500}
.prof{width:100%;border-collapse:collapse;border-top:1px solid var(--ink);font-size:15px}
.prof th{width:220px;text-align:left;font-weight:700;padding:24px 24px 24px 0;border-bottom:1px solid var(--line);vertical-align:top}
.prof td{padding:24px 0;border-bottom:1px solid var(--line);color:var(--text)}
.prof td ol{margin:0;padding-left:1.3em}
.mapbox{margin-top:40px;height:320px}
@media (max-width:640px){.prof th{width:110px}}
.req{width:100%;border-collapse:collapse;border-top:1px solid var(--ink);font-size:15px}
.req th{width:200px;text-align:left;font-weight:700;padding:22px 24px 22px 0;border-bottom:1px solid var(--line);vertical-align:top}
.req td{padding:22px 0;border-bottom:1px solid var(--line);color:var(--text)}
@media (max-width:640px){.req th{width:96px}}
.pay{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.pay > div{background:var(--bg);padding:30px 28px}
.pay .k{font-size:13px;color:var(--muted)}
.pay .v{font-family:var(--en);font-size:34px;font-weight:500;color:var(--accent);margin-top:4px;font-variant-numeric:tabular-nums}
.pay .v small{font-family:var(--jp);font-size:15px;color:var(--ink);margin-left:4px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.chips span{border:1px solid var(--on-navy);color:#FFFFFF;font-size:14px;padding:6px 16px;border-radius:999px}
/* お知らせ・お問い合わせ・プライバシー */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.filters button{font:inherit;font-size:14px;min-height:44px;padding:0 20px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#FFFFFF}
.filters button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.nlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.nlist a{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;padding:28px 0;border-bottom:1px solid var(--line)}
.nlist a:hover .tt{color:var(--accent)}
.nlist .d{font-family:var(--en);font-size:13px;color:var(--muted);min-width:96px;font-variant-numeric:tabular-nums}
.nlist .c{font-size:12px;border:1px solid var(--line);padding:2px 12px;min-width:84px;text-align:center;color:var(--muted)}
.nlist .tt{flex:1 1 360px;min-width:0;font-size:16px}
.pager{display:flex;justify-content:center;gap:8px;margin-top:48px}
.pager span{min-width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);font-family:var(--en);font-size:14px}
.pager span.cur{background:var(--ink);color:#FFFFFF;border-color:var(--ink)}
.form-wrap{max-width:860px;margin:0 auto}
.kind{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;border:0;margin:0 0 40px;padding:0}
.kind legend{font-weight:700;margin-bottom:14px;padding:0}
.kind label{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 18px;border:1px solid var(--line);background:var(--bg);cursor:pointer;font-weight:500}
.kind label:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
.kind input{accent-color:var(--accent);width:18px;height:18px}
.fields{display:flex;flex-direction:column;border-top:1px solid var(--ink)}
.f{display:flex;flex-wrap:wrap;gap:10px 32px;padding:22px 0;border-bottom:1px solid var(--line)}
.f > label,.f > .lab{flex:0 0 220px;font-weight:700;font-size:15px;padding-top:10px;display:flex;align-items:flex-start;gap:10px}
.f .req,.f .opt{font-size:11px;font-weight:500;padding:1px 8px;line-height:1.8;flex:none}
.f .req{background:var(--accent);color:#FFFFFF}
.f .opt{border:1px solid var(--line);color:var(--muted)}
.f .in{flex:1 1 340px;min-width:0}
.f input[type=text],.f input[type=email],.f input[type=tel],.f select,.f textarea{width:100%;box-sizing:border-box;font:inherit;font-size:15px;color:var(--ink);background:var(--bg-alt);border:1px solid var(--line);border-radius:2px;padding:12px 14px;min-height:48px}
.f textarea{min-height:180px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--accent);outline-offset:0;background:var(--bg)}
.f .hint{font-size:12px;color:var(--muted);margin-top:6px}
.agree{display:flex;align-items:center;justify-content:center;gap:10px;margin:36px 0 28px;font-size:14px}
.agree input{accent-color:var(--accent);width:18px;height:18px}
.agree a{color:var(--accent);text-decoration:underline}
.send{display:flex;justify-content:center}
.send button{font:inherit;font-weight:700;font-size:16px;min-height:60px;min-width:280px;border:0;background:var(--accent);color:#FFFFFF;border-radius:2px;cursor:pointer}
.send button:hover{background:var(--accent-dark)}
.done{border:1px solid var(--accent);background:var(--bg);padding:40px;text-align:center}
.done h3{font-size:22px;margin-bottom:10px}
.mailnote{font-size:14px;color:var(--text);margin-top:14px}
.legal{max-width:860px;margin:0 auto}
.legal .intro{color:var(--text);font-size:15px;margin-bottom:48px}
.legal article{padding:32px 0;border-top:1px solid var(--line)}
.legal article:first-of-type{border-top-color:var(--ink)}
.legal h2{font-size:18px;display:flex;gap:16px;margin-bottom:12px}
.legal h2 .no{font-family:var(--en);color:var(--accent);font-weight:600;white-space:nowrap}
.legal p,.legal li{color:var(--text);font-size:15px}
.legal ol,.legal ul{margin:10px 0 0;padding-left:1.4em;display:flex;flex-direction:column;gap:6px}
.legal .desk{margin-top:16px;background:var(--bg-alt);padding:24px 28px;font-size:15px}
.legal .desk p{color:var(--ink)}
.legal .end{text-align:right;color:var(--muted);font-size:14px;margin-top:40px}
/* お問い合わせ（作り直し） */
.ct-hero{background:var(--ink);color:#FFFFFF;padding-block:88px 160px}
.ct-hero .crumb{color:var(--on-navy);padding-block:0 40px}
.ct-hero h1{font-size:clamp(32px,4.4vw,54px);line-height:1.4;margin-top:14px}
.ct-hero .lead{color:var(--on-navy);margin-top:22px;font-size:16px;max-width:560px}
.ct-hero .eyebrow{color:var(--on-navy-accent)}
.ct-body{margin-top:-100px;padding-bottom:120px}
.ct-grid{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.ct-side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:20px}
.ct-card{flex:2 1 560px;min-width:0;background:var(--bg);border:1px solid var(--line);box-shadow:0 24px 60px rgba(14,26,43,.10);padding:48px}
@media (max-width:640px){.ct-card{padding:28px 20px}}
.side-box{background:var(--bg);border:1px solid var(--line);padding:30px 28px}
.side-box h2{font-size:17px;margin-bottom:18px}
.side-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.side-steps li{display:flex;gap:16px}
.side-steps .dot{flex:none;width:30px;height:30px;border-radius:50%;background:var(--bg-alt);color:var(--accent);font-family:var(--en);font-weight:600;font-size:13px;display:flex;align-items:center;justify-content:center}
.side-steps b{display:block;font-size:15px}
.side-steps span.t{font-size:13px;color:var(--text)}
.side-promise{background:var(--accent);color:#FFFFFF;padding:30px 28px}
.side-promise p.k{font-family:var(--en);font-size:12px;letter-spacing:.2em;color:#D6E2F3}
.side-promise h2{font-size:24px;line-height:1.5;margin:8px 0 10px}
.side-promise p.t{font-size:14px;color:#E4ECF7}
.side-mail{font-size:13px;color:var(--text);padding:0 4px}
.q-title{font-size:15px;font-weight:700;margin:0 0 14px;display:flex;align-items:center;gap:10px}
.q-title .n{font-family:var(--en);font-size:12px;color:var(--accent);letter-spacing:.12em}
.kinds{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:12px;border:0;margin:0 0 40px;padding:0}
.kinds label{position:relative;display:flex;flex-direction:column;gap:10px;padding:20px 18px;border:1px solid var(--line);cursor:pointer;transition:border-color .15s,background .15s}
.kinds label:hover{border-color:var(--ink)}
.kinds input{position:absolute;opacity:0;pointer-events:none}
.kinds svg{stroke:var(--muted)}
.kinds b{font-size:15px}
.kinds small{font-size:12px;color:var(--muted);line-height:1.6}
.kinds label:has(input:checked){border-color:var(--accent);background:#F2F6FB;box-shadow:inset 0 0 0 1px var(--accent)}
.kinds label:has(input:checked) svg{stroke:var(--accent)}
.kinds label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
.chips2{display:flex;flex-wrap:wrap;gap:10px;border:0;margin:0;padding:0}
.chips2 label{position:relative;cursor:pointer}
.chips2 input{position:absolute;opacity:0;pointer-events:none}
.chips2 span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;font-size:14px;transition:all .15s}
.chips2 label:hover span{border-color:var(--ink)}
.chips2 input:checked + span{background:var(--accent);border-color:var(--accent);color:#FFFFFF}
.chips2 input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.block{margin-bottom:36px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px 20px}
.fld{display:flex;flex-direction:column;gap:8px;min-width:0}
.fld label{font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}
.fld .opt{font-size:11px;font-weight:500;color:var(--muted)}
.fld input,.fld textarea{width:100%;box-sizing:border-box;font:inherit;font-size:15px;color:var(--ink);background:var(--bg);border:0;border-bottom:1px solid #C5CDD8;border-radius:0;padding:12px 2px;min-height:48px;transition:border-color .15s}
.fld textarea{min-height:140px;resize:vertical;border:1px solid #C5CDD8;padding:14px}
.fld input:focus,.fld textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 1px 0 0 var(--accent)}
.fld textarea:focus{box-shadow:inset 0 0 0 1px var(--accent)}
.fld input::placeholder,.fld textarea::placeholder{color:#8A94A3}
.sendrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.sendrow .agree2{display:flex;align-items:center;gap:10px;font-size:14px}
.sendrow .agree2 input{accent-color:var(--accent);width:18px;height:18px}
.sendrow .agree2 a{color:var(--accent);text-decoration:underline}
.sendrow button{font:inherit;font-weight:700;font-size:16px;min-height:60px;padding:0 44px;border:0;background:var(--accent);color:#FFFFFF;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;gap:14px;transition:background .15s}
.sendrow button:hover{background:var(--accent-dark)}
.done2{text-align:center;padding:40px 10px}
.done2 .ok{width:64px;height:64px;border-radius:50%;background:#F2F6FB;display:inline-flex;align-items:center;justify-content:center;margin-bottom:20px}
.done2 h2{font-size:24px;margin-bottom:10px}
.done2 p{color:var(--text)}
@media (max-width:640px){
  .band{padding-block:80px}
  .hero{padding-block:56px 72px}
  .hero .photo{height:260px}
  .h2,.vision h2{font-size:27px}
  nav.menu{gap:0 18px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* ワードプレスの管理バーが出ているとき */
.admin-bar header{top:32px}
@media (max-width:782px){.admin-bar header{top:0}}
/* スマホのメニュー */
.menu-btn{display:none;font:inherit;font-size:13px;font-weight:500;min-height:44px;padding:0 16px;border:1px solid var(--ink);background:var(--bg);color:var(--ink);border-radius:2px;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:inline-flex;align-items:center;gap:8px}
  nav.menu{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding-bottom:16px}
  nav.menu.open{display:flex}
  nav.menu a{padding:14px 0;border-top:1px solid var(--line)}
  nav.menu a.cta{text-align:center;margin-top:12px}
}
/* 記事のページ */
.post-body{max-width:760px;margin:0 auto;font-size:16px;line-height:2}
.post-body h2{font-size:24px;margin:48px 0 16px}
.post-body h3{font-size:19px;margin:36px 0 12px}
.post-body p{margin:0 0 1.4em;color:var(--text)}
.post-body a{color:var(--accent);text-decoration:underline}
.post-meta{display:flex;gap:16px;align-items:center;margin-bottom:12px}
.form-error{background:#FDF1F0;color:#8A1F11;border:1px solid #E8B4AE;padding:14px 18px;margin-bottom:24px;font-size:14px}
/* お知らせの絞り込みと、ページ送り */
.filters a.fbtn{display:inline-flex;align-items:center;font-size:14px;min-height:44px;padding:0 20px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px}
.filters a.fbtn[data-on="true"]{background:var(--ink);border-color:var(--ink);color:#FFFFFF}
.filters a.fbtn:hover{border-color:var(--ink)}
.pager-wp .nav-links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.pager-wp .page-numbers{min-width:44px;height:44px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);font-family:var(--en);font-size:14px}
.pager-wp .page-numbers.current{background:var(--ink);color:#FFFFFF;border-color:var(--ink)}
.pager-wp .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* photos (production: image files) */
.photo-apartment{background-image:url(../img/photo-apartment.jpg);background-size:cover;background-position:center}
.photo-city{background-image:url(../img/photo-city.jpg);background-size:cover;background-position:center}
.photo-condo{background-image:url(../img/photo-condo.jpg);background-size:cover;background-position:center}
.photo-data{background-image:url(../img/photo-data.jpg);background-size:cover;background-position:center}
.photo-development{background-image:url(../img/photo-development.jpg);background-size:cover;background-position:center}
.photo-land{background-image:url(../img/photo-land.jpg);background-size:cover;background-position:center}
.photo-office{background-image:url(../img/photo-office.jpg);background-size:cover;background-position:center}
.photo-people{background-image:url(../img/photo-people.jpg);background-size:cover;background-position:center}
.photo-rental{background-image:url(../img/photo-rental.jpg);background-size:cover;background-position:center}
.photo-tokyo{background-image:url(../img/photo-tokyo.jpg);background-size:cover;background-position:center}

/* --- splash + hero motion v2 (2026-11-08) --- */
#splash{position:fixed;inset:0;background:#000;z-index:9999;display:flex;align-items:center;justify-content:center;animation:splashHide .7s ease 2.7s forwards}
#splash .splash-in{text-align:center}
#splash .splash-img{width:min(300px,72vw);height:auto;animation:splashIn 1.3s ease both}
#splash.done{opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s}
@keyframes splashIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes splashHide{to{opacity:0;visibility:hidden}}
.hero{overflow-x:clip}
.hero-slides{position:relative;overflow:hidden;background:#0a1220;animation:heroReveal 1.1s ease 1.9s both}
.hero-slides .slide{position:absolute;inset:0;opacity:0;animation:heroSlide 21s linear infinite}
.hero-slides .slide:nth-child(1){animation-delay:-2s}
.hero-slides .slide:nth-child(2){animation-delay:5s}
.hero-slides .slide:nth-child(3){animation-delay:12s}
@keyframes heroSlide{0%{opacity:0;transform:scale(1.12)}5%{opacity:1}33%{opacity:1}38%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes heroReveal{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
.hero-slides::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(4,10,24,.38),rgba(4,10,24,0) 45%);z-index:1;pointer-events:none}
.hero-slides::after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.28);z-index:2;pointer-events:none}
.hero .eyebrow,.hero h1,.hero .lead,.hero .btns{animation:fadeUp .9s ease both}
.hero .eyebrow{animation-delay:1.95s}.hero h1{animation-delay:2.1s}.hero .lead{animation-delay:2.25s}.hero .btns{animation-delay:2.4s}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.hero-slides,.hero-slides .slide,.hero .eyebrow,.hero h1,.hero .lead,.hero .btns{animation:none}.hero-slides .slide:nth-child(1){opacity:1}#splash{animation-duration:.1s;animation-delay:.1s}}
