@charset "UTF-8";
:root {
  --container-max: calc(120rem + var(--grid-gutter));
  --grid-gutter: clamp(2rem, 1.182rem + 1.42vi, 3rem);
  --grid-gap: var(--grid-gutter);
  --bp-sm: 576px;
  --bp-md: 768px;
  --bp-lg: 1024px;
  --bp-xl: 1280px;
  --space-0: 0;
  --space-1: 0.4rem;
  --space-2: 0.8rem;
  --space-3: 1.2rem;
  --space-4: 1.6rem;
  --space-5: 2.4rem;
  --space-6: 3.2rem;
  --space-7: 4.8rem;
  --space-8: 6.4rem;
  --radius-0: 0;
  --radius-1: 0.4rem;
  --radius-2: 0.8rem;
  --radius-3: 1.2rem;
  --radius-4: 1.6rem;
  --radius-round: 9999px;
  --accent-500: #00BBC2;
  --success-500: #16a34a;
  --warning-500: #f59e0b;
  --danger-500: #ef3055;
  --neutral-50: #fafafa;
  --neutral-100: #F4F6F7;
  --neutral-150: #F0F3F5;
  --neutral-200: #e5e7eb;
  --neutral-300: #d1d5db;
  --neutral-400: #9ca3af;
  --neutral-500: #6b7280;
  --neutral-600: #4b5563;
  --neutral-700: #374151;
  --neutral-800: #1f2937;
  --neutral-900: #111827;
  --color-bg: var(--neutral-50);
  --color-surface: #fff;
  --color-fg: #111827;
  --color-muted: var(--neutral-500);
  --color-border: #bbb8;
  --color-primary: var(--brand-500);
  --color-primary-contrast: #fff;
  --lineheight-heading: calc(1em + 1rem);
  --lineheight-init: 1.8;
}

/* テーマ別カラーをトークン化 */
:root {
  --brand-o-50: #005EAD12;
  --brand-o-100: #005EAD26;
  --brand-o-200: #005EAD40;
  --brand-o-300: #005EAD66;
  --brand-o-400: #005EADB3;
  --brand-o-500: #005EAD;
  --brand-cw-50: #FA6DA112;
  --brand-cw-100: #FA6DA126;
  --brand-cw-200: #FA6DA140;
  --brand-cw-300: #FA6DA166;
  --brand-cw-400: #FA6DA1B3;
  --brand-cw-500: #FA6DA1;
  --brand-sw-50: #29B27F12;
  --brand-sw-100: #29B27F26;
  --brand-sw-200: #29B27F40;
  --brand-sw-300: #29B27F66;
  --brand-sw-400: #29B27FB3;
  --brand-sw-500: #29B27F;
  --brand-st-50: #F2804012;
  --brand-st-100: #F2804026;
  --brand-st-200: #F2804040;
  --brand-st-300: #F2804066;
  --brand-st-400: #F28040B3;
  --brand-st-500: #F28040;
  --brand-psw-50: #7D64EA12;
  --brand-psw-100: #7D64EA26;
  --brand-psw-200: #7D64EA40;
  --brand-psw-300: #7D64EA66;
  --brand-psw-400: #7D64EAB3;
  --brand-psw-500: #7D64EA;
  --brand-accent-50: #00BBC212;
  --brand-accent-100: #00BBC226;
  --brand-accent-200: #00BBC240;
  --brand-accent-300: #00BBC266;
  --brand-accent-400: #00BBC2B3;
  --brand-accent-500: #00BBC2;
  --brand-50: var(--brand-o-50);
  --brand-100: var(--brand-o-100);
  --brand-200: var(--brand-o-200);
  --brand-300: var(--brand-o-300);
  --brand-400: var(--brand-o-400);
  --brand-500: var(--brand-o-500);
}

.t-orig {
  --brand-50: var(--brand-o-50);
  --brand-100: var(--brand-o-100);
  --brand-200: var(--brand-o-200);
  --brand-300: var(--brand-o-300);
  --brand-400: var(--brand-o-400);
  --brand-500: var(--brand-o-500);
  --color-primary: var(--brand-500);
}

.t-cw {
  --brand-50: var(--brand-cw-50);
  --brand-100: var(--brand-cw-100);
  --brand-200: var(--brand-cw-200);
  --brand-300: var(--brand-cw-300);
  --brand-400: var(--brand-cw-400);
  --brand-500: var(--brand-cw-500);
  --color-primary: var(--brand-500);
}

.t-sw {
  --brand-50: var(--brand-sw-50);
  --brand-100: var(--brand-sw-100);
  --brand-200: var(--brand-sw-200);
  --brand-300: var(--brand-sw-300);
  --brand-400: var(--brand-sw-400);
  --brand-500: var(--brand-sw-500);
  --color-primary: var(--brand-500);
}

.t-st {
  --brand-50: var(--brand-st-50);
  --brand-100: var(--brand-st-100);
  --brand-200: var(--brand-st-200);
  --brand-300: var(--brand-st-300);
  --brand-400: var(--brand-st-400);
  --brand-500: var(--brand-st-500);
  --color-primary: var(--brand-500);
}

.t-psw {
  --brand-50: var(--brand-psw-50);
  --brand-100: var(--brand-psw-100);
  --brand-200: var(--brand-psw-200);
  --brand-300: var(--brand-psw-300);
  --brand-400: var(--brand-psw-400);
  --brand-500: var(--brand-psw-500);
  --color-primary: var(--brand-500);
}

.t-accent {
  --brand-50: var(--brand-accent-50);
  --brand-100: var(--brand-accent-100);
  --brand-200: var(--brand-accent-200);
  --brand-300: var(--brand-accent-300);
  --brand-400: var(--brand-accent-400);
  --brand-500: var(--brand-accent-500);
  --color-primary: var(--brand-500);
}

*, *::before, *::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

*:where(.l-main :not(a)) {
  text-decoration: inherit;
}

html, body {
  height: 100%;
}

html:focus-within {
  scroll-behavior: smooth;
}

body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizelegibility;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
}

a {
  color: inherit;
}

ul {
  list-style: none;
}

html {
  font-size: 62.5%;
  scroll-padding-top: calc(var(--header-height) + 3rem);
}

@media (min-width: 1600px) {
  /* 幅1600px以上で、em/remが適用される全要素をゆるやかにズーム */
  html {
    font-size: calc(62.5% + (100vw - 1600px) * 0.004);
  }
}
@media (max-width: 768px) {
  html {
    font-size: clamp(10px, 2.667vw, 11px);
  }
}
body {
  min-height: 100vh;
  min-height: 100dvh; /* フッタ最下固定用、vhは古いiOS用フォールバック */
  font-size: 1.6rem;
  line-height: var(--lineheight-init);
  color: var(--color-fg);
  font-family: "Noto Sans JP", sans-serif;
}

:where(p, ul, ol, dl, table) {
  margin-block: var(--space-4);
}

:where(h2, h3, h4, h5, h6, .c-h2, .c-h3, .c-h4, .c-h5, .c-h6) + :where(p, ul, ol, dl, table) {
  margin-top: var(--space-2);
}

body *:first-child {
  margin-top: 0;
}

body *:last-child {
  margin-bottom: 0;
}

code,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

img {
  -o-object-fit: cover;
     object-fit: cover;
}

hr {
  border: 0;
  border-top: 1px solid var(--color-border);
  margin: var(--space-6) 0;
}

/* リンク要素 */
:where(button) {
  cursor: pointer;
  color: inherit;
}

:where(a) {
  text-decoration: underline;
}

/* table */
table,
th,
td {
  border: 1px var(--color-border) solid;
}

table {
  border-collapse: collapse;
  line-height: 1.6;
}

th {
  background: rgba(177, 201, 213, 0.1803921569);
  font-weight: 500;
  padding: calc(var(--grid-gutter) * 0.2) calc(var(--grid-gutter) * 0.35);
}

td {
  background: #fff;
  padding: calc(var(--grid-gutter) * 0.3) calc(var(--grid-gutter) * 0.5);
}

/* フォーム部品 */
main :where(input, button, select, optgroup, textarea) {
  margin: 0.2rem;
}

main input:where([type=radio], [type=checkbox]) {
  margin: 0 0.3rem 0 0;
}

label {
  display: inline-block;
  margin-right: 1.2em;
}

input:not(:is([type=checkbox], [type=radio], [type=file])),
select,
textarea {
  padding: 1rem 1.2rem;
  background: #fff;
  color: var(--color-fg);
}

input:not([type=checkbox], [type=radio], [type=file], [size]),
textarea {
  width: calc(100% - 3px);
}

input:not(:is([type=checkbox], [type=radio], [type=file]))[size] {
  max-width: calc(100% - 3px);
}

input,
select,
textarea {
  border: 1px var(--color-border) solid;
  border-radius: var(--radius-1);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

:is(input, select, textarea):focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}

select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  padding-right: 3rem;
  background: #fff url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 24 24"><path fill="%23000000" d="M7,10L12,15L17,10H7Z" /></svg>') no-repeat calc(100% - 0.2rem) 50%;
  background-size: 1.8rem auto;
}

/* CMSエディタ用 クラスなし初期スタイル：li左端に色つきマーカー */
:where(main .l-container ul) {
  padding-left: 0;
}
:where(main .l-container ul) > :where(li) {
  position: relative;
  padding-left: 1em;
}
:where(main .l-container ul) > :where(li) ~ li {
  margin-top: calc(var(--space-2) * 0.75);
}
:where(main .l-container ul) > :where(li)::before {
  content: "";
  display: block;
  position: absolute;
  top: 1em;
  left: 0.1em;
  width: 0.8rem;
  aspect-ratio: 1;
  background-color: var(--brand-500);
  border-radius: 50%;
  translate: 0 -50%;
}
:where(main .l-container ul).u-text-red > :where(li)::before {
  background-color: var(--danger-500);
}

:where(main .l-container ol) {
  padding-left: 1.5em;
}
:where(main .l-container ol) > :where(li ~ li) {
  margin-top: calc(var(--space-2) * 0.75);
}

/*
ruby {
  position: relative;
  display: inline-block;
  vertical-align: bottom;
  margin-top: 0.4em !important;
}
*/
.l-container {
  position: relative;
  width: min(98%, var(--container-max));
  margin-inline: auto;
  padding: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2) calc(var(--grid-gutter) / 2);
  container-type: inline-size;
}
.l-container:has(> .c-block-full-bg:first-child) {
  padding-top: 0;
}
.l-container:has(> .c-block-full-bg:first-child) {
  padding-bottom: 0;
}

.l-header {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100;
  display: grid;
  grid-template-columns: 1fr auto auto;
  width: min(100%, 100vw);
  background: transparent;
  line-height: 1.5;
  transition: background-color 0.4s 0.2s ease-out, box-shadow 0.8s 0.2s ease-out;
  /* サイトタイトル（ウインドウ幅に応じてサイズを微調整） */
  /* ハンバーガー */
  /* ナビ 
     - primary: メイン（PC下段、SPでは上）
     - secondary: サブ（PC上段小文字、SPでは下） 
     ※運用で編集しうる箇所のため、HTMLソースの見通しを考慮しセレクタを一部許容 */
  /* 資料請求・問い合わせ */
}
.l-header :where(ul) {
  margin: 0;
  padding: 0;
}
.l-header :where(li) {
  position: relative;
}
.l-header :where(a, button) {
  position: relative;
  display: block;
  text-decoration: none;
}
.is-scrolled .l-header {
  background-color: #fff;
  box-shadow: 0 1px 8px rgba(34, 34, 34, 0.0470588235);
}
@media (min-width: 1280px) {
  .is-scrolled .l-header__nav-primary__link, .is-scrolled .l-header__nav-secondary__link {
    color: var(--color-fg) !important;
  }
}
@media (min-width: 1024px) and (not (min-width: 1280px)) {
  .l-header:has(.l-header__toggle.is-open) {
    background: rgba(255, 255, 255, 0.2666666667);
    backdrop-filter: blur(10px);
  }
}
.l-header__site-name a {
  display: flex;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  height: 100%;
}
@media (min-width: 1280px) {
  .l-header__site-name a {
    padding: 0.4rem 1.6rem;
  }
}
@media (min-width: 768px) and (not (min-width: 1280px)) {
  .l-header__site-name a {
    padding: 4px 1.2rem;
  }
}
@media not (min-width: 768px) {
  .l-header__site-name {
    height: calc(2rem + 6vw);
  }
  .l-header__site-name a {
    padding: 0.4rem;
  }
  .l-header__site-name img {
    max-height: 100%;
  }
}
.l-header__toggle {
  order: 100;
  position: relative;
  height: 100%;
  aspect-ratio: 1;
  padding: 0;
  border: none;
  background: #fff;
  overflow: hidden;
  white-space: nowrap;
  text-indent: 200%;
}
.l-header__toggle::before, .l-header__toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  width: max(40%, 22px);
  height: 2px;
  background: var(--brand-500);
  translate: -50% -50%;
  transition: rotate 0.15s, background 0.1s;
}
@media (min-width: 1280px) {
  .l-header__toggle {
    display: none;
  }
}
@media (min-width: 768px) and (not (min-width: 1280px)) {
  .l-header__toggle::before {
    box-shadow: 0 -9px 0 var(--brand-500);
  }
  .l-header__toggle::after {
    box-shadow: 0 9px 0 var(--brand-500);
  }
}
@media not (min-width: 768px) {
  .l-header__toggle::before {
    box-shadow: 0 -7px 0 var(--brand-500);
  }
  .l-header__toggle::after {
    box-shadow: 0 7px 0 var(--brand-500);
  }
}
.l-header__toggle.is-open::before {
  rotate: -45deg;
  box-shadow: none;
}
.l-header__toggle.is-open::after {
  rotate: 45deg;
  box-shadow: none;
}
.l-header__nav {
  display: flex;
  flex-direction: column;
  /* 非折り畳み時（PC大） */
  /* 折り畳み時（PC小/タブレット/SP） */
  /* タブレット */
  /* SP */
}
.l-header__nav-primary__link {
  font-weight: 500;
  transition: color 0.5s;
}
.l-header__nav-secondary__link {
  font-weight: 500;
  transition: color 0.5s;
}
.l-header__nav-secondary__link::before {
  content: "";
  display: inline-block;
  height: 1em;
  aspect-ratio: 1;
  margin-right: 0.4em;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  scale: 1.25;
  translate: 0 10%;
}
.l-header__nav-secondary__link--faq::before {
  background-image: url("../img/common/icon-faq.svg");
}
.l-header__nav-secondary__link--events::before {
  background-image: url("../img/common/icon-event.svg");
}
.l-header__nav-secondary__link--access::before {
  background-image: url("../img/common/icon-access.svg");
}
.l-header__nav-secondary__link--nfujp::before {
  background-image: url("../img/common/icon-lock.svg");
}
.l-header__nav-secondary__link--students::before {
  background-image: url('data:image/svg+xml;charset=UTF-8,<svg width="50" height="60" viewBox="0 0 50 60" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M25.0064 27.5806C27.1944 27.5806 29.3333 26.9317 31.1525 25.7162C32.9718 24.5006 34.3897 22.7728 35.227 20.7514C36.0644 18.7299 36.2834 16.5056 35.8566 14.3596C35.4297 12.2136 34.3761 10.2424 32.8289 8.69528C31.2818 7.14813 29.3106 6.09451 27.1646 5.66765C25.0187 5.24079 22.7943 5.45987 20.7729 6.29718C18.7514 7.1345 17.0237 8.55244 15.8081 10.3717C14.5925 12.191 13.9437 14.3298 13.9437 16.5178C13.9437 19.4518 15.1092 22.2657 17.1839 24.3404C19.2585 26.415 22.0724 27.5806 25.0064 27.5806ZM25.0064 10.9865C26.1004 10.9865 27.1698 11.3109 28.0795 11.9187C28.9891 12.5265 29.6981 13.3903 30.1167 14.4011C30.5354 15.4118 30.6449 16.524 30.4315 17.5969C30.2181 18.6699 29.6912 19.6555 28.9177 20.4291C28.1441 21.2027 27.1585 21.7295 26.0855 21.9429C25.0125 22.1563 23.9004 22.0468 22.8896 21.6281C21.8789 21.2095 21.015 20.5005 20.4072 19.5909C19.7994 18.6813 19.475 17.6118 19.475 16.5178C19.475 15.0508 20.0578 13.6439 21.0951 12.6066C22.1325 11.5692 23.5394 10.9865 25.0064 10.9865ZM25.0064 33.1119C19.8719 33.1119 14.9476 35.1516 11.317 38.7823C7.68629 42.413 5.64661 47.3372 5.64661 52.4717C5.64661 53.2052 5.93799 53.9087 6.45666 54.4274C6.97532 54.946 7.67879 55.2374 8.41229 55.2374C9.1458 55.2374 9.84926 54.946 10.3679 54.4274C10.8866 53.9087 11.178 53.2052 11.178 52.4717C11.178 48.8042 12.6349 45.2869 15.2282 42.6936C17.8216 40.1002 21.3389 38.6433 25.0064 38.6433C28.6739 38.6433 32.1912 40.1002 34.7846 42.6936C37.3779 45.2869 38.8348 48.8042 38.8348 52.4717C38.8348 53.2052 39.1262 53.9087 39.6449 54.4274C40.1635 54.946 40.867 55.2374 41.6005 55.2374C42.334 55.2374 43.0375 54.946 43.5561 54.4274C44.0748 53.9087 44.3662 53.2052 44.3662 52.4717C44.3662 47.3372 42.3265 42.413 38.6958 38.7823C35.0652 35.1516 30.1409 33.1119 25.0064 33.1119Z" fill="%23005EAD"/></svg>');
}
.l-header__nav-secondary__link--students {
  display: block;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
}
@media (min-width: 1280px) {
  .l-header__nav {
    --gnav-gap: clamp(2rem, -2rem + 3.125vi, 3rem);
  }
  .l-header__nav-secondary {
    order: -1;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) {
    position: relative;
    display: flex;
    justify-content: end;
    padding-right: var(--gnav-gap);
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle-target {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.15s, opacity 0.3s;
    position: absolute;
    left: 50%;
    width: 24rem;
    padding-inline: 2rem;
    border-radius: 0.8rem;
    background-color: var(--neutral-700);
    color: #fff;
    translate: -50% 0;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle-target > li ~ li {
    border-top: 1px rgba(255, 255, 255, 0.1333333333) solid;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle-target a {
    padding-block: 1.2rem;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    display: block;
    translate: -50% 200%;
    opacity: 0;
    transition: translate 0.1s, opacity 0.3s;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle.is-open::after {
    width: 1rem;
    aspect-ratio: 3/2;
    background-color: var(--neutral-700);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    translate: -50% 1px;
    opacity: 1;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle.is-open + .js-toggle-target {
    max-height: 1000px;
    padding-block: 0.8rem;
    opacity: 1;
  }
  .l-header__nav-primary {
    gap: calc(var(--gnav-gap) + 1.1rem);
  }
  .l-header__nav-primary__link {
    line-height: 5rem;
  }
  .l-header__nav-secondary {
    z-index: 2;
    gap: var(--gnav-gap);
    padding-block: 0.8rem 0.2rem;
    font-size: 1.5rem;
  }
  .l-header__nav-secondary__link {
    line-height: 3rem;
  }
}
@media not (min-width: 1280px) {
  .l-header__nav {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.15s, opacity 0.3s;
    position: absolute;
    left: 0;
    top: var(--header-height);
    width: 100%;
    background: linear-gradient(var(--brand-400), var(--brand-400)), linear-gradient(var(--brand-400), var(--brand-400)), #fff;
    color: #fff;
  }
  .l-header__nav[aria-hidden=false] {
    max-height: calc(100dvh - var(--header-height));
    overflow: auto;
    overscroll-behavior: contain;
    opacity: 1;
  }
  .l-header__nav-secondary__link--nfujp::before, .l-header__nav-secondary__link--students::before {
    filter: brightness(0.6);
  }
}
@media (min-width: 768px) and (not (min-width: 1280px)) {
  .l-header__nav-primary {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(26rem, 1fr));
    gap: calc((1rem + 2vw) * 0.8);
    padding: calc(1rem + 2vw);
  }
  .l-header__nav-primary > li {
    border-radius: 0.8rem;
    background: rgba(0, 34, 85, 0.1333333333);
    overflow: hidden;
  }
  .l-header__nav-primary__link {
    padding: 0.8em 1.8rem 0.6em;
    background: rgba(0, 34, 85, 0.1333333333);
    font-size: 1.7rem;
    font-weight: 600;
  }
  .l-header__nav-primary__link::before {
    content: "";
    display: inline-block;
    width: 0.5em;
    aspect-ratio: 1;
    margin-right: 0.6em;
    border: #fff solid;
    border-width: 2px 2px 0 0;
    rotate: 45deg;
    translate: 0 -15%;
  }
  .l-header__nav-primary__sub {
    padding: 0.4rem 1.8rem 1rem;
  }
  .l-header__nav-primary__sub > li ~ li {
    border-top: 1px rgba(255, 255, 255, 0.5333333333) dotted;
  }
  .l-header__nav-primary__sub > li > a {
    padding: 0.5em 0;
  }
  .l-header__nav-secondary {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2.5rem;
    padding: 0 calc(1rem + 2vw) calc(1rem + 2vw);
  }
  .l-header__nav-secondary__sub {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.15s, opacity 0.3s;
    position: absolute;
    left: 50%;
    width: 24rem;
    padding-inline: 2rem;
    border-radius: 0.8rem;
    background-color: var(--neutral-700);
    color: #fff;
    translate: -50% 0;
    bottom: 100%;
  }
  .l-header__nav-secondary__sub > li ~ li {
    border-top: 1px rgba(255, 255, 255, 0.5333333333) dotted;
  }
  .l-header__nav-secondary__sub > li > a {
    padding-block: 0.5em;
  }
  .l-header__nav-secondary .l-header__nav-secondary__sub[aria-hidden=false] {
    max-height: 500px;
    padding-block: 0.8rem;
    opacity: 1;
  }
}
@media not (min-width: 768px) {
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle-target {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.15s, opacity 0.3s;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) .js-toggle-target[aria-hidden=false] {
    max-height: 1000px;
    opacity: 1;
  }
  :is(.l-header__nav-primary, .l-header__nav-secondary) > li ~ li {
    border-top: 1px rgba(255, 255, 255, 0.1333333333) solid;
  }
  .l-header__nav-primary__link {
    padding: 1.2rem 3rem 1.2rem 1.4rem;
  }
  .l-header__nav-secondary {
    background: rgba(0, 34, 85, 0.2666666667);
  }
  .l-header__nav-secondary__link {
    padding: 1.05rem 3rem 1.05rem 1.4rem;
  }
  .l-header__nav-secondary__link--students {
    width: 100%;
    text-align: unset;
  }
  .l-header__nav-secondary__link--students::before {
    filter: brightness(0.2);
  }
  .l-header__nav-primary__link:has(+ .l-header__nav-primary__sub)::after, .l-header__nav-secondary__link:has(+ .l-header__nav-secondary__sub)::after {
    content: "";
    display: block;
    position: absolute;
    right: 1rem;
    top: 50%;
    translate: -50% -50%;
    width: 9px;
    aspect-ratio: 1;
    background-image: linear-gradient(90deg, transparent 4px, #fff 4px, #fff 5px, transparent 5px), linear-gradient(0deg, transparent 4px, #fff 4px, #fff 5px, transparent 5px);
    background-size: 9px 9px, 9px 9px;
    background-position: 50% 50%;
    transition: background 0.2s;
  }
  .l-header__nav-primary__link:has(+ .l-header__nav-primary__sub).is-open::after, .l-header__nav-secondary__link:has(+ .l-header__nav-secondary__sub).is-open::after {
    background-image: linear-gradient(0deg, transparent 4px, #fff 4px, #fff 5px, transparent 5px), linear-gradient(0deg, transparent 4px, #fff 4px, #fff 5px, transparent 5px);
  }
  :is(.l-header__nav-primary__sub, .l-header__nav-secondary__sub) {
    position: relative;
    padding-inline: 1.4rem;
    border-left: 3px rgba(255, 255, 255, 0.9333333333) solid;
    background-color: rgba(0, 34, 85, 0.1333333333);
  }
  :is(.l-header__nav-primary__sub, .l-header__nav-secondary__sub) > li ~ li {
    border-top: 1px rgba(255, 255, 255, 0.0666666667) solid;
  }
  :is(.l-header__nav-primary__sub, .l-header__nav-secondary__sub) > li > a {
    padding: 1.05rem 1rem;
  }
}
.l-header__cta {
  display: flex;
  height: 100%;
}
.l-header__cta__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: #fff;
}
.l-header__cta__link--doc {
  background: var(--brand-500);
}
.l-header__cta__link--contact {
  background: var(--accent-500);
}
.l-header__cta__link__text {
  display: block;
  width: 7em;
  font-size: 1.3rem;
  white-space: nowrap;
}
@media (min-width: 1280px) {
  .l-header__cta__link {
    gap: 0.5em;
    padding-inline: clamp(0rem, -2.4rem + 1.875vi, 0.6rem);
  }
  .l-header__cta__link img {
    width: 3.2rem;
  }
}
@media (min-width: 768px) and (not (min-width: 1280px)) {
  .l-header__cta__link {
    min-width: 100px;
  }
}
@media not (min-width: 1280px) {
  .l-header__cta__link img {
    width: 2rem;
  }
}
@media not (min-width: 1024px) {
  .l-header__cta__link__text {
    font-size: clamp(1rem, 0.614rem + 0.67vi, 1.3rem);
  }
}
@media not (min-width: 576px) {
  .l-header__cta__link__text {
    width: auto;
    min-width: 5em;
    line-height: 1;
    scale: 0.8;
    white-space: nowrap;
  }
}

/* ヘッダの高さをトークン化 */
@media (min-width: 1280px) {
  :root {
    --header-height: 9rem;
  }
}
@media (min-width: 768px) and (not (min-width: 1280px)) {
  :root {
    --header-height: 78px;
  }
}
@media not (min-width: 768px) {
  :root {
    --header-height: calc(2rem + 6vw);
  }
}

.l-footer {
  --footer-vertical-padding: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * .8);
  position: sticky;
  top: 100vh; /* この2行で、コンテンツエリアの高さが足りないときにフッタを最下固定 */
  background: var(--brand-500);
  line-height: 1.5;
  color: #fff;
  /* .l-containerに適用 */
  /* 校名・住所・SNS */
  /* フッターナビ
     ※ヘッダと同じく一部セレクタを許容 */
  /* 下段コピーライト */
}
.l-footer :where(a) {
  text-decoration: none;
}
.l-footer__inner {
  display: grid;
  padding-block: 0;
}
@media (min-width: 1024px) {
  .l-footer__inner {
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: calc(var(--grid-gutter) * 1.5);
  }
}
.l-footer__profile {
  display: grid;
  gap: calc(var(--grid-gutter) * 0.67);
  margin: 0;
  padding-block: var(--footer-vertical-padding);
}
.l-footer__profile__site-name {
  filter: brightness(0) invert(1);
}
.l-footer__profile__sns {
  display: flex;
  gap: 0.6em;
  padding: 0;
}
.l-footer__profile__sns img {
  width: 1.6em;
}
@media not (min-width: 1024px) {
  .l-footer__profile {
    text-align: center;
  }
  .l-footer__profile__site-name {
    display: block;
    margin-inline: auto;
  }
  .l-footer__profile__sns {
    justify-content: center;
  }
}
.l-footer__nav {
  margin: 0;
  padding: var(--footer-vertical-padding) 0;
  -moz-columns: auto 20rem;
       columns: auto 20rem;
  -moz-column-gap: var(--grid-gutter);
       column-gap: var(--grid-gutter);
}
@media not (min-width: 768px) {
  .l-footer__nav {
    -moz-columns: auto 16rem;
         columns: auto 16rem;
  }
}
.l-footer__nav__item {
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  margin-bottom: 0.8em;
  paddig-bottom: 0.2em;
}
.l-footer__nav__item:has(ul) {
  margin-bottom: 1.4em;
}
.l-footer__nav__link {
  font-weight: bold;
}
@media (min-width: 768px) {
  .l-footer__nav__link {
    font-size: 1.7rem;
  }
}
.l-footer__nav__sub {
  padding-left: 0.8em;
  line-height: 1.2;
}
.l-footer__nav__sub > li + li {
  margin-top: 0.6em;
}
.l-footer__nav__sub > li > a::before {
  content: "";
  display: inline-block;
  width: 0.2em;
  margin-inline: -0.7em 0.5em;
  border-top: 1px #fff solid;
  translate: 0 -0.3em;
}
@media not (min-width: 768px) {
  .l-footer__nav__sub {
    font-size: min(1.5rem, 2.5vw + 0.4rem);
  }
  .l-footer__nav__sub > li + li {
    margin-top: 0.8em;
  }
}
.l-footer__copyright {
  position: relative;
  z-index: 2;
  padding-block: 1.5em;
  font-size: calc(clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem) * 0.6);
  transition: all 0.3s;
}
@media not (min-width: 768px) {
  .l-footer__copyright {
    text-align: center;
  }
  body:has(.l-fixed-buttons):not(:has(.l-fixed-buttons__toggle.is-on)) .l-footer__copyright {
    padding-bottom: 10rem;
  }
}
.l-footer__copyright::before {
  content: "";
  position: absolute;
  right: 50%;
  top: 0;
  z-index: -1;
  display: block;
  width: 60vw;
  height: 100%;
  background: rgba(0, 34, 85, 0.2666666667);
  box-shadow: 50vw 0 0 rgba(0, 34, 85, 0.2666666667);
}

.l-fixed-buttons {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 50;
  font-size: calc(clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem) * 0.68);
  overflow: hidden;
  transition: all 0.3s;
}
.l-fixed-buttons__body {
  display: grid;
  grid-auto-flow: column;
  gap: 2px;
  margin: 0;
  background-color: rgba(0, 0, 0, 0.4);
  text-align: center;
  backdrop-filter: blur(0.4rem);
}
.l-fixed-buttons__item {
  display: contents;
}
.l-fixed-buttons__link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.5em;
  text-decoration: none;
  line-height: 1.2;
  font-weight: 500;
  color: #fff;
  overflow: hidden;
}
.l-fixed-buttons__link::after {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  right: 0;
  bottom: 0;
  width: 1rem;
  background: rgba(0, 0, 0, 0.2666666667);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.l-fixed-buttons__link ruby rt {
  line-height: 1;
}
.l-fixed-buttons__link--cw-ao, .l-fixed-buttons__link--intl {
  background-color: #EE5A95;
}
.l-fixed-buttons:has(.l-fixed-buttons__link--cw-ao) .l-fixed-buttons__link--intl {
  background-color: #BB3663;
}
@media (width <= 450px) {
  .l-fixed-buttons__link--intl .l-fixed-buttons__sub {
    scale: 0.85;
  }
}
:where(.l-fixed-buttons__link) {
  background-color: #00A3B8;
}
:where(.l-fixed-buttons :nth-child(5n-1 of .l-fixed-buttons__item) .l-fixed-buttons__link) {
  background-color: #004E96;
}
:where(.l-fixed-buttons :nth-child(5n of .l-fixed-buttons__item) .l-fixed-buttons__link) {
  background-color: #59AC16;
}
:where(.l-fixed-buttons :nth-child(5n+1 of .l-fixed-buttons__item) .l-fixed-buttons__link) {
  background-color: #D5AB00;
}
:where(.l-fixed-buttons :nth-child(5n+2 of .l-fixed-buttons__item) .l-fixed-buttons__link) {
  background-color: #7966AE;
}
.l-fixed-buttons__sub {
  display: block;
  margin-top: 0.2em !important;
  font-size: 1rem;
}
.l-fixed-buttons__toggle {
  all: unset;
  position: absolute;
  top: 0;
  z-index: 2;
  display: block;
  width: 2.4rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--neutral-700);
  cursor: pointer;
}
.l-fixed-buttons__toggle::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  left: 50%;
  top: 50%;
  width: 30%;
  aspect-ratio: 1;
  border: #fff solid;
  border-width: 2px 2px 0 0;
  translate: -50% -50%;
}
.l-fixed-buttons:has(.l-fixed-buttons__toggle.is-on) .l-fixed-buttons__toggle {
  rotate: 180deg;
}
@media (min-width: 768px) {
  .l-fixed-buttons {
    padding: 1.2rem 0 0 1.2rem;
  }
  .l-fixed-buttons__body {
    padding: 1.2rem;
  }
  .l-fixed-buttons__link {
    width: 10em;
  }
  .l-fixed-buttons__toggle {
    left: 0;
  }
  .l-fixed-buttons__toggle::before {
    rotate: 45deg;
  }
  .l-fixed-buttons:has(.l-fixed-buttons__toggle.is-on) {
    width: 2.8rem;
  }
}
@media not (min-width: 768px) {
  .l-fixed-buttons {
    width: 100%;
    padding-top: 1rem;
  }
  .l-fixed-buttons__toggle {
    left: 0.6rem;
  }
  .l-fixed-buttons__toggle::before {
    rotate: 135deg;
  }
  .l-fixed-buttons__body {
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    padding: 0.6rem;
  }
  .l-fixed-buttons__body:has(.l-fixed-buttons__item:nth-child(4):last-child) {
    grid-auto-flow: unset;
    grid-template-columns: repeat(2, 1fr);
  }
  .l-fixed-buttons__body:has(.l-fixed-buttons__item:nth-child(5)) {
    grid-auto-flow: unset;
    grid-template-columns: repeat(3, 1fr);
  }
  .l-fixed-buttons__eng-sub {
    scale: 0.8;
  }
  .l-fixed-buttons:has(.l-fixed-buttons__toggle.is-on) {
    translate: 0 calc(100% - 2.4rem);
    padding-top: 1.6rem;
  }
}

.l-page-title {
  position: relative;
  display: flex;
  min-height: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 8);
  padding-top: var(--header-height);
  background: #E6F2FD url("../../assets/img/common/pagetitle_bg.webp") no-repeat 50% 50%/cover;
  /* .l-containerに適用 */
  /* テキスト要素をまとめる */
  /* バリエーション：学科ページ */
  /* 各種テキスト要素 */
}
@media not (min-width: 1024px) {
  .l-page-title {
    min-height: max(100px + 30vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 5);
  }
}
.l-page-title::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  right: 10%;
  top: calc(var(--header-height) + 15%);
  width: min(3vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 0.38);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.6666666667) 0%, white 100%);
  translate: -120% -120%;
}
.l-page-title::after {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  right: 10%;
  top: calc(var(--header-height) + 15%);
  z-index: 0;
  width: min(5vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 0.6);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.6666666667) 0%, white 100%);
  translate: 120% 100%;
}
.l-page-title__inner {
  position: relative;
  display: flex;
  align-items: center;
}
.l-page-title__inner::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  right: max(28%, 150px);
  top: max(10%, 20px);
  width: min(10vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.4);
  background: linear-gradient(90deg, #A9E7E9 0%, #80DCDF 100%);
}
.l-page-title__inner::after {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  right: 5%;
  bottom: 0;
  z-index: 0;
  width: min(21vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2.8);
  background: linear-gradient(90deg, #D6E1FA 0%, #ADC6F6 100%);
  translate: 0 24%;
}
.l-page-title__text-box {
  position: relative;
  width: 100%;
  padding-block: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 0.6);
}
.l-page-title__text-box > * {
  position: relative;
  z-index: 10;
}
.l-page-title__text-box::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  left: 0;
  top: 50%;
  z-index: 0;
  width: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2);
  translate: -50% -50%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.2) 0%, white 100%);
}
.l-page-title__text-box::after {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  left: 40%;
  bottom: max(-5vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * -0.9);
  z-index: 0;
  width: min(3.5vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 0.4);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.6666666667) 0%, white 100%);
}
.l-page-title--course {
  background: #fff;
}
.l-page-title--course::before {
  all: unset;
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: calc(100% - var(--header-height));
  background-image: linear-gradient(rgba(0, 0, 0, 0.5333333333) 100%), var(--course-pagetitle-bg-image);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
}
.l-page-title--course.t-cw {
  --course-pagetitle-bg-image: url("../../assets/img/course/cw/pagetitle_bg.webp");
}
.l-page-title--course.t-sw {
  --course-pagetitle-bg-image: url("../../assets/img/course/sw/pagetitle_bg.webp");
}
.l-page-title--course.t-st {
  --course-pagetitle-bg-image: url("../../assets/img/course/st/pagetitle_bg.webp");
}
.l-page-title--course.t-psw {
  --course-pagetitle-bg-image: url("../../assets/img/course/psw/pagetitle_bg.webp");
}
.l-page-title--course::after, .l-page-title--course *::before, .l-page-title--course *::after {
  content: unset;
  display: none;
}
.l-page-title--course .l-page-title--course__text-box {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
:is(.t-cw, .t-sw, .t-st, .t-psw) .l-page-title__main {
  color: var(--brand-500);
}
.l-page-title__outline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6em 1.5em;
  margin-top: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 0.5);
  line-height: 1.5;
  font-size: calc(clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem) * 0.625);
  color: #fff;
}
.l-page-title__outline-block {
  display: grid;
  grid-template-columns: auto 1fr;
}
.l-page-title__outline-block__label {
  padding: 0.1em 0.5em;
  background: var(--brand-200);
}
.l-page-title__outline-block__cnt {
  padding: 0.1em 0.5em 0.1em 0.6em;
}
.l-page-title__outline-block--full {
  width: 100%;
}
.l-page-title__extra {
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 0.8em;
  padding: 0.25em 0.6em;
  background: var(--brand-500);
  font-size: calc(clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem) * 0.625);
  font-weight: 600;
  color: #fff;
}

.l-row {
  display: flex;
  flex-wrap: wrap;
  margin-left: calc(-1 * var(--grid-gutter) / 2);
  margin-right: calc(-1 * var(--grid-gutter) / 2);
}

.l-col {
  box-sizing: border-box;
  padding-left: calc(var(--grid-gutter) / 2);
  padding-right: calc(var(--grid-gutter) / 2);
  min-height: 1px;
  flex: 0 0 auto;
  width: 100%;
}

/* Width utilities for 12 columns */
.l-col-1 {
  width: 8.3333333333%;
}

.l-col-2 {
  width: 16.6666666667%;
}

.l-col-3 {
  width: 25%;
}

.l-col-4 {
  width: 33.3333333333%;
}

.l-col-5 {
  width: 41.6666666667%;
}

.l-col-6 {
  width: 50%;
}

.l-col-7 {
  width: 58.3333333333%;
}

.l-col-8 {
  width: 66.6666666667%;
}

.l-col-9 {
  width: 75%;
}

.l-col-10 {
  width: 83.3333333333%;
}

.l-col-11 {
  width: 91.6666666667%;
}

.l-col-12 {
  width: 100%;
}

/* Responsive variants */
@media (min-width: 576px) {
  .l-col-sm-1 {
    width: 8.3333333333%;
  }
  .l-col-sm-2 {
    width: 16.6666666667%;
  }
  .l-col-sm-3 {
    width: 25%;
  }
  .l-col-sm-4 {
    width: 33.3333333333%;
  }
  .l-col-sm-5 {
    width: 41.6666666667%;
  }
  .l-col-sm-6 {
    width: 50%;
  }
  .l-col-sm-7 {
    width: 58.3333333333%;
  }
  .l-col-sm-8 {
    width: 66.6666666667%;
  }
  .l-col-sm-9 {
    width: 75%;
  }
  .l-col-sm-10 {
    width: 83.3333333333%;
  }
  .l-col-sm-11 {
    width: 91.6666666667%;
  }
  .l-col-sm-12 {
    width: 100%;
  }
}
@media (min-width: 768px) {
  .l-col-md-1 {
    width: 8.3333333333%;
  }
  .l-col-md-2 {
    width: 16.6666666667%;
  }
  .l-col-md-3 {
    width: 25%;
  }
  .l-col-md-4 {
    width: 33.3333333333%;
  }
  .l-col-md-5 {
    width: 41.6666666667%;
  }
  .l-col-md-6 {
    width: 50%;
  }
  .l-col-md-7 {
    width: 58.3333333333%;
  }
  .l-col-md-8 {
    width: 66.6666666667%;
  }
  .l-col-md-9 {
    width: 75%;
  }
  .l-col-md-10 {
    width: 83.3333333333%;
  }
  .l-col-md-11 {
    width: 91.6666666667%;
  }
  .l-col-md-12 {
    width: 100%;
  }
}
@media (min-width: 1024px) {
  .l-col-lg-1 {
    width: 8.3333333333%;
  }
  .l-col-lg-2 {
    width: 16.6666666667%;
  }
  .l-col-lg-3 {
    width: 25%;
  }
  .l-col-lg-4 {
    width: 33.3333333333%;
  }
  .l-col-lg-5 {
    width: 41.6666666667%;
  }
  .l-col-lg-6 {
    width: 50%;
  }
  .l-col-lg-7 {
    width: 58.3333333333%;
  }
  .l-col-lg-8 {
    width: 66.6666666667%;
  }
  .l-col-lg-9 {
    width: 75%;
  }
  .l-col-lg-10 {
    width: 83.3333333333%;
  }
  .l-col-lg-11 {
    width: 91.6666666667%;
  }
  .l-col-lg-12 {
    width: 100%;
  }
}
@media (min-width: 1280px) {
  .l-col-xl-1 {
    width: 8.3333333333%;
  }
  .l-col-xl-2 {
    width: 16.6666666667%;
  }
  .l-col-xl-3 {
    width: 25%;
  }
  .l-col-xl-4 {
    width: 33.3333333333%;
  }
  .l-col-xl-5 {
    width: 41.6666666667%;
  }
  .l-col-xl-6 {
    width: 50%;
  }
  .l-col-xl-7 {
    width: 58.3333333333%;
  }
  .l-col-xl-8 {
    width: 66.6666666667%;
  }
  .l-col-xl-9 {
    width: 75%;
  }
  .l-col-xl-10 {
    width: 83.3333333333%;
  }
  .l-col-xl-11 {
    width: 91.6666666667%;
  }
  .l-col-xl-12 {
    width: 100%;
  }
}
/* 分割数を定めない汎用グリッド */
.l-autofill-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(25rem, 1fr));
  gap: var(--grid-gutter);
}

.l-autofit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8em, 1fr));
  gap: var(--grid-gutter);
}

ul:is(.l-autofill-grid, .l-autofit-grid) > li {
  padding-left: 0;
}
ul:is(.l-autofill-grid, .l-autofit-grid) > li::before {
  all: revert;
}

/* Layout-level gutter presets */
.l-gap-0 {
  --grid-gutter: 0px;
}

.l-gap-1 {
  --grid-gutter: 0.8rem;
}

.l-gap-2 {
  --grid-gutter: 1.2rem;
}

.l-gap-3 {
  --grid-gutter: 1.6rem;
}

.l-gap-4 {
  --grid-gutter: 2.4rem;
}

.l-gap-5 {
  --grid-gutter: 3.2rem;
}

.l-gap-6 {
  --grid-gutter: 4.8rem;
}

.l-rowgap-0 {
  row-gap: 0 !important;
}

.l-rowgap-02 {
  row-gap: 0.2rem !important;
}

.l-rowgap-04 {
  row-gap: 0.4rem !important;
}

.l-rowgap-1 {
  row-gap: 0.8rem !important;
}

.l-rowgap-2 {
  row-gap: 1.2rem !important;
}

.l-rowgap-3 {
  row-gap: 1.6rem !important;
}

.l-rowgap-4 {
  row-gap: 2.4rem !important;
}

.l-rowgap-5 {
  row-gap: 3.2rem !important;
}

.l-rowgap-6 {
  row-gap: 4.8rem !important;
}

/* 随時挿入用の小ブロック */
:where(.c-box) {
  margin-block: 3rem;
  padding: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) / 3) calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) / 2);
  background-color: var(--neutral-100);
}
:where(.c-box):is(.t-cw, .t-sw, .t-st, .t-psw), :is(.t-cw, .t-sw, .t-st, .t-psw) :where(.c-box) {
  background-color: var(--brand-50);
}

.c-box--skeleton {
  border: 4px var(--brand-100) solid;
  background-color: transparent;
}

/* 全面背景色 */
.c-block-full-bg {
  position: relative;
  padding-block: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.8);
}
.c-block-full-bg:where(:not(:first-child)) {
  margin-top: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.8);
}
.c-block-full-bg:where(:not(:last-child)) {
  margin-bottom: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.8);
}
.c-block-full-bg > * {
  position: relative;
  z-index: 1;
}
.c-block-full-bg::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: 50%;
  width: 50vw;
  height: 100%;
  background: var(--neutral-100);
  box-shadow: 50vw 0 0 var(--neutral-100);
}
:is(.t-cw, .t-sw, .t-st, .t-psw) .c-block-full-bg::before, .c-block-full-bg:is(.t-cw, .t-sw, .t-st, .t-psw)::before {
  background: var(--brand-50);
  box-shadow: 50vw 0 0 var(--brand-50);
}
.c-block-full-bg .c-box {
  background-color: #fff;
}

/* h1 - h6 */
h1, h2, h3, h4, h5, h6,
.c-h1, .c-h2, .c-h3, .c-h4, .c-h5, .c-h6 {
  line-height: var(--lineheight-heading);
  font-weight: 700;
}

h1, .c-h1 {
  font-size: clamp(3.5rem, 2.404rem + 2.809vi, 6rem);
}

h2:where(:not(.c-h3, .c-h4, .c-h5, .c-h6)), .c-h2 {
  margin-block: 1.4em 0.8em;
  font-size: clamp(2.7rem, 2.267rem + 1.354cqw, 4rem);
  color: var(--brand-500);
}

h3:where(:not(.c-h2, .c-h4, .c-h5, .c-h6)), .c-h3 {
  margin-block: 1.2em 0.8em;
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--brand-500);
  font-size: clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem);
}

h4:where(:not(.c-h2, .c-h3, .c-h5, .c-h6)), .c-h4 {
  margin-block: 1em max(var(--space-2), 0.5em);
  font-size: clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem);
  color: var(--brand-500);
}

h5:where(:not(.c-h2, .c-h3, .c-h4, .c-h6)), .c-h5 {
  margin-block: 0.8em var(--space-2);
  font-size: 1.8rem;
}

h6:where(:not(.c-h2, .c-h3, .c-h4, .c-h5)), .c-h6 {
  margin-block: 0.8em var(--space-2);
  font-size: 1.6rem;
}

:is(h2, .c-h2,
h3, .c-h3,
h4, .c-h4,
h5, .c-h5,
h6, .c-h6):first-child {
  margin-top: 0;
}

.c-heading-exbold-eng {
  margin-bottom: 0.6em;
  font: 800 calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.3)/1.2 Poppins, sans-serif;
  color: var(--brand-500);
}
.c-heading-exbold-eng__sub {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem);
  color: var(--color-fg);
}

/* 囲みラベル類（インラインで使用） */
.c-label-framed {
  display: inline-block;
  margin-block: 0.1em;
  padding: 0.3em 0.4em;
  background: var(--brand-500);
  line-height: 1.2;
  font-weight: 500;
  color: #fff;
}
.c-label-framed--skeleton {
  background: none;
  color: var(--brand-500);
  box-shadow: 0 0 0 1px var(--brand-500) inset;
}
.c-label-framed--skeleton-bold {
  padding: 0.5em 0.65em;
  background: none;
  color: var(--brand-500);
  box-shadow: 0 0 0 2px var(--brand-500) inset;
  font-weight: 600;
}

/* 囲みラベル：学科名専用
   ※使用頻度の高さを見込み、クラス一つで書けるよう、囲みラベルのバリエーションとせず個別に作成 */
.c-label-course {
  display: inline-block;
  min-width: 6em;
  margin-block: 0.1em;
  padding: 0.3em 0.35em;
  background: var(--accent-500);
  line-height: 1.2;
  text-align: center;
  font-weight: 500;
  font-size: 1.3rem;
  color: #fff;
}
.c-label-course:where(:not(.c-label-course--sw, .c-label-course--psw)) {
  letter-spacing: 0.5em;
  text-indent: 0.5em;
}
.c-list-definition__label .c-label-course {
  vertical-align: 15%;
}
.c-label-course--cw {
  background: var(--brand-cw-500);
}
.c-label-course--sw {
  background: var(--brand-sw-500);
}
.c-label-course--st {
  background: var(--brand-st-500);
}
.c-label-course--psw {
  background: var(--brand-psw-500);
}

/* 通常・フォーム共通 */
:where(.c-button, .c-button--form) {
  position: relative;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.15s ease, translate 0.1s ease;
}
:where(.c-button, .c-button--form):hover {
  opacity: 0.75;
}
:where(.c-button, .c-button--form):active {
  translate: 0 1px;
}

/* 通常のボタン（スケルトン） */
.c-button {
  width: min(37rem, 100%);
  max-width: 80vw;
  min-height: 3.5em;
  margin: 0.2rem;
  padding: 0.3em 2em 0.3em 0.9em;
  border: 2px solid currentcolor;
  border-radius: var(--radius-1);
  background: transparent;
  line-height: 1.25;
  text-align: left;
  font-weight: 700;
  color: var(--brand-500);
}
.c-button[href=""] {
  color: var(--neutral-400);
  pointer-events: none;
}
.c-button::after {
  content: "";
  position: absolute;
  right: 0.8em;
  top: 50%;
  display: block;
  width: 0.6em;
  aspect-ratio: 1;
  border: currentcolor solid;
  border-width: 0 0.18em 0.18em 0;
  translate: 0 -50%;
  rotate: -45deg;
}
.c-button[target=_blank]:not(:is([href*=".pdf" i], .c-button[href*=".xls" i], .c-button[href*=".doc" i]))::after {
  right: 0.6em;
  width: 0.9em;
  border: none;
  background: currentcolor;
  -webkit-mask: url("../../assets/img/common/icon-external.svg") no-repeat center/contain;
          mask: url("../../assets/img/common/icon-external.svg") no-repeat center/contain;
  rotate: unset;
}
.c-button--tall {
  min-height: 5em;
}
.c-button[href*=".pdf" i], .c-button[href*=".xls" i], .c-button[href*=".doc" i] {
  padding-left: 2.4em;
}
.c-button[href*=".pdf" i]::before, .c-button[href*=".xls" i]::before, .c-button[href*=".doc" i]::before {
  content: "";
  display: inline-block;
  width: 1.2em;
  aspect-ratio: 1;
  margin-inline: -1.6em 0.4em;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
}
.c-button[href*=".pdf" i]::before {
  background-image: url("../../assets/img/common/icon-file-pdf.svg");
}
.c-button[href*=".xls" i]::before {
  background-image: url("../../assets/img/common/icon-file-excel.svg");
}
.c-button[href*=".doc" i]::before {
  background-image: url("../../assets/img/common/icon-file-word.svg");
}

/* フォーム用ボタン（色ベタ） */
.c-button-form {
  justify-content: center;
  min-width: min(20rem, 35%);
  min-height: 3.5em;
  margin: 0.2rem;
  padding: 0.3em 0.9em;
  border: none;
  border-radius: 0.6rem;
  background: var(--brand-500);
  line-height: 1.25;
  text-align: center;
  font-weight: 700;
  color: #fff;
}
.c-button-form--proceed {
  min-width: min(37rem, 55%);
}
.c-button-form--cancel {
  background-color: var(--neutral-500);
}

/* 直下に複数の.c-buttonを収める専用 */
.c-button-group-root {
  text-align: center;
}
.c-button-group-root > .c-button {
  vertical-align: middle;
}
.c-button-group-root > .c-button:first-child {
  margin-top: 0.2rem;
}
.c-button-group-root > .c-button:last-child {
  margin-bottom: 0.2rem;
}

/* 資料請求・問い合わせの定型パーツ */
.c-button-large-cta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-block: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.5);
  padding: 0;
}
.c-button-large-cta__item {
  margin: 0;
  padding: 0;
}
.c-button-large-cta__item::before {
  content: unset;
  display: none;
}
.c-button-large-cta__link {
  display: grid;
  place-content: center;
  height: 6.5em;
  text-decoration: none;
  font-size: calc(clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) * 0.9);
  font-weight: 700;
  color: #fff;
}
.c-button-large-cta__link__text {
  position: relative;
  display: block;
}
.c-button-large-cta__link__text::before {
  content: "";
  display: inline-block;
  aspect-ratio: 1;
  width: 1em;
  scale: 2;
  opacity: 0.3;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: contain;
}
.c-button-large-cta__link__text::after {
  content: "";
  display: inline-block;
  aspect-ratio: 1;
  vertical-align: 10%;
  width: 0.35em;
  margin-left: 0.6em;
  border: #fff solid;
  border-width: 0.1em 0.1em 0 0;
  rotate: 45deg;
}
.c-button-large-cta__link--doc {
  border-radius: 1.2rem 0 0 1.2rem;
  background: linear-gradient(90deg, #1E7BCA 0%, #219BCC 100%);
}
.c-button-large-cta__link--doc .c-button-large-cta__link__text::before {
  background-image: url("../img/common/icon-doc.svg");
}
.c-button-large-cta__link--contact {
  border-radius: 0 1.2rem 1.2rem 0;
  background: linear-gradient(90deg, #22B4D1 0%, #26C9CF 100%);
}
.c-button-large-cta__link--contact .c-button-large-cta__link__text::before {
  background-image: url("../img/common/icon-mail.svg");
}
@media not (min-width: 768px) {
  .c-button-large-cta__link {
    height: 5em;
    padding-top: 0.8em;
    font-size: calc(clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem) * 0.8);
  }
  .c-button-large-cta__link__text::before {
    display: block;
    margin: 0 auto -0.5em;
  }
  .c-button-large-cta__link__text::after {
    margin-left: 0.3em;
  }
}

/* マーカーのみのリンク */
.c-link-marked, .c-link-marked-root a {
  display: inline-flex;
  align-items: center;
  padding-left: 1.6em;
  position: relative;
}
.c-link-marked::before, .c-link-marked-root a::before {
  content: "";
  flex-shrink: 0;
  display: inline-block;
  width: 0.8em;
  aspect-ratio: 1;
  margin-inline: -1.2em 0.4em;
  border-radius: 50%;
  background: var(--brand-500) url("../../assets/img/common/icon-arrow.svg") no-repeat 50% 50%/80%;
  translate: 0 10%;
  rotate: -90deg;
}
.c-link-marked[target=_blank]::after, .c-link-marked-root a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.9em;
  aspect-ratio: 1;
  margin-left: 0.5em;
  background: currentcolor;
  -webkit-mask: url("../../assets/img/common/icon-external.svg") no-repeat center/contain;
          mask: url("../../assets/img/common/icon-external.svg") no-repeat center/contain;
}
.c-link-marked[href*=".pdf"]::after, .c-link-marked-root a[href*=".pdf"]::after, .c-link-marked[href*=".xls"]::after, .c-link-marked-root a[href*=".xls"]::after, .c-link-marked[href*=".doc"]::after, .c-link-marked-root a[href*=".doc"]::after {
  content: "";
  display: inline-block;
  width: 1.2em;
  aspect-ratio: 1;
  margin-left: 0.4em;
  background: revert;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  -webkit-mask: unset;
          mask: unset;
  translate: 0 15%;
}
.c-link-marked[href*=".pdf"]::after, .c-link-marked-root a[href*=".pdf"]::after {
  background-image: url("../../assets/img/common/icon-file-pdf.svg");
}
.c-link-marked[href*=".xls"]::after, .c-link-marked-root a[href*=".xls"]::after {
  background-image: url("../../assets/img/common/icon-file-excel.svg");
}
.c-link-marked[href*=".doc"]::after, .c-link-marked-root a[href*=".doc"]::after {
  background-image: url("../../assets/img/common/icon-file-word.svg");
}

ul.c-link-marked-root > li {
  padding-left: 0;
}
ul.c-link-marked-root > li::before {
  content: unset;
  display: none;
}

/* アンカーナビ（折り畳みなし） */
.c-nav-local {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9em, 1fr));
  gap: 0.2rem;
  line-height: 1.3;
}
.c-nav-local > * {
  display: flex;
  padding: 0;
  background: var(--brand-100);
}
.c-nav-local > * + * {
  margin: 0;
}
.c-nav-local > *::before {
  display: none !important;
}
.c-nav-local > * a {
  display: inline-flex;
  align-items: center;
  padding-left: 1.6em;
  position: relative;
  flex-grow: 1;
  min-height: 5rem;
  padding: 0.3em 0.6em 0.3em 2em;
  text-decoration: none;
  font-weight: 600;
}
.c-nav-local > * a::before {
  content: "";
  flex-shrink: 0;
  display: inline-block;
  width: 0.8em;
  aspect-ratio: 1;
  margin-inline: -1.2em 0.4em;
  border-radius: 50%;
  background: var(--brand-500) url("../../assets/img/common/icon-arrow.svg") no-repeat 50% 50%/80%;
  translate: 0 10%;
}
.c-nav-local > * a:not([href^="#"])::before {
  rotate: -90deg;
}
.c-nav-local--sub > * {
  border: 2px var(--brand-100) solid;
  background: transparent;
}
.c-nav-local--sub > * a {
  min-height: 4.5rem;
}
.c-nav-local--sub > * a::before {
  background-color: var(--brand-400);
}

/* アンカーナビのSP折り畳み */
.c-nav-local-adapter__body {
  grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
}
@media (min-width: 1024px) {
  .c-nav-local-adapter__toggle {
    display: none;
  }
}
@media not (min-width: 1024px) {
  .c-nav-local-adapter {
    position: relative;
    z-index: 50;
    padding: 0.6rem;
  }
  .c-nav-local-adapter__toggle {
    position: relative;
    z-index: 2;
    display: block;
    width: 94%;
    margin-inline: auto;
    padding: 0.3em;
    border: none;
    border-radius: 5rem;
    background: var(--brand-500);
    text-align: center;
    color: #fff;
  }
  .c-nav-local-adapter__toggle::after {
    content: "";
    display: inline-block;
    aspect-ratio: 1;
    width: 0.8em;
    margin-left: 0.4em;
    background: linear-gradient(0deg, #fff calc(0.4em - 1px), transparent calc(0.4em - 1px), transparent calc(0.4em + 1px), #fff calc(0.4em + 1px));
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  }
  .c-nav-local-adapter__body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.15s, opacity 0.3s;
    position: absolute;
    left: 3%;
    top: 100%;
    z-index: 1;
    width: 94%;
    padding: 3vw;
    border-radius: 0.8rem;
    background-color: #fff;
    box-shadow: 0 0 20rem 100rem rgba(51, 51, 51, 0.4);
  }
  .c-nav-local-adapter__body[aria-hidden=false] {
    max-height: 2000px;
    opacity: 1;
  }
}

/* タブ風ナビ */
.c-nav-tabs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(3em, 1fr));
  gap: clamp(0.6rem, -0.394rem + 2.652vi, 3rem);
  margin-bottom: clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem);
  line-height: 1.2;
  text-align: center;
  font-weight: 500;
  color: #fff;
  box-shadow: 0 -2px 0 rgba(0, 0, 0, 0.1333333333) inset;
}
.c-nav-tabs__item {
  display: flex;
  padding-inline: 0;
}
.c-nav-tabs__item:not(:has(.is-on)) {
  padding-top: 1.4rem;
}
.c-nav-tabs__item::before {
  content: unset;
  display: none;
}
.c-nav-tabs__item ~ .c-nav-tabs__item {
  margin: 0;
}
.c-nav-tabs__link {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.8em 0.5rem;
  border-radius: 0.8rem 0.8rem 0 0;
  background: var(--neutral-400);
  text-decoration: none;
  transition: background 0.2s;
}
.c-nav-tabs__link::after {
  content: "";
  display: inline-block;
  aspect-ratio: 1;
  width: 0;
  aspect-ratio: 1;
  border: #fff solid;
  border-width: 0;
  rotate: 45deg;
  opacity: 0;
  transition: all 0.2s;
}
.c-nav-tabs__link.is-on, .c-nav-tabs__link:hover {
  background: var(--brand-500);
}
.c-nav-tabs__link.is-on::after {
  content: "";
  display: inline-block;
  aspect-ratio: 1;
  width: 0.5em;
  margin-top: 0.3em;
  border-width: 0 2px 2px 0;
  opacity: 1;
}

/* main内のul要素に対して使用し、ブレイクポイントlgで切り替え */
.c-nav-vertical-highlighted > li {
  position: relative;
  padding-left: 0.7em;
}
.c-nav-vertical-highlighted > li::before {
  aspect-ratio: unset;
  border-radius: unset;
}
@media (min-width: 1024px) {
  .c-nav-vertical-highlighted > li::before {
    width: 0.4rem;
    height: 1.4em;
  }
}
.c-nav-vertical-highlighted > li:not(:has(.is-open)) {
  color: var(--neutral-500);
}
.c-nav-vertical-highlighted > li:not(:has(.is-open))::before {
  content: unset;
  display: none;
}
.c-nav-vertical-highlighted__btn {
  padding: 0;
  border: none;
  background: none;
  text-decoration: none;
  font-weight: 600;
}
.c-nav-vertical-highlighted__btn:hover {
  color: var(--brand-500);
}
.c-nav-vertical-highlighted__btn.is-open {
  color: var(--brand-500);
  font-weight: 700;
  pointer-events: none;
}
@media not (min-width: 1024px) {
  .c-nav-vertical-highlighted {
    --home-ctg-selector-gap: clamp(.4em, calc(.9em - (375px - 100vw) * .24), .9em);
    display: flex;
    flex-wrap: wrap;
    gap: 0.3em calc(var(--home-ctg-selector-gap) + 1px);
    padding-bottom: 0.5em;
    overflow: hidden;
  }
  .c-nav-vertical-highlighted > li {
    margin-top: 0;
    padding: 0;
  }
  .c-nav-vertical-highlighted > li::before {
    top: 100%;
    width: 100%;
    height: 0.3rem;
  }
  .c-nav-vertical-highlighted > li::after {
    content: "";
    position: absolute;
    left: calc(var(--home-ctg-selector-gap) * -0.5 - 1px);
    top: 50%;
    display: block;
    height: 1em;
    border-left: 1px solid var(--neutral-400);
    translate: 0 -50%;
  }
}
.c-nav-vertical-highlighted--flat {
  --home-ctg-selector-gap: clamp(.4em, calc(.9em - (375px - 100vw) * .24), .9em);
  display: flex;
  flex-wrap: wrap;
  gap: 0.3em calc(var(--home-ctg-selector-gap) + 1px);
  padding-bottom: 0.5em;
  overflow: hidden;
}
.c-nav-vertical-highlighted--flat > li {
  margin-top: 0;
  padding: 0;
}
.c-nav-vertical-highlighted--flat > li::before {
  top: 100%;
  width: 100%;
  height: 0.3rem;
}
.c-nav-vertical-highlighted--flat > li::after {
  content: "";
  position: absolute;
  left: calc(var(--home-ctg-selector-gap) * -0.5 - 1px);
  top: 50%;
  display: block;
  height: 1em;
  border-left: 1px solid var(--neutral-400);
  translate: 0 -50%;
}
@media (min-width: 576px) {
  .c-nav-vertical-highlighted--flat {
    --home-ctg-selector-gap: 2em;
  }
}

/* チェックマークのリスト */
.c-list-checked > li {
  padding-left: 1.6em;
}
.c-list-checked > li::before {
  all: revert;
  content: "";
  display: inline-block;
  height: 0.67em;
  aspect-ratio: 3/5;
  border: var(--brand-500) solid;
  border-width: 0 0.2em 0.2em 0;
  rotate: 45deg;
  margin-inline: -1.2em 0.6em;
}

/* 横等分割折り返しリスト（マーカーはデフォルトスタイル） */
.c-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr));
  gap: 0.3em 1.5em;
  line-height: 1.4;
}
.c-list-grid > li ~ li {
  margin: 0;
}
.c-list-grid > li::before {
  top: 0.85em;
}

.c-list-grid--wide {
  grid-template-columns: repeat(auto-fill, minmax(30rem, 1fr));
}

/* ニュース一覧（日付、学科ラベル、件名） */
.c-list-dated__item {
  padding-block: calc(var(--grid-gutter) * 0.667);
}
.c-list-dated__item ~ .c-list-dated__item {
  border-top: 1px var(--color-border) solid;
}
@media (min-width: 576px) {
  .c-list-dated__meta {
    display: grid;
    grid-template-columns: 7em 1fr;
  }
}
.c-list-dated__date {
  font-family: Inter, sans-serif;
  font-weight: 600;
}
.c-list-dated__course {
  display: flex;
  align-items: center;
  gap: 3px;
}
.c-list-dated__course .c-label-course {
  font-size: 1.3rem;
  margin: 0;
}
.c-list-dated__subject a {
  text-decoration: none;
}

.c-list-blog-wide {
  display: grid;
  gap: calc(var(--grid-gutter) * 1.5);
  line-height: 1.5;
}
.c-list-blog-wide__link {
  display: contents;
  text-decoration: none;
}
.c-list-blog-wide__link > * {
  transition: opacity 0.2s;
}
.c-list-blog-wide__link > *:hover {
  opacity: 0.8;
}
.c-list-blog-wide__item__img img {
  width: 100%;
  aspect-ratio: 5/3;
  transition: opacity 0.2s;
}
a:hover .c-list-blog-wide__item__img img {
  opacity: 0.8;
}
.c-list-blog-wide__item__textwrap {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.6rem;
}
.c-list-blog-wide__item__date {
  font-family: Inter, sans-serif;
}
.c-list-blog-wide__item__title {
  line-height: 1.3;
  font-weight: 600;
  font-size: 1.8rem;
  font-size: clamp(1.7rem, 0.575rem + 3.75cqw, 2rem);
}
.c-list-blog-wide__item__summary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 96%;
}
.c-list-blog-wide__item__course {
  margin-top: 0.4rem;
  font-size: 1.3rem;
}
@media (min-width: 768px) {
  .c-list-blog-wide__item {
    display: grid;
    grid-template-columns: 24rem 1fr;
    gap: var(--grid-gutter);
  }
  .c-list-blog-wide__item__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
}
@media not (min-width: 768px) {
  .c-list-blog-wide__item {
    width: min(100%, 25rem + 40vw);
    margin-inline: auto;
  }
  .c-list-blog-wide__item ~ .c-list-blog-wide__item {
    margin-top: var(--grid-gutter);
  }
  .c-list-blog-wide__item__textwrap {
    margin-top: 1.4rem;
  }
}

/* 汎用見出しつきリスト
   - .c-list-definition--faq を併用でFAQとなる（見出しに「Q.」を自動追加）
   - .c-list-definition__labelにbutton.c-list-definition__trigger.js-toggle（中にi.js-toggle__status含む）を内包、
     .c-list-definition__bodyに.js-toggle-targetを付与で、アコーディオンとして機能  */
.c-list-definition {
  display: grid;
  gap: var(--space-4);
  /* --faqのみのスタイル */
}
:where(.c-list-definition) {
  margin-block: clamp(2.7rem, 2.267rem + 1.354cqw, 4rem);
}
.c-list-definition__unit {
  background-color: var(--neutral-150);
}
.c-list-definition__label {
  position: relative;
  margin: 0;
  padding: 0.6em 0.6em 0.6em 0.8em;
  border-right: none;
  background-color: var(--brand-100);
  line-height: var(--lineheight-heading);
  font-size: clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem);
  font-weight: 500;
  color: var(--color-fg);
  overflow: hidden;
}
.c-list-definition__label .c-list-definition__trigger {
  position: relative;
  display: block;
  width: 100%;
  padding: 0 calc(12px + 0.7em) 0 0;
  border: none;
  background: none;
  text-align: unset;
}
.c-list-definition__label .c-list-definition__trigger::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  scale: 3;
}
.c-list-definition__label .c-list-definition__trigger .js-toggle__status {
  position: absolute;
  right: 0;
  top: 50%;
  translate: 0 -50%;
}
.c-list-definition__body {
  max-height: 0;
  margin: 0;
  padding-inline: calc(var(--grid-gutter) * 0.9);
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.2s, opacity 0.25s;
}
.c-list-definition__body:is([aria-hidden=false], :not(.js-toggle-target)) {
  max-height: 3000px;
  padding-block: calc(var(--grid-gutter) * 0.6);
  opacity: 1;
}
.c-list-definition--faq .c-list-definition__label {
  padding-left: 2.8em;
}
.c-list-definition--faq .c-list-definition__label::before {
  content: "Q.";
  position: absolute;
  left: 0.6em;
  display: block;
  font: 700 1.4em/1 Inter, sans-serif;
  color: var(--brand-500);
}

.c-grid-plain-dl {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.2em 1em;
}
.c-grid-plain-dl > * {
  margin: 0 !important;
}
.c-grid-plain-dl > dt {
  font-weight: 600;
}
@media not (min-width: 768px) {
  .c-grid-plain-dl--sp-flat {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* 汎用カードリスト（card.scssで定義したカードを内包） */
.c-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(30rem, 1fr));
  gap: 0 var(--grid-gutter);
  line-height: 1.5;
}

/* 汎用カード 
   __link, __img, __course, __title, 
   __summary（小文字・三点リーダ省略）, 
   __body（通常文字サイズ・SPで行間通常）
   上記以外の固有要素はそれぞれのバリエーションで追加 */
.c-card {
  display: grid;
  gap: 0;
  transition: opacity 0.2s;
}
.c-card-list .c-card {
  grid-template-rows: subgrid;
  padding-bottom: calc(var(--grid-gutter) * 1.5);
}
.c-card-list .c-card:has(> *:nth-child(2):last-child, > .c-card__link > *:nth-child(2):last-child) {
  grid-row: span 2;
}
.c-card-list .c-card:has(> *:nth-child(3):last-child, > .c-card__link > *:nth-child(3):last-child) {
  grid-row: span 3;
}
.c-card-list .c-card:has(> *:nth-child(4):last-child, > .c-card__link > *:nth-child(4):last-child) {
  grid-row: span 4;
}
.c-card-list .c-card:has(> *:nth-child(5):last-child, > .c-card__link > *:nth-child(5):last-child) {
  grid-row: span 5;
}
.c-card:has(.c-card__link:hover) {
  opacity: 0.85;
}
.c-card__link {
  display: contents;
  text-decoration: none;
  transition: opacity 0.2s;
}
.c-card__link > * {
  cursor: pointer;
}
.c-card > *, .c-card__link > * {
  width: min(100%, 25rem + 40vw);
  margin-inline: auto;
  container-type: inline-size;
}
.c-card__img {
  position: relative;
  aspect-ratio: 5/3;
  overflow: hidden;
}
.c-card__img > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: scale 0.3s ease-out;
}
.c-card:has(.c-card__link:hover) .c-card__img > img {
  scale: 1.04;
}
.c-card__course {
  display: flex;
}
.c-card__course .c-label-course {
  margin: 0;
}
.c-card__title {
  line-height: 1.4;
  font-weight: 600;
  font-size: 1.8rem;
}
.c-card__summary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  font-size: 96%;
}
@media not (min-width: 576px) {
  .c-card__body {
    line-height: var(--lineheight-init);
  }
}

/* ブログ */
.c-card--blog .c-card__course {
  position: absolute;
  left: 0;
  top: 0;
}
.c-card--blog .c-card__blog-meta {
  display: grid;
  grid-template-rows: auto 1fr;
  padding-block: 0.7em 0.4em;
}
.c-card--blog .c-card__blog-date {
  font-weight: 500;
  font-family: Inter, sans-serif;
  font-size: 92%;
  color: var(--neutral-700);
}

/* イベント */
.c-card--event {
  gap: 0.5em;
}
.c-card--event .c-card__event-date {
  position: absolute;
  left: 0;
  top: 0;
  padding: 0 0.5em 0.15em 0;
  background-color: #fff;
  font-weight: 700;
}
.c-card--event .c-card__event-date-Y, .c-card--event .c-card__event-date-MD {
  line-height: 1;
  font-family: Inter, sans-serif;
  font-size: min(5.4cqw, 1.6rem);
}
.c-card--event .c-card__event-date-MD {
  font-size: clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem);
  font-size: min(6cqw, 2.2rem);
}
.c-card--event .c-card__event-date-W {
  display: inline-block;
  font-size: 84%;
  translate: 0 -8%;
}
.c-card--event .c-card__course {
  position: absolute;
  right: 0;
  bottom: 0;
}

/* サムネイルつきポイント列挙 */
.c-card--feature .c-card__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-block: 0.5em 0.35em;
  text-align: center;
  color: var(--brand-500);
}

/* 教員メッセージ（カード状） */
.c-card--faculty {
  gap: 0.4em;
}
.c-card--faculty .c-card__img {
  aspect-ratio: 4/3;
  margin-bottom: 0.2em;
}
.c-card--faculty .c-card__title {
  text-align: center;
}
.c-card--faculty .c-card__faculty-lead {
  font-size: 1.8rem;
  font-size: clamp(1.6rem, 0.85rem + 2.5cqw, 1.8rem);
  font-weight: 600;
  color: var(--brand-500);
}
.c-card--faculty .c-card__faculty-profile {
  margin-top: 1em;
  padding: 0.8em 1.2em;
  background: var(--brand-50);
}
.c-block-full-bg .c-card--faculty .c-card__faculty-profile {
  background: #fff;
}
.c-card--faculty .c-card__faculty-profile__label {
  font-weight: 700;
  color: var(--brand-500);
}

/* 数値アピール用 */
.c-highlight-stat {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: center;
  gap: 0 1rem;
  text-align: center;
}
.c-highlight-stat__title {
  line-height: 1.3;
  font-size: clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem);
  font-weight: 900;
}
.c-highlight-stat__fig {
  margin-bottom: -0.1em;
  font: 700 calc(clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) * 3)/1 Poppins, Noto Sans JP, sans-serif;
  color: var(--brand-500);
  white-space: nowrap;
}
.c-highlight-stat__supl {
  margin-top: 0.4em;
  line-height: 1.4;
  font-size: calc(clamp(2.2rem, 2.067rem + 0.417vi, 2.6rem) * 0.7);
  font-weight: 600;
}
.c-highlight-stat--lite .c-highlight-stat__title {
  font-size: calc(clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem) * 0.85);
}
.c-highlight-stat--lite .c-highlight-stat__fig {
  font-size: calc(clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) * 2.5);
}
.c-highlight-stat--lite .c-highlight-stat__supl {
  font-size: max(1.6rem, clamp(2.2rem, 2.067rem + 0.417vi, 2.6rem) * 0.67);
}
.c-highlight-stat-quad-root {
  display: grid;
  gap: var(--grid-gutter);
}
@media (min-width: 1280px) {
  .c-highlight-stat-quad-root {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
}
@media (min-width: 576px) and (not (min-width: 1280px)) {
  .c-highlight-stat-quad-root {
    grid-template-columns: 1fr 1fr;
  }
}
.c-highlight-stat-quad-root__item .c-highlight-stat__title {
  flex-grow: 1;
}
@media (min-width: 1280px) {
  .c-highlight-stat-quad-root__item {
    grid-row: span 3;
    display: grid;
    grid-template-rows: subgrid;
    align-items: center;
    gap: 0;
  }
}
@media (min-width: 576px) and (not (min-width: 1024px)) {
  .c-highlight-stat-quad-root__item {
    grid-row: span 3;
    display: grid;
    grid-template-rows: subgrid;
    align-items: center;
    gap: 0;
  }
}
@media not (min-width: 576px) {
  .c-highlight-stat-quad-root__item {
    flex-direction: column;
    align-items: center;
  }
}

.c-interview,
.c-interview--full,
.c-interview--qa {
  position: relative;
  display: grid;
  gap: 1.5rem var(--grid-gutter);
}
.c-interview > *,
.c-interview--full > *,
.c-interview--qa > * {
  position: relative;
}

@media not (min-width: 768px) {
  .c-interview__img,
  .c-interview--full__img,
  .c-interview--qa__img {
    width: min(100%, 25rem + 40vw);
    margin-inline: auto;
  }
}
.c-interview__img > img,
.c-interview--full__img > img,
.c-interview--qa__img > img {
  width: 100%;
}

/* 写真と本文が横に並ぶコンパクト版 */
.c-interview {
  margin-block: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1);
}
.c-interview__img img {
  aspect-ratio: 5/3;
}
.c-interview__body::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  z-index: -1;
  width: 12rem;
  aspect-ratio: 1;
  background: var(--brand-50);
}
.c-block-full-bg .c-interview__body::before {
  background: rgba(255, 255, 255, 0.6666666667);
}
@media (min-width: 768px) {
  .c-interview {
    grid-template-columns: min(39rem, 42%) 1fr;
  }
  .c-interview__body::before {
    left: 0;
    top: 0;
    translate: -60% -20%;
  }
}
@media not (min-width: 768px) {
  .c-interview__body::before {
    translate: -40% -70%;
  }
}

/* INTERVIEWの見出しがあるフル版 */
.c-interview--full {
  margin-block: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1);
}
.c-interview--full__title {
  line-height: 1;
  font-family: Poppins, sans-serif;
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 0.025em var(--brand-500);
  text-stroke: 0.025em var(--brand-500);
  font-size: clamp(3.5rem, 2.404rem + 2.809vi, 6rem);
}
.c-interview--full__title::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  z-index: -1;
  width: 12rem;
  aspect-ratio: 1;
  background: var(--brand-50);
}
.c-block-full-bg .c-interview--full__title::before {
  background: rgba(255, 255, 255, 0.6666666667);
}
@media (min-width: 768px) {
  .c-interview--full {
    grid-template-columns: min(39rem, 42%) 1fr;
    grid-template-rows: auto 1fr auto;
  }
  .c-interview--full__title {
    grid-column: 2/3;
    grid-row: 1/2;
  }
  .c-interview--full__title::before {
    left: 0;
    top: 0;
    translate: -60% -20%;
  }
  .c-interview--full__img {
    grid-column: 1/2;
    grid-row: 1/3;
  }
  .c-interview--full__img img {
    aspect-ratio: 4/3;
  }
  .c-interview--full__header {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .c-interview--full__body {
    margin-top: 1rem;
    grid-column: 1/3;
  }
}
@media not (min-width: 768px) {
  .c-interview--full__title::before {
    translate: -40% -12%;
  }
  .c-interview--full__img img {
    aspect-ratio: 5/3;
  }
}

/* 一問一答式 */
.c-interview--qa {
  margin-block: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.2);
  counter-reset: q-count;
}
.c-interview--qa__profile {
  font-weight: 600;
}
.c-interview--qa__profile::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  z-index: -1;
  width: 12rem;
  aspect-ratio: 1;
  background: var(--brand-50);
}
.c-block-full-bg .c-interview--qa__profile::before {
  background: rgba(255, 255, 255, 0.6666666667);
}
.c-interview--qa__q {
  position: relative;
  display: flow-root;
  padding: 0 0 0.2em 1.4rem;
  line-height: var(--lineheight-heading);
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--brand-500);
  overflow: hidden;
  box-shadow: 3px 0 0 var(--brand-100) inset;
  counter-increment: q-count;
}
* ~ .c-interview--qa__q {
  margin-top: 2rem;
}
.c-interview--qa__q::first-letter {
  margin-left: -0.3em;
}
.c-interview--qa__q::before {
  content: "Q" counter(q-count);
  float: left;
  display: block;
  width: 2.4em;
  background: var(--brand-500);
  text-align: center;
  font-family: Inter, sans-serif;
  font-weight: 600;
  color: #fff;
  translate: -1.5rem -2%;
}
.c-interview--qa__a {
  padding-left: 1.4rem;
  box-shadow: 3px 0 0 var(--brand-100) inset;
}
@media (min-width: 768px) {
  .c-interview--qa {
    grid-template-columns: min(37.5rem, 40%) 1fr;
    grid-template-rows: auto 1fr;
  }
  .c-interview--qa__profile {
    grid-column: 2/3;
    grid-row: 1/2;
  }
  .c-interview--qa__profile::before {
    left: 0;
    top: 0;
    translate: -60% -20%;
  }
  .c-interview--qa__img {
    grid-column: 1/2;
    grid-row: 1/3;
  }
  .c-interview--qa__body {
    grid-column: 2/3;
    grid-row: 2/3;
  }
}
@media not (min-width: 768px) {
  .c-interview--qa__profile::before {
    left: 0;
    top: 0;
    translate: -20% -20%;
  }
  .c-interview--qa__img > img {
    aspect-ratio: 4/3;
    -o-object-position: 50% 6%;
       object-position: 50% 6%;
  }
}

/* 丸囲み通し番号リスト */
.c-features-indexed-heading {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 3.5em;
  margin: 1em 0 0.3em;
  padding: 0 0 0 3em;
  border: none;
  line-height: 1.4;
  font-weight: 700;
  counter-increment: ifh-count;
  /* 一応、-rootなしで強制入力も可能 */
}
.c-features-indexed-heading-root {
  counter-reset: ifh-count;
  margin-block: var(--grid-gutter);
}
.c-features-indexed-heading-root .c-features-indexed-heading::before, .c-features-indexed-heading-root .c-features-indexed-heading::after {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  left: 0;
  top: 0;
}
.c-features-indexed-heading-root .c-features-indexed-heading::before {
  width: 3.5em;
  border-radius: 50%;
  background: var(--brand-200);
  mix-blend-mode: multiply;
}
.c-features-indexed-heading-root .c-features-indexed-heading::after {
  content: counter(ifh-count);
  width: 1.2495em;
  line-height: 1.25 !important;
  text-align: center;
  font: 700 280%/1 Poppins, sans-serif;
  color: #fff;
}
.c-features-indexed-heading-root .c-features-indexed-heading--skeleton::before {
  content: unset;
  display: none;
}
.c-features-indexed-heading-root .c-features-indexed-heading--skeleton::after {
  line-height: 1;
  font-family: Poppins, sans-serif;
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 0.025em var(--brand-500);
  text-stroke: 0.025em var(--brand-500);
}
.c-features-indexed-heading__num {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 1.2495em;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--brand-200);
  line-height: 1.25 !important;
  text-align: center;
  font: 700 280%/1 Poppins, sans-serif;
  color: #fff;
  mix-blend-mode: multiply;
}

.c-features-alternate {
  display: grid;
  gap: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 0.5);
  counter-reset: af-count;
}
.c-features-alternate__block {
  position: relative;
  display: grid;
  align-content: start;
  padding-top: 8rem;
}
.c-features-alternate__heading {
  position: relative;
  margin: 0 0 0.6em;
  padding: 0;
  border: none;
  line-height: var(--lineheight-heading);
  font-weight: 700;
  font-size: clamp(3.5rem, 2.404rem + 2.809vi, 6rem);
  color: var(--color-fg);
  counter-increment: af-count;
}
.c-features-alternate__heading::before {
  content: counter(af-count, decimal-leading-zero);
  position: absolute;
  bottom: 100%;
  line-height: 1;
  font-family: Poppins, sans-serif;
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 0.025em var(--brand-500);
  text-stroke: 0.025em var(--brand-500);
  filter: saturate(0.1);
}
.c-features-alternate__heading::after {
  content: "";
  position: absolute;
  top: -0.5em;
  z-index: -1;
  display: block;
  height: calc(100% + 0.9em);
  background: var(--brand-50);
}
.c-features-alternate__heading__sub {
  display: block;
  line-height: var(--lineheight-heading);
  font-size: clamp(2.2rem, 2.067rem + 0.417vi, 2.6rem);
  color: var(--brand-500);
}
.c-features-alternate__visual {
  position: relative;
}
.c-features-alternate__visual .c-highlight-stat {
  padding: 2rem 3rem;
  background: #fff;
}
.c-features-alternate__more {
  margin-top: 1rem;
}
@media (min-width: 1024px) {
  .c-features-alternate__block {
    gap: 1rem calc(var(--grid-gutter) * 2);
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) {
    grid-template-columns: 1fr min(45.5rem, 20cqw + 21.5rem);
    grid-template-rows: auto 1fr auto;
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) .c-features-alternate__heading {
    grid-column: 1/2;
    grid-row: 1/2;
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) .c-features-alternate__heading::after {
    width: 125%;
    box-shadow: -60cqw 0 0 var(--brand-50);
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) .c-features-alternate__visual {
    grid-column: 2/3;
    grid-row: 1/3;
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) .c-features-alternate__body {
    grid-column: 1/2;
    grid-row: 2/3;
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) {
    grid-template-columns: min(45.5rem, 20cqw + 21.5rem) 1fr;
    grid-template-rows: auto 1fr auto;
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) .c-features-alternate__heading {
    grid-column: 2/3;
    grid-row: 1/2;
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) .c-features-alternate__heading::after {
    width: 125%;
    left: -25%;
    box-shadow: 60cqw 0 0 var(--brand-50);
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) .c-features-alternate__visual {
    grid-column: 1/2;
    grid-row: 1/3;
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) .c-features-alternate__body {
    grid-column: 2/3;
    grid-row: 2/3;
  }
  .c-features-alternate__more {
    grid-column: 1/3;
  }
}
@media not (min-width: 1024px) {
  .c-features-alternate__heading {
    width: 97%;
  }
  .c-features-alternate__heading::after {
    width: 100%;
    height: calc(100% + 2em);
    transform-origin: 0 0;
  }
  .c-features-alternate__visual {
    width: calc(45vw + 15rem);
    margin-inline: auto;
  }
  :is(.c-features-alternate__body, .c-features-alternate__more) {
    margin-top: 2rem;
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) .c-features-alternate__heading {
    padding-right: 2rem;
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) .c-features-alternate__heading::after {
    box-shadow: -100px 0 0 var(--brand-50);
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) .c-features-alternate__heading {
    margin-left: 3%;
    padding-left: 2rem;
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) .c-features-alternate__heading::after {
    margin-left: -2rem;
    box-shadow: 100px 0 0 var(--brand-50);
  }
}
@media not (min-width: 576px) {
  .c-features-alternate__visual {
    width: min(30vw + 25rem, 98%);
    margin-inline: auto;
  }
  .c-features-alternate__block:nth-child(2n+1 of .c-features-alternate__block) .c-features-alternate__visual {
    margin-inline: auto 0;
    translate: calc(1vw + var(--grid-gutter) / 2) 0;
  }
  .c-features-alternate__block:nth-child(2n of .c-features-alternate__block) .c-features-alternate__visual {
    margin-inline: 0;
    translate: calc(-1vw + var(--grid-gutter) / -2) 0;
  }
}

.c-frame-posts {
  display: grid;
  gap: calc(var(--grid-gap) * 2.5) calc(var(--grid-gap) * 1.2);
}
.c-frame-posts__ctg-menu {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(3em, 1fr));
  margin-bottom: clamp(2.7rem, 2.267rem + 1.354cqw, 4rem);
  border-radius: var(--radius-2) var(--radius-2) 0 0;
  overflow: hidden;
}
.c-frame-posts__ctg-menu > li {
  display: contents;
}
.c-frame-posts__ctg-menu > li::before {
  content: unset;
  display: none;
}
.c-frame-posts__ctg-menu > li:nth-child(n+1) .c-frame-posts__ctg-menu__btn {
  box-shadow: 1px 0 0 rgba(255, 255, 255, 0.5333333333) inset;
}
.c-frame-posts__ctg-menu__btn {
  padding: 0.4em 0.1em;
  background: var(--neutral-400);
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  color: #fff;
  transition: background 0.3s;
}
.c-frame-posts__ctg-menu__btn.is-open, .c-frame-posts__ctg-menu__btn:hover {
  background: var(--brand-500);
}
.c-frame-posts__index-header {
  margin-bottom: clamp(3.5rem, 2.404rem + 2.809vi, 6rem);
}
.c-frame-posts__index-header:not(:has(.c-frame-posts__index-header__ttl)) {
  margin-bottom: clamp(2.2rem, 2.067rem + 0.417vi, 2.6rem);
}
.c-frame-posts__index-header__count {
  text-align: right;
}
.c-frame-posts__content-meta {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 576px) {
  .c-frame-posts__content-meta {
    justify-content: space-between;
  }
}
@media not (min-width: 576px) {
  .c-frame-posts__content-meta {
    flex-direction: column;
  }
}
.c-frame-posts__content-ttl {
  margin-block: 0.6em 1.5em;
}
@media (min-width: 768px) {
  .c-frame-posts__body .c-card-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 576px) and (not (min-width: 768px)) {
  .c-frame-posts__body .c-card-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
.c-frame-posts__sub__heading {
  padding-left: 0.6em;
  border-left: 4px var(--brand-500) solid;
  font-size: 1.8rem;
  color: var(--brand-500);
}
* ~ .c-frame-posts__sub__heading {
  margin-top: 2em;
}
.c-frame-posts__sub__monthly-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10em, 1fr));
  gap: 0.2em 0.6em;
}
.c-frame-posts__sub__monthly-list > li {
  margin: 0;
  padding-left: 0;
}
.c-frame-posts__sub__monthly-list > li::before {
  content: unset;
  display: none;
}
.c-frame-posts__sub__posts-root {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr));
  gap: 1rem 1.5rem;
}
.c-frame-posts__sub__post {
  display: grid;
  grid-template-columns: 4.5em 1fr;
  grid-template-rows: auto 1fr;
  align-content: start;
  gap: 0.4em 0.6em;
  padding: 0;
  line-height: 1.5;
}
.c-frame-posts__sub__post::before {
  content: unset;
  display: none;
}
.c-frame-posts__sub__post > a {
  display: contents;
  text-decoration: none;
}
.c-frame-posts__sub__post > a > * {
  transition: opacity 0.2s;
}
.c-frame-posts__sub__post > a:hover > * {
  opacity: 0.8;
}
.c-frame-posts__sub__post-image {
  grid-column: 1/2;
  grid-row: 1/3;
  height: 4.5em;
}
.c-frame-posts__sub__post-date {
  grid-column: 2/3;
  grid-row: 1/2;
  font-size: 1.4rem;
}
.c-frame-posts__sub__post-ttl {
  grid-column: 2/3;
  grid-row: 2/3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-weight: 600;
  font-size: 1.5rem;
  overflow: hidden;
}
@media (min-width: 1024px) {
  .c-frame-posts {
    grid-template-columns: 3fr 1fr;
  }
  .c-frame-posts__index-header {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
  }
  .c-frame-posts__index-header__ttl {
    margin-bottom: 0;
  }
}
@media not (min-width: 1024px) {
  .c-frame-posts__index-header__ttl {
    margin-bottom: 0.2em;
  }
}

.c-form {
  display: grid;
}
.c-form__group {
  display: grid;
  border-top: 1px var(--color-border) solid;
}
.c-form__group:nth-last-child(1 of .c-form__group) {
  margin-bottom: var(--grid-gutter);
  border-bottom: 1px var(--color-border) solid;
}
.c-form__label {
  padding: 0.6rem 1.4rem;
  background: var(--brand-50);
  font-weight: 500;
}
.c-form__content {
  padding: 1.4rem;
  background: #fff;
  container-type: inline-size;
}
.c-form__content:has(.c-form__select-month option:is([value="2"], [value="4"], [value="6"], [value="9"], [value="11"]):checked) .c-form__select-day option[value="31"], .c-form__content:has(.c-form__select-month option[value="2"]:checked) .c-form__select-day option[value="30"] {
  display: none;
  pointer-events: none;
}
@media (min-width: 768px) {
  .c-form__group {
    grid-template-columns: 25rem 1fr;
  }
  .c-form__label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
  }
}
@media not (min-width: 768px) {
  .c-form__content {
    padding-bottom: 2rem;
  }
}
.c-form :is(input, select, textarea):focus {
  outline: none;
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}
.c-form__required {
  flex-shrink: 0;
  display: inline-block;
  padding: 0.2em 0.4em;
  border-radius: var(--radius-1);
  background: var(--danger-500);
  line-height: 1.2;
  font-size: 1.2rem;
  font-weight: 500;
  color: #fff;
}
.c-form__help {
  color: var(--color-muted);
  font-size: 1.3rem;
}
.c-form__error {
  color: var(--danger-500);
  font-size: 1.3rem;
}

/* ウインドウ幅に対応してスクロール可能になるブロック */
.js-responsive-scroller {
  position: relative;
  margin-block: var(--space-2);
  overflow: auto;
}
.js-responsive-scroller::before {
  content: "";
  position: absolute;
  left: 50%;
  top: min(50%, clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) + 50px);
  width: 0;
  background: url("../../assets/img/common/scrollable.svg") no-repeat 50% 50%/contain;
  pointer-events: none;
  translate: -50% -50%;
  transition: opacity 0.3s, width 0s 0.3s;
}
.js-responsive-scroller.is-ready::before {
  width: 120px;
  aspect-ratio: 6/5;
  opacity: 1;
}

/* ウインドウ幅に応じて縦積み化するテーブル */
table.is-stacking {
  min-width: unset !important;
  border-width: 1px 1px 0;
}
table.is-stacking, table.is-stacking > caption, table.is-stacking > :is(thead, tbody), table.is-stacking > :is(thead, tbody) > tr, table.is-stacking > :is(thead, tbody) > tr > :is(th, td), table.is-stacking > tr, table.is-stacking > tr > :is(th, td) {
  display: block;
  width: 100% !important;
}
table.is-stacking > :is(thead, tbody) > tr > :is(th, td), table.is-stacking > tr > :is(th, td) {
  border-width: 0 0 1px;
}
table.is-stacking > :is(thead, tbody) > tr > :is(th, td):empty, table.is-stacking > tr > :is(th, td):empty {
  display: none;
}

/* 汎用トグラー ステータスアイコン */
:root {
  --js-toggle-status-size: 12px;
  --js-toggle-status-line-width: 2px;
  --js-toggle-status-line-color: var(--brand-500);
}

.js-toggle__status {
  position: relative;
  display: inline-block;
  width: var(--js-toggle-status-size);
  aspect-ratio: 1;
}
.js-toggle__status::before, .js-toggle__status::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  display: block;
  width: 100%;
  border-top: var(--js-toggle-status-line-width) var(--js-toggle-status-line-color) solid;
}
.js-toggle:not(:is(.is-on, .is-open)) .js-toggle__status::before {
  rotate: 90deg;
}

main .js-toggle-target[aria-hidden=true] {
  display: none;
  opacity: 0;
}
main .js-toggle-target[aria-hidden=false] {
  opacity: 1;
}
@supports (transition-behavior: allow-discrete) {
  main .js-toggle-target[aria-hidden=true] {
    transition: opacity 0.5s, display 0.5s;
    transition-behavior: allow-discrete;
  }
  @starting-style {
    main .js-toggle-target[aria-hidden=false] {
      opacity: 0;
    }
  }
}

/* 横等分割折り返しリスト（マーカーはデフォルトスタイル） */
.c-sys-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
}
.c-sys-pagination a {
  display: block;
  padding: 0.1em 0.6em;
  text-decoration: none;
}
.c-sys-pagination > :is(span, a) {
  display: block;
  min-width: 1.2em;
  border: 1px var(--color-border) solid;
  text-align: center;
}
.c-sys-pagination .current_page {
  border: none;
  font-weight: 700;
}
.c-sys-pagination__newer, .c-sys-pagination__older {
  position: relative;
  width: 1.8em;
  white-space: nowrap;
  overflow: hidden;
}
.c-sys-pagination__newer a, .c-sys-pagination__older a {
  padding-left: 100%;
  text-indent: 200%;
}
.c-sys-pagination__newer a::before, .c-sys-pagination__older a::before {
  content: "";
  position: absolute;
  display: block;
  aspect-ratio: 1;
  top: 50%;
  translate: 0 -50%;
  width: 10px;
  border: var(--color-fg) solid;
  border-width: 2px 2px 0 0;
}
.c-sys-pagination__newer a::before {
  left: 0.7em;
  rotate: -135deg;
}
.c-sys-pagination__older a::before {
  right: 0.7em;
  rotate: 45deg;
}

.p-demo__box {
  background: var(--neutral-100);
  border: 1px solid var(--color-border);
  padding: 12px;
  border-radius: var(--radius-2);
  text-align: center;
}
.p-demo__card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-3);
  padding: var(--space-4);
  background: var(--color-surface);
}
.p-demo__card__swatch {
  border: 1px solid var(--color-border);
  border-radius: 8px;
  height: 56px;
}
.p-demo__card__token {
  font-family: ui-monospace, Menlo, Monaco, Consolas, "Courier New", monospace;
  display: block;
}

.p-home .l-header__site-name a {
  background: #fff;
}
@media (min-width: 1280px) {
  .p-home .l-header__nav-primary__link, .p-home .l-header__nav-secondary__link {
    color: #fff;
  }
}
@media not (min-width: 1024px) {
  .p-home .l-header {
    background: #fff;
  }
}

@media (min-width: 1280px) {
  .p-home:not(.is-scrolled) .l-header {
    background: rgba(0, 0, 0, 0.2666666667);
    backdrop-filter: blur(10px);
  }
}
.p-home-hero {
  position: relative;
  margin-bottom: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.1);
}
.p-home-hero__background {
  background: url("../../assets/img/home/hero_bg.webp") no-repeat 50% 50%/cover;
}
.p-home-hero__slide {
  position: relative;
}
.p-home-hero__slide::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 20;
  mix-blend-mode: multiply;
}
.p-home-hero__slide img {
  width: 100%;
  height: 100%;
}
.p-home-hero__text {
  color: #fff;
}
.p-home-hero__text__sub {
  font-weight: 700;
  line-height: 1.5;
}
@media (min-width: 576px) {
  .p-home-hero {
    --home-hero-padding-bottom: calc(1rem + 3.75vw);
    padding-bottom: var(--home-hero-padding-bottom);
  }
  .p-home-hero__background {
    position: absolute;
    left: 0;
    top: 0;
    width: 80%;
    height: 100%;
  }
  .p-home-hero__slide {
    height: max(54.568vw, 20rem + 40vw);
    margin-left: 20%;
  }
  .p-home-hero__slide::before {
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, rgba(136, 136, 136, 0.5333333333) 0%, rgba(136, 136, 136, 0) 100%);
  }
  .p-home-hero__text {
    position: absolute;
    top: var(--header-height);
    left: 6vw;
    z-index: 30;
    width: 70vw;
    height: calc(100% - var(--header-height) - var(--home-hero-padding-bottom));
  }
  .p-home-hero__text__main {
    position: absolute;
    left: 0;
    bottom: 33%;
    width: min(30vw + 24rem, 56vw);
  }
  .p-home-hero__text__sub {
    position: absolute;
    left: 0;
    top: 75%;
    font-size: calc(1rem + 1vw);
  }
}
@media not (min-width: 576px) {
  .p-home-hero {
    display: grid;
    grid-template-rows: auto auto auto;
    padding-top: calc(var(--header-height) + 8vw);
  }
  .p-home-hero__background {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
  }
  .p-home-hero__background::before {
    content: "";
    position: absolute;
    right: 20%;
    top: calc(72vw + 2rem);
    display: block;
    width: 100%;
    height: 65vw;
    background: rgba(0, 0, 0, 0.1490196078);
  }
  .p-home-hero__slide {
    position: relative;
    width: 90%;
    height: 85.33vw;
    margin-left: 10%;
  }
  .p-home-hero__text {
    display: contents;
  }
  .p-home-hero__text__main {
    position: relative;
    z-index: 5;
    order: -1;
    width: 87vw;
    translate: 5vw 15%;
  }
  .p-home-hero__text__sub {
    position: relative;
    padding: 5vw 5vw 7vw 20vw;
    text-align: right;
  }
}

.p-home-banner-slider {
  position: relative;
  padding-bottom: calc(var(--grid-gutter) * 1.5);
  overflow: hidden;
}
.p-home-banner-slider::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(var(--grid-gutter) * 1.5);
  display: block;
  width: 100%;
  height: calc(100% - var(--grid-gutter) * 1.5);
  background-image: url('data:image/svg+xml;charset=UTF-8,<svg width="4" height="4" viewBox="0 0 4 4" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2 4L4 2V4H2Z" fill="%23D9D9D9"/><path d="M0 1.99993L2 0H4L0 3.99993V1.99993Z" fill="%23D9D9D9"/></svg>');
  background-size: 4px 4px;
}
.p-home-banner-slider__body {
  position: relative;
  left: 50%;
  translate: -50% 0;
  width: 120rem;
  margin: 0;
  overflow: revert;
}
.p-home-banner-slider__body .swiper-slide {
  padding: calc(var(--grid-gutter) * 0.6667);
}
.p-home-banner-slider__body .swiper-slide img {
  border: 4px solid var(--color-border);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.0666666667);
}
@media (width < 1200px) {
  .p-home-banner-slider__body {
    width: min(80vw, 40rem);
  }
}

.p-home-events {
  display: grid;
}
.p-home-events__body {
  display: grid;
}
.p-home-events__body .c-card-list {
  grid-column: 1/-1;
  grid-row: 1/-1;
}
@media (min-width: 1024px) {
  .p-home-events {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr;
    gap: var(--grid-gutter) calc(var(--grid-gutter) * 2);
  }
  .p-home-events__body {
    grid-column: 2/3;
    grid-row: 1/-1;
  }
}
@media not (min-width: 1024px) {
  .p-home-events__header __title {
    margin-bottom: 0.3em;
  }
  .p-home-events .c-card-list {
    grid-template-columns: repeat(auto-fill, minmax(32rem, 1fr));
    margin-top: 2rem;
  }
  .p-home-events__link {
    text-align: center;
  }
}

.p-home-foreigner-banner {
  display: flex;
  border-radius: var(--radius-2);
  background: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url("../../assets/img/home/foreigner_bg.webp") no-repeat 50% 50%/cover;
  /* オープンキャンパス用：横幅を抑えたバナー風＋オンマウスエフェクト */
}
@media (min-width: 1024px) {
  .p-home-foreigner-banner {
    margin-top: clamp(2.2rem, 2.067rem + 0.417vi, 2.6rem);
  }
}
@media not (min-width: 1024px) {
  .p-home-foreigner-banner {
    margin-top: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.8);
  }
}
.p-home-foreigner-banner__inner {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-block: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.2);
  text-decoration: none;
  color: #fff;
}
.p-home-foreigner-banner--less-pad .p-home-foreigner-banner__inner {
  padding-block: calc(clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) * 0.8);
}
.p-home-foreigner-banner__text-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  line-height: 1.2;
  font-size: clamp(2.7rem, 2.267rem + 1.354cqw, 4rem);
  font-weight: 700;
}
.p-home-foreigner-banner__text-main__icon {
  width: 2.4em;
  aspect-ratio: 1;
}
.p-home-foreigner-banner__text-sub {
  margin-top: 0.6em;
  font: 400 calc(clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) * 0.5)/1 Inter, sans-serif;
  letter-spacing: 0.06em;
}
.p-home-foreigner-banner--oc {
  position: relative;
  max-width: 80rem;
  margin-inline: auto;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.3019607843);
  box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.1490196078);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.p-home-foreigner-banner--oc .p-home-foreigner-banner__inner {
  position: relative;
  z-index: 1;
  transition: background-color 0.3s ease;
}
.p-home-foreigner-banner--oc:hover {
  transform: translateY(-0.4rem) scale(1.01);
  box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.2509803922);
}
.p-home-foreigner-banner--oc:hover .p-home-foreigner-banner__inner {
  background-color: rgba(255, 255, 255, 0.1019607843);
}

.p-home-course-panels {
  display: grid;
  padding: 0;
}
.p-home-course-panels > li {
  display: contents; /* スタイリング不要のため無効化 */
}
.p-home-course-panels__link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: center;
  width: 100%;
  padding-left: 12%;
  text-decoration: none;
}
@media (min-width: 768px) {
  .p-home-course-panels__link {
    aspect-ratio: 2/1;
  }
}
@media not (min-width: 768px) {
  .p-home-course-panels__link {
    height: min(50vw, clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 6);
  }
}
.p-home-course-panels__link::after {
  content: "";
  position: absolute;
  left: 8%;
  top: 0;
  display: block;
  width: 23%;
  height: 45%;
  background: var(--brand-300);
}
.p-home-course-panels__img {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  filter: brightness(0.6) contrast(0.8);
}
.p-home-course-panels__name {
  position: relative;
  z-index: 2;
  margin-bottom: 0.4em;
  line-height: var(--lineheight-heading);
  font-size: clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem);
  font-weight: 800;
  color: #fff;
}
.p-home-course-panels__period {
  z-index: 2;
  position: relative;
  font-weight: 600;
}
.t-psw .p-home-course-panels__period {
  filter: brightness(1.5);
}
@media (min-width: 768px) {
  .p-home-course-panels {
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-home-features {
  margin-block: 0;
  padding-bottom: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2.5);
}
.p-home-features__title {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  padding-inline: 1.2em;
  text-align: center;
  font-size: calc(clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) * 0.9);
}
.p-home-features__title, .p-home-features__title > * {
  line-height: var(--lineheight-heading);
}
.p-home-features__title::before, .p-home-features__title::after {
  content: "";
  position: absolute;
  bottom: 0;
  display: block;
  height: 0.7em;
  border-left: 2px currentcolor solid;
}
.p-home-features__title::before {
  left: 0.5em;
  rotate: -30deg;
}
.p-home-features__title::after {
  right: 0.5em;
  rotate: 30deg;
}
.p-home-features__block {
  margin-top: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2);
  padding-top: 0;
}
.p-home-features__block:has(.p-home-features__block__link:last-child) + .p-home-features__block {
  margin-top: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 3);
}
.p-home-features__block:has(.p-home-features__block__link:last-child) {
  padding-bottom: 0;
}
.p-home-features__block__heading {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  background: linear-gradient(88deg, #3D8CC4 0%, #2B51B3 100%);
  color: #fff;
}
.p-home-features__block__heading__index {
  line-height: 1;
  font-family: Poppins, sans-serif;
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 0.025em var(--brand-500);
  text-stroke: 0.025em var(--brand-500);
  --brand-500: #fff;
  font-size: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.2);
}
@media (min-width: 768px) {
  .p-home-features__block__heading {
    display: flex;
    align-items: center;
    margin-bottom: -0.8em;
    padding: 1.6rem 2rem;
    font-size: calc(clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem) * 1.25);
    translate: 0 -50%;
  }
  .p-home-features__block__heading__index {
    translate: 0 10%;
  }
  .p-home-features__block__heading__text {
    margin-left: 0.6em;
    padding-left: 0.6em;
    border-left: 1px solid #fff;
  }
}
@media not (min-width: 768px) {
  .p-home-features__block__heading {
    margin-bottom: -0.2em;
    padding: 1rem 0.8rem;
    text-align: center;
    font-size: calc(clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem) * 1.1);
    translate: 0 -4rem;
  }
}
.p-home-features__block__link {
  margin-top: 1rem;
  text-align: center;
  translate: 0 3rem;
}

.p-home-news {
  display: grid;
}
.p-home-news > *, .p-home-news__header > * {
  position: relative;
}
.p-home-news__body {
  display: grid;
}
.p-home-news__body .c-list-dated {
  grid-column: 1/-1;
  grid-row: 1/-1;
  margin: 0;
}
@media (min-width: 1024px) {
  .p-home-news {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto 1fr;
    gap: var(--grid-gutter) calc(var(--grid-gutter) * 2);
  }
  .p-home-news__header {
    grid-column: 2/3;
    grid-row: 1/2;
    z-index: 2;
  }
  .p-home-news__header__title {
    padding-top: 0.3em;
  }
  .p-home-news__body {
    grid-column: 1/2;
    grid-row: 1/-1;
    container-type: inline-size;
  }
  .p-home-news__body::after {
    content: "";
    position: absolute;
    z-index: -1;
    right: 0;
    top: 0;
    display: block;
    width: 100vw;
    height: 100%;
    box-shadow: 100vw 0 0 var(--brand-50);
    opacity: 0.6;
    translate: calc(var(--grid-gutter) * 3) 0;
  }
  .p-home-news__link {
    grid-column: 2/3;
    grid-row: 2/3;
  }
}
@media not (min-width: 1024px) {
  .p-home-news__header {
    padding-bottom: 1.6rem;
  }
  .p-home-news__header::before {
    content: "";
    position: absolute;
    left: 6%;
    bottom: 0;
    display: block;
    width: 94%;
    height: calc(100% - clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 0.7);
    background: var(--brand-50);
    box-shadow: 100px 0 0 var(--brand-50);
    opacity: 0.6;
  }
  .p-home-news__body {
    padding-block: 2rem;
  }
  .p-home-news__link {
    text-align: center;
  }
}

.p-home-blog {
  display: grid;
  margin-top: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2.5);
}
@media (min-width: 1024px) {
  .p-home-blog {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr;
    gap: var(--grid-gutter) calc(var(--grid-gutter) * 2);
  }
  .p-home-blog__body {
    grid-column: 2/3;
    grid-row: 1/-1;
  }
}
@media not (min-width: 1024px) {
  .p-home-blog__header __title {
    margin-bottom: 0.3em;
  }
  .p-home-blog__body {
    margin-block: 2rem 3rem;
  }
  .p-home-blog__link {
    text-align: center;
  }
}

@media (min-width: 768px) {
  .p-about-features {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--grid-gutter);
  }
  .p-about-features .c-box {
    margin: 0;
  }
  .p-about-features__item--pc-full {
    grid-column: 1/-1;
  }
}
.p-about-access-overview {
  display: grid;
  gap: var(--grid-gutter);
}
@media (min-width: 768px) {
  .p-about-access-overview {
    grid-template-columns: 1fr auto;
  }
}
@media (min-width: 1024px) {
  .p-about-access-overview {
    grid-template-rows: auto 1fr;
  }
  .p-about-access-overview__img {
    grid-column: 2/3;
    grid-row: 1/3;
    width: 37rem;
  }
  .p-about-access-overview__body {
    grid-column: 1/2;
    grid-row: 2/3;
  }
}
@media (min-width: 768px) and (not (min-width: 1024px)) {
  .p-about-access-overview {
    grid-template-rows: auto auto 1fr;
  }
  .p-about-access-overview__title {
    grid-column: 1/3;
    grid-row: 1/2;
  }
  .p-about-access-overview__img {
    grid-column: 2/3;
    grid-row: 2/4;
    width: min(37rem, 40cqw);
  }
  .p-about-access-overview__body {
    grid-column: 1/2;
    grid-row: 3/4;
  }
}
@media not (min-width: 768px) {
  .p-about-access-overview__img {
    width: min(20rem + 20vw, 90%);
    margin-inline: auto;
  }
}

.p-adm-flow {
  counter-reset: admflow-count;
  display: grid;
}
.p-adm-flow__ttl {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem;
  background: var(--brand-100);
  line-height: 1.5;
  font-weight: 700;
  counter-increment: admflow-count;
}
.p-adm-flow__ttl::before {
  flex-shrink: 0;
  content: counter(admflow-count);
  display: block;
  width: 1em;
  text-align: center;
  font: 700 clamp(3.5rem, 2.404rem + 2.809vi, 6rem)/1 "Poppins", sans-serif;
  color: var(--brand-500);
}
.p-adm-flow__ttl.p-adm-flow__last-row::before {
  color: #fff;
}
.p-adm-flow__body {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1rem 1.6rem;
  background: var(--brand-50);
}
.p-adm-flow__body::after {
  content: "";
  position: absolute;
  display: block;
  width: 2em;
  aspect-ratio: 2/1;
  background: var(--neutral-700);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.p-adm-flow__last-row {
  background: var(--brand-500);
  color: #fff;
}
@media (min-width: 768px) {
  .p-adm-flow {
    grid-template-columns: 30rem 1fr;
    gap: 2rem 0;
  }
  .p-adm-flow__body {
    padding-inline: 2.4rem;
  }
  .p-adm-flow__body::after {
    right: calc(100% + 15rem);
    top: 0;
    translate: 50% -70%;
  }
  .p-adm-flow__body:nth-child(2)::after {
    display: none;
  }
}
@media not (min-width: 1024px) {
  .p-adm-flow__body {
    margin-bottom: 2rem;
  }
  .p-adm-flow__body:empty {
    display: none;
  }
  .p-adm-flow__body::after {
    right: 50%;
    top: 100%;
    z-index: 10;
    translate: 50% 50%;
  }
  .p-adm-flow__body:last-child::after {
    display: none;
  }
}

.p-career-columned-definition-list__row {
  display: grid;
  grid-template-columns: 12rem 1fr;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  margin-bottom: 2rem;
}
.p-career-columned-definition-list__label {
  margin-bottom: 0;
}
.p-career-columned-definition-list__body {
  margin: 0;
}
@media (min-width: 768px) {
  .p-career-columned-definition-list {
    -moz-columns: 2;
         columns: 2;
    -moz-column-gap: calc(var(--grid-gap) * 2);
         column-gap: calc(var(--grid-gap) * 2);
  }
}

.p-faq-anchor-nav {
  grid-template-columns: repeat(auto-fit, minmax(15em, 1fr));
}

.p-oc-schedule .c-list-definition__body {
  container-type: inline-size;
}
.p-oc-schedule__table {
  width: 100%;
  margin-bottom: clamp(2.7rem, 2.267rem + 1.354cqw, 4rem);
}
@container (min-width: 700px) {
  :where(.p-oc-schedule__table) th {
    width: 22rem;
  }
}
@container not (min-width: 700px) {
  .p-oc-schedule__table, .p-oc-schedule__table > tbody, .p-oc-schedule__table > tbody > tr, .p-oc-schedule__table > tbody > tr > :is(th, td), .p-oc-schedule__table > tr, .p-oc-schedule__table > tr > :is(th, td) {
    display: block;
    width: 100%;
  }
  .p-oc-schedule__table {
    border-width: 1px 1px 0;
  }
  .p-oc-schedule__table > tbody > tr > :is(th, td), .p-oc-schedule__table > tr > :is(th, td) {
    border-width: 0 0 1px;
  }
  .p-oc-schedule__table > tbody > tr > td, .p-oc-schedule__table > tr > td {
    padding: 1.4rem 1rem;
  }
}
.p-oc-schedule__time-sub {
  display: block;
  font-size: 1.4rem;
}
.is-stacking .p-oc-schedule__time-sub {
  display: inline-block;
}
.p-oc-schedule__course-exp {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.4em;
}
.p-oc-schedule__course-exp .c-label-course {
  display: grid;
  place-content: center;
}

.p-oc-allowance__table {
  width: 100%;
  text-align: center;
}
.p-oc-allowance__table th:first-child {
  width: max(10cqw, 4.5em);
}
.p-oc-allowance__table td:last-child {
  width: max(20cqw, 6em);
}

.l-page-title--course ~ main > .l-container:has(> .c-nav-local-adapter) {
  padding-top: clamp(3.5rem, 2.404rem + 2.809vi, 6rem);
}

.p-course-home-nav {
  display: grid;
  gap: calc(var(--grid-gutter) * 2) var(--grid-gutter);
}
.p-course-home-nav__item {
  display: grid;
  gap: 1rem;
}
.p-course-home-nav__link {
  display: contents;
}
.p-course-home-nav__name {
  line-height: 1.3;
  font-size: calc(clamp(2.2rem, 2.067rem + 0.417vi, 2.6rem) * 1.08);
  font-weight: 700;
}
.p-course-home-nav__name .c-label-framed {
  vertical-align: 10%;
  padding: 0.2em 0.3em;
  font-size: 1.6rem;
}
.p-course-home-nav__excerpt {
  line-height: 1.4;
  font-size: min(1.8rem, 5vw);
  font-weight: 700;
  color: var(--brand-500);
}
.p-course-home-nav__menu {
  margin-top: 0.4em;
}
@media (min-width: 768px) {
  .p-course-home-nav {
    grid-template-columns: 1fr 1fr;
  }
  .p-course-home-nav__item {
    grid-row: span 4;
    grid-template-rows: subgrid;
  }
  .p-course-home-nav__name {
    display: flex;
    align-items: center;
  }
  .p-course-home-nav__menu {
    align-self: start;
    grid-template-columns: 1fr 1fr;
  }
}
@media not (min-width: 768px) {
  .p-course-home-nav__menu {
    grid-template-columns: repeat(auto-fill, minmax(10em, 1fr));
  }
}

.p-course-tuition-comparison {
  display: grid;
  gap: var(--grid-gutter);
  text-align: center;
}
.p-course-tuition-comparison__item {
  margin: 0;
}
.p-course-tuition-comparison__ttl {
  line-height: 1.4;
  font-size: calc(clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem) * 0.85);
  font-weight: 700;
}
.p-course-tuition-comparison__label {
  margin-block: 0.3em 0.15em;
  font-weight: 700;
}
.p-course-tuition-comparison__fig {
  font: 700 clamp(3.5rem, 2.404rem + 2.809vi, 6rem)/1 Poppins, Noto Sans JP, sans-serif;
}
.p-course-tuition-comparison__item--nfu.c-box {
  background: var(--brand-50);
}
.p-course-tuition-comparison__item--nfu :is(.p-course-tuition-comparison__ttl, .p-course-tuition-comparison__fig) {
  color: var(--brand-500);
}
.p-course-tuition-comparison__item--univ .p-course-tuition-comparison__fig {
  color: var(--neutral-500);
}
.p-course-tuition-comparison__diff {
  line-height: 1.3;
  font-weight: 700;
  font-size: min(1.8rem, 4.5vw);
}
.p-course-tuition-comparison__diff__inner {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  padding: 0.3em 0.6em;
  border: 2px solid var(--brand-500);
  border-radius: var(--radius-2);
  background: var(--brand-500);
  color: #fff;
}
.p-course-tuition-comparison__diff__inner::before, .p-course-tuition-comparison__diff__inner::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 0.8em;
  aspect-ratio: 3/2;
  background: var(--brand-500);
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
}
.p-course-tuition-comparison__diff__inner::before {
  top: 0;
  translate: -50% -99%;
}
.p-course-tuition-comparison__diff__inner::after {
  bottom: 0;
  scale: 1 -1;
  translate: -50% 99%;
}
@media (min-width: 768px) {
  .p-course-tuition-comparison {
    grid-template-columns: 1fr 1fr;
  }
  .p-course-tuition-comparison__item {
    grid-row: span 3;
    display: grid;
    grid-template-rows: subgrid;
    gap: 0;
  }
  .p-course-tuition-comparison__ttl {
    display: grid;
    place-content: center;
  }
  .p-course-tuition-comparison__diff {
    grid-column: 1/-1;
  }
  .p-course-tuition-comparison__diff__inner::after {
    display: none;
  }
}
@media not (min-width: 768px) {
  .p-course-tuition-comparison__item--univ {
    order: 3;
  }
}

.p-course-study-flow {
  --brand-50: var(--brand-100);
}
.p-course-study-flow__cards .c-card, .p-course-study-flow__item {
  position: relative;
}
.p-course-study-flow__cards .c-card::after, .p-course-study-flow__item::after {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(100% + 0.75rem);
  translate: -50% 0;
  display: block;
  width: 3rem;
  aspect-ratio: 2/1;
  background: var(--neutral-700);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.p-course-study-flow__cards .c-card::after {
  top: 100%;
  translate: -50% -150%;
}
.p-course-study-flow > :last-child::after {
  content: unset;
  display: none;
}
*:where(:not(.p-course-study-flow__cards)) + .p-course-study-flow__item {
  margin-top: 3rem;
}
.p-course-study-flow__cards + .p-course-study-flow__item {
  margin-top: 0;
}
@media (width >= 900px) {
  .p-course-study-flow__cards {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
@media (width < 900px) {
  .p-course-study-flow .c-card:not(:nth-child(2n+1):last-child)::after {
    display: none;
  }
}
@media (width >= 600px) and (not (width >= 900px)) {
  .p-course-study-flow__cards {
    grid-template-columns: 1fr 1fr;
  }
  .p-course-study-flow__cards .c-card:nth-child(2n+1):last-child {
    translate: calc(50% + var(--grid-gutter) * 0.5) 0;
  }
}

.p-course-sw-feature-discount {
  padding-block: 1rem;
  font-weight: 600;
}
.p-course-sw-feature-discount, .p-course-sw-feature-discount > * {
  position: relative;
}
.p-course-sw-feature-discount::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  translate: -50% 10%;
  height: 100%;
  aspect-ratio: 4/5;
  background: var(--brand-100);
  scale: 1.2;
  clip-path: polygon(25% 0, 75% 0, 75% 67%, 100% 67%, 50% 100%, 0 67%, 25% 67%);
}

.p-course-st-classes {
  display: grid;
  gap: var(--grid-gutter);
}
@media (min-width: 1024px) {
  .p-course-st-classes {
    grid-template-columns: repeat(4, 1fr);
    gap: 0 var(--grid-gutter);
  }
  .p-course-st-classes__group, .p-course-st-classes__cards {
    display: contents;
  }
  .p-course-st-classes__group--first .p-course-st-classes__title {
    order: -2;
    grid-column: 1/3;
    grid-row: 1/2;
  }
  .p-course-st-classes__group--second .p-course-st-classes__title {
    order: -1;
    grid-column: 3/5;
    grid-row: 1/2;
  }
  .p-course-st-classes__cards > .c-card {
    grid-row: span 3;
    grid-template-rows: subgrid;
  }
}
@media (min-width: 576px) and (not (min-width: 1024px)) {
  .p-course-st-classes__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 var(--grid-gutter);
  }
}
@media not (min-width: 576px) {
  .p-course-st-classes {
    gap: var(--grid-gutter);
  }
  .p-course-st-classes__cards {
    display: grid;
    gap: var(--grid-gutter);
  }
}

.p-intl-flow {
  text-align: center;
}
.p-intl-flow__inner {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0 1rem;
  margin-bottom: 2rem;
}
.p-intl-flow__label {
  display: grid;
  grid-template-rows: 1fr auto 1fr;
  line-height: 1.2;
}
.p-intl-flow__label-text {
  padding-block: 0.3rem;
}
.p-intl-flow__label::before, .p-intl-flow__label::after {
  content: "";
  display: block;
  margin-inline: 50% 15%;
  border-left: 1px var(--neutral-500) solid;
}
.p-intl-flow__label::before {
  border-top: 1px var(--neutral-500) solid;
  border-radius: var(--radius-1) 0 0 0;
}
.p-intl-flow__label::after {
  border-bottom: 1px var(--neutral-500) solid;
  border-radius: 0 0 0 var(--radius-1);
}
.p-intl-flow__steps {
  margin: 0;
}
.p-intl-flow__steps li {
  position: relative;
  margin-bottom: 2rem;
  padding: 0.5em 1.4em;
  border: 3px var(--brand-300) solid;
  line-height: 1.5;
}
.p-intl-flow__steps li::before {
  content: unset;
  display: none;
}
.p-intl-flow__steps li:last-child {
  margin-bottom: 0;
}
.p-intl-flow__inner--first .p-intl-flow__steps li::after {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(100% + 3px + 1rem);
  display: block;
  width: 2rem;
  background: var(--neutral-700);
  aspect-ratio: 2/1;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  translate: -50% -50%;
}
.p-intl-flow__inner--first .p-intl-flow__steps li:last-child {
  border-color: transparent;
  background-color: var(--brand-300);
  font-weight: 600;
}
.p-intl-flow__inner--first {
  grid-template-rows: 1fr 1.75em;
}
.p-intl-flow__inner--first .p-intl-flow__label {
  grid-column: 1/2;
  grid-row: 1/2;
}
.p-intl-flow__inner--first .p-intl-flow__steps {
  grid-column: 2/3;
  grid-row: 1/3;
}
.p-intl-flow__inner--last {
  grid-template-rows: calc(2rem + 3px + 1.25em) 1fr;
  margin-top: calc(-2rem - 3px - 1.25em);
}
.p-intl-flow__inner--last .p-intl-flow__label {
  grid-column: 1/2;
  grid-row: 1/3;
}
.p-intl-flow__inner--last .p-intl-flow__steps {
  grid-column: 2/3;
  grid-row: 2/3;
}

.p-intl-tuition__item--before {
  position: relative;
  background-color: var(--neutral-100) !important;
}
.p-intl-tuition__item--before::after {
  content: "";
  position: absolute;
  display: block;
  background-color: var(--neutral-700);
  translate: -50% -50%;
}
@media (min-width: 768px) {
  .p-intl-tuition__item--before::after {
    left: calc(100% + var(--grid-gutter) * 0.5);
    top: 50%;
    width: 1rem;
    aspect-ratio: 1/2;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
  }
}
@media not (min-width: 768px) {
  .p-intl-tuition__item--before::after {
    left: 50%;
    top: calc(100% + var(--grid-gutter) * 0.5);
    width: 2rem;
    aspect-ratio: 2/1;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
  }
}
.p-intl-tuition__item--before .p-course-tuition-comparison__ttl {
  margin-bottom: 0.2em;
}
.p-intl-tuition__item--before .p-course-tuition-comparison__fig {
  color: rgba(51, 51, 51, 0.8);
}
.p-intl-tuition-supl {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

/* Spacing 
==================================================== */
.u-m-0 {
  margin: 0 !important;
}

.u-mt-0 {
  margin-top: 0 !important;
}

.u-mr-0 {
  margin-right: 0 !important;
}

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-ml-0 {
  margin-left: 0 !important;
}

.u-m-1 {
  margin: var(--space-1) !important;
}

.u-mt-1 {
  margin-top: var(--space-1) !important;
}

.u-mr-1 {
  margin-right: var(--space-1) !important;
}

.u-mb-1 {
  margin-bottom: var(--space-1) !important;
}

.u-ml-1 {
  margin-left: var(--space-1) !important;
}

.u-p-1 {
  padding: var(--space-1) !important;
}

.u-pt-1 {
  padding-top: var(--space-1) !important;
}

.u-pr-1 {
  padding-right: var(--space-1) !important;
}

.u-pb-1 {
  padding-bottom: var(--space-1) !important;
}

.u-pl-1 {
  padding-left: var(--space-1) !important;
}

.u-m-2 {
  margin: var(--space-2) !important;
}

.u-mt-2 {
  margin-top: var(--space-2) !important;
}

.u-mr-2 {
  margin-right: var(--space-2) !important;
}

.u-mb-2 {
  margin-bottom: var(--space-2) !important;
}

.u-ml-2 {
  margin-left: var(--space-2) !important;
}

.u-p-2 {
  padding: var(--space-2) !important;
}

.u-pt-2 {
  padding-top: var(--space-2) !important;
}

.u-pr-2 {
  padding-right: var(--space-2) !important;
}

.u-pb-2 {
  padding-bottom: var(--space-2) !important;
}

.u-pl-2 {
  padding-left: var(--space-2) !important;
}

.u-m-3 {
  margin: var(--space-3) !important;
}

.u-mt-3 {
  margin-top: var(--space-3) !important;
}

.u-mr-3 {
  margin-right: var(--space-3) !important;
}

.u-mb-3 {
  margin-bottom: var(--space-3) !important;
}

.u-ml-3 {
  margin-left: var(--space-3) !important;
}

.u-p-3 {
  padding: var(--space-3) !important;
}

.u-pt-3 {
  padding-top: var(--space-3) !important;
}

.u-pr-3 {
  padding-right: var(--space-3) !important;
}

.u-pb-3 {
  padding-bottom: var(--space-3) !important;
}

.u-pl-3 {
  padding-left: var(--space-3) !important;
}

.u-m-4 {
  margin: var(--space-4) !important;
}

.u-mt-4 {
  margin-top: var(--space-4) !important;
}

.u-mr-4 {
  margin-right: var(--space-4) !important;
}

.u-mb-4 {
  margin-bottom: var(--space-4) !important;
}

.u-ml-4 {
  margin-left: var(--space-4) !important;
}

.u-p-4 {
  padding: var(--space-4) !important;
}

.u-pt-4 {
  padding-top: var(--space-4) !important;
}

.u-pr-4 {
  padding-right: var(--space-4) !important;
}

.u-pb-4 {
  padding-bottom: var(--space-4) !important;
}

.u-pl-4 {
  padding-left: var(--space-4) !important;
}

.u-m-5 {
  margin: var(--space-5) !important;
}

.u-mt-5 {
  margin-top: var(--space-5) !important;
}

.u-mr-5 {
  margin-right: var(--space-5) !important;
}

.u-mb-5 {
  margin-bottom: var(--space-5) !important;
}

.u-ml-5 {
  margin-left: var(--space-5) !important;
}

.u-p-5 {
  padding: var(--space-5) !important;
}

.u-pt-5 {
  padding-top: var(--space-5) !important;
}

.u-pr-5 {
  padding-right: var(--space-5) !important;
}

.u-pb-5 {
  padding-bottom: var(--space-5) !important;
}

.u-pl-5 {
  padding-left: var(--space-5) !important;
}

.u-m-6 {
  margin: var(--space-6) !important;
}

.u-mt-6 {
  margin-top: var(--space-6) !important;
}

.u-mr-6 {
  margin-right: var(--space-6) !important;
}

.u-mb-6 {
  margin-bottom: var(--space-6) !important;
}

.u-ml-6 {
  margin-left: var(--space-6) !important;
}

.u-p-6 {
  padding: var(--space-6) !important;
}

.u-pt-6 {
  padding-top: var(--space-6) !important;
}

.u-pr-6 {
  padding-right: var(--space-6) !important;
}

.u-pb-6 {
  padding-bottom: var(--space-6) !important;
}

.u-pl-6 {
  padding-left: var(--space-6) !important;
}

.u-m-7 {
  margin: var(--space-7) !important;
}

.u-mt-7 {
  margin-top: var(--space-7) !important;
}

.u-mr-7 {
  margin-right: var(--space-7) !important;
}

.u-mb-7 {
  margin-bottom: var(--space-7) !important;
}

.u-ml-7 {
  margin-left: var(--space-7) !important;
}

.u-p-7 {
  padding: var(--space-7) !important;
}

.u-pt-7 {
  padding-top: var(--space-7) !important;
}

.u-pr-7 {
  padding-right: var(--space-7) !important;
}

.u-pb-7 {
  padding-bottom: var(--space-7) !important;
}

.u-pl-7 {
  padding-left: var(--space-7) !important;
}

.u-m-8 {
  margin: var(--space-8) !important;
}

.u-mt-8 {
  margin-top: var(--space-8) !important;
}

.u-mr-8 {
  margin-right: var(--space-8) !important;
}

.u-mb-8 {
  margin-bottom: var(--space-8) !important;
}

.u-ml-8 {
  margin-left: var(--space-8) !important;
}

.u-p-8 {
  padding: var(--space-8) !important;
}

.u-pt-8 {
  padding-top: var(--space-8) !important;
}

.u-pr-8 {
  padding-right: var(--space-8) !important;
}

.u-pb-8 {
  padding-bottom: var(--space-8) !important;
}

.u-pl-8 {
  padding-left: var(--space-8) !important;
}

@media (min-width: 576px) {
  .u-m-sm-0 {
    margin: 0 !important;
  }
  .u-mt-sm-0 {
    margin-top: 0 !important;
  }
  .u-mb-sm-0 {
    margin-bottom: 0 !important;
  }
  .u-ml-sm-0 {
    margin-left: 0 !important;
  }
  .u-mr-sm-0 {
    margin-right: 0 !important;
  }
  .u-p-sm-0 {
    padding: 0 !important;
  }
  .u-pt-sm-0 {
    padding-top: 0 !important;
  }
  .u-pb-sm-0 {
    padding-bottom: 0 !important;
  }
  .u-pl-sm-0 {
    padding-left: 0 !important;
  }
  .u-pr-sm-0 {
    padding-right: 0 !important;
  }
  .u-m-sm-1 {
    margin: var(--space-1) !important;
  }
  .u-mt-sm-1 {
    margin-top: var(--space-1) !important;
  }
  .u-mr-sm-1 {
    margin-right: var(--space-1) !important;
  }
  .u-mb-sm-1 {
    margin-bottom: var(--space-1) !important;
  }
  .u-ml-sm-1 {
    margin-left: var(--space-1) !important;
  }
  .u-p-sm-1 {
    padding: var(--space-1) !important;
  }
  .u-pt-sm-1 {
    padding-top: var(--space-1) !important;
  }
  .u-pr-sm-1 {
    padding-right: var(--space-1) !important;
  }
  .u-pb-sm-1 {
    padding-bottom: var(--space-1) !important;
  }
  .u-pl-sm-1 {
    padding-left: var(--space-1) !important;
  }
  .u-m-sm-2 {
    margin: var(--space-2) !important;
  }
  .u-mt-sm-2 {
    margin-top: var(--space-2) !important;
  }
  .u-mr-sm-2 {
    margin-right: var(--space-2) !important;
  }
  .u-mb-sm-2 {
    margin-bottom: var(--space-2) !important;
  }
  .u-ml-sm-2 {
    margin-left: var(--space-2) !important;
  }
  .u-p-sm-2 {
    padding: var(--space-2) !important;
  }
  .u-pt-sm-2 {
    padding-top: var(--space-2) !important;
  }
  .u-pr-sm-2 {
    padding-right: var(--space-2) !important;
  }
  .u-pb-sm-2 {
    padding-bottom: var(--space-2) !important;
  }
  .u-pl-sm-2 {
    padding-left: var(--space-2) !important;
  }
  .u-m-sm-3 {
    margin: var(--space-3) !important;
  }
  .u-mt-sm-3 {
    margin-top: var(--space-3) !important;
  }
  .u-mr-sm-3 {
    margin-right: var(--space-3) !important;
  }
  .u-mb-sm-3 {
    margin-bottom: var(--space-3) !important;
  }
  .u-ml-sm-3 {
    margin-left: var(--space-3) !important;
  }
  .u-p-sm-3 {
    padding: var(--space-3) !important;
  }
  .u-pt-sm-3 {
    padding-top: var(--space-3) !important;
  }
  .u-pr-sm-3 {
    padding-right: var(--space-3) !important;
  }
  .u-pb-sm-3 {
    padding-bottom: var(--space-3) !important;
  }
  .u-pl-sm-3 {
    padding-left: var(--space-3) !important;
  }
  .u-m-sm-4 {
    margin: var(--space-4) !important;
  }
  .u-mt-sm-4 {
    margin-top: var(--space-4) !important;
  }
  .u-mr-sm-4 {
    margin-right: var(--space-4) !important;
  }
  .u-mb-sm-4 {
    margin-bottom: var(--space-4) !important;
  }
  .u-ml-sm-4 {
    margin-left: var(--space-4) !important;
  }
  .u-p-sm-4 {
    padding: var(--space-4) !important;
  }
  .u-pt-sm-4 {
    padding-top: var(--space-4) !important;
  }
  .u-pr-sm-4 {
    padding-right: var(--space-4) !important;
  }
  .u-pb-sm-4 {
    padding-bottom: var(--space-4) !important;
  }
  .u-pl-sm-4 {
    padding-left: var(--space-4) !important;
  }
  .u-m-sm-5 {
    margin: var(--space-5) !important;
  }
  .u-mt-sm-5 {
    margin-top: var(--space-5) !important;
  }
  .u-mr-sm-5 {
    margin-right: var(--space-5) !important;
  }
  .u-mb-sm-5 {
    margin-bottom: var(--space-5) !important;
  }
  .u-ml-sm-5 {
    margin-left: var(--space-5) !important;
  }
  .u-p-sm-5 {
    padding: var(--space-5) !important;
  }
  .u-pt-sm-5 {
    padding-top: var(--space-5) !important;
  }
  .u-pr-sm-5 {
    padding-right: var(--space-5) !important;
  }
  .u-pb-sm-5 {
    padding-bottom: var(--space-5) !important;
  }
  .u-pl-sm-5 {
    padding-left: var(--space-5) !important;
  }
  .u-m-sm-6 {
    margin: var(--space-6) !important;
  }
  .u-mt-sm-6 {
    margin-top: var(--space-6) !important;
  }
  .u-mr-sm-6 {
    margin-right: var(--space-6) !important;
  }
  .u-mb-sm-6 {
    margin-bottom: var(--space-6) !important;
  }
  .u-ml-sm-6 {
    margin-left: var(--space-6) !important;
  }
  .u-p-sm-6 {
    padding: var(--space-6) !important;
  }
  .u-pt-sm-6 {
    padding-top: var(--space-6) !important;
  }
  .u-pr-sm-6 {
    padding-right: var(--space-6) !important;
  }
  .u-pb-sm-6 {
    padding-bottom: var(--space-6) !important;
  }
  .u-pl-sm-6 {
    padding-left: var(--space-6) !important;
  }
  .u-m-sm-7 {
    margin: var(--space-7) !important;
  }
  .u-mt-sm-7 {
    margin-top: var(--space-7) !important;
  }
  .u-mr-sm-7 {
    margin-right: var(--space-7) !important;
  }
  .u-mb-sm-7 {
    margin-bottom: var(--space-7) !important;
  }
  .u-ml-sm-7 {
    margin-left: var(--space-7) !important;
  }
  .u-p-sm-7 {
    padding: var(--space-7) !important;
  }
  .u-pt-sm-7 {
    padding-top: var(--space-7) !important;
  }
  .u-pr-sm-7 {
    padding-right: var(--space-7) !important;
  }
  .u-pb-sm-7 {
    padding-bottom: var(--space-7) !important;
  }
  .u-pl-sm-7 {
    padding-left: var(--space-7) !important;
  }
  .u-m-sm-8 {
    margin: var(--space-8) !important;
  }
  .u-mt-sm-8 {
    margin-top: var(--space-8) !important;
  }
  .u-mr-sm-8 {
    margin-right: var(--space-8) !important;
  }
  .u-mb-sm-8 {
    margin-bottom: var(--space-8) !important;
  }
  .u-ml-sm-8 {
    margin-left: var(--space-8) !important;
  }
  .u-p-sm-8 {
    padding: var(--space-8) !important;
  }
  .u-pt-sm-8 {
    padding-top: var(--space-8) !important;
  }
  .u-pr-sm-8 {
    padding-right: var(--space-8) !important;
  }
  .u-pb-sm-8 {
    padding-bottom: var(--space-8) !important;
  }
  .u-pl-sm-8 {
    padding-left: var(--space-8) !important;
  }
}
@media (min-width: 768px) {
  .u-m-md-0 {
    margin: 0 !important;
  }
  .u-mt-md-0 {
    margin-top: 0 !important;
  }
  .u-mb-md-0 {
    margin-bottom: 0 !important;
  }
  .u-ml-md-0 {
    margin-left: 0 !important;
  }
  .u-mr-md-0 {
    margin-right: 0 !important;
  }
  .u-p-md-0 {
    padding: 0 !important;
  }
  .u-pt-md-0 {
    padding-top: 0 !important;
  }
  .u-pb-md-0 {
    padding-bottom: 0 !important;
  }
  .u-pl-md-0 {
    padding-left: 0 !important;
  }
  .u-pr-md-0 {
    padding-right: 0 !important;
  }
  .u-m-md-1 {
    margin: var(--space-1) !important;
  }
  .u-mt-md-1 {
    margin-top: var(--space-1) !important;
  }
  .u-mr-md-1 {
    margin-right: var(--space-1) !important;
  }
  .u-mb-md-1 {
    margin-bottom: var(--space-1) !important;
  }
  .u-ml-md-1 {
    margin-left: var(--space-1) !important;
  }
  .u-p-md-1 {
    padding: var(--space-1) !important;
  }
  .u-pt-md-1 {
    padding-top: var(--space-1) !important;
  }
  .u-pr-md-1 {
    padding-right: var(--space-1) !important;
  }
  .u-pb-md-1 {
    padding-bottom: var(--space-1) !important;
  }
  .u-pl-md-1 {
    padding-left: var(--space-1) !important;
  }
  .u-m-md-2 {
    margin: var(--space-2) !important;
  }
  .u-mt-md-2 {
    margin-top: var(--space-2) !important;
  }
  .u-mr-md-2 {
    margin-right: var(--space-2) !important;
  }
  .u-mb-md-2 {
    margin-bottom: var(--space-2) !important;
  }
  .u-ml-md-2 {
    margin-left: var(--space-2) !important;
  }
  .u-p-md-2 {
    padding: var(--space-2) !important;
  }
  .u-pt-md-2 {
    padding-top: var(--space-2) !important;
  }
  .u-pr-md-2 {
    padding-right: var(--space-2) !important;
  }
  .u-pb-md-2 {
    padding-bottom: var(--space-2) !important;
  }
  .u-pl-md-2 {
    padding-left: var(--space-2) !important;
  }
  .u-m-md-3 {
    margin: var(--space-3) !important;
  }
  .u-mt-md-3 {
    margin-top: var(--space-3) !important;
  }
  .u-mr-md-3 {
    margin-right: var(--space-3) !important;
  }
  .u-mb-md-3 {
    margin-bottom: var(--space-3) !important;
  }
  .u-ml-md-3 {
    margin-left: var(--space-3) !important;
  }
  .u-p-md-3 {
    padding: var(--space-3) !important;
  }
  .u-pt-md-3 {
    padding-top: var(--space-3) !important;
  }
  .u-pr-md-3 {
    padding-right: var(--space-3) !important;
  }
  .u-pb-md-3 {
    padding-bottom: var(--space-3) !important;
  }
  .u-pl-md-3 {
    padding-left: var(--space-3) !important;
  }
  .u-m-md-4 {
    margin: var(--space-4) !important;
  }
  .u-mt-md-4 {
    margin-top: var(--space-4) !important;
  }
  .u-mr-md-4 {
    margin-right: var(--space-4) !important;
  }
  .u-mb-md-4 {
    margin-bottom: var(--space-4) !important;
  }
  .u-ml-md-4 {
    margin-left: var(--space-4) !important;
  }
  .u-p-md-4 {
    padding: var(--space-4) !important;
  }
  .u-pt-md-4 {
    padding-top: var(--space-4) !important;
  }
  .u-pr-md-4 {
    padding-right: var(--space-4) !important;
  }
  .u-pb-md-4 {
    padding-bottom: var(--space-4) !important;
  }
  .u-pl-md-4 {
    padding-left: var(--space-4) !important;
  }
  .u-m-md-5 {
    margin: var(--space-5) !important;
  }
  .u-mt-md-5 {
    margin-top: var(--space-5) !important;
  }
  .u-mr-md-5 {
    margin-right: var(--space-5) !important;
  }
  .u-mb-md-5 {
    margin-bottom: var(--space-5) !important;
  }
  .u-ml-md-5 {
    margin-left: var(--space-5) !important;
  }
  .u-p-md-5 {
    padding: var(--space-5) !important;
  }
  .u-pt-md-5 {
    padding-top: var(--space-5) !important;
  }
  .u-pr-md-5 {
    padding-right: var(--space-5) !important;
  }
  .u-pb-md-5 {
    padding-bottom: var(--space-5) !important;
  }
  .u-pl-md-5 {
    padding-left: var(--space-5) !important;
  }
  .u-m-md-6 {
    margin: var(--space-6) !important;
  }
  .u-mt-md-6 {
    margin-top: var(--space-6) !important;
  }
  .u-mr-md-6 {
    margin-right: var(--space-6) !important;
  }
  .u-mb-md-6 {
    margin-bottom: var(--space-6) !important;
  }
  .u-ml-md-6 {
    margin-left: var(--space-6) !important;
  }
  .u-p-md-6 {
    padding: var(--space-6) !important;
  }
  .u-pt-md-6 {
    padding-top: var(--space-6) !important;
  }
  .u-pr-md-6 {
    padding-right: var(--space-6) !important;
  }
  .u-pb-md-6 {
    padding-bottom: var(--space-6) !important;
  }
  .u-pl-md-6 {
    padding-left: var(--space-6) !important;
  }
  .u-m-md-7 {
    margin: var(--space-7) !important;
  }
  .u-mt-md-7 {
    margin-top: var(--space-7) !important;
  }
  .u-mr-md-7 {
    margin-right: var(--space-7) !important;
  }
  .u-mb-md-7 {
    margin-bottom: var(--space-7) !important;
  }
  .u-ml-md-7 {
    margin-left: var(--space-7) !important;
  }
  .u-p-md-7 {
    padding: var(--space-7) !important;
  }
  .u-pt-md-7 {
    padding-top: var(--space-7) !important;
  }
  .u-pr-md-7 {
    padding-right: var(--space-7) !important;
  }
  .u-pb-md-7 {
    padding-bottom: var(--space-7) !important;
  }
  .u-pl-md-7 {
    padding-left: var(--space-7) !important;
  }
  .u-m-md-8 {
    margin: var(--space-8) !important;
  }
  .u-mt-md-8 {
    margin-top: var(--space-8) !important;
  }
  .u-mr-md-8 {
    margin-right: var(--space-8) !important;
  }
  .u-mb-md-8 {
    margin-bottom: var(--space-8) !important;
  }
  .u-ml-md-8 {
    margin-left: var(--space-8) !important;
  }
  .u-p-md-8 {
    padding: var(--space-8) !important;
  }
  .u-pt-md-8 {
    padding-top: var(--space-8) !important;
  }
  .u-pr-md-8 {
    padding-right: var(--space-8) !important;
  }
  .u-pb-md-8 {
    padding-bottom: var(--space-8) !important;
  }
  .u-pl-md-8 {
    padding-left: var(--space-8) !important;
  }
}
@media (min-width: 1024px) {
  .u-m-lg-0 {
    margin: 0 !important;
  }
  .u-mt-lg-0 {
    margin-top: 0 !important;
  }
  .u-mb-lg-0 {
    margin-bottom: 0 !important;
  }
  .u-ml-lg-0 {
    margin-left: 0 !important;
  }
  .u-mr-lg-0 {
    margin-right: 0 !important;
  }
  .u-p-lg-0 {
    padding: 0 !important;
  }
  .u-pt-lg-0 {
    padding-top: 0 !important;
  }
  .u-pb-lg-0 {
    padding-bottom: 0 !important;
  }
  .u-pl-lg-0 {
    padding-left: 0 !important;
  }
  .u-pr-lg-0 {
    padding-right: 0 !important;
  }
  .u-m-lg-1 {
    margin: var(--space-1) !important;
  }
  .u-mt-lg-1 {
    margin-top: var(--space-1) !important;
  }
  .u-mr-lg-1 {
    margin-right: var(--space-1) !important;
  }
  .u-mb-lg-1 {
    margin-bottom: var(--space-1) !important;
  }
  .u-ml-lg-1 {
    margin-left: var(--space-1) !important;
  }
  .u-p-lg-1 {
    padding: var(--space-1) !important;
  }
  .u-pt-lg-1 {
    padding-top: var(--space-1) !important;
  }
  .u-pr-lg-1 {
    padding-right: var(--space-1) !important;
  }
  .u-pb-lg-1 {
    padding-bottom: var(--space-1) !important;
  }
  .u-pl-lg-1 {
    padding-left: var(--space-1) !important;
  }
  .u-m-lg-2 {
    margin: var(--space-2) !important;
  }
  .u-mt-lg-2 {
    margin-top: var(--space-2) !important;
  }
  .u-mr-lg-2 {
    margin-right: var(--space-2) !important;
  }
  .u-mb-lg-2 {
    margin-bottom: var(--space-2) !important;
  }
  .u-ml-lg-2 {
    margin-left: var(--space-2) !important;
  }
  .u-p-lg-2 {
    padding: var(--space-2) !important;
  }
  .u-pt-lg-2 {
    padding-top: var(--space-2) !important;
  }
  .u-pr-lg-2 {
    padding-right: var(--space-2) !important;
  }
  .u-pb-lg-2 {
    padding-bottom: var(--space-2) !important;
  }
  .u-pl-lg-2 {
    padding-left: var(--space-2) !important;
  }
  .u-m-lg-3 {
    margin: var(--space-3) !important;
  }
  .u-mt-lg-3 {
    margin-top: var(--space-3) !important;
  }
  .u-mr-lg-3 {
    margin-right: var(--space-3) !important;
  }
  .u-mb-lg-3 {
    margin-bottom: var(--space-3) !important;
  }
  .u-ml-lg-3 {
    margin-left: var(--space-3) !important;
  }
  .u-p-lg-3 {
    padding: var(--space-3) !important;
  }
  .u-pt-lg-3 {
    padding-top: var(--space-3) !important;
  }
  .u-pr-lg-3 {
    padding-right: var(--space-3) !important;
  }
  .u-pb-lg-3 {
    padding-bottom: var(--space-3) !important;
  }
  .u-pl-lg-3 {
    padding-left: var(--space-3) !important;
  }
  .u-m-lg-4 {
    margin: var(--space-4) !important;
  }
  .u-mt-lg-4 {
    margin-top: var(--space-4) !important;
  }
  .u-mr-lg-4 {
    margin-right: var(--space-4) !important;
  }
  .u-mb-lg-4 {
    margin-bottom: var(--space-4) !important;
  }
  .u-ml-lg-4 {
    margin-left: var(--space-4) !important;
  }
  .u-p-lg-4 {
    padding: var(--space-4) !important;
  }
  .u-pt-lg-4 {
    padding-top: var(--space-4) !important;
  }
  .u-pr-lg-4 {
    padding-right: var(--space-4) !important;
  }
  .u-pb-lg-4 {
    padding-bottom: var(--space-4) !important;
  }
  .u-pl-lg-4 {
    padding-left: var(--space-4) !important;
  }
  .u-m-lg-5 {
    margin: var(--space-5) !important;
  }
  .u-mt-lg-5 {
    margin-top: var(--space-5) !important;
  }
  .u-mr-lg-5 {
    margin-right: var(--space-5) !important;
  }
  .u-mb-lg-5 {
    margin-bottom: var(--space-5) !important;
  }
  .u-ml-lg-5 {
    margin-left: var(--space-5) !important;
  }
  .u-p-lg-5 {
    padding: var(--space-5) !important;
  }
  .u-pt-lg-5 {
    padding-top: var(--space-5) !important;
  }
  .u-pr-lg-5 {
    padding-right: var(--space-5) !important;
  }
  .u-pb-lg-5 {
    padding-bottom: var(--space-5) !important;
  }
  .u-pl-lg-5 {
    padding-left: var(--space-5) !important;
  }
  .u-m-lg-6 {
    margin: var(--space-6) !important;
  }
  .u-mt-lg-6 {
    margin-top: var(--space-6) !important;
  }
  .u-mr-lg-6 {
    margin-right: var(--space-6) !important;
  }
  .u-mb-lg-6 {
    margin-bottom: var(--space-6) !important;
  }
  .u-ml-lg-6 {
    margin-left: var(--space-6) !important;
  }
  .u-p-lg-6 {
    padding: var(--space-6) !important;
  }
  .u-pt-lg-6 {
    padding-top: var(--space-6) !important;
  }
  .u-pr-lg-6 {
    padding-right: var(--space-6) !important;
  }
  .u-pb-lg-6 {
    padding-bottom: var(--space-6) !important;
  }
  .u-pl-lg-6 {
    padding-left: var(--space-6) !important;
  }
  .u-m-lg-7 {
    margin: var(--space-7) !important;
  }
  .u-mt-lg-7 {
    margin-top: var(--space-7) !important;
  }
  .u-mr-lg-7 {
    margin-right: var(--space-7) !important;
  }
  .u-mb-lg-7 {
    margin-bottom: var(--space-7) !important;
  }
  .u-ml-lg-7 {
    margin-left: var(--space-7) !important;
  }
  .u-p-lg-7 {
    padding: var(--space-7) !important;
  }
  .u-pt-lg-7 {
    padding-top: var(--space-7) !important;
  }
  .u-pr-lg-7 {
    padding-right: var(--space-7) !important;
  }
  .u-pb-lg-7 {
    padding-bottom: var(--space-7) !important;
  }
  .u-pl-lg-7 {
    padding-left: var(--space-7) !important;
  }
  .u-m-lg-8 {
    margin: var(--space-8) !important;
  }
  .u-mt-lg-8 {
    margin-top: var(--space-8) !important;
  }
  .u-mr-lg-8 {
    margin-right: var(--space-8) !important;
  }
  .u-mb-lg-8 {
    margin-bottom: var(--space-8) !important;
  }
  .u-ml-lg-8 {
    margin-left: var(--space-8) !important;
  }
  .u-p-lg-8 {
    padding: var(--space-8) !important;
  }
  .u-pt-lg-8 {
    padding-top: var(--space-8) !important;
  }
  .u-pr-lg-8 {
    padding-right: var(--space-8) !important;
  }
  .u-pb-lg-8 {
    padding-bottom: var(--space-8) !important;
  }
  .u-pl-lg-8 {
    padding-left: var(--space-8) !important;
  }
}
@media (min-width: 1280px) {
  .u-m-xl-0 {
    margin: 0 !important;
  }
  .u-mt-xl-0 {
    margin-top: 0 !important;
  }
  .u-mb-xl-0 {
    margin-bottom: 0 !important;
  }
  .u-ml-xl-0 {
    margin-left: 0 !important;
  }
  .u-mr-xl-0 {
    margin-right: 0 !important;
  }
  .u-p-xl-0 {
    padding: 0 !important;
  }
  .u-pt-xl-0 {
    padding-top: 0 !important;
  }
  .u-pb-xl-0 {
    padding-bottom: 0 !important;
  }
  .u-pl-xl-0 {
    padding-left: 0 !important;
  }
  .u-pr-xl-0 {
    padding-right: 0 !important;
  }
  .u-m-xl-1 {
    margin: var(--space-1) !important;
  }
  .u-mt-xl-1 {
    margin-top: var(--space-1) !important;
  }
  .u-mr-xl-1 {
    margin-right: var(--space-1) !important;
  }
  .u-mb-xl-1 {
    margin-bottom: var(--space-1) !important;
  }
  .u-ml-xl-1 {
    margin-left: var(--space-1) !important;
  }
  .u-p-xl-1 {
    padding: var(--space-1) !important;
  }
  .u-pt-xl-1 {
    padding-top: var(--space-1) !important;
  }
  .u-pr-xl-1 {
    padding-right: var(--space-1) !important;
  }
  .u-pb-xl-1 {
    padding-bottom: var(--space-1) !important;
  }
  .u-pl-xl-1 {
    padding-left: var(--space-1) !important;
  }
  .u-m-xl-2 {
    margin: var(--space-2) !important;
  }
  .u-mt-xl-2 {
    margin-top: var(--space-2) !important;
  }
  .u-mr-xl-2 {
    margin-right: var(--space-2) !important;
  }
  .u-mb-xl-2 {
    margin-bottom: var(--space-2) !important;
  }
  .u-ml-xl-2 {
    margin-left: var(--space-2) !important;
  }
  .u-p-xl-2 {
    padding: var(--space-2) !important;
  }
  .u-pt-xl-2 {
    padding-top: var(--space-2) !important;
  }
  .u-pr-xl-2 {
    padding-right: var(--space-2) !important;
  }
  .u-pb-xl-2 {
    padding-bottom: var(--space-2) !important;
  }
  .u-pl-xl-2 {
    padding-left: var(--space-2) !important;
  }
  .u-m-xl-3 {
    margin: var(--space-3) !important;
  }
  .u-mt-xl-3 {
    margin-top: var(--space-3) !important;
  }
  .u-mr-xl-3 {
    margin-right: var(--space-3) !important;
  }
  .u-mb-xl-3 {
    margin-bottom: var(--space-3) !important;
  }
  .u-ml-xl-3 {
    margin-left: var(--space-3) !important;
  }
  .u-p-xl-3 {
    padding: var(--space-3) !important;
  }
  .u-pt-xl-3 {
    padding-top: var(--space-3) !important;
  }
  .u-pr-xl-3 {
    padding-right: var(--space-3) !important;
  }
  .u-pb-xl-3 {
    padding-bottom: var(--space-3) !important;
  }
  .u-pl-xl-3 {
    padding-left: var(--space-3) !important;
  }
  .u-m-xl-4 {
    margin: var(--space-4) !important;
  }
  .u-mt-xl-4 {
    margin-top: var(--space-4) !important;
  }
  .u-mr-xl-4 {
    margin-right: var(--space-4) !important;
  }
  .u-mb-xl-4 {
    margin-bottom: var(--space-4) !important;
  }
  .u-ml-xl-4 {
    margin-left: var(--space-4) !important;
  }
  .u-p-xl-4 {
    padding: var(--space-4) !important;
  }
  .u-pt-xl-4 {
    padding-top: var(--space-4) !important;
  }
  .u-pr-xl-4 {
    padding-right: var(--space-4) !important;
  }
  .u-pb-xl-4 {
    padding-bottom: var(--space-4) !important;
  }
  .u-pl-xl-4 {
    padding-left: var(--space-4) !important;
  }
  .u-m-xl-5 {
    margin: var(--space-5) !important;
  }
  .u-mt-xl-5 {
    margin-top: var(--space-5) !important;
  }
  .u-mr-xl-5 {
    margin-right: var(--space-5) !important;
  }
  .u-mb-xl-5 {
    margin-bottom: var(--space-5) !important;
  }
  .u-ml-xl-5 {
    margin-left: var(--space-5) !important;
  }
  .u-p-xl-5 {
    padding: var(--space-5) !important;
  }
  .u-pt-xl-5 {
    padding-top: var(--space-5) !important;
  }
  .u-pr-xl-5 {
    padding-right: var(--space-5) !important;
  }
  .u-pb-xl-5 {
    padding-bottom: var(--space-5) !important;
  }
  .u-pl-xl-5 {
    padding-left: var(--space-5) !important;
  }
  .u-m-xl-6 {
    margin: var(--space-6) !important;
  }
  .u-mt-xl-6 {
    margin-top: var(--space-6) !important;
  }
  .u-mr-xl-6 {
    margin-right: var(--space-6) !important;
  }
  .u-mb-xl-6 {
    margin-bottom: var(--space-6) !important;
  }
  .u-ml-xl-6 {
    margin-left: var(--space-6) !important;
  }
  .u-p-xl-6 {
    padding: var(--space-6) !important;
  }
  .u-pt-xl-6 {
    padding-top: var(--space-6) !important;
  }
  .u-pr-xl-6 {
    padding-right: var(--space-6) !important;
  }
  .u-pb-xl-6 {
    padding-bottom: var(--space-6) !important;
  }
  .u-pl-xl-6 {
    padding-left: var(--space-6) !important;
  }
  .u-m-xl-7 {
    margin: var(--space-7) !important;
  }
  .u-mt-xl-7 {
    margin-top: var(--space-7) !important;
  }
  .u-mr-xl-7 {
    margin-right: var(--space-7) !important;
  }
  .u-mb-xl-7 {
    margin-bottom: var(--space-7) !important;
  }
  .u-ml-xl-7 {
    margin-left: var(--space-7) !important;
  }
  .u-p-xl-7 {
    padding: var(--space-7) !important;
  }
  .u-pt-xl-7 {
    padding-top: var(--space-7) !important;
  }
  .u-pr-xl-7 {
    padding-right: var(--space-7) !important;
  }
  .u-pb-xl-7 {
    padding-bottom: var(--space-7) !important;
  }
  .u-pl-xl-7 {
    padding-left: var(--space-7) !important;
  }
  .u-m-xl-8 {
    margin: var(--space-8) !important;
  }
  .u-mt-xl-8 {
    margin-top: var(--space-8) !important;
  }
  .u-mr-xl-8 {
    margin-right: var(--space-8) !important;
  }
  .u-mb-xl-8 {
    margin-bottom: var(--space-8) !important;
  }
  .u-ml-xl-8 {
    margin-left: var(--space-8) !important;
  }
  .u-p-xl-8 {
    padding: var(--space-8) !important;
  }
  .u-pt-xl-8 {
    padding-top: var(--space-8) !important;
  }
  .u-pr-xl-8 {
    padding-right: var(--space-8) !important;
  }
  .u-pb-xl-8 {
    padding-bottom: var(--space-8) !important;
  }
  .u-pl-xl-8 {
    padding-left: var(--space-8) !important;
  }
}
.u-mt-break {
  margin-top: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2) !important;
}

.u-mb-break {
  margin-bottom: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 2) !important;
}

/* Visibility */
.u-hidden {
  display: none !important;
}

.u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (min-width: 576px) {
  .u-lt-sm-only {
    display: none !important;
  }
}
@media (min-width: 768px) {
  .u-lt-md-only {
    display: none !important;
  }
}
@media (min-width: 1024px) {
  .u-lt-lg-only {
    display: none;
  }
}
@media not (min-width: 576px) {
  .u-ge-sm-only {
    display: none !important;
  }
}
@media not (min-width: 768px) {
  .u-ge-md-only {
    display: none !important;
  }
}
@media not (min-width: 1024px) {
  .u-ge-lg-only {
    display: none;
  }
}
/* Display type & helpers */
.u-block {
  display: block !important;
}

.u-inline-block {
  display: inline-block !important;
}

.u-inline-unit {
  /* 改行位置調整用、inline-blockはフォールバック */
  display: inline-block !important;
  display: inline flow-root !important;
  text-decoration: inherit;
  font: inherit;
  color: inherit;
}

.u-flex {
  display: flex !important;
}

.u-grid {
  display: grid !important;
}

.u-items-center {
  align-items: center !important;
}

.u-justify-center {
  justify-content: center !important;
}

.u-gap-1 {
  gap: var(--space-1) !important;
}

.u-gap-2 {
  gap: var(--space-2) !important;
}

.u-gap-3 {
  gap: var(--space-3) !important;
}

.u-gap-4 {
  gap: var(--space-4) !important;
}

/* Width helpers */
.u-w-100 {
  width: 100% !important;
}

.u-maxw-container {
  max-width: var(--container-max) !important;
  margin-inline: auto !important;
}

@media not (min-width: 768px) {
  .u-sp-limit-max {
    width: min(100%, 25rem + 40vw);
    margin-inline: auto;
  }
}
@media not (min-width: 1024px) {
  .u-md-limit-max {
    width: min(100%, 25rem + 40vw);
    margin-inline: auto;
  }
}
/* Typography
==================================================== */
/* - absolute size */
.u-text-xxs {
  font-size: 1rem !important;
}

.u-text-xs {
  font-size: 1.2rem !important;
}

.u-text-sm {
  font-size: 1.4rem !important;
}

.u-text-md {
  font-size: 1.6rem !important;
}

.u-text-lg {
  font-size: 1.8rem !important;
}

.u-text-xl {
  font-size: clamp(1.9rem, 1.8rem + 0.313vi, 2.2rem) !important;
}

.u-text-2xl {
  font-size: clamp(2.2rem, 2.067rem + 0.417vi, 2.6rem) !important;
}

.u-text-3xl {
  font-size: clamp(2.4rem, 2.133rem + 0.833vi, 3.2rem) !important;
}

.u-text-4xl {
  font-size: clamp(2.7rem, 2.267rem + 1.354cqw, 4rem) !important;
}

.u-text-5xl {
  font-size: clamp(3.5rem, 2.404rem + 2.809vi, 6rem) !important;
}

/* - relative size */
.u-text-scale-l1 {
  font-size: calc(100% + 1 * 8%) !important;
}

.u-text-scale-s1 {
  font-size: calc(100% - 1 * 8%) !important;
}

.u-text-scale-l2 {
  font-size: calc(100% + 2 * 8%) !important;
}

.u-text-scale-s2 {
  font-size: calc(100% - 2 * 8%) !important;
}

.u-text-scale-l3 {
  font-size: calc(100% + 3 * 8%) !important;
}

.u-text-scale-s3 {
  font-size: calc(100% - 3 * 8%) !important;
}

.u-text-scale-l4 {
  font-size: calc(100% + 4 * 8%) !important;
}

.u-text-scale-s4 {
  font-size: calc(100% - 4 * 8%) !important;
}

.u-text-scale-l5 {
  font-size: calc(100% + 5 * 8%) !important;
}

.u-text-scale-s5 {
  font-size: calc(100% - 5 * 8%) !important;
}

.u-text-scale-l6 {
  font-size: calc(100% + 6 * 8%) !important;
}

.u-text-scale-s6 {
  font-size: calc(100% - 6 * 8%) !important;
}

/* - weight */
.u-text-wt400 {
  font-weight: 400;
}

.u-text-wt500 {
  font-weight: 500;
}

.u-text-wt600 {
  font-weight: 600;
}

.u-text-wt700, .u-text-bold {
  font-weight: 700;
}

.u-text-wt800 {
  font-weight: 800;
}

.u-text-wt900 {
  font-weight: 900;
}

/* - alignment, line-height */
.u-text-left {
  text-align: left !important;
  text-wrap: wrap;
}

.u-text-center {
  text-align: center !important;
  text-wrap: balance;
}

.u-text-center--no-balance {
  text-align: center !important;
}

.u-text-right {
  text-align: right !important;
  text-wrap: wrap;
}

.u-text-muted {
  color: var(--color-muted) !important;
}

.u-lh-low1 {
  line-height: 1.6;
}

.u-lh-low2 {
  line-height: 1.45;
}

.u-lh-low3 {
  line-height: 1.3;
}

/* color */
.u-text-primary {
  color: var(--color-primary) !important;
}

.u-text-primary--o {
  color: var(--brand-o-500) !important;
}

.u-text-primary--cw {
  color: var(--brand-cw-500) !important;
}

.u-text-primary--sw {
  color: var(--brand-sw-500) !important;
}

.u-text-primary--st {
  color: var(--brand-st-500) !important;
}

.u-text-primary--psw {
  color: var(--brand-psw-500) !important;
}

.u-text-fg {
  color: var(--color-fg);
}

.u-text-red {
  color: var(--danger-500);
}

/* misc */
.u-inline-shrink {
  /* 中黒点の調整用 */
  display: inline-block;
  margin-inline: -0.12em;
}

.u-text-skeleton {
  line-height: 1;
  font-family: Poppins, sans-serif;
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 0.025em var(--brand-500);
  text-stroke: 0.025em var(--brand-500);
  font-size: calc(clamp(3.5rem, 2.404rem + 2.809vi, 6rem) * 1.2);
}

/* Background, border */
.u-bg-surface {
  background: var(--color-surface) !important;
}

.u-bg-brand {
  background: var(--brand-500) !important;
}

.u-bg-cw {
  background: var(--brand-cw-500) !important;
}

.u-bg-sw {
  background: var(--brand-sw-500) !important;
}

.u-bg-st {
  background: var(--brand-st-500) !important;
}

.u-bg-psw {
  background: var(--brand-psw-500) !important;
}

.u-bg-brand,
.u-bg-cw,
.u-bg-sw,
.u-bg-st,
.u-bg-psw {
  color: #fff !important;
}

.u-bg-neutral {
  background: var(--neutral-100) !important;
}

.u-border {
  border: 1px solid var(--color-border) !important;
}

/* Radius */
.u-rounded-0 {
  border-radius: var(--radius-0) !important;
}

.u-rounded-1 {
  border-radius: var(--radius-1) !important;
}

.u-rounded-2 {
  border-radius: var(--radius-2) !important;
}

.u-rounded-3 {
  border-radius: var(--radius-3) !important;
}

.u-rounded-4 {
  border-radius: var(--radius-4) !important;
}

.u-rounded-full {
  border-radius: var(--radius-round) !important;
}

/* List */
.u-kome-line {
  padding-left: 1.2em;
}
.u-kome-line::before {
  content: "※";
  display: inline-block;
  margin-inline: -1.2em 0.2em;
}

.u-kome-list > li {
  padding-left: 1.2em;
}
.u-kome-list > li::before {
  all: revert;
  content: "※";
  display: inline-block;
  margin-inline: -1.2em 0.2em;
}

.u-list-plain > li {
  padding-left: 0;
}
.u-list-plain > li::before {
  content: unset;
  display: none;
}
/*# sourceMappingURL=style.css.map */
