
/* 全ページ共通の土台（ヘッダー・フッター・ボタン・リセット） */
:root{
  --tq:#1FB1CC;      /* イラストのターコイズ */
  --tq-d:#0C7F97;
  --tq-l:#E3F5F9;
  --tq-m:#BDE8F1;
  --ink:#17313B;
  --gray:#5B6E76;
  --base:#FFFFFF;
  --soft:#F6F8F8;
  --coral:#E8553A;   /* イラストのジャケットの赤 */
  --yellow:#F6B829;  /* イラストの黄色 */
  --shadow:0 18px 40px rgba(23,49,59,.10);
  --f:"M PLUS Rounded 1c",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--base);color:var(--ink);font-family:var(--f);font-weight:500;font-size:16px;line-height:1.9;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
.nb{display:inline-block}
.h{font-weight:900;line-height:1.45;letter-spacing:.02em;word-break:keep-all;overflow-wrap:anywhere}
section{padding:110px 0;position:relative}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:16px;padding:15px 30px;border-radius:999px;transition:transform .2s, box-shadow .2s, background .2s;white-space:nowrap}
.btn-tq{background:var(--tq);color:#fff;box-shadow:0 10px 24px rgba(31,177,204,.35)}
.btn-tq:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(31,177,204,.45)}
.btn-line{border:2px solid var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-white{background:#fff;color:var(--tq-d);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.btn-white:hover{transform:translateY(-3px)}
.btn .ar{transition:transform .2s}.btn:hover .ar{transform:translateX(4px)}

/* ヘッダー */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .3s, box-shadow .3s, transform .3s}
header.scrolled{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 4px 20px rgba(23,49,59,.06)}
header.hide{transform:translateY(-100%)}
.hd{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{font-weight:900;font-size:21px;letter-spacing:.06em;white-space:nowrap;display:flex;align-items:baseline;gap:8px}
.logo span{color:var(--tq)}
.logo small{font-size:10px;font-weight:700;color:var(--gray);letter-spacing:.12em}
nav ul{display:flex;gap:6px;list-style:none;font-weight:700;font-size:15px}
nav a{padding:8px 14px;border-radius:999px;transition:background .2s,color .2s}
nav a:hover{background:var(--tq-l);color:var(--tq-d)}
header .btn{padding:11px 22px;font-size:15px}

@media(max-width:980px){nav{display:none}}
@media(max-width:560px){header .btn{display:none}.logo small{display:none}}
footer{background:var(--ink);color:#C9D6DB;padding:60px 0 30px;font-size:14px}
.ft{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.ft .logo{color:#fff;margin-bottom:10px}
.ft h4{color:var(--tq);font-size:14px;margin-bottom:8px}
.ft ul{list-style:none;line-height:2.2}
.copy{margin-top:40px;padding-top:18px;border-top:1px solid #2C4852;font-size:12px}
@media(max-width:800px){.ft{grid-template-columns:1fr 1fr}}

/* スクロール表示 */
.rv{opacity:0;transform:translateY(34px);transition:opacity .7s, transform .8s cubic-bezier(.2,1.2,.4,1)}
.rv.in{opacity:1;transform:none}

.float{display:none}
@media(max-width:700px){
  section{padding:80px 0}
  .float{display:flex;position:fixed;left:16px;right:16px;bottom:12px;z-index:60;justify-content:center;font-size:15px;padding:12px}
  footer{padding-bottom:96px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv,.word{opacity:1;transform:none}.ul path{stroke-dashoffset:0}}
