/* ============================================================
   MIRA デザイン案A 共通スタイル（momentia.jp 準拠）
   アイボリー基調・明朝(BIZ UDPMincho)見出し・英字Manrope・細罫・ピル・抑えたブルー
   下層ページ（事業内容／会社情報／お問い合わせ／プライバシー）共通。
   ============================================================ */
:root{
  --bg:#FAFAF8; --bg2:#EFF4F6; --paper:#FFFFFF;
  --ink:#2A2926; --sub:#817C73; --faint:#A8A296;
  --line:#E5DFD4; --line-soft:#EEE9E0;
  --accent:#2F8FC0; --accent-d:#226E97; --accent-t:#EAF2F8;
  --serif:"BIZ UDPMincho",serif; --body:"Noto Sans JP",sans-serif; --en:"Manrope",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--bg);line-height:1.9;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px}
a{color:inherit;text-decoration:none}
.en{font-family:var(--en);letter-spacing:.18em}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:.04em;line-height:1.7}
.ey{font-family:var(--en);font-size:11.5px;font-weight:500;letter-spacing:.3em;color:var(--accent);text-transform:uppercase}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:.35s;background:rgba(250,250,248,.82);backdrop-filter:blur(11px);border-bottom:1px solid var(--line-soft)}
header.scrolled{background:rgba(250,250,248,.96);border-bottom-color:var(--line)}
.hdr{display:flex;align-items:center;justify-content:space-between;height:78px}
.logo{display:flex;align-items:center}
.logo img{height:28px;width:auto;display:block}
nav.gnav{display:flex;align-items:center;gap:32px;font-size:13.5px;font-weight:500;letter-spacing:.05em}
nav.gnav a{color:var(--ink);transition:.25s}
nav.gnav a:hover,nav.gnav a.on{color:var(--accent)}
.navcta{border:1px solid var(--ink);color:var(--ink)!important;padding:9px 22px;border-radius:100px;font-size:12.5px;letter-spacing:.06em;transition:.3s}
.navcta:hover{background:var(--ink);color:#fff!important}
.menubtn{display:none;font-size:22px;background:none;border:none;cursor:pointer;color:var(--ink)}

/* page hero */
.phero{padding:150px 0 66px;background:linear-gradient(145deg,#F1EEE8 0%,#E7EFF5 52%,#DAE8F5 100%);border-bottom:1px solid var(--line)}
.phero .ey{margin-bottom:16px}
.phero h1{font-size:clamp(26px,3.4vw,40px);color:var(--ink)}
.crumb{margin-top:20px;font-family:var(--en);font-size:11.5px;letter-spacing:.08em;color:var(--faint)}
.crumb a{color:var(--sub)}.crumb a:hover{color:var(--accent)}

/* sections */
.sec{padding:104px 0}
.sec.alt{background:var(--bg2)}
.eyebrow{font-family:var(--en);font-size:11.5px;font-weight:500;letter-spacing:.26em;color:var(--accent);text-transform:uppercase;margin-bottom:18px}
.h2{font-size:clamp(22px,2.7vw,31px);color:var(--ink)}
.lead{color:var(--sub);font-size:14px;font-weight:300;margin-top:18px;max-width:680px;line-height:2}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:11px;border:1px solid var(--ink);color:var(--ink);padding:15px 34px;border-radius:100px;font-size:13.5px;letter-spacing:.06em;transition:.35s}
.btn:hover{background:var(--ink);color:#fff}
.btn .ar{font-family:var(--en);transition:.35s}.btn:hover .ar{transform:translateX(4px)}
.btn.solid{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.solid:hover{background:var(--accent-d);border-color:var(--accent-d)}

/* profile table（会社情報） */
.profile{width:100%;border-collapse:collapse;margin-top:44px;font-size:14px}
.profile th{text-align:left;font-family:var(--body);font-weight:500;color:var(--ink);padding:22px 28px 22px 0;width:180px;vertical-align:top;border-top:1px solid var(--line);font-size:13.5px}
.profile td{padding:22px 0;border-top:1px solid var(--line);color:var(--sub);font-weight:300}
.profile tr:last-child th,.profile tr:last-child td{border-bottom:1px solid var(--line)}
.profile td small{color:var(--faint);font-size:12px;display:block;margin-top:5px}

/* stat band */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-top:54px;background:var(--paper)}
.stat{padding:38px 22px;border-right:1px solid var(--line);text-align:center}.stat:last-child{border-right:none}
.stat .num{font-family:var(--en);font-size:38px;font-weight:300;color:var(--ink);line-height:1}
.stat .num small{font-size:15px;color:var(--accent);font-weight:400;margin-left:3px}
.stat .cap{font-size:11.5px;font-weight:300;color:var(--sub);margin-top:12px;letter-spacing:.03em}

/* stations（くくる） */
.stations{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);margin-top:46px}
.st{padding:34px 30px;border-bottom:1px solid var(--line)}
.st:nth-child(odd){border-right:1px solid var(--line)}
/* 拠点数が奇数のとき、最終行に単独で残るカードの右罫線を消す */
.st:last-child:nth-child(odd){border-right:none}
.st .top{display:flex;align-items:baseline;gap:14px;margin-bottom:16px}
.st .no{font-family:var(--en);font-size:12px;letter-spacing:.12em;color:var(--accent)}
.st h4{font-size:17px;color:var(--ink)}
.st dl div{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--line-soft);font-size:12.5px;font-weight:300;color:var(--sub)}
.st dt{flex:none;width:64px;font-family:var(--en);font-size:10.5px;letter-spacing:.06em;color:var(--faint);padding-top:2px}
.st .map{display:inline-block;margin-top:16px;font-family:var(--en);font-size:11px;letter-spacing:.06em;color:var(--ink);border:1px solid var(--line);padding:8px 16px;border-radius:100px;transition:.3s}
.st .map:hover{border-color:var(--accent);color:var(--accent)}

/* service blocks（事業内容） */
.svc{display:grid;grid-template-columns:0.95fr 1.05fr;gap:56px;align-items:center;padding:64px 0;border-top:1px solid var(--line)}
.svc:first-of-type{border-top:none}
.svc:nth-child(even) .svis{order:2}
.svis{position:relative;height:330px;border-radius:6px;overflow:hidden;background-size:cover;background-position:center}
.svis .big{position:absolute;left:26px;top:18px;font-family:var(--en);font-size:64px;font-weight:300;color:rgba(255,255,255,.9);text-shadow:0 2px 12px rgba(42,41,38,.25)}
.svis .tag{position:absolute;left:26px;bottom:22px;font-family:var(--en);font-size:11px;letter-spacing:.14em;color:#fff;background:rgba(42,41,38,.34);backdrop-filter:blur(4px);padding:7px 15px;border-radius:100px}
.svc .eyebrow{margin-bottom:14px}
.svc h2{font-size:clamp(21px,2.5vw,28px);color:var(--ink)}
.svc p{color:var(--sub);font-size:13.5px;font-weight:300;margin-top:16px;line-height:2}
.points{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}
.pt{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;font-weight:300;color:var(--ink)}
.pt::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:9px;flex:none}
.tag-badge{display:inline-block;margin-top:20px;font-family:var(--en);font-size:11px;letter-spacing:.08em;color:var(--accent-d);background:var(--accent-t);border:1px solid var(--accent);padding:7px 16px;border-radius:100px}

/* anchor nav（事業内容） */
.anav{position:sticky;top:78px;z-index:40;background:rgba(250,250,248,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.anav .wrap{display:flex;gap:8px;overflow-x:auto;padding:14px 32px}
.anav a{font-family:var(--en);font-size:11.5px;letter-spacing:.04em;color:var(--sub);border:1px solid var(--line);padding:8px 16px;border-radius:100px;white-space:nowrap;transition:.3s}
.anav a:hover{color:var(--accent);border-color:var(--accent)}

/* contact form */
.cgrid{display:grid;grid-template-columns:.82fr 1.18fr;gap:60px;align-items:start}
.intro .eyebrow{margin-bottom:16px}
.intro h2{font-size:24px;color:var(--ink)}
.intro p{color:var(--sub);font-size:13.5px;font-weight:300;margin-top:18px;line-height:2}
.infobox{margin-top:28px;border:1px solid var(--line);border-radius:6px;padding:26px;background:var(--paper)}
.infobox dl div{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--line-soft);font-size:13px;font-weight:300}
.infobox dl div:first-child{border-top:none}
.infobox dt{flex:none;width:64px;font-family:var(--en);font-size:11px;letter-spacing:.06em;color:var(--faint);padding-top:2px}
.infobox dd{color:var(--sub)}
.note{font-size:12px;font-weight:300;color:var(--faint);margin-top:18px;line-height:1.9}
.note a{color:var(--accent)}
.form{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:46px}
.field{margin-bottom:22px}
.field label{display:block;font-size:13px;color:var(--ink);margin-bottom:9px;font-weight:500}
.field label .req{font-family:var(--en);color:var(--accent);font-size:10px;margin-left:8px;border:1px solid var(--accent);border-radius:3px;padding:1px 6px;letter-spacing:.04em}
.field input,.field select,.field textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:14px 16px;color:var(--ink);font-family:var(--body);font-size:14px;transition:.3s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-t);background:#fff}
.field textarea{min-height:140px;resize:vertical}
.field .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;font-weight:300;color:var(--sub)}
.check a{color:var(--accent);text-decoration:underline}
.submit{width:100%;margin-top:10px;background:var(--accent);color:#fff;font-weight:500;padding:17px;border:none;border-radius:100px;font-size:14.5px;font-family:var(--body);letter-spacing:.04em;cursor:pointer;transition:.35s}
.submit:hover{background:var(--accent-d)}
.ok{display:none;background:var(--accent-t);border:1px solid var(--accent);color:var(--accent-d);border-radius:6px;padding:18px;margin-bottom:22px;font-size:13.5px}

/* privacy prose */
.pp{max-width:820px}
.pp .intro{color:var(--sub);font-weight:300;font-size:14px;line-height:2.1}
.pp h2{font-size:18px;color:var(--ink);margin:46px 0 14px;display:flex;align-items:baseline;gap:14px}
.pp h2 .n{font-family:var(--en);font-size:13px;font-weight:500;color:var(--accent);letter-spacing:.08em}
.pp p{color:var(--sub);font-weight:300;font-size:13.5px;line-height:2.05}
.pp ul{margin:10px 0 0 4px;list-style:none}
.pp li{position:relative;padding-left:18px;color:var(--sub);font-weight:300;font-size:13.5px;line-height:1.95}
.pp li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.pp a{color:var(--accent);text-decoration:underline}
.pp .date{margin-top:50px;padding-top:24px;border-top:1px solid var(--line);font-size:12.5px;font-weight:300;color:var(--faint);line-height:2}

/* cta band */
.cta{background:var(--bg2);text-align:center;padding:104px 0}
.cta .ey{margin-bottom:18px}
.cta h2{font-size:clamp(22px,2.8vw,32px);color:var(--ink)}
.cta p{font-size:14px;font-weight:300;color:var(--sub);max-width:500px;margin:20px auto 34px;line-height:2}

/* footer */
footer{background:var(--paper);border-top:1px solid var(--line);padding:74px 0 38px}
.fgrid{display:grid;grid-template-columns:1.6fr 2fr;gap:48px;margin-bottom:50px}
.fgrid .logo img{height:24px}
.fgrid .fd{font-size:12px;font-weight:300;color:var(--sub);margin-top:18px;line-height:2}
.fnav{display:flex;flex-wrap:wrap;align-content:start;gap:12px 30px}
.fnav a{font-size:12.5px;font-weight:300;color:var(--ink);opacity:.82;transition:.25s}
.fnav a:hover{opacity:1;color:var(--accent)}
.copy{border-top:1px solid var(--line);padding-top:28px;font-size:11px;font-weight:300;color:var(--faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.copy .en{letter-spacing:.16em}

@media(max-width:960px){
  nav.gnav{display:none}.menubtn{display:block}
  .svc{grid-template-columns:1fr;gap:28px}.svc:nth-child(even) .svis{order:0}
  .cgrid{grid-template-columns:1fr;gap:36px}
  .stats{grid-template-columns:1fr 1fr}.stat:nth-child(2n){border-right:none}
  .stations{grid-template-columns:1fr}.st:nth-child(odd){border-right:none}
  .points{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr;gap:30px}
}
@media(max-width:520px){.stats{grid-template-columns:1fr}.stat{border-right:none}.form{padding:28px}.field .two{grid-template-columns:1fr}}
