@charset "UTF-8";
/* 変数・関数・ミックスイン（style.scss と editor.scss で共用） */
/* ===========================================================
   megwel theme / 変数・ミックスイン
   デザイン基準幅：1440px（コンテンツ幅 1160px）
   =========================================================== */
/* 英字見出し用（Tenor Sans は Regular 400 のみ。和文は Noto Sans JP にフォールバック） */
/* 文字サイズを 375px〜1366px の画面幅で比例させる（両端は最小・最大で固定）
   1366px はデザインデータ（Illustrator）のアートボード幅。これ以上は指定値そのまま。
   例：font-size: fluid(14, 18);  → 375px で 14px、1366px 以上で 18px */
/* タブレットのみ（769〜1080px） */
/* ヘッダーをハンバーガーに切り替える幅（タブレット縦でナビが窮屈になるため 960px 以下） */
/* ===========================================================
   ベース
   =========================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  color: #333333;
  background: #fff;
  letter-spacing: 0.02em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

ul,
ol,
li {
  list-style: none;
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6, p, figure, dl, dd {
  margin: 0;
}

/* 改行の最後に 1〜2 文字だけ残るのを防ぐ（対応ブラウザのみ） */
h1, h2, h3, h4, p, li, dd {
  text-wrap: pretty;
}

/* 見出しは文節で改行（Chrome / Edge） */
h1, h2, h3, h4 {
  word-break: auto-phrase;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.3s, color 0.3s, background 0.3s, box-shadow 0.3s;
}
a:hover {
  opacity: 0.75;
}

button {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  cursor: pointer;
}

.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

@media (max-width: 768px) {
  .dis-pc {
    display: none !important;
  }
}

.dis-sp {
  display: none !important;
}
@media (max-width: 768px) {
  .dis-sp {
    display: block !important;
  }
}

.font-en {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
}

/* オレンジのグラデーション文字 */
.grad-text {
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* ===========================================================
   共通ボタン
   =========================================================== */
/* 白い角丸ボタン（右にドット） */
.btn-round {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 400px;
  max-width: 100%;
  min-height: 63px;
  padding: 14px 60px 14px 34px;
  border-radius: 999px;
  background: #fff;
  color: #DE5C14;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.08);
}
.btn-round:hover {
  opacity: 1;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.16);
  transform: translateY(-2px);
}
.btn-round__dot {
  position: absolute;
  top: 50%;
  right: 24px;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 50%;
  background: #DEDDE1;
}
.btn-round {
  /* ABOUT セクション内は文字がネイビー・ドットがブルー */
}
.btn-round--about {
  color: #354A60;
}
.btn-round--about .btn-round__dot {
  background: #377E9B;
}
@media (max-width: 768px) {
  .btn-round {
    width: 100%;
    max-width: min(340px, 100%); /* 狭い画面（320px 等）でもはみ出さない */
    min-height: 56px;
    padding: 12px 48px 12px 24px;
    font-size: 15px;
  }
  .btn-round__dot {
    right: 20px;
    width: 12px;
    height: 12px;
    margin-top: -6px;
  }
}

/* オレンジグラデーションの塗りボタン */
.btn-fill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 360px;
  max-width: 100%;
  min-height: 86px;
  padding: 12px 24px;
  border-radius: 999px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.btn-fill img {
  width: 31px;
  height: auto;
}
.btn-fill:hover {
  opacity: 1;
  box-shadow: 0 6px 22px rgba(219, 60, 20, 0.35);
  transform: translateY(-2px);
}
@media (max-width: 768px) {
  .btn-fill {
    width: 100%;
    min-width: 260px;
    max-width: 320px;
    min-height: 70px;
    font-size: 16px;
  }
  .btn-fill img {
    width: 26px;
  }
}

/* ===========================================================
   ページトップ
   =========================================================== */
.pagetop {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  width: 52px;
  height: 52px;
  border: none;
  border-radius: 50%;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.pagetop::before {
  content: "";
  position: absolute;
  top: 22px;
  left: 50%;
  width: 12px;
  height: 12px;
  margin-left: -6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(-45deg);
}
.pagetop.is-show {
  opacity: 1;
  visibility: visible;
}
@media (max-width: 768px) {
  .pagetop {
    right: 16px;
    bottom: 16px;
    width: 44px;
    height: 44px;
  }
  .pagetop::before {
    top: 19px;
    width: 10px;
    height: 10px;
    margin-left: -5px;
  }
}

/* 動きを減らす設定の環境ではアニメーションを無効化 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* 部分ファイル */
/* ===========================================================
   ヘッダー
   =========================================================== */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  /* 常に透過 */
  background: rgba(255, 255, 255, 0.7);
  /* ドロワーを開いている間は透けさせない */
}
.is-drawer-open .header {
  background: rgb(255, 255, 255);
}
.header {
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
.header__inner {
  display: flex;
  align-items: stretch;
  height: 112px;
  padding-left: 32px;
}
@media (max-width: 1080px) {
  .header__inner {
    height: 88px;
    padding-left: 20px;
  }
}
@media (max-width: 960px) {
  .header__inner {
    height: 64px;
    padding-left: 16px;
    align-items: center;
    justify-content: space-between;
  }
}
.header__logo {
  display: flex;
  align-items: center;
}
.header__logo a {
  display: block;
  padding: 10px 0;
}
.header__logo img {
  width: 234px;
}
@media (max-width: 1080px) {
  .header__logo img {
    width: 200px;
  }
}
@media (max-width: 960px) {
  .header__logo img {
    width: 168px;
  }
}
.header {
  /* 資料請求（右端のオレンジブロック） */
}
.header__contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 112px;
  flex: 0 0 112px;
  margin-left: 53px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.header__contact img {
  width: 22px;
}
.header__contact:hover {
  opacity: 0.88;
}
@media (max-width: 960px) {
  .header__contact {
    display: none;
  }
}
@media (max-width: 1080px) {
  .header__contact {
    width: 92px;
    flex-basis: 92px;
    margin-left: 24px;
    font-size: 12px;
  }
  .header__contact img {
    width: 19px;
  }
}

/* グローバルナビ */
.gnav {
  display: flex;
  align-items: center;
  margin-left: auto;
}
@media (max-width: 960px) {
  .gnav {
    display: none;
  }
}
.gnav__menu {
  display: flex;
  align-items: center;
  gap: 50px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
@media (max-width: 1080px) {
  .gnav__menu {
    gap: 26px;
    font-size: 14px;
  }
}
.gnav__menu li > a {
  position: relative;
  display: block;
  padding: 4px 0;
}
.gnav__menu li > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #DE5C14;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s;
}
.gnav__menu li > a:hover {
  opacity: 1;
  color: #DE5C14;
}
.gnav__menu li > a:hover::after {
  transform: scaleX(1);
}
.gnav__menu {
  /* 現在ページ */
}
.gnav__menu .current-menu-item > a,
.gnav__menu .current_page_item > a {
  color: #DE5C14;
}

/* ハンバーガー */
.hamburger {
  display: none;
  position: relative;
  z-index: 120;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
}
@media (max-width: 960px) {
  .hamburger {
    display: block;
  }
}
.hamburger span {
  position: absolute;
  left: 11px;
  width: 22px;
  height: 2px;
  background: #333333;
  transition: transform 0.3s, opacity 0.3s;
}
.hamburger span:nth-child(1) {
  top: 15px;
}
.hamburger span:nth-child(2) {
  top: 21px;
}
.hamburger span:nth-child(3) {
  top: 27px;
}
.hamburger.is-open span {
  background: #333333;
}
.hamburger.is-open span:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.hamburger.is-open span:nth-child(2) {
  opacity: 0;
}
.hamburger.is-open span:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* ===========================================================
   ドロワー（SP メニュー）
   =========================================================== */
.drawer {
  position: fixed;
  top: 64px;
  left: 0;
  z-index: 110;
  width: 100%;
  height: calc(100vh - 64px);
  padding: 32px 24px 60px;
  background: #fff;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity 0.3s, visibility 0.3s, transform 0.3s;
  display: none;
}
@media (max-width: 960px) {
  .drawer {
    display: block;
  }
}
.drawer.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.drawer__nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.drawer__menu {
  width: 100%;
  margin-bottom: 24px;
}
.drawer__menu li {
  border-bottom: 1px solid #E6E6E6;
}
.drawer__menu li:first-child {
  border-top: 1px solid #E6E6E6;
}
.drawer__menu a {
  display: block;
  padding: 18px 8px;
  font-size: 16px;
  font-weight: 500;
}
.drawer__contact {
  margin: 0 auto;
}

/* ===========================================================
   TOP ページ
   =========================================================== */
/* -----------------------------------------------------------
   HERO
   --------------------------------------------------------- */
.hero {
  position: relative;
  /* 写真の頭を透過ヘッダーの下に潜らせる（見えている高さは従来どおり） */
  margin-top: -112px;
  padding-top: 112px;
  height: calc(48.4vw + 112px);
  max-height: calc(700px + 112px);
  min-height: calc(420px + 112px);
  background-image: url(../images/top/hero.jpg);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  /* SP：見出しがグローブの写真に重なるため、左側に白いグラデーションを敷く */
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.82) 0%, rgba(255, 255, 255, 0.55) 48%, rgba(255, 255, 255, 0) 72%);
  opacity: 0;
  pointer-events: none;
}
@media (max-width: 768px) {
  .hero::before {
    opacity: 1;
  }
}
.hero__inner {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-bottom: 130px;
}
@media (max-width: 768px) {
  .hero__inner {
    padding-bottom: 40px;
  }
}
.hero__logo img {
  width: 230px;
}
@media (max-width: 1080px) {
  .hero__logo img {
    width: 200px;
  }
}
@media (max-width: 480px) {
  .hero__logo img {
    width: 160px;
  }
}
.hero__title {
  margin-top: 33px;
  font-size: clamp(21px, 16.081px + 1.312vw, 34px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: #2B2B2B;
}
@media (max-width: 768px) {
  .hero__title {
    margin-top: 22px;
  }
}
@media (max-width: 1080px) {
  .hero {
    margin-top: -88px;
    padding-top: 88px;
    height: calc(48.4vw + 88px);
    max-height: calc(700px + 88px);
    min-height: calc(420px + 88px);
  }
}
@media (max-width: 960px) {
  .hero {
    margin-top: -64px;
    padding-top: 64px;
    height: calc(48.4vw + 64px);
    max-height: calc(700px + 64px);
    min-height: calc(420px + 64px);
  }
}
@media (max-width: 768px) {
  .hero {
    height: calc(78vw + 64px);
    min-height: calc(380px + 64px);
    background-position: 68% center;
  }
}

/* -----------------------------------------------------------
   CONCEPT（SMOVE について）
   --------------------------------------------------------- */
.concept {
  padding-top: 126px;
}
@media (max-width: 1080px) {
  .concept {
    padding-top: 80px;
  }
}
@media (max-width: 768px) {
  .concept {
    padding-top: 56px;
  }
}
.concept__card {
  width: calc(100% - 40px);
  max-width: 1320px;
  margin: 0 auto;
  border-radius: 20px;
  overflow: hidden;
  background-image: url(../images/top/concept-bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #E2DFE4;
  aspect-ratio: 1320/707;
  display: grid;
  grid-template-columns: 49.5% minmax(0, 1fr);
  align-items: center;
}
.concept__body {
  grid-column: 2;
  padding-right: 5.1%;
}
.concept__title {
  font-size: clamp(24px, 18.702px + 1.413vw, 38px);
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.02em;
}
.concept__lead {
  margin-top: 16px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 1.9;
  letter-spacing: 0;
  color: #3C3C3C;
}
.concept .btn-round {
  margin-top: 118px;
}
@media (max-width: 1240px) {
  .concept .btn-round {
    margin-top: 60px;
  }
}
.concept {
  /* タブレット以下：画像を上、テキストを下に */
}
@media (max-width: 1080px) {
  .concept__card {
    display: block;
    aspect-ratio: auto;
    background-size: 100% auto;
    background-position: center top;
    padding-top: 52%;
  }
  .concept__body {
    padding: 36px 6% 44px;
  }
  .concept__lead {
    line-height: 2.1;
  }
  .concept .btn-round {
    margin-top: 32px;
  }
}
@media (max-width: 768px) {
  .concept__card {
    width: calc(100% - 32px);
    border-radius: 14px;
  }
  .concept__body {
    padding: 28px 22px 36px;
  }
  .concept__lead {
    margin-top: 16px;
  }
  .concept__lead br {
    display: none;
  }
}

/* -----------------------------------------------------------
   NEWS
   --------------------------------------------------------- */
.news {
  padding-top: 220px;
}
@media (max-width: 1080px) {
  .news {
    padding-top: 110px;
  }
}
@media (max-width: 768px) {
  .news {
    padding-top: 64px;
  }
}
.news {
  /* PC：左列に見出し＋「一覧を見る」／右列に一覧
     SP：見出し → 一覧 → 「一覧を見る」の縦並び */
}
.news__inner {
  display: grid;
  grid-template-columns: 291px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  grid-template-areas: "head list" "foot list";
  align-items: start;
  padding-left: 20px;
}
@media (min-width: 1200px) {
  .news__inner {
    padding-left: calc((100% - 1160px) / 2);
  }
}
@media (max-width: 1080px) {
  .news__inner {
    grid-template-columns: 220px minmax(0, 1fr);
  }
}
@media (max-width: 768px) {
  .news__inner {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    grid-template-areas: "head" "list" "foot";
    padding-left: 16px;
  }
}
.news__head {
  grid-area: head;
  padding-top: 40px;
}
@media (max-width: 768px) {
  .news__head {
    padding-right: 16px;
    margin-bottom: 28px;
    text-align: center;
  }
  .news__head .news__title {
    display: inline-block;
  }
}
.news__foot {
  grid-area: foot;
}
@media (max-width: 768px) {
  .news__foot {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 32px;
    padding-right: 16px;
  }
}
.news__title {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(40px, 31.675px + 2.22vw, 62px);
  line-height: 1;
  letter-spacing: 0.04em;
}
.news__sub {
  margin-top: 12px;
  font-size: clamp(14px, 12.865px + 0.303vw, 17px);
  letter-spacing: 0.08em;
  color: #555;
}
.news__more {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 200px;
  max-width: 100%;
  margin-top: 26px;
  padding-bottom: 12px;
  border-bottom: 1px solid #C9C9C9;
  font-size: 14px;
  letter-spacing: 0.06em;
  /* SP は矢印ボタン（news__nav）の下に表示 */
}
@media (max-width: 768px) {
  .news__more {
    order: 2;
    width: auto;
    margin-top: 28px;
  }
}
.news__more:hover {
  opacity: 1;
  color: #DE5C14;
}
.news__more:hover .news__more-arrow,
.news__more:hover .news__more-arrow::after {
  border-color: #DE5C14;
  background-color: #DE5C14;
}
.news__more-arrow {
  position: relative;
  flex: 0 0 auto;
  width: 20px;
  height: 1px;
  background: #333333;
}
.news__more-arrow::after {
  content: "";
  position: absolute;
  top: -3px;
  right: 0;
  width: 7px;
  height: 7px;
  border-top: 1px solid #333333;
  border-right: 1px solid #333333;
  transform: rotate(45deg);
}
.news__nav {
  display: flex;
  gap: 14px;
  margin-top: 30px;
}
@media (max-width: 768px) {
  .news__nav {
    order: 1;
    justify-content: center;
    margin-top: 0;
  }
}
.news__btn {
  position: relative;
  width: 92px;
  height: 36px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
}
.news__btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22px;
  height: 1px;
  margin: 0 0 0 -11px;
  background: #fff;
}
.news__btn::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 7px;
  height: 7px;
  margin: -3.5px 0 0 -11px;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(45deg);
}
.news__btn--next::after {
  margin-left: 5px;
  border-left: none;
  border-bottom: none;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
.news__btn:hover {
  opacity: 0.85;
}
@media (max-width: 768px) {
  .news__btn {
    width: 76px;
    height: 34px;
  }
}
.news__list {
  grid-area: list;
  display: flex;
  gap: 26px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.news__list::-webkit-scrollbar {
  display: none;
}
@media (max-width: 768px) {
  .news__list {
    gap: 16px;
  }
}

.news-card {
  flex: 0 0 274px;
  scroll-snap-align: start;
}
@media (max-width: 768px) {
  .news-card {
    flex-basis: 220px;
  }
}
.news-card__thumb {
  display: block;
  aspect-ratio: 274/294;
  border-radius: 10px;
  overflow: hidden;
  background: #F3F3F3;
}
.news-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.news-card__thumb:hover {
  opacity: 1;
}
.news-card__thumb:hover img {
  transform: scale(1.05);
}
.news-card__meta {
  display: flex;
  align-items: center;
  margin-top: 14px;
  font-size: 13px;
  color: #777;
}
.news-card {
  /* カテゴリーごとに色分け（クリックでそのカテゴリー一覧へ） */
}
.news-card__tag {
  margin-left: auto;
  padding: 3px 14px;
  border-radius: 999px;
  background: #EFEFEF;
  font-size: 12px;
  line-height: 1.6;
  color: #3C5169;
  white-space: nowrap;
  transition: filter 0.3s;
}
.news-card__tag--seminar {
  background: #FDEEE7;
  color: #B9483E;
}
.news-card__tag--papers {
  background: #E4EFEA;
  color: #2E5F55;
}
.news-card__tag:hover {
  opacity: 1;
  filter: brightness(0.95);
}
.news-card__title {
  margin-top: 12px;
  font-size: 15px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.news-card__title a {
  color: #444444;
  transition: color 0.3s;
}
.news-card__title a:hover {
  opacity: 1;
  color: #DE5C14;
}

/* -----------------------------------------------------------
   MOVIE
   --------------------------------------------------------- */
.movie {
  padding: 193px 0 122px;
}
@media (max-width: 1080px) {
  .movie {
    padding: 100px 0 80px;
  }
}
@media (max-width: 768px) {
  .movie {
    padding: 60px 0 56px;
  }
}
.movie__link {
  display: block;
  width: 824px;
  max-width: 100%;
  margin: 0 auto;
  cursor: pointer;
}
.movie__link img {
  width: 100%;
  border-radius: 12px;
  transition: transform 0.4s, box-shadow 0.4s;
}
.movie__link:hover {
  opacity: 1;
}
.movie__link:hover img {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

/* 動画のライトボックス（JS で body 直下に生成） */
.movie-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(0, 0, 0, 0.82);
  animation: movie-modal-in 0.25s ease;
  /* 動画と閉じるボタンのまとまり */
}
.movie-modal__box {
  position: relative;
  width: min(1000px, 100%);
}
.movie-modal__inner {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  max-height: calc(100vh - 140px);
  background: #000;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}
.movie-modal__inner iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.movie-modal {
  /* 閉じるボタン（動画のすぐ上・右端） */
}
.movie-modal__close {
  position: absolute;
  bottom: calc(100% + 10px);
  right: 0;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  transition: background 0.3s;
}
.movie-modal__close::before, .movie-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  margin: -1px 0 0 -10px;
  background: #fff;
}
.movie-modal__close::before {
  transform: rotate(45deg);
}
.movie-modal__close::after {
  transform: rotate(-45deg);
}
.movie-modal__close:hover {
  background: rgba(255, 255, 255, 0.24);
}
@media (max-width: 768px) {
  .movie-modal__close {
    bottom: calc(100% + 8px);
    width: 36px;
    height: 36px;
  }
  .movie-modal__close::before, .movie-modal__close::after {
    width: 16px;
    margin-left: -8px;
  }
}
@media (max-width: 768px) {
  .movie-modal {
    padding: 16px;
  }
}

@keyframes movie-modal-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* -----------------------------------------------------------
   STACK（RESEARCH / ABOUT を重ねながらスクロールさせる）
   ・子セクションを position: sticky で固定
   ・padding-bottom と負の margin-bottom で「最後の 1 枚が
     次のセクション（CTA）に覆われるまで」固定できる高さを確保
   --------------------------------------------------------- */
.stack {
  position: relative;
  z-index: 1;
  margin-bottom: -100vh;
  /* sticky の可動範囲は親の「コンテンツボックス」なので、
     padding ではなく実体のあるスペーサーで高さを確保する */
}
.stack__spacer {
  height: 100vh;
}
.stack > .research {
  position: sticky;
  top: 0;
  z-index: 1;
}
.stack > .about {
  position: sticky;
  top: 0;
  z-index: 2;
}

/* -----------------------------------------------------------
   RESEARCH（研究開発）
   --------------------------------------------------------- */
.research {
  background: #EFEFEF;
  border-radius: 40px 40px 0 0;
  padding: 103px 0 137px;
}
@media (max-width: 1080px) {
  .research {
    padding: 70px 0 80px;
  }
}
@media (max-width: 768px) {
  .research {
    border-radius: 24px 24px 0 0;
    padding: 56px 0 64px;
  }
}
.research__inner {
  display: grid;
  grid-template-columns: 1.12fr 1fr;
  gap: 44px;
  align-items: center;
}
@media (max-width: 1080px) {
  .research__inner {
    gap: 32px;
  }
}
@media (max-width: 768px) {
  .research__inner {
    grid-template-columns: minmax(0, 1fr);
    padding-bottom: 30px;
  }
}
.research__figure img {
  width: 100%;
  max-width: 590px;
  margin: 0 auto;
}
.research__title {
  font-size: clamp(24px, 18.702px + 1.413vw, 38px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.02em;
}
.research__lead {
  margin-top: 26px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2;
  letter-spacing: 0;
  color: #3C3C3C;
}
@media (max-width: 768px) {
  .research__lead {
    line-height: 2.1;
  }
  .research__lead br {
    display: none;
  }
}
.research .btn-round {
  margin-top: 46px;
}
@media (max-width: 768px) {
  .research .btn-round {
    margin-top: 32px;
  }
}

/* -----------------------------------------------------------
   ABOUT MEGWEL
   --------------------------------------------------------- */
.about {
  position: relative;
  border-radius: 40px 40px 0 0;
  padding: 97px 0 150px;
  background-image: url(../images/top/about-bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #3E90A6;
  color: #fff;
}
@media (max-width: 1080px) {
  .about {
    padding: 70px 0 90px;
  }
}
@media (max-width: 768px) {
  .about {
    border-radius: 24px 24px 0 0;
    padding: 56px 0 64px;
    background-position: 22% center;
  }
}
.about {
  /* タブレット以下は写真の上に文字が乗るため、可読性用のオーバーレイ */
}
.about::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(47, 110, 146, 0) 0%, rgba(47, 110, 146, 0.45) 38%, rgba(47, 110, 146, 0.72) 100%);
  opacity: 0;
  pointer-events: none;
}
@media (max-width: 1080px) {
  .about::before {
    opacity: 1;
  }
}
.about__inner {
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .about__inner {
    padding-bottom: 30px;
  }
}
.about__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.about__en {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(30px, 17.891px + 3.229vw, 62px);
  line-height: 1.1;
  letter-spacing: 0.16em;
  text-indent: 0.16em;
}
.about__ja {
  margin-top: 14px;
  font-size: clamp(12px, 10.865px + 0.303vw, 15px);
  letter-spacing: 0.16em;
}
.about__head::after {
  content: "";
  display: block;
  width: 80px;
  height: 1px;
  margin-top: 22px;
  background: rgba(255, 255, 255, 0.75);
}
.about__body {
  max-width: 594px;
  margin: 72px 0 0 auto;
}
@media (max-width: 1080px) {
  .about__body {
    max-width: none;
    margin-top: 56px;
  }
}
.about__title {
  font-size: clamp(24px, 18.702px + 1.413vw, 38px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
.about__lead {
  /* 画面幅に合わせて 24px（375px）〜 46px（1366px 以上）。vh はスマホのアドレスバーで変動するため使わない */
  margin-top: clamp(24px, 15.675px + 2.22vw, 46px);
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2;
  letter-spacing: 0;
}
@media (max-width: 768px) {
  .about__lead {
    line-height: 2.1;
  }
  .about__lead br {
    display: none;
  }
}
.about .btn-round {
  margin-top: 66px;
}
@media (max-width: 768px) {
  .about .btn-round {
    margin-top: 32px;
  }
}

/* -----------------------------------------------------------
   CTA（資料請求・お問い合わせ）
   --------------------------------------------------------- */
.cta {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 960px) {
  .cta {
    grid-template-columns: minmax(0, 1fr);
  }
}
.cta__body {
  display: flex;
  align-items: flex-start;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  padding: 70px 60px 74px 70px;
  min-height: 610px;
}
@media (max-width: 1080px) {
  .cta__body {
    padding: 60px 40px;
  }
}
@media (max-width: 960px) {
  .cta__body {
    min-height: 0;
    padding: 60px 24px;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .cta__body {
    padding: 48px 20px 56px;
  }
}
.cta__body-inner {
  width: 100%;
  max-width: 580px;
}
.cta__title {
  font-size: clamp(24px, 18.702px + 1.413vw, 38px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.02em;
}
.cta__lead {
  margin-top: 30px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 1.55;
  letter-spacing: 0;
  /* デザイン幅（1366px）未満は 2 行目が収まらないので、改行位置を固定しない */
}
@media (max-width: 1365px) {
  .cta__lead br {
    display: none;
  }
}
.cta__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}
.cta__tags li {
  padding: 5px 18px;
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 999px;
  font-size: clamp(13px, 11.865px + 0.303vw, 16px);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.1em;
  /* デザイン幅未満はタグ 4 つが 1 行に収まるよう字間と余白を詰める */
}
@media (max-width: 1365px) {
  .cta__tags li {
    padding: 5px 13px;
    letter-spacing: 0.04em;
  }
}
.cta__btn {
  display: flex;
  width: 406px;
  margin: 80px auto 0;
}
@media (max-width: 768px) {
  .cta__btn {
    margin-top: 34px;
  }
}
.cta__photo {
  min-height: 610px;
  background-image: url(../images/top/cta-photo.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
@media (max-width: 1080px) {
  .cta__photo {
    min-height: 0;
  }
}
@media (max-width: 960px) {
  .cta__photo {
    aspect-ratio: 1364/900;
  }
}

/* ===========================================================
   フッター
   =========================================================== */
.footer {
  position: relative;
  z-index: 3;
  padding-top: 81px;
  background: #fff;
}
@media (max-width: 768px) {
  .footer {
    padding-top: 48px;
  }
}
.footer {
  /* ヘッダーと同じく画面幅いっぱい（左右の余白もヘッダーに合わせる） */
}
.footer__inner, .footer__bottom-inner {
  max-width: none;
  padding-inline: 32px;
}
@media (max-width: 1080px) {
  .footer__inner, .footer__bottom-inner {
    padding-inline: 20px;
  }
}
@media (max-width: 960px) {
  .footer__inner, .footer__bottom-inner {
    padding-inline: 16px;
  }
}
.footer__inner {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  padding-bottom: 52px;
}
@media (max-width: 960px) {
  .footer__inner {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 40px;
  }
}
.footer__smove img {
  width: 230px;
}
@media (max-width: 768px) {
  .footer__smove img {
    width: 190px;
    margin: 0 auto;
  }
}
.footer__company {
  margin-top: 53px;
}
.footer__company img {
  width: 200px;
}
@media (max-width: 768px) {
  .footer__company img {
    width: 170px;
    margin: 0 auto;
  }
}
@media (max-width: 768px) {
  .footer__company {
    margin-top: 32px;
  }
}
@media (max-width: 768px) {
  .footer__zip {
    display: block;
  }
}
.footer__address {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.9;
  color: #666;
}
.footer__address a {
  color: #666;
}
.footer__address a:hover {
  color: #DE5C14;
  opacity: 1;
}
@media (max-width: 768px) {
  .footer__address a {
    display: inline-block;
    padding: 6px 0;
  }
}
.footer__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 44px;
  padding-top: 60px;
  /* 縦積み時は幅いっぱいにして、ボタンが縮まないようにする */
}
@media (max-width: 960px) {
  .footer__right {
    width: 100%;
    align-items: center;
    padding-top: 0;
    gap: 28px;
  }
}
@media (max-width: 1080px) {
  .footer__contact {
    min-height: 74px;
  }
}
.footer {
  /* 下部バー */
}
.footer__bottom {
  background: #EFEFEF;
  padding: 50px 0;
}
@media (max-width: 768px) {
  .footer__bottom {
    padding: 24px 0;
  }
}
.footer__bottom-inner {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 42px;
  font-size: 13px;
  color: #777;
}
@media (max-width: 768px) {
  .footer__bottom-inner {
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    text-align: center;
  }
}
.footer__sub-menu {
  display: flex;
  gap: 42px;
}
.footer__sub-menu a:hover {
  color: #DE5C14;
  opacity: 1;
}
@media (max-width: 768px) {
  .footer__sub-menu a {
    display: inline-block;
    padding: 8px 0;
  }
}
@media (max-width: 768px) {
  .footer__sub-menu {
    gap: 20px;
    flex-wrap: wrap;
    justify-content: center;
  }
}
.footer__copy {
  font-size: 13px;
  letter-spacing: 0.02em;
}

@media (max-width: 768px) {
  .footer-nav {
    display: none;
  }
}
.footer-nav__menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 14px 42px;
  font-size: 15px;
  font-weight: 500;
}
.footer-nav__menu a:hover {
  color: #DE5C14;
  opacity: 1;
}
@media (max-width: 1080px) {
  .footer-nav__menu {
    gap: 12px 26px;
    font-size: 14px;
  }
}
@media (max-width: 960px) {
  .footer-nav__menu {
    justify-content: center;
  }
}

/* ===========================================================
   下層ページ共通パーツ
   =========================================================== */
/* -----------------------------------------------------------
   ページヘッダー（オレンジの帯＋白いパネル）
   --------------------------------------------------------- */
.pagehead {
  position: relative;
  height: 390px;
  background-image: url(../images/common/pagehead@2x.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  /* ABOUT ページなど写真を使う場合 */
}
.pagehead--photo {
  height: 528px;
  background-position: center 22%;
}
@media (max-width: 768px) {
  .pagehead--photo {
    height: 340px;
  }
}
@media (max-width: 1080px) {
  .pagehead {
    height: 300px;
  }
}
@media (max-width: 768px) {
  .pagehead {
    height: 230px;
  }
}
.pagehead__panel {
  position: absolute;
  left: 0;
  bottom: 0;
  min-width: 527px;
  height: 216px;
  padding: 72px 118px 0 20px;
  background: #fff;
  border-radius: 0 66px 0 0;
}
@media (min-width: 1200px) {
  .pagehead__panel {
    padding-left: calc((100% - 1160px) / 2);
  }
}
@media (max-width: 1080px) {
  .pagehead__panel {
    min-width: 400px;
    height: 160px;
    padding: 46px 70px 0 20px;
    border-radius: 0 44px 0 0;
  }
}
@media (max-width: 768px) {
  .pagehead__panel {
    min-width: 0;
    width: auto;
    max-width: 88%;
    height: 116px;
    padding: 28px 34px 0 16px;
    border-radius: 0 30px 0 0;
  }
}
.pagehead__en {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(30px, 18.648px + 3.027vw, 60px);
  line-height: 1;
  letter-spacing: 0.04em;
}
.pagehead__ja {
  margin-top: 24px;
  font-size: clamp(13px, 10.351px + 0.706vw, 20px);
  letter-spacing: 0.06em;
  color: #4a5568;
}
@media (max-width: 768px) {
  .pagehead__ja {
    margin-top: 12px;
  }
}
.pagehead__ja {
  /* 英字見出しが無いページでは日本語タイトルが見出し（h1） */
}
.pagehead__ja:first-child {
  margin-top: 0;
  font-size: clamp(22px, 16.702px + 1.413vw, 36px);
  font-weight: 500;
  line-height: 1.5;
  color: #333333;
}
.pagehead {
  /* 帯の右側に入るキャッチコピー（会社情報ページ） */
}
.pagehead__lead {
  position: absolute;
  top: 50%;
  left: 50.5%;
  transform: translateY(-10%);
  font-size: clamp(14px, 10.216px + 1.009vw, 24px);
  line-height: 1.42;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.04em;
}
@media (max-width: 1080px) {
  .pagehead__lead {
    position: static;
    transform: none;
    padding: 40px 20px 0;
    text-align: center;
  }
}
@media (max-width: 768px) {
  .pagehead__lead {
    display: none;
  }
}

/* -----------------------------------------------------------
   パンくず
   --------------------------------------------------------- */
.breadcrumb {
  padding: 10px 0 0;
}
.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  font-size: 12px;
  line-height: 1.8;
  color: #777;
}
.breadcrumb__item + .breadcrumb__item::before {
  content: "－";
  margin: 0 2px;
  color: #aaa;
}
.breadcrumb a:hover {
  color: #DE5C14;
  opacity: 1;
}
@media (max-width: 768px) {
  .breadcrumb__list {
    font-size: 12px;
  }
}

/* -----------------------------------------------------------
   セクション見出し（英字＋和文・中央）
   --------------------------------------------------------- */
.sec-head {
  text-align: center;
}
.sec-head__en {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(24px, 10.377px + 3.633vw, 60px);
  line-height: 1.1;
  letter-spacing: 0.04em;
}
.sec-head__ja {
  margin-top: 14px;
  font-size: clamp(13px, 10.351px + 0.706vw, 20px);
  letter-spacing: 0.08em;
  color: #4a5568;
}
.sec-head {
  /* 濃い背景の上（BOARD MEMBERS / RESEARCH OUTPUT） */
}
.sec-head--light .sec-head__en,
.sec-head--light .sec-head__ja {
  color: #fff;
}

/* -----------------------------------------------------------
   ページ内リンク
   --------------------------------------------------------- */
.anchor-nav {
  padding-top: 97px;
}
@media (max-width: 1080px) {
  .anchor-nav {
    padding-top: 56px;
  }
}
@media (max-width: 768px) {
  .anchor-nav {
    padding-top: 36px;
  }
}
.anchor-nav__inner {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
}
@media (max-width: 768px) {
  .anchor-nav__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
}
.anchor-nav a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 64px;
  border-radius: 8px;
  background: #EFEFEF;
  font-size: clamp(13px, 10.351px + 0.706vw, 20px);
  font-weight: 400;
  letter-spacing: 0.06em;
}
.anchor-nav a::after {
  content: "";
  width: 10px;
  height: 10px;
  border-right: 1.5px solid #555;
  border-bottom: 1.5px solid #555;
  transform: translateY(-3px) rotate(45deg);
}
.anchor-nav a:hover {
  opacity: 1;
  background: #E6E6E6;
  color: #DE5C14;
}
@media (max-width: 768px) {
  .anchor-nav a {
    height: 54px;
    font-size: 13px;
  }
}

/* -----------------------------------------------------------
   枠線ボタン（研究開発ページ）
   --------------------------------------------------------- */
.btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  min-width: 254px;
  min-height: 54px;
  padding: 10px 28px;
  border: 1px solid #1F7A6B;
  border-radius: 999px;
  background: #fff;
  color: #1F7A6B;
  font-size: clamp(15px, 13.108px + 0.505vw, 20px);
  font-weight: 500;
}
.btn-outline__arrow {
  position: relative;
  width: 26px;
  height: 1px;
  background: currentColor;
}
.btn-outline__arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: -3px;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}
.btn-outline:hover {
  opacity: 1;
  background: #1F7A6B;
  color: #fff;
}

/* 記事本文の装飾（公開ページとブロックエディターで共用） */
/* ===========================================================
   お知らせ一覧（category.php）
   =========================================================== */
.news-list {
  padding: 141px 0 190px;
}
@media (max-width: 1080px) {
  .news-list {
    padding: 80px 0 100px;
  }
}
@media (max-width: 768px) {
  .news-list {
    padding: 48px 0 64px;
  }
}
.news-list__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 108px 28px;
}
@media (max-width: 1080px) {
  .news-list__grid {
    gap: 60px 24px;
  }
}
@media (max-width: 768px) {
  .news-list__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px 16px;
  }
}
.news-list {
  /* 一覧では固定幅を解除（TOP のスライダーと共用のため） */
}
.news-list .news-card {
  flex: none;
}
.news-list .news-card__thumb {
  aspect-ratio: 368/388;
}
.news-list__empty {
  padding: 40px 0;
  text-align: center;
  color: #666;
}

/* ページ送り */
.pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 90px;
}
.pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 14px;
  border-radius: 999px;
  background: #EFEFEF;
  font-size: 14px;
  line-height: 1;
}
.pager .page-numbers:hover {
  opacity: 1;
  background: #E4E4E4;
  color: #DE5C14;
}
.pager .page-numbers.current {
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
}
@media (max-width: 768px) {
  .pager {
    margin-top: 48px;
  }
}

/* ===========================================================
   お知らせ詳細（single.php）／固定ページ本文
   =========================================================== */
.article {
  padding: 109px 0 150px;
}
@media (max-width: 1080px) {
  .article {
    padding: 60px 0 90px;
  }
}
@media (max-width: 768px) {
  .article {
    padding: 40px 0 64px;
  }
}
.article__title {
  font-size: clamp(21px, 17.594px + 0.908vw, 30px);
  font-weight: 400;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.article__meta {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-top: 33px;
  font-size: clamp(14px, 13.243px + 0.202vw, 16px);
  color: #666;
}
.article {
  /* カテゴリーごとに色分け（クリックでそのカテゴリー一覧へ） */
}
.article__tag {
  padding: 4px 20px;
  border-radius: 999px;
  background: #EFEFEF;
  font-size: clamp(13px, 12.622px + 0.101vw, 14px);
  color: #3C5169;
  white-space: nowrap;
  transition: filter 0.3s;
}
.article__tag--seminar {
  background: #FDEEE7;
  color: #B9483E;
}
.article__tag--papers {
  background: #E4EFEA;
  color: #2E5F55;
}
.article__tag:hover {
  opacity: 1;
  filter: brightness(0.95);
}
.article__thumb {
  margin-top: 46px;
}
.article__thumb img {
  width: 100%;
  border-radius: 12px;
}
.article__body {
  margin-top: 70px;
}
@media (max-width: 768px) {
  .article__body {
    margin-top: 40px;
  }
}
.article__back {
  margin-top: 90px;
  text-align: center;
}
.article__back .btn-round {
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.12);
}
@media (max-width: 768px) {
  .article__back {
    margin-top: 56px;
  }
}

/* -----------------------------------------------------------
   本文（ブロックエディター）
   --------------------------------------------------------- */
.entry-content {
  font-size: clamp(15px, 13.108px + 0.505vw, 20px);
  letter-spacing: 0.04em;
  line-height: 2.1;
  color: #444444;
}
.entry-content > * + * {
  margin-top: 1.7em;
}
.entry-content h2 {
  margin-top: 76px;
  padding-bottom: 20px;
  border-bottom: 1px solid #DDDDDD;
  font-size: clamp(19px, 17.108px + 0.505vw, 24px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.entry-content h2 + * {
  margin-top: 40px;
}
.entry-content h3 {
  margin-top: 54px;
  font-size: clamp(17px, 16.243px + 0.202vw, 19px);
  font-weight: 700;
  line-height: 1.7;
  color: #333333;
}
.entry-content h4 {
  margin-top: 40px;
  font-size: 17px;
  font-weight: 700;
  color: #333333;
}
.entry-content {
  /* 本文やボックス・カラムの先頭が見出しの時は上の余白を付けない */
}
.entry-content :is(h2, h3, h4):first-child {
  margin-top: 0;
}
.entry-content a:not(.wp-block-button__link) {
  color: #DE5C14;
  text-decoration: underline;
  overflow-wrap: anywhere; /* 長い URL がはみ出さないように */
}
.entry-content a:not(.wp-block-button__link):hover {
  opacity: 0.75;
}
.entry-content ul,
.entry-content ol {
  padding-left: 1.4em;
}
.entry-content ul li,
.entry-content ol li {
  list-style: inherit;
  margin-top: 0.5em;
}
.entry-content ul li {
  list-style: disc;
}
.entry-content ol li {
  list-style: decimal;
}
.entry-content img {
  border-radius: 12px;
  margin-inline: auto;
}
.entry-content figure {
  margin: 0;
}
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.entry-content table th,
.entry-content table td {
  padding: 14px 16px;
  border: 1px solid #E4E4E4;
  text-align: left;
}
.entry-content table th {
  background: #F7F7F7;
  font-weight: 500;
}
.entry-content {
  /* 引用 */
}
.entry-content blockquote {
  margin: 0;
  padding: 4px 0 4px 24px;
  border-left: 3px solid #E4E4E4;
  color: #444444;
}
.entry-content blockquote cite {
  display: block;
  margin-top: 12px;
  font-size: 13px;
  font-style: normal;
  color: #888;
}
.entry-content blockquote {
  /* 引用の中の引用は字下げを重ねない（スマホで本文が細くならないように） */
}
.entry-content blockquote blockquote {
  padding-left: 0;
  border-left: none;
}
@media (max-width: 768px) {
  .entry-content blockquote {
    padding-left: 16px;
  }
}
.entry-content {
  /* グループ・カラム・引用の中の要素どうしの間隔
     （クラシックテーマではグループの中身が .wp-block-group__inner-container で包まれる） */
}
.entry-content .wp-block-group__inner-container > * + *,
.entry-content .wp-block-column > * + *,
.entry-content blockquote > * + * {
  margin-top: 1.2em;
}
.entry-content {
  /* オレンジのボックス（グループブロック／スタイル：オレンジボックス） */
}
.entry-content .is-style-megwel-orange {
  padding: 40px 46px;
  border-radius: 12px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
}
.entry-content .is-style-megwel-orange p {
  color: #fff;
}
.entry-content .is-style-megwel-orange > :first-child:not(.wp-block-group__inner-container),
.entry-content .is-style-megwel-orange > .wp-block-group__inner-container > :first-child {
  font-size: clamp(17px, 13.973px + 0.807vw, 25px);
  font-weight: 500;
  line-height: 1.7;
}
.entry-content .is-style-megwel-orange > * + *,
.entry-content .is-style-megwel-orange > .wp-block-group__inner-container > * + * {
  margin-top: 22px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 1.89;
}
@media (max-width: 768px) {
  .entry-content .is-style-megwel-orange {
    padding: 26px 22px;
  }
}
.entry-content {
  /* 注意ボックス（グループブロック／スタイル：注意ボックス） */
}
.entry-content .is-style-megwel-attention {
  padding: 44px 40px 50px;
  border-radius: 12px;
  background: #FCEDE7;
  text-align: center;
}
.entry-content .is-style-megwel-attention > :first-child:not(.wp-block-group__inner-container),
.entry-content .is-style-megwel-attention > .wp-block-group__inner-container > :first-child {
  font-size: clamp(17px, 13.594px + 0.908vw, 26px);
  font-weight: 500;
  line-height: 1.7;
}
.entry-content .is-style-megwel-attention > * + *,
.entry-content .is-style-megwel-attention > .wp-block-group__inner-container > * + * {
  margin-top: 10px;
}
.entry-content .is-style-megwel-attention .wp-block-buttons {
  margin-top: 30px;
}
@media (max-width: 768px) {
  .entry-content .is-style-megwel-attention {
    padding: 28px 20px 34px;
  }
}
.entry-content {
  /* 同じボックスを入れ子にした場合は、内側の背景と余白を消して 1 つのボックスに見せる */
}
.entry-content .is-style-megwel-orange .is-style-megwel-orange,
.entry-content .is-style-megwel-attention .is-style-megwel-attention {
  padding: 0;
  border-radius: 0;
  background: none;
}
.entry-content {
  /* ボタン */
}
.entry-content .wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}
.entry-content {
  /* 最小幅 292px。ただし狭い場所（スマホの枠内など）では枠の幅まで */
}
.entry-content .wp-block-button {
  min-width: min(292px, 100%);
  max-width: 100%;
}
.entry-content .wp-block-button__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
  min-height: 56px;
  /* 右側は矢印ぶんの余白を確保（文字はボタン中央のまま） */
  padding: 12px 56px;
  border-radius: 999px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: clamp(15px, 13.865px + 0.303vw, 18px);
  font-weight: 500;
  text-decoration: none;
  /* ↗ 矢印（@2x 画像を 11px で表示） */
}
.entry-content .wp-block-button__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 11px;
  height: 11px;
  margin-top: -5.5px;
  background: url(../images/common/article-btn-arrow.png) no-repeat center/contain;
  transition: transform 0.3s;
}
.entry-content .wp-block-button__link:hover {
  opacity: 1;
  box-shadow: 0 6px 20px rgba(219, 60, 20, 0.3);
}
.entry-content .wp-block-button__link:hover::after {
  transform: translate(2px, -2px);
}

/* ===========================================================
   SMOVEについて（ABOUT）
   =========================================================== */
/* -----------------------------------------------------------
   FEATURE
   --------------------------------------------------------- */
.feature {
  padding: 145px 0 0;
}
@media (max-width: 1080px) {
  .feature {
    padding-top: 80px;
  }
}
@media (max-width: 768px) {
  .feature {
    padding-top: 48px;
  }
}
.feature__title {
  font-size: clamp(23px, 16.567px + 1.715vw, 40px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.feature__lead {
  margin-top: 46px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2.12;
  letter-spacing: 0;
  color: #3C3C3C;
}
@media (max-width: 768px) {
  .feature__lead {
    margin-top: 24px;
    line-height: 2.1;
  }
  .feature__lead br {
    display: none;
  }
}
.feature {
  /* 左の写真を sticky で固定し、右の本文がスクロールで上がっていく。
     本文が画面中央を通過したタイミングで写真をクロスフェードする（JS）。 */
}
.feature__list {
  position: relative;
  margin-top: 82px;
  display: grid;
  grid-template-columns: 43.5% minmax(0, 1fr);
  gap: 80px;
  align-items: start;
}
@media (max-width: 1080px) {
  .feature__list {
    display: block;
    margin-top: 48px;
  }
}
@media (max-width: 768px) {
  .feature__list {
    margin-top: 32px;
  }
}
.feature {
  /* 固定される写真（PC のみ） */
}
.feature__media {
  position: sticky;
  top: 112px;
  height: calc(100vh - 112px);
  display: grid;
  align-content: center;
}
@media (max-width: 1080px) {
  .feature__media {
    display: none;
  }
}
.feature__media-img {
  grid-area: 1/1;
  width: 100%;
  max-height: calc(100vh - 112px - 60px);
  object-fit: cover;
  border-radius: 20px;
  opacity: 0;
  transform: scale(1.015);
  transition: opacity 0.7s ease, transform 0.9s ease;
}
.feature__media-img.is-active {
  opacity: 1;
  transform: none;
}
@media (max-width: 1080px) {
  .feature__bodies {
    display: flex;
    flex-direction: column;
    gap: 56px;
  }
}
@media (max-width: 768px) {
  .feature__bodies {
    gap: 40px;
  }
}

.feature-item {
  /* 1 項目ぶんのスクロール量を確保し、本文を画面中央に置く */
  min-height: 82vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
@media (max-width: 1080px) {
  .feature-item {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
}
@media (min-width: 769px) and (max-width: 1080px) {
  .feature-item {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 40px;
    align-items: center;
  }
}
.feature-item {
  /* 各項目の写真はタブレット以下のみ表示（PC は左の固定写真を使う） */
}
.feature-item__figure {
  display: none;
}
@media (max-width: 1080px) {
  .feature-item__figure {
    display: block;
  }
}
.feature-item__figure img {
  width: 100%;
  border-radius: 20px;
  max-width: 420px;
}
.feature-item {
  /* JS 有効時のみフェードイン（無効時は最初から表示） */
}
.js-anim .feature-item__body {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.js-anim .feature-item.is-shown .feature-item__body {
  opacity: 1;
  transform: none;
}
.feature-item__no {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(56px, 32.917px + 6.155vw, 117px);
  line-height: 1;
  letter-spacing: 0.02em;
}
.feature-item__title {
  margin-top: 14px;
  font-size: clamp(20px, 13.946px + 1.615vw, 36px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: -0.01em; /* 16 文字の見出しが 1 行に収まるよう微調整 */
}
@media (min-width: 769px) and (max-width: 1080px) {
  .feature-item__title {
    font-size: clamp(24px, 4.219px + 2.572vw, 32px);
  }
}
.feature-item__text {
  margin-top: 34px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 1.68;
  letter-spacing: 0;
  color: #3C3C3C;
}
@media (max-width: 768px) {
  .feature-item__text {
    margin-top: 18px;
    line-height: 2.1;
  }
  .feature-item__text br {
    display: none;
  }
}

/* -----------------------------------------------------------
   SYSTEM
   --------------------------------------------------------- */
.system {
  padding: 200px 0 0;
}
@media (max-width: 1080px) {
  .system {
    padding-top: 100px;
  }
}
@media (max-width: 768px) {
  .system {
    padding-top: 64px;
  }
}
.system__box {
  margin-top: 52px;
  padding: 46px 40px 54px;
  border-radius: 24px;
}
.system__box--product {
  background: #FDEEE7;
}
.system__box--hand {
  background: #E4EFEA;
  margin-top: 64px;
}
@media (max-width: 768px) {
  .system__box {
    margin-top: 28px;
    padding: 24px 16px 28px;
    border-radius: 16px;
  }
  .system__box--hand {
    margin-top: 28px;
  }
}
.system__box-title {
  font-size: clamp(19px, 12.567px + 1.715vw, 36px);
  font-weight: 700;
  line-height: 1.6;
}
.system__box--hand .system__box-title {
  color: #2E5F55;
}
.system__figure {
  margin-top: 26px;
  overflow-x: auto;
}
@media (max-width: 768px) {
  .system__figure {
    margin-top: 12px;
  }
}
.system__figure img {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.system__figure {
  /* 図中の文字が読めなくならないよう SP は横スクロール */
}
@media (max-width: 768px) {
  .system__figure img {
    width: 720px;
    max-width: none;
  }
}
.system {
  /* 横スクロールのヒント（Scroll Hint）の文字は 12px に */
}
.system .scroll-hint-text {
  font-size: 12px;
  letter-spacing: 0.04em;
}

/* -----------------------------------------------------------
   HOW TO USE
   --------------------------------------------------------- */
.howto {
  overflow: hidden;
  padding-top: 216px;
}
@media (max-width: 1080px) {
  .howto {
    padding-top: 100px;
  }
}
@media (max-width: 768px) {
  .howto {
    padding-top: 64px;
  }
}
.howto__panel {
  position: relative;
  margin-top: 60px;
  padding: 106px 0 120px;
}
.howto__panel::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 34%;
  right: -50vw;
  background: #FDF5EC;
  border-radius: 40px 0 0 40px;
}
@media (max-width: 1080px) {
  .howto__panel {
    padding: 60px 0 70px;
  }
  .howto__panel::before {
    left: -20px;
    right: -20px;
    border-radius: 24px;
  }
}
@media (max-width: 768px) {
  .howto__panel {
    margin-top: 32px;
    padding: 36px 0 44px;
  }
}
.howto__inner {
  position: relative;
  display: grid;
  grid-template-columns: 40.3% minmax(0, 1fr);
  gap: 115px;
  align-items: center;
}
@media (max-width: 1080px) {
  .howto__inner {
    gap: 48px;
  }
}
@media (max-width: 768px) {
  .howto__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
}
.howto__figure img {
  width: 100%;
  border-radius: 16px;
}
.howto__steps {
  display: flex;
  flex-direction: column;
}

.howto-step {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 0 24px;
  border-bottom: 1px solid #E0DCD4;
}
.howto-step:first-child {
  padding-top: 0;
}
.howto-step__no {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(14px, 10.216px + 1.009vw, 24px);
  letter-spacing: 0.1em;
  color: #7C8A93;
}
.howto-step__text {
  font-size: clamp(16px, 11.459px + 1.211vw, 28px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: #2E4453;
}

/* -----------------------------------------------------------
   SPECIFICATIONS
   --------------------------------------------------------- */
.spec {
  padding-top: 218px;
}
@media (max-width: 1080px) {
  .spec {
    padding-top: 100px;
  }
}
@media (max-width: 768px) {
  .spec {
    padding-top: 64px;
  }
}
.spec__inner {
  margin-top: 60px;
  display: grid;
  grid-template-columns: 47% minmax(0, 1fr);
  gap: 37px;
  /* PC は左右の高さを揃える（1 カラム時の間隔は gap で確保） */
  align-items: stretch;
  /* タブレットは表の行を縦積みにして背が高くなるため、揃えずに上端合わせ */
}
@media (max-width: 1080px) {
  .spec__inner {
    gap: 24px;
    align-items: start;
  }
}
@media (max-width: 768px) {
  .spec__inner {
    grid-template-columns: minmax(0, 1fr);
  }
}
.spec__card {
  display: flex;
  flex-direction: column;
  padding: 34px 32px 38px;
  border-radius: 18px;
  background: #FDF5EC;
}
.spec__logo img {
  width: 319px;
  max-width: 100%;
  height: auto;
}
.spec {
  /* 表の高さに合わせて伸びる。写真はトリミングせず、
     余った部分は写真の背景色で埋める */
}
.spec__photo {
  flex: 1 1 auto;
  width: 100%;
  margin-top: 22px;
  border-radius: 10px;
  object-fit: contain;
  background-color: #FAF1EB;
}
.spec__table {
  padding: 30px 34px 34px;
  border: 1px solid #E8E8E8;
  border-radius: 18px;
}
.spec__row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 20px;
  padding: 17px 0;
  border-bottom: 1px solid #EDEDED;
  font-size: 16px;
}
.spec__row:last-child {
  border-bottom: none;
}
.spec__row dt {
  color: #DE5C14;
  font-weight: 400;
}
.spec__row dd {
  margin: 0;
  color: #444444;
}
.spec__row {
  /* タブレットは表の幅が狭くなるので項目名と内容を縦積み */
}
@media (min-width: 769px) and (max-width: 1080px) {
  .spec__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
}
@media (max-width: 768px) {
  .spec__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 12px 0;
    font-size: 14px;
  }
}

/* -----------------------------------------------------------
   FAQ
   --------------------------------------------------------- */
.faq {
  /* 下の CTA との間隔（デザイン：最後の区切り線から CTA まで 277px） */
  padding: 172px 0 277px;
}
@media (max-width: 1080px) {
  .faq {
    padding: 90px 0 140px;
  }
}
@media (max-width: 768px) {
  .faq {
    padding: 56px 0 80px;
  }
}
.faq__group {
  margin-top: 84px;
}
@media (max-width: 768px) {
  .faq__group {
    margin-top: 44px;
  }
}
.faq__group-title {
  font-size: clamp(18px, 13.459px + 1.211vw, 30px);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.faq__list {
  margin-top: 18px;
}

.faq-item {
  border-bottom: 1px solid #E4E4E4;
}
.faq-item:first-child {
  border-top: 1px solid #E4E4E4;
}
.faq-item__q {
  display: flex;
  align-items: center;
  gap: clamp(14px, 9.081px + 1.312vw, 27px);
  width: 100%;
  padding: 24px 8px;
  border: none;
  background: transparent;
  text-align: left;
}
.faq-item__q:hover .faq-item__label {
  color: #DE5C14;
}
.faq-item__mark {
  flex: 0 0 auto;
  width: 1em;
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-size: clamp(18px, 13.459px + 1.211vw, 30px);
  font-weight: 400;
  line-height: 1;
  color: #DE5C14;
  text-align: center;
}
.faq-item__label {
  flex: 1 1 auto;
  font-size: clamp(15px, 12.351px + 0.706vw, 22px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.06em;
  transition: color 0.3s;
}
.faq-item__icon {
  position: relative;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border: 1px solid #DE5C14;
  border-radius: 50%;
}
.faq-item__icon::before, .faq-item__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #DE5C14;
  transition: transform 0.3s, opacity 0.3s;
}
.faq-item__icon::before {
  width: 12px;
  height: 1px;
  margin: -0.5px 0 0 -6px;
}
.faq-item__icon::after {
  width: 1px;
  height: 12px;
  margin: -6px 0 0 -0.5px;
}
.faq-item__q[aria-expanded=true] .faq-item__icon::after, .faq-item__q[aria-expanded=true] .faq-item__icon::after {
  opacity: 0;
  transform: rotate(90deg);
}
.faq-item__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.faq-item__a-inner {
  display: flex;
  gap: clamp(14px, 9.081px + 1.312vw, 27px);
  padding: 0 8px 26px;
}
.faq-item__text {
  font-size: clamp(14px, 11.73px + 0.605vw, 20px);
  line-height: 1.71;
  letter-spacing: 0.06em;
  color: #444444;
}
@media (max-width: 768px) {
  .faq-item__q {
    gap: 14px;
    padding: 18px 4px;
  }
  .faq-item__mark {
    font-size: 18px;
  }
  .faq-item__icon {
    width: 24px;
    height: 24px;
  }
  .faq-item__a-inner {
    gap: 14px;
    padding: 0 4px 20px;
  }
}

/* -----------------------------------------------------------
   学会発表・論文への導線（SPECIFICATIONS の下）
   --------------------------------------------------------- */
.papers-cta {
  padding-top: 120px;
}
@media (max-width: 1080px) {
  .papers-cta {
    padding-top: 70px;
  }
}
@media (max-width: 768px) {
  .papers-cta {
    padding-top: 44px;
  }
}
.papers-cta__panel {
  max-width: 712px;
  margin: 0 auto;
  padding: clamp(28px, 21.189px + 1.816vw, 46px) clamp(20px, 12.432px + 2.018vw, 40px) clamp(26px, 22.973px + 0.807vw, 34px);
  border-radius: clamp(24px, 10.377px + 3.633vw, 60px);
  background: #EFEFEF;
  text-align: center;
}
.papers-cta__lead {
  font-size: clamp(14px, 13.243px + 0.202vw, 16px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: #3C5169;
}
@media (max-width: 768px) {
  .papers-cta__lead {
    line-height: 1.9;
    text-align: left;
  }
  .papers-cta__lead br {
    display: none;
  }
}
.papers-cta__btn {
  margin-top: clamp(14px, 13.622px + 0.101vw, 15px);
}

/* グラデーションのボタン（右に白丸＋矢印） */
.btn-grad {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 326px;
  max-width: 100%;
  min-height: 56px;
  padding: 12px 62px 12px 34px;
  border-radius: 999px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: clamp(14px, 13.243px + 0.202vw, 16px);
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: center;
  /* 白い丸 */
}
.btn-grad__arrow {
  position: absolute;
  top: 50%;
  right: 17px;
  width: 30px;
  height: 30px;
  margin-top: -15px;
  border-radius: 50%;
  background: #fff;
  /* 中の矢印（右向き） */
}
.btn-grad__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5px;
  height: 5px;
  margin: -3px 0 0 -3px;
  border-top: 1.5px solid #DE5C14;
  border-right: 1.5px solid #DE5C14;
  transform: rotate(45deg);
  transition: transform 0.3s;
}
.btn-grad:hover {
  opacity: 1;
  box-shadow: 0 6px 20px rgba(219, 60, 20, 0.3);
}
.btn-grad:hover .btn-grad__arrow::before {
  transform: rotate(45deg) translate(2px, -2px);
}
@media (max-width: 768px) {
  .btn-grad {
    width: 100%;
    max-width: 326px;
    padding: 12px 56px 12px 28px;
  }
}

/* ===========================================================
   研究開発（OUR RESEARCH）
   =========================================================== */
/* -----------------------------------------------------------
   イントロ
   --------------------------------------------------------- */
.research-intro {
  position: relative;
  padding: 122px 0 0;
}
@media (max-width: 1080px) {
  .research-intro {
    padding-top: 70px;
  }
}
@media (max-width: 768px) {
  .research-intro {
    padding-top: 44px;
  }
}
.research-intro {
  /* PC：画面の右端に寄せる（はみ出さない幅に抑え、下端も切らない） */
}
.research-intro__figure {
  position: absolute;
  top: 100px;
  right: 0;
  width: 50%;
  max-width: 777px;
}
.research-intro__figure img {
  width: 100%;
}
.research-intro__figure {
  /* 960px 以下：見出しの上に右寄せで配置（右端は画面外へ少しはみ出す） */
}
@media (max-width: 960px) {
  .research-intro__figure {
    position: static;
    width: 72%;
    max-width: 640px;
    margin: 0 0 28px auto;
  }
}
@media (max-width: 768px) {
  .research-intro__figure {
    width: 92%;
  }
}
.research-intro__inner {
  position: relative;
}
.research-intro__title {
  font-size: clamp(23px, 16.567px + 1.715vw, 40px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.02em;
}
.research-intro__text {
  margin-top: 44px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2.12;
  letter-spacing: 0;
  color: #3C3C3C;
}
@media (max-width: 768px) {
  .research-intro__text {
    margin-top: 22px;
    line-height: 2.1;
  }
  .research-intro__text br {
    display: none;
  }
}

/* -----------------------------------------------------------
   3つの視点
   --------------------------------------------------------- */
.research-points {
  padding-top: 180px;
}
@media (max-width: 1080px) {
  .research-points {
    padding-top: 70px;
  }
}
@media (max-width: 768px) {
  .research-points {
    padding-top: 44px;
  }
}
.research-points__list {
  border-top: 1px solid #E4E4E4;
}

.research-point {
  padding: 40px 0 38px;
  border-bottom: 1px solid #E4E4E4;
}
.research-point__head {
  display: flex;
  align-items: baseline;
  gap: 22px;
}
.research-point__no {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(20px, 16.216px + 1.009vw, 30px);
  line-height: 1;
}
.research-point__title {
  position: relative;
  padding-left: 24px;
  font-size: clamp(19px, 12.567px + 1.715vw, 36px);
  font-weight: 500;
  line-height: 1.5;
}
.research-point__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  width: 1px;
  height: 0.9em;
  background: #D9D9D9;
}
.research-point__text {
  margin: 12px 0 0;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 1.68;
  letter-spacing: 0;
  color: #444444;
}
@media (max-width: 768px) {
  .research-point {
    padding: 24px 0 22px;
  }
  .research-point__head {
    gap: 12px;
  }
  .research-point__title {
    padding-left: 14px;
  }
}

/* -----------------------------------------------------------
   産学連携
   --------------------------------------------------------- */
.alliance {
  margin-top: 176px;
  padding: 90px 0 110px;
  background: #EFEFEF;
  border-radius: 40px 40px 0 0;
}
@media (max-width: 1080px) {
  .alliance {
    margin-top: 70px;
    padding: 60px 0 70px;
    border-radius: 24px 24px 0 0;
  }
}
@media (max-width: 768px) {
  .alliance {
    margin-top: 48px;
    padding: 40px 0 48px;
  }
}
.alliance__top {
  display: grid;
  grid-template-columns: 1.12fr 1fr;
  gap: 44px;
  align-items: center;
}
@media (max-width: 1080px) {
  .alliance__top {
    gap: 32px;
  }
}
@media (max-width: 768px) {
  .alliance__top {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
}
.alliance__figure img {
  width: 100%;
  max-width: 590px;
  margin: 0 auto;
}
.alliance__title {
  font-size: clamp(22px, 15.189px + 1.816vw, 40px);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.04em;
  /* 2 カラムのままのタブレットは改行位置（br）を保てるサイズに */
}
@media (min-width: 769px) and (max-width: 1080px) {
  .alliance__title {
    font-size: clamp(22px, -7.672px + 3.859vw, 34px);
  }
}
.alliance__text {
  margin-top: 26px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2;
  letter-spacing: 0;
  color: #3C3C3C;
}
@media (max-width: 768px) {
  .alliance__text {
    line-height: 2.1;
  }
  .alliance__text br {
    display: none;
  }
}
.alliance__catch {
  margin-top: 76px;
  font-size: clamp(16px, 11.838px + 1.11vw, 27px);
  font-weight: 500;
  text-align: center;
  letter-spacing: 0.04em;
}
@media (max-width: 768px) {
  .alliance__catch {
    margin-top: 36px;
    font-size: 16px;
  }
}
.alliance__flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 60px;
  margin-top: 40px;
  max-width: 950px;
  margin-inline: auto;
}
@media (max-width: 1080px) {
  .alliance__flow {
    gap: 36px;
  }
}
@media (max-width: 768px) {
  .alliance__flow {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
  }
}

.flow-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
  /* デザイン通り、番号は右上・英字と日本語は左揃えで余白は控えめに */
  padding: 18px 24px 30px;
  border-radius: 14px;
  background: #fff;
  /* 矢印 */
}
.flow-card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -38px;
  width: 0;
  height: 0;
  margin-top: -10px;
  border-left: 16px solid #E4522A;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
}
.flow-card__no {
  align-self: flex-end;
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 30px;
  line-height: 1;
  color: #DE5C14;
}
.flow-card__en {
  margin-top: 4px;
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-size: clamp(13px, 11.865px + 0.303vw, 16px);
  line-height: 1;
  letter-spacing: 0.06em;
  color: #333;
}
.flow-card__ja {
  margin-top: 4px;
  font-size: clamp(15px, 13.108px + 0.505vw, 20px);
  font-weight: 400;
  color: #DE5C14;
}
@media (min-width: 769px) and (max-width: 1080px) {
  .flow-card {
    padding: 16px 18px 20px;
  }
  .flow-card:not(:last-child)::after {
    right: -26px;
    border-left-width: 12px;
  }
  .flow-card__en {
    font-size: 13px;
    letter-spacing: 0.04em;
  }
}
@media (max-width: 768px) {
  .flow-card:not(:last-child)::after {
    top: auto;
    right: 50%;
    bottom: -26px;
    margin: 0 -10px 0 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 16px solid #E4522A;
    border-bottom: none;
  }
  .flow-card {
    padding: 16px 20px 18px;
  }
}

/* -----------------------------------------------------------
   DEVELOPMENT STORY
   --------------------------------------------------------- */
.story {
  /* 角丸を見せるため、白背景でグレーの帯（.alliance）に 40px 重ねる */
  position: relative;
  z-index: 1;
  margin-top: -40px;
  padding: 180px 0 150px;
  background: #fff;
  border-radius: 40px 40px 0 0;
}
@media (max-width: 1080px) {
  .story {
    margin-top: -24px;
    padding: 104px 0 90px;
    border-radius: 24px 24px 0 0;
  }
}
@media (max-width: 768px) {
  .story {
    padding: 72px 0 56px;
  }
}
.story__list {
  margin-top: 66px;
}
@media (max-width: 768px) {
  .story__list {
    margin-top: 32px;
  }
}
.story__row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  min-height: 58px;
  padding: 12px 0;
  border-bottom: 1px solid #E4E4E4;
}
.story__row dt {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  letter-spacing: 0.04em;
  color: #DE5C14;
}
.story__row dd {
  margin: 0;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  color: #444444;
}
@media (max-width: 768px) {
  .story__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    min-height: 0;
    padding: 12px 0;
  }
  .story__row dt {
    font-size: 13px;
  }
  .story__row dd {
    font-size: 14px;
  }
}

/* -----------------------------------------------------------
   RESEARCH OUTPUT
   --------------------------------------------------------- */
.output {
  padding: 110px 0 120px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  border-radius: 40px 40px 0 0;
  color: #fff;
}
@media (max-width: 1080px) {
  .output {
    padding: 70px 0 80px;
  }
}
@media (max-width: 768px) {
  .output {
    padding: 48px 0 56px;
    border-radius: 24px 24px 0 0;
  }
}
.output__lead {
  margin-top: 44px;
  font-size: clamp(13px, 11.486px + 0.404vw, 17px);
  font-weight: 500;
  line-height: 1.9;
  text-align: center;
}
@media (max-width: 768px) {
  .output__lead {
    margin-top: 24px;
    text-align: left;
  }
  .output__lead br {
    display: none;
  }
}
.output__list {
  margin-top: 54px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
@media (max-width: 960px) {
  .output__list {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}

.output-card {
  padding: 30px 30px 34px;
  border-radius: 14px;
  background: #fff;
  color: #333333;
}
.output-card__en {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #DE5C14;
}
.output-card__head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-top: 4px;
  padding-bottom: 16px;
  border-bottom: 1px solid #EDE0DB;
}
.output-card__no {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(26px, 22.216px + 1.009vw, 36px);
  line-height: 1;
  color: #DE5C14;
}
.output-card__ja {
  font-size: clamp(15px, 13.108px + 0.505vw, 20px);
  font-weight: 500;
  color: #DE5C14;
}
@media (min-width: 769px) and (max-width: 1080px) {
  .output-card__ja {
    font-size: 16px;
  }
}
.output-card__title {
  margin-top: 20px;
  font-size: clamp(16px, 15.243px + 0.202vw, 18px);
  font-weight: 700;
  line-height: 1.5;
}
.output-card__text {
  margin-top: 14px;
  font-size: clamp(13px, 12.622px + 0.101vw, 14px);
  line-height: 1.85;
  color: #444444;
}
.output-card__note {
  margin-top: 12px;
  font-size: 12px;
  color: #777;
}

.output-wide {
  margin-top: 24px;
  padding: 32px 36px 36px;
  border-radius: 14px;
  background: #fff;
  color: #333333;
}
.output-wide__en {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #1F7A6B;
}
.output-wide__title {
  margin-top: 6px;
  font-size: clamp(16px, 14.486px + 0.404vw, 20px);
  font-weight: 700;
  color: #1F7A6B;
}
.output-wide__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: center;
  margin-top: 14px;
}
@media (max-width: 1080px) {
  .output-wide__body {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
}
.output-wide__text {
  font-size: clamp(13px, 12.622px + 0.101vw, 14px);
  line-height: 1.95;
  color: #444444;
}
.output-wide__id {
  display: inline-block;
  margin-top: 16px;
  padding: 7px 24px;
  border-radius: 999px;
  background: #E9F2EF;
  font-size: 12.5px;
  color: #2E5F55;
}
@media (max-width: 768px) {
  .output-wide {
    padding: 24px 20px 28px;
  }
}

/* -----------------------------------------------------------
   クロージング
   --------------------------------------------------------- */
.closing {
  position: relative;
}
.closing__photo img {
  width: 100%;
}
.closing__panel {
  position: relative;
  max-width: 1160px;
  margin: -76px auto 0;
  padding: 54px 40px 76px;
  border-radius: 40px 40px 0 0;
  background: #fff;
  text-align: center;
}
@media (max-width: 768px) {
  .closing__panel {
    margin-top: -40px;
    padding: 30px 20px 44px;
    border-radius: 24px 24px 0 0;
  }
}
.closing__title {
  font-size: clamp(19px, 12.567px + 1.715vw, 36px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.16em;
}
.closing__text {
  margin-top: 24px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2.12;
  letter-spacing: 0;
  color: #444444;
}
@media (max-width: 768px) {
  .closing__text br {
    display: none;
  }
}

/* ===========================================================
   会社情報（COMPANY）
   =========================================================== */
/* -----------------------------------------------------------
   PROFILE
   --------------------------------------------------------- */
.profile {
  padding: 136px 0 150px;
}
@media (max-width: 1080px) {
  .profile {
    padding: 80px 0 90px;
  }
}
@media (max-width: 768px) {
  .profile {
    padding: 48px 0 56px;
  }
}
.profile__table {
  margin-top: 88px;
  border-top: 1px solid #E6E6E6;
}
@media (max-width: 768px) {
  .profile__table {
    margin-top: 40px;
  }
}
.profile__row {
  display: grid;
  grid-template-columns: 255px minmax(0, 1fr);
  align-items: center;
  min-height: 74px;
  padding: 16px 0;
  border-bottom: 1px solid #E6E6E6;
}
.profile__row dt {
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  font-weight: 700;
  letter-spacing: 0.22em;
}
.profile__row dd {
  margin: 0;
  padding-left: 32px;
  border-left: 1px solid #E6E6E6;
  align-self: stretch;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  color: #444444;
}
@media (max-width: 768px) {
  .profile__row {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding: 14px 0;
  }
  .profile__row dt {
    letter-spacing: 0.1em;
    font-size: 14px;
  }
  .profile__row dd {
    margin-top: 8px;
    padding-left: 0;
    border-left: none;
    font-size: 14px;
  }
  .profile__row dd a[href^="tel:"] {
    display: inline-block;
    padding: 6px 0;
  }
}
.profile__map {
  display: inline-flex;
  align-items: center;
  height: 25px;
  padding: 0 12px;
  border-radius: 4px;
  background: #B9483E;
  color: #fff;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 1;
  letter-spacing: 0.04em;
}
.profile__map:hover {
  opacity: 0.82;
  color: #fff;
}
@media (max-width: 768px) {
  .profile__map {
    height: 32px;
    padding: 0 16px;
  }
}
.profile__business {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.profile__business li {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 8px 16px;
  border-radius: 4px;
  background: linear-gradient(90deg, #FDF1EC 0%, rgba(253, 241, 236, 0) 100%);
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  word-break: auto-phrase;
}
.profile__business-no {
  flex: 0 0 auto;
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  color: #DE5C14;
}

/* -----------------------------------------------------------
   BOARD MEMBERS
   --------------------------------------------------------- */
.members {
  padding: 108px 0 120px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  border-radius: 40px 40px 0 0;
}
@media (max-width: 1080px) {
  .members {
    padding: 70px 0 80px;
  }
}
@media (max-width: 768px) {
  .members {
    padding: 48px 0 56px;
    border-radius: 24px 24px 0 0;
  }
}
.members > .wrap {
  max-width: 1440px;
  padding: 0 42px;
}
@media (max-width: 768px) {
  .members > .wrap {
    padding: 0 16px;
  }
}
.members__list {
  margin-top: 82px;
  display: flex;
  flex-direction: column;
  gap: 86px;
}
@media (max-width: 1080px) {
  .members__list {
    margin-top: 48px;
    gap: 40px;
  }
}

.member {
  display: grid;
  grid-template-columns: 387px minmax(0, 1fr);
  gap: 77px;
  padding: 56px 97px 64px;
  border-radius: 40px;
  background: #fff;
}
@media (max-width: 1080px) {
  .member {
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 40px;
    padding: 40px 40px 44px;
    border-radius: 24px;
  }
}
@media (max-width: 768px) {
  .member {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
}
@media (max-width: 768px) {
  .member {
    padding: 26px 20px 30px;
    border-radius: 18px;
  }
}
.member__figure img {
  width: 100%;
  border-radius: 14px;
}
@media (max-width: 1080px) {
  .member__figure img {
    max-width: 320px;
  }
}
.member__role {
  font-size: 14px;
  letter-spacing: 0.06em;
  color: #DE5C14;
}
.member__name {
  margin-top: 8px;
  font-size: clamp(21px, 17.594px + 0.908vw, 30px);
  font-weight: 500;
  letter-spacing: 0.06em;
}
.member__history {
  display: grid;
  /* 1 項目が 1 行に収まる幅（260px）を確保できない時は 1 カラム */
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px 18px;
  margin-top: 26px;
}
.member__history li {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 8px 18px;
  border-radius: 4px;
  background: linear-gradient(90deg, #FDF3EE 0%, rgba(253, 243, 238, 0.35) 100%);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: #555;
}
@media (max-width: 1080px) {
  .member__history {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
}
@media (max-width: 480px) {
  .member__history li {
    gap: 12px;
    padding: 8px 14px;
  }
}
.member__year {
  flex: 0 0 auto;
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  color: #DE5C14;
}
.member__text {
  margin-top: 30px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2;
  letter-spacing: 0;
  color: #444444;
}
@media (max-width: 768px) {
  .member__text {
    margin-top: 20px;
    line-height: 1.95;
  }
  .member__text br {
    display: none;
  }
}

/* ===========================================================
   お問い合わせ（CONTACT）
   =========================================================== */
.contact {
  padding: 118px 0 150px;
}
@media (max-width: 1080px) {
  .contact {
    padding: 70px 0 90px;
  }
}
@media (max-width: 768px) {
  .contact {
    padding: 44px 0 56px;
  }
}
.contact__lead {
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  line-height: 2.12;
  letter-spacing: 0;
  text-align: center;
}
@media (max-width: 768px) {
  .contact__lead {
    text-align: left;
  }
}
.contact__panel {
  margin-top: 56px;
  border-radius: 24px;
  background: #EFEFEF;
  overflow: hidden;
}
@media (max-width: 768px) {
  .contact__panel {
    margin-top: 28px;
    border-radius: 16px;
  }
}
.contact {
  /* 送信ボタンの下のグレー帯に続けて表示（パネルの内側） */
}
.contact__note {
  margin: 0;
  padding: 0 40px 44px;
  background: #E4E4E4;
  font-size: clamp(12px, 11.243px + 0.202vw, 14px);
  line-height: 1.73;
  color: #666;
  text-align: center;
}
@media (max-width: 1080px) {
  .contact__note {
    padding: 0 32px 40px;
  }
}
@media (max-width: 768px) {
  .contact__note {
    padding: 4px 20px 36px;
  }
  .contact__note br {
    display: none;
  }
}

/* -----------------------------------------------------------
   フォーム（ダミー / Snow Monkey Forms 共通）
   --------------------------------------------------------- */
.cform,
.contact__panel .smf-form {
  padding: 62px 100px 0;
}
@media (max-width: 1080px) {
  .cform,
  .contact__panel .smf-form {
    padding: 40px 32px 0;
  }
}
@media (max-width: 768px) {
  .cform,
  .contact__panel .smf-form {
    padding: 26px 18px 0;
  }
}

.cform__row + .cform__row {
  margin-top: 34px;
}
.cform__label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  font-weight: 400;
}
.cform__req {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 3px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.04em;
}
.cform {
  /* デザインは文字量に応じた幅の 3 ボックス。入りきらない幅では折り返す */
}
.cform__radios {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 27px;
  margin-top: 14px;
}
@media (max-width: 1080px) {
  .cform__radios {
    gap: 12px 16px;
  }
}
@media (max-width: 768px) {
  .cform__radios {
    flex-direction: column;
    gap: 10px;
  }
}
.cform__radio {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  cursor: pointer;
}
.cform__radio input {
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #E2E2E2;
  flex: 0 0 auto;
  cursor: pointer;
}
.cform__radio input:checked {
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  box-shadow: inset 0 0 0 3px #fff;
}
.cform__input, .cform__textarea {
  display: block;
  width: 100%;
  margin-top: 14px;
  padding: 16px 18px;
  border: none;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.8;
  color: #333333;
}
.cform__input:focus, .cform__textarea:focus {
  outline: 2px solid rgba(222, 92, 20, 0.4);
  outline-offset: 1px;
}
.cform__textarea {
  min-height: 214px;
  resize: vertical;
}
.cform__action {
  margin: 62px -100px 0;
  padding: 48px 100px 24px;
  background: #E4E4E4;
}
@media (max-width: 1080px) {
  .cform__action {
    margin: 40px -32px 0;
    padding: 34px 32px 22px;
  }
}
@media (max-width: 768px) {
  .cform__action {
    margin: 28px -18px 0;
    padding: 26px 18px 20px;
  }
}
.cform__submit {
  display: block;
  width: 100%;
  max-width: 660px;
  margin: 0 auto;
  padding: 24px 20px;
  border: none;
  border-radius: 8px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: clamp(16px, 13.73px + 0.605vw, 22px);
  font-weight: 400;
  letter-spacing: 0.12em;
}
.cform__submit:hover {
  opacity: 0.9;
}
@media (max-width: 768px) {
  .cform__submit {
    padding: 18px 16px;
    font-size: 16px;
  }
}

/* -----------------------------------------------------------
   Snow Monkey Forms（プラグインの表組みレイアウトを解除して
   デザイン通り「ラベル → 入力欄」の縦並びにする）
   --------------------------------------------------------- */
.contact__panel .smf-item {
  display: block;
  margin: 0;
  padding: 0;
  border: none;
}
.contact__panel .smf-item + .smf-item {
  margin-top: 34px;
}
.contact__panel .smf-item__col {
  flex: none;
  max-width: none;
  padding: 0;
  border: none;
  background: none;
}
.contact__panel .smf-item__label {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
  font-weight: 400;
}
.contact__panel {
  /* 必須バッジ（項目に req クラスが付いているもの） */
}
.contact__panel .smf-item.req .smf-item__label__text::before {
  content: "必須";
  display: inline-flex;
  align-items: center;
  height: 20px;
  margin-right: 12px;
  padding: 0 8px;
  border-radius: 3px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.04em;
  vertical-align: 2px;
}
.contact__panel {
  /* 入力欄 */
}
.contact__panel .smf-text-control__control,
.contact__panel .smf-textarea-control__control,
.contact__panel .smf-select-control__control,
.contact__panel .smf-email-control__control,
.contact__panel .smf-tel-control__control {
  width: 100%;
  padding: 16px 18px;
  border: none;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.8;
  color: #333333;
}
.contact__panel .smf-text-control__control:focus,
.contact__panel .smf-textarea-control__control:focus,
.contact__panel .smf-select-control__control:focus,
.contact__panel .smf-email-control__control:focus,
.contact__panel .smf-tel-control__control:focus {
  outline: 2px solid rgba(222, 92, 20, 0.4);
  outline-offset: 1px;
}
.contact__panel .smf-textarea-control__control {
  min-height: 214px;
}
.contact__panel {
  /* ラジオ・チェックボックス（文字量に応じた幅。入りきらない分は下の行へ） */
}
.contact__panel .smf-radio-buttons-control__control,
.contact__panel .smf-checkboxes-control__control {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 27px;
}
.contact__panel .smf-radio-buttons-control__control > *,
.contact__panel .smf-checkboxes-control__control > * {
  flex: 0 1 auto;
}
@media (max-width: 1080px) {
  .contact__panel .smf-radio-buttons-control__control,
  .contact__panel .smf-checkboxes-control__control {
    gap: 12px 16px;
  }
}
@media (max-width: 768px) {
  .contact__panel .smf-radio-buttons-control__control,
  .contact__panel .smf-checkboxes-control__control {
    flex-direction: column;
    gap: 10px;
  }
}
.contact__panel .smf-label {
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  font-size: clamp(14px, 12.486px + 0.404vw, 18px);
}
.contact__panel .smf-label label {
  display: block;
  padding: 16px 20px;
  cursor: pointer;
}
.contact__panel .smf-radio-button-control,
.contact__panel .smf-checkbox-control {
  display: flex;
  align-items: center;
  gap: 12px;
}
.contact__panel .smf-radio-button-control__control,
.contact__panel .smf-checkbox-control__control {
  appearance: none;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
  border: none;
  border-radius: 50%;
  background: #E2E2E2;
  cursor: pointer;
}
.contact__panel .smf-radio-button-control__control:checked,
.contact__panel .smf-checkbox-control__control:checked {
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  box-shadow: inset 0 0 0 3px #fff;
}
.contact__panel .smf-radio-button-control__control:focus-visible,
.contact__panel .smf-checkbox-control__control:focus-visible {
  outline: 2px solid rgba(222, 92, 20, 0.5);
  outline-offset: 2px;
}
.contact__panel .smf-checkbox-control__control {
  border-radius: 3px;
}
.contact__panel .smf-checkbox-control__control:checked {
  box-shadow: inset 0 0 0 2px #fff;
}
.contact__panel {
  /* エラー表示 */
}
.contact__panel .smf-item__controls .smf-error-messages {
  margin-top: 8px;
  color: #C0392B;
  font-size: 13px;
}
.contact__panel {
  /* 送信ボタンの帯 */
}
.contact__panel .smf-action {
  margin: 62px -100px 0;
  padding: 48px 100px 24px;
  background: #E4E4E4;
  text-align: center;
}
@media (max-width: 1080px) {
  .contact__panel .smf-action {
    margin: 40px -32px 0;
    padding: 34px 32px 22px;
  }
}
@media (max-width: 768px) {
  .contact__panel .smf-action {
    margin: 28px -18px 0;
    padding: 26px 18px 20px;
  }
}
.contact__panel .smf-button-control__control,
.contact__panel .smf-action button {
  display: block;
  width: 100%;
  max-width: 660px;
  margin: 0 auto;
  padding: 24px 20px;
  border: none;
  border-radius: 8px;
  background: linear-gradient(100deg, #E16C39 0%, #D8250A 100%);
  color: #fff;
  font-size: clamp(16px, 13.73px + 0.605vw, 22px);
  font-weight: 400;
  letter-spacing: 0.12em;
  cursor: pointer;
}
.contact__panel .smf-button-control__control:hover,
.contact__panel .smf-action button:hover {
  opacity: 0.9;
}
.contact__panel {
  /* 「戻る」ボタンは控えめに */
}
.contact__panel .smf-action .smf-button-control--back button,
.contact__panel .smf-action button[data-action=back] {
  max-width: 300px;
  margin-top: 14px;
  background: #fff;
  color: #444444;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* ===========================================================
   その他
   =========================================================== */
.notfound {
  padding: 140px 0 160px;
  text-align: center;
}
.notfound__title {
  font-family: "Tenor Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: clamp(48px, 29.837px + 4.844vw, 96px);
  line-height: 1;
}
.notfound__text {
  margin-top: 20px;
  font-size: 15px;
  color: #555;
}
.notfound .btn-round {
  margin-top: 40px;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.12);
}
@media (max-width: 768px) {
  .notfound {
    padding: 80px 0 90px;
  }
}

/* プライバシーポリシー／サイト利用規約：長文なので本文は小さめ・幅を絞る */
.page-privacy-policy .article .wrap,
.page-site-policy .article .wrap {
  max-width: 1000px;
}
.page-privacy-policy .article__body,
.page-site-policy .article__body {
  margin-top: 0;
}
.page-privacy-policy .entry-content,
.page-site-policy .entry-content {
  font-size: clamp(14px, 13.243px + 0.202vw, 16px);
  line-height: 2;
}
.page-privacy-policy .entry-content h2,
.page-site-policy .entry-content h2 {
  margin-top: 64px;
  padding-bottom: 16px;
  font-size: clamp(18px, 16.486px + 0.404vw, 22px);
}
.page-privacy-policy .entry-content h2 + *,
.page-site-policy .entry-content h2 + * {
  margin-top: 24px;
}
@media (max-width: 768px) {
  .page-privacy-policy .entry-content h2,
  .page-site-policy .entry-content h2 {
    margin-top: 44px;
  }
}
.page-privacy-policy .entry-content h2:first-child,
.page-site-policy .entry-content h2:first-child {
  margin-top: 0;
}
.page-privacy-policy .entry-content > * + *,
.page-site-policy .entry-content > * + * {
  margin-top: 1.2em;
}
.page-privacy-policy .entry-content ul li,
.page-privacy-policy .entry-content ol li,
.page-site-policy .entry-content ul li,
.page-site-policy .entry-content ol li {
  margin-top: 0.3em;
}
.page-privacy-policy .entry-content .has-text-align-right,
.page-site-policy .entry-content .has-text-align-right {
  margin-top: 64px;
  text-align: right;
}

/* 固定ヘッダーぶんアンカー位置をずらす */
[id] {
  scroll-margin-top: 130px;
}
@media (max-width: 1080px) {
  [id] {
    scroll-margin-top: 100px;
  }
}
@media (max-width: 768px) {
  [id] {
    scroll-margin-top: 76px;
  }
}

/* -----------------------------------------------------------
   医療関係者向けの但し書き（SMOVEページ／学会発表・論文一覧）
   --------------------------------------------------------- */
.medical-notice {
  margin-top: 28px;
}
@media (max-width: 768px) {
  .medical-notice {
    margin-top: 16px;
  }
}
.medical-notice p {
  padding: 14px 24px;
  border-radius: 8px;
  background: #EFEFEF;
  font-size: clamp(12px, 11.243px + 0.202vw, 14px);
  line-height: 1.8;
  letter-spacing: 0.02em;
  color: #5A5A5A;
  text-align: center;
}
@media (max-width: 768px) {
  .medical-notice p {
    padding: 12px 16px;
    text-align: left;
  }
  .medical-notice p br {
    display: none;
  }
}

/*# sourceMappingURL=style.css.map */
