/* ===== BREADCRUMB (下層ページ共通) ===== */
.breadcrumb{
  display:flex;align-items:center;gap:.7em;flex-wrap:wrap;
  max-width:1150px;margin:0 auto;
  padding:14px clamp(20px,3vw,48px);
  font-family:var(--gothic);font-size:12.5px;letter-spacing:.06em;
  color:var(--ink2);
}
.breadcrumb a{color:var(--ink2);text-decoration:none;transition:color .2s}
.breadcrumb a:hover{color:var(--pink)}
.breadcrumb .bc-sep{color:#d3b6be;font-size:11px}
.breadcrumb .bc-current{color:var(--pink)}
@media(max-width:560px){
  .breadcrumb{font-size:9.5px;padding:10px 20px}
}

/* ===== HEADER ===== */
.hdr{position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,253,253,.80);backdrop-filter:blur(10px);box-shadow:0 2px 16px rgba(190,120,140,.08);
  transition:background .3s ease,box-shadow .3s ease,padding .3s ease;}
.hdr.scrolled{background:rgba(255,253,253,.88)}
.hdr-inner{max-width:100%;margin:0;display:flex;align-items:center;gap:22px;
  padding:9px clamp(20px,3vw,48px);}
.logo{display:flex;align-items:center;gap:10px;flex:none}
.logo-img{height:34px;width:auto;display:block}
.logo-txt{font-family:var(--round);font-weight:700;font-size:20px;color:var(--ink);letter-spacing:.02em;white-space:nowrap}
.nav{display:flex;gap:26px;margin-left:auto;align-items:center}
.nav a{font-family:var(--serif);font-size:15px;font-weight:500;color:var(--ink2);position:relative;padding:6px 0;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--pink);transition:width .3s}
.nav a:hover{color:var(--pink)}
.nav a:hover::after{width:100%}
.hdr-cta{display:inline-flex;align-items:center;gap:9px;background:var(--pink);color:#fff;flex:none;
  font-weight:700;font-size:13.5px;padding:9px 22px;border-radius:999px;white-space:nowrap;letter-spacing:.12em;
  box-shadow:0 8px 20px rgba(232,90,131,.30);transition:transform .25s,box-shadow .25s}
.hdr-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(232,90,131,.40);color:#fff}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;margin-left:auto}
.burger span{width:26px;height:2.5px;background:var(--ink);border-radius:2px;transition:.3s}
.burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ===== HERO ===== */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-bg::part(empty){background:linear-gradient(120deg,#e9eef2,#f4e8ec)}
.hero-overlay{position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(rgba(38,29,26,.10),rgba(38,29,26,.10)),
    linear-gradient(100deg,rgba(255,253,253,.72) 0%,rgba(255,253,253,.30) 42%,rgba(255,253,253,0) 70%);}
.hero-content{position:relative;z-index:3;width:100%;padding:96px clamp(24px,6vw,108px) 28px}
.hero-label{display:flex;align-items:center;gap:.5em;white-space:nowrap;margin-bottom:6px;
  font-size:clamp(14px,1.3vw,21px)}
.hero-logo{height:1.25em;width:auto;display:block}
.hero-school{font-family:"Cormorant Garamond",serif;font-weight:600;letter-spacing:.06em;
  font-size:1.12em;line-height:1;color:#8a6a63}
.hero-title{display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin-bottom:24px}
.hero-title span{background:rgba(74,58,51,.7);color:#fff;font-weight:600;
  font-size:clamp(28px,3.6vw,58px);line-height:1.14;padding:.26em .32em .12em;letter-spacing:.05em}
.hero-desc{font-size:clamp(13px,1vw,15.5px);color:#3a322d;font-weight:500;line-height:1.7;margin-bottom:14px;
  text-shadow:0 0 10px rgba(255,255,255,1),0 0 20px rgba(255,255,255,.98),0 0 34px rgba(255,255,255,.9),0 0 50px rgba(255,255,255,.8)}
.hero-btn{font-size:clamp(14px,1.2vw,16px);padding:16px 30px;width:clamp(350px,31vw,406px);max-width:92%;
  font-weight:500;letter-spacing:.08em}
.hero-badges{display:flex;gap:9px;margin-top:18px;flex-wrap:wrap;align-items:flex-start}
.hbadge{width:150px;height:auto;display:block;
  filter:drop-shadow(0 0 16px rgba(255,255,255,.92)) drop-shadow(0 6px 12px rgba(190,120,140,.18))}

/* ===== GALLERY STRIP ===== */
.gallery{position:relative;overflow:hidden;background:#fff;
  padding:clamp(110px,11vw,190px) 0 calc(8.6vw + 48px)}
.gallery-row{width:100%;max-width:none;margin:0;display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,2vw,34px);align-items:start;position:relative;z-index:2}
.gal-wrap{position:relative}
.gallery-row .deco{z-index:-1}
.deco{position:absolute;z-index:1;pointer-events:none;user-select:none;height:auto}
.gal{display:block;width:100%;height:clamp(150px,13vw,220px);object-fit:cover;border-radius:18px;box-shadow:var(--shadow-sm)}
/* 左端・右端画像は素材側の角丸（外側直角・内側のみ角丸）をそのまま使う */
.gw-a .gal,.gw-d .gal{border-radius:0;height:auto}
.gw-a{transform:translateY(-23px)}
.gw-b{transform:translateY(22px)}
.gw-c{transform:translateY(-31px)}
.gw-d{transform:translateY(22px)}
.gd-tri-bl{left:41.24%;top:129.47%;width:22.64%}
.gd-para{left:-7.2%;top:-60.4%;width:60%}
.gd-dots{left:91.64%;top:95.65%;width:25.88%}
.gd-lens{left:79.2%;top:130%;width:59%}
.gd-tri-tr{left:28.03%;top:-57%;width:13.75%}

/* ===== CONCERNS ===== */
.concerns{position:relative;background:#eef2fb url('assets/BG01.webp') top center/100% 100% no-repeat;
  padding:135px 24px 120px;overflow:hidden}
.concern-blob{position:absolute;border-radius:50%;background:radial-gradient(circle,#fff 0%,rgba(255,255,255,0) 70%);opacity:.8}
.concern-blob.b1{width:300px;height:160px;left:-40px;top:18%}
.concern-blob.b2{width:260px;height:160px;right:-30px;top:35%}
.bubble{background:#fff;border-radius:22px;box-shadow:0 12px 40px rgba(150,140,200,.16);
  text-align:center;position:relative}
.bubble-center{max-width:660px;margin:0 auto 16px;padding:30px 42px 50px;
  background:url('assets/bubble_concern.webp') center/100% 100% no-repeat;box-shadow:none;border-radius:0}
.bubble-center h2{font-family:var(--serif);font-weight:800;color:var(--ink);
  font-size:clamp(17px,2.4vw,28px);letter-spacing:.04em}
.bubble-center::after{display:none}
.case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1025px;margin:0 auto 48px;align-items:start}
.case-card{transition:transform .3s}
.case-card img{width:100%;height:auto;display:block;filter:drop-shadow(0 10px 24px rgba(150,140,200,.16))}
.case-card:hover{transform:translateY(-5px)}
.case-card .case-sp,.pin-sp,.head-sp,.about-photo-sp,.about-card-img-sp,.about-sp-body,.about-tdeco,.about-lens,.str-card-img.str-card-sp,.strength-bub-img.strength-bub-sp,.br-sp{display:none}
.case-no{font-family:var(--round);font-weight:700;font-size:24px;color:var(--ink);
  display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:14px}
.check{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;
  background:#5fb98a;color:#fff;font-size:14px}
.case-txt{font-size:15px;font-weight:500;color:var(--ink2);line-height:1.7;min-height:64px}
.case-txt b{font-weight:700}
.case-illust{width:100%;height:168px;margin-top:6px;object-fit:contain;object-position:center bottom}
.bubble-pin{max-width:780px;margin:0 auto;padding:32px 48px 54px;border-radius:0;
  background:url('assets/bubble_pin.webp') center/100% 100% no-repeat;box-shadow:none}
.bubble-pin::after{display:none}
.bubble-pin h3{font-weight:700;color:var(--ink);font-size:clamp(18px,2.2vw,27px);line-height:1.7}
.bubble-pin .pin-sub{font-size:.78em;font-weight:500}
.bubble-pin .pin-strong{font-weight:900;text-shadow:0.45px 0 0 currentColor,-0.45px 0 0 currentColor}

/* ===== ABOUT ===== */
.about{background:#fff;position:relative;overflow:hidden;
  padding:clamp(72px,8vw,112px) 0 clamp(34px,3.4vw,54px)}
.about .wrap{max-width:none;margin:0;position:relative;z-index:1}
.about-deco{position:absolute;top:clamp(20px,3.5vw,64px);left:-6%;width:200%;height:auto;z-index:5;pointer-events:none;user-select:none}
.ab-deco{position:absolute;height:auto;z-index:5;pointer-events:none;user-select:none}
.ab-dome{width:clamp(90px,9vw,160px);left:14%;
  top:calc(clamp(72px,8vw,112px) + clamp(32px,4.6vw,56px) - clamp(24px,2.4vw,42px))}
.ab-dots{width:21.95%;left:96.1%;top:2.85%}
.ab-tri-l{width:13.26%;left:10.51%;top:-5.31%}
.ab-tri-r{width:8.29%;left:108.36%;top:50.14%}
.ab-para{width:28.37%;left:90.62%;top:61.53%}
.ab-lens{width:26.1%;left:73.95%;top:86.38%}
.about .en-head{margin-bottom:clamp(14px,1.5vw,20px);padding:0 24px}
.about-grid{display:grid;grid-template-columns:0.92fr 1fr;gap:clamp(20px,3vw,52px);align-items:start;width:auto;
  max-width:1150px;margin-left:auto;margin-right:max(24px,calc(50% - 512.5px))}
.about-imgwrap{position:relative;z-index:2;align-self:start;margin-top:clamp(40px,6vw,96px)}
.about-cardwrap{position:relative;z-index:1;align-self:start;container-type:inline-size}
.about-card-text{position:absolute;left:50%;top:34%;transform:translateX(-50%);width:86%;
  text-align:center;font-family:var(--gothic);color:var(--body);font-weight:500;
  font-size:2.85cqw;line-height:1.8;z-index:2}
.about-card-text p{margin:0 0 1.4em}
.about-card-text p:last-child{margin-bottom:0}
.about-img{width:100%;height:auto;aspect-ratio:910/1000;object-fit:cover;display:block;
  border-radius:0 40px 40px 0;box-shadow:var(--shadow)}
.about-card-img{width:100%;height:auto;display:block}
.about-card{background:url('assets/BG02.webp') top center/100% 100% no-repeat;border-radius:34px;overflow:hidden;
  padding:clamp(36px,4vw,60px) clamp(28px,4vw,56px);margin-right:clamp(20px,4vw,60px);
  box-shadow:none;position:relative;z-index:3;text-align:center;
  display:flex;flex-direction:column;justify-content:center;aspect-ratio:3/4}
.about-card .deco{z-index:-1}
.about-lead{font-size:clamp(20px,2.2vw,28px);font-weight:800;color:var(--ink);line-height:1.7;margin-bottom:28px}
.about-lead b{font-weight:800}
.about-body{font-size:15px;color:var(--ink2);line-height:2;margin-bottom:18px}

/* ===== STRENGTHS ===== */
.strengths{background:#fff;position:relative;overflow:hidden;padding:clamp(48px,5.3vw,75px) 24px clamp(72px,8vw,112px)}
.strengths::before{content:"";position:absolute;z-index:0;top:0;bottom:0;left:50%;transform:translateX(-50%);
  width:min(calc(100% - 20px),1150px);
  background:url('assets/BG03.webp') top center/100% 100% no-repeat}
.strengths .wrap{position:relative;z-index:1;max-width:1150px;margin:0 auto;padding:0 clamp(20px,4vw,60px)}
.strengths .en-head{margin-bottom:34px}
.spark-img{position:absolute;top:50%;transform:translateY(-50%);width:clamp(40px,4.5vw,72px);
  height:auto;pointer-events:none;user-select:none;z-index:1}
.spark-l{right:calc(100% + 14px)}
.spark-r{left:calc(100% + 14px)}
.bubble-strength{position:relative;max-width:540px;margin:0 auto 50px}
.strength-bub-img{display:block;width:100%;height:auto}
.strength-bub-big{font-size:clamp(26px,3vw,38px);font-weight:800;color:var(--ink)}
.strength-bub-big b{font-size:1.2em}
.strength-bub-sub{font-size:15px;color:var(--ink2);font-weight:600;margin-top:6px}
.str-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1040px;margin:0 auto}
.str-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);
  transition:transform .3s,box-shadow .3s;position:relative;container-type:inline-size}
.str-card-text{position:absolute;left:8%;right:8%;top:60.5%;margin:0;
  font-family:var(--gothic);color:var(--body);font-weight:500;
  font-size:4.7cqw;line-height:1.6;text-align:justify}
.str-card-img{display:block;width:100%;height:auto}
.str-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.str-thumb{position:relative;height:190px}
.str-thumb image-slot{width:100%;height:100%}
.str-photo{width:100%;height:100%;object-fit:cover}
.str-no{position:absolute;left:14px;bottom:-6px;font-family:var(--round);font-weight:700;
  font-size:96px;line-height:1;color:rgba(239,111,147,.92);text-shadow:0 2px 8px rgba(0,0,0,.18)}
.str-body{padding:30px 26px 36px;text-align:center}
.str-cap{font-size:14px;color:var(--ink2);font-weight:600}
.str-title{font-size:clamp(24px,2.4vw,30px);font-weight:800;color:var(--ink);margin:2px 0 18px;
  display:inline-block;background:linear-gradient(transparent 62%,#cfe0f5 62%)}
.str-desc{font-size:14px;color:var(--ink2);line-height:1.95;text-align:left}

/* ===== SUPERVISOR ===== */
.supervisor{background:#fff;position:relative;overflow:hidden;
  padding:clamp(72px,8vw,112px) 24px clamp(36px,4vw,56px)}
.supervisor .wrap{max-width:1440px}
.supervisor .en-head{margin-bottom:8px}
.sup-frame-sp,.sup-tdeco,.sup-sp-box,.sup-bdeco{display:none}
.sup-card{position:relative;max-width:1230px;margin:70px auto 0;container-type:inline-size}
.sup-frame-text{position:absolute;left:2%;width:53%;top:42%;margin:0;z-index:1;
  text-align:center;font-family:var(--gothic);color:var(--body);font-weight:500;
  font-size:1.5cqw;line-height:1.85}
.sup-frame-text u{color:var(--blue);text-decoration-color:var(--blue);text-underline-offset:4px}
.sup-frame-img{display:block;width:100%;height:auto}
.sv-deco{position:absolute;height:auto;z-index:0;pointer-events:none;user-select:none}
.sv-dome{width:clamp(90px,9vw,160px);left:16.9%;top:-39.1%}
.sv-dots{width:7.4%;left:91.5%;top:-14.1%}
.sv-tri-l{width:6.5%;left:-4.6%;top:31%}
.sv-tri-r{width:4%;left:93.5%;top:55%}
.sv-para{width:16.7%;left:34.6%;top:92.2%}
.tag{position:absolute;top:-22px;left:clamp(28px,6%,72px);color:#fff;font-weight:700;
  font-size:14px;padding:15px 42px;border-radius:50% / 100%}
.tag-blue{background:var(--blue-soft)}
.sup-tag-img{position:absolute;left:9.6%;top:clamp(-79px,calc(-6vw + 16px),-58px);
  width:17.3%;height:auto;z-index:2;pointer-events:none;user-select:none}
.sup-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:stretch;position:relative;z-index:1}
.sup-text{text-align:center;display:flex;flex-direction:column;justify-content:space-between}
.sup-headline{font-size:clamp(22px,2.6vw,32px);font-weight:800;color:var(--ink);line-height:1.6;margin-bottom:0}
.sup-divider{height:1px;background:rgba(150,130,175,.28);margin:20px 0 22px}
.dot-em{position:relative;color:var(--pink)}
.dot-em::before{content:"•";position:absolute;top:-.7em;left:50%;transform:translateX(-50%);color:var(--pink);font-size:.5em}
.sup-body{font-size:15px;color:var(--ink2);line-height:2.1;text-align:center}
.sup-body u{text-decoration-color:var(--blue);text-underline-offset:4px;color:var(--blue)}
.sup-photo{position:relative;text-align:center}
.sup-img{position:absolute;right:8.1%;top:-11%;width:36%;height:auto;z-index:1}
.sup-name{background:#fff;border-radius:14px;padding:18px 24px;margin-top:-30px;
  box-shadow:0 10px 24px rgba(150,120,160,.16);position:relative;z-index:2;display:inline-block;margin-left:8%}
.sup-name-jp{font-family:var(--serif);font-weight:800;font-size:24px}
.sup-name-role{font-size:13px;color:var(--ink2);font-weight:600;margin-top:6px;border-top:1px solid var(--line);padding-top:10px}

/* ===== INSTRUCTOR ===== */
.instructor{background:#fff;position:relative;overflow:hidden;
  padding:clamp(28px,3vw,44px) clamp(20px,3vw,48px) clamp(110px,11vw,140px)}
.instructor .wrap{position:relative;z-index:1;max-width:1440px}
.ins-panel{position:relative;width:min(100%,1390px);margin:0 auto;
  aspect-ratio:1485/800;
  background:url('assets/BG06.webp') top center/100% auto no-repeat;
  display:flex;flex-direction:column;align-items:center;
  padding:clamp(56px,7vw,104px) clamp(24px,5vw,90px) clamp(60px,6vw,72px)}
.instructor .en-head{margin-bottom:clamp(16px,2.5vw,36px)}
.ins-card{position:relative;width:100%;max-width:1100px;margin:0 auto;container-type:inline-size}
.ins-sp-box,.ins-sp-tri{display:none}
.ins-frame-text{position:absolute;left:41%;right:1%;top:48.5%;margin:0;z-index:1;
  text-align:center;font-family:var(--gothic);color:var(--body);font-weight:500;
  font-size:1.72cqw;line-height:1.7}
.ins-frame-text .l1,.ins-frame-text .l4{display:block}
.ins-frame-text .quote{display:block;color:var(--pink);font-weight:700;font-size:1.2em;line-height:1.5;margin:.7em 0}
.ins-frame-text .ql1,.ins-frame-text .ql2{display:block}
.ins-frame-text .ql1{transform:translateX(-1em)}
.ins-deco{position:absolute;height:auto;z-index:2;pointer-events:none;user-select:none}
.ins-tri{left:17%;top:100%;width:6.2%;transform:translateY(-19px)}
.ins-dome{position:absolute;left:calc(74% + 76px);bottom:-65px;width:clamp(110px,11vw,160px);height:auto;z-index:2;pointer-events:none;user-select:none}
.ins-frame-img{display:block;width:100%;height:auto}
.ins-photo{position:relative}
.ins-vert{position:absolute;left:-4px;top:50%;transform:translateY(-50%);
  writing-mode:vertical-rl;font-family:var(--round);font-weight:700;letter-spacing:.18em;
  font-size:13px;color:rgba(239,111,147,.5);white-space:nowrap;pointer-events:none}
.ins-img{position:absolute;left:5%;top:50%;transform:translateY(calc(-50% - 38px));width:33%;height:auto;display:block;z-index:1}
.ins-text{text-align:center}
.ins-name{font-family:var(--round);font-weight:700;font-size:clamp(40px,5vw,62px);
  color:var(--pink);line-height:1;letter-spacing:.04em}
.ins-role{font-family:var(--round);font-size:14px;color:var(--ink2);font-weight:600;margin-top:10px}
.ins-divider{height:1px;background:var(--line);margin:24px 0}
.ins-lead{font-size:15px;color:var(--ink2);font-weight:600;margin-bottom:16px}
.ins-quote{font-size:clamp(20px,2.3vw,28px);font-weight:800;line-height:1.6;margin-bottom:14px}
.ins-sub{font-size:15px;color:var(--ink2);font-weight:600;margin-bottom:30px}
.ins-btn-img{position:absolute;left:65%;bottom:0;transform:translate(-50%,50%);
  width:33%;max-width:360px;z-index:2;border-radius:999px;overflow:hidden;
  transition:transform .28s ease,filter .28s ease,box-shadow .28s ease}
.ins-btn-img img{width:100%;height:auto;display:block}
.ins-btn-img::after{content:"";position:absolute;top:0;left:-65%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-18deg);transition:left .6s ease;pointer-events:none;z-index:1}
.ins-btn-img:hover{transform:translate(-50%,calc(50% - 4px)) scale(1.02);filter:brightness(1.04);
  box-shadow:0 12px 26px rgba(232,90,131,.38)}
.ins-btn-img:hover::after{left:120%}

/* ===== VOICE ===== */
.voice{background:#fff;position:relative;overflow:hidden;padding:clamp(36px,4vw,56px) 24px clamp(92px,9vw,128px)}
.voice-strip img.vc-strip-tri{position:absolute;right:46px;top:calc(100% + 8px);width:clamp(70px,7vw,105px);height:auto;transform:none;z-index:1;pointer-events:none;user-select:none}
.vc-dots{position:absolute;left:12%;top:18%;width:clamp(64px,6vw,96px);height:auto;transform:translate(-20px,-300%);z-index:0;pointer-events:none;user-select:none}
.vc-petal{position:absolute;left:72%;top:144px;width:clamp(120px,13vw,185px);transform:translate(-33%,50%);z-index:0;height:auto;pointer-events:none;user-select:none}
.voice .en-head{margin-bottom:4px;margin-top:-57px}
.voice-intro{text-align:center;font-size:17px;color:var(--ink2);font-weight:500;line-height:2;margin:18px 0 50px}
.voice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1180px;margin:0 auto;align-items:start}
/* PC Voice スライダー（5枚以上で自動発動：app.js が .vc-slide-on を付与、4枚以下は現状のグリッドのまま） */
@media(min-width:561px){
.voice-grid.vc-slide-on{display:flex;grid-template-columns:none;gap:20px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;padding:0 0 2px;scroll-behavior:auto;touch-action:pan-y;cursor:grab}
.voice-grid.vc-slide-on::-webkit-scrollbar{display:none}
.voice-grid.vc-slide-on .vc-card{flex:0 0 calc((100% - 60px)/4)}
.voice-grid.vc-slide-on .vc-card img{pointer-events:none}
.vc-pager.vc-slide-on{display:flex}
}
.vc-pager{display:none;justify-content:center;gap:10px;margin-top:18px}
.vc-pager-dot{width:9px;height:9px;border-radius:50%;border:none;padding:0;cursor:pointer;background:var(--pink-soft);transition:background .2s,transform .2s}
.vc-pager-dot.active{background:var(--pink);transform:scale(1.2)}
.vc-card{display:block;transition:transform .3s,filter .3s}
.vc-card img{width:100%;height:auto;display:block}
.vc-card:hover{transform:translateY(-6px);filter:drop-shadow(0 14px 30px rgba(190,120,140,.2))}
.center-btn{text-align:center;margin-top:48px}
.btn-wrap{position:relative;display:inline-block}
.btn-tri{display:none}
.btn-img-link{display:inline-block;position:relative;overflow:hidden;border-radius:999px;
  transition:transform .28s ease,box-shadow .28s ease,filter .28s ease}
.btn-img-link img{height:54px;width:auto;display:block}
.btn-img-link .btn-sp{display:none}
.btn-img-link::after{content:"";position:absolute;top:0;left:-65%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);
  transform:skewX(-18deg);transition:left .6s ease;pointer-events:none;z-index:1}
.btn-img-link:hover{transform:translateY(-3px) scale(1.02);filter:brightness(1.03);
  box-shadow:0 12px 26px rgba(232,90,131,.34)}
.btn-img-link:hover::after{left:120%}
.voice-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,34px);margin-top:140px;width:100%;max-width:none;padding:0;position:relative}
/* entrance gimmick: staggered top-down wipe on scroll-in; photos stay visible if JS doesn't fire */
@keyframes vcStripIn{from{clip-path:inset(0 0 100% 0);opacity:0}to{clip-path:inset(0 0 0 0);opacity:1}}
.voice-strip.reveal{opacity:1;transform:none;transition:none}
.voice-strip img:not(.vc-strip-para):not(.vc-strip-tri){transition:filter .3s ease,box-shadow .3s ease;cursor:pointer}
.voice-strip.reveal.in img:nth-of-type(1){animation:vcStripIn .85s cubic-bezier(.22,.61,.36,1) both}
.voice-strip.reveal.in img:nth-of-type(2){animation:vcStripIn .85s cubic-bezier(.22,.61,.36,1) .12s both}
.voice-strip.reveal.in img:nth-of-type(3){animation:vcStripIn .85s cubic-bezier(.22,.61,.36,1) .24s both}
.voice-strip.reveal.in img:nth-of-type(4){animation:vcStripIn .85s cubic-bezier(.22,.61,.36,1) .36s both}
.voice-strip img:not(.vc-strip-para):not(.vc-strip-tri):hover{filter:brightness(1.05) saturate(1.04);box-shadow:0 14px 30px rgba(232,90,131,.26)}
@media (prefers-reduced-motion:reduce){
  .voice-strip.reveal.in img:nth-of-type(-n+4){animation:none}}
.voice-strip img.vc-strip-para{position:absolute;left:calc((100% - 3*clamp(16px,2vw,34px))/4 - clamp(150px,17vw,240px) + 58px);top:-49px;width:clamp(150px,17vw,240px);height:auto;transform:none;z-index:0;pointer-events:none;user-select:none}
.voice-strip img{width:100%;height:auto;display:block;position:relative;z-index:1}
.voice-strip img:nth-child(odd){transform:translateY(-18px)}
.voice-strip img:nth-child(2),.voice-strip img:nth-child(4){transform:translateY(18px)}
.voice-strip img.vc-strip-dots,.voice-strip img.vc-strip-lens{display:none}

/* ===== CAREER PATH ===== */
.career{background:#fff;position:relative;padding:clamp(72px,8vw,112px) 24px;margin-top:-38px}
.career .en-head{margin-bottom:4px}
.career-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;max-width:1080px;margin:46px auto 0}
.cp-card{display:block;transition:transform .3s,filter .3s;position:relative;container-type:inline-size}
.cp-title{position:absolute;left:7.5%;top:11%;margin:0;color:#fff;font-family:var(--serif);
  white-space:nowrap;line-height:1;z-index:2;display:flex;align-items:baseline}
.cp-title .big{font-size:6.8cqw;font-weight:700;
  text-emphasis:filled dot;-webkit-text-emphasis:filled dot;
  text-emphasis-position:over;-webkit-text-emphasis-position:over}
.cp-title .small{font-size:4.6cqw;font-weight:700}
.cp-body{position:absolute;left:43%;right:5%;top:41%;margin:0;color:#fff;
  font-family:var(--gothic);font-size:2.95cqw;line-height:1.9;font-weight:500;z-index:2}
.cp-card .cp-img-sp,.cp-card .cp-body-sp{display:none}
.cp-card img{width:100%;height:auto;display:block;border-radius:20px}
.cp-card:hover{transform:translateY(-6px);filter:drop-shadow(0 16px 36px rgba(150,120,180,.24))}

/* ===== MEDIA ===== */
.media{background:#fff;position:relative;margin-top:-57px;padding:clamp(48px,5vw,72px) 24px clamp(56px,6vw,88px)}
.media .en-head{margin-bottom:4px}
.media-panel{position:relative;width:min(100%,1180px);margin:0 auto;aspect-ratio:1641/1176;
  background:url('assets/BG07.webp') top center/100% 100% no-repeat}
.media-head{position:absolute;left:0;right:0;top:12.5%;margin:0}
.media-sub{position:absolute;left:0;right:0;top:21.5%;margin:0}
.media-label{position:absolute;left:0;right:0;top:25.5%;margin:0;font-weight:700;color:var(--ink);font-size:clamp(15px,1.7vw,21px);
  letter-spacing:.06em;display:flex;align-items:center;justify-content:center;gap:10px}
.media-label small{font-size:13px;font-weight:600;color:var(--ink2)}
.media-tv-icon{width:24px;height:auto;display:block}
.media-frame{position:absolute;left:16.1%;top:30.6%;width:67.9%;height:53.2%;border-radius:12px;overflow:hidden}
.media-thumb{width:100%;height:100%}
.media-embed{width:100%;height:100%;display:block;border:0}
.media-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:96px;height:96px;border:none;cursor:pointer;background:none;padding:0;
  transition:transform .25s}
.media-play img{width:100%;height:100%;display:block}
.media-play:hover{transform:translate(-50%,-50%) scale(1.08)}

/* ===== ACCESS ===== */
.access{background:#fff;position:relative;z-index:1;overflow:visible;margin-top:calc(-1 * clamp(56px,7vw,96px));padding:clamp(8px,1.5vw,16px) 24px clamp(72px,8vw,112px)}
.access::before{content:"";position:absolute;left:0;right:0;bottom:0;z-index:0;
  top:calc(clamp(8px,1.5vw,16px) + clamp(16px,2.3vw,28px));background:#fbecef}
.access .wrap{position:relative;z-index:1}
.ac-deco{position:absolute;z-index:0;height:auto;pointer-events:none;user-select:none}
.ac-petal{left:34%;top:-12px;width:clamp(120px,13vw,200px);transform:translate(-200%,-33%)}
.ac-dome{left:60%;top:-46px;width:clamp(78px,8vw,124px);transform:translate(38px,-100%)}
.ac-tri{position:absolute;left:4%;top:62%;width:clamp(64px,6.8vw,100px);height:auto;z-index:0;pointer-events:none;user-select:none}
.ac-tri2{position:absolute;right:4%;top:22%;width:clamp(38px,4vw,58px);height:auto;transform:translate(-100%,-200%);z-index:0;pointer-events:none;user-select:none}
.ac-para{position:absolute;right:3%;top:100%;width:clamp(144px,15vw,230px);height:auto;transform:scaleX(-1) translateY(-66.67%);z-index:0;pointer-events:none;user-select:none}
.access .en-head{margin-bottom:40px}
.access-slider{position:relative;max-width:1080px;margin:76px auto 0;z-index:1}
.ac-track{display:flex;gap:clamp(20px,3vw,44px);overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:2px}
.ac-track::-webkit-scrollbar{display:none}
.ac-col{flex:0 0 calc(50% - clamp(10px,1.5vw,22px));scroll-snap-align:start;
  display:flex;flex-direction:column;align-items:center;gap:0}
.ac-nav{position:absolute;top:38%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border-radius:50%;
  border:none;cursor:pointer;background:#fff;color:var(--pink);font-size:24px;line-height:1;
  box-shadow:0 6px 18px rgba(190,120,140,.28);display:none;align-items:center;justify-content:center;
  transition:transform .2s,box-shadow .2s}
.ac-nav:hover{transform:translateY(-50%) scale(1.08);box-shadow:0 10px 22px rgba(232,90,131,.34)}
.ac-prev{left:-10px}
.ac-next{right:-10px}
.ac-dots{display:none;justify-content:center;gap:10px;margin-top:24px}
.ac-dot{width:9px;height:9px;border-radius:50%;border:none;padding:0;cursor:pointer;background:var(--pink-soft);transition:background .2s,transform .2s}
.ac-dot.active{background:var(--pink);transform:scale(1.2)}
.access-slider.has-overflow .ac-nav{display:flex}
.access-slider.has-overflow .ac-dots{display:flex}
.ac-card{position:relative;width:100%;container-type:inline-size}
.ac-card-img{width:100%;height:auto;display:block}
.ac-card-img-sp,.ac-photo-sp{display:none}
.ac-label{position:absolute;left:6.5%;top:14.6%;margin:0;font-family:var(--gothic);
  font-weight:700;color:var(--ink);font-size:3.5cqw;letter-spacing:.04em;z-index:2}
.ac-photo{position:absolute;left:6.3%;top:23.5%;width:87.3%;height:auto;display:block;
  border-radius:16px;box-shadow:0 10px 26px rgba(150,130,175,.20)}
.ac-addr{position:absolute;left:7.5%;right:6%;top:71.7%;display:flex;flex-direction:column;gap:.7em}
.ac-line{display:flex;align-items:flex-start;gap:2.2cqw;margin:0;
  font-family:var(--gothic);color:var(--ink2);font-weight:600;font-size:3.15cqw;line-height:1.62}
.ac-ico{width:4.3cqw;height:auto;flex:none;margin-top:.15em}
.ac-map-btn{display:block;width:min(78%,340px);position:relative;z-index:2;
  margin-top:calc(-1 * clamp(24px,3.3vw,33px));
  filter:drop-shadow(0 8px 18px rgba(232,90,131,.32));transition:transform .25s,filter .25s}
.ac-map-btn img{width:100%;height:auto;display:block}
.ac-map-btn .map-sp{display:none}
.ac-map-btn:hover{transform:translateY(-2px);filter:drop-shadow(0 12px 22px rgba(232,90,131,.4))}

/* image buttons */
.img-btn{display:inline-block;line-height:0;transition:transform .25s,filter .25s}
.img-btn img{width:100%;height:auto;display:block}
.img-btn:hover{transform:translateY(-2px)}
.faq-allbtn{width:100%;max-width:360px}

/* hide map emoji indent helper */
.access-line .ai-pad{margin-left:26px}

/* ===== FAQ ===== */
.faq{background:#fff;position:relative;padding:clamp(72px,8vw,112px) 24px clamp(32px,3.5vw,50px)}
.faq .en-head{margin-bottom:4px}
.faq-list{max-width:1040px;margin:44px auto 0;display:flex;flex-direction:column;gap:18px}
.faq-row{display:block}
.faq-card{position:relative;container-type:inline-size}
.faq-q-text{position:absolute;left:11%;top:17.2%;transform:translateY(-50%);margin:0;color:#fff;
  font-family:var(--serif);font-weight:700;font-size:2.3cqw;letter-spacing:.03em}
.faq-a-text{position:absolute;left:6.2%;right:5%;top:46%;margin:0;color:var(--ink2);
  font-family:var(--gothic);font-weight:500;font-size:1.85cqw;line-height:1.85}
.faq-row img{width:100%;height:auto;display:block}
.faq-item{border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);background:#fff7f9}
.faq-q{width:100%;display:flex;align-items:center;gap:16px;background:var(--pink);color:#fff;
  border:none;cursor:pointer;text-align:left;font-family:var(--gothic);font-weight:600;
  font-size:clamp(16px,1.8vw,20px);padding:20px 26px;font-feature-settings:"palt"}
.faq-qno{font-family:var(--serif);font-weight:800;font-size:24px;flex:none}
.faq-toggle{margin-left:auto;flex:none;width:22px;height:22px;position:relative}
.faq-toggle::before,.faq-toggle::after{content:"";position:absolute;background:#fff;border-radius:2px;
  top:50%;left:50%;transition:transform .3s}
.faq-toggle::before{width:18px;height:2.5px;transform:translate(-50%,-50%)}
.faq-toggle::after{width:2.5px;height:18px;transform:translate(-50%,-50%)}
.faq-item.open .faq-toggle::after{transform:translate(-50%,-50%) scaleY(0)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faq-item.open .faq-a{max-height:300px}
.faq-a p{padding:24px 30px 28px 70px;font-size:15px;color:var(--ink2);line-height:2;font-weight:500}

/* ===== FINAL CTA ===== */
.sp-br{display:none}
.pc-br{display:inline}
.sp-gap{display:none}
.fc-btn-img .fc-btn-sp{display:none}
.sp-inquiry-btn{display:none}
.finalcta .fc-cards-sp{display:none}
.finalcta{background:#fff;position:relative;text-align:center;padding:clamp(18px,2.2vw,32px) 24px clamp(56px,7vw,96px)}
.finalcta .wrap{max-width:1360px;
  background:url('assets/BG09.webp') center/cover no-repeat,linear-gradient(160deg,#fdf3ea 0%,#fbe9ef 50%,#f3e9f7 100%);
  border-radius:clamp(28px,3vw,44px);padding:clamp(56px,7vw,96px) clamp(28px,5vw,80px);
  overflow:hidden;box-shadow:0 18px 50px rgba(190,140,180,.16)}
.fc-head{font-size:clamp(26px,4vw,46px);font-weight:800;
  background:linear-gradient(transparent 64%,#fdf0a8 64%);display:inline-block;margin-bottom:46px;line-height:1.4}
.fc-head .grad{background:linear-gradient(90deg,#9b7fd4 0%,#d36fa3 55%,#ef6f93 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.fc-cards{display:flex;justify-content:center;gap:clamp(16px,2vw,28px);flex-wrap:wrap;margin-bottom:42px}
.fc-card{width:clamp(240px,30%,330px)}
.fc-card img{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 18px rgba(190,140,170,.18))}
.fc-body{font-size:18px;color:var(--ink2);font-weight:500;line-height:2}
.fc-body2{font-size:22px;color:var(--ink2);font-weight:600;margin-top:33px}
.fc-down{margin:14px 0 6px;transform:translateY(50%)}
.fc-down img{width:48px;height:auto;display:block;margin:0 auto}
.fc-btn-img{position:relative;z-index:2;display:block;width:min(90%,760px);
  margin:calc(-1 * clamp(27px,3.6vw,61px)) auto 0;transition:transform .25s,filter .25s}
.fc-btn-img img{width:100%;height:auto;display:block}
.fc-btn-img:hover{transform:translateY(-3px) scale(1.01);filter:drop-shadow(0 14px 28px rgba(150,90,160,.34))}

/* ===== SNS ===== */
.sns{background:#fef5f6;position:relative;padding:clamp(72px,8vw,112px) 24px}
.sns .en-head{margin-bottom:10px}
.sns-lead{text-align:center;font-size:clamp(20px,2.4vw,30px);font-weight:800;color:var(--ink);margin-bottom:44px}
.sns-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;max-width:900px;margin:0 auto;align-items:start}
.sns-card{position:relative;display:block;transition:transform .3s;margin-bottom:42px}
.sns-card:hover{transform:translateY(-5px)}
.sns-img{width:100%;height:280px;object-fit:cover;border-radius:16px;display:block}
.sns-badge{position:absolute;left:50%;bottom:-56px;transform:translateX(-50%);
  width:92px;height:auto;display:block;z-index:2;filter:drop-shadow(0 6px 14px rgba(150,110,160,.22))}
/* YT素材はIGより余白が少ない（円144/170 vs 144/204）ため幅を補正して円サイズを揃える */
.sns-grid .sns-card:first-child .sns-badge{width:77px}

/* ===== FOOTER ===== */
.footer{background:#fff;padding:80px 24px 0}
.footer-inner{max-width:1180px;margin:0 auto;display:grid;
  grid-template-columns:2.9fr 1.7fr 1.2fr;gap:40px;align-items:start;padding-bottom:20px;padding-left:150px}
.footer-col{display:flex;flex-direction:column}
.footer-logo{display:flex;align-items:center;gap:10px;margin-bottom:24px}
.footer-logo-img{height:38px;width:auto;display:block}
.footer-line{font-size:14px;color:var(--ink2);font-weight:500;line-height:1.9;margin-bottom:12px;display:flex;align-items:flex-start;gap:8px}
.footer-line .ai{flex:none}
.footer-line .ai-txt{flex:1}
.footer-line.fl-center{align-items:center}
.footer-social{display:flex;gap:12px;margin-top:22px}
.footer-social a{width:76px;height:76px;display:block;transition:transform .25s}
.footer-social a img{width:100%;height:100%;display:block}
.footer-social a:hover{transform:translateY(-3px)}
.footer-nav{display:flex;flex-direction:column;gap:18px;padding-top:6px}
.footer-nav a{font-size:16px;color:var(--ink2);font-weight:500;position:relative;padding-left:18px;white-space:nowrap}
.footer-nav a::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:7px;height:7px;border-radius:50%;background:var(--pink)}
.footer-nav a:hover{color:var(--pink)}
.footer-cta-wrap{display:flex;justify-content:flex-end;align-self:end}
.footer-cta{width:100%;max-width:360px;margin-top:34px}
.footer-inner > .footer-col:nth-child(2),
.footer-inner > nav.footer-nav{transform:translateX(-38px)}
.copyright{background:var(--pink);color:#fff;text-align:center;font-size:13px;padding:9px;letter-spacing:.04em}
.footer-legal{display:flex;flex-direction:row;flex-wrap:nowrap;gap:24px;white-space:nowrap;
  justify-content:center;max-width:1180px;margin:0 auto;padding:0 24px 20px}
.footer-legal a{font-size:12px;color:var(--ink2);font-weight:500;transition:color .2s}
.footer-legal a:hover{color:var(--pink)}

/* ===================== RESPONSIVE ===================== */
@media(max-width:1080px){
  .nav{display:none}
  .hdr-cta{display:none}
  .burger{display:flex;align-items:center;justify-content:center;
    background:var(--pink,#e85a83);border-radius:0;gap:5px;
    align-self:stretch;padding:0 18px;
    margin-top:-9px;margin-bottom:-9px;margin-right:calc(-1*clamp(20px,3vw,48px))}
  .burger span{background:#fff}
  .logo-img{height:28px}
  .nav.open{display:flex;position:fixed;top:64px;left:0;right:0;flex-direction:column;
    align-items:stretch;
    background:rgba(255,253,253,.98);backdrop-filter:blur(10px);padding:20px 28px 30px;gap:6px;
    box-shadow:0 12px 30px rgba(190,120,140,.18);margin-left:0}
  .nav.open a{padding:14px 4px;border-bottom:1px solid #fadbe6;margin:0 12px;font-size:15px;font-weight:700;text-align:center}
  .about{padding-left:8px;padding-right:8px}
  .about-grid{grid-template-columns:1fr;gap:0}
  .about-imgwrap{margin-top:20px}
  .ab-para,.ab-dots,.ab-tri-r{display:none}
  .about-img{height:300px;border-radius:22px}
  .about-card{margin-right:0;margin-top:-30px;padding:44px 32px}
  .sup-inner{grid-template-columns:1fr;gap:32px}
  .ins-card{grid-template-columns:1fr;gap:30px;padding:38px}
  .ins-vert{display:none}
  .ac-col{flex-basis:88%}
  .footer-inner{grid-template-columns:1fr 1fr;gap:34px}
  .footer-cta-wrap{justify-content:flex-start}
}
@media(max-width:860px){
  .concerns{background-size:100% auto}
  .gallery{padding:48px 0 64px}
  .gallery-row{grid-template-columns:repeat(2,1fr);gap:18px}
  .gallery-row .deco{display:none}
  .gal,.gw-a,.gw-b,.gw-c,.gw-d{transform:none}
  .gal{height:180px}
  .case-grid{grid-template-columns:repeat(2,1fr);gap:18px}
  .str-grid{grid-template-columns:1fr;max-width:460px}
  .voice-grid{grid-template-columns:repeat(2,1fr)}
  .career-grid{grid-template-columns:1fr;gap:24px;margin-top:23px}
  .voice-strip{grid-template-columns:repeat(2,1fr)}
  .voice-strip img:nth-child(odd){transform:none}
  .sns-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  /* iOS横ゆれ（左右ラバーバンド）防止：bodyだけでなくルート(html)も横をクリップ。SP限定でPCには未干渉 */
  /* hidden×hidden だと body が独立スクロール領域になり縦バーが2本出るため clip を使用（clip はスクロール領域を作らない。非対応の古いブラウザは hidden にフォールバック） */
  html{overflow-x:hidden;overflow-x:clip}
  body{overflow-x:clip}
  /* SP限定：Strengthsピンクフレーム上のうっすらピンク色（body背景 #fffdfd の透け）を白に */
  body{background:#fff}
  /* SP限定：セクションタイトル画像を一回り大きく */
  .en-head-img{height:38px}
  .strengths .en-head-img,.supervisor .en-head-img{height:48px}
  .faq .en-head-img{height:40px}
  .section{padding:60px 18px}
  .hero-content{padding:96px 22px 14px}
  .hero-title{align-items:flex-start;margin-bottom:16px;gap:5px}
  .hero-desc br{display:none}
  .hero-desc{font-size:14.5px;line-height:1.65;margin-bottom:18px}
  .hero-btn{display:flex;width:100%;max-width:300px;padding:13px 22px;font-size:14px;margin-left:auto;margin-right:auto}
  .hbadge{width:84px}
  .badge{width:100px;height:100px}
  .badge-ribbon{font-size:8.5px;padding:3px 8px}
  .hero-badges{gap:8px;margin-top:14px;justify-content:center}
  .gallery .gallery-row{display:none}
  .gallery{padding:0}
  /* ---- CONCERNS (SP) ---- */
  .concerns{padding:56px 16px 26px;background:rgb(237,242,245) url('assets/BG01_sp.webp') top center/100% auto no-repeat}
  .bubble-center{background:none;box-shadow:none;padding:6px 12px 18px;max-width:none}
  .bubble-center h2{display:none}
  .head-sp{display:block;width:100%;max-width:360px;height:auto;margin:0 auto}
  .case-grid{grid-template-columns:1fr;max-width:none;gap:13px;margin:0 auto 22px}
  .case-card .case-pc{display:none}
  .case-card .case-sp{display:block}
  .case-card img{filter:drop-shadow(0 6px 16px rgba(150,140,200,.14))}
  .bubble-pin{background:none;box-shadow:none;padding:0;max-width:430px;margin:44px auto 0}
  .bubble-pin h3{display:none}
  .pin-sp{display:block;width:100%;height:auto}
  /* ---- ABOUT (SP) ---- */
  .about .ab-deco{display:none}
  .about-imgwrap{display:none}
  .about .en-head{margin-top:-21px;margin-bottom:26px;position:relative;text-align:center;z-index:5}
  .about-tdeco{display:block;position:absolute;top:50%}
  .about-tdeco-ell{width:88px;height:26px;left:50%;transform:translate(calc(-50% - 176px),-50%);
    background:url('assets/pa_dome.webp') center/contain no-repeat}
  .about-tdeco-dots{width:105px;height:40px;left:50%;transform:translate(calc(-50% + 140px),calc(-50% + 36px));
    background:url('assets/pa_dots.webp') center/contain no-repeat;z-index:6}
  .about-card-img{display:none}
  .about{overflow:visible}
  .about-card-img-sp{display:block;width:100%;height:auto}
  .about-card-text{display:none}
  .br-sp{display:inline}
  .br-pc{display:none}
  .about-sp-body{display:block;position:absolute;left:50%;top:28.8%;transform:translateX(-50%);
    width:88%;text-align:center;z-index:2}
  .about-sp-body p{font-family:var(--gothic);color:var(--body);font-weight:400;
    font-size:16px;line-height:1.7;margin:0 0 18px}
  .about-sp-body .sp-text1{margin-bottom:24px}
  .about-sp-body p:last-child{margin-bottom:0}
  .about-sp-body .about-photo-wrap{position:relative;display:block;width:88%;margin:0 auto 24px}
  .about-sp-body .about-photo-wrap .about-photo-sp{display:block;width:100%;height:auto;margin:0;
    border-radius:16px;box-shadow:0 10px 24px rgba(150,140,200,.18)}
  .about-tri{position:absolute;top:-18px;left:-10px;width:42px;height:39px;transform:scaleY(-1);
    background:url('assets/pa_tri_r.webp') center/contain no-repeat}
  .about-para{position:absolute;top:422px;right:-38px;width:130px;height:36px;transform:scaleX(-1);z-index:-1;
    background:url('assets/pa_para.webp') center/contain no-repeat}
  .about-lens{display:block;position:absolute;left:50%;bottom:-31px;
    transform:translateX(calc(-50% - 112px)) scaleX(-1);width:112px;height:50px;z-index:-1;
    background:url('assets/pattern04.webp') center/contain no-repeat}
  .strengths{padding-top:108px;background:transparent}
  .strengths::before{top:84px;width:100%;transform:translate(-50%,-57px);background-image:url('assets/3points_bg.webp')}
  .strengths .en-head{transform:translateY(-40px)}
  .spark-img{display:none}
  .strength-bub-pc{display:none}
  .strength-bub-img.strength-bub-sp{display:block;width:100%;height:auto}
  .bubble-strength{max-width:287px;margin:0 auto 30px}
  .strengths .bubble-strength.reveal{transform:translateY(-52px)}
  .strengths .wrap{padding-left:0;padding-right:0}
  .str-grid{gap:20px;max-width:348px;transform:translateY(-63px)}
  .str-card{background:none;box-shadow:none;border-radius:0;overflow:visible}
  .str-card .str-card-pc{display:none}
  .str-card .str-card-sp{display:block;width:100%;height:auto}
  .str-card-text{top:60.5%;left:9%;right:9%;font-size:16px;line-height:1.7;font-weight:400}
  /* 1・2枚目は画像を延ばした分、本文開始を上げて下に余白を確保（3枚目は据え置き） */
  .strengths .str-card:nth-child(1) .str-card-text,.strengths .str-card:nth-child(2) .str-card-text{top:57.5%}
  .about-grid{margin-left:auto;margin-right:auto;max-width:none;justify-items:center}
  .about-cardwrap{width:100%}
  /* SP限定：Voiceタイトル画像の上切れ修正（PC用の margin-top:-57px ＋ .voice overflow:hidden で上が切れていた） */
  .voice .en-head{margin-top:0}
  /* SP限定：Voice上の余白を1/3詰め（36px→5px・本文が31px上がる） */
  .voice{padding-top:5px}
  /* SP限定：Voice装飾ドットを一回り大きく＋紹介文の下2行あたりへ（高さ依存しないpx基準。本文を31px上げたぶん345→314に追従） */
  .vc-dots{width:84px;left:12%;top:241px;transform:translate(-20px,-50%)}
  /* SP限定：楕円(pattern04)を一回り大きく＋「受講生の変化」と「看護師から」の間へ（本文を31px上げたぶん96→65pxに追従） */
  .vc-petal{width:150px;top:65px;transform:translate(calc(-33% + 38px),-50%)}
  .voice .lead{font-weight:400;-webkit-text-stroke:0}
  .voice .lead .pink{font-weight:900;-webkit-text-stroke:0.6px currentColor}
  .voice-intro{line-height:1.7;font-weight:400;font-size:15px;margin-bottom:25px}
  /* SP限定：ボタン右上に三角（重なり時はボタンを前面に） */
  .center-btn .btn-wrap .btn-img-link{z-index:1}
  /* SP限定：受講生ボタンをSP版（白フチ）に差し替え */
  .center-btn .btn-img-link .btn-pc{display:none}
  .center-btn .btn-img-link .btn-sp{display:block}
  /* SP限定：FAQ「よくある質問をすべて見る」ボタンをVoice側と同サイズに */
  .faq-allbtn{width:auto;max-width:none}
  .faq-allbtn img{height:54px;width:auto;display:block}
  .center-btn .btn-tri{display:block;position:absolute;top:0;right:0;width:52px;height:60px;
    transform:translate(70%,-87%);z-index:0;pointer-events:none;
    background:url('assets/pa_tri_r.webp') center/contain no-repeat}
  /* Voice 受講生カード：SPは横スワイプのスライダー（scrollLeft + rAFトゥイーン）＋ドット */
  .voice-grid{display:flex;grid-template-columns:none;max-width:none;gap:14px;
    overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;
    margin:0 -18px;padding:0 0 2px;scroll-behavior:auto;touch-action:pan-y}
  .voice-grid::-webkit-scrollbar{display:none}
  .voice .vc-card{flex:0 0 78%}
  .voice-grid .vc-card.reveal{opacity:1;transform:none;animation:none}
  .vc-pager{display:flex}
  .voice-strip{grid-template-columns:repeat(2,1fr)}
  /* SP限定：受講生写真4枚の上余白を2/3詰め（140px→47px） */
  .voice .voice-strip{margin-top:47px}
  /* SP限定：平行四辺形をボタン左下にちょっと被せる（写真エリア基準。上余白を93px詰めた分 top を補正） */
  .voice-strip img.vc-strip-para{left:-32px;top:-65px;transform:none}
  /* SP限定：写真エリアの装飾 — 右下三角は撤去、右上にドット、左下にレンズ */
  .voice-strip img.vc-strip-tri{display:none}
  .voice-strip img.vc-strip-dots{display:block;position:absolute;right:-6px;top:-30px;width:62px;height:auto;transform:none;z-index:2;pointer-events:none}
  .voice-strip img.vc-strip-lens{display:block;position:absolute;left:-98px;bottom:-52px;width:192px;height:auto;transform:none;z-index:0;pointer-events:none}
  /* SP限定：Career Path 上の余白を1cm詰め（72px→34px） */
  .career{padding-top:34px}
  /* SP限定：Career Path カードをSP用画像に差替＋空きスペースへ本文オーバーレイ */
  .cp-card .cp-img-pc{display:none}
  .cp-card .cp-img-sp{display:block;width:100%;height:auto;border-radius:20px}
  .cp-card .cp-body{display:none}
  .cp-card .cp-body-sp{display:block;position:absolute;left:8%;right:8%;top:59%;margin:0;
    color:#fff;font-family:var(--gothic);font-size:17px;line-height:1.8;font-weight:400;
    z-index:2;text-align:justify;letter-spacing:.01em}
  /* SP限定：Career リード「『働き方』を自分らしく選べる」— ピンクのみ太字＋句点非表示（PCは維持） */
  .career .lead{font-weight:400}
  .career .lead .pink{font-weight:900;-webkit-text-stroke:0.6px currentColor}
  .fc-card{min-width:0;width:100%;max-width:340px}
  .cp-body{grid-template-columns:1fr;gap:16px}
  .cp-img{width:100%;height:160px}
  .cp-bg-word{font-size:30px;right:24px;bottom:26px}
  .footer-inner{grid-template-columns:1fr;gap:26px}
  .about-card{padding:34px 24px}
  .sup-card{padding:44px 26px}
  /* SP限定：Supervisorタイトルを上のStrengthsピンクフレーム下端ギリギリまで引き上げ（タイトルのみ・overflowで切れないようvisibleに） */
  .supervisor{overflow:visible}
  .supervisor .en-head{transform:translateY(-100px);position:relative}
  /* SP限定：タイトル左上に三角・右下に平行四辺形 */
  .supervisor .sup-tdeco{display:block;position:absolute;top:50%}
  .supervisor .sup-tdeco-tri{width:30px;height:34px;left:50%;transform:translate(calc(-50% - 148px),calc(-50% - 30px));
    background:url('assets/pa_tri_l.webp') center/contain no-repeat}
  .supervisor .en-head-img{position:relative;z-index:1}
  .supervisor .sup-tdeco-para{width:162px;height:72px;left:50%;z-index:0;transform:translate(calc(-50% + 78px),calc(-50% + 28px));
    background:url('assets/pa_para.webp') center/contain no-repeat}
  /* SP限定：Supervisorはタイトルのみ残し、カード（装飾・枠・本文・写真）を全撤去 */
  .supervisor .sup-card{display:none}
  .supervisor .sup-sp-box{display:block;position:relative;width:100%;max-width:none;margin:0 auto;transform:translateY(-81px);container-type:inline-size}
  .supervisor .sup-frame-sp{display:block;width:100%;height:auto}
  .supervisor .sup-body-sp{display:block;position:absolute;left:50%;top:100.5cqw;transform:translateX(-50%);z-index:1;
    width:88%;font-family:var(--gothic);color:var(--body);font-weight:400;
    font-size:16px;line-height:1.7;text-align:left;margin:0}
  .supervisor .sup-body-sp span{display:block;margin-bottom:1em}
  .supervisor .sup-body-sp span:last-child{margin-bottom:0}
  /* SP限定：テキスト下に左ドット・右ドーム */
  .supervisor .sup-bdeco{display:block;position:absolute;bottom:1.5%}
  .supervisor .sup-bdeco-dots{left:8%;top:117cqw;bottom:auto;width:84px;height:32px;z-index:0;transform:translateX(-57px);
    background:url('assets/pa_dots.webp') center/contain no-repeat}
  .supervisor .sup-bdeco-dome{right:8%;width:176px;height:72px;transform:translate(38px,47px);
    background:url('assets/pa_dome.webp') center/contain no-repeat}
  .supervisor .sup-body-sp u{color:var(--blue);text-decoration-color:var(--blue);text-underline-offset:4px}
  .supervisor{padding-bottom:0;padding-left:12px;padding-right:12px}
  /* SP限定：Instructorはタイトルとボタンを残し、PC用カード・装飾を全撤去。BG06_sp=パネル背景／BG05_sp=白カード／本文は白カード内にオーバーレイ */
  .instructor{padding:24px 0 56px;overflow:visible}
  .instructor .ins-card{display:none}
  .instructor .ins-deco,.instructor .ins-dome{display:none}
  .instructor .ins-panel{aspect-ratio:auto;width:100%;margin:-32px auto 0;
    background:url('assets/BG06_sp.webp') top center/100% 100% no-repeat;
    padding:40px 14px 80px}
  .instructor .en-head{margin-bottom:30px}
  .instructor .en-head-img{height:38px}
  .instructor .ins-sp-box{display:block;position:relative;width:100%;max-width:340px;margin:0 auto;container-type:inline-size}
  .instructor .ins-card-sp{display:block;width:100%;height:auto}
  .instructor .ins-body-sp{position:absolute;left:50%;top:75cqw;transform:translateX(-50%);z-index:1;
    width:86%;margin:0;text-align:center;font-family:var(--gothic);color:var(--body);font-weight:400;
    font-size:16px;line-height:1.8}
  .instructor .ins-body-sp span{display:block}
  .instructor .ins-body-sp .quote{color:var(--pink);font-weight:700;font-size:1.25em;line-height:1.65;margin:.85em 0}
  .instructor .ins-btn-sp{position:absolute;left:50%;bottom:0;transform:translate(-50%,38%);z-index:2;
    display:block;width:72%;max-width:270px;border-radius:999px;overflow:hidden}
  .instructor .ins-btn-sp img{display:block;width:100%;height:auto}
  .instructor .ins-sp-tri{display:block;position:absolute;left:5%;bottom:-58px;width:88px;height:77px;z-index:1;
    background:url('assets/pa_tri_l.webp') center/contain no-repeat;pointer-events:none}
  /* SP限定：FAQをアコーディオンのCSSカードへ（画像フレームは非表示、Q番号はカウンター、回答は開閉） */
  .faq{padding-bottom:8px}
  .faq-list{counter-reset:faq;margin-top:22px}
  .faq-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);container-type:normal}
  .faq-card .faq-img{display:none}
  .faq-card .faq-q-text{position:static;transform:none;left:auto;top:auto;cursor:pointer;user-select:none;
    background:var(--pink);color:#fff;display:flex;align-items:baseline;justify-content:flex-start;
    gap:10px;text-align:left;padding:15px 18px;font-family:var(--gothic);font-weight:700;
    font-size:16px;line-height:1.5;letter-spacing:.02em}
  .faq-card .faq-q-text::before{content:"Q";
    font-family:var(--serif);font-weight:800;font-size:18px;flex:none;line-height:1}
  .faq-card .faq-q-text::after{content:"＋";margin-left:auto;flex:none;align-self:center;
    font-family:var(--gothic);font-weight:400;font-size:22px;line-height:1;transition:transform .3s}
  .faq-card.open .faq-q-text::after{content:"−"}
  .faq-card .faq-a-text{position:static;transform:none;left:auto;right:auto;top:auto;
    background:#fff7f9;color:var(--ink2);max-height:0;overflow:hidden;
    padding:0 18px;font-family:var(--gothic);font-size:15px;line-height:1.9;font-weight:500;
    transition:max-height .4s ease,padding .4s ease}
  .faq-card.open .faq-a-text{max-height:500px;padding:16px 18px}
  .faq-a p{padding:20px 22px 24px 24px}
  .fc-btn{flex-direction:column;gap:14px;padding:24px 28px;border-radius:28px}
  .media-play{width:70px;height:70px}
  /* SP限定：Media 背景を SP用フレームに差し替え */
  .media{padding-left:8px;padding-right:8px;margin-top:-78px}
  .media-panel{aspect-ratio:750/1097;background-image:url('assets/BG07_sp.webp')}
  /* SP限定：タイトル上の余白を1/2に */
  .media-head{top:11.75%}
  .media-sub{top:20.75%}
  .media-label{top:31.15%;font-size:13px;gap:6px;flex-wrap:wrap;line-height:1.4;row-gap:2px}
  .media-label small{font-size:11px;width:100%;text-align:center}
  .media-tv-icon{width:18px}
  .media-frame{display:block;left:4.67%;top:39.93%;width:90.53%;height:34.82%}
  /* SP限定：Accessカードを1cm引き上げ／矢印非表示／Voice型ループ（78%peek） */
  .access .en-head{margin-bottom:64px}
  .access-slider{margin-top:19px}
  .access-slider .ac-nav{display:none !important}
  .ac-track{scroll-snap-type:none;scroll-behavior:auto;gap:14px}
  .ac-col{flex:0 0 78%;scroll-snap-align:none}
  /* SP限定：Accessカード — SP用台紙+写真に差替、PC同様のレイアウト（ラベル・写真・住所・Mapボタン） */
  .ac-card-img{display:none}
  .ac-card-img-sp{display:block;width:100%;height:auto;aspect-ratio:1260/1892;object-fit:cover;object-position:top;border-radius:16px}
  .ac-label{display:block;top:13.75%;left:6.5%;font-size:14px;color:var(--ink);z-index:2}
  .ac-photo{display:none}
  .ac-photo-sp{display:block;position:absolute;left:6.5%;top:22%;width:87%;
    aspect-ratio:1124/606;object-fit:cover;border-radius:16px;
    box-shadow:0 10px 26px rgba(150,130,175,.20);z-index:1}
  .ac-addr{top:60%;left:8.5%;right:6%;gap:.8em;z-index:1}
  .ac-line{gap:8px;font-size:14px;line-height:1.7}
  .ac-ico{width:18px;margin-top:2px}
  .ac-map-btn{width:min(82%,320px);margin-top:-24px;filter:none}
  .ac-map-btn .map-pc{display:none}
  .ac-map-btn .map-sp{display:block}
  /* SP限定：Access上部ドーム装飾（Access移動に追随） */
  .ac-dome{transform:translate(38px,-100%)}
  /* SP限定：Accessセクション全体を1.5cm引き上げ */
  .access{margin-top:-85px;padding-left:0;padding-right:0}
  /* SP限定：左に見切れる花びら装飾を画面内へ */
  .ac-petal{transform:translate(calc(-100% - 76px),calc(-33% + 24px));width:96px}
  /* SP限定：右下の三角を1cm上へ */
  .ac-tri2{transform:translate(calc(-100% + 12px),calc(-200% - 38px))}
  /* SP限定：カード背面に隠れる左三角を削除 */
  .ac-tri{display:none}
  /* SP限定：Access下にはみ出してFAQに被る平行四辺形装飾を非表示 */
  .ac-para{display:block;position:absolute;right:-8%;top:auto;left:auto;
    width:140px;transform:scaleX(-1);z-index:0;pointer-events:none;bottom:-10px}
  /* SP限定：Final CTA 背景をSP用画像に差替（左右余白なし・角丸なし） */
  .finalcta{padding-left:0;padding-right:0}
  .finalcta .wrap{background:url('assets/BG06_sp.webp') top center/100% 100% no-repeat #fff5ea;max-width:none}
  /* SP限定：Final CTA見出しのマーカーを2行それぞれに／画像は動かさず見出しだけ半行上に */
  .fc-head{background:none;display:inline-block;line-height:1.6;margin-top:-.4em}
  .fc-head .grad{background:linear-gradient(90deg,#9b7fd4 0%,#d36fa3 55%,#ef6f93 100%),
    linear-gradient(transparent 82%,#fdf0a8 82%,#fdf0a8 98%,transparent 98%);
    -webkit-background-clip:text,border-box;background-clip:text,border-box;
    -webkit-text-fill-color:transparent;color:transparent;
    -webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 2px}
  /* SP限定：改行ヘルパー */
  .sp-br{display:inline}
  .pc-br{display:none}
  .sp-hide{display:none}
  .sp-gap{display:block;height:.5em}
  /* SP限定：3つの不安カードを1枚画像に差替 */
  .fc-cards{display:none}
  .finalcta .fc-cards-sp{display:block;width:min(100%,360px);height:auto;margin:-24px auto 0}
  /* SP限定：Final CTA本文を中央寄せ／画像との間に余白を追加 */
  .fc-body{text-align:center;font-size:16px;margin-top:28px}
  .fc-body2{text-align:center;font-size:18px}
  /* SP限定：下向き三角の位置＋ボタン位置を下げる */
  .fc-down{margin-top:8px}
  .fc-down img{width:32px}
  /* SP限定：CTAボタンをSP用画像に差替＋少し小さめ＋上詰め */
  .fc-btn-img{width:min(78%,320px);margin-top:-54px}
  /* SP限定：SNS背景色／タイトル・サブを1cm上へ */
  .sns{background:#fff5f7;padding-top:48px}
  /* SP限定：フッターCTA（お問い合わせ）をフッター内2つ目のnav（FAQ）の下に／nav2つを横並び／SNSアイコンはCTAの下 */
  .sp-inquiry-btn{display:none}
  .footer-inner{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;
    grid-template-areas:"brand brand" "nav1 nav2" "cta cta" "social social"}
  .footer-col{display:contents}
  .footer-brand{grid-area:brand}
  .footer-social{grid-area:social;margin-top:4px}
  .footer-inner > .footer-col > .footer-nav{grid-area:nav1}
  .footer-inner > nav.footer-nav{grid-area:nav2}
  .footer-cta{display:block;grid-area:cta;width:min(78%,300px);margin:16px 0 0}
  /* SP限定：フッター全体を左寄せ */
  .footer{text-align:left;padding-top:44px}
  .footer-inner{padding-left:16px;padding-right:16px}
  .footer-brand,.footer-col,.footer-inner > nav.footer-nav,
  .footer-inner > .footer-col:nth-child(2){align-items:flex-start;transform:none}
  .footer-logo{justify-content:center;margin-top:0;margin-bottom:16px}
  .footer-nav{align-items:flex-start;gap:8px}
  .footer-nav a{font-size:13px;padding-left:14px}
  .footer-nav a::before{width:5px;height:5px}
  .footer-social{justify-content:flex-start}
  .footer-social a{width:44px;height:44px}
  .footer-line{font-size:12px}
  .footer-legal{justify-content:flex-start;flex-direction:row;flex-wrap:wrap;padding-left:24px;padding-right:24px;gap:6px 16px;white-space:normal}
  /* SP限定：コピーライト帯を画面幅いっぱいに */
  .footer{padding-left:0;padding-right:0}
  .footer-inner,.footer-legal{padding-left:40px;padding-right:40px}
  .copyright{margin-left:0;margin-right:0;font-size:11px}
  /* SP限定：SNSサムネを元の横長に戻す／サブテキストとの間を詰める */
  .sns-img{height:auto;object-fit:initial}
  .sns-lead{margin-bottom:20px}
  .fc-btn-img .fc-btn-pc{display:none}
  .fc-btn-img .fc-btn-sp{display:block;width:100%;height:auto}
  .media-label small{font-size:11px;width:100%;text-align:center}
  .media-tv-icon{width:18px}
}
