@charset "UTF-8";
/* ==============================
   メインビジュアル（背景画像スライド＋左端の縦スライドバー）
   ============================== */
.p-hero{
  position:relative;overflow:hidden;overflow:clip;
  background:var(--brand-grad);
  --hero-accent:var(--orange);--hero-accent-glow:rgba(240,140,46,.85);
}
.p-hero__media{position:absolute;inset:0;overflow:hidden}
/* ==============================
   ステージ：背景全面の横スライド
   ============================== */
.p-hero__stage{position:absolute;inset:0;z-index:1;overflow:hidden}
.p-hero__slide{position:absolute;inset:0;transform:translateX(100%)}
.p-hero__slide.is-active,
.p-hero__slide.is-out{transition:transform 1.1s cubic-bezier(.6,.05,.15,1)}
.p-hero__slide.is-active{transform:translateX(0);z-index:2}
.p-hero__slide.is-out{transform:translateX(-100%);z-index:1}
.p-hero__slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* 上：ヘッダー可読用の黒フェード */
.p-hero__shade-top{
  position:absolute;inset:0 0 auto 0;height:min(420px,52%);z-index:3;pointer-events:none;
  background:linear-gradient(rgba(10,30,24,.5) 0%,rgba(10,30,24,.34) 45%,rgba(10,30,24,0) 100%);
}
.p-hero__shade-bottom{display:none} /* KVの下部キャッチに被るため非表示 */
/* 装飾（斜線サークル・ドット） */
.p-hero__deco-circle{
  position:absolute;left:-70px;bottom:16%;width:200px;height:200px;border-radius:50%;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 3px,transparent 3px 10px);
  z-index:3;opacity:.5;pointer-events:none;
}
.p-hero__deco-dots{
  position:absolute;right:4%;top:24%;width:160px;height:160px;z-index:3;opacity:.5;pointer-events:none;
  background:radial-gradient(rgba(255,255,255,.6) 2px,transparent 2.6px);
  background-size:16px 16px;
}
.p-hero__copy{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
/* ==== ナビ：MV左端に縦バー（8本想定・本数が増えても崩れない） ==== */
.p-hero__nav{position:absolute;left:0;top:0;bottom:0;width:4px;z-index:4;display:flex;flex-direction:column;background:var(--brand-grad-v)}
.p-hero__navitem{flex:1;min-height:0;padding:0;border:0;cursor:pointer;position:relative;background:transparent;transition:background .3s}
.p-hero__navitem.is-current{background:var(--orange)}
.p-hero__navitem::before{content:"";position:absolute;inset:0 -12px 0 0}
#mask0_18_28{mask-type:alpha}
@media (max-width: 820px) {
	.l-drawer__deco{opacity:.15}
    .p-symbol__ph, .p-symbol--rev .p-symbol__ph {
        width: min(240px, 58%);
    }
}
/* ==== モーション配慮：自動送りを止め、バーは点灯のみ ==== */
@media (prefers-reduced-motion:reduce){
  .p-hero__slide.is-active,.p-hero__slide.is-out{transition:none}
  .p-hero__navitem.is-current::after{animation:none;height:100%}
}
/* フロートOCカード */
.p-hero__oc{
  position:absolute;right:26px;bottom:26px;z-index:90;
  width:min(330px,84vw);border-radius:18px;
  background:linear-gradient(135deg,#f7a94f,var(--orange) 60%,var(--orange-deep));
  color:#fff;box-shadow:0 8px 24px rgba(160,80,0,.26);
  padding:22px 44px 22px 22px;
  display:flex;align-items:center;gap:16px;
  transition:.3s;
}
.p-hero__oc.is-hidden{opacity:0;visibility:hidden;transform:translateY(16px)}
.p-hero__oc-icon{flex:none;width:clamp(34px,9vw,44px);display:flex;align-items:center;justify-content:center}
.p-hero__oc-icon svg,.p-hero__oc-icon img{width:100%;height:auto;display:block;fill:currentColor}
.p-hero__oc-body{min-width:0}
.p-hero__oc small{
  display:block;font-size:clamp(10px,2.4vw,12px);font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;margin-bottom:5px;
}
.p-hero__oc strong{
  display:block;font-size:clamp(15px,3.6vw,18px);font-weight:800;line-height:1.5;
}
.p-hero__oc-close{
  position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;
  border:none;background:rgba(255,255,255,.9);color:var(--ink);font-size:13px;
  cursor:pointer;line-height:1;
}
.p-hero__oc-label{display:none}
@media (max-width:640px){
  .p-hero__oc{display:none}
}
/* ==== MV縦幅 ==== */
/* svh 非対応の iOS 15.4 未満向けに、先に vh を指定 */
.p-firstview{position:relative;display:flex;flex-direction:column;height:100vh;height:100svh;min-height:640px}
.p-firstview .p-hero{flex:1;height:auto;min-height:0}
.p-firstview .p-topics{flex:none}
@media (max-width:640px){
  .p-firstview{
    height:calc(100vh - 100px);
    height:calc(100svh - 100px);
    min-height:0;
    margin-top:56px;
  }
  .p-firstview .p-hero{flex:1;height:auto;min-height:0}
}
/* PCは文字を中央揃え */
.c-note--center{text-align:center}
/* ==============================
   緑帯（MVから連続／Latest News）
   ============================== */
.p-topics{position:absolute;left:0;bottom:0;z-index:5;width:min(560px,calc(100% - 380px))}
.p-topics__news small{
  display:block;font-size:11px;font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.9);margin-bottom:6px;
}
.p-topics__news span{display:block;font-size:18px;font-weight:600;line-height:1.6}
.p-topics__news em{
  display:block;font-style:normal;font-size:12px;
  color:rgba(255,255,255,.85);margin-top:5px;
  font-variant-numeric:tabular-nums;
}
.p-topics__news i{display:none}
.p-topics__news::after{
  content:"→";
  position:absolute;right:22px;top:50%;transform:translateY(-50%);
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;
  border: 1px solid #fff;color:#fff;
  font-size:15px;font-weight:700;line-height:34px;
  transition:transform .25s;
}
.p-topics__news:hover::after{transform:translateY(-50%) translateX(4px)}

@media (max-width:1024px){
  .p-topics{width:min(400px,calc(100% - 40px))}
}
@media (max-width:640px){
  .p-topics{position:static;width:100%}
  .p-topics__news{padding:16px 62px 18px 20px;border-radius:0}
  .p-topics__news small{font-size:10px;margin-bottom:4px}
  .p-topics__news span{font-size:13.5px}
  .p-topics__news em{font-size:11px;margin-top:4px}
  .p-topics__news::after{right:16px;width:30px;height:30px;font-size:13px}
}
/* ==============================
   Topicsスライダー（独立セクション・白背景）
   ============================== */
.p-tslider{padding:76px 0 84px}
.p-tslider__head{margin-bottom:30px}
.p-tslider__title{display:flex;align-items:baseline;gap:14px}
.p-tslider__title .p-en{font-size:clamp(30px,3.4vw,42px);font-weight:900;letter-spacing:.02em;line-height:1;color:var(--ink)}
.p-tslider__title .p-jp{font-size:13px;font-weight:700;color:var(--green)}
/* カード：画像上部＋薄グレー帯に「› タイトル」＋サブ */
.p-tslider__viewport{overflow:hidden;padding:22px 4px 26px}
.p-tslider__track{display:flex;gap:24px;transition:transform .3s ease;will-change:transform;touch-action:pan-y}
.p-tslider__card{
  --s:1;
  flex:0 0 198px;
	display:flex;
	flex-direction:column; 
  background:#fff;border-radius:16px;overflow:hidden;
  box-shadow:0 6px 24px rgba(28,43,40,.10);transition:.25s;
  transform:scale(var(--s));
}
.p-tslider__card:hover{transform:scale(var(--s)) translateY(-5px);box-shadow:0 12px 32px rgba(28,43,40,.16)}
/* 5枚表示：左が大きく、右へ行くほど小さく */
.p-tslider__card.is-slot-0{--s:1.12;z-index:2;transform-origin:left center}
.p-tslider__card.is-slot-1{--s:1.03}
.p-tslider__card.is-slot-2{--s:.96}
.p-tslider__card.is-slot-3{--s:.90}
.p-tslider__card.is-slot-4{--s:.84;transform-origin:right center}
.p-tslider__thumb{position:relative;aspect-ratio:1/1;background:#f7f9f8}
.p-tslider__thumb .c-ph{position:absolute;inset:0}
.p-tslider__body{background:#f2f6f4;padding:14px 16px 18px;flex:1;}
.p-tslider__name{display:flex;align-items:baseline;gap:8px;font-size:15px;font-weight:700;color:var(--ink)}
.p-tslider__name::before{content:"\203A";color:var(--green);font-weight:900;flex:none}
.p-tslider__card:hover .p-tslider__name{color:var(--green-dark)}
.p-tslider__sub{font-size:11.5px;color:var(--ink-soft);margin-top:5px;padding-left:18px;line-height:1.6}
/* 前後ボタン（下部中央の楕円アウトライン） */
.p-tslider__btns{display:flex;gap:14px;justify-content:center;margin-top:26px}
.p-tslider__btns button{
  width:76px;height:44px;border-radius:999px;cursor:pointer;
  border:1.5px solid var(--green);background:#fff;color:var(--green);
  font-size:16px;display:flex;align-items:center;justify-content:center;
  transition:.2s;font-family:inherit;
}
.p-tslider__btns button:hover{background:var(--green);color:#fff}

/* ==============================
   バナースライダー（左＝選択中を大きく／右＝小サムネ一覧）
   ============================== */
.p-banner__inner{display:grid;grid-template-columns:1.05fr 1fr;gap:16px;align-items:stretch}
.p-banner__main{
  position:relative;border-radius:14px;overflow:hidden;
  box-shadow:var(--shadow);
}
.p-banner__main::before{content:"";display:block;padding-top:64.2857%}
.p-banner__main>a{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity .5s;pointer-events:none}
.p-banner__main>a.is-active{opacity:1;pointer-events:auto}
.p-banner__main>a img{width:100%;height:100%;object-fit:cover;display:block}
.p-banner__thumbs{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:12px}
.p-banner__thumbs button{
  position:relative;border:2px solid transparent;border-radius:10px;overflow:hidden;
  cursor:pointer;background:none;padding:0;transition:.2s;opacity:.75;
}
.p-banner__thumbs button img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-banner__thumbs button:hover{opacity:1}
.p-banner__thumbs button.is-active{border-color:var(--green);opacity:1;box-shadow:var(--shadow)}
.p-f1__panel{position:relative;overflow:hidden;margin-left:max(20px,4vw);background:var(--brand-grad);padding:clamp(48px,6vw,88px) 0}
@media (min-width: 1280px){ 
.p-f1__panel-grid{
  max-width:1240px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,860px);
  gap:clamp(28px,3.5vw,48px);align-items:center;
}
}
/* パネル内左側：白文字の見出しブロック */
.p-f1__panel-head{color:#fff;border-left:6px solid rgba(255,255,255,.85);padding-left:20px;}
@media (max-width: 1279px){.p-f1__panel-head{margin-bottom: 64px;}}
.p-f1__panel-head .c-ftitle .c-num{color:#ffe8c2}
.p-f1__panel-head .c-ftitle .p-en{color:#fff}
.p-f1__panel-head .c-ftitle .p-jp{color:#eaf6ec}
.p-f1__catch{font-size:clamp(21px,2.4vw,28px);font-weight:800;margin-top:24px;line-height:1.5}
.p-f1__panel-head .p-f1__lead{font-size:14px;color:#f2faf4;margin-top:12px}
@media (min-width: 1025px){ .p-f1__panel-cta{margin-top:32px;} }
.p-f1__panel-cta .p-f2__btn{white-space:nowrap}
.p-f1__panel-cta--sp{display:none}
.p-f1__inner{min-width:0}
/* パネル内：実績写真2枚（白フレーム付き） */
.p-f1__gakka{display:grid;gap:12px;background:#fff;padding:12px}
.p-f1__gakka--stats{grid-template-columns:1fr 1fr;gap:10px}
.p-f1__gakka--stats .p-license__item{aspect-ratio:4/5;min-height:300px}
/* 学科写真の見せる位置（1つ目＝救急救命、2つ目＝理学療法） */
.p-f1__gakka--stats .p-license__item:nth-child(1) img{object-position:30% 50%}
.p-f1__gakka--stats .p-license__item:nth-child(2) img{object-position:64% 50%}
/* リンク化したパネルはホバーで暗幕を少し明るく */
a.p-license__item::after{transition:background .3s}
a.p-license__item:hover::after{background:rgba(18,38,30,.28)}
/* 学科パネルの重ねテキスト（学科名＋キャッチ） */
.p-f1__dept{position:absolute;left:8%;bottom:8%;z-index:2;color:#fff}
.p-f1__dept .p-name{font-size:clamp(22px,2.4vw,30px);font-weight:800;letter-spacing:.04em}
.p-f1__dept .p-copy{margin-top:8px;font-size:clamp(13.5px,1.4vw,16px);font-weight:600}

/* Features 02 資格・就職（左の緑バー＋右寄せ写真2枚に％オーバーレイ） */
.p-license{padding:64px 0 96px}
.p-license__head{margin-bottom:36px;border-left:7px solid #69b56e;padding-left:20px}
.p-license__band{display:grid;grid-template-columns:clamp(28px,5vw,80px) 1fr;gap:0}
.p-license__bar{background:#69b56e}
.p-license__panels{
  margin-left:clamp(24px,12vw,220px);
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.p-license__item{position:relative;overflow:hidden;aspect-ratio:10/8;min-height:340px}
.p-license__item .c-ph{position:absolute;inset:0}
.p-license__item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-license__item::after{content:"";position:absolute;inset:0;background:rgba(18,38,30,.45);z-index:1}
.p-license__stat{position:absolute;left:8%;bottom:9%;z-index:2;color:#fff}
.p-license__stat .c-label{font-size:15px;font-weight:800}
.p-license__stat .c-num{display:flex;align-items:baseline;gap:8px;font-weight:900;line-height:1.05;font-variant-numeric:tabular-nums}
.p-license__stat .c-num b{font-size:clamp(60px,7.5vw,104px)}
.p-license__stat .c-num span{font-size:24px;font-weight:900}
.p-nanao__band{position:relative;overflow:hidden;background:var(--brand-grad-rev);padding:clamp(14px,2vw,24px);margin-left:max(20px,4vw);overflow:clip;}
.p-nanao__band-inner{
  display:grid;grid-template-columns:1.35fr 1fr;
  gap:clamp(24px,3.5vw,56px);align-items:center;
  max-width:1280px;margin:0 auto;
}

/* 写真スライダー（矢印＋ドット付き） */
.p-nanao__slider{
  position:relative;border-radius:clamp(20px,3vw,40px);overflow:hidden;
  aspect-ratio:16/10;min-height:260px;
}
.p-nanao__slider>.c-ph{position:absolute;inset:0;font-size:13px;opacity:0;transition:opacity .6s}
.p-nanao__slider>.c-ph.is-active{opacity:1}
.p-nanao__slider-btn{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(255,255,255,.92);color:var(--green-dark);font-size:15px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow);transition:.2s;font-family:inherit;
}
.p-nanao__slider-btn:hover{background:#fff;transform:translateY(-50%) scale(1.08)}
.p-nanao__slider-btn--prev{left:14px}
.p-nanao__slider-btn--next{right:14px}
.p-nanao__slider-dots{
  position:absolute;bottom:14px;left:0;right:0;z-index:3;
  display:flex;gap:8px;justify-content:center;
}
.p-nanao__slider-dots span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);transition:.2s}
.p-nanao__slider-dots span.is-active{background:#fff}
.p-nanao__band-text{color:#fff;padding:12px 8px}
.p-nanao__band-text .c-ftitle .c-num{color:#ffe8c2}
.p-nanao__band-text .c-ftitle .p-en{color:#fff}
.p-nanao__band-text .c-ftitle .p-jp{color:#eaf6ec}
.p-nanao__lead{font-size:14.5px;color:#f2faf4;margin-top:16px}
.p-nanao__cta{margin-top:26px}
.p-nanao__cta .p-f2__btn{white-space:nowrap}
.p-nanao__cta--sp{display:none}
.p-nanao__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.p-nanao__card .c-ph{aspect-ratio:4/3;border-radius:var(--radius)}
.p-nanao__card p{margin-top:10px;font-size:14px;font-weight:700}

/* Features 03 学科紹介（中央見出し＋大型ボタン＋浮遊写真） */
.p-f2{position:relative;padding:120px 0;background:var(--mist);overflow:clip}
.p-f2__inner{position:relative;z-index:2;text-align:center;max-width:620px;margin:0 auto;padding:0 24px}
.p-f2__catch{font-size:clamp(22px,3vw,32px);font-weight:800;margin:26px 0 14px}
.p-f2__read{font-size:14.5px;color:var(--ink-soft)}
.p-f2__btn{
  display:inline-flex;align-items:center;gap:20px;
  background:var(--ink);color:#fff;border-radius:999px;
  padding:16px 18px 16px 38px;font-size:16px;font-weight:700;transition:.25s;
}
.p-f2__btn:hover{background:var(--green-dark)}
.p-f2__btn .p-arrow{
  width:46px;height:46px;border-radius:50%;flex:none;
  background:linear-gradient(135deg,var(--brand-blue),var(--brand-mid) 55%,var(--brand-lime));
  display:flex;align-items:center;justify-content:center;font-size:15px;transition:.25s;
}
.p-f2__btn:hover .p-arrow{transform:translateX(5px)}
.p-f2__img{position:absolute;border-radius:20px;overflow:hidden;z-index:1;box-shadow:var(--shadow)}
.p-f2__img .c-ph{position:absolute;inset:0;font-size:11px}
.p-f2__img--1{left:3%;top:56px;width:min(220px,18vw);aspect-ratio:1}
.p-f2__img--2{right:3%;top:110px;width:min(260px,20vw);aspect-ratio:1}
.p-f2__img--3{left:11%;bottom:36px;width:min(170px,14vw);aspect-ratio:1}

.p-f3{position:relative;overflow:clip;padding:96px 0}
.p-f3__head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:32px;flex-wrap:wrap;margin-bottom:44px;
}
.p-f3__head>p{font-size:14.5px;color:var(--ink-soft);max-width:500px}
.p-f3__list{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.p-f3__item{border:none;background:none;padding:0;cursor:pointer;text-align:left;font-family:inherit}
.p-f3__thumb{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10}
.p-f3__thumb .c-ph{position:absolute;inset:0;transition:.4s}
.p-f3__item:hover .c-ph{transform:scale(1.04)}
.p-f3__yt{
  position:absolute;right:18px;bottom:18px;z-index:2;
  width:56px;height:56px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);
}
.p-f3__yt::after{
  content:"";display:block;margin-left:4px;
  border-style:solid;border-width:9px 0 9px 15px;
  border-color:transparent transparent transparent #e02f2f;
}
.p-f3__badge{
  position:absolute;left:18px;top:18px;z-index:2;
  width:88px;height:88px;border-radius:50%;background:var(--orange);color:#fff;
  display:flex;align-items:center;justify-content:center;
  writing-mode:vertical-rl;font-size:13.5px;font-weight:800;
  letter-spacing:.12em;line-height:1.5;box-shadow:var(--shadow);
}
.p-f3__item:nth-child(2) .p-f3__badge{background:var(--teal)}

/* ==============================
   オープンキャンパス
   ============================== */
.p-oc__inner{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
.p-oc__lead{font-size:14px;color:var(--ink-soft);margin-bottom:28px;text-align:center}
.p-oc__scroll{overflow-y:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding: 10px;}
.p-oc__scroll::-webkit-scrollbar{display:none}
.p-oc__list{display:grid;gap:14px}
.p-oc__nav{display:flex;justify-content:center;margin:14px 0}
.p-oc__nav--up{margin:0 0 14px;transform: rotate(270deg);}
.p-oc__nav--down{transform: rotate(-270deg);}
.p-oc__nav button{
  width:64px;height:64px;border-radius:999px;cursor:pointer;
  border:1.5px solid var(--orange);background:#fff;color:var(--orange);
  display:flex;align-items:center;justify-content:center;
  transition:.2s;font-family:inherit;
}
.p-oc__nav button span{display:block;transform:rotate(90deg) translateY(-0.15em);}
.p-oc__nav button:hover{background:var(--orange);color:#fff}
.p-oc__nav button:disabled{opacity:.35;pointer-events:none}
.p-oc__item{
  display:flex;align-items:center;gap:20px;background:#fff;border-radius:var(--radius);
  padding:18px 22px;box-shadow:var(--shadow);
}
.p-oc__date{
  flex:none;text-align:center;background:var(--orange);color:#fff;
  border-radius:12px;padding:10px 14px;line-height:1.25;min-width:74px;
}
.p-oc__date strong{display:block;font-size:22px;font-weight:900;font-variant-numeric:tabular-nums}
.p-oc__date span{font-size:11px;font-weight:700}
.p-oc__item h3{font-size:15px;font-weight:800}
.p-oc__item p{font-size:12px;color:var(--ink-soft)}
.p-oc__item--link{padding:0;transition:box-shadow .2s,transform .2s}
.p-oc__item--link:hover{box-shadow:0 14px 34px rgba(28,43,40,.18);transform:translateY(-2px)}
.p-oc__link{display:flex;align-items:center;gap:20px;padding:18px 22px;border-radius:inherit;color:inherit}
.p-oc__link:hover h3{color:var(--orange-deep)}
.p-oc__link:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.p-oc__ctas{display:grid;gap:12px;margin-top:28px}
.p-oc__ctas .c-btn{width:100%}
.p-oc__photo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.p-oc__photo .c-ph{border-radius:var(--radius);aspect-ratio:1/1}
.p-oc__photo .c-ph:first-child{grid-column:1/-1;aspect-ratio:16/8}

/* ==============================
   先輩の声
   ============================== */
.p-voice__label{margin:0 0 18px}
.p-voice__grid + .p-voice__label{margin-top:48px}
.p-voice__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.p-voice__card{
  background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
}
.p-voice__card--ems{--voice-c:#1d6a9c;--voice-grad:linear-gradient(135deg,var(--dept-ems1),var(--dept-ems2))}
.p-voice__card--pt{--voice-c:#2c7a3b;--voice-grad:linear-gradient(135deg,var(--dept-pt1),var(--dept-pt2))}
.p-voice__card{display:flex;transition:opacity .7s,transform .2s,box-shadow .2s}
.p-voice__card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(28,43,40,.18)}
.p-voice__link{display:grid;grid-template-columns:42% minmax(0,1fr);width:100%;color:inherit}
.p-voice__card .c-ph{min-height:220px}
.p-voice__card .c-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.c-ph .p-voice__tag{position:absolute;left:12px;top:12px;z-index:2;padding:.45em .9em;border-radius:999px;background:rgba(255,255,255,.94);color:var(--voice-c);font-size:12px;font-weight:800;letter-spacing:.14em;line-height:1;text-shadow:none}
.p-voice__body{display:flex;flex-direction:column;padding:22px 24px}
.p-voice__role{font-size:11px;font-weight:800;color:var(--orange);letter-spacing:.08em}
.p-voice__body h4{font-size:16px;font-weight:800;line-height:1.35;margin:6px 0 10px}
.p-voice__body p{font-size:13px;color:var(--ink-soft);margin-bottom:16px}
.p-voice__body h4 span,.p-voice__more span span{display:inline-block}
.p-voice__more span span:first-child{display:block} /* 学科名のあとで必ず改行（どの幅でも「〇〇学科の／在校生・卒業生の声を見る」） */
.p-voice__more{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line);font-size:14.5px;font-weight:800;line-height:1.5;color:var(--voice-c)}
.p-voice__more i{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--voice-grad);color:#fff;font-style:normal;transition:transform .2s}
.p-voice__card:hover .p-voice__more i{transform:translateX(4px)}

/* ==============================
   対象者別リンク
   ============================== */
.p-links__inner{
  display:grid;grid-template-columns:1fr minmax(280px,330px);
  gap:48px 56px;align-items:start;max-width:1080px;margin:0 auto;
}
.p-links__grid{display:grid;grid-template-columns:1fr 1fr;gap:52px 40px}
.p-links__banners{display:grid;gap:14px}
.p-links__banners--row{display:flex;gap:20px;justify-content:space-between;margin-top:50px;max-width:none}
.p-links__banners--row .p-links__banner{width:100%}
.p-links__banner{
  display:flex;align-items:center;gap:14px;
  border:1px solid #ddd;background:#fff;border-radius:6px;
  padding:12px 16px;min-height:74px;transition:.2s;
}
.p-links__banner:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.p-links__banner .p-icon{
  flex:none;width:44px;height:44px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;
}
.p-links__banner--ig .p-icon{background:radial-gradient(circle at 30% 110%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.p-links__banner--ig small{display:block;font-size:10.5px;color:var(--ink-soft)}
.p-links__banner--ig strong{font-size:15px}
.p-links__banner--staff{background:#dbe8d3;border-color:#c3d8b6}
.p-links__banner--staff .p-icon{background:var(--green-dark);border-radius:50%}
.p-links__banner--staff strong{font-size:16px;letter-spacing:.5em;color:var(--green-dark)}
.p-links__banner--loan small{display:block;font-size:11px;color:var(--ink-soft)}
.p-links__banner--loan strong{font-size:16px}
.p-links__banner--loan strong .p-b{color:#2b6f9c}
.p-links__banner--loan strong .p-g{color:var(--green)}
.p-links__banner--loan strong .p-o{color:var(--orange)}
.p-links__grid a{
  display:flex;align-items:baseline;gap:14px;
  font-size:clamp(17px,1.8vw,21px);font-weight:800;color:var(--ink);transition:.2s;
}
.p-links__grid a::before{content:"\203A";color:var(--green);font-weight:900;flex:none}
.p-links__grid a:hover{color:var(--green-dark);transform:translateX(4px)}

/* ==============================
   お知らせ
   ============================== */
.p-news__filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:36px}
.p-news__filter button{
  border:1.5px solid var(--line);background:#fff;border-radius:999px;
  padding:.5em 1.4em;font-size:13px;font-weight:700;color:var(--ink-soft);
  cursor:pointer;transition:.2s;font-family:inherit;
}
.p-news__filter button:hover{border-color:var(--green);color:var(--green)}
.p-news__filter button.is-active{background:var(--green);border-color:var(--green);color:#fff}
.p-news__list{max-width:860px;margin:0 auto;display:grid;gap:2px}
.p-news__item{
  display:flex;align-items:center;gap:18px;padding:18px 10px;
  border-bottom:1px solid var(--line);transition:.2s;
}
.p-news__item:hover{background:var(--mist)}
.p-news__item time{flex:none;font-size:13px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.p-news__tag{
  flex:none;font-size:11px;font-weight:800;padding:.25em .9em;border-radius:999px;
  background:var(--mist);color:var(--green-dark);border:1px solid var(--line);
}
.p-news__tag--imp{background:#fdeaea;color:#c0392b;border-color:#f5c9c9}
.p-news__item--oc .p-news__tag{background:#fff1e2;color:#a8560c;border-color:#f6cfa6}
.p-news__item a{font-size:14px;font-weight:600}
.p-news__item a:hover{text-decoration:underline}
.p-news__thumb{flex:none;display:block;width:96px;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:var(--line)}
.p-news__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.p-news__thumb--logo{background:#fff;border:1px solid var(--line)}
.p-news__thumb--logo img{object-fit:contain;padding:12%}
.p-news__more{text-align:center;margin-top:36px}

/* ==============================
   CTA帯
   ============================== */
.p-cta h2{font-size:clamp(24px,3.4vw,36px);font-weight:900;letter-spacing:.06em}
.p-cta p{margin:16px auto 30px;font-size:14px;max-width:560px;opacity:.92}
.p-cta__btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.p-cta .c-btn{background:#fff;color:var(--green-dark);border-color:#fff}
.p-cta .c-btn:hover{background:#c5dfd0;}
.p-cta .c-btn--orange{background:var(--orange);border-color:var(--orange);color:#fff}
.p-cta .c-btn--orange:hover{background:var(--orange-deep)}

/* ==============================
   フッター
   ============================== */
@media (prefers-reduced-motion: reduce){
  .p-tslider__track{transition:none}
}

/* ==============================
   レスポンシブ
   ============================== */
@media (max-width: 1024px){
  .p-hero__oc{right: 8px;bottom: 24px;}
  .p-oc__inner{grid-template-columns:1fr;gap:40px}
  .p-f1__gakka .c-ph{min-height:220px}
  .p-f1__panel-grid{grid-template-columns:1fr}
  .p-f1__panel-head .p-f1__panel-cta{display:none}
  .p-f1__panel-cta--sp{display:block;margin-top:40px;}
  .p-license__panels{margin-left:clamp(20px,6vw,80px)}
  .p-license__item{min-height:280px}
  .p-nanao__grid{grid-template-columns:1fr 1fr}
  .p-f3__list{grid-template-columns:1fr;max-width:560px}
  .p-f2__img--3{display:none}
  .p-voice__grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 640px){
  .p-hero__shade-top{display:none}
  .p-hero__copy{left:20px;right:20px;bottom:150px}
  /* SP：コンベアの比率を調整（主役を広めに） */
  /* SP：MV装飾 */
  .p-hero__deco-circle{bottom:5%;width:160px;height:160px;background:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 2px,transparent 2px 7px)}
  .p-hero__deco-dots{right:-40px;top:2%;width:120px;height:120px;background-size:12px 12px}
  .p-topics__news i{display:none}
  .p-tslider{padding:56px 0 64px}
  .p-voice__grid{grid-template-columns:1fr}
  .p-f1{padding:56px 0 64px}
  /* SPは文字が全幅に伸びるため、グラデを縦向きにして見出し・本文を青側に載せる */
  .p-f1__panel{margin-left:0;padding:56px 0;background:var(--brand-grad-v)}
  .p-f1__gakka{padding:8px;gap:8px}
  .p-f1__gakka--stats{grid-template-columns:1fr}
  .p-license{padding:48px 0 64px}
  .p-license__band{grid-template-columns:14px 1fr}
  .p-license__panels{margin-left:12px;grid-template-columns:1fr;gap:8px}
  .p-license__item{aspect-ratio:4/3;min-height:0}
  .p-banner{padding:44px 0 0}
  .p-banner__inner{grid-template-columns:1fr}
  .p-banner__main{min-height:0}
  .p-banner__thumbs{grid-template-rows:none;grid-template-columns:repeat(4,1fr)}
  .p-banner__thumbs button::before{content:"";display:block;padding-top:64.2857%}
  .p-links{padding:48px 0}
  .p-links__inner{grid-template-columns:1fr;gap:36px}
  .p-links__grid{grid-template-columns:1fr;gap:26px}
  .p-links__banners{max-width:360px}
  /* 横並びバナーは1列に積む（文字の1字折り返しを防ぐ） */
  .p-links__banners--row{max-width:none;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:34px}
  .p-links__banners--row .p-links__banner{width:auto}
  .p-nanao{padding:0 0 64px}
  .p-nanao__band{padding:10px;margin-left:0;background:var(--brand-grad-v-rev)}
  .p-nanao__band-inner{grid-template-columns:1fr;gap:0}
  .p-nanao__band-text{order:1;padding:10px 10px 18px}
  .p-nanao__slider{order:2;min-height:0;border-radius:16px}
  .p-nanao__slider-btn{width:36px;height:36px}
  .p-nanao__slider-btn--prev{left:8px}
  .p-nanao__slider-btn--next{right:8px}
  .p-nanao__band-text .p-nanao__cta{display:none}
  .p-nanao__cta--sp{display:block;order:3;margin:18px 10px 32px}
  .p-nanao__band-text{padding:16px 10px 10px}
  .p-nanao__grid{grid-template-columns:1fr;gap:14px}
  .p-f2{padding:80px 0 200px}
  .p-f2__img--1{left:4%;top:auto;bottom:24px;width:38vw}
  .p-f2__img--2{right:4%;top:auto;bottom:60px;width:44vw}
  .p-f3{padding:64px 0}
  .p-f3__badge{width:72px;height:72px;font-size:12px}
  .p-news__item{flex-wrap:wrap;gap:8px 14px}
  /* サムネ付きの行：左にサムネ、右に「日付・タグ」と「タイトル」の2段 */
  .p-news__item--thumb{display:grid;grid-template-columns:72px auto minmax(0,1fr);align-items:center;gap:6px 12px}
  .p-news__item--thumb .p-news__thumb{grid-column:1;grid-row:1 / 3;width:72px;align-self:start}
  .p-news__item--thumb .p-news__tag{justify-self:start}
  .p-news__item--thumb > a:last-child{grid-column:2 / -1}
}

/* ==============================
   共通部品（c-）
   ============================== */

.p-news-detail-body h2,.c-article h2{font-size:20px;font-weight:800;margin:44px 0 16px;line-height:1.5;position:relative;padding-left:14px}
.p-news-detail-body h2::before,.c-article h2::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:5px;border-radius:3px;background:linear-gradient(180deg,var(--brand-blue),var(--brand-mid) 50%,var(--brand-lime))}
.p-news-detail-body h2 small,.c-article h2 small{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--green);text-transform:uppercase;margin-bottom:2px}
.p-news-detail-body h2:first-child,.c-article h2:first-child{margin-top:0}
.p-news-detail-body h3,.c-article h3{font-size:17px;font-weight:800;color:var(--ink);margin:30px 0 10px;display:flex;align-items:center;gap:9px}
.p-news-detail-body h3::before,.c-article h3::before{content:"";width:7px;height:1.1em;border-radius:4px;background:linear-gradient(180deg,var(--brand-mid),var(--brand-lime));flex:none}
.p-news-detail-body h4,.c-article h4{font-size:15.5px;font-weight:800;color:var(--ink);margin:26px 0 8px;display:inline-block;padding-bottom:5px;border-bottom:4px solid var(--brand-mid)}
.p-news-detail-body h5,.c-article h5{font-size:14.5px;font-weight:700;color:var(--green-dark);margin:24px 0 8px;display:flex;align-items:center;gap:7px}
.p-news-detail-body h5::before,.c-article h5::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand-lime);outline:2px solid rgba(169,218,132,.35);flex:none}

@media (max-width: 640px){
  .p-news-detail-body h2,.c-article h2{font-size:17.5px;margin:36px 0 12px}
  .p-news-detail-body h3,.c-article h3{font-size:15.5px}
  .p-news-detail-body h4,.c-article h4{font-size:14.5px}
}

/* ==============================
   TOP：ロゴマーク掲載枠（p-symbol 部品を使用）
   ============================== */
.p-symbol{display:flex;align-items:center;gap:clamp(28px,4.5vw,64px)}
.p-symbol + .p-symbol{margin-top:clamp(36px,5vw,60px)}
.p-symbol--rev{flex-direction:row-reverse}
.p-symbol__ph{flex:none;width:160px}
.p-symbol--rev .p-symbol__ph{width:240px}
.p-symbol__ph img{width:100%;height:auto;display:block}
.p-symbol__txt{flex:1}
.p-symbol__txt h3{font-size:clamp(19px,2.2vw,24px);font-weight:800;margin-bottom:14px}
.p-symbol__txt p{font-size:15.5px;color:var(--ink-soft)}
.p-symbol__txt p + p{margin-top:16px}
@media (max-width:820px){
  .p-symbol,.p-symbol--rev{flex-direction:column;align-items:flex-start;gap:20px}
  .p-symbol__ph,.p-symbol--rev .p-symbol__ph{width:min(240px,70%)}
}
/* 見出しと本文は透かしより前面に */
.p-guide .p-symbol__txt{position:relative}
.p-guide .p-symbol__txt > :not(.c-logomark){position:relative;z-index:1}
/* ロゴマークセクションでは、テキストブロックの中央に重ねる */
.p-guide__mark{
  left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(72%,360px);opacity:.06;
}
@media (max-width:820px){
  .p-guide .p-symbol--rev .p-symbol__ph{align-self:center}
}
@media (max-width:640px){
  .p-guide__mark{width:min(80%,260px);opacity:.05}
}

.p-campus .l-container{position:relative;z-index:1}
.p-campus__inner{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(28px,4vw,64px);align-items:center;
}
/* PCでは テキスト左／写真右。スマホは写真が上（下のSP指定側で並べ替え） */
@media (min-width:641px){
  .p-campus__body{order:1}
  .p-campus__stage{order:2}
}
/* 切り取り枠。この中で写真の並びを傾ける */
.p-campus__stage{
  position:relative;overflow:hidden;
  height:clamp(380px,44vw,540px);
}
.p-campus__gallery{
  --tilt:0deg;
  position:absolute;inset:-16%;            /* 回転で角が欠けないよう外へ広げる */
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
  transform:rotate(var(--tilt));
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%);
          mask-image:linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent 100%);
}
/* ==============================
   見せ方の切り替え。section のクラスを付け替えるだけ
   ============================== */
.p-campus--tilt .p-campus__gallery{--tilt:-7deg}
.p-campus--slant .p-campus__stage{clip-path:polygon(0 8%,100% 0,100% 92%,0 100%)}
.p-campus--slant .p-campus__gallery{
  inset:0;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 88%,transparent 100%);
          mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 88%,transparent 100%);
}
.p-campus__col{overflow:hidden}
.p-campus__track img{
  display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  border-radius:12px;margin-bottom:14px;
}
/* 同じ並びを2周ぶん出しているので、半分ぶん動かすと切れ目なく繋がる */
.p-campus__col--up .p-campus__track{animation:campusUp 36s linear infinite}
.p-campus__col--down .p-campus__track{animation:campusDown 36s linear infinite}
@keyframes campusUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes campusDown{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.p-campus__body{min-width:0}
.p-campus__lead{
  margin-top:20px;font-size:clamp(14px,1.6vw,16.5px);line-height:2;color:var(--ink-soft);
}
@media (min-width: 1025px){ .p-campus__cta{margin-top:32px} }
@media (max-width: 1024px) {
	.p-campus__cta {margin-top: 32px;}
}
@media (max-width:640px){
  .p-campus{padding:44px 0}
  .p-campus__inner{grid-template-columns:1fr;gap:22px}
  .p-campus__stage{order:0;height:300px}
  .p-campus--tilt .p-campus__gallery{--tilt:-4deg}
  .p-campus__gallery{gap:10px}
  .p-campus__track img{margin-bottom:10px;border-radius:10px}
  .p-campus__body{order:1}
}
@media (prefers-reduced-motion: reduce){
  .p-campus__col--up .p-campus__track,
  .p-campus__col--down .p-campus__track{animation:none}
}/* ==============================
   下層ページ共通（lower）
   ============================== */
/* 汎用の丸 */
.p-item__circle{display:block;width:44px;height:44px;margin:0 auto 14px;border-radius:50%;background:var(--green-dark)}

/* ==============================
   学校案内
   ============================== */
/* 学校長挨拶（写真なし・中央寄せ） */
.p-greeting h3{font-size:clamp(19px,2.2vw,24px);font-weight:800;margin-bottom:18px}
.p-greeting p{font-size:15.5px;line-height:2;color:var(--ink-soft);margin-bottom:16px}
.p-greeting__sign{text-align:right;font-weight:700;color:var(--ink);margin-top:26px;margin-bottom:0}
.p-greeting{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);
  align-items:start;
}
.p-greeting__body{
  position:relative;z-index:1;
  margin-top:184px;margin-right:-56px;
  background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:52px 48px 60px;
}
.p-greeting__body h3{
  font-size:25px;font-weight:800;line-height:1.5;
  color:var(--green-dark);margin:0 0 26px;
}
.p-greeting__body p{
  font-size:15.5px;line-height:2;color:var(--ink-soft);
  margin:0 0 20px;text-wrap:pretty;
}
.p-greeting__body p:last-child{margin-bottom:0}
.p-greeting__photo{
  position:relative;margin:0;aspect-ratio:1/1;
  border-radius:var(--radius);overflow:hidden;padding-top:44px;
  display:flex;align-items:flex-end;justify-content:center;
  background:linear-gradient(170deg,
    rgba(74,171,219,.34) 0%,rgba(111,198,187,.34) 46%,rgba(169,218,132,.34) 100%);
}
/* 切り抜きPNGをそのまま置く（マスクなし） */
.p-greeting__photo img{
  position:relative;display:block;
  width:auto;max-width:100%;height:100%;
  object-fit:contain;object-position:bottom center;
  -webkit-mask-image:none;mask-image:none;
}
.p-greeting__dots{
  position:absolute;right:-4%;top:8%;width:160px;height:160px;
  z-index:1;opacity:.5;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.85) 2px,transparent 2.6px);
  background-size:16px 16px;
}
/* 署名は写真右下の白プレート */
.p-greeting__sign{
  position:absolute;z-index:2;right:0;bottom:26px;
  display:flex;align-items:baseline;gap:14px;
  background:var(--paper);border-radius:6px 0 0 6px;
  padding:10px 20px;box-shadow:var(--shadow);
  margin:0;text-align:left;
}
.p-greeting__role{font-size:12px;letter-spacing:.06em;color:var(--ink-soft)}
.p-greeting__name{font-size:17px;font-weight:800;letter-spacing:.1em;color:var(--ink)}
@media (max-width:820px){
  .p-greeting{grid-template-columns:1fr;gap:32px}
  .p-greeting__body{margin:0;order:2;padding:36px 28px 40px}
  .p-greeting__body h3{font-size:21px;margin-bottom:20px}
  .p-greeting__photo{order:1;width:min(560px,100%);margin:0 auto;padding-top:40px}
}
@media (max-width:640px){
  .p-greeting__dots{right:-2%;top:4%;width:88px;height:88px}
  .p-greeting__photo .p-hero__deco-circle{left:-50px;width:120px;height:120px}
}
/* 教育理念：キャッチ */
.p-philosophy__catch { position: relative; display: table; margin: 84px auto 0; color: #1f7a66; font-size: 30px; font-weight: 700; line-height: 1.5; letter-spacing: 0.06em; text-align: center; }
.p-philosophy__catch::before { content: "「"; position: absolute; top: -14px; right: 100%; margin-right: 44px; color: #e4f1eb; font-size: 70px; font-weight: 700; line-height: 1; }
.p-philosophy__catch::after { content: "」"; position: absolute; bottom: -14px; left: 100%; margin-left: 44px; color: #e4f1eb; font-size: 70px; font-weight: 700; line-height: 1; }
.p-philosophy__mark { font-style: normal; }
.p-philosophy__mark--blue { background: linear-gradient(transparent 80%, #BFDDF2 80%); }
.p-philosophy__mark--green { background: linear-gradient(transparent 80%, #CDE8B8 80%); }
/* 教育理念：2つの円 */
.p-philosophy__circles { display: flex; flex-wrap: wrap; justify-content: center; margin: 48px 0 0; padding: 0; list-style: none; }
.p-philosophy__circle { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 340px; height: 340px; padding: 0 50px; border-radius: 50%; text-align: center; box-sizing: border-box; }
.p-philosophy__circle--blue { background: radial-gradient(circle at 50% 50%, #E2EEF7 52%, rgba(226,238,247,0) 78%); margin-right: -16px; }
.p-philosophy__circle--green { background: radial-gradient(circle at 50% 50%, rgba(235,243,223,.92) 52%, rgba(235,243,223,0) 78%); }
.p-philosophy__circle-title { margin: 0 0 14px; font-size: 21px; font-weight: 700; line-height: 1.6; }
.p-philosophy__circle-title--blue { color: #265F80; }
.p-philosophy__circle-title--green { color: #2C6E5A; }
.p-philosophy__circle-text { margin: 0; color: #4c5f5a; font-size: 13px; line-height: 1.9; }
/* 教育理念：スマホ */
@media (max-width: 767px) {
  .p-philosophy__catch { display: block; margin-top: 56px; padding: 0 1.6em; font-size: clamp(18px, 5vw, 22px); letter-spacing: 0.04em;line-height: 2.2rem; }
  .p-philosophy__mark { white-space: nowrap; }
  .p-philosophy__catch::before { top: -12px; right: auto; left: 0; margin-right: 0; font-size: 44px; }
  .p-philosophy__catch::after { bottom: -12px; left: auto; right: 0; margin-left: 0; font-size: 44px; }
  .p-philosophy__circles { margin-top: 36px; }
  .p-philosophy__circle { width: 300px; height: 300px; padding: 0 40px; }
  .p-philosophy__circle--blue { margin-right: 0; margin-bottom: -24px; }
  .p-philosophy__circle-title { font-size: 19px; }
}
/* ポリシー（3つの方針） */
.p-creed{text-align:center;font-size:clamp(21px,2.8vw,28px);font-weight:800;color:var(--green-dark);margin-bottom:clamp(8px,1.5vw,20px)}
.p-pillars{display:flex;justify-content:center;gap:clamp(24px,5vw,80px);flex-wrap:wrap}
.p-pillars__item{
  width:clamp(320px,28vw,400px);aspect-ratio:1/1;
  border-radius:50%;display:flex;flex-direction:column;justify-content:center;
  text-align:center;padding:0 clamp(24px,3vw,36px);
  background:radial-gradient(circle at 50% 50%,rgba(111,198,187,.32) 0%,rgba(111,198,187,.10) 55%,rgba(111,198,187,0) 72%);
}
.p-pillars__item--lime{
  background:radial-gradient(circle at 50% 50%,rgba(169,218,132,.34) 0%,rgba(169,218,132,.12) 55%,rgba(169,218,132,0) 72%);
}
.p-pillars__item h3{font-size:clamp(17px,2.1vw,21px);font-weight:800;color:var(--green-dark);line-height:1.5;margin-bottom:14px}
.p-pillars__item p{font-size:13.5px;color:var(--ink-soft);line-height:1.9}
.p-policies{max-width:900px;margin:clamp(4px,1vw,16px) auto 0;border:2px solid var(--green);border-radius:16px;padding:clamp(24px,3.5vw,36px)}
@media (max-width:640px){
  .p-pillars__item{width:min(280px,86vw)}
}
/* 汎用アコーディオン（学校案内のポリシーで使用） */
.p-policies { --c-ink: #1c2b28; --c-body: #4c5f5a; --c-green: #1f7a66; --c-green-l: #2f9a7e; --c-line: #dce8e2; margin-top: 72px; }
.p-policies__title { text-align: center; color: var(--c-green); margin: 0 0 6px; font-size: 22px; font-weight: 800; line-height: 1.5; }
@media (max-width: 768px) {
  .p-policies { margin-top: 48px;padding: 40px 0 16px; }
}
/* 学校概要・沿革 */
.p-outline { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 40px; align-items: start; }
.p-outline .c-h3 { margin-top: 0; }
.p-outline .c-lower-table th { white-space: nowrap; }
@media (max-width: 768px) {
  .p-outline .c-lower-table th { white-space: normal; }
}
/* ==== 沿革の折りたたみ ==== */
.p-history__box { position: relative; overflow: hidden; max-height: 306px; /* テーブル約6行分 */ }
/* 下端のフェード。背景がミスト帯のため mist で消し込む */
.p-history__box::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 130px; pointer-events: none; background: linear-gradient(180deg, rgba(242, 247, 244, 0), var(--mist) 72%); }
.p-history.is-open .p-history__box { max-height: none; }
.p-history.is-open .p-history__box::after { display: none; }
/* ボタンはフェードに重ねる（意図的な負マージン） */
.p-history__more { position: relative; margin-top: -48px; text-align: center; z-index: 2; }
.p-history.is-open .p-history__more { margin-top: 16px; }
.p-history__btn { cursor: pointer; display: inline-flex; align-items: center; gap: 8px; padding: .7em 1.6em; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-family: inherit; font-size: 14px; font-weight: 700; color: var(--green-dark); box-shadow: 0 6px 18px rgba(28, 43, 40, .10); transition: background .2s; }
.p-history__btn:hover { background: var(--mist); }
.p-history__btn i { font-style: normal; font-size: 11px; }
/* 能登半島地震からの復興（写真グループの間隔） */
.p-recovery__texts { display: flex; flex-direction: column; gap: 18px; }
.p-recovery__ba { display: grid; grid-template-columns: minmax(0, 1fr) 56px minmax(0, 1fr); align-items: start; margin-top: 52px; }
.p-recovery__head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.p-recovery__tag { font-size: 11.5px; font-weight: 800; letter-spacing: .2em; color: var(--ink-soft); background: #dadddc; border-radius: 999px; padding: .4em 1.1em; }
.p-recovery__tag--after { color: #e07514; background: #ffe6c8; }
.p-recovery__label { font-size: 15px; font-weight: 800; color: var(--ink); }
/* 写真2枚を左右に振り分けた段違いレイアウト */
.p-recovery__photos { display: flex; flex-direction: column; }
.p-recovery__pic { margin: 0; width: 86%; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); }
.p-recovery__pic img { display: block; width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; }
.p-recovery__pic .c-ph { border-radius: 0; aspect-ratio: 4/3; }
.p-recovery__pic--a { align-self: flex-start; }
.p-recovery__pic--b { align-self: flex-end; margin-top: -34px; position: relative; z-index: 1; }
.p-recovery__cap { margin: 20px 0 0; font-size: 13px; line-height: 1.9; color: var(--ink-soft); }
.p-recovery__arrow { position: relative; align-self: stretch; display: flex; align-items: center; justify-content: center; }
.p-recovery__arrow span { display: flex; align-items: center; justify-content: center; width: 33px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, #4aabdb, #6fc6bb 55%, #a9da84); color: #fff; font-size: 14px; font-weight: 800; }
@media (max-width:900px){
  .p-recovery__ba { grid-template-columns: 1fr; gap: 32px; }
  .p-recovery__arrow { align-self: center; }
  .p-recovery__arrow span { transform: rotate(90deg); }
}
@media (max-width:560px){
  .p-recovery__pic { width: 92%; }
  .p-recovery__pic--b { margin-top: -20px; }
}
/* ロゴマーク・タグライン */
.p-logo { display: flex; align-items: center; gap: 64px; flex-wrap: wrap; }
.p-logo__text { flex: 1; min-width: 280px; }
.p-logo__en { display: block; font-size: 12.5px; font-weight: 800; letter-spacing: .24em; color: var(--green); }
.p-logo__ttl { margin: 8px 0 14px; font-size: 24px; font-weight: 800; line-height: 1.35; }
.p-logo__text p { margin: 0 0 16px; font-size: 15.5px; line-height: 2; color: var(--ink-soft); text-wrap: pretty; }
.p-logo__text p:last-child { margin-bottom: 0; }
.p-logo__figure { flex: none; width: 240px; max-width: 100%; }
.p-logo__figure img { display: block; max-width: 100%; height: auto; margin: 0 auto; }
/* ==== タグラインの帯 ==== */
.p-tagline { position: relative; margin-top: 60px; border-radius: 24px; overflow: hidden; background: linear-gradient(120deg, #1c6d99 0%, #1f7a66 55%, #3f7a2e 100%); }
.p-tagline__deco { position: absolute; right: -24px; top: 48px; width: 50%; height: auto; opacity: .8; pointer-events: none; transform: rotate(20deg); transform-origin: right top; }
.p-tagline__body { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; padding: 80px 56px 60px; align-items: center; color: #fff; }
.p-tagline__en { display: block; font-size: 12.5px; font-weight: 800; letter-spacing: .24em; }
.p-tagline__img { display: block; width: 100%; max-width: 360px; height: auto; margin: 18px 0 16px; }
.p-tagline__note { margin: 0; font-size: 13.5px; line-height: 1.9; }
.p-tagline__text p { margin: 0 0 20px; font-size: 15px; line-height: 2; text-wrap: pretty; }
.p-tagline__text p:last-child { margin-bottom: 0; }
@media (max-width:900px){
  .p-tagline__deco { width: 74%; top: 80px; transform: rotate(36deg); }
  .p-tagline__body { grid-template-columns: 1fr; gap: 28px; padding: 64px 32px 48px; }
}
@media (max-width:820px){
  .p-logo { gap: 32px; }
  .p-logo__figure { order: -1; width: 100%; max-width: 220px; margin: 0 auto; }
}
@media (max-width:480px){
  .p-tagline__deco { width: 100%; top: 72px; right: -12px; transform: rotate(21deg); }
}

/* ==============================
   入試情報
   ============================== */
/* 入試情報ページ用 */
.p-cap{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.p-cap .c-card__body h3{font-size:18px;margin-bottom:14px}
.p-cap table{width:100%;border-collapse:collapse}
.p-cap th,.p-cap td{border:1px solid var(--line);padding:10px 14px;font-size:13.5px;text-align:left;vertical-align:top}
.p-cap th{background:var(--mist);color:var(--green-dark);width:140px;font-weight:700}
.p-exam-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.p-exam-cards h3{font-size:16px;margin-bottom:8px}
@media (max-width: 640px){
  .p-cap{grid-template-columns:1fr;gap:14px}
  .p-exam-cards{grid-template-columns:1fr;gap:14px}
}
/* 求める学生像（写真＋テキストの横並びカード） */
.p-profile{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.p-profile__item{
  display:flex;background:#fff;border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);
}
.p-profile__ph{position:relative;flex:0 0 38%;min-height:220px}
.p-profile__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
/* 学科ごとの写真の見せる位置（囲みの修飾クラスで指定） */
.p-profile__ph--ems img{object-position:24% 50%}
.p-profile__ph--pt img{object-position:56% 50%}
.p-profile__body{flex:1;min-width:0;padding:24px 26px 26px}
.p-profile__body .c-h4{margin-top:0}
.p-profile__body p{font-size:14.5px;line-height:1.95;color:var(--ink-soft);margin:0}
.p-profile__color{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.p-profile__color--pt{--dept-c1:var(--dept-pt1);--dept-c2:var(--dept-pt2)}
.p-profile__color--ems{--dept-c1:var(--dept-ems1);--dept-c2:var(--dept-ems2)}
.p-profile__color-name{min-width:0}
.p-profile__color-en{display:block;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--dept-c1)}
.p-profile__color-ja{display:block;margin-top:4px;font-size:13px;font-weight:700;color:var(--ink-soft)}
.p-profile__color-chips{display:flex;gap:9px;flex:none}
.p-profile__color-chips span{width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.p-profile__color-chips span:first-child{background:var(--dept-c1)}
.p-profile__color-chips span:last-child{background:var(--dept-c2)}
@media (max-width:1024px){
  .p-profile{grid-template-columns:1fr;gap:18px}
  .p-profile__ph{flex:0 0 32%;min-height:180px}
}
@media (max-width:640px){
  .p-profile__item{flex-direction:column}
  .p-profile__ph{flex:none;min-height:0;aspect-ratio:4/3}
  .p-profile__body{padding:18px 20px 22px}
}
/* ==============================
   入試ページ共通（AO・推薦・一般・社会人）
   ============================== */

/* ==== エントリーの流れ（番号つき縦タイムライン） ==== */
.p-aoflow { counter-reset: aoflow; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; max-width: 860px; }
.p-aoflow__item { counter-increment: aoflow; position: relative; padding: 0 0 34px 62px; }
/* 縦の線 */
.p-aoflow__item::before { content: ""; position: absolute; left: 21px; top: 8px; bottom: -8px; width: 2px; background: var(--line); }
.p-aoflow__item:last-child::before { display: none; }
/* 番号バッジ */
.p-aoflow__item::after { content: counter(aoflow); position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--green); color: #fff; font-size: 15px; font-weight: 800; line-height: 1; }
.p-aoflow__title { margin: 8px 0 12px; font-size: 18px; font-weight: 800; color: var(--green-dark); }
.p-aoflow__body { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px 24px; }
/* 枠の中では上の余白を詰める */
.p-aoflow__body .c-list-check { margin-top: 0; }
.p-aoflow__body > p:first-child { margin-top: 0; }
.p-aoflow__term { margin: 16px 0 0; padding-top: 14px; border-top: 1px dashed var(--line); font-size: 15px; }
.p-aoflow__term--closed { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 1em; }
.p-aoflow__term--closed s { text-decoration-line: line-through; text-decoration-color: #d22630; text-decoration-thickness: 2px; }
.p-aoflow__closed { color: #d22630; font-weight: 800; }

@media (max-width:600px){
  .p-aoflow__item { padding-left: 52px; padding-bottom: 28px; }
  .p-aoflow__item::after { width: 38px; height: 38px; font-size: 14px; }
  .p-aoflow__item::before { left: 18px; }
  .p-aoflow__body { padding: 16px 18px; }
}

/* ==== 出願期間などの日付帯 ==== */
.p-term { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0; padding: 18px 24px; background: #fff; border: 2px solid var(--green); border-radius: 12px; }
.p-term__label { flex: none; padding: .3em 1.1em; border-radius: 999px; background: var(--green); color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .06em; }
.p-term__date { font-size: clamp(16px, 2.2vw, 19px); font-weight: 800; color: var(--green-dark); }

/* ==== 特待生の金額 ==== */
.p-tokutai { margin: 0; padding: 24px 0 0; background: var(--mist); border-radius: 12px; font-size: clamp(15px, 2vw, 17px); }
.p-tokutai__amount { color: var(--orange-deep); font-size: 1.3em; font-weight: 800; }

/* ==============================
   学科紹介
   ============================== */
/* 学科ブロック（写真大＋白カード重ね＋中央ボタン） */
.p-gcourse__photo{position:relative;overflow:hidden}
.p-gcourse__photo::before{content:"";display:block;padding-top:42%}
.p-gcourse__photo img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position: center;}
.p-gcourse__card{
  position:relative;background:#fff;box-shadow:var(--shadow);
  width:min(86%,1000px);margin:-110px 0 0 8%;
  padding:clamp(26px,3.5vw,46px) clamp(22px,3.5vw,50px);
  display:grid;grid-template-columns:auto 1fr;gap:clamp(22px,3vw,44px);align-items:center;
}
.p-gcourse__head{display:flex;align-items:center;gap:18px}
.p-gcourse__badge{
  flex:none;display:flex;align-items:center;justify-content:center;
  width:78px;height:78px;border:2px solid var(--orange);
  font-size:12px;font-weight:700;color:var(--ink);letter-spacing:.06em;
}
.p-gcourse__name{font-size:clamp(20px,2.3vw,26px);font-weight:800;line-height:1.4}
.p-gcourse__name small{display:block;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px}
.p-gcourse__desc{border-left:1px solid var(--line);padding-left:clamp(20px,3vw,40px);font-size:14.5px;color:var(--ink-soft)}
.p-gcourse__btn{text-align:center;margin-top:36px}
.p-gcourse__btn a{
  display:inline-flex;align-items:center;justify-content:center;gap:.7em;
  background:var(--orange);color:#fff;font-weight:700;font-size:15px;
  padding:1.05em 3.4em;border-radius:4px;letter-spacing:.1em;transition:.25s;
}
.p-gcourse__btn a:hover{background:var(--orange-deep)}
/* 教育プログラム（2R・2本柱） */
.p-edu2r{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.p-edu2r .c-card__body{padding:26px 28px 30px}
.p-edu2r .c-taglist{margin-top:14px}
.p-edu2r .c-taglist span{background:var(--mist)}
.p-edu2r__up{margin-top:16px;font-weight:800;color:var(--green-dark)}
.p-edu-goal{margin-top:30px;text-align:center;font-size:15px;font-weight:700}
.p-edu-points{max-width:760px;width:fit-content;margin:0 auto 40px;list-style:disc;padding-left:1.6em}
.p-edu-points li{font-size:15px;line-height:2.1;color:var(--ink-soft);font-weight:600}
.p-edu-goal strong{color:var(--orange-deep);font-size:1.25em}
/* プロフェッション養成講座（3つの力ステップ） */
.p-prof{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.p-prof .c-card{position:relative;overflow:visible}
.p-prof .c-card:not(:last-child)::after{content:"→";position:absolute;right:-26px;top:50%;transform:translateY(-50%);color:var(--green);font-weight:800;font-size:20px}
.p-prof__step{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.18em;color:#fff;background:var(--green);border-radius:999px;padding:.32em 1.1em;margin-bottom:10px}
.p-prof__step--goal{background:var(--orange)}
.p-prof .c-card__body p{font-size:13px}
.p-prof .c-h4{margin:16px 0 6px}
/* 学科紹介ページ用 */
.p-points{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px}
.p-points .p-item{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:30px 24px;text-align:center}
.p-points .c-num{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.2em;color:var(--green);border-bottom:2px solid var(--orange);padding-bottom:4px;margin-bottom:14px}
.p-points p{font-size:14px;font-weight:700;line-height:1.9}
.p-gakka-cta{margin-top:22px}
.p-gakka-cta--sp{display:none}
.p-fac{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.p-fac .c-card__body h3 small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--green);margin-bottom:4px}
@media (max-width: 640px){
  .p-points{grid-template-columns:1fr;gap:14px;margin-top:32px}
  .p-edu2r{grid-template-columns:1fr;gap:14px}
  .p-prof{grid-template-columns:1fr;gap:30px}
  .p-prof .c-card:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-27px;transform:translateX(-50%)}
  .p-gcourse__photo::before{padding-top:62%}
  .p-gcourse__card{width:calc(100% - 20px);margin:-36px auto 0;grid-template-columns:1fr;gap:16px;padding:22px 18px}
  .p-gcourse__badge{width:64px;height:64px;font-size:11px}
  .p-gcourse__desc{border-left:none;border-top:1px solid var(--line);padding:16px 0 0}
  .p-gcourse__btn{margin-top:26px}
  .p-gcourse__btn a{width:100%}
  .p-fac{grid-template-columns:1fr 1fr;gap:14px}
}

/* ==============================
   学生生活
   ============================== */
/* 学生生活ページ用 */
.p-around{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 24px}
.p-around figure{margin:0}
.p-around .p-img{position:relative;border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
.p-around .p-img::before{content:"";display:block;padding-top:64.3%}
.p-around .p-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.p-around figcaption{margin-top:10px;font-size:14px;font-weight:700}
/* キャンパス・カレンダー：年間ストリップ表 */
.p-cal.u-calstrip-nn0917{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-top:2px solid var(--green-dark)}
.p-cal.u-calstrip-nn0917 .c-card{display:flex;flex-direction:column;background:#fff;border-radius:0;box-shadow:none;overflow:hidden}
.p-cal.u-calstrip-nn0917 .c-card__body{display:flex;flex-direction:column;flex-grow:1;padding:0}
.p-cal.u-calstrip-nn0917 .p-month{display:block;margin:0;padding:13px 0;border-radius:0;background:var(--mist);border-bottom:1px solid var(--line);color:var(--ink);font-size:16px;font-weight:800;letter-spacing:.06em;text-align:center}
.p-cal.u-calstrip-nn0917 p{padding:22px 24px 26px;min-height:96px;font-size:14px;line-height:1.95;text-align: center;}
@media (max-width:1024px){.p-cal.u-calstrip-nn0917{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.p-cal.u-calstrip-nn0917{grid-template-columns:1fr;gap:1px}}
@media (max-width:640px){.p-cal.u-calstrip-nn0917 p{min-height:0;padding:18px 18px 22px}}
.p-dorm{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.p-dorm .c-card__body h3{font-size:17px;margin-bottom:8px}
.p-dorm .c-card__body h3 small{display:block;font-size:11px;font-weight:700;color:var(--green);letter-spacing:.08em;margin-bottom:4px}
@media (max-width: 640px){
  .p-around{grid-template-columns:1fr 1fr;gap:18px 12px}
  .p-around figcaption{font-size:12px}
  .p-cal{grid-template-columns:1fr 1fr;gap:10px}
  .p-dorm{grid-template-columns:1fr;gap:14px}
}

/* ==============================
   交通アクセス
   ============================== */
/* 交通アクセスページ用 */
.p-acc-jr{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.p-acc-jr .p-cap{background:var(--mist);border:1px solid var(--line);border-bottom:none;font-weight:700;font-size:14.5px;padding:10px 16px}
.p-acc-jr .c-lower-table th{width:auto}
.p-acc-car{font-size:15px;font-weight:700;position:relative;padding-left:28px}
.p-acc-car::before{content:"";position:absolute;left:0;top:calc(.9em - 10px);width:20px;height:20px;background:var(--green);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z'/%3E%3C/svg%3E") no-repeat center/contain}

.p-acc-car i{font-style:normal;color:var(--green);margin:0 .4em}
.p-acc-maps .p-addr{font-size:14px;font-weight:700;margin-bottom:12px}

@media (max-width: 640px){
  .p-acc-jr{grid-template-columns:1fr;gap:18px}
}

/* ==============================
   情報公開・プライバシーポリシー
   ============================== */
.p-priv__date{margin-top:34px;text-align:right;font-size:13px;color:var(--ink-soft)}
.p-priv-contact{margin-top:34px;background:var(--mist);border:1px solid var(--line);border-radius:12px;padding:22px 24px;max-width:860px}
.p-priv-contact h4{font-size:14px;font-weight:800;color:var(--green-dark);margin:0 0 8px}
.p-priv-contact address{font-style:normal;font-size:14px;line-height:2;color:var(--ink-soft)}
@media (max-width: 640px){
  .p-priv-contact{padding:18px 16px}
}

/* ==============================
   学科詳細
   ============================== */
/* Point の囲み */
.p-term--point{display:block;padding:32px}
.p-term--point .p-term__head{display:flex;align-items:center;gap:16px;margin:0}
.p-term--point .p-term__body{margin:16px 0 0;color:var(--ink-soft);font-size:15px;line-height:2}
@media (max-width:640px){
.p-term--point{padding:22px 20px 24px}
.p-term--point .p-term__head{flex-direction:column;align-items:flex-start;gap:8px}
.p-term--point .p-term__body{font-size:14.5px;margin:14px 0 0}
}
.p-term--photo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,40%);align-items:start;column-gap:36px}
.p-term__photo{margin:0}
.p-term__photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius)}
.p-term--photo .p-term__text{padding-top:8px;}
@media (max-width:640px){
.p-term--photo{grid-template-columns:minmax(0,1fr)}
.p-term__photo{margin-top:20px}
}
.p-term--point:has(> .p-dept-equip){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:48px;align-items:end}
.p-term--point:has(> .p-dept-equip) > .p-term__head{grid-column:1 / -1}
.p-term--point:has(> .p-dept-equip) > .p-term__body{grid-column:1}
.p-dept-equip{display:contents}
.p-dept-equip .p-oclp-exp__head{grid-column:2;margin-bottom:4px}
.p-dept-equip .p-oclp-exp__track{grid-column:1 / -1;margin-top:0}
/* 青地に白矢印。端に着いた側は消さずに薄くする */
.p-dept-equip .p-oclp-exp__btn{width:44px;height:44px;color:#fff;background:var(--teal);border-color:var(--teal)}
.p-dept-equip .p-oclp-exp__btn:hover{background:var(--green-dark);border-color:var(--green-dark)}
.p-dept-equip .p-oclp-exp__track{grid-auto-columns:calc((100% - 52px) / 3)}
.p-dept-equip .p-oclp-exp__body h3 small{display:block;margin-top:2px;font-size:13px;font-weight:700;color:var(--ink-soft)}
@media (max-width:850px){
.p-term__br{display:none}
}
@media (max-width:1024px){
.p-dept-equip .p-oclp-exp__track{grid-auto-columns:calc((100% - 18px) / 2)}
}
@media (max-width:640px){
.p-term--point:has(> .p-dept-equip) > .p-term__body{grid-column:1 / -1}
.p-dept-equip .p-oclp-exp__head{grid-column:1 / -1;justify-content:center;margin:12px 0 0}
.p-dept-equip .p-oclp-exp__btn{width:40px;height:40px}
.p-dept-equip .p-oclp-exp__track{grid-auto-columns:90%;margin-top:0}
.p-dept-equip .p-oclp-exp__body h3{font-size:16px}
}
.p-term--card .c-h3{padding-bottom:14px;border-bottom:1px solid var(--line);color:var(--green-dark)}
.p-term--card .c-h3::before{content:none}
.p-term--card .c-h3.c-h3--line::before{content:"";width:1.4em;height:1.4em;border-radius:0;background:#06C755;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314'/%3E%3C/svg%3E") no-repeat center/contain}
.p-dept-assoc{margin-top:26px;text-align:center;font-size:13.5px;font-weight:700}
.p-dept-assoc a{color:var(--green);border-bottom:1px solid currentColor;padding-bottom:2px}
.p-term .c-list-check {font-feature-settings: "palt";}
/* JESAロゴ（画像リンク：下線なし・中央・ホバーで薄く） */
.p-dept-assoc--logo a{border-bottom:0;padding-bottom:0}
.p-dept-assoc img{display:inline-block;width:auto;transition:.2s}
.p-dept-assoc a:hover img{opacity:.75}
.p-dept-jesa-sec{padding-bottom:12px;overflow:visible}
.p-dept-jesa{display:flex;align-items:stretch;max-width:640px;margin:0 auto;border-radius:var(--radius);overflow:hidden;overflow:clip;background:#fff;box-shadow:var(--shadow);color:var(--ink);transition:.2s}
.p-dept-jesa:hover{transform:translateY(-2px)}
.p-dept-jesa__logo{flex:none;display:flex;align-items:center;justify-content:center;padding:14px 22px}
.p-dept-jesa__logo img{display:block;width:300px;height:auto}
.p-dept-jesa__txt{flex:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 26px;background:var(--mist);color:var(--green-dark);line-height:1.6}
.p-dept-jesa__txt small{display:block;font-size:12px}
.p-dept-jesa__txt strong{font-size:17px;font-weight:800}
.p-dept-jesa__arrow{flex:none;font-size:18px}
@media (max-width:640px){
.p-dept-jesa-sec{padding-bottom:0}
.p-dept-jesa{flex-direction:column}
.p-dept-jesa__logo{padding:18px 20px}
.p-dept-jesa__logo img{width:260px}
.p-dept-jesa__txt{padding:14px 20px}
}
.c-dept-tt .c-ph{min-height:320px;border-radius:var(--radius)}
.c-dept-tt img{display:block;width:100%;height:auto;border-radius:var(--radius)}
/* 学科カラー（<main> の p-dept--pt / p-dept--ems） */
.p-dept--pt{--dept-grad:linear-gradient(135deg,#89d38b,#c7e284);--brand-mid:var(--dept-pt1);--brand-lime:var(--dept-pt2);--brand-grad-deep:linear-gradient(120deg,#2c7a3b 0%,#3d9a4f 55%,#6aad48 100%);--green:#3d9a4f;--green-dark:#2c7a3b;--mist:#f3f9ea;--line:#deebcf}
.p-dept--ems{--dept-grad:linear-gradient(100deg,var(--dept-ems1),var(--dept-ems2));--brand-mid:var(--dept-ems1);--brand-lime:var(--dept-ems2);--brand-grad-deep:linear-gradient(120deg,#1d6a9c 0%,#2a86c0 55%,#3ea4b5 100%);--green:#2a86c0;--green-dark:#1d6a9c;--mist:#eef7fb;--line:#d3e7f0}
.p-dept .c-lhead{background:var(--dept-grad);text-shadow:0 1px 12px rgba(0,0,0,.18)}
.p-dept .c-lhead__ja{color:#fff}
/* 在校生・卒業生の声：動画サムネイルの段は枠を16:9に */
.p-dept #voice .c-dept-duo:has(.c-dept-movie > img) .c-card__ph::before{padding-top:56.25%}
.p-dept #voice .c-dept-movie > img{object-position:50% 65%}
.p-dept--ems .c-lower-cta .c-btn--white:hover{background:var(--line)}
@media (max-width: 640px){
  .c-dept-tt .c-ph{min-height:220px}
}

/* ==============================
   よくある質問
   ============================== */

/* ==============================
   お知らせ
   ============================== */
.p-news-list{display:grid;gap:10px;max-width:900px;margin:0 auto}
.p-news-link{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;transition:.2s}
.p-news-link:hover{border-color:var(--green);box-shadow:var(--shadow)}
.p-news-meta{flex:none;display:flex;align-items:center;gap:12px}
.p-news-date{font-size:13px;color:var(--ink-soft);font-weight:600;letter-spacing:.04em}
.p-tag{flex:none;font-size:11.5px;font-weight:700;padding:.3em .9em;border-radius:999px;background:var(--mist);color:var(--green-dark)}
.p-tag-imp{background:var(--orange);color:#fff}
.p-tag-oc{background:#fff1e2;color:#a8560c}
.p-news-title{font-size:14.5px;font-weight:600;line-height:1.6}
.p-news-detail-wrap{max-width:860px;margin:0 auto}
.p-news-detail-date{display:block;font-size:13px;color:var(--ink-soft);font-weight:600;letter-spacing:.04em}
.p-news-detail-title{font-size:24px;font-weight:800;line-height:1.5;margin:6px 0 26px;padding-bottom:18px;border-bottom:2px solid var(--green)}
.p-news-detail-body p{font-size:15.5px;line-height:2;color:var(--ink-soft);margin:0 0 18px}
.p-news-detail-body img{max-width:100%;height:auto}
.p-news-detail-body iframe{display:block;margin:0 auto;width:100%;max-width:640px;aspect-ratio:16/9;height:auto;border:0}
.p-news-detail-eyecatch{text-align:center}
.p-news-detail-body .c-kv{margin:26px auto}
/* ブロックエディタの出力（お知らせ本文）。ブロック固有クラスだけに当てる */
/* 箇条書き（リストブロックのみ） */
.p-news-detail-body ul.wp-block-list{list-style:disc;padding-left:1.4em;margin:0 0 18px}
.p-news-detail-body ol.wp-block-list{list-style:decimal;padding-left:1.4em;margin:0 0 18px}
.p-news-detail-body .wp-block-list li{font-size:15.5px;line-height:1.9;color:var(--ink-soft);margin:0 0 6px}
.p-news-detail-body .wp-block-list li::marker{color:var(--green)}
.p-news-detail-body .wp-block-list li > ul,.p-news-detail-body .wp-block-list li > ol{margin:6px 0 0}
.p-news-detail-body .wp-block-image{margin:26px 0}
.p-news-detail-body .wp-block-image img{max-width:100%;height:auto}
.p-news-detail-body .wp-block-image.aligncenter,.p-news-detail-body .wp-block-image .aligncenter{margin-left:auto;margin-right:auto;text-align:center}
.p-news-detail-body .wp-block-image.aligncenter img,.p-news-detail-body .wp-block-image .aligncenter img{margin:0 auto}
.p-news-detail-body .wp-block-image figcaption,.p-news-detail-body .wp-block-gallery figcaption,.p-news-detail-body .wp-block-table figcaption,.p-news-detail-body .wp-block-embed figcaption{font-size:13px;line-height:1.7;color:var(--ink-soft);text-align:center;margin-top:8px}
/* ギャラリー（並びは WordPress 本体の CSS） */
.p-news-detail-body .wp-block-gallery{margin:26px 0}
.p-news-detail-body .wp-block-gallery figure.wp-block-image{margin:0}
/* 表 */
.p-news-detail-body .wp-block-table{margin:26px 0;overflow-x:auto}
.p-news-detail-body .wp-block-table table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.7}
.p-news-detail-body .wp-block-table th,.p-news-detail-body .wp-block-table td{border:1px solid var(--line);padding:10px 14px;text-align:left;vertical-align:top}
.p-news-detail-body .wp-block-table th{background:var(--mist);color:var(--green-dark);font-weight:700}
.p-news-detail-body .wp-block-table thead{border-bottom:1px solid var(--line)}
.p-news-detail-body .wp-block-table tfoot{border-top:1px solid var(--line)}
.p-news-detail-body .wp-block-table figcaption{text-align:left}
/* 引用 */
.p-news-detail-body .wp-block-quote{margin:26px 0;padding:4px 0 4px 20px;border-left:4px solid var(--green)}
.p-news-detail-body .wp-block-quote p:last-of-type{margin-bottom:0}
.p-news-detail-body .wp-block-quote cite{display:block;margin-top:8px;font-size:13px;font-style:normal;color:var(--ink-soft)}
/* ファイル（PDF リンク） */
.p-news-detail-body .wp-block-file{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 18px;font-size:15px}
.p-news-detail-body .wp-block-file a:not(.wp-block-file__button){color:var(--green-dark);text-decoration:underline;text-underline-offset:3px}
.p-news-detail-body .wp-block-file__button{display:inline-flex;align-items:center;padding:.45em 1.3em;border-radius:999px;font-size:13px;font-weight:700;background:var(--green);color:#fff;border:2px solid var(--green);transition:.25s}
.p-news-detail-body .wp-block-file__button:hover{background:var(--green-dark);border-color:var(--green-dark)}
.p-news-detail-body .wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0}
.p-news-detail-body .wp-block-buttons.is-content-justification-center{justify-content:center}
.p-news-detail-body .wp-block-buttons.is-content-justification-right{justify-content:flex-end}
.p-news-detail-body .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.9em 2.2em;border-radius:999px;font-weight:700;font-size:16px;line-height:1.5;background:var(--green);color:#fff;border:2px solid var(--green);transition:.25s;cursor:pointer}
.p-news-detail-body .wp-block-button__link:hover{background:var(--green-dark);border-color:var(--green-dark);color:#fff}
.p-news-detail-body .is-style-outline .wp-block-button__link{background:transparent;color:var(--green);border-color:var(--green)}
.p-news-detail-body .is-style-outline .wp-block-button__link:hover{background:var(--green);color:#fff}
/* 区切り */
.p-news-detail-body hr.wp-block-separator{border:0;border-top:1px solid var(--line);margin:36px 0;opacity:1}
.p-news-detail-body .wp-block-embed{margin:26px 0}
@media (max-width: 640px){
  .p-news-detail-body .wp-block-list li{font-size:14.5px}
  .p-news-detail-body .wp-block-button__link{font-size:15px}
}
.p-news-thumb{flex:none;display:block;width:120px;aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:var(--line)}
.p-news-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.p-news-thumb--logo{background:#fff;border:1px solid var(--line)}
.p-news-thumb--logo img{object-fit:contain;padding:12%}
.p-news-detail-thumb{margin:0 0 30px;border-radius:var(--radius);overflow:hidden;background:var(--line)}
.p-news-detail-thumb img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width: 640px){
  .p-news-link{flex-direction:column;align-items:flex-start;gap:8px;padding:14px 14px}
  /* サムネ付き：左にサムネ、右に「日付・タグ」と「タイトル」の2段 */
  .p-news-link--thumb{display:grid;grid-template-columns:88px minmax(0,1fr);align-items:start;gap:6px 12px}
  .p-news-link--thumb .p-news-thumb{grid-column:1;grid-row:1 / 3;width:88px}
  .p-news-link--thumb .p-news-meta,.p-news-link--thumb .p-news-title{grid-column:2}
  .p-news-detail-thumb{margin-bottom:22px}
  .p-news-title{font-size:13.5px}
  .p-news-detail-title{font-size:19px}
  .p-news-detail-body p{font-size:14.5px}

}

/* ==============================
   オープンキャンパス
   ============================== */
/* 学科カラーのベタ塗りカード（学科名→イベント名→特大日付→白ピルボタン） */
.p-ocnext{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:960px;margin:0 auto}
.p-ocnext__card{border-radius:var(--radius);color:#fff;text-align:center;padding:34px 26px 34px;box-shadow:var(--shadow)}
.p-ocnext__card--pt{background:linear-gradient(160deg,#5ba968,#468f53)}
.p-ocnext__card--ems{background:linear-gradient(160deg,#5b9cc8,#3f7fae)}
.p-ocnext__dept{font-size:clamp(20px,2.2vw,24px);font-weight:800;letter-spacing:.06em}
.p-ocnext__event{margin-top:16px;font-size:14.5px;font-weight:700}
.p-ocnext__desc{margin-top:4px;font-size:12.5px;opacity:.92}
.p-ocnext__date{margin-top:8px;font-size:clamp(52px,6.5vw,72px);font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}
.p-ocnext__date span{font-size:clamp(15px,1.8vw,18px);font-weight:800;margin-left:2px}
.p-ocnext__btnrow{margin:22px 0 0}
.p-ocnext__btn{display:inline-flex;align-items:center;gap:.5em;background:#fff;border-radius:999px;padding:.85em 2em;font-size:14.5px;font-weight:800;transition:.2s;box-shadow:0 4px 14px rgba(0,0,0,.14)}
.p-ocnext__card--pt .p-ocnext__btn{color:#3e8a49}
.p-ocnext__card--ems .p-ocnext__btn{color:#2d6f9e}
.p-ocnext__btn:hover{transform:translateY(-2px)}
.p-ocnext__btn i{font-style:normal;font-size:.9em}
.p-ocslogan{margin:44px 0 0;text-align:center;font-size:15.5px;font-weight:800;color:var(--green-dark)}
/* リード上のWEB予約バナー（リンク＝申込フォーム） */
.p-ocbanner{max-width:960px;margin:0 auto 36px}
.p-ocbanner a{display:block;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.25s}
.p-ocbanner a:hover{transform:translateY(-2px);opacity:.92}
.p-ocbanner img{display:block;width:100%;height:auto}
/* 耳より情報バナー（「当日の流れ」の直上に中央寄せ） */
.p-ocmimi{max-width:860px;margin:44px auto 0}
.p-ocmimi img{display:block;width:100%;height:auto;border-radius:var(--radius);box-shadow:var(--shadow)}
.p-ocmimi .c-note{text-align:center}
/* 当日の流れ（時系列6ステップ） */
.p-ocflow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:ocflow}
.p-ocflow__item{counter-increment:ocflow;position:relative;background:#fff;border-radius:var(--radius);padding:20px 20px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.p-ocflow__item::after{content:counter(ocflow,decimal-leading-zero);position:absolute;top:10px;right:16px;font-size:26px;font-weight:800;font-style:italic;line-height:1;color:var(--green);opacity:.22}
.p-ocflow__time{background:var(--green);color:#fff;font-size:13px;font-weight:800;letter-spacing:.05em;border-radius:999px;padding:.28em 1em;font-variant-numeric:tabular-nums}
.p-ocflow__name{font-size:16.5px;font-weight:800}
.p-ocflow__desc{font-size:12.5px;line-height:1.8;color:var(--ink-soft)}
@media (max-width: 640px){
  .p-ocnext{grid-template-columns:1fr;gap:14px}
  .p-ocslogan{font-size:14px}
  .p-ocbanner{margin-bottom:26px}
  .p-ocmimi{margin-top:30px}
  .p-ocflow{grid-template-columns:1fr 1fr;gap:12px}
  .p-ocflow__item{padding:16px 14px 14px}
  .p-ocflow__name{font-size:15px}
  .p-ocflow__desc{font-size:12px}
}

.p-t-plan-d{
  --brand-blue:#2a86b8;
  --brand-mid:#2f9a86;
  --brand-lime:#66b06a;
  --brand-grad:linear-gradient(100deg,#2a86b8 0%,#2f9a86 55%,#66b06a 100%);
  --brand-grad-v:linear-gradient(170deg,#2a86b8 0%,#2f9a86 52%,#66b06a 100%);
  --brand-grad-deep:linear-gradient(120deg,#1c6f9c 0%,#24806f 55%,#4a8f4f 100%);
  --green:#23806d;
  --green-dark:#17624f;
  --teal:#2a86b8;
  --mist:#f0f5f3;
}
/* キャッチをHTMLで重ねるヒーロー */
.p-t-plan-d .p-hero__shade-top{
  height:220px;
  background:linear-gradient(rgba(10,30,24,.55),rgba(10,30,24,0));
}
.p-t-plan-d .p-hero__shade-bottom{
  display:block;position:absolute;inset:auto 0 0 0;height:46%;z-index:1;
  background:var(--brand-grad);
  -webkit-mask-image:linear-gradient(to top,#000 0%,#000 16%,rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(to top,#000 0%,#000 16%,rgba(0,0,0,0) 100%);
}
.p-t-plan-d .p-hero__copy{
  position:absolute;left:6vw;right:6vw;bottom:52px;z-index:3;color:#fff;
  width:auto;height:auto;margin:0;padding:0;overflow:visible;
  clip:auto;clip-path:none;white-space:normal;
}

/* ==============================
   インラインstyle置換クラス
   ============================== */
.u-mt0{margin-top:0!important}
.u-mt10{margin-top:10px!important}
.u-mt16{margin-top:16px!important}
.u-mt22{margin-top:22px!important}
.u-mt26{margin-top:26px!important}
.u-mt30{margin-top:30px!important}
.u-mt34{margin-top:34px!important}
.u-mt40{margin-top:40px!important}
.u-mt44{margin-top:44px!important}
.u-mb22{margin-bottom:22px!important}
.u-mb34{margin-bottom:34px!important}
.u-mx-auto{margin-left:auto!important;margin-right:auto!important}
.u-mw820{max-width:820px!important} /* お問い合わせのLINE相談の囲み（u-mx-auto と併用） */
.u-center{text-align:center!important}
.u-phrase{display:inline-block} 

/* アクセスページ地図 */
.p-map iframe{display:block;width:100%;height:480px;border:0;border-radius:12px}

/* ==============================
   フォーム（資料請求／オープンキャンパス・個別相談）
   ============================== */

.p-day{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.p-day .c-card__body{padding:18px 20px}
/* カード上部のイラスト。イラストが無いカードがあっても崩れないよう、任意扱いにする */
.p-day__ph{display:block;margin:-18px -20px 12px;border-radius:12px 12px 0 0;overflow:hidden;background:#fff}
.p-day__ph img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
.p-day .c-card:nth-child(1) .p-day__ph img{transform:scale(1.15);transform-origin:57% 94%}
.p-day .c-card:nth-child(2) .p-day__ph img{transform:scale(1.1);transform-origin:33% 73%}
.p-day .c-card:nth-child(3) .p-day__ph img{transform:scale(1.25);transform-origin:101% 30%}
.p-day .c-card:nth-child(4) .p-day__ph img{transform:scale(1.25);transform-origin:103% 99%}
.p-day .c-card:nth-child(5) .p-day__ph img{transform:scale(1.1);transform-origin:24% 81%}

.p-day .p-time{
  display:inline-block;font-size:13px;font-weight:800;letter-spacing:.06em;
  color:#fff;background:var(--orange);border-radius:6px;padding:.2em .8em;margin-bottom:8px;
}
.p-day h3{font-size:15px;font-weight:800;color:var(--ink);margin-bottom:6px}
.p-day p{font-size:13px;color:var(--ink-soft);line-height:1.8}
@media (max-width:1024px){.p-day{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.p-day{grid-template-columns:1fr;gap:12px}.c-note--center{text-align:left}}

/* ==============================
   スマホでは長い文章の中央寄せをやめる
   ============================== */
@media (max-width:640px){
  .c-lower-lead,
  .c-dept-point,
  .p-ocmimi .c-note{text-align:left}
}

/* ==============================
   インライン style の置き換えクラス
   ============================== */

/* 本文中で高さだけを空けている空div */
.u-space15{height:15px}
.u-space20{height:20px}
.u-space30{height:30px}
.u-space40{height:40px}
.u-space50{height:50px}
.u-space60{height:60px}
.u-space80{height:80px}

/* 文字の寄せ・太さ・色・大きさ・行間 */
.u-left{text-align:left}          /* .c-lower-lead（中央寄せ）より後に置いて上書きする */
.u-fw400{font-weight:400}
.p-points .u-fw400{font-weight:400}   /* .p-points p（700）に勝たせるための詳細度 */
.u-orange{color:var(--orange-deep)}
.u-green-dark{color:var(--green-dark)}
.u-fs-lg{font-size:1.5rem}
.u-lh21{line-height:2.1}
.p-term__date--sm{font-size:17px}
/* 枠線なし・背景色つきの p-term（学科・学生生活ページの囲み） */
.p-term--flat{margin-top:30px;border:0}
.p-term--bg-pt{background:#dcebc6}
.p-term--bg-ems{background:#cbe2eb}
.p-term--bg-mist{background:var(--mist)}
/* 囲みの上に置く英字ラベル（Learning Policy） */
.p-term__en{display:block;margin-top:-8px;margin-bottom:16px;color:#5d5d5d;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
/* 学科紹介ページのバッジとボタンを学科カラーにする */
.p-gcourse__badge--pt{border-color:var(--dept-pt1)}
.p-gcourse__badge--ems{border-color:var(--dept-ems1)}
/* ボタンは :hover（オレンジ）より強い詳細度にして色を変えない */
.p-gcourse__btn--pt a{background:var(--dept-pt1)}
.p-gcourse__btn--ems a{background:var(--dept-ems1)}

/* ==============================
   オープンキャンパスページ（p-oclp-）
   ============================== */

.p-oclp-hero__catch,
.p-oclp-hero__sub,
.p-oclp-reason__copy,
.p-oclp-flow__hand{font-family:"Klee One","Hiragino Maru Gothic ProN","Yu Gothic",var(--font)}

/* ==============================
   題字帯（このページだけ細くする）
   ============================== */
.p-oclp-lhead{padding:clamp(84px,7vw,100px) 0 22px}
.p-oclp-lhead h1{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:18px;row-gap:2px}
.p-oclp-lhead .c-lhead__en{font-size:clamp(26px,3vw,34px);line-height:1.2}
.p-oclp-lhead .c-lhead__ja{margin-top:0;font-size:clamp(13px,1.4vw,15px)}
.p-oclp-lhead .c-lhead__deco-dots{width:118px;height:44px;bottom:12px;opacity:.5}
.p-oclp-lhead::after{display:none} /* 帯が細いのでハートのあしらいは出さない */
@media (min-width:1025px){
  .p-oclp-lhead{padding:160px 0 26px}
}

/* ==============================
   ① ヒーロー（全面写真＋手書きコピー）
   ============================== */
.p-oclp-hero{padding-bottom:40px}
.p-oclp-hero__stage{position:relative;height:clamp(420px,38vw,540px);background:var(--paper)}
/* 写真2枚をステージ全面に（境目は白4px） */
.p-oclp-hero__photos{position:absolute;inset:0;display:grid;grid-template-columns:55fr 45fr;gap:4px;background:var(--paper)}
.p-oclp-hero__cell{position:relative;overflow:hidden}
.p-oclp-hero__img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;object-fit:cover}
.p-oclp-hero__img--pt{width:150%;height:150%;object-position:40% 26%}
/* EMS写真：人物が左寄りなので少しだけ寄せる */
.p-oclp-hero__img--ems{width:114%;height:114%;left:-2%;object-position:30% 26%}
.p-oclp-hero__img--posl{object-position:20% 50%}
.p-oclp-hero__img--posc{object-position:50% 50%}
.p-oclp-hero__img--posr{object-position:80% 50%}
/* 左端だけごく薄く白をかけて文字の可読性を確保（顔にはかけない） */
.p-oclp-hero__photos::before{content:"";position:absolute;left:0;top:0;bottom:0;width:30%;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,.3) 48%,rgba(255,255,255,0) 100%)}
/* 写真の境目あたりに置く手書きの一言 */
.p-oclp-hero__sub{position:absolute;left:56%;top:8%;z-index:2;font-size:clamp(14px,1.25vw,17px);font-weight:600;line-height:1.95;letter-spacing:.04em;color:var(--ink);text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 8px rgba(255,255,255,.95),0 0 18px rgba(255,255,255,.85);transform:rotate(-3deg)}
/* コピー（舞台内で縦中央・左寄せ。コンテナ幅ではなく画面左端に寄せる） */
.p-oclp-hero__inner{position:absolute;left:0;right:0;top:0;bottom:0;z-index:2;max-width:none;padding:0 clamp(24px,4vw,60px);display:flex;align-items:center;pointer-events:none}
.p-oclp-hero__copy{position:relative;z-index:0;width:min(38%,470px);pointer-events:auto}
/* コピーの後ろにだけ白いもやを敷く（楕円で外へ向かって消える） */
.p-oclp-hero__copy::before{content:"";position:absolute;z-index:-1;inset:-16% -14% -16% -20%;pointer-events:none;background:radial-gradient(closest-side,rgba(255,255,255,.6),rgba(255,255,255,.4) 55%,rgba(255,255,255,0))}
/* 写真に重なる文字は白ふち＋外側にぼかしで浮かせる */
.p-oclp-hero__catch{font-size:clamp(28px,3.4vw,47px);font-weight:600;line-height:1.5;letter-spacing:.02em;color:var(--ink);text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 8px rgba(255,255,255,.95),0 0 18px rgba(255,255,255,.85);transform:rotate(-4deg);transform-origin:left center}
.p-oclp-hero__catch em{position:relative;font-style:normal;background:var(--brand-grad-deep);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 2px #fff) drop-shadow(0 0 8px rgba(255,255,255,.9))}
/* 2行目の下にマーカー風の細い帯 */
.p-oclp-hero__catch em::after{content:"";position:absolute;z-index:-1;left:-.06em;right:-.12em;bottom:.04em;height:.14em;border-radius:999px;background:var(--brand-lime);transform:rotate(-1.2deg)}
.p-oclp-hero__lead{max-width:23em;margin-top:26px;font-size:15px;font-weight:600;line-height:1.95;color:var(--ink);text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 8px rgba(255,255,255,.95),0 0 18px rgba(255,255,255,.85);word-break:auto-phrase} /* 人物に届く前に、文節で折り返す */

/* ==============================
   開催日の帯（ヒーロー写真の下端に重ねる）
   ============================== */
.p-oclp-dates{position:relative;z-index:3;margin-top:-64px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px}
.p-oclp-dates__card{display:grid;grid-template-columns:152px minmax(0,1fr);align-items:center;background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow)}
.p-oclp-dates__label{align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 10px;text-align:center;font-size:14.5px;font-weight:800;line-height:1.55;color:#fff;background:var(--brand-grad-deep);border-radius:var(--radius) 0 0 var(--radius)}
/* 中央：日付リスト＋開催時間 */
.p-oclp-dates__body{padding:12px 14px}
.p-oclp-dates__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.p-oclp-dates__list li + li{border-left:1px solid var(--line)}
.p-oclp-dates__list a{display:flex;flex-wrap:wrap;align-items:center;align-content:flex-start;justify-content:center;column-gap:6px;row-gap:1px;min-height:62px;height:100%;padding:4px;border-radius:10px;transition:background .2s}
.p-oclp-dates__list a:hover{background:var(--mist)}
.p-oclp-dates__md{font-size:clamp(26px,2.2vw,31px);font-weight:800;line-height:1.25;letter-spacing:.01em;color:var(--green-dark);font-variant-numeric:tabular-nums}
.p-oclp-dates__wd{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--teal);color:#fff;font-size:11px;font-weight:700;line-height:1}
.p-oclp-dates__list small{flex-basis:100%;text-align:center;font-size:10.5px;font-weight:700;line-height:1.4;color:var(--orange)}
.p-oclp-dates__time{margin-top:6px;padding-top:7px;border-top:1px solid var(--line);text-align:center;font-size:12.5px;color:var(--ink-soft)}
/* 「OC日程」が1件も登録されていないとき（日付リストの代わりに出す一文） */
.p-oclp-dates__empty{min-height:62px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;font-weight:700;color:var(--ink-soft)}
/* 右：帯の隣に独立した丸い申込ボタン */
.p-oclp-dates__btn{font-size:14.5px;padding:1.05em 1.8em;box-shadow:0 8px 22px rgba(240,140,46,.38)}
.p-oclp-dates__btn i{font-style:normal;font-size:17px;line-height:1;transition:transform .2s}
.p-oclp-dates__btn:hover i{transform:translateX(3px)}

/* ==============================
   ② 参加特典3つ（コンパクトな横長カードの帯）
   ============================== */
.p-oclp-perks{padding:44px 0 48px}
.p-oclp-perks__title{margin-bottom:20px;text-align:center;font-size:16px;font-weight:800;letter-spacing:.04em;color:var(--green-dark)}
.p-oclp-perks__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.p-oclp-perks__item{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:14px;align-items:center;padding:16px 18px;background:var(--paper);border-radius:12px;box-shadow:0 4px 16px rgba(28,43,40,.09)}
.p-oclp-perks__icon{grid-column:1;grid-row:1 / 4;align-self:center;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--brand-grad);color:#fff}
.p-oclp-perks__icon svg{width:27px;height:27px}
.p-oclp-perks__num{grid-column:2;font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--orange)}
.p-oclp-perks__item h3{grid-column:2;margin-top:1px;font-size:16px;font-weight:800}
.p-oclp-perks__item p{grid-column:2;margin-top:4px;font-size:12.5px;line-height:1.7;color:var(--ink-soft)}

/* ==============================
   ③ 体験できる学科（学科ごとの段＋開催回カードの横スライダー）
   ============================== */
.p-oclp-exp{margin-top:34px}
.p-oclp-exp__row + .p-oclp-exp__row{margin-top:48px}
/* 段の頭：左に学科ラベル／右に矢印 */
.p-oclp-exp__head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.p-oclp-exp__dept{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;padding:8px 22px 9px;font-size:17px;font-weight:800;line-height:1.4;color:#fff;text-shadow:0 1px 3px rgba(28,43,40,.3);border-radius:999px}
.p-oclp-exp__dept small{font-size:11.5px;font-weight:700;letter-spacing:.05em;line-height:1.3}
.p-oclp-exp__row--ems .p-oclp-exp__dept{background:linear-gradient(90deg,var(--dept-ems1),var(--dept-ems2))}
.p-oclp-exp__row--pt .p-oclp-exp__dept{background:linear-gradient(90deg,var(--dept-pt1),var(--dept-pt2))}
.p-oclp-exp__nav{display:flex;gap:10px;flex:none}
.p-oclp-exp__nav[hidden]{display:none}
.p-oclp-exp__btn{display:grid;place-items:center;width:40px;height:40px;padding:0;font-family:inherit;font-size:16px;font-weight:700;line-height:1;color:var(--green-dark);background:var(--paper);border:1px solid var(--line);border-radius:50%;cursor:pointer;transition:.2s}
.p-oclp-exp__btn i{font-style:normal}
.p-oclp-exp__btn:hover{color:#fff;background:var(--green);border-color:var(--green)}
.p-oclp-exp__btn:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.p-oclp-exp__btn[disabled]{opacity:.35;pointer-events:none}
.p-oclp-exp__track{list-style:none;margin:4px -16px -10px;padding:12px 16px 24px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 26px) / 2);gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none}
.p-oclp-exp__track::-webkit-scrollbar{display:none}
.p-oclp-exp__card{display:flex;flex-direction:column;min-width:0;scroll-snap-align:start;background:var(--paper);border-radius:var(--radius);box-shadow:0 6px 16px rgba(28,43,40,.11);overflow:hidden}
.p-oclp-exp__ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--line)}
.p-oclp-exp__ph img{width:100%;height:100%;object-fit:cover}
/* 開催日：写真の左上に重ねる白いピル */
.p-oclp-exp__date{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:5px;padding:6px 13px 6px 12px;font-size:16px;font-weight:800;line-height:1.1;color:var(--ink);background:rgba(255,255,255,.95);border-radius:999px;box-shadow:0 3px 10px rgba(28,43,40,.16);font-variant-numeric:tabular-nums}
.p-oclp-exp__date small{margin-right:3px;padding:.3em .7em;font-size:10.5px;font-weight:800;letter-spacing:.04em;line-height:1;color:#fff;background:var(--orange);border-radius:999px}
.p-oclp-exp__date em{font-style:normal;font-size:12px;font-weight:700}
.p-oclp-exp__body{flex:1 1 auto;display:flex;flex-direction:column;padding:16px 20px 20px}
.p-oclp-exp__body h3{font-size:18px;font-weight:800;line-height:1.5;color:var(--green-dark);word-break:auto-phrase}
.p-oclp-exp__row--ems .p-oclp-exp__body h3{color:var(--teal)}
/* 見出しは開催回ページへのリンク（色は見出しのまま、ホバーで下線） */
.p-oclp-exp__body h3 a{color:inherit;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.2em;transition:text-decoration-color .2s}
.p-oclp-exp__body h3 a:hover{text-decoration-color:currentColor}
.p-oclp-exp__body h3 + p{margin-top:8px;font-size:13.5px;line-height:1.85;color:var(--ink-soft)}
.p-oclp-exp__body .p-oclp-exp__link{margin-top:auto;padding-top:14px;text-align:right;font-size:13.5px;font-weight:700;line-height:1.4;color:var(--green-dark)}
.p-oclp-exp__row--ems .p-oclp-exp__body .p-oclp-exp__link{color:var(--teal)}
.p-oclp-exp__link a{color:inherit;text-decoration:underline;text-underline-offset:.2em}
.p-oclp-exp__link a:hover{text-decoration:none}
.p-oclp-exp__link i{display:inline-block;margin-left:4px;font-style:normal;transition:transform .2s}
.p-oclp-exp__link a:hover i{transform:translateX(4px)}
.p-oclp-exp__cta{margin:18px 0 0;text-align:center}
.p-oclp-exp__more i{font-style:normal;transition:transform .2s}
.p-oclp-exp__more:hover i{transform:translateX(4px)}

/* ==============================
   ④ 七尾校が選ばれる理由（全面写真の帯＋白パネル）
   ============================== */
.p-oclp-reason{position:relative;overflow:clip;padding:56px 0 60px}
.p-oclp-reason__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 26%}
.p-oclp-reason > .l-container{position:relative;z-index:1}
.p-oclp-reason__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:40px;align-items:center}
.p-oclp-reason__copy{align-self:start;font-size:clamp(20px,2vw,27px);font-weight:600;line-height:1.75;letter-spacing:.02em;color:var(--ink);text-shadow:0 2px 14px rgba(255,255,255,.85),0 0 22px rgba(255,255,255,.7);transform:rotate(-2.5deg);transform-origin:left top}
.p-oclp-reason__panel{padding:30px 34px 22px;background:rgba(255,255,255,.9);border-radius:var(--radius);box-shadow:var(--shadow)}
.p-oclp-reason__panel .c-heading{margin-bottom:22px}
.p-oclp-reason__list{list-style:none;margin:0;padding:0;counter-reset:oclpreason}
.p-oclp-reason__list li{counter-increment:oclpreason;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:16px;align-items:start;padding:14px 0}
.p-oclp-reason__list li + li{border-top:1px solid var(--line)}
.p-oclp-reason__list li::before{content:counter(oclpreason,decimal-leading-zero);grid-row:1 / 3;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--brand-grad-deep);color:#fff;font-size:14px;font-weight:800;letter-spacing:.02em}
.p-oclp-reason__list h3{font-size:16.5px;font-weight:800;color:var(--green-dark)}
.p-oclp-reason__list p{margin-top:5px;font-size:13.5px;line-height:1.85;color:var(--ink-soft)}
.p-oclp-reason.p-oclp-reason--door{padding-top:0}
.p-oclp-reason__visual{position:relative}
.p-oclp-reason--door .p-oclp-reason__bg{position:static;display:block;height:clamp(360px,36vw,560px)}
.p-oclp-reason__bg--about{object-position:center 35%}
.p-oclp-reason__bg--gakka{object-position:center 0}
.p-oclp-reason__bg--nyushi{object-position:center 40%}
.p-oclp-reason__visual > .l-container{position:absolute;inset:0;max-width:none;padding:clamp(28px,4vw,56px) clamp(24px,5vw,88px) 0} /* 本文の幅（1140px）ではなく写真の左上の角に寄せる */
.p-oclp-reason--door .p-oclp-reason__copy{margin:0;font-size:clamp(28px,3.2vw,44px);line-height:1.5;white-space:nowrap;transform:none}
/* 学科紹介：人物の左右の空きに縦書き */
.p-oclp-reason--door .p-oclp-reason__copy--tate{position:absolute;inset:0;height:100%;pointer-events:none}
.p-oclp-reason__copy--tate span{position:absolute;top:clamp(28px,4vw,56px);writing-mode:vertical-rl;letter-spacing:.24em}
.p-oclp-reason__copy--tate span:first-child{right:9%}
.p-oclp-reason__copy--tate span:last-child{left:9%}
.p-oclp-reason--door .p-oclp-reason__visual + .l-container{margin-top:clamp(32px,4vw,48px)}
.p-oclp-reason--door .c-lower-lead{font-size:17px;line-height:2;word-break:auto-phrase}
@media (min-width:1181px){
.p-oclp-reason--door .c-lower-lead{white-space:nowrap}
}

/* ==============================
   ⑤ 当日のスケジュール（6ステップ・間に三角）
   ============================== */
.p-oclp-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;counter-reset:oclpflow}
.p-oclp-flow__item{position:relative;counter-increment:oclpflow;display:flex;flex-direction:column;gap:8px}
/* 番号の丸＋時刻 */
.p-oclp-flow__time{display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.p-oclp-flow__time::before{content:counter(oclpflow,decimal-leading-zero);display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--teal);color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em}
.p-oclp-flow__name{text-align:center;font-size:16px;font-weight:800;color:var(--green-dark)}
.p-oclp-flow__ph{aspect-ratio:3/4;border-radius:10px;overflow:hidden}
.p-oclp-flow__ph img{width:100%;height:100%;object-fit:cover}
.p-oclp-flow__ph .c-ph{width:100%;height:100%;min-height:0;font-size:11px}
.p-oclp-flow__desc{font-size:12.5px;line-height:1.7;color:var(--ink-soft)}
.p-oclp-flow__item::after{content:"";position:absolute;top:65px;right:-12px;margin-top:66.6%;transform:translateY(-50%);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid var(--teal)}
.p-oclp-flow__item:last-child::after{display:none}
/* 左右に添える手書きの一言 */
.p-oclp-flow__hands{display:flex;justify-content:space-between;gap:20px;margin-top:14px}
.p-oclp-flow__hand{font-size:15px;font-weight:600;line-height:1.6;color:var(--teal)}
.p-oclp-flow__hand:first-child{transform:rotate(-4deg)}
.p-oclp-flow__hand:last-child{transform:rotate(3deg)}
/* 詳しい案内へのボタン行 */
.p-oclp-morelinks{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px}

/* ==============================
   送迎バス／年間スケジュール
   ============================== */
.p-oclp-info__table{max-width:860px;margin-left:auto;margin-right:auto}
.p-oclp-wbr{display:inline-block}
.p-oclp-info .c-scroll-x .c-lower-table{min-width:0}
.p-oclp-info .c-lower-table td a{color:var(--green-dark);font-weight:700;text-decoration:underline;text-underline-offset:.2em}
.p-oclp-info .c-lower-table td a:hover{color:var(--green);text-decoration:none}
.p-oclp-bus{max-width:960px;margin:40px auto 0;padding:64px 48px 60px;scroll-margin-top:24px} /* p-term--point の余白（32px）より広げる */
.p-oclp-bus__head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0;font-size:18px;font-weight:800;line-height:1.35;color:var(--green-dark)}
.p-oclp-bus__icon{position:relative;flex:none;width:44px;height:44px;border-radius:50%;background:var(--green)}
.p-oclp-bus__icon::before{content:"";position:absolute;inset:0;margin:auto;width:22px;height:22px;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='14' rx='2.5'/%3E%3Cpath d='M4 11h16M8 17v3M16 17v3M7.5 14h.01M16.5 14h.01'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='14' rx='2.5'/%3E%3Cpath d='M4 11h16M8 17v3M16 17v3M7.5 14h.01M16.5 14h.01'/%3E%3C/svg%3E") center/contain no-repeat}
.p-oclp-bus__via{font-size:14px;font-weight:700;color:var(--ink-soft)}
.p-oclp-bus__list{position:relative;list-style:none;margin:0;padding:2rem 0 0;}
.p-oclp-bus__list::before{content:"";position:absolute;left:21px;top:0;bottom:14px;width:2px;background:var(--line)}
.p-oclp-bus__stop{position:relative;display:grid;grid-template-columns:128px minmax(0,1fr) minmax(0,260px);gap:24px;align-items:start;padding:18px 0}
.p-oclp-bus__stop + .p-oclp-bus__stop{border-top:1px solid var(--line)}
.p-oclp-bus__stop::before{content:"";position:absolute;left:16px;top:calc(18px + .6em);width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #fff}
.p-oclp-bus__time{align-self:start;margin:0;padding-left:52px;font-size:24px;font-weight:800;line-height:1.2;color:var(--green-dark)}
.p-oclp-bus__name{margin:0 0 6px;padding-top:2px;font-size:16.5px;font-weight:800;line-height:1.5}
.p-oclp-bus__name span{font-size:14px;color:var(--ink-soft)}
.p-oclp-bus__info .c-link{font-size:14px}
.p-oclp-bus__map{position:relative;aspect-ratio:16/10;border-radius:10px;overflow:hidden;background:var(--mist)}
.p-oclp-bus__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.p-oclp-bus__goal{position:relative;padding:14px 0 0 52px;border-top:1px solid var(--line);font-size:16.5px;font-weight:800;color:var(--green-dark)}
.p-oclp-bus__goal::before{content:"";position:absolute;left:16px;top:calc(14px + .45em);width:12px;height:12px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px #fff}
.p-oclp-bus[hidden]{display:none}
.p-oclp-bus__note{max-width:960px;margin-left:auto;margin-right:auto}

/* ==============================
   ⑥ 申し込みフォーム（mist背景の上の白いカード）
   ============================== */
.p-oclp-form{position:relative;max-width:940px;margin:2rem auto 0;padding:40px;background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow)}
.p-oclp-form .c-form__wrap{max-width:none}
.p-oclp-form .formsys-frame {box-shadow:none; padding: 32px 0;}


/* ==============================
   〜1024px
   ============================== */
@media (max-width:1024px){
  .p-oclp-lhead{padding:96px 0 20px}
  /* ヒーロー */
  .p-oclp-hero{padding-bottom:32px}
  .p-oclp-hero__sub{display:none}
  .p-oclp-hero__copy{width:min(46%,400px)}
  .p-oclp-hero__lead{margin-top:18px;font-size:14px}
  /* 開催日：ボタンを下段に回す */
  .p-oclp-dates{grid-template-columns:minmax(0,1fr);margin-top:-44px;gap:14px}
  .p-oclp-dates__btn{justify-self:center}
  /* 特典 */
  .p-oclp-perks__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .p-oclp-perks__item{grid-template-columns:48px minmax(0,1fr);column-gap:12px;padding:14px}
  .p-oclp-perks__icon{width:48px;height:48px}
  .p-oclp-perks__icon svg{width:24px;height:24px}
  .p-oclp-perks__item h3{font-size:14.5px}
  .p-oclp-perks__item p{font-size:12px;line-height:1.65}
  /* 体験：2枚表示のまま、間隔だけ詰める */
  .p-oclp-exp__track{grid-auto-columns:calc((100% - 18px) / 2);gap:18px}
  /* 理由：コピーを上、パネルを下に */
  .p-oclp-reason{padding:44px 0 48px}
  .p-oclp-reason__inner{grid-template-columns:minmax(0,1fr);gap:22px}
  .p-oclp-reason__panel{max-width:620px;margin-left:auto} /* 左に写真の人物を見せる */
  .p-oclp-reason__bg{object-position:center 22%}
  /* 送迎バス：地図の列を細く */
  .p-oclp-bus__stop{grid-template-columns:116px minmax(0,1fr) minmax(0,220px);gap:18px}
  /* スケジュール：3列×2段（3列目・6列目の三角は消す） */
  .p-oclp-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 14px}
  .p-oclp-flow__item:nth-child(3n)::after{display:none}
}

/* ==============================
   〜640px
   ============================== */
@media (max-width:640px){
  /* 題字帯 */
  .p-oclp-lhead{padding:74px 0 16px}
  .p-oclp-lhead h1{column-gap:12px}
  .p-oclp-lhead .c-lhead__en{font-size:23px}
  .p-oclp-lhead .c-lhead__ja{font-size:12px;letter-spacing:.08em}
  /* ヒーロー：写真を上に2枚並べ、その下にコピー */
  .p-oclp-hero{padding-bottom:28px}
  .p-oclp-hero__stage{height:auto;display:block}
  .p-oclp-hero__photos{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;min-width:0}
  .p-oclp-hero__photos::before,
  .p-oclp-hero__copy::before{display:none} /* スマホはコピーが写真の下に回るので、もやは要らない */
  .p-oclp-hero__cell{aspect-ratio:4/5;min-width:0}
  .p-oclp-hero__img--pt{width:128%;height:128%}
  .p-oclp-hero__img--ems{width:112%;height:112%;left:-6%}
  .p-oclp-hero__cell:first-child{order:2}
  .p-oclp-hero__inner{position:static;display:block;padding:24px 24px 0}
  .p-oclp-hero__copy{width:auto}
  .p-oclp-hero__catch{transform:rotate(-3deg)}
  .p-oclp-hero__lead{margin-top:16px;font-size:13.5px}
  /* 開催日：ラベル上段全幅／日付2×2／ボタン全幅 */
  .p-oclp-dates{margin-top:22px;gap:12px}
  .p-oclp-dates__card{grid-template-columns:minmax(0,1fr)}
  .p-oclp-dates__label{flex-direction:row;gap:.3em;padding:10px 12px;font-size:14px;border-radius:var(--radius) var(--radius) 0 0}
  .p-oclp-dates__label br{display:none}
  .p-oclp-dates__body{padding:10px 12px 12px}
  .p-oclp-dates__list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p-oclp-dates__list li + li{border-left:0}
  .p-oclp-dates__list li:nth-child(even){border-left:1px solid var(--line)}
  .p-oclp-dates__list li:nth-child(n+3){border-top:1px solid var(--line)}
  .p-oclp-dates__list a{min-height:64px}
  .p-oclp-dates__btn{justify-self:stretch}
  /* 特典：1列 */
  .p-oclp-perks{padding:36px 0 40px}
  .p-oclp-perks__list{grid-template-columns:minmax(0,1fr);gap:10px}
  .p-oclp-perks__item{grid-template-columns:48px minmax(0,1fr);padding:14px 16px}
  /* 体験：1枚＋次のカードの端を見せる（横スワイプ） */
  .p-oclp-exp{margin-top:26px}
  .p-oclp-exp__row + .p-oclp-exp__row{margin-top:40px}
  .p-oclp-exp__head{gap:10px}
  .p-oclp-exp__dept{flex-direction:column;align-items:flex-start;gap:1px;padding:7px 16px 8px;font-size:15.5px;border-radius:12px}
  .p-oclp-exp__dept small{font-size:10.5px}
  .p-oclp-exp__nav{gap:8px}
  .p-oclp-exp__btn{width:36px;height:36px;font-size:15px}
  .p-oclp-exp__track{margin-top:0;grid-auto-columns:82%;gap:14px}
  .p-oclp-exp__date{left:10px;top:10px;padding:5px 11px 5px 10px;font-size:15px}
  .p-oclp-exp__body{padding:14px 16px 16px}
  .p-oclp-exp__body h3{font-size:17px}
  .p-oclp-exp__body h3 + p{font-size:13.5px}
  /* 理由 */
  .p-oclp-reason{padding:34px 0 38px}
  .p-oclp-reason__bg{object-position:60% 20%}
  .p-oclp-reason__copy{font-size:19px;line-height:1.7}
  /* 扉絵：写真が小さく被写体に重なるので、コピーは写真の下に横書きで出す */
  .p-oclp-reason--door .p-oclp-reason__bg{height:auto;aspect-ratio:2/1}
  .p-oclp-reason__visual > .l-container{position:static;padding-top:22px}
  .p-oclp-reason--door .p-oclp-reason__copy{font-size:22px;white-space:normal}
  .p-oclp-reason--door .p-oclp-reason__copy--tate{position:static;padding:22px 20px 0}
  .p-oclp-reason__copy--tate span{position:static;transform:none;writing-mode:horizontal-tb;letter-spacing:.02em}
  .p-oclp-reason--door .p-oclp-reason__visual + .l-container{margin-top:10px}
  .p-oclp-reason--door .c-lower-lead{font-size:15px;text-align:left}
  .p-oclp-reason__panel{padding:20px 16px 14px;background:rgba(255,255,255,.94)}
  .p-oclp-reason__list li{grid-template-columns:38px minmax(0,1fr);column-gap:10px;padding:12px 0}
  .p-oclp-reason__list li::before{width:38px;height:38px;font-size:13px}
  /* 見出しが不自然な位置で折り返さないよう文字を詰める */
  .p-oclp-reason__list h3{font-size:14.5px;letter-spacing:0;word-break:auto-phrase}
  .p-oclp-reason__list p{font-size:13px}
  /* スケジュール：1列・左に写真／右に本文 */
  .p-oclp-flow{grid-template-columns:minmax(0,1fr);gap:0}
  .p-oclp-flow__item{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:14px;row-gap:4px;align-items:start;padding:16px 0}
  .p-oclp-flow__item + .p-oclp-flow__item{border-top:1px solid var(--line)}
  .p-oclp-flow__item::after{display:none}
  .p-oclp-flow__ph{grid-column:1;grid-row:1 / 4;aspect-ratio:1/1}
  .p-oclp-flow__ph .c-ph span{font-size:10px;line-height:1.4;padding:0 4px;letter-spacing:.02em}
  .p-oclp-flow__time{grid-column:2;justify-content:flex-start}
  .p-oclp-flow__name{grid-column:2;text-align:left}
  .p-oclp-flow__desc{grid-column:2}
  .p-oclp-flow__hands{display:none}
  .p-oclp-morelinks{margin-top:28px;gap:10px}
  .p-oclp-morelinks .c-btn{width:100%}
  /* 送迎バスの方面ボタンは横3つ並び */
  #bus .p-oclp-morelinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  #bus .p-oclp-morelinks .c-btn{padding:.8em .2em;font-size:14px}
  /* フォーム */
  .p-oclp-form{padding:24px 16px}
  /* 送迎バス：時刻と乗り場名を横並び、地図はその下に全幅 */
  .p-oclp-bus{margin-top:28px;padding:32px 20px 28px;scroll-margin-top:112px}
  .p-oclp-bus__stop{grid-template-columns:100px minmax(0,1fr);gap:10px 8px;padding:16px 0}
  .p-oclp-bus__time{font-size:20px;padding-left:48px}
  .p-oclp-bus__name{padding-top:0;font-size:15px}
  .p-oclp-bus__map{grid-column:1 / -1}
  .p-oclp-bus__goal{font-size:15px;padding-left:48px}
}

/* ==============================
   開催回ページ（p-ocev-）
   ============================== */
.p-ocev{max-width:860px;margin:0 auto}
/* 題字帯：和文（開催回タイトル）の下に開催日 */
.p-ocev-lhead__date{display:inline-block;margin-top:16px;padding:.4em 1.1em;font-size:clamp(14px,1.5vw,16px);font-weight:700;letter-spacing:.06em;line-height:1.4;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.4);border-radius:999px;font-variant-numeric:tabular-nums}
/* 節の見出し（左に縦のバー） */
.p-ocev__heading{display:flex;align-items:center;gap:10px;margin:52px 0 20px;font-size:21px;font-weight:800;line-height:1.5;color:var(--ink)}
.p-ocev__heading::before{content:"";flex:none;width:6px;height:1.2em;border-radius:3px;background:linear-gradient(180deg,var(--brand-blue),var(--brand-mid) 50%,var(--brand-lime))}

/* ① 開催情報 */
.p-ocev-info{padding:24px 30px;background:var(--mist);border-left:6px solid var(--orange);border-radius:var(--radius)}
.p-ocev-info__date{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:15px;font-weight:700;color:var(--ink-soft)}
.p-ocev-info__date time{font-size:clamp(24px,2.6vw,30px);font-weight:800;line-height:1.3;color:var(--green-dark);font-variant-numeric:tabular-nums}
.p-ocev-info__date time span{font-size:.62em;font-weight:700}
.p-ocev-info__badge{display:inline-block;padding:.35em .9em;font-size:12px;font-weight:800;letter-spacing:.06em;line-height:1;color:#fff;background:var(--orange);border-radius:999px}
.p-ocev-info__badge--past{background:var(--ink-soft)}
.p-ocev-info__list{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);display:grid;gap:6px}
.p-ocev-info__list div{display:grid;grid-template-columns:6em minmax(0,1fr);gap:12px}
.p-ocev-info__list dt{font-size:13.5px;font-weight:800;color:var(--green-dark)}
.p-ocev-info__list dd{margin:0;font-size:14.5px;line-height:1.75;color:var(--ink)}

/* ② アイキャッチ（横長16:9） */
.p-ocev-thumb{margin:32px 0 0;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:var(--line);box-shadow:var(--shadow)}
.p-ocev-thumb img{display:block;width:100%;height:100%;object-fit:cover}

/* ③ この回の体験内容（2枚並び。救急→理学） */
.p-ocev-exp__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
/* 学科指定の回はカード1枚：2列にせず幅を抑えて中央に */
.p-ocev-exp__list--single{grid-template-columns:minmax(0,1fr);max-width:560px;margin-inline:auto}
.p-ocev-exp__card{display:flex;flex-direction:column;min-width:0;background:var(--paper);border-radius:var(--radius);box-shadow:0 6px 16px rgba(28,43,40,.11);overflow:hidden}
.p-ocev-exp__ph{aspect-ratio:16/10;overflow:hidden;background:var(--line)}
.p-ocev-exp__ph img{display:block;width:100%;height:100%;object-fit:cover}
.p-ocev-exp__body{padding:16px 20px 20px}
.p-ocev-exp__dept{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;padding:5px 14px 6px;font-size:13.5px;font-weight:800;line-height:1.4;color:#fff;text-shadow:0 1px 3px rgba(28,43,40,.3);border-radius:999px}
.p-ocev-exp__dept small{font-size:10px;font-weight:700;letter-spacing:.05em}
.p-ocev-exp__card--ems .p-ocev-exp__dept{background:linear-gradient(90deg,var(--dept-ems1),var(--dept-ems2))}
.p-ocev-exp__card--pt .p-ocev-exp__dept{background:linear-gradient(90deg,var(--dept-pt1),var(--dept-pt2))}
.p-ocev-exp__body h3{margin-top:10px;font-size:18px;font-weight:800;line-height:1.5;color:var(--green-dark);word-break:auto-phrase}
.p-ocev-exp__card--ems .p-ocev-exp__body h3{color:var(--teal)}
.p-ocev-exp__body h3 + p,.p-ocev-exp__dept + p{margin-top:8px;font-size:13.5px;line-height:1.85;color:var(--ink-soft)}

.p-ocev-detail__body > :last-child{margin-bottom:0}

/* ⑤ 申込・戻る */
.p-ocev-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:52px}

/* ⑥ 他の開催日（日付ピル） */
.p-ocev-others{margin-top:52px;padding-top:32px;border-top:1px solid var(--line);text-align:center}
.p-ocev-others__title{font-size:16px;font-weight:800;color:var(--ink)}
.p-ocev-others__list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.p-ocev-others__list a{display:inline-flex;align-items:center;gap:6px;padding:.45em 1.1em .45em 1.2em;font-size:19px;font-weight:800;line-height:1.3;color:var(--green-dark);background:var(--paper);border:1.5px solid var(--line);border-radius:999px;font-variant-numeric:tabular-nums;transition:.2s}
.p-ocev-others__list a span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--teal);color:#fff;font-size:11px;font-weight:700;line-height:1}
.p-ocev-others__list a:hover{border-color:var(--green);background:var(--mist)}

@media (max-width:640px){
  .p-ocev-lhead__date{margin-top:12px}
  .p-ocev__heading{margin:40px 0 16px;font-size:18px}
  .p-ocev-info{padding:18px 18px 18px 16px;border-left-width:5px}
  .p-ocev-info__list div{grid-template-columns:5em minmax(0,1fr);gap:8px}
  .p-ocev-info__list dd{font-size:14px}
  .p-ocev-thumb{margin-top:24px}
  .p-ocev-exp__list{grid-template-columns:minmax(0,1fr);gap:18px}
  .p-ocev-exp__body{padding:14px 16px 16px}
  .p-ocev-exp__body h3{font-size:17px}
  .p-ocev-btns{margin-top:40px;gap:12px}
  .p-ocev-btns .c-btn{width:100%;padding-left:1em;padding-right:1em}
  .p-ocev-others{margin-top:40px;padding-top:26px}
  .p-ocev-others__list a{font-size:17px}
}

.p-oclp-exp__ph img{backface-visibility:hidden;transform:translateZ(0)}

