/* 自動生成：export_wp.py（静的版 css/dorm2.css・shinsei2.css・form2.css と同一）。直接編集しない */

/* ---- テーマのリセット打ち消し（WP組込み時のみ） ---- */
.p-dorm :where(h1,h2,h3,h4,h5,h6,p,address,ul,ol,li,dl,dt,dd,table,caption,th,td,img,form){line-height:revert;font-size:revert;vertical-align:revert;list-style-type:revert;border-collapse:revert}
.p-dorm :where(h1,h2,h3,h4,h5,h6){border-color:revert}
.p-dorm :where(ul,ol,li,dl,dd){margin:revert;padding:revert}
.p-dorm :where(audio,canvas,iframe,svg,video){vertical-align:revert}
.p-dorm :where(legend){display:revert;max-width:revert;white-space:revert;color:revert}
.p-dorm :where(a,button,input,select,textarea,summary,label):focus-visible{outline:revert}

/* ---- dorm2.css ---- */
/* 留学生寮ページ｜Figma 219:2（案2・先方承認）の寸法どおり。body.p-dorm に閉じる。
   値の出典はすべて get_design_context（2026-10-05 取得）。目測で変えない。
   PC＝1440基準（内側1100／800）。SP＝1023px以下で1列に落とす（Figma案2はPCのみのためPC先行→SP追従）。 */
.p-dorm{
  --d-blue:#44a8da; --d-blue-hand:#2b8cc4; --d-text:#595959; --d-gray:#6b6b6b;
  --d-line:#060001; --d-cell:#fbfcfc; --d-soft:#e8fffd; --d-hair:#eee;
  --d-band-from:#44a8da; --d-band-to:#72c6dd; --d-kv-from:#a3d9f6; --d-kv-to:#e8fffd;
  --d-abk:#b20000; --d-somei:#1c6bb0; --d-oji:#2e8b57;
  --d-r:16px; --d-shadow:drop-shadow(0 2px 5px rgba(0,0,0,.06));
  --d-in:1100px; --d-in2:800px;
  --f-jp:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --f-hand-en:"Caveat",cursive; --f-hand-ja:"Klee One","Caveat",cursive;
  margin:0; background:#fff; color:var(--d-text); font-family:var(--f-jp);
  font-size:16px; line-height:28.8px; -webkit-font-smoothing:antialiased;
}
.p-dorm *{box-sizing:border-box}
.p-dorm p,.p-dorm h1,.p-dorm h2,.p-dorm h3,.p-dorm ol,.p-dorm figure{margin:0;padding:0}
.p-dorm img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--d-r)}
.p-dorm a{color:var(--d-blue);text-decoration:none}
.p-dorm a:hover{text-decoration:underline}

/* 01 FV（219:3） */
.p-dorm .d-fv{display:flex;align-items:center;min-height:570px;background:linear-gradient(180deg,var(--d-kv-from),var(--d-kv-to))}
.p-dorm .d-fv__text{flex:0 0 660px;min-width:0;display:flex;flex-direction:column;gap:28px;align-items:flex-start;padding:100px 60px 100px 120px}
.p-dorm .d-fv__label{font-family:var(--f-hand-en);font-weight:700;font-size:52px;line-height:normal;color:var(--d-blue-hand);white-space:nowrap}
.p-dorm .d-fv__h1{font-weight:700;font-size:48px;line-height:48px;letter-spacing:1.92px;color:var(--d-blue);white-space:nowrap}
/* 先方指示で「留」が増え1文字長くなった。Figmaどおり1行に保つ（右余白60の内側に収まる） */
.p-dorm .d-fv__lead{font-size:16px;line-height:28.8px}
.p-dorm .d-fv__photo{flex:1 1 780px;height:480px;min-width:0}
.p-dorm .d-btn{display:inline-flex;align-items:center;justify-content:center;padding:20px 28px;border-radius:999px;background:var(--d-blue);
  color:#fff;font-weight:700;font-size:16px;line-height:16px;letter-spacing:.4px}
.p-dorm .d-btn:hover{text-decoration:none;filter:brightness(.95)}
.p-dorm .d-btn--wide{width:320px}

/* 02 アンカーナビ（219:10）＝白地・下線#eee・16px太字・間36。
   英語や書体の読込前で幅が足りないときは横スクロールに逃がす（ページ全体をはみ出させない） */
.p-dorm .d-nav{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--d-hair)}
.p-dorm .d-nav__in{display:flex;justify-content:safe center;overflow-x:auto;scrollbar-width:none;gap:36px;max-width:var(--d-in);margin:0 auto;padding:22px 0;
  font-weight:700;font-size:16px;line-height:16px;white-space:nowrap}

/* 02b 帯（243:2）＝左右グラデ・上下96 */
.p-dorm .d-band{display:flex;align-items:center;justify-content:center;height:317px;padding:0 16px;background:linear-gradient(90deg,var(--d-band-from),var(--d-band-to));color:#fff;text-align:center}
/* 帯の文言＝先方指示「日本語のみで、手書き風のフォントで」（10/02・10/07）。和文は Klee One（手書き風）、英語版は Caveat */
.p-dorm .d-band__copy{font-family:var(--f-hand-ja);font-weight:600;font-size:60px;line-height:1.3;letter-spacing:.06em}
.p-dorm .d-band__copy:lang(en){font-family:var(--f-hand-en);font-weight:700;letter-spacing:0}
.p-dorm .d-band__p{display:inline-block}  /* 「はじめての留学でも／安心できる学生寮」の切れ目でだけ改行する */

/* 共通の節（見出し＝Caveat38＋太字40/56・字間1.6／リード16/28.8） */
.p-dorm .d-sec{position:relative;padding:160px 0 100px;background:#fff}
.p-dorm .d-sec--soft{background:var(--d-soft)}
.p-dorm .d-in{position:relative;width:min(var(--d-in),100% - 32px);margin:0 auto;display:flex;flex-direction:column;align-items:center}
.p-dorm .d-in--800{width:min(var(--d-in2),100% - 32px)}
.p-dorm .d-label{font-family:var(--f-hand-en);font-weight:700;font-size:38px;line-height:normal;color:var(--d-blue);text-align:center}
.p-dorm .d-h2{font-weight:700;font-size:40px;line-height:56px;letter-spacing:1.6px;color:var(--d-blue);text-align:center}
.p-dorm .d-lead{margin-top:10px;text-align:center}
.p-dorm .d-lead--800{max-width:var(--d-in2)}
.p-dorm .d-h3{margin:72px 0 28px;font-weight:700;font-size:26px;line-height:34px;color:var(--d-blue);text-align:center}
.p-dorm .d-notes{align-self:stretch;padding-top:14px;font-weight:700;font-size:12px;line-height:21px}

/* 03 導入（219:20）＝上120・下80／透かし文字はCaveat・水色10% */
.p-dorm .d-intro{padding:120px 0 80px;overflow:hidden}
.p-dorm .d-intro__mark{position:absolute;top:10px;right:40px;font-family:var(--f-hand-en);font-weight:700;font-size:150px;line-height:normal;
  color:rgba(68,168,218,.1);white-space:nowrap;pointer-events:none}
.p-dorm .d-intro .d-in{gap:28px;align-items:stretch}
.p-dorm .d-intro__sub{margin-top:-14px;font-weight:700;font-size:16px;color:var(--d-blue);text-align:center}
.p-dorm .d-body{font-size:16px;line-height:28.8px}

/* 表（219:31 ほか）＝外枠は左と上の1px、各セルは右と下の1px・角丸16・余白10 */
.p-dorm .d-scroll{align-self:stretch}
.p-dorm .d-tbl{display:grid;border-left:1px solid var(--d-line);border-top:1px solid var(--d-line)}
.p-dorm .d-tr{display:contents}
.p-dorm .d-td{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:49px;padding:10px;
  background:var(--d-cell);border-right:1px solid var(--d-line);border-bottom:1px solid var(--d-line);border-radius:var(--d-r);
  font-size:16px;line-height:28.8px;text-align:center}
.p-dorm .d-td span{display:block}
.p-dorm .d-tr--head .d-td{background:var(--d-blue);color:#fff;font-weight:400}
.p-dorm .d-td--key{font-weight:700}
.p-dorm .d-td--left{align-items:flex-start;text-align:left}
.p-dorm .d-accent{color:var(--d-blue);font-weight:700}
.p-dorm .d-tr--vacancy .d-td{font-weight:700} /* 先方指示：空室状況を表の一番上に */
.p-dorm .d-tbl--cmp{margin-top:44px;grid-template-columns:176px repeat(3,308px);border-radius:var(--d-r)}
.p-dorm .d-tbl--rooms{grid-template-columns:110px 590px 200px 200px}
.p-dorm .d-tbl--cost{margin-top:40px;width:100%;grid-template-columns:240px 1fr}
.p-dorm .d-tbl--short{width:100%;grid-template-columns:repeat(3,1fr)}

/* 寮カード（219:147）＝353×551・枠1px・角丸16・影1段 */
.p-dorm .d-cards{display:grid;grid-template-columns:repeat(3,353px);gap:20px;margin-top:56px}
.p-dorm .d-card{display:flex;flex-direction:column;min-height:551px;background:var(--d-cell);border:1px solid var(--d-line);border-radius:var(--d-r);filter:var(--d-shadow)}
.p-dorm .d-card__photo{height:206px}
.p-dorm .d-card__body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:25px 21px;text-align:center} /* 枠1px分を差し引き、Figmaの内寸（幅309・高さ551）に合わせる */
.p-dorm .d-card__name{font-weight:700;font-size:30px;line-height:34px;letter-spacing:3px}
.p-dorm .d-card--abk .d-card__name{color:var(--d-abk)}
.p-dorm .d-card--somei .d-card__name{color:var(--d-somei)}
.p-dorm .d-card--oji .d-card__name{color:var(--d-oji)}
.p-dorm .d-card__sub{font-weight:700;font-size:12px;line-height:18px;color:var(--d-blue)}
.p-dorm .d-card__facts{margin-top:18px;font-size:13px;line-height:23px}
.p-dorm .d-card__desc{margin-top:16px;font-size:14px;line-height:25px}
.p-dorm .d-card__facts span,.p-dorm .d-card__desc span{display:block}
.p-dorm .d-card__more{margin-top:20px;font-weight:700;font-size:15px;line-height:22px}

/* アクセス（219:804）＝地図353×220＋寮名30px */
.p-dorm .d-h3--access{margin-top:96px}
.p-dorm .d-accs{display:grid;grid-template-columns:repeat(3,353px);gap:20px}
.p-dorm .d-acc{filter:var(--d-shadow);text-align:center}
.p-dorm .d-map{height:220px;border-radius:var(--d-r);overflow:hidden;background:var(--d-cell);border:1px solid var(--d-hair)}
.p-dorm .d-map iframe{display:block;width:100%;height:100%;border:0}
.p-dorm .d-acc__text{display:flex;flex-direction:column;gap:10px;padding-top:20px}
.p-dorm .d-acc__name{font-weight:700;font-size:30px;line-height:34px;letter-spacing:3px}
.p-dorm .d-acc--abk .d-acc__name{color:var(--d-abk)}
.p-dorm .d-acc--somei .d-acc__name{color:var(--d-somei)}
.p-dorm .d-acc--oji .d-acc__name{color:var(--d-oji)}
.p-dorm .d-acc__addr{font-size:14px;line-height:24px}

/* 05 費用（219:181）＝上120・下100・内側800 */
.p-dorm .d-cost{padding:120px 0 100px}
.p-dorm .d-cost__h3{margin:48px 0 24px;font-weight:400;font-size:24px;line-height:24px;letter-spacing:3px;text-align:center}
.p-dorm .d-cost__note{align-self:stretch;margin-top:12px;font-weight:700;font-size:12px;line-height:21px}

/* 06〜08 各寮（219:232 ほか） */
.p-dorm .d-dorm__name{font-weight:700;font-size:30px;line-height:34px;letter-spacing:3px;text-align:center}
.p-dorm .d-dorm--abk .d-dorm__name{color:var(--d-abk)}
.p-dorm .d-dorm--somei .d-dorm__name{color:var(--d-somei)}
.p-dorm .d-dorm--oji .d-dorm__name{color:var(--d-oji)}
.p-dorm .d-dorm__lead{width:min(var(--d-in2),100%);margin-top:36px;display:flex;flex-direction:column;gap:16px}
.p-dorm .d-dorm__addr{font-size:13px;line-height:22px}
.p-dorm .d-photos{display:grid;gap:20px;width:100%;margin-top:48px}
.p-dorm .d-photos--2{grid-template-columns:repeat(2,1fr)}
.p-dorm .d-photos--2 img{height:340px}
.p-dorm .d-photos--3{grid-template-columns:repeat(3,1fr)}
.p-dorm .d-photos--3 img{height:220px}
.p-dorm .d-photos--4{grid-template-columns:repeat(4,1fr);margin-top:0}
.p-dorm .d-photos--4 img{height:200px}
.p-dorm .d-h3--detail{margin-top:136px;margin-bottom:0}
.p-dorm .d-rooms{display:flex;flex-direction:column;gap:24px;width:100%;margin-top:32px}
.p-dorm .d-shared{width:min(var(--d-in2),100%);margin-top:24px;text-align:center}

/* 部屋タイプのカード（219:346）＝枠1px・角丸なし／見出し帯120・660・320 */
.p-dorm .d-room{border:1px solid var(--d-line);background:#fff}
.p-dorm .d-room__head{display:grid;grid-template-columns:120px 1fr 320px;align-items:center;background:var(--d-cell);border-bottom:1px solid var(--d-line)}
.p-dorm .d-room__code{padding:16px 10px 16px 20px;font-weight:700;font-size:24px;line-height:32px;color:var(--d-blue)}
.p-dorm .d-room__type{display:flex;flex-direction:column;gap:2px;padding:16px 10px;font-weight:700}
.p-dorm .d-room__type span:first-child{font-size:18px;line-height:28px}
.p-dorm .d-room__sub{font-size:12px;line-height:18px;color:var(--d-blue)}
.p-dorm .d-room__price{padding:16px 24px 16px 10px;font-weight:700;font-size:22px;line-height:30px;color:var(--d-blue);text-align:right}
.p-dorm .d-room__body{display:flex;flex-direction:column;gap:20px;padding:24px 23px} /* 枠1px分を差し引き内幅1052 */
.p-dorm .d-room__photos{display:grid;gap:16px}
.p-dorm .d-room__photos--1 img{height:var(--ph,420px)}
.p-dorm .d-room__photos--2{grid-template-columns:repeat(2,1fr)}
.p-dorm .d-room__photos--2 img{height:340px}
.p-dorm .d-room__photos--3{grid-template-columns:repeat(3,1fr)}
.p-dorm .d-room__photos--3 img{height:240px}
.p-dorm .d-room__equip{font-size:15px;line-height:26px}
.p-dorm .d-room__note{font-size:13px;line-height:22px;color:var(--d-gray)}
.p-dorm .d-room__360{font-weight:700;font-size:16px;line-height:26px}
.p-dorm .d-room__360--none{color:var(--d-gray)}

/* 枠（219:593 光熱費・219:708 注意） */
.p-dorm .d-box{display:flex;flex-direction:column;gap:14px;width:min(var(--d-in2),100%);padding:28px 32px;background:#fff;border:1px solid var(--d-line)}
.p-dorm .d-box--caution{gap:18px;border-color:var(--d-abk);border-radius:var(--d-r)}
.p-dorm .d-box__item{display:flex;flex-direction:column;gap:6px}
.p-dorm .d-box__k{font-weight:700;font-size:15px;line-height:24px;color:var(--d-blue)}

/* 09 寮での暮らし（219:715）＝353×240の3枚 */
.p-dorm .d-events{display:grid;grid-template-columns:repeat(3,353px);gap:20px;margin-top:52px}
.p-dorm .d-event img{height:240px}
.p-dorm .d-event figcaption{margin-top:12px;font-weight:700;font-size:15px;line-height:24px;text-align:center}

/* 10 申し込みの流れ（219:732） */
.p-dorm .d-steps{list-style:none;width:min(var(--d-in2),100%);margin-top:52px;border-top:1px solid var(--d-hair)}
.p-dorm .d-step{display:flex;gap:24px;align-items:flex-start;padding:26px 0;border-bottom:1px solid var(--d-hair)}
.p-dorm .d-step__no{flex:0 0 48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--d-blue);color:#fff;font-weight:700;font-size:20px;line-height:24px}
.p-dorm .d-step__t{font-weight:700;font-size:18px;line-height:28px}
.p-dorm .d-step__d{margin-top:6px}
.p-dorm .d-dl{margin-top:44px;font-weight:700;line-height:26px;text-align:center}
.p-dorm .d-notice{width:min(var(--d-in2),100%);margin-top:36px;padding:26px 32px;background:var(--d-cell);border:1px solid var(--d-line);border-radius:999px;text-align:center}

/* 11 よくある質問（219:767） */
.p-dorm .d-qas{width:min(var(--d-in2),100%);margin-top:52px;background:#fff;border:1px solid var(--d-line)}
.p-dorm .d-qa{display:flex;flex-direction:column;gap:8px;padding:24px 32px;border-bottom:1px solid var(--d-hair)}
.p-dorm .d-qa:last-child{border-bottom:0}
.p-dorm .d-qa__q{font-weight:700;font-size:17px;line-height:28px}

/* 13 入寮をご希望の方へ（219:826）＝上下140・淡水色 */
.p-dorm .d-cta{padding:140px 0;background:var(--d-soft)}
.p-dorm .d-cta .d-btn{margin-top:40px}
.p-dorm .d-cross{display:flex;flex-direction:column;gap:10px;width:min(var(--d-in2),100%);margin-top:36px;padding:26px 32px;background:#fff;border:1px solid var(--d-line);text-align:center}
.p-dorm .d-cross__t{font-weight:700;font-size:18px;line-height:28px}
.p-dorm .d-cross__d{font-size:15px;line-height:26px}
.p-dorm .d-cross__a{font-weight:700;font-size:15px;line-height:24px}

/* ── 1180px以下：内側1100が入らない幅。固定幅を流体に ── */
@media (max-width:1180px){
  .p-dorm .d-fv__text{flex-basis:50%;padding:80px 40px 80px 48px}
  .p-dorm .d-fv__h1{white-space:normal;font-size:40px;line-height:48px}
  .p-dorm .d-nav__in{justify-content:flex-start;overflow-x:auto;padding:22px 16px;scrollbar-width:none}
  .p-dorm .d-cards,.p-dorm .d-accs,.p-dorm .d-events{grid-template-columns:repeat(3,1fr);width:100%}
  .p-dorm .d-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .p-dorm .d-tbl--cmp{min-width:1100px}
  .p-dorm .d-tbl--rooms{min-width:1100px}
}
/* ── SP（1023px以下）：1列に落とす。PCの値は上で固定し、ここでは触らない ── */
@media (max-width:1023px){
  .p-dorm{font-size:15px;line-height:27px}
  .p-dorm .d-fv{flex-direction:column;align-items:stretch;min-height:0}
  .p-dorm .d-fv__text{flex-basis:auto;gap:20px;padding:56px 20px 32px}
  .p-dorm .d-fv__label{font-size:36px}
  .p-dorm .d-fv__h1{font-size:30px;line-height:40px;letter-spacing:1px;white-space:normal}
  .p-dorm .d-fv__photo{flex-basis:auto;height:240px;padding:0 16px 40px}
  .p-dorm .d-nav__in{gap:24px;padding:16px;font-size:14px}
  .p-dorm .d-band{min-height:0;padding:56px 20px}
  .p-dorm .d-band__copy{font-size:30px}
  .p-dorm .d-band__copy:lang(en){font-size:34px}
  .p-dorm .d-sec{padding:88px 0 64px}
  .p-dorm .d-intro{padding:72px 0 56px}
  .p-dorm .d-intro__mark{font-size:72px;right:-8px;top:8px}
  .p-dorm .d-label{font-size:30px}
  .p-dorm .d-h2{font-size:26px;line-height:38px;letter-spacing:1px}
  .p-dorm .d-h3{margin:56px 0 20px;font-size:21px;line-height:30px}
  .p-dorm .d-cards,.p-dorm .d-accs,.p-dorm .d-events{grid-template-columns:1fr;gap:20px}
  .p-dorm .d-card{min-height:0}
  .p-dorm .d-tbl--cost{grid-template-columns:120px 1fr}
  .p-dorm .d-photos--2,.p-dorm .d-photos--3{grid-template-columns:1fr}
  .p-dorm .d-photos--2 img,.p-dorm .d-photos--3 img{height:220px}
  .p-dorm .d-photos--4{grid-template-columns:repeat(2,1fr);gap:12px}
  .p-dorm .d-photos--4 img{height:140px}
  .p-dorm .d-h3--detail{margin-top:88px}
  .p-dorm .d-room__head{grid-template-columns:72px 1fr}
  .p-dorm .d-room__code{padding:14px 8px 14px 16px;font-size:20px}
  .p-dorm .d-room__type{padding:14px 12px 4px 8px}
  .p-dorm .d-room__type span:first-child{font-size:16px;line-height:24px}
  .p-dorm .d-room__price{grid-column:2;padding:0 12px 14px 8px;font-size:19px;text-align:left}
  .p-dorm .d-room__body{padding:16px;gap:14px}
  .p-dorm .d-room__photos--1 img{height:220px}
  .p-dorm .d-room__photos--2,.p-dorm .d-room__photos--3{grid-template-columns:1fr 1fr;gap:10px}
  .p-dorm .d-room__photos--2 img,.p-dorm .d-room__photos--3 img{height:130px}
  .p-dorm .d-room__photos--3 img:last-child{grid-column:1 / -1;height:200px}
  .p-dorm .d-box{padding:22px 20px}
  .p-dorm .d-step{gap:16px;padding:20px 0}
  .p-dorm .d-step__no{flex-basis:40px;height:40px;font-size:18px}
  .p-dorm .d-step__t{font-size:16px;line-height:26px}
  .p-dorm .d-notice{border-radius:var(--d-r);padding:20px}
  .p-dorm .d-qa{padding:20px}
  .p-dorm .d-qa__q{font-size:16px}
  .p-dorm .d-cta{padding:88px 0}
  .p-dorm .d-btn--wide{width:100%;max-width:320px}
  .p-dorm .d-cross{padding:22px 20px}
}

/* ── 先方加筆修正 第2弾（2026-10-07）で増えた部品。値は既存の部品にそろえる ── */
/* アイコン＝先方モックどおり「角丸の枠＋黒い図柄」 */
.p-dorm .d-icon{flex:0 0 52px;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;
  border:1px solid var(--d-line);border-radius:10px;background:#fff;color:var(--d-line)}
.p-dorm .d-icon svg{width:30px;height:30px}
/* 寮費：リード2行・アイコン付きの2項目 */
.p-dorm .d-cost__lead span{display:block}
.p-dorm .d-points{display:flex;flex-direction:column;gap:20px;align-self:center;margin-top:40px}
.p-dorm .d-point{display:flex;align-items:center;gap:20px}
.p-dorm .d-point__t{font-weight:700;font-size:22px;line-height:32px;color:var(--d-blue)}
.p-dorm .d-point__d{font-size:15px;line-height:26px}
.p-dorm .d-tbl--cost{margin-top:44px}
.p-dorm .d-cost__notes{align-self:stretch;margin-top:12px;font-size:14px;line-height:24px}
.p-dorm .d-cost__notes .is-em{font-weight:700;color:var(--d-abk)}   /* 先方指示「赤字で強調」 */
/* 染井ハイツ：光熱費の精算を目立たせる（先方指示「背景や文字をピンクや赤色に」） */
.p-dorm .d-h3--alert{color:var(--d-abk)}
.p-dorm .d-box--alert{background:#fff0f0;border-color:var(--d-abk);border-radius:var(--d-r);color:#8a1c1c}
/* 共用部の360度リンク */
.p-dorm .d-shared__360{margin-top:20px;font-weight:700;font-size:16px;line-height:26px;text-align:center}
.p-dorm .d-shared__360 + .d-shared{margin-top:8px}
/* 各寮のアクセス（染井＝アイコン＋2行／王子＝地下鉄・バス・自転車） */
.p-dorm .d-acc2{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:72px;text-align:center}
.p-dorm .d-acc2__h{font-weight:700;font-size:26px;line-height:34px;color:var(--d-blue)}
.p-dorm .d-acc2t{width:min(var(--d-in2),100%);background:#fff;border:1px solid var(--d-line)}
.p-dorm .d-acc2t__r{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:20px 28px;border-bottom:1px solid var(--d-hair)}
.p-dorm .d-acc2t__r:last-child{border-bottom:0}
.p-dorm .d-acc2t__k{font-weight:700;color:var(--d-blue)}
.p-dorm .d-acc2t__s{font-size:14px;line-height:24px;color:var(--d-gray)}
/* 申し込みの流れ：2系統 */
.p-dorm .d-track{width:min(var(--d-in2),100%);margin-top:52px}
.p-dorm .d-track + .d-track{margin-top:56px}
.p-dorm .d-track__h{font-weight:700;font-size:20px;line-height:30px;color:var(--d-blue)}
.p-dorm .d-track .d-steps{margin-top:16px}
.p-dorm .d-track .d-dl{margin-top:28px}
.p-dorm .d-notice{display:flex;flex-direction:column;gap:6px;margin-top:48px}
.p-dorm .d-notice__t{font-weight:700}
.p-dorm .d-notice__em{font-weight:700;color:var(--d-abk)}   /* 先方指示「赤字で強調」 */
@media (max-width:1023px){
  .p-dorm .d-icon{flex-basis:44px;width:44px;height:44px}
  .p-dorm .d-icon svg{width:26px;height:26px}
  .p-dorm .d-point{align-items:flex-start;gap:14px}
  .p-dorm .d-point__t{font-size:18px;line-height:28px}
  .p-dorm .d-acc2{margin-top:56px}
  .p-dorm .d-acc2t__r{grid-template-columns:1fr;gap:4px;padding:16px}
  .p-dorm .d-track__h{font-size:18px;line-height:28px}
  .p-dorm .d-tbl--short .d-td{padding:10px 4px;font-size:14px;letter-spacing:-.02em}
}

/* ── 表を横スクロールさせない（2026-10-08 社長指摘「SPの表が見えない」） ── */
/* タブレット〜小さめPC（768〜1180）：横スクロールをやめ、列幅を画面に合わせて縮める */
@media (min-width:768px) and (max-width:1180px){
  .p-dorm .d-scroll{overflow-x:visible}
  .p-dorm .d-tbl--cmp{min-width:0;grid-template-columns:140px repeat(3,1fr)}
  .p-dorm .d-tbl--rooms{min-width:0;grid-template-columns:80px 1fr 150px 140px}
}
/* スマホ（767以下）：部屋タイプ表は1部屋＝1枚。下の部屋カード（.d-room）と同じ文字の大きさと色 */
@media (max-width:767px){
  .p-dorm .d-tbl--rooms{display:flex;flex-direction:column;gap:12px;min-width:0;border:0}
  .p-dorm .d-tbl--rooms .d-tr{display:grid;grid-template-columns:auto 1fr;border:1px solid var(--d-line);border-radius:var(--d-r);background:#fff;overflow:hidden}
  .p-dorm .d-tbl--rooms .d-tr.d-tr--head{display:none}
  .p-dorm .d-tbl--rooms .d-td{border:0;border-radius:0;min-height:0;background:none;padding:0}
  .p-dorm .d-tbl--rooms .d-td--key{grid-column:1;grid-row:1;align-items:flex-start;padding:12px 8px 12px 16px;background:var(--d-cell);font-size:20px;line-height:28px;color:var(--d-blue)}
  .p-dorm .d-tbl--rooms .d-td--price{grid-column:2;grid-row:1;align-items:flex-end;padding:12px 16px 12px 8px;background:var(--d-cell);font-weight:700;font-size:19px;line-height:28px;color:var(--d-blue)}
  .p-dorm .d-tbl--rooms .d-td--left{grid-column:1 / -1;grid-row:2;padding:12px 16px;border-top:1px solid var(--d-line);font-size:15px;line-height:26px}
  .p-dorm .d-tbl--rooms .d-td--cam{grid-column:1 / -1;grid-row:3;flex-direction:row;justify-content:flex-start;gap:6px;padding:0 16px 14px;font-size:14px;line-height:22px}
  .p-dorm .d-tbl--rooms .d-td--cam.is-none{display:none}
  .p-dorm .d-tbl--rooms .d-td--cam.is-text::before{content:attr(data-h) "：";color:var(--d-gray)}
}
/* タブレット（768〜1023）：列が狭く「円」だけ改行されるため、表の文字を一回り小さく・項目列を詰める */
@media (min-width:768px) and (max-width:1023px){
  .p-dorm .d-tbl--cmp{grid-template-columns:112px repeat(3,1fr)}
  .p-dorm .d-tbl--cmp .d-td,.p-dorm .d-tbl--rooms .d-td{padding:8px;font-size:14px;line-height:24px}
  .p-dorm .d-tbl--rooms{grid-template-columns:64px 1fr 120px 120px}
}
/* スマホの比較表＝項目ごとに3寮を並べる（社長選定 2026-10-08・B案）。寮名は data-h、各寮の色で */
@media (max-width:767px){
  .p-dorm .d-scroll{overflow-x:visible}
  .p-dorm .d-tbl--cmp{display:block;min-width:0;border:0;margin-top:32px}
  .p-dorm .d-tbl--cmp .d-tr{display:block;margin-top:16px}
  .p-dorm .d-tbl--cmp .d-tr:first-child{margin-top:0}
  .p-dorm .d-tbl--cmp .d-tr.d-tr--head{display:none}
  .p-dorm .d-tbl--cmp .d-td{display:grid;grid-template-columns:8.5em 1fr;column-gap:12px;justify-items:start;align-items:start;align-content:center;
    min-height:0;padding:10px 16px;border:1px solid var(--d-line);border-top:0;border-radius:0;font-size:15px;line-height:26px;text-align:left}
  .p-dorm .d-tbl--cmp .d-td::before{content:attr(data-h);grid-column:1;grid-row:1 / span 4;font-weight:700;font-size:13px;line-height:26px}
  .p-dorm .d-tbl--cmp .d-td > *{grid-column:2}
  .p-dorm .d-tbl--cmp .d-td:nth-child(2)::before{color:var(--d-abk)}
  .p-dorm .d-tbl--cmp .d-td:nth-child(3)::before{color:var(--d-somei)}
  .p-dorm .d-tbl--cmp .d-td:nth-child(4)::before{color:var(--d-oji)}
  .p-dorm .d-tbl--cmp .d-td[role=rowheader]{display:flex;padding:8px 16px;border-top:1px solid var(--d-line);border-radius:var(--d-r) var(--d-r) 0 0;background:var(--d-blue);color:#fff;font-weight:700;font-size:15px}
  .p-dorm .d-tbl--cmp .d-td[role=rowheader]::before{content:none}
  .p-dorm .d-tbl--cmp .d-td:last-child{border-radius:0 0 var(--d-r) var(--d-r)}
}

/* ── SPの読みやすさ・押しやすさ（2026-10-08 社長指示「全て見やすいように」） ── */
@media (max-width:1180px){
  /* ページ内ナビは横にスクロールする。続きがあるときだけ右端に「›」とぼかしを出す（is-scrollable／is-end は abk-dorm.php のJSが付ける） */
  .p-dorm .d-nav::after{content:"›";display:none;position:absolute;top:0;right:0;bottom:1px;width:56px;padding-right:12px;
    align-items:center;justify-content:flex-end;pointer-events:none;font-weight:700;font-size:26px;line-height:1;color:var(--d-blue);
    background:linear-gradient(to right,rgba(255,255,255,0),#fff 55%)}
  .p-dorm .d-nav.is-scrollable:not(.is-end)::after{display:flex}
  .p-dorm .d-nav__in{padding-right:48px}
}
@media (max-width:1023px){
  /* タップ領域44px以上。ナビの高さは48pxのまま（上下の余白をリンク自身の高さに置き換える） */
  .p-dorm .d-nav__in{gap:0;padding-top:0;padding-bottom:0;padding-left:4px}
  /* 項目の間隔24pxを、各項目の左右12pxの押せる余白に置き換える（見た目の間隔は同じ。「寮費」が幅28pxで押しにくかった） */
  .p-dorm .d-nav__in a{display:flex;align-items:center;min-height:48px;padding:0 12px;white-space:nowrap}
  /* 文字リンクは押せる範囲だけ広げ、外側の余白を同じだけ引いて位置を変えない */
  .p-dorm .d-card__more{padding-block:11px;margin-block:-11px}
  .p-dorm .d-cross__a{padding-block:10px;margin-block:-10px}
  .p-dorm .d-td--cam a,.p-dorm .d-room__360 a{display:inline-block;padding-block:11px;margin-block:-11px}
  .p-dorm .d-dl a{display:inline-block;padding-block:12px;margin-block:-12px}
  /* 語の途中で改行しない（「4人部／屋」「い／す」「（ABK／寮）」と割れていた）。keep-all は「・」「、」「（」「／」で改行する。
     iPhoneのSafariでも効く。長い本文に掛けると行末がガタつくので、見出し・表・一覧・カードなど短い文だけ。
     収まらない語は overflow-wrap:anywhere で最後の手段として折る（はみ出し防止） */
  .p-dorm:lang(ja) :is(.d-td,.d-h2,.d-h3,.d-lead,.d-intro__sub,.d-dorm__name,.d-card__name,.d-card__sub,.d-card__facts,.d-card__desc,
    .d-acc__addr,.d-cost__h3,.d-point__t,.d-room__type,.d-room__equip,.d-room__360,.d-shared,.d-step__t,.d-track__h,.d-qa__q,.d-cross__t){
    word-break:keep-all;overflow-wrap:anywhere}
  /* 部屋番号「SH1-2」が72px幅に入らず「SH1-／2」と割れていた */
  .p-dorm .d-room__head{grid-template-columns:88px 1fr}  /* 全カードで揃える（SH1-2が入る幅） */
  .p-dorm .d-room__code{white-space:nowrap}
}
@media (max-width:1023px){
  /* 本文の最後の行が「い。」など1〜2文字だけになるのを避ける（対応ブラウザのみ。未対応は従来どおり） */
  .p-dorm p,.p-dorm li{text-wrap:pretty}
}
/* 日付は行の途中で割らない（「2027年1／月31日」と割れていた）。表のセル内の span は block なので inline に戻す */
.p-dorm .nw,.p-dorm .d-td span.nw{display:inline;white-space:nowrap}

/* 英語のスマホ：比較表のセル内は日本語の改行位置で行を分けていたため「alongside」だけの行ができた。
   左右2列（grid）だと中の span が block 扱いになり続けて流せないので、英語は寮名を値の上に置き、値は文として続けて流す */
@media (max-width:767px){
  .p-dorm:lang(en) .d-tbl--cmp .d-td[role=cell]{display:block}
  .p-dorm:lang(en) .d-tbl--cmp .d-td[role=cell]::before{display:block;margin-bottom:2px}
  .p-dorm:lang(en) .d-tbl--cmp .d-td[role=cell] span{display:inline}
  .p-dorm:lang(en) .d-tbl--cmp .d-td[role=cell] span + span::before{content:" "}
  /* カメラ「準備中」の見出し：日本語＝全角コロン、英語＝半角コロン＋空白（間隔はコロンで取る） */
  .p-dorm .d-tbl--rooms .d-td--cam.is-text{gap:0}
  .p-dorm:lang(en) .d-tbl--rooms .d-td--cam.is-text::before{content:attr(data-h) ":";margin-right:.3em}
}
/* 英語はナビの文言が長く、PCでも1100幅に収まらず最後の「Frequently asked questions」が隠れていた → 文字と間隔を少し詰める（日本語は触らない） */
@media (min-width:1181px){
  .p-dorm:lang(en) .d-nav__in{gap:24px;font-size:15px}
  /* 英語の見出しは1行だと974pxになり、写真（660px〜）の下に潜り込んで読めない → 折り返して2行にする。
     日本語の1行（上の nowrap）は先方指示なので触らない。先方指摘 2026-10-29 */
  .p-dorm:lang(en) .d-fv__h1{white-space:normal;font-size:40px;line-height:48px}
}

/* ── 先方加筆修正 第3弾（2026-10-13・WebサイトB案 更新版）＋支給写真・見取り図・360度URL ── */
/* 寮カード：説明文の代わりに住所（スライド3「各寮の説明文は省略→住所を記載」） */
.p-dorm .d-card__addr{margin-top:18px;font-size:14px;line-height:24px}
/* 各寮の写真を写真の縦横比で横に割る＝縦長の外観を切らずに高さを揃える（染井ハイツ：外観2枚＋ダイニング） */
.p-dorm .d-photos--fit{grid-template-columns:var(--fit)}
.p-dorm .d-photos--fit img{height:auto}
/* 見取り図（先方支給）は切らずに全体を見せる。写真の右に正方形で並べる */
.p-dorm .d-room__photos--plan{grid-template-columns:1fr 380px}
.p-dorm .d-room__photos--plan img{height:380px}
.p-dorm .d-room__photos--plan.is-solo{grid-template-columns:420px}
.p-dorm .d-room__photos--plan.is-solo img{height:420px}
.p-dorm img.is-plan{object-fit:contain;background:#fff;border:1px solid var(--d-hair)}
/* 共用部の360度カメラ（場所ごとのリンク） */
.p-dorm div.d-shared__360{width:min(var(--d-in2),100%)}
.p-dorm .d-shared__360-t{font-size:14px;line-height:22px;color:var(--d-text)}
.p-dorm .d-360list{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 24px;margin:6px 0 0;padding:0;list-style:none}
.p-dorm .d-360list a{font-size:15px;line-height:26px}
/* 寮生活の写真5枚（スライド21「左から順に」） */
.p-dorm .d-events--5{grid-template-columns:repeat(5,1fr);gap:16px;width:100%}
.p-dorm .d-events--5 .d-event img{height:auto;aspect-ratio:4/3}
.p-dorm .d-events--5 .d-event figcaption{font-size:14px;line-height:22px}
@media (max-width:1180px){
  .p-dorm .d-events--5{grid-template-columns:repeat(5,1fr)}
}
@media (max-width:1023px){
  .p-dorm .d-events--5{grid-template-columns:repeat(3,1fr);gap:16px}
  .p-dorm .d-room__photos--plan{grid-template-columns:1fr}
  .p-dorm .d-room__photos--plan img,.p-dorm .d-room__photos--plan.is-solo img{height:auto;aspect-ratio:auto}
  .p-dorm .d-room__photos--plan img:not(.is-plan){aspect-ratio:4/3}
  .p-dorm .d-room__photos--plan.is-solo{grid-template-columns:1fr}
  .p-dorm .d-360list a{display:inline-block;padding:9px 8px;margin:-9px -8px}  /* 「受付」など2文字でも幅44px以上 */
}
@media (max-width:767px){
  .p-dorm .d-events--5{grid-template-columns:repeat(2,1fr);gap:16px 12px}
  .p-dorm .d-events--5 .d-event:last-child{grid-column:1 / -1}
  /* 縦長の外観と横長の外観を1段目に並べ、ダイニングは2段目に全幅 */
  .p-dorm .d-photos--fit{grid-template-columns:var(--fit2);gap:12px}
  .p-dorm .d-photos--fit img{height:auto}
  .p-dorm .d-photos--fit img:nth-child(3){grid-column:1 / -1}
}
/* 寮カード：説明文を外して住所だけになったので、Figmaの固定高さ（551）をやめて詰める（先方指示 第3弾） */
.p-dorm .d-card--addr{min-height:0}
.p-dorm .d-card--addr .d-card__body{justify-content:flex-start;gap:0}
.p-dorm .d-card--addr .d-card__sub{margin-top:8px}
.p-dorm .d-card--addr .d-card__more{margin-top:auto;padding-top:20px}
/* SH3（写真が無く見取り図だけ）：説明を左、見取り図を右に */
@media (min-width:1024px){
  .p-dorm .d-room--plan-solo .d-room__body{display:grid;grid-template-columns:1fr 420px;column-gap:40px;align-content:start}
  .p-dorm .d-room--plan-solo .d-room__photos{grid-column:2;grid-row:1 / span 4}
  .p-dorm .d-room--plan-solo .d-room__body > :not(.d-room__photos){grid-column:1}
}

/* PCでも表・一覧の語の途中で改行しない（染井ハイツの表で「シャワ／ー」と割れていた・2026-10-14） */
.p-dorm:lang(ja) :is(.d-td,.d-room__equip,.d-shared,.d-card__addr,.d-acc__addr,.d-room__type,.d-qa__q){word-break:keep-all;overflow-wrap:anywhere}
/* 行頭に「ー」「ッ」「ョ」などが来ないように（厳しい行頭禁則）。全文に効く */
.p-dorm{line-break:strict}
/* 長い文が入る欄は「語で切らない」を外す。収まらない長い語が無理やり切られ「。」「）」が行頭に来ていた（費用の表・新星学寮の表と案内文） */
.p-dorm:lang(ja) :is(.d-tbl--cost .d-td,.d-shared){word-break:normal;overflow-wrap:normal}
/* 長い導入文は「語で切らない」を外す（スマホで「寮生活では、」「～」だけの行ができ、行の長さがガタついていた） */
.p-dorm:lang(ja) :is(.d-lead--800,.d-intro__sub){word-break:normal;overflow-wrap:normal}
@media (max-width:767px){
  /* スマホでは長い導入文を中央揃えにしない（最後の行が「ます。」だけ中央に浮いていた） */
  .p-dorm .d-lead--800{text-align:left;text-wrap:pretty}
}
/* 部屋のひとことの最後の1文字だけが次の行に落ちる（「…暮らしを／を」）のを防ぐ */
.p-dorm .d-room__sub{text-wrap:balance}
/* ---- 2026-10-15 先方再修正 ---- */
/* A1「男性部屋のみ」を種類のあとに赤字・強調（表・部屋ごとの両方） */
.p-dorm .d-em{margin-left:.6em;color:var(--d-abk);font-weight:700;white-space:nowrap}
/* 共用の設備：設備の一覧と360度カメラの場所を1本に。写真がある場所は太字のリンク */
.p-dorm .d-shared--links a{font-weight:700}
.p-dorm:lang(ja) .d-shared--links{word-break:keep-all;overflow-wrap:anywhere}
.p-dorm .d-shared__note{width:min(var(--d-in2),100%);margin-top:6px;font-size:14px;line-height:22px;text-align:center;color:var(--d-gray)}
/* 王子寮「入寮前に必ずご確認ください」も染井の光熱費と同じ赤（見出し・枠・塗り） */
.p-dorm .d-box--alert .d-box__k{color:var(--d-abk)}
@media (max-width:1023px){
  /* 一覧の中のリンクも指で押せる大きさに（見た目の位置は変えず、押せる範囲だけ上下左右に広げる。行の間も少し空ける） */
  .p-dorm .d-shared--links{line-height:36px}
  .p-dorm .d-shared--links a{display:inline-block;line-height:26px;padding:9px 8px;margin:-9px -8px}
}

/* ---- shinsei2.css ---- */
/* 新星学寮だけの部品｜Figma 220:2436 の寸法（案2の配色・共通部品は dorm2.css）。.p-shinsei に閉じる。 */
/* 01 FV（220:2437）＝高さ617・写真780×540・文字の間隔24 */
.p-shinsei .s-fv{min-height:617px}
.p-shinsei .s-fv .d-fv__text{gap:24px}
.p-shinsei .s-fv__h1{line-height:56px} /* Figma 220:2439＝高さ56。FVに手書きラベルは無い */
.p-shinsei .s-fv .d-fv__photo{height:540px}
.p-shinsei .s-fv__sub{font-weight:700;font-size:22px;line-height:32px}
.p-shinsei .s-stats{display:grid;grid-template-columns:repeat(2,240px);background:var(--d-cell);box-shadow:inset 0 0 0 1px var(--d-line);border-radius:var(--d-r)} /* 線は内側＝Figmaの240×90を保つ */
.p-shinsei .s-stat{display:flex;flex-direction:column;gap:2px;min-height:90px;padding:18px 20px}
.p-shinsei .s-stat + .s-stat{box-shadow:inset 1px 0 0 var(--d-line)}
.p-shinsei .s-stat span{font-size:13px;line-height:18px}
.p-shinsei .s-stat b{font-size:28px;line-height:34px;color:var(--d-blue)}
.p-shinsei .s-btn--fv{width:420px}
/* 03 魅力（220:2460）＝写真520×340・文540・間40・行間40 */
.p-shinsei .s-zig{display:flex;flex-direction:column;gap:40px;width:100%;margin-top:52px}
.p-shinsei .s-zig__row{display:grid;grid-template-columns:520px 540px;gap:40px;align-items:start}
.p-shinsei .s-zig__row.is-rev{grid-template-columns:540px 520px}
.p-shinsei .s-zig__row.is-rev .s-zig__photo{order:2}
.p-shinsei .s-zig__row.is-solo{grid-template-columns:1fr;justify-items:center}
.p-shinsei .s-zig__row.is-solo .s-zig__text{width:min(var(--d-in2),100%);text-align:center;align-items:center}
.p-shinsei .s-zig__photo img{height:340px}
.p-shinsei .s-zig__text{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.p-shinsei .s-zig__tag{font-weight:700;font-size:13px;line-height:18px;letter-spacing:.12em;color:var(--d-blue)}
.p-shinsei .s-zig__title{font-weight:700;font-size:26px;line-height:36px;color:var(--d-blue)}
.p-shinsei .s-zig__more{font-weight:700;line-height:26px}
/* 04 寮生活（220:2498）＝カード534・写真260・中身24・間32 */
.p-shinsei .s-lcards{display:grid;grid-template-columns:repeat(2,534px);gap:32px;margin-top:52px}
.p-shinsei .s-lcard{display:flex;flex-direction:column;background:var(--d-cell);border:1px solid var(--d-line);border-radius:var(--d-r);filter:var(--d-shadow);overflow:hidden}
.p-shinsei .s-lcard__photo{height:260px}
.p-shinsei .s-lcard__photo img{border-radius:0}
.p-shinsei .s-lcard__body{display:flex;flex-direction:column;gap:12px;padding:23px}
.p-shinsei .s-lcard h3{font-weight:700;font-size:24px;line-height:34px;color:var(--d-blue);text-align:center}
.p-shinsei .s-lcard p{font-size:15px;line-height:26px}
/* 05 施設・設備と費用（220:2533）＝表の行53・セル余白12/14 */
.p-shinsei .s-h3--first{margin-top:48px}
.p-shinsei .s-tbl{width:100%;grid-template-columns:var(--s-cols)}
.p-shinsei .s-tbl .d-td{min-height:53px;padding:12px 14px}
.p-shinsei .s-tbl--cmp .d-td:nth-child(2):not(:first-child){color:var(--d-blue);font-weight:700}
.p-shinsei .s-tbl--cmp .d-tr--head .d-td:nth-child(n){color:#fff;font-weight:400}
.p-shinsei .s-gap40{height:40px}
.p-shinsei .s-center{width:min(var(--d-in2),100%);text-align:center}
.p-shinsei .s-mt24{margin-top:24px}
.p-shinsei .s-photos--260{margin-top:0}
.p-shinsei .s-photos--260 img{height:260px}
.p-shinsei .s-notice{margin-top:32px;padding:24px 32px}
/* 06 アクセス（220:2613）＝地図540×400・情報528・路線48行 */
.p-shinsei .s-acc{display:grid;grid-template-columns:540px 528px;gap:32px;width:100%;margin-top:48px;align-items:start}
.p-shinsei .s-acc__map{height:400px;border-radius:var(--d-r);overflow:hidden;border:1px solid var(--d-hair);background:var(--d-cell)}
.p-shinsei .s-acc__map iframe{display:block;width:100%;height:100%;border:0}
.p-shinsei .s-acc__info h3{font-weight:700;font-size:22px;line-height:34px;color:var(--d-blue)}
.p-shinsei .s-acc__info p{margin:16px 0 32px}
.p-shinsei .s-lines{margin-top:16px}
.p-shinsei .s-line{display:grid;grid-template-columns:190px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--d-hair);font-size:15px;line-height:24px}
.p-shinsei .s-line span:first-child{font-weight:700}
/* 07 申込資格（220:2648）＝番号32・本文702 */
.p-shinsei .s-nums{list-style:none;width:100%;margin:40px 0;background:#fff;border:1px solid var(--d-line)}
.p-shinsei .s-nums li{display:flex;gap:18px;align-items:flex-start;padding:20px 24px;border-bottom:1px solid var(--d-hair)}
.p-shinsei .s-nums li:last-child{border-bottom:0}
.p-shinsei .s-no{flex:0 0 32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--d-blue);color:#fff;font-weight:700;font-size:15px;line-height:20px}
/* 08 申込方法（220:2691）＝番号44・本文678 */
.p-shinsei .s-steps{list-style:none;width:100%;margin-top:40px;background:#fff;border:1px solid var(--d-line)}
.p-shinsei .s-step{display:flex;gap:22px;align-items:flex-start;padding:24px 28px;border-bottom:1px solid var(--d-hair)}
.p-shinsei .s-step:last-child{border-bottom:0}
.p-shinsei .s-step__no{flex:0 0 44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--d-blue);color:#fff;font-weight:700;font-size:20px;line-height:24px}
.p-shinsei .s-step__t{margin-bottom:6px;font-weight:700;font-size:18px;line-height:28px}
.p-shinsei .s-apply__note{margin-top:20px;font-size:15px;line-height:26px}
.p-shinsei .s-apply__docs{align-self:stretch;margin-top:20px;font-size:14px;line-height:26px}
/* 09 お問い合わせ（220:2761） */
.p-shinsei .s-contact .d-lead{margin-top:10px}
.p-shinsei .s-btn--contact{width:360px;margin-top:36px}
/* ── 1180px以下 ── */
@media (max-width:1180px){
  .p-shinsei .s-zig__row,.p-shinsei .s-zig__row.is-rev{grid-template-columns:1fr 1fr;gap:32px}
  .p-shinsei .s-lcards{grid-template-columns:1fr 1fr;width:100%}
  .p-shinsei .s-acc{grid-template-columns:1fr 1fr}
}
/* ── SP（1023px以下） ── */
@media (max-width:1023px){
  .p-shinsei .s-fv{min-height:0}
  .p-shinsei .s-fv .d-fv__text{gap:18px;padding:56px 20px 32px}
  .p-shinsei .s-fv .d-fv__photo{height:240px}
  .p-shinsei .s-fv__sub{font-size:18px;line-height:28px}
  .p-shinsei .s-stats{grid-template-columns:1fr 1fr;width:100%}
  .p-shinsei .s-stat{min-height:0;padding:14px 16px}
  .p-shinsei .s-stat b{font-size:22px;line-height:28px}
  .p-shinsei .s-btn--fv{width:100%}
  .p-shinsei .s-zig{gap:40px;margin-top:36px}
  .p-shinsei .s-zig__row,.p-shinsei .s-zig__row.is-rev{grid-template-columns:1fr;gap:18px}
  .p-shinsei .s-zig__row.is-rev .s-zig__photo{order:0}
  .p-shinsei .s-zig__photo img{height:220px}
  .p-shinsei .s-zig__title{font-size:21px;line-height:30px}
  .p-shinsei .s-lcards{grid-template-columns:1fr;gap:20px;margin-top:36px}
  .p-shinsei .s-lcard__photo{height:200px}
  .p-shinsei .s-lcard h3{font-size:20px;line-height:30px}
  .p-shinsei .s-tbl .d-td{padding:10px 12px}
  .p-shinsei .s-acc{grid-template-columns:1fr;gap:24px;margin-top:36px}
  .p-shinsei .s-acc__map{height:260px}
  .p-shinsei .s-line{grid-template-columns:1fr;gap:2px}
  .p-shinsei .s-nums li{padding:16px;gap:14px}
  .p-shinsei .s-step{padding:18px 16px;gap:14px}
  .p-shinsei .s-step__no{flex-basis:36px;height:36px;font-size:17px}
  .p-shinsei .s-btn--contact{width:100%;max-width:360px}
}

/* スマホ（767以下）：項目列がPCの固定幅（300px/220px）のままだと値の列が数文字幅に潰れる。項目列を詰めて値を読める幅に */
@media (max-width:767px){
  .p-shinsei .s-tbl--kfix{grid-template-columns:minmax(7em,42%) 1fr}  /* 「インターネット代」が1行に入る幅 */
  .p-shinsei .s-tbl--kfix.s-tbl--cmp{grid-template-columns:minmax(7em,27%) 1fr 1.3fr}  /* 3列目は名前も値も長い */
  .p-shinsei .s-tbl .d-td{font-size:14px;line-height:24px}
}

@media (max-width:1023px){
  .p-shinsei .s-zig__more{padding-block:9px;margin-block:-9px}  /* タップ領域44px（位置は変えない） */
  .p-shinsei:lang(ja) :is(.s-zig__title,.s-zig__tag,.s-step__t,.s-lcard h3,.s-center,.s-fv__sub,.s-apply__docs){word-break:keep-all;overflow-wrap:anywhere}
}
.p-shinsei:lang(ja) :is(.s-tbl .d-td,.s-center,.s-apply__docs){word-break:normal;overflow-wrap:normal}
/* 表の項目名だけは語の途中で切らない（「イン／ターネット代」になっていた）。値の欄は長い文が入るので通常の改行 */
.p-shinsei:lang(ja) .s-tbl .d-td--key{word-break:keep-all;overflow-wrap:anywhere}

/* ---- form2.css ---- */
/* 申込フォーム2本｜Figma 220:3780 / 220:4136 の寸法（案2の配色・共通部品は dorm2.css）。.p-form に閉じる。 */
/* 01 見出しと案内（220:3781）＝上100・下80・内側800 */
.p-form .f-head{padding:100px 0 80px;background:linear-gradient(180deg,var(--d-kv-from),var(--d-kv-to))}
.p-form .f-title{font-weight:700;font-size:40px;line-height:56px;letter-spacing:1.6px;color:var(--d-blue);text-align:center}
.p-form .f-lead{margin-top:20px;text-align:center}
.p-form .f-box{width:100%;margin-top:32px;padding:24px 28px;background:#fff;border:1px solid var(--d-line);border-radius:var(--d-r)}
.p-form .f-box__t{font-weight:700;font-size:16px;line-height:26px;color:var(--d-blue)}
.p-form .f-box__d{margin-top:12px;font-size:15px;line-height:26px}
.p-form .f-box__s{margin-top:12px;font-size:13px;line-height:22px;color:var(--d-gray)}
.p-form .f-box ol{list-style:none;margin-top:12px}
.p-form .f-box li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--d-hair);font-size:15px;line-height:26px}
.p-form .f-box .num{flex:0 0 28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--d-blue);color:#fff;font-weight:700;font-size:14px}
/* 02 フォーム（220:3791）＝項目群は見出し帯62・中身28/24・項目の間24 */
.p-form .f-body{padding:100px 0 60px}
.p-form form{width:100%}
.p-form fieldset{margin:0 0 32px;padding:0 23px 28px;min-width:0;background:#fff;border:1px solid var(--d-line);border-radius:var(--d-r);overflow:hidden}
.p-form legend{float:left;width:calc(100% + 46px);margin:0 -23px 28px;padding:16px 20px;background:var(--d-cell);border-bottom:1px solid var(--d-line);
  font-weight:700;font-size:20px;line-height:30px;color:var(--d-blue)}
.p-form legend + *{clear:both}
.p-form .fsnote{margin-bottom:24px;font-size:15px;line-height:24px;clear:both}
.p-form .f{margin-bottom:24px}
.p-form .f:last-child{margin-bottom:0}
.p-form .f > label,.p-form .f .lg{display:block;font-weight:700;font-size:16px;line-height:26px}
.p-form .req,.p-form .opt{margin-left:10px;font-weight:700;font-size:12px;line-height:18px;vertical-align:1px}
.p-form .req{color:var(--d-abk)}
.p-form .opt{color:var(--d-gray)}
.p-form .hint{display:block;margin-top:10px;font-size:13px;line-height:22px;color:var(--d-gray)}
.p-form .f input[type=text],.p-form .f input[type=email],.p-form .f select,.p-form .f textarea{
  display:block;width:100%;height:56px;margin-top:10px;padding:15px 16px;font:inherit;font-size:16px;line-height:26px;color:var(--d-text);
  background:#fff;border:1px solid var(--d-line);border-radius:10px;-webkit-appearance:none;appearance:none}
.p-form .f select{padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,var(--d-blue) 50%),linear-gradient(135deg,var(--d-blue) 50%,transparent 50%);
  background-position:calc(100% - 22px) 25px,calc(100% - 16px) 25px;background-size:6px 6px;background-repeat:no-repeat}
.p-form .f textarea{height:120px;min-height:120px;resize:vertical}
.p-form .f input::placeholder,.p-form .f textarea::placeholder{color:#a3a3a3}
.p-form .f input:focus,.p-form .f select:focus,.p-form .f textarea:focus{outline:3px solid rgba(68,168,218,.35);outline-offset:1px;border-color:var(--d-blue)}
.p-form .choices{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:10px}
.p-form .choices label,.p-form label.chk{display:flex;align-items:center;gap:14px;min-height:52px;padding:12px 15px;font-weight:400;font-size:16px;line-height:26px;
  background:#fff;border:1px solid var(--d-line);border-radius:10px;cursor:pointer}
.p-form .choices input,.p-form label.chk input{flex:0 0 22px;width:22px;height:22px;margin:0;accent-color:var(--d-blue)}
.p-form .choices label:has(input:checked),.p-form label.chk:has(input:checked){border-color:var(--d-blue);background:var(--d-soft)}
.p-form .privacy{margin-bottom:12px;padding:16px;background:var(--d-cell);border:1px solid var(--d-hair);border-radius:10px}
.p-form .privacy b{display:block;font-size:15px;line-height:24px}
.p-form .privacy p{margin-top:8px;font-size:14px;line-height:24px}
.p-form .privacy + .f{margin-bottom:12px}
.p-form .err{display:none;margin-top:6px;font-size:14px;line-height:22px;color:var(--d-abk)}
.p-form .f input:user-invalid ~ .err,.p-form .f select:user-invalid ~ .err{display:block}
.p-form .hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.p-form .f-submit{display:flex;justify-content:center;margin-top:44px}
.p-form .f-submit .d-btn{width:100%;height:61px;border:0;cursor:pointer;font-family:inherit}
/* 03 送信完了画面（220:3940）＝送信後だけ出す（#done で表示） */
.p-form .f-done{display:none;padding:100px 0;background:var(--d-soft)}
.p-form .f-done:target{display:block}
.p-form .f-done__box{width:100%;padding:40px;background:#fff;border:1px solid var(--d-line);border-radius:var(--d-r)}
.p-form .f-done__box h2{font-weight:700;font-size:26px;line-height:36px;color:var(--d-blue)}
.p-form .f-done__box > p{margin-top:16px}
.p-form .f-done__box ul{list-style:none;margin-top:16px;border-top:1px solid var(--d-hair)}
.p-form .f-done__box li{padding:12px 0;border-bottom:1px solid var(--d-hair);font-size:15px;line-height:24px}
.p-form .f-done__back{display:inline-block;margin-top:16px;font-weight:700}
@media (max-width:1023px){
  .p-form .f-head{padding:64px 0 48px}
  .p-form .f-title{font-size:26px;line-height:38px;letter-spacing:1px}
  .p-form .f-box{padding:20px}
  .p-form .f-body{padding:48px 0 40px}
  .p-form fieldset{padding:0 16px 20px}
  .p-form legend{width:calc(100% + 32px);margin:0 -16px 20px;padding:14px 16px;font-size:18px;line-height:28px}
  .p-form .choices{grid-template-columns:1fr;gap:10px}
  .p-form .f-done__box{padding:24px 20px}
}

/* ── WordPress版だけにある状態（サーバー側の入力チェック・確認画面）。静的版の部品にそろえる ── */
.p-form .err.is-on{display:block}
.p-form .f.is-error input,.p-form .f.is-error select,.p-form .f.is-error textarea{border-color:var(--d-abk)}
.p-form .formerr{margin-bottom:24px;padding:14px 18px;font-weight:700;color:var(--d-abk);background:#fff0f0;border:1px solid var(--d-abk);border-radius:10px}
.p-form .formstage{margin-bottom:24px;font-weight:700;font-size:24px;line-height:34px;color:var(--d-blue);text-align:center}
.p-form .deflist{margin:0;background:#fff;border:1px solid var(--d-line);border-radius:var(--d-r);overflow:hidden}
.p-form .deflist dt{margin:0;padding:14px 20px 4px;font-weight:700;font-size:14px;line-height:22px;color:var(--d-gray)}
.p-form .deflist dd{margin:0;padding:0 20px 14px;border-bottom:1px solid var(--d-hair);font-size:16px;line-height:26px}
.p-form .deflist dd:last-child{border-bottom:0}
.p-form .f-submit--confirm{flex-direction:column;align-items:center;gap:14px}
.p-form .d-btn--ghost{height:auto;width:auto;background:#fff;color:var(--d-blue);border:1px solid var(--d-blue)}

/* ── 先方 申込フォームの加筆修正（2026-10-14）：冒頭の案内・空室状況・入学時期ごとの案内・確認事項 ── */
.p-form .f-list{margin-top:10px;padding-left:1.2em;list-style:disc}
.p-form .f-list li{display:list-item;padding:2px 0;border:0;font-size:15px;line-height:26px}
.p-form .f-notes{margin-top:10px}
.p-form .f-notes p{font-size:13px;line-height:22px;color:var(--d-gray)}
.p-form .f-sub{margin-top:16px;padding-left:10px;border-left:3px solid var(--d-blue);font-weight:700;font-size:15px;line-height:24px}
.p-form .f-box__t + .f-sub{margin-top:12px}
.p-form .f-vtbl{width:100%;margin-top:12px;border-collapse:collapse;font-size:15px;line-height:24px;text-align:center}
.p-form .f-vtbl th,.p-form .f-vtbl td{padding:10px 8px;border:1px solid var(--d-hair);background:var(--d-cell)}
.p-form .f-vtbl thead th{background:var(--d-blue);color:#fff;font-weight:700}
.p-form .f-vtbl thead td{background:var(--d-blue)}
.p-form .f-vtbl tbody th{font-weight:700;text-align:left}
.p-form .f-em{font-weight:700;font-size:15px;line-height:26px;color:var(--d-abk)}   /* 先方指示「赤字で強調」 */
.p-form .f-sub + .f-em{margin-top:8px}
.p-form .f-deadline{display:inline-block;margin-top:10px;padding:4px 12px;background:#fff6c8;font-weight:700;font-size:15px;line-height:26px}
.p-form .f-track{width:100%;margin-top:32px}
.p-form .f-track__h{padding-left:10px;border-left:4px solid var(--d-blue);font-weight:700;font-size:17px;line-height:28px;color:var(--d-blue)}
.p-form .f-track > p:not(.f-track__h){margin-top:8px;font-size:15px;line-height:26px}
.p-form .f-track > p.f-em{margin-top:10px}
.p-form .f-track .f-box{margin-top:12px}
.p-form .fsnote--s{margin-top:-16px;margin-bottom:20px;font-size:13px;line-height:22px;color:var(--d-gray)}
.p-form .fsnote--s + .fsnote--s{margin-top:-18px}
.p-form .f-rules ul{margin-top:10px;padding-left:1.2em;list-style:disc}
.p-form .f-rules li{padding:3px 0;font-size:14px;line-height:23px}
.p-form .f-rules__sub{display:block;padding-left:1em;color:var(--d-gray)}
@media (max-width:767px){
  .p-form .f-vtbl{font-size:14px}
  .p-form .f-vtbl th,.p-form .f-vtbl td{padding:8px 6px}
}
/* 短い案内は語の途中で改行しない（「〜いたし／ます」「1月31日／です」） */
.p-form:lang(ja) :is(.f-em,.f-deadline,.f-sub,.f-track__h,.f-box__t,.f-list li){word-break:keep-all;overflow-wrap:anywhere}
.p-form{line-break:strict}
/* 「必須」「任意」の札が行の途中で割れない（スマホで「必／須」になっていた） */
.p-form .req,.p-form .opt{display:inline-block;white-space:nowrap}

/* ---- テーマの固定ヘッダーの下にページ内ナビを止める（WP組込み時のみ。高さは abk-dorm.php のJSが実測） ---- */
.p-dorm .d-nav{top:var(--abk-hd,0px)}
/* PC・タブレットではテーマのヘッダーが画面上部に固定で重なるため、冒頭の写真と見出しがその下に隠れていた（768幅で見出しが丸ごと隠れる）。
   ヘッダーの高さ分だけ本文を下げる。スマホ（767以下）はテーマ側で既に下がっているので触らない */
@media (min-width:768px){ .p-dorm{padding-top:var(--abk-hd,95px)} }
