@charset "UTF-8";

body {
    font-family: "Helvetica Neue", "Helvetica", "YuGothic Medium", "游ゴシック", "YuGothic",
    "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    color: #202124;
    display: block;
    margin: 8px;
    padding: 0.1em 0;
}

/* リンクの色 */
a {
    color: #1a73e8;
    text-decoration: none;
}
a:visited {
    color: #1a73e8;
}
.container a {
    position: relative;
    display: inline-block;
    transition: .4s;
}
.container a:hover {
    color: #2C313B;
}
.container a:hover img {
    opacity: 0.8;
}

/* レスポンシブ */
@media screen and (min-width: 660px) {
    .container {
        max-width: 100%;
        width: 660px;
        margin: 0 auto;
    }
    .f-item-ski01 {
        flex-basis: 50%;
    }
    .f-item-ski02 {
        flex-basis: 50%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}

.container {
    max-width: 100%;
    width: 660px;
    margin: 0 auto;
}

.section {
    margin: 28px 0;
}

img {
    max-width: 100%;
    height: auto;
} 

.awesome {
    color: #545454;
}

/* シェアボタン */
.share {
    margin: 56px 0;
    text-align: center;
}

.btn-social {
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    color: #FFF;
    width: 50px;
    height: 50px;
    line-height: 30px;
    padding: 5px;
    font-size: 22px;
    border-radius: 50%;
    text-align: center;
    box-shadow: inset 0 2px 0 rgba(255, 255, 255, 0.25), inset 0 -2px 0 rgba(0, 0, 0, 0.18);
    transition: .2s;
}
.btn-social a,
.btn-social .fab {
    color: #FFF;
    line-height: 30px;
}
.btn-social:hover {
    box-shadow: none;
}
.btn-social--twitter {
    background: #1da1f3;
    border: solid 5px #1da1f3;
}
.btn-social--facebook {
    background: #3b75d4;
    border: solid 5px #3b75d4;
}
.btn-social--line {
    background: #06c755;
    border: solid 5px #06c755;
}
.btn-social--whatsapp {
    background: #4FCE5d;
    border: solid 5px #4FCE5d;
}
.btn-social--instagram {
    background: #e1306c;
    border: solid 5px #e1306c;
}

.share-title {
    position: relative;
    display: inline-block;
    box-sizing: border-box;
    font-size: 12.3px;
    color: #2C313B;
    width: 50px;
    height: 49px;
    line-height: 23px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    vertical-align: top;
    letter-spacing: 2px;
}

/* SNSボタン（フルワイド版） */
.twitter a,
.facebook a,
.line a,
.whatsapp a {
    text-decoration: none;
    display: block;
    text-align: center;
    font-size: 14px;
    border-radius: 4px;
    padding: 12px;
    margin: 20px 0;
    color: #fff; 
}
.twitter a {
    background: #00acee;
}
.facebook a {
    background: #3b5998;
}
.line a {
    background: #06c755;
}
.whatsapp a {
    background: #4FCE5d;
}
.twitter a:hover,
.facebook a:hover,
.line a:hover,
.whatsapp a:hover {
    opacity: 0.8;
    color: #fff;
}

/* テーブル */
table {
    width: 100%;
    table-layout: fixed;
    margin: 12px auto;
}
th, td {
    border: 1px solid #eee;
    padding: 4px 8px;
    font-weight: normal;
}

/* 幅指定クラス（th/td共通） */
th.width75, td.width75 { width: 75%; }
th.width50, td.width50 { width: 50%; }
th.width45, td.width45 { width: 45%; }
th.width40, td.width40 { width: 40%; }
th.width30, td.width30 { width: 30%; }
th.width25, td.width25 { width: 25%; }
th.width22, td.width22 { width: 22%; }
th.width20, td.width20 { width: 20%; }
th.width15, td.width15 { width: 15%; }
th.width12, td.width12 { width: 12%; }
th.width10, td.width10 { width: 10%; }

.lakes-table tr:nth-child(odd) td {
    background-color: #E0E3ED;
}
.lakes-table tr:nth-child(even) td {
    background-color: #fff;
}

.snowfall-table {
    font-size: 0.5em;
}

/* Googleマップ */
.gmap {
    position: relative;
    padding-bottom: 100%;
    padding-top: 30px;
    height: 0;
    overflow: hidden;
}
.gmap iframe,
.gmap object,
.gmap embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* トップに戻るボタン */
.page_top {
    width: 40px;
    height: 40px;
    position: fixed;
    right: 10px;
    bottom: 10px;
    background: #2C313B;
    opacity: 0.6;
    border-radius: 50%;
}
.page_top::before {
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    content: '\f106';
    font-size: 26px;
    color: #ffffff;
    position: absolute;
    width: 30px;
    height: 26px;
    top: -5px;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    text-align: center;
}

html {
    scroll-behavior: smooth;
}

/* パンくずリスト */
.breadcrumb {
    margin: 0;
    padding: 0;
    list-style: none;
    min-height: 2.5em;
    line-height: 1.5;
    padding: 0.5em 0;
    display: flex;        /* ←ここに追加 */
    flex-wrap: wrap;      /* ←必要に応じて */
}
.breadcrumb li {
    display: flex;        /* ←これは残す */
    align-items: center;
}
.breadcrumb li:after {
    content: '>';
    padding: 0 0.5em;
    color: #555;
}
.breadcrumb li:last-child:after {
    content: '';
}
.breadcrumb li a {
    color: #1a73e8;
}

/* YouTube */
.youtube {
    width: 100%;
    aspect-ratio: 16/9;
    margin: 28px 0;
}
.youtube iframe {
    width: 100%;
    height: 100%;
}

.reference {
    font-size: 0.75em;
}

.banner {
    margin: 32px 0;
}

.adsense {
    margin: 32px 0;
}

/* 見出し */
h1 {
    color: #2C313B;
}

h2 {
    position: relative;
    padding: 0.3em;
    margin: 1.5em 0 0.2em 0;
    font-size: 1.3em;
    color: #2C313B;
}
h2 .fas,
h2 .fab {
    color: #2C313B;
}

.description {
    background-color: #d9e5eb;
    padding: 3%;
    line-height: 1.8;
}

/* latitude-longitude */
.latitude-longitude-table tr:nth-child(odd) td {
    background-color: #E0E3ED;
}
.latitude-longitude-table tr:nth-child(even) td {
    background-color: #fff;
}
.latitude-longitude {
    text-align: center;
}

/* area-division */
.iriguchi a {
    display: block;
    text-align: center;
    font-size: 15px;
    background: #ffa035;
    border-radius: 4px;
    padding: 12px;
    color: #fff; 
    margin: 20px 0;
}
.iriguchi a:hover {
    opacity: 0.8;
    color: #fff;
}

/* mapcode */
.flex-container {
    display: flex;
    flex-wrap: wrap;
}
.flex-container a {
    background: #ffa035;
    border-radius: 4px;
    padding: 12px;
    margin: 6px;
    color: #fff; 
}
.flex-container a:hover {
    opacity: 0.8;
}

hr {
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid #D5D5D5;
}

.question {
    font-size: 50px;
}

.f-container01 {
    display: flex;
    flex-wrap: wrap;
}

/* グローバルナビ */
.header > div:first-child {
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.header {
    margin-bottom: 20px;
}

.nav {
    background-color: #fff;
    overflow-x: auto;
}
.nav ul {
    display: flex;
    width: max-content;
    margin: 0 auto;
    padding-left: 0;
    font-weight: bold;
    list-style-type: none;
}
.nav li a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 16px;
    font-size: 15px;
    color: #545454;
}
.nav ul :hover {
    opacity: 0.6;
    transition: 0.4s;
}

/* amazonリンク */
.flex_container_amazon {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}
.flex_item_amazon {
    width: 140px;
    height: 210px;
    margin: 14px 5px 10px 5px;
    padding: 7px;
    font-size: 0.77em;
    border-radius: 10px;
    box-shadow: 0 0 3px 0 rgba(0,0,0,0.2);
}
.flex_item_amazon a {
    color: #545454;
}
.flex_item_amazon a:hover {
    color: #D5D5D5;
    transition: 0.2s;
}
.item_img_amazon {
    height: 90px;
    flex-shrink: 0;
}
.item_text_amazon {
    height: 95px;
    flex-shrink: 0;
}
.item_text_amazon a {
    color: #D5D5D5;
    transition: 0.2s;
}
.card_price {
    font-size: 1.2em;
    color: #F43E43;
    margin-bottom: 8px;
}

/* フッターメニュー */
.flex_container_footer_menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
}
.flex_item_footer_menu {
    width: 140px;
    height: 240px;
    margin: 14px 5px 10px 5px;
    padding: 7px;
    font-size: 0.9em;
    border-radius: 10px;
    box-shadow: 0 0 3px 0 rgba(0,0,0,0.2);
}
.flex_item_footer_menu a:hover {
    color: #D5D5D5;
    transition: 0.2s;
}
.item_img_footer_menu {
    height: 90px;
    flex-shrink: 0;
    margin-bottom: 12px;
}
.item_text_footer_menu {
    height: 95px;
    flex-shrink: 0;
}
.item_text_footer_menu a {
    color: #D5D5D5;
    transition: 0.2s;
}

/* 次へ */
.next {
    font-size: 0.90em;
    margin: 24px 0;
}

/* h1スタイル */
h1:not(.index) {
    position: relative;
    padding: 0.25em 1em;
    border-top: solid 2px black;
    border-bottom: solid 2px black;
    min-height: 2em;
    line-height: 1.5;
    display: flex;
    align-items: center;
}
h1:not(.index):before,
h1:not(.index):after {
    content: '';
    position: absolute;
    top: -7px;
    width: 2px;
    height: calc(100% + 14px);
    background-color: black;
}
h1:not(.index):before {
    left: 7px;
}
h1:not(.index):after {
    right: 7px;
}

/* h2スタイル */
h2 {
    position: relative;
    background: #E0E3ED;
    padding: 4px 5px 4px 25px;
    font-size: 22px;
    line-height: 1.8;
    color: #474747;
    border-radius: 0 10px 10px 0;
    margin: 48px 0 24px 24px;
    min-height: 40px;
    display: flex;
    align-items: center;
}
h2:before {
    font-family: "Font Awesome 5 Free";
    content: "\f2dc";
    display: inline-block;
    position: absolute;
    color: white;
    background: #2F3849;
    font-weight: 900;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    left: -1.35em;
    top: 50%;
    transform: translateY(-50%);
    border: solid 3px white;
    border-radius: 50%;
}

/* 冬靴無人見出し */
.mujin {
    font-size: 1.4em;
    display: flex;
    align-items: center;
    gap: 4px;
}
.mujin img {
    display: inline-block;
    vertical-align: middle;
    width: 30px;
    height: auto;
}

/* 冬靴更新日時 */
.updated-timestamp {
    color: #666;
    display: inline-block;
    margin-bottom: 10px;
}
.updated-timestamp:before {
    content: "更新日時：";
    font-weight: bold;
    margin-right: 5px;
}

/* ul */
ul {
    padding: 0.5em 0.5em 0.5em 2em;
}
ul li {
    line-height: 1.5;
    padding: 0.5em 0;
}

/* ol */
ol:not(.breadcrumb) {
    counter-reset: number;
    list-style-type: none !important;
    padding: 0.8em;
    border: solid 1px #E0E3ED;
    position: relative;
}
ol li:not(.breadcrumb li) {
    position: relative;
    padding: 0.5em 0.5em 0.5em 30px;
    line-height: 1.5em;
}
ol li:not(.breadcrumb li)::before {
    position: absolute;
    counter-increment: number;
    content: counter(number);
    display: inline-block;
    background: #272727;
    color: white;
    font-family: 'Avenir', 'Arial Black', 'Arial', sans-serif;
    font-weight: bold;
    font-size: 15px;
    border-radius: 50%;
    left: 0;
    width: 25px;
    height: 25px;
    line-height: 25px;
    text-align: center;
    top: 50%;
    transform: translateY(-50%);
}