@charset "UTF-8";

/* ---------- 共通項目 ---------- */

html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  box-sizing: border-box;
  letter-spacing: normal;
}

p,
li,
address,
table,
dt,
dd {
  line-height: 1.75;
  font-size: 1.6rem;
}

html {
    font-size: 62.5%;
}

body {
    font-size: 1.6rem;
    font-family: "Noto Sans JP", sans-serif, "Hiragino Kaku Gothic ProN", Meiryo;
    color: #333;
    overflow-x: hidden;
    min-width: inherit;
}

body.menu-open {
    overflow: hidden;
}

ul {
    list-style: none;
}

a:link {
    color: #333;
    text-decoration: underline;
}

a:hover, a:focus {
    text-decoration: none;
}

a:visited {
    color: #333;
}

a[href^="tel:"] {
    color: inherit !important;
}

#container {
    overflow: hidden;
}

.mainFrame {
    width: 100%;
}

#main_body hr.cf {
    display: none;
}

.w_1100 {
    width: 1100px;
    max-width: 100%;
    margin: 0 auto;
}

.d_flex {
    display: flex;
}

.enTitle {
    font-family: "Noto Serif JP", serif, "Hiragino Mincho ProN";
    font-weight: 600;
}

.linkBox {
    margin-top: 24px;
    text-align: right;
}

.linkBox a {
    position: relative;
    padding-right: 28px;
    font-size: 1.6rem;
    text-decoration: none;
    transition: 0.3s;
}

.linkBox a::before {
    position: absolute;
    content: "";
    width: 8px;
    height: 16px;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    background: url(/img/taiwan/arrow-right.svg) no-repeat center / contain;
}

.linkBox a:hover {
    opacity: 0.6;
    transition: 0.3s;
}

/* ---------- ヘッダー ---------- */

#header .siteLogo {
    position: absolute;
    z-index: 99;
    margin: 20px 30px;
    opacity: 1;
}

#header .siteLogo h1 img {
    width: 100%;
}

#top_mv {
    position: relative;
}

#t_nav {
    margin-top: 50px;
    justify-content: center;
}

#t_nav ul {
    gap: 60px;
}

#t_nav ul li a {
    position: relative;
    padding-bottom: 10px;
    flex-direction: column;
    align-items: flex-end;
    font-size: 1.6rem;
    box-sizing: border-box;
}

#t_nav ul li a::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 2px;
    bottom: 0;
    left: 0;
    background: #957E13;
    opacity: 0;
    transition: 0.3s;
}

#t_nav ul li a:hover::before {
    opacity: 1;
    transition: 0.3s;
}

#t_nav ul li a::before {
    content: "";
    width: 100%;
    height: 2px;
    bottom: 0;
    left: 0;
    background: #957E13;
    opacity: 0;
    transition: 0.3s;
}

#t_nav ul li a:hover {
    opacity: 1;
    transition: 0.3s;
}

#t_nav ul li a span {
    padding-right: 10px;
    font-size: 2.8rem;
}

/* ハンバーガー */

.t_hamburger {
    position: fixed;
    padding: 0 10px;
    width: 46px;
    height: 46px;
    border-radius: 5px;
    border: solid 1px #333;
    background: #fff;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    z-index: 100;
    top: 10px;
    right: 10px;
    display: none;
}

.t_hamburger span {
    position: unset;
    width: 100%;
    height: 1px;
    background: #333;
    transition: all 0.4s ease;
}

/* --- 開いた状態（×になる） --- */
.t_hamburger.active span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}

.t_hamburger.active span:nth-child(2) {
    opacity: 0;
}

.t_hamburger.active span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}

/* ---------- フッター ---------- */

#footer {
    position: relative;
    margin-top: 80px;
    padding-top: 60px;
    background: linear-gradient(rgba(248, 245, 238, 0) 0%, rgba(149, 126, 19, 0.2) 100%);
    align-items: center;
    flex-direction: column;
    justify-content: flex-end;
}

#footer::before {
    position: absolute;
    content: "";
    width: 100%;
    aspect-ratio: 6 / 1;
    bottom: 0;
    left: 0;
    background: url(/img/taiwan/footer_deco.svg) center bottom 0 / 100% no-repeat;
}

#footer::after {
    position: absolute;
    content: "";
    width: 30%;
    aspect-ratio: 25 / 9;
    bottom: 0;
    right: 8%;
    background: url(/img/taiwan/taiwan_town.svg) center bottom / contain no-repeat;
}

#footer .footer_inner {
    position: relative;
    justify-content: space-between;
    z-index: 1;
}

#footer .footer_flex_left {
    flex-direction: column;
    gap: 48px;
}

#footer .footer_flex_left dl dt {
    margin-bottom: 24px;
    font-size: 2.4rem;
    font-weight: 500;
}

#footer .footer_flex_left dl dd {
    flex-direction: column;
    gap: 16px;
}

#footer .footer_flex_left dl dd p.number {
    display: flex;
    gap: 14px;
}

#footer .footer_flex_right ul {
    flex-direction: column;
    justify-content: flex-end;
    gap: 20px;
}

#footer .footer_flex_right ul li a {
    position: relative;
    display: block;
    padding: 12px 38px 12px 64px;
    border: solid 1px #333;
    border-radius: 5px;
    text-decoration: none;
    transition: 0.3s;
}

#footer .footer_flex_right ul li a::before {
    position: absolute;
    content: "";
    width: 8px;
    height: 16px;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    background: url(/img/taiwan/arrow-right.svg) no-repeat center / contain;
}

#footer .footer_flex_right ul li a::after {
    position: absolute;
    content: "";
    width: 24px;
    height: 24px;
    top: 50%;
    left: 30px;
    transform: translateY(-50%);
    background: url(/img/taiwan/mail_icon.svg) no-repeat center / contain;
}

#footer .footer_flex_right ul li.mainSite a::after {
    background: url(/img/taiwan/kaneyama_logo.svg) no-repeat center / contain;
}

#footer .footer_flex_right ul li a:hover {
    opacity: 0.6;
    transition: 0.3s;
}

#copyright {
    position: relative;
    z-index: 1;
}

#copyright p {
    margin: 210px 0 10px;
    padding: 0;
}

#toTopBtn {
    padding: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    position: fixed;
    right: 30px;
    bottom: 30px;
    background: none;
    border: none;
    z-index: 9999;
}

/* ボタンを表示するクラス */

#toTopBtn.is-visible {
    opacity: 1;
    visibility: visible;
    transition: 0.3s;
}

#toTopBtn:hover,
#toTopBtn:focus {
    opacity: 0.6;
    transition: 0.3s;
}


/* ---------- トップページ ---------- */

/* メインビジュアル */

#top_mv::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: rgba(255,255,255,0);
    z-index: 1;
}

#top_mv .top_movie .detail_movie {
    margin: 0;
    padding-top: 47.4% !important;
}

#top_mv .top_movie .detail_movie iframe {
    height: auto !important;
}

#top_mv .play_movie_icon {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 1;
}

#top_mv .play_movie_icon a {
    color: #fff;
    text-decoration: none;
    font-weight: 300;
}

/* 新着情報 */

#news {
    position: relative;
    margin-top: 130px;
}

#news::before {
    position: absolute;
    content: "";
    width: 278px;
    aspect-ratio: 139 / 107;
    top: -80px;
    right: -48px;
    background: url(/img/taiwan/deco01.svg) no-repeat center / contain;
}

#news h2 {
    margin-bottom: 40px;
    padding: 0;
    border: none;
    flex-direction: column;
    align-items: center;
    font-size: 1.6rem;
}

#news h2 span {
    font-size: 4.8rem;
}

#news p.no_data {
    width: 1100px;
    max-width: 100%;
    margin: 0 auto;
    padding: 24px 20px;
    border-radius: 0;
    border: none;
    border-top: dotted 1px #C5C5C5;
    border-bottom: dotted 1px #C5C5C5;
    background: rgba(255,255,255,0.8);
}

#news .news_inner {
    background: rgba(255,255,255,0.8);
}

#news .news_inner ul {
    padding: 0;
}

#news .news_inner ul li {
    border-bottom: dotted 1px #C5C5C5;
    padding: 24px 20px;
}

#news .news_inner ul li:first-child {
    border-top: dotted 1px #C5C5C5;
}

#news .news_inner ul li .article_date {
    padding-right: 46px;
}

#news .news_inner ul li a {
    text-decoration: none;
}

#news .news_inner ul li a:hover {
    text-decoration: underline;
}

img.icon_new {
    display: none;
}

/* Youtubeバナー */

#youtube {
    position: relative;
    margin-top: 100px;
    text-align: center;
}

#youtube::before {
    position: absolute;
    content: "";
    width: 100%;
    aspect-ratio: 48 / 23;
    top: -180px;
    left: 50%;
    transform: translateX(-50%);
    background: url(/img/taiwan/bg_wave.svg) no-repeat center / 125%;
    z-index: -1;
}

#youtube a {
    transition: 0.3s;
}

#youtube a:hover {
    opacity: 0.6;
    transition: 0.3s;
}

#youtube a img {
    width: 100%;
    max-width: 800px;
}

/* 台湾プロモーション事業 */

#promotion {
    position: relative;
    margin-top: 196px;
}

#promotion::before {
    position: absolute;
    content: "";
    width: 332px;
    aspect-ratio: 83 / 51;
    top: -180px;
    left: -94px;
    background: url(/img/taiwan/deco02.svg) no-repeat center / contain;
}

#promotion .promotion_introduce {
    text-align: center;
}

#promotion .promotion_introduce img {
    width: 328px;
}

#promotion .promotion_introduce p {
    margin-top: 60px;
    font-size: 2.8rem;
    line-height: 2.2;
}

#promotion .promotion_detail {
    position: relative;
    margin-top: 200px;
    padding: 0;
    flex-direction: column;
    gap: 100px;
}

#promotion .promotion_detail::before {
    position: absolute;
    content: "";
    width: 140%;
    height: 100%;
    top: -146px;
    right: 21%;
    background: url(/img/taiwan/bg_circle.svg) top right / contain no-repeat;
    z-index: -1;
}

#promotion .primotionList {
    position: relative;
    justify-content: flex-end
}

#promotion .primotionList.reverse {
    flex-direction: row-reverse;
}

#promotion .primotionList.proList01::before {
    position: absolute;
    content: "";
    width: 304px;
    aspect-ratio: 304 / 227;
    top: -180px;
    right: -72px;
    background: url(/img/taiwan/deco03.svg) no-repeat center / contain;
}

#promotion .primotionList.proList03::before {
    position: absolute;
    content: "";
    width: 182px;
    aspect-ratio: 91 / 92;
    top: -140px;
    left: -38px;
    background: url(/img/taiwan/deco04.svg) no-repeat center / contain;
}

#promotion .primotionList.proList04::before {
    position: absolute;
    content: "";
    width: 234px;
    aspect-ratio: 117 / 115;
    bottom: -180px;
    right: -44px;
    background: url(/img/taiwan/deco05.svg) no-repeat center / contain;
}

#promotion .primotionList .p_img_area {
    width: calc(47% - 100px);
}

#promotion .primotionList .p_img_area img {
    width: 100%;
}

#promotion .primotionList .p_text_area {
    padding: 0 100px;
    width: 53%;
    flex-direction: column;
    justify-content: center;
    gap: 40px;
    background: rgba(255,255,255,0.8);
}

#promotion .primotionList .p_text_area dt {
    font-size: 2.8rem;
}

/* 関連リンク */

#link {
    position: relative;
    margin-top: 140px;
}

#link::before {
    position: absolute;
    content: "";
    width: 100%;
    aspect-ratio: 48 / 23;
    top: -450px;
    left: 50%;
    transform: translateX(-50%) scaleX(-1);
    background: url(/img/taiwan/bg_wave.svg) no-repeat center / 125%;
    z-index: -1;
}

#link h2 {
    margin-bottom: 40px;
    padding: 0;
    border: none;
    flex-direction: column;
    align-items: center;
    font-size: 1.6rem;
}

#link h2 span {
    font-size: 4.8rem;
}

#link #site_footer {
    width: 1100px;
    max-width: 100%;
    margin: 0 auto;
}

#link #site_footer_box {
    flex-wrap: wrap;
    gap: 40px;
    padding: 0;
}

#link #site_footer_box p {
    width: calc((100% - 120px) / 4);
    margin: 0;
    display: flex;
    align-items: center;
    filter: drop-shadow(2px 2px 6px rgba(51, 51, 51, 0.3));
    transition: 0.3s;
}

#link #site_footer_box p:hover {
    opacity: 0.6;
    transition: 0.3s;
}

#link #site_footer_box p a {
    display: block;
}

#link #site_footer_box p a img {
    width: 100% !important;
    height: auto !important;
}

/* ---------- 下層共通 ---------- */

:where(.site_list_2, .site_list1, .site_detail) #header {
    padding: 20px 40px 14px 14px;
    display: flex;
    justify-content: space-between;
}

:where(.site_list_2, .site_list1, .site_detail) #header .siteLogo {
    position: static;
    margin: 0;
    width: 334px;
}

:where(.site_list_2, .site_list1, .site_detail) #header .siteLogo img {
    width: 100%;
    display: block;
}


:where(.site_list_2, .site_list1, .site_detail) #t_nav {
    margin-top: 0;
}

:where(.site_list_2, .site_list1, .site_detail) #t_nav ul {
    margin: 0;
}

:where(.site_list_2, .site_list1, .site_detail) #t_nav ul li a {
    text-align: center;
    align-items: center;
}

:where(.site_list_2, .site_list1, .site_detail) #t_nav ul li a span {
    font-size: 1.8rem;
}

:where(.site_list_2, .site_list1, .site_detail) #pankuzu_wrap {
    width: 950px;
    max-width: calc(100% - 20px);
    margin: 0 auto 10px;
    padding: 0;
}

:where(.site_list_2, .site_list1, .site_detail) #pankuzu_wrap>div {
    margin: 0;
    padding: 2px 0 2px 62px;
}

:where(.site_list_2, .site_list1, .site_detail) .pankuzu:first-child .icon_current {
    padding: 5px 8px;
    font-size: 1.2rem;
    border-radius: 5px;
    background: #333;
    width: auto;
}

:where(.site_list_2, .site_list1, .site_detail) .pankuzu .pankuzu_mark {
    padding: 0 6px;
}

:where(.site_list_2, .site_list1, .site_detail) #mymainback {
    width: 950px;
    max-width: calc(100% - 20px);
    margin: 0 auto;
}

#main_header {
    margin: 0 0 40px;
    padding: 74px 0;
    width: 100%;
    background: url(/img/taiwan/site_header_bg.webp) no-repeat center bottom / cover;
    border-radius: 0;
    border: none;
}

#main_header h1 {
    margin: 0;
    padding: 32px 0;
    background: rgba(255, 255, 255, 0.6);
    box-shadow: none;
    border: none;
    border-radius: 0;
    font-family: "Noto Serif JP", serif, "Hiragino Mincho ProN";
    font-size: 4.8rem;
    font-weight: 600;
    text-align: center;
}

#main_header h1 span {
    margin: 0 auto;
    width: 950px;
    max-width: calc(100% - 20px);
    display: block;
}

/* ---------- 分類ページ ---------- */

.info_list.info_list_date ul {
    margin: 30px 0 0;
    padding: 0;
}

.info_list.info_list_date ul li {
    border-bottom: dotted 1px #C5C5C5;
    padding: 24px 20px;
    background: none !important;
    flex-direction: column;
    gap: 14px;
}

.info_list.info_list_date ul li:first-child {
    border-top: dotted 1px #C5C5C5;
}

.info_list.info_list_date ul span.article_date,
.info_list.info_list_date ul span.article_title {
    padding: 0;
}

.info_list.info_list_date ul span.article_title a {
    text-decoration: none;
}

.info_list.info_list_date ul span.article_title a:hover {
    text-decoration: underline;
}

/* ---------- 最終ページ ---------- */

.site_detail #main_body div.detail_free,
.site_detail #main_body div.detail_map,
.site_detail #main_body div.detail_movie {
    margin: 0;
}

.site_detail .detail_map+div {
    margin: 0;
}

.site_detail #main_body :where(p, ul, ol) {
    margin: 16px 0;
}

.site_detail #main_body hr.cf+:where(h2, h3, h4, h5, h6) {
    font-family: "Noto Serif JP", serif, "Hiragino Mincho ProN";
    font-weight: 600;
    margin: 30px 0;
}

.site_detail #main_body h2 {
    padding: 24px 40px;
    position: relative;
    outline: 1px solid #957E13;
    outline-offset: -1px;
    border: none;
    font-size: 3.2rem;
}

.site_detail #main_body h2::before {
    position: absolute;
    content: "";
    width: calc(100% - 8px);
    height: calc(100% - 8px);
    top: 4px;
    left: 4px;
    background: url(/img/taiwan/h2_bg.svg) no-repeat center / cover;
    border: 1px solid #957E13;
    z-index: -1;
}

.site_detail #main_body h2:first-of-type {
    margin-top: 0px !important;
}

.site_detail #main_body h3 {
    position: relative;
    padding: 16px 40px;
    background: #E1DBBD;
    border: none;
    font-size: 2.6rem;
}

.site_detail #main_body h3::before {
    position: absolute;
    content: "";
    width: 8px;
    height: 38px;
    top: 50%;
    left: 14px;
    transform: translateY(-50%);
    background: #957E13;
}

.site_detail #main_body h4 {
    position: relative;
    padding: 0 40px 12px;
    font-size: 2.2rem;
    border-left: none;
    background: linear-gradient(to right, #957E13 1px, transparent 1px) repeat-x bottom / 4px 1px;
}

.site_detail #main_body h4::before {
    position: absolute;
    content: "";
    width: 30px;
    height: 30px;
    top: 2px;
    left: 0;
    background: url(/img/taiwan/h4_bg.svg) no-repeat center / cover;
}

.site_detail #main_body h5 {
    position: relative;
    padding: 0 40px 10px;
    font-size: 2rem;
    background: linear-gradient(to right, #957E13 1px, transparent 1px) repeat-x bottom / 4px 1px;
    border-bottom: none;
}

.site_detail #main_body h5::before {
    position: absolute;
    content: "";
    width: 8px;
    height: 29px;
    top: 0;
    left: 0;
    background: #957E13;
}

.site_detail #main_body h6 {
    position: relative;
    font-size: 1.8rem;
    padding: 0 40px;
}

.site_detail #main_body h6::before {
    position: absolute;
    content: "";
    width: 30px;
    height: 1px;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    background: #957E13;
}

.site_detail #main_body ul li {
    position: relative;
}

.site_detail #main_body ul li::before {
    position: absolute;
    content: "";
    width: 8px;
    height: 8px;
    top: 1rem;
    left: -16px;
    border-radius: 40px;
    background: #957E13;
}

.site_detail #main_body table {
    border-color: #957E13;
    margin: 0px 0px 30px;
}

.site_detail #main_body th {
    background: #E1DBBD;
    border-color: #957E13;
    padding: 16px;
    font-weight: 500;
}

.site_detail #main_body td {
    border-color: #957E13;
    padding: 16px;
}

/* ---------- レスポンシブ ---------- */

@media screen and (max-width: 1080px) {

    .w_1100 {
        width: calc(100% - 20px);
    }

    .t_hamburger {
        display: flex;
    }

    #header nav {
        position: fixed;
        margin-top: 0;
        padding: 100px 60px 60px;
        height: 100%;
        top: 0;
        right: 0;
        border-radius: 5px 0 0 5px;
        justify-content: flex-end;
        align-items: flex-start;
        gap: 4rem;
        background: #fff;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        opacity: 0;
        pointer-events: none;
        transform: translateX(100%);
        transition: all 0.8s ease;
        visibility: hidden;
        z-index: 99;
    }

    #header nav ul {
        align-items: flex-start;
        flex-direction: column;
        gap: 4rem;
    }

    #header nav ul a {
        align-items: flex-start;
    }

    /* 表示切り替え */
    #header nav.active {
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
        visibility: visible;
        overflow-y: scroll;
    }

    #promotion .primotionList .p_img_area {
        width: calc(47% - 20px);
    }

    #promotion .primotionList .p_text_area {
        padding: 0 40px;
    }

    #promotion .primotionList.proList03::before {
        top: -180px;
    }

    #link #site_footer {
        width: calc(100% - 20px);
    }

}

@media screen and (max-width: 767px) {

    /* 共通 */

    body {
        font-size: 1.4rem;
    }

    p, li, address, table, dt, dd {
        font-size: 1.4rem;
    }

    .linkBox {
        margin-top: 0;
    }

    /* ヘッダ */

    #header .siteLogo {
        margin: 10px;
        width: 140px;
        max-width: 24%;
    }

    #t_nav ul li a {
        font-size: 1.6rem;
    }

    #t_nav ul li a span {
        font-size: 2rem;
    }

    /* フッタ */
    #footer {
        margin-top: 60px;
        padding-top: 40px;
    }

    #footer::after {
        width: 40%;
        right: 0;
    }

    #footer .footer_inner {
        flex-direction: column;
        gap: 20px;
    }

    #footer .footer_flex_left {
        gap: 20px;
    }

    #footer .footer_flex_left .footerLogo img {
        max-width: 280px;
    }

    #footer .footer_flex_left dl dt {
        margin-bottom: 14px;
        font-size: 2rem;
    }

    #footer .footer_flex_left dl dd {
        gap: 0;
    }

    #footer .footer_flex_right {
        justify-content: center;
    }

    #footer .footer_flex_right ul {
        gap: 14px;
    }

    #footer .footer_flex_right ul li a {
        padding: 12px 32px 12px 48px;
    }

    #footer .footer_flex_right ul li a::before {
        right: 14px;
    }

    #footer .footer_flex_right ul li a::after {
        left: 14px;
    }

    #copyright p {
        margin: 60px 0 10px;
    }

    #toTopBtn {
        right: 10px;
        bottom: 80px;
    }

    #toTopBtn img {
        width: 60px;
    }

    /* トップページ */

    #top_mv .play_movie_icon {
        width: 40px;
        bottom: 10px;
    }

    #top_mv .play_movie_icon a img {
        width: 100%;
    }

    #news {
        margin-top: 60px;
    }

    #news::before {
        width: 168px;
        top: -50px;
        right: -24px;
    }

    #news h2 {
        margin-bottom: 20px;
        font-size: 1.6rem;
    }

    #news h2 span {
        font-size: 3.2rem;
    }

    #news .news_inner ul li {
        padding: 14px 10px;
    }

    #news .news_inner ul li span:last-child {
        display: block;
        padding-top: 6px;
    }

    #news .news_inner .linkBox {
        margin-top: 16px;
    }

    #youtube {
        margin: 60px auto 0;
        width: calc(100% - 20px);
    }

    #promotion {
        margin-top: 100px;
    }

    #promotion::before {
        width: 200px;
        top: -106px;
        left: -56px;
    }

    #promotion .promotion_introduce img {
        width: 80%;
        max-width: 240px;
    }

    #promotion .promotion_introduce p {
        margin-top: 28px;
        font-size: 2rem;
    }

    #promotion .promotion_detail {
        margin-top: 60px;
        gap: 60px;
    }

    #promotion .promotion_detail::before {
        width: 460%;
        top: 10%;
        right: 0;
    }

    #promotion .primotionList,
    #promotion .primotionList.reverse {
        flex-direction: column;
    }

    #promotion .primotionList.proList01::before {
        width: 182px;
        top: -60px;
        right: -52px;
    }

    #promotion .primotionList .p_img_area {
        width: 100%;
    }

    #promotion .primotionList .p_text_area {
        margin: 0 auto;
        padding: 20px 10px;
        width: 100%;
        gap: 16px;
    }

    #promotion .primotionList .p_text_area dt {
        font-size: 2rem;
    }

    #promotion .primotionList.proList03::before {
        width: 109px;
        top: -60px;
        left: -18px;
    }

    #promotion .primotionList.proList04::before {
        width: 140px;
        bottom: -130px;
        right: -32px;
    }

    #link {
        margin-top: 60px;
        padding-bottom: 24px;
    }

    #link h2 {
        font-size: 1.6rem;
    }

    #link h2 span {
        font-size: 3.2rem;
    }

    #link #site_footer {
        width: calc(100% - 20px);
    }

    #link #site_footer_box {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    #link #site_footer_box p {
        width: 100%;
        max-width: 280px;
    }

    /* 下層ページ共通 */

    :where(.site_list_2, .site_list1, .site_detail) #header .siteLogo {
        margin: 0;
        width: 80%;
        max-width: 280px;
    }

    #main_header {
        margin: 0 0 16px;
        padding: 42px 0;
    }

    #main_header h1 {
        font-size: 2.8rem;
    }

    :where(.site_list_2, .site_list1, .site_detail) #pankuzu_wrap>div {
        padding: 2px 0 2px 52px;
        font-size: 1.2rem;
    }

    :where(.site_list_2, .site_list1, .site_detail) .pankuzu:first-child .icon_current {
        padding: 2px 4px;
    }

    :where(.site_list_2, .site_list1, .site_detail) .pankuzu .pankuzu_mark {
        padding: 0 4px;
    }

    :where(.site_list_2, .site_list1, .site_detail) #content_header {
        font-size: 1.4rem;
    }

    /* 分類ページ */

    .info_list.info_list_date ul {
        margin: 20px 0;
    }

    .info_list.info_list_date ul li {
        padding: 10px;
        gap: 6px;
    }

    /* 最終ページ */

    .site_detail #main_body hr.cf+:where(h2, h3, h4, h5, h6) {
        margin: 16px 0;
    }

    .site_detail #main_body h2 {
        padding: 16px 24px;
        font-size: 2rem;
    }

    .site_detail #main_body h3 {
        padding: 12px 24px;
        font-size: 1.8rem;
    }

    .site_detail #main_body h3::before {
        width: 6px;
        height: 28px;
        left: 10px;
    }

    .site_detail #main_body h4 {
        padding: 0 24px 10px 24px;
        font-size: 1.6rem;
    }

    .site_detail #main_body h4::before {
        width: 20px;
        height: 20px;
    }

    .site_detail #main_body h5 {
        padding: 0 24px 8px 24px;
        font-size: 1.5rem;
    }

    .site_detail #main_body h5::before {
        width: 6px;
        height: 20px;
        top: 50%;
        transform: translateY(-50%);
    }

    .site_detail #main_body h6 {
        padding: 5px 24px 5px 32px;
        font-size: 1.4rem;
    }

    .site_detail #main_body h6::before {
        width: 20px;
    }

    .site_detail #main_body ul li::before {
        top: 0.8rem;
    }

    .site_detail #main_body table {
        margin: 0px 0px 16px;
    }

    .site_detail #main_body th {
        padding: 10px;
    }

    .site_detail #main_body td {
        padding: 10px;
    }

}

@media screen and (max-width: 670px) {

    #sp_page_index_link_toggle {
        border-radius: 0;
        border: none;
    }

}