html {
    scroll-behavior: smooth;
}
/* -----------------------------------------------------------
ログインページ
----------------------------------------------------------- */
.page-login-wrap {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-top: 20%;
    margin-bottom: 10%;
}
.page-login-wrap h3 {
    position: absolute;
    top: 27%;
    left: 12%;
    font-size: 1.5vw;
    font-weight: bold;
}
.page-login-area {
    display: flex;
    justify-content: center;
}
.page-login-area main {
    margin-right: 5vw;
    padding: 3vw 2vw;
    width: 30vw;
    border: solid 1px #ccc;
}
.page-login-area main h6 {
    margin-bottom: 2vw;
    font-size: 1.2vw;
    font-weight: bold;
}
.page-login-area main form p input {
    margin-top: 1vw;
    margin-bottom: 1vw;
    padding: 0.7vw 1%;
    width: 26vw;
    background-color: #ccc;
}
#page-login-btn {
    padding: 1vw 0;
    text-align: center;
    font-size: 1.1vw;
    color: #fff;
    background-color: #333;
}
.registration-area {
    padding: 3vw 2vw;
    width: 30vw;
    border: solid 1px #ccc;
}
.registration-area h6 {
    margin-bottom: 2vw;
    font-size: 1.2vw;
    font-weight: bold;
}
.registration-area p {
    margin-bottom: 9.4vw;
    line-height: 1.5;
}
.registration-area a {
    display: inline-block;
    width: 26vw;
    padding: 1vw 0;
    text-align: center;
    font-size: 1.1vw;
    color: #fff;
    background-color: #333;
}
@media screen and (max-width: 767px) {
    .page-login-wrap {
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding-top: 50%;
        margin-bottom: 15%;
        font-size: 3.5vw;
        font-weight: bold;
    }
    .page-login-wrap h3 {
        position: absolute;
        top: 20%;
        left: 50%;
        transform: translateX(-50%);
        font-size: 6vw;
        font-weight: bold;
    }
    .page-login-area {
        display: flex;
        justify-content: center;
        flex-direction: column;
        align-items: center;
    }
    .page-login-area main {
        margin-right: 0;
        padding: 5vw 2vw;
        width: 70vw;
    }
    .page-login-area main h6 {
        margin-bottom: 8vw;
        font-size: 4vw;
    }
    .page-login-area main form p input {
        margin-top: 2.5vw;
        margin-bottom: 5vw;
        padding: 1vw 1%;
        width: 66vw;
    }
    #page-login-btn {
        padding: 2.5vw 0;
        font-size: 4vw;
    }
    .registration-area {
        margin-top: 10%;
        padding: 5vw 2vw;
        width: 70vw;
        border: solid 1px #ccc;
    }
    .registration-area h6 {
        margin-bottom: 8vw;
        font-size: 4vw;
        font-weight: bold;
    }
    .registration-area p {
        margin-bottom: 10vw;
        line-height: 1.5;
    }
    .registration-area a {
        display: inline-block;
        width: 66vw;
        padding: 2.5vw 0;
        font-size: 4vw;
    }
}
/* -----------------------------------------------------------
会員登録ページ
----------------------------------------------------------- */
.page-register-area {
    margin: 15% 0 10% 0;
}
.page-register-area main {
    margin: 0 auto;
    padding: 1.5vw 2vw;
    width: 30vw;
    border: solid 1px #ccc;
}
.page-register-area main form h6 {
    margin: 1.5vw;
    text-align: center;
    font-size: 1.3vw;
    font-weight: bold;
}
.page-register-area main form p input {
    margin-top: 0.5vw;
    margin-bottom: 1.5vw;
    padding: 0.7vw 1%;
    width: 26vw;
    background-color: #efefef;
}
#register-btn {
    margin-top: 1vw;
    width: 26vw;
    padding: 1vw 0;
    text-align: center;
    font-size: 1.1vw;
    color: #fff;
    background-color: #333;
}
@media screen and (max-width: 767px) {
    .page-register-area {
        margin: 30% 0 15% 0;
    }
    .page-register-area main {
        margin: 0 auto;
        padding: 5vw 2vw;
        width: 70vw;
        font-size: 3.5vw;
        font-weight: bold;
    }
    .page-register-area main form h6 {
        margin: 5vw 0 10vw 0;
        text-align: center;
        font-size: 4.5vw;
        font-weight: bold;
    }
    .page-register-area main form p input {
        margin-top: 2vw;
        margin-bottom: 5vw;
        padding: 1vw 1%;
        width: 66vw;
    }
    #register-btn {
        margin-top: 1vw;
        width: 66vw;
        padding: 2.5vw 0;
        font-size: 4vw;
    }
}
/* -----------------------------------------------------------
マイページ
----------------------------------------------------------- */
.page-mypage-area {
    margin-top: 15%;
}
.page-mypage-area main {
    margin: 10% auto;
    padding: 2vw 2vw;
    width: 30vw;
    border: solid 1px #ccc;
}
.page-mypage-area main h6 {
    margin: 1vw 0 2vw 0;
    text-align: center;
    font-size: 1.5vw;
    font-weight: bold;
}
.page-mypage-area main p {
    margin: 1vw 0;
}
.page-mypage-btn-area {
    display: flex;
    flex-direction: column;
}
.page-mypage-btn-area a {
    margin-top: 1.5vw;
    width: 26vw;
    padding: 1vw 0;
    text-align: center;
    font-size: 1vw;
    color: #fff;
    background-color: #333;
}
.page-mypage-btn-area a:first-child {
    background-color: #f89500;
}
.page-mypage-btn-area a:last-child {
    background-color: #545454;
}
@media screen and (max-width: 767px) {
    .page-mypage-area {
        margin-top: 35%;
    }
    .page-mypage-area main {
        margin: 10% auto;
        padding: 5vw 2vw;
        width: 70vw;
        font-size: 3.5vw;
    }
    .page-mypage-area main h6 {
        margin: 1vw 0 10vw 0;
        text-align: center;
        font-size: 5vw;
        font-weight: bold;
    }
    .page-mypage-area main p {
        margin: 3vw 0;
    }
    .page-mypage-btn-area {
        display: flex;
        flex-direction: column;
    }
    .page-mypage-btn-area a {
        margin-top: 5vw;
        width: 66vw;
        padding: 2.5vw 0;
        text-align: center;
        font-size: 3.5vw;
        color: #fff;
        background-color: #333;
    }
    .page-mypage-btn-area a:first-child {
        background-color: #f89500;
    }
    .page-mypage-btn-area a:last-child {
        background-color: #545454;
    }
}
/* -----------------------------------------------------------
ユーザー情報編集ページ
----------------------------------------------------------- */
.page-userinfo-area {
    margin: 15% 0;
}
.page-userinfo-area h2 {
    margin-bottom: 5%;
    text-align: center;
    font-size: 2vw;
    font-weight: bold;
}
.userinfo-wrap {
    margin: 0 auto;
    padding: 2vw 2vw;
    width: 30vw;
    border: solid 1px #ccc;
}
.userinfo-wrap form p {
    display: flex;
    flex-direction: column;
    margin: 3% 0;
}
.userinfo-wrap form input {
    margin-top: 0.5vw;
    margin-bottom: 1.5vw;
    padding: 0.7vw 1%;
    width: 26vw;
    background-color: #efefef;
}
#submit-btn {
    margin-bottom: 0;
    text-align: center;
    font-size: 1.2vw;
    color: #fff;
    background-color: #333;
}
@media screen and (max-width: 767px) {
    .page-userinfo-area {
        margin: 35% 0 15% 0;
        font-size: 3vw;
    }
    .page-userinfo-area h2 {
        margin-bottom: 10%;
        font-size: 5vw;
    }
    .userinfo-wrap {
        margin: 0 auto;
        padding: 5vw 2vw;
        width: 70vw;
    }
    .userinfo-wrap form p {
        display: flex;
        flex-direction: column;
        margin: 3% 0;
    }
    .userinfo-wrap form input {
        margin-top: 0.5vw;
        padding: 2.5vw 0;
        font-size: 3vw;
        width: 66vw;
        background-color: #efefef;
    }
    #submit-btn {
        margin-bottom: 0;
        text-align: center;
        font-size: 3.5vw;
        color: #fff;
        background-color: #333;
    }
}
/* -----------------------------------------------------------
パスワードリセットページ
----------------------------------------------------------- */
.password-reset-area {
    padding: 2vw 1vw;
    margin: 15vw auto 10vw auto;
    width: 25vw;
    border: solid 1px #ccc;
}
.password-reset-area h3 {
    margin-bottom: 3vw;
    text-align: center;
    font-size: 1.3vw;
    font-weight: bold;
}
.password-reset-area p {
    display: flex;
    flex-direction: column;
}
#reset-email-input {
    margin-top: 1vw;
    margin-bottom: 3vw;
    padding: 2% 1%;
    background-color: #efefef;
}
#reset-btn {
    padding: 0.5vw 0;
    text-align: center;
    color: #fff;
    background-color: #333;
}
@media screen and (max-width: 767px) {
    .password-reset-area {
        padding: 5vw 2vw;
        margin: 35vw auto 20vw auto;
        width: 80vw;
    }
    .password-reset-area h3 {
        margin-bottom: 8vw;
        text-align: center;
        font-size: 5vw;
    }
    .password-reset-area p {
        font-size: 3vw;
    }
    #reset-email-input {
        margin-top: 3vw;
        margin-bottom: 8vw;
    }
    #reset-btn {
        padding: 2.5vw 0;
        font-size: 4vw;
    }
}
/* -----------------------------------------------------------
カートページ
----------------------------------------------------------- */
#mep-checkout-overlay {
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.55);
    z-index:9999999;
    display:none;
}
#mep-checkout-modal {
    position: fixed; 
    left: 50%; 
    top: 50%; 
    transform:translate(-50%,-50%);
    width: 50%;  
    max-height: 90%;
    background:#fff; 
    border-radius: 5px; 
    padding: 2vw;
    box-shadow:0 10px 25px rgba(0,0,0,.25);
    z-index:9999999999999; 
    display:none; 
    overflow-y:auto;
}
#mep-checkout-modal h3 {
    margin-top: 1vw;
    font-size: 1.5vw;
    border-bottom:1px solid #ddd;
    padding-bottom: 2px;
}
#mep-checkout-modal .mep-modal-notice {
    margin: 1vw;
    font-size: 1vw; 
    line-height: 1.5; 
}
#mep-checkout-modal table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5vw 0;
    font-size: 0.8vw;
}
#mep-checkout-modal table thead tr th {
    text-align: center;
}
#mep-checkout-modal th,
#mep-checkout-modal td {
    border: 1px solid #ccc;
    padding: 0.5vw;
    vertical-align: middle;
}
#mep-checkout-modal td.num {
    text-align: right;
}
#mep-checkout-modal td.qty {
    text-align: center;
}
#mep-checkout-modal span.opt {
    font-size: 0.8vw;
    color:#555;
}
#mep-checkout-modal span.note {
    color:#666;
    font-size: 0.8vw;
}
#mep-checkout-modal .mep-modal-btns {
    margin-top: 2vw;
    display: flex;
    justify-content: center;
}
#mep-checkout-modal button {
    width: 10vw;
    padding: 0.5vw;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1vw;
}
#mep-checkout-modal button.cancel {
    margin-right: 5vw;
    text-align: center;
    background:#ccc;
}
#mep-checkout-modal button.confirm {
    background:#0073aa;
    color:#fff;
    text-align: center;
}

.page-cart-area {
    margin: 15% auto;
    width: 80vw;
}
.page-cart-area .mep-cart form {
    display: flex;
    align-items: start;
}
.cart-table-area {
    display: flex;
    flex-direction: column;
    margin-right: 1vw;
}
.cart-item {
    display: flex;
    align-items: center;
    margin-bottom: 5%;
    padding: 0.5vw 1vw;
    width: 49vw;
    border-bottom: solid 1px #333;
}
.cart-mobile-area {
    display: flex;
    align-items: center;
}
.cart-mobile-wrap {
    display: flex;
    align-items: center;
}
.cart-img-area {
    margin-right: 1vw;
}
.cart-img-area img {
    width: 8vw;
    height: 8vw;
}
.cart-text-area {
    margin-right: 1vw;
    width: 17vw;
}
.cart-text-area p:first-child {
    margin-bottom: 5%;
    font-size: 1.2vw;
    font-weight: bold;
}
.cart-int-area {
    width: 10vw;
}
.cart-int-area p {
    display: flex;
    align-items: center;
}
.cart-int-area p:last-child {
    margin-top: 10%;
}
.cart-item-quantity {
    padding: 1%;
    width: 3vw;
    text-align: center;
    border: solid 1px #333;
    border-radius: 5px;
}
.cart-stock-area {
    width: 5vw;
    text-align: center;
}
.cart-remove-area {
    text-align: center;
    width: 5vw;
}
.cart-remove-area button {
    padding: 2% 10% 1%;
    color: #fff;
    background-color: #333;
    border-radius: 5px;
}

.settlement-area {
    padding: 3vw 2vw;
    width: 30vw;
    border: solid 1px #333;
}
#cart-total {
    text-align: center;
    font-size: 1.2vw;
    font-weight: bold;
    border-bottom: solid 1px #ff0000;
}
#mep-orderer-box legend {
    margin: 1.5vw 0;
    text-align: center;
    font-size: 1.2vw;
    font-weight: bold;
}
#mep-copy-orderer-to-shipping {
    margin-left: 5.5vw;
    margin-bottom: 3vw;
    padding: 1vw 0;
    width: 15vw;
    text-align: center;
    font-size: 1.1vw;
    color: #fff;
    background-color: #0044ff;
    border-radius: 5px;
}
.settlement-area h5 {
    margin: 1.5vw 0;
    text-align: center;
    font-size: 1.2vw;
    font-weight: bold;
}
.settlement-area p input {
    margin-top: 0.5vw;
    margin-bottom: 1vw;
    padding: 0.7vw 1%;
    width: 26vw;
    background-color: #efefef;
}
.settlement-area .payment-area {
    margin-top: 5%;
    text-align: center;
    font-size: 1.1vw;
}
.settlement-area select {
    margin-top: 5%;
    width: 26vw;
    padding: 1vw 0;
    text-align: center;
    font-size: 1vw;
    background-color: #fff;
    border: solid 2px #333;
    border-radius: 3px;
}
#checkout-button {
    margin-top: 1.5vw;
    width: 26vw;
    padding: 1vw 0;
    text-align: center;
    font-size: 1vw;
    color: #fff;
    background-color: #333;
}
.mep-attn-title {
    margin-top: 2vw;
    margin-bottom: 1vw;
    text-align: center;
    font-size: 1.2vw;
    color: #ff0000;
}
.mep-attn-list {
    line-height: 1.5;
    font-size: 1vw;
}
.mep-attn-list li {
    margin-bottom: 1vw;
}
.mep-attn-check {
    display: flex;
    align-items: center;
    margin: 1vw;
}
.mep-attn-label {
    font-size: 1.1vw;
}
#mep-checkout-modal .mep-attn-check input[type="checkbox"] {
    width: 1.2vw;
    height: 1.2vw;
    border: 2px solid #007BFF;
    border-radius: 4px;
    background-color: #fff;
    cursor: pointer;
    vertical-align: middle;
    margin-right: 0.5vw;
    transition: background-color 0.2s, border-color 0.2s;
    position: relative;
    box-sizing: border-box;
}
/* チェック時の背景と枠線 */
#mep-checkout-modal .mep-attn-check input[type="checkbox"]:checked {
    background-color: #007BFF;
    border-color: #007BFF;
}

/* チェックマーク */
#mep-checkout-modal .mep-attn-check input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    top: 3%;
    left: 20%;
    width: 0.5vw;
    height: 0.8vw;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* フォーカス時のリング（アクセシビリティ） */
#mep-checkout-modal .mep-attn-check input[type="checkbox"]:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.3);
}

.tts-cal__container {
    display: flex;
    flex-wrap: wrap;
    margin: 2vw 0;
}
.tts-cal__month-box {
    flex: 1;
    width: 40%;
    padding: 2vw;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background-color: #fff;
    border-radius: 5px;
    border: solid 2px #aaa;
}
#tts-cal-2025-08 {
    margin-right: 1vw;
}
.tts-cal__title {
    font-size: 1vw;
    text-align: center;
    margin-bottom: 1vw;
}
.tts-cal__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8vw;
}
.tts-cal__thead th {
    text-align: center;
    padding: 1vw;
    border-bottom: solid 1px #000;
}
.tts-cal__tbody td {
    width: auto;
    padding: 1vw;
    text-align: center;
    vertical-align: middle;
    border-bottom: 1px solid #f0f0f0;
    position: relative;
}
.tts-cal__tbody tr:last-child td {
    border-bottom: none;
}
.tts-cal__weekday-sun,
.tts-cal__day-sun {
    color: #c0392b;
}
.tts-cal__weekday-sat,
.tts-cal__day-sat {
    color: #2471a3;
}
.tts-cal__empty {
    color: #aaa;
}
.yasumi-backcolor {
    background-color: pink;
}
.tts-sub-title {
    display: flex;
    align-items: center;
    width: 100%;
    font-size: 1vw;
}
.box-pink {
    margin-right: 1vw;
    width: 1.5vw;
    height: 1.5vw;
    border: solid 2px #aaa;
    background-color: pink;
}
@media (max-width: 768px) {
    .tts-cal__container {
        flex-direction: column;
        margin: 3vw 0;
    }
    .tts-cal__month-box {
        width: 100%;
        padding: 3vw;
    }
    #tts-cal-2025-08 {
        margin-right: 0;
        margin-bottom: 5vw;
    }
    .tts-cal__title {
        font-size: 3.5vw;
        margin-bottom: 2vw;
    }
    .tts-cal__table {
        width: 100%;
        font-size: 3vw;
    }
    .tts-cal__thead th {
        padding: 2vw;
    }
    .tts-cal__tbody td {
        padding: 2vw;
    }
    .tts-sub-title {
        display: flex;
        align-items: center;
        width: 100%;
        font-size: 3vw;
    }
    .box-pink {
        margin-right: 3vw;
        width: 3.5vw;
        height: 3.5vw;
        border: solid 2px #aaa;
    }
}

@media screen and (max-width: 767px) {
    #mep-checkout-modal {
        width: 95%;  
        max-height: 90%;
        border-radius: 5px; 
        padding: 5vw;
    }
    #mep-checkout-modal h3 {
        margin-top: 1vw;
        font-size: 4.5vw;
        border-bottom: 1px solid #ddd;
        padding-bottom: 2px;
    }
    #mep-checkout-modal .mep-modal-notice {
        margin: 3vw 1vw;
        font-size: 3vw; 
        line-height: 1.5; 
    }
    #mep-checkout-modal table {
        width: 100%;
        border-collapse: collapse;
        margin: 4vw 0;
        font-size: 2.8vw;
    }
    #mep-checkout-modal table thead tr th {
        text-align: center;
    }
    #mep-checkout-modal th,
    #mep-checkout-modal td {
        border: 1px solid #ccc;
        padding: 1.5vw;
        vertical-align: middle;
    }
    #mep-checkout-modal td.num {
        text-align: right;
    }
    #mep-checkout-modal td.qty {
        text-align: center;
    }
    #mep-checkout-modal span.opt {
        font-size: 2.8vw;
        color:#555;
    }
    #mep-checkout-modal span.note {
        color:#666;
        font-size: 2.8vw;
    }
    #mep-checkout-modal .mep-modal-btns {
        margin-top: 8vw;
        display: flex;
        justify-content: center;
    }
    #mep-checkout-modal button {
        width: 30vw;
        padding: 2vw;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        font-size: 3vw;
    }
    #mep-checkout-modal button.cancel {
        margin-right: 15vw;
        text-align: center;
        background:#ccc;
    }
    #mep-checkout-modal button.confirm {
        background:#0073aa;
        color:#fff;
        text-align: center;
    }

    .page-cart-area {
        margin: 35% auto 15% auto;
        width: 90vw;
    }
    .page-cart-area .mep-cart form {
        display: flex;
        flex-direction: column;
    }
    .cart-table-area {
        margin-right: 0;
    }
    .cart-item {
        display: flex;
        align-items: start;
        flex-direction: column;
        margin-bottom: 5%;
        padding: 1vw 1vw;
        width: 90vw;
        font-size: 3vw;
    }
    .cart-mobile-area {
        display: flex;
        align-items: center;
        margin-bottom: 3%;
    }
    .cart-mobile-wrap {
        display: flex;
        align-items: center;
    }
    .cart-img-area {
        margin-right: 1vw;
    }
    .cart-img-area img {
        width: 25vw;
        height: 25vw;
    }
    .cart-text-area {
        margin-right: 0;
        width: 62vw;
    }
    .cart-text-area p:first-child {
        margin-bottom: 5%;
        font-size: 3.5vw;
        font-weight: bold;
    }
    .cart-int-area {
        width: 40vw;
    }
    .cart-int-area p:last-child {
        margin-top: 2%;
    }
    .cart-item-quantity {
        padding: 1%;
        width: 15vw;
        text-align: center;
        border: solid 1px #333;
        border-radius: 5px;
    }
    .cart-stock-area {
        width: 25vw;
        text-align: center;
    }
    .cart-remove-area {
        text-align: center;
        width: 23vw;
    }
    .cart-remove-area button {
        padding: 2% 10% 1%;
        color: #fff;
        background-color: #333;
        border-radius: 5px;
    }
    .settlement-area {
        margin: 10% auto;
        padding: 3vw 2vw;
        width: 80vw;
        border: solid 1px #333;
        font-size: 3.3vw;
    }
    #cart-total {
        font-size: 4vw;
    }
    #mep-orderer-box legend {
        margin: 5vw 0;
        text-align: center;
        font-size: 4vw;
        font-weight: bold;
    }
    #mep-copy-orderer-to-shipping {
        margin-left: 13vw;
        margin-bottom: 5vw;
        padding: 2vw 0;
        width: 50vw;
        text-align: center;
        font-size: 4vw;
        color: #fff;
        background-color: #0044ff;
        border-radius: 5px;
    }
    .settlement-area h5 {
        margin: 5vw 0;
        text-align: center;
        font-size: 4vw;
        font-weight: bold;
    }
    .settlement-area p {
        margin: 5% 0;
    }
    .settlement-area p input {
        margin-top: 1vw;
        margin-bottom: 1vw;
        padding: 2vw 1% 1.5vw 1%;
        width: 76vw;
    }
    .settlement-area .payment-area {
        margin-top: 8%;
        text-align: center;
        font-size: 3.5vw;
    }
    .settlement-area select {
        margin-top: 5vw;
        width: 76vw;
        padding: 2vw 0 1.5vw;
        text-align: center;
        font-size: 3.5vw;
    }
    #checkout-button {
        margin-top: 5vw;
        width: 76vw;
        padding: 2vw 0 1.5vw;
        text-align: center;
        font-size: 3.5vw;
    }
    .cart-empty-text {
        font-size: 3.5vw;
    }
    .mep-attn-title {
        margin-top: 5vw;
        margin-bottom: 2vw;
        font-size: 5vw;
    }
    .mep-attn-list {
        line-height: 1.5;
        font-size: 3vw;
    }
    .mep-attn-list li {
        margin-bottom: 1vw;
    }
    .mep-attn-check {
        display: flex;
        align-items: center;
        margin: 3vw;
    }
    .mep-attn-label {
        font-size: 3.2vw;
    }
    #mep-checkout-modal .mep-attn-check input[type="checkbox"] {
        width: 4vw;
        height: 4vw;
        border: 2px solid #007BFF;
        border-radius: 4px;
        background-color: #fff;
        cursor: pointer;
        vertical-align: middle;
        margin-right: 2vw;
        transition: background-color 0.2s, border-color 0.2s;
        position: relative;
        box-sizing: border-box;
    }

    /* チェックマーク */
    #mep-checkout-modal .mep-attn-check input[type="checkbox"]:checked::after {
        content: '';
        position: absolute;
        top: -3%;
        left: 20%;
        width: 1.5vw;
        height: 3vw;
        border: solid #fff;
        border-width: 0 2px 2px 0;
        transform: rotate(45deg);
    }
}
/* -----------------------------------------------------------
購入履歴ページ
----------------------------------------------------------- */
.purchase-history-area {
    margin: 15% 10%;
    width: 80%;
}
.purchase-history-area h2 {
    margin-bottom: 5%;
    text-align: center;
    font-size: 2vw;
    font-weight: bold;
}
.history-order-item {
    padding: 3%;
    border-top: solid 1px #333;
    border-bottom: solid 1px #333;
}
.history-order-item h3 {
    margin-bottom: 1%;
    font-size: 1.2vw;
    font-weight: bold;
}
@media screen and (max-width: 767px) {
}
/* -----------------------------------------------------------
ネットショップページ
----------------------------------------------------------- */
.product-archive {
    margin: 10% 10% 10% 10%;
}
.mep-filter-group p {
    margin-bottom: 0.5%;
    font-size: 1.1vw;
    font-weight: bold;
}
.mep-button-group {
    margin-bottom: 1%;
    width: auto;
    border-bottom: solid 1px #333;
}
.mep-button-group button {
    padding: 0.5vw 0.5vw 0.3vw 0.5vw;
    margin-right: 0.1vw;
    width: auto;
    text-align: center;
    font-size: 0.8vw;
    font-weight: bold;
    color: #fff;
    background-color: #0092f4;
    border-radius: 5px 5px 0 0;
}
.mep-child-container button {
    padding: 0.5vw 0.5vw 0.3vw 0.5vw;
    margin-right: 0.1vw;
    width: auto;
    text-align: center;
    font-size: 0.8vw;
    font-weight: bold;
    color: #fff;
    background-color: #00aeff;
    border-radius: 5px;
}
.mep-sorting {
    margin-top: 2%;
    margin-bottom: 1%;
}
.mep-sorting p {
    margin-bottom: 0.5%;
    font-size: 1vw;
    font-weight: bold;
}
.mep-sorting button {
    padding: 0.5vw 0.5vw 0.3vw 0.5vw;
    margin-right: 0.1vw;
    width: auto;
    text-align: center;
    font-size: 0.8vw;
    font-weight: bold;
    color: #fff;
    background-color: #0088ff;
    border-radius: 5px;
}

.mep-product-list {
    margin-top: 5%;
    display: flex;
    flex-wrap: wrap;
    gap: 1vw;
}
.mep-product-item {
    padding: 1%;
    flex: 0 1 calc(20.25% - 1vw);
    box-sizing: border-box;
    border: solid 1px #ccc;
}
.mep-product-item img {
    margin-bottom: 5%;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.mep-product-item h3 {
    font-size: 1.1vw;
    font-weight: bold;
}
.mep-price {
    margin-bottom: 3%;
}
.mep-price strong {
    font-size: 1.2vw;
}
.mep-product-item p {
    display: flex;
    align-items: center;
}
.mep-option-selects p {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 3% 0;
}
.mep-option-selects select {
    padding: 2% 1% 1% 1%;
    width: 63%;
    text-align: center;
    font-size: 0.9vw;
    border: solid 1px #333;
    border-radius: 2px;
}
.item-quantity {
    margin-left: 19%;
    padding: 2% 1% 1% 1%;
    width: 50%;
    text-align: center;
    font-size: 0.9vw;
    border: solid 1px #333;
    border-radius: 2px;
}
.mep-stock-display {
    margin-top: 5%;
    border-bottom: solid 1px #ff0000;
}
.item-quantity02 {
    margin-left: 19.2%;
    padding: 2% 1% 1% 1%;
    width: 23%;
    text-align: center;
    font-size: 0.9vw;
    border: solid 1px #333;
    border-radius: 2px;
}
.add-to-cart-btn {
    margin: 5% 0;
    padding: 1.5% 0 1% 0;
    width: 100%;
    background-color: #0046af;
    text-align: center;
    font-size: 1.1vw;
    color: #fff;
}
.mep-pagination {
    margin: 5vw 0;
    text-align: center;
}
.mep-pagination .page-numbers {
    display: inline-block;
    margin: 0 4px;
    padding: 6px 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #fff;
    color: #0073aa;
    text-decoration: none;
    transition: background-color 0.2s, color 0.2s;
}
.mep-pagination .page-numbers:hover:not(.current) {
    background-color: #0073aa;
    color: #fff;
    border-color: #0073aa;
}
.mep-pagination .page-numbers.current,
.mep-pagination .page-numbers.current:hover {
    background-color: #0073aa;
    color: #fff;
    border-color: #0073aa;
    cursor: default;
}
.mep-pagination .prev.page-numbers,
.mep-pagination .next.page-numbers {
    font-weight: bold;
}
@media screen and (max-width: 767px) {
    .product-archive {
        margin: 35% 5% 15% 5%;
    }
    .mep-filter-group p {
        margin-bottom: 2%;
        font-size: 3.5vw;
    }
    .mep-button-group {
        margin-bottom: 5%;
        width: auto;
        border-bottom: solid 1px #333;
        overflow-x: scroll;
        width: 100%;
        white-space: nowrap;
    }
    .mep-button-group button {
        padding: 1.5vw 3vw 1vw 3vw;
        margin-right: 0.5vw;
        font-size: 3.3vw;
    }
    .mep-child-container {
        white-space: nowrap;
        overflow-x: scroll;
    }
    .mep-child-container button {
        padding: 1.5vw 3vw 1vw 3vw;
        margin-right: 0.5vw;
        font-size: 3.3vw;
    }
    .mep-sorting {
        margin-top: 3%;
        margin-bottom: 1%;
        
    }
    .mep-sorting p {
        margin-bottom: 2%;
        font-size: 3.3vw;
    }
    .mep-sorting button {
        padding: 1.5vw 3vw 1vw 3vw;
        margin-right: 0.5vw;
        font-size: 3vw;
    }
    
    .mep-product-list {
        margin-top: 10%;
        display: flex;
        flex-wrap: wrap;
        gap: 1vw;
    }
    .mep-product-item {
        padding: 1%;
        flex: 0 1 calc(50.55% - 1vw);
        font-size: 2.8vw;
    }
    .mep-product-item h3 {
        margin-bottom: 3%;
        font-size: 3vw;
        font-weight: bold;
    }
    .mep-price {
        margin-bottom: 5%;
    }
    .mep-price strong {
        font-size: 3.8vw;
    }
    .mep-product-item p {
        display: flex;
        align-items: center;
    }
    .mep-option-selects p {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin: 5% 0;
    }
    .mep-option-selects select {
        padding: 2% 1% 1% 1%;
        width: 63%;
        font-size: 2.8vw;
    }
    .item-quantity {
        margin-left: 21.5%;
        padding: 2% 1% 1% 1%;
        width: 50%;
        text-align: center;
        font-size: 2.8vw;
    }
    .mep-stock-display {
        margin-top: 5%;
        border-bottom: solid 1px #ff0000;
    }
    .item-quantity02 {
        margin-left: 19.2%;
        padding: 2% 1% 1% 1%;
        width: 35%;
        text-align: center;
        font-size: 2.8vw;
        border: solid 1px #333;
        border-radius: 2px;
    }
    .add-to-cart-btn {
        margin: 5% 0;
        padding: 3% 0 2.5% 0;
        font-size: 3vw;
    }
    .mep-pagination {
        margin: 15vw 0;
        padding: 0 10px;
        overflow-x: auto;
        white-space: nowrap;
    }
    .mep-pagination .page-numbers {
        display: inline-block;
        margin: 0 2px;
        padding: 6px 8px;
        font-size: 14px;
        min-width: 32px;
    }
    .mep-pagination .page-numbers.current {
        font-size: 14px;
    }
}
/* -----------------------------------------------------------
決済完了ページ
----------------------------------------------------------- */
.mep-payment-success {
    margin: 15% 0;
    text-align: center;
}
.mep-payment-success h3 {
    margin-bottom: 3%;
    font-size: 2vw;
    font-weight: bold;
}
@media screen and (max-width: 767px) {
    .mep-payment-success {
        margin: 35% 0 15% 0;
        font-size: 3vw;
    }
    .mep-payment-success h3 {
        margin-bottom: 5%;
        font-size: 5vw;
        font-weight: bold;
    }
}
/* -----------------------------------------------------------
各店舗ページ
----------------------------------------------------------- */
.page-slider-container {
    position: relative;
    width: 100%;
    padding: 2% 0;
    margin: 15% 0 10% 0;
    overflow: hidden;
}
.page-slider {
    display: flex;
    transition: transform 0.5s ease;
}
.page-slide {
    width: 28vw;
    margin: 0 5vw;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
.page-slide img {
    width: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.page-slide.active img {
    transform: scale(1.3);
}
.page-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: #333;
    width: 3.5vw;
    height: 3.5vw;
    text-align: center;
    cursor: pointer;
    font-size: 2vw;
    border-radius: 50%;
    color: #fff;
    opacity: 0.8;
}
.page-arrow:hover {
    opacity: 1;
}
.page-arrow.page-left {
    left: 0.5%;
}
.page-arrow.page-right {
    right: 0.5%;
}
.page-container {
    color: #333;
}
.atag-area {
    margin: 0 10%;
    width: 80%;
}
#atag-area-text {
    display: flex;
    align-items: center;
    font-size: 0.8vw;
    font-weight: bold;
}
#atag-area-text span {
    margin: 0 1vw;
    width: 1vw;
    height: 0.1vw;
    background-color: #333;
}
.page-title {
    display: flex;
    align-items: center;
    margin-top: 3%;
    margin-bottom: 3%;
    font-size: 2vw;
    font-weight: bold;
}
.page-title span {
    margin-right: 1vw;
    width: 1.8vw;
    height: 1.8vw;
    background-color: blue;
}
.page-table-of-content {
    display: flex;
    flex-wrap: wrap;
}
.page-table-of-text a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10%;
    padding-bottom: 1%;
    width: 22vw;
    font-size: 1.4vw;
    font-weight: bold;
    border-bottom: solid 1px #333;
    transition: 0.3s;
}
.page-table-of-text a:hover {
    transform: scale(1.05);
    color: #0044ff;
}
.page-table-of-text a span {
    position: absolute;
    bottom: 10%;
    right: 5%;
    width: 1.8vw;
    height: 1.8vw;
    text-align: center;
    font-weight: bold;
    color: #fff;
    line-height: 2vw;
    background-color: blue;
    border-radius: 50%;
}
.margin-area {
    margin: 0 6.6vw;
}
.page-wrap01, .page-wrap02, .page-wrap03, .page-wrap04, .page-wrap05, .page-wrap06 {
    margin: 5% 10%;
    width: 80%;
}
.page-wrap01 h3, .page-wrap02 h3, .page-wrap03 h3, .page-wrap05 h3, .page-wrap06 h3 {
    margin-bottom: 4%;
    padding: 1% 2% 0.8% 2%;
    font-size: 1.8vw;
    font-weight: bold;
    background-color: #d9e3f3;
    border-left: solid 1vw #0046af;
}
.page-wrap01 p, .page-wrap02 p, .page-wrap03 p, .page-wrap05 p {
    margin-left: 1vw;
    font-size: 1.2vw;
    font-weight: bold;
    line-height: 2;
}
.page-wrap02 h5 {
    margin-left: 1vw;
    margin-bottom: 1%;
    font-size: 1.5vw;
    font-weight: bold;
}
.page-wrap02 p, .page-wrap03 p, .page-wrap05 p {
    display: flex;
}
.page-wrap02 p span, .page-wrap03 p span, .page-wrap05 p span {
    margin-top: 0.7%;
    margin-right: 1%;
    width: 1.2vw;
    height: 1.2vw;
    background-color: #333;
    border-radius: 50%;
    aspect-ratio: 1;

}
.page-wrap02 h6 {
    display: flex;
    align-items: center;
    margin: 3% 0 1% 0;
    font-size: 1.3vw;
    font-weight: bold;
}
.page-wrap02 h6 span {
    width: 1vw;
    height: 0.1vw;
    background-color: #333;
}
.page-wrap02 h6 span:first-child {
    margin-right: 1%;
}
.page-wrap02 h6 span:last-child {
    margin-left: 1%;
}
.page-wrap02-btn-area, .page-wrap03-btn-area {
    display: flex;
    justify-content: center;
    margin-top: 5%;
}
.page-wrap02-btn-area a {
    display: flex;
    justify-content: space-between;
    padding: 1.2% 2% 1% 2%;
    width: 20vw;
    text-align: center;
    font-size: 1.3vw;
    color: #fff;
    font-weight: bold;
    border-radius: 50px;
    transition: 0.3s;
}
.page-wrap02-btn-area a:hover {
    transform: scale(1.1);
}
.page-wrap03-btn-area a {
    display: flex;
    justify-content: space-between;
    padding: 1.2% 2% 1% 2%;
    width: 30vw;
    text-align: center;
    font-size: 1.3vw;
    color: #fff;
    font-weight: bold;
    border-radius: 50px;
    transition: 0.3s;
}
.page-wrap03-btn-area a:hover {
    transform: scale(1.1);
}
.page-wrap02-btn-area a:first-child, .page-wrap03-btn-area a:first-child {
    margin-right: 5vw;
    background-color: #0046af;
}
.page-wrap02-btn-area a:last-child, .page-wrap03-btn-area a {
    background-color: #f89500;
}
.page-wrap04 img {
    width: 100%;
}
.page-wrap05 iframe {
    margin: 3% 0;
    width: 100%;
    height: 70vh;
    border-radius: 5px;
}
.page-wrap05 p a {
    position: relative;
}
.page-wrap05 p a::before {
    background: #0044ff;
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: 15%;
    transform-origin: center top;
    transform: scale(0, 1);
    transition: transform .3s;
}
.page-wrap05 p a:hover {
    color: #0044ff;
}
.page-wrap05 p a:hover::before {
    transform-origin: center top;
    transform: scale(1, 1);
}
@media screen and (max-width: 767px) {
    .page-slider-container {
        margin: 30% 0 10% 0;
    }
    .page-slide {
        width: 55vw;
        margin: 0 8vw;
    }
    .page-arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background-color: #333;
        width: 10vw;
        height: 10vw;
        text-align: center;
        cursor: pointer;
        font-size: 5vw;
        border-radius: 50%;
        color: #fff;
        opacity: 0.8;
    }
    .atag-area {
        margin: 0 2.5%;
        width: 95%;
    }
    #atag-area-text {
        display: flex;
        align-items: center;
        font-size: 3vw;
        font-weight: bold;
    }
    #atag-area-text span {
        margin: 0 2vw;
    }
    .page-title {
        margin-top: 8%;
        margin-bottom: 8%;
        font-size: 5vw;
    }
    .page-title span {
        margin-right: 5vw;
        width: 5vw;
        height: 5vw;
    }
    .page-table-of-text a {
        margin-bottom: 15%;
        padding-bottom: 1%;
        width: 45vw;
        font-size: 3.5vw;
    }
    .page-table-of-text a span {
        bottom: 15%;
        right: 2%;
        width: 3.5vw;
        height: 3.5vw;
        line-height: 3.7vw;
    }
    .margin-area {
        margin: 0 0;
    }
    .margin-area-mobile {
        margin-left: 5vw;
    }
    .page-wrap01, .page-wrap02, .page-wrap03, .page-wrap04, .page-wrap05, .page-wrap06 {
        margin: 15% 2.5%;
        width: 95%;
    }
    .page-wrap01 {
        margin: 10% 2.5% 15% 2.5%;
        width: 95%;
    }
    .page-wrap01 h3, .page-wrap02 h3, .page-wrap03 h3, .page-wrap05 h3, .page-wrap06 h3 {
        margin-bottom: 5%;
        padding: 2.5% 2% 2.2% 2%;
        font-size: 4vw;
    }
    .page-wrap01 p, .page-wrap02 p, .page-wrap03 p, .page-wrap05 p {
        margin-left: 1vw;
        font-size: 3.3vw;
        font-weight: bold;
        line-height: 2;
    }
    .page-wrap02 h5 {
        margin-left: 1vw;
        margin-bottom: 1%;
        font-size: 3.5vw;
    }
    .page-wrap02 p span, .page-wrap03 p span, .page-wrap05 p span {
        margin-top: 1.5%;
        margin-right: 3%;
        width: 3.3vw;
        height: 3.3vw;
        background-color: #333;
        border-radius: 50%;
    }
    .page-wrap02 h6 {
        display: flex;
        align-items: center;
        margin: 5% 0 2% 0;
        font-size: 3.5vw;
        font-weight: bold;
    }
    .page-wrap02 h6 span {
        width: 1vw;
        height: 0.1vw;
        background-color: #333;
    }
    .page-wrap02 h6 span:first-child {
        margin-right: 1%;
    }
    .page-wrap02 h6 span:last-child {
        margin-left: 1%;
    }
    .page-wrap02-btn-area, .page-wrap03-btn-area {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        margin-top: 5%;
    }
    .page-wrap02-btn-area a {
        display: flex;
        justify-content: space-between;
        padding: 5% 5% 4% 5%;
        width: 55vw;
        text-align: center;
        font-size: 3.5vw;
        color: #fff;
        font-weight: bold;
        border-radius: 50px;
    }
    .page-wrap03-btn-area a {
        display: flex;
        justify-content: space-between;
        padding: 5% 4% 4% 4%;
        width: 75vw;
        text-align: center;
        font-size: 3.5vw;
        color: #fff;
        font-weight: bold;
        border-radius: 50px;
    }
    .page-wrap02-btn-area a:first-child, .page-wrap03-btn-area a:first-child {
        margin-right: 0;
        margin-bottom: 8%;
        background-color: #0046af;
    }
    .page-wrap02-btn-area a:last-child, .page-wrap03-btn-area a {
        background-color: #f89500;
    }
    .page-wrap04 img {
        width: 100%;
    }
    .page-wrap05 iframe {
        margin: 3% 0;
        width: 100%;
        height: 50vh;
        border-radius: 5px;
    }
    .page-table-of-content {
        margin-top: 10%;
    }
}
/* -----------------------------------------------------------
大会情報一覧ページ、練習会・講習会情報一覧ページ
----------------------------------------------------------- */
.page-area h2 {
    text-align: center;
    font-size: 3vw;
    font-weight: bold;
}
.page-tournament-area {
    display: flex;
    flex-wrap: wrap;
    gap: 1vw;
    margin: 7% 10% 12% 10%;
    width: 80%;
}
.page-tournament-card {
    position: relative;
    flex: 0 1 calc(33.33% - 1vw);
    box-sizing: border-box;
    padding: 1.5vw;
    background-color: #fff;
    border: solid 1px #333;
    border-radius: 5px;
}
.page-tournament-card h3 {
    width: 90%;
    margin-bottom: 1.5vw;
    font-size: 1.3vw;
    font-weight: bold;
}
.page-tournament-card ul li {
    margin: 3% 0;
}
@media screen and (max-width: 767px) {
    .page-area h2 {
        margin-top: 15%;
        text-align: center;
        font-size: 6.5vw;
        font-weight: bold;
    }
    .page-tournament-area {
        display: flex;
        flex-wrap: wrap;
        gap: 0;
        margin: 7% 10% 12% 10%;
        width: 80%;
    }
    .page-tournament-card {
        position: relative;
        margin: 2.5% 0;
        flex: 0 1 calc(100%);
        box-sizing: border-box;
        padding: 3vw;
        background-color: #fff;
        border: solid 1px #333;
        border-radius: 5px;
    }
    .page-tournament-card h3 {
        margin-bottom: 2vw;
        font-size: 4vw;
        font-weight: bold;
    }
    .page-tournament-card ul li {
        margin: 3vw 0;
        font-size: 3vw;
    }
}
/* -----------------------------------------------------------
お知らせページ
----------------------------------------------------------- */
.news-pagination {
    margin: 5% 0;
    text-align: center;
}
.news-pagination .page-numbers {
    margin: 0 0.2vw;
}
.current {
    border-bottom: solid 2px #333;
    font-size: 1.1vw;
}
@media screen and (max-width: 767px) {
    .page-news-title-area h2 {
        font-size: 7vw;
    }
    .page-news-area {
        margin-bottom: 5%;
    }
    .news-pagination {
        margin: 10% 0 15% 0;
        text-align: center;
        font-size: 3vw;
    }
    .news-pagination .page-numbers {
        margin: 0 1vw;
    }
    .current {
        border-bottom: solid 2px #333;
        font-size: 4vw;
    }
}
/* -----------------------------------------------------------
ブログページ
----------------------------------------------------------- */
.page-blog-area {
    display: flex;
    margin: 10%;
    width: 80%;
}
.latest-post-wrapper {
    width: 35%;
}
.latest-post {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.blog-latest-title {
    position: absolute;
    top: 1%;
    left: 15%;
    padding: 1.3% 6% 1% 6%;
    font-size: 1.2vw;
    font-weight: bold;
    color: #fff;
    background-color: red;
    border-radius: 50px;
}
.latest-post-thumbnail img {
    width: 20vw;
    height: 13vw;
    object-fit: cover;
    border-radius: 5px;
}
.latest-post-date {
    margin: 3% 0;
    font-size: 1.1vw;
}
.latest-post-title {
    width: 20vw;
    font-size: 1.2vw;
}
.main-posts-wrapper {
    border-left: solid 1px #333;
    padding-left: 1%;
    width: 65%;
}
.post-item {
    margin: 2.5% 0;
    padding: 2% 2%;
    border-bottom: solid 1px #333;
}
.post-item a {
    display: flex;
    align-items: center;
}
.post-thumbnail img {
    width: 12vw;
    height: 6vw;
    object-fit: cover;
    border-radius: 5px;
}
.post-content {
    display:flex;
    flex-flow: column;
    justify-content: space-between;
    height: 5.5vw;
    margin-left: 5%;
}
.post-title {
    font-size: 1.3vw;
}
.pagination-wrapper {
    margin: 5% 0;
    text-align: center;
}
.pagination-wrapper .page-numbers {
    margin: 0 0.2vw;
}
@media screen and (max-width: 767px) {
    .page-blog-area {
        display: flex;
        flex-direction: column;
        margin: 25% 2.5% 5% 2.5%;
        width: 95%;
    }
    .latest-post-wrapper {
        width: 95%;
    }
    .latest-post {
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: start;
        align-items: start;
    }
    .blog-latest-title {
        position: absolute;
        top: 2%;
        left: 1%;
        padding: 1.5% 8% 1% 8%;
        font-size: 4.5vw;
        font-weight: bold;
        color: #fff;
        background-color: red;
        border-radius: 50px;
    }
    .latest-post-thumbnail img {
        width: 95vw;
        height: 50vw;
        object-fit: cover;
        border-radius: 5px;
    }
    .latest-post-date {
        margin: 3% 0;
        font-size: 3vw;
    }
    .latest-post-title {
        width: 100%;
        font-size: 4vw;
    }
    .main-posts-wrapper {
        margin-top: 5%;
        border-top: solid 1px #000;
        padding-top: 3%;
        border-left: solid 0px #333;
        padding-left: 0;
        width: 100%;
    }
    .post-item {
        margin: 5% 0;
        padding: 2% 2%;
        border-bottom: solid 1px #333;
    }
    .post-item a {
        display: flex;
        align-items: center;
    }
    .post-thumbnail img {
        width: 20vw;
        height: 13vw;
        object-fit: cover;
        border-radius: 5px;
    }
    .post-content {
        display:flex;
        flex-flow: column;
        justify-content: space-between;
        height: 12vw;
        margin-left: 5%;
    }
    .post-title {
        font-size: 3.5vw;
    }
    .pagination-wrapper {
        margin: 10% 0 15% 0;
        text-align: center;
        font-size: 3vw;
    }
    .pagination-wrapper .page-numbers {
        margin: 0 1vw;
    }
}
/* -----------------------------------------------------------
お問い合わせページ
----------------------------------------------------------- */
.page-contact-area {
    margin: 15% auto;
    width: 50vw;
}
.page-contact-area h2 {
    margin-bottom: 10%;
    text-align: center;
    font-size: 2.5vw;
    font-weight: bold;
}
.contact-form-text-area {
    margin: 5% auto;
    width: 50vw;
    font-size: 1.2vw;
    font-weight: bold;
}
.contact-form-text-area p {
    display: flex;
    align-items: center;
    margin-bottom: 2%;
}
.hissu {
    margin-left: 1vw;
    padding: 0.2vw 1vw;
    font-size: 0.7vw;
    color: #fff;
    background-color: #ff0000;
    border-radius: 30px;
}
#your-name, #your-kana, #your-email, #your-tel {
    padding: 2% 1%;
    width: 50vw;
    font-size: 1.2vw;
    background-color: #fff;
    border-radius: 5px;
    border: solid 2px #000;
}
#your-message {
    padding: 2% 1%;
    max-width: 50vw;
    min-width: 50vw;
    font-size: 1.2vw;
    background-color: #fff;
    border-radius: 5px;
    border: solid 2px #000;
}
#your-name:focus, #your-kana:focus, #your-email:focus, #your-tel:focus, #your-message:focus {
    outline: none;
    border: 2px solid #0044ff;
    box-shadow: 0 0 8px rgb(0, 110, 255);
}
.submit-wrapper {
    display: flex;
    justify-content: center;
}
#custom-submit-button {
    display: block;
    margin: 5% auto;
    width: 20vw;
    padding: 1vw 0;
    text-align: center;
    font-size: 1.3vw;
    font-weight: bold;
    color: #fff;
    background-color: #000;
    border-radius: 50px;
    transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease; /* なめらかな変化 */
    border: solid 0 #00000000;
}
/* ホバー時のスタイル */
#custom-submit-button:hover {
    transform: scale(1.1);
    background-color: #0044ff;
    box-shadow: 0 8px 15px rgba(43, 0, 255, 0.4), 0 4px 8px rgba(0, 0, 0, 0.2);
}
@media screen and (max-width: 767px) {
    .page-contact-area {
        margin: 30vw auto 15% auto;
        width: 90vw;
    }
    .page-contact-area h2 {
        margin-bottom: 15%;
        text-align: center;
        font-size: 6vw;
        font-weight: bold;
    }
    .contact-form-text-area {
        margin: 10% auto;
        width: 90vw;
        font-size: 3.5vw;
        font-weight: bold;
    }
    .contact-form-text-area p {
        display: flex;
        align-items: center;
        margin-bottom: 2%;
    }
    .hissu {
        margin-left: 1.5vw;
        padding: 0.5vw 1.5vw 0.2vw 1.5vw;
        font-size: 2.5vw;
        border-radius: 50px;
    }
    #your-name, #your-kana, #your-email, #your-tel {
        padding: 2% 1% 1.5% 1%;
        width: 90vw;
        font-size: 3.5vw;
        background-color: #fff;
        border-radius: 5px;
        border: solid 2px #000;
    }
    #your-message {
        padding: 2% 1% 1.5% 1%;
        max-width: 90vw;
        min-width: 90vw;
        font-size: 3.5vw;
        background-color: #fff;
        border-radius: 5px;
        border: solid 2px #000;
    }
    #your-name:focus, #your-kana:focus, #your-email:focus, #your-tel:focus, #your-message:focus {
        outline: none;
        border: 2px solid #0044ff;
        box-shadow: 0 0 8px rgb(0, 110, 255);
    }
    #custom-submit-button {
        margin: 5% auto;
        width: 50vw;
        padding: 1vw 0;
        text-align: center;
        font-size: 5vw;
        font-weight: bold;
        color: #fff;
        background-color: #000;
        border-radius: 50px;
        transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease; /* なめらかな変化 */
        border: solid 0 #00000000;
    }
    .wpcf7-spinner {
        display: none;
    }
}
/* -----------------------------------------------------------
利用規約ページ
----------------------------------------------------------- */
#terms-of-service {
    margin: 15vw auto 10vw auto;
    width: 70vw;
    line-height: 2;
}
#terms-of-service h2 {
    margin: 8vw auto 5vw auto;
    text-align: center;
    font-size: 2vw;
    font-weight: bold;
}
#terms-of-service h3 {
    margin-top: 1vw;
    margin-bottom: 0.5vw;
    font-size: 1.2vw;
    font-weight: bold;
}
@media screen and (max-width: 767px) {
    #terms-of-service {
        margin: 35vw auto 20vw;
        width: 90vw;
        font-size: 3.5vw;
    }
    #terms-of-service h2 {
        margin: 8vw auto 5vw auto;
        text-align: center;
        font-size: 6vw;
        font-weight: bold;
    }
    #terms-of-service h3 {
        margin-top: 3vw;
        margin-bottom: 1vw;
        font-size: 4vw;
        font-weight: bold;
    }
}
/* -----------------------------------------------------------
特定商取引についてページ
----------------------------------------------------------- */
#tokusho {
    margin: 15vw auto 10vw auto;
    width: 70vw;
    line-height: 2;
}
#tokusho-wrap {
    padding: 1vw 2vw;
    line-height: 2;
    background-color: #cfeffe;
    border-radius: 5px;
}
#tokusho-wrap h2 {
    text-align: center;
    font-size: 2vw;
    color: #ff0000;
    font-weight: bold;
}
#tokusho-wrap p {
    margin: 1vw 0;
    text-align: center;
}
#tokusho-table {
    margin: 0 auto;
    width: auto;
}
#tokusho-table tr td:first-child {
    width: 5vw;
}
.second {
    width: 3vw;
    text-align: center;
}

#tokusho-wrap02 h2 {
    margin: 8vw auto 5vw auto;
    text-align: center;
    font-size: 2vw;
    font-weight: bold;
}
#tokusho-wrap02 ul {
    margin-bottom: 3vw;
}
#tokusho-color-text {
    color: #ff0000;
}
#tokusho-wrap02-table tr td:first-child {
    text-align: center;
    width: 5vw;
}
#tokusho-wrap02 h3 {
    margin-bottom: 1vw;
    text-align: center;
    font-size: 1.2vw;
}
@media screen and (max-width: 767px) {
    #tokusho {
        margin: 35vw auto 20vw;
        width: 90vw;
        font-size: 3.5vw;
    }
    #tokusho-wrap {
        padding: 3vw;
        line-height: 2;
        background-color: #cfeffe;
        border-radius: 5px;
    }
    #tokusho-wrap h2 {
        font-size: 4vw;
    }
    #tokusho-wrap p {
        margin: 3vw 0;
        text-align: left;
    }
    #tokusho-table tr td:first-child {
        width: 18vw;
    }
    .second {
        width: 8vw;
        text-align: center;
    }

    #tokusho-wrap02 h2 {
        margin: 10vw auto 8vw auto;
        font-size: 4vw;
    }
    #tokusho-wrap02 ul {
        margin-bottom: 8vw;
    }
    #tokusho-wrap02-table tr td:first-child {
        text-align: center;
        width: 20vw;
        vertical-align: middle;
    }
    #tokusho-wrap02 h3 {
        margin-bottom: 5vw;
        text-align: center;
        font-size: 4vw;
    }
    #tokusho-wrap02-table02 tr td {
        display: block;
    }
    .mobile-none {
        font-size: 0px;
        color: #00000000;
    }
}
/* -----------------------------------------------------------
プライバシーポリシーページ
----------------------------------------------------------- */
#privacy-policy {
    margin: 15vw auto 10vw auto;
    width: 70vw;
}
#privacy-policy h2 {
    margin: 8vw auto 5vw auto;
    text-align: center;
    font-size: 1.5vw;
    font-weight: bold;
}
#privacy-policy ul {
    margin-bottom: 3vw;
    line-height: 1.8;
}
#privacy-policy ul li:first-child {
    margin-bottom: 1vw;
    font-size: 1.1vw;
}
@media screen and (max-width: 767px) {
    #privacy-policy {
        margin: 35vw auto 20vw;
        width: 90vw;
        font-size: 3.5vw;
    }
    #privacy-policy h2 {
        margin: 8vw auto 8vw auto;
        text-align: center;
        font-size: 5vw;
        font-weight: bold;
    }
    #privacy-policy ul {
        margin-bottom: 8vw;
        line-height: 1.8;
    }
    #privacy-policy ul li:first-child {
        margin-bottom: 2vw;
        font-size: 4vw;
    }
}
/* -----------------------------------------------------------
通信販売法ページ
----------------------------------------------------------- */
#shop-info {
    margin: 15vw auto 10vw auto;
    padding: 2vw;
    width: 70vw;
    line-height: 2;
    background-color: #cfeffe;
    border-radius: 5px;
}
#shop-info h2 {
    margin: 0 auto 2vw;
    text-align: center;
    font-size: 2vw;
    font-weight: bold
}
#legal-notice {
    margin: 0 auto 5vw auto;
    width: 70vw;
    line-height: 2;
}
#legal-notice h2 {
    margin: 8vw auto 5vw auto;
    text-align: center;
    font-size: 2vw;
    font-weight: bold;
}
@media screen and (max-width: 767px) {
    #shop-info {
        margin: 35vw auto 5vw auto;
        padding: 3vw;
        width: 90vw;
        font-size: 3.5vw;
    }
    #shop-info h2 {
        margin: 0 auto 3vw;
        text-align: center;
        font-size: 6vw;
        font-weight: bold;
    }
    #legal-notice {
        margin: 35vw auto 20vw;
        width: 90vw;
        font-size: 3.5vw;
    }
    #legal-notice h2 {
        margin: 0 auto 5vw auto;
        text-align: center;
        font-size: 6vw;
        font-weight: bold;
    }
}

.mep-button-group button,
.mep-child-container button,
.mep-sorting button{
  background:#0092f4;
  color:#fff;
  cursor:pointer;
}
.mep-button-group button.active,
.mep-child-container button.active,
.mep-sorting button.active{
  background:#0046af;
  color:#fff;
}