/*
 * カラーパレット
 */

:root {
    --aidakko-primary: #c894c1;
    --aidakko-primary-dark: #8b4f83;
    --aidakko-primary-deep: #65375f;
    --aidakko-primary-light: #ead5e7;
    --aidakko-primary-pale: #f7eef6;
    --aidakko-primary-contrast: #ffffff;

    --aidakko-text: #333333;
    --aidakko-text-muted: #666666;
    --aidakko-border: #dfc9dc;
    --aidakko-surface: #ffffff;

    --aidakko-header-height: 64px;
}

/*
 * テーマ全体
 */

html {
    overflow-y: scroll;
}

body {
    min-height: 100vh;
    color: var(--aidakko-text);
    background: linear-gradient(
        135deg,
        #f8f2f7 0%,
        #fbf9fb 50%,
        #f5edf4 100%
    );
}

a {
    color: var(--aidakko-primary-dark);
}

a:hover,
a:focus {
    color: var(--aidakko-primary-deep);
}

/*
 * 通常ページのヘッダー
 */

.site-header {
    background: linear-gradient(
        90deg,
        var(--aidakko-primary-pale) 0%,
        var(--aidakko-primary-light) 100%
    );
    border-bottom: 1px solid var(--aidakko-border);
}

.site-title {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 600;
}

.site-title a {
    color: inherit;
    text-decoration: none;
}

.site-title a:hover,
.site-title a:focus {
    color: inherit;
    text-decoration: none;
}

.site-description {
    margin: 0.25rem 0 0;
    color: var(--aidakko-text-muted);
}

/*
 * 共通ナビゲーション
 *
 * 通常ページ：
 * .primary-navigation
 *
 * トップページ：
 * .front-primary-navigation
 */

.primary-navigation .menu,
.front-primary-navigation .menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.primary-navigation .menu > li,
.front-primary-navigation .menu > li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.primary-navigation .menu > li > a,
.front-primary-navigation .menu > li > a {
    display: block;
    padding: 0.55rem 1rem;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
    border: 1px solid transparent;
    border-radius: 0.35rem;
    transition:
        color 0.15s ease,
        background-color 0.15s ease,
        border-color 0.15s ease,
        transform 0.15s ease;
}

/*
 * 通常ページのメニュー配色
 */

.primary-navigation .menu > li > a {
    color: var(--aidakko-primary-deep);
    background-color: rgba(255, 255, 255, 0.65);
    border-color: rgba(139, 79, 131, 0.28);
}

.primary-navigation .menu > li > a:visited {
    color: var(--aidakko-primary-deep);
}

.primary-navigation .menu > li > a:hover,
.primary-navigation .menu > li > a:focus {
    color: #ffffff;
    text-decoration: none;
    background-color: var(--aidakko-primary-dark);
    border-color: var(--aidakko-primary-dark);
    transform: translateY(-1px);
}

/*
 * 通常ページで現在選択されているメニュー
 */

.primary-navigation .menu > .current-menu-item > a,
.primary-navigation .menu > .current_page_item > a,
.primary-navigation .menu > .current-menu-ancestor > a,
.primary-navigation .menu > .current-menu-item > a:visited,
.primary-navigation .menu > .current_page_item > a:visited,
.primary-navigation .menu > .current-menu-ancestor > a:visited {
    color: #ffffff;
    font-weight: 700;
    text-decoration: none;
    background-color: var(--aidakko-primary-deep);
    border-color: var(--aidakko-primary-deep);
}

/*
 * 選択中のメニューにマウスを重ねた場合
 */

.primary-navigation .menu > .current-menu-item > a:hover,
.primary-navigation .menu > .current-menu-item > a:focus,
.primary-navigation .menu > .current_page_item > a:hover,
.primary-navigation .menu > .current_page_item > a:focus,
.primary-navigation .menu > .current-menu-ancestor > a:hover,
.primary-navigation .menu > .current-menu-ancestor > a:focus {
    color: #ffffff;
    text-decoration: none;
    background-color: var(--aidakko-primary-dark);
    border-color: var(--aidakko-primary-dark);
}

/*
 * 階層メニュー
 */

.primary-navigation .menu > .menu-item-has-children,
.front-primary-navigation .menu > .menu-item-has-children {
    position: relative;
}

.primary-navigation .sub-menu,
.front-primary-navigation .sub-menu {
    position: absolute;
    z-index: 1050;
    top: 100%;
    left: 0;
    display: none;
    min-width: 14rem;
    margin: 0;
    padding: 0.4rem 0;
    list-style: none;
    background-color: #ffffff;
    border: 1px solid var(--aidakko-border);
    border-radius: 0.35rem;
    box-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.15);
}

.primary-navigation .menu-item-has-children:hover > .sub-menu,
.primary-navigation .menu-item-has-children:focus-within > .sub-menu,
.front-primary-navigation .menu-item-has-children:hover > .sub-menu,
.front-primary-navigation .menu-item-has-children:focus-within > .sub-menu {
    display: block;
}

.primary-navigation .sub-menu li,
.front-primary-navigation .sub-menu li {
    margin: 0;
    padding: 0;
}

.primary-navigation .sub-menu a,
.front-primary-navigation .sub-menu a {
    display: block;
    padding: 0.6rem 0.9rem;
    color: var(--aidakko-primary-deep);
    white-space: nowrap;
    text-decoration: none;
}

.primary-navigation .sub-menu a:hover,
.primary-navigation .sub-menu a:focus,
.front-primary-navigation .sub-menu a:hover,
.front-primary-navigation .sub-menu a:focus {
    color: #ffffff;
    background-color: var(--aidakko-primary-dark);
}

/*
 * サイドバー内のナビゲーションメニュー
 */

.sidebar-area .widget_nav_menu ul,
.sidebar-area .wp-block-navigation__container {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sidebar-area .widget_nav_menu li,
.sidebar-area .wp-block-navigation-item {
    margin: 0 0 0.45rem;
    padding: 0;
}

.sidebar-area .widget_nav_menu li:last-child,
.sidebar-area .wp-block-navigation-item:last-child {
    margin-bottom: 0;
}

.sidebar-area .widget_nav_menu a,
.sidebar-area .wp-block-navigation-item__content {
    display: block;
    padding: 0.6rem 0.75rem;
    color: var(--aidakko-primary-deep);
    text-decoration: none;
    background-color: var(--aidakko-primary-pale);
    border: 1px solid var(--aidakko-border);
    border-radius: 0.3rem;
}

.sidebar-area .widget_nav_menu a:hover,
.sidebar-area .widget_nav_menu a:focus,
.sidebar-area .wp-block-navigation-item__content:hover,
.sidebar-area .wp-block-navigation-item__content:focus {
    color: #ffffff;
    text-decoration: none;
    background-color: var(--aidakko-primary-dark);
    border-color: var(--aidakko-primary-dark);
}

.sidebar-area .widget_nav_menu .current-menu-item > a,
.sidebar-area .widget_nav_menu .current_page_item > a,
.sidebar-area .wp-block-navigation-item.current-menu-item
    > .wp-block-navigation-item__content {
    color: #ffffff;
    font-weight: 700;
    background-color: var(--aidakko-primary-deep);
    border-color: var(--aidakko-primary-deep);
}

/*
 * メインレイアウト
 */

.site-main {
    min-height: 60vh;
}

.content-column,
.sidebar-column {
    min-width: 0;
}

.content-area,
.sidebar-area {
    height: 100%;
    background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.98) 0%,
        rgba(250, 245, 249, 0.98) 100%
    );
    border: 1px solid var(--aidakko-border);
    border-radius: 0.4rem;
    box-shadow: 0 0.15rem 0.5rem rgba(0, 0, 0, 0.04);
}

.content-area {
    padding: 1.25rem;
}

.sidebar-area {
    padding: 1rem;
}

/*
 * 投稿・固定ページ
 */

.entry {
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--aidakko-border);
}

.entry:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.entry-title {
    overflow-wrap: anywhere;
    font-size: 1.75rem;
    line-height: 1.35;
}

.entry-title a {
    color: inherit;
    text-decoration: none;
}

.entry-title a:hover,
.entry-title a:focus {
    color: var(--aidakko-primary-dark);
    text-decoration: none;
}

.entry-meta {
    margin-bottom: 1rem;
    color: var(--aidakko-text-muted);
    font-size: 0.875rem;
}

.entry-content,
.entry-summary {
    overflow-wrap: anywhere;
}

.entry-content a,
.entry-summary a {
    color: var(--aidakko-primary-dark);
}

.entry-content a:hover,
.entry-content a:focus,
.entry-summary a:hover,
.entry-summary a:focus {
    color: var(--aidakko-primary-deep);
}

.entry-content img,
.entry-summary img,
.entry-thumbnail img {
    max-width: 100%;
    height: auto;
}

/*
 * ウィジェット
 */

.widget {
    margin-bottom: 2rem;
}

.widget:last-child {
    margin-bottom: 0;
}

/*
 * 従来型ウィジェットとブロックウィジェットの見出し
 */

.widget-title,
.sidebar-area .wp-block-heading,
.sidebar-area h2.wp-block-heading {
    margin: 0 0 1rem;
    padding: 0.55rem 0.75rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    background: linear-gradient(
        135deg,
        var(--aidakko-primary-light) 0%,
        var(--aidakko-primary-pale) 100%
    );
    border-left: 4px solid var(--aidakko-primary);
    border-bottom: 1px solid var(--aidakko-border);
    border-radius: 0.2rem;
}

.sidebar-area .wp-block-heading.has-small-font-size,
.sidebar-area .wp-block-heading.has-medium-font-size,
.sidebar-area .wp-block-heading.has-large-font-size,
.sidebar-area .wp-block-heading.has-x-large-font-size,
.sidebar-area .wp-block-heading.has-xx-large-font-size {
    font-size: 1rem;
}

.widget ul,
.sidebar-area ul {
    margin-bottom: 0;
    padding-left: 1.25rem;
}

.widget li,
.sidebar-area li {
    margin-bottom: 0.4rem;
}

.widget li:last-child,
.sidebar-area li:last-child {
    margin-bottom: 0;
}

.widget a,
.sidebar-area a {
    color: var(--aidakko-primary-dark);
    text-decoration: none;
}

.widget a:hover,
.widget a:focus,
.sidebar-area a:hover,
.sidebar-area a:focus {
    color: var(--aidakko-primary-deep);
    text-decoration: underline;
}

/*
 * サイドバー内のブロック間隔
 */

.sidebar-area .wp-block-group,
.sidebar-area .wp-block-latest-posts,
.sidebar-area .wp-block-latest-comments,
.sidebar-area .wp-block-archives,
.sidebar-area .wp-block-categories {
    margin-bottom: 2rem;
}

.sidebar-area > *:last-child {
    margin-bottom: 0;
}

/*
 * ページネーション
 */

.navigation.pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.navigation.pagination .page-numbers {
    display: inline-block;
    padding: 0.375rem 0.75rem;
    color: var(--aidakko-primary-dark);
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid var(--aidakko-border);
    border-radius: 0.25rem;
    text-decoration: none;
}

.navigation.pagination a.page-numbers:hover,
.navigation.pagination a.page-numbers:focus {
    color: var(--aidakko-primary-deep);
    background-color: var(--aidakko-primary-light);
}

.navigation.pagination .current {
    color: var(--aidakko-primary-contrast);
    font-weight: 700;
    background-color: var(--aidakko-primary);
    border-color: var(--aidakko-primary);
}

/*
 * フッター
 */

.site-footer {
    background: linear-gradient(
        90deg,
        var(--aidakko-primary-light) 0%,
        var(--aidakko-primary-pale) 100%
    );
    border-top: 1px solid var(--aidakko-border);
}

/*
 * WordPress標準配置クラス
 */

.alignleft {
    float: left;
    margin-right: 1rem;
    margin-bottom: 1rem;
}

.alignright {
    float: right;
    margin-left: 1rem;
    margin-bottom: 1rem;
}

.aligncenter {
    display: block;
    margin-right: auto;
    margin-left: auto;
}

.wp-caption {
    max-width: 100%;
}

.wp-caption-text {
    color: var(--aidakko-text-muted);
    font-size: 0.875rem;
}

/*
 * フロート解除
 */

.entry-content::after,
.entry-summary::after {
    display: block;
    clear: both;
    content: "";
}

/*
 * 投稿・固定ページのカラム幅
 *
 * 3カラム
 *   左サイドバー：24%
 *   メイン領域　：58%
 *   右サイドバー：18%
 *
 * 2カラム（左）
 *   左サイドバー：26%
 *   メイン領域　：74%
 *
 * 2カラム（右）
 *   メイン領域　：76%
 *   右サイドバー：24%
 *
 * 1カラム
 *   メイン領域　：100%
 */

@media (min-width: 992px) {
    /* 3カラム */
    .aidakko-layout--three-column > .aidakko-sidebar-left {
        flex: 0 0 24%;
        width: 24%;
        max-width: 24%;
    }

    .aidakko-layout--three-column > .aidakko-main {
        flex: 0 0 58%;
        width: 58%;
        max-width: 58%;
    }

    .aidakko-layout--three-column > .aidakko-sidebar-right {
        flex: 0 0 18%;
        width: 18%;
        max-width: 18%;
    }

    /* 2カラム：左サイドバー＋本文 */
    .aidakko-layout--two-column-left > .aidakko-sidebar-left {
        flex: 0 0 26%;
        width: 26%;
        max-width: 26%;
    }

    .aidakko-layout--two-column-left > .aidakko-main {
        flex: 0 0 74%;
        width: 74%;
        max-width: 74%;
    }

    /* 2カラム：本文＋右サイドバー */
    .aidakko-layout--two-column-right > .aidakko-main {
        flex: 0 0 76%;
        width: 76%;
        max-width: 76%;
    }

    .aidakko-layout--two-column-right > .aidakko-sidebar-right {
        flex: 0 0 24%;
        width: 24%;
        max-width: 24%;
    }

    /* 1カラム */
    .aidakko-layout--one-column > .aidakko-main,
    .aidakko-layout--member-introduction > .aidakko-main {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }
}

/*
 * 992px未満では1カラム表示
 */

@media (max-width: 991.98px) {
    .aidakko-layout > .aidakko-sidebar-left,
    .aidakko-layout > .aidakko-main,
    .aidakko-layout > .aidakko-sidebar-right {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }
}


/*
 * プロジェクトメンバー紹介レイアウト
 *
 * 固定ページの「ページレイアウト」で
 * 「プロジェクトメンバー紹介（サイドバーなし）」を選択した場合に使用する。
 */

.aidakko-layout--member-introduction {
    justify-content: center;
}

.aidakko-layout--member-introduction > .aidakko-main {
    margin-right: auto;
    margin-left: auto;
}

.aidakko-layout--member-introduction .content-area {
    width: 100%;
    max-width: 1480px;
    margin-right: auto;
    margin-left: auto;
    padding: clamp(1.25rem, 2.4vw, 2.5rem);
}

.aidakko-layout--member-introduction .entry {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.aidakko-layout--member-introduction .entry-title {
    margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

/*
 * メンバー紹介ブロックパターン
 */

.aidakko-member-directory {
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
}

.aidakko-member-card {
    margin: 0;
    padding: clamp(1rem, 2vw, 1.5rem);
    background:
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.98) 0%,
            rgba(255, 247, 250, 0.98) 100%
        );
    border: 1px solid var(--aidakko-border);
    border-radius: 1rem;
    box-shadow: 0 0.35rem 1.1rem rgba(111, 52, 75, 0.07);
}

.aidakko-member-card > .wp-block-columns {
    align-items: center;
    gap: clamp(1rem, 3vw, 2.5rem);
    margin-bottom: 0;
}

.aidakko-member-photo-column {
    flex-basis: 28%;
    min-width: 0;
}

.aidakko-member-profile-column {
    flex-basis: 72%;
    min-width: 0;
}

.aidakko-member-photo {
    margin: 0;
}

.aidakko-member-photo img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: none;
    margin-right: auto;
    margin-left: auto;
    object-fit: contain;
    border-radius: 1rem;
}

.aidakko-member-name {
    margin: 0 0 0.35rem;
    color: var(--aidakko-primary-deep);
    font-size: clamp(1.25rem, 2vw, 1.65rem);
    font-weight: 700;
    line-height: 1.35;
}

.aidakko-member-role {
    margin: 0 0 1rem;
    color: var(--aidakko-primary-dark);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.5;
}

.aidakko-member-message {
    margin: 0;
    color: var(--aidakko-text);
    line-height: 1.85;
}

.aidakko-member-message + .aidakko-member-message {
    margin-top: 0.75rem;
}

/*
 * タブレット・スマートフォンでは、
 * 写真と紹介文を縦並びにして可読性を確保する。
 */

@media (max-width: 767.98px) {
    .aidakko-layout--member-introduction .content-area {
        padding: 1rem;
    }

    .aidakko-member-card {
        padding: 1rem;
    }

    .aidakko-member-card > .wp-block-columns {
        gap: 1rem;
    }

    .aidakko-member-photo-column,
    .aidakko-member-profile-column {
        flex-basis: 100%;
    }

    .aidakko-member-photo img {
        max-width: 100%;
    }

    .aidakko-member-name,
    .aidakko-member-role,
    .aidakko-member-profile-column {
        text-align: center;
    }

    .aidakko-member-message {
        text-align: left;
    }
}

/*
 * トップページ専用レイアウト
 */

:root {
    --aidakko-primary: #e9779f;
    --aidakko-primary-dark: #c94f7c;
    --aidakko-primary-deep: #96375c;
    --aidakko-primary-light: #f8cbd9;
    --aidakko-primary-pale: #fff2f6;
    --aidakko-primary-contrast: #ffffff;
    --aidakko-text: #392d33;
    --aidakko-text-muted: #725d66;
    --aidakko-border: #f0c5d3;
    --aidakko-surface: #ffffff;
    --aidakko-header-height: 76px;
    --aidakko-front-footer-height: 2.5rem;
}

body.aidakko-front-page {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    color: var(--aidakko-text);
    background:
        radial-gradient(
            circle at 8% 15%,
            rgba(255, 212, 227, 0.72),
            transparent 27rem
        ),
        linear-gradient(
            145deg,
            #fff8fa 0%,
            #fff1f6 48%,
            #fbe8ef 100%
        );
}

/*
 * トップページヘッダー
 */

body.aidakko-front-page .front-header {
    position: sticky;
    z-index: 1030;
    top: 0;
    flex: 0 0 auto;
    min-height: var(--aidakko-header-height);
    background: var(--aidakko-primary-dark);
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    box-shadow: 0 0.3rem 1.2rem rgba(117, 48, 75, 0.24);
}

.front-navbar {
    min-height: var(--aidakko-header-height);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    color: #ffffff;
    background: linear-gradient(
        90deg,
        #b94270 0%,
        #d95b88 100%
    );
}

.front-navbar .container-fluid {
    flex-wrap: nowrap;
}

/*
 * トップページのサイト名
 */

.front-navbar .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0;
    margin-right: 1.5rem;
    color: #ffffff;
    font-size: 1.15rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.front-navbar .navbar-brand:visited,
.front-navbar .navbar-brand:hover,
.front-navbar .navbar-brand:focus {
    color: #ffffff;
    text-decoration: none;
}

.brand-mark {
    display: grid;
    width: 2.55rem;
    height: 2.55rem;
    place-items: center;
    color: #ffffff;
    font-size: 1.55rem;
    line-height: 1;
    background: rgba(255, 255, 255, 0.20);
    border: 2px solid rgba(255, 255, 255, 0.72);
    border-radius: 50%;
}

.brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.12;
}

.brand-copy strong {
    color: #ffffff;
    font-size: 1.22rem;
    letter-spacing: 0.04em;
}

.brand-copy small {
    margin-top: 0.22rem;
    color: #ffffff;
    font-size: 0.68rem;
    font-weight: 500;
    letter-spacing: 0.08em;
}

/*
 * トップページのメニュー
 */

.front-primary-navigation {
    display: flex !important;
    flex: 1 1 auto;
    flex-basis: auto;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    height: auto !important;
    margin: 0;
    margin-left: 1.5rem;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.front-primary-navigation .menu {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    width: auto;
    margin: 0;
    padding: 0;
    list-style: none;
}

.front-primary-navigation .menu > li {
    width: auto;
    margin: 0;
    padding: 0;
    list-style: none;
}

.front-primary-navigation .menu > li > a,
.front-primary-navigation .menu > li > a:visited {
    display: block;
    width: auto;
    padding: 0.65rem 0.85rem;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    text-decoration: none;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    transition:
        color 0.15s ease,
        background-color 0.15s ease,
        border-color 0.15s ease,
        transform 0.15s ease;
}

.front-primary-navigation .menu > li > a:hover,
.front-primary-navigation .menu > li > a:focus,
.front-primary-navigation .menu .current-menu-item > a,
.front-primary-navigation .menu .current_page_item > a,
.front-primary-navigation .menu .current-menu-ancestor > a {
    color: var(--aidakko-primary-deep);
    text-decoration: none;
    background: #ffffff;
    border-color: rgba(255, 255, 255, 0.9);
}

.front-primary-navigation .menu > li > a:hover,
.front-primary-navigation .menu > li > a:focus {
    transform: translateY(-1px);
}

/*
 * 階層メニュー
 */

.front-primary-navigation .menu > .menu-item-has-children {
    position: relative;
}

.front-primary-navigation .sub-menu {
    position: absolute;
    z-index: 1050;
    top: 100%;
    left: 0;
    display: none;
    min-width: 14rem;
    margin: 0;
    padding: 0.4rem 0;
    list-style: none;
    background-color: #ffffff;
    border: 1px solid var(--aidakko-border);
    border-radius: 0.35rem;
    box-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.15);
}

.front-primary-navigation .menu-item-has-children:hover > .sub-menu,
.front-primary-navigation .menu-item-has-children:focus-within > .sub-menu {
    display: block;
}

.front-primary-navigation .sub-menu li {
    margin: 0;
    padding: 0;
}

.front-primary-navigation .sub-menu a {
    display: block;
    padding: 0.6rem 0.9rem;
    color: var(--aidakko-primary-deep);
    white-space: nowrap;
    text-decoration: none;
}

.front-primary-navigation .sub-menu a:hover,
.front-primary-navigation .sub-menu a:focus {
    color: #ffffff;
    background-color: var(--aidakko-primary-dark);
}

/*
 * キーボード操作時のフォーカス
 */

.primary-navigation .menu > li > a:focus-visible,
.front-primary-navigation .menu > li > a:focus-visible,
.front-navbar .navbar-brand:focus-visible {
    outline: 3px solid var(--aidakko-primary-contrast);
    outline-offset: 2px;
}

/*
 * スマートフォン用メニューボタン
 */

.front-navbar .navbar-toggler {
    display: none;
    align-items: center;
    gap: 0.35rem;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.72);
}

.front-navbar .navbar-toggler:hover,
.front-navbar .navbar-toggler:focus {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.20);
    border-color: #ffffff;
}

.front-navbar .navbar-toggler:focus {
    box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.3);
}

.front-navbar .navbar-toggler-icon {
    filter: brightness(0) invert(1);
}

.front-navbar .menu-label {
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 700;
}

/*
 * トップページのメイン領域
 */

.front-main {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding:
        clamp(0.75rem, 1.4vw, 1.25rem)
        clamp(1rem, 2.4vw, 2rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.front-hero-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(19rem, 0.75fr);
    gap: clamp(1rem, 2vw, 1.75rem);
    width: 100%;
    max-width: 1680px;
    min-height: 0;
    margin: 0 auto;
}

.front-carousel-column,
.front-notice-column {
    min-width: 0;
}

/*
 * PCではヘッダーとフッターを固定位置に保ち、
 * .front-main だけをスクロール領域にする。
 * メインコンテンツが表示領域より高い場合は、この領域内だけをスクロールする。
 */

@media (min-width: 992px) {
    .front-hero-shell {
        min-height: 32rem;
    }
}

/*
 * カルーセル
 */

#aidakkoFrontCarousel,
#aidakkoFrontCarousel .carousel-inner,
#aidakkoFrontCarousel .carousel-item,
.front-slide-empty {
    height: 100%;
    min-height: 32rem;
}

#aidakkoFrontCarousel,
.front-slide-empty,
.front-notice-panel {
    overflow: hidden;
    border: 1px solid rgba(201, 79, 124, 0.18);
    border-radius: 1.4rem;
    box-shadow: 0 1.2rem 3.5rem rgba(111, 52, 75, 0.13);
}

.front-slide-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.front-slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(65, 25, 40, 0.64) 0%,
        rgba(65, 25, 40, 0.18) 55%,
        rgba(65, 25, 40, 0.04) 100%
    );
}

.front-slide-caption {
    right: auto;
    bottom: clamp(2.5rem, 8vh, 6rem);
    left: clamp(1.5rem, 5vw, 5rem);
    z-index: 2;
    width: min(42rem, calc(100% - 3rem));
    max-width: 900px;
    margin: 0;
    padding: 0;
    color: #ffffff;
    text-align: left;
}

.front-slide-caption h1,
.front-slide-caption h2 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2rem, 4vw, 4.4rem);
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: 0.03em;
    overflow-wrap: anywhere;
    text-shadow: 0 0.2rem 1rem rgba(42, 14, 25, 0.42);
}

.front-slide-caption p {
    max-width: 34rem;
    margin: 1rem 0 0;
    color: #fff8fb;
    font-size: clamp(1rem, 1.45vw, 1.3rem);
    line-height: 1.8;
    overflow-wrap: anywhere;
    text-shadow: 0 0.12rem 0.6rem rgba(42, 14, 25, 0.5);
}

#aidakkoFrontCarousel .carousel-control-prev,
#aidakkoFrontCarousel .carousel-control-next,
#aidakkoFrontCarousel .carousel-indicators {
    z-index: 3;
}

/*
 * スライド未設定時
 */

.front-slide-empty {
    display: grid;
    place-items: center;
    padding: 2rem;
    color: var(--aidakko-primary-deep);
    text-align: center;
    background:
        radial-gradient(
            circle at 70% 20%,
            rgba(255, 255, 255, 0.95),
            transparent 15rem
        ),
        linear-gradient(
            145deg,
            #ffdbe7,
            #f6b9ce 52%,
            #e98bad
        );
}

.front-slide-empty h1 {
    margin: 0;
    font-size: clamp(2.4rem, 6vw, 5.6rem);
    font-weight: 800;
}

.front-slide-empty p {
    margin: 1rem 0 0;
    font-size: clamp(1rem, 1.6vw, 1.35rem);
}

/*
 * お知らせ
 */

.front-notice-panel {
    height: 100%;
    padding: clamp(1.3rem, 2.5vw, 2.4rem);
    background: rgba(255, 255, 255, 0.93);
}

.front-notice-header {
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--aidakko-border);
}

.front-notice-kicker {
    margin: 0 0 0.35rem;
    color: var(--aidakko-primary-dark);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.front-notice-header h2 {
    margin: 0;
    color: var(--aidakko-primary-deep);
    font-size: clamp(1.5rem, 2vw, 2.15rem);
    font-weight: 800;
}

.front-notice-header > p:last-child {
    margin: 0.85rem 0 0;
    color: var(--aidakko-text-muted);
    line-height: 1.75;
}

.front-notice-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.front-notice-list li {
    margin: 0;
    border-bottom: 1px solid rgba(240, 197, 211, 0.75);
}

.front-notice-list a {
    display: grid;
    gap: 0.35rem;
    padding: 1rem 0.25rem;
    color: var(--aidakko-text);
    text-decoration: none;
    transition:
        padding-left 0.18s ease,
        color 0.18s ease;
}

.front-notice-list a:hover,
.front-notice-list a:focus {
    padding-left: 0.65rem;
    color: var(--aidakko-primary-deep);
}

.front-notice-event-date {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    width: fit-content;
    color: var(--aidakko-primary-deep);
    font-size: 0.78rem;
    line-height: 1.35;
}

.front-notice-event-label {
    display: inline-block;
    padding: 0.18rem 0.45rem;
    color: #ffffff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.04em;
    background-color: var(--aidakko-primary-dark);
    border-radius: 999px;
}

.front-notice-event-value {
    font-weight: 750;
    letter-spacing: 0.04em;
}

.front-notice-title {
    font-weight: 650;
    line-height: 1.55;
}

.front-notice-empty {
    margin: 1.5rem 0 0;
    color: var(--aidakko-text-muted);
}

/*
 * フロントページのコピーライト行
 */

.front-footer {
    flex: 0 0 auto;
    width: 100%;
    min-height: var(--aidakko-front-footer-height);
    color: #ffffff;
    background: linear-gradient(
        90deg,
        #b94270 0%,
        #d95b88 100%
    );
    border-top: 1px solid rgba(255, 255, 255, 0.28);
}

.front-footer-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: var(--aidakko-front-footer-height);
    padding: 0.45rem 1rem;
    text-align: center;
}

.front-footer-copyright {
    margin: 0;
    color: #ffffff;
    font-size: 0.78rem;
    line-height: 1.4;
    letter-spacing: 0.02em;
}

/*
 * 固定ページ内の外部サイト埋め込み
 */

.external-content-frame {
    width: 100%;
    margin: 1.5rem 0;
    overflow: hidden;
    background-color: #ffffff;
    border: 1px solid var(--aidakko-border);
    border-radius: 0.4rem;
}

.external-content-frame iframe {
    display: block;
    width: 100%;
    height: 700px;
    border: 0;
}

/*
 * WordPress管理バー表示時
 */

body.admin-bar.aidakko-front-page .front-header {
    top: 32px;
}

/*
 * タブレット
 */

@media (max-width: 991.98px) {
    :root {
        --aidakko-header-height: 66px;
    }

    body.aidakko-front-page .front-header {
        min-height: var(--aidakko-header-height);
    }

    .brand-copy small {
        display: block;
    }

    .front-main {
        padding: 0.85rem;
    }

    .front-hero-shell {
        grid-template-columns: 1fr;
        gap: 0.85rem;
        height: auto;
        min-height: 0;
    }

    #aidakkoFrontCarousel,
    #aidakkoFrontCarousel .carousel-inner,
    #aidakkoFrontCarousel .carousel-item,
    .front-slide-empty {
        height: clamp(18rem, 48vw, 28rem);
        min-height: 0;
    }

    .front-notice-panel {
        min-height: 18rem;
    }
}

/*
 * スマートフォン
 */

@media (max-width: 767.98px) {
    .front-navbar .container-fluid {
        flex-wrap: wrap;
    }

    .front-navbar .navbar-brand {
        max-width: calc(100% - 4.5rem);
        margin-right: 0;
        overflow: hidden;
        font-size: 1rem;
        text-overflow: ellipsis;
    }

    .brand-copy small {
        display: none;
    }

    .front-navbar .navbar-toggler {
        display: inline-flex;
        margin-left: auto;
    }

    .front-primary-navigation,
    .front-primary-navigation.collapse,
    .front-primary-navigation.collapsing {
        display: none !important;
        flex: 0 0 100%;
        width: 100%;
        height: auto !important;
        margin: 0.75rem 0 0;
        padding: 0.75rem;
        overflow: visible;
        background: #ffffff;
        border: 1px solid var(--aidakko-border);
        border-radius: 0.9rem;
        box-shadow: 0 0.8rem 2rem rgba(111, 52, 75, 0.12);
    }

    .front-primary-navigation.show,
    .front-primary-navigation.collapsing {
        display: block !important;
    }

    .front-primary-navigation .menu {
        display: grid;
        gap: 0.4rem;
        width: 100%;
    }

    .front-primary-navigation .menu > li {
        width: 100%;
    }

    .front-primary-navigation .menu > li > a,
    .front-primary-navigation .menu > li > a:visited {
        width: 100%;
        padding: 0.8rem 0.9rem;
        color: var(--aidakko-primary-deep);
        background: var(--aidakko-primary-pale);
        border-color: var(--aidakko-border);
        border-radius: 0.5rem;
    }

    .front-primary-navigation .menu > li > a:hover,
    .front-primary-navigation .menu > li > a:focus,
    .front-primary-navigation .menu .current-menu-item > a,
    .front-primary-navigation .menu .current_page_item > a,
    .front-primary-navigation .menu .current-menu-ancestor > a {
        color: #ffffff;
        background: var(--aidakko-primary-dark);
        border-color: var(--aidakko-primary-dark);
        transform: none;
    }

    .front-primary-navigation .sub-menu {
        position: static;
        display: block;
        min-width: 0;
        margin: 0.35rem 0 0 0.75rem;
        padding: 0;
        background: transparent;
        border: 0;
        box-shadow: none;
    }

    .front-primary-navigation .sub-menu a {
        padding: 0.65rem 0.8rem;
        white-space: normal;
        background: #ffffff;
        border: 1px solid var(--aidakko-border);
        border-radius: 0.4rem;
    }

    .front-slide-overlay {
        background: linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.08) 0%,
            rgba(0, 0, 0, 0.12) 38%,
            rgba(0, 0, 0, 0.76) 100%
        );
    }

    .front-slide-caption {
        right: 1rem;
        bottom: 3.25rem;
        left: 1rem;
        width: auto;
        max-width: none;
        max-height: calc(100% - 5rem);
        margin: 0;
        padding: 0.85rem 1rem;
        overflow-y: auto;
        text-align: left;
        background-color: rgba(0, 0, 0, 0.34);
        border-radius: 0.4rem;
        text-shadow: 0 0.08rem 0.25rem rgba(0, 0, 0, 0.95);
        -webkit-overflow-scrolling: touch;
    }

    .front-slide-caption h1,
    .front-slide-caption h2 {
        margin-bottom: 0.4rem;
        font-size: clamp(1.3rem, 6vw, 2rem);
        line-height: 1.25;
    }

    .front-slide-caption p {
        font-size: 0.9rem;
        line-height: 1.5;
    }

    #aidakkoFrontCarousel .carousel-control-prev,
    #aidakkoFrontCarousel .carousel-control-next {
        width: 12%;
    }

    #aidakkoFrontCarousel .carousel-control-prev-icon,
    #aidakkoFrontCarousel .carousel-control-next-icon {
        width: 1.5rem;
        height: 1.5rem;
    }

    #aidakkoFrontCarousel .carousel-indicators {
        bottom: 0.5rem;
        margin-bottom: 0;
    }

    #aidakkoFrontCarousel .carousel-indicators [data-bs-target] {
        width: 22px;
        height: 3px;
        margin-right: 4px;
        margin-left: 4px;
    }

    .external-content-frame iframe {
        height: 70vh;
        height: 70dvh;
    }
}

/*
 * 小型スマートフォン
 */

@media (max-width: 575.98px) and (orientation: portrait) {
    .front-main {
        padding: 0.75rem;
    }

    #aidakkoFrontCarousel,
    #aidakkoFrontCarousel .carousel-inner,
    #aidakkoFrontCarousel .carousel-item,
    .front-slide-empty {
        height: 34vh;
        min-height: 13rem;
        max-height: 19rem;
        border-radius: 1rem;
    }

    .front-slide-overlay {
        background: linear-gradient(
            0deg,
            rgba(65, 25, 40, 0.58) 0%,
            rgba(65, 25, 40, 0.08) 72%
        );
    }

    .front-slide-caption {
        right: 1rem;
        bottom: 1.5rem;
        left: 1rem;
        width: auto;
    }

    .front-slide-caption h1,
    .front-slide-caption h2 {
        font-size: clamp(1.25rem, 6vw, 1.75rem);
    }

    .front-slide-caption p {
        display: -webkit-box;
        overflow: hidden;
        margin-top: 0.35rem;
        font-size: 0.82rem;
        line-height: 1.45;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    #aidakkoFrontCarousel .carousel-indicators {
        margin-bottom: 0.4rem;
    }

    .front-notice-panel {
        padding: 1.1rem;
        border-radius: 1rem;
    }

    .front-notice-header {
        padding-bottom: 0.8rem;
    }

    .front-notice-header h2 {
        font-size: 1.35rem;
    }

    .front-notice-header > p:last-child {
        margin-top: 0.55rem;
        font-size: 0.88rem;
    }

    .front-notice-list a {
        padding: 0.8rem 0.1rem;
    }
}

/*
 * 横向きのスマートフォン
 */

@media (max-width: 767.98px) and (orientation: landscape) {
    .front-slide-caption {
        right: 12%;
        bottom: 1.25rem;
        left: 12%;
        max-height: calc(100% - 2.5rem);
        padding: 0.6rem 0.85rem;
    }

    .front-slide-caption h1,
    .front-slide-caption h2 {
        margin-bottom: 0.25rem;
        font-size: 1.25rem;
    }

    .front-slide-caption p {
        font-size: 0.8rem;
        line-height: 1.4;
    }

    #aidakkoFrontCarousel .carousel-indicators {
        display: none;
    }
}

/*
 * モバイル版WordPress管理バー
 */

@media screen and (max-width: 782px) {
    body.admin-bar.aidakko-front-page .front-header {
        top: 46px;
    }
}

/*
 * 動きを減らす設定を使用している場合
 */

@media (prefers-reduced-motion: reduce) {
    #aidakkoFrontCarousel .carousel-item,
    .front-notice-list a,
    .primary-navigation .menu > li > a,
    .front-primary-navigation .menu > li > a {
        transition: none;
    }
}

/*
 * WordPress標準カレンダー
 */

.widget_calendar,
.wp-block-calendar {
    width: 100%;
}

.widget_calendar table,
.wp-block-calendar table {
    width: 100%;
    margin: 0;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.widget_calendar caption,
.wp-block-calendar caption {
    margin-bottom: 0.75rem;
    color: var(--aidakko-primary-dark);
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    caption-side: top;
}

.widget_calendar th,
.widget_calendar td,
.wp-block-calendar th,
.wp-block-calendar td {
    padding: 0.4rem 0.15rem;
    text-align: center;
    vertical-align: middle;
    border: 1px solid var(--aidakko-border);
}

.widget_calendar th,
.wp-block-calendar th {
    color: var(--aidakko-primary-deep);
    font-weight: 600;
    background-color: var(--aidakko-primary-pale);
}

.widget_calendar td,
.wp-block-calendar td {
    background-color: rgba(255, 255, 255, 0.8);
}

.widget_calendar td a,
.wp-block-calendar td a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.8rem;
    min-height: 1.8rem;
    color: #ffffff;
    font-weight: 600;
    text-decoration: none;
    background-color: var(--aidakko-primary-dark);
    border-radius: 50%;
}

.widget_calendar td a:hover,
.widget_calendar td a:focus,
.wp-block-calendar td a:hover,
.wp-block-calendar td a:focus {
    color: #ffffff;
    text-decoration: none;
    background-color: var(--aidakko-primary-deep);
}

.widget_calendar .wp-calendar-nav,
.wp-block-calendar .wp-calendar-nav {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.75rem;
    font-size: 0.875rem;
}

.widget_calendar .wp-calendar-nav a,
.wp-block-calendar .wp-calendar-nav a {
    color: var(--aidakko-primary-dark);
    text-decoration: none;
}

.widget_calendar .wp-calendar-nav a:hover,
.widget_calendar .wp-calendar-nav a:focus,
.wp-block-calendar .wp-calendar-nav a:hover,
.wp-block-calendar .wp-calendar-nav a:focus {
    color: var(--aidakko-primary-deep);
    text-decoration: underline;
}

