:root {
  /* ===========================================
     スペース系変数
     PC: 1200px以上（固定値）
     ========================================== */

  --sp-0-2: 0.2rem;
  --sp-0-4: 0.4rem;
  --sp-0-5: 0.5rem;
  --sp-0-6: 0.6rem;
  --sp-0-8: 0.8rem;
  --sp-1: 1rem;
  --sp-1-2: 1.2rem;
  --sp-1-4: 1.4rem;
  --sp-1-5: 1.5rem;
  --sp-1-6: 1.6rem;
  --sp-1-8: 1.8rem;
  --sp-2: 2rem;
  --sp-2-5: 2.5rem;
  --sp-3: 3rem;
  --sp-3-5: 3.5rem;
  --sp-4: 4rem;
  --sp-4-5: 4.5rem;
  --sp-5: 5rem;
  --sp-6: 6rem;
  --sp-7: 7rem;
  --sp-8: 8rem;
  --sp-9: 9rem;
  --sp-10: 10rem;
  --sp-11: 11rem;
  --sp-12: 12rem;
  --sp-13: 13rem;
  --sp-14: 14rem;
  --sp-15: 15rem;
  --sp-16: 16rem;
  --sp-17: 17rem;
  --sp-18: 18rem;
  --sp-19: 19rem;
  --sp-20: 20rem;
}

@media (max-width: 1199px) {
  :root {
    /* ===========================================
       タブレット: 768-1199px（clampでスケール）
       ========================================== */

    /* 極小 (80-85%縮小) */
    --sp-0-2: clamp(0.16rem, calc(0.037rem + 0.278vw), 0.2rem);
    --sp-0-4: clamp(0.32rem, calc(0.074rem + 0.556vw), 0.4rem);
    --sp-0-5: clamp(0.4rem, calc(0.093rem + 0.694vw), 0.5rem);
    --sp-0-6: clamp(0.48rem, calc(0.111rem + 0.833vw), 0.6rem);
    --sp-0-8: clamp(0.64rem, calc(0.148rem + 1.111vw), 0.8rem);

    /* 小 (75-80%縮小) */
    --sp-1: clamp(0.8rem, calc(0.185rem + 1.389vw), 1rem);
    --sp-1-2: clamp(0.96rem, calc(0.222rem + 1.667vw), 1.2rem);
    --sp-1-4: clamp(1.12rem, calc(0.259rem + 1.944vw), 1.4rem);
    --sp-1-5: clamp(1.2rem, calc(0.278rem + 2.083vw), 1.5rem);
    --sp-1-6: clamp(1.28rem, calc(0.296rem + 2.222vw), 1.6rem);
    --sp-1-8: clamp(1.44rem, calc(0.333rem + 2.5vw), 1.8rem);
    --sp-2: clamp(1.5rem, calc(0.278rem + 2.778vw), 2rem);
    --sp-2-5: clamp(1.875rem, calc(0.347rem + 3.472vw), 2.5rem);

    /* 中 (70-73%縮小) */
    --sp-3: clamp(2.2rem, calc(0.407rem + 4.167vw), 3rem);
    --sp-3-5: clamp(2.55rem, calc(0.463rem + 4.861vw), 3.5rem);
    --sp-4: clamp(2.9rem, calc(0.519rem + 5.556vw), 4rem);
    --sp-4-5: clamp(3.15rem, calc(0.556rem + 6.25vw), 4.5rem);
    --sp-5: clamp(3.5rem, calc(0.556rem + 6.944vw), 5rem);
    --sp-6: clamp(4.2rem, calc(0.667rem + 8.333vw), 6rem);
    --sp-7: clamp(4.9rem, calc(0.778rem + 9.722vw), 7rem);

    /* 大 (60-62.5%縮小) */
    --sp-8: clamp(5rem, calc(0.741rem + 10.185vw), 8rem);
    --sp-9: clamp(5.6rem, calc(0.815rem + 11.481vw), 9rem);
    --sp-10: clamp(6rem, calc(0.741rem + 12.778vw), 10rem);
    --sp-11: clamp(6.6rem, calc(0.815rem + 14.074vw), 11rem);
    --sp-12: clamp(7.2rem, calc(0.889rem + 15.37vw), 12rem);
    --sp-13: clamp(7.8rem, calc(0.963rem + 16.667vw), 13rem);
    --sp-14: clamp(8.4rem, calc(1.037rem + 17.963vw), 14rem);
    --sp-15: clamp(9rem, calc(1.111rem + 19.259vw), 15rem);
    --sp-16: clamp(9.6rem, calc(1.185rem + 20.556vw), 16rem);
    --sp-17: clamp(10.2rem, calc(1.259rem + 21.852vw), 17rem);
    --sp-18: clamp(10.8rem, calc(1.333rem + 23.148vw), 18rem);
    --sp-19: clamp(11.4rem, calc(1.407rem + 24.444vw), 19rem);
    --sp-20: clamp(12rem, calc(1.481rem + 25.741vw), 20rem);
  }
}

@media (max-width: 767px) {
  :root {
    /* ===========================================
       スマホ: 767px以下（clampでスケール）
       320px-767pxの範囲でスケール
       すべて80%縮小
       ========================================== */

    /* 極小 */
    --sp-0-2: clamp(0.128rem, calc(0.117rem + 0.036vw), 0.16rem);
    --sp-0-4: clamp(0.256rem, calc(0.234rem + 0.072vw), 0.32rem);
    --sp-0-5: clamp(0.32rem, calc(0.292rem + 0.089vw), 0.4rem);
    --sp-0-6: clamp(0.384rem, calc(0.351rem + 0.107vw), 0.48rem);
    --sp-0-8: clamp(0.512rem, calc(0.468rem + 0.143vw), 0.64rem);

    /* 小 */
    --sp-1: clamp(0.64rem, calc(0.585rem + 0.179vw), 0.8rem);
    --sp-1-2: clamp(0.768rem, calc(0.702rem + 0.214vw), 0.96rem);
    --sp-1-4: clamp(0.896rem, calc(0.819rem + 0.25vw), 1.12rem);
    --sp-1-5: clamp(0.96rem, calc(0.878rem + 0.268vw), 1.2rem);
    --sp-1-6: clamp(1.024rem, calc(0.936rem + 0.286vw), 1.28rem);
    --sp-1-8: clamp(1.152rem, calc(1.053rem + 0.321vw), 1.44rem);
    --sp-2: clamp(1.2rem, calc(1.097rem + 0.335vw), 1.5rem);
    --sp-2-5: clamp(1.5rem, calc(1.371rem + 0.42vw), 1.875rem);

    /* 中 */
    --sp-3: clamp(1.76rem, calc(1.609rem + 0.491vw), 2.2rem);
    --sp-3-5: clamp(2.04rem, calc(1.866rem + 0.567vw), 2.55rem);
    --sp-4: clamp(2.32rem, calc(2.122rem + 0.643vw), 2.9rem);
    --sp-4-5: clamp(2.52rem, calc(2.305rem + 0.701vw), 3.15rem);
    --sp-5: clamp(2.8rem, calc(2.561rem + 0.777vw), 3.5rem);
    --sp-6: clamp(3.36rem, calc(3.073rem + 0.933vw), 4.2rem);
    --sp-7: clamp(3.92rem, calc(3.585rem + 1.089vw), 4.9rem);

    /* 大 */
    --sp-8: clamp(4rem, calc(3.659rem + 1.109vw), 5rem);
    --sp-9: clamp(4.48rem, calc(4.098rem + 1.243vw), 5.6rem);
    --sp-10: clamp(4.8rem, calc(4.39rem + 1.335vw), 6rem);
    --sp-11: clamp(5.28rem, calc(4.829rem + 1.469vw), 6.6rem);
    --sp-12: clamp(5.76rem, calc(5.268rem + 1.603vw), 7.2rem);
    --sp-13: clamp(6.24rem, calc(5.707rem + 1.737vw), 7.8rem);
    --sp-14: clamp(6.72rem, calc(6.146rem + 1.871vw), 8.4rem);
    --sp-15: clamp(7.2rem, calc(6.585rem + 2.005vw), 9rem);
    --sp-16: clamp(7.68rem, calc(7.024rem + 2.139vw), 9.6rem);
    --sp-17: clamp(8.16rem, calc(7.463rem + 2.273vw), 10.2rem);
    --sp-18: clamp(8.64rem, calc(7.902rem + 2.407vw), 10.8rem);
    --sp-19: clamp(9.12rem, calc(8.341rem + 2.541vw), 11.4rem);
    --sp-20: clamp(9.6rem, calc(8.78rem + 2.675vw), 12rem);
  }
}



/* ===========================================
フォントサイズ系変数
PC: 1200px以上（固定値）
768px-1199pxはclampでスケール　0.875-1.0倍
========================================== */
:root {
  /* ベースフォントサイズ */
  --base-font-scale: 16px;
}

html {
  font-size: var(--base-font-scale) !important;
}

@media (max-width: 1199px) {
  :root {
    /* 1200px→768pxで16px→14pxにスケール */
    --base-font-scale: clamp(14px, calc(10.44px + 0.46vw), 16px);
  }
}

@media (max-width: 767px) {
  :root {
    /* 768px以下は14pxに固定 */
    --base-font-scale: 14px;
  }
}

/*
:root {
  /* ===========================================
     フォントサイズ系変数
     PC: 1200px以上（固定値）
     小さいサイズ(1rem以下)は固定
     大きいサイズ(1.2rem以上)はスケール対象
     ========================================== */

/* 0.7-1.0rem: 極小～小（固定またはほぼ固定） */
--fs-0-7: 0.7rem;
--fs-0-8: 0.8rem;
--fs-0-9: 0.9rem;
--fs-1: 1rem;

/* 1.1-2.0rem: 中サイズ（軽度スケール） */
--fs-1-1: 1.1rem;
--fs-1-2: 1.2rem;
--fs-1-3: 1.3rem;
--fs-1-4: 1.4rem;
--fs-1-5: 1.5rem;
--fs-1-6: 1.6rem;
--fs-1-7: 1.7rem;
--fs-1-8: 1.8rem;
--fs-1-9: 1.9rem;
--fs-2: 2rem;

/* 2.1-3.0rem: 大サイズ（積極的スケール） */
--fs-2-1: 2.1rem;
--fs-2-2: 2.2rem;
--fs-2-3: 2.3rem;
--fs-2-4: 2.4rem;
--fs-2-5: 2.5rem;
--fs-2-6: 2.6rem;
--fs-2-7: 2.7rem;
--fs-2-8: 2.8rem;
--fs-2-9: 2.9rem;
--fs-3: 3rem;

/* 3.5-6.0rem: 特大サイズ（積極的スケール） */
--fs-3-5: 3.5rem;
--fs-4: 4rem;
--fs-4-5: 4.5rem;
--fs-5: 5rem;
--fs-5-5: 5.5rem;
--fs-6: 6rem;
}

@media (max-width: 1199px) {
  :root {
    /* ===========================================
       タブレット: 768-1199px（clampでスケール）
       ========================================== */

    /* 0.7-1.0rem: 固定（スケールしない） */
    --fs-0-7: 0.7rem;
    --fs-0-8: 0.8rem;
    --fs-0-9: 0.9rem;
    --fs-1: 1rem;

    /* 1.1-2.0rem: 軽度スケール (85-90%縮小) */
    --fs-1-1: clamp(0.99rem, calc(0.922rem + 0.139vw), 1.1rem);
    --fs-1-2: clamp(1.08rem, calc(1.011rem + 0.139vw), 1.2rem);
    --fs-1-3: clamp(1.17rem, calc(1.101rem + 0.139vw), 1.3rem);
    --fs-1-4: clamp(1.26rem, calc(1.19rem + 0.139vw), 1.4rem);
    --fs-1-5: clamp(1.35rem, calc(1.28rem + 0.139vw), 1.5rem);
    --fs-1-6: clamp(1.44rem, calc(1.369rem + 0.139vw), 1.6rem);
    --fs-1-7: clamp(1.53rem, calc(1.459rem + 0.139vw), 1.7rem);
    --fs-1-8: clamp(1.62rem, calc(1.548rem + 0.139vw), 1.8rem);
    --fs-1-9: clamp(1.71rem, calc(1.638rem + 0.139vw), 1.9rem);
    --fs-2: clamp(1.7rem, calc(1.548rem + 0.278vw), 2rem);

    /* 2.1-3.0rem: 積極的スケール (73-80%縮小) */
    --fs-2-1: clamp(1.68rem, calc(1.485rem + 0.417vw), 2.1rem);
    --fs-2-2: clamp(1.76rem, calc(1.548rem + 0.417vw), 2.2rem);
    --fs-2-3: clamp(1.84rem, calc(1.611rem + 0.417vw), 2.3rem);
    --fs-2-4: clamp(1.92rem, calc(1.674rem + 0.417vw), 2.4rem);
    --fs-2-5: clamp(2rem, calc(1.737rem + 0.417vw), 2.5rem);
    --fs-2-6: clamp(2.08rem, calc(1.8rem + 0.417vw), 2.6rem);
    --fs-2-7: clamp(2.16rem, calc(1.863rem + 0.417vw), 2.7rem);
    --fs-2-8: clamp(2.24rem, calc(1.926rem + 0.417vw), 2.8rem);
    --fs-2-9: clamp(2.32rem, calc(1.989rem + 0.417vw), 2.9rem);
    --fs-3: clamp(2.4rem, calc(2.052rem + 0.417vw), 3rem);

    /* 3.5-6.0rem: 特大サイズ (65-70%縮小) */
    --fs-3-5: clamp(2.45rem, calc(2.052rem + 0.694vw), 3.5rem);
    --fs-4: clamp(2.8rem, calc(2.345rem + 0.694vw), 4rem);
    --fs-4-5: clamp(3.15rem, calc(2.638rem + 0.694vw), 4.5rem);
    --fs-5: clamp(3.5rem, calc(2.931rem + 0.694vw), 5rem);
    --fs-5-5: clamp(3.85rem, calc(3.224rem + 0.694vw), 5.5rem);
    --fs-6: clamp(4.2rem, calc(3.517rem + 0.694vw), 6rem);
  }
}

@media (max-width: 767px) {
  :root {
    /* ===========================================
       スマホ: 767px以下（clampでスケール）
       320px-767pxの範囲でスケール
       ========================================== */

    /* 0.7-1.0rem: 固定（スケールしない） */
    --fs-0-7: 0.7rem;
    --fs-0-8: 0.8rem;
    --fs-0-9: 0.9rem;
    --fs-1: 1rem;

    /* 1.1-2.0rem: 軽度スケール (90-95%に維持) */
    --fs-1-1: clamp(0.95rem, calc(0.939rem + 0.058vw), 0.99rem);
    --fs-1-2: clamp(1.03rem, calc(1.017rem + 0.067vw), 1.08rem);
    --fs-1-3: clamp(1.11rem, calc(1.096rem + 0.076vw), 1.17rem);
    --fs-1-4: clamp(1.19rem, calc(1.175rem + 0.085vw), 1.26rem);
    --fs-1-5: clamp(1.28rem, calc(1.262rem + 0.089vw), 1.35rem);
    --fs-1-6: clamp(1.37rem, calc(1.349rem + 0.098vw), 1.44rem);
    --fs-1-7: clamp(1.45rem, calc(1.427rem + 0.107vw), 1.53rem);
    --fs-1-8: clamp(1.54rem, calc(1.514rem + 0.112vw), 1.62rem);
    --fs-1-9: clamp(1.62rem, calc(1.592rem + 0.125vw), 1.71rem);
    --fs-2: clamp(1.6rem, calc(1.573rem + 0.143vw), 1.7rem);

    /* 2.1-3.0rem: 積極的スケール (80-85%維持) */
    --fs-2-1: clamp(1.51rem, calc(1.479rem + 0.161vw), 1.68rem);
    --fs-2-2: clamp(1.58rem, calc(1.548rem + 0.17vw), 1.76rem);
    --fs-2-3: clamp(1.65rem, calc(1.617rem + 0.179vw), 1.84rem);
    --fs-2-4: clamp(1.73rem, calc(1.695rem + 0.179vw), 1.92rem);
    --fs-2-5: clamp(1.8rem, calc(1.764rem + 0.188vw), 2rem);
    --fs-2-6: clamp(1.87rem, calc(1.833rem + 0.197vw), 2.08rem);
    --fs-2-7: clamp(1.94rem, calc(1.901rem + 0.205vw), 2.16rem);
    --fs-2-8: clamp(2.02rem, calc(1.979rem + 0.205vw), 2.24rem);
    --fs-2-9: clamp(2.09rem, calc(2.048rem + 0.214vw), 2.32rem);
    --fs-3: clamp(2.16rem, calc(2.117rem + 0.223vw), 2.4rem);

    /* 3.5-6.0rem: 特大サイズ (70-80%維持) */
    --fs-3-5: clamp(1.96rem, calc(1.895rem + 0.33vw), 2.45rem);
    --fs-4: clamp(2.24rem, calc(2.164rem + 0.384vw), 2.8rem);
    --fs-4-5: clamp(2.52rem, calc(2.434rem + 0.438vw), 3.15rem);
    --fs-5: clamp(2.8rem, calc(2.703rem + 0.491vw), 3.5rem);
    --fs-5-5: clamp(3.08rem, calc(2.973rem + 0.545vw), 3.85rem);
    --fs-6: clamp(3.36rem, calc(3.242rem + 0.598vw), 4.2rem);
  }
}

*/