:root{
    --orange:#ED541B;
    --orange-dark:#d2480f;
    --maxw:1200px;
    --gutter:7.8%;
    --header-h:clamp(54px, 6.2vw, 74px);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
  body{
    font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",YuGothic,Meiryo,sans-serif;
    color:#222;
    background:#fff;
    padding-top:var(--header-h);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    -webkit-tap-highlight-color:rgba(237,84,27,.15);
  }
  img{ max-width:100%; }
  .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  /* in-page anchors clear the fixed header when jumped to */
  [id]{ scroll-margin-top:calc(var(--header-h) + 10px); }
  .sp-br{ display:none; }

  /* ===== Fixed Header ===== */
  .header{
    position:fixed;
    top:0;left:0;right:0;
    height:var(--header-h);
    background:#fff;
    z-index:1000;
    box-shadow:0 1px 6px rgba(0,0,0,.08);
  }
  .header__inner{
    max-width:var(--maxw);
    height:100%;
    margin:0 auto;
    padding:0 var(--gutter);
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .header__left{
    display:flex;
    align-items:center;
    gap:clamp(16px, 2.6vw, 31px);
    min-width:0;
  }
  .header__home{
    display:inline-flex;
    align-items:center;
    flex:none;
  }
  .header__logo{
    height:clamp(20px, 2.45vw, 29px);
    width:auto;
    display:block;
  }
  .header__tagline{
    font-family:"M PLUS Rounded 1c", sans-serif;
    font-size:clamp(11px, 1.3vw, 16px);
    font-weight:500;
    color:#303030;
    letter-spacing:.02em;
    white-space:nowrap;
  }
  .header__cta{
    flex:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--orange);
    color:#fff;
    font-size:clamp(11px, 1.2vw, 15px);
    font-weight:700;
    text-decoration:none;
    padding:clamp(7px, 0.8vw, 10px) clamp(14px, 2vw, 24px);
    border-radius:999px;
    white-space:nowrap;
    letter-spacing:0;
    transition:background .2s ease, transform .1s ease;
  }
  .header__cta:hover{background:var(--orange-dark);}
  .header__cta:active{transform:translateY(1px);}
  .header__cta-sp{ display:none; }

  /* ===== Page sections ===== */
  .site{
    width:100%;
  }
  .section{
    display:block;
    width:100%;
    height:auto;
  }

  /* ===== Hero (se01) ===== */
  /* full-bleed photo, text capped to centered max-width */
  .hero{
    position:relative;
    width:100%;
    aspect-ratio:2000 / 1248;
    background:url("../images/first.jpg") no-repeat center center;
    background-size:cover;
    overflow:hidden;
  }
  .hero__inner{
    position:relative;
    max-width:var(--maxw);
    height:100%;
    margin:0 auto;
    container-type:inline-size;
  }
  .hero__copy{
    position:absolute;
    left:7.85%;
    top:26.4%;
  }
  .hero__head{
    display:inline-block;
    background:#fff;
    color:#040404;
    font-weight:800;
    font-size:4.2cqw;
    line-height:1;
    letter-spacing:.02em;
    padding:1.2cqw 2.1cqw;
  }
  .hero__line + .hero__line{margin-top:2.3cqw;}
  .hero__lead{
    margin:3.6cqw 0 0 2.1cqw;
    color:#070807;
    font-weight:700;
    font-size:1.9cqw;
    line-height:1.74;
    letter-spacing:.02em;
    text-shadow:
      0 0 0.4cqw #fff,
      0 0 0.9cqw #fff,
      0 0 1.6cqw rgba(255,255,255,.98),
      0 0 2.8cqw rgba(255,255,255,.9),
      0 0 4.4cqw rgba(255,255,255,.7);
  }
  .hero__sub{
    margin:2.6cqw 0 0 2.1cqw;
    color:#111;
    font-weight:400;
    font-size:1.4cqw;
    line-height:2.1;
    letter-spacing:.02em;
    text-shadow:
      0 0 0.4cqw #fff,
      0 0 0.9cqw #fff,
      0 0 1.5cqw rgba(255,255,255,.98),
      0 0 2.6cqw rgba(255,255,255,.88),
      0 0 4cqw rgba(255,255,255,.65);
  }

  /* ===== se02 : Problem ===== */
  .prob{ width:100%; background:#f7f7f7; }
  .prob__inner{
    max-width:var(--maxw);
    margin:0 auto;
    padding:12% 7.8% 7%;
    container-type:inline-size;
  }
  .prob__pre{
    text-align:center;
    color:#1a1a1a;
    font-weight:600;
    font-size:1.65cqw;
    letter-spacing:.05em;
  }
  .prob__title{
    margin-top:3cqw;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:1.5cqw;
    color:#232323;
    font-family:"Hiragino Sans","HiraginoSans-W7","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;
    font-weight:700;
    font-size:3.4cqw;
    letter-spacing:.05em;
    line-height:1;
  }
  .prob__title-txt{ font-weight:700; }
  .prob__title .hl{ color:#A239C2; font-weight:700; }
  .prob__title::before,
  .prob__title::after{
    content:"";
    flex:none;
    width:0.22cqw;
    height:5.2cqw;
    background:#2b2b2b;
    border-radius:2px;
  }
  .prob__title::before{ transform:rotate(-25deg); }
  .prob__title::after{ transform:rotate(25deg); }

  .prob__cols{
    margin-top:7.9cqw;
    display:flex;
    align-items:stretch;
    justify-content:space-between;
  }
  .prob__left{ flex:0 0 48.9%; }
  .prob__illust{ display:block; width:100%; height:auto; }

  .prob__list{
    flex:0 0 47.7%;
    list-style:none;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:4.5cqw 0 8cqw;
  }
  .prob__list li{
    display:flex;
    align-items:center;
    gap:2.25cqw;
    line-height:1.3;
  }
  .prob__check{ flex:none; width:2.6cqw; height:auto; }
  .prob__list .t{ color:#1a1a1a; font-weight:700; font-size:1.4cqw; }
  .prob__list .e{ color:#A239C2; font-weight:800; font-size:1.9cqw; }

  /* ===== se03 : セルフチェック誘導（シェブロン帯） ===== */
  .selfcheck{
    position:relative;
    width:100%;
    background:linear-gradient(90deg,#DA4735 0%,#ED541B 50%,#FF6002 100%);
    overflow:hidden;
    color:#fff;
    text-align:center;
    container-type:inline-size;
    --chev:9.9vw;
  }
  .selfcheck::before{
    content:"";
    position:absolute; top:0; left:0; width:100%;
    height:var(--chev);
    background:#f7f7f7;
    clip-path:polygon(0 0, 100% 0, 50% 100%);
  }
  .selfcheck::after{
    content:"";
    position:absolute; bottom:0; left:0; width:100%;
    height:var(--chev);
    background:#FFF2BB;
    clip-path:polygon(0 0, 0 100%, 100% 100%, 100% 0, 50% 100%);
  }
  .selfcheck__inner{
    position:relative;
    z-index:1;
    width:100%;
    margin:0 auto;
    padding:16.5% 7.8% 14%;
  }
  .sc__label{
    display:inline-block;
    font-size:2cqw;
    font-weight:800;
    letter-spacing:.09em;
    padding-bottom:.85cqw;
    border-bottom:.13cqw solid #fff;
  }
  .sc__title{
    margin-top:3.2cqw;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:1.1cqw;
    font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;
    font-weight:700;
    font-size:2.95cqw;
    letter-spacing:.03em;
    line-height:1;
  }
  .sc__badge{
    display:inline-flex;
    align-items:center;
    background:#fff;
    border-radius:0;
    padding:.35cqw 2.1cqw;
  }
  .sc__badge img{ height:4.3cqw; width:auto; display:block; }
  .sc__kara{ font-size:.8em; font-weight:800; }
  .sc__t2{ font-weight:800; }
  .sc__sub{
    margin-top:4.4cqw;
    font-size:1.45cqw;
    font-weight:600;
    line-height:2.05;
    letter-spacing:.03em;
  }

  /* ===== se04 : セルフチェックとは？ ===== */
  .sc4{ width:100%; background:#FFF2BB; position:relative; margin-top:-1px; }
  .sc4__inner{
    max-width:var(--maxw);
    margin:0 auto;
    padding:11.3% 7.8% 8%;
    container-type:inline-size;
    text-align:center;
  }
  .sc4__head{ display:block; width:34.2cqw; height:auto; margin:0 auto; }
  .sc4__lead{ margin-top:9cqw; font-size:2.5cqw; font-weight:700; color:#2b2b2b; letter-spacing:.02em; }
  .sc4__lead .o{ color:#FF8E0C; }
  .sc4__list{ list-style:none; margin:5.2cqw 0 0; display:inline-block; text-align:left; }
  .sc4__list li{ display:flex; align-items:center; font-size:2cqw; font-weight:700; color:#2b2b2b; }
  .sc4__list li + li{ margin-top:2cqw; }
  .sc4__list .dot{ width:1.5cqw; height:1.5cqw; border-radius:50%; background:#27A238; margin-right:1.4cqw; flex:none; }
  .sc4__list .hl{ background:#fff; padding:.25cqw .7cqw; margin:0 .35cqw; border-radius:.25cqw; }
  .sc4__see{ margin-top:5cqw; font-size:2.5cqw; font-weight:800; color:#2b2b2b; }
  .sc4__card{
    width:70.3cqw; box-sizing:border-box;
    margin:6.2cqw auto 0;
    background:#fff;
    border-radius:1.6cqw;
    box-shadow:0.4cqw 0.5cqw 0.25cqw rgba(0,0,0,.21);
    padding:8.3cqw 5.7cqw 4.5cqw;
  }
  .sc4__cardtop{ display:flex; align-items:center; justify-content:center; gap:5.6cqw; }
  .sc4__badge{ width:23.7cqw; height:auto; flex:none; display:block; }
  .sc4__cardtext{ text-align:left; font-size:1.6cqw; line-height:1.72; color:#333; font-weight:500; }
  .sc4__btn{
    display:flex; align-items:center; justify-content:center;
    width:35.6cqw; height:5.2cqw;
    margin:5.7cqw auto 0;
    background:linear-gradient(90deg,#DA4733 0%,#ED541A 50%,#FE5F03 100%);
    color:#fff; font-size:1.9cqw; font-weight:700;
    text-decoration:none; border-radius:999px;
    box-shadow:0 .5cqw 1cqw rgba(230,90,30,.35);
    letter-spacing:.03em;
  }
  .sc4__btn:hover{ filter:brightness(1.05); }

  /* ===== se05 : 就活チェックイン（左写真＋右本文） ===== */
  .sc5{ width:100%; background:#fff; overflow:hidden; padding-bottom:5%; }
  .sc5__head{
    position:relative;
    max-width:var(--maxw);
    margin:0 auto;
    padding:13% 7.8% 0;
    text-align:center;
    container-type:inline-size;
  }
  .sc5__htitle{ display:inline-block; position:relative; font-family:"Murecho",sans-serif; font-size:2.1cqw; font-weight:700; color:#1a1a1a; letter-spacing:.04em; }
  .sc5__label{ position:absolute; left:-11cqw; top:-3.2cqw; width:13cqw; height:auto; }
  .sc5__cols{
    max-width:var(--maxw);
    margin:5% auto 0;
    display:flex;
    align-items:flex-start;
    gap:6%;
    container-type:inline-size;
  }
  .sc5__photo{
    flex:0 0 auto;
    width:calc(46% + max(0px, (100vw - var(--maxw)) / 2));
    margin-left:calc(-1 * max(0px, (100vw - var(--maxw)) / 2));
  }
  .sc5__photo img{ width:100%; height:auto; display:block; }
  .sc5__body{ flex:1 1 auto; padding-right:7.8%; }
  .sc5__rtitle{ font-size:2.1cqw; font-weight:700; color:#1a1a1a; line-height:1.45; letter-spacing:.02em; }
  .sc5__body p{ margin-top:2.2cqw; font-family:"Murecho",sans-serif; font-size:1.35cqw; line-height:2.0; color:#222; }
  .sc5__body p:first-of-type{ margin-top:3.4cqw; }

  /* ===== se06 : 3カラム ===== */
  .sc6{ width:100%; background:#fff; }
  .sc6__inner{ max-width:1600px; margin:0 auto; padding:7% 6%; container-type:inline-size; text-align:center; }
  .sc6__title{ font-size:2.4cqw; font-weight:700; color:#222; letter-spacing:.02em; }
  .sc6__title .o{ color:#F5831F; }
  .sc6__cols{ display:flex; justify-content:center; gap:5.8cqw; margin-top:6cqw; }
  .sc6__col{ width:21.6cqw; text-align:left; }
  .sc6__photo{ width:100%; height:auto; display:block; border-radius:.3cqw; }
  .sc6__ctitle{ display:flex; align-items:center; gap:1cqw; margin-top:2.6cqw; font-size:1.75cqw; font-weight:700; color:#222; }
  .sc6__num{ flex:none; width:3.65cqw; height:3.65cqw; border-radius:50%; background:#FF8800; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; }
  .sc6__num .p{ font-size:.4cqw; font-weight:700; letter-spacing:.06em; margin-bottom:.35cqw; }
  .sc6__num .n{ font-size:1.4cqw; font-weight:800; line-height:.85; }
  .sc6__ctext{ margin-top:2cqw; font-size:1.3cqw; line-height:1.75; color:#333; }
  .sc6__btn{ display:flex; align-items:center; justify-content:center; width:46.4cqw; height:4.9cqw; margin:7cqw auto 0; background:#168550; color:#fff; font-size:1.9cqw; font-weight:700; text-decoration:none; border-radius:999px; box-shadow:0 .5cqw 1cqw rgba(22,133,80,.3); letter-spacing:.03em; }
  .sc6__btn:hover{ filter:brightness(1.06); }
  .sc6__note{ margin-top:5cqw; font-size:1.1cqw; line-height:1.7; color:#555; text-align:center; }

  /* ===== se07 : 全幅写真＋セルフチェックCTA ===== */
  .sc7{
    position:relative;
    width:100%;
    aspect-ratio:2000 / 1000;
    background:url("../images/se07_bg.jpg") no-repeat center center;
    background-size:cover;
    overflow:hidden;
  }
  .sc7__inner{
    position:relative;
    max-width:var(--maxw);
    height:100%;
    margin:0 auto;
    container-type:inline-size;
  }
  .sc7__content{
    position:absolute;
    right:6cqw;
    top:50%;
    transform:translateY(-50%);
    width:50cqw;
    text-align:center;
    color:#333;
  }
  .sc7__label{ display:flex; align-items:center; justify-content:center; gap:1.4cqw; font-size:1.55cqw; font-weight:700; letter-spacing:.04em; }
  .sc7__label::before, .sc7__label::after{ content:""; width:.16cqw; height:2.5cqw; background:#3a3a3a; }
  .sc7__label::before{ transform:rotate(-22deg); }
  .sc7__label::after{ transform:rotate(22deg); }
  .sc7__badge{ display:block; width:36cqw; height:auto; margin:1.2cqw auto 0; }
  .sc7__sub{ margin-top:3cqw; font-size:1.45cqw; font-weight:500; letter-spacing:.03em; }
  .sc7__btn{
    display:flex; align-items:center; justify-content:center;
    width:35.6cqw; height:5.1cqw;
    margin:6.5cqw auto 0;
    background:linear-gradient(90deg,#DA4733 0%,#ED541A 50%,#FE5F03 100%);
    color:#fff; font-size:1.9cqw; font-weight:700;
    text-decoration:none; border-radius:999px;
    box-shadow:0 .5cqw 1.2cqw rgba(230,90,30,.4);
    letter-spacing:.03em;
  }
  .sc7__btn:hover{ filter:brightness(1.05); }

  /* ===== se08 : ご利用の流れ ===== */
  .sc8{ width:100%; background:#fff; }
  .sc8__inner{ max-width:1600px; margin:0 auto; padding:11.2% 6% 19.5%; container-type:inline-size; text-align:center; }
  .sc8__title{
    display:inline-block;
    font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
    font-size:3.4cqw; font-weight:700; color:#222; letter-spacing:.04em;
    border-bottom:.22cqw solid #222; padding-bottom:1cqw;
  }
  .sc8__sub{ margin-top:3cqw; font-size:2cqw; font-weight:700; color:#222; }
  .sc8__steps{ display:flex; justify-content:center; align-items:stretch; gap:1.8cqw; margin-top:6cqw; }
  .sc8__card{
    width:23.5cqw; box-sizing:border-box;
    background:#fff; border-radius:1.2cqw;
    box-shadow:0.4cqw 0.5cqw 0.25cqw rgba(0,0,0,.21);
    padding:3cqw 2cqw 3.4cqw;
    text-align:center;
  }
  .sc8__step{ font-size:1.05cqw; font-weight:700; color:#F5831F; letter-spacing:.12em; }
  .sc8__circle{ width:12.75cqw; height:12.75cqw; border-radius:50%; object-fit:cover; margin:1.5cqw auto 0; display:block; }
  .sc8__cardtitle{ margin-top:2.2cqw; min-height:4.9cqw; font-size:1.75cqw; font-weight:700; color:#222; line-height:1.4; }
  .sc8__cardtext{ margin-top:1.6cqw; font-family:"M PLUS Rounded 1c",sans-serif; font-size:clamp(13px, 1.1vw, 17.6px); line-height:1.7; color:#333; text-align:left; }
  .sc8__arrow{ align-self:center; display:flex; align-items:center; }
  .sc8__arrow svg{ width:2.3cqw; height:auto; display:block; }

  /* ===== se09 : 全幅写真＋セルフチェックCTA（コンテンツ左） ===== */
  .sc9{
    position:relative; width:100%; aspect-ratio:2000 / 1000;
    background:url("../images/se09_bg.jpg") no-repeat center center; background-size:cover;
    overflow:hidden;
  }
  .sc9__inner{ position:relative; max-width:var(--maxw); height:100%; margin:0 auto; container-type:inline-size; }
  .sc9__content{
    position:absolute; left:6cqw; top:50%; transform:translateY(-50%);
    width:50cqw; text-align:center; color:#333;
  }

  /* ===== se10 : JOBパーク＋について ===== */
  .sc10{ width:100%; background:#fff; }
  .sc10__inner{ max-width:var(--maxw); margin:0 auto; padding:14% 7.8% 15.8%; container-type:inline-size; }
  .sc10__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:4cqw; }
  .sc10__title{
    font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
    font-size:3.2cqw; font-weight:700; color:#222; line-height:1.45; letter-spacing:.02em;
  }
  .sc10__lead-body{ margin-top:3cqw; font-size:1.5cqw; font-weight:700; line-height:1.85; color:#333; }
  .sc10__logo{ flex:none; width:24cqw; height:auto; margin-top:13cqw; margin-right:7cqw; }
  .sc10__card{ margin-top:6cqw; background:#FFF2BB; border-radius:1.6cqw; padding:5cqw 4cqw 5.5cqw; }
  .sc10__cardhead{ text-align:center; font-size:2cqw; font-weight:700; color:#222; letter-spacing:.05em; }
  .sc10__cols{ display:flex; justify-content:center; gap:4cqw; margin-top:4.5cqw; align-items:stretch; }
  .sc10__col{ width:21.6cqw; text-align:center; display:flex; flex-direction:column; }
  .sc10__cap{ font-size:1.05cqw; color:#555; font-weight:500; }
  .sc10__col img{ width:100%; height:auto; border-radius:.4cqw; margin-top:1cqw; display:block; }
  .sc10__col h4{ margin-top:1.6cqw; min-height:4.2cqw; font-size:1.5cqw; font-weight:700; color:#222; line-height:1.4; }
  .sc10__ctext{ margin:1.6cqw 0 2.5cqw; font-family:"M PLUS Rounded 1c",sans-serif; font-size:clamp(13px, 1.1vw, 17.6px); line-height:1.7; color:#333; text-align:left; }
  .sc10__dbtn{
    display:inline-flex; align-items:center; justify-content:center;
    align-self:center; margin-top:auto; padding:.95cqw 3.2cqw;
    background:#FF8800; color:#fff; font-size:1.3cqw; font-weight:700;
    border-radius:999px; text-decoration:none;
  }
  .sc10__dbtn:hover{ filter:brightness(1.05); }

  /* ===== se11 : イベントバナー ===== */
  .sc11{
    position:relative; width:100%; aspect-ratio:2000 / 1334;
    background:url("../images/se11_bg.jpg") no-repeat center center; background-size:cover;
    overflow:hidden;
  }
  .sc11::before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.38); }
  .sc11__inner{
    position:relative; z-index:1;
    max-width:var(--maxw); height:100%; margin:0 auto;
    container-type:inline-size;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; color:#fff; padding:0 7.8%;
  }
  .sc11__title{
    font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
    font-size:3.4cqw; font-weight:700; letter-spacing:.04em;
    border-bottom:.2cqw solid #fff; padding-bottom:1.1cqw;
  }
  .sc11__body{ margin-top:8cqw; font-family:"M PLUS Rounded 1c",sans-serif; font-size:1.6cqw; line-height:1.75; }
  .sc11__btn{
    display:flex; align-items:center; justify-content:center;
    width:46.4cqw; height:4.9cqw; margin-top:6cqw;
    background:linear-gradient(90deg,#DA4733 0%,#ED541A 50%,#FE5F03 100%);
    color:#fff; font-size:1.9cqw; font-weight:700;
    text-decoration:none; border-radius:999px; letter-spacing:.03em;
    box-shadow:0 .5cqw 1.2cqw rgba(0,0,0,.25);
  }
  .sc11__btn:hover{ filter:brightness(1.05); }
  .sc11__note{ margin-top:6cqw; font-size:1.15cqw; line-height:1.8; }

  /* ===== se12 : 緑バナー＋フッター ===== */
  .sc12{ width:100%; background:#fff; padding-top:15.5%; }
  .sc12__banner{
    position:relative; width:100%;
    background:url("../images/se12_bg.jpg") no-repeat center center; background-size:cover;
    overflow:hidden;
  }
  .sc12__binner{
    position:relative; z-index:1;
    max-width:var(--maxw); margin:0 auto; padding:7% 7.8%;
    container-type:inline-size;
    display:flex; align-items:center; justify-content:space-between; gap:5cqw;
  }
  .sc12__btext{ color:#fff; flex:0 0 auto; }
  .sc12__bhead{ font-size:2.6cqw; font-weight:700; line-height:1.5; letter-spacing:.02em; }
  .sc12__bsub{ margin-top:2.6cqw; font-family:"M PLUS Rounded 1c",sans-serif; font-size:1.35cqw; line-height:1.8; }
  .sc12__btns{ display:flex; flex-direction:column; gap:3cqw; flex:0 0 auto; }
  .sc12__pill{
    display:flex; align-items:center; gap:1.5cqw;
    width:42cqw; box-sizing:border-box;
    border-radius:999px; padding:1.7cqw 3.2cqw;
    text-decoration:none;
  }
  .sc12__pill--fill{ background:#fff; }
  .sc12__pill--outline{ background:transparent; border:0.16cqw solid #fff; }
  .sc12__pill .txt{ flex:1 1 auto; text-align:center; }
  .sc12__pill .cap{ display:block; font-size:1.1cqw; font-weight:600; }
  .sc12__pill .main{ display:block; margin-top:.3cqw; font-size:1.85cqw; font-weight:700; }
  .sc12__pill .arr{ flex:none; }
  .sc12__pill .arr svg{ width:2.2cqw; height:auto; display:block; }
  .sc12__pill--fill .cap{ color:#6BAA77; }
  .sc12__pill--fill .main{ color:#268A3C; }
  .sc12__pill--fill .arr{ color:#268A3C; }
  .sc12__pill--outline .cap{ color:#fff; }
  .sc12__pill--outline .main{ color:#fff; }
  .sc12__pill--outline .arr{ color:#fff; }
  .sc12__footer{ max-width:var(--maxw); margin:0 auto; padding:13% 7.8% 3.5%; container-type:inline-size; }
  .sc12__faccess{ display:flex; align-items:center; justify-content:space-between; gap:5cqw; }
  .sc12__logo{ flex:none; width:28cqw; height:auto; }
  .sc12__access{ display:flex; align-items:flex-start; gap:2cqw; }
  .sc12__map{ width:48cqw; height:auto; display:block; }
  .sc12__addr{ font-size:1.15cqw; line-height:1.7; color:#333; }
  .sc12__addr .big{ font-weight:700; }
  .sc12__copyright{ margin-top:6cqw; font-size:1.1cqw; color:#444; display:inline-block; text-decoration:underline; text-underline-offset:2px; transition:color .2s; }
  .sc12__copyright:hover{ color:var(--orange); }

  /* ===== Responsive : SP (<=767px) ===== */
  @media (max-width:767px){
    /* Header */
    :root{ --header-h:52px; }
    .sp-br{ display:inline; }
    .header__inner{ padding:0 14px; }
    .header__tagline{ display:none; }
    .header__logo{ height:20px; }
    .header__cta{ font-size:11px; padding:0 14px; height:40px; line-height:1; }
    .header__cta-full{ display:none; }
    .header__cta-sp{ display:inline; }

    /* se01 Hero */
    .hero{ aspect-ratio:auto; height:128vw; background-position:78% center; }
    .hero__copy{ left:5.5%; top:36%; }
    .hero__head{ font-size:7vw; padding:1.4vw 2.8vw; line-height:1; }
    .hero__line + .hero__line{ margin-top:3vw; }
    .hero__lead{ font-size:4.4vw; line-height:1.55; margin:5vw 0 0 1vw; text-shadow:0 0 4px #fff,0 0 8px #fff,0 0 14px #fff,0 0 22px rgba(255,255,255,.95),0 0 34px rgba(255,255,255,.8); }
    .hero__sub{ font-size:3.8vw; line-height:1.7; margin:3.5vw 0 0 1vw; text-shadow:0 0 4px #fff,0 0 9px #fff,0 0 15px #fff,0 0 24px rgba(255,255,255,.92),0 0 34px rgba(255,255,255,.75); }

    /* se02 */
    .prob__inner{ padding:14% 10px; }
    .prob__pre{ font-size:3.8vw; }
    .prob__title{ font-size:5.2vw; gap:2vw; margin-top:4vw; letter-spacing:.02em; white-space:nowrap; }
    .prob__title::before,.prob__title::after{ width:.6vw; height:9vw; }
    .prob__cols{ flex-direction:column; align-items:center; margin-top:8vw; }
    .prob__left{ flex:none; width:80%; }
    .prob__list{ flex:none; width:100%; padding:6vw 0 0; justify-content:flex-start; }
    .prob__list li{ gap:3.5vw; }
    .prob__list li + li{ margin-top:5vw; }
    .prob__check{ width:7vw; }
    .prob__list .t{ font-size:3.8vw; white-space:nowrap; }
    .prob__list .e{ font-size:3.8vw; }

    /* se03 */
    .selfcheck__inner{ padding:20% 10px 18%; }
    .sc__label{ font-size:3.8vw; padding-bottom:2vw; }
    .sc__title{ font-size:5.2vw; gap:2.5vw; flex-wrap:wrap; }
    .sc__badge{ padding:1vw 4vw; }
    .sc__badge img{ height:8.5vw; }
    .sc__t2{ font-size:1em; }
    .sc__sub{ font-size:3.8vw; margin-top:7vw; }

    /* se04 */
    .sc4__inner{ padding:14% 10px; }
    .sc4__head{ width:62%; }
    .sc4__lead{ font-size:4.4vw; margin-top:9vw; }
    .sc4__list{ margin-top:7vw; }
    .sc4__list li{ font-size:3.8vw; }
    .sc4__list li + li{ margin-top:3.5vw; }
    .sc4__list .dot{ width:3vw; height:3vw; margin-right:2.5vw; }
    .sc4__list .hl{ padding:.4vw 1.4vw; }
    .sc4__see{ font-size:4.4vw; margin-top:7vw; }
    .sc4__card{ width:100%; padding:8vw 6vw 7vw; border-radius:3.5vw; }
    .sc4__cardtop{ flex-direction:column; gap:5vw; }
    .sc4__badge{ width:62%; }
    .sc4__cardtext{ font-size:3.8vw; text-align:center; }
    .sc4__btn{ width:84%; height:auto; padding:3.6vw 0; font-size:4.4vw; }

    /* se05 */
    .sc5__head{ padding:18% 10px 0; }
    .sc5__htitle{ font-size:5.2vw; }
    .sc5__label{ left:14%; top:-6vw; width:27vw; }
    .sc5__cols{ flex-direction:column; gap:6vw; margin-top:7vw; }
    .sc5__photo{ width:100%; margin-left:0; }
    .sc5__body{ padding:0 10px; }
    .sc5__body{ padding:0 10px; font-size:0; text-align:left; }
    .sc5__rtitle{ font-size:4.4vw; text-align:center; margin-bottom:4vw; }
    .sc5__body p{ font-size:3.8vw; line-height:1.9; display:inline; }
    .sc5__body p:first-of-type{ margin-top:0; }
    .sc5__rtitle br, .sc5__body br{ display:none; }

    /* se06 */
    .sc6__inner{ padding:13% 10px; }
    .sc6__title{ font-size:5.2vw; }
    .sc6__cols{ flex-direction:column; gap:9vw; margin-top:9vw; }
    .sc6__col{ width:100%; max-width:100%; margin:0 auto; }
    .sc6__ctitle{ font-size:4.4vw; gap:3vw; margin-top:4vw; }
    .sc6__num{ width:13vw; height:13vw; }
    .sc6__num .p{ font-size:2.4vw; margin-bottom:.6vw; }
    .sc6__num .n{ font-size:6.4vw; }
    .sc6__ctext{ font-size:3.8vw; margin-top:3.5vw; }
    .sc6__btn{ width:100%; height:auto; padding:4vw 0; font-size:4.4vw; margin-top:10vw; }
    .sc6__note{ font-size:3.2vw; margin-top:7vw; }

    /* se07 */
    .sc7{ aspect-ratio:auto; height:128vw; background-position:24% center; }
    .sc7__content{ left:0; right:0; width:auto; padding:0 10px; top:50%; bottom:auto; transform:translateY(-50%); }
    .sc7__label{ font-size:3.8vw; gap:3vw; text-shadow:0 0 4px #fff,0 0 8px #fff,0 0 14px #fff,0 0 22px rgba(255,255,255,.95),0 0 34px rgba(255,255,255,.8); }
    .sc7__label::before,.sc7__label::after{ width:.5vw; height:5.6vw; filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 6px rgba(255,255,255,.9)); }
    .sc7__badge{ width:60%; margin:3vw auto 0; }
    .sc7__sub{ font-size:3.8vw; margin-top:4vw; text-shadow:0 0 4px #fff,0 0 9px #fff,0 0 15px #fff,0 0 24px rgba(255,255,255,.92),0 0 34px rgba(255,255,255,.75); }
    .sc7__btn{ width:84%; height:auto; padding:3.6vw 0; font-size:4.4vw; margin:5vw auto 0; }

    /* se08 */
    .sc8__inner{ padding:14% 10px 16%; }
    .sc8__title{ font-size:5.2vw; padding-bottom:2vw; }
    .sc8__sub{ font-size:3.8vw; margin-top:5vw; }
    .sc8__steps{ flex-direction:column; gap:7vw; margin-top:9vw; }
    .sc8__card{ width:100%; max-width:100%; margin:0 auto; padding:7vw 7vw 8vw; border-radius:4vw; box-shadow:1.2vw 1.6vw .9vw rgba(0,0,0,.21); }
    .sc8__step{ font-size:3.2vw; }
    .sc8__circle{ width:42vw; height:42vw; }
    .sc8__cardtitle{ font-size:4.4vw; min-height:0; margin-top:4vw; }
    .sc8__cardtitle br{ display:none; }
    .sc8__cardtext{ font-size:3.8vw; }
    .sc8__arrow{ margin-top:0; transform:rotate(90deg); }
    .sc8__arrow svg{ width:7vw; }

    /* se09 */
    .sc9{ aspect-ratio:auto; height:128vw; background-position:76% center; }
    .sc9__content{ left:0; right:0; width:auto; padding:0 10px; top:50%; bottom:auto; transform:translateY(-50%); }

    /* se10 */
    .sc10__inner{ padding:14% 10px; }
    .sc10__top{ flex-direction:column; gap:6vw; }
    .sc10__title{ font-size:5.2vw; text-align:center; }
    .sc10__lead-body{ font-size:3.8vw; margin-top:5vw; }
    .sc10__lead-body br{ display:none; }
    .sc10__logo{ width:54%; margin:1vw auto 7vw; }
    .sc10__card{ padding:8vw 6vw; border-radius:4vw; }
    .sc10__cardhead{ font-size:4.4vw; }
    .sc10__cols{ flex-direction:column; gap:9vw; margin-top:8vw; }
    .sc10__col{ width:100%; max-width:100%; margin:0 auto; }
    .sc10__cap{ font-size:3.2vw; }
    .sc10__col h4{ font-size:4.4vw; min-height:0; }
    .sc10__ctext{ font-size:3.8vw; margin:3.5vw 0 4vw; }
    .sc10__dbtn{ font-size:3.8vw; padding:3.4vw 0; width:100%; align-self:stretch; }

    /* se11 */
    .sc11{ aspect-ratio:auto; }
    .sc11__inner{ height:auto; padding:24% 10px; }
    .sc11__title{ font-size:5.2vw; padding-bottom:2vw; }
    .sc11__body{ font-size:3.8vw; margin-top:9vw; }
    .sc11__btn{ width:100%; height:auto; padding:4vw 0; font-size:4.4vw; margin-top:8vw; }
    .sc11__note{ font-size:3.2vw; margin-top:8vw; }

    /* se12 */
    .sc12{ padding-top:8vw; }
    .sc12__banner{ background-position:85% center; }
    .sc12__binner{ flex-direction:column; gap:8vw; padding:12% 10px; }
    .sc12__bhead{ font-size:5.2vw; }
    .sc12__bsub{ font-size:3.8vw; margin-top:4vw; }
    .sc12__btns{ width:100%; gap:5vw; }
    .sc12__pill{ width:100%; padding:3.6vw 6vw; gap:3vw; }
    .sc12__pill--outline{ border-width:0.5vw; }
    .sc12__pill .cap{ font-size:3.2vw; }
    .sc12__pill .main{ font-size:4.4vw; }
    .sc12__pill .arr svg{ width:5.5vw; }
    .sc12__footer{ padding:12% 10px 9%; }
    .sc12__faccess{ flex-direction:column; gap:8vw; align-items:center; }
    .sc12__logo{ width:52%; }
    .sc12__access{ flex-direction:column; gap:4vw; align-items:center; }
    .sc12__map{ width:92%; }
    .sc12__copyright{ font-size:3.2vw; margin-top:9vw; text-align:center; }
  }

  /* ===== SP fixed CTA bar (mobile only) — remove this block + the .spcta markup in index.html to disable ===== */
  .spcta{ display:none; }
  @media (max-width:767px){
    .spcta{
      position:fixed; left:0; right:0; bottom:0; z-index:1100;
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      gap:1px;
      padding:9px 16px calc(9px + env(safe-area-inset-bottom, 0px));
      background:linear-gradient(90deg,#DA4733 0%,#ED541A 50%,#FE5F03 100%);
      color:#fff; text-decoration:none; text-align:center;
      box-shadow:0 -3px 14px rgba(0,0,0,.16);
      transition:transform .15s ease, filter .15s ease;
    }
    .spcta:active{ filter:brightness(1.05); transform:translateY(1px); }
    .spcta__sub{ font-size:3.2vw; font-weight:600; letter-spacing:.02em; opacity:.95; line-height:1.2; }
    .spcta__main{ font-size:4.4vw; font-weight:700; letter-spacing:.04em; line-height:1.2; }
    /* keep the page bottom and footer clear of the bar */
    body{ padding-bottom:64px; }
  }

  /* ===== Loading splash (logo) — pattern A : fade-in + progress bar ===== */
  #preloader{
    position:fixed; inset:0; z-index:5000;
    background:linear-gradient(120deg, #ffffff 0%, #fff4e9 28%, #fff8db 52%, #fff4e9 74%, #ffffff 100%);
    background-size:240% 240%;
    animation:plBg 2.5s ease-in-out infinite alternate;
    display:flex; align-items:center; justify-content:center;
    transition:opacity .55s ease, visibility .55s ease;
  }
  @keyframes plBg{ 0%{ background-position:0% 50%; } 100%{ background-position:100% 50%; } }
  #preloader.is-hidden{ opacity:0; visibility:hidden; }
  .pl__inner{ display:flex; flex-direction:column; align-items:center; gap:20px; }
  .pl__logo{
    width:400px; max-width:88vw; height:auto; display:block;
    opacity:0; transform:translateY(7px) scale(.94);
    animation:plLogoIn .85s cubic-bezier(.2,.7,.2,1) .1s forwards;
  }
  @keyframes plLogoIn{ to{ opacity:1; transform:none; } }
  .pl__bar{ width:150px; height:4px; border-radius:999px; background:rgba(237,84,27,.16); overflow:hidden; }
  .pl__bar span{
    display:block; height:100%; width:42%; border-radius:999px;
    background:linear-gradient(90deg,#DA4733,#ED541A,#FE5F03);
    animation:plBar 1.15s ease-in-out infinite;
  }
  @keyframes plBar{ 0%{ transform:translateX(-130%);} 100%{ transform:translateX(330%);} }
  /* keep the splash logo at original size on mobile (2x applies to PC only) */
  @media (max-width:767px){ .pl__logo{ width:220px; max-width:62vw; } }
  @media (prefers-reduced-motion:reduce){
    .pl__logo{ animation-duration:.01s; }
    .pl__bar span{ animation:none; width:100%; }
  }
