@charset "UTF-8";
/* --------------------------------------------------
 ※※※※※※※※※※※※※※※※※※※※※※※※
 共通ページ用
 このファイルはsassでコンパイルされています
 以下の内容を変更したい場合は構成するscssファイルを
 ご確認ください
 ※※※※※※※※※※※※※※※※※※※※※※※※
-------------------------------------------------- */
@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap";
@import "https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700;900&display=swap";
:root {
  --color-white: #fff;
  --color-black: #000;
  --color-gray: #757575;
  --color-primary: #1368ac;
  --color-primary-dark: #0f4c7d;
  --color-secondary: #107d4e;
  --color-secondary-light: #56a382;
  --color-accent: #d14600;
  --color-text-sub: #5a5a5a;
  --color-text-link: #003ee5;
  --color-text-highlight: #ff0;
  --color-bg-primary: #f4fafd;
  --color-bg-primary-dark: #e1f0fa;
  --color-bg-secondary: #ebf4f0;
  --color-bg-accent: #fff5e1;
  --color-bg-highlight: #fff9aa;
  --color-bg-base: #fafafa;
  --color-error: #ce0000;
}

:root {
  --family-base: "Noto Sans JP", sans-serif;
  --family-round: "Zen Maru Gothic", sans-serif;
  --font-size-3xs: 8px;
  --font-size-2xs: 10px;
  --font-size-xs: 12px;
  --font-size-s: 14px;
  --font-size-m: 16px;
  --font-size-l: 18px;
  --font-size-xl: 20px;
  --font-size-2xl: 24px;
  --font-size-3xl: 30px;
  --font-size-4xl: 34px;
  --font-size-5xl: 40px;
  --font-size-6xl: 48px;
  --line-none: 1;
  --line-tight: 1.3;
  --line-base: 1.5;
  --line-relax: 1.8;
  --weight-normal: 400;
  --weight-demi: 600;
  --weight-bold: 700;
  --weight-black: 900;
}

:root {
  --trans-default: 0.3s ease;
}

/* ------------------------------
  base
------------------------------ */
html {
  scroll-padding-top: calc(var(--header-height, 0px) + 16px);
}
@media screen and (max-width: 768.9px) {
  html {
    -webkit-text-size-adjust: 100%;
  }
}

body {
  display: flex;
  box-sizing: border-box;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px));
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  color: var(--color-black);
  font-family: var(--family-base);
  font-size: var(--font-size-s);
  line-height: var(--line-base);
  word-wrap: break-word;
  overflow-wrap: anywhere;
  image-rendering: auto;
}
@media screen and (min-width: 769px) {
  body {
    position: relative;
    overflow-x: auto;
    font-size: var(--font-size-m);
  }
}
.is-fixed body {
  position: fixed;
  width: 100%;
  height: auto;
  overflow: visible;
}

form {
  display: contents;
}

img {
  max-width: 100%;
  max-height: 100%;
  vertical-align: middle;
  image-rendering: -webkit-optimize-contrast;
}

button {
  cursor: pointer;
}

.only-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  pointer-events: none;
}

@media screen and (max-width: 768.9px) {
  .is-pc {
    display: none !important;
  }
}

@media screen and (min-width: 769px) {
  .is-sp {
    display: none !important;
  }
}

/* ------------------------------
  focus（JIS AA対応・黄色×黒の二重枠）
------------------------------ */
:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #ffd700;
}

/* ------------------------------
  footer
------------------------------ */
.footer {
  padding: 32px;
  background-color: var(--color-bg-base);
}
.footer__inner {
  max-width: 996px;
  margin-inline: auto;
}
.footer__menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-block: 0;
  padding-left: 0;
  list-style: none;
}
.footer__menu-link {
  color: var(--color-primary);
  font-size: var(--font-size-m);
  font-weight: var(--weight-bold);
}
@media (any-hover: hover) {
  .footer__menu-link:hover {
    text-decoration: none;
  }
}
.footer__logo {
  display: block;
  width: min(138px, 100%);
  margin: 16px auto 0;
}
@media (any-hover: hover) {
  .footer__logo {
    transition: scale var(--trans-default);
  }
  .footer__logo:hover {
    scale: 1.1;
  }
}
.footer__logo img {
  width: 100%;
  height: auto;
}
.footer__address {
  margin-top: 16px;
  color: var(--color-text-sub);
  font-size: var(--font-size-xs);
  font-style: normal;
  text-align: center;
}
.footer__copy {
  display: block;
  color: var(--color-text-sub);
  font-size: var(--font-size-xs);
  text-align: center;
}

/* ------------------------------
  header
------------------------------ */
.header {
  position: sticky;
  z-index: 2;
  top: 0;
  left: 0;
}
@media screen and (min-width: 769px) {
  .header {
    padding: 8px 16px;
    background-color: var(--color-white);
  }
  .header--top {
    position: fixed;
    box-sizing: border-box;
    width: calc(100% - 40px);
    margin: 30px 20px 0;
    border-radius: 25px;
    box-shadow: 0 0 12px rgba(19, 104, 172, 0.15);
  }
}
@media screen and (min-width: 769px) {
  .header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0 8px;
  }
}
@media screen and (max-width: 768.9px) {
  .header__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px;
    background: var(--color-white);
    gap: 16px;
  }
}
.header__logo-box {
  display: flex;
  align-items: center;
  gap: 16px;
}
.header__logo {
  display: flex;
  align-items: center;
  height: 40px;
}
@media (any-hover: hover) {
  .header__logo {
    transition: scale var(--trans-default);
  }
  .header__logo:hover {
    scale: 1.1;
  }
}
.header__logo img {
  object-fit: contain;
}
@media screen and (max-width: 768.9px) {
  .header__button {
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    background: url("/wp-content/themes/global-passport/assets/images/icon/ico_menu.svg") no-repeat center/contain;
    font-size: 0;
  }
  .header.is-open .header__button {
    background-image: url("/wp-content/themes/global-passport/assets/images/icon/ico_close.svg");
  }
}
@media screen and (max-width: 768.9px) {
  .header__panel {
    visibility: hidden;
    position: absolute;
    top: 100%;
    left: 0;
    box-sizing: border-box;
    width: 100%;
    height: 0;
    overflow: hidden;
    overflow-y: auto;
    transition: height var(--trans-default), visibility var(--trans-default);
    background-color: var(--color-white);
  }
  .header.is-open .header__panel {
    visibility: visible;
    height: calc(100dvh - 62px);
  }
}
@media screen and (min-width: 769px) {
  .header__panel {
    display: flex;
    align-items: center;
    gap: 12px;
  }
}
@media screen and (max-width: 768.9px) {
  .header__menu {
    padding: 24px 16px;
  }
}
.header__menu-list {
  display: flex;
  margin-block: 0;
  padding-left: 0;
  list-style: none;
}
@media screen and (max-width: 768.9px) {
  .header__menu-list {
    flex-direction: column;
  }
}
@media screen and (min-width: 769px) {
  .header__menu-list {
    flex-wrap: wrap;
    gap: 8px;
  }
}
@media screen and (min-width: 769px) {
  .header__menu-item {
    display: flex;
    gap: 8px;
  }
  .header__menu-item::before {
    content: "";
    width: 1px;
    height: 100%;
    border-radius: 50vh;
    background-color: var(--color-primary);
  }
}
.header__menu-link {
  text-decoration: none;
}
@media screen and (max-width: 768.9px) {
  .header__menu-link {
    display: block;
    box-sizing: border-box;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-primary);
    color: var(--color-primary);
    font-size: var(--font-size-m);
    font-weight: var(--weight-bold);
  }
}
@media screen and (min-width: 769px) {
  .header__menu-link {
    display: flex;
    box-sizing: border-box;
    align-items: center;
    color: var(--color-primary);
    font-size: var(--font-size-xs);
    gap: 4px;
  }
}
@media (any-hover: hover) {
  .header__menu-link:hover {
    text-decoration: underline;
  }
}
.header__menu-link--instagram::before {
  content: "";
  flex-shrink: 0;
  width: 1.25em;
  height: 1.25em;
  background-color: currentcolor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_instagram.svg") no-repeat center/contain;
}
@media screen and (max-width: 768.9px) {
  .header__search {
    margin: 36px 16px 0;
  }
}
.header__search .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  pointer-events: none;
}
.header__search div:not(.gp-search-suggest) {
  display: flex;
  box-sizing: border-box;
  align-items: center;
  width: 100%;
  padding: 10px 20px;
  border: 1px solid var(--color-primary);
  border-radius: 28px;
  gap: 6px;
}
@media screen and (min-width: 769px) {
  .header__search div:not(.gp-search-suggest) {
    width: 146px;
    padding: 4px 10px;
  }
}
.header__search input[type=text] {
  flex: 1;
  width: 100%;
  padding: 0;
  border: 0;
  border-right: 1px solid var(--color-primary);
  font-family: var(--family-base);
  font-size: var(--font-size-xs);
  line-height: var(--line-none);
}
.header__search input[type=submit] {
  width: 16px;
  height: 16px;
  padding: 0;
  border: 0;
  background-color: var(--color-primary);
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_search.svg") no-repeat center/contain;
  font-size: 0;
  cursor: pointer;
}
.header__search .gp-search-suggest {
  top: 100%;
}

/* ------------------------------
  ly-main
------------------------------ */
.ly-main {
  flex: 1;
}
.ly-main:has(> .lower) {
  display: flex;
  flex-direction: column;
}

/* ------------------------------
  ly-wrapper
------------------------------ */
/* ------------------------------
  breadcrumb
------------------------------ */
.breadcrumb {
  padding: 12px 18px;
  background-color: var(--color-bg-primary);
}
@media screen and (min-width: 769px) {
  .breadcrumb {
    padding-block: 16px;
  }
}
.breadcrumb__inner {
  box-sizing: border-box;
  max-width: 1008px;
  margin-block: -6px;
  margin-inline: auto;
  padding: 6px;
  overflow-x: auto;
}
.breadcrumb__list {
  display: flex;
  width: fit-content;
  margin-block: 0;
  padding-left: 0;
  list-style: none;
  gap: 8px;
  white-space: nowrap;
}
.breadcrumb__item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--font-size-xs);
}
.breadcrumb__item:not(:last-child)::after {
  content: "";
  width: 8px;
  height: 8px;
  background: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_right.svg") no-repeat center/contain;
}
.breadcrumb__link {
  color: var(--color-primary-dark);
  text-decoration: underline;
}
@media (any-hover: hover) {
  .breadcrumb__link:hover {
    text-decoration: none;
  }
}

/* ------------------------------
  button-box
------------------------------ */
.button-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 24px;
  gap: 16px;
}
@media screen and (min-width: 769px) {
  .button-box {
    margin-top: 40px;
  }
}

/* ------------------------------
  button-primary
------------------------------ */
.button-primary {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 330px;
  padding-bottom: 5px;
}
@media screen and (min-width: 769px) {
  .button-primary {
    padding-bottom: 8px;
  }
}
.button-primary::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50vh;
  background-image: linear-gradient(45deg, var(--color-primary) 0 13%, transparent 13% 50%, var(--color-primary) 50% 63%, transparent 63%);
  background-size: 4px 4px;
}
.button-primary__link {
  display: flex;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 26px;
  padding: 6px 32px;
  transition: box-shadow var(--trans-default), background-color var(--trans-default);
  border: 1px solid var(--color-primary);
  border-radius: 50vh;
  background-color: var(--color-white);
  color: var(--color-primary);
  font-weight: var(--weight-bold);
  text-align: center;
  text-decoration: none;
  gap: 4px;
}
@media screen and (min-width: 769px) {
  .button-primary__link {
    font-size: var(--font-size-m);
  }
}
@media (any-hover: hover) {
  .button-primary__link:hover {
    background-color: var(--color-bg-primary);
    box-shadow: inset 0 0 0 2px var(--color-primary);
  }
}
.button-primary__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_right.svg") no-repeat center/contain;
}
.button-primary__link[target=_blank]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
}
.button-primary__link[href^="#"]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_down.svg") no-repeat center/contain;
}
.button-primary__link[download]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_download.svg") no-repeat center/contain;
}
@media screen and (min-width: 769px) {
  .button-primary--large {
    min-width: min(760px, 100%);
    padding-bottom: 10px;
  }
}
.button-primary--large .button-primary__link {
  position: relative;
}
@media screen and (min-width: 769px) {
  .button-primary--large .button-primary__link {
    padding-block: 10px;
    padding-inline: 40px;
    font-size: var(--font-size-2xl);
  }
}
@media screen and (min-width: 769px) {
  .button-primary--large .button-primary__link::after {
    right: 24px;
    width: 16px;
    height: 16px;
  }
}

/* ------------------------------
  button-inverse
------------------------------ */
.button-inverse {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 330px;
  padding-bottom: 5px;
}
@media screen and (min-width: 769px) {
  .button-inverse {
    padding-bottom: 8px;
  }
}
.button-inverse::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50vh;
  background-image: linear-gradient(45deg, var(--color-primary-dark) 0 13%, transparent 13% 50%, var(--color-primary-dark) 50% 63%, transparent 63%);
  background-size: 4px 4px;
}
.button-inverse__link {
  display: flex;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 26px;
  padding: 6px 32px;
  transition: box-shadow var(--trans-default), background-color var(--trans-default);
  border: 1px solid var(--color-primary-dark);
  border-radius: 50vh;
  background-color: var(--color-white);
  color: var(--color-primary-dark);
  font-weight: var(--weight-bold);
  text-align: center;
  text-decoration: none;
  gap: 4px;
}
@media screen and (min-width: 769px) {
  .button-inverse__link {
    font-size: var(--font-size-m);
  }
}
@media (any-hover: hover) {
  .button-inverse__link:hover {
    background-color: var(--color-bg-primary);
    box-shadow: inset 0 0 0 2px var(--color-primary-dark);
  }
}
.button-inverse__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_right.svg") no-repeat center/contain;
}
.button-inverse__link[target=_blank]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
}
.button-inverse__link[href^="#"]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_down.svg") no-repeat center/contain;
}
.button-inverse__link[download]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_download.svg") no-repeat center/contain;
}
@media screen and (min-width: 769px) {
  .button-inverse--large {
    min-width: min(760px, 100%);
    padding-bottom: 10px;
  }
}
.button-inverse--large .button-inverse__link {
  position: relative;
}
@media screen and (min-width: 769px) {
  .button-inverse--large .button-inverse__link {
    padding-block: 10px;
    padding-inline: 40px;
    font-size: var(--font-size-2xl);
  }
}
@media screen and (min-width: 769px) {
  .button-inverse--large .button-inverse__link::after {
    right: 24px;
    width: 16px;
    height: 16px;
  }
}

/* ------------------------------
  card-list
------------------------------ */
.card-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(232px, 100%), 1fr));
  margin-block: 0 24px;
  padding-left: 0;
  list-style: none;
  gap: 20px;
}
.wp-block-lazyblock-card-list:last-child .card-list {
  margin-bottom: 0;
}
@media screen and (min-width: 769px) {
  .card-list {
    gap: 24px;
  }
}
.card-list__item {
  display: flex;
  flex-direction: column;
  padding: 16px;
  border: 1px solid var(--color-primary);
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .card-list__item {
    padding: 16px;
  }
}
.card-list__title {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-block: 16px 0;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-l);
  font-weight: var(--weight-bold);
}
@media screen and (min-width: 769px) {
  .card-list__title {
    font-size: var(--font-size-l);
  }
}
.card-list__number {
  display: block;
  flex-shrink: 0;
  align-content: center;
  width: 26px;
  border-radius: 50%;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-size: var(--font-size-m);
  font-variant-numeric: tabular-nums;
  line-height: var(--line-none);
  text-align: center;
  aspect-ratio: 1/1;
  text-box: trim-both cap alphabetic;
}
.card-list__image {
  width: 100%;
  height: auto;
  aspect-ratio: 266/140;
  min-height: 0;
}
.card-list__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.card-list__text {
  margin-block: 8px 0;
}

/* ------------------------------
  card-point-list
------------------------------ */
.card-point-list {
  display: grid;
  gap: 20px;
  margin-block: 32px 0;
  padding-left: 0;
  list-style: none;
}
@media screen and (min-width: 769px) {
  .card-point-list {
    grid-template-columns: repeat(auto-fit, minmax(232px, 1fr));
    margin-top: 64px;
  }
}
.post-content .card-point-list {
  margin-block: 0 24px;
}
.wp-block-lazyblock-point-card-list:last-child .card-point-list {
  margin-bottom: 0;
}
.card-point-list__item {
  display: grid;
  position: relative;
  grid-row: span 4;
  grid-template-rows: subgrid;
  gap: 0;
  align-items: center;
  padding: 20px 12px;
  border: 1px solid var(--color-primary);
  background-color: var(--color-white);
}
.card-point-list__item::before {
  content: "";
  position: absolute;
  top: -12px;
  left: calc(50% + 9px);
  width: 14px;
  height: 21px;
  transform: translateX(-50%);
  background: url("/wp-content/themes/global-passport/assets/images/common/ico_pin.svg") no-repeat center/contain;
}
.card-point-list:has(.card-point-list__button) .card-point-list__item {
  grid-row: span 5;
}
.card-point-list__title {
  margin-block: 0;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .card-point-list__title {
    font-size: var(--font-size-2xl);
  }
}
.card-point-list__image {
  width: 100%;
  max-width: 178px;
  height: auto;
  aspect-ratio: 178/109;
  margin: 8px auto 0;
}
@media screen and (min-width: 769px) {
  .card-point-list__image {
    max-width: 100%;
  }
}
.card-point-list__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.card-point-list__point {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-block: 8px 0;
  color: var(--color-accent);
  font-family: var(--family-round);
  font-size: var(--font-size-l);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .card-point-list__point {
    font-size: var(--font-size-xl);
  }
}
.card-point-list__text {
  margin-block: 8px 0;
  font-size: var(--font-size-s);
  line-height: var(--line-tight);
  text-align: center;
}
.card-point-list__button {
  display: flex;
  align-self: start;
  justify-content: center;
  padding-top: 8px;
}
.card-point-list__button .link-anchor__button {
  height: auto;
}
.card-point-list__button .link-anchor__link {
  height: auto;
  padding-block: 2px;
}

/* ------------------------------
  form-text
------------------------------ */
.form-text {
  margin-block: 0 24px;
  font-size: var(--font-size-m);
  line-height: var(--line-relax);
}

/* ------------------------------
  form-content
------------------------------ */
.form-content {
  margin-bottom: 32px;
}

/* ------------------------------
  form-item
------------------------------ */
.form-item {
  min-inline-size: 0;
  margin: 0 0 24px;
  padding: 0;
  border: 0;
}
.form-item__label {
  display: block;
  margin-bottom: 4px;
  padding: 0;
  font-size: var(--font-size-m);
  font-weight: var(--weight-bold);
  line-height: var(--line-base);
}
@media screen and (min-width: 769px) {
  .form-item__label {
    font-size: var(--font-size-l);
  }
}
.form-item__required {
  margin-left: 8px;
  color: var(--color-error);
}
.form-item .wpcf7-not-valid-tip {
  display: block;
  margin-top: 12px;
  color: var(--color-error);
  font-size: var(--font-size-m);
}

.wpcf7-form.sent .wpcf7-response-output {
  display: none;
}

/* ------------------------------
  form-choice（ラジオボタン / チェックボックス）
------------------------------ */
.form-choice {
  display: grid;
  justify-items: start;
}
.form-choice .wpcf7-list-item {
  margin: 0;
}
.form-choice label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  padding: 8px 0;
}
.form-choice input {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--color-primary);
  cursor: pointer;
}
.form-choice input:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #ffd700;
}

/* ------------------------------
  form-select
------------------------------ */
.form-select {
  box-sizing: border-box;
  width: 100%;
  max-width: 330px;
  min-height: 56px;
  padding: 12px 52px 12px 16px;
  border: 1px solid var(--color-gray);
  border-radius: 8px;
  background: var(--color-white) url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_down.svg") no-repeat right 16px center/18px;
  color: inherit;
  font: inherit;
  appearance: none;
  cursor: pointer;
}
.form-select:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #ffd700;
}
.form-select.wpcf7-not-valid {
  border-color: var(--color-error);
}

/* ------------------------------
  form-textarea
------------------------------ */
.form-textarea {
  box-sizing: border-box;
  width: 100%;
  max-width: 800px;
  min-height: 172px;
  padding: 16px;
  border: 1px solid var(--color-gray);
  border-radius: 8px;
  background-color: var(--color-white);
  color: inherit;
  font: inherit;
  resize: vertical;
}
.form-textarea:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #ffd700;
}
.form-textarea.wpcf7-not-valid {
  border-color: var(--color-error);
}

/* ------------------------------
  form-submit
  見た目は .button-primary を使用し、input に __button を付与する
------------------------------ */
.form-submit__button {
  font-family: inherit;
  white-space: normal;
  cursor: pointer;
}
.form-submit__button:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #ffd700;
}
.form-submit .wpcf7-spinner {
  position: absolute;
  top: 50%;
  left: 100%;
  translate: 0 -50%;
}

/* ------------------------------
  CF7 送信結果メッセージ
------------------------------ */
.wpcf7-form.invalid .wpcf7-response-output {
  display: none;
}

/* ------------------------------
  heading
------------------------------ */
.heading {
  --heading-shadow: 4px;
  box-sizing: border-box;
  max-width: 728px;
  margin: 0 auto 12px;
  padding: 2px 8px 6px 4px;
  border-bottom-right-radius: calc(var(--heading-shadow) * 0.2);
  background: linear-gradient(var(--color-white), var(--color-white)) no-repeat left top/calc(100% - var(--heading-shadow)) calc(100% - var(--heading-shadow)), linear-gradient(45deg, var(--color-primary-dark) 0 13%, transparent 13% 50%, var(--color-primary-dark) 50% 63%, transparent 63%) left top/4px 4px;
  color: var(--color-primary);
  mask: url("/wp-content/themes/global-passport/assets/images/common/bg_heading_corner_top.svg") no-repeat right top/var(--heading-shadow) var(--heading-shadow), url("/wp-content/themes/global-passport/assets/images/common/bg_heading_corner_bottom.svg") no-repeat left bottom/var(--heading-shadow) var(--heading-shadow), linear-gradient(#000, #000) no-repeat left top/calc(100% - var(--heading-shadow)) calc(100% - var(--heading-shadow)), linear-gradient(#000, #000) no-repeat right bottom/calc(100% - var(--heading-shadow)) calc(100% - var(--heading-shadow));
  font-family: var(--family-round);
  font-size: var(--font-size-l);
  font-weight: var(--weight-black);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .heading {
    --heading-shadow: 10px;
    margin-bottom: 32px;
    padding: 4px 24px 14px 14px;
    font-size: var(--font-size-5xl);
  }
}

/* ------------------------------
  heading02
------------------------------ */
.heading02 {
  margin-block: 0 12px;
  color: var(--color-accent);
  font-family: var(--family-round);
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .heading02 {
    font-size: var(--font-size-4xl);
  }
}

/* ------------------------------
  heading-page-title
------------------------------ */
.heading-page-title {
  padding: 16px 24px;
  background-color: var(--color-bg-primary);
}
@media screen and (min-width: 769px) {
  .heading-page-title {
    padding-block: 48px 32px;
  }
}
.heading-page-title__heading {
  max-width: 996px;
  margin: 0 auto;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-3xl);
  font-weight: var(--weight-black);
}
@media screen and (min-width: 769px) {
  .heading-page-title__heading {
    font-size: var(--font-size-6xl);
    text-align: center;
  }
}

/* ------------------------------
  link-anchor
------------------------------ */
.link-anchor {
  margin-bottom: 24px;
}
.link-anchor__list {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-block: 0;
  padding-left: 0;
  list-style: none;
}
@media screen and (max-width: 768.9px) {
  .link-anchor__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}
.link-anchor__item {
  min-width: min(100%, 200px);
}
@media screen and (max-width: 768.9px) {
  .link-anchor__item {
    min-width: 0;
  }
}
.link-anchor__button {
  height: 100%;
}
.link-anchor__link {
  height: 100%;
}
@media screen and (max-width: 768.9px) {
  .link-anchor__link {
    padding-inline: 12px 28px;
  }
}

/* ------------------------------
  link-list
  子ページなどのテキストリンク一覧（template-faq.php）
------------------------------ */
.link-list {
  margin-block: 0;
  padding-left: 1.5em;
  font-size: var(--font-size-m);
}
.link-list:not(:first-child) {
  margin-top: 40px;
}
.link-list__item {
  margin-top: 8px;
}
.link-list__item:first-child {
  margin-top: 0;
}
.link-list__link {
  color: var(--color-primary-dark);
  text-decoration: underline;
}
@media (any-hover: hover) {
  .link-list__link:hover {
    text-decoration: none;
  }
}
.link-list__link[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-left: 4px;
  background-color: currentcolor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
  vertical-align: baseline;
}

/* ------------------------------
  notice
------------------------------ */
.notice {
  margin-bottom: 32px;
  padding: 20px 24px;
  border: 5px solid var(--color-error);
  border-radius: 0;
}
.wp-block-lazyblock-notice:last-child .notice {
  margin-bottom: 0;
}
@media screen and (min-width: 769px) {
  .notice {
    padding: 24px 32px;
  }
}
.notice__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  margin-block: 0;
  color: var(--color-error);
  font-family: var(--family-round);
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .notice__title {
    gap: 8px;
    flex-direction: row;
    font-size: var(--font-size-2xl);
    text-align: start;
  }
}
.notice__title span {
  box-sizing: border-box;
  min-width: 78px;
  padding: 4px 16px;
  border-radius: 0;
  background-color: var(--color-error);
  color: var(--color-white);
  font-size: var(--font-size-m);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .notice__title span {
    font-size: var(--font-size-l);
  }
}
.notice__list {
  display: grid;
  margin-block: 16px 0;
  padding-left: 2em;
  font-weight: var(--weight-bold);
  gap: 4px;
}

/* ------------------------------
  pagination
------------------------------ */
.pagination {
  margin-top: 56px;
}
@media screen and (min-width: 769px) {
  .pagination {
    margin-top: 80px;
  }
}
.pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  margin-block: 0;
  padding-left: 0;
  list-style: none;
  gap: 8px;
}
.pagination__link {
  display: inline-flex;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding-inline: 8px;
  transition: background-color var(--trans-default), color var(--trans-default);
  border: 1px solid var(--color-primary);
  border-radius: 20px;
  background-color: var(--color-white);
  color: var(--color-primary);
  font-size: var(--font-size-s);
  font-weight: var(--weight-bold);
  line-height: var(--line-none);
  text-decoration: none;
}
@media screen and (min-width: 769px) {
  .pagination__link {
    min-width: 48px;
    height: 48px;
    border-radius: 24px;
    font-size: var(--font-size-m);
  }
}
@media (any-hover: hover) {
  .pagination__link[href]:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
  }
}
.pagination__link--current {
  background-color: var(--color-primary);
  color: var(--color-white);
}
.pagination__link--prev, .pagination__link--next {
  gap: 8px;
  padding-inline: 16px;
}
.pagination__link--prev::before, .pagination__link--next::before {
  content: "";
  width: 10px;
  height: 10px;
  background-color: currentcolor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_right.svg") no-repeat center/contain;
}
.pagination__link--prev::before {
  transform: rotate(180deg);
}
.pagination__link--next::before {
  order: 1;
}
.pagination__link--dots {
  min-width: auto;
  border: 0;
  background-color: transparent;
}

/* ------------------------------
  post-content
  ブロックエディタで作成したコンテンツ（the_content）用
------------------------------ */
/* ------------------------------
  program
------------------------------ */
.program {
  margin-block: 0 24px;
}
.wp-block-lazyblock-program:last-child .program {
  margin-bottom: 0;
}
.program__item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 12px;
  border-bottom: 1px solid var(--color-primary);
  gap: 24px;
}
@media screen and (min-width: 769px) {
  .program__item {
    padding-inline: 32px;
  }
}
.program__date {
  flex-shrink: 0;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-l);
  font-weight: var(--weight-bold);
}
@media screen and (min-width: 769px) {
  .program__date {
    font-size: var(--font-size-2xl);
  }
}
.program__schedule {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  margin-left: 0;
  gap: 4px;
}
@media screen and (min-width: 769px) {
  .program__schedule {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    font-size: var(--font-size-l);
    gap: 8px;
  }
}
.program__tag {
  padding: 4px 16px;
  border-radius: 20px;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-size: var(--font-size-xs);
  font-weight: var(--weight-bold);
  line-height: var(--line-none);
}
@media screen and (min-width: 769px) {
  .program__tag {
    font-size: var(--font-size-s);
  }
}

/* ------------------------------
  step-accordion
------------------------------ */
.step-accordion {
  margin-block: 20px 0;
  overflow: hidden;
  transition: box-shadow var(--trans-default);
  border: 1px solid var(--color-primary);
  border-radius: 16px;
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .step-accordion {
    border-width: 1px;
    border-radius: 20px;
  }
}
@media (any-hover: hover) {
  .step-accordion:not(.is-editor):has(.step-accordion__button:hover) {
    box-shadow: 0 0 0 2px var(--color-primary);
  }
}
.post-content .step-accordion {
  margin-block: 0 16px;
}
.wp-block-lazyblock-step-accordion:last-child .step-accordion {
  margin-bottom: 0;
}
.step-accordion__heading {
  margin-block: 0;
}
.step-accordion__button {
  display: grid;
  position: relative;
  box-sizing: border-box;
  grid-template-areas: "num title" "sub sub";
  grid-template-columns: auto 1fr;
  align-items: center;
  width: 100%;
  padding: 12px 40px 12px 20px;
  border: 0;
  background-color: var(--color-bg-primary);
  color: inherit;
  font: inherit;
  text-align: start;
  gap: 8px 10px;
}
@media screen and (min-width: 769px) {
  .step-accordion__button {
    gap: 12px 16px;
    padding: 16px 100px 16px 32px;
  }
}
.step-accordion__button:not(:has(.step-accordion__subtitle)) {
  grid-template-areas: "num title";
}
.step-accordion__button::before, .step-accordion__button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 20px;
  height: 3px;
  translate: 0 -50%;
  transition: rotate 0.2s;
  border-radius: 2px;
  background-color: var(--color-primary);
}
@media screen and (min-width: 769px) {
  .step-accordion__button::before, .step-accordion__button::after {
    right: 32px;
    width: 28px;
    height: 4px;
  }
}
.step-accordion__button[aria-expanded=false]::after {
  rotate: 90deg;
}
@media (any-hover: hover) {
  .step-accordion:not(.is-editor) .step-accordion__button:hover {
    background-color: var(--color-bg-primary-dark);
  }
}
.step-accordion__button:focus-visible {
  outline: 3px solid #000;
  outline-offset: -3px;
  box-shadow: inset 0 0 0 7px #ffd700;
}
.step-accordion.is-editor .step-accordion__button {
  cursor: default;
}
.step-accordion__num {
  display: grid;
  grid-area: num;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-family: var(--family-round);
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
  line-height: 1;
}
@media screen and (min-width: 769px) {
  .step-accordion__num {
    width: 32px;
    height: 32px;
    font-size: var(--font-size-2xl);
  }
}
.step-accordion__title {
  grid-area: title;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
}
@media screen and (min-width: 769px) {
  .step-accordion__title {
    font-size: var(--font-size-2xl);
  }
}
.step-accordion__button:not(:has(.step-accordion__num)) .step-accordion__title {
  grid-column: 1/-1;
}
.step-accordion__subtitle {
  grid-area: sub;
  font-size: var(--font-size-m);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
}
.step-accordion__body {
  display: none;
  padding: 10px 16px 20px;
}
.step-accordion:has([aria-expanded=true]) .step-accordion__body {
  display: block;
}
@media screen and (min-width: 769px) {
  .step-accordion__body {
    padding: 24px 32px;
  }
}
.step-accordion__body > :first-child {
  margin-top: 0;
}
.step-accordion__body > :last-child {
  margin-bottom: 0;
}
.step-accordion__body :is(h2, h3, h4, h5, h6) {
  margin-block: 32px 8px;
  color: inherit;
  font-size: var(--font-size-l);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
}
@media screen and (min-width: 769px) {
  .step-accordion__body :is(h2, h3, h4, h5, h6) {
    margin-top: 40px;
  }
}
.step-accordion__body :is(ul, ol) {
  padding-left: 1.5em;
}
.step-accordion__body a {
  color: var(--color-primary-dark);
  text-decoration: underline;
}
@media (any-hover: hover) {
  .step-accordion__body a:hover {
    text-decoration: none;
  }
}
.step-accordion__body a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-left: 4px;
  background-color: currentcolor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
  vertical-align: baseline;
}
.step-accordion__note {
  margin-block: 24px;
  padding: 16px;
  border-radius: 12px;
  background-color: var(--color-bg-primary);
}
@media screen and (min-width: 769px) {
  .step-accordion__note {
    margin-block: 32px;
    padding: 20px 24px;
  }
}
.step-accordion__note > :first-child {
  margin-top: 0;
}
.step-accordion__note > :last-child {
  margin-bottom: 0;
}
.step-accordion__note :is(h2, h3, h4, h5, h6),
.step-accordion__note strong {
  color: var(--color-primary);
}
.step-accordion__placeholder {
  color: #999;
}

/* ------------------------------
  support
------------------------------ */
.support {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin-block: 0 24px;
  gap: 0;
}
.wp-block-lazyblock-support:last-child .support {
  margin-bottom: 0;
}
@media screen and (min-width: 769px) {
  .support {
    flex-direction: row;
    align-items: stretch;
    gap: 16px;
  }
}
.support__block {
  display: flex;
  box-sizing: border-box;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 280px;
  padding: 12px;
  border: 1px solid var(--color-primary);
}
.support__block--answer {
  background-color: var(--color-primary);
}
@media screen and (min-width: 769px) {
  .support__block {
    flex: 1;
    align-items: flex-start;
    padding: 16px 24px;
  }
}
.support__symbol {
  display: flex;
  align-items: center;
  color: var(--color-primary);
  font-size: var(--font-size-2xl);
  font-weight: var(--weight-bold);
}
@media screen and (max-width: 768.9px) {
  .support__symbol {
    rotate: 90deg;
  }
}
@media screen and (min-width: 769px) {
  .support__symbol {
    font-size: var(--font-size-3xl);
  }
}
.support__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-block: 0;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
}
.support__block--answer .support__title {
  color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .support__title {
    font-size: var(--font-size-2xl);
  }
}
.support__icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  background-color: var(--color-primary);
  mask-position: center;
  mask-size: contain;
  mask-repeat: no-repeat;
}
.support__icon--book {
  mask-image: url("/wp-content/themes/global-passport/assets/images/icon/ico_book.svg");
}
.support__icon--search {
  mask-image: url("/wp-content/themes/global-passport/assets/images/icon/ico_search_round.svg");
}
@media screen and (min-width: 769px) {
  .support__icon {
    width: 32px;
    height: 32px;
  }
}
.support__sub {
  margin-block: 0;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-weight: var(--weight-bold);
}
.support__block--answer .support__sub {
  color: var(--color-white);
}

/* ------------------------------
  text-lead
------------------------------ */
.text-lead {
  margin-block: 0 24px;
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-2xl);
  font-weight: var(--weight-black);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .text-lead {
    font-size: var(--font-size-5xl);
  }
}
.wp-block-lazyblock-lead:last-child .text-lead {
  margin-bottom: 0;
}

/* ------------------------------
  text-note
------------------------------ */
.text-note {
  margin-block: 8px 0;
  padding-left: 1em;
  font-size: var(--font-size-xs);
  text-indent: -1em;
}
.text-note::before {
  content: "※";
}
@media screen and (min-width: 769px) {
  .text-note {
    font-size: var(--font-size-s);
  }
}
.post-content .text-note {
  margin-block: 0 24px;
}
.wp-block-lazyblock-note:last-child .text-note {
  margin-bottom: 0;
}

/* ------------------------------
  text-point
------------------------------ */
.text-point {
  color: var(--color-accent);
  font-weight: var(--weight-bold);
}

/* ------------------------------
  text-strong
------------------------------ */
.text-strong {
  margin-block: 0 24px;
  font-size: var(--font-size-l);
  font-weight: var(--weight-bold);
}
@media screen and (min-width: 769px) {
  .text-strong {
    font-size: var(--font-size-xl);
  }
}
.wp-block-lazyblock-strong:last-child .text-strong {
  margin-bottom: 0;
}

:root {
  --base-width: 375;
}
@media screen and (min-width: 769px) {
  :root {
    --base-width: 1280;
  }
}

/* ------------------------------
  error
------------------------------ */
.error__inner {
  max-width: 996px;
  margin-inline: auto;
  padding: 40px 24px;
}
@media screen and (min-width: 769px) {
  .error__inner {
    padding-block: 80px;
  }
}
.error__message {
  margin-block: 0;
}
@media screen and (min-width: 769px) {
  .error__message {
    text-align: center;
  }
}

/* ------------------------------
  lower
------------------------------ */
.lower {
  flex-grow: 1;
  padding-bottom: calc(130 / var(--base-width) * 100vw);
  background: url("/wp-content/themes/global-passport/assets/images/common/bg_mountain_top_sp.png") no-repeat center bottom/100%;
}
@media screen and (min-width: 769px) {
  .lower {
    padding-bottom: calc(300 / var(--base-width) * 100vw);
    background-image: url("/wp-content/themes/global-passport/assets/images/common/bg_mountain_top_pc.png");
  }
}

/* ------------------------------
  news-archive
------------------------------ */
.news-archive {
  padding: 40px 24px 64px;
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .news-archive {
    padding-block: 96px 120px;
  }
}
.news-archive__inner {
  max-width: 996px;
  margin-inline: auto;
}
@media screen and (min-width: 769px) {
  .news-archive__inner {
    padding-inline: 32px;
  }
}
.news-archive__list {
  display: grid;
  margin-block: 0;
  padding-left: 0;
  list-style: none;
  gap: 32px;
}
@media screen and (min-width: 769px) {
  .news-archive__list {
    gap: 48px;
  }
}
.news-archive__item {
  display: grid;
  gap: 8px;
}
.news-archive__link {
  color: var(--color-primary-dark);
  font-family: var(--family-round);
  font-size: var(--font-size-m);
  font-weight: var(--weight-bold);
  letter-spacing: 0.1em;
  line-height: var(--line-base);
  text-decoration: none;
}
@media screen and (min-width: 769px) {
  .news-archive__link {
    font-size: var(--font-size-l);
  }
}
@media (any-hover: hover) {
  .news-archive__link:hover {
    text-decoration: underline;
  }
}
.news-archive__empty {
  margin: 0;
}

/* ------------------------------
  news-meta（日付・カテゴリー）
------------------------------ */
.news-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
}
.news-meta__date {
  font-size: var(--font-size-s);
  line-height: var(--line-base);
}
@media screen and (min-width: 769px) {
  .news-meta__date {
    font-size: var(--font-size-m);
  }
}
.news-meta__category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 16px;
  border-radius: 15px;
  background-color: var(--color-gray);
  color: var(--color-white);
  font-size: var(--font-size-xs);
  font-weight: var(--weight-bold);
  line-height: var(--line-none);
}
@media screen and (min-width: 769px) {
  .news-meta__category {
    font-size: var(--font-size-s);
  }
}

/* ------------------------------
  news-single
------------------------------ */
.news-single {
  max-width: 996px;
  margin-inline: auto;
  padding: 40px 24px 0;
}
@media screen and (min-width: 769px) {
  .news-single {
    padding-top: 80px;
  }
}
.news-single + .post-content {
  padding-top: 24px;
}
@media screen and (min-width: 769px) {
  .news-single + .post-content {
    padding-top: 40px;
  }
}

/* ------------------------------
  post
------------------------------ */
.post-content h2.wp-block-heading {
  --heading-shadow: 4px;
  box-sizing: border-box;
  max-width: 728px;
  margin: 0 auto 12px;
  padding: 2px 8px 6px 4px;
  border-bottom-right-radius: calc(var(--heading-shadow) * 0.2);
  background: linear-gradient(var(--color-white), var(--color-white)) no-repeat left top/calc(100% - var(--heading-shadow)) calc(100% - var(--heading-shadow)), linear-gradient(45deg, var(--color-primary-dark) 0 13%, transparent 13% 50%, var(--color-primary-dark) 50% 63%, transparent 63%) left top/4px 4px;
  color: var(--color-primary);
  mask: url("/wp-content/themes/global-passport/assets/images/common/bg_heading_corner_top.svg") no-repeat right top/var(--heading-shadow) var(--heading-shadow), url("/wp-content/themes/global-passport/assets/images/common/bg_heading_corner_bottom.svg") no-repeat left bottom/var(--heading-shadow) var(--heading-shadow), linear-gradient(#000, #000) no-repeat left top/calc(100% - var(--heading-shadow)) calc(100% - var(--heading-shadow)), linear-gradient(#000, #000) no-repeat right bottom/calc(100% - var(--heading-shadow)) calc(100% - var(--heading-shadow));
  font-family: var(--family-round);
  font-size: var(--font-size-l);
  font-weight: var(--weight-black);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .post-content h2.wp-block-heading {
    --heading-shadow: 10px;
    margin-bottom: 32px;
    padding: 4px 24px 14px 14px;
    font-size: var(--font-size-5xl);
  }
}
.post-content h2.wp-block-heading {
  max-width: 840px;
  margin-top: 72px;
}
.post-content h2.wp-block-heading:first-child {
  margin-top: 0;
}
.post-content h3.wp-block-heading {
  margin-block: 0 12px;
  color: var(--color-accent);
  font-family: var(--family-round);
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .post-content h3.wp-block-heading {
    font-size: var(--font-size-4xl);
  }
}
.post-content h3.wp-block-heading {
  margin-top: 24px;
  color: var(--color-primary);
  text-align: start;
}
.post-content h3.wp-block-heading:first-child {
  margin-top: 0;
}
.post-content .wp-block-paragraph {
  margin-block: 0 24px;
  font-size: var(--font-size-m);
}
.post-content .wp-block-paragraph:last-child {
  margin-bottom: 0;
}
.post-content .wp-block-paragraph a {
  color: var(--color-primary-dark);
  text-decoration: underline;
}
@media (any-hover: hover) {
  .post-content .wp-block-paragraph a:hover {
    text-decoration: none;
  }
}
.post-content .wp-block-paragraph a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-left: 4px;
  background-color: currentcolor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
  vertical-align: baseline;
}
.post-content .wp-block-list {
  margin-block: 0 24px;
  padding-left: 1.5em;
  font-size: var(--font-size-m);
}
.post-content .wp-block-list:last-child {
  margin-bottom: 0;
}
.post-content .wp-block-list li {
  margin-top: 8px;
}
.post-content .wp-block-list li:first-child {
  margin-top: 0;
}
.post-content .wp-block-list .wp-block-list {
  margin-block: 8px 0;
}
.post-content .wp-block-list a {
  color: var(--color-primary-dark);
  text-decoration: underline;
}
@media (any-hover: hover) {
  .post-content .wp-block-list a:hover {
    text-decoration: none;
  }
}
.post-content .wp-block-list a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-left: 4px;
  background-color: currentcolor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
  vertical-align: baseline;
}
.post-content .wp-block-table {
  margin-bottom: 24px;
}
.post-content .wp-block-table:last-child {
  margin-bottom: 0;
}
.post-content .wp-block-table thead {
  border-bottom: 0;
}
.post-content .wp-block-table th {
  padding: 6px 8px;
  border-color: var(--color-gray);
  background-color: var(--color-bg-primary);
  font-size: var(--font-size-s);
  font-weight: var(--weight-bold);
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-table th {
    padding: 12px 16px;
    font-size: var(--font-size-m);
  }
}
.post-content .wp-block-table td {
  padding: 6px 8px;
  border-color: var(--color-gray);
  font-size: var(--font-size-s);
  line-height: var(--line-tight);
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-table td {
    padding: 12px 16px;
    font-size: var(--font-size-m);
  }
}
.post-content .wp-block-table a {
  color: var(--color-primary-dark);
  text-decoration: underline;
}
@media (any-hover: hover) {
  .post-content .wp-block-table a:hover {
    text-decoration: none;
  }
}
.post-content .wp-block-table a[target=_blank]::after {
  content: "";
  display: inline-block;
  width: 0.8em;
  height: 0.8em;
  margin-left: 4px;
  background-color: currentcolor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
  vertical-align: baseline;
}
.post-content .wp-block-buttons {
  margin-bottom: 24px;
}
.post-content .wp-block-buttons:last-child {
  margin-bottom: 0;
}
.post-content .wp-block-buttons.is-layout-flex {
  flex-direction: column;
  gap: 16px;
  align-items: flex-start;
}
.post-content .wp-block-button {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 330px;
  padding-bottom: 5px;
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-button {
    padding-bottom: 8px;
  }
}
.post-content .wp-block-button::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50vh;
  background-image: linear-gradient(45deg, var(--color-primary) 0 13%, transparent 13% 50%, var(--color-primary) 50% 63%, transparent 63%);
  background-size: 4px 4px;
}
.post-content .wp-block-button__link {
  display: flex;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 26px;
  padding: 6px 32px;
  transition: box-shadow var(--trans-default), background-color var(--trans-default);
  border: 1px solid var(--color-primary);
  border-radius: 50vh;
  background-color: var(--color-white);
  color: var(--color-primary);
  font-weight: var(--weight-bold);
  text-align: center;
  text-decoration: none;
  gap: 4px;
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-button__link {
    font-size: var(--font-size-m);
  }
}
@media (any-hover: hover) {
  .post-content .wp-block-button__link:hover {
    background-color: var(--color-bg-primary);
    box-shadow: inset 0 0 0 2px var(--color-primary);
  }
}
.post-content .wp-block-button__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_right.svg") no-repeat center/contain;
}
.post-content .wp-block-button__link[target=_blank]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
}
.post-content .wp-block-button__link[href^="#"]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_down.svg") no-repeat center/contain;
}
.post-content .wp-block-button__link[download]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_download.svg") no-repeat center/contain;
}
.post-content .wp-block-button {
  margin-bottom: 16px;
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-button {
    max-width: 400px;
  }
}
.post-content .wp-block-button:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-button [class~=wp-block-button__link] {
    font-size: var(--font-size-xl);
  }
}
.post-content .wp-block-button.is-style-download [class~=wp-block-button__link]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_download.svg") no-repeat center/contain;
}
.post-content .wp-block-embed {
  max-width: 630px;
  margin: 0 auto 24px;
}
.post-content .wp-block-embed:last-child {
  margin-bottom: 0;
}
.post-content .wp-block-embed iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
}
.post-content .wp-block-tabs {
  margin-bottom: 24px;
}
.post-content .wp-block-tabs:last-child {
  margin-bottom: 0;
}
.post-content .wp-block-tabs .wp-block-tab-list {
  display: flex;
  justify-content: center;
  gap: 4px;
  border-bottom: 2px solid var(--color-primary);
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-tabs .wp-block-tab-list {
    gap: 8px;
  }
}
.post-content .wp-block-tabs .wp-block-tab-list button {
  padding: 6px;
  transition: background-color var(--trans-default), box-shadow var(--trans-default);
  border: 1px solid var(--color-primary);
  border-radius: 10px 10px 0 0;
  font-family: var(--family-round);
  font-size: var(--font-size-xs);
  font-weight: var(--weight-bold);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-tabs .wp-block-tab-list button {
    padding: 12px 32px;
    font-size: var(--font-size-m);
  }
}
@media (any-hover: hover) {
  .post-content .wp-block-tabs .wp-block-tab-list button[aria-selected=false]:hover {
    background-color: var(--color-bg-primary);
    box-shadow: inset 0 0 0 2px var(--color-primary);
  }
}
.post-content .wp-block-tabs .wp-block-tab-list button[aria-selected=true] {
  background-color: var(--color-primary);
  color: var(--color-white);
}
.post-content .wp-block-tabs .wp-block-tab-list button[aria-selected=true]::before {
  content: none;
}
.post-content .wp-block-tabs .wp-block-tab-panels {
  padding-top: 12px;
}
@media screen and (min-width: 769px) {
  .post-content .wp-block-tabs .wp-block-tab-panels {
    padding-top: 24px;
  }
}
.post-content {
  max-width: 996px;
  margin-inline: auto;
  padding: 40px 24px;
}
@media screen and (min-width: 769px) {
  .post-content {
    padding-block: 80px;
  }
}

/* ------------------------------
  gp-search プラグインで出力されるクラスに対する指定
------------------------------ */
.gp-search-results__summary {
  margin-block: 0;
  font-size: var(--font-size-xl);
  font-weight: var(--weight-bold);
}
@media screen and (min-width: 769px) {
  .gp-search-results__summary {
    font-size: var(--font-size-4xl);
  }
}
.gp-search-results__count {
  margin-left: 8px;
}
.gp-search-results__list {
  display: grid;
  gap: 16px;
  margin-block: 24px 0;
  padding-left: 0;
  list-style: none;
}
@media screen and (min-width: 769px) {
  .gp-search-results__list {
    margin-top: 32px;
  }
}
.gp-search-results__item {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--color-primary);
}
.gp-search-results__link {
  color: var(--color-primary);
  font-size: var(--font-size-m);
  font-weight: var(--weight-bold);
}
@media screen and (min-width: 769px) {
  .gp-search-results__link {
    font-size: var(--font-size-l);
  }
}
@media (any-hover: hover) {
  .gp-search-results__link:hover {
    text-decoration: none;
  }
}
.gp-search-results__type {
  display: none;
}
.gp-search-results__excerpt {
  margin-block: 12px 0;
}
.gp-search-results__empty {
  margin-block: 32px 0;
}
@media screen and (min-width: 769px) {
  .gp-search-results__empty {
    margin-top: 40px;
    text-align: center;
  }
}

/* ------------------------------
  top
------------------------------ */
.top__fv {
  position: relative;
  padding-top: calc(376 / var(--base-width) * 100vw);
}
@media screen and (min-width: 769px) {
  .top__fv {
    padding-top: max(432 / var(--base-width) * 100vw, 400px);
    background: linear-gradient(#80c6e5, #80c6e5) no-repeat top/100% 200px;
  }
}
.top__fv::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(80 / var(--base-width) * 100vw);
  background: linear-gradient(to top, var(--color-white) 50%, transparent 100%);
}
.top__kv {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 375/602;
}
@media screen and (min-width: 769px) {
  .top__kv {
    aspect-ratio: 1200/797;
  }
}
.top__kv img {
  width: 100%;
  height: 100%;
}
@media screen and (min-width: 769px) {
  .top__kv img {
    height: calc(100% + max(-80px, 200px - calc(200 / var(--base-width) * 100vw)));
    max-height: none;
    object-position: center bottom;
    object-fit: cover;
  }
}

/* ------------------------------
  top-about
------------------------------ */
.top-about {
  display: flex;
  position: relative;
  flex-direction: column;
  overflow: hidden;
  background-color: var(--color-bg-primary);
}
.top-about::before {
  content: "";
  width: 100%;
  height: auto;
  background: url("/wp-content/themes/global-passport/assets/images/top/bg_wave.svg") no-repeat bottom center/100% auto;
  aspect-ratio: 375/90;
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .top-about::before {
    aspect-ratio: 1280/240;
    background-size: 100% auto;
  }
}
.top-about::after {
  content: "";
  width: 100%;
  height: auto;
  background: url("/wp-content/themes/global-passport/assets/images/top/bg_wave_white.svg") no-repeat bottom center/100% auto;
  aspect-ratio: 375/64;
  background-color: var(--color-bg-primary);
}
@media screen and (min-width: 769px) {
  .top-about::after {
    background-size: 100% auto;
  }
}
.top-about__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 1060px;
  margin-inline: auto;
  padding: 20px 24px 56px;
}
@media screen and (min-width: 769px) {
  .top-about__inner {
    padding-block: 32px 40px;
  }
}
.top-about__movie {
  position: relative;
  z-index: 1;
  max-width: 740px;
  margin: 32px auto 0;
}
.top-about__movie iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
}
.top-about__deco {
  position: absolute;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.top-about__deco.is-plane {
  background-image: url("/wp-content/themes/global-passport/assets/images/top/img_plane.png");
}
@media screen and (max-width: 768.9px) {
  .top-about__deco.is-plane {
    top: 20px;
    left: 40px;
    width: 65px;
    height: 30px;
  }
}
@media screen and (min-width: 769px) {
  .top-about__deco.is-plane {
    top: 60px;
    left: calc(50% - 370px);
    width: 152px;
    height: 70px;
  }
}
.top-about__deco.is-bird {
  transform: scaleX(-1);
  background-image: url("/wp-content/themes/global-passport/assets/images/top/img_bird.png");
}
@media screen and (max-width: 768.9px) {
  .top-about__deco.is-bird {
    top: 180px;
    right: -6px;
    width: 60px;
    height: 37px;
  }
}
@media screen and (min-width: 769px) {
  .top-about__deco.is-bird {
    top: 600px;
    right: min(50% - 620px, 50% - calc(588 / var(--base-width) * 100vw));
    width: 133px;
    height: 84px;
  }
}

/* ------------------------------
  top-course
------------------------------ */
.top-course {
  position: relative;
  padding: 16px 24px 60px;
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .top-course {
    padding-block: 40px 50px;
  }
}
.top-course__inner {
  max-width: 996px;
  margin-inline: auto;
}
.top-course__section {
  position: relative;
  margin-top: 24px;
}
@media screen and (min-width: 769px) {
  .top-course__section {
    margin-top: 40px;
  }
  .top-course__section + .top-course__section {
    margin-top: 100px;
  }
}
.top-course__heading {
  margin-block: 0;
  padding: 8px 12px;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-family: var(--family-round);
  font-size: var(--font-size-2xl);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
  text-align: center;
}
.top-course__section--long .top-course__heading {
  background-color: var(--color-secondary);
}
@media screen and (min-width: 769px) {
  .top-course__heading {
    font-size: var(--font-size-5xl);
  }
}
.top-course__heading span {
  font-size: var(--font-size-m);
}
@media screen and (min-width: 769px) {
  .top-course__heading span {
    font-size: var(--font-size-2xl);
  }
}
.top-course__info {
  display: grid;
  gap: 8px;
  margin-block: 0;
  padding: 12px 12px 28px;
  background-color: var(--color-bg-primary-dark);
}
.top-course__section--long .top-course__info {
  background-color: var(--color-bg-secondary);
}
@media screen and (min-width: 769px) {
  .top-course__info {
    padding: 24px 40px 40px;
    gap: 16px;
  }
}
.top-course__info-item {
  display: grid;
  align-items: flex-start;
  gap: 8px 24px;
}
@media screen and (min-width: 769px) {
  .top-course__info-item {
    grid-template-columns: 118px 1fr;
  }
}
.top-course__info-title {
  padding: 4px 8px;
  background-color: var(--color-black);
  color: var(--color-white);
  font-size: var(--font-size-xs);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .top-course__info-title {
    font-size: var(--font-size-m);
  }
}
.top-course__info-data {
  margin-left: 0;
  font-size: var(--font-size-s);
  line-height: var(--line-tight);
}
@media screen and (min-width: 769px) {
  .top-course__info-data {
    grid-column: 2/3;
    font-size: var(--font-size-l);
  }
}
.top-course__info-data b {
  font-weight: var(--weight-bold);
}
.top-course__info-note {
  margin-block: 12px 0;
  font-size: var(--font-size-2xs);
}
@media screen and (min-width: 769px) {
  .top-course__info-note {
    margin-top: 16px;
    font-size: var(--font-size-s);
  }
}
.top-course__detail {
  display: grid;
  gap: 12px;
}
@media screen and (min-width: 769px) {
  .top-course__detail {
    gap: 16px;
  }
}
.top-course__detail-item {
  display: grid;
  gap: 4px;
}
@media screen and (min-width: 769px) {
  .top-course__detail-item {
    gap: 8px;
  }
}
.top-course__detail-title {
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: var(--weight-bold);
}
.top-course__detail-title::before {
  content: "";
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  background-color: var(--color-primary);
}
.top-course__section--long .top-course__detail-title::before {
  background-color: var(--color-secondary);
}
.top-course__detail-data {
  margin-left: 0;
  font-size: var(--font-size-xs);
}
@media screen and (min-width: 769px) {
  .top-course__detail-data {
    font-size: var(--font-size-m);
  }
}
.top-course__detail-data b {
  font-weight: var(--weight-bold);
}
.top-course__detail-data sup {
  margin-left: 4px;
  font-size: var(--font-size-2xs);
  font-weight: var(--weight-normal);
}
@media screen and (min-width: 769px) {
  .top-course__detail-data sup {
    font-size: var(--font-size-xs);
  }
}
.top-course__button-box {
  display: flex;
  justify-content: center;
  margin-top: -16px;
}
@media screen and (min-width: 769px) {
  .top-course__button-box {
    margin-top: -28px;
  }
}
.top-course__headline {
  position: relative;
}
@media screen and (min-width: 769px) {
  .top-course__headline {
    box-sizing: border-box;
    max-width: 788px;
    margin-inline: auto;
    padding-inline: 30px;
  }
}
.top-course__deco {
  position: absolute;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.top-course__deco.is-balloon {
  background-image: url("/wp-content/themes/global-passport/assets/images/top/img_balloon.png");
}
@media screen and (max-width: 768.9px) {
  .top-course__deco.is-balloon {
    top: -36px;
    left: 16px;
    width: 37px;
    height: 52px;
  }
}
@media screen and (min-width: 769px) {
  .top-course__deco.is-balloon {
    top: -32px;
    left: calc(50% - 524px);
    width: 80px;
    height: 112px;
  }
}

/* ------------------------------
  top-course-button
------------------------------ */
.top-course-button {
  --top-course-button-color: var(--color-primary);
  --top-course-button-hover-bg: var(--color-bg-primary);
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 330px;
  padding-bottom: 5px;
}
@media screen and (min-width: 769px) {
  .top-course-button {
    padding-bottom: 8px;
  }
}
.top-course-button::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50vh;
  background-image: linear-gradient(45deg, var(--top-course-button-color) 0 13%, transparent 13% 50%, var(--top-course-button-color) 50% 63%, transparent 63%);
  background-size: 4px 4px;
}
.top-course-button__link {
  display: flex;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 26px;
  padding: 6px 32px;
  transition: box-shadow var(--trans-default), background-color var(--trans-default);
  border: 1px solid var(--top-course-button-color);
  border-radius: 50vh;
  background-color: var(--color-white);
  color: var(--top-course-button-color);
  font-weight: var(--weight-bold);
  text-align: center;
  text-decoration: none;
  gap: 4px;
}
@media screen and (min-width: 769px) {
  .top-course-button__link {
    font-size: var(--font-size-m);
  }
}
@media (any-hover: hover) {
  .top-course-button__link:hover {
    background-color: var(--top-course-button-hover-bg);
    box-shadow: inset 0 0 0 2px var(--top-course-button-color);
  }
}
.top-course-button__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_right.svg") no-repeat center/contain;
}
.top-course-button__link[target=_blank]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_blank.svg") no-repeat center/contain;
}
.top-course-button__link[href^="#"]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_arrow_down.svg") no-repeat center/contain;
}
.top-course-button__link[download]::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-color: currentColor;
  mask: url("/wp-content/themes/global-passport/assets/images/icon/ico_download.svg") no-repeat center/contain;
}
@media screen and (min-width: 769px) {
  .top-course-button--large {
    min-width: min(760px, 100%);
    padding-bottom: 10px;
  }
}
.top-course-button--large .top-course-button__link {
  position: relative;
}
@media screen and (min-width: 769px) {
  .top-course-button--large .top-course-button__link {
    padding-block: 10px;
    padding-inline: 40px;
    font-size: var(--font-size-2xl);
  }
}
@media screen and (min-width: 769px) {
  .top-course-button--large .top-course-button__link::after {
    right: 24px;
    width: 16px;
    height: 16px;
  }
}
.top-course__section--long .top-course-button {
  --top-course-button-color: var(--color-secondary);
  --top-course-button-hover-bg: var(--color-bg-secondary);
}

/* ------------------------------
  top-faq
------------------------------ */
.top-faq {
  display: flex;
  position: relative;
  flex-direction: column;
}
.top-faq::before {
  content: "";
  width: 100%;
  height: auto;
  background: var(--color-white) url("/wp-content/themes/global-passport/assets/images/common/bg_mountain_top_sp.png") no-repeat center bottom/100%;
  aspect-ratio: 375/130;
}
@media screen and (min-width: 769px) {
  .top-faq::before {
    aspect-ratio: 1200/300;
    background-image: url("/wp-content/themes/global-passport/assets/images/common/bg_mountain_top_pc.png");
  }
}
.top-faq__body {
  padding-bottom: 80px;
  background: var(--color-secondary) url("/wp-content/themes/global-passport/assets/images/common/bg_mountain_body_sp.png") no-repeat center top/100%;
}
@media screen and (min-width: 769px) {
  .top-faq__body {
    padding-bottom: 140px;
    background-image: url("/wp-content/themes/global-passport/assets/images/common/bg_mountain_body_pc.png");
  }
}
.top-faq__inner {
  max-width: 1044px;
  margin-inline: auto;
  padding: 30px 24px 0;
}
.top-faq__inner__body {
  padding-top: 0;
}
.top-faq__heading {
  margin-block: 0 32px;
  color: var(--color-white);
  font-family: var(--family-round);
  font-size: var(--font-size-3xl);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .top-faq__heading {
    font-size: var(--font-size-5xl);
  }
}
.top-faq__heading span {
  display: block;
  font-size: var(--font-size-l);
}
.top-faq__note {
  margin-block: 24px 0;
  color: var(--color-white);
  font-size: var(--font-size-xs);
}
@media screen and (min-width: 769px) {
  .top-faq__note {
    margin-top: 32px;
  }
}
.top-faq__button-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-top: 40px;
}
@media screen and (min-width: 769px) {
  .top-faq__button-box {
    margin-top: 56px;
    gap: 32px;
  }
}

/* ------------------------------
  top-faq-accordion
------------------------------ */
.top-faq-accordion {
  display: grid;
  gap: 32px;
}
.top-faq-accordion__item {
  overflow: hidden;
  border-radius: 20px;
}
.top-faq-accordion__question {
  margin-block: 0;
}
.top-faq-accordion__button {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  padding: 12px 40px 12px 20px;
  border: 5px solid var(--color-white);
  border-radius: 20px 20px 0 0;
  background-color: var(--color-white);
  color: var(--color-secondary);
  font-size: var(--font-size-l);
  font-weight: var(--weight-bold);
  text-align: start;
}
@media screen and (min-width: 769px) {
  .top-faq-accordion__button {
    font-size: var(--font-size-2xl);
  }
}
@media (any-hover: hover) {
  .top-faq-accordion__button:hover {
    text-decoration: underline;
  }
}
.top-faq-accordion__button::before, .top-faq-accordion__button::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 12px;
  height: 2px;
  transform: translateY(-50%);
  background-color: var(--color-secondary);
}
@media screen and (min-width: 769px) {
  .top-faq-accordion__button::before, .top-faq-accordion__button::after {
    width: 24px;
  }
}
.top-faq-accordion__button::after {
  transition: rotate var(--trans-default);
}
.top-faq-accordion__button[aria-expanded=false]::after {
  rotate: 90deg;
  top: calc(50% - 1px);
  right: 9px;
}
.top-faq-accordion__answer {
  display: none;
  padding: 10px 16px 20px;
  border: 5px solid var(--color-white);
  border-top: 0;
  border-radius: 0 0 20px 20px;
  background-color: var(--color-secondary);
}
.top-faq-accordion__item:has([aria-expanded=true]) .top-faq-accordion__answer {
  display: block;
}
@media screen and (min-width: 769px) {
  .top-faq-accordion__answer {
    padding: 24px 32px;
  }
}
.top-faq-accordion__text {
  margin-block: 0;
  color: var(--color-white);
  font-size: var(--font-size-m);
}
@media screen and (min-width: 769px) {
  .top-faq-accordion__text {
    font-size: var(--font-size-xl);
  }
}

/* ------------------------------
  top-news-important
------------------------------ */
.top-news-important {
  position: relative;
  z-index: 1;
  padding: 8px 32px;
}
@media screen and (min-width: 769px) {
  .top-news-important {
    padding-block: 12px;
  }
}
.top-news-important__inner {
  box-sizing: border-box;
  max-width: 1056px;
  margin-inline: auto;
  padding: 2px 4px;
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .top-news-important__inner {
    padding: 0 4px 2px;
  }
}
.top-news-important__link {
  display: block;
  color: var(--color-black);
  text-decoration: none;
}
.top-news-important__label {
  display: inline-flex;
  position: relative;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: var(--font-size-xs);
  font-weight: var(--weight-bold);
  line-height: var(--line-none);
}
@media screen and (max-width: 768.9px) {
  .top-news-important__label {
    margin-left: -4px;
  }
}
@media screen and (min-width: 769px) {
  .top-news-important__label {
    min-height: 26px;
    padding-inline: 20px;
    font-size: var(--font-size-m);
  }
}
.top-news-important__title {
  margin-left: 8px;
  font-size: var(--font-size-xs);
  font-weight: var(--weight-bold);
  line-height: var(--line-relax);
}
@media screen and (min-width: 769px) {
  .top-news-important__title {
    font-size: var(--font-size-l);
  }
}
@media (any-hover: hover) {
  .top-news-important__link:hover .top-news-important__title {
    text-decoration: underline;
  }
}

/* ------------------------------
  top-pickup
------------------------------ */
.top-pickup {
  position: relative;
  z-index: 1;
  padding: 0 8px 20px;
}
@media screen and (min-width: 769px) {
  .top-pickup {
    padding: 12px 40px 0;
    background-size: 100%;
  }
}
.top-pickup__inner {
  max-width: 1160px;
  margin-inline: auto;
}

/* ------------------------------
  top-pickup-slider
------------------------------ */
.top-pickup-slider {
  position: relative;
  padding-inline: 20px;
}
@media screen and (min-width: 769px) {
  .top-pickup-slider {
    padding-inline: 52px;
  }
}
.top-pickup-slider__slide {
  height: auto;
}
.top-pickup-slider__link {
  display: flex;
  box-sizing: border-box;
  flex-direction: column;
  height: 100%;
  background-color: var(--color-white);
  color: var(--color-black);
  text-decoration: none;
}
.top-pickup-slider__image {
  width: 100%;
  min-height: 0;
  aspect-ratio: 345/194;
  overflow: hidden;
}
.top-pickup-slider__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale var(--trans-default);
}
@media (any-hover: hover) {
  .top-pickup-slider__link:hover .top-pickup-slider__image img {
    scale: 1.05;
  }
}
.top-pickup-slider__arrow {
  position: absolute;
  top: 50%;
  width: 10px;
  height: 20px;
  padding: 0;
  transform: translateY(-50%);
  transition: scale var(--trans-default);
  border: 0;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  font-size: 0;
}
@media screen and (min-width: 769px) {
  .top-pickup-slider__arrow {
    width: 16px;
    height: 32px;
  }
}
@media (any-hover: hover) {
  .top-pickup-slider__arrow:hover {
    scale: 1.2;
  }
}
.top-pickup-slider__arrow.is-prev {
  left: 0;
  background-image: url("/wp-content/themes/global-passport/assets/images/top/ico_slider_arrow_prev.svg");
}
.top-pickup-slider__arrow.is-next {
  right: 0;
  background-image: url("/wp-content/themes/global-passport/assets/images/top/ico_slider_arrow_next.svg");
}

/* ------------------------------
  top-requirement
------------------------------ */
.top-requirement {
  position: relative;
  padding: 16px 24px 60px;
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .top-requirement {
    padding-block: 40px 50px;
  }
}
.top-requirement__inner {
  max-width: 996px;
  margin-inline: auto;
}

/* ------------------------------
  top-requirement-info
------------------------------ */
.top-requirement-info {
  margin-block: 0;
  border: 1px solid var(--color-gray);
}
.top-requirement-info__item {
  display: grid;
  border-top: 1px solid var(--color-gray);
}
.top-requirement-info__item:first-child {
  border-top: 0;
}
@media screen and (min-width: 769px) {
  .top-requirement-info__item {
    grid-template-columns: 220px 1fr;
  }
}
.top-requirement-info__title {
  padding: 6px 8px;
  background-color: var(--color-bg-primary);
  font-size: var(--font-size-s);
  font-weight: var(--weight-bold);
}
@media screen and (min-width: 769px) {
  .top-requirement-info__title {
    padding: 12px 16px;
    font-size: var(--font-size-m);
  }
}
.top-requirement-info__data {
  margin-left: 0;
  padding: 6px 8px;
  border-top: 1px solid var(--color-gray);
  font-size: var(--font-size-s);
}
@media screen and (min-width: 769px) {
  .top-requirement-info__data {
    padding: 12px 16px;
    border-top: 0;
    border-left: 1px solid var(--color-gray);
    font-size: var(--font-size-m);
  }
}
.top-requirement-info__data b {
  font-weight: var(--weight-bold);
}

/* ------------------------------
  top-schedule
------------------------------ */
.top-schedule {
  position: relative;
  padding: 90px 24px 50px;
  overflow: hidden;
  background-color: var(--color-white);
}
@media screen and (min-width: 769px) {
  .top-schedule {
    padding-block: 164px 12px;
  }
}
.top-schedule__deco {
  position: absolute;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.top-schedule__deco.is-school {
  background-image: url("/wp-content/themes/global-passport/assets/images/top/img_school.png");
}
@media screen and (max-width: 768.9px) {
  .top-schedule__deco.is-school {
    top: 0;
    left: calc(50% - 20px);
    width: 148px;
    height: 76px;
    transform: translateX(-50%);
  }
}
@media screen and (min-width: 769px) {
  .top-schedule__deco.is-school {
    top: 0;
    right: calc(50% - 640px);
    width: 249px;
    height: 128px;
  }
}
.top-schedule__deco.is-talk {
  background-image: url("/wp-content/themes/global-passport/assets/images/top/img_talk.png");
}
@media screen and (max-width: 768.9px) {
  .top-schedule__deco.is-talk {
    top: 0;
    left: calc(50% + 84px);
    width: 52px;
    height: 69px;
    transform: translateX(-50%);
  }
}
.top-schedule__inner {
  max-width: 996px;
  margin-inline: auto;
}

/* ------------------------------
  top-schedule-list
------------------------------ */
.top-schedule-list {
  display: grid;
  gap: 12px;
  margin-block: 24px 0;
  padding-left: 0;
  list-style: none;
}
@media screen and (min-width: 769px) {
  .top-schedule-list {
    grid-template-columns: repeat(6, 1fr);
    margin-top: 56px;
  }
}
.top-schedule-list__item {
  display: flex;
  position: relative;
  align-items: flex-start;
  gap: 8px;
}
@media screen and (min-width: 769px) {
  .top-schedule-list__item {
    flex-direction: column;
    align-items: center;
  }
}
.top-schedule-list__item:not(:last-child)::before {
  content: "";
  position: absolute;
  top: calc(8px + var(--font-size-2xl) * 0.7);
  left: calc(var(--font-size-2xl) * 0.7 - 1.5px);
  width: 3px;
  height: calc(100% + 12px - var(--font-size-2xl) * 0.7 - 14px);
  background: radial-gradient(circle closest-side, var(--color-primary) calc(100% - 0.5px), transparent 100%) center bottom/3px 7px repeat-y;
}
@media screen and (min-width: 769px) {
  .top-schedule-list__item:not(:last-child)::before {
    top: calc(var(--font-size-3xl) * 0.7 - 1.5px);
    left: 50%;
    width: calc(100% + 12px - var(--font-size-3xl) * 0.7 - 14px);
    height: 3px;
    background-repeat: repeat-x;
    background-position: right center;
    background-size: 7px 3px;
  }
}
.top-schedule-list__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: calc(100% + 12px + 8px - 2px - 4.05px);
  left: calc(var(--font-size-2xl) * 0.7 - 10px);
  width: 10px;
  height: 9px;
  transform: rotate(90deg);
  transform-origin: right 4.05px;
  background-color: var(--color-primary);
  mask: url("/wp-content/themes/global-passport/assets/images/top/ico_schedule_arrow.svg") no-repeat left top/10px 9px;
}
@media screen and (min-width: 769px) {
  .top-schedule-list__item:not(:last-child)::after {
    top: calc(var(--font-size-3xl) * 0.7 - 4.05px);
    left: calc(150% + 12px - var(--font-size-3xl) * 0.7 - 2px - 10px);
    transform: none;
  }
}
.top-schedule-list__number {
  display: flex;
  z-index: 1;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 1.4em;
  margin-top: 8px;
  border-radius: 100%;
  background-color: var(--color-primary);
  color: var(--color-white);
  font-size: var(--font-size-2xl);
  line-height: var(--line-none);
  aspect-ratio: 1/1;
}
@media screen and (min-width: 769px) {
  .top-schedule-list__number {
    margin-top: 0;
    font-size: var(--font-size-3xl);
  }
}
.top-schedule-list__card {
  flex: 1;
  padding: 12px;
  border: 1px solid var(--color-primary);
}
@media screen and (min-width: 769px) {
  .top-schedule-list__card {
    padding-inline: 6px;
  }
}
.top-schedule-list__title {
  margin-block: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-primary);
  color: var(--color-primary);
  font-family: var(--family-round);
  font-size: var(--font-size-l);
  font-weight: var(--weight-bold);
  line-height: var(--line-tight);
}
@media screen and (min-width: 769px) {
  .top-schedule-list__title {
    font-size: var(--font-size-xl);
    text-align: center;
  }
}
.top-schedule-list__content {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 8px;
  gap: 8px;
}
@media screen and (min-width: 769px) {
  .top-schedule-list__content {
    flex-direction: column;
  }
}
.top-schedule-list__image {
  flex-shrink: 0;
  width: min(90px, 100%);
  height: auto;
  aspect-ratio: 90/63;
}
@media screen and (min-width: 769px) {
  .top-schedule-list__image {
    width: min(114px, 100%);
  }
}
.top-schedule-list__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.top-schedule-list__text {
  margin-block: 0;
  font-size: var(--font-size-s);
}
@media screen and (min-width: 769px) {
  .top-schedule-list__text {
    text-align: center;
  }
}

/* ------------------------------
  top-text
------------------------------ */
.top-text {
  margin-block: 0;
  font-size: var(--font-size-s);
  text-align: center;
}
@media screen and (min-width: 769px) {
  .top-text {
    font-size: var(--font-size-l);
  }
}
