/* ==================================================
   オープンキャンパス ACFブロック 汎用スタイル
   ================================================== */

.c-post_opencampus {
  --oc-text: #2d3636;
  --oc-accent: #2d3636;
  --oc-white: #fff;
  --oc-gray: #8c959b;
  --oc-border: #dbdbdb;
  --oc-bg: #f4f4f4;
  --oc-line: #06c755;
  --oc-radius: 8px;
  --oc-gap: clamp(20px, 3vw, 32px);
  --oc-dur: 0.3s;
  --font-en: 'Barlow', sans-serif;

  color: var(--oc-text);
  line-height: 1.8;
}

.c-post_opencampus > * + * {
  margin-block-start: var(--oc-gap);
}

.c-post_opencampus img {
  max-width: 100%;
  height: auto;
}

.c-post_opencampus ul:not([class]) a:not([class]),
.c-post_opencampus p a:not([class]) {
  text-decoration: underline;
}

/* アイコン */
.c-post_opencampus .c-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  inline-size: 1em;
  aspect-ratio: 1;
}

.c-post_opencampus .c-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* ==================================================
   見出し（コアブロック）
   ================================================== */

h2.wp-block-heading {
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 700;
  line-height: 1.5;
  border-block-end: 2px solid currentColor;
  padding-block-end: 0.3em;
}

h3.wp-block-heading {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  line-height: 1.5;
  border-inline-start: 4px solid currentColor;
  padding-inline-start: 0.5em;
}

h4.wp-block-heading {
  font-size: clamp(16px, 1.6vw, 18px);
  font-weight: 700;
  line-height: 1.5;
}

/* ==================================================
   見出しブロック
   ================================================== */

.c-post_opencampus__heading {
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.c-post_opencampus__heading:not(:first-child) {
  margin-block-start: calc(var(--oc-gap) * 2);
}

.c-post_opencampus__heading__sub {
  display: block;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 400;
  color: var(--oc-gray);
}

/* ==================================================
   ボタン
   ================================================== */

.c-post_opencampus__button-primary,
.c-post_opencampus__button-secondary {
  text-align: center;
}

.c-post_opencampus__button-primary a,
.c-post_opencampus__button-secondary a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  border: 1px solid var(--oc-accent);
  text-decoration: none;
  transition: opacity var(--oc-dur);
}

.c-post_opencampus__button-primary a:hover,
.c-post_opencampus__button-secondary a:hover {
  opacity: 0.6;
}

.c-post_opencampus__button-primary a {
  min-inline-size: min(100%, 320px);
  border-radius: 999px;
  padding: 1em 2em;
  font-weight: 700;
  color: var(--oc-white);
  background: var(--oc-accent);
}

.c-post_opencampus__button-secondary a {
  border-radius: 4px;
  padding: 0.6em 1.2em;
  font-size: 15px;
  color: var(--oc-accent);
  background: var(--oc-white);
}

/* ==================================================
   リスト
   ================================================== */

.c-post_opencampus__list {
  --col: 1;
  display: grid;
  grid-template-columns: repeat(var(--col), minmax(0, 1fr));
  gap: 0.5em 1.5em;
  padding: 0;
  list-style: none;
}

.c-post_opencampus__list.-col2 {
  --col: 2;
}

.c-post_opencampus__list.-col3 {
  --col: 3;
}

.c-post_opencampus__list li {
  position: relative;
  padding-inline-start: 1.4em;
}

.c-post_opencampus__list li::before {
  position: absolute;
  inset-inline-start: 0;
  content: '・';
}

.c-post_opencampus__list.-dotted li::before {
  content: '●';
  top: 0.55em;
  font-size: 0.6em;
}

.c-post_opencampus__list.-check li::before {
  content: '✓';
  font-weight: 700;
}

.c-post_opencampus__list.-number {
  counter-reset: oc-list;
}

.c-post_opencampus__list.-number li {
  counter-increment: oc-list;
}

.c-post_opencampus__list.-number li::before {
  content: counter(oc-list) '.';
  font-family: var(--font-en);
  font-weight: 700;
}

/* ==================================================
   バナー / 動画
   ================================================== */

.c-post_opencampus__bnr a {
  display: block;
  transition: opacity var(--oc-dur);
}

.c-post_opencampus__bnr a:hover {
  opacity: 0.7;
}

.c-post_opencampus__bnr img {
  display: block;
  inline-size: 100%;
}

.c-post_opencampus__movie iframe,
.c-post_opencampus__movie video {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 16 / 9;
}

/* ==================================================
   about（スライダー + テキスト）
   ================================================== */

.c-post_opencampus__about__slider .slide img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--oc-radius);
}

.c-post_opencampus__about__controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  margin-block-start: 1em;
}

.c-post_opencampus__about__controls button {
  display: grid;
  place-items: center;
  inline-size: 2.5em;
  aspect-ratio: 1;
  border: 1px solid var(--oc-border);
  border-radius: 50%;
  background: var(--oc-white);
  cursor: pointer;
}

.c-post_opencampus__about__controls button svg {
  inline-size: 1em;
  fill: currentColor;
}

.c-post_opencampus__about__controls button.-next svg {
  rotate: 180deg;
}

.c-post_opencampus__about__controls button:disabled {
  opacity: 0.3;
  cursor: default;
}

.c-post_opencampus__about__controls ul {
  display: flex;
  gap: 0.5em;
  padding: 0;
  list-style: none;
}

.c-post_opencampus__about__controls ul li {
  inline-size: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--oc-border);
}

.c-post_opencampus__about__controls ul li.is-act {
  background: var(--oc-accent);
}

.c-post_opencampus__about > h3 {
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
}

/* ==================================================
   画像カラム
   ================================================== */

.c-post_opencampus__img-column {
  --col: 1;
  display: grid;
  grid-template-columns: repeat(var(--col), minmax(0, 1fr));
  gap: 32px 24px;
}

.c-post_opencampus__img-column.-col2 {
  --col: 2;
}

.c-post_opencampus__img-column.-col3 {
  --col: 3;
}

.c-post_opencampus__img-column.-col4 {
  --col: 4;
}

.c-post_opencampus__img-column__item .img img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--oc-radius);
}

.c-post_opencampus__img-column__item .textarea {
  margin-block-start: 0.75em;
}

.c-post_opencampus__img-column__item .title {
  font-weight: 700;
  margin-block-end: 0.25em;
}

/* ==================================================
   画像 + テキスト
   ================================================== */

.c-post_opencampus__media-with-index {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 40px;
}

.c-post_opencampus__media-with-index.-reverse .c-post_opencampus__media-with-index__img {
  order: -1;
}

.c-post_opencampus__media-with-index__textarea .en {
  font-family: var(--font-en);
  font-size: 14px;
  color: var(--oc-gray);
}

.c-post_opencampus__media-with-index__textarea .title {
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 700;
  line-height: 1.5;
  margin-block-end: 0.5em;
}

.c-post_opencampus__media-with-index__img img {
  display: block;
  inline-size: 100%;
  border-radius: var(--oc-radius);
}

/* ==================================================
   企業紹介 / ゲストプロフィール
   ================================================== */

.c-post_opencampus__company,
.c-post_opencampus__guest {
  border: 1px solid var(--oc-border);
  border-radius: var(--oc-radius);
  padding: clamp(20px, 3vw, 32px);
}

.c-post_opencampus__company,
.c-post_opencampus__guest__main {
  display: grid;
  grid-template-columns: 200px 1fr;
  align-items: start;
  gap: 32px;
}

.c-post_opencampus__company__img img {
  display: block;
  inline-size: 100%;
  object-fit: contain;
}

.c-post_opencampus__company__textarea .title {
  font-size: 20px;
  font-weight: 700;
  margin-block-end: 0.5em;
}

.c-post_opencampus__company__textarea .c-post_opencampus__button-secondary,
.c-post_opencampus__guest__textarea .c-post_opencampus__button-secondary {
  text-align: start;
}

.c-post_opencampus__guest__img img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
}

.c-post_opencampus__guest__textarea {
  display: grid;
  gap: 0.5em;
}

.c-post_opencampus__guest__textarea .job {
  font-size: 14px;
  color: var(--oc-gray);
}

.c-post_opencampus__guest__textarea .name {
  font-size: 22px;
  font-weight: 700;
}

.c-post_opencampus__guest__textarea .sns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75em;
}

.c-post_opencampus__guest__textarea .sns a {
  display: block;
  inline-size: 1.5em;
  block-size: 1.5em;
}

.c-post_opencampus__guest__textarea .sns svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.c-post_opencampus__guest__sub {
  margin-block-start: 1.5em;
  border-block-start: 1px solid var(--oc-border);
}

/* JS（Accordion.js）で .js-accordion-wrapper が挿入され、高さが制御される */
.c-post_opencampus__guest .js-accordion-wrapper,
.c-post_opencampus__faq .js-accordion-wrapper {
  block-size: 0;
  overflow: hidden;
}

.c-post_opencampus__guest__sub h3 {
  font-weight: 700;
  margin-block-start: 1em;
}

.c-post_opencampus__guest__more {
  margin-block-start: 1em;
  text-align: center;
}

.c-post_opencampus__guest__more button {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  border: 0;
  padding: 0.5em 1em;
  background: none;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.c-post_opencampus__guest__more .button-text::before {
  content: 'もっと見る';
}

.is-open .c-post_opencampus__guest__more .button-text::before {
  content: '閉じる';
}

.c-post_opencampus__guest__more .button-icon::before {
  content: '+';
  font-weight: 700;
}

.is-open .c-post_opencampus__guest__more .button-icon::before {
  content: '−';
}

/* ==================================================
   在校生の声
   ================================================== */

.c-post_opencampus__voice {
  display: grid;
  gap: 1em;
}

.c-post_opencampus__voice__item {
  display: grid;
  grid-template-columns: 80px 1fr;
  align-items: start;
  gap: 1.25em;
  border-radius: var(--oc-radius);
  padding: clamp(16px, 2.4vw, 24px);
  background: var(--oc-bg);
}

.c-post_opencampus__voice__item .img img {
  display: block;
  inline-size: 100%;
  border-radius: 50%;
}

.c-post_opencampus__voice__item .title {
  font-weight: 700;
}

.c-post_opencampus__voice__item .profile {
  margin-block-start: 0.5em;
  font-size: 14px;
  color: var(--oc-gray);
}

/* ==================================================
   W体験
   ================================================== */

.c-post_opencampus__w-experience {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
}

.c-post_opencampus__w-experience__item {
  flex: 1;
  text-align: center;
}

.c-post_opencampus__w-experience__item img {
  display: block;
  inline-size: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--oc-radius);
}

.c-post_opencampus__w-experience__item .title {
  margin-block-start: 0.5em;
  font-weight: 700;
}

.c-post_opencampus__w-experience__cross::before {
  content: '×';
  font-size: 32px;
  font-weight: 700;
}

/* ==================================================
   FAQ
   ================================================== */

.c-post_opencampus__faq {
  display: grid;
  gap: 0.75em;
}

.c-post_opencampus__faq__aco {
  margin: 0;
  border: 1px solid var(--oc-border);
  border-radius: var(--oc-radius);
  overflow: hidden;
}

.c-post_opencampus__faq__aco dd {
  margin: 0;
}

.c-post_opencampus__faq__title {
  position: relative;
  padding: 1em 3em 1em 2.5em;
  font-weight: 700;
  cursor: pointer;
}

.c-post_opencampus__faq__title::before,
.c-post_opencampus__faq__body::before {
  position: absolute;
  inset-inline-start: 1em;
  font-family: var(--font-en);
  font-weight: 700;
}

.c-post_opencampus__faq__title::before {
  content: 'Q';
}

.c-post_opencampus__faq__body::before {
  content: 'A';
}

.c-post_opencampus__faq__trg {
  position: absolute;
  inset-inline-end: 1em;
  inset-block-start: 50%;
  inline-size: 0.8em;
  block-size: 0.8em;
  translate: 0 -50%;
}

.c-post_opencampus__faq__trg::before,
.c-post_opencampus__faq__trg::after {
  position: absolute;
  inset: 50% 0 auto;
  block-size: 2px;
  margin-block-start: -1px;
  content: '';
  background: currentColor;
  transition: rotate var(--oc-dur);
}

.c-post_opencampus__faq__trg::after {
  rotate: 90deg;
}

.is-open .c-post_opencampus__faq__trg::after {
  rotate: 0deg;
}

.c-post_opencampus__faq__body {
  position: relative;
  border-block-start: 1px solid var(--oc-border);
  padding: 1em 1.5em 1.25em 2.5em;
  background: var(--oc-bg);
}

/* ==================================================
   タイムスケジュール
   ================================================== */

.c-post_opencampus__timeschedule {
  border: 1px solid var(--oc-border);
  border-radius: var(--oc-radius);
  padding: clamp(20px, 3vw, 32px);
}

.c-post_opencampus__timeschedule__title {
  margin-block-end: 1.5em;
  text-align: center;
}

.c-post_opencampus__timeschedule__title .sub {
  font-size: 14px;
  color: var(--oc-gray);
}

.c-post_opencampus__timeschedule__title .main {
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 700;
}

.c-post_opencampus__timeschedule__section + .c-post_opencampus__timeschedule__section {
  margin-block-start: 2em;
}

.c-post_opencampus__timeschedule__section > .title {
  margin-block-end: 0.5em;
  padding: 0.5em 1em;
  font-weight: 700;
  background: var(--oc-bg);
}

.c-post_opencampus__timeschedule__section .item {
  display: grid;
  grid-template-columns: 5em 1fr;
  gap: 1em;
  margin: 0;
  padding-block: 1em;
}

.c-post_opencampus__timeschedule__section .item + .item {
  border-block-start: 1px dashed var(--oc-border);
}

.c-post_opencampus__timeschedule__section .item .head {
  font-family: var(--font-en);
  font-weight: 700;
}

.c-post_opencampus__timeschedule__section .item .body {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1em;
  margin: 0;
}

.c-post_opencampus__timeschedule__section .item .subtitle {
  font-weight: 700;
}

.c-post_opencampus__timeschedule__section .item .media img {
  display: block;
  inline-size: 200px;
  border-radius: var(--oc-radius);
}

/* ==================================================
   LINE申込 / オンライン参加
   ================================================== */

.c-post_opencampus__line {
  border: 2px solid var(--oc-line);
  border-radius: var(--oc-radius);
  padding: clamp(20px, 3vw, 32px);
}

.c-post_opencampus__line__fukidashi {
  font-weight: 700;
  text-align: center;
  color: var(--oc-line);
}

.c-post_opencampus__line__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75em;
  margin-block: 0.5em 1.5em;
}

.c-post_opencampus__line__heading__illust {
  inline-size: 64px;
  margin: 0;
}

.c-post_opencampus__line__heading__title {
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 700;
}

.c-post_opencampus__line__items {
  display: grid;
  gap: 1.25em;
  padding: 0;
  list-style: none;
}

.c-post_opencampus__line__item,
.c-post_opencampus__online__flow {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25em;
}

.c-post_opencampus__line__item .num-number,
.c-post_opencampus__online__flow .number span {
  display: grid;
  place-items: center;
  inline-size: 2.75em;
  aspect-ratio: 1;
  border-radius: 50%;
  font-family: var(--font-en);
  font-weight: 700;
  color: var(--oc-white);
}

.c-post_opencampus__line__item .num-number {
  background: var(--oc-line);
}

.c-post_opencampus__online__flow .number span {
  background: var(--oc-accent);
}

.c-post_opencampus__line__item .info-title,
.c-post_opencampus__online__flow .title {
  font-size: 18px;
  font-weight: 700;
}

.c-post_opencampus__line__item .info-text a {
  text-decoration: underline;
}

.c-post_opencampus .line_button {
  margin-block-start: 0.75em;
}

.c-post_opencampus .line_button a {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  border-radius: 999px;
  padding: 0.6em 1.5em;
  font-weight: 700;
  color: var(--oc-white);
  background: var(--oc-line);
  text-decoration: none;
  transition: opacity var(--oc-dur);
}

.c-post_opencampus .line_button a:hover {
  opacity: 0.7;
}

.c-post_opencampus .line_button p {
  margin: 0;
}

.c-post_opencampus .line_button .c-icon {
  inline-size: 1.25em;
}

.c-post_opencampus__online__anchor {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  padding: 0;
  list-style: none;
}

.c-post_opencampus__online__anchor .item a {
  display: inline-flex;
  align-items: center;
  gap: 0.75em;
  border: 1px solid var(--oc-border);
  border-radius: 4px;
  padding: 0.75em 1.25em;
  font-weight: 700;
  text-decoration: none;
}

.c-post_opencampus__online__anchor .item a .c-icon {
  rotate: 90deg;
}

.c-post_opencampus__online__section {
  scroll-margin-block-start: 100px;
}

.c-post_opencampus__online__flow + .c-post_opencampus__online__flow {
  margin-block-start: 1.5em;
}

.c-post_opencampus__online__flow .body {
  display: grid;
  gap: 0.5em;
}

.c-post_opencampus__online__flow .body.-media {
  grid-template-columns: 1fr auto;
  gap: 1.5em;
}

.c-post_opencampus__online__flow .body figure {
  margin: 0;
}

.c-post_opencampus__online__flow .body figure img {
  display: block;
  inline-size: 208px;
}

.c-post_opencampus__online__flow .note {
  padding: 0;
  font-size: 14px;
  color: var(--oc-gray);
  list-style: none;
}

.c-post_opencampus__online__flow .buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  margin-block-start: 0.75em;
}

.c-post_opencampus__online__flow .contacts {
  display: grid;
  gap: 0.5em;
  margin-block-start: 0.75em;
}

.c-post_opencampus__online__flow .contacts_item > * {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75em;
  padding: 0.75em 1em;
  background: var(--oc-bg);
  text-decoration: none;
}

.c-post_opencampus__online__flow .contacts_item .label {
  font-family: var(--font-en);
  font-weight: 700;
}

.c-post_opencampus__online__flow .contacts_item .main {
  font-weight: 700;
}

.c-post_opencampus__online__flow .contacts_item .main small {
  margin-inline-start: 0.5em;
  font-weight: 400;
}

/* ==================================================
   SP
   ================================================== */

@media (max-width: 743px) {
  .c-post_opencampus__list.-col1-sp,
  .c-post_opencampus__img-column.-col1-sp {
    --col: 1;
  }

  .c-post_opencampus__list.-col2-sp,
  .c-post_opencampus__img-column.-col2-sp {
    --col: 2;
  }

  .c-post_opencampus__media-with-index,
  .c-post_opencampus__company,
  .c-post_opencampus__guest__main,
  .c-post_opencampus__timeschedule__section .item .body,
  .c-post_opencampus__online__flow .body.-media {
    grid-template-columns: 1fr;
  }

  .c-post_opencampus__media-with-index__img {
    order: -1;
  }

  .c-post_opencampus__company__img,
  .c-post_opencampus__guest__img {
    max-inline-size: 160px;
  }

  .c-post_opencampus__w-experience {
    flex-direction: column;
  }
}
