/* ===== ユーエスハウジング コーポレートサイト 共有スタイル（①ミニマル高級）===== */
:root{
  --ink:#15171a; --sub:#8a8f95; --text:#5c6168; --line:#e7e8ea; --gold:#9c8456;
  --bg:#ffffff; --cream:#faf8f3; --navy:#1f3b5c; --line-green:#06C755;
  --maxw:1120px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%;}
body{background:var(--bg);color:var(--ink);
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  letter-spacing:.01em;line-height:1.6;overflow-x:hidden;}
.mc{font-family:"Shippori Mincho","Yu Mincho",serif;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}

/* nav */
.nav{position:sticky;top:0;z-index:50;height:72px;display:flex;align-items:center;justify-content:space-between;
  padding:0 40px;background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid rgba(0,0,0,.05);}
.nav .brand{font-family:"Shippori Mincho",serif;font-size:18px;letter-spacing:.16em;}
.nav .links{display:flex;gap:30px;font-size:12.5px;letter-spacing:.12em;color:var(--text);}
.nav .links a:hover{color:var(--ink);}
.nav .cta{font-size:12.5px;letter-spacing:.08em;border:1px solid var(--ink);padding:9px 18px;border-radius:2px;}
.navtoggle,.hamburger,.mobile-cta{display:none;}

/* buttons */
.btn{display:inline-block;font-size:14px;letter-spacing:.08em;border:1px solid var(--ink);padding:15px 32px;border-radius:2px;transition:.2s;}
.btn:hover{background:var(--ink);color:#fff;}
.btn-fill{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn-fill:hover{opacity:.92;background:var(--navy);color:#fff;}
.link-arrow{font-size:14px;letter-spacing:.06em;color:var(--navy);}
.link-arrow::after{content:" →";}

/* hero (top) */
.hero{padding:78px 40px 0;max-width:var(--maxw);margin:0 auto;}
.eyebrow{font-size:12px;letter-spacing:.32em;color:var(--gold);}
.hero h1{font-size:62px;font-weight:600;line-height:1.28;letter-spacing:.02em;margin-top:24px;}
.hero .lead{font-size:17px;color:var(--text);line-height:1.85;margin-top:24px;max-width:580px;}
.hero .actions{margin-top:34px;display:flex;gap:26px;align-items:center;flex-wrap:wrap;}
.hero .micro{font-size:12px;letter-spacing:.08em;color:var(--sub);margin-top:16px;}

/* photo placeholders */
.ph{position:relative;overflow:hidden;}
.ph .cap{position:absolute;left:24px;bottom:18px;font-size:11px;letter-spacing:.2em;color:rgba(40,50,60,.5);}
.ph-street{aspect-ratio:21/8;margin-top:54px;background:linear-gradient(135deg,#efe9dc,#e4ebee 65%,#dde6ea);}

/* sections */
section{padding:104px 0;}
.sec-cream{background:var(--cream);}
.sec-h{font-size:13px;letter-spacing:.3em;color:var(--gold);}
.sec-t{font-size:40px;font-weight:600;letter-spacing:.02em;margin-top:16px;line-height:1.3;}
.sec-s{font-size:16px;color:var(--text);margin-top:14px;line-height:1.85;}
.center{text-align:center;}

/* promise 3-col */
.three{display:flex;gap:42px;margin-top:62px;}
.three .c{flex:1;}
.three .n{font-size:12px;letter-spacing:.2em;color:var(--gold);}
.three h3{font-size:22px;font-weight:600;margin:14px 0 14px;letter-spacing:.02em;}
.three .rule{width:34px;height:1px;background:var(--ink);margin:0 0 16px;}
.three p{font-size:14.5px;color:var(--text);line-height:1.95;}

/* about / staff */
.staffimg{max-width:880px;margin:24px auto 0;}
.staffimg img{width:100%;border-radius:4px;box-shadow:0 24px 60px rgba(40,30,15,.12);}
.names{display:flex;max-width:880px;margin:22px auto 0;}
.names .nm{flex:1;text-align:center;padding:0 16px;}
.names .role{font-size:11px;letter-spacing:.24em;color:var(--gold);}
.names .name{font-size:20px;margin:8px 0 4px;}
.names .subr{font-size:12.5px;color:var(--text);letter-spacing:.06em;}
.greet{max-width:760px;margin:40px auto 0;text-align:center;font-size:17px;line-height:2.2;color:#3c4046;}
.sign{margin-top:22px;font-size:14px;letter-spacing:.1em;color:var(--text);text-align:center;}

/* flow / video */
.flowrow{display:flex;gap:28px;margin-top:60px;align-items:stretch;}
.flowrow .video{flex:1.1;background:linear-gradient(135deg,#eef1f3,#e3e9ec);position:relative;border-radius:2px;min-height:240px;}
.flowrow .video .cap{position:absolute;left:20px;bottom:16px;font-size:11px;letter-spacing:.18em;color:rgba(40,50,60,.55);}
.flowrow .video .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(255,255,255,.9);}
.flowrow .video .play::after{content:"";position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);border-left:16px solid var(--ink);border-top:10px solid transparent;border-bottom:10px solid transparent;}
.flowrow .txt{flex:1;align-self:center;}
.flowrow .txt h4{font-size:22px;font-weight:600;letter-spacing:.02em;}
.flowrow .txt p{font-size:14.5px;color:var(--text);line-height:2;margin-top:14px;}

/* steps (service) */
.steps{display:flex;gap:0;margin-top:56px;}
.steps .s{flex:1;padding:0 26px;border-left:1px solid var(--line);}
.steps .s:first-child{border-left:none;}
.steps .s .no{font-size:12px;letter-spacing:.2em;color:var(--gold);}
.steps .s h4{font-size:18px;font-weight:600;margin:10px 0 8px;}
.steps .s p{font-size:14px;color:var(--text);line-height:1.9;}

/* page hero (subpages) */
.page-hero{padding:84px 40px 0;max-width:var(--maxw);margin:0 auto;}
.page-hero h1{font-size:46px;font-weight:600;letter-spacing:.03em;margin-top:14px;line-height:1.35;}
.page-hero .lead{font-size:16px;color:var(--text);margin-top:18px;line-height:1.95;max-width:660px;}

/* prose & tables */
.prose{max-width:760px;margin:0 auto;font-size:15.5px;line-height:2.1;color:#3c4046;}
.prose p{margin:0 0 20px;}
.info{max-width:760px;margin:0 auto;border-top:1px solid var(--line);font-size:15px;}
.info dl{display:flex;border-bottom:1px solid var(--line);padding:18px 4px;}
.info dt{width:170px;color:var(--text);flex:none;letter-spacing:.04em;}
.info dd{flex:1;}

/* timeline (heritage) */
.tl{display:flex;justify-content:center;align-items:center;margin-top:56px;flex-wrap:wrap;gap:8px 0;}
.tl .t{padding:0 22px;color:#6a6254;font-size:14px;text-align:center;}
.tl .t b{display:block;color:var(--ink);font-size:17px;margin-bottom:4px;letter-spacing:.04em;}
.tl .sep{color:var(--line);}

/* kenshin / LINE callout */
.kbox{max-width:600px;margin:40px auto 0;text-align:left;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:32px;}
.kbox .ttl{font-size:13px;letter-spacing:.1em;color:var(--gold);}
.kbox h3{font-size:22px;font-weight:600;margin:8px 0 14px;}
.kbox p{font-size:14.5px;color:var(--text);line-height:1.95;}
.kbox .acts{margin-top:22px;display:flex;gap:14px;flex-wrap:wrap;}
.kbox .line-btn{background:var(--line-green);color:#fff;font-weight:700;font-size:15px;padding:15px 26px;border-radius:980px;}
.kbox .note{font-size:11.5px;color:var(--sub);line-height:1.7;margin-top:16px;}

/* guide articles */
.prose h2{font-family:"Shippori Mincho","Yu Mincho",serif;font-size:25px;font-weight:600;letter-spacing:.03em;line-height:1.5;margin:46px 0 16px;border-left:3px solid var(--gold);padding-left:14px;}
.prose h3{font-size:18px;font-weight:700;margin:30px 0 10px;}
.prose ul,.prose ol{margin:0 0 20px 1.4em;}
.prose li{margin:6px 0;}
.prose table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0 24px;}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top;}
.prose th{background:var(--cream);font-weight:700;white-space:nowrap;}
.prose .kekka{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:18px 22px;margin:0 0 28px;}
.prose .kekka b{color:var(--navy);}
.guide-meta{font-size:12.5px;color:var(--sub);margin-top:10px;}
.toc{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:16px 22px;font-size:14px;margin:0 0 30px;}
.toc a{color:var(--navy);display:block;padding:3px 0;}
.gcta{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:26px;margin:40px 0 0;text-align:center;}
.gcta .t{font-size:19px;font-weight:700;font-family:"Shippori Mincho",serif;}
.gcta p{font-size:14px;color:var(--text);margin:10px 0 18px;line-height:1.9;}
.related{margin-top:40px;border-top:1px solid var(--line);padding-top:22px;font-size:14.5px;}
.related a{color:var(--navy);display:block;padding:5px 0;}
.gcards{display:flex;flex-wrap:wrap;gap:20px;margin-top:46px;}
.gcard{flex:1 1 300px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px;transition:transform .2s ease,box-shadow .2s ease;}
.gcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(40,30,15,.08);}
.gcard .gk{font-size:11px;letter-spacing:.18em;color:var(--gold);}
.gcard h3{font-size:17.5px;font-weight:700;margin:10px 0 10px;line-height:1.6;}
.gcard p{font-size:13.5px;color:var(--text);line-height:1.85;}
.gcard .link-arrow{display:inline-block;margin-top:12px;font-size:13.5px;}

/* faq */
.faq{max-width:760px;margin:0 auto;}
.faq .q{border-bottom:1px solid var(--line);padding:22px 0;}
.faq .q h4{font-size:17px;font-weight:600;}
.faq .q p{font-size:14.5px;color:var(--text);line-height:1.95;margin-top:10px;}

/* contact methods */
.methods{display:flex;gap:24px;margin-top:40px;flex-wrap:wrap;}
.methods .m{flex:1;min-width:220px;border:1px solid var(--line);border-radius:8px;padding:28px;text-align:center;}
.methods .m .l{font-size:12px;letter-spacing:.2em;color:var(--gold);}
.methods .m .v{font-size:22px;margin:12px 0 8px;}
.methods .m .d{font-size:13.5px;color:var(--text);}

/* footer */
.footer{border-top:1px solid var(--line);padding:46px 40px 60px;}
.footer .fwrap{max-width:var(--maxw);margin:0 auto;}
.footer .flinks{display:flex;gap:26px;flex-wrap:wrap;font-size:12.5px;letter-spacing:.06em;color:var(--text);margin-bottom:22px;}
.footer .flinks a:hover{color:var(--ink);}
.footer .legal{font-size:12px;letter-spacing:.04em;color:var(--sub);line-height:2;}

/* scroll reveal (JS有効時のみ非表示→表示。無効/失敗時は常時表示) */
.js section.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease, transform .85s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform;}
.js section.reveal.is-visible{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.js section.reveal{opacity:1;transform:none;transition:none;}}

/* hover / interaction polish */
.btn,.btn-fill,.kbox .line-btn{transition:transform .2s ease, background .2s ease, opacity .2s ease, box-shadow .2s ease, color .2s ease;}
.btn:hover,.btn-fill:hover,.kbox .line-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,30,45,.16);}
.nav .links a,.footer .flinks a,.link-arrow{transition:color .15s ease;}
.link-arrow::after{transition:margin .2s ease;}
.link-arrow:hover::after{margin-left:3px;}
.methods .m{transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
.methods .m:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(40,30,15,.08);border-color:#d6dbdf;}

/* 所見書サンプル（おうち健診） */
.sheet{max-width:680px;margin:46px auto 0;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 26px 64px rgba(40,30,15,.10);overflow:hidden;text-align:left;}
.sheet .sh-head{background:var(--navy);color:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;}
.sheet .sh-head .t{font-size:16px;letter-spacing:.04em;}
.sheet .sh-head .m{font-size:11px;opacity:.85;letter-spacing:.04em;}
.sheet .sh-body{padding:26px 28px;}
.sheet .range .lab{font-size:12px;color:var(--gold);letter-spacing:.06em;}
.sheet .range .val{font-size:30px;font-weight:600;letter-spacing:.01em;margin:6px 0 2px;}
.sheet .range .val small{font-size:14px;color:var(--text);font-weight:500;}
.sheet .range .nt{font-size:11.5px;color:var(--sub);}
.sheet .dots{display:flex;margin:22px 0 0;border-top:1px solid var(--line);padding-top:20px;flex-wrap:wrap;gap:12px 0;}
.sheet .dots .d{flex:1;min-width:18%;text-align:center;}
.sheet .dots .dm{font-size:20px;font-weight:700;}
.sheet .dots .dl{font-size:12px;color:var(--text);margin-top:5px;}
.ok2{color:#2a8a5f}.mid2{color:#b8801a}.warn2{color:#c2502e}.info2{color:#8a8f95}
.sheet .flag{background:#fbf4ee;border:1px solid #f0ddcd;border-radius:8px;padding:13px 16px;margin-top:20px;font-size:13px;color:#7a5a3e;}
.sheet .flag b{color:#c2502e;}
.sheet .next{background:var(--cream);border-radius:8px;padding:16px 18px;margin-top:16px;font-size:13.5px;line-height:1.95;color:var(--text);}
.sheet .next b{color:var(--ink);}

/* responsive */
@media(max-width:760px){
  .wrap,.hero,.page-hero{padding-left:22px;padding-right:22px;}
  .eyebrow{font-size:11px;letter-spacing:.1em;}
  .nav{padding:8px 18px;height:auto;flex-wrap:wrap;justify-content:flex-start;}
  .nav .brand{order:1;}
  .nav .cta{display:none !important;}
  .navtoggle{display:none !important;}
  .nav .links{order:3;display:flex !important;flex-wrap:wrap;gap:6px 14px;width:100%;padding-top:8px;font-size:12px;letter-spacing:.02em;color:var(--ink);}
  .nav .links a{padding:2px 0;white-space:nowrap;}
  .hero{padding-top:46px;}
  .hero h1{font-size:29px;line-height:1.55;}
  .hero .lead,.page-hero .lead{font-size:15px;}
  .ph-street{aspect-ratio:3/2;margin-top:34px;}
  section{padding:62px 0;}
  .sec-t,.page-hero h1{font-size:29px;line-height:1.45;}
  .three,.steps,.flowrow,.methods{flex-direction:column;gap:34px;}
  .steps .s{border-left:none;padding:0;}
  .names{flex-direction:column;gap:24px;}
  .info dl{flex-direction:column;gap:4px;}
  .info dt{width:auto;}
  .mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:80;box-shadow:0 -4px 16px rgba(0,0,0,.08);}
  .mobile-cta a{flex:1;text-align:center;padding:15px 4px;font-size:15px;font-weight:700;}
  .mobile-cta .tel{background:#fff;color:var(--navy);border-top:1px solid var(--line);}
  .mobile-cta .line{background:var(--line-green);color:#fff;}
  body{padding-bottom:0;}
}
