@charset "utf-8";

/*
 * style.css
 *
 *  version --- 1.0
 *  updated --- 2017/11/30
 */

/* !HTML5 elements
---------------------------------------------------------- */
header, 
footer, 
nav, 
section, 
aside, 
article {
    display: block;
}

/* !Reseting
---------------------------------------------------------- */
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

fieldset {
  border: none;
}

ul,
ol,
li {
	list-style: none;
}

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

table {
	border-collapse: collapse;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
}

select::-ms-expand {
	display: none;
}

input[type=radio]::-ms-check,
input[type=checkbox]::-ms-check{
	display: none;
}

select,
input[type=radio],
input[type=checkbox],
input[type=text],
input[type=password],
input[type=email],
input[type=tel],
input[type=number],
input[type=reset],
input[type=button],
input[type=submit],
textarea {
	appearance: none;
	border-radius: 0;
    color: #2C2A29;
	font-family: "Roboto", "Noto Sans JP", メイリオ, Meiryo, “ヒラギノ角ゴ Pro W3”, “Hiragino Kaku Gothic Pro”, Osaka, “MS Pゴシック”, “MS PGothic”, sans-serif;
    outline: none;
}

input[type=text]::-ms-clear,
input[type=tel]::-ms-clear,
input[type=number]::-ms-clear{
	display: none;
}

input[type=reset],
input[type=button],
input[type=submit]  {
	font-family: "Roboto", "Noto Sans JP", メイリオ, Meiryo, “ヒラギノ角ゴ Pro W3”, “Hiragino Kaku Gothic Pro”, Osaka, “MS Pゴシック”, “MS PGothic”, sans-serif;
	cursor: pointer;
    color: #2C2A29;
}

input::-webkit-input-placeholder, 
textarea::-webkit-input-placeholder { 
    color: #939DAD; 
} 
input:-moz-placeholder, 
textarea:-moz-placeholder { 
    color: #939DAD; 
} 
input::-moz-placeholder, 
textarea::-moz-placeholder { 
    color: #939DAD; 
} 
input:-ms-input-placeholder, 
textarea:-ms-input-placeholder { 
    color: #939DAD; 
}

input[type=text].is-focus,
input[type=password].is-focus,
input[type=email].is-focus,
input[type=tel].is-focus,
input[type=number].is-focus {
    border-color: #005fcc !important;
}

*,
*:before,
*::after {
	box-sizing: border-box;
}
/* !Clearfix
---------------------------------------------------------- */
.clearfix {
    display: block;
    min-height: 1%;
}

.clearfix:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}

* html .clearfix {
    height: 1%;
}

/* !Layout
---------------------------------------------------------- */
html {
    overflow-y: scroll;
    font-size: 62.5%;
}

html.no-move,
html.hidden {
    /*overflow: hidden;*/
}

body {
    font-family: "Roboto", "Noto Sans JP", メイリオ, Meiryo, “ヒラギノ角ゴ Pro W3”, “Hiragino Kaku Gothic Pro”, Osaka, “MS Pゴシック”, “MS PGothic”, sans-serif;
    font-size: 1.6rem;
    -webkit-text-size-adjust: none;
    line-height: 1.5;
    font-weight: normal;
    color: #2C2A29;
    -webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    html.no-move,
    html.hidden {
        overflow: hidden;
    }
}


/* !Base Fonts -------------------------------------------------------------- */
a {
    color: #2C2A29;
    text-decoration: none;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    a {
        transition: all 0.5s;
    }

    a:hover {
        text-decoration: underline;
    }

    .op {
        transition: opacity 0.5s ease-out;
    }

    .op:hover {
        opacity: .7;
        text-decoration: none;
    }

    a[href^="tel:"] {
        cursor: default;
        pointer-events:none;
    }
}

@media screen and (min-width: 768px) {
    .is-sp {
        display: none;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .is-pc {
        display: none;
    }
}


.is-hide {
    display: none;
}

.anchor-area {
    position: relative;
}

.anchor-area .anchor {
    position: absolute;
    top: -11.1rem;
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .anchor-area .anchor {
        top: -10.77rem;
    }
}

/* !wrapper
---------------------------------------------------------- */
#wrapper {
    width: 100%;
    padding-top: 11.1rem;
    word-break: break-all;
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    #wrapper {
        padding-top: 15.77rem;
    }
}

/* !header
---------------------------------------------------------- */
#header {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 999;
    background: #fff;
    width: 100%;
}

.header-inner {
    max-width: 114.4rem;
    width: 100%;
    padding: 1.5rem 2rem;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}

.header-left {
    width: 100%;
    max-width: 73rem;
    display: flex;
    align-items: center;
    gap: 3.2rem;
}

.header-logo {
    width: 22rem;
    line-height: 1;
}

.header-search {
    width: calc(100% - 23.2rem);
}

.header-search__body {
    position: relative;
    width: 100%;
    border-radius: .4rem;
    overflow: hidden;
}

.header-search__body input[type=submit] {
    position: absolute;
    right: 0;
    top: 0;
    width: 3.7rem;
    height: 100%;
    background: url(../img/common/icon_search.svg) center center no-repeat #3064D5;
    background-size: 1.6rem auto;
    border: 0;
    text-indent: -999rem;
}

.header-search__body input[type=text] {
    width: 100%;
    height: 4rem;
    border: .1rem solid #E9ECF2;
    border-radius: .4rem;
    background: #F3F3F3;
    padding: 0 4rem 0 2rem;
    font-size: 1.4rem;
    line-height: 1.3;
}

.header-right {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 4rem;
}

.header-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2.4rem;
}

.header-links a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .4rem;
    font-size: 1rem;
    line-height: 1.3;
    font-weight: 700;
    color: #697180;
    word-break: keep-all;
    white-space: nowrap;
}

.header-links a img {
    width: auto;
    height: 2.4rem;
}

.header-hislogo {
    line-height: 1;
    width: 6.3rem;
}

.header-hislogo img {
    width: 100%;
}

.overlay {
    width: 100%;
    height: 100vh;
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1;
    background: rgba(0, 0, 0, .5);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .5s, visibility .5s;
}

.no-move .overlay {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/*** hover ***/
@media screen and (min-width: 768px) {}


/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    #header {
        position: absolute;
        left: 0;
        top: 0;
        z-index: 999;
        background: #fff;
        width: 100%;
    }

    #header.is-scroll {
        position: fixed;
        top: -5rem;
    }

    .header-inner {
        padding: 1.8rem 0 0;
        display: block;
        position: relative;
        z-index: 4;
    }

    .header-left {
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        gap: 0;
    }

    .header-logo {
        width: 18rem;
        line-height: 1;
        padding: 0 0 0 1.6rem;
    }

    .header-search {
        width: 100%;
        padding: 1.4rem 1.6rem .9rem;
    }

    .header-search__body input[type=text] {
        height: 4.7rem;
        padding: 0 5.3rem 0 1.6rem;
    }

    .header-right {
        position: absolute;
        right: 1.6rem;
        top: 1.2rem;
        z-index: 2;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: .6rem;
    }

    .header-links {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 1rem;
    }

    .header-links a {
        font-size: .8rem;
    }

    .header-links li:first-child img {
        height: 1.8rem;
        margin: .3rem 0;
    }

    .header-hislogo {
        width: 3.2rem;
    }

    .overlay {
        display: none;
    }
}


/* !global navigation
---------------------------------------------------------- */
#g-navi {
    width: 100%;
    background: #10069F;
    position: relative;
}

#g-navi > ul {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 114.4rem;
    width: 100%;
    margin: 0 auto;
}

#g-navi > ul > li {
    flex: 1;
}

#g-navi > ul > li > a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 4rem;
    font-size: 1.4rem;
    line-height: 1.3;
    font-weight: 700;
    color: #fff;
    gap: .4rem;
    position: relative;
}

#g-navi > ul > li.has-child > a:after {
    width: 1.6rem;
    height: 1.6rem;
    background: url(../img/common/arrow_down_w.svg) center center no-repeat;
    background-size: cover;
    content: '';
    display: block;
    transition: transform .5s;
}

#g-navi > ul > li.has-child > a .has-child__target {
    display: none;
}

#g-navi .sub-menu {
    position: absolute;
    left: 50%;
    top: 100%;
    width: 100%;
    max-width: 110.4rem;
    transform: translateX(-50%);
    z-index: 2;
    background: #fff;
    border-radius: 0 0 4rem 4rem;
    padding: 2.4rem 4rem 3.6rem;
    box-shadow: 0 .4rem 2rem rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .5s, visibility .5s;
}

#g-navi .sub-menu.is-show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

#g-navi .sub-menu h2 {
    font-size: 2.4rem;
    line-height: 1.3;
    font-weight: bold;
    color: #000;
    margin-bottom: 1.6rem;
}

#g-navi .sub-menu ul {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .8rem;
}

#g-navi .sub-menu ul li {
    line-height: 1;
}

#g-navi .sub-menu ul li a {
    /* font-weight: bold; */
    border: .1rem solid #DDDDDD;
    border-radius: .8rem;
    width: 100%;
    height: 6.4rem;
    display: flex;
    align-items: center;
    padding: 0 3.2rem 0 .8rem;
    font-size: 1.4rem;
    line-height: 1.3;
    gap: .8rem;
    color: #2C2A29;
    background: url(../img/common/arrow_links01.svg) right .8rem center no-repeat;
    background-size: 1.6rem auto;
    transition: .2s;
}

#g-navi .sub-menu ul li a img {
    width: 5rem;
    height: 5rem;
    object-fit: cover;
    border-radius: 100%;
}

#g-navi .sub-menu ul li a span {
    font-weight: bold;
}

#g-navi .nav-arrow {
    display: none;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    #g-navi > ul > li:hover > a {
        background-color: #0B047B;
        text-decoration: none;
    }

    #g-navi > ul > li.has-child:hover a:after {
        transform: scaleY(-1);
    }

    #g-navi .sub-menu ul li a:hover {
        border-color: #000;
    }
}


@media screen and (min-width: 768px) and (max-width: 899px) {
    #g-navi > ul > li > a {
        font-size: 1.3rem;
    }

    #g-navi .sub-menu ul li a {
        font-size: 1rem;
        padding: 0 1.6rem 0 .4rem;
        background-position: right center;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    #g-navi {
        position: relative;
    }

    #g-navi:after {
        width: 5rem;
        height: 100%;
        position: absolute;
        right: 0;
        top: 0;
        z-index: 2;
        content: '';
        background: linear-gradient(90deg, rgba(16, 6, 159, 0) 0%, #10069F 50%);
    }

    #g-navi.is-end:after {
        display: none;
    }


    #g-navi > ul {
        justify-content: flex-start;
        flex-wrap: nowrap;
        white-space: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    #g-navi > ul > li {
        flex: unset;
    }

    #g-navi > ul > li > a {
        font-size: 1.2rem;
        gap: .2rem;
        padding: 0 1.6rem;
    }

    #g-navi > ul > li.has-child > a .has-child__target {
        display: block;
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        z-index: 2;
    }

    #g-navi > ul > li.has-child > a.is-active {
        background-color: #0B047B;
    }

    #g-navi > ul > li.has-child > a.is-active:after {
        transform: scaleY(-1);
    }

    #g-navi .sub-menu {
        position: absolute;
        left: 0;
        transform: translateX(0);
        border-radius:0;
        padding: 2.4rem 1.6rem 2.4rem;
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch;
        height: calc(100dvh - 15.7rem);
    }

    #header.is-scroll #g-navi .sub-menu {
        height: calc(100dvh - 11rem);
    }

    #g-navi .sub-menu.is-show {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    #g-navi .sub-menu ul {
        grid-template-columns: repeat(1, 1fr);
        gap: .4rem;
    }

    #g-navi .sub-menu ul li a {
        height: 5.6rem;
        padding: 0 3.2rem 0 1.6rem;
        line-height: 1.5;
        font-size: 1.6rem;
    }

    #g-navi .sub-menu ul li a span {
        font-size: 1.4rem;
    }

    #g-navi .sub-menu ul li a img {
        width: 4rem;
        height: 4rem;
    }

    #g-navi .nav-arrow {
        display: block;
        position: absolute;
        right: 0;
        top: 0;
        z-index: 3;
        width: 2.4rem;
        height: 100%;
        overflow: hidden;
    }

    #g-navi .nav-arrow:before {
        content: '';
        display: block;
        position: absolute;
        right: 0;
        top: 0;
        z-index: 2;
        width: 100%;
        height: 100%;
        background: url(../img/common/arrow_links01_w.svg) right center no-repeat;
        background-size: 2.4rem auto;
        -webkit-animation: arrow-slide 1s ease-in 0.4s infinite;
        animation: arrow-slide 1s ease-in 0.4s infinite;
    }

    #g-navi.is-end .nav-arrow {
        display: none;
    }


    @-webkit-keyframes arrow-slide {
      0% {
        right: .8rem;
        opacity: 1;
      }
      100% {
        right: -2rem;
        opacity: 0;
      }
    }

    @keyframes arrow-slide {
      0% {
        right: .8rem;
        opacity: 1;
      }
      100% {
        right: -2rem;
        opacity: 0;
      }
    }

    .sub-menu-area {
        position: fixed;
        left: 0;
        width: 100%;
        top: 15.7rem;
    }

    #header.is-scroll .sub-menu-area{
        top: 10.5rem;
    }

    .sub-menu-area .sub-menu {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        z-index: 2;
        background: #fff;
        padding: 2.4rem 1.6rem 2.4rem;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .5s, visibility .5s;
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch;
        height: calc(100dvh - 15.7rem);
    }

    #header.is-scroll .sub-menu-area .sub-menu {
        height: calc(100dvh - 10.5rem);
    }

    .sub-menu-area .sub-menu .sub-menu-close {
        position: absolute;
        right: 1.6rem;
        top: 2rem;
        z-index: 2;
        width: 10.8rem;
        height: 3.2rem;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        gap: .4rem;
        border-radius: 1.6rem;
        box-shadow: 0 .1rem .4rem .1rem rgba(0, 0, 0, 0.15);
        background: #fff;
        font-size: 1.6rem;
        line-height: 1.3;
        color: #697180;
    }

    .sub-menu-area .sub-menu .sub-menu-close:after {
        width: 1.6rem;
        height: 1.6rem;
        background: url(../img/common/close.svg) center center no-repeat;
        background-size: cover;
        content: '';
    }

    .sub-menu-area .sub-menu .sub-menu__bottom  {
        text-align: center;
        margin-top: 2.4rem;
    }

    .sub-menu-area .sub-menu .sub-menu__bottom .sub-menu-close {
        position: static;
    }


    .sub-menu-area .sub-menu.is-show {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .sub-menu-area .sub-menu h2 {
        font-size: 2rem;
        line-height: 1.3;
        font-weight: bold;
        color: #000;
        margin-bottom: 1.6rem;
    }

    .sub-menu-area .sub-menu ul {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        gap: .4rem;
    }

    .sub-menu-area .sub-menu ul li {
        line-height: 1;
    }

    .sub-menu-area .sub-menu ul li a {
        /* font-weight: bold; */
        border: .1rem solid #DDDDDD;
        border-radius: .8rem;
        width: 100%;
        height: 7.6rem;
        display: flex;
        align-items: center;
        padding: 0 3.2rem 0 1.6rem;
        line-height: 1.5;
        font-size: 2rem;
        gap: .8rem;
        color: #2C2A29;
        background: url(../img/common/arrow_links01.svg) right .8rem center no-repeat;
        background-size: 1.6rem auto;
        transition: .2s;
    }

    .sub-menu-area .sub-menu ul li a img {
        width: 6rem;
        height: 6rem;
        object-fit: cover;
        border-radius: 100%;
    }

    .sub-menu-area .sub-menu ul li a span {
        font-weight: bold;
        font-size: 1.8rem;
    }
}


/* !breadcrumb
---------------------------------------------------------- */
#breadcrumb {
    width: 100%;
    border-bottom: .1rem solid #E9ECF2;
    padding: .8rem 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

#breadcrumb ul {
    display: flex;
    flex-wrap: nowrap;
}

#breadcrumb ul li {
    word-break: keep-all;
    white-space: nowrap;
    position: relative;
    font-size: 1.2rem;
    line-height: 1.5;
}

#breadcrumb ul li + li {
    padding-left: 2.4rem;
}

#breadcrumb ul li + li:before {
    content: '';
    position: absolute;
    width: 2.4rem;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 2;
    background: url(../img/common/breadcrumb_arrow.svg) center center no-repeat;
    background-size: 1.6rem auto;
}

#breadcrumb ul li a {
    color: #697180;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

#breadcrumb ul li:first-child a:before {
    content: '';
    width: 1.2rem;
    height: 1.2rem;
    background: url(../img/common/home.svg) center center no-repeat;
    background-size: 1.2rem auto;
}

/*** hover ***/
@media screen and (min-width: 768px) {}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {

    #breadcrumb ul li:last-child {
        padding-right: 1.6rem;
    }
}


/* !main Visual
---------------------------------------------------------- */
#main-visual {
    padding: 1.6rem 0 5rem;
    overflow: hidden;
}

#main-visual .swiper {
    overflow: visible;
}

#main-visual .swiper-slide {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    height: 270px;
}

#main-visual .swiper-slide img {
    width: 100%;
    height: 100%;
    max-width: 48rem;
    border-radius: .8rem;
    object-fit: cover;
}

#main-visual .swiper-pagination {
    position: absolute;
    left: 0;
    bottom: -2.6rem;
    width: 100%;
    line-height: 1;
    z-index: 2;
}

#main-visual .swiper-pagination .swiper-pagination-bullet {
    width: 1rem;
    height: 1rem;
    margin: 0 .2rem;
    border-radius: 100%;
    background: #E9ECF2;
    opacity: 1;
}

#main-visual .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background: #2C2A29;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    #main-visual a:hover {
        opacity: .7;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    #main-visual {
        padding: 1.6rem 1.6rem 4.2rem;
    }

    #main-visual .swiper-slide {
        width: 100%;
        height: auto;
    }

    #main-visual .swiper-slide img {
        max-width: 100%;
    }

    #main-visual .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
        background: #939DAD;
    }
}


/* !teaser
---------------------------------------------------------- */
#teaser {}

/*** hover ***/
@media screen and (min-width: 768px) {}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {

}


/* !contents
---------------------------------------------------------- */
#contents {}

#main {}

#side {}

.inner {
    max-width: 114.4rem;
    width: 100%;
    padding: 0 2rem;
    margin: 0 auto;
}

/*** hover ***/
@media screen and (min-width: 768px) {}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .inner {
        padding: 0 1.6rem;
    }
}


/* !page Top
---------------------------------------------------------- */
.page-top {
    position: fixed;
    right: 2.4rem;
    bottom: 0;
    transform: translateY(-2.4rem);
    z-index: 99;
    width: 4rem;
    line-height: 1;
    display: none;
}

.page-top.is-stop {
    position: absolute;
    bottom: 100%;
}

.page-top img {
    width: 100%;
}

/*** hover ***/
@media screen and (min-width: 768px) {}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .page-top {
        right: 1.6rem;
        transform: translateY(-1.6rem);
    }
}


/* !footer
---------------------------------------------------------- */
#footer {
    width: 100%;
    background: #F6F6F6;
    padding: 2rem 0;
    position: relative;
}

.footer-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: .4rem;
}

.footer-logo:before {
    font-family: "Open Sans", sans-serif;
    font-size: 1rem;
    line-height: 1.4;
    content: 'supported by';
    display: block;
}

.footer-logo a {
    width: 6.3rem;
    line-height: 1;
    display: block;
}

.footer-logo a img {
    width: 100%;
}

.footer-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2.4rem;
    margin-top: 2.4rem;
}

.footer-links li {
    line-height: 1;
}

.footer-links a {
    font-size: 1.2rem;
    line-height: 1.5;
    font-weight: 400;
    color: #2C2A29;
}

#copyright {
    margin-top: 2.4rem;
    text-align: center;
    font-size: 1rem;
    line-height: 2;
    font-weight: 400;
}

/*** hover ***/
@media screen and (min-width: 768px) {}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    #footer {
        padding: 2rem 0 3.2rem;
    }

    .footer-logo {
        gap: .1rem;
    }

    .footer-links {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }

    #copyright {
        margin-top: 3.2rem;
        line-height: 1.2;
    }
}


/* !TOP
---------------------------------------------------------- */
.keywords-wrap {
    border-top: .1rem solid #ddd;
    padding: 2.4rem 0;
}

.keywords-area {
    display: flex;
    justify-content: flex-start;
    flex-wrap: nowrap;
    white-space: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 1.6rem;
}

.keywords-area .keywords-title {
    font-size: 1.6rem;
    font-weight: bold;
    word-break: keep-all;
    white-space: nowrap;
    line-height: 2;
}

.keywords-area .keywords-list {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.keywords-area .keywords-list li {
    line-height: 1;
}

.keywords-area .keywords-list a {
    display: inline-flex;
    padding: .8rem;
    border-radius: .8rem;
    background: #E9ECF2;
    font-size: 1.2rem;
    line-height: 1.3;
    font-weight: bold;
    color: #10069F;
}

.simulation-wrap {
    background: #F8F1DC;
    padding: 2.4rem 0;
    margin-bottom: 3rem;
    overflow: hidden;
}

.simulation-title {
    font-size: 2rem;
    line-height: 1.5;
    font-weight: bold;
    margin-bottom: 1.6rem;
    text-align: center;
}

.simulation-select {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .8rem;
}

.simulation-select .simulation-select__column {
    width: 100%;
}

.simulation-select .simulation-select__column select {
    width: 100%;
    height: 6.2rem;
    border: .1rem solid #D1D1D1;
    border-radius: .8rem;
    padding: 0 3.6rem 0 1.6rem;
    background: url(../img/common/arrow_down_b.svg) right 1rem center no-repeat #fff;
    background-size: 1.6rem auto;
    font-size: 1.6rem;
    line-height: 1.3;
    cursor: pointer;
}

.simulation-result {
    margin-top: 2.4rem;
    text-align: center;
    display: none;
}

.simulation-result .result-text {
    font-size: 1.4rem;
    line-height: 1;
    font-weight: bold;
}

.simulation-result .result-price {
    font-size: 1.4rem;
    line-height: 1.3;
    color: #DF0D00;
    font-weight: bold;
}

.simulation-result .result-price .result-price__number {
    font-size: 3.2rem;
}

.simulation-result .result-notes {
    font-size: 1.4rem;
    line-height: 1.5;
    margin-top: .8rem;
}

.simulation-result .result-error {
    font-size: 1.6rem;
    line-height: 1.5;
    font-weight: bold;
    color: #DF0D00;
}

.content-wrap {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-direction: row-reverse;
    gap: 2.4rem;
    padding-bottom: 4rem;
}

.content-wrap .main-wrap {
    width: calc(100% - 30.4rem);
}

.main-wrap .main-item {
    width: 100%;
    padding-bottom: 4rem;
    overflow: hidden;
}

.main-wrap .main-item .main-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.6rem;
}

.main-wrap .main-item h2 {
    font-size: 2rem;
    line-height: 1.3;
    font-weight: bold;
}

.main-wrap .main-item .main-title a {
    font-size: 1.4rem;
    line-height: 1.5;
    color: #3064D5;
}

.js-swiper .swiper {
    overflow: visible;
}

.js-swiper .swiper-slide {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}

.js-swiper .swiper-button-prev,
.js-swiper .swiper-button-next {
    width: 4rem;
    height: 100%;
    margin: 0;
    top: 0;
}

.js-swiper .swiper-button-prev {
    left: 0;
}

.js-swiper .swiper-button-next {
    right: 0;
}

.js-swiper .swiper-button-prev:after,
.js-swiper .swiper-button-next:after {
    width: 4rem;
    height: 4rem;
    position: absolute;
    content: '';
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    opacity: 1;
    background: url(../img/common/arrow_slider.svg) center center no-repeat;
    background-size: cover;
    transition: .3s;
}

.js-swiper .swiper-button-prev:after {
    transform: translateY(-50%) scaleX(-1);
}

.js-swiper .swiper-button-prev:before,
.js-swiper .swiper-button-next:before {
    pointer-events: none;
    width: 17rem;
    height: 100%;
    position: absolute;
    content: '';
    top: 0;
    opacity: 1;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 80%, #FFFFFF 100%)
}

.js-swiper .swiper-button-prev:before {
    left: 0;
    transform: scaleX(-1);
}

.js-swiper .swiper-button-next:before {
    right: 0;
}

.js-swiper .swiper-button-next.swiper-button-disabled, 
.js-swiper .swiper-button-prev.swiper-button-disabled {
    opacity: 0;
}


.travel-item {
    display: block;
    line-height: 1;
    width: 20.8rem;
    transition: 0.3s;
}

.ranking-swiper .ranking-item {
    display: block;
    width: 19.2rem;
    border-radius: .8rem;
    overflow: hidden;
    position: relative;
    box-shadow: 0 .4rem 2rem rgba(0, 0, 0, 0.08);
}

.ranking-swiper .ranking-item[data-ranking]:before {
    width: 3.4rem;
    height: 4.7rem;
    position: absolute;
    left: .8rem;
    top: 0;
    z-index: 3;
    padding-bottom: 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #B1C5E0;
    color: #fff;
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1.5;
    content: attr(data-ranking);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - 1rem), 0 100%);
}

.ranking-swiper .swiper-slide:nth-child(1) .ranking-item:before {
    background: linear-gradient(136.38deg, #FFE100 0%, #D37B08 97.7%);
}

.ranking-swiper .swiper-slide:nth-child(2) .ranking-item:before {
    background: linear-gradient(136.38deg, #F0F0F0 0%, #6C6C6C 97.7%);
}

.ranking-swiper .swiper-slide:nth-child(3) .ranking-item:before {
    background: linear-gradient(136.38deg, #B6644B 0%, #59312A 97.7%);
}

.ranking-swiper .ranking-item .links {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: block;
}

.ranking-swiper .ranking-item .image-wrap {
    width: 100%;
    position: relative;
    z-index: 2;
    padding-top: 62.5%;
    display: block;
    pointer-events: none;
}

.ranking-swiper .ranking-item .image-wrap img {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    object-fit: cover;
    transition: opacity .3s ease;
}

.ranking-swiper .ranking-item.is-out .image-wrap:after {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    content: attr(data-soldout-text);
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.6rem;
    line-height: 1.3;
    color: #fff;
    z-index: 3;
}


.ranking-swiper .ranking-item .box-wrap {
    display: block;
    padding: 1.6rem;
    position: relative;
    z-index: 2;
    pointer-events: none;
}

.ranking-swiper .ranking-item .city {
    display: block;
    font-size: 1.2rem;
    line-height: 1.5;
    color: #3064D5;
    pointer-events: auto;
}

.ranking-swiper .ranking-item .title {
    font-size: 1.4rem;
    line-height: 1.3;
    margin-top: .4rem;
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.ranking-swiper .ranking-item .price {
    display: block;
    text-align: right;
    font-size: 1.2rem;
    line-height: 1.3;
    color: #DF0D00;
    margin-top: .8rem;
    font-weight: bold;
}

.ranking-swiper .ranking-item .price .price-number {
    font-size: 2rem;
    line-height: 1.3;
}

.ranking-swiper .ranking-item .review {
    margin-top: .8rem;
    padding-left: 2rem;
    font-size: 1.2rem;
    line-height: 1.33;
    color: #3064D5;
    background: url(../img/common/icon_review.svg) left top no-repeat;
    background-size: 1.6rem auto;
    display: block;
    pointer-events: auto;
}

.ranking-swiper .ranking-item .notes {
    font-size: 1.2rem;
    line-height: 1.3;
    color: #EA5514;
    margin-top: .8rem;
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.ranking-swiper .ranking-item .delivery-tags {
    margin-top: .8rem;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.ranking-swiper .ranking-item .delivery-tags .delivery-tag {
    background: #E9ECF2;
    border-radius: .4rem;
    padding: .2rem .8rem;
    font-size: 1.4rem;
    line-height: 1.214;
    color: #697180;
}

.ranking-swiper .ranking-item .fast-delivery {
    display: flex;
    margin-top: .8rem;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #3C9A2C;
    gap: .4rem;
    font-weight: bold;
    align-items: center;
}

.ranking-swiper .ranking-item .fast-delivery:before {
    width: 2.4rem;
    height: 1.4rem;
    content: '';
    background: url(../img/common/delivery_car.svg) center center no-repeat;
    background-size: cover;
}

.ranking-swiper .ranking-item .fast-delivery-notes {
    margin-top: .4rem;
    font-size: 1rem;
    line-height: 1.2;
    color: #697180;
    display: block;
}


.municipality-area {
    background: #F6F6F6;
    border-radius: .8rem;
    padding: 4rem;
}

.municipality-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.6rem;
}

.municipality-list .municipality-list__item {
    background: #fff;
    border-radius: .8rem;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.municipality-list .municipality-list__item .image-wrap {
    width: 50%;
    height: 11.2rem;
    display: block;
}

.municipality-list .municipality-list__item .image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: .3s;
}

.municipality-list .municipality-list__item .box-wrap {
    padding: 1rem 1.6rem;
    width: 50%;
}

.municipality-list .municipality-list__item .box-wrap .city {
    font-size: 1.6rem;
    line-height: 1.5;
    color: #3064D5;
    font-weight: bold;
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.municipality-list .municipality-list__item .box-wrap .title {
    font-size: 1.4rem;
    line-height: 1.3;
    margin-top: .8rem;
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.municipality-list .municipality-list__item .box-wrap .date {
    font-size: 1.2rem;
    line-height: 1.5;
    margin-top: .4rem;
    display: block;
    color: #697180;
}

.gift-list {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .8rem;
}

.gift-list li {
    line-height: 1;
}

.gift-list li a {
    border: .1rem solid #DDDDDD;
    border-radius: .8rem;
    width: 100%;
    height: 6rem;
    display: flex;
    align-items: center;
    padding: 0 .8rem;
    font-size: 1.2rem;
    line-height: 1.3;
    gap: .8rem;
    color: #2C2A29;
    transition: .2s;
}

.gift-list li a img {
    width: 5rem;
    height: 5rem;
    object-fit: cover;
    border-radius: 100%;
}

.gift-list li a span {
    font-weight: bold;
}


.area-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 1.8rem;
}

.area-list li {
    border-top: .1rem solid #E9ECF2;
    line-height: 1;
}

.area-list .area-list__item:nth-child(2) li:last-child {
    border-bottom: .1rem solid #E9ECF2;
}

.area-list a {
    display: flex;
    height: 5.3rem;
    width: 100%;
    align-items: center;
    padding: 0 2.4rem 0 1.2rem;
    position: relative;
    font-size: 1.4rem;
    line-height: 1.5;
    font-weight: bold;
}

.area-list a:after {
    height: 1.6rem;
    width: 1.6rem;
    position: absolute;
    background: url(../img/common/arrow_links01.svg) right center no-repeat;
    background-size: cover;
    content: '';
    right: 0;
    top: 50%;
    transform: translate(0,-50%);
    z-index: 2;
    transition: transform .3s;
}

.area-list a:before {
    width: .4rem;
    left: 0;
    top: .6rem;
    bottom: .6rem;
    z-index: 2;
    content: '';
    position: absolute;
}

.area-list .area01:before {
    background: #94ACDA;
} 

.area-list .area02:before {
    background: #7EBAD3;
} 

.area-list .area03:before {
    background: #91C5B1;
} 

.area-list .area04:before {
    background: #B5C46E;
} 

.area-list .area05:before {
    background: #DEB353;
}

.area-list .area06:before {
    background: #EF9065;
} 

.area-list .area07:before {
    background: #E49A97;
} 

.area-list .area08:before {
    background: #C989A7;
} 

.area-list .area09:before {
    background: #B1595A;
} 

.price-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .8rem;
}

.price-list li {
    line-height: 1;
}

.price-list li a {
    border: .1rem solid #DDDDDD;
    border-radius: .8rem;
    width: 100%;
    height: 5.3rem;
    display: flex;
    align-items: center;
    padding: 0 4rem 0 1.6rem;
    font-size: 1.4rem;
    line-height: 1.5;
    font-weight: bold;
    color: #2C2A29;
    background: url(../img/common/arrow_links01.svg) right 1.8rem center no-repeat;
    background-size: 1.6rem auto;
    transition: .2s;
}

.news-list li {
    line-height: 1;
}

.news-list li + li {
    margin-top: 3.2rem;
}

.news-list .news-list__item {
    display: flex;
    align-items: center;
    position: relative;
}

.news-list .news-list__item .date {
    font-size: 1.2rem;
    line-height: 1.5;
    margin-right: 1.6rem;
    word-break: keep-all;
    white-space: nowrap;
    display: flex;
    align-items: center;
}

.news-list .news-list__item.new .date:after {
    width: 4.4rem;
    height: 1.8rem;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.2rem;
    line-height: 1.3;
    background: #FFEE1D;
    border-radius: .4rem;
    margin-left: 1.6rem;
    content: 'NEW';
    font-weight: bold;
    padding-top: .2rem;
}

.news-list .news-list__item .title {
    display: block;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #111;
    font-weight: bold;
    padding-right: 2.4rem;
    width: 100%;
}

.news-list .news-list__item .toggle-button {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.news-list .news-list__item .toggle-button:after {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(90deg);
    z-index: 2;
    width: 1.6rem;
    height: 1.6rem;
    background: url(../img/common/arrow_links01.svg) right center no-repeat;
    background-size: 1.6rem auto;
    content: '';
    transition: transform .3s;
}

.news-list .news-list__item .toggle-button.is-open:after {
    transform: translateY(-50%) rotate(90deg) scaleX(-1);
}

.news-list .news-list__body {
    display: none;
    font-size: 1.4rem;
    line-height: 1.5;
    margin-top: 1.6rem;
}

.feature-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.6rem;
}

.feature-list li {
    line-height: 1;
}

.feature-list li a {
    line-height: 1;
    border-radius: .8rem;
    overflow: hidden;
    display: block;
}

.feature-list li a img {
    width: 100%;
}

.content-wrap .side-wrap {
    width: 22.4rem;
}

.side-wrap .side-item {
    background: #f6f6f6;
    border-radius: .8rem;
    padding: 3.2rem 1.6rem;
    margin-bottom: 1.6rem;

}

.side-wrap .side-title {
    margin-bottom: .8rem;
}

.side-wrap .side-title h2 {
    font-size: 1.6rem;
    line-height: 1.3;
    font-weight: bold;
}

.side-wrap .side-item ul li {
    line-height: 1;
}

.side-wrap .side-item ul li a {
    width: 100%;
    display: flex;
    align-items: center;
    padding: .55rem 2.4rem .55rem 0;
    font-size: 1.4rem;
    line-height: 1.5;
    gap: .8rem;
    color: #2C2A29;
    background: url(../img/common/arrow_links01.svg) right center no-repeat;
    background-size: 1.6rem auto;
}

.side-wrap .side-item ul li a img {
    width: 4.8rem;
    height: 4.8rem;
    object-fit: cover;
    border-radius: 100%;
    border-radius: 100%;
}

.side-feature ul li {
    line-height: 1;
    margin-bottom: 1.6rem;
}

.side-feature ul li a {
    display: block;
    line-height: 1;
    border-radius: .8rem;
    overflow: hidden;
}

.side-feature ul li a img {
    width: 100%;
    transition: .3s;
}

/*** hover ***/
@media screen and (min-width: 768px) {

    .ranking-swiper .ranking-item .city:hover ,
    .ranking-swiper .ranking-item:hover .title,
    .ranking-swiper .ranking-item .review:hover {
        text-decoration: underline;
    }

    .municipality-list .municipality-list__item:hover img,
    .ranking-swiper .ranking-item:hover .image-wrap img,
    .side-feature ul li a:hover img,
    .js-swiper .swiper-button-prev:hover:after,
    .js-swiper .swiper-button-next:hover:after,
    .travel-item:hover {
        opacity: .7;
    }

    .news-list .news-list__item:hover,
    .news-list .news-list__item:hover .title {
        text-decoration: none;
    }

    .gift-list li a:hover {
        border-color: #000;
    }

    .area-list a:hover:after {
        transform: translate(.4rem,-50%);
    }

    .price-list li a:hover {
        border-color: #000;
        background-position: right 1.4rem center;
    }
}

@media screen and (max-width: 999px) {

    .municipality-list {
        grid-template-columns: repeat(1, 1fr);
    }

    .gift-list {
        grid-template-columns: repeat(3, 1fr);
    }

    .price-list {
        grid-template-columns: repeat(2, 1fr);
    }

}
@media screen and (min-width: 768px) {
    .gift-list li.is-hide {
        display: block;
    }
}
/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .keywords-wrap {
        padding: 1.6rem 0;
    }

    .keywords-wrap .inner {
        padding: 0;
    }

    .keywords-area {
        display: flex;
        justify-content: flex-start;
        flex-wrap: nowrap;
        white-space: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 1.1rem;
        padding: 0 1.6rem;
    }

    .keywords-area .keywords-title {
        font-size: 1.4rem;
    }

    .keywords-area .keywords-list {
        gap: .8rem;
    }

    .simulation-wrap {
        margin-bottom: 4rem;
    }

    .simulation-title {
        font-size: 1.8rem;
    }

    .simulation-select .simulation-select__column select {
        padding: 0 4.8rem 0 1.6rem;
        background: url(../img/common/arrow_down_b.svg) right 1.6rem center no-repeat #fff;
        background-size: 1.6rem auto;
    }

    .simulation-result .result-notes {
        font-size: 1.2rem;
        margin-top: .4rem;
    }

    .simulation-result .result-error {
        font-size: 1.4rem;
    }

    .content-wrap {
        display: block;
        padding-bottom: 8rem;
    }

    .content-wrap .main-wrap {
        width: 100%;
    }

    .main-wrap .main-item {
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
        padding: 0 1.6rem 4rem;
    }

    .main-wrap .main-item h2 {
        font-size: 1.8rem;
    }

    .js-swiper .swiper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
        padding: 0 1.6rem;
        padding-bottom: 2rem;
    }

    .js-swiper .swiper-slide {
        padding-right: 1.6rem;
    }

    .js-swiper .swiper-button-prev,
    .js-swiper .swiper-button-next {
        display: none;
    }

    .municipality-area {
        border-radius: 0;
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
        padding: 4rem 1.6rem;
    }

    .municipality-list {
        grid-template-columns: repeat(1, 1fr);
    }

    .gift-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .gift-list li {
        line-height: 1;
    }

    .gift-list li a {
        font-size: 1.4rem;
    }


    .area-list {
        display: block;
    }

    .area-list li {
        border-bottom: 0;
        border-top: .1rem solid #E9ECF2;
    }


    .area-list a {
        height: 5.6rem;
    }

    .price-list {
        grid-template-columns: repeat(1, 1fr);
    }

    .news-list li + li {
        margin-top: 2.4rem;
    }

    .news-list .news-list__item {
        display: block;
    }

    .news-list .news-list__item .date {
        font-size: 1.4rem;
        margin-right: 0;
        margin-bottom: .8rem;
    }

    .content-wrap .side-wrap {
        display: none;
    }

    .btn-showmore {
        margin-top: 2.4rem;
        text-align: center;
    }

    .btn-showmore a {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        font-size: 1.6rem;
        line-height: 1.5;
        width: 25.6rem;
        height: 4.4rem;
        box-shadow: 0 .1rem .4rem .1rem rgba(0, 0, 0, 0.15);
        border-radius: 10rem;
        background: url(../img/common/arrow_down_b.svg) right 1.6rem center no-repeat;
        background-size: 1.6rem auto;
    }
}


/* !検索結果
---------------------------------------------------------- */
.search-page {
    padding: 3.2rem 0 4rem;
}

.search-page .page-title {
    font-size: 2.4rem;
    line-height: 1.125;
    font-weight: bold;
    letter-spacing: .03em;
    margin-bottom: 2.4rem;
}

.conditions-area {
    background: #F6F6F6;
    border-radius: .4rem;
    padding: 1.6rem;
    margin-bottom: 1.2rem;
}

.conditions-area .conditions-title {
    font-size: 1.6rem;
    line-height: 1.3;
    font-weight: bold;
    margin-bottom: 1.6rem;
}

.conditions-area .conditions-list {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.conditions-area .conditions-list label {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: .4rem;
    border: .1rem solid #EDEDED;
    background: #fff;
    font-size: 1.2rem;
    line-height: 1.5;
    padding: 1rem;
    cursor: pointer;
    transition: .3s;
    gap: .4rem;
}

.conditions-area .conditions-list label button {
    width: 2.4rem;
    height: 2.4rem;
    background: url(../img/common/delete.svg) center center no-repeat;
    background-size: cover;
}

.delivery-wrap {
    padding: 1.2rem 0;
    display: flex;
    justify-content: flex-start;
    flex-wrap: nowrap;
    white-space: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: .8rem;
    margin-bottom: 1.2rem;
}

.delivery-wrap::-webkit-scrollbar {
  height: .9rem;
}

.delivery-wrap::-webkit-scrollbar-track {
  margin: 0;
  background: #fff;
  border-radius: .5rem;
}

.delivery-wrap::-webkit-scrollbar-thumb {
  border-radius: .5rem;
  background: #ccc;
}

.delivery-wrap .delivery-title {
    font-size: 1.6rem;
    font-weight: bold;
    word-break: keep-all;
    white-space: nowrap;
    line-height: 1.5;
}

.delivery-wrap .delivery-list {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}

.delivery-wrap .delivery-list li {
    line-height: 1;
    position: relative;
}

.delivery-wrap .delivery-list li input[type=checkbox] {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: 0;
}

.delivery-wrap .delivery-list label {
    display: block;
    padding-left: 3.2rem;
    font-size: 1.4rem;
    line-height: 1.714;
    position: relative;
    cursor: pointer;
}

.delivery-wrap .delivery-list label:before,
.delivery-wrap .delivery-list label:after {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}

.delivery-wrap .delivery-list label:before {
    background: url(../img/common/icon_checkbox_off.svg) center center no-repeat;
    background-size: cover;
}

.delivery-wrap .delivery-list label:after {
    background: url(../img/common/icon_checkbox_on.svg) center center no-repeat;
    background-size: cover;
    opacity: 0;
    transition: opacity .3s;
}

.delivery-wrap .delivery-list li input[type=checkbox]:checked + label:after {
    opacity: 1;
}

.delivery-wrap .fast-delivery {
    display: flex;
    gap: .4rem;
    font-weight: bold;
    color: #3C9A2C;
    align-items: center;
}

.delivery-wrap .fast-delivery:before {
    width: 3.094rem;
    height: 1.8rem;
    content: '';
    background: url(../img/common/delivery_car.svg) center center no-repeat;
    background-size: cover;
}

.order-count-wrap {
    margin-bottom: 2.4rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.order-count-wrap .order-wrap {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.order-count-wrap .order-wrap a {
    font-size: 1.2rem;
    line-height: 1.25;
    color: #697180;
    position: relative;
    display: block;
}

.order-count-wrap .order-wrap a + a:before {
    width: .1rem;
    height: 100%;
    background: #DDDDDD;
    position: absolute;
    left: -1rem;
    top: 0;
    z-index: 2;
    content: '';
}

.order-count-wrap .order-wrap a.is-active {
    color: #000;
    text-decoration: underline;
}

.order-count-wrap .count-wrap {
    display: flex;
    gap: 1.6rem;
    align-items: center;
}

.order-count-wrap .count-wrap .show-detail {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: 1.2rem;
    line-height: 2;
}

.order-count-wrap .count-wrap .show-detail .show-detail-button {
    position: relative;
    width: 4.8rem;
    height: 1.6rem;
    border-radius: .8rem;
    background: #E9ECF2;
    display: block;
    transition: .3s;
}

.order-count-wrap .count-wrap .show-detail .show-detail-button:before {
    position: absolute;
    width: 2.4rem;
    height: 2.4rem;
    left: 0;
    top: 50%;
    transform: translate(0,-50%);
    z-index: 2;
    border: .2rem solid #939DAD;
    border-radius: 100%;
    background: #fff;
    content: '';
    transition: .3s;
}

.order-count-wrap .count-wrap .show-detail .show-detail-button.is-active {
    background: #C0DBFF;
}

.order-count-wrap .count-wrap .show-detail .show-detail-button.is-active:before  {
    border-color: #3064D5;
    background: #3064D5;
    left: 100%;
    transform: translate(-100%,-50%);
}

.order-count-wrap  .count-select {
    width: 8.4rem;
}

.order-count-wrap  .count-select select {
    width: 100%;
    height: 3.9rem;
    border: .1rem solid #D1D1D1;
    border-radius: .4rem;
    padding: 0 3.6rem 0 1rem;
    font-size: 1.2rem;
    color: #000;
    background: url(../img/common/arrow_down_b.svg) right 1rem center no-repeat;
    background-size: 1.6rem auto;
    cursor: pointer;
    transition: .2s;
}

.js-show-detail-hide {
    display: none;
}

.search-list .ranking-swiper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.4rem 1.6rem;
}

.search-list .ranking-swiper .ranking-item {
    width: 100%;
}

.search-list .ranking-swiper .ranking-item .title {
    -webkit-line-clamp: 3;
}

.pagination {
    margin-top: 4rem;
    text-align: center;
}

.pagination .screen-reader-text {
    font-size: 1.2rem;
    line-height: 1.75;
    color: #697180;
}

.pagination .nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .8rem;
    margin-top: .8rem;
}

.pagination .nav-links .page-numbers {
    width: 4.4rem;
    height: 4.4rem;
    border-radius: .4rem;
    border: .1rem solid #DDDDDD;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #2C2A29;
}

.pagination .nav-links .page-numbers.current {
    background: #10069F;
    border-color: #10069F;
    color: #fff;
    font-weight: bold;
}

.pagination .nav-links .page-numbers.dots {
    width: auto;
    border: 0;
    font-weight: bold;
    line-height: 1;
}

.pagination .nav-links .page-numbers.prev ,
.pagination .nav-links .page-numbers.next {
    border: 0;
    text-indent: -999rem;
    position: relative;
    display: block;
}

.pagination .nav-links .page-numbers.prev:before,
.pagination .nav-links .page-numbers.next:before {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    content: '';
    transition: .3s;
}

.pagination .nav-links .page-numbers.prev:before {
    background: url(../img/common/arrow_prev.svg) center center no-repeat;
    background-size: 1.6rem auto;
}

.pagination .nav-links .page-numbers.next:before {
    background: url(../img/common/arrow_next.svg) center center no-repeat;
    background-size: 1.6rem auto;
}

.recent-wrap {
    margin-top: 4rem;
    padding: 4rem 0;
    border-top: .8rem solid #E9ECF2;
    overflow: hidden;
}

.search-box-pc {
    background: #E9ECF2;
    box-shadow: 0 .1rem .4rem .1rem rgba(0, 0, 0, 0.15);
    border-radius: .8rem;
    overflow: hidden;
}

.search-item {
    background: #fff;
    padding: 2.4rem 1.6rem;
}

.search-item + .search-item {
    margin-top: .8rem;
}

.search-item h2 {
    font-size: 1.6rem;
    line-height: 1.3;
    font-weight: bold;
    margin-bottom: 1.6rem;
}

.search-keywords {
    position: relative;
    width: 100%;
    border-radius: .4rem;
    overflow: hidden;
}

.search-keywords input[type=submit] {
    position: absolute;
    right: 0;
    top: 0;
    width: 4.2rem;
    height: 100%;
    background: url(../img/common/icon_search.svg) center center no-repeat #3064D5;
    background-size: 2.134rem auto;
    border: 0;
    text-indent: -999rem;
}

.search-keywords input[type=text] {
    width: 100%;
    height: 5rem;
    border: .1rem solid #E9ECF2;
    border-radius: .4rem;
    background: #F3F3F3;
    padding: 0 5.8rem 0 1.6rem;
    font-size: 1.4rem;
    line-height: 1.3;
}

.search-checkbox-list > li {
    border-bottom: .1rem solid #ddd;
}

.search-checkbox.last .search-checkbox-list > li {
    border-bottom: 0;
}

.search-checkbox.last .search-checkbox-list > li + li {
    margin-top: .8rem;
}

.search-checkbox-list li label {
    display: block;
    position: relative;
    font-size: 1.4rem;
    line-height: 1.5;
    cursor: pointer;
    transition: .2s;
}

.search-checkbox-list li.has-child .js-toggle-target {
    position: relative;
}

.search-checkbox-list li.has-child .js-toggle-target .toggle-button {
    position: absolute;
    width: 3.2rem;
    height: 3.2rem;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    cursor: pointer;
    display: block;
}

.search-checkbox-list li.has-child .js-toggle-target .toggle-button:before,
.search-checkbox-list li.has-child .js-toggle-target .toggle-button:after {
    width: 1rem;
    height: .2rem;
    border-radius: .1rem;
    position: absolute;
    right: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    background: #939DAD;
    content: '';
}

.search-checkbox-list li.has-child .js-toggle-target .toggle-button:after {
    transform: translateY(-50%) rotate(90deg);
    transition: .3s;
}

.search-checkbox-list li.has-child .js-toggle-target .toggle-button.is-open:after {
    transform: translateY(-50%) rotate(0);
}


.search-checkbox-list li label input {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: 0;
}

.search-checkbox-list li label span {
    display: block;
    padding: 1.15rem 3.2rem 1.15rem 4rem;
    font-size: 1.4rem;
    line-height: 1.5;
    position: relative;
}

.search-checkbox.last .search-checkbox-list li label span {
    padding: .15rem 3.2rem;
}

.search-checkbox-list li label input[type=checkbox]:checked + span {
    background: #F0F7FF;
}

.search-checkbox-list li label span:before,
.search-checkbox-list li label span:after {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.search-checkbox.last .search-checkbox-list li label span:before,
.search-checkbox.last .search-checkbox-list li label span:after {
    left: 0;
}

.search-checkbox-list li label span:before {
    background: url(../img/common/icon_checkbox_off.svg) center center no-repeat;
    background-size: cover;
}

.search-checkbox-list li label span:after {
    background: url(../img/common/icon_checkbox_on.svg) center center no-repeat;
    background-size: cover;
    opacity: 0;
    transition: opacity .3s;
}

.search-checkbox-list li label input[type=checkbox]:checked + span:after {
    opacity: 1;
}

.search-checkbox-list li label span small {
    display: block;
    font-size: .9rem;
    line-height: 1.5;
}

.search-checkbox-list ul {
    display: none;
}

.search-checkbox-list ul li {
    border-top: .1rem solid #ddd;
}

.search-checkbox-list ul li.has-child .js-toggle-target .toggle-button {
    right: 1.6rem;
}


.search-checkbox-list ul li label span {
    padding: 1.15rem 4.8rem 1.15rem 5.6rem;
}

.search-checkbox-list ul li label span:before,
.search-checkbox-list ul li label span:after {
    left: 2.4rem;
}

.search-checkbox-list ul ul li label span {
    padding: 1.15rem 2rem 1.15rem 7.2rem;
}

.search-checkbox-list ul ul li label span:before,
.search-checkbox-list ul ul li label span:after {
    left: 4rem;
}

.search-checkbox-list ul ul li label input[type=checkbox]:checked + span {
    background: #E0EDFF;
}

.search-checkbox .search-checkbox__button {
    margin-top: 2.4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .8rem;
}

.search-checkbox .search-checkbox__button input[type=reset] {
    border: .1rem solid #ddd;
    border-radius: 1.6rem;
    width: 11rem;
    height: 3.2rem;
    background: #fff;
    font-size: 1.4rem;
    line-height: 1.5;
    transition: .3s;
}

.search-checkbox .search-checkbox__button input[type=submit] {
    border: .1rem solid #3064D5;
    border-radius: 1.6rem;
    width: 11rem;
    height: 3.2rem;
    background: #3064D5;
    color: #fff;
    font-size: 1.4rem;
    line-height: 1.5;
    font-weight: bold;
    transition: .3s;
}

.search-radio-list li + li {
    margin-top: 1.2rem;
}

.search-radio-list li label {
    display: block;
    position: relative;
    font-size: 1.4rem;
    line-height: 1.5;
    cursor: pointer;
    transition: .2s;
}

.search-radio-list li label input {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: 0;
}

.search-radio-list li label span {
    display: block;
    padding: .15rem 0 .15rem 3.2rem;
    font-size: 1.4rem;
    line-height: 1.5;
    position: relative;
}

.search-radio-list li label span:before,
.search-radio-list li label span:after {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.search-radio-list li label span:before {
    background: url(../img/common/icon_radio_off.svg) center center no-repeat;
    background-size: cover;
}

.search-radio-list li label span:after {
    background: url(../img/common/icon_radio_on.svg) center center no-repeat;
    background-size: cover;
    opacity: 0;
    transition: opacity .3s;
}

.search-radio-list li label input[type=radio]:checked + span:after {
    opacity: 1;
}

.search-radio-list li label span.fast-delivery {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.search-radio-list li label span.fast-delivery b {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-weight: bold;
    color: #3C9A2C;
}

.search-radio-list li label span.fast-delivery b:before {
    width: 3.094rem;
    height: 1.8rem;
    content: '';
    background: url(../img/common/delivery_car.svg) center center no-repeat;
    background-size: cover;
}

.search-radio-list li label span.fast-delivery small {
    font-size: 1.2rem;
    line-height: 1.5;
    background: #C0DBFF;
    border-radius: .2rem;
    padding: .4rem .8rem;
}

.search-radio-list li label span.fast-delivery:before,
.search-radio-list li label span.fast-delivery:after {
    top: 0;
    transform: translateY(0);
}

.search-price {
    margin-top: 1.6rem;
}

.search-price .search-price__item {
    position: relative;
    width: calc(100% - 2.2rem);
}

.search-price .search-price__item:first-child:after {
    width: 2.2rem;
    content: '~';
    height: 100%;
    position: absolute;
    left: 100%;
    bottom: 0;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.8rem;
    line-height: 1.5;
    color: #000000;
    padding-top: 2.9rem;
}

.search-price .search-price__item dt {
    font-size: 1.4rem;
    line-height: 1.5;
    font-weight: bold;
    margin-bottom: .8rem;
}

.search-price .search-price__item dd {
    position: relative;
    line-height: 1;
}

.search-price .search-price__item dd:after {
    width: 4.8rem;
    height: 100%;
    right: 0;
    top: 0;
    z-index: 2;
    position: absolute;
    content: '円';
    color: #939DAD;
    font-size: 1.6rem;
    line-height: 1.5;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
}

.search-price .search-price__item input {
    width: 100%;
    height: 5rem;
    border: .1rem solid #D1D1D1;
    border-radius: .8rem;
    padding: 0 4.8rem 0 1.6rem;
    font-size: 1.6rem;
    line-height: 1.5;
    background: #fff;
}

.search-price .search-price__item + .search-price__item {
    margin-top: 1.3rem;
}

.search-subitem {
    margin-top: 2.4rem;
}

.search-toggle {
    margin-top: 1.6rem;
}

.search-toggle .toggle-button {
    border: .1rem solid #3064D5;
    border-radius: .4rem;
    background: #F5F7FA;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    display: flex;
    width: 100%;
    height: 3rem;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #3064D5;
    gap: .4rem;
    transition: .3s;
}

.search-toggle .toggle-button:before {
    content: 'さらに絞り込む';
    font-size: 1.4rem;
    line-height: 1.5;
    color: #3064D5;
}

.search-toggle .toggle-button:after {
    content: '';
    width: 1.6rem;
    height: 1.6rem;
    background: url(../img/common/add_blue.svg) center center no-repeat;
    background-size: cover;
}

.search-toggle .toggle-button.is-open:before {
    content: '閉じる';
}

.search-toggle .toggle-button.is-open:after {
    background-image: url(../img/common/minus_blue.svg);
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .conditions-area .conditions-list label:hover {
        border-color: #000;
    }

    .order-count-wrap .order-wrap a:hover {
        color: #000;
        text-decoration: underline;
    }

    .pagination .nav-links a.page-numbers:hover {
        text-decoration: none;
        border-color: #000;
    }

    .pagination .nav-links .page-numbers.prev:hover:before,
    .pagination .nav-links .page-numbers.next:hover:before,
    .search-toggle .toggle-button:hover {
        opacity: .7;
    }

    .search-checkbox .search-checkbox__button input[type=reset]:hover {
        border-color: #000;
    }

    .search-checkbox .search-checkbox__button input[type=submit]:hover {
        color: #3064D5;
        background: #fff;
    }

    .search-checkbox-list li label:hover,
    .search-radio-list li label:hover {
        opacity: .7;
    }

    .order-count-wrap  .count-select select:hover {
        border-color: #000;
    }
}

@media screen and (max-width: 959px) {
    .search-list .ranking-swiper {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (max-width: 859px) {
    .order-count-wrap {
        flex-flow: wrap;
        gap: .4em;
    }

    .order-count-wrap .count-wrap {
        width: 100%;
        justify-content: flex-end;
    }

    .search-list .ranking-swiper {
        grid-template-columns: repeat(2, 1fr);
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .search-page {
        padding: 1.6rem 0 4rem;
    }

    .search-page .page-title {
        font-size: 1.6rem;
        line-height: 1.6875;
        margin-bottom: 1.2rem;
    }

    .conditions-area {
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
        border-radius: 0;
        margin-bottom: 1.2rem;
    }

    .conditions-area .conditions-title {
        font-size: 1.4rem;
        line-height: 1.92857;
    }

    .delivery-wrap {
        padding: 1.2rem 1.6rem;
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
        margin-bottom: 1.2rem;
    }

    .order-count-wrap {
        margin-bottom: 1.6rem;
        display: block;
    }

    .order-count-wrap .order-wrap {
        display: none;
    }

    .order-count-wrap .count-wrap {
        gap: 1.6rem;
        flex-direction: column-reverse;
        align-items: flex-end;
    }

    .order-count-wrap .count-wrap .show-detail {
        gap: .8rem;
    }

    .order-count-wrap .order-count-select {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: .8rem;
    }

    .order-count-wrap .order-count-select form {
        width: 100%;
    }

    .order-count-wrap  .count-select {
        width: 100%;
    }

    .search-list .ranking-swiper {
        grid-template-columns: repeat(2, 1fr);
    }

    .search-list .ranking-swiper .ranking-item .title {
        -webkit-line-clamp: 4;
    }

    .recent-wrap {
        margin-top: 4rem !important;
        padding: 4rem 1.6rem !important;
    }

    .search-item h2 {
        font-size: 2rem;
        margin-bottom: 0;
    }

    .search-keywords {
        margin-top: 1.6rem;
    }

    .search-keywords input[type=submit] {
        width: 5.1rem;
        background-size: 2.4rem auto;
    }

    .search-keywords input[type=text] {
        height: 6.2rem;
        background: #fff;
        padding: 0 6.8rem 0 1.6rem;
    }

    .search-checkbox-list,
    .search-radio-list {
        margin-top: 1.6rem;
    }

    .search-price {
        margin-top: 2rem;
        display: flex;
        align-items: center;
        gap: 2.4rem;
    }

    .search-price .search-price__item {
        width: calc(50% - 1.2rem);
    }

    .search-price .search-price__item:first-child:after {
        width: 2.4rem;
    }

    .search-price .search-price__item + .search-price__item {
        margin-top: 0;
    }

    .search-box-sp {
        position: fixed;
        width: 100%;
        height: 100dvh;
        left: 0;
        top: 0;
        z-index: 999;
        background: #E9ECF2;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 4.8rem 0 6.4rem;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .5s ease, visibility .5s ease;
    }

    .search-box-sp.is-show {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .search-box-sp .search-box-sp__close {
        position: fixed;
        width: 2.4rem;
        height: 2.4rem;
        right: 1.2rem;
        top: 1.2rem;
        background: url(../img/common/close_b.svg) center center no-repeat;
        background-size: cover;
        cursor: pointer;
        z-index: 999;
    }

    .search-box-sp .search-box-sp__title {
        font-size: 1.8rem;
        line-height: 1.3;
        font-weight: bold;
        text-align: center;
        padding: 1.2rem;
        border-bottom: .1rem solid #DDDDDD;
        background: #fff;
        position: fixed;
        left: 0;
        top: 0;
        z-index: 998;
        width: 100%;
    }

    .search-box-sp .search-head {
        position: relative;
    }

    .search-box-sp .search-head .toggle-button {
        position: absolute;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
        z-index: 2;
    }

    .search-box-sp .search-head .toggle-button:after {
        position: absolute;
        width: 1.6rem;
        height: 1.6rem;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
        background: url(../img/common/arrow_down_b.svg) right center no-repeat;
        background-size: 1.6rem auto;
        transition: transform .3s ease;
        content: '';
    }

    .search-box-sp .search-head .toggle-button.is-open:after {
        transform: translateY(-50%) scaleY(-1);
    }

    .search-button,
    .search-box-sp .search-checkbox__button {
        position: fixed;
        left: 0;
        bottom: 0;
        z-index: 98;
        width: 100%;
        padding: 1.2rem;
        background: rgba(255, 255, 255, 0.7);
        backdrop-filter: blur(.8rem);
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: .5rem;
    }

    .search-button a,
    .search-box-sp .search-checkbox__button input[type=submit] {
        display: inline-flex;
        width: 100%;
        max-width: 25rem;
        height: 4rem;
        border-radius: 2rem;
        background: #3064D5;
        justify-content: center;
        align-items: center;
        font-size: 1.2rem;
        line-height: 1.5;
        color: #fff;
        font-weight: bold;
        border: 0;
    }

    .search-box-sp .search-checkbox__button input[type=reset] {
        display: inline-flex;
        border: .1rem solid #ddd;
        min-width: 9rem;
        height: 4rem;
        border-radius: 2rem;
        background: #fff;
        justify-content: center;
        align-items: center;
        font-size: 1.2rem;
        line-height: 1.5;
        color: #2C2A29;
    }

    #search .page-top {
        transform: translateY(-8rem);
    }

    #search .page-top.is-stop {
        transform: translateY(-1.6rem);
    }
}


/* !popup
---------------------------------------------------------- */
.popup-wrap {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s, visibility .3s;
}

.popup-wrap.is-show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.popup-wrap .popup-overlay {
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background: rgba(44, 42, 41, 0.75);
}

.popup-wrap .popup-box {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    z-index: 2;
    background: #fff;
    width: 73.6rem;
    border-radius: .8rem;
}

.popup-wrap .popup-body {
    padding: 3.2rem 3.2rem 2.4rem;
}

.popup-wrap .popup-title {
    font-size: 2rem;
    line-height: 1.3;
    font-weight: bold;
    margin-bottom: 1.6rem;
}

.popup-wrap .popup-text {
    font-size: 1.4rem;
    line-height: 1.5;
    margin-bottom: 1.6rem;
}

.popup-wrap .popup-body img {
    width: 100%;
}

.popup-wrap .popup-button {
    padding: 1.6rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .8rem;
}

.popup-wrap .popup-cancel {
    text-decoration: underline;
    font-size: 1.4rem;
    line-height: 1.3;
    font-weight: normal;
    width: 10rem;
    height: 4.4rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.popup-wrap .popup-links {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    max-width: 25.6rem;
    height: 4.4rem;
    border-radius: 2.2rem;
    background: #10069F;
    border: .1rem solid #10069F;
    color: #fff;
    font-size: 1.6rem;
    line-height: 1.3;
    font-weight: bold;
}

.popup-wrap .popup-close {
    position: absolute;
    width: 2.4rem;
    height: 2.4rem;
    right: .8rem;
    top: .8rem;
    z-index: 2;
    background: url(../img/common/close.svg) center center no-repeat;
    background-size: cover;
    cursor: pointer;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .popup-wrap .popup-cancel:hover {
        text-decoration: none;
    }

    .popup-wrap .popup-links:hover {
        text-decoration: none;
        color: #10069F;
        background: #fff;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {

    .popup-wrap .popup-box {
        width: 33.5rem;
        padding: 3.2rem 1.6rem 2.4rem;
    }

    .popup-wrap .popup-body {
        padding: 0;
    }

    .popup-wrap .popup-title {
        font-size: 1.8rem;
    }

    .popup-wrap .popup-button {
        padding: 0;
        display: block;
        text-align: center;
        margin-top: 1.6rem;
    }

    .popup-wrap .popup-cancel {
        margin-top: 1.6rem;
        width: auto;
        height: auto;
    }

    .popup-wrap .popup-close {
        right: .4rem;
        top: .4rem;
    }
}


/* !詳細ページ
---------------------------------------------------------- */
.content-detail {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 3rem 0 8rem;
}

.content-detail .side-wrap {
    width: 42%;
    position: sticky;
    top: 14.1rem;
}

.content-detail .side-wrap .page-title {
    font-size: 1.4rem;
    line-height: 1.3;
    margin-top: 1.6rem;
}


.gallery-swiper .swiper-fade .swiper-slide {
    -webkit-transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, -webkit-transform !important;
    transition-property: opacity, transform !important;
    transition-property: opacity, transform, -webkit-transform !important;
    pointer-events: none;
}

.gallery-swiper .swiper-thumb {
    margin-top: 1.6rem;
}

.gallery-swiper .swiper-thumb .swiper-wrapper .swiper-slide .thumb-media {
    width: 100%;
    padding-top: 62.1%;
    position: relative;
    cursor: pointer;
}

.gallery-swiper .swiper-thumb .swiper-wrapper .swiper-slide .thumb-media:before {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    background: rgba(0, 0, 0, 0.7);
    content: '';
    opacity: 0;
    transition: .3s;
}

.gallery-swiper .swiper-thumb .swiper-wrapper .swiper-slide.swiper-slide-thumb-active .thumb-media:before{
    opacity: 1;
}

.gallery-swiper .swiper-thumb .swiper-wrapper .swiper-slide .thumb-media img {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    z-index: 1;
    max-width: 100%;
    max-height: 100%;
}

.gallery-swiper .swiper-button-prev,
.gallery-swiper .swiper-button-next {
    width: 4rem;
    height: 4rem;
    margin: 0;
    top: 50%;
    transform: translateY(-50%);
    opacity: .7;
}

.gallery-swiper .swiper-button-prev {
    left: .8rem;
}

.gallery-swiper .swiper-button-next {
    right: .8rem;
}

.gallery-swiper .swiper-button-prev:after,
.gallery-swiper .swiper-button-next:after {
    width: 4rem;
    height: 4rem;
    position: absolute;
    content: '';
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    opacity: 1;
    background: url(../img/common/arrow_slider.svg) center center no-repeat;
    background-size: cover;
    transition: .3s;
}

.gallery-swiper .swiper-button-prev:after {
    transform: translateY(-50%) scaleX(-1);
}


.gallery-swiper .swiper-button-next.swiper-button-disabled, 
.gallery-swiper .swiper-button-prev.swiper-button-disabled {
    opacity: 0;
}

.content-detail .main-wrap {
    width: 52.8%;
}

.page-area-review {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 2.4rem;
}

.page-area a {
    font-size: 1.6rem;
    display: block;
    line-height: 1.4;
    font-weight: bold;
    color: #3064D5;
}

.page-area a small {
    display: block;
    font-weight: normal;
    font-size: 1.2rem;
    text-decoration: none;
}

.page-area a span {
    display: block;
    text-decoration: underline;
}

.page-review a {
    font-size: 1.4rem;
    display: block;
    line-height: 1.4;
    color: #3064D5;
    padding-left: 2rem;
    background: url(../img/common/icon_review.svg) left center no-repeat;
    background-size: 1.6rem auto;
}

.page-head .page-title {
    font-size: 2rem;
    line-height: 1.4;
    font-weight: bold;
    margin-bottom: 1.6rem;
}

.page-head .page-detection {
    font-size: 1.6rem;
    line-height: 1.3;
    color: #DF2015;
    margin-bottom: 2.2rem;
}

.page-head .page-tags {
    margin-bottom: 2.4rem;
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    align-items: center;
}

.page-head .page-tags span {
    font-size: 1.4rem;
    line-height: 1.5;
    color: #697180;
    padding: .4rem .8rem;
    border-radius: .4rem;
    background: #E9ECF2;
}

.page-head .page-price {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    font-size: 1.6rem;
    line-height: 1.4;
    color: #2C2A29;
    margin-bottom: 2.4rem;
}

.page-head .page-price .page-price__price .price-price {
    font-size: 2rem;
    line-height: 1.3;
    color: #DF0D00;
    font-weight: bold;
}

.page-head .page-price .page-price__price .price-price__number {
    font-size: 5.6rem;
}

.page-head .page-price .page-price__stock {
    font-size: 1.6rem;
    line-height: 1.4;
    color: #2C2A29;
}

.page-head .page-donation-wrap {
    margin-bottom: 1.6rem;
    position: relative;
    height: 5.7rem;
    width: 100%;
}

.page-head .page-donation {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
}

.page-head .page-links {
    text-align: right;
}

.page-tabs {
    margin-top: 3.2rem;
}

.page-tabs .page-tabs__buttons {
    display: flex;
    gap: 1.8rem;
}

.page-tabs .page-tabs__buttons li {
    width: 100%;
}

.page-tabs .page-tabs__buttons a {
    width: 100%;
    height: 5.4rem;
    border-bottom: .4rem solid #E9ECF2;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 1.3;
    color: #939DAD;
    font-weight: bold;
}

.page-tabs .page-tabs__buttons a span {
    font-size: 1.2rem;
}

.page-tabs .page-tabs__buttons a.is-active {
    color: #2C2A29;
    border-color: #10069F;
}

.page-tabs__box {
    padding-top: 3.2rem;
    font-size: 1.4rem;
    line-height: 1.6;
}

.page-tabs__box .page-tabs-top {
    margin-bottom: 3.2rem;
}

.page-tabs__box .page-tabs-top p + p {
    margin-top: 1.6rem;
}

.page-tabs-images {
    margin-bottom: 4rem
}

.page-tabs-images figure,
.page-tabs-images img {
    display: block;
    width: 100%;
    line-height: 1;
}

.page-tabs-images figure + figure,
.page-tabs-images p + p,
.page-tabs-images li + li,
.page-tabs-images img + img  {
    margin-top: 1.6rem;
}

.page-tabs-difference {
    margin-bottom: 4rem;
    border: .1rem solid #CF3700;
    background: #FFF7F7;
    border-radius: .8rem;
    padding: 3.2rem 1.6rem;
}

.page-tabs-difference .difference-head {
    margin-bottom: 2.4rem;
}

.page-tabs-difference .difference-head .difference-head__title {
    font-size: 1.8rem;
    line-height: 1.4;
    font-weight: bold;
    color: #CF3700;
}

.page-tabs-difference .difference-head .difference-head__tag {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.page-tabs-difference .difference-head .difference-head__tag li {
    border: .1rem solid #CF3700;
    border-radius: 1.3rem;
    font-size: 1.2rem;
    line-height: 1.4;
    padding: .4rem .8rem;
    color: #CF3700;
    font-weight: bold;
}

.page-tabs-difference .difference-body .difference-body__title {
    font-size: 1.2rem;
    line-height: 1.4;
    font-weight: bold;
}

.page-tabs-difference .difference-body .difference-body__inner {
    margin-top: 1.6rem;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.page-tabs-difference .difference-body .difference-body__inner .image-wrap {
    width: 36.3%;
    line-height: 1;
}

.page-tabs-difference .difference-body .difference-body__inner .image-wrap img {
    width:100%;
    border-radius: .4rem;
}

.page-tabs-difference .difference-body .difference-body__inner .box-wrap {
    width: 60.48%;
    font-size: 1.4rem;
    line-height: 1.4;
}

.page-tabs-difference .difference-foot {
    margin-top: 2.4rem;
    padding-top: 1.6rem;
    font-size: 1.4rem;
    line-height: 1.4;
    border-top: .1rem solid #D9D9D9;
}

.page-tabs-box {
    margin-bottom: 2.4rem;
    background: #F6F6F6;
    width: 100%;
    border-radius: .8rem;
    padding: 3.2rem 1.6rem;
}

.page-tabs-box .page-tabs-title {
    font-size: 2.4rem;
    line-height: 1.4;
    margin-bottom: 3.2rem;
    font-weight: bold;
}

.page-tabs-box .page-tabs-item {
    font-size: 1.4rem;
    line-height: 1.4;
}

.page-tabs-box .page-tabs-item a {
    color: #3064D5;
    margin: 0 .4rem;
}


.page-tabs-box .page-tabs-item + .page-tabs-item {
    margin-top: 2.4rem;
    border-top: .1rem solid #D9D9D9;
    padding-top: 2.4rem;
}

.page-tabs-box .page-tabs-item dt {
    border: .1rem solid #2C2A29;
    border-radius: .2rem;
    font-size: 1.4rem;
    line-height: 1.4;
    font-weight: bold;
    padding: .4rem .8rem;
    margin-bottom: 1.6rem;
    display: inline-flex;
}

.page-tabs-tags {
    margin-bottom: 1.6rem;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.page-tabs-tags li {
    font-size: 1.4rem;
    line-height: 1.4;
    color: #697180;
    border-radius: .2rem;
    padding: 0 .4rem;
    background: #C0C5CC;
}

.page-tabs-last {
    border: .1rem solid #DDDDDD;
    border-radius: .8rem;
    background: #fff;
    padding: 2.4rem 1.6rem;
    font-size: 1.4rem;
    line-height: 1.4;
}

.page-tabs-last .page-tabs-title {
    font-size: 1.4rem;
    line-height: 1.4;
    font-weight: bold;
    margin-bottom: 1.6rem;
}

.page-tabs-last a {
    color: #3064D5;
}

.review-ctrl {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2.4rem;
}

.review-image-show label {
    display: inline-flex;
    position: relative;
    cursor: pointer;
}

.review-image-show label input {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    opacity: 0;
}

.review-image-show label span {
    display: block;
    padding: 0 0 0 3.2rem;
    font-size: 1.4rem;
    line-height: 1.5;
    position: relative;
}

.review-image-show label span:before,
.review-image-show label span:after {
    width: 2.4rem;
    height: 2.4rem;
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.review-image-show label span:before {
    background: url(../img/common/icon_checkbox_off.svg) center center no-repeat;
    background-size: cover;
}

.review-image-show label span:after {
    background: url(../img/common/icon_checkbox_on.svg) center center no-repeat;
    background-size: cover;
    opacity: 0;
    transition: opacity .3s;
}

.review-image-show label input[type=checkbox]:checked + span:after {
    opacity: 1;
}

.review-ctrl .order-select {
    width: 9rem;
}

.review-ctrl .order-select select {
    width: 100%;
    height: 3.9rem;
    border: .1rem solid #D1D1D1;
    border-radius: .4rem;
    padding: 0 3rem 0 1rem;
    font-size: 1.2rem;
    color: #000;
    background: url(../img/common/arrow_down_b.svg) right 1rem center no-repeat;
    background-size: 1.6rem auto;
    transition: .2s;
    cursor: pointer;
}

.review-list {

}

.js-readmore-item {
    display: none;
}

.js-readmore-item.is-show {
    display: block;
}

.review-list .review-list__item {
    border: .1rem solid #DDDDDD;
    border-radius: .8rem;
    padding: 1.6rem;
}

.review-list .review-list__item + .review-list__item {
    margin-top: 1.6rem;
}

.review-list .review-title {
    font-size: 1.4rem;   
    line-height: 1.6;
    font-weight: bold;
    margin-bottom: .8rem;
}

.review-list .review-body {
    font-size: 1.4rem;
    line-height: 1.6;
    margin-bottom: .8rem;
}

.review-list .review-body .review-body__image {
    margin-bottom: .8rem;
    display: none;
}

.review-list .review-body .review-body__image ul {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}

.review-list .review-body .review-body__image li {
    line-height: 1;
    width: 8rem;
}

.review-list .review-body .review-body__image li a {
    display: block;
    width: 100%;
    padding-top: 100%;
    border-radius: .8rem;
    overflow: hidden;
    position: relative;
}

.review-list .review-body .review-body__image li a img {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.review-list .review-foot {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.6rem;
    font-size: 1rem;
    line-height: 1.6;
    color: #697180;
}

.review-showmore {
    text-align: center;
    line-height: 1;
    margin-top: 1.6rem;
}

.review-showmore a {
    display: inline-flex;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #3064D5;
}

.type-selector {
    margin: 1.6rem 0;
}

.type-selector__label {
    display: block;
    margin-bottom: .4rem;
    font-size: 1.2rem;
    line-height: 1.4;
    color: #2C2A29;
    font-weight: bold;
}

.type-selector__select {
    width: 100%;
    height: 4.8rem;
    border: .1rem solid #D1D1D1;
    border-radius: .8rem;
    padding: 0 3.6rem 0 1.6rem;
    font-size: 1.4rem;
    color: #000;
    background: url(../img/common/arrow_down_b.svg) right 1rem center no-repeat;
    background-size: 1.6rem auto;
    cursor: pointer;
    transition: .2s;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .gallery-swiper .swiper-thumb .swiper-wrapper {
        flex-wrap: wrap;
        gap: .8rem;
    }

    .gallery-swiper .swiper-thumb .swiper-wrapper .swiper-slide {
        width: calc((100% - 2.4rem) / 4) !important;
    }

    .page-area a:hover,
    .page-area a:hover span {
        text-decoration: none;
    }

    .page-tabs .page-tabs__buttons a:hover {
        color: #2C2A29;
        border-color: #10069F;
        text-decoration: none;
    }

    .page-donation.is-hide {
        display: block;
    }

    .review-ctrl .order-select select:hover {
        border-color: #000;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .content-detail {
        display: block;
        padding: 0 0 4rem;
    }

    .content-detail .side-wrap {
        width: 100%;
        position: relative;
        top: 0;
    }

    .gallery-swiper .swiper-main {
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
    }

    .gallery-swiper .swiper-thumb .swiper-slide {
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }

    .gallery-swiper .swiper-thumb .swiper-wrapper .swiper-slide .thumb-media {
        width: 10rem;
        height: 6.2rem;
    }

    .gallery-swiper .swiper-button-prev {
        left: 1.6rem;
    }

    .gallery-swiper .swiper-button-next {
        right: 1.6rem;
    }


    .gallery-swiper .swiper-button-next.swiper-button-disabled, 
    .gallery-swiper .swiper-button-prev.swiper-button-disabled {
        opacity: 0;
    }

    .content-detail .main-wrap {
        width: 100%;
        margin-top: 3.2rem;
    }

    .page-area-review {
        margin-bottom: 1.6rem;
    }

    .page-head .page-title {
        line-height: 1.5;
        margin-bottom: 1.2rem;
    }

    .page-head .page-detection {
        line-height: 1.5;
        margin-bottom: 1.6rem;
    }

    .page-head .page-tags {
        margin-bottom: 1.8rem;
    }

    .page-head .page-price {
        display: block;
        margin-bottom:.8rem;
    }

    .page-head .page-price .page-price__price .price-price {
        font-size: 1.6rem;
        line-height: 1.5;
    }

    .page-head .page-price .page-price__price .price-price__number {
        font-size: 3.6rem;
    }

    .page-head .page-price .page-price__stock {
        text-align: right;
    }

    .page-head .page-links {
        text-align: center;
    }

    .page-tabs .page-tabs__buttons a {
        height: 5.7rem;
        font-size: 1.6rem;
    }

    .page-tabs-images {
        margin-bottom: 3.2rem
    }

    .page-tabs-images figure + figure,
    .page-tabs-images p + p,
    .page-tabs-images li + li,
    .page-tabs-images img + img  {
        margin-top: .8rem;
    }

    .page-tabs-difference {
        margin-bottom: 3.6rem;
        padding: 2.4rem 1.6rem;
    }

    .page-tabs-difference .difference-head {
        margin-bottom: 1.2rem;
    }

    .page-tabs-difference .difference-head .difference-head__title {
        font-size: 1.6rem;
    }

    .page-tabs-difference .difference-head .difference-head__tag {
        margin-top: 1.2rem;
    }

    .page-tabs-difference .difference-body .difference-body__title {
        font-size: 1.4rem;
    }

    .page-tabs-difference .difference-body .difference-body__inner {
        display: block;
    }

    .page-tabs-difference .difference-body .difference-body__inner .image-wrap {
        width: 100%;
    }

    .page-tabs-difference .difference-body .difference-body__inner .box-wrap {
        width: 100%;
        margin-top: .8rem;
    }

    .page-tabs-difference .difference-foot {
        margin-top: 1.6rem;
    }

    .page-tabs__box {
        font-size: 1.6rem;
    }

    .page-tabs-box {
        margin: 0 -1.6rem;
        margin-bottom: 2.4rem;
        width: calc(100% + 3.2rem);
        border-radius: 0;
    }

    .page-tabs-box .page-tabs-title {
        font-size: 2rem;
    }

    .page-tabs-box .page-tabs-item {
        font-size: 1.6rem;
    }

    .page-tabs-box .page-tabs-item dt {
        font-size: 1.6rem;
    }

    .page-tabs-last {
        font-size: 1.6rem;
    }

    .page-tabs-last .page-tabs-title {
        font-size: 1.6rem;
    }

    .page-donation.is-scroll {
        position: fixed;
        left: 0;
        bottom: 0;
        z-index: 997;
        width: 100%;
        padding: 1.2rem 1.6rem;
        background: rgba(255, 255, 255, 0.7);
        backdrop-filter: blur(.8rem);
        margin-bottom: 0;
    }
}


/* !寄附のみページ
---------------------------------------------------------- */
.donation-city {
    width: 100%;
    padding: 1.6rem 0 6.6rem;
}

.donation-city .donation-city__image {
    line-height: 1;
    margin-bottom: 2.4rem;
}

.donation-city .donation-city__image img {
    width: 100%;
}

.donation-city .donation-city__title {
    text-align: center;
    font-size: 2.4rem;
    line-height: 1.125;
    font-weight: bold;
    margin-bottom: 2.4rem;
}
    .donation-city .donation-city__title a {
        color: #3064D5;
    }

.donation-city .donation-city__title rt {
    font-size: 1.2rem;
    font-weight: normal;
    margin-bottom: .2rem;
}

.donation-city .donation-city__box {
    border-radius: .8rem;
    border: .1rem solid #ddd;
    padding: 3.2rem 1.6rem 3.2rem;
    text-align: center;
}

.donation-city .donation-city__box .donation-title {
    font-size: 1.8rem;
    line-height: 1.5;
    font-weight: bold;
    margin-bottom: 2.4rem;
}

.donation-city .donation-city__box .donation-input {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    font-size: 1.6rem;
    line-height: 1.5;
    margin-bottom: 2.4rem;
}

.donation-city .donation-city__box .donation-input input {
    border-radius: .8rem;
    border: .1rem solid #D1D1D1;
    background: #F3F3F3;
    padding: 0 2.2rem;
    font-size: 1.6rem;
    line-height: 1.5;
    width: 20rem;
    height: 6.2rem;
}

.donation-city .donation-city__box .donation-links {
    width: 100%;
    max-width: 52.8rem;
    margin: 0 auto;
}

/*** hover ***/
@media screen and (min-width: 768px) {}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .donation-city {
        width: 100%;
        padding: .8rem 0 4rem;
    }

    .donation-city .donation-city__image {
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
        margin-bottom: 1.6rem;
    }

    .donation-city .donation-city__title {
        font-size: 2rem;
        line-height: 1.35;
        margin-bottom: 1.6rem;
    }

    .donation-city .donation-city__title a {
        color: #3064D5;
        text-decoration: underline;
    }


    .donation-city .donation-city__title rt {
        font-size: 1rem;
    }

    .donation-city .donation-city__box .donation-input input {
        padding: 0 2.4rem;
        width: 20rem;
    }
}


/* !自治体一覧
---------------------------------------------------------- */
.area-wrap {
    padding: 0 0 6rem;
    width: 100%;
    max-width: 90rem;
    margin: 0 auto;
}

.page-heading {
    font-size: 3rem;
    line-height: 1.5;
    font-weight: bold;
    padding: 2.2rem 0;
}

.area-wrap .area-item {
    border: .1rem solid #DDDDDD;
    border-radius: .8rem;
    overflow: hidden;
}

.area-wrap .area-item + .area-item {
    margin-top: 1.6rem;
}

.area-wrap .area-heading .toggle-button {
    cursor: pointer;
    position: relative;
    padding: 2.25rem 4.2rem 2.25rem 3rem;
    font-size: 2rem;
    line-height: 1.35;
    font-weight: bold;
    left: .03em;
}

.area-wrap .area-heading .toggle-button:before {
    width: .4rem;
    top: 1.6rem;
    bottom: 1.6rem;
    position: absolute;
    left: 1.6rem;
    content: '';
}

.area-wrap .area-heading .toggle-button:after {
    position: absolute;
    right: 1.6rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.6rem;
    height: 1.6rem;
    background: url(../img/common/arrow_down_b.svg) center center no-repeat;
    background-size: cover;
    content: '';
    z-index: 2;
    transition: .2s;
}


.area-wrap .area-heading .toggle-button.is-open:after {
    transform: translateY(-50%) scaleY(-1);
}

.area-wrap .area-body {
    display: none;
}

.area-wrap .area-tabs {
    border-top: .1rem solid #ddd;
}

.area-tabs .area-tabs__links {
    display: flex;
    background: #F1F4F5;
    border-bottom: .1rem solid #ddd;
}

.area-tabs .area-tabs__links li {
    flex: 1;
}

.area-tabs .area-tabs__links li + li {
    border-left: .1rem solid #ddd;
}

.area-tabs .area-tabs__links li a {
    display: flex;
    width: 100%;
    height: 5.1rem;
    justify-content: center;
    align-items: center;
    font-size: 1.6rem;
    line-height: 1.5;
    font-weight: bold;
    color: #2C2A29;
    transition: .2s;
}

.area-tabs .area-tabs__links li a.is-active {
    color: #fff;
    text-decoration: underline;
}

.area-wrap .area-item.area01 .area-heading .toggle-button:before,
.area-wrap .area-item.area01 .area-tabs .area-tabs__links li a.is-active {
    background: #94ACDA;
}

.area-wrap .area-item.area02 .area-heading .toggle-button:before,
.area-wrap .area-item.area02 .area-tabs .area-tabs__links li a.is-active {
    background: #7EBAD3;
}

.area-wrap .area-item.area03 .area-heading .toggle-button:before,
.area-wrap .area-item.area03 .area-tabs .area-tabs__links li a.is-active {
    background: #91C5B1;
}

.area-wrap .area-item.area04 .area-heading .toggle-button:before,
.area-wrap .area-item.area04 .area-tabs .area-tabs__links li a.is-active {
    background: #B5C46E;
}

.area-wrap .area-item.area05 .area-heading .toggle-button:before,
.area-wrap .area-item.area05 .area-tabs .area-tabs__links li a.is-active {
    background: #DEB353;
}

.area-wrap .area-item.area06 .area-heading .toggle-button:before,
.area-wrap .area-item.area06 .area-tabs .area-tabs__links li a.is-active {
    background: #EF9065;
}

.area-wrap .area-item.area07 .area-heading .toggle-button:before,
.area-wrap .area-item.area07 .area-tabs .area-tabs__links li a.is-active {
    background: #E49A97;
}

.area-wrap .area-item.area08 .area-heading .toggle-button:before,
.area-wrap .area-item.area08 .area-tabs .area-tabs__links li a.is-active {
    background: #C989A7;
}

.area-wrap .area-item.area09 .area-heading .toggle-button:before,
.area-wrap .area-item.area09 .area-tabs .area-tabs__links li a.is-active {
    background: #B1595A;
}

.area-wrap .area-tabs__box {
    width: 100%;
    padding: 2.4rem;
}

.area-wrap .area-tabs__box .area-city-list {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1.6rem 2.4rem;
}

.area-wrap .area-tabs__box .area-city-list a {
    color: #3064D5;
    font-size: 1.6rem;
    line-height: 1.3125;
}

.area-wrap .area-tabs__box .area-city-list a small {
    font-size: 1rem;
    line-height: 1.2;
    display: block;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .area-tabs .area-tabs__links li a:hover {
        color: #fff;
        text-decoration: underline;
    }

    .area-wrap .area-item.area01 .area-tabs .area-tabs__links li a:hover {
        background: #94ACDA;
    }

    .area-wrap .area-item.area02 .area-tabs .area-tabs__links li a:hover {
        background: #7EBAD3;
    }

    .area-wrap .area-item.area03 .area-tabs .area-tabs__links li a:hover {
        background: #91C5B1;
    }

    .area-wrap .area-item.area04 .area-tabs .area-tabs__links li a:hover {
        background: #B5C46E;
    }

    .area-wrap .area-item.area05 .area-tabs .area-tabs__links li a:hover {
        background: #DEB353;
    }

    .area-wrap .area-item.area06 .area-tabs .area-tabs__links li a:hover {
        background: #EF9065;
    }

    .area-wrap .area-item.area07 .area-tabs .area-tabs__links li a:hover {
        background: #E49A97;
    }

    .area-wrap .area-item.area08 .area-tabs .area-tabs__links li a:hover {
        background: #C989A7;
    }

    .area-wrap .area-item.area09 .area-tabs .area-tabs__links li a:hover {
        background: #B1595A;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .area-wrap {
        padding: 0 0 4rem;
    }

    .page-heading {
        font-size: 2.6rem;
        padding: 1.75rem 0;
    }

    .area-wrap .area-item + .area-item {
        margin-top: 1.2rem;
    }

    .area-wrap .area-heading .toggle-button {
        padding: 1.85rem 4.2rem 1.85rem 3rem;
        font-size: 1.8rem;
        line-height: 1.5;
    }

    .area-wrap .area-heading .toggle-button:before {
        top: 1.2rem;
        bottom: 1.2rem;
    }

    .area-wrap .area-tabs {
        display: grid;
        grid-template-columns: 8.3rem calc(100% - 8.3rem);
        border-top: .1rem solid #ddd;
    }

    .area-tabs .area-tabs__links {
        display: block;
        border-bottom: 0;
    }

    .area-tabs .area-tabs__links li {
        width: 100%;
    }

    .area-tabs .area-tabs__links li + li {
        border-top: .1rem solid #ddd;
        border-left: 0;
    }

    .area-tabs .area-tabs__links li a {
        height: 5.9rem;
    }

    .area-wrap .area-tabs__box {
        padding: 1.6rem;
    }

    .area-wrap .area-tabs__box .area-city-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.6rem .8rem;
    }

    .area-wrap .area-tabs__box .area-city-list a {
        font-size: 1.6rem;
        line-height: 1.3125;
    }

    .area-wrap .area-tabs__box .area-city-list a small {
        font-size: .9rem;
    }
}


/* !特集一覧
---------------------------------------------------------- */
.feature-wrap {
    padding: 0 0 6.4rem;
}

.feature-wrap .feature-item + .feature-item {
    margin-top: 4rem;
}

.anchor-links {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-bottom: 4rem;
}

.anchor-links li {
    min-width: 17.6rem;
}

.anchor-links li a {
    display: inline-flex;
    gap: .8rem;
    align-items: center;
    font-size: 1.8rem;
    line-height: 1.5;
    color: #3064D5;
}

.anchor-links li a:after {
    width: 1.6rem;
    height: 1.6rem;
    content: '';
    background: url(../img/common/arrow_down_blue.svg) center center no-repeat;
    background-size: cover;
}

.feature-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4rem 1.6rem;
}

.feature-list .feature-list__item {
    display: block;
    width: 100%;
}

.feature-list .feature-list__item .image {
    display: block;
    width: 100%;
    padding-top: 55.72%;
    border-radius: .8rem;
    overflow: hidden;
    position: relative;
}

.feature-list .feature-list__item .image img {
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
    object-fit: cover;
    height: 100%;
    object-fit: cover;
    transition: .2s;
}

.feature-list .feature-list__item .title {
    font-size: 1.4rem;
    line-height: 1.92857;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    margin-top: .8rem;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .feature-list .feature-list__item:hover .image img {
        opacity: .7;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .feature-wrap {
        padding: 0 0 4rem;
    }

    .anchor-links {
        margin-bottom: 3.2rem;
    }

    .anchor-links li {
        min-width: 0;
        width: calc((100% - .8rem) / 2);
    }

    .feature-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 2.4rem 1.6rem;
    }
}


/* !heading
---------------------------------------------------------- */
.heading-large {
    font-size: 2rem;
    line-height: 1.35;
    letter-spacing: .03em;
    font-weight: bold;
    padding-bottom: 1.6rem;
    border-bottom: .1rem solid #D9D9D9;
    margin-bottom: 2.4rem;
}

.heading-medium {
    font-size: 2rem;
    line-height: 1.3;
    margin-bottom: 2.4rem;
}

/*** hover ***/
@media screen and (min-width: 768px) {}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .heading-large {
        font-size: 1.8rem;
        line-height: 1.5;
        padding-bottom: .8rem;
        margin-bottom: 1.6rem;
    }

    .heading-medium {
        font-size: 1.8rem;
        margin-bottom: 1.6rem;
    }
}


/* !ランキング
---------------------------------------------------------- */
.ranking-wrap {
    padding: 2.4rem 0 4rem;
}

.ranking-wrap .ranking-box {
    padding: 4rem 0;
    overflow: hidden;
}

.ranking-wrap .ranking-box + .ranking-box {
    border-top: .8rem solid #E9ECF2;
}

.ranking-wrap .ranking-mainimage .image,
.ranking-wrap .ranking-mainimage .image img {
    width: 100%;
    max-width: 90rem;
    margin: auto;
}

.ranking-wrap .ranking-mainimage .description {
    font-size: 1.4rem;
    line-height: 1.6;
    margin-top: 3.2rem;
}

.ranking-list .ranking-swiper {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1.6rem;
}

.ranking-list .ranking-swiper .ranking-item {
    width: 100%;
}

.ranking-list .ranking-swiper .ranking-item:nth-child(1):before {
    background: linear-gradient(136.38deg, #FFE100 0%, #D37B08 97.7%);
}

.ranking-list .ranking-swiper .ranking-item:nth-child(2):before {
    background: linear-gradient(136.38deg, #F0F0F0 0%, #6C6C6C 97.7%);
}

.ranking-list .ranking-swiper .ranking-item:nth-child(3):before {
    background: linear-gradient(136.38deg, #B6644B 0%, #59312A 97.7%);
}

.ranking-box .feature-list {
    gap: 1.6rem;
}

.ranking-box .ranking-box__inner {
    width: 100%;
    padding: 4rem 0;
    overflow: hidden;
    margin: -4rem 0;
}

.ranking-box .ranking-swiper .swiper-slide .ranking-item {
    width: auto;
}

.ranking-wrap .fixed-button {
    position: fixed;
    right: 2.2rem;
    bottom: 8.2rem;
    z-index: 99;
}

.ranking-wrap .fixed-button a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 23.4rem;
    height: 5.9rem;
    border: .2rem solid #fff;
    border-radius: 3rem;
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.45);
    font-size: 1.6rem;
    line-height: 1.5;
    color: #fff;
    font-weight: bold;
    gap: .6rem;
    background: linear-gradient(90deg, #F4C51A 0%, #FF9D1E 100%);
}

.ranking-wrap .fixed-button a:before {
    width: 1.6rem;
    height: 1.6rem;
    content: '';
    background: url(../img/common/icon_crown.svg) center center no-repeat;
    background-size: cover;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .ranking-wrap .fixed-button a:hover {
        opacity: .7;
        text-decoration: none;
    }
}

@media screen and (max-width: 899px) {
    .ranking-list .ranking-swiper {
        grid-template-columns: repeat(4, 1fr);
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .ranking-wrap {
        padding: .8rem 0 0;
    }

    .ranking-wrap .ranking-mainimage .image {
        width: calc(100% + 3.2rem);
        margin: 0 -1.6rem;
    }

    .ranking-wrap .ranking-mainimage .description {
        margin-top: 2.4rem;
    }

    .ranking-list .ranking-swiper {
        grid-template-columns: repeat(2, 1fr);
    }

    .ranking-box .ranking-box__inner {
        width: calc(100% + 3.2rem);
        padding: 4rem 1.6rem;
        margin: -4rem -1.6rem;
    }

    .ranking-box .ranking-swiper .swiper-slide .ranking-item {
        width: 19.2rem;
    }

    .ranking-wrap .fixed-button {
        right: 1.4rem;
        bottom: 7.2rem;
    }
}


/* !自治体詳細
---------------------------------------------------------- */
.area-detail {
    padding: 3.2rem 0 6.4rem;
}

.area-head {
    margin-bottom: 4rem;
}

.area-head .area-head__image {
    width: 100%;
    line-height: 1;
    margin-bottom: 4rem;
}

.area-head .area-head__image img {
    width: 100%;
}

.area-head .area-head__title {
    display: flex;
    gap: 1.4rem;
    align-items: flex-start;
    margin-bottom: 1.6rem;
}

.area-head .area-head__title .area-logo {
    width: 8rem;
    height: 8rem;
    border-radius: .8rem;
    line-height: 1;
    overflow: hidden;
    border: .1rem solid #DDDDDD;
}

.area-head .area-head__title .area-logo img {
    width: 100%;
}

.area-head .area-head__title .area-title {
    font-size: 2rem;
    line-height: 1.35;
    font-weight: bold;
    display: flex;
    align-items: flex-start;
    gap: 1em;
}

.area-head .area-head__title .area-title rt {
    font-size: 1.2rem;
    line-height: 1;
    margin-bottom: .7rem;
}

.area-body .area-body__item + .area-body__item {
    margin-top: 6.4rem;
}

.area-about {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.area-about .area-about__image {
    width: 38.4%;
    border: .1rem solid #ddd;
    border-radius: .8rem;
}

.area-about .area-about__image img {
    width: 100%;
}

.area-about .area-about__message {
    font-size: 1.4rem;
    line-height: 1.6;
    width: 57.97%;
}

.area-about .area-about__message p + p {
    margin-top: 1.6em;
}

.area-gifts-list .ranking-swiper {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2.4rem 1.6rem;
}

.area-gifts-list .ranking-swiper .ranking-item {
    width: 100%;
}

.area-gifts-links {
    margin-top: 4rem;
    text-align: center;
}

.about-message .about-message__item {
    display: flex;
    align-items: flex-start;
    gap: 4rem;
}

.about-message .about-message__item + .about-message__item {
    margin-top: 2rem;
    border-top: .1rem solid #eee;
    padding-top: 2rem;
}

.about-message .about-message-image {
    width: 21.6rem;
    line-height: 1;
    border: .1rem solid #ddd;
    position: relative;
    height: 13.4rem;
}

.about-message .about-message-image img {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    max-width: 100%;
    max-height: 100%;
    z-index: 2;
}

.about-message .about-message-body {
    width: calc(100% - 25.6rem);
    font-size: 1.4rem;
    line-height: 1.6;
}

.about-message .about-message-body p + p {
    margin-top: 1.6em;
}

.about-message .about-message-body h3 {
    font-size: 1.6rem;
    line-height: 1.6875;
    font-weight: bold;
    margin-bottom: .8rem;
}

.area-contact .area-contact__item + .area-contact__item {
    margin-top: 1.2rem;
}

.area-contact .area-contact__item {
    font-size: 1.4rem;
    line-height: 1.6;
}

.area-contact .area-contact__item p + p {
    margin-top: 1.6em;
}

.area-contact .area-contact__item h3 {
    font-weight: bold;
    font-size: 1.4rem;
    line-height: 1.6;
}

.area-contact .area-contact__item p a:not([href^="tel:"]) {
    color: #3064D5;
    text-decoration: underline;
}

.area-alert {
  border: .1rem solid #e74c3c;
  background-color: #fff5f5;
  border-radius: .4rem;
  padding: 1.6rem;
  margin: 1.6rem 0;
  text-align: center;
}
.area-alert--error .area-alert__message {
  margin: 0 0 .8rem;
  font-weight: bold;
  color: #e74c3c;
  font-size: 2rem;
}
.area-alert__subtext {
  margin: 0;
  color: #e74c3c;
  font-size: 1.4rem;
  line-height: 1.4;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .area-contact .area-contact__item p a:hover {
        text-decoration: none;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .area-detail {
        padding: 1.6rem 0 4rem;
    }

    .area-head {
        margin-bottom: 3.2rem;
    }

    .area-head .area-head__image {
        margin-bottom: 2.4rem;
    }

    .area-head .area-head__title {
        gap: 1.7rem;
    }

    .area-head .area-head__title .area-title {
        line-height: 1.5;
    }

    .area-head .area-head__title .area-title rt {
        margin-bottom: .45rem;
    }

    .area-body .area-body__item + .area-body__item {
        margin-top: 4rem;
    }

    .area-about {
        display: block;
    }

    .area-about .area-about__image {
        width: 100%;
        margin-top: 2.4rem;
    }

    .area-about .area-about__message {
        width: 100%;
    }

    .area-gifts-list .ranking-swiper {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.6rem;
    }

    .area-gifts-links {
        margin-top: 3.2rem;
    }

    .about-message .about-message__item {
        gap: .8rem;
    }

    .about-message .about-message__item + .about-message__item {
        margin-top: 2.4rem;
        padding-top: 2.4rem;
    }

    .about-message .about-message-image {
        width: 13.5rem;
        height: 8.4rem;
    }

    .about-message .about-message-body {
        width: calc(100% - 14.3rem);
        font-size: 1.2rem;
    }

    .about-message .about-message-body h3 {
        font-size: 1.4rem;
        line-height: 1.92857;
    }

    .area-alert{
        text-align: left;
    }
}


/* !links
---------------------------------------------------------- */
.btn-links01 {
    width: 100%;
    border-radius: .8rem;
    background: url(../img/common/icon_blank.svg) right 2.4rem center no-repeat #EA5514;
    background-size: 2.4rem auto;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.8rem;
    line-height: 1.4;
    font-weight: bold;
    color: #fff;
    height: 5.7rem;
}

.btn-links01.is-disabled{
    width: 100%;
    border-radius: .8rem;
    background-color: #ccc;
    color: #fff;
    pointer-events: none;
    cursor: not-allowed;
    opacity: 0.6;
}

.btn-links02 {
    display: inline-flex;
    font-size: 1.2rem;
    line-height: 1.4;
    color: #EA5514;
    font-weight: bold;
    padding: .8rem;
    background: #fff;
    border: .1rem solid #EA5514;
    border-radius: .4rem;
}

.btn-links02.is-disabled{
    color: #939DAD;
    pointer-events: none;
    cursor: not-allowed;
    opacity: 0.6;
    border: .1rem solid #ACB5BF;
    
}

.btn-links03 {
    display: inline-flex;
    font-size: 1.6rem;
    line-height: 1.4;
    color: #3064D5;
    background: url(../img/common/arrow_links01_blue.svg) right 1.2rem center no-repeat #fff;
    background-size: 1.6rem auto;
    border: .1rem solid #3064D5;
    border-radius: .8rem;
    padding: 1.8rem 3.8rem;

}

/*** hover ***/
@media screen and (min-width: 768px) {
    .btn-links01:hover,
    .btn-links02:hover,
    .btn-links03:hover {
        opacity: .7;
        text-decoration: none;
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {}


/* !特集詳細
---------------------------------------------------------- */
.feature-detail {
    padding: 2rem 0 6.4rem;
    max-width: 90rem;
    margin: auto;
}

.feature-head {
    margin-bottom: 4rem;
}

.feature-head .feature-head__title {
    font-size: 3.2rem;
    line-height: 1.5;
    font-weight: bold;
    margin-bottom: 2.4rem;
}

.feature-head .feature-head__image {
    line-height: 1;
    width: 100%;
}

.feature-head .feature-head__image img {
    width: 100%;
}

.feature-body {
    font-size: 1.6rem;
    line-height: 1.6;
}

.feature-body .feature-body__item + .feature-body__item {
    margin-top: 6.4rem;
}

.feature-body .feature-body__subitem + .feature-body__subitem {
    margin-top: 4rem;
}

.feature-body h2 {
    background: #F8F1DC;
    margin-bottom: 3.6rem;
    padding: 2.05rem 2.4rem 2.05rem 3.8rem;
    position: relative;
    font-size: 2.4rem;
    line-height: 1.125;
}

.feature-body h2:before {
    width: .4rem;
    top: 1.6rem;
    bottom: 1.6rem;
    left: 2.4rem;
    position: absolute;
    content: '';
    background: #EF9065;
}

.feature-body h2 small {
    display: block;
    font-size: 1.4rem;
    line-height: 1;
    margin-bottom: .4rem;
}

.feature-body h3 {
    margin-bottom: 4rem;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 3rem;
    line-height: 1.3;
    font-weight: bold;
    gap: 1.6rem;
}

.feature-body h3:before,
.feature-body h3:after {
    min-width: 10rem;
    height: .4rem;
    border-top: .1rem solid #2C2A29;
    border-bottom: .1rem solid #2C2A29;
    content: '';
}

.feature-body p {
    margin-bottom: 1.6em;
}

.feature-body figure {
    display: block;
    line-height: 1;
    margin: 4rem 0;
}

.feature-body figure.radius {
    border-radius: .8rem;
    overflow: hidden;
}

.feature-body figure img {
    width: 100%;
}

.feature-body .anchor-links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.6rem;
}

.feature-body .anchor-links li {
    line-height: 1;
}

.feature-body .anchor-links li a {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 7.2rem;
    border: .1rem solid #2C2A29;
    border-radius: .4rem;
    font-size: 1.6rem;
    line-height: 1.5;
    color: #2C2A29;
    background: url(../img/common/arrow_down_b.svg) right .8rem center no-repeat;
    background-size: 1.6rem auto;
    padding: 1rem 4rem;
    gap: 0;
}

.feature-body .anchor-links li a:after {
    display: none;
}

.feature-body .anchor-links li a small {
    font-size: 1.2rem;
    line-height: 1;
}

.feature-body .feature-box {
    width: 100%;
    box-shadow: 0 .4rem 2rem 0 rgba(0, 0, 0, 0.08);
    padding: 4rem;
    border-radius: .8rem;
    background: #fff;
    display: flex;
    align-items: center;
    margin: 4rem 0;
}

.feature-body .feature-box .image-wrap {
    width: 31rem;
    height: 19.5rem;
    margin-right: 3.2rem;
    overflow: hidden;
    border-radius: .8rem;
}

.feature-body .feature-box .image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.feature-body .feature-box .box-wrap {
    width: calc(100% - 34.2rem);
}

.feature-body .feature-box .city {
    display: block;
    font-size: 1.4rem;
    line-height: 1.5;
    color: #3064D5;
}

.feature-body .feature-box .title {
    font-size: 1.6rem;
    line-height: 1.5;
    margin-top: .4rem;
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.feature-body .feature-box .price-wrap {
    margin-top: 1.2rem;
    display: flex;
    align-items: center;
    gap: 2.4rem;
}

.feature-body .feature-box .price {
    font-size: 1.2rem;
    line-height: 1.3;
    color: #DF0D00;
    font-weight: bold;
}

.feature-body .feature-box .price .price-number {
    font-size: 1.8rem;
    line-height: 1.3;
}

.feature-body .feature-box .review {
    padding-left: 2rem;
    font-size: 1.2rem;
    line-height: 1.33;
    color: #3064D5;
    background: url(../img/common/icon_review.svg) left top no-repeat;
    background-size: 1.6rem auto;
    display: block;
}

.feature-body .feature-box .links-wrap {
    margin-top: 1.3rem;
    text-align: right;
}

.feature-body .feature-box .links-wrap a {
    display: inline-flex;
    width: 30rem;
    height: 5rem;
    background: #3064D5;
    border: .1rem solid #3064D5;
    border-radius: .8rem;
    font-size: 1.6rem;
    line-height: 1.4;
    color: #FFFFFF;
    justify-content: center;
    align-items: center;
}

.feature-body .feature-links {
    text-align: center;
    margin-top: 4rem;
}

.feature-box-list {
    margin: 4rem 0;
}

.feature-box-list .ranking-swiper {
    display: grid;
    gap: 1.6rem;
}

.feature-box-list.column3 .ranking-swiper {
    grid-template-columns: repeat(3, 1fr);
}

.feature-box-list.column5 .ranking-swiper {
    grid-template-columns: repeat(5, 1fr);
}

.feature-box-list .ranking-item {
    width: 100%;
}

.feature-body .column-box {
    margin-bottom: 4rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 4rem;
}

.feature-body .column-box .column-box__image {
    width: 48.2%;
    margin: 0;
    border-radius: .8rem;
    overflow: hidden;
}

.feature-body .column-box .column-box__box {
    width: calc(51.8% - 4rem);
}

.feature-other {
    border-top: .8rem solid #E9ECF2;
    padding: 4rem 0 7.5rem;
}

.feature-other .feature-other__title {
    font-size: 2.4rem;
    line-height: 1.125;
    font-weight: bold;
    margin-bottom: 2.4rem;
}

.feature-other .feature-other__item + .feature-other__item {
    margin-top: 4rem;
}

.feature-other .ranking-swiper .swiper-slide .ranking-item {
    width: auto;
}

.feature-other .feature-other__inner {
    width: 100%;
    padding: 4rem 0;
    overflow: hidden;
    margin: -4rem 0;
}

/*** hover ***/
@media screen and (min-width: 768px) {
    .feature-body .feature-box .links-wrap a:hover {
        text-decoration: none;
        background: #fff;
        color: #3064D5;
    }
}

@media screen and (max-width: 999px) {
    .feature-box-list.column5 .ranking-swiper {
        grid-template-columns: repeat(3, 1fr);
    }
}

/*** スマホ 320px ~ 767px***/
@media screen and (max-width: 767px) {
    .feature-detail {
        padding: 2.4rem 0 4rem;
    }

    .feature-head {
        margin-bottom: 3.2rem;
    }

    .feature-head .feature-head__title {
        font-size: 2.6rem;
        line-height: 1.23;
    }

    .feature-body {
        font-size: 1.4rem;
    }

    .feature-body .feature-body__item + .feature-body__item {
        margin-top: 4rem;
    }

    .feature-body .feature-body__subitem + .feature-body__subitem {
        margin-top: 4rem;
    }

    .feature-body h2 {
        margin-bottom: 4rem;
        padding: 1.7rem 2rem 1.7rem 3.4rem;
        font-size: 2rem;
        line-height: 1.35;
    }

    .feature-body h2:before {
        top: 1rem;
        bottom: 1rem;
        left: 2rem;
    }

    .feature-body h2 small {
        font-size: 1.1rem;
        margin-bottom: .2rem;
    }

    .feature-body h3 {
        font-size: 2.4rem;
        line-height: 1.125;
        gap: .8rem;
    }

    .feature-body h3:before,
    .feature-body h3:after {
        min-width: 5rem;
    }

    .feature-body .anchor-links {
        grid-template-columns: repeat(1, 1fr);
        gap: 1rem;
    }

    .feature-body .anchor-links li {
        width: 100%;
    }

    .feature-body .anchor-links li a {
        min-height: 5.4rem;
        padding: .8rem 4rem;
        gap: .2rem;
    }

    .feature-body .anchor-links li a small {
        font-size: 1rem;
    }

    .feature-body .feature-box {
        padding: 1.6rem;
        display: block;
    }

    .feature-body .feature-box .image-wrap {
        width: 100%;
        height: auto;
        padding-top: 62.9%;
        margin-right: 0;
        position: relative;
        margin-bottom: 1.6rem;
    }

    .feature-body .feature-box .image-wrap img {
        position: absolute;
        left: 0;
        top: 0;
        z-index: 2;
    }

    .feature-body .feature-box .box-wrap {
        width: 100%;
    }

    .feature-body .feature-box .city {
        font-size: 1.2rem;
    }

    .feature-body .feature-box .title {
        font-size: 1.4rem;
        line-height: 1.3;
        -webkit-line-clamp: 2;
    }

    .feature-body .feature-box .price-wrap {
        margin-top: .8rem;
        display: block;
    }

    .feature-body .feature-box .price {
        text-align: right;
        font-size: 1rem;
        display: block;
    }

    .feature-body .feature-box .price .price-number {
        font-size: 1.6rem;
    }

    .feature-body .feature-box .review {
        display: none;
    }

    .feature-body .feature-box .links-wrap {
        margin-top: 1.6rem;
        text-align: center;
    }

    .feature-body .feature-box .links-wrap a {
        width: 100%;
        max-width: 30rem;
    }

    .feature-box-list.column3 .ranking-swiper,
    .feature-box-list.column5 .ranking-swiper {
        grid-template-columns: repeat(2, 1fr);
    }

    .feature-box-list .ranking-swiper .ranking-item .review {
        display: none;
    }

    .feature-body .column-box {
        display: block;
    }

    .feature-body .column-box .column-box__image {
        width: 100%;
        margin-bottom: 4rem;
    }

    .feature-body .column-box .column-box__box {
        width: 100%;
    }

    .feature-other .feature-other__title {
        font-size: 1.8rem;
        line-height: 1.5;
    }

    .feature-other .ranking-swiper .swiper-slide .ranking-item {
        width: 19.2rem;
    }

    .feature-other .feature-other__inner {
        width: calc(100% + 3.2rem);
        padding: 4rem 1.6rem;
        margin: -4rem -1.6rem;
    }
}


/* 20250710 guide */
.header-links li {
	position: relative;
}
.header-links .guide-tab-menu {
	display: none;
	position: absolute;
	left: -9rem;
	top: calc(100% + 1.5rem);
	z-index: 9;
	padding: 1.2rem 0;
	width: 35.8rem;
	background: #fff;
	border-radius: 2rem;
	box-shadow: 0 1px 1px rgba(0,0,0,0.16);
}
.header-links .guide-tab-menu a {
	display: block;
	padding: 1.2rem 2.4rem 1.2rem 2.4rem;
	background: url(../img/guide/icon_link.svg)no-repeat right 2.4rem center;
	color: #16160E;
	font-weight: 500;
	font-size: 1.6rem;
}
.header-links .guide-tab-menu .close {
	display: none;
}

.font-b {
	font-weight: 700;
}

.heading-small {
	margin-bottom: 4rem;
	text-align: center;
	font-size: 4rem;
	font-weight: 700;
}
.heading-small:after {
	content: "";
	display: block;
	margin: 2rem auto 0;
	height: 0.5rem;
	width: 5rem;
	background: #2C2A29;
	border-radius: 1rem;
}

.guide-kv {
	position: relative;
	background: #EAF3F7;
	text-align: center;
}
.guide-kv img {
	max-width: 48.5rem;
}

.guide-wrap {
	padding: 8rem 0 4rem;
}

.guide-tab-ctrl {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.4rem;
	margin-bottom: 8rem;
}
.guide-tab-ctrl li a {
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-right: 2.8rem;
	height: 6.8rem;
	background: url(../img/guide/icon_link_circle.svg)no-repeat right 1.6rem center;
	border: 2px solid;
	border-radius: 0.8rem;
	box-shadow: 0 0.4rem 0.2rem #F7D676;
	text-align: center;
	color: #10069F;
	font-weight: 700;
	font-size: 1.4rem;
}
.guide-tab-ctrl li.is-active a {
	padding-right: 0;
	background: #10069F;
	box-shadow: 0 0 0;
	color: #fff;
    pointer-events: none;
}

.guide-wrap .content-wrap {
	align-items: stretch;
	gap: 0 8rem;
	position: relative;
	padding-bottom: 0;
	margin-bottom: 4rem;
	border-bottom: 0.6rem solid #F4F4F4;
}

.guide-wrap .side-wrap {
	border-right: 0.6rem solid #F4F4F4;
}
.side-contents {
	position: sticky;
	top: 12rem;
	padding: 6rem 0;
}
.side-contents .heading-large {
	margin-bottom: 0;
}
.side-contents ul {
	max-width: calc(100% - 2rem);
}
.side-contents li + li {
	border-top: 1px solid rgba(13,24,15,0.1);
}
.side-contents li a {
	display: block;
	padding: 2rem 0 2rem 1.2rem;
	line-height: 1.35;
	color: #939DAD;
	font-size: 1.4rem;
	font-weight: 500;
}
.side-contents li.current a {
	position: relative;
	color: #10069F;
	font-weight: 700;
}
.side-contents li.current a:before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(50% - 0.3rem);
	width: 0.4rem;
	height: 0.4rem;
	background: #10069F;
	border-radius: 50%;
}

.guide-main-item {
	position: relative;
	margin-bottom: 8rem;
	letter-spacing: 0.72px;
	line-height: 1.6875;
}
.guide-main-item .txt p {
	margin-bottom: 2.4rem;
}
.guide-flow-img {
	margin-bottom: 6rem;
	font-size: 0;
}
.guide-main-item .guide-links {
	margin-top: 3.2rem;
	text-align: center;
}
.guide-main-item .btn-links03 {
	justify-content: center;
	padding: 1.8rem 5.4rem;
	background-image: url(../img/guide/arrow_links_blue.svg);
	background-size: 1.8rem;
	border: 2px solid #10069F;
	line-height: 1;
	color: #10069F;
	font-weight: 700;
}
.guide-main-item .btn-links03.small {
	padding: 1.8rem 4rem;
	min-width: 20rem;
}
.guide-wrap .head {
	overflow: hidden;
	position: relative;
	margin-bottom: 3.2rem;
	padding: 1.6rem 2.4rem;
	background: #F7D676;
	border-radius: 0.8rem;
	line-height: 1.5;
	font-size: 2.4rem;
	font-weight: 700;
}
.guide-wrap .head:before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 0.6rem;
	background: #F66C1C;
}
.guide-wrap .head2 {
	margin-bottom: 3.2rem;
	padding-bottom: 1rem;
	border-bottom: 3px solid #10069F;
	line-height: 1.35;
	color: #10069F;
	font-weight: 700;
	font-size: 2rem;
}

.guide-flow-points li {
	position: relative;
	background: #EAF3F7;
	border-radius: 0.8rem;
}
.guide-flow-points li + li {
	margin-top: 7.5rem;
}
.guide-flow-points li + li:before {
	content: "";
	position: absolute;
	left: 50%;
	top: -5rem;
	transform: translateX(-50%);
	border-top: 2.7rem solid #2C2A29;
	border-left: 5rem solid transparent;
	border-right: 5rem solid transparent;
}
.guide-flow-points li .info {
	padding: 3.2rem;
}
.guide-flow-points li .step {
	position: relative;
	padding: 0.8rem 0 0.8rem 5.6rem;
	margin-bottom: 2.4rem;
	line-height: 1.35;
	font-size: 2rem;
	font-weight: 700;
}
.guide-flow-points li .step .num {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 4.1rem;
	height: 4.3rem;
	background: #66A4F9;
	border-radius: 0.4rem;
	color: #fff;
	font-size: 2.4rem;
	font-weight: 700;
}
.guide-flow-points .example {
	margin-top: 2.4rem;
	text-align: center;
}
.guide-flow-points .links-wrap {
	display: flex;
	justify-content: center;
	gap: 0 1.6rem;
	margin-top: 0;
	padding: 2.4rem;
	background: #BDCED6;
	border-radius: 0 0 0.8rem 0.8rem;
}

.guide-deadline {
	margin: 2.4rem 0 6.4rem;
	padding: 3.2rem;
	border: 2px solid #DDDDDD;
}
.guide-deadline .tit {
	position: relative;
	margin-bottom: 1.8rem;
	padding-left: 1.6rem;
	font-size: 1.8rem;
	font-weight: 700;
}
.guide-deadline .tit:before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	max-height: 3rem;
	border-left: 0.6rem solid #10069F;
}
.guide-deadline .notes li {
	padding-left: 2.4rem;
	text-indent: -2.4rem;
}
.guide-deadline .notes li:before {
	content: "";
	display: inline-block;
	vertical-align: middle;
	margin: 0 1rem;
	width: 0.5rem;
	height: 0.5rem;
	background: #2C2A29;
	border-radius: 50%;
}

.js-toggle-box {
	display: none;
}

.faq-list li {
	padding: 2.4rem;
	border-radius: 0.8rem;
	border: 1px solid #DDDDDD;
}
.faq-list li + li {
	margin-top: 1.6rem;
}
.faq-list .quest {
	cursor: pointer;
	position: relative;
	padding: 0.4rem 3.2rem 0.4rem 4rem;
	background: url(../img/guide/icon_plus.svg)no-repeat right center;
	background-size: 2.4rem;
	line-height: 1.3;
	font-weight: 700;
}
.faq-list .quest.open {
	background-image: url(../img/guide/icon_minus.svg);
}
.faq-list .quest:before {
	content: "Q";
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 3.2rem;
	height: 3.2rem;
	background: #66A4F9;
	border-radius: 50%;
	color: #fff;
	font-size: 2rem;
}
.faq-list .answer {
	margin-top: 1.6rem;
	padding: 1.6rem;
	background: #F0F7FF;
	border-radius: 0.4rem;
	font-size: 1.4rem;
}


/*** hover ***/
@media screen and (min-width: 768px) {
    
    .header-links .guide-tab-menu a:hover {
		background-color: #eee;
		text-decoration: none;
	}
}

@media screen and (max-width: 767px) {
	.header-links li {
		position: static;
	}
	.header-links .guide-tab-menu {
		top: 14.5rem;
		left: auto;
		right: -1.6rem;
		padding: 2.4rem 1.6rem;
		width: 100vw;
		border-radius: 0;
	}
	.header-links .guide-tab-menu a {
		padding: 1.6rem 2.4rem 1.6rem 1.6rem;
		margin-bottom: 0.4rem;
		background-image: url(../img/common/arrow_links01.svg);
		background-position: right 0.8rem center;
		border: 1px solid #ddd;
		border-radius: 0.8rem;
	}
	.header-links .guide-tab-menu .close {
		display: block;
		padding: 0.8rem 2.4rem 0.6rem;
		margin: 2.4rem auto 0;
		max-width: 10.8rem;
		background: url(../img/common/close.svg)no-repeat right 1.6rem center;
		background-size: 1.6rem;
		box-shadow: 0 1px 4px rgba(0,0,0,0.15);
		border-radius: 3rem;
		line-height: 1;
		color: #697180;
	}
	
	.heading-small {
		margin-bottom: 3.2rem;
		font-size: 3rem;
	}
	.heading-small:after {
		width: 4rem;
	}
	
    .guide-kv img {
        max-width: 100%;
    }
	.guide-tab-ctrl {
	    grid-template-columns: repeat(2, 1fr);
	    gap: 1.6rem;
	    margin-bottom: 6.4rem;
	}
	.guide-tab-ctrl li a {
        padding: 0 1.6rem;
	}
	.guide-tab-ctrl li.is-active a {
		padding: 0 1.6rem;
	}
	.guide-tab-ctrl.bottom {
		grid-template-columns: repeat(1, 1fr);
	}
	
	.guide-wrap .content-wrap {
		border: 0;
	}
	.guide-wrap .content-wrap:after {
		content: "";
		display: block;
		margin: 0 -1.6rem;
		border-bottom: 0.6rem solid #F4F4F4;
	}
	
	.guide-main-item {
		margin-bottom: 6.4rem;
	}
	.guide-main-item:last-child {
		margin-bottom: 4rem;
	}
	.guide-flow-img {
	    margin-bottom: 4rem;
	}
	.guide-wrap .head {
	    margin-bottom: 2.4rem;
	    font-size: 2rem;
	}
	.guide-wrap .head2 {
	    margin-bottom: 2.4rem;
	    font-size: 1.8rem;
	}
	
	.guide-flow-points {
		margin: 0 -1.6rem;
		overflow: hidden;
	}
	.guide-flow-points li {
		border-radius: 0;
	}
	.guide-flow-points li + li {
	    margin-top: 6rem;
	}
	.guide-flow-points li + li:before {
		top: -4rem;
	}
	.guide-flow-points li .info {
	    padding: 1.6rem;
	}
	.guide-flow-points li .step {
	    line-height: 1.6875;
	    font-size: 1.6rem;
	}
	.guide-flow-points .links-wrap {
		flex-direction: column;
		align-items: center;
	    gap: 0.8rem 0;
	    padding: 1.6rem;
		border-radius: 0;
	}
	.guide-main-item .btn-links03.small {
	    padding: 1.8rem 4rem;
	    min-width: 30rem;
	}
	
	.guide-deadline {
	    margin: 2.4rem 0 4rem;
	    padding: 2.4rem 1.5rem;
	}
	.guide-deadline .tit {
	    margin-bottom: 1.8rem;
	    font-size: 1.6rem;
	}
	.guide-deadline .tit:before {
		border-left-width: 0.5rem;
	}
	
	.faq-list li {
	    padding: 2.4rem 1.6rem;
	}
	.faq-list .quest {
		
	}
}

.simulation-total .simulation-select {
	align-items: stretch;
	gap: 2.2rem;
}
.simulation-total_column {
	overflow: hidden;
	border-radius: 0.8rem;
	box-shadow: 0 0 1rem rgba(0,0,0,0.45);
}
.simulation-total .title {
	padding: 1.6rem;
	background: #F5F7FA;
	text-align: center;
	font-size: 2rem;
	font-weight: 700;
}
.simulation-total .title .step {
	display: block;
	color: #10069F;
	font-size: 1.4rem;
}

.choose-radio {
	padding: 2.4rem;
}
.choose-radio .choose-radio__income {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.8rem;
}
.choose-radio .choose-radio__composition {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 0.8rem;
}
.choose-radio input {
	display: none;
}
.choose-radio label {
	display: flex;
	align-items: center;
	padding: 0.8rem 0.8rem 0.8rem 4rem;
	height: 100%;
	background: url(../img/guide/icon_radio.svg)no-repeat 0.8rem center #F0F7FF;
	background-size: 2.4rem;
	font-size: 1.4rem;
    cursor: pointer;
}
.choose-radio input:checked + label {
	background-image: url(../img/guide/icon_radio_checked.svg);
}

.simulation-result {
	padding: 3.2rem;
	background: #F8F1DC;
	border-radius: 0.8rem;
	text-align: center;
	display: none;
}
.simulation-total .simulation-result .result-price {
    font-size: 2.1rem;
    color: #DF0D00;
    font-weight: bold;
}
.simulation-total .simulation-result .result-price .result-price__number {
    font-size: 4.8rem;
}
.simulation-total .simulation-result .result-text {
    color: #DF0D00;
    font-weight: bold;
}

.futaba-calculation-table .example {
	padding: 0.6rem 1.6rem;
	background: #F6F6F6;
}
.futaba-calculation-table .example li {
	position: relative;
	padding: 1rem 0 1rem 3.2rem;
	font-size: 1rem;
}
.futaba-calculation-table .example li + li {
	border-top: 1px solid #E7E7E7;
}
.futaba-calculation-table .example li .point {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	color: #6D6D6D;
	font-size: 1.2rem;
}
.futaba-calculation-table .table {
	margin-top: 3.2rem;
}
.futaba-calculation-table .table table {
	width: 100%;
	border: 1px solid #C0C5CC;
}
.futaba-calculation-table .table th {
	padding: 1.6rem;
	width: 20%;
	background: #F5F7FA;
	border: 1px solid #C0C5CC;
	text-align: center;
	font-weight: 700;
	font-size: 1.4rem;
}
.futaba-calculation-table .table td {
	padding: 1.6rem;
	border: 1px solid #C0C5CC;
	font-size: 1.4rem;
}
.futaba-calculation-table .notes {
	line-height: 1.6875;
	letter-spacing: 0.72px;
	margin-top: 2.4rem;
}





/* sp */
@media screen and (max-width: 767px) {
	.simulation-total .simulation-select {
		flex-wrap: wrap;
	}
	.choose-radio {
	    padding: 1.6rem;
	}
	.choose-radio label {
		padding-left: 3rem;
		background-size: 1.8rem;
	}
	
	.futaba-calculation-table .table {
		overflow-y: auto;
	}
	.futaba-calculation-table .table table {
		min-width: 72rem;
	}
	.futaba-calculation-table .table th {
		vertical-align: middle;
	    padding: 1rem;
	}
	.futaba-calculation-table .table td {
	    padding: 1rem;
	}
	
	.futaba-calculation-table .notes {
		font-size: 1.4rem;
	}
}

/* !利用規約
---------------------------------------------------------- */
.policy-wrap {
    padding: 0 0 6.4rem;
}

.policy-wrap .terms-item {
    margin-top: 4rem;
}
.policy-wrap .txt{
    font-size: 1.4rem;
}

.terms-item .head{
    font-size: 1.8rem;
    color:#10069F;
    font-weight: bold;
    margin-bottom: 0.8rem;
}

.terms-item .txt p{
    margin-bottom: .4rem;
}

.terms-item .txt ol {
    list-style: none;          
    counter-reset: terms-item;  
    margin-left: 0;           
}

.terms-item .txt ol li {
    counter-increment: terms-item;
    position: relative;
    padding-left: 1.6rem;     
    margin-bottom: 1.2rem;    
    line-height: 1.8;  
}

.terms-item .txt a {
color:#3064D5;
}

.terms-item .txt ol li::before {
    content: counter(terms-item) ".";
    position: absolute;
    left: 0;
    top: 0;
    font-size: 1.4rem;      
    line-height: 2;      
}