:root{
  /* アクセントとボタンの色は、デザインシステム「IndoorFlow」のトークンから選ぶ。
     小さい文字とボタンは、通常の表示でも WCAG AA（4.5:1）を満たすよう --if-hc-link-light を使う。
     ブランド色（--if-brand、白地との比 3.43）は、大きい文字の基準（3:1）を満たす太字 19px 以上にだけ使う */
  --accent-text:#005A61;         /* --if-hc-link-light。白地との比 7.97 */
  --accent-text-large:#1299A4;   /* --if-brand。太字 19px 以上の文字だけ */
  --primary-fill:#005A61;        /* --if-hc-link-light。白い文字との比 7.97 */
  --primary-text:#FFFFFF;
  --brand-tint:#E7F5F6;--text:#202124;--sub:#333333;--bg-soft:#FAFAFA;--line:#E3E3E3
}
/* 端末の「コントラストを上げる」設定のとき。iOS の高コントラスト表示と同じトークンに切り替える */
@media (prefers-contrast: more){
  :root{
    --accent-text-large:#005A61; /* --if-hc-link-light */
    --primary-fill:#000000;      /* --if-hc-black */
    --primary-text:#FFE600       /* --if-hc-yellow */
  }
}
*{box-sizing:border-box}
body{margin:0;background:#FFFFFF;color:var(--text);font-family:'Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent-text)}a:hover{text-decoration:underline}
.en{font-family:Inter,'Noto Sans JP',sans-serif}
.wrap{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}
.page{min-height:100vh;display:flex;flex-direction:column}
main{flex:1 1 auto}

header{border-bottom:1px solid #EDEDED}
.header-inner{padding-top:20px;padding-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.brand img{width:36px;height:36px;border-radius:6px;display:block}
.brand span{font-weight:700;font-size:24px;letter-spacing:-0.01em}
.site-link{font-size:14px;font-weight:500;text-decoration:none}

.hero{max-width:1040px;margin:0 auto;padding:104px 24px 88px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}
.eyebrow{margin:0;font-weight:700;font-size:15px;letter-spacing:0.24em;color:var(--accent-text)}
h1{margin:0;font-size:52px;line-height:1.35;font-weight:700;letter-spacing:0.01em}
.catch{margin:8px 0 0;font-size:24px;line-height:1.7;font-weight:700;color:var(--accent-text-large)}
.lead{margin:0;font-size:17px;line-height:1.9;color:var(--sub)}
.usecases{width:100%;margin-top:40px;display:flex;flex-direction:column;gap:20px}
.usecases-title{margin:0;font-size:15px;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;text-align:left}
.card{border:1px solid var(--line);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:12px}
.icon{width:48px;height:48px;border-radius:12px;background:var(--brand-tint);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.card h3{margin:0;font-size:19px;font-weight:700}
.card p{margin:0;font-size:15px;line-height:1.8;color:var(--sub)}

.info{background:var(--bg-soft)}
.info-grid{padding-top:64px;padding-bottom:64px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.panel{background:#FFFFFF;border-radius:16px;padding:40px;display:flex;flex-direction:column;gap:16px}
.panel .eyebrow{font-size:13px;letter-spacing:0.2em}
.panel h2{margin:0;font-size:24px;line-height:1.5;font-weight:700}
.panel p{margin:0;font-size:15px;line-height:1.8;color:var(--sub)}
.actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 32px;border-radius:100px;color:#FFFFFF;text-decoration:none;font-size:15px;font-weight:700;transition:opacity .2s}
.btn:hover{color:#FFFFFF;opacity:.85;text-decoration:none}
.btn-dark{background:#000000}
.btn-brand,.btn-brand:hover{background:var(--primary-fill);color:var(--primary-text)}
.text-link{font-size:14px;font-weight:500}

footer{background:#202124;color:#FFFFFF}
.footer-inner{padding-top:28px;padding-bottom:28px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;font-size:13px}
.footer-links{display:flex;gap:24px;flex-wrap:wrap}
.footer-links a{color:#FFFFFF;text-decoration:none}
.footer-links a:hover{color:#FFFFFF;text-decoration:underline}
.copyright{color:#C8C8C8}

.br-sp{display:none}

@media (max-width:640px){
  .wrap{padding-left:20px;padding-right:20px}
  .header-inner{padding-top:16px;padding-bottom:16px}
  .brand img{width:30px;height:30px;border-radius:5px}
  .brand span{font-size:20px}
  .site-link{font-size:13px}
  .hero{padding:56px 20px 48px;gap:18px}
  .eyebrow{font-size:13px}
  h1{font-size:32px;line-height:1.4}
  .catch{font-size:19px;margin-top:6px}
  .catch .br-sp{display:inline}
  .lead{font-size:15px}
  .lead br{display:none}
  .usecases{margin-top:24px;gap:14px}
  .usecases-title{font-size:14px}
  .cards{gap:12px}
  .card{flex-direction:row;align-items:flex-start;gap:14px;padding:18px;border-radius:14px}
  .icon{width:44px;height:44px;border-radius:10px}
  .card h3{font-size:16px;margin-bottom:4px}
  .card p{font-size:13px;line-height:1.7}
  .info-grid{padding-top:32px;padding-bottom:32px;gap:16px}
  .panel{padding:28px 24px;gap:12px;border-radius:14px}
  .panel .eyebrow{font-size:12px}
  .panel h2{font-size:20px}
  .panel p{font-size:14px}
  .actions{flex-direction:column;align-items:stretch;gap:8px}
  .btn{width:100%}
  .text-link{align-self:center;padding:8px;font-size:13px}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:14px;font-size:12px;padding-top:24px;padding-bottom:24px}
  .footer-links{gap:18px}
}
