@charset "utf-8";

:root{
  --blue:#00bbff;
  --blue2:#00bdf2;
  --blue-dark:#008cce;
  --blue-pale:#e8fbff;
  --green:#00ea17;
  --orange:#ff6a00;
  --ink:#15191e;
  --ff-ja:"LINE Seed JP",sans-serif;
  --ff-en:"Saira",sans-serif;
  --ff-din:"Barlow",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--ff-ja);font-weight:400;color:#000;background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
p{margin:0}
h1,h2,h3,h4{margin:0;font-weight:700}
ul{margin:0;padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.inner{width:min(1160px,100% - 40px);margin-inline:auto;position:relative}
.sp{display:none}

/* ---------- common: section head ---------- */
.sec-head__en{font-family:var(--ff-en);font-weight:800;font-size:65px;line-height:1.25;color:var(--blue)}
.sec-head__ja{font-size:24px;font-weight:700;line-height:1.4;margin-top:8px}
.sec-head__tag{display:inline-block;font-size:15px;line-height:1.6;margin-top:18px;padding-bottom:4px;border-bottom:1px solid var(--blue2)}
.sec-head--white{color:#fff}
.sec-head--white .sec-head__en{color:#fff}
.sec-head--white .sec-head__tag{border-color:#fff}
.lead{font-size:18px;line-height:30px}

/* ---------- decorative shapes ---------- */
.shape{position:absolute;pointer-events:none;transform:translate(-50%,-50%) rotate(var(--r,0deg));animation:float 7s ease-in-out infinite;animation-delay:var(--d,0s)}
.shape--mul{mix-blend-mode:multiply}
@keyframes float{
  0%,100%{transform:translate(-50%,-50%) rotate(var(--r,0deg))}
  50%{transform:translate(-50%,calc(-50% - 14px)) rotate(calc(var(--r,0deg) + 4deg))}
}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;white-space:nowrap;pointer-events:none}
.marquee__track{display:inline-flex;animation:marquee 40s linear infinite}
.marquee__track span{padding-right:.5em}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- fixed nav ---------- */
.fnav{position:fixed;right:57px;bottom:40px;z-index:100;display:flex;gap:31px;padding:20px 25px;background:#fff;border-radius:5px;box-shadow:0 5px 38px rgba(211,211,211,1);transition:opacity .3s,transform .3s}
.fnav a{display:grid;place-items:center;width:140px;height:45px;border-radius:3px;font-size:15px;font-weight:700;transition:opacity .2s}
.fnav a:hover{opacity:.75}
.fnav__note{border:1px solid #000;color:#000}
.fnav__req{background:#55d4e5;color:#fff}
.fnav__entry{background:var(--orange);color:#fff}

/* ---------- hero ---------- */
.hero{position:relative;height:850px;overflow:hidden}
/* FVの図形は画面に固定した背景レイヤー。透明なセクション（FV・募集要項・note・エントリー）から透けて見える */
.bg-shapes{position:fixed;inset:0;z-index:0;background:#fff;overflow:hidden;pointer-events:none}
.bg-shapes .shape--sp{display:none}
main,.footer{position:relative;z-index:1}
.hero__body{position:relative;z-index:2;text-align:center;padding-top:150px}
/* FV: 図形が画面外から集まる → その後ふわふわ浮遊 */
.bg-shapes .shape{animation:gather 1.6s cubic-bezier(.16,.84,.3,1) var(--gd,0s) both,float 7s ease-in-out var(--d,0s) infinite}
@keyframes gather{
  from{translate:var(--fx,0) var(--fy,0);rotate:-120deg;opacity:0}
  30%{opacity:1}
  to{translate:0 0;rotate:0deg;opacity:1}
}
.hero__body>*{animation:heroIn .9s ease var(--hd,1s) both}
.hero__title{--hd:1.1s}
.hero__sub{--hd:1.3s}
.hero__btns{--hd:1.45s}
.hero__marquee{animation:heroIn .9s ease 1.5s both}
@keyframes heroIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.hero__brand{display:flex;justify-content:center;align-items:center;gap:6px}
.hero__brand img{width:131px}
.hero__brand span{font-family:var(--ff-en);font-weight:700;font-size:20px;line-height:1}
.hero__title{margin-top:28px;font-weight:700;line-height:123px;white-space:nowrap}
.hero__title .l1{display:block;font-size:105px}
.hero__title .l2{display:block;font-size:74px}
.hero__title .g{color:var(--green)}
.hero__title .b{color:var(--blue)}
.hero__title .s72{font-size:72px}
.hero__title .s96{font-size:96px}
.hero__title .num{font-family:"Roboto",sans-serif;font-weight:800;font-size:124px;letter-spacing:-.02em}
.hero__sub{font-size:25px;font-weight:700;line-height:72px;margin-top:4px}
.hero__btns{display:flex;justify-content:center;gap:22px;margin-top:22px}
.btn{display:grid;place-items:center;width:250px;height:62px;border-radius:3.5px;font-size:17px;font-weight:700;transition:opacity .2s,transform .2s}
.btn:hover{opacity:.8;transform:translateY(-2px)}
.btn--line{border:1px solid #000;background:#fff;color:#000}
.btn--orange{background:var(--orange);color:#fff}
.hero__marquee{position:absolute;left:0;right:0;top:676px;z-index:1;font-family:var(--ff-en);font-weight:600;font-size:87px;line-height:1.2;color:#d3d3d3}

/* ---------- intro ---------- */
.intro{padding:88px 0 264px}
.intro__box{width:min(1221px,100% - 40px);margin-inline:auto;padding:64px 20px 70px;text-align:center;border-radius:5px;background:linear-gradient(112deg,rgba(205,247,255,.5) 1%,rgba(205,247,255,.2) 101%);-webkit-backdrop-filter:blur(6.45px);backdrop-filter:blur(6.45px)}
.intro__ttl{font-size:48px;line-height:69px}
.intro__ttl .g{color:var(--green)}
.intro__ttl .b{color:var(--blue)}
.intro__txt{margin-top:70px;font-size:24px;line-height:43px}
.intro__txt strong{color:var(--blue);font-weight:700}

/* ---------- about ---------- */
.about{position:relative;background:var(--blue-pale);padding:100px 0 26px;overflow:hidden}
.about__top{position:relative;min-height:740px}
.about__body{width:486px;margin-top:56px;font-size:18px;line-height:33px}
.about__body p+p{margin-top:33px}
.about__photo{position:absolute;left:443px;top:18px;width:818px}
.about__photo img{width:100%}
.strength__head{display:flex;align-items:center;gap:16px;margin-top:4px;color:var(--blue-dark);font-size:24px;font-weight:700;white-space:nowrap}
.strength__head::before,.strength__head::after{content:"";flex:1;height:1px;background:var(--blue2)}
.strength__list{display:grid;grid-template-columns:repeat(3,1fr);gap:64px;margin-top:48px}
.strength__card{background:#fff;border-radius:4.6px;padding:48px 31px 40px;min-height:433px}
.strength__icon{height:168px;display:grid;place-items:center}
.strength__icon img{width:168px}
.strength__icon img.sm{width:149px}
.strength__ttl{margin-top:24px;text-align:center;color:var(--blue-dark);font-size:20px;line-height:40px;white-space:nowrap}
.strength__txt{margin-top:20px;font-size:16px;line-height:32px}
.voice{display:flex;gap:39px;margin-top:58px}
.voice__photo{flex:0 0 338px;height:362px}
.voice__photo img{width:416px;max-width:none;height:362px}
.voice__label{display:inline-block;background:var(--blue2);color:#fff;font-size:13px;font-weight:700;line-height:1.5;padding:6px 14px;margin-left:9px}
.voice__ttl{margin-top:12px;color:var(--blue-dark);font-size:25px;line-height:1.6}
.voice__name{margin:12px 0 0 9px;font-size:15px;font-weight:700;line-height:1.5}
.voice__txt{margin:6px 0 0 9px;font-size:16px;line-height:1.95}

/* ---------- what you get ---------- */
.get{position:relative;background:var(--blue);padding:102px 0 100px;overflow:hidden}
.get__list{display:grid;grid-template-columns:repeat(3,350px);justify-content:space-between;width:min(1158px,100% - 40px);margin:64px auto 0}
.get__card{background:#fff;border-radius:5px;overflow:hidden;padding-bottom:40px}
.get__img{height:352px;display:grid;place-items:center}
.get__img img{width:259px}
.get__img img.l{width:274px}
.get__img img.s{width:240px}
.get__body{width:300px;margin:-4px auto 0}
.get__point{font-family:var(--ff-en);font-weight:900;font-size:17px;line-height:1.2;letter-spacing:1.36px;color:var(--blue2)}
.get__ttl{margin-top:20px;font-size:22px;line-height:1.6;color:var(--ink)}
.get__txt{margin-top:20px;font-size:15px;line-height:1.95;color:var(--ink)}

/* ---------- case study ---------- */
.case{position:relative;background:var(--blue-pale);padding:103px 0 105px;overflow:hidden}
.case .lead{margin:56px 0 0 7px}
.case__tabs{display:flex;justify-content:space-between;width:min(1139px,100% - 40px);margin:66px auto 0}
.case__tab{width:373px;height:47px;border:0;border-radius:5px 5px 0 0;background:#fff;color:var(--blue2);display:flex;align-items:center;justify-content:center;gap:8px;transition:background .25s,color .25s}
.case__tab .no{font-family:var(--ff-en);font-weight:600;font-size:18px}
.case__tab .nm{font-size:20px;letter-spacing:-.05em}
.case__tab[aria-selected="true"]{background:var(--blue2);color:#fff}
.case__tab:not([aria-selected="true"]):hover{background:#f3fdff}
.case__panels{width:min(1139px,100% - 40px);margin:0 auto;background:#fff;border-top:1px solid #d3d3d3}
.case__panel{display:flex;gap:58px;padding:32px 0 0 60px;min-height:498px}
.case__panel[hidden]{display:none}
.case__panel.is-in{animation:fadeUp .5s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.case__info{flex:1;padding:31px 80px 0 0}
.pill{display:inline-block;background:var(--blue2);color:#fff;font-size:13px;font-weight:700;line-height:1.65;padding:4px 17px;border-radius:5px}
.case__ttl{margin-top:40px;font-size:26px;line-height:41.5px}
.case__txt{margin-top:24px;font-size:15.4px;line-height:33.8px;min-height:142px}
.case__foot{margin-top:38px;border-top:1px solid #c9e9f2;padding:10px 24px 0 0;text-align:right;font-family:var(--ff-en);font-weight:700;font-size:16.4px;line-height:1.2;color:#00aee0}

/* phone mock */
.phone{position:relative;flex:0 0 371px;height:466px;background:#dff8ff;border:6px solid #000;border-bottom:0;border-radius:40px 40px 0 0;padding:84px 30px 0}
.phone::before{content:"";position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:153px;height:28px;background:#000;border-radius:0 0 9px 9px}
.mock{background:#fff;border:1px solid #b2e8f6;border-radius:8px;padding:18px 16px;display:flex;flex-direction:column;gap:12px}
.mock__top{border-bottom:1px solid #d5eff6;padding-bottom:12px;font-size:10px;line-height:1.2}
.mock__top b{display:block;font-family:"Inter",sans-serif;font-weight:900;color:#00a9d9;letter-spacing:.7px}
.mock__top span{color:#8298a3}
.mock__head{font-size:16px;font-weight:700;color:var(--ink)}
.mock__metric{background:#eefcff;padding:12px 14px;line-height:1.2}
.mock__metric small{font-size:11px;color:#517482}
.mock__metric div{color:#00a9d9;display:flex;align-items:baseline;gap:4px}
.mock__metric strong{font-family:"Inter",sans-serif;font-weight:900;font-size:32px}
.mock__metric span{font-size:12px}
.mock__table{font-size:10px}
.mock__table li{display:flex;align-items:center;gap:5px;padding:9px 0;border-top:1px solid #e4f0f5;color:#64818e}
.mock__table li:first-child{border-top:0;font-weight:400}
.mock__table li:first-child span:first-child{font-weight:700}
.mock__table li span:first-child{flex:1;color:var(--ink)}
.mock__table li:first-child span:first-child{color:#64818e}
.mock__table .ok{color:#158b48}
.mock__table .warn{background:#fff6d9;color:#9e7216;font-size:9px;padding:2px 6px;border-radius:3px}
.mock__bars{display:flex;gap:10px;height:120px;align-items:flex-end}
.mock__bars li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:9px;color:#5c7f8e}
.mock__bars i{display:block;width:100%;background:var(--blue2);border-radius:3px;height:var(--h)}
.mock__bars li:last-child i{background:#18d600}
.mock__rec{background:#effcff;padding:14px 15px;line-height:1.25}
.mock__rec b{display:block;font-size:13px;color:var(--ink)}
.mock__rec small{display:block;font-size:10px;color:#708e9a;margin-top:3px}
.mock__rec em{display:inline-block;margin-top:3px;font-style:normal;font-size:10px;color:#0ba55a;background:#e0f9e8;padding:2px 10px}
.mock__log li{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid #dfedf1;font-size:10px;color:#5c7f8e}
.mock__log b{font-family:"Inter",sans-serif;color:#00a8d6}
.mock__note{margin-top:8px;text-align:center;font-size:10px;color:#467684}

/* ---------- schedule ---------- */
.schedule{position:relative;background:#fff;padding:97px 0 0;overflow:hidden}
.schedule .lead{margin-top:62px}
.sch{margin-top:44px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.sch__grid{display:grid;grid-template-columns:92px repeat(5,1fr);gap:3px;min-width:1142px}
.sch__day{background:var(--blue-dark);text-align:center}
.sch__day b{display:block;padding:16px 0;font-family:var(--ff-en);font-weight:900;font-size:25px;line-height:1.2;letter-spacing:3px;color:#fff}
.sch__day span{display:block;background:#e1f6ff;padding:12px 7px;font-size:14px;font-weight:700;line-height:1.5;color:var(--blue-dark)}
.sch__period{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#fff;font-weight:700;font-size:12px}
.sch__period b{font-family:var(--ff-en);font-size:25px;line-height:1.2}
.sch__period--am{background:#1cd82f;height:245px}
.sch__period--pm{background:#ff6d97;grid-row:span 2}
.sch__col{display:flex;flex-direction:column}
.sch__col div{display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 6px;font-size:13px;font-weight:700;line-height:1.39;color:var(--ink);border-bottom:2px solid #fff}
.sch__col div:last-child{border-bottom:0}
.c-or{background:#ffe7c1}.c-ye{background:#fdffc1}.c-gr{background:#cbffc1}
.sch__col div.c-hot{background:#ff9000;color:#fff;font-size:14px}
.sch__note{grid-column:2 / -1;background:#c1e1ff;height:56px;display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--ink)}

/* ---------- support ---------- */
.support{position:relative;background:#fff;padding:126px 0 120px;overflow:hidden}
.support__list{display:grid;grid-template-columns:repeat(3,365px);justify-content:space-between;width:min(1176px,100% - 40px);margin:66px auto 0}
.support__photo{position:relative;height:236px;border-radius:5px;overflow:hidden;background:#d3d3d3}
.support__photo img{position:absolute;max-width:none}
.support__photo .p1{left:-4.66%;top:-34.7%;width:137.8%;height:225.4%;object-fit:cover;object-position:bottom}
.support__photo .p2{left:-47.7%;top:-8%;width:166.9%;height:145.2%;object-fit:cover}
.support__photo .p3{inset:0;width:100%;height:100%;object-fit:cover}
.support__name{position:absolute;left:10px;bottom:10px;background:#fff;border-radius:2px;padding:6px 11px;font-size:15px;font-weight:700;line-height:1.5;color:var(--blue2)}
.support__badge{display:inline-block;margin-top:25px;background:var(--blue2);color:#fff;font-size:16px;font-weight:700;line-height:1.5;padding:6px 14px;border-radius:2px}
.support__ttl{margin-top:12px;font-size:24.4px;line-height:1.6;color:var(--blue2)}
.support__txt{margin-top:16px;font-size:16px;line-height:1.95;color:var(--ink)}
.logos{display:flex;justify-content:center;align-items:center;gap:96px;margin-top:70px;padding-right:16px}
.logos .m{width:88px}
.logos .c{width:118px}
.logos .j{width:95px}

/* ---------- goal ---------- */
.goal{position:relative;background:var(--blue-pale);height:573px;overflow:hidden}
.goal__map{position:absolute;inset:0}
.goal__japan{position:absolute;left:-137px;top:-78px;width:915px;height:915px}
.goal__miyagi{position:absolute;left:310px;top:118px;width:386px;height:358px}
.goal__japan img,.goal__miyagi img{width:100%;height:100%}
.goal__copy{position:absolute;left:calc(50% + 22px);top:213px;width:609px;color:var(--blue)}
.goal__en{font-family:var(--ff-en);font-weight:800;font-size:65px;line-height:1.05;letter-spacing:-1.95px}
.goal__ttl{margin-top:20px;font-size:36px;font-weight:800;line-height:1.6}
.goal__txt{margin:10px 27px 0 5px;font-size:16px;font-weight:700;line-height:2.2}

/* ---------- requirements ---------- */
.req{padding:96px 0 130px}
.req__box{width:min(987px,100% - 40px);margin:0 auto;padding:30px 0 70px;border-radius:5px;background:linear-gradient(103deg,rgba(255,255,255,.5),rgba(255,255,255,.2));-webkit-backdrop-filter:blur(6.45px);backdrop-filter:blur(6.45px)}
.req__box .sec-head{width:min(852px,100% - 40px);margin:0 auto}
.req__list{width:min(852px,100% - 40px);margin:52px auto 0}
.req__list div{display:flex;padding:24px 15px;border-bottom:1px solid #bfeaf4;line-height:1.8}
.req__list dt{flex:0 0 200px;font-size:16px;font-weight:700;color:#009bc9}
.req__list dd{flex:1;margin:0;font-size:18px;color:var(--ink)}

/* ---------- faq ---------- */
.faq{background:var(--blue-pale);padding:105px 0 130px}
.faq .inner{width:min(1120px,100% - 40px)}
.faq__list{margin-top:62px;display:flex;flex-direction:column;gap:14px}
.faq__item{background:#fff;border-radius:5px;overflow:hidden}
.faq__q{width:100%;display:flex;align-items:center;gap:25px;padding:24px 30px;border:0;background:none;text-align:left;color:var(--ink)}
.faq__q .q{font-family:var(--ff-din);font-weight:800;font-size:27px;line-height:1;color:var(--blue2)}
.faq__q .t{flex:1;font-size:15px;font-weight:700;line-height:1.6}
.faq__q .ic{position:relative;width:16px;height:16px;flex:0 0 16px}
.faq__q .ic::before,.faq__q .ic::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:3px;background:var(--blue2);transform:translate(-50%,-50%);transition:transform .3s}
.faq__q .ic::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq__item.is-open .ic::after{transform:translate(-50%,-50%) rotate(0)}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.faq__item.is-open .faq__a{grid-template-rows:1fr}
.faq__a>div{overflow:hidden}
.faq__a p{position:relative;padding:0 76px 26px 79px;font-size:16px;line-height:1.9;color:var(--ink)}
.faq__a p::before{content:"A";position:absolute;left:30px;top:1px;font-family:var(--ff-din);font-weight:800;font-size:27px;line-height:1}

/* ---------- note ---------- */
.note{padding:70px 0 74px}
.note__box{width:min(1221px,100% - 40px);margin:0 auto;padding:5px 0 34px;text-align:center;border-radius:5px;background:linear-gradient(110deg,rgba(255,255,255,.5),rgba(255,255,255,.2));-webkit-backdrop-filter:blur(6.45px);backdrop-filter:blur(6.45px)}
.note__logo{width:261px;margin:0 auto}
.note__ttl{margin-top:19px;font-size:24px;line-height:1.5;letter-spacing:.72px;color:var(--ink)}
.note__sub{text-align: left;margin: 10px 0;line-height: 1.5;}
.note__txt{text-align: left;font-size: 13px;padding: 0 0 0 30px;background: url(../internship/note_icon.jpg) no-repeat center left / 20px;}
.note__list{display:flex;justify-content:center;gap:47px;margin-top:66px}
.note__list a{width:275px;transition:transform .25s,opacity .25s}
.note__list a:hover{transform:translateY(-4px);opacity:.85}
.note__btn{display:grid;place-items:center;width:333px;height:71px;margin:62px auto 0;border:1px solid #000;border-radius:4px;font-size:20px;font-weight:700;transition:background .2s,color .2s}
.note__btn:hover{background:#000;color:#fff}

/* ---------- entry ---------- */
.entry{background:rgba(232,251,255,.6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:115px 0 0;overflow:hidden}
.entry__brand{display:flex;justify-content:center;align-items:center;gap:8px}
.entry__brand img{width:153px}
.entry__brand span{font-family:var(--ff-en);font-weight:700;font-size:26px;line-height:1}
.entry__ttl{margin-top:30px;text-align:center;color:var(--blue);font-size:48px;line-height:1.4}
.entry__lead{margin-top:28px;text-align:center;font-size:24px;font-weight:700;line-height:1.95;color:var(--ink)}
.form{width:min(760px,100% - 40px);margin:24px auto 0;background:#fff;padding:45px 45px 85px;display:flex;flex-direction:column;gap:22px}
.form__row{display:flex;gap:20px}
.form__field{flex:1;display:flex;flex-direction:column;gap:8px}
.form__field label{font-size:14px;font-weight:700;line-height:1.5;color:var(--ink)}
.form__field input,.form__field textarea{width:100%;height:48px;padding:0 14px;background:#fbfdfe;border:1px solid #cdeaf2;border-radius:0;font:inherit;font-size:16px;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.form__field textarea{height:110px;padding:12px 14px;resize:vertical}
.form__field input:focus,.form__field textarea:focus{outline:0;border-color:var(--blue2);box-shadow:0 0 0 3px rgba(0,189,242,.15)}
.form__submit{border:0;background:var(--blue2);opacity:.75;color:#fff;font-size:15px;font-weight:700;line-height:1.5;padding:18px 0;transition:opacity .2s}
.form__submit:hover{opacity:1}
.entry__marquee{margin-top:52px;font-family:var(--ff-din);font-weight:700;font-size:84px;line-height:1.3;color:#53d9ff}

/* ---------- footer ---------- */
.footer{background:var(--blue2);color:#fff;height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 74px 0 47px}
.footer__co{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;line-height:1.5;letter-spacing:.6px}
.footer__co img{width:46px}
.footer__copy{font-family:var(--ff-din);font-weight:700;font-size:12px;letter-spacing:.6px}

/* ---------- scroll reveal ---------- */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.js .rv.is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .shape,.bg-shapes .shape,.marquee__track,.hero__body>*,.hero__marquee{animation:none}
  .js .rv{opacity:1;transform:none}
}

/* =================================================================
   tablet / SP
================================================================= */
@media (max-width:1200px){
  .about__photo{left:auto;right:-260px}
  .strength__list{gap:24px}
  .get__list,.support__list{grid-template-columns:repeat(3,1fr);gap:24px}
  .case__panel{padding-left:30px;gap:36px}
  .case__info{padding-right:30px}
  .goal__copy{left:auto;right:20px;width:min(609px,55%)}
}
@media (max-width:767px){
  .pc{display:none}
  .sp{display:inline}
  .inner{width:calc(100% - 40px)}
  .sec-head__en{font-size:44px}
  .sec-head__ja{font-size:19px}
  .sec-head__tag{font-size:13px}
  .lead{font-size:15px;line-height:1.9}

  .fnav{left:0;right:0;bottom:0;gap:8px;padding:10px 12px;border-radius:0;justify-content:center}
  .fnav a{flex:1;width:auto;height:42px;font-size:13px}

  .hero{height:auto;padding-bottom:110px}
  .hero__body{padding-top:110px}
  .hero__brand img{width:84px}
  .hero__brand span{font-size:13px}
  .hero__title{line-height:1.25;margin-top:20px}
  .hero__title .l1{font-size:13vw}
  .hero__title .l2{font-size:9.5vw}
  .hero__title .s72{font-size:9vw}
  .hero__title .s96{font-size:12vw}
  .hero__title .num{font-size:16vw}
  .hero__sub{font-size:14px;line-height:1.6;margin-top:16px}
  .hero__btns{flex-direction:column;align-items:center;gap:12px;margin-top:28px}
  .btn{width:260px;height:54px;font-size:15px}
  .hero__marquee{top:auto;bottom:10px;font-size:44px}
  /* SP：Figma「iPhone 16 - 1」(293:11, 幅393) の配置。中央基準で再現 */
  .bg-shapes .shape--sp{display:block}
  .bg-shapes .shape:nth-child(1){left:calc(50% - 84.5px) !important;top:64px !important;width:107px !important;--r:30deg !important}
  .bg-shapes .shape:nth-child(2){left:calc(50% + 155.8px) !important;top:462.3px !important;width:122px !important;--r:-43deg !important}
  .bg-shapes .shape:nth-child(3){left:calc(50% - 168.8px) !important;top:139.7px !important;width:80px !important;--r:8.5deg !important}
  .bg-shapes .shape:nth-child(4){left:calc(50% - 168.8px) !important;top:333.9px !important;width:101px !important;--r:21deg !important}
  .bg-shapes .shape:nth-child(5){left:calc(50% + 162.4px) !important;top:313.9px !important;width:88px !important;--r:-30deg !important}
  .bg-shapes .shape:nth-child(6){left:calc(50% + 147.4px) !important;top:68.1px !important;width:115px !important;--r:54deg !important}
  .bg-shapes .shape:nth-child(7){left:calc(50% - 122.6px) !important;top:499.3px !important;width:142px !important;--r:24.4deg !important}

  .intro{padding:30px 0 80px}
  .intro__box{padding:44px 16px}
  .intro__ttl{font-size:20px;line-height:1.7}
  .intro__txt{margin-top:28px;font-size:15px;line-height:2}

  .about{padding-top:64px}
  .about__top{min-height:0}
  .about__body{width:auto;margin-top:32px;font-size:15px;line-height:1.9}
  .about__body p+p{margin-top:1.2em}
  .about__photo{position:relative;left:auto;right:auto;top:auto;width:120%;margin:0 -10%}
  .strength__head{font-size:19px;margin-top:40px}
  .strength__list{grid-template-columns:1fr;gap:16px;margin-top:28px}
  .strength__card{min-height:0;padding:32px 24px}
  .strength__ttl{white-space:normal;font-size:18px;line-height:1.6}
  .strength__txt{font-size:15px;line-height:1.9}
  .voice{flex-direction:column;gap:20px;margin-top:40px}
  .voice__photo{flex:none;width:300px;height:261px;margin:0 auto}
  .voice__photo img{width:300px;height:261px}
  .voice__label,.voice__name,.voice__txt{margin-left:0}
  .voice__ttl{font-size:19px}
  .voice__txt{font-size:15px;line-height:1.9}

  .get{padding:64px 0}
  .get__list{grid-template-columns:1fr;gap:20px;margin-top:36px}
  .get__img{height:240px}
  .get__img img{width:190px!important}
  .get__body{width:auto;padding:0 24px}
  .get__ttl{font-size:19px;margin-top:12px}
  .get__txt{font-size:14px;margin-top:12px}

  .case{padding:64px 0}
  .case .lead{margin:32px 0 0}
  .case__tabs{margin-top:36px;gap:4px}
  .case__tab{flex:1;width:auto;height:auto;flex-direction:column;gap:0;padding:8px 2px}
  .case__tab .no{font-size:13px}
  .case__tab .nm{font-size:14px;letter-spacing:0}
  .case__panel{flex-direction:column-reverse;align-items:center;padding:28px 20px 0;gap:30px}
  .case__info{padding:0;width:100%}
  .case__ttl{margin-top:16px;font-size:21px;line-height:1.5}
  .case__txt{min-height:0;font-size:14px;line-height:2}
  .case__foot{margin-top:20px;padding-right:0}
  .phone{flex:none;width:min(320px,100%);height:420px;padding:70px 20px 0}

  .schedule{padding-top:64px}
  .schedule .lead{margin-top:32px}
  .sch{margin-right:-20px;padding-right:20px}

  .support{padding:80px 0 60px}
  .support__list{grid-template-columns:1fr;gap:44px;margin-top:36px}
  .support__ttl{font-size:20px}
  .support__txt{font-size:15px;line-height:1.9}
  .logos{gap:36px;margin-top:50px;padding:0}
  .logos .m{width:64px}.logos .c{width:88px}.logos .j{width:70px}
  .support .shape{display:none}

  .goal{height:auto;padding:56px 0 0;display:flex;flex-direction:column}
  .goal__map{position:relative;inset:auto;order:2;height:300px;margin-top:24px;overflow:hidden}
  .goal__japan{left:calc(50% - 384px);top:-75px;width:549px;height:549px}
  .goal__miyagi{left:calc(50% - 116px);top:43px;width:232px;height:215px}
  .goal__copy{position:relative;left:auto;right:auto;top:auto;order:1;width:calc(100% - 40px);margin:0 auto}
  .goal__en{font-size:44px}
  .goal__ttl{font-size:22px;margin-top:10px}
  .goal__txt{margin:10px 0 0;font-size:14px;line-height:2}

  .req{padding:60px 0 70px}
  .req__box{padding:30px 0 40px}
  .req__list{margin-top:28px}
  .req__list div{flex-direction:column;gap:4px;padding:18px 4px}
  .req__list dt{flex:none;font-size:14px}
  .req__list dd{font-size:15px}

  .faq{padding:64px 0 80px}
  .faq__list{margin-top:36px;gap:10px}
  .faq__q{gap:14px;padding:18px 16px}
  .faq__q .q{font-size:22px}
  .faq__q .t{font-size:14px}
  .faq__a p{padding:0 16px 20px 52px;font-size:14px}
  .faq__a p::before{left:16px;font-size:22px}

  .note{padding:50px 0}
  .note__logo{width:170px}
  .note__ttl{font-size:18px}
  .note__list{flex-direction:column;align-items:center;gap:20px;margin-top:32px}
  .note__btn{width:280px;height:60px;font-size:16px;margin-top:36px}

  .entry{padding-top:64px}
  .entry__brand img{width:90px}
  .entry__brand span{font-size:15px}
  .entry__ttl{font-size:26px;margin-top:18px}
  .entry__lead{font-size:16px;margin-top:12px}
  .form{padding:28px 20px 40px}
  .form__row{flex-direction:column;gap:22px}
  .entry__marquee{font-size:44px;margin-top:36px}

  .footer{height:auto;flex-direction:column;align-items:flex-start;gap:10px;padding:20px 20px 86px}
}