/* base */
@charset "utf-8";

/* CSS Document */

/* タイトルスタイル（全ページ共通） */
.section__title .title__lang {
  display: block;
}
.section__title .title__lang--en {
  color: #e07f81;
  font-size: 1.2rem;
  font-weight: 700;
  text-transform: uppercase;
}
.section__title .title__lang--jp {
  font-size: 2.3rem;
  font-weight: 500;
}
.section__title .title--center {
  text-align: center;
}
.section__title .title--left .title__lang--en {
  margin-bottom: 10px;
}

html {
    scroll-behavior: smooth;
}

.hero {
    background: #FFFFFF;
    position: relative;
}

.hero__container {
    aspect-ratio: 529 / 543;
}

.hero__mask {
    bottom: 40px;
    position: absolute;
    width: 100%;
}

[data-page=top] .hero__image{
	position: relative;
}

h1.tittle {
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    font-weight: 500;
    font-size: 3.2rem;
    text-align: center;
    text-shadow: 0 0 4px #3b3b3b,
        0 0 8px #3b3b3b,
        0 0 12px #3b3b3b;
    width: 100%;
}

.mb0 {
    margin-bottom: 0 !important;
}

.mb30 {
    margin-bottom: 30px;
}

.mt50 {
    margin-top: 50px;
}

.related {
    max-width: 800px;
    margin: 30px auto 0;
    text-align: center;
}

.related__title {
    color: #e07f81;
    margin-bottom: 24px;
    font-size: 2rem;
    font-weight: 500;
}

/* 2列グリッド */
.related__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    list-style: none;
    padding: 0;
    margin: 0;
}

/* 各アイテム */
.related__item a {
    display: flex;
    align-items: center;
    padding: 20px 10px 20px 20px;
    border: 1px solid #ccc;
    border-radius: 8px;
    text-decoration: none;
    color: #191e1f;
    font-size: 1.3rem;
    position: relative;
    background: #FFFFFF;
    transition: background .2s;
    font-weight: 500;
	text-align: left;
}

.related__item a:hover {
    background: #f7eff0;
}

/* 左の半円アイコン */
.related__item a::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 6px;
    height: 10px;
    background-color: #e57373;
    border-top-right-radius: 16px;
    border-bottom-right-radius: 16px;
}

/* 右の矢印を背景画像で */
.related__item a .arrow-icon {
    margin-left: auto;
    display: inline-block;
    width: 16px;
    /* 矢印画像の幅 */
    height: 16px;
    /* 矢印画像の高さ */
    background: url("../../images/policy/arrow_r.png'") no-repeat center center;
    background-size: contain;
}

/* パンくずナビ全体 */
.breadcrumb {
    display: inline-flex;
    align-items: center;
    padding: 20px;
    border-bottom: 1px solid #cccccc;
    /* 下のライン */
    margin-bottom: 24px;
    width: 100%;
}

/* リストリセット */
.breadcrumb ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.breadcrumb li {
    display: flex;
    align-items: center;
}

/* セパレータ */
.breadcrumb li+li::before {
    content: "―";
    margin: 0 8px;
    color: #bbbbbb;
}

/* リンク */
.breadcrumb a {
    color: #bbbbbb;
    text-decoration: none;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

/* 現在ページ */
.breadcrumb .current {
    color: #e07f81;
    font-weight: bold;
}

/* scedule_day */

/* Logo switching for dual-logo header */
.header__logo-img--normal {
    display: none;
}

.header__logo.is-visible .header__logo-img--white {
    display: none;
}

.header__logo.is-visible .header__logo-img--normal {
    display: block;
}

.tab-labels {
    display: flex;
    gap: 15px;
    padding: 0 20px;
    border-bottom: 8px solid #e07f81;
}

.tab-labels button {

    padding-top: 16px;
    padding-bottom: 12px;

    flex: 100;
    cursor: pointer;
    border: 2px solid #e07f81;
    border-bottom: none;
    border-radius: 16px 16px 0 0;
    color: #e07f81;
    transition: background 0.3s, color 0.3s;
    font-size: 15px;
    font-weight: 600;
    background: none;
    line-height: 1.3;

    height: 80px;
}

.tab-labels button:hover:not(.active) {
    background: rgba(224, 127, 129, 0.1);
}

.tab-labels button.active {
    background: #e07f81;
    color: white;
}

.arrow-container {
    position: relative;
    display: block;
    margin: 8px auto 0;
    width: fit-content;
}

.arrow-default,
.arrow-active {
    transition: opacity 0.3s;
    width: 10px;
    height: 4.5px;
}

.arrow-active {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
}

button.active .arrow-active {
    opacity: 1;
}

button.active .arrow-default {
    opacity: 0;
}

.tab-content .content {
    display: none;
}

.tab-content .content.active {
    display: block;
}

.flow_schedule {
    padding: 44px 0px 80px;
}

/* タイムライン本体 */
.flow__list_schedule {
    position: relative;
}

/* 縦ライン（中央寄り左に表示） */
.flow__list_schedule::before {
    content: "";
    position: absolute;
    left: 37.75px;
    /* バッジの右端に合わせる */
    top: 20px;
    bottom: 0;
    width: 2px;
    background: #e07f81;
}

/* 各行 */
.flow__item_schedule {
    display: grid;
    grid-template-columns: 77.5px 1fr;
}

/* ステップ丸角バッジ */
.flow__step_schedule {
    display: inline-grid;
    place-items: center;
    border-radius: 10px;
    background: #e07f81;
    color: #fff;
    font-size: 21px;
    align-self: start;
    z-index: 1;
    line-height: 1;
    font-family: "Barlow", sans-serif;

    width: 77.5px;
    height: 32.5px;
    font-weight: 500;

    box-shadow: 0 -5px 0 #f7eff0, 0 5px 0 #f7eff0;
}

/* 各項目の内容 */
.flow__body_schedule {
    padding-left: 22px;
    margin-bottom: 16px;
}

.flow__body_schedule a + .flow_schedule_img{
    margin-top: 40px;
}

.flow__title_schedule {
    margin-bottom: 8px;
    color: #e07f81;
    font-weight: 500;
    font-size: 17px;
}

.flow_schedule_img {
    margin-top: 20px;
    margin-bottom: 28px;
    border-radius: 10px;
    box-shadow: 10px 10px 0px rgba(255, 255, 255, 1);

    width: calc(100% - 10px);

}

.schedule_link_label {
    display: inline-block;
    margin-top: 12px;
    border-bottom: 1px solid #e07f81;
}

.schedule_arrow-icon {
    margin-left: auto;
    display: inline-block;
    width: 16px;
    height: 16px;
    background: url("../../images/policy/arrow_r.png") no-repeat center center;
    background-size: contain;
    margin-bottom: -2px;
}

.schedule-text {
    letter-spacing: 0.08em;
    line-height: 1.8;
}

h1.tittle {
    font-size: 27px;
}

[data-page=top] .section__title .title__lang--jp {
    font-size: 23px;
}

[data-page=top] .concept__button {
    margin-top: 50px;
}