@charset "UTF-8";
/* オリジナルスタイルの定義
***************************************************************/

/* カスタム変数 */
:root {
  --swl-fz--root: clamp(14px, 9.0769px + 0.4808vw, 16px) !important; /* ルートフォントをリキッドに */
  --font-family-ja: 'Noto Sans JP', sans-serif;
  --color_text: #111111; /* テキスト・SWELLのGPUに合わせる */
  --wp--preset--color--black: #111111; /* テキスト・SWELLのGPUに合わせる */
  --color_main: #de0059; /* メインカラーピンク・SWELLのGPUに合わせる */
  --color-accent: #142ab8;　/* メインカラー青 */
  --color_pale-blue: #f8f9ff; /* 淡い青 */
--color_note:#5A5A60; /*注釈*/
	--color_navy:#000C45; /*濃紺*/
}

body {
  letter-spacing: 0em;
  font-family: var(--font-family-ja);
  font-weight: 400;
  text-align: justify;
}

p {
  text-align: justify;
  letter-spacing: 0;
  font-family: var(--font-family-ja);
  font-weight: 400;
  line-height: 1.9;
}
.wp-block-list li {
	line-height: 1.9;
}

/* フルワイドブロックの余計なマージンを削除
***************************************************************/
.swell-block-fullWide + .swell-block-fullWide {
  margin-top: 0 !important;
}

.post_content > .swell-block-fullWide {
  margin-bottom: 0 !important;
}

/* SWELLのデフォルトの「l-content」の余計な下マージンを削除
***************************************************************/
.home .l-content {
  margin: 0 auto;
}

.l-content:has(.swell-block-fullWide) {
  padding: 0;
}

.l-content {
  margin: 0 auto;
}

/* SWELLのデフォルトのパンくずの背景色を消す
***************************************************************/
.-body-solid .p-breadcrumb.-bg-on {
  box-shadow: none;
}
.p-breadcrumb.-bg-on {
  background: transparent !important;
}

/* SWELLのデフォルトのスクロールヒントが隠れてしまうのを調整
***************************************************************/
.c-scrollHint {
  margin-right: 0.5rem;
}

/* デバイス制限
***************************************************************/
@media (min-width: 768px) {
  .u-sp {
    display: none !important;
  }
}

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

/* 共通注釈用クラス
***************************************************************/
.u-text__note {
	font-size:0.875rem;
	color:var(--color_note);
}

/* オリジナルH2見出し（共通）
***************************************************************/
.post_content h2.is-style-section_ttl {
  font-size: calc(26 / 14 * 1rem);
  line-height: 1.6;

  @media (min-width: 960px) {
    font-size: calc(40 / 16 * 1rem);
  }
}
.post_content h3.is-style-section_ttl {
  line-height: 1.6;
	font-size:calc(18 / 14 * 1rem);
	
	@media (min-width: 960px) {
		font-size: calc(22 / 16 * 1rem);
	}
}

/* スクロール監視アニメーション
***************************************************************/
/*下からふわっふわっと（Stagger）アニメーション */
.stagger-item {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;

  .js-stagger-group.is-in-view & {
    opacity: 1;
    transform: translateY(0);
  }
}

/*下からふわっとアニメーション */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 1s,
    transform 1s;

  &.is-in-view {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ボタンレイアウト（共通）※SWELLボタンをカスタムする場合（c-original-buttonを付与）

***************************************************************/
.c-original-button .swell-block-button__link {
  white-space: nowrap;
  width: calc(360 / 16 * 1rem);
  max-width: 100%;
  padding: 1.2em 1.5em;
}

.c-original-button .swell-block-button__link a span {
  font-size: 1rem;
}

/* ホバーでアイコンが右にズレる */
.c-original-button .swell-block-button__link svg {
  transition: transform 0.3s ease;
}
.c-original-button .swell-block-button__link:hover {
  svg {
    transform: translateX(0.5rem);
  }
}

/* ヘッダーCTAボタンのみのスタイル */
.c-original-button.l-header__cta .swell-block-button__link {
  width: 100%;
  max-width: calc(360 / 14 * 1rem);
  font-weight: 1rem;
  padding: 1em 1.5em;

  @media (min-width: 960px) {
    min-width: 11.5rem;
    font-size: 0.9em;
  }
}

/* ヘッダーナビ
***************************************************************/
.c-gnav > .menu-item > a .ttl {
  font-weight: 600;
}

/* ヘッダーナビ（inner幅・高さカスタム） */
.l-header__inner.l-container,
.l-fixHeader__inner.l-container {
  max-width: 100%;
  /* padding-right: 0; 右側はボタンべたづけなど */
}

/* ドロワーメニューのリストメニューのスタイル */
.c-spnav.c-listMenu a {
  color: var(--color_text);
  font-weight: 600;

  &::before {
    color: var(--color_main);
  }
}

/* ドロワーメニューのタイトルを非表示 */
.c-widget__title.-spmenu {
  display: none;
}
/* ドロワーメニューのボディのパディングを調整 */
.p-spMenu__body {
  padding: 4rem 4vw 10vw 4vw;
}

/* ファーストビュー
***************************************************************/
.p-fv::before {
	background: linear-gradient(90deg, #F4F7FC 0%, #F4F7FC 26%, rgba(244, 247, 252, 0.88) 42%, rgba(244, 247, 252, 0) 64%);
}

.post_content h2.is-style-section_ttl.p-fv__title {
  margin: 0.875rem 0 0;
  font-size: min(9vw , 40px);
  font-weight: 700;
  line-height: 1.4;
	  text-shadow:
    0 0 4px rgb(244 247 252 / 0.9),
    0 0 16px rgb(244 247 252 / 0.8);
  
  @media (min-width: 960px) {
    font-size: min(4.3vw , 55px);
    white-space: nowrap;
    margin-block-start: 1rem;
  }
}

.p-fv__lead {
  margin: 1rem 0 0;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.8;
}
@media (min-width: 960px) {
  .p-fv__lead {
    margin-block-start: 1.75rem;
    font-size: 1.25rem;
  }
}

.p-fv__note {
	font-size:0.8rem;
	color:var(--color_note);
	
	@media(min-width:960px) {
		font-size:0.875rem;
	}
} 

/* FVの３つのバッジ
***************************************************************/
.p-fv-badge {
  position: relative;
  aspect-ratio: 163/188;
  background-color: #DE0059;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
	font-weight:700;
}

.p-fv-badge .wp-block-group__inner-container {
  position: absolute;
  inset: 2px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 0.125rem;
  background-color: #fff;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  font-weight: 700;
  text-align: center;
  padding-bottom:0.5em;
}


.p-fv-badge__icon {
    width: 1.5rem;
    height: 1.5rem;
    stroke: var(--color_main);
	margin-bottom:0!important;
}

@media(min-width:960px) {
	.p-fv-badge__icon {
      width: 2rem;
	  height: 2rem;
	}
}

.p-fv-badge__icon img {
	object-fit:contain;
	display:block;
}

.p-fv-badge__label {
  font-size: 0.8125rem;
  margin-bottom:0!important;
}
@media(min-width:960px) {
  .p-fv-badge__label {
	  font-size:1rem;
 }
}

.p-fv-badge__date {
  display: grid;
  justify-items: center;
  line-height: 1;
}

.p-fv-badge__year {
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  line-height:1.4;
}
@media (min-width: 960px) {
  .p-fv-badge__year {
    font-size: 0.875rem;
  }
}

.p-fv-badge__day {
  font-size: 1.3rem;
  letter-spacing: 0.02em;
  line-height:1;
}
@media (min-width: 960px) {
  .p-fv-badge__day {
    font-size: 1.8rem;
  }
}

.p-fv-badge__text {
  font-size: 0.75rem;
  line-height: 1.4;
}
@media (min-width: 960px) {
  .p-fv-badge__text {
    font-size: 1rem;
  }
}

.p-fv-badge__amount {
  color: #DE0059;
  font-size: 1.8rem;
  line-height: 1;
	padding-inline:0.1rem;
}
@media (min-width: 960px) {
  .p-fv-badge__amount {
    font-size: 2.3rem;
  }
}

.p-fv-badge__unit {
  font-size: 0.6875rem;
}
@media (min-width: 960px) {
  .p-fv-badge__unit {
    font-size: 0.9375rem;
  }
}

/* イントロ
***************************************************************/
.p-intro {
position:relative;	
}
.p-intro__read {
	@media(min-width:960px) {
		text-align:center;
	}
}

.p-intro__img {
	position:absolute;
}
.p-intro__img img {
	object-fit:contain;
}

.p-intro__img.p-intro__img--left {
	aspect-ratio: 202/206;
	width:7rem;
	height:auto;
	top:-6rem;
	left:0.5rem;
	
	@media (min-width:960px) {
		width:12.75rem;
		top:-2rem;
	}
}

.p-intro__img.p-intro__img--right {
	aspect-ratio: 180/225;
	width:7rem;
	height:auto;
	bottom:-10rem;
	right:1rem;
	
		@media (min-width:960px) {
		width:11.25rem;
		bottom:-7rem;
	}
}

/* MedTech WINGSで得られる3つのこと
***************************************************************/
.p-feature__card {
	border-radius:4px;
}

.p-feature__card-img img {
	width:10rem;
	height:10rem;
	aspect-ratio:1;
	object-fit:contain;
}
.post_content h3.p-feature__card-title {
	margin:1em 0 1.5em;
}
.p-feature__card-num {
	position:absolute;
	line-height:1;
	top:-2rem;
	left:1.5rem;
}

/* プログラムの流れ
***************************************************************/
.p-program__read{
	@media(min-width:960px) {
		text-align:center;
	}
}

.p-program__step-requirements {
	@media (min-width:960px) {
		font-size:0.875rem;
	}
}

.p-program__step-list {
	display:flex;
	flex-direction:column;
	gap:0.5em;
}

.post_content .p-program__step-list li{
	font-size:1rem;
	line-height:1.8rem;
	margin:0;
}

.post_content .p-program__step-list li::marker {
	color:var(--color-accent) !important;
}

.wp-block-group.is-stack.p-program__step-goal {
	padding:0.8rem 1.5rem;
	
	@media(min-width:960px) {
		display:flex;
		flex-direction:row;
		gap:1.5rem;
	}
}

.wp-block-group.is-stack.p-program__announcement {
	display:flex;
	flex-direction:column;
	gap:1rem;
	align-items:center;
	justify-content:center;
	
	@media(min-width:960px) {
		display:flex;
		flex-direction:row;
		gap:2rem;
	}
}
.p-program__announcement-text {
	font-size:calc(16 / 14 * 1rem);
	line-height:1.6;
}

.p-program__announcement-img {
	width:calc(100 / 14 * 1rem);
	object-fit:contain;
}

/* スケジュール
***************************************************************/
.p-schedule {
	
}

.p-schedule__item {
	border-radius:4px;
	padding-bottom:1.5rem !important;
}
.p-schedule__item-label {
	padding:0.5rem 1rem !important;
	border-radius:4px 4px 0 0;
}

.p-schedule__item-title {
	line-height:1.6;
	
	@media(min-width:960px){
		min-height:3.2em;
		margin-bottom:0.7rem;
	}
}

.p-schedule__item-date {
	line-height:1.6;
	
	@media(min-width:960px){
		min-height:3.2em;
	}
}

/* 募集要項
***************************************************************/
.p-requirements__table.wp-block-table table {
	border-top:2px solid var(--color_navy)
}
.p-requirements__table.wp-block-table th {
	border: 1px solid #E2E6F3;
	color:var(--color_navy);
	
	@media (min-width: 960px) {
		padding:1.375em 1.75em;
		width:16rem !important;
	}
}
.p-requirements__table.wp-block-table td {
	line-height:1.8;
	border: 1px solid #E2E6F3; 
	@media (min-width: 960px) {
		padding:1.375em 1.75em;
	}
}

/* CEOメッセージ
***************************************************************/
.post_content h2.is-style-section_ttl.p-message__title .swl-fz{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  color: var(--color-accent);
  font-size: 0.875rem;
  font-weight: 700;
	
	@media (min-width: 960px) {
		    gap: 1rem;
    font-size: 1rem;
	}
}
.p-message__title .swl-fz::before,
.p-message__title .swl-fz::after {
  content: "";
  width: 1.75rem;
  height: 1px;
  background-color: currentColor;
	
	@media (min-width: 960px) {
		width: 2.5rem;
	}
}

/* 中間banner
***************************************************************/
.p-banner__box {
	padding:calc(40 / 14 * 1rem) calc(24 / 14 * 1rem);
	@media(min-width:960px) {
		padding:calc(72 / 16 * 1rem) calc(80 / 16 * 1rem);
	}
}

.post_content h2.is-style-section_ttl.p-banner__title {
	font-size:1.3rem;
	line-height:1.8;

	@media(min-width:960px) {
		font-size:calc(32 / 16 * 1rem);
	}
}

.p-banner__link {
	@media(min-width:960px) {
		text-align:left;
	}
}

/* よくある質問
***************************************************************/
.p-faq .swell-block-faq__item {
	background:#fff;
	padding:1rem;

	@media(min-width:960px){
	padding:1rem 2rem;
  }
}

.p-faq.swell-block-faq .faq_q{
	border-bottom:1px solid #C9D2F2;
}

.p-faq .faq_q,
.p-faq .faq_a {
	line-height:1.8;
}

/* 代表メッセージ
***************************************************************/
.p-message__box {
	padding:2.5em 2em !important;
}

/* 下部CTA
***************************************************************/
.wp-block-group.p-cta__container {
  padding: calc(64 / 16 * 1rem) calc(16 / 16 * 1rem);
}

.p-cta__link-wrap {
  margin-top: 2rem;
  @media (min-width: 960px) {
    margin-top: 3rem;
  }
}
.p-cta__link-wrap .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 1rem;

  @media (min-width: 768px) {
    flex-direction: row;
    gap: calc(24 / 16 * 1rem);
  }
}

.p-cta__link-wrap .c-original-button {
  margin: 0;
}

/* 運営会社情報
***************************************************************/
.p-info__container {
  padding-inline: 1.5rem;
  @media (min-width: 960px) {
    padding-inline: calc(40 / 16 * 1rem);
  }
}
.p-info__img {
  width: 80%;
  margin-inline: auto;

  @media (min-width: 960px) {
    width: 100%;
  }
}

.p-info__company-link {
  a {
    transition: all 0.3s ease;
    border-bottom: 1px solid #c9d2f2 !important;

    &:hover {
      opacity: 0.7;
    }
  }
}

/* SWELLのデフォルトのフッター直前ウィジェット
***************************************************************/
/*余計なマージンをリセット*/
.w-beforeFooter {
  margin: 0 auto;
  overflow: hidden;
}

/* SWELLデフォルトのフッター（ウィジェット等）
***************************************************************/
/*余計なウィジェットの余白をリセット*/
.w-footer__box {
  padding: 0;
}

.l-footer__foot {
  border-top: 1px solid #e2e6f3;
}

/* フッターウィジェット（カスタムHTML）
***************************************************************/
.l-footer__widgetArea {
  padding: 0;
}
.l-footer .w-footer {
  max-width: none;
  padding: 0;
}

.l-footer .c-widget {
  margin: 0;
}

.c-site-footer {
  padding: 3.5rem 4vw 3.5rem;
  max-width: 1280px;
  margin-inline: auto;

  @media (min-width: 960px) {
    padding: 4rem 2.5rem 4rem;
  }
}

.c-site-footer__suteam {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: 5rem;

  @media (min-width: 960px) {
    margin-bottom: 3.5rem;
  }
}

.c-site-footer__suteam-logo,
.c-site-footer__brand {
  display: block;
  line-height: 0;
}
.c-site-footer__suteam-logo {
  width: 19.5rem;
  aspect-ratio: 314 / 56;
}

.c-site-footer__brand {
  width: 21.5rem;
  aspect-ratio: 277 / 60;
}

.c-site-footer__suteam-logo img,
.c-site-footer__brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.c-site-footer p.c-site-footer__suteam-text {
  text-align: center;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color_text);
	white-space:nowrap;
}

.c-site-footer__bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;

  @media (min-width: 960px) {
    flex-direction: row;
    justify-content: space-between;
    gap: 1.25rem;
  }
}

.c-site-footer__nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin: 0;
  padding: 0;

  @media (min-width: 960px) {
    gap: 1.5rem;
  }
}

.c-site-footer__nav a {
  color: var(--color_text);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.3s ease;

  @media (min-width: 960px) {
    font-size: calc(14 / 16 * 1rem);
  }
}

.c-site-footer__nav a:hover {
  opacity: 0.7;
}