@charset "utf-8";

/* =================================
    Base Styles (必須指定の取り込み)
   ================================= */
body {
  font-family:
    "Noto Sans JP",
    -apple-system,
    BlinkMacSystemFont,
    "Hiragino Sans",
    "Hiragino Kaku Gothic ProN",
    "Helvetica Neue",
    Arial,
    "Yu Gothic",
    "Yu Gothic Medium",
    Meiryo,
    sans-serif;
  letter-spacing: normal;
  line-height: 1.5;
  margin: 0 auto;
  color: #333; /* デフォルトテキスト色 */
}

a {
  color: #000000;
  text-decoration: none;
  transition: all 0.3s ease;
}

a:hover {
  color: #5957c4;
  text-decoration: underline;
}

a:active {
  color: #5957c4;
  opacity: 0.8;
}

img {
  /* image-rendering: auto;
  image-rendering: smooth;
  image-rendering: -webkit-optimize-contrast;
  width: 100%;
  height: auto;
  display: block; */
  max-width: 100%;
  height: auto;
  vertical-align: bottom; /* 画像の下にできる謎の隙間を消す */
}

/* ===============================================
       header
  =============================================== */
#header {
  position: fixed;
  width: 100%;
  left: 0;
  top: 0;
  z-index: 60;
  box-shadow: 0px 5px 10px #3d40c615;
}

#header .headerlogo img {
  width: 120px;
}

@media screen and (max-width: 480px) {
  #header .headerlogo img {
  width: 100px;
}
}

/* =================================
     Variables (Liquid Design & Colors)
   ================================= */

:root {
  --grad-heading:linear-gradient(90deg, #5957C4 0%, #A757C4 50%, #FFBB00 100%);
;
  --bg-light: #f4f7fa;
  --headling_color: #5957c4;

  /* Liquid Spacing */
  --space-section: clamp(20px, 6.5vw, 36px);
  --space-inner: clamp(15px, 4vw, 40px);
  --space-KV: clamp(86px, 9vw, 100px);

  /* Liquid Typography */
  --fz-h2: clamp(1.5rem, 0.8rem + 2vw, 2rem);
  --fz-body: clamp(1rem, 0.9rem + 0.5vw, 1.125rem);
  --fz-serviceCompany: clamp(18px, 0.9rem + 1.9vw, 21px);
  --fz-caption: 14px;

  /* session:名前: SP 20px 〜 PC 24px */
  --fz-speaker-name: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);

  /* session:かな名/役職: SP 14px 〜 PC 16px */
  --fz-speaker-label: clamp(0.875rem, 0.8rem + 0.3vw, 1rem);
}
/* =================================
     Layout Components
   ================================= */

#lp_conference .inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 var(--space-inner);
}

#lp_conference .section {
  padding: var(--space-section) 0;
}

/* =================================
     Common Section Heading (Center Alignment)
   ================================= */

.section {
  padding: var(--space-section) 0;
  text-align: center; /* セクション内の要素を基本的に中央揃えに */
}

section.fv {
    padding-top: var(--space-KV) !important;
    padding-bottom: 0 !important;
}

.section__heading {
  display: inline-block;
  margin: 0 auto clamp(25px, 5vw, 32px);
  font-size: var(--fz-h2);
  font-weight: bold;
  color: #fff;
  padding: 0.2em 0.9em;
  border-radius: 4px;

  /* グラデーション指定：左・中・右 */
  background: linear-gradient(90deg, #5957C4 0%, #A757C4 50%, #FFBB00 100%);

  /* アニメーションさせる場合は背景サイズを大きくします */
  background-size: 200% auto;
  background-position: right center;
  transition: all 0.8s ease;
}

.section__heading--subtitle {
  display: block;
  position: relative;
  width: fit-content;
  margin: clamp(24px, 4vw, 40px) auto;
  font-size: clamp(1.5rem, 1.25rem + 1.1vw, 2rem);
  font-weight: bold;
  color: #5957C4;
  background: none;
  padding: 0 0 10px;
}

.mb24{
  margin-bottom: 24px;
}

/* 下のグラデーション罫線 */
.section__heading--subtitle::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 5px;                  /* 線の太さ 5px */
  background: linear-gradient(90deg, #5957C4 0%, #A757C4 50%, #FFBB00 100%);
}

/* スクロール時のアニメーション */
.section__heading.is-active {
  animation: headingFlow 1.5s ease-out forwards;
}

@keyframes headingFlow {
  0% { background-position: 200% center; }
  100% { background-position: 0% center; }
}

/* Conceptセクションだけは特殊だったので上書き */
.concept {
  background: url(../images/lp_conference__conceptph--Bgpc.jpg) no-repeat bottom #0c153a;
  background-size: cover;
  color: #ffffff;
}

.concept__wrapper{
  display: flex;
  flex-direction: column;
  align-items: center;
}

.concept__heading {
  width: 100%;
  max-width:241px;
  margin-bottom: 40px;
}

.concept__heading span{
  font-size: clamp(18px, 2.1vw, 24px);
}

.concept__heading.section__heading {
  background: #ffffff;
  color: #0c153a;
}

/* =================================
    メディアクエリ
   ================================= */
@media screen and (max-width: 768.98px) {
      .concept__wrapper .concept__heading{
        display: flex;
        flex-direction:column;
}
  .concept__heading {
    margin-bottom: 24px;
  }

    .concept__wrapper .concept__heading img{
        width: 60%;
        max-width: 150px;
        margin: 0 auto;
        height: auto;
}
}

/* =================================
    Components
   ================================= */
.btn-cta {
  position: relative;
  border-radius: 40px;
  background: linear-gradient(40deg, rgb(255, 68, 0) 0%, rgb(251, 141, 12) 100%);
  color: #ffffff;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  cursor: pointer;
  text-decoration: none;
}

.btn-cta::after{
  content: '';
  position: absolute;
  top: 50%;
  right: 10px;
  width: 32px;
  height: 32px;
  transform: translateY(-50%);
  background: url(../images/lp_conference__icn--arrow.svg) no-repeat center center /contain;
}

.btn-cta:hover {
  color: #ffffff !important;
  text-decoration: none;
  box-shadow: 0px 5px 15px rgba(255, 68, 0, 0.4);
}

.btn-cta:active {
  transform: translateY(2px);
}

/* サイズ展開：ヘッダー用 */
.btn-cta--header {
  font-size: 16px;
  padding: 5px 42px 5px 20px;
}

/* サイズ展開：KV用 */
.btn-cta--kv {
  font-size: clamp(21px, 2.1vw, 24px); /* 画面幅に応じて可変 */
  padding: 15px 50px;
}

/*表示非表示*/
@media screen and (min-width: 769px) {
  .pc-only{
    display: block;
  }
  .sp-only{
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .pc-only{
    display: none;
  }
  .sp-only{
    display: block;
  }
}

/* =================================
    KV
   ================================= */
.fv {
    background: url('../images/lp_conference__KVph--Bgpc.jpg') no-repeat center center / cover;
    padding: var(--space-KV) 0 80px;
    text-align: center;
}

.fv__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* 1. タイトル・リード */
.fv__title {
    max-width: min(90%, 800px);
    margin: 0 auto 16px;
}
.fv__lead {
    font-size: clamp(18px, 1.5vw, 22px);
    margin-bottom: 16px;
}

/* 2. 日時エリア */
.fv__date-area {
    margin-bottom: clamp(16px, 2.1vw, 24px);
}
.fv__year{
    width: 100%;
    max-width: min(80%, 297px);
}

.fv__time{
    width: 100%;
    max-width: min(90%, 256px);
}

.fv__date-flex {
    display: inline-flex;
    align-items: center;
    gap: 30px;
}
.fv__time-box {
    text-align: left;
}
.fv__at {
    display: block;
    font-size: 20px;
    font-weight: bold;
}

/* 3. ゲストエリア（PC） */
.fv__guest-section {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    width: 100%;
    max-width: 1000px;
    /* margin-bottom: 60px;
    padding-bottom: 20px; */
}

/* ゲスト写真の配置調整 */
.fv__guest-images img {
    width: 100%;
    /* max-width: clamp(340px, 80vw, 787px); */
    max-width: min(90%, 787px);
    height: auto;
    margin: 0 auto;
    display: block;
}

@media screen and (max-width: 768.98px) {
  .fv__guest-images img {
    margin-bottom: 32px;
  }
}

/* 4. CTAボタン（透過 0.8 / センター） */
.fv__btn-wrap {
    width: 100%;
    padding: 20px 0;
    display: flex;
    justify-content: center;
    background-color: rgba(255, 255, 255, 0.8);
}

.fv__btn {
    opacity: 0.8; /* 背景が透ける指定 */
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.fv__btn:hover {
    opacity: 1.0;
    transform: translateY(-3px);
}

/*日時・場所をセンター合わせ*/
@media screen and (max-width: 768px) {
  .fv__time-box {
    text-align: center;
}
}

/* =================================
    SP Media Query
   ================================= */
@media screen and (max-width: 768px) {
    .fv {
        background: url('../images/lp_conference__KVph--Bgsp.jpg') no-repeat center center / cover;
    }

    .fv__date-flex {
        flex-direction: column;
        gap: 10px;
    }

    .fv__guest-section {
        flex-direction: column;
        align-items: center;
    }
}
/* =================================
    recommend
   ================================= */
.recommend__list {
  display: flex;
  gap: 20px;
}

.recommend__item {
  flex: 1;
  background: #fff;
  border-radius: 12px;
  text-align: center;
}

.session-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  background: #fff;
  border-radius: 20px;
  padding: clamp(16px, 5vw, 48px);
  gap: 40px;
}

.booth_session-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  background: #fff;
  border-radius: 20px;
  padding: 24px 48px;
  gap: 40px;
}

.session-card__body {
  flex: 1;
  text-align: left;
}

.session-card_label__wrapper{
  display: flex;
  flex-direction: column;
}

.session-card__label {
  display: inline-block;
  width: 100%;
  max-width: min(90%, 270px);
  margin-bottom: 10px;
}

.session-card__label__time {
  display: inline-block;
  color: #ffffff;
  font-size: clamp(21px, 2.1vw, 24px);
  margin-bottom: 10px;
  background: var(--grad-heading);
  padding: 2px 10px;
  max-width: 276px;
}

.session-card__title {
  font-size: clamp(1.2rem, 2vw, 1.8rem);
  color: #333;
  font-weight: 700;
  margin-bottom: 20px;
  line-height: 1.4;
}

.session-card__speaker-info {
  margin-bottom: 8px;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.session-card__speaker-name {
  font-size: var(--fz-speaker-name);
  font-weight: bold;
  color: #000000;
}

.session-card__speaker-kana {
  font-size: var(--fz-speaker-label);
  color: #000000;
  font-weight: normal;
}

.session-card__speaker-career {
  display: inline-block;
  font-size: var(--fz-speaker-label);
  color: #000000;
  font-weight: normal;
  margin-bottom: 16px;
}

/* --- 右側：人物画像エリア --- */
@media screen and (max-width: 768.98px) {
  .session-card__img {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
    display: block;
  }

  .session-card__figure {
    order: 1;
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }
}

.session-card__img-wrapper {
  position: relative;
  width: 100%;
  box-sizing: border-box;
}

.session-card__img {
  width: 100%;
  max-width: 382px;
  height: 100%;
  object-fit: cover;
  background: #fff;
}

@media screen and (max-width: 768.98px) {

  .session-card {
    flex-direction: column; /* 縦並びに変更 */
    gap: 8px;
    text-align: center;
  }

  .session-card__body {
    order: 2;
  }

  .session-card__figure {
    order: 1;
    width: 100%;
    margin: 0 auto;
  }

  .booth_session-card {
  padding: 24px 0;
}
}

@media screen and (max-width: 480px) {
  .session-card_label__wrapper{
  align-items: center;
}

.session-card__label__time {
  width: 100%;
  max-width: 100%;
}

.speaker-profile {
    text-align: center;
}

.speaker-profile .speaker-profile__content{
    text-align: left;
}

}

/* =================================
  Speaker Profile Accordion
   ================================= */
.speaker-profile {
    margin-bottom: 20px;
}

/* チェックボックスは隠す */
.speaker-profile__checkbox {
    display: none;
}

.speaker-profile__button {
    display: inline-block;
    padding: 8px 35px 8px 16px;
    background: #ffffff;
    border: 2px solid #5957c4;
    color: #5957C4;
    font-size: 0.9rem;
    font-weight: bold;
    border-radius: 20px;
    cursor: pointer;
    position: relative;
    transition: background 0.3s ease;
}

.speaker-profile__button::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 15px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #5957C4;
    border-right: 2px solid #5957C4;
    transform: translateY(-70%) rotate(135deg);
    transition: transform 0.3s ease;
}

.speaker-profile__checkbox:checked + .speaker-profile__button::after {
    transform: translateY(-30%) rotate(-45deg);
}

.speaker-profile__content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease-out;
    overflow: hidden;
}

.speaker-profile__inner {
    min-height: 0;
}

.speaker-profile__text {
    padding: 16px 0;
    font-size: 0.9rem;
    color: #000000;
    margin-top: 8px;
}

.speaker-profile__checkbox:checked + .speaker-profile__button + .speaker-profile__content {
    grid-template-rows: 1fr;
}

/* =================================
   Concept Section (特定デザインの適用)
   ================================= */

/* Concept専用の見出しスタイル */
.concept__heading.section__heading {
    background: #ffffff;
    color: #0c153a;
    background-size: 100% 100%;
}

 .concept__text {
        text-align: center;
        line-height: 2.0;
        font-size: 18px;
    }

/* 768px以下の調整 */
@media screen and (max-width: 768.98px) {
    .concept__text {
        display: inline-block;
        text-align: left;
        font-size: 16px;
    }
}

/* =================================
   Recommend Section (詳細デザイン反映)
   ================================= */

.recommend__wrapper {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 15px;
  box-shadow: 0 4px 20px rgba(89, 87, 196, 0.1);
  padding: clamp(30px, 5vw, 60px) 72px;
}

.recommend__list {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    /* margin-top: 40px; */
}

.recommend__item {
    flex: 1;
}

.recommend__item-title {
    font-size: 1.1rem;
    font-weight: bold;
    color: #5957C4;
    line-height: 1.5;
    margin-bottom: 16px;
    margin-top: 16px;
    min-height: 3em;
    display: flex;
    align-items: center;
    text-align: left;
}

.recommend__item-desc {
    font-size: 0.9rem;
    line-height: 1.7;
    color: #333;
    text-align: left;
}

@media screen and (max-width: 768.98px) {
  .recommend__item-title {
    min-height: 1em;
}
}

/* =================================
   timeTable__wrapper Section (詳細デザイン反映)
   ================================= */
.timeTable__wrapper {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 15px;
  box-shadow: 0 4px 20px rgba(89, 87, 196, 0.1);
  padding: clamp(30px, 5vw, 60px) 20px;
}

/* =================================
   Responsive
   ================================= */

@media screen and (max-width: 768.98px) {
  .recommend__wrapper {
  padding: clamp(30px, 5vw, 60px) 32px;
}

  .recommend__list {
    flex-direction: column;
    align-items: center;
  }

  .recommend__item {
    flex: 1 1 auto;
    width: 100%;
    margin-bottom: 40px;
  }

  .recommend__item:last-child {
    margin-bottom: 0;
  }
}

/* =================================
   Service Section (Booth & Companies)
   ================================= */
.service__wrapper {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 15px;
  box-shadow: 0 4px 20px rgba(89, 87, 196, 0.1);
  padding: clamp(30px, 5vw, 60px) 24px;
}

.service__map-wrapper {
    background: #f8f9fc;
    padding: clamp(20px, 4vw, 40px);
    border-radius: 15px;
    margin-bottom: clamp(40px, 8vw, 80px);
}

.service__list {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
}

.service-card {
    flex: 0 1 calc(50% - 15px);
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 3px solid #e9e9f8;
    border-radius: 10px;
    padding: 24px;
    box-sizing: border-box;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-card__logo {
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}

.service-card__logo img {
    max-width: min(90%, 360px);
    width: auto;
    height: auto;
    object-fit: contain;
}

.service-card__name {
    font-size: var(--fz-serviceCompany);
    font-weight: bold;
    color: var(--headling_color);
    margin-bottom: 16px;
}

.service-card__text {
    font-size: var(--fz-body);
    line-height: 1.7;
    color: #555;
    text-align: left;
}
@media screen and (max-width: 768.98px) {
  .service-card__logo {
        /* width: 60%;
        max-width: 150px; */
        margin: 0 auto;
        height: auto;
        width: 100%;
        display: block;
    }
}

/* =================================
   Benefit Section (来場特典)
   ================================= */

.benefit__container {
    padding: 32px var(--space-inner);
    text-align: center;
    margin-top: 32px;
    background: #f5f5fb;
    width:  100%;
}
.benefit__main-title {
    width: 100%;
    font-weight: bold;
    margin-bottom: 40px;
    position: relative;
    display: inline-block;
}

.benefit__content {
    display: flex;
    align-items: flex-start;
    gap: clamp(20px, 5vw, 50px);
    text-align: left;
}

.benefit__image {
    flex: 0 0 278px;
}

.benefit__quo-card {
    max-width: min(100%, 278px);
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.benefit__body {
    flex: 1;
}

.benefit__badge {
    display: inline-block;
    background: var(--grad-heading);
    color: #fff;
    padding: 4px 15px;
    border-radius: 4px;
    font-size: 1.25rem;
    font-weight: bold;
    position: relative;
}


.benefit__badge::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    border-style: solid;
    border-width: 8px 6px 0 6px;
    border-color: #a657c4 transparent transparent transparent;
}

.benefit__title {
    font-size: clamp(24px, 2.9vw, 32px);
    font-weight: bold;
    margin-bottom: 20px;
    margin-top:8px;
}

.benefit__text {
    font-size: 0.95rem;
    line-height: 1.8;
    color: #444;
    margin-bottom: 20px;
}

.benefit__notes {
    font-size: 0.8rem;
    color: #666;
    line-height: 1.6;
}

/* スマホ対応 */
@media screen and (max-width: 768.98px) {
    .benefit__content {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }
    .benefit__image {
        flex: 0 0 auto;
        margin-bottom: 30px;
    }
    .benefit__main-title {
      width: 100%;
      max-width: 257px;
}
}
/* =================================
   Responsive (768.98px以下)
   ================================= */
@media screen and (max-width: 768.98px) {
    .service-card {
        flex: 1 1 100%; /* スマホでは1列（横幅いっぱい） */
        padding: 20px;
    }

    .service-card__logo {
        /* height: 60px; */
        margin-bottom: 16px;
    }
}

/* =================================
   Contact Section
   ================================= */
.contact {
  background-color: #FAFBFC; /* 背景色が必要な場合は変更してください */
}
.contact__caption-wrapper{
  margin: 0 auto;
  margin-bottom: clamp(24px, 3.6vw, 40px);
  text-align: left;
  max-width: 800px;
  width :100%;
  padding: 0 32px;
}
.contact__caption-wrapper li{
  position:relative;
  padding-left: 15px;
  margin-bottom: 8px;
}

.contact__caption-wrapper li::before{
  position: absolute;
  left: 0;
  top: 0.85em;
  transform: translateY(-50%);
  content: '';
  display: inline-block;
  width:8px;
  height:8px;
  border-radius: 50%;
  background: #5957c4;
  margin-right:10px;
}

#pardot-form iframe{
  min-height: 1000px !important;
  height: 100% !important;
}

/* =================================
  AccessInfo Section
   ================================= */
.accessInfo__wrapper {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 15px;
  box-shadow: 0 4px 20px rgba(89, 87, 196, 0.1);
  padding: clamp(30px, 5vw, 60px) 20px;
}

.accessInfo__container {
    background: #fff;
    border-radius: 15px;
    overflow: hidden;
    margin-top: 20px;
}

.accessInfo__content {
    padding: 0;
    text-align: left; /* コンテンツは左寄せ */
}

.accessInfo__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.accessInfo__item {
    display: flex;
    align-items: center;
    gap: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
}

/* .accessInfo__item:last-child {
    border-bottom: none;
} */

/* 青背景のラベル */
.accessInfo__label {
    flex: 0 0 120px; /* 幅を固定 */
    color:#5957c4;
    font-weight: bold;
    font-size: 1.15rem;
    padding: 5px 10px;
    text-align: left;
    border-radius: 4px;
}

.accessInfo__data {
    flex: 1;
    font-size: var(--fz-body);
    line-height: 1.6;
    color: #333;
    margin: 0;
}

.accessInfo__data ul{
  margin-top: 16px;
}

.accessInfo__data li{
  position:relative;
  padding-left: 15px;
  margin-bottom: 8px;
}

.accessInfo__data li::before{
  position: absolute;
  left: 0;
  top: 0.85em;
  transform: translateY(-50%);
  content: '';
  display: inline-block;
  width:8px;
  height:8px;
  border-radius: 50%;
  background: #5957c4;
  margin-right:10px;
}

.accessInfo__map {
    width: 100%;
    height: 420px; /* ここが 0px になっていないか */
    background: #eee; /* 地図が読み込まれるまでグレーに見えるはずです */
    display: block;   /* 非表示になっていないか */
}

.accessInfo__map iframe {
    width: 100% !important;
    height: 100% !important;
}

/* =================================
    Responsive Design
   ================================= */
@media screen and (max-width: 480px) {
    .accessInfo__item {
        /* flex-direction: column; */
        gap: 10px;
    }

    .accessInfo__label {
        flex: 0 0 auto;
        width: 100px;
    }

    .accessInfo__map {
        height: 300px; /* スマホでは高さを少し抑えるのが一般的です */
    }
}

/* =================================
   pageTop
   ================================= */
.pageTop {
    position: fixed;
    right: 24px !important;
    bottom: 24px;
    width: 80px;  /* カンプ画像に合わせて少し大きめ */
    height: 80px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.4s ease; /* 変化を滑らかに */
    z-index: 999;
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(89, 87, 196, 0.15); /* 青みがかった影 */
    z-index: 999; /* 最前面に表示 */
    transition: all 0.3s ease;
}

/* 上向き矢印（SVGがなければCSSで描画） */
.pageTop__arrow {
    width: 12px;
    height: 12px;
    border-top: 2px solid #5957C4; /* サイトのテーマカラー */
    border-right: 2px solid #5957C4;
    transform: rotate(-45deg);
    margin-bottom: 5px;
    margin-top: 8px;
}

/* TOPという文字 */
.pageTop__text {
    color: #5957C4;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-decoration: none;
}

/* ホバー演出 */
.pageTop:hover {
    transform: translateY(-5px); /* 少し上に浮く */
    box-shadow: 0 8px 30px rgba(89, 87, 196, 0.25);
    background-color: #f8f9ff;
    text-decoration: none;
}

.pageTop.is-show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* スマホでは少し小さくする */
@media screen and (max-width: 768px) {
    .pageTop {
        right: 16px;
        bottom: 16px;
        width: 60px;
        height: 60px;
    }
    .pageTop__arrow {
        width: 10px;
        height: 10px;
        margin-top: 5px;
    }
    .pageTop__text {
        font-size: 10px;
    }
}

html { scroll-behavior: smooth; }

/* =================================
    Responsive Design (Media Queries)
   ================================= */

/* Tablet (max-width: 768.98px) */
@media screen and (max-width: 768.98px) {
  .recommend__list,
  .session-card {
    flex-direction: column;
    margin-bottom: 32px;
  }

  .session-card {
    flex-direction: column; /* 画像が上に来るように調整 */
    padding: 0;
  }

}

/* =================================
   コンテンツの背景
   ================================= */
   .lp__conference--container{
    background: url(../images/lp_conference__img--contentsBg.svg) repeat-y top center;
   }

/* =================================
   フッターのリンク
   ================================= */
   .footertit a{
    color: #ffffff;
   }

   .footertit a:hover{
    text-decoration: underline;
   }

/* =================================
   サンクスページ
================================= */
  .thanks {
    background-color: #0c153a;
    color: #ffffff;
  }

  .thanks__heading{
  margin: 0 auto clamp(25px, 5vw, 32px);
  font-size: var(--fz-h2);
  font-weight: bold;
  color: #fff;
  padding: 0.2em 0.9em;
  }

  .thanks__text{
    font-size: 18px;
  }

  @media screen and (min-width: 769px) {
    .thanks__heading .pc-only{
      display: none;
    }
  }

  @media screen and (max-width: 768.98px) {
    .thanks__heading .sp-only{
      display: block;
    }
  }

  /* =================================
   終了時
================================= */
.section__subHeading{
  font-size: clamp(21px, 2.9vw, 24px);
  font-weight: 700;
  text-align:center;
}

.subHeading-box{
  background: #fff;
  padding: 20px 40px;
  margin:0 auto;
  margin-bottom: 56px;
}

@media screen and (min-width: 481px) {
  .section__subHeading .sp-only{
    display: none;
  }
}