
:root{--navy:#12305a;--navy-d:#0b1f3d;--blue:#1f5fae;--gold:#b8955a;--gold-d:#9c7a42;--sand:#f5f1ea;--ink:#1d2533;--sub:#5c6573;--line:#e3ddd2;
  --font:'Noto Sans JP',system-ui,sans-serif;--head:'Shippori Mincho','Noto Serif JP',serif;--en:'Cormorant Garamond',serif}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:clip}
body{font-family:var(--font);color:var(--ink);line-height:1.95;background:#fff;font-size:16px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue)}
ul,ol{list-style:none}
.in{max-width:1200px;margin:0 auto;padding:0 24px}
.narrow{max-width:900px}
.c{text-align:center}
.sp{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border-radius:2px;font-weight:700;text-decoration:none;transition:.25s;border:1px solid transparent;font-size:15px;line-height:1.4;letter-spacing:.06em}
.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover{background:var(--gold-d)}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--navy-d)}
.btn-line{border-color:var(--navy);color:var(--navy)}.btn-line:hover{background:var(--navy);color:#fff}
.btn-line-w{border-color:rgba(255,255,255,.7);color:#fff}.btn-line-w:hover{background:#fff;color:var(--navy)}
.btn-lg{padding:16px 36px;font-size:16px}
.more{font-weight:700;text-decoration:none;color:var(--navy);font-size:15px;border-bottom:1px solid var(--gold);padding-bottom:2px}.more::after{content:" →"}
/* ロゴ */
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.logo .mark{width:42px;height:35px;color:var(--blue)}
.logo span{display:flex;flex-direction:column;line-height:1.1}
.logo b{font-family:var(--font);font-weight:900;font-size:23px;letter-spacing:.08em}
.logo small{font-family:var(--en);font-size:13px;letter-spacing:.32em;color:var(--gold-d);font-weight:600}
.logo-w,.logo-w .mark{color:#fff}
/* ヘッダー */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd-in{max-width:1320px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:20px}
.hd-nav{margin-left:auto;display:flex;align-items:center;gap:24px}
.hd-nav ul{display:flex;gap:24px}
.hd-nav ul a{color:var(--ink);text-decoration:none;font-weight:500;font-size:15px}
.hd-nav ul a:hover,.hd-nav ul a[aria-current]{color:var(--blue)}
.hd-nav ul a[aria-current]{box-shadow:inset 0 -2px 0 var(--gold)}
.hd-tel{display:flex;flex-direction:column;line-height:1.2;text-decoration:none;font-family:var(--en);font-weight:600;font-size:24px;color:var(--navy)}
.hd-tel small{font-size:11px;font-family:var(--font);color:var(--sub);letter-spacing:.05em}
.hd-cta{padding:10px 20px}
.hd-burger{display:none;margin-left:auto;width:44px;height:44px;border:0;background:none;cursor:pointer}
.hd-burger span{display:block;width:24px;height:2px;background:var(--navy);margin:5px auto}
/* ヒーロー */
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(135deg,var(--navy-d) 0%,var(--navy) 55%,#1d4a85 100%)}
.hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 90px)}
.hero::after{content:"";position:absolute;right:-12%;bottom:-40%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(184,149,90,.28),transparent 65%)}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px;align-items:center;padding-top:84px;padding-bottom:96px}
.hero-tag{font-family:var(--en);letter-spacing:.3em;color:#d9bf8c;font-size:15px;font-weight:600}
.hero-tag::before{content:"";display:inline-block;width:40px;height:1px;background:#d9bf8c;vertical-align:middle;margin-right:14px}
.hero h1{font-family:var(--head);font-weight:800;font-size:clamp(26px,3.7vw,52px);line-height:1.5;margin:16px 0 22px;letter-spacing:.04em}
.hero h1 em{font-style:normal;color:#e6c88f}
.nw{white-space:nowrap}
.hero-sub{opacity:.9;font-size:clamp(15px,1.4vw,17px)}
.hero-btns{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
.hero-pics{position:relative;aspect-ratio:1.05;min-height:320px}
.hc{position:absolute;border:6px solid #fff;box-shadow:0 24px 50px rgba(0,0,0,.35);object-fit:cover}
.hc1{width:72%;aspect-ratio:16/10;right:0;top:0}
.hc2{width:56%;aspect-ratio:16/10;left:0;top:38%}
.hc3{width:50%;aspect-ratio:16/10;right:6%;bottom:2%}
.hero-note{position:absolute;left:0;bottom:-6px;font-size:11px;opacity:.7}
/* セクション */
.sec{padding:96px 0}
.sec-en{font-family:var(--en);font-weight:600;color:var(--gold-d);letter-spacing:.28em;font-size:16px}
.sec-h{font-family:var(--head);font-weight:800;font-size:clamp(25px,3vw,38px);line-height:1.5;color:var(--navy);margin:2px 0 14px;letter-spacing:.04em}
.sec-lead{color:var(--sub);margin-bottom:36px;max-width:760px}
.sec-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.note{font-size:13px;color:var(--sub);margin-top:20px}
/* イベント */
.ev-sec{background:var(--sand)}
.ev-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.ev a{display:flex;flex-direction:column;height:100%;background:#fff;text-decoration:none;color:var(--ink);box-shadow:0 10px 30px rgba(18,48,90,.08);transition:.25s}
.ev a:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(18,48,90,.14)}
.ev-img{display:block;aspect-ratio:1/1.1;overflow:hidden;background:#ece8e0}
.ev-img img{width:100%;height:100%;object-fit:cover;object-position:top}
.ev-tx{padding:18px 20px 22px;display:flex;flex-direction:column;gap:4px}
.ev-tx time{font-family:var(--en);font-size:15px;color:var(--gold-d);font-weight:600}
.ev-tx strong{font-family:var(--head);font-size:19px;line-height:1.5;color:var(--navy)}
.ev-end{display:inline-block;align-self:flex-start;font-size:12px;font-weight:700;color:#fff;background:#c2410c;padding:1px 10px;border-radius:2px;font-style:normal}
.ev-end:empty{display:none}
.ev-list:empty{display:block}
.ev-list:empty::after{content:"現在、開催中のイベントはありません。次回の住まいづくりフェア・見学会は、決まり次第こちらでお知らせします。";display:block;background:#fff;padding:36px;text-align:center;color:var(--sub)}
/* ポイント */
.pt-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:40px}
.pt-list li{border-top:2px solid var(--navy);padding:28px 4px 0}
.pt-no{font-family:var(--en);font-size:52px;line-height:1;color:var(--gold);font-weight:500}
.pt-list h3{font-family:var(--head);font-size:21px;color:var(--navy);margin:10px 0 8px}
.pt-list p{color:var(--sub);font-size:15px}
.sec-en.c,.sec-h.c{text-align:center}
/* 商品 */
.pd-sec{background:linear-gradient(180deg,#fff,var(--sand))}
.pd-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pd{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);transition:.25s;height:100%}
.pd:hover{border-color:var(--gold);transform:translateY(-3px)}
.pd-img{display:block;overflow:hidden}
.pd-img img{width:100%;aspect-ratio:600/372;object-fit:cover;transition:.4s}
.pd:hover .pd-img img{transform:scale(1.04)}
.pd-tx{display:flex;flex-direction:column;padding:16px 20px 20px}
.pd-tx small{font-family:var(--en);letter-spacing:.2em;color:var(--gold-d);font-size:13px;font-weight:600}
.pd-tx strong{font-family:var(--head);font-size:23px;color:var(--navy);line-height:1.4}
.pd-tx em{font-style:normal;color:var(--sub);font-size:14px}
/* プラン例 */
.gl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:36px}
.gl figure{position:relative;overflow:hidden}
.gl img{width:100%;aspect-ratio:16/10;object-fit:cover}
.gl figcaption{position:absolute;left:0;bottom:0;background:rgba(11,31,61,.78);color:#fff;font-size:13px;padding:4px 12px}
/* 会社 */
.co-sec{background:var(--sand)}
.co-in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px;align-items:center}
.co-in p{margin-bottom:1em}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.map iframe{width:100%;height:100%;min-height:400px;border:0;display:block;filter:saturate(.85)}
.map-wide iframe{min-height:440px;margin:16px 0 24px}
/* CTA */
.cta{background:var(--navy-d);color:#fff;padding:72px 0;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 90px)}
.cta-in{position:relative;max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta-en{font-family:var(--en);letter-spacing:.28em;color:#d9bf8c;font-size:16px;font-weight:600}
.cta-lead{font-family:var(--head);font-weight:800;font-size:clamp(23px,2.6vw,32px);line-height:1.5}
.cta-sub{opacity:.85;font-size:15px}
.cta-btns{display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.cta-tel{color:#fff;text-decoration:none;display:flex;flex-direction:column;line-height:1.3}
.cta-tel small{font-size:12px;opacity:.85}.cta-tel strong{font-family:var(--en);font-size:40px;font-weight:600;letter-spacing:.04em}
/* 下層 */
.ph{background:linear-gradient(135deg,var(--navy-d),var(--navy) 60%,#1d4a85);color:#fff;padding:72px 0 64px;position:relative}
.ph::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 90px)}
.ph .in{position:relative}
.ph-en{font-family:var(--en);font-weight:600;letter-spacing:.28em;color:#d9bf8c;font-size:16px}
.ph h1{font-family:var(--head);font-weight:800;font-size:clamp(28px,3.6vw,44px);letter-spacing:.06em}
.ph-lead{margin-top:6px;opacity:.9}
.crumb{max-width:1200px;margin:0 auto;padding:14px 24px;font-size:13px;color:var(--sub)}
.crumb a{color:var(--sub);text-decoration:none}.crumb a::after{content:" ›";margin:0 6px}
.cp-list{margin-top:72px;display:grid;gap:72px}
.cp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:start;scroll-margin-top:100px}
.cp:nth-child(even) .cp-tx{order:2}
.cp-en{font-family:var(--en);letter-spacing:.24em;color:var(--gold-d);font-weight:600}
.cp h2{font-family:var(--head);font-size:clamp(28px,3vw,38px);color:var(--navy)}
.cp-catch{font-weight:700;font-size:18px;margin:6px 0 10px;color:var(--ink)}
.cp-tx p{margin-bottom:1em}
.cp-img{position:relative;display:block;border:1px solid var(--line);box-shadow:0 14px 34px rgba(18,48,90,.1)}
.cp-img span{position:absolute;right:10px;bottom:10px;background:rgba(11,31,61,.8);color:#fff;font-size:12px;padding:2px 10px}
.motto{font-family:var(--head);font-size:clamp(22px,2.6vw,30px);color:var(--navy);text-align:center;margin-bottom:40px;font-weight:800}
.co-table{width:100%;border-collapse:collapse;background:#fff}
.co-table th,.co-table td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.co-table th{width:11em;color:var(--navy);font-weight:700;background:var(--sand)}
.co-table tr:first-child th,.co-table tr:first-child td{border-top:2px solid var(--navy)}
.co-table ol{list-style:decimal;padding-left:1.4em}
.addr{font-size:17px}
.contact-tel{background:var(--sand);border-left:4px solid var(--gold);padding:16px 20px;margin-bottom:28px;font-weight:700}
.contact-tel a{font-family:var(--en);font-size:26px;text-decoration:none;margin-left:6px;color:var(--navy)}
.contact-tel small{display:block;font-weight:400;color:var(--sub)}
.form{display:grid;gap:18px}
.f-row{display:grid;gap:6px}
.f-lb{font-weight:700;font-size:15px}
.f-lb em,.f-lb i{font-style:normal;font-size:11px;color:#fff;background:#c2410c;border-radius:2px;padding:1px 7px;margin-left:8px;vertical-align:2px}
.f-lb i{background:#9aa0a8}
.form input,.form textarea{width:100%;padding:13px 14px;border:1px solid #cdd3dc;border-radius:2px;font-size:16px;font-family:inherit}
.form input:focus,.form textarea:focus{outline:3px solid rgba(31,95,174,.2);border-color:var(--blue)}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.privacy-note{font-size:13px;color:var(--sub)}
.form-msg{font-weight:700;margin-bottom:16px}.form-msg.err{color:#c62828;background:#fdecea;padding:12px 16px}
/* 記事（チラシ） */
.article{max-width:1080px;margin:0 auto}
.article h1{font-family:var(--head);font-weight:800;font-size:clamp(25px,3vw,36px);color:var(--navy);margin:4px 0 8px;line-height:1.45}
.art-date{display:flex;gap:12px;align-items:center;color:var(--sub);font-family:var(--en);font-size:16px;font-weight:600}
.art-tip{font-size:13px;color:var(--sub);margin-bottom:20px}
.article p{margin-bottom:1.1em}
.post__imgs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:8px 0 28px}
.post__fig a{display:block;border:1px solid var(--line);box-shadow:0 10px 26px rgba(18,48,90,.1);transition:.2s}
.post__fig a:hover{transform:translateY(-2px)}
.post__fig figcaption{text-align:center;font-weight:700;color:var(--navy);margin-top:8px;letter-spacing:.2em}
.post__img img{margin-bottom:1.2em;border:1px solid var(--line)}
.art-cta{max-width:1080px;margin:40px auto 0;background:var(--sand);padding:22px 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-weight:700}
.art-cta p{margin-right:auto;color:var(--navy)}
.pn{max-width:1080px;margin:32px auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pn a{background:var(--sand);padding:14px 16px;text-decoration:none;font-size:14px;color:var(--ink)}
.pn-next{text-align:right}
/* 拡大表示 */
.lb{position:fixed;inset:0;z-index:100;background:rgba(5,12,24,.92);display:none;overflow:auto;-webkit-overflow-scrolling:touch}
.lb.on{display:block}
.lb img{max-width:none;width:100%;max-width:1400px;margin:0 auto;display:block}
.lb-close{position:fixed;top:12px;right:12px;z-index:101;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--navy);font-size:26px;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.3)}
.lb-nav{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:101;display:flex;gap:8px}
.lb-nav button{border:0;background:#fff;color:var(--navy);font-weight:700;padding:10px 18px;cursor:pointer}
.lb-nav button[aria-pressed=true]{background:var(--gold);color:#fff}
/* フッター */
.ft{background:#0a1a33;color:#c3cad6;padding:60px 0 24px;font-size:14px}
.ft-in{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.ft-co p{margin-top:16px}
.ft a{color:#fff}
.ft-nav{display:grid;grid-template-columns:repeat(2,auto);gap:8px 36px;align-content:start}
.ft-nav a{text-decoration:none}
.ft-lic{max-width:1200px;margin:32px auto 0;padding:0 24px;font-size:12px;opacity:.7}
.ft-copy{text-align:center;font-size:12px;margin-top:20px;opacity:.6}
.sp-bar{display:none}
@media (max-width:1100px){
  .hd-burger{display:block}
  .hd-nav{position:fixed;inset:66px 0 auto 0;background:#fff;flex-direction:column;align-items:stretch;padding:12px 24px 24px;gap:12px;border-bottom:1px solid var(--line);display:none}
  .hd-nav.open{display:flex}
  .hd-nav ul{flex-direction:column;gap:0}
  .hd-nav ul a{display:block;padding:12px 4px;border-bottom:1px solid var(--line)}
  .ev-list,.pd-list,.gl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .co-in,.cp{grid-template-columns:minmax(0,1fr);gap:28px}
  .cp:nth-child(even) .cp-tx{order:0}
}
@media (max-width:760px){
  .sp{display:inline}
  .sec{padding:64px 0}
  .in{padding:0 18px}
  .logo b{font-size:20px}.logo .mark{width:36px;height:30px}
  .hero-in{grid-template-columns:minmax(0,1fr);padding-top:48px;padding-bottom:56px;gap:28px}
  .hero-pics{aspect-ratio:1.25;min-height:0}
  .ev-list,.pd-list,.pt-list{grid-template-columns:minmax(0,1fr)}
  .gl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .post__imgs{grid-template-columns:minmax(0,1fr)}
  .co-table th{display:block;width:auto;border-bottom:0;padding-bottom:4px}
  .co-table td{display:block;padding-top:4px}
  .pn{grid-template-columns:minmax(0,1fr)}
  .sp-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;box-shadow:0 -4px 16px rgba(0,0,0,.15)}
  .sp-bar a{display:block;text-align:center;padding:14px;font-weight:700;color:#fff;text-decoration:none;background:var(--navy)}
  .sp-bar a+a{background:var(--gold)}
  .ft{padding-bottom:84px}
}
