/*----------------------------------------------------------------------------

	common

----------------------------------------------------------------------------*/

:root {
  --col-main: #fff;
  --col-catch: #1695d4;
  --col-base: #102d7b;
  --col-orange: #ee7f36;
  --col-pink: #ed8097;
  --col-navy: #1a2164;
  --col-white: #fff;
  --col-black: #000;
  --col-paleBlue: #c3e4e5;
  --col-lightBlue: #51bdc4;
  --col-green: #009b7e;
  --col-beige: #fffce4;
  --col-gray-line: #d0d0d0;
  --col-gray-frame: #dfdfdf;

  --col-dot: rgba(255, 255, 255, 1);
  --col-sogo: #ffd8dc;
  --col-manabi: #b4d7ab;
  --col-line: #d0d0d0;
}

:root {
  --col-txt: #3e3a39;
}

:root {
  --font-noto-sans: "Noto Sans JP", sans-serif;
  --font-zen-kaku-gothic-new: "Zen Kaku Gothic New", sans-serif;
  --font-zen-kaku-gothic-antique: "Zen Kaku Gothic Antique", sans-serif;
  --font-rocknroll-one: "RocknRoll One", sans-serif;
  --shippori-mincho-b1: "Shippori Mincho B1", serif;
}

/* | size px to rem */
:root {
  --size-12: 0.75rem;
  /* 12px */
  --size-14: 0.875rem;
  /* 14px */
  --size-16: 1rem;
  /* 16px */
  --size-18: 1.125rem;
  /* 18px */
  --size-20: 1.25rem;
  /* 20px */
  --size-22: 1.375rem;
  /* 22px */
  --size-24: 1.5rem;
  /* 24px */
}

:root {
  --header-height: 121px;
  --footer-height: 130px;
  --sp-max-width: 400px;
  --radius-btn: 2px;
  --radius-cont: 12px;
}

html {
  scroll-snap-type: y proximity;
  scroll-padding-top: 50px;
  scroll-behavior: smooth;
}

body {
  background-color: var(--col-main);
  background-image: url(../img/img-bcg-pattern.png);
  background-size: 133px 140px;
  background-repeat: repeat;
  color: var(--col-txt);
  font-family: var(--font-zen-kaku-gothic-antique);
  font-size: 16px;
  font-weight: 400;
}

main {
  height: auto;
  position: relative;
  width: 100%;
}

/*----------------------------------------------------------------------------

	main

----------------------------------------------------------------------------*/

.main-content {
  margin: 0 auto;
  width: 100%;
}

.header {
  display: flex;
  background-color: var(--col-white);
  height: var(--header-height);
  padding: 20px;
  width: 100%;
  justify-content: center;
  align-items: center;
}

.header__container {
  width: 100px;
  height: 77px;
}

.header img {
  width: 100%;
  height: auto;
  margin-inline: 0 auto;
}

/*----------------------------------------------------------------------------

	SP

----------------------------------------------------------------------------*/

.sp-area {
  background-color: var(--col-main);
  height: 100%;
  margin: 0 auto 60px;
  max-width: var(--sp-max-width);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
}

.ly_cont {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-items: center;
  gap: 20px;
  width: 100%;
}

.ly_mainProgram {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-items: center;
  gap: 0;
  width: 100%;
  margin-top: 46px;
}

.section {
  width: 100%;
}

.hp_bcg {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  border-radius: var(--radius-cont);
  background: var(--col-white);
}

.hp_navWrapper {
  padding: 32px 16px;
}

.hp_mainProgWrapper {
  padding-inline: 16px;
  padding-block: 20px 24px;
  border-radius: 0 0 var(--radius-cont) var(--radius-cont);
}

.fv img {
  height: auto;
  width: 100%;
  /* ビジュアルによって変更 */
  margin-top: 15px;
}

.section__inner {
  padding: 0;
}

.el_btn {
  display: flex;
  padding: 16px 24px;
  justify-content: center;
  align-items: center;
  gap: 16px;
  border-radius: var(--radius-btn);
  font-family: var(--font-zen-kaku-gothic-antique);
  font-size: var(--size-22);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  transition: all 0.2s ease-in-out;
}

.el_btn.hp_apply {
  background-color: var(--col-navy);
  color: #fff;
  width: 100%;
}

.el_btn.hp_apply::after {
  content: "";
  display: flex;
  width: 16px;
  height: 16px;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1/1;
  background-image: url(../img/icon/arrow-white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  transition: all 0.2s ease-in-out;
}

.el_btn.hp_nav {
  background: var(--col-orange);
  color: var(--col-white);
  font-size: var(--size-22);
  width: 100%;
}

.el_btn.hp_nav::after {
  content: "";
  display: flex;
  width: 16px;
  height: 16px;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1/1;
  background-image: url(../img/icon/arrow-white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  transform: rotate(90deg);
  transition: all 0.2s ease-in-out;
}

.el_btn:hover {
  box-shadow: unset;
  transform: translate(3px, 3px);
}

.el_btn.hp_apply:hover::after {
  transform: translateX(10px);
}

.el_btn.hp_nav:hover::after {
  transform: rotate(90deg) translateX(8px);
}

.el_btn.hp_short {
  width: 300px;
}

.section.hp_border {
  border-top: 6px solid var(--col-orange);
  border-bottom: 6px solid var(--col-orange);
}

.bl_defaultImg {
  width: 100%;
  height: auto;
}

.openCampus_nav {
  margin-top: 24px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: min(100%, 300px);
}

.section.hp_timetable {
  margin-top: 60px;
}

.ly_program {
  margin-top: 50px;
}

.hp_program {
  margin-top: -46px;
}

.bl_applyTxt {
  padding-top: 16px;
  text-align: center;
  font-family: var(--font-zen-kaku-gothic-antique);
  font-size: var(--size-14);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.01em;
  background-color: var(--col-white);
  color: var(--col-black);
  padding-bottom: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.bl_applyTxt::after {
  content: "";
  width: 100%;
  height: 20px;
  border-bottom: 1px solid var(--col-line);
}

.el_linkTxt {
  color: var(--col-catch);
  text-decoration: underline;
}

.bl_applyTel {
  border-radius: 0 0 var(--radius-cont) var(--radius-cont);
  padding-block: 0;
  margin-top: -1px;
}

.el_btn.hp_sogo {
  background-color: var(--col-sogo);
}

.el_btn.hp_manabi {
  background-color: var(--col-manabi);
  white-space: nowrap;
}

.bl_formWrapper.hp_bcg {
  border-radius: 0 0 var(--radius-cont) var(--radius-cont);
  padding-inline: 24px;
  padding-bottom: 34px;
  gap: 16px;
}

.section.hp_entry {
  margin-bottom: 50px;
}

.section.hp_benefit_2 {
  margin-top: -40px;
}

.section.hp_access {
  margin-top: 2px;
  padding-block: 0 32px;
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: auto auto;
  gap: 24px;
}

.section.hp_access a > img {
  margin-top: -1px;
}

.bl_accessBody {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.bl_accessBody p {
  color: #000;
  text-align: center;
  font-family: var(--font-zen-kaku-gothic-new);
  font-size: var(--size-14);
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.01em;
}

/* リンク画像 */
.hp_linkImg {
  transition: all 0.2s ease-in-out;
}

.hp_linkImg:hover {
  opacity: 0.8;
}

/*----------------------------------------------------------------------------

	footer

----------------------------------------------------------------------------*/

footer {
  display: flex;
  width: 100%;
  height: var(--footer-height);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: var(--col-white);
}

.copyright small {
  font-family: var(--font-noto-sans);
  font-size: var(--size-12);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
}
