@charset "utf-8";
/* ------------------------
    総合・モバイル・WiMAX TOP
------------------------ */

main section {
	border-top: 2px solid var(--color-main);
}

main section + section {
	margin-top: 64px;
}

main section.infomation_wrapper + section {
	margin-top: 40px;
}

main section.search_wrapper + section,
main section.shop_wrapper + section,
main section.column_wrapper + section,
main section.simulation_wrapper + section,
main section.deals_reason + section,
main section.plan_wrapper + section{
	margin-top: 0;
}

[data-page="general"] main section {
	border-top: 2px solid #AAAAAA;
}

[class$="_title-upperText"]{
	display: block;
	color: var(--color-uqmobile);
	font-size: 16px;
	font-weight: bold;
	line-height: 1;
}

[class$="-titleFlex"]{
    display: flex;
    gap: 32px;
}

/* service_link */
.service_link{
    display: flex;
    justify-content: center;
    margin-top: 64px;
    background-image: linear-gradient(90deg, var(--color-uqmobile) 50%, var(--color-uqwimax) 50%);
}

.has_emergency .service_link{
    margin-top: 112px;
}

.service_link a{
    width: 600px;
    height: 60px;
}

.service_link a.btn_uqmobile{
    background-color: var(--color-uqmobile);
}

.service_link a.btn_uqmobile::after{
    border: 2px solid var(--color-uqmobile);
}

.service_link a.btn_uqmobile:hover{
    color: var(--color-uqmobile);
}

.service_link a.btn_uqwimax{
    background-color: var(--color-uqwimax);
}

.service_link a.btn_uqwimax::after{
    border: 2px solid var(--color-uqwimax);
}

.service_link a.btn_uqwimax:hover{
    color: var(--color-uqwimax);
}

.service_link a{
    display: flex;
    align-items: center;
    justify-content: center;
}

.service_link a .switch_text{
    font-size: 16px;
    font-weight: bold;
    margin-left: 24px;
}

/* topImage_wrapper */
.topImage_wrapper{
    position: relative;
    padding: 32px 0 72px;
    margin-top: 125px;
    background: #F2F2F2;
}

.topImage_wrapper.banner_none{
    padding: 0;
}

.has_emergency .topImage_wrapper{
    margin-top: 165px;
}

.service_link + .topImage_wrapper{
    margin-top: 0;
}

.topImage .slick-slide{
    padding: 0 16px;
    box-sizing: border-box;
}

.topImage .slick-slide .slide_inner{
    vertical-align: bottom;
    padding-bottom: 6px;
}

.topImage .slick-slide .slide_inner img{
    max-width: 100%;
    height: auto;
    box-shadow: 0px 3px 6px #00000029;
    border-radius: 8px;
}

.topImage .slick-dots{
    position: absolute;
    left: 0;
    right: 0;
    bottom: -37px;
    display: flex;
    gap: 8px;
    width: fit-content;
    margin: 0 auto;
}

.topImage .slick-dots button{
    width: 24px;
    height: 2px;
    border: none;
    background-color: #DBDBDB;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
    cursor: pointer;
}

.topImage .slick-active button{
    width: 48px;
    background-color: var(--color-general);
}

.topImage .slick-slide{
    opacity: 0.2;
    transition: 1s;
}

.topImage .slick-slide.slick-current,
[data-page="general"] .topImage .slick-slide:has(+ .slick-current),
[data-page="general"] .topImage .slick-slide.slick-current + .slick-slide{
    opacity: 1;
}

.topImageBnr_arrow-prev,
.topImageBnr_arrow-next{
    position: absolute;
    left: 50%;
    bottom: 32px;
    display: block;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 100%;
    background-color: var(--color-general);
    opacity: 0;
    transition: width 0.3s ease-out, color 0.3s ease-out;
}

.topImageBnr_arrow-prev::after,
.topImageBnr_arrow-next::after{
    border: 2px solid var(--color-general);
}

.topImageBnr_arrow-prev{
    margin-left: calc(560px / -2 - 44px); /* jsで調整 */
}

.topImageBnr_arrow-next{
    margin-left: calc(560px / 2 + 20px); /* jsで調整 */
}

.topImageBnr_arrow-prev .switch_text,
.topImageBnr_arrow-next .switch_text{
    display: block;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

.topImageBnr_arrow-prev .switch_text::after,
.topImageBnr_arrow-next .switch_text::after{
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 5px;
    height: 5px;
}

.topImageBnr_arrow-prev .switch_text::after{
    border-bottom: 1px solid #fff;
    border-left: 1px solid #fff;
    transform: translate(-30%, -50%) rotate(45deg);
}

.topImageBnr_arrow-next .switch_text::after{
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: translate(-70%, -50%) rotate(45deg);
}

.topImageBnr_arrow-prev:hover .switch_text::after{
    border-bottom: 1px solid var(--color-general);
    border-left: 1px solid var(--color-general);
}

.topImageBnr_arrow-next:hover .switch_text::after{
    border-top: 1px solid var(--color-general);
    border-right: 1px solid var(--color-general);
}

/* device */
.device_inner{
	width: 1200px;
	padding-top: 64px;
	margin: 0 auto;
}

.device_list-btn + .device-titleFlex{
	margin-top: 64px;
}

.device-leadText{
	font-size: 16px;
	line-height: calc(24/16);
}

.device_ranking,
.device_recommend{
    display: flex;
    margin: 64px auto 0;
}

.device_ranking{
    justify-content: center;
    gap: 21px;
}

.device_recommend{
    justify-content: space-between;
}

.device_ranking a,
.device_recommend a{
	position: relative;
	display: block;
	width: 386px;
	height: 100%;
	padding: 20px;
	background-color: #F2F2F2;
	border: 1px solid #888;
	border-radius: 8px;
	box-shadow: 0px 3px 6px #00000029;
	box-sizing: border-box;
}

[data-page="uqmobile"] .device_ranking a,
[data-page="uqmobile"] .device_recommend a{
    background-color: #FEF1F8;
}

[data-page="uqwimax"] .device_ranking a,
[data-page="uqwimax"] .device_recommend a{
    background-color: #F2F6FF;
}

.device_ranking a:hover,
.device_recommend a:hover{
	background-color: #FFF;
}

.device_ranking{
    margin: 64px auto 0;
}

.device_recommend{
    margin: 16px auto 0;
}

.device_ranking a{
	width: 386px;
}

.device_recommend a{
	width: 285px;
}

[class^="device_ranking-rank"]{
    position: absolute;
    top: -25px;
    left: 15px;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    line-height: 1;
    text-align: center;
    width: 48px;
    height: 40px;
    padding-top: 19px;
    box-sizing: border-box;
}

.device_ranking-rank1{
    background: url(https://mvno.geo-mobile.jp/v2/img/pc/cmn/ranking/No1.svg) no-repeat center center / 100% auto;
}

.device_ranking-rank2{
    background: url(https://mvno.geo-mobile.jp/v2/img/pc/cmn/ranking/No2.svg) no-repeat center center / 100% auto;
}

.device_ranking-rank3{
    background: url(https://mvno.geo-mobile.jp/v2/img/pc/cmn/ranking/No3.svg) no-repeat center center / 100% auto;
}

.device_ranking-headIcon{
    display: flex;
    gap: 5px;
    position: absolute;
    top: 20px;
    right: 20px;
}

.device_ranking-headIcon span{
    display: block;
    color: #fff;
    font-size: 16px;
    line-height: calc(24/16);
    text-align: center;
    width: 48px;
}

.device_ranking-specialPrice{
    background: #f6569e;
    color: #fff;
}

.device_ranking-setDiscount{
    background: #ffae00;
    color: #fff;
}

.device_ranking-newProduct{
    background: #E40000;
    order: 2;
}

.device_ranking-usedProduct{
    background-color: var(--color-general);
    order: 1;
}

.device_ranking-image,
.device_recommend-image{
    width: 153px;
    margin: 0 auto;
}

.device_ranking-image [class^="icon-"]{
	display: block;
	position: absolute;
	top: 137px;
	left: 20px;
	color: var(--color-uqwimax);
	font-size: 12px;
	line-height: calc(20 / 12);
	padding: 0 8px;
	background-color: #fff;
	border: 1px solid var(--color-uqwimax);
}

.device_ranking-maker,
.device_recommend-maker{
    display: block;
    color: #666;
    font-size: 14px;
    line-height: 1;
}

.device_ranking-name,
.device_recommend-name{
    color: var(--color-general);
    font-size: 20px;
    font-weight: bold;
    line-height: calc(27/20);
    margin-top: 8px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.device_ranking-textIcon li{
    border: 1px solid #ccc;
    color: #707070;
    float: left;
    font-size: 10px;
    margin: 2px;
    padding: 3px 5px;
}

.device_ranking-description,
.device_recommend-description{
    color: #666;
    font-size: 14px;
    height: calc(21/14*2em);
    line-height: calc(21/14);
    margin-top: 8px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.device_ranking-description span{
    color: #e4007f;
    font-weight: bold;
}

.device_ranking-priceBox{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 16px;
	border-top: 1px solid #DBDBDB;
}

.device_ranking_discount-balloon,
.device_recommend_discount-balloon{
    color: var(--color-uqwimax);
    font-size: 16px;
    font-weight: bold;
}

.device_recommend_discount-balloon{
    width: 195px;
}

.device_ranking-price{
    color: #E40000;
    font-size: 24px;
    font-weight: bold;
    margin: 0 0 0 auto;
}

.device_price-detail{
	padding-top: 16px;
}

.item_price-normal{
	color: var(--color-general);
	font-size: 16px;
	line-height: 1;
	text-align: right;
}

.item_price_comment{
	display: none;
}

.recommend_comment,
.special_comment{
    display: block;
    position: absolute;
    top: 137px;
    left: 20px;
    color: var(--color-general);
    font-size: 12px;
    line-height: calc(20/12);
    padding: 0 8px;
    background-color: #FFEC04;
    border: 1px solid var(--color-general);
}

.special_comment + .special_comment{
	top: calc(137px - 25px);
}

.heightset{
	height: 20px;
}

.device_price-detail dl{
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.device_price-detail dt,
.device_price-detail dd{
    color: var(--color-general);
    font-size: 14px;
    line-height: calc(23/14);
}

.device_price-detail .device_price-mnp,
.device_price-detail .device_price-mnp + dl{
    margin-top: 16px;
}

.device_price-detail .device_price-mnp + dl{
	padding-top: 16px;
	border-top: 1px solid #DBDBDB;
}

.device_price-detail .device_price-mnp dt{
	font-size: 16px;
	font-weight: bold;
	line-height: 1;
}

.device_price-detail .device_price-mnp dd{
	color: #E40000;
	font-size: 24px;
	font-weight: bold;
}

.device_caution-text {
	color: #666;
	font-size: 16px;
	margin-top: 16px
}

.device_list-btn{
    margin-top: 40px;
}

/* faq */
.faq_inner{
    display: flex;
    justify-content: space-between;
    width: 1200px;
    padding-top: 40px;
    margin: 0 auto;
}

.faq_inner ul{
    width: 776px;
    margin: -16px 40px 0 auto;
}

.faq_inner li{
	padding: 16px 0 0 43px;
	background: url(https://mvno.geo-mobile.jp/v2/img/pc/cmn/faq/Q.svg) no-repeat top 30px left/ 27px auto;
}

.faq_inner li + li{
    margin-top: 16px;
    border-top: 1px solid #DBDBDB;
}

.faq_icons{
    display: flex;
}

.faq_icons [class^="icon_"]{
    color: #fff;
    display: block;
    font-size: 14px;
    line-height: 21px;
    padding: 0 8px;
    margin-left: 5px;
}

.faq_icons .icon_uqmobile{
    background: var(--color-uqmobile);
}

.faq_icons .icon_uqwimax{
    background: var(--color-uqwimax);
}

.faq_list .switch_text{
    display: inline-block;
    font-size: 16px;
    line-height: calc(27/16);
    margin-top: 3px;
}

/* shop */
.shop_wrapper{
	padding: 64px 0;
}

[data-page="general"] .shop_wrapper{
	background-color: #F2F9FE;
}

.shop_wrapper > *{
	width: 1200px;
	margin: 0 auto;
}

.shop_wrapper h2{
	margin-top: 12px;
}

.shop_wrapper ul{
    display: flex;
    justify-content: space-between;
	margin-top: 36px;
}

.shop_wrapper li{
    width: 590px;
    background-color: #fff;
    border: 1px solid #888;
    border-radius: 8px;
    box-shadow: 0px 3px 6px #00000029;
}

.shop_wrapper li a{
    position: relative;
    display: block;
    font-size: 16px;
    line-height: calc(24/16);
    height: 100%;
    padding-bottom: 60px;
    box-sizing: border-box;
}

.shop_wrapper li a:hover{
	opacity: 0.8;
}

.shop_wrapper li strong,
.shop_list-comment,
.shop_wrapper .continue{
    display: block;
	margin: 0 20px;
}

.shop_wrapper li strong{
    font-weight: bold;
    margin-top: 20px;
}

.shop_list-comment{
    margin-top: 10px;
}

.shop_wrapper .continue{
    position: absolute;
    right: 0;
    bottom: 0;
    font-weight: bold;
    width: fit-content;
    margin: 0 20px 30px auto;
}

/* bnr */
.bnr_wrapper{
	padding-top: 66px;
}

.bnr_list{
	display: flex;
	justify-content: center;
	gap: 21px;
}

.bnr_list img{
	border-radius: 8px;
	box-shadow: 0px 3px 6px #00000029;
}

/* float */
.float_wrapper{
	display: none;
    position: fixed;
    right: 40px;
    bottom: 40px;
    z-index: 1;
}

.float_wrapper a{
	display: flex;
	align-content: center;
	justify-content: center;
	flex-wrap: wrap;
	text-align: center;
	width: 236px;
	height: 135px;
	border-radius: 8px
}

.float_wrapper a + a{
	margin-top: 16px;
}

.float_wrapper a.btn_uqmobile{
    background-color: var(--color-uqmobile);
	box-shadow: 0px 3px 6px #E3007F29;
}

.float_wrapper a.btn_uqmobile::after{
    border: 2px solid var(--color-uqmobile);
	box-shadow: 0px 3px 6px #00267F29;
}

.float_wrapper a.btn_uqmobile:hover{
    color: var(--color-uqmobile);
}

.float_wrapper a.btn_uqwimax{
    background-color: var(--color-uqwimax);
}

.float_wrapper a.btn_uqwimax::after{
    border: 2px solid var(--color-uqwimax);
}

.float_wrapper a.btn_uqwimax:hover{
    color: var(--color-uqwimax);
}

.float_wrapper a .switch_text{
    font-size: 16px;
    font-weight: bold;
    margin-top: 10px;
}