/* ===================================================================
   content.css
   Scope : p- classes (+ page-specific)
   Strategy : Mobile First（Default = SP）
   Breakpoint : 768px (Laptop)
   =================================================================== */

/* ===================================================================
 * common
 */

.dfc-contact-directory { max-width: 960px; }
.dfc-contact-directory h2:not(:first-child) { margin-block-start: 48px; }
.dfc-contact-directory__link {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 24px; margin-block-start: 20px; border: 1px solid #012758;
  color: #012758; font-size: 20px; font-weight: 700; text-decoration: none;
}
.dfc-contact-directory__link--join { color: #fff; background: #012758; }
.dfc-contact-directory__link:hover { outline: 2px solid #b17d2d; outline-offset: 3px; }
.dfc-request__layout.dfc-request__layout--single { grid-template-columns: minmax(0, 1fr); max-width: 960px; margin-inline: auto; }
.p-top-about__join { margin-block-start: 24px; display: flex; justify-content: flex-end; }
.p-top-about__join .c-button { background: #841f1f; color: #fff; border-color: #841f1f; }
.dfc-preview-toolbar { position: sticky; top: 0; z-index: 2000; display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 12px 20px; color: #fff; background: #012758; }
.dfc-preview-toolbar a { color: inherit; text-decoration: underline; }
.dfc-preview-toolbar button { cursor: pointer; padding: 6px 20px; border: 1px solid #fff; border-radius: 4px; background: #fff; color: #012758; }
.dfc-content-unlock { display: grid; gap: 20px; max-width: 480px; margin-block-start: 32px; }
.l-detail__company { margin-block: 16px 24px; font-size: 18px; font-weight: 700; }
.p-article__header > .c-card__meta, .l-detail__header > .l-detail__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-block: 20px 24px; }
.p-article__header > .c-card__meta .c-tag, .p-article__header > .c-card__meta time,
.l-detail__header > .l-detail__meta .c-tag, .l-detail__header > .l-detail__meta time { font-size: 16px; line-height: 1.5; }
.p-top-member .c-card__inner, .p-info__list .c-card__inner { display: block; height: auto; }
.p-top-member .c-card__figure, .p-info__list .c-card__figure { aspect-ratio: 3 / 2; width: 100%; }
.p-top-member .c-card__figure .c-card__image, .p-info__list .c-card__figure .c-card__image { width: 100%; height: 100%; object-fit: cover; }
.p-top-member__list, .p-info__list { align-items: start; }
.p-article__body p, .sg-cms p, .editor-block p { margin-block: 0 1em; line-height: 1.8; }
.p-article__body p:last-child, .sg-cms p:last-child, .editor-block p:last-child { margin-block-end: 0; }

.p-top-maintenance .c-paragraph { color: #a12424; font-size: 14px; line-height: 1.9; }
@media (min-width: 768px) {
  .p-top-maintenance .c-paragraph { text-align: center; }
}

/* Share image, company and summary tracks without truncating longer names. */
.p-info__list[data-article-category="info"] { row-gap: 20px; }
.p-info__list[data-article-category="info"] > .c-card {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  padding-block-end: 24px;
}
.p-info__list[data-article-category="info"] > .c-card .c-card__inner {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  height: auto;
}
.p-info__list[data-article-category="info"] > .c-card .c-card__content { display: contents; }
.p-info__list[data-article-category="info"] > .c-card .c-card__header { margin: 0; padding: 0; }
.p-info__list[data-article-category="info"] > .c-card .c-card__article-title { margin: 0; }
.p-info__posted { display: block; grid-row: 4; text-align: right; font-size: 13px; color: #46566c; align-self: end; }

.dfc-request__side .c-button__group { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
.dfc-request__side .c-button__group .c-button { width: 100%; min-width: 0; white-space: normal; }
.dfc-request__side .c-heading--md { font-size: 22px; line-height: 1.6; }
.dfc-request__side .dfc-static__panel { border-radius: 8px; }
.dfc-request__side p { margin-block: 20px; }

.dfc-contact-form { max-width: 960px; margin-inline: auto; }
.dfc-contact-form__lead { line-height: 1.9; }
.dfc-contact-form__lead p + p { margin-block-start: 20px; }
.dfc-contact-form__links { display: grid; gap: 12px; margin-block: 16px 28px; }
.dfc-contact-form__links a { color: #012758; text-decoration: underline; text-underline-offset: 4px; }
.dfc-contact-form form { margin-block-start: 36px; }
.dfc-contact-form__row { display: grid; gap: 12px; padding-block: 24px; border-block-start: 1px solid #cfd5dd; }
.dfc-contact-form__label { display: flex; align-items: baseline; gap: 12px; font-weight: 700; }
.dfc-contact-form__required { color: #841f1f; font-size: 12px; }
.dfc-contact-form__field { min-width: 0; }
.dfc-contact-form input:not([type=checkbox]):not([type=hidden]):not([type=submit]):not([type=button]),
.dfc-contact-form textarea { width: 100%; min-width: 0; border: 1px solid #9aa7b7; border-radius: 4px; padding: 12px; background: #fff; color: #182333; font: inherit; }
.dfc-contact-form input:focus-visible, .dfc-contact-form textarea:focus-visible { outline: 2px solid #012758; outline-offset: 2px; }
.dfc-contact-form textarea { min-height: 200px; resize: vertical; }
.dfc-contact-form__tel { display: flex; align-items: center; gap: 8px; max-width: 420px; }
.dfc-contact-form__tel input { flex: 1; }
.dfc-contact-form__address { display: grid; gap: 12px; }
.dfc-contact-form__postal { display: flex; gap: 12px; }
.dfc-contact-form__postal input[name=postal] { flex: 1; }
.dfc-contact-form__postal input[type=button] { flex: 0 0 auto; border: 1px solid #012758; border-radius: 4px; padding: 8px 16px; background: #fff; color: #012758; cursor: pointer; }
.dfc-contact-form__postal-status { min-height: 1.5em; font-size: 14px; }
.dfc-contact-form__privacy { max-height: 260px; overflow: auto; padding: 20px; border: 1px solid #cfd5dd; background: #f3f5f8; line-height: 1.9; }
.dfc-contact-form__privacy h3 { font-size: 16px; margin-block: 20px 8px; }
.dfc-contact-form__privacy p { margin-block-start: 16px; }
.dfc-contact-form__agree { display: flex; justify-content: center; align-items: center; gap: 12px; padding: 24px 0; }
.dfc-contact-form__agree input, .dfc-contact-form__type input { width: 20px; height: 20px; accent-color: #012758; }
.dfc-contact-form__actions { display: flex; justify-content: center; }
.dfc-contact-form__actions input { cursor: pointer; }
.dfc-contact-form__type { display: flex; gap: 12px; align-items: center; }
.dfc-contact-form--join { width: 100%; min-width: 0; }
.dfc-contact-form--join .dfc-contact-form__row { grid-template-columns: minmax(0,1fr); }
.dfc-contact-form__confirmation dd { margin: 0; min-width: 0; overflow-wrap: anywhere; white-space: normal; }
.dfc-contact-form__confirmation { margin-block: 32px; }
.dfc-contact-form__actions { flex-wrap: wrap; gap: 16px; }
.dfc-contact-form__actions .c-button { min-width: 0; max-width: 100%; padding: 16px 24px; white-space: normal; }
.dfc-contact-form__alert { padding: 20px; border: 1px solid #841f1f; color: #841f1f; margin-block-end: 24px; }
.dfc-contact-form__complete { margin-block: 24px 40px; line-height: 1.9; }
.dfc-contact-form__complete p { margin-block-start: 24px; }
.dfc-contact-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.dfc-contact-form__postal button { border: 1px solid #012758; padding: 8px 16px; border-radius: 4px; background: #fff; color: #012758; white-space: nowrap; cursor: pointer; }
@media (min-width: 768px) {
  .dfc-contact-form__row { grid-template-columns: 220px minmax(0, 1fr); gap: 32px; }
}

/* -----------------------------------------------------------
   p-login
   ----------------------------------------------------------- */
.p-login {
  z-index: 700;
  position: fixed;
  right: 0;
  bottom: 15px;
}

.p-login__content {
  position: absolute;
  bottom: 0;
  right: 0;
  display: grid;
  grid-template-columns: 1fr auto;
  width: 300px;
  padding: var(--layout-container-padding) var(--layout-container-padding-md);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--layout-gap-default);

  border-radius: var(--component-button-border-radius) 0 0 var(--component-button-border-radius);
  border-width: 2px 0 2px 2px;
  border-style: solid;
  border-color: var(--semantic-color-brand-secondary);
  background-color: rgba(255, 255, 255, 0.92);

  transition: transform .3s;

  .is-login--opened & {
    transition-delay: .3s;
    transform: translate(0, 0);
  }

  .is-login--closed & {
    pointer-events: none;
    transform: translate(100%, 0);
  }
}

.p-login__header {
  order: 1;
  display: flex;
  align-items: center;
  gap: var(--layout-gap-sm);
  color: var(--semantic-color-brand-secondary);
  font-size: var(--semantic-typography-font-size-heading-4);
}

.p-login__icon {
  font-size: 2.125em;
}

.p-login__heading {
  display: flex;
  flex-direction: column;
  color: var(--semantic-color-brand-secondary,);
  font-size: inherit;
  letter-spacing: var(--semantic-typography-letter-spacing-normal);
  line-height: var(--semantic-typography-line-height-tight);
  & span {
    font-size: var(--semantic-typography-font-size-body-xs);
    font-weight: var(--semantic-typography-font-weight-bold);
  }
  & b {
    font-weight: var(--semantic-typography-font-weight-bold);
  }
}

.p-login__description {
  order: 3;
  grid-column: span 2;
}

.p-login__form-list {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap-default);
}

.p-login__form-label {
  display: flex;
  flex-direction: column;
}

.p-login__form-label-text {
  display: block;
  width: 100%;
  font-size: var(--semantic-typography-font-size-body-xs);
  line-height: 1;
  color: var(--semantic-color-text-secondary);
}

.p-login__form-input {
  border-width: 1px;
  border-style: solid;
  border-color: transparent transparent var(--semantic-color-text-tertiary) transparent;

  /* focus */
  &:focus-visible {
    outline: 0 none;
    border-bottom-color: var(--global-nav-button-bg-login-hover);
    color: var(--component-input-color-text);
  }

  /* error */
  &.is-error {
    border-color: var(--global-nav-button-bg-login-hover);
    background-color: var(--semantic-color-status-error-bg);
  }

  /* disabled */
  &:disabled {
    background-color: var(--semantic-color-bg-disabled);
    border-bottom-color: var(--semantic-color-border-disabled);
    color: var(--semantic-color-text-disabled);
    cursor: not-allowed;
  }
}

.p-login__form-button {
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  gap: var(--layout-gap-xs);
  width: 100%;
  padding: var(--semantic-spacing-1) var(--component-button-padding-x-sm);
  border-radius: var(--component-button-border-radius, 4px);
  background: var(--semantic-color-brand-secondary, #841F1F);
  color: var(--semantic-color-text-inverse);
  cursor: pointer;
}

.p-login__form-button-icon {
  width:  1.5em;
  height: 1.5em;
  margin-block: -2px;
}


@media (min-width: 768px) {
  .p-login {
    bottom: 30px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .p-login__form-button {
    transition: .3s;

    &:hover {
      background-color: var(--global-nav-button-bg-login-hover);
    }
  }
}

/* -----------------------------------------------------------
   p-login-page
   ----------------------------------------------------------- */
.p-login-page__layout {
  display: grid;
  gap: var(--layout-gap-xl);
}

.p-login-page__intro {
  display: grid;
  gap: var(--layout-gap-md);
  align-content: start;
}

.p-login-page__panel {
  display: grid;
  gap: var(--layout-gap-md);
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: var(--layout-border-radius-lg, 28px);
  padding: clamp(24px, 4vw, 42px);
  background: var(--semantic-color-bg-primary, #fff);
  box-shadow: 0 18px 48px rgba(40, 29, 12, 0.08);
}

.p-login-page__form,
.p-login-page__logged-in {
  display: grid;
  gap: var(--layout-gap-md);
}

.p-login-page__field {
  display: grid;
  gap: var(--layout-gap-xs);
}

.p-login-page__label {
  color: var(--semantic-color-text-secondary);
  font-size: var(--semantic-typography-font-size-body-xs);
  font-weight: var(--semantic-typography-font-weight-bold);
  line-height: 1;
}

.p-login-page__input {
  min-height: 54px;
  border-width: 0 0 1px;
  border-style: solid;
  border-color: var(--semantic-color-border-strong, #9a8c76);
  padding-inline: 0;
  background: transparent;
  color: var(--semantic-color-text-primary);
}

.p-login-page__input:focus-visible {
  outline: 0 none;
  border-bottom-color: var(--semantic-color-brand-secondary, #841f1f);
}

.p-login-page__button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--layout-gap-xs);
  min-height: 54px;
  border-radius: var(--component-button-border-radius, 4px);
  padding-inline: var(--component-button-padding-x, 24px);
  background: var(--semantic-color-brand-secondary, #841f1f);
  color: var(--semantic-color-text-inverse, #fff);
  font-weight: var(--semantic-typography-font-weight-bold);
  cursor: pointer;
}

.p-login-page__button-icon {
  width: 1.5em;
  height: 1.5em;
}

@media (min-width: 768px) {
  .p-login-page__layout {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
    align-items: start;
  }
}

@media (hover: hover) and (pointer: fine) {
  .p-login-page__button {
    transition: background-color .3s;
  }

  .p-login-page__button:hover {
    background-color: var(--global-nav-button-bg-login-hover, #5f1616);
  }
}

/**
 * close button
 */
.p-login__close {
  order: 2;
  position: relative;
  width:  3em;
  height: 3em;
  cursor: pointer;
}
.p-login__close-bar {
  display: block;
  position: absolute;
  inset: 0;
  width: 80%;
  height: 3px;
  margin: auto;
  border-radius: var(--semantic-border-radius-full);
  background-color: var(  --semantic-color-text-primary);

  &:first-of-type {
    transform: rotate(45deg);
  }
  &:last-of-type {
    transform: rotate(-45deg);
  }
}


/**
 * open button
 */
 .p-login__open {
  position: absolute;
  bottom: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--layout-gap-xs);
  padding: var(--layout-container-padding) var(--layout-container-padding);
  border-radius: var(--component-button-border-radius) 0 0 var(--component-button-border-radius);
  background-color: var(--semantic-color-brand-secondary);
  line-height: 1.2;
  color: var(--semantic-color-text-inverse);
  transform: translate(100%, 0);
  transition: .3s transform;

  cursor: pointer;

  .is-login--closed & {
    transform: translate(0, 0);
    transition-delay: .3s;
  }

  .is-login--opened & {
    pointer-events: none;
    transform: translate(100%, 0);
  }
}

.p-login__open-icon {
  width: 2em;
  margin-inline: -.5em;
}

.p-login__open-text {
  width: 1em;
}


/* ===================================================================
 * page-top
 */

/* -----------------------------------------------------------
   p-kv
   ----------------------------------------------------------- */
.p-kv {
  position: relative;
  width: 100%;
}

.p-kv__visual.swiper {
  overflow: hidden;
  width: 100%;
  margin-inline: auto;

  & .swiper-wrapper {
    display: flex;
    width: 100%;
    transform: none;
  }

  & .swiper-slide {
    width: 100%;
    height: 100%;
  }

  & .c-kv__image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
  }
}

.p-kv__title {
  position: relative;

  display: flex;
  flex-direction: column;
  padding-block: 1.2em 0.4em;

  color: var(--semantic-color-text-primary);
  font-family: var(--semantic-typography-font-family-heading);
  font-size: var(--semantic-typography-font-size-heading-0);
  line-height: 1.2;


  &::before {
    content: "";
    z-index: -1;
    position: absolute;
    inset: 0 calc(var(--layout-container-padding) * -1);
    display: block;
    background-image: url(../images/kv-catch__bg.svg);
    background-repeat: repeat-x;
    background-size: var(--kv-marquee-width) var(--kv-marquee-height);
    animation: bg-marquee var(--kv-marquee-timer) linear infinite;
    pointer-events: none;
  }

}

@media (max-width: 767.98px) {
  .p-kv__visual.swiper {
    width: 100vw;
    aspect-ratio: 3 / 2;
    margin-inline: calc(var(--layout-container-padding) * -1);

    & .swiper-slide {
      min-height: 0;
      aspect-ratio: 3 / 2;
    }

    & .c-kv__image {
      object-position: center;
    }
  }

  .p-kv__title {
    font-weight: var(--semantic-typography-font-weight-bold);
    letter-spacing: var(--semantic-typography-letter-spacing-normal);
  }
}

@media (min-width: 768px) {
  .p-kv__visual.swiper {
    border-radius: var(--semantic-border-radius-4xs);
    aspect-ratio: 1920 / 600;
  }

  .p-kv__title {
    font-weight: var(--semantic-typography-font-weight-semibold);
    letter-spacing: var(--semantic-typography-letter-spacing-tight);
  }
}

/* -----------------------------------------------------------
   p-top-speakers
   ----------------------------------------------------------- */
.p-top-speakers {
  display: none;
  flex-direction: column-reverse;
  gap: var(--layout-gap-lg);
}

.p-top-speakers__slider.swiper {
  overflow: hidden;
  width: 100%;

  & .swiper-wrapper {
    transition-timing-function: linear;
  }

  & .swiper-slide {
    width: 256px;
    flex-shrink: 0;
  }
}

.p-top-speakers__list {
  display: flex;
  gap: var(--layout-gap-default);
}

.p-top-speakers__link {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  gap: var(--layout-gap-sm);
}

.p-top-speakers__figure {
  overflow: hidden;
  width: 100%;
  height: auto;
  aspect-ratio: 560 / 320;
  border-radius: var(--semantic-border-radius-4xs);
}

.p-top-speakers__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.p-top-speakers__name {
  font-size: var(--component-card-content-font-size);
  font-weight: normal;
  line-height: 1.2145;
}

@media (min-width: 768px) {
  .p-top-speakers {
    display: flex;
  }

  .l-container:where(.p-top-speakers *) {
    display: flex;
  }
}

/* -----------------------------------------------------------
   p-top-schedule . p-schedule
   ----------------------------------------------------------- */
.p-schedule__list,
.p-top-schedule__list {
  display: flex;
  flex-direction: column;
  margin-block: var(--layout-gap-md);
}

.p-top-schedule__list {
  gap: var(--layout-gap-md);
}

.p-schedule__list {
  gap: var(--layout-gap-lg);
}

@media (min-width: 768px) {
  .p-top-schedule__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--layout-gap-xl);
    margin-block: var(--layout-section-padding-y);
  }

  .p-top-schedule .p-schedule__link {
    grid-template-columns: min(192px, 36%) minmax(0, 1fr);
  }

  .p-top-schedule .p-schedule__heading {
    font-size: var(--semantic-typography-font-size-body-base, 16px);
  }

  .p-top-schedule .p-schedule__speaker,
  .p-top-schedule .p-schedule__description {
    font-size: var(--semantic-typography-font-size-body-xs);
  }

  .p-schedule__list {
    gap: var(--layout-gap-xl);
    margin-block: var(--layout-section-padding-y);
  }

  .p-schedule__title,
  .p-top-schedule__title {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
}

/**
 * article
 */
.p-schedule__eyecatch,
.p-top-schedule__eyecatch {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.p-schedule__speaker,
.p-top-schedule__speaker {
  color: var(--component-card-header-color, #0F172A);
  font-size: var(--component-card-content-font-size);
  font-weight: var(--component-card-content-font-weight);
  line-height: var(--component-card-content-line-height-xs);
}

.p-schedule__link,
.p-top-schedule__link {
  color: var(--semantic-color-text-primary);
}

@media (max-width: 767.98px) {
  .p-top-schedule__link {
    display: flex;
    flex-direction: column;
    gap: var(--component-card-gap-sm);

    & .c-card__meta {
      order: 1;
    }

    & .c-card__header {
      order: 2;
    }

    & .c-card__content {
      order: 4;
    }
  }

  .p-top-schedule__eyecatch {
    order: 3;
    max-width: 192px;
    margin-block: var(--component-card-gap-xs);
    margin-inline: auto;
  }

  .p-schedule__description,
  .p-top-schedule__description {
    display: none;
  }


  .p-schedule__link {
    display: grid;
    grid-template-columns: min(128px, 30vw) 1fr;
    grid-template-rows: auto auto 1fr;
    gap: var(--component-card-gap-sm) var(--component-card-gap-base);

    & .c-card__meta {
      order: 1;
      grid-column: span 2;
      margin-block-end: var(--component-card-gap-sm);
    }

    & .c-card__figure {
      order: 2;
      grid-row: span 2;
    }

    & .c-card__header {
      order: 3;
    }

    & .c-card__content {
      order: 4;
    }
  }

  .p-top-schedule .p-schedule__link {
    grid-template-columns: min(144px, 38vw) minmax(0, 1fr);
  }

  .p-schedule__heading,
  .p-schedule__speaker {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
}

@media (min-width: 768px) {
  .p-schedule__link,
  .p-top-schedule__link {
    display: grid;
    grid-template-columns: 192px 1fr;
    grid-template-rows: auto auto 1fr;
    column-gap: var(--component-card-gap-md);
    row-gap: var(--component-card-gap-sm);
  }

  .p-schedule__eyecatch,
  .p-top-schedule__eyecatch {
    grid-row: span 3;
  }

  .p-schedule__heading {
    font-size: var(--semantic-typography-font-size-body-lg);
  }

  .p-schedule__speaker,
  .p-schedule__description {
    font-size: var(--semantic-typography-font-size-body-sm);
  }

  .p-top-schedule__speaker,
  .p-top-schedule__description {
    font-size: var(--semantic-typography-font-size-body-xs);
  }

  .p-schedule__speaker,
  .p-top-schedule__speaker {
    font-weight: var(--semantic-typography-font-weight-bold);
  }

  .p-schedule__description,
  .p-top-schedule__description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;

    margin-block-start: var(--component-card-gap-sm);
  }
}

@media (hover: hover) and (pointer: fine) {
  .p-schedule__link {
    transition: transform .3s;

    & .p-schedule__eyecatch > * {
      transition: transform .3s;
    }

    &:hover .p-schedule__eyecatch > * {
      transform: scale(1.075);
    }
  }

  .p-top-schedule__link {
    transition: transform .3s;

    & .p-top-schedule__eyecatch > * {
      transition: transform .3s;
    }

    &:hover .p-top-schedule__eyecatch > * {
      transform: scale(1.075);
    }
  }
}

/* -----------------------------------------------------------
   p-top-report
   ----------------------------------------------------------- */
.p-top-report {
  position: relative;

  & .c-card__date {
    color: var(--semantic-color-text-inverse-a80);
  }

  & .c-card__heading {
    margin-block-start: var(--component-card-gap-sm);
    color: var(--semantic-color-text-inverse);
  }

  & .c-card__date {
    flex-shrink: 0;
  }

  & .c-button {
    background-color: transparent;
  }

  & .c-button--icon-only {
    aspect-ratio: 1 / 1;
  }
}

.p-top-report__content .swiper-slide {
  flex-shrink: 0;
}

.p-top-report__date {
  color: var(--semantic-color-text-inverse-a80);
}

@media (max-width: 767.98px) {
  .p-top-report {
    background: linear-gradient(270deg, var(--semantic-color-brand-primary, #012758) 0%, var(--semantic-color-text-primary, #0F172A) 100%);
    color: var(--semantic-color-text-inverse);

    & .c-card--report.swiper-slide {
      width: 256px !important;
    }
  }

  .p-top-report__content {
    width: calc(100% + var(--layout-container-padding));
    margin-block-start: var(--semantic-spacing-6);
    margin-inline-end: calc(var(--layout-container-padding) * -1);
  }
}

@media (min-width: 768px) {
  .p-top-report {
    overflow: hidden;
    background: linear-gradient(270deg, var(--semantic-color-brand-primary, #012758) 0%, var(--semantic-color-text-primary, #0F172A) 100%);
    color: var(--semantic-color-text-inverse);

    &::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      bottom: 0;
      right: max(calc(var(--layout-container-max-width) + 32px), calc((100% + var(--layout-container-padding) * 0.5)  - 32px));
      width: 50vw;
      height: 100%;
      background-color: #fff;
      pointer-events: none;
    }

    & > * {
      display: flex;
      flex-direction: column;
      gap: var(--layout-gap-xl);
    }

    & .c-card--report.swiper-slide {
      width: 360px !important;
    }

    & .c-button__groupset {
      margin-block-start: 0;
    }
  }

  .p-top-report__content {
    width: calc(var(--layout-container-max-width) + calc(50vw - var(--layout-container-padding) * 0.5));
    max-width: unset;
    margin-inline-end: calc((50vw - var(--layout-container-padding) * 0.5) * -1);
  }
}

/* -----------------------------------------------------------
    p-top-member
    ----------------------------------------------------------- */
.p-top-member {
  position: relative;

  & .c-card__header {
    margin-block-start: var(--semantic-spacing-4);
  }

  & .c-card__content {
    margin-block-start: var(--semantic-spacing-2);
  }

  & .c-card__description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
}

.p-top-member__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--layout-gap-lg) var(--layout-gap-md);
  margin-block-start: var(--semantic-spacing-6);
}

@media (min-width: 768px) {
  .p-top-member__list {
    grid-template-columns: repeat(4, 1fr);
    margin-block-start: var(--semantic-spacing-8);

    & .c-card__header {
      margin-block-start: var(--semantic-spacing-6);
    }
  }
}

/* -----------------------------------------------------------
    p-top-topics
    ----------------------------------------------------------- */
.p-top-topics__list {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap-md);
  margin-block-start: var(--semantic-spacing-6);
}

@media (min-width: 768px) {
  .p-top-topics__list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-block-start: var(--semantic-spacing-8);

    & .c-card__header {
      margin-block-start: var(--semantic-spacing-4);
    }
  }
}

/* -----------------------------------------------------------
    p-top-about / Message
    ----------------------------------------------------------- */
@media (min-width: 768px) {
  .p-top-about {
    padding-block-end: calc(var(--layout-section-padding-y-lg) + var(--layout-section-padding-y));
  }
}

.p-top-about__detail-link {
  margin-block-start: var(--semantic-spacing-4);
  text-align: right;
}

.p-top-about__header .c-title--label::before {
  content: attr(data-label);
  display: block;
  margin-block-end: 8px;
  background: none;
  color: var(--semantic-color-brand-tertiary, #B17D2D);
  -webkit-text-fill-color: currentColor;
  font-family: var(--semantic-typography-font-family-heading);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0;
}

.p-top-member__header,
.p-top-topics__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.p-event-maintenance {
  color: #b00020;
  line-height: 1.8;
  overflow-wrap: anywhere;
}

.p-event-maintenance p {
  color: inherit;
}

@media (max-width: 767.98px) {
  .p-top-member > .l-container,
  .p-top-topics > .l-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .p-top-member__header,
  .p-top-topics__header {
    display: contents;
  }

  .p-top-member__title,
  .p-top-topics__title {
    grid-row: 1;
  }

  .p-top-member__content,
  .p-top-topics__content {
    grid-row: 2;
  }

  .p-top-member__header > .c-button,
  .p-top-topics__header > .c-button {
    grid-row: 3;
    justify-self: end;
    margin-block-start: var(--layout-gap-md);
  }
}

.p-top-member__list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.p-top-member__list .c-card__content {
  min-width: 0;
}

.c-card__article-title {
  margin-block-start: 8px;
  overflow-wrap: anywhere;
  line-height: 1.6;
}

@media (min-width: 768px) {
  .p-top-about > .l-container {
    display: grid;
    grid-template-columns: minmax(220px, 0.8fr) minmax(0, 2fr);
    gap: 48px;
    align-items: start;
  }

  .p-top-about .p-top-about__header {
    max-width: none;
    padding-block-start: 56px;
  }

  .p-top-about__header .c-title--label::before {
    font-size: 64px;
  }

  .p-top-about__header .c-heading--md {
    font-size: 18px;
  }

  .p-top-about__content {
    min-width: 0;
  }

  .p-top-member__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.p-top-about__detail-link a {
  color: var(--semantic-color-brand-primary, #012758);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: .2em;
}


/* ===================================================================
 * mypage
 */

 .l-login {
  padding-block: var(--layout-container-padding-y-xs);
  padding-inline: var(--layout-container-padding);
}

.l-login__container {
  display: grid;
  grid-template-columns: 1fr auto;
  max-width: 600px;
  margin-inline: auto;
  padding: var(--layout-container-padding) var(--layout-container-padding-md);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--layout-gap-default);
  border-radius: var(--component-button-border-radius) 0 0 var(--component-button-border-radius);
  border: var(--semantic-border-width-thick) solid var(--semantic-color-brand-secondary);
}

@media (max-width: 767.98px) {
  .p-application + .p-application,
  .p-application .c-form {
    padding-block: var(--layout-section-padding-y-sm);
  }
}

@media (min-width: 768px) {
  .l-login {
    padding-block: var(--layout-section-padding-y-sm);
  }

  .p-mypage-header {
    & .c-title--introduction > * {
      font-weight: var(--semantic-typography-font-weight-semibold);
    }
  }
}

/* -----------------------------------------------------------
   .p-entry / p-mypage-notice / p-mypage-presentation / p-mypage-business
   ----------------------------------------------------------- */
.p-entry,
.p-mypage-notice,
.p-mypage-presentation,
.p-mypage-business {

  & .c-button--icon-only {
    aspect-ratio: 1 / 1;
  }

  & .swiper {
    display: flex;
  }

  & .c-card--entry.swiper-slide {
    flex-shrink: 0;
    height: unset;
    margin-right: 24px;
  }
}

.p-entry__text + .p-entry__header {
  margin-block-start: 3em;
}


@media (max-width: 767.98px) {
  .p-entry .c-card--entry.swiper-slide {
    width: 100%;
  }

  .p-mypage-notice .c-card--notice,
  .p-mypage-presentation .c-card--report,
  .p-mypage-business .c-card--business {
    width: 256px;
  }

  .p-entry__content {
    width: 100%;
    margin-block-start: var(--semantic-spacing-6);
  }

  .p-mypage-notice__content,
  .p-mypage-presentation__content,
  .p-mypage-business__content {
    width: calc(100% + var(--layout-container-padding));
    margin-block-start: var(--semantic-spacing-6);
    margin-inline-end: calc(var(--layout-container-padding) * -1);
  }
}

@media (min-width: 768px) {
  .p-entry,
  .p-mypage-notice,
  .p-mypage-presentation,
  .p-mypage-business {
    width: 840px;

    & > * {
      display: flex;
      flex-direction: column;
      gap: var(--layout-gap-md);
    }

    & .c-button__groupset {
      margin-block-start: .5em;
    }
  }

  .p-entry__content,
  .p-mypage-notice__content,
  .p-mypage-presentation__content,
  .p-mypage-business__content {
    width: 808px;
  }

  .p-entry .c-card--entry {
    width: 100%;
    max-width: 392px;
  }

  .p-mypage-notice .c-card--notice,
  .p-mypage-presentation .c-card--report,
  .p-mypage-business .c-card--business {
    width: 100%;
    max-width: 253.334px;
  }
}

/* -----------------------------------------------------------
   p-mypage-newmember
   ----------------------------------------------------------- */

.p-mypage-newmember {

  & .c-button__groupset {
    margin-block-start: var(--layout-gap-lg);
  }
}

.p-mypage-newmember__item {
  margin-block-start: var(--layout-gap-md);

  & .c-list--basic {
    border: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
    & > * {
      padding: var(--semantic-spacing-4);
    }
  }

  & .c-list--basic__head {
    background-color: var(--semantic-color-bg-table);
  }

  & .c-list--basic__desc {
    line-height: var(--semantic-typography-line-height-snug);

    & li + li {
      margin-block-start: .666em;
    }
  }
}

.p-mypage-newmember__title {
  background-color: var(--semantic-color-bg-table);
  border-block-end: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);

  & > * {
    font-weight: var(--semantic-typography-font-weight-bold);
  }
}

@media (max-width: 767.98px) {
  .p-mypage-newmember {

    & .c-button {
      margin-inline: auto;
    }
  }
}

@media (min-width: 768px) {
  .p-mypage-newmember {

    & .c-button {
      margin-inline-start: auto;
    }
  }
}

/* -----------------------------------------------------------
   p-mypage-search / p-mypage-company-info
   ----------------------------------------------------------- */
.p-mypage-search,
.p-mypage-personal-info {

  & .c-list--table {
    font-size: var(--semantic-typography-font-size-body-md);
  }
}

@media (max-width: 767.98px) {
  .p-mypage-search,
  .p-mypage-personal-info {

    & .c-form__actions {
      margin-block-start: var(--semantic-spacing-4);
    }
  }

  .p-mypage-personal-info .c-list--table {
    grid-template-columns: 1fr;
  }
  .p-mypage-personal-info .c-list--table__desc {
    border-inline-start: 0 none;
  }
}

@media (min-width: 768px) {
  .p-search,
  .p-mypage-search,
  .p-mypage-personal-info {

    & .c-list--table {
      grid-template-columns: 10em 1fr;
    }
  }
}


/* ===================================================================
 * page-about
 */

.page-about .c-figure--page {
  display: grid;
}

@media (max-width: 767.98px) {
  .page-about {
    & .c-figure--page {
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: 50% 50%;
    }

    & .c-figure__inner {
      width: 100%;
      height: 100%;

      & img {
        object-fit: cover;
        width: 100%;
        height: 100%;
      }
    }
  }
}

@media (min-width: 768px) {
  .page-about {
    & .c-figure--page {
      grid-template-columns: repeat(4, 1fr);
    }

    & .c-title--page .c-figure__inner {
      display: block;
      min-height: 300px;

      & img {
        object-fit: cover;
        width: 100%;
        height: 100%;
      }
    }
  }

  .p-activities .c-card__content {
    padding: var(--semantic-spacing-6);
  }
}

/* -----------------------------------------------------------
    p-about-introduction
    ----------------------------------------------------------- */
.p-about__figure-block {
  overflow: hidden;

  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-radius: var(--semantic-border-radius-4xs);

  & .c-figure {
    position: relative;
  }

  & .c-figure__image {
    overflow: hidden;
    width: 100%;
  }

  & .c-figure__caps {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    font-size: 12px;
  }
}

/* -----------------------------------------------------------
    p-benefit
    ----------------------------------------------------------- */
.p-benefit__header {
  display: flex;
  flex-direction: column;
  gap: var(--layout-gap-sm);
}

.p-benefit__content {
  padding-block-start: 1em;
}

.page-about .p-benefit--gold,
.page-about .p-benefit--gold .c-card__content {
  background-color: #fff2cc;
}

.page-about .p-benefit--gold .c-tag--benefit {
  background-color: #805e13;
  color: #fff;
}

.page-about .p-benefit .c-figure img.p-benefit__books {
  object-fit: contain;
  background-color: #e9e4e4;
}

/* p-others */
.p-others__figure {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}

@media (max-width: 767.98px) {
  .p-others__figure {
    gap: var(--layout-gap-xs);
  }
}

@media (min-width: 768px) {
  .p-others__figure {
    grid-column: span 2;
    gap: var(--layout-gap-default);
  }
}

/* -----------------------------------------------------------
    p-faq
    ----------------------------------------------------------- */
.p-faq-heading {
  display: flex;
  align-items: baseline;
  gap: .25em;
}

.p-faq-heading__sub {
  font-size: .75em;
}

.p-faq__item {
  margin-block-start: var(--layout-gap-default);
  background-color: var(--semantic-color-bg);
  border: 1px solid var(--semantic-color-border-default);
}

.p-question {
  display: grid;
  grid-template-columns: 1.5em 1fr 1.5em;
  gap: var(--layout-gap-xs);
  padding-block: var(--semantic-spacing-4);
  padding-inline: var(--semantic-spacing-4) var(--semantic-spacing-2);

  font-weight: var(--semantic-typography-font-weight-bold);

  transition: background-color .3s, color .3s;

  cursor: pointer;

  &::before {
    content: "Q.";
    margin-block-start: -.125em;
    font-family: var(--semantic-typography-font-family-heading);
    color: var(--semantic-color-brand-primary-hover);
  }

  [open] & {
    background-color: var(--semantic-color-brand-primary);
  }
  [open] &,
  [open] &::before {
    color: var(--semantic-color-text-inverse);
  }
}

.p-question__text {
  font-weight: var(--semantic-typography-font-weight-medium);
}

.p-question__icon {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: flex-start;
  width:  1.8em;
  height: 1.8em;
  color: var(--semantic-color-brand-primary-hover);

  & span {
    display: block;
    width: 1em;
    height: 2px;
    background-color: currentColor;
    transform-origin: center center;
    transition: transform .3s;

    &:last-of-type {
      position: absolute;
      place-content: center;
      transform: rotate(90deg);
    }
  }

  [open] & {
    color: var(--semantic-color-text-inverse);

    & span:last-of-type {
      transform: rotate(90deg) scaleX(0);
    }
  }
}

.p-answer {
  display: grid;
  grid-template-columns: 1.5em 1fr;
  gap: var(--layout-gap-xs);

  padding-block-end: var(--semantic-spacing-4);
  padding-inline: var(--semantic-spacing-4);
  border-block-start: 1px solid var(--semantic-color-border-default);

  &::before {
    content: "A.";
    margin-block-start: -.125em;
    font-family: var(--semantic-typography-font-family-heading);
    font-size: var(--semantic-typography-font-size-body-lg);
    font-weight: var(--semantic-typography-font-weight-bold);
    color: var(--semantic-color-brand-tertiary);
  }
}

.p-answer__text {
  width: 100%;

  & + & {
    margin-block-start: 1.5em;
  }
}

.p-answer__title {
  color: var(--semantic-color-brand-primary);
  font-size: 1em;
  line-height: var(--semantic-typography-line-height-body);

  & + .c-paragraph {
    margin-block-start: .5em;
  }
}

@media (max-width: 767.98px) {
  .p-question {
    font-size: var(--semantic-typography-font-size-body-md);
  }

  .p-answer {
    padding-block-start: var(--semantic-spacing-4);
    font-size: var(--semantic-typography-font-size-body-md);
  }

  .p-answer__title {
    font-weight: var(--semantic-typography-font-weight-bold);
  }
}

@media (min-width: 768px) {
  .p-faq-heading {
    gap: .125em;
  }

  .p-faq-heading__sub {
    font-size: .5em;
  }

  .p-faq__item:first-of-type {
    margin-block-start: var(--layout-gap-xl);
  }

  .p-question {
    padding: var(--semantic-spacing-4);
    font-size: var(--semantic-typography-font-size-body-lg);
  }

  .p-answer {
    padding: var(--semantic-spacing-4);

    &::before {
      font-size: var(--semantic-typography-font-size-body-lg);
    }
  }

  .p-answer__title {
    font-weight: var(--semantic-typography-font-weight-medium);
  }
}

/* ===================================================================
 * page-greeting
 */

.p-greeting__header {
  & > *:not(p) {
    font-weight: var(--semantic-typography-font-weight-semibold);
    line-height: var(--semantic-typography-line-height-relaxed);
  }
}

.p-greeting__contents {
  margin-block-start: 1.5em;
}

@media (min-width: 768px) {
  .p-greeting__header {
    display: flex;
    align-items: baseline;
    gap: 1em;
    & > *:not(p) {
      font-weight: var(--semantic-typography-font-weight-bold);
    }
  }

  .p-greeting__contents {
    margin-block-start: 3em;
  }
}

/* -----------------------------------------------------------
    p-message
    ----------------------------------------------------------- */
.p-message__text > * + * {
  margin-block-start: 1em;
}

.p-message__name {
  display: flex;
  margin-block-start: 2em;
  text-align: right;

  & br {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .p-message__name {
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-end;

    & * {
      font-weight: var(--semantic-typography-font-weight-bold);
    }
  }
}

@media (min-width: 768px) {
  .p-message__name {
    justify-content: flex-end;
    gap: .5em;

    & * {
      font-weight: var(--semantic-typography-font-weight-semibold);
    }
  }
}

/* -----------------------------------------------------------
    p-team
    ----------------------------------------------------------- */
.p-team {

  & .c-list--table__head:last-of-type {
    grid-row: span 6;
  }

  & .c-list--table__desc {
    display: flex;
    align-items: center;
    gap: var(--layout-gap-default);
  }
}

@media (min-width: 768px) {
  .p-team .c-list--table {
    grid-template-columns: 12em 1fr;
  }
}


/* ===================================================================
 * page-salon
 */

.p-availability__header {
  & > * {
    padding-inline-start: var(--semantic-spacing-2);
    font-weight: var(--semantic-typography-font-weight-bold);
  }
}

.p-availability__sub {
  font-weight: var(--semantic-typography-font-weight-semibold);
  line-height: var(--semantic-typography-line-height-heading-narrow);
  color: var(--semantic-color-brand-tertiary);
}

.p-availability__contents {
  margin-block-start: 1.5em;
}


@media (max-width: 767.98px) {
  .p-salon__title {
    & > * {
      line-height: var(--semantic-typography-line-height-relaxed);
    }
  }
}

@media (min-width: 768px) {
  .page-salon  {
    & .c-figure--page {
      height: 300px;

      & img {
        object-fit: cover;
        object-position: center;
        width: 100%;
        height: 100%;
      }
    }
  }

  .p-salon__figure {
    overflow: hidden;
    border-radius: var(--semantic-border-radius-4xs);
  }

  .p-availability__header {
    & > * {
      padding-inline-start: var(--semantic-spacing-4);
      font-weight: var(--semantic-typography-font-weight-semibold);
    }
  }

  .p-availability__contents {
    margin-block-start: 3em;
  }
}


/* ===================================================================
 * page-advisory
 */



/* ===================================================================
 * page-member
 */

.p-member__header {
  & > *:not(p) {
    font-weight: var(--semantic-typography-font-weight-semibold);
    line-height: var(--semantic-typography-line-height-relaxed);
  }

  & + .c-paragraph {
    margin-block-start: .5em;
  }
}

.p-member__contents {
  margin-block-start: 1.5em;
}

.p-member__list {
  margin-block-start: var(--layout-gap-xl);
}

@media (max-width: 767.98px) {
  .p-member__header {
    display: flex;
    align-items: baseline;
    gap: 1em;
    & > *:not(p) {
      font-weight: var(--semantic-typography-font-weight-bold);
    }
  }
}

@media (min-width: 768px) {
  .p-member__contents {
    margin-block-start: 3em;
  }
}


/* ===================================================================
 * page-data
 */

.p-data__header {
  & > * {
    padding-inline-start: var(--semantic-spacing-2);
    font-weight: var(--semantic-typography-font-weight-bold);
  }
}

.p-data__sub {
  font-weight: var(--semantic-typography-font-weight-semibold);
  line-height: var(--semantic-typography-line-height-heading-narrow);
  color: var(--semantic-color-brand-tertiary);
}

.p-data__contents {
  margin-block-start: 1.5em;
}

@media (min-width: 768px) {
  .p-data__header {
    & > * {
      padding-inline-start: var(--semantic-spacing-4);
      font-weight: var(--semantic-typography-font-weight-semibold);
    }
  }
}


/* -----------------------------------------------------------
    p-chart
    ----------------------------------------------------------- */

.p-chart {
  position: relative;
  margin-block: var(--semantic-spacing-6, 24px);
  min-height: 320px;
}

.p-chart--tall {
  min-height: 480px;
}

.p-chart--doughnut {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--layout-gap-default);
}

.js-industry-legend {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--layout-gap-xs);
  font-size: var(--semantic-typography-font-size-body-xs);

  & > li {
    display: grid;
    grid-template-columns: 1.5em 1fr;
    gap: .5em;
    align-items: center;
    line-height: 1;
  }

  & > li::before {
    content: "";
    display: block;
    width:  1.5em;
    height: 1.5em;
    background-color: var(--color);
  }
}

@media (max-width: 767.98px) {
  .p-chart {
    min-height: 75vw;
  }

  .p-chart--tall {
    min-height: 80vw;
  }

  .p-chart--doughnut {
    flex-direction: column;
    gap: var(--layout-gap-lg);

    & canvas {
      max-width:  66.6vw;
      max-height: 66.6vw;
      aspect-ratio: 1 / 1;
    }
  }

  .js-industry-legend {
    column-gap: 2em;
  }
}

@media (min-width: 768px) {
  .p-chart:not(.p-chart--doughnut) {
    & canvas {
      min-height: 400px;
      font-feature-settings: normal;
    }
  }

  .p-chart--doughnut {
    gap: var(--layout-gap-xl);

    & canvas {
      max-width: 320px;
      max-height: 320px;
      aspect-ratio: 1 / 1;
    }
  }

  .js-industry-legend {
    grid-template-columns: repeat(1, 1fr);
  }
}


/* ===================================================================
 * page-presentation / page-voice
 */

.c-card--voice {

  & .c-card__header {
    margin-block-start: var(--layout-gap-sm);
  }

  & .c-paragraph {
    line-height: var(--semantic-typography-line-height-snug);

    & strong {
      font-weight: normal;
    }
  }
}


/* -----------------------------------------------------------
    p-voice__detail
    ----------------------------------------------------------- */
.p-voice__title {
  margin-block-start: .5rem;
  padding-block-end: 1rem;
  border-block-end: var(--semantic-border-width-thin) solid var(--semantic-color-border-default);
}

.p-voice__figure {
  overflow: hidden;
  width: fit-content;
  max-width: 100%;
  border-radius: var(--semantic-border-radius-4xs);
  margin-block-end: 1.5em;
  margin-inline: auto;
}

.p-voice__registration {
  margin-block-start: 3em;

  & .c-button {
    width: 100%;
    max-width: 480px;
    margin-inline: auto;
  }
}

@media (min-width: 768px) {
  .c-detail__header {
    flex-direction: row;
    gap: 1em;
  }

  .c-detail__heading--name,
  .c-detail__heading--text {
    font-family: var(--semantic-typography-font-family-heading);
    font-size: var(--semantic-typography-font-size-body-xl);
  }

  .p-voice__figure {
    margin-block-end: 3em;
  }
}

/* ===================================================================
 * page-lecturer
 */

.page-lecturer .l-section {
  * + & {
    margin-block-start: calc(var(--layout-container-padding-md) * -1);
    padding-block-start: 0;
  }
 }

.p-list--lecturer {
  gap: var(--layout-gap-lg);
}

.c-card--lecturer {
  & .c-card__meta {
    margin-block: .75em;
  }

  & .c-paragraph {
    margin-block-start: .5em;
  }
}

@media (max-width: 767.98px) {
  .p-card--lecturer {
    & .c-card__meta {
      margin-block: var(--layout-gap-sm);
    }

    & .c-paragraph {
      line-height: var(--semantic-typography-line-height-tight);
    }
  }
}

@media (min-width: 768px) {
  .page-lecturer .l-section {
    * + & {
      margin-block-start: calc(var(--layout-section-padding-y) * -1);
    }
  }

  .p-lecturer:first-of-type .c-title--label::before {
    margin-block-start: -.25em;
  }

  .p-list--lecturer {
    grid-template-columns: repeat(2, 1fr);
    margin-block: var(--layout-gap-lg);
  }
}



/* ===================================================================
 * page-dfc-club
 */

/* -----------------------------------------------------------
    p-calender
    ----------------------------------------------------------- */
.p-calendar__link {
  color: var(--semantic-color-text-primary);
}

.p-calendar__date,
.p-calendar__title,
.p-calendar__description {
  padding-block: var(--semantic-spacing-2);
  padding-inline: .666em;
}

.p-calendar__title {
  display: flex;
  flex-direction: column;
  gap: .5em;
}

.p-calendar__heading {
  color: var(--semantic-color-brand-primary);
  text-decoration: underline;
}

.p-calendar__label {
  display: none;
}

@media (max-width: 767.98px) {
  .p-calendar__list {
    margin-block: var(--layout-gap-md);
  }

  .p-calendar__items {
    display: flex;
    flex-direction: column;
    gap: var(--layout-gap-default);
  }

  .p-calendar__link {
    display: block;
    border: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
  }

  .p-calendar__date {
    padding-block: .125em;
    background-color: var(--semantic-color-brand-primary);
    color: var(--semantic-color-text-inverse);
  }

  .p-calendar__heading {
    font-size: var(--component-card-header-font-size);
  }

  .p-calendar__description {
    border-block-start: var(--semantic-border-width-thin) dashed var(--semantic-color-border-strong);
  }
}

@media (min-width: 768px) {
  .p-calendar__list {
    margin-block: var(--layout-section-padding-y);
  }

  .p-calendar__label,
  .p-calendar__items {
    display: grid;
    grid-template-columns: 11.5em 1fr 12em;
    border-block-start:  var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
    border-inline-start: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
    border-inline-end:   var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
  }

  .p-calendar__item:nth-of-type(even) {
    background-color: var(--semantic-color-bg-table);
  }

  .p-calendar__item,
  .p-calendar__info,
  .p-calendar__link {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: subgrid;
  }

  .p-calendar__title,
  .p-calendar__description {
    border-inline-start: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
  }

  .p-calendar__date,
  .p-calendar__title,
  .p-calendar__description {
    border-block-end: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
  }

  .p-calendar__label-text {
    padding-block: var(--semantic-spacing-2);
    padding-inline: .666em;
    border-block-end: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
    background-color: var(--semantic-color-brand-primary);
    color: var(--semantic-color-text-inverse);

    & + & {
      border-inline-start: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
    }

    &:nth-of-type(1)::before { content: "開催日"; }
    &:nth-of-type(2)::before { content: "行事／活動名／ゲスト"; }
    &:nth-of-type(3)::before { content: "会場"; }
  }

  .p-calendar__title {
    padding-block: var(--semantic-spacing-4);
  }

  .p-calendar__description {
    align-content: center;
  }

  .p-calendar__description__item {
    font-size: var(--semantic-typography-font-size-body-sm);
  }
}

@media (hover: hover) and (pointer: fine) {
  .p-calendar__link {
    &:hover {
      & > * {
        background-color: var(--semantic-color-bg-highlight);
      }
      & .p-calendar__heading {
        color: var(--semantic-color-text-link-hover);
        text-decoration: none;
      }
    }
  }
}

/* -----------------------------------------------------------
    p-dfc-club__detail
    ----------------------------------------------------------- */
/**
 * guest
 */
.p-guest__header {
  display: flex;
  flex-direction: column;
  gap: 1em;
  margin-block-start: 1em;
}

.p-guest__heading {
  display: flex;
  flex-direction: column;
  gap: .125em;
  margin: .5em 0;
  padding: 0;
  font-family: var(--semantic-typography-font-family-heading);
  font-size: var(--semantic-typography-font-size-body-lg);
  font-weight: var(--semantic-typography-font-weight-bold);
}

.p-guest__heading--corp,
.p-guest__heading--post {
  display: block;
  font-size: 1em;
  line-height: var(--semantic-typography-line-height-tight);
}

.p-guest__heading--name {
  display: block;
  line-height: var(--semantic-typography-line-height-snug);
}

.p-guest__figure {
  position: relative;
  overflow: hidden;
  max-width: 200px;
  border-radius: var(--semantic-border-radius-4xs);

  & * {
    object-fit: contain;
    object-position: center;
    width:  100%;
    height: 100%;
  }
}

@media (max-width: 767.98px) {
  .p-guest__figure {
    margin-inline: auto;
  }

  .p-guest__heading--name{
    font-size: 1.333em;
  }
}

@media (min-width: 768px) {
  .p-guest__header {
    flex-direction: row;
    align-items: center;
    gap: var(--layout-gap-lg);
  }

  .p-guest__heading--name{
    font-size: 1.5em;
  }
}


/**
 * registration
 */
.p-registration {

  & form {
    margin-block-start: 3em;
  }

  & .c-button--submit {
    width: 100%;
    max-width: 480px;
    margin-inline: auto;
  }
}


/* ===================================================================
 * page-club-report
 */

.p-club-report__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--layout-gap-lg);
  align-items: stretch;

  & .c-card__heading {
    margin-block-start: var(--component-card-gap-sm);
  }

  & .c-card__date {
    flex-shrink: 0;
  }
}

.p-club-report__list .c-card--report,
.p-club-report__list .c-card--report .c-card__inner {
  min-width: 0;
  width: 100%;
  height: 100%;
}

.p-club-report__list .c-card__content,
.p-club-report__list .c-card__header,
.p-club-report__list .c-card__heading,
.p-club-report__list .c-card__description {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (min-width: 768px) {
  .p-club-report__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--layout-gap-xl) var(--layout-gap-lg);
  }
}


/* ===================================================================
 * page-info
 */

.p-info__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--layout-gap-lg) var(--layout-gap-md);

  & .c-card__header {
    margin-block-start: var(--semantic-spacing-4);
    padding-block-end:  var(--semantic-spacing-2);
  }

  & .c-card__content {
    min-width: 0;
    overflow-wrap: anywhere;
    margin-block-start: auto;
    margin-block-end: 0;
  }

  & .c-card__description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
}

@media (min-width: 768px) {
  .p-info__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--layout-gap-xl) var(--layout-gap-lg);

    & .c-card__inner {
      display: flex;
      flex-direction: column;
      width: 100%;
      height: 100%;
    }

    & .c-card__header {
      margin-block-start: var(--semantic-spacing-6);
    }
  }
}

/* -----------------------------------------------------------
    p-info__detail
    ----------------------------------------------------------- */
.p-info__header {
  margin-block-end: 1em;
}

.p-info__header:has(.p-info__logo) {
  display: grid;
  grid-template-columns: auto 1fr;

  & .p-info__heading--name {
    margin-inline-start: var(--layout-gap-default);
    padding-inline-start: var(--layout-gap-default);
    border-inline-start: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);

    align-self: center;
  }
}

.p-info__heading--name {
  font-size: 1em;
  font-weight: var(--semantic-typography-font-weight-bold);
  line-height: var(--semantic-typography-line-height-tight);
  color: var(--semantic-color-brand-tertiary);
}

@media (max-width: 767.98px) {
  .p-info__logo {
    width: 96px;
    margin-block-end: .75em;
  }
}

@media (min-width: 768px) {
  .p-info__logo {
    max-width: 192px;
  }

  .p-info__heading--name {
    font-family: var(--semantic-typography-font-family-heading);
    font-size: var(--semantic-typography-font-size-body-xl);
  }
}

/* ===================================================================
 * page-news
 */

.p-news__list {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: var(--layout-gap-md);

  & .c-card__content {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

@media (min-width: 768px) {
  .p-news__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--layout-gap-xl) var(--layout-gap-md);

    & .c-card__header {
      margin-block-start: var(--semantic-spacing-4);
    }
  }
}


/* ===================================================================
 * page-business
 */

@media (min-width: 768px) {
  .p-list--business {
    grid-template-columns: repeat(2, 1fr);
    margin-block: var(--layout-gap-lg);
  }
}


/* ===================================================================
 * page-userdata
 */


.page-userdata .l-detail__footer {
  width: 100%;
  margin-block-start: 0;

  & .c-button__wrap {
    padding-block-start: 0;
    border-block-start: 0 none;
  }
}

.p-search .c-list--table {
  margin-block-start: 0;
}

.p-result__keywords {
  padding: 1em;
  border: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
}

.p-list--result {
  grid-template-columns: repeat(1, 1fr);
  gap: var(--layout-gap-sm);
}

@media (max-width: 767.98px) {
  .p-list--result {
    gap: var(--layout-gap-sm);

    & .c-pager {
      margin-block-start: var(--layout-gap-sm);
    }
  }
}

@media (min-width: 768px) {
  .p-list--result {
    gap: var(--layout-gap-lg);
    margin-block: var(--layout-gap-lg);
  }
}


/* ===================================================================
 * page-contact
 * page-contact-member
 */

 .page-contact .c-heading--page {
  --marquee-speed: .5em;
}

.page-contact-member .c-heading--page {
  --marquee-speed: 1em;
}

.p-contact--error {
  width: 100%;
}

.p-contact__content {
  width: 100%;
  margin-block-end: 1.5em;
  padding-block-end: 1.5em;

  & .c-paragraph {
    margin-block-start: 1.5em;
  }

  .p-contact--error & {
    border-block-end: var(--semantic-border-width-thin) solid var(--semantic-color-border-strong);
    background-color: var(--semantic-color-bg-primary);
    color: var(--semantic-color-text-error);
  }
}

@media (max-width: 767.98px) {
  .page-contact,
  .page-contact-member {
    & .c-local-nav {
      display: none;
    }
  }
}


/* ===================================================================
 * page-privacy_policy
 */

.page-privacy_policy .c-heading--page {
  &::before, &::after {
    content: attr(data-label) " " attr(data-label) " " attr(data-label) " " attr(data-label);
  }
}

.p-privacypolicy__sub-header {
  width: 100%;

  & > * {
    font-weight: var(--semantic-typography-font-weight-normal);
  }
}

/* ===================================================================
 * page-sitemap
 */

 .page-sitemap .c-heading--page {
  --marquee-speed: 1em;

  &::before, &::after {
    content: attr(data-label) " " attr(data-label) " " attr(data-label) " " attr(data-label);
  }
}
/* DFC CMS dynamic page compatibility */
.l-content-with-side {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 40px;
  align-items: start;
}
.p-article__header {
  margin-block-end: 32px;
}
.p-article__body {
  min-width: 0;
}
.page-voice .p-article__body.c-editor table {
  width: 100% !important;
  border-collapse: collapse;
}
.page-voice .p-article__body.c-editor table th {
  width: 20% !important;
  padding: 1%;
  border-bottom: 1px solid #012758;
  text-align: left;
  vertical-align: top;
}
.page-voice .p-article__body.c-editor table td {
  width: 80% !important;
  padding: 1% 2%;
  border-bottom: 1px solid #ddd;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.p-article__side {
  position: sticky;
  top: 96px;
}
.dfc-share-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-block-start: 32px;
}
.dfc-share-buttons span {
  font-weight: 700;
}
.dfc-share-buttons a {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 999px;
  padding-inline: 12px;
  text-decoration: none;
}
.dfc-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.dfc-panel {
  border: 1px solid var(--color-border, #d9d3c7);
  border-radius: 16px;
  padding: 24px;
  background: #fff;
}
.dfc-panel__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.dfc-panel__list li {
  padding-block: 10px;
  border-bottom: 1px solid var(--color-border, #d9d3c7);
}
.dfc-panel__list li:last-child {
  border-bottom: 0;
}
.dfc-profile {
  display: grid;
  grid-template-columns: 8em 1fr;
  gap: 8px 16px;
}
.dfc-profile dt {
  font-weight: 700;
}
.dfc-profile dd {
  margin: 0;
}
.dfc-table {
  width: 100%;
  border-collapse: collapse;
}
.dfc-table th,
.dfc-table td {
  border-bottom: 1px solid var(--color-border, #d9d3c7);
  padding: 12px 10px;
  text-align: left;
  vertical-align: top;
}
.dfc-static {
  color: var(--semantic-color-text-primary);
}
.dfc-static__lead {
  display: grid;
  gap: 18px;
  max-width: 920px;
  font-size: clamp(1.06rem, 1.8vw, 1.28rem);
  line-height: 2;
}
.dfc-static__panel {
  margin-block-start: 32px;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 24px;
  padding: clamp(24px, 4vw, 44px);
  background: #fff;
}
.dfc-static__panel--accent {
  background:
    linear-gradient(135deg, rgba(177, 130, 43, .12), rgba(255, 255, 255, .92)),
    #fff;
}
.dfc-static__check-list {
  display: grid;
  gap: 12px;
  margin: 24px 0;
  padding: 0;
  list-style: none;
}
.dfc-static__check-list li {
  position: relative;
  padding-inline-start: 1.8em;
  font-weight: 700;
}
.dfc-static__check-list li::before {
  content: "";
  position: absolute;
  top: .55em;
  left: 0;
  width: .8em;
  height: .8em;
  border-radius: 999px;
  background: var(--semantic-color-brand-secondary, #a27424);
}
.dfc-static__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-block-start: 32px;
}
.dfc-static__card {
  display: grid;
  gap: 14px;
  min-height: 220px;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 20px;
  padding: 24px;
  background: #fff;
}
.dfc-static__media {
  overflow: hidden;
  border-radius: 24px;
  background: #111;
  aspect-ratio: 16 / 9;
}
.dfc-static__media iframe {
  width: 100%;
  height: 100%;
  border: 0;
}
.dfc-static__benefits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-block-start: 32px;
}
.dfc-static__benefits div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 16px;
  align-items: center;
  border-bottom: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  padding: 18px 0;
}
.dfc-static__benefits b {
  color: var(--semantic-color-brand-secondary, #a27424);
  font-size: 1.35rem;
  font-family: var(--semantic-typography-font-family-heading);
}

/* -----------------------------------------------------------
    admin editor output
    ----------------------------------------------------------- */
.sg-cms .dfc-embed,
.editor-block .dfc-embed,
.dfc-embed {
  position: relative;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  margin-block: var(--semantic-spacing-6, 24px);
  overflow: hidden;
  border-radius: 16px;
  background: #111;
}

.sg-cms .dfc-embed iframe,
.editor-block .dfc-embed iframe,
.dfc-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.sg-cms .dfc-link-card,
.editor-block .dfc-link-card,
.dfc-link-card {
  display: grid;
  grid-template-columns: minmax(96px, 160px) minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin-block: var(--semantic-spacing-5, 20px);
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 12px;
  padding: 14px;
  background: #fff;
  color: inherit;
  text-decoration: none;
}

.dfc-link-card__image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 8px;
  background: var(--semantic-color-bg-secondary, #f5f1e8);
}

.dfc-link-card__body {
  display: grid;
  gap: 6px;
}

.dfc-link-card__title {
  font-weight: var(--semantic-typography-font-weight-bold, 700);
  line-height: 1.45;
}

.dfc-link-card__desc,
.dfc-link-card__url {
  color: var(--semantic-color-text-secondary, #5f6670);
  font-size: var(--semantic-typography-font-size-body-sm, .9rem);
  line-height: 1.6;
}

.dfc-link-card__url {
  overflow-wrap: anywhere;
}

.sg-cms h3:not([class]),
.editor-block h3:not([class]),
.c-editor h3:not([class]) {
  margin-block: 2.4em 1em;
  padding-block: 0.55em;
  border-block: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  color: var(--semantic-color-text-primary);
  font-size: 1.28rem;
  font-weight: 700;
  line-height: 1.55;
}

.sg-cms h4:not([class]),
.editor-block h4:not([class]),
.c-editor h4:not([class]) {
  margin-block: 2em 0.85em;
  padding-inline-start: 0.85em;
  border-inline-start: 4px solid var(--semantic-color-accent-primary, #012758);
  color: var(--semantic-color-text-primary);
  font-size: 1.12rem;
  font-weight: 700;
  line-height: 1.55;
}

.dfc-editor-heading-line {
  border-inline-start: 6px solid var(--semantic-color-brand-primary, #0f5f80);
  padding-inline-start: .75em;
}

.dfc-editor-note,
.dfc-editor-callout {
  margin-block: var(--semantic-spacing-5, 20px);
  padding: clamp(16px, 3vw, 24px);
  border-radius: 12px;
}

.dfc-editor-note {
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  background: var(--semantic-color-bg-secondary, #faf7f0);
}

.dfc-editor-callout {
  border-inline-start: 6px solid var(--semantic-color-brand-secondary, #a27424);
  background: #fff8e8;
}

.dfc-editor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border-radius: 999px;
  padding: .75em 1.4em;
  background: var(--semantic-color-brand-primary, #0f5f80);
  color: #fff !important;
  font-weight: var(--semantic-typography-font-weight-bold, 700);
  text-decoration: none;
}

.c-tag--schedule-kansai {
  border-color: #012758;
  background: #012758;
  color: #fff;
}

.c-mypage-logout {
  width: 100%;
  margin-block-end: 12px;
}

.c-local-nav__link--danger,
.c-local-nav__link--danger .c-local-nav__text {
  color: #b11f1f;
  font-weight: 700;
}

.p-data__contents details {
  margin-block: var(--semantic-spacing-4, 16px);
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 12px;
  background: #fff;
}

.p-data__contents summary {
  cursor: pointer;
  padding: 14px 18px;
  background: #faf7f0;
  color: var(--semantic-color-brand-primary, #0f5f80);
  font-weight: var(--semantic-typography-font-weight-bold, 700);
}

.p-data__contents details > *:not(summary) {
  padding-inline: 18px;
}

.p-data__contents details > *:last-child {
  padding-block-end: 18px;
}

@media (max-width: 767.98px) {
  .sg-cms .dfc-link-card,
  .editor-block .dfc-link-card,
  .dfc-link-card {
    grid-template-columns: 1fr;
  }
}
.dfc-static__cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  border-radius: 28px;
  padding: clamp(26px, 5vw, 54px);
  color: #fff;
  background:
    linear-gradient(135deg, rgba(24, 33, 46, .94), rgba(102, 77, 30, .88)),
    var(--semantic-color-brand-primary, #1f2a37);
}
.dfc-static__cta .c-heading--md,
.dfc-static__cta a,
.dfc-static__cta a:visited {
  color: #fff;
}
.dfc-login-page__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 460px);
  gap: clamp(28px, 6vw, 72px);
  align-items: center;
}
.dfc-login-page__message {
  display: grid;
  gap: 24px;
}
.dfc-login-page__box {
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 28px;
  padding: clamp(26px, 4vw, 42px);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(250, 246, 238, .96)),
    #fff;
  box-shadow: 0 24px 80px rgba(31, 42, 55, .12);
}
.dfc-form {
  display: grid;
  gap: 12px;
}
.dfc-form__label {
  font-weight: 700;
}
.dfc-form__input {
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 14px;
  padding: 10px 14px;
  background: #fff;
  font: inherit;
}
.dfc-form__input:focus-visible {
  outline: 2px solid var(--semantic-color-brand-secondary, #a27424);
  outline-offset: 2px;
}
.dfc-form__submit {
  margin-block-start: 16px;
}
.dfc-form__row {
  display: grid;
  gap: 8px;
}
.dfc-form__label span {
  display: inline-flex;
  margin-inline-start: 8px;
  border-radius: 999px;
  padding: 2px 8px;
  color: #fff;
  background: var(--semantic-color-brand-secondary, #a27424);
  font-size: .78em;
}
.dfc-form__textarea {
  width: 100%;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 14px;
  padding: 12px 14px;
  background: #fff;
  font: inherit;
  resize: vertical;
}
.dfc-form__checkbox {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  font-weight: 700;
}
.dfc-form-alert {
  margin-block-end: 18px;
  border-radius: 14px;
  padding: 14px 16px;
  font-weight: 700;
}
.dfc-form-alert--info {
  color: #164166;
  background: #e8f3fb;
}
.dfc-form-alert--error {
  color: #7a1d25;
  background: #fae8ea;
}
.dfc-events__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin-block-end: 28px;
}
.dfc-events__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-block-end: 32px;
}
.dfc-events__filters a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 999px;
  padding-inline: 16px;
  background: #fff;
  font-weight: 700;
}
.dfc-events__filters a.is-current {
  color: #fff;
  border-color: var(--semantic-color-brand-secondary, #a27424);
  background: var(--semantic-color-brand-secondary, #a27424);
}
.dfc-events__list {
  display: grid;
  gap: 24px;
}
.dfc-event-card {
  overflow: hidden;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 24px;
  background: #fff;
}
.dfc-event-card__link {
  display: grid;
  grid-template-columns: minmax(220px, 32%) minmax(0, 1fr);
  min-height: 250px;
}
.dfc-event-card__figure {
  height: 100%;
}
.dfc-event-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dfc-event-card__body {
  display: grid;
  gap: 14px;
  align-content: center;
  padding: clamp(22px, 4vw, 38px);
}
.dfc-event-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.dfc-event-card__heading {
  font-size: clamp(1.18rem, 2vw, 1.6rem);
}
.dfc-event-card__speaker {
  color: var(--semantic-color-brand-secondary, #a27424);
  font-weight: 700;
}
.dfc-event-card__more {
  justify-self: start;
  margin-block-start: 4px;
  color: var(--semantic-color-brand-secondary, #a27424);
  font-weight: 700;
}
.dfc-request__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  gap: clamp(28px, 5vw, 56px);
  align-items: start;
  margin-block-start: 36px;
}
.dfc-request__form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 22px;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 28px;
  padding: clamp(24px, 4vw, 42px);
  background: #fff;
}
.dfc-form__row--wide {
  grid-column: 1 / -1;
}
.dfc-request__privacy {
  max-height: 220px;
  overflow: auto;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 18px;
  padding: 18px;
  background: #faf7f0;
}
.dfc-request__side {
  position: sticky;
  top: 96px;
}
.dfc-event-detail__header {
  display: grid;
  grid-template-columns: minmax(280px, 42%) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 56px);
  align-items: center;
  margin-block-end: 44px;
}
.dfc-event-detail__eyecatch {
  overflow: hidden;
  border-radius: 28px;
  background: #f3efe6;
  aspect-ratio: 4 / 3;
}
.dfc-event-detail__eyecatch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dfc-event-detail__summary {
  display: grid;
  gap: 18px;
}
.dfc-event-detail__subtitle {
  color: var(--semantic-color-brand-secondary, #a27424);
  font-size: 1.1rem;
  font-weight: 700;
}
.dfc-detail-panel {
  display: grid;
  gap: 18px;
  border: 1px solid var(--semantic-color-border-primary, #d7d0c2);
  border-radius: 24px;
  padding: clamp(22px, 4vw, 36px);
  background: #fff;
}
.dfc-detail-panel + .dfc-detail-panel {
  margin-block-start: 24px;
}
.dfc-richtext {
  line-height: 1.9;
}
.dfc-richtext > * + * {
  margin-block-start: 1em;
}
.dfc-richtext img {
  max-width: 100%;
  height: auto;
  border-radius: 16px;
}
.dfc-guests {
  display: grid;
  gap: 20px;
}
.dfc-guest {
  display: grid;
  grid-template-columns: 144px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.dfc-guest img {
  width: 144px;
  height: 144px;
  object-fit: cover;
  border-radius: 18px;
}
.dfc-apply-panel {
  gap: 16px;
}
.dfc-companion-rows {
  display: grid;
  gap: 10px;
}
.dfc-companion-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 900px) {
  .l-content-with-side {
    grid-template-columns: 1fr;
  }
  .p-article__side {
    position: static;
    order: 2;
    margin-block-start: var(--layout-gap-lg, 32px);
  }
  .p-article__body {
    order: 1;
  }
  .p-notice__detail .l-detail__body,
  .p-presentation__detail .l-detail__body {
    display: flex;
    flex-direction: column;
  }
  .p-notice__detail .l-detail__content,
  .p-presentation__detail .l-detail__content {
    order: 1;
  }
  .p-notice__detail .l-detail__body > .c-local-nav,
  .p-presentation__detail .l-detail__body > .c-local-nav {
    order: 2;
    margin-block-start: var(--layout-gap-lg, 32px);
  }
  .dfc-dashboard-grid {
    grid-template-columns: 1fr;
  }
  .dfc-static__grid,
  .dfc-static__benefits,
  .dfc-login-page__layout {
    grid-template-columns: 1fr;
  }
  .dfc-static__cta {
    grid-template-columns: 1fr;
  }
  .dfc-events__intro,
  .dfc-event-card__link,
  .dfc-request__layout,
  .dfc-request__form {
    grid-template-columns: 1fr;
  }
  .dfc-event-card__figure {
    aspect-ratio: 16 / 10;
  }
  .dfc-request__side {
    position: static;
  }
  .dfc-event-detail__header,
  .dfc-guest,
  .dfc-companion-row {
    grid-template-columns: 1fr;
  }
  .dfc-guest img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }
}

.p-top-about__links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.p-top-about__links .c-button {
  min-width: 0;
  width: 100%;
  padding-inline: 12px;
  font-size: 14px;
  white-space: normal;
  text-align: center;
  justify-content: center;
}
.p-top-about__links .c-button__text {
  min-width: 0;
  font-size: inherit;
  line-height: 1.5;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.page-top .p-top-about__links > .c-button.c-button--primary {
  min-width: 0;
}
.p-lecturer__date,
.p-lecturer__topic {
  margin-block-start: 12px;
  overflow-wrap: anywhere;
}
.p-lecturer__topic b {
  display: block;
  margin-block-end: 4px;
}
.p-voice-introduction {
  margin-block-end: var(--layout-gap-lg, 32px);
}
@media (max-width: 767px) {
  .p-top-about__links {
    gap: 8px;
  }
  .p-top-about__links .c-button {
    min-height: 64px;
    padding-inline: 8px;
    font-size: 12px;
  }
  .p-top-speakers {
    display: flex;
  }
  .p-top-speakers__slider.swiper {
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
  }
  .p-top-speakers__slider .swiper-wrapper {
    width: max-content;
    gap: 16px;
  }
  .p-top-speakers__slider.swiper .swiper-slide {
    width: calc(256px * 2 / 3);
    scroll-snap-align: start;
  }
}

@media (max-width: 460px) {
  .page-voice .p-article__body.c-editor table {
    border-bottom: 1px solid #012758;
  }
  .page-voice .p-article__body.c-editor table th,
  .page-voice .p-article__body.c-editor table td {
    display: block;
    box-sizing: border-box;
    width: 100% !important;
  }
  .page-voice .p-article__body.c-editor table th {
    padding: 10px 0;
    color: #012758;
    border-top: 1px solid #012758;
    border-bottom: 1px solid #ddd;
  }
  .page-voice .p-article__body.c-editor table td {
    padding: 10px 0;
    border: 0;
  }
}
