/* ============================================ */
/* PAGE HERO（4:3のページ先頭ヒーロー画像・全ページ共通） */
/* ============================================ */
.page-hero {
    position: relative;
    width: 100vw;
    left: 50%;
    transform: translateX(-50%);
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.page-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* flavors.astroのみ画像の見せ方が異なる差分（上寄り20%） */
.page-hero.hero-align-top img {
    object-position: center 20%;
}

.page-hero-text {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 3.2rem 0 2rem;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85), transparent);
}

.page-hero-text .title {
    margin: 0;
    border-bottom: none;
    color: var(--color-gold);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

/* ============================================ */
/* AMBIANCE IMAGE（16:9の雰囲気写真・全ページ共通） */
/* ============================================ */
.ambiance-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    margin-top: 3rem;
}

.ambiance-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* ============================================ */
/*          styleのユーティリティクラス           */
/* ============================================ */
.mt-3 {
    margin-top: 3rem;
}

.mt-2 {
    margin-top: 2rem;
}

.mt-1_6 {
    margin-top: 1.6rem;
}

.text-center {
    text-align: center;
}

/* ============================================ */
/* ACCORDION（共通のアコーディオン構造・全ページ共通） */
/* ============================================ */
.accordion-toggle {
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: left;
    font: inherit;
}

.accordion-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease-out;
}

.accordion.active>.accordion-content {
    grid-template-rows: 1fr;
}

.accordion-inner {
    overflow: hidden;
}