*,
*::before,
*::after{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html{
    font-size: 62.5%;
}

body{
    font-size: 16px;
    /* font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif; */
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
    text-size-adjust: 100%;/* スマホ横向き時にフォントサイズが勝手に拡大される現象の対策 */
    line-height: 1.75;
    position: relative;
}

a{
    text-decoration: none;
}

img,video{
    vertical-align: top;
}

ul{
    list-style: none;
}

.text_wbr{
    word-break: keep-all;
    overflow-wrap: break-word;
}

:root{
    /* 100vwからスクロールバーを除外した幅の変数 */
    --iw: calc(100vw - var(--scrollbar-width));
}


/*----------------------------- 共有設定 ↓ -----------------------------*/
.wrapper{
    width: 92%;
    max-width: 1270px;
    margin: auto;
}

.wrapper_infocontent{
    width: 92%;
    max-width: 1140px;
    margin: 0 auto 134px;
}

/* font-family */
.font_corporate_logo{
    font-family: "corporate-logo-ver2", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.font_geographica{
    font-family: "geographica-script", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.font_zen_antique{
    font-family: zen-antique, sans-serif;
    font-weight: 400;
    font-style: normal;
}

/* color */
.text_white{
    color: #fff;
}

/* text margin */
.txt_margin {
    width: fit-content;
    margin: 0 auto;
}

.txt_margin_c {
    width: fit-content;
    margin: clamp(75px, 7.317vw, 100px) auto 0;
}

.txt_margin_i {
    width: fit-content;
    margin: 100px auto 0;
}

.fz_18 {
    font-size: clamp(16px, 1.5625vw, 18px);
}

.fz_24 {
    font-size: 24px;
}

/* line-height */
.lh_s{
    line-height: 1.5
}

.lh_xs{
    line-height: 1.35;
}

.lh_xxs{
    line-height: 1.2;
}

.lh_xxxs {
    line-height: 1.2;
}

/* letter-spacing */
.ls_100{
    letter-spacing: 0.1em;
}

.ls_75{
    letter-spacing: 0.075em;
}

.ls_60{
    letter-spacing: 0.06em;
}

.ls_50{
    letter-spacing: 0.05em;
}


main{
    overflow-x: hidden;
}

.u500_br{
    display: none;
}


/*---------- セクションタイトル ----------*/
.font_title{
    position: relative;
    width: 100%;
    max-width: fit-content;
    margin: auto;
    padding-top: 108px;
    text-align: center;
    font-size: 30px;
    font-weight: 700;
}

.font_title_eng{
    position: absolute;
    width: min(0.95 * var(--iw) ,100% + 1em);
    top: calc(108px - 0.7em);
    left: 0;
    text-align: end;
    font-size: 16px;
    color: #ffd900;
}

.font_title_bottom{
    margin: 10px auto 50px;
    text-align: center;
    font-size: 22px;
}



/*---------- ページ内電話番号特大ボタン ----------*/
.tel_wrap{
    position: relative;
    display: flex;
    width: 100%;
    margin: auto;
    padding: 45px 1em 30px;
    flex-direction: column;
    gap: 55px;
    background-color: #e6e6e6;
    border-radius: 20px;
}

.tel_text_wrap{
    display: flex;
    width: calc(100% - 300px);
    padding-left: 2em;
    flex-direction: column;
    gap: 1em;
    font-size: clamp(16px, 3vw, 20px);
    font-weight: 600;
    color: #333333;
}

/* .tel_text_wrap > p:nth-of-type(2){
    font-weight: 400;
} */

.tel_text_wrap > p:nth-of-type(3) {
    font-weight: 800;
}

.tel_text{
    font-size: 38px;
    font-weight: 800;
}

.tel_text span{
    font-size: 28px;
}

.tel_illust_position_shift{
    width: 100%;
    max-width: 690px;
    margin: auto;
}

.tel_illust_wrap{
    position: absolute;
    width: clamp(245px, 23.9vw, 300px);
    text-align: right;
    top: 20px;
    right: clamp(20px, 1.95vw, 50px);
    pointer-events: none;
}

.tel_illust{
    position: relative;
    width: 58%;
}

.tel_manager_name{
    position: absolute;
    display: flex;
    width: max-content;
    left: 50%;
    bottom: 10%;
    padding: 0 1em;
    translate: -40% 0;
    align-items: baseline;
    font-size: 35px;
    background-color: #fff;
    border: solid 1px #333333;
    border-radius: 3px;
    gap: 0.2em;
}

.tel_manager_name span{
    font-size: 16px;
}

.tel_smooth{
    position: absolute;
    width: max-content;
    height: auto;
    top: 0;
    left: 5%;
    padding: 0.7em 0.7em;
    translate: 0 -100%;
    font-size: 16px;
    color: #ee7500;
    background-color: #f2f2f2;
    border-radius: 21px;
    filter: drop-shadow(5px 5px 5px rgba(0,0,0,0.60));
}

.tel_smooth::before{
    position: absolute;
    content: "";
    width: 16px;
    height: 18px;
    left: 50%;
    top: 100%;
    background: url("../../images/snowmove/icon_hukidashi_tel.png");
    background-repeat: no-repeat;
}

.tel_button{
    display: block;
    width: 95%;
    max-width: 600px;
    margin: auto;
    padding: 30px 1em;
    text-align: center;
    color: #fff;
    background-color: #ee7500;
    border-radius: clamp(13px, 3.515vw, 27px);
    box-shadow: 5px 5px 0px #cc5700;
    transition: box-shadow 0.3s ease, translate 0.3s ease;
}

.tel_button > p:nth-of-type(1){
    position: relative;
    width: fit-content;
    margin: auto;
    font-size: 50px;
    text-indent: 1.2em;
}
.tel_button > p:nth-of-type(1)::before{
    position: absolute;
    content: "";
    width: 1em;
    height: 100%;
    top: 0;
    left: 0;
    background-image: url("../../images/snowmove/icon_tel_orange.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}
.tel_button > p:nth-of-type(2){
    font-size: 18px;
}
.tel_button > p:nth-of-type(2) span{
    font-size: 14px;
}



/*---------- ページ下部電話番号 ----------*/
.utel_wrap{
    position: fixed;
    width: 100vw;
    height: 107px;
    z-index: 10000;
    bottom: 0;
    left: 0;
    color: #fff;
    background-color: #ee7500;
}

.utel_inner{
    display: flex;
    width: 100%;
    max-width: 8550px;
    height: 100%;
    margin: auto;
    justify-content: center;
    gap: 60px;
}

.utel_reception_wrap{
    position: relative;
    display: flex;
    height: 100%;
    align-items: center;
}

.utel_reception_wrap::after{
    position: absolute;
    content: "";
    width: 2px;
    height: 50%;
    top: 50%;
    left: calc(100% + 30px);
    translate: 0 -50%;
    background-color: #fff;
}

.utel_reception{
    font-size: 24px;
    text-align: center;
}

.xxx{
    color: #fff;
}

.utel_number_wrap{
    display: flex;
    gap: 0 10px;
}

.utel_text_wrap{
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.utel_number{
    position: relative;
    padding-left: 1em;
    font-size: 40px;
    font-weight: bold;
    line-height: 1;
    color: #fff;
}

.utel_number::before{
    position: absolute;
    display: block;
    content: "";
    width: 0.8em;
    height: 1em;
    top: 50%;
    left: 0;
    translate: 0 -50%;
    background-image: url("../../images/snowmove/icon_tel_orange.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.utel_time{
    font-size: 16px;
    font-weight: bold;
}

.ta_right {
    text-align: right;
    padding-right: 10px;
}

.utel_smooth_wrap{
    position: relative;
    display: flex;
    align-items: end;
}

.utel_smooth_text{
    position: absolute;
    width: fit-content;
    height: fit-content;
    top: 30px;
    left: 80%;
    padding: 0.5em 1em;
    translate: 0 -100%;
    word-break: keep-all;
    text-align: center;
    font-size: 12px;
    color: #000;
    background-color: #e6e6e6;
    border-radius: 12px;
    filter: drop-shadow(5px 5px 5px rgba(0,0,0,0.6));
}

.utel_smooth_text::before{
    position: absolute;
    content: "";
    width: 16px;
    height: 18px;
    top: calc(100% - 1px);
    left: 20px;
    background-color: #e6e6e6;
    clip-path: path("M.74,18.47S17.76,12.15,16.02,0C8.94,0,8.29,0,0,0c10.47,5.54.74,18.47.74,18.47Z");
}

.utel_smooth_image{
    height: 90%;
}

.utel_chargeName {
    border: 1px solid #fff;
    padding: 2px 5px;
    border-radius: 5px;
    background-color:#fff;
    color: #ee7500;
}

/*---------- お知らせリスト ----------*/
.info_wrap{
    width: 100%;
}

.info_list{
    display: flex;
    margin-top: 80px;
    flex-direction: column;
    gap: 30px;
}

.info_item_wrap{
    background-color: #fff;
    border: solid 1px #000;
    box-shadow: 5px 5px 5px rgba(0,0,0,0.4);
}

.info_link{
    position: relative;
    display: flex;
    padding: 1.5em 4.8%;
    align-items: center;
    color: #000;
}

.info_link::before{
    position: absolute;
    display: flex;
    content: "→";
    width: 51px;
    height: 51px;
    top: 50%;
    left: 95.2%;
    translate: -100% -50%;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    color: #fff;
    background-color: #0071bc;
    border-radius: 50%;
    transition: translate 0.3s ease-in-out;
}

.info_link_day{
    width: 8em;
}
.info_link_day > span{
    margin-right: 0.3em;
    padding: 0 0.3em;
    color: #fff;
    background-color: #000;
}

.info_link_title{
    width: calc(100% - 8em);
    padding-right: 60px;
    overflow: hidden;
    word-break: keep-all;
    text-overflow: ellipsis;
}

.info_list_button{
    position: relative;
    display: flex;
    width: 100%;
    max-width: 368px;
    height: 73px;
    margin: 97px auto 134px;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    color: #fff;
    background: linear-gradient(90deg, #009cda 0%, #22589f 100%);
    box-shadow: 5px 5px 5px rgba(0,0,0,0.6);
    transition: box-shadow 0.2s ease-in-out;
}

.info_list_button::before{
    position: absolute;
    content: "▶";
    width: 1em;
    height: 1em;
    top: 50%;
    right: 2em;
    translate: 0 -50%;
    line-height: 1;
    color: #fff;
    transition: right 0.2s ease-in-out;
}

/* 雪の結晶のアニメーション */
#anime_snowflake_container{
    position: absolute;
    width: 100%;
    height: calc(100% - 100px);
    z-index: -1;
    top: 100px;
    left: 0;
    overflow: hidden;/* 20250830 追加 ura */
}

/* 20250830 追加 ura ↓ */
.wrapper_info + #anime_snowflake_container{
    height: 100%;
    top: 0;
}
/* 20250830 追加 ura ↑ */

/*編集中*/
#anime_snowflake_container.snowflake_fixed{
    position: fixed;
    height: 100%;
    z-index: -99999;
    top: 0;
    overflow: hidden;
}
#anime_snowflake_container.snowflake_opacity{
    opacity: 0.5;
}

.snowflake_wrap{
    position: absolute;
    aspect-ratio: 1 / 1;
    animation: snow_flash 1.5s ease-in-out infinite;
}

.snowflake{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0.6;
    overflow: hidden;
    filter: drop-shadow(0 0 30px rgba(0,160,233,0.5));
    transition: rotate 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.snowflake_1{
    width: min(100vw / 1024 * 507 ,507px);
    top: 0;
    right: 10.3%;
    transform-origin: center;
}
.snowflake_1 > .snowflake{
    rotate: 19deg;
}

.snowflake_2{
    width: min(100vw / 1024 * 156, 156px);
    top: 0;
    right: 2%;
}
.snowflake_2 > .snowflake{
    rotate: 0deg;
}

.snowflake_3{
    width: min(100vw / 1024 * 342, 342px);
    top: 489px;
    right: -2.7%;
}
.snowflake_3 > .snowflake{
    rotate: 0deg;
}

.snowflake_4{
    width: min(100vw / 1024 * 149, 149px);
    top: 721px;
    right: 23.5%;
}
.snowflake_4 > .snowflake{
    rotate: 0deg;
}

.snowflake_5{
    width: min(100vw / 1024 * 99, 99px);
    top: 807px;
    right: 16.5%;
}
.snowflake_5 > .snowflake{
    rotate: 90deg;
}

.snowflake_6{
    width: min(100vw / 1024 * 63, 63px);
    top: 892px;
    right: 23.2%;
}
.snowflake_6 > .snowflake{
    rotate: 90deg;
}

.snowflake_7{
    width: min(100vw / 1024 * 356, 356px);
    top: 448px;
    right: 65.7%;
}
.snowflake_7 > .snowflake{
    rotate: 90deg;
}

.snowflake_8{
    width: min(100vw / 1024 * 116, 116px);
    top: 682px;
    right: 84.3%;
}
.snowflake_8 > .snowflake{
    rotate: 90deg;
}

.snowflake_9{
    width: min(100vw / 1024 * 120, 120px);
    top: 602px;
    right: 92.9%;
}
.snowflake_9 > .snowflake{
    rotate: 90deg;
}

.snowflake_10{
    width: min(100vw / 1024 * 69, 69px);
    top: 802px;
    right: 91.7%;
}
.snowflake_10 > .snowflake{
    rotate: 0deg;
}

/* 結晶上で光る星 */
.snowflake_star{
    position: absolute;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    scale: 0;
    transform-origin: center;
    background-image: url("../../images/snowmove/background_kiraboshi.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    animation: snowflake_starflash 1.5s ease-in-out infinite;
}

@keyframes snowflake_starflash{
    0%{
        rotate: 0deg;
        scale: 0;
        opacity: 0;
    }
    50%{
        scale: 1;
        opacity: 1;
    }
    100%{
        rotate: 270deg;
        scale: 0;
        opacity: 0;
    }
}
/*------------------------------ 共有設定 ↑ -----------------------------*/


/*------------------------------ header ↓ ------------------------------*/
.header_wrap{
    display: flex;
    width: 100%;
    height: 78px;
    z-index: 5000;
    justify-content: space-between;
    background-color: #fff;
}

.header_logo{
    display: flex;
    height: 100%;
    margin-left: 2.1%;
    align-items: center;
}

.header_logo img{
    width: clamp(200px, 100vw * (320 / 1920), 320px);
}

.header_nav_links{
    display: flex;
    height: 100%;
    gap: 2em;
    font-size: clamp(12px, 100vw * (18 / 1920), 18px);
}

.header_nav_links > li{
    position: relative;
}

.header_nav_links > li:not(.header_contact_wrap){
    font-size: clamp(12px, 100vw * (18 / 1920), 18px);
}

.header_nav_links > li:not(.header_contact_wrap)::after{
    position: absolute;
    content: "";
    width: 1px;
    height: 50%;
    top: 50%;
    left: calc(100% + 1em);
    font-size: clamp(12px, 100vw * (18 / 1920), 18px);
    translate: 0 -50%;
    background-color: #cccccc;
}

.header_nav_links > li:not(.header_contact_wrap) > a{
    display: flex;
    height: 100%;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    color: #000;
    font-weight: bold;
}

/* 20250901 追加 ura ↓ */
.header_nav_links > li:not(.header_contact_wrap) > a .header_nav_underline{
    position: relative;
}

.header_nav_links > li:not(.header_contact_wrap) > a .header_nav_underline::before{
    position: absolute;
    content: "";
    width: 100%;
    height: 1px;
    left: 0;
    bottom: -0.1em;
    scale: 0 1;
    transform-origin: right top;
    background-color: #000;
    transition: scale 0.3s ease-in-out;
}
/* 20250901 追加 ura ↑ */

.hnav_font_s{
    display: inline-block;
    font-size: clamp(9px, 100vw * (12 / 1920), 12px);
}

.header_contact{
    display: flex;
    height: 100%;
    padding: 0 clamp(18px, 100vw * (30 / 1920), 30px);
    flex-direction: column;
    justify-content: center;
    background-color: #ee7500;
}

.header_contact_tel{
    position: relative;
    text-indent: 1.2em;
    font-size: clamp(21px, 100vw * (32 / 1920) ,32px);
}
.header_contact_tel::before{
    position: absolute;
    content: "";
    width: 1em;
    height: 100%;
    top: 0;
    left: 0;
    background: url("../../images/snowmove/icon_tel_white.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.header_content_time{
    font-size: clamp(10px, 100vw * (16 / 1920) ,16px);
}
.header_content_time span{
    font-size: clamp(8px, 100vw * (10 / 1920) ,10px);
}


/* ハンバーガーメニュー */
.header_hamburger_button,
.header_hamburger_background{
    display: none;
}
/*------------------------------ header ↑ ------------------------------*/


/*------------------------------ mainview ↓ ------------------------------*/

/*---------- mainview ----------*/
.mainTitle {
    position: absolute;
    bottom: 50px;
    left: clamp(40px, 3.9vw, 180px);
    z-index: 1000;
    font-size: clamp(40px, 3.9vw, 45px);
    font-weight: 800;
    line-height: 1.4;
    background: linear-gradient(90deg, #076ad9 0%, #fff 40%, #58c6ff 80%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 300% 100%;
    animation: gradationTextAnimation 8s linear infinite;
}

@keyframes gradationTextAnimation{
    0%{
        background-position: 0 0;
    }
    50%{
        background-position: 100% 0;
    }
    100%{
        background-position: 0 0;
    }
}




.sp_text {
    display: none;
}

.mainview{
    position: relative;
    width: 100%;
    height: 550px;
}

.mainview_background_wrap{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    overflow: hidden;
    pointer-events: none;
}

.mainview_background_wrap > video{
    position: absolute;
    width: calc(100% + 2px);
    height: 100%;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    object-fit: cover;
    pointer-events: none;
}

.mainview_content_wrap{
    position: relative;
    width: 95%;
    height: 100%;
    max-width: 1400px;
    margin: auto;
}

.mainview_area_wrap{
    position: absolute;
    display: flex;
    width: fit-content;
    top: 6.7%;
}
.mainview_area_wrap::before{
    position: absolute;
    content: "";
    width: calc(100% - 7px);
    height: 100%;
    top: 0;
    left: 7px;
    background-color: #0065aa;
}

.mainview_area_title{
    position: relative;
    display: flex;
    width: 5.631em;
    height: 4.947em;
    z-index: 1;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 19px;
    font-weight: bold;
    color: #0065aa;
    background: #fff;
    border: solid 3px #0065aa;
}

.mainview_area_text{
    position: relative;
    display: flex;
    flex: 1;
    min-height: 111px;
    z-index: 0;
    padding: 1em 1.5em 1em 7px;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    font-size: 14px;
    color: #fff;
}


.mainview_area_text > .area_wrap{
    align-items: center;
    gap: 0.5em 30px;
}

.mainview_area_text > .area_wrap > p{
    display: flex;
    height: 2em;
    padding: 0 0.5em;
    align-items: center;
    font-size: 18.75px;
    letter-spacing: 0;
    border: solid 1px #fff;
    border-radius: 10px;
}

.mainview_area_text > .area_wrap > .area_content {
    display: flex;
    align-items: center;
    margin-bottom: 0.5em;
}

.mainview_area{
    font-size: 26px;
    width: 230px;
}

.mainview_achievements_wrap{
    position: absolute;
    display: flex;
    top: -1px;
    right: 0;
    gap: 25px;
}

.mainview_achievements_label{
    width: 135px;
    height: 164px;
    padding-top: 5%;
    background: 
        linear-gradient(120deg, #f0cc7e 0%, #f0cc7e 0.5618%, #f4db8c 18.5393%, #f9f3e5 41.0112%, #c78a03 73.0337%, #efca84 94.9438%, #efca84 100%) 6.5px 0% / 3px 100% no-repeat,
        linear-gradient(30deg, #f0cc7e 0%, #f0cc7e 0.5618%, #f4db8c 18.5393%, #f9f3e5 41.0112%, #c78a03 73.0337%, #efca84 94.9438%, #efca84 100%) calc(100% - 9.5px) 0% / 3px 100% no-repeat,
        linear-gradient(90deg, #b4843d 0%, #ebdb6a 48.6201%, #ebdb6a 51.3799%, #b4843d 100%);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - tan(21deg) * 50%), 0% 100%);
    overflow: hidden;
}

.mainview_achievements_label > p:first-of-type{
    height: 60px;
    text-align: center;
    font-size: 16px;
    line-height: 1.5;
    color: #65451d;
    -webkit-text-stroke: 2px #fff;
    paint-order: stroke;
}

.mainview_achievements_label > p:last-of-type{
    text-align: center;
    font-size: 11px;
    color: #f00;
    -webkit-text-stroke: 2px #fff;
    paint-order: stroke;
}

.mainview_achievements_font_l1{
    font-size: 20px;
}

.mainview_achievements_font_l2{
    font-size: 23px;
}

.mainview_achievements_number{
    font-size: 30px;
}

.mainview_achievements_textwrap{
    display: inline-block;
    width: 2.2em;
    text-align: left;
    line-height: 1;
}

.mainview_title_wrap{
    position: absolute;
    display: flex;
    width: 95%;
    height: 100%;
    max-width: 761px;
    margin-left: 30px;
    align-items: center;
    pointer-events: none;
}

.mainview_title_wrap img{
    width: 100%;
    opacity: 0.9;
}

.mainview_title_mobile{
    display: none;
}
.mainview_title_u500{
    display: none;
}

.limited_area_link {
    display: block;
    width: fit-content;
    padding: 0.2em 1em;
    border: 2px solid #fff;
    border-radius: 10px;
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    text-align: center;
}

.area_bar_wrap {
    width: 100%;
    height: 100%;
    background: linear-gradient(200deg,#00504a 0%, #44af96  100%);
    padding: 8px 10px;
    display: flex;
    justify-content: center;
}

.area_bar {
    display: grid;
    width: fit-content;
    gap: 7px 0;
}

.area_bar_style {
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 3px;
}

.area_bar_style > p {
    width: 130px;
}

.area_bar_style:nth-child(1) {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
    margin-right: 20px;
    background-color: #fff;
    color: #00504a;
    padding: 0 10px;
    border-radius: 5px;
}

.area_bar_style:nth-child(2) {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
}

.area_bar_style:nth-child(3) {
    grid-column: 2 / 3;
    grid-row: 2 /3;
}

.area_bar_link {
    position: relative;
    z-index: 1;/* 20250901 追加 ura */
    border: 1px dotted #fff;
    padding: 0 8px;
    border-radius: 5px;
    color: #fff;
    overflow: hidden;
}
/* 20250901 追加 ura ↓ */
.area_bar_link::before{
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    z-index: -1;
    top: 0;
    left: 0;
    scale: 0 1;
    transform-origin: right top;
    background-color: #fff;
    transition: scale 0.2s ease-in-out;
}
/* 20250901 追加 ura ↑ */


/*------------------------------ mainview ↑ ------------------------------*/


/*------------------------------ 除雪お見積り ↓ ------------------------------*/
#estimate{
    position: relative;
    background: linear-gradient(0deg, #22589f 0%, #1278bb 53.3379%, #009cda 100%);
}

.wrapper_estimate{
    position: relative;
    display: flex;
    z-index: 1;
    margin: auto;
    flex-direction: column-reverse;
    gap: 80px 0;
}

.estimate_pagelink_wrap{
    position: relative;
    display: flex;
    z-index: 2;
    /* flex-wrap: wrap; */
    justify-content: center;
    gap: 30px;
    /* margin: 50px 0; */
}

.estimate_pagelink_wrap > a{
    display: flex;
    width: 100%;
    height: 84px;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    color: #000;
    background-color: #fff;
    border-radius: 5px;
    filter: drop-shadow(7px 7px 5px rgba(0,0,0,0.75));
    transition: filter 0.2s ease-in-out;
}

.estimate_pagelink_wrap > a:first-of-type{
    position: relative;
    background-image: url("../../images/snowmove/background_button_hexagon_blue.png");
    background-size: contain;
    background-position: left top;  
    background-repeat: no-repeat;
}

.estimate_pagelink_wrap > a:nth-of-type(2){
    position: relative;
    background-image: url("../../images/snowmove/background_button_hexagon_green.png");
    background-size: contain;
    background-position: left top;
    background-repeat: no-repeat;
}

.estimate_pagelink_wrap > a:first-of-type::before,
.estimate_pagelink_wrap > a:nth-of-type(2)::before{
    position: absolute;
    display: flex;
    content: "▶";
    width: 25px;
    height: 25px;
    top: 50%;
    right: 10%;
    translate: 0 -50%;
    justify-content: center;
    align-items: center;
    font-size: 10px;
    color: #fff;
    border-radius: 50%;
    transition: right 0.2s ease-in-out;
}
.estimate_pagelink_wrap > a:first-of-type::before{
    background: #0071bc;
}
.estimate_pagelink_wrap > a:nth-of-type(2)::before{
    background: #006837;
}

.estimate_pagelink_wrap > a p{
    padding-bottom: 0.5em;
}

.estimate_pagelink_wrap > a span{
    font-size: 13px;
}

.estimate_text_wrap{
    display: flex;
    flex-direction: column;
    margin-top: 120px;
}

.estimate_title{
    position: relative;
    text-align: center;
    font-size: 44px;
}
.estimate_title > span{
    font-size: 48px;
}

.estimate_title::before{
    position: absolute;
    content: "";
    width: 50px;
    height: 58px;
    top: -10px;
    left: 50%;
    translate: -50% -100%;
    background: url("../../images/snowmove/icon_snowflake.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

.estimate_period{
    text-align: center;
    font-size: 20px;
}


#top_service_company{
    background: linear-gradient(90deg,#22589f 0%,#009cda 100%);
}

#top_service_homeuse{
    background: linear-gradient(250deg,#44af96 0%,#00504a 100%);
}

.reception_hours {
    margin-left: 10px;
}

/* 街のアニメーション */
#anime_city_container{
    position: relative;
    width: 100%;
    height: 200px;
    z-index: 1;
    margin-top: 100px;
    background-image: url("../../images/snowmove/machinami.png");
    background-size: cover;
    background-repeat: repeat-x;
}

.anime_wheel_loader{
    position: absolute;
    height: 120px;
    z-index: 2;
    top: 100%;
    left: 50%;
    translate: calc(-50% + 30px) -50%;
    animation: city_wheel_loader 0.7s ease-in-out infinite;
}

@keyframes city_wheel_loader{
    0%{
        translate: calc(-50% + 30px) -50%;
    }
    50%{
        translate: calc(-50% + 30px) calc(-50% - 3px);
    }
    100%{
        translate: calc(-50% + 30px) -50%;
    }
}

/* 降雪のアニメーション */
#snow_fall_container{
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 0;
    top: 0;
    left: 0;
    overflow: hidden;
    pointer-events: none;
}

.snow_fall{
    position: absolute;
    display: block;
    border-radius: 50%;
    background-color: #fff;
    animation: snow_fall_anime 5s linear;
}

@keyframes snow_fall_anime{
    0%{
        top: 0;
        translate: 0;
        filter: opacity(0);
    }
    10%{
        filter: opacity(100%);
    }
    20%{
        translate: -200px;
    }
    100%{
        top: 100%;
        translate: -800px;
    }
}

.light{
    position: absolute;
    display: block;
    background: radial-gradient(rgba(255,255,255,0.1),rgba(255,255,255,0));
    border-radius: 50%;
    animation: light_anime 1s ease-in-out forwards;
}

@keyframes light_anime{
    0%{
        scale: 0.7;
        filter: opacity(0) blur(2px);
    }
    20%{
        filter: opacity(100%) blur(2px);
    }
    40%{
        scale: 1;
    }
    60%{
        scale: 1;
    }
    80%{
        filter: opacity(100%) blur(2px);
    }
    100%{
        scale: 0.7;
        filter: opacity(0) blur(2px);
    }
}
/*------------------------------ 除雪お見積り ↑ ------------------------------*/


/*------------------------------ お知らせ ↓ ------------------------------*/
#info{
    position: relative;
}

.wrapper_info{
    position: relative;
    z-index: 1;
    margin: auto;
    padding-top: 30px;/* 20250901 追加 ura */
    padding-bottom: 1px;/* 20250901 追加 ura */
}
/*------------------------------ お知らせ ↑ ------------------------------*/


/*------------------------------ メッセージ ↓ ------------------------------*/
#message{
    background: linear-gradient(0deg, #fff 0%, #bae2f8 100%);
    color: #1a1a1a;
}

#message .font_title{
    width: 100%;
    font-size: min(8vw, 30px);
}

.message_arch_text{
    display: block;
    width: 100%;
    max-width: fit-content;
    margin: auto;
}

.message_solution_wrap{
    position: relative;
    margin: 90px auto 100px;
}

.solution_list_wrap{
    position: relative;
    width: 100%;
    margin: auto;
}

.solution_list_outer{
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1em;
}

.solution_list{
    display: flex;
    justify-content: center;
    gap: 0 12em;
}

.solution_item{
    display: flex;
    width: 10em;
    height: 10em;
    z-index: 1;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: min(3.2vw, 16px);
    background-color: #fff;
    border: solid 1px #1a1a1a;
    border-radius: 50%;
    box-shadow: 7px 7px 5px #000;
}
.solution_list_wrap:nth-of-type(even) .solution_item{
    margin-top: -7em;
}

.solution_illust_wrap{
    position: relative;
    display: flex;
    width: 100%;
    left: 0;
    margin-bottom: -5em;
    translate: 0 -5em;
    justify-content: space-between;
}

.solution_illust_left{
    aspect-ratio: 440 / 402;
    translate: -20%;
}
.solution_illust_right{
    aspect-ratio: 309 / 375;
    translate: 0% 10%;
}

.target_area {
    text-align: center;
    margin: 30px auto 50px auto;
    width: 50%;
    min-width: 550px;
    height: 50dvh;
    overflow: hidden;
}

iframe {
    width: 100%;
    height: calc(100% + 70px);
    margin-top: -70px;
    border: none;
}

#message .wrapper {
    position: relative;
}

.flyer_wrap {
    margin: auto;
    width: 47%;
    min-width: 450px;
    display: flex;
    flex-direction: column;/* 20250901 追加 ura */
    justify-content: center;
    align-items: center;
    gap: 25px;
}

/* 20250901 追加 ura ↓ */
.flyer_items{
    display: flex;
    gap: clamp(25px, 4.99vw, 50px);
}

.flyer_area_name{
    color: #fff;
}
/* 20250901 追加 ura ↑ */

.flyer_area {
    width: 90%;
    max-width: 1270px;
    margin: 70px auto;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(20px, 6.67vw, 50px);
}

.flyer_img {
    position: relative;
    display: flex;
    justify-content: center;
    width: 100%;
    z-index: 1;/*20250830 追加 ura*/
}

.flyer_img::after {
    content: 'クリックして拡大';
    font-size: 18px;
    position: absolute;
    text-align: center;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    min-width: 90px;
    height: fit-content;
    background-color: rgba(0, 0, 0, 0.6);
    pointer-events: none;
    color: #fff;
    padding: 15px;
    transition: background-color 0.3s ease-in-out;/* 20250901 追加 ura */
}

.message_content:last-of-type {
    margin-bottom: 80px;
}

.flyer_wrap img {
    width: 100%;
    /* min-width: 200px; */
    margin: 0 30px;
    cursor: pointer;
}



#zoomBack {
    position: fixed;
    top: 0;
    left: 0;
    width: 100dvw;
    height: 100dvh;
    background-color: rgba(0,0,0,0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100000;
    display: none;
}

#zoomImg {
    object-fit: contain;
    height: 90dvh;
    width: auto;
}

.animationImg {
    animation: expansion .3s ease-out;
}

@keyframes expansion {
    from {
        transform: scale(0);
    }
}
/*------------------------------ メッセージ ↑ ------------------------------*/


/*------------------------------ 企業・法人様向けサービス ↓ ------------------------------*/
#service_company{
    position: relative;
    z-index: 0;
    background: linear-gradient(90deg, #009cda 0%, #22589f 100%);
    color: #fff;
}

#service_company::after{
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    z-index: 1;
    top: 0;
    left: 0;
    opacity: 0.50;
    background-image: url("../../images/snowmove/background_cube1.png");
    background-size: cover;
    background-position: right;
    background-repeat: no-repeat;
}

#service_company::before{
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    z-index: 2;
    top: 0;
    left: 0;
    opacity: 0.51;
    background-image: url("../../images/snowmove/background_cube2.png");
    background-size: cover;
    background-position: right;
    background-repeat: no-repeat;
    mix-blend-mode: screen;
}

.wrapper_service_company{
    position: relative;
    display: flex;
    z-index: 3;
    padding-bottom: 100px;
    flex-direction: column;
    gap: 131px;
}

.service_company_flowfont{
    margin-top: 80px;
    text-align: center;
    font-size: 25px;
}

.service_flow_item:nth-of-type(1) {
    grid-area: areaA;
}

.service_flow_item:nth-of-type(2) {
    grid-area: areaB;
}
.service_flow_item:nth-of-type(3) {
    grid-area: areaC;
}
.service_flow_item:nth-of-type(4) {
    grid-area: areaD;
}
.service_flow_item:nth-of-type(5) {
    grid-area: areaE;
}



.service_flow_list{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    grid-template-areas: "areaA areaB areaC areaD areaE";
    width: 100%;
    margin: 40px auto 0;
    padding: 0 20px;
    /* flex-wrap: wrap; */
    justify-content: center;
    gap: 45px;
}

.service_flow_item{
    position: relative;
    display: flex;
    aspect-ratio: 1 / 1;
    flex-direction: column;
    justify-content: end;
    align-items: center;
    color: #000;
    background-color: #fff;
    border-radius: 20px;
}

.service_flow_item::after {
    content: '';
    display: flex;
    justify-content: center;
    align-items: center;
    width: clamp(38px, 4.2vw, 60px);
    height: clamp(38px, 4.2vw, 60px);
    position: absolute;
    top: -20px;
    left: calc(clamp(22px, 2.585vw, 25px) * -1);
    padding: 1px 10px;
    border-radius: 8px;
    background-color: #020666;
    color: #fff;
    margin-right: 10px;
    font-size: clamp(20px, 2.35vw, 24px);
    font-weight: bold;
}

.service_flow_item:nth-child(1)::after {
    content: '1';
}

.service_flow_item:nth-child(2)::after {
    content: '2';
}
.service_flow_item:nth-child(3)::after {
    content: '3';
}
.service_flow_item:nth-child(4)::after {
    content: '4';
}
.service_flow_item:nth-child(5)::after {
    content: '5';
}


.service_flow_item > p {
    display: flex;
    flex: 1;
    align-items: center;
    font-weight: 700;
    font-size: clamp(12px, 1.41vw, 16px);
}
.service_flow_item > div{
    overflow: hidden;
    border-radius: 0 0 20px 20px;
}
.service_flow_item > div > img{
    width: 100%;
    max-width: fit-content;
}

.service_flow_item:not(:last-of-type)::before{
    position: absolute;
    content: "";
    width: calc(13.5px * tan(60deg));
    height: 27px;
    top: 50%;
    left: 100%;
    translate: 50% -50%;
    background-color: #fff;
    clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
}




/* @media screen and (max-width: 1330px){
     .service_flow_list{
        max-width: 880px;
    }

    .service_flow_item{
        width: clamp(150px, 20vw, 198px);
    }
} */
/*------------------------------ 企業・法人様向けサービス ↑ ------------------------------*/


/*------------------------------ 個人様向けサービス ↓ ------------------------------*/
#service_homeuse{
    position: relative;
    z-index: 0;
    background: linear-gradient(250deg, #44af96 0%, #00504a 100%);
    color: #fff;
}

#service_homeuse::before{
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    z-index: 1;
    top: 0;
    left: 0;
    opacity: 0.50;
    background-image: url("../../images/snowmove/background_cube1rev.png");
    background-size: cover;
    background-position: 0% -20%;
    background-repeat: no-repeat;
}

#service_homeuse::after{
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    z-index: 2;
    top: 0;
    left: 0;
    opacity: 0.51;
    background-image: url("../../images/snowmove/background_cube2rev.png");
    background-size: cover;
    background-position: 0% -20%;
    background-repeat: no-repeat;
    mix-blend-mode: screen;
}

.wrapper_service_homeuse{
    position: relative;
    z-index: 3;
    padding-bottom: 100px;
}

.service_plan_list{
    display: flex;
    margin-top: 100px;
    flex-direction: column;
    gap: 48px;
}

.service_plan_item{
    display: flex;
    width: 100%;
    color: #000;
    border-radius: 15px;
}

.plan_image_wrap{
    position: relative;
    flex: 1;
    border-radius: 15px 0 0 15px;
    overflow: hidden;
}

.height_down_wrap{
    position: absolute;
    width: 100%;
    height: 100%;
}

.plan_image{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.plan_image_one{
    scale: 1.2;
    transform-origin: top;
}

.plan_text_wrap{
    position: relative;
    display: flex;
    width: 550px;
    padding: 30px 0 45px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 32.5px;
    color: #0a1434;
    background-color: #fff;
    border-radius: 0 15px 15px 0;
}

.plan_num{
    position: absolute;
    top: -10px;
    right: 0;
    padding: 1em;
    color: #fff;
    background-color: #f15a24;
    border-radius: 0 15px 0 15px;
}

.plan_title{
    position: relative;
    margin-top: 15px;
    font-size: 30px;
}

.plan_title::before{
    position: absolute;
    display: flex;
    content: "個人様向け";
    width: 6em;
    height: 1.5em;
    top: 0;
    left: 0;
    translate: 0 -50%;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    color: #fff;
    background-color: #0a1434;
    border-radius: 0.5em;
}

.plan_price_wrap{
    position: relative;
    display: flex;
    width: fit-content;
    align-items: center;
    flex-direction: column;
    justify-content: center;
}

.plan_price_comparison{
    width: 100%;
    bottom: 100%;
    left: 0;
    z-index: 2;
    font-size: 17px;
    font-weight: bold;
    text-align: center;
}

.comparison_value,
.comparison_unit{
    color: #ee7500;
    -webkit-text-stroke: 2px #fff;
    paint-order: stroke;
}
.comparison_value{
    padding-left: 0.2em;
    font-size: 1.7em;
}
.comparison_unit{
    padding-right: 0.2em;
}

.plan_price_position{
    position: relative;
    display: flex;
    width: 100%;
    z-index: 1;
    padding: 1.5em 20px;
    align-items: center;
    line-height: 1;
    border-radius: 11px;
}
.plan_price_position::before{
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    z-index: 0;
    bottom: 0;
    left: 0;
    background-color: #e6e6e6;
    border-radius: 11px;
}

/* .plan_price_position::after{
    position: absolute;
    content: "";
    top: 25px;
    z-index: 1;
    left: 100%;
    translate: -70% -30%;
    aspect-ratio: 1 / 1.5;
}

.service_plan_item:nth-of-type(1) .plan_price_position::after{
    width: 77px;
    background-image: url("../../images/snowmove/illust_josetsu1.png");
    background-size: contain;
    background-position: top left;
    background-repeat: no-repeat;
}
.service_plan_item:nth-of-type(2) .plan_price_position::after{
    width: 90px;
    background-image: url("../../images/snowmove/illust_josetsu2.png");
    background-size: contain;
    background-position: top left;
    background-repeat: no-repeat;
} */

p + .plan_price_position{
    padding-top: 0.5em;
}
p + .plan_price_position::before{
    height: calc(100% + 0.7em);
}

.tax_inc{
    display: block;
    width: 1.6em;
    height: fit-content;
    z-index: 1;
    padding: 0.5em 0.3em;
    text-align: center;
    font-size: 24px;
    color: #fff;
    background-color: #ee7500;
    border-radius: 16px;
}

.plan_price{
    display: flex;
    z-index: 2;
    padding-left: 0.2em;
    align-items: baseline;
    font-family: "Arial", sans-serif;
    font-size: 93px;
    font-weight: bold;
    color: #ee7500;
    -webkit-text-stroke: 10px #fff;
    paint-order: stroke;
    filter: drop-shadow(4px 4px 2px rgba(0,0,0,1));
}

.plan_price_unit{
    font-size: 30px;
    color: #ee7500;
    -webkit-text-stroke: 2px #fff;
    paint-order: stroke;
}

.plan_works{
    padding: 0 20px;
    text-align: center;
    font-size: 31px;
    font-weight: 700;
    line-height: 1.2;
}

.plan_works span{
    font-weight: 700;
}

.plan_works .plan_works_font_l{
    margin-right: 0.088em;
    font-size: 1.77em;
    letter-spacing: -0.088em;
}
.plan_works .plan_works_font_s{
    font-size: 20px;
}
.plan_works .plan_works_font_xs{
    display: inline-block;
    font-size: 16px;
}

.plan_works_kerning_1{
    margin: 0 -0.1em;
}

.plan_works_br{
    display: inline-block;
}

#service_homeuse .tel_wrap{
    margin-top: 132px;
}
/*------------------------------ 個人様向けサービス ↑ ------------------------------*/


/*------------------------------ ビーグルについて ↓ ------------------------------*/
#about_us{
    color: #fff;
    background: linear-gradient(90deg, #009cda 0%, #22589f 100%);
}

.wrapper_about_us{
    display: flex;
    width: 100%;
    max-width: 1920px;
    margin: auto;
}

.about_us_title{
    display: flex;
    width: 35%;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.about_us_title .font_title{
    padding-top: initial;
}
.about_us_title .font_title_eng{
    top: -0.5em;
}

.about_us_text{
    flex: 1;
    margin: 3em;
}
/*------------------------------ ビーグルについて ↑ ------------------------------*/





/*------------------------------ お知らせ一覧ページ↓ ------------------------------*/

/*------------------------------ お知らせ一覧ページ↑ ------------------------------*/


/*------------------------------ お知らせ個別記事ページ↓ ------------------------------*/
.infocontent_date{
    padding-top: 108px;
}

.wrapper_infocontent .font_title{
    max-width: 100%;
    padding-top: 0;
    padding-bottom: 1em;
    text-align: left;
    border-bottom: solid 1px rgba(0,0,0,0.2);
}

.infocontent_text{
    margin-top: 70px;
}

.info_list_button.infocontent_listbutton{
    margin-top: 50px;
}

.infocontent_button_wrap{
    display: flex;
    margin-top: 110px;
    padding-top: 40px;
    justify-content: space-between;
}

.info_content_button{
    position: relative;
    max-width: calc(50% - 1em);
}

.info_content_button.prev_button{
    padding-left: 1.7em;
}


.info_content_button.prev_button::before{
    position: absolute;
    content: "<<";
    width: 1.5em;
    height: 100%;
    top: 50%;
    left: 0.2em;
    translate: 0 -50%;
    transition: left 0.2s ease-in-out;
}


.info_content_button.next_button{
    padding-right: 1.7em;
}
.info_content_button.next_button:hover{
    text-decoration: underline;
    text-underline-offset: 0.2em;
}
.info_content_button.next_button.next_button_only{
    margin-left: auto;
}

.info_content_button.next_button::after{
    position: absolute;
    content: ">>";
    width: 1.5em;
    height: 100%;
    top: 50%;
    right: 0.2em;
    text-align: end;
    translate: 0 -50%;
    transition: right 0.2s ease-in-out;
}
.info_content_button.next_button:hover::after{
    right: 0em;
}

/*------------------------------ お知らせ個別記事ページ↑ ------------------------------*/

/*------------------------------ footer↓ ------------------------------*/
footer{
    padding-bottom: 157px;/* 20250909 変更 ura */
}

.footer_wrap{
    margin-top: 0;/* 20250829 追加 ura */
}

/* 20250909 追加 ura */
.top_button_wrap{
    bottom: 157px;
}
/*------------------------------ footer↑ ------------------------------*/


@media screen and (max-width:1200px) {
    .utel_smooth_text{
        left: initial;
        top: 5%;
        right: -20%;
    }

    .utel_smooth_text::before{
        left: initial;
        right: 20px;
    }
}




@media screen and (max-width:1024px){
    body{
        font-size: 14px;
    }

    .desktop_br{
        display: none;
    }

    /*------------------------------ u1024 共有部品 ↓ ------------------------------*/
    /*---------- セクションタイトル ----------*/
    .font_title{
        padding-top: 60px;
        font-size: clamp(22px, 3.906vw, 30px);
    }
    .font_title_eng{
        top: calc(60px - 0.7em);
        font-size: clamp(12px, 2.083vw, 16px);
    }

    .text_indent {
        display: inline-block;
    }
    /*---------- ページ内電話番号特大ボタン ----------*/
    .fz_18 {
        font-size: clamp(14px, 3vw, 16px);
    }


    .tel_wrap{
        gap: 50px;
    }

    .tel_text_wrap{
        width: 100%;
        padding-left: initial;
    }

    .tel_text{
        font-size: clamp(24px, 4.79vw, 38px);
        align-self: center;
    }

    .tel_illust_wrap{
        top: 0;
        right: 0;
        translate: 0 -60%;
    }

    .tel_illust{
        width: 117px;
    }

    .wrapper_estimate {
        gap: 50px 0;
    }

    .tel_button{
        width: 100%;
        padding: 1.2em 0.3em;
    }

    /* u768pxから減少 */
    .tel_button > p:nth-of-type(1){
        font-size: clamp(29px, 6.51vw, 50px);
    }

    .tel_button > p:nth-of-type(2){
        font-size: clamp(10px, 3.333vw, 18px);
    }

    .tel_button > p:nth-of-type(2) span{
        font-size: clamp(8px, 1.822vw, 14px);
    }

    /*---------- ページ下部電話番号 ----------*/
    /* .utel_smooth_text{
        left: initial;
        top: 5%;
        right: -20%;
    }

    .utel_smooth_text::before{
        left: initial;
        right: 20px;
    } */

    .utel_reception_wrap {
        white-space: nowrap;
    }


    @media screen and (max-width:950px) {
        .utel_smooth_image {
            height: 115%;
        }

        .utel_smooth_wrap{
            position: absolute;
            height: 60px;
            z-index: -1;
            bottom: 100%;
            right: 10px;
        }

        .utel_smooth_text{
            left: initial;
            top: initial;
            bottom: 10%;
            right: 0;
            translate: -80px 0;
            font-size: clamp(11px, 3.6vw, 12px);
        }

        .utel_smooth_text::before{
            left: initial;
            top: 50%;
            right: -14px;
            translate: 0 -50%;
            scale: 0.8 -0.8;
            rotate: 90deg;
        }
    }

    @media screen and (max-width:850px){
        .utel_wrap{
            height: auto;
        }

        .utel_inner{
            padding: 10px;
            gap: clamp(17px, 4.2vw, 40px);
        }

        .utel_reception_wrap::after{
            left: clamp(170px, 33.93vw, 245px);
            height: 60%;
        }

        .utel_reception{
            font-size: clamp(9px, 24 * (100vw / 700), 24px);
        }

        .utel_number{
            font-size: clamp(25px, 5vw, 40px);
        }


        .utel_time{
            font-size: clamp(12px, 2.4vw, 16px);
        }

        /* .utel_smooth_wrap{
            position: absolute;
            height: 60px;
            z-index: -1;
            bottom: 100%;
            right: 10px;
        }

        .utel_smooth_text{
            left: initial;
            top: initial;
            bottom: 10%;
            right: 0;
            translate: -80px 0;
            font-size: clamp(11px, 3.6vw, 12px);
        }

        .utel_smooth_text::before{
            left: initial;
            top: 50%;
            right: -14px;
            translate: 0 -50%;
            scale: 0.8 -0.8;
            rotate: 90deg;
        } */
    }

    @media screen and (max-width:755px) {
        .reception_hours {
            margin-left: auto;
        }
    }

    /*------------------------------------------------------------*/

    /*------------------------------ u1024 header ------------------------------*/
    .header_wrap{
        position: relative;
    }

    .header_wrap::before{
        position: absolute;
        content: "";
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background-color: #fff;
    }

    .header_logo{
        z-index: 1;
    }

    .header_nav{
        position: fixed;
        width: 300px;
        height: 100vh;
        z-index: -1;
        top: 0;
        right: -600px;
        background-color: #fff;
        transition: right 0.3s ease-in-out;
    }

    .header_nav.active{
        right: 0;
    }

    .header_nav_links{
        width: 100%;
        height: fit-content;
        margin: 78px auto auto;
        flex-direction: column;
        gap: 0;
    }

    .header_nav_links > li:not(.header_contact_wrap){
        display: flex;
        height: 4em;
        font-size: 16px;
        justify-content: center;
        align-items: center;
        background-color: #fff;
        border-top: solid 1px #cccccc;
    }

    .header_nav_links > li:not(.header_contact_wrap)::after{
        display: none;
    }

    .header_nav_links > li:not(.header_contact_wrap) > a{
        width: 100%;
        height: 100%;
    }

    .header_contact_wrap{
        height: 100px;
    }

    .header_content_time{
        font-size: 16px;
    }
    .header_content_time span{
        font-size: 10px;
    }

    /*---------- ハンバーガーメニュー ----------*/

    .header_hamburger_button{
        position: relative;
        display: flex;
        width: 50px;
        height: 50px;
        margin: auto 10px auto auto;
        background-color: #fff;
        border: none;
        border-radius: 50%;
    }

    .header_hamburger_line{
        position: absolute;
        display: block;
        width: 50%;
        height: 3px;
        top: 50%;
        left: 50%;
        translate: -50% -50%;
        transform-origin: center;
        background-color: #0065aa;
        transition: top 0.3s ease-in-out, rotate 0.1s ease-in-out, opacity 0.3s ease-in-out;
    }
    .header_hamburger_line:first-of-type{
        top: calc(50% - 6px);
    }
    .header_hamburger_line:last-of-type{
        top: calc(50% + 6px);
    }
    
    .header_hamburger_button.active .header_hamburger_line:first-of-type{
        top: 50%;
        rotate: 225deg;
        transition: top 0.1s ease-in-out, rotate 0.3s ease-in-out;
    }
    .header_hamburger_button.active .header_hamburger_line:nth-of-type(2){
        opacity: 0;
    }
    .header_hamburger_button.active .header_hamburger_line:last-of-type{
        top: 50%;
        rotate: -225deg;
        transition: top 0.1s ease-in-out, rotate 0.3s ease-in-out;
    }
    
    .header_hamburger_background{
        position: fixed;
        display: block;
        width: 100%;
        height: 100vh;
        z-index: -2;
        top: -100vh;
        left: 0;
        opacity: 0.7;
        background-color: #000;
        border: none;
        transition: left 0.3s ease-in-out;
    }

    .header_hamburger_background.active{
        top: 0;
    }

    .header_contact_tel{
        font-size: min(10vw, 32px);
    }

    .header_content_time{
        font-size: min(5vw, 16px);
    }
    .header_content_time span{
        font-size: min(3.125vw ,10px);
    }

    /* .header_contact{
        position: relative;
        height: 100%;
        aspect-ratio: 1 / 1;
        padding: 0;
    }
    .header_contact::before{
        position: absolute;
        display: flex;
        content: "TEL";
        width: 31.6px;
        height: 100%;
        top: 0;
        left: 50%;
        padding-bottom: 10px;
        translate: -50%;
        align-items: end;
        font-family: "corporate-logo-ver2", sans-serif;
        font-weight: bold;
        font-style: normal;
        background: url("../../images/snowmove/icon_tel_white.png");
        background-size: contain;
        background-position: 0 30%;
        background-repeat: no-repeat;
    }

    .header_contact > p{
        display: none;
    } */

    /*------------------------------------------------------------*/

    /*------------------------------ u1024 mainview ↓ ------------------------------*/
    /*---------- mainview ----------*/
    .mainTitle {
        font-size: clamp(30px, 3.75vw, 40px);
        bottom: clamp(25px, 2.5vw, 75px);
        left: clamp(25px, 2.5vw, 40px);
    }

    .mainview_content_wrap{
        display: flex;
        padding-top: 6.7%;
        flex-direction: column;
        gap: 20px;
    }

    .mainview_area_wrap{
        position: relative;
        top: 0;
    }

    .mainview_area_title{
        font-size: 17px;
    }

    .mainview_area_text > .area_wrap > p{
        font-size: 16.5px;
    }

    /* .mainview_area_text{
        width: calc(var(--iw) * 0.95 - 7px);
        max-width: max-content;
        height: auto;
        min-height: 111px;
        top: -94px;
        padding: 0.5em 1em 0.5em 107px;
    } */

    .mainview_area_text > .area_wrap{
        flex-wrap: wrap;
        justify-content: space-between;
    }

    .mainview_area{
        font-size: 22px;
        width: clamp(200px, 40vw, 230px);
    }

    .limited_area_link {
        font-size: 12px;
    }

    .mainview_achievements_wrap{
        display: none;
    }

    .mainview_title_desktop{
        display: none;
    }

    .mainview_title_mobile{
        display: initial;
    }

    .mainview_title_wrap{
        position: relative;
        max-width: 540px;
        /* height: initial; */
        padding-bottom: 10%;
        margin-left: initial;
        align-items: center;
    }


    @media screen and (max-width:610px) {
        .area_bar_wrap {
            padding: 8px 10px 8px;
        }
    }
    
    /*------------------------------ u1024 mainview ↑ ------------------------------*/

    /*------------------------------ u1024 除雪お見積り ↓ ------------------------------*/
    .estimate_text_wrap{
        margin-top: clamp(100px, 33.333vw, 115px);
    }


    .estimate_pagelink_wrap > a{
        height: 67px;
        font-size: 18px;
    }

    .estimate_pagelink_wrap > a span{
        font-size: 11px;
    }

    .estimate_title{
        font-size: 36px;
    }

    .estimate_title > span{
        font-size: 40px;
    }

    /* 街のアニメーション */
    #anime_city_container{
        margin-top: 10px;
    }

    .estimate_pagelink_wrap {
        flex-wrap: wrap;
    }

    @media screen and (max-width:610px) {
        .estimate_pagelink_wrap{
            /* margin-top: 30px; */
            translate: 0;
        }
    }
    /*------------------------------ u1024 除雪お見積り ↑ ------------------------------*/

    /*------------------------------ u1024 お知らせ ↓ ------------------------------*/
    .info_list{
        margin-top: 70px;
    }
    
    .info_link{
        position: relative;
        flex-direction: column;
        align-items: start;
    }

    .info_link::before{
        width: 40px;
        height: 40px;
    }

    .info_link_day,
    .info_link_title{
        position: initial;
        width: 100%;
        padding-right: 50px;
    }

    .info_list_button{
        margin: 50px auto 70px;
    }
    /*------------------------------ u1024 お知らせ ↑ ------------------------------*/

    /*------------------------------ u1024 メッセージ ↓ ------------------------------*/
    .title_font {
        font-size: clamp(22px, 3.906vw, 30px);
    }

    .message_solution_wrap{
        position: relative;
        margin: 60px auto 0;
    }

    .solution_list{
        flex-wrap: wrap;
        gap: clamp(1em, 1em + 100vw - 600px, 6em);
    }

    .solution_list_outer > .solution_list_wrap:last-of-type .solution_list{
        gap: clamp(1em, 1em + 100vw - 600px, 6em);
    }

    .solution_item{
        width: 8em;
        height: 8em;
    }

    .solution_list_wrap:nth-of-type(even) .solution_item{
        margin-top: initial;
    }
    
    .solution_illust_wrap{
        height: clamp(100px, 40vw, 300px);
        margin-bottom: initial;
    }
    .solution_illust_left{
        translate: 0% 4em;
        height: 80%;
    }
    .solution_illust_right{
        translate: -10% 5em;
        height: 80%;
    }

    .target_area {
        width: 100%;
        min-width: auto;
        max-width: 550px;
        height: 40dvh;
    }

    #zoomImg {
        width: 50%;
        height: auto;
        min-width: 450px;
    }



    /*------------------------------ u1024 メッセージ ↑ ------------------------------*/

    /*------------------------------ u1024 企業・法人様向けサービス ↓ ------------------------------*/
    .wrapper_service_company{
        padding-bottom: 70px;
        gap: clamp(135px, 45vw, 155px);
    }

    .service_company_flowfont{
        margin-top: 40px;
        font-size: 20px;
    }

    .service_flow_list {
        gap: 35px;
    }

    .service_flow_item:not(:last-of-type)::before {
        width: clamp(16px, 3.19vw, 20px);
    }


    @media screen and (max-width:850px) {
        .service_flow_list {
            grid-template-columns: clamp(120px, 23.952vw, 150px) clamp(120px, 23.952vw, 150px) clamp(120px, 23.952vw, 150px);
            grid-template-areas: "areaA areaB areaC" "areaF areaE areaD";
        }

        .service_flow_item:nth-of-type(3)::before {
            left: 50%;
            top: auto;
            bottom: -45px;
            transform: translatex(-100%) rotate(90deg);
        }

        .service_flow_item:nth-of-type(4)::before {
            left: auto;
            right: 113%;
            transform: rotate(-180deg);
        }

        .service_flow_item::after {
            width: clamp(38px, 7.2vw, 44px);
            height: clamp(38px, 7.2vw, 44px);
            font-size: 20px;
        }

        .service_flow_item > p {
            font-size: clamp(12px, 2.3952vw, 14px);
        }
    }
    /*------------------------------ u1024 企業・法人様向けサービス ↑ ------------------------------*/

    /*------------------------------ u1024 個人様向けサービス ↓ ------------------------------*/
    .wrapper_service_homeuse{
        padding-bottom: 70px;
    }

    .service_plan_list{
        max-width: 500px;
        margin: 70px auto 0;
    }
    
    .service_plan_item{
        flex-direction: column;
    }

    .plan_image_wrap,
    .plan_text_wrap{
        width: 100%;
    }

    .plan_image_wrap{
        border-radius: 15px 15px 0 0;
    }

    .plan_text_wrap{
        padding-top: 25px;
        padding-bottom: 35px;
        gap: 7px;
        border-radius: 0 0 15px 15px;
    }

    .plan_title{
        margin-top: 10px;
        font-size: 24px;
    }

    .plan_price_wrap{
        flex-wrap: wrap;
    }

    .plan_price_comparison{
        font-size: 15px;
    }

    .plan_price{
        font-size: clamp(45px, 15vw, 61px);
    }

    .plan_works{
        font-size: 24px;
    }

    .height_down_wrap{
        position: initial;
        height: 50vw;
        max-height: 260px;
        min-height: 165px;
    }

    #service_homeuse .tel_wrap{
        margin-top: 135px;
    }
    /*------------------------------ u1024 個人様向けサービス ↑ ------------------------------*/

    /*------------------------------ u1024 ビーグルについて↓ ------------------------------*/
    .wrapper_about_us{
        width: 92%;
        margin: auto;
        padding-top: 3em;
        flex-direction: column;
    }

    .about_us_title{
        width: 100%;
    }

    .about_us_text{
        margin: 3em 0;
    }
    /*------------------------------ u1024 ビーグルについて↑ ------------------------------*/

    




    @media screen and (max-width:500px){
        .u500_br{
            display: initial;
        }

        .solution_list{
            font-size: 16px;
        }

        .utel_number {
            font-size: 23px;
        }

        .utel_inner {
            gap: clamp(10px, 3.3vw, 17px);
            padding: 10px 8px;
        }

        .utel_reception_wrap::after {
            left: clamp(100px, 33.3vw, 170px);
        }

        .utel_smooth_image {
            height: 115%;
        }

        /*------------------------------ u500 共通部品 ↓ ------------------------------*/
        .tel_illust{
            width: 120px;
        }

        .lh_xxxs {
            line-height: 1.0;
        }
        /*------------------------------ u500 共通部品 ↑ ------------------------------*/

        /*------------------------------ u500 header ↓ ------------------------------*/
        .header_nav{
            width: 100%;
            /* height: fit-content; */
            right: -100%;
        }

        .header_contact{
            align-items: center;
        }
        /*------------------------------ u500 header ↑ ------------------------------*/

        /*------------------------------ u500 mainview ↓ ------------------------------*/
 

        .mainview_area_wrap{
            width: clamp(285px, 88vw, 380px);
            min-width: 210px;
            flex-direction: column;
            display: none;
        }
        .mainview_area_wrap::before{
            width: 100%;
            height: calc(100% - 7px);
            top: 7px;
            left: 0;
        }

        .mainview_area_title{
            width: 80%;
            height: auto;
            font-size: 11px;
        }

        .mainview_area_title br{
            display: none;
        }

        .mainview_area{
            font-size: clamp(14px, 4.6vw, 16px);
            width: clamp(116px, 38.6vw, 146px);
        }

        .area_annotation{
            font-size: 12px;
        }

        .sp_text {
            display: block;
            font-size: 18px;
        }

        /* .mainview_area_wrap::before {
            background-color: rgba(0, 101, 170, 0.7);
        } */

        .mainview_area_text{
            min-height: initial;
            padding: 0.5em 0.5em 0.5em 7px;
            gap: 3px;
        }

        .mainview_area_text > .area_wrap{
            gap: 0.5em 15px
        }

        .mainview_area_text > .area_wrap > p{
            font-size: 10px;
        }

        .mainview_title_wrap{
            height: inherit;
            padding-bottom: 20%;
            align-items: center;
        }

        .mainview_title_wrap img{
            transform-origin: left center;
        }

        .mainview_title_mobile{
            display: none;
        }
        .mainview_title_u500{
            display: initial;
        }

        .limited_area_link {
            padding: 3px 7px;
            border-radius: 8px;
            border: 1px solid #fff;
            font-size: 11px;
        }

        .mainview_area_text > .area_wrap {
            display: none;
        }

        .area_bar {
            display: block;
        }

        .area_bar_style:nth-child(1) {
            margin-right: auto;
            margin-bottom: 5px;
        }

        .area_bar_style > p {
            width: clamp(110px, 36.67vw, 130px);
        }

        .area_bar_style {
            margin: 5px 0 10px;
        }
        /*------------------------------ u500 mainview ↑ ------------------------------*/

        /*------------------------------ u500 除雪お見積り ↓ ------------------------------*/
        .estimate_title{
            font-size: clamp(26px, 8.783333vw, 34px);
        }

        .estimate_title > span{
            font-size: clamp(30px, 9.816666vw, 38px);
        }

        .font_title_bottom{
            font-size: 20px;
        }

        /*------------------------------ u500 除雪お見積り ↑ ------------------------------*/

        /*------------------------------ u500 メッセージ↓ ------------------------------*/
        .target_area {
            height: 100%;
        }

        iframe {
            height: clamp(300px, 100vw, 450px);
        }

        .flyer_wrap {
            width: 100%;
            gap: clamp(12px, 4vw, 25px);
            min-width: auto;
        }

        .flyer_img {
            width: 100%;
        }

        .flyer_wrap img {
            width: 100%;
            min-width: auto;
        }

        .flyer_img::after {
            font-size: clamp(10px, 3.3333vw, 18px);
            padding: clamp(8px, 2.67vw, 15px);
        }

        #zoomBack {
            padding: 0 15px;

        }

        #zoomImg {
            width: 100%;
            height: auto;
            min-width: 100%;
        }

        .fz_24 {
            font-size: clamp(14px, 4.67vw, 20px);
        }

        /*------------------------------ u500 メッセージ ↑ ------------------------------*/

        /*------------------------------ u500 企業・法人様向けサービス ↓ ------------------------------*/
        

        /* .service_flow_item{
            width: clamp(145px,48.3vw , 180px);
            height: 140px;
            aspect-ratio: initial;
        } */

        .service_flow_list {
            grid-template-columns: 150px 150px;
            grid-template-areas: "areaA areaB" "areaD areaC" "areaE areaF";
            padding: 0;
            gap: 30px;
        }

        .service_flow_item:nth-of-type(2)::before {
            left: 50%;
            top: auto;
            bottom: -40px;
            transform: translateX(-100%) rotate(90deg);
        }

        .service_flow_item:nth-of-type(3)::before {
            top: 50%;
            left: auto;
            right: 113%;
            transform: rotate(-180deg) translate(-50%);
        }

        .service_flow_item:nth-of-type(4)::before {
            top: auto;
            bottom: -40px;
            left: 50%;
            transform: translateX(-100%) rotate(90deg);
        }

        .service_flow_item:not(:last-of-type)::before {
            width: 14px;
        }

        .service_flow_item::after {
            width: 43px;
            height: 43px;
        }

        .txt_margin_c {
            margin: 55px auto 0;
        }
        
        /*------------------------------ u500 企業・法人様向けサービス ↑ ------------------------------*/
        .service_plan_item {
            width: 90%;
            min-width: 275px;
            margin: auto;
        }

        .plan_works {
            font-size: clamp(18px, 6vw, 24px);
            padding: 0 clamp(10px,3.33vw , 20px);
        }

        .plan_works .plan_works_font_xs {
            font-size: clamp(14px, 4.67vw, 16px);
        }

        .plan_title {
            font-size: clamp(22px, 7.33vw, 24px);
        }

        /* .service_plan_item:nth-of-type(1) .plan_price_position::after {
            width: clamp(56px, 18.67vw, 77px);
        } */

        .service_flow_item > p {
            font-size: 14px;
        }

        .txt_margin_i {
            margin: clamp(35px, 11.67vw, 70px) auto 0;
        }

        /*------------------------------ u500 ビーグルについて↓ ------------------------------*/
        .plan_text_wrap {
            padding-top:40px;
            padding-bottom: clamp(25px, 8.3vw, 35px);
        }

        .plan_price_wrap{
            padding: 0 20px;
            justify-content: flex-start;
        }
        
        .plan_price_position{
            flex-direction: column;
            margin: auto;
            align-items: flex-start;
            gap: 10px;
        }

        .tax_inc{
            width: 4em;
            padding: 0.1em 0.3em;
            font-size: clamp(16px, 5.33vw, 20px);
        }

        .plan_price{
            padding-left: initial;
            line-height: 1;
        }

        .plan_price_comparison {
            font-size: clamp(14px, 4.66vw, 15px);
        }

        /* .service_plan_item:nth-of-type(2) .plan_price_position::after {
            width: clamp(73px, 24.33vw, 98px);
        } */
        /*------------------------------ u500 ビーグルについて↑ ------------------------------*/
        .utel_reception_wrap {
            display: none;
        }

        #service_homeuse .tel_wrap {
        margin-top: 125px;
        }
    }


    @media screen and (max-width:423px) {
        .font_title_eng {
            width: 90%;
        }

        .mainTitle {
            font-size: clamp(20px, 6.6vw, 30px);
            bottom: 25px;
            left: 15px;
        }
    }


    @media screen and (max-width:385px) {
        .service_flow_item:not(:last-of-type)::before{
            width: 27px;
            height: 17px;
            top: 100%;
            left: 50%;
            translate: -50% 50%;
            clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
        }

        .service_flow_list {
            grid-template-areas: "areaA" "areaB" "areaC" "areaD" "areaE" "areaF";
            gap: 33px;
            grid-template-columns: 190px;
        }

        .service_flow_item:nth-of-type(2)::before,
        .service_flow_item:nth-of-type(3)::before,
        .service_flow_item:nth-of-type(4)::before {
            transform: translate(0%, 0);
        }

        .service_flow_item::after {
            width:60px;
            height: 60px;
            font-size: 24px;
        }

        .txt_margin_c {
            margin: 35px auto 0;
        }
    }
}






@media (hover: hover){
    /* 共有部品 */
    .tel_button:hover{
        translate: 5px 5px;
        box-shadow: none;
    }

    .estimate_pagelink_wrap > a:hover{
        filter: drop-shadow(2px 2px 2px rgba(0,0,0,0.75));
    }

    .estimate_pagelink_wrap > a:first-of-type:hover::before,
    .estimate_pagelink_wrap > a:nth-of-type(2):hover::before{
        right: 8%;
    }

    /* 20250901 追加 ura ↓ */
    /* header */
    .header_nav_links > li:not(.header_contact_wrap):hover > a .header_nav_underline::before{
        scale: 1 1;
        transform-origin: left top;
    }

    .info_content_button.prev_button:hover{
        text-decoration: underline;
        text-underline-offset: 0.2em;
    }
    
    .info_content_button.prev_button:hover::before{
        left: 0em;
    }

    /* mainview */
    .area_bar_link:hover{
        color: #00504a;
    }

    .area_bar_link:hover::before{
        scale: 1 1;
        transform-origin: left top;
    }

    /* メッセージ */
    .flyer_img:hover::after{
        background-color: rgba(0, 0, 0, 0.85);
    }
    /* 20250901 追加 ura ↑ */

    /* お知らせ */
    .info_link:hover::before{
        translate: calc(-100% + 7px) -50%
    }

    .info_list_button:hover{
        box-shadow: 2px 2px 2px rgba(0,0,0,0.6);
    }

    .info_list_button:hover::before{
        right: calc(2em - 3px);
    }
}



/* マップ調整用 */
.work_map_wrap{
    width: 640px;
    height: 480px;
    overflow: hidden;
}

.work_map{
    width: 100%;
    height: calc(100% + 60px);
    margin-top: -60px;
    border: none;
}





.background_01 {
  height: 100%;
  display: block;
  background: transparent;
}