/* ==========================================================================
   フッター専用スタイル
   ========================================================================== */

/* SWELL 標準の .l-content 下マージンを打ち消し、フッター上CTAとフッターの間の余白をなくす */
.l-content {
    margin-bottom: 0;
}

/* ── 上部：メガメニュー領域（ウィジェットエリア） ── */
.l-footer__widgetArea {
    background-color: #fff;
    padding: 60px 0;
}

/* フッターウィジェット内のナビゲーションメニューをメガメニュー（4カラム）化 */
.l-footer__widgetArea .widget_nav_menu {
    max-width: 1200px;
    margin: 0 auto;
}

/* SWELLのデフォルトタイトルを非表示 */
#footer .l-footer__widgetArea .widget_nav_menu .c-widget__title {
    display: none;
}

/* フッターウィジェットエリア全体を4カラムグリッドにする（ドロワーメニューと同じ構造） */
.l-footer__widgetArea .w-footer__box {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    align-items: start;
    max-width: 1200px;
    margin: 0 auto;
}

.l-footer__widgetArea .widget_nav_menu .menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* メニュー各項目 */
#footer .l-footer__widgetArea .widget_nav_menu .menu > li {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: relative;
    border: none; /* SWELLの枠線を消す */
}

/* 親メニューリンク */
#footer .l-footer__widgetArea .widget_nav_menu .menu > li > a {
    color: #1a1a1a;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-decoration: none;
    display: flex;
    align-items: center;
    position: relative;
    padding: 0 0 0 16px; /* ハイフン用の余白 */
    border: none; /* SWELLの枠線を消す */
    transition: color 0.3s ease;
}

/* 親テーマ由来のホバー背景色をリセット */
#footer .l-footer__widgetArea .widget_nav_menu .menu > li > a:hover,
#footer .l-footer__widgetArea .widget_nav_menu .menu > li > a:focus {
    background-color: transparent;
}

@media (hover: hover) {

    #footer .l-footer__widgetArea .widget_nav_menu .menu > li > a:hover,
    #footer .l-footer__widgetArea .widget_nav_menu .menu > li > a:focus-visible {
        color: var(--color_main);
    }
}

/* 親メニューのハイフン */
.l-footer__widgetArea .widget_nav_menu .menu > li > a::before {
    content: "-";
    position: absolute;
    left: 0;
    color: #1a1a1a;
}

/* SWELLの右矢印アイコンを消す */
#footer .l-footer__widgetArea .widget_nav_menu .menu a::after {
    content: none;
}

/* 子メニュー（階層下） */
.l-footer__widgetArea .widget_nav_menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0 0 0 24px; /* 子項目をインデント */
    display: flex;
    flex-direction: column;
    gap: 16px;
}

#footer .l-footer__widgetArea .widget_nav_menu .sub-menu > li {
    border: none;
}

#footer .l-footer__widgetArea .widget_nav_menu .sub-menu > li > a {
    color: #1a1a1a;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.04em;
    text-decoration: none;
    padding: 0;
    border: none;
    transition: color 0.3s ease;
}

/* 親テーマ由来のホバー背景色をリセット */
#footer .l-footer__widgetArea .widget_nav_menu .sub-menu > li > a:hover,
#footer .l-footer__widgetArea .widget_nav_menu .sub-menu > li > a:focus {
    background-color: transparent;
}

@media (hover: hover) {

    #footer .l-footer__widgetArea .widget_nav_menu .sub-menu > li > a:hover,
    #footer .l-footer__widgetArea .widget_nav_menu .sub-menu > li > a:focus-visible {
        color: var(--color_main);
    }
}

.l-footer__widgetArea .widget_nav_menu .sub-menu > li > a::before {
    content: none;
}

/* ── 下部：コピーライト＆リンク領域 ── */
.l-footer__foot {
    background-color: var(--color_main);
    color: #fff;
    padding: 28px 0; /* 画像に合わせて上下の余白を少し広めに設定 */
}

.l-footer__foot .l-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 32px; /* コンテンツの両サイド余白 */
}

/* コピーライト */
.l-footer__foot .copyright {
    margin: 0;
    font-size: 14px; /* 画像に合わせて少し大きめに */
    font-weight: 400;
    color: #fff;
    letter-spacing: 0.05em;
}

/* フッターメニュー（右側のリンク） */
.l-footer__nav {
    display: flex;
    gap: 40px; /* リンク同士の間隔を広めに設定 */
    list-style: none;
    margin: 0;
    padding: 0;
}

.l-footer__nav li {
    margin: 0;
}

#footer .l-footer__nav a {
    color: #fff;
    font-size: 14px; /* コピーライトとサイズを合わせる */
    font-weight: 500;
    text-decoration: none;
    position: relative;
    padding: 0;
    border: none; /* SWELLデフォルトの縦線を消す */
    display: flex;
    align-items: center;
    letter-spacing: 0.05em;
    transition: opacity 0.3s ease;
}

@media (hover: hover) {

    #footer .l-footer__nav a:hover {
        opacity: 0.7;
    }
}

#footer .l-footer__nav a:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* 別タブで開くリンク（target="_blank"）に外部リンクアイコンを付ける */
.l-footer__nav a[target="_blank"]::after {
    content: "";
    display: inline-block;
    width: 14px;
    height: 14px;
    margin-left: 6px;
    margin-bottom: 2px;
    background: url('data:image/svg+xml;utf8,<svg fill="%23ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 19H5V5h7V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/></svg>') no-repeat center;
    background-size: contain;
}

/* レスポンシブ (タブレット・SP) */
@media screen and (max-width: 959px) {
    .l-footer__widgetArea {
        padding: 40px 20px;
    }

    .l-footer__widgetArea .w-footer__box {
        grid-template-columns: repeat(2, 1fr); /* タブレット時は2カラム */
        gap: 24px;
    }

    .l-footer__foot .l-container {
        flex-direction: column-reverse; /* コピーライトを下にする */
        gap: 16px;
        padding: 20px;
    }

    .l-footer__nav {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* スマホ (モバイル) */
@media screen and (max-width: 599px) {
    .l-footer__widgetArea {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    .l-footer__widgetArea .w-footer__box {
        grid-template-columns: 1fr; /* モバイル時は1カラム */
        padding-top: 0;
        padding-bottom: 0;
    }
}
