@charset "utf-8";

/* === 可変時間帯対応（最大9時間帯） === */
.trial-times {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
}

.trial-times .time {
    flex: 0 0 auto;
    min-width: 48px;
    max-width: 75px;
    font-size: 10px;
}

/* 時間帯数に応じた調整 */
.trial-times-4 .time {
    min-width: 60px;
}

.trial-times-5 .time,
.trial-times-6 .time {
    min-width: 50px;
}

.trial-times-7 .time,
.trial-times-8 .time,
.trial-times-9 .time {
    min-width: 45px;
    font-size: 9px;
}

main.schoolnum107 .trial-times a:nth-child(4) {
    display: none !important;
}


/** origin **/
.time.only_daytime {
    display: none !important;
}

.display-none {
    display: none !important;
}

.display-block {
    display: block !important;
}

.display-inline {
    display: inline !important;
}

.display-inline-block {
    display: inline-block !important;
}

.input-modify {
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 5px 0 0;
    ;
    line-height: 0;
    overflow: hidden;
}

.textarea-modify {
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 0;
    line-height: 0;
    overflow: hidden;
}

br.sp {
    display: none;
}

.tel a {
    color: inherit;
    text-decoration: none;
}


main {
    overflow: hidden;
}

.choose-school.height0 {
    height: 0;
}

.choose-school {
    overflow: hidden;
    transition-property: height, opacity;
    transition-duration: 0.2s;
    transition-delay: 0.1s;
}

.choose-pref {
    overflow: hidden;
    transition-property: height, opacity;
    transition-duration: 0.2s;
    transition-delay: 0.1s;
}

.choose-pref.height0 {
    height: 0;
}

.choose-pref.vanish {
    opacity: 0;
}

.error,
.error2 {
    /*表示*/
    display: block;
    /*配置*/
    position: absolute;
    bottom: -70px;
    /*margin→border→padding→width→height*/
    margin: 1.5em 0;
    border-radius: 5px;
    padding: 7px 10px;
    width: 100%;
    box-sizing: border-box;
    /*背景*/
    background: #0091C2;
    /*文字*/
    text-align: center;
    color: #333;
    font-size: 1.6rem;
    font-weight: bold;
    color: #fff;
    transition: 0.5s cubic-bezier(0, 0, 0, 1.0);
    opacity: 0;
}

.error.on,
.error2.on {
    transform: translate(0, -50px);
    opacity: 1
}

.error.on.off,
.error2.on.off {
    transform: translate(0, -100px);
    opacity: 0;
}

.error:after,
.error2:after {
    content: "";
    position: absolute;
    bottom: -27px;
    left: 50%;
    margin-left: -17px;
    border: 14px solid transparent;
    border-top: 14px solid #0091C2;
    z-index: 1;
}

/** common **/

:root {
    --color01: #A72126;
    --color02: #EF9284;
    --color03: #A03522;
    --color04: #E86350;
}

* {
    box-sizing: border-box;
}

input,
button,
textarea,
select {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    font-size: inherit;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

textarea {
    resize: none;
}

input:-webkit-autofill {
    box-shadow: 0 0 0 0 #EEEEEE inset;
}

input:-internal-autofill-selected {
    background-color: rgb(238, 238, 238) !important;
}

input::placeholder,
input:-ms-input-placeholder,
input::-ms-input-placeholder {
    color: #9fa0a0;
}

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

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #828c9a;
}

body {
    font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 16px;
    line-height: 2;
    color: #000000;
}

button {
    font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

button:disabled {
    pointer-events: none;
    opacity: 0.5;
}

@media screen and (min-width: 801px) {
    .sp_cont {
        display: none !important;
    }
}

header.common {
    position: relative;
    z-index: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 90px;
    padding: 20px 30px;
    margin: 0 auto 30px;
    background: #FFFFFF;
    border-bottom: solid 1px var(--color01);
}

header.common .logo {
    position: absolute;
    z-index: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: auto;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    text-decoration: none;
}

header.common .logo .logo-main {
    font-size: 20px;
    font-weight: 700;
    color: var(--color01);
    letter-spacing: 0.12em;
    line-height: 1.2;
}

header.common .logo .logo-sub {
    font-size: 12px;
    font-weight: 600;
    color: var(--color03);
    letter-spacing: 0.25em;
    margin-top: 4px;
    padding-top: 3px;
    border-top: 2px solid var(--color02);
}

header.common .header_catch {
    font-size: 12px;
    line-height: 1.2;
}

header.common .header_catch br {
    display: none;
}

@media screen and (max-width: 980px) {
    header.common .header_catch br {
        display: block !important;
    }
}

footer {
    color: #FFFFFF;
    line-height: 1.2;
    background: var(--color04);
}

footer .box {
    display: flex;
    justify-content: space-between;
    padding: 20px 40px;
}

footer .box ul {
    display: inline-block;
}

footer .box ul li {
    display: inline-block;
    padding: 0 1em;
    border-right: solid 1px #FFFFFF;
}

footer .box ul li:nth-last-child(1) {
    border: none;
}

footer .box ul li a {
    font-size: 14px;
    color: #FFFFFF;
    text-decoration: none;
}

footer .box ul li a:hover {
    text-decoration: underline;
}

footer .box p {
    font-size: 11px;
}

/** parts **/

article.web-form {
    width: 100%;
    max-width: 1180px;
    padding: 0 40px;
    margin: 0 auto 0;
}

.centered-page-title {
    font-size: 35px;
    font-weight: 500;
    line-height: 1.3;
    margin: 0 auto 30px;
    text-align: center;
}

.step-remain {
    font-size: 17px;
    font-weight: 500;
    margin: 0 0 20px;
}

.step-remain:first-letter {
    font-size: 25px;
}

.step-remain>span {
    margin: 0 5px;
    border-bottom: solid 2px var(--color01);
}

.step-remain .remaining {
    color: var(--color01);
    font-size: 25px;
}

.flow-step {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    margin: 0 auto 160px;
}

.flow-step li {
    position: relative;
    z-index: 0;
    width: 30%;
    height: 80px;
    padding: 0.5em 0.5em 0.5em 80px;
    border: solid 2px var(--color01);
    border-radius: 10px;
}

.flow-step li p {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color01);
}

.flow-step li p>span {
    color: #000;
    font-size: 17px;
    font-weight: 500;
}

.flow-step li.flow-1 {
    background: url("../img/flow01.svg") no-repeat left 5px center / auto 100%;
}

.flow-step li.flow-2 {
    background: url("../img/flow02.svg") no-repeat left 5px center / auto 100%;
}

.flow-step li.flow-3 {
    background: url("../img/flow03.svg") no-repeat left 5px center / auto 100%;
}

.flow-step li.flow-1.active {
    background: url("../img/flow01.svg") no-repeat left 5px center / auto 100%, #F6E9E9;
}

.flow-step li.flow-2.active {
    background: url("../img/flow02.svg") no-repeat left 5px center / auto 100%, #F6E9E9;
}

.flow-step li.flow-3.active {
    background: url("../img/flow03.svg") no-repeat left 5px center / auto 100%, #F6E9E9;
}

.flow-step li.flow-1::after,
.flow-step li.flow-2::after {
    position: absolute;
    z-index: 0;
    display: block;
    content: "";
    clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
    width: 16px;
    height: 18px;
    background: #C8C8C8;
    margin: auto;
    top: 0;
    bottom: 0;
    left: 107%;
}

.fukidashi-active,
.fukidashi-done {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column;
    width: 80%;
    height: 80px;
    line-height: 1.3;
    text-align: center;
    color: #FFFFFF;
    font-size: 16px;
    font-weight: 700;
    background: var(--color01);
    border-radius: 10px;
    margin: auto;
    left: 0;
    right: 0;
    top: calc(100% + 15px);
}

.fukidashi-active::before,
.fukidashi-done::before {
    position: absolute;
    z-index: 0;
    display: block;
    content: "";
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    width: 10px;
    height: 10px;
    background: var(--color01);
    margin: auto;
    left: 0;
    right: 0;
    bottom: 99%;
}

.fukidashi-button a {
    display: inline-block;
    background: #FFFFFF;
    color: #9A9A9A;
    font-weight: 500;
    padding: 0.25em 0.5em;
    text-decoration: none;
    margin: 10px auto 0;
    border-radius: 4px;
}

.step1-choose>h1,
.choose-trial-date h1,
.step3 h1 {
    position: relative;
    z-index: 0;
    font-size: 35px;
    line-height: 1.4;
    text-align: center;
    padding: 0 0 20px;
    margin: 0 auto 40px;
}

.step1-choose>h1::after,
.choose-trial-date h1::after,
.step3 h1::after {
    position: absolute;
    z-index: 0;
    content: "";
    width: 50px;
    height: 4px;
    background: var(--color04);
    margin: auto;
    left: 0;
    right: 0;
    bottom: 0;
}

/**step1**/

.to-start {
    text-align: right;
    margin: 0 0 10px;
}

.to-start a {
    display: inline-block;
    color: #FFFFFF;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
    padding: 0.25em 0.5em;
    background: #C5C5C5;
    border-radius: 4px;
    text-decoration: none;
}

.choose-area,
.choose-pref,
.choose-school {
    border-top: solid 1px #E0DBDB;
}

.choose-area h1,
.choose-pref h1,
.choose-school h1,
.flow.flow_confirm>h1 {
    font-size: 20px;
    font-weight: 500;
    margin: 0 0 30px;
    padding: 10px 0;
}

.choose-area h1::before,
.choose-pref h1::before,
.choose-school h1::before,
.flow.flow_confirm>h1::before {
    display: inline-block;
    vertical-align: middle;
    content: "";
    width: 1em;
    height: 0.8em;
    clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
    background: var(--color04);
    margin: 0 0.5em 0 0;
}

.choose-area .area-map {
    position: relative;
    z-index: 0;
    width: 100%;
    max-width: 650px;
    aspect-ratio: 650 / 620;
    margin: 0 auto;
    background: url("../img/map.svg") no-repeat center / cover;
}

.choose-area .area-map li {
    position: absolute;
    z-index: 0;
    width: 190px;
    background: #FFFFFF;
    border-radius: 99px;
}

.choose-area .area-map .area-map-tohoku {
    top: 15%;
    right: -5%;
}

.choose-area .area-map .area-map-kanto {
    top: 55%;
    right: 5%;
}

.choose-area .area-map .area-map-chubu {
    top: 42%;
    right: 45%;
}

.choose-area .area-map .area-map-kinki {
    top: 70%;
    left: 40%;
}

.choose-area .area-map .area-map-chugoku {
    top: 55%;
    left: 5%;
}

.choose-area .area-map .area-map-kyushu {
    top: 80%;
    left: -12%;
}

.choose-area .area-map li a {
    display: block;
    height: 100%;
    font-size: 20px;
    text-align: center;
    background: #FFFFFF;
    padding: 0.5em 1em;
    border-radius: 99px;
    box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
    text-decoration: none;
    transition: 0.5s;
}

.choose-area .area-map li a:hover {
    opacity: 0.5;
}

.choose-area .area-map .area-map-tohoku a {
    color: #51ACE0;
    border: solid 2px #51ACE0
}

.choose-area .area-map .area-map-kanto a {
    color: #E86350;
    border: solid 2px #E86350
}

.choose-area .area-map .area-map-chubu a {
    color: #E7AB45;
    border: solid 2px #E7AB45
}

.choose-area .area-map .area-map-kinki a {
    color: #664D49;
    border: solid 2px #664D49
}

.choose-area .area-map .area-map-chugoku a {
    color: #1F3984;
    border: solid 2px #1F3984
}

.choose-area .area-map .area-map-kyushu a {
    color: #539666;
    border: solid 2px #539666
}

.choose-pref .pref-map {
    display: none;
}

.choose-pref .pref-list li {
    height: 90px;
    line-height: 90px;
    margin: 0 0 10px;
}

.choose-pref .pref-list li a {
    position: relative;
    z-index: 0;
    display: block;
    height: 100%;
    color: #000000;
    font-size: 18px;
    padding: 0 60px;
    background: #F0EDED;
    border-radius: 99px;
    text-decoration: none;
}

.choose-pref .pref-list li a:hover {
    background: #D1CAC8;
}

.choose-pref .pref-list li a::before,
.choose-pref .pref-list li a::after {
    position: absolute;
    z-index: 1;
    display: block;
    content: "";
    margin: auto;
    top: 0;
    bottom: 0;
}

.choose-pref .pref-list li a::before {
    width: 8px;
    height: 8px;
    background: #FFFFFF;
    border-radius: 50%;
    left: 36px;
}

.choose-pref .pref-list li a::after {
    width: 15px;
    height: 15px;
    background: #FFFFFF;
    clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
    right: 36px;
}

.choose-school .school-name-list {
    position: relative;
    z-index: 0;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 40px;
    margin: 0 auto 80px;
    background: #FDEFED;
    border-radius: 20px;
}

.choose-school .school-name-list::before {
    position: absolute;
    z-index: 0;
    display: block;
    content: "";
    width: 1px;
    height: calc(100% - 40px);
    background: #E0DBDB;
    top: 20px;
    left: 50%;
}

.choose-school .school-name-list li {
    position: relative;
    z-index: 0;
    width: 48%;
    font-size: 16px;
    line-height: 1.3;
    margin: 5px 0;
    padding: 0 0 0 20px;
}

.choose-school .school-name-list li::before {
    position: absolute;
    z-index: 0;
    display: block;
    content: "";
    width: 1em;
    height: 1em;
    background: var(--color04);
    border-radius: 50%;
    top: 5px;
    left: 0;
}

.choose-school .school-name-list li a {
    color: inherit;
    text-decoration: none;
}

.choose-school .school-name-list li span {
    display: inline-block;
    padding: 0.2em 0.5em;
    margin: 0 0 0 2em;
    background: #F3B1A7;
}

.school-list>li {
    position: relative;
    z-index: 0;
    display: flex;
    flex-flow: row-reverse;
    justify-content: space-between;
    align-items: flex-start;
    margin: 0 0 60px;
}

.school-list>li .school-photo {
    width: 24%;
}

.school-list>li .school-photo img {
    width: 100%;
    display: block;
}

.school-list>li .school-info {
    width: 73%;
}

.school-list>li .school-info h2 {
    font-size: 27px;
    font-weight: 700;
    color: var(--color04);
    line-height: 1.3;
    margin: 0 0 10px;
}

.school-list>li .school-info h2 a {
    color: inherit;
    text-decoration: none;
}

.school-list>li .school-info h2 a:hover {
    text-decoration: underline;
}

.school-list>li .school-info-address {
    position: relative;
    z-index: 0;
    font-size: 17px;
    padding: 0 0 10px 20px;
    margin: 0 0 20px;
    border-bottom: solid 1px #000000;
}

.school-list>li .school-info-address::before {
    position: absolute;
    z-index: 0;
    display: block;
    content: "";
    width: 0.9em;
    height: 1.25em;
    background: url("../img/ico_address.svg") no-repeat center / cover;
    top: 7px;
    left: 0;
}

.school-list>li .moyori-title {
    color: var(--color04);
    font-size: 18px;
}

.school-list>li .moyori-text {
    font-size: 16px;
    line-height: 1.7;
}

.school-list>li .school-choice {
    position: absolute;
    z-index: 1;
    width: 220px;
    height: 60px;
    line-height: 60px;
    text-align: center;
    bottom: 0;
    right: 0;
}

.school-list>li .school-choice a {
    display: block;
    height: 100%;
    background: var(--color04);
    text-decoration: none;
    color: #FFFFFF;
    font-size: 18px;
    font-weight: 500;
    border-radius: 99px;
}

.school-list>li .school-choice a:hover {
    opacity: 0.5;
}

@media screen and (max-width: 950px) {
    .school-list>li {
        padding: 0 0 80px;
    }

    .school-list>li .school-choice {
        width: 200px;
        height: 60px;
        line-height: 60px;
    }

    .school-list>li .school-choice a {
        font-size: 16px;
    }
}




/**step2**/

.trial-dates {
    width: 100%;
    max-width: 1100px;
    padding: 50px 20px 100px;
    margin: 0 auto 100px;
    background: #FDEFED;
}

.trial-dates>.date_area {
    width: 100%;
    max-width: 850px;
    margin: 0 auto;
}

.trial-dates>.date_area .trial-dates-head,
.trial-dates>.date_area .trial-dates-content {
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    flex-wrap: wrap;
}

.trial-dates>.date_area .trial-dates-head p {
    width: calc(96.5% / 7);
    height: 30px;
    line-height: 30px;
    text-align: center;
    font-size: 15px;
    color: #FFFFFF;
    margin: 0 0.5% 0.5% 0;
    background: #AEAEAE;
    border-radius: 5px 5px 0 0;
}

.trial-dates>.date_area .trial-dates-head p.sun {
    background: var(--color01);
}

.trial-dates>.date_area .trial-dates-head p.sat {
    background: #006DCE;
    margin-right: 0;
}

.trial-dates>.date_area .trial-dates-content {
    position: relative;
    z-index: 0;
}

.trial-dates>.date_area .trial-dates-content .date {
    width: calc(96.5% / 7);
    font-size: 15px;
    text-align: center;
    padding: 20px 0;
    margin: 0 0.5% 0.5% 0;
    background: #FFFFFF;
    cursor: pointer;
}

.trial-dates>.date_area .trial-dates-content .date.unreservable {
    pointer-events: none;
}

.trial-dates>.date_area .trial-dates-content .date.checked {
    box-shadow: inset 0 0 0 4px var(--color01);
}

.trial-dates>.date_area .trial-dates-content .date.saturday {
    background: #E5F0FA;
    margin-right: 0;
}

.trial-dates>.date_area .trial-dates-content .date.sunday {
    background: #EDD0D1;
    cursor: default;
}

/* 空白セルのスタイル */
.trial-dates>.date_area .trial-dates-content .date.empty-cell {
    background: transparent;
    cursor: default;
    pointer-events: none;
}

.trial-dates>.date_area .trial-dates-content .date>span.reservable {
    display: block;
    width: 70px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    color: #FFFFFF;
    margin: 5px auto 0;
    border-radius: 4px;
}

.trial-dates>.date_area .trial-dates-content .date.reservable>span.reservable {
    background: #97CDEC;
}

.trial-dates>.date_area .trial-dates-content .date.unreservable>span.reservable {
    background: #D4624A;
}

.trial-dates>.date_area .trial-dates-content .trial-times {
    position: absolute;
    z-index: 1;
    display: flex;
    justify-content: flex-start;
    align-items: stretch;
    width: auto;
    background: #FFFFFF;
    border: solid 3px #C8C8C8;
    border-radius: 8px;
    padding: 30px;
    margin: auto;
    left: 0;
    right: 0;
    bottom: -180px;
    cursor: default;
    pointer-events: none;
}

.trial-dates>.date_area .trial-dates-content .trial-times::before,
.trial-dates>.date_area .trial-dates-content .trial-times::after {
    position: absolute;
    z-index: 1;
    display: block;
    content: "";
    width: 30px;
    height: 30px;
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    background: #FFFFFF;
    margin: auto;
    left: 0;
    right: 0;
    top: -23px;
}

.trial-dates>.date_area .trial-dates-content .trial-times::after {
    z-index: 0;
    background: #C8C8C8;
    top: -30px;
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time {
    display: block;
    flex: 0 0 auto;
    min-width: 65px;
    color: #FFFFFF;
    line-height: 1.2;
    padding: 10px 8px;
    margin: 0 4px 0 0;
    border-radius: 10px;
    text-decoration: none;
    pointer-events: auto;
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time:nth-last-of-type(1) {
    margin: 0;
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time.reservable {
    background: #97CDEC;
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time.is-few-in-stock {
    background: #F1BD8D;
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time.unreservable {
    background: #D4624A;
    pointer-events: none;
    cursor: default;
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time.reservable .reservable::before {
    content: "○ ";
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time.is-few-in-stock .reservable::before {
    content: "△ ";
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time.unreservable .reservable::before {
    content: "× ";
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time .hour-minute {
    display: block;
    font-size: 20px;
    font-weight: 500;
}

.trial-dates>.date_area .trial-dates-content .trial-times>a.time .reservable {
    display: block;
}

.contact-cta {
    text-align: center;
    padding: 40px 20px;
    margin: 0 auto;
    max-width: 600px;
}

.contact-cta__label {
    font-size: 13px;
    font-weight: 500;
    color: #888;
    letter-spacing: 0.1em;
    margin: 0 0 8px;
    line-height: 1;
}

.contact-cta__school {
    font-size: 16px;
    font-weight: 700;
    color: var(--color01);
    margin: 0 0 16px;
    line-height: 1.4;
}

.contact-cta__tel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: "Oswald", sans-serif;
    font-size: 36px;
    font-weight: 500;
    color: var(--color01);
    text-decoration: none;
    letter-spacing: 0.04em;
    padding: 12px 32px;
    border: 2px solid var(--color01);
    border-radius: 60px;
    transition: background 0.2s, color 0.2s;
    line-height: 1;
}

.contact-cta__tel:hover {
    background: var(--color01);
    color: #fff;
}

.contact-cta__icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
}

.contact-cta__note {
    font-size: 13px;
    color: #666;
    margin: 16px 0 0;
    line-height: 1.6;
}

/**step3**/

.input-area label {
    position: relative;
    z-index: 0;
    display: block;
    width: 100%;
    font-size: 16px;
    font-weight: 500;
    padding: 30px 0 0 50px;
    margin: 30px 0 10px;
    border-top: solid 1px #E0DBDB;
}

.input-area label .must {
    position: absolute;
    z-index: 0;
    width: 40px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 500;
    background: var(--color01);
    border-radius: 4px;
    top: 35px;
    left: 0;
}

.input-area label .mustnot {
    position: absolute;
    z-index: 0;
    width: 40px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 500;
    background: #539666;
    border-radius: 4px;
    top: 35px;
    left: 0;
}

.input-area label .supplement {
    display: inline-block;
    vertical-align: middle;
    font-size: 13px;
    font-weight: 300;
}

.input-area input {
    display: block;
}

.input-area input[type="text"],
.input-area input[type="email"],
.input-area input[type="tel"] {
    width: 100%;
    max-width: 760px;
    padding: 10px;
    border: solid 2px #C8C8C8;
    border-radius: 6px;
}

.input-area textarea {
    display: block;
    width: 100%;
    height: 170px;
    overflow-y: auto;
    padding: 10px;
    border: solid 2px #C8C8C8;
    border-radius: 6px;
}

.div-to-confirm {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 60px auto 0;
}

.div-to-confirm button,
.div-to-confirm a {
    position: relative;
    z-index: 0;
    width: 280px;
    height: 70px;
    line-height: 70px;
    text-align: center;
    padding: 0 1em;
    background: var(--color01);
    color: #FFFFFF;
    border-radius: 999px;
    cursor: pointer;
    text-decoration: none;
    transition: 0.5s;
}

.div-to-confirm button:disabled {
    opacity: 0.5;
    pointer-events: none;
}

.div-to-confirm button::after,
.div-to-confirm a::after {
    position: absolute;
    z-index: 0;
    display: block;
    content: "";
    width: 10px;
    height: 10px;
    border-right: solid 2px #FFFFFF;
    border-bottom: solid 2px #FFFFFF;
    transform: rotate(-45deg);
    margin: auto;
    top: 0;
    bottom: 0;
    right: 20px;
}

.div-to-confirm button:hover,
.div-to-confirm a:hover {
    opacity: 0.5;
}

.flow.flow_confirm {
    border-top: solid 1px #E0DBDB;
    margin: 80px auto 0;
}

.step2-chosen h1 span,
.step1-chosen h1 span {
    display: inline-block;
    color: #FFFFFF;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.3;
    margin: 0 0 10px;
    padding: 5px 10px;
    background: var(--color01);
    border-radius: 4px;
}

.flow.flow_confirm .school-list>li .school-choice {
    width: 180px;
    height: 40px;
    line-height: 40px;
}

.flow.flow_confirm .school-list>li .school-choice a {
    background: #C8C8C8;
    font-size: 16px;
    border-radius: 4px;
}

.step2-chosen .trial-date {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.step2-chosen .trial-date .trial-date-chosen {
    font-size: 27px;
    font-weight: 700;
}

.step2-chosen .trial-date p a {
    display: inline-block;
    width: auto;
    min-width: 60px;
    height: 40px;
    line-height: 40px;
    padding: 0 5px;
    margin: 0 0 0 50px;
    text-align: center;
    background: #C8C8C8;
    color: #FFFFFF;
    font-weight: 500;
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
}

dd.input {
    position: relative;
    z-index: 0;
    width: 100%;
}

dd.input.textarea {
    max-width: 100%;
}

.input-modify,
.textarea-modify {
    width: 100%;
    max-width: 760px;
}

#modify-mail.input-modify p {
    line-height: 2;
    text-align: left;
}

.textarea-modify {
    max-width: 100%;
}

.input-chosen {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.input-chosen .input-text {
    width: 100%;
    max-width: 760px;
    padding: 6px 10px;
    border: solid 2px #C8C8C8;
    border-radius: 6px;
}

.textarea-chosen {
    width: 100%;
    display: flex;
    flex-flow: column;
    align-items: flex-end;
}

.textarea-chosen .textarea-text {
    display: block;
    width: 100%;
    height: 170px;
    overflow-y: auto;
    padding: 10px;
    border: solid 2px #C8C8C8;
    border-radius: 6px;
}

.fix-button {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin: 10px 0 0;
}

.fix-button button,
.input-chosen button,
.textarea-chosen button {
    display: inline-block;
    width: auto;
    min-width: 60px;
    height: 50px;
    line-height: 50px;
    padding: 0 5px;
    margin: 0 0 0 10px;
    text-align: center;
    background: #C8C8C8;
    color: #FFFFFF;
    font-weight: 500;
    border-radius: 4px;
    cursor: pointer;
}

.textarea-chosen button {
    margin: 10px 0 0;
}

.fix-button button.cancel {
    width: 100px;
}

.fix-button button.fix {
    background: #F00;
}

.error,
.error2 {
    width: 500px;
    font-size: 16px;
    background: #F00;
}

.error::after,
.error2::after {
    border-top: 14px solid #F00;
}

.centered-text.policy {
    font-weight: 500;
    text-align: center;
    margin: 100px auto 30px;
}

.centered-text.policy a {
    color: var(--color01);
    text-decoration: none;
}

.centered-text.policy a:hover {
    text-decoration: underline;
}

.free-trial-confirm .to-confirm {
    width: 420px;
    height: auto;
    line-height: 1.7;
    padding: 20px;
    font-size: 26px;
}

.free-trial-confirm .div-to-confirm {
    margin: 30px auto 0;
}

.free-trial-confirm .to-confirm span {
    display: block;
    font-size: 16px;
}


/** form add parts **/

.input-area select {
    width: 100%;
    padding: 10px;
    border: solid 2px #C8C8C8;
}

.input-area .select_outer {
    position: relative;
    display: inline-block;
    width: auto;
    min-width: 200px;
}

.input-area .select_outer::after {
    position: absolute;
    display: block;
    content: "";
    width: 8px;
    height: 8px;
    border-right: solid 2px #C8C8C8;
    border-bottom: solid 2px #C8C8C8;
    pointer-events: none;
    margin: auto;
    top: 0;
    bottom: 5px;
    right: 20px;
    transform: rotate(45deg);
}

.input-area label.label_select {
    position: relative;
    z-index: 0;
    display: inline-block;
    width: auto;
    font-size: 16px;
    font-weight: 400;
    padding: 0 0 0 30px;
    margin: 0 20px 10px 0;
    border: none;
    line-height: 1.3;
    cursor: pointer;
}

.input-area label.label_select input[type="radio"],
.input-area label.label_select input[type="checkbox"] {
    display: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}


.input-area label.label_select input[type="radio"]+span::before {
    position: absolute;
    display: block;
    content: "";
    width: 20px;
    height: 20px;
    border: solid 2px #C8C8C8;
    border-radius: 50%;
    box-shadow: inset 0 0 0 6px #FFFFFF;
    top: -2px;
    left: 0;
}

.input-area label.label_select input[type="radio"]:checked+span::before {
    background: var(--color01);
}

.input-area label.label_select input[type="checkbox"]+span::before,
.input-area label.label_select input[type="checkbox"]+span::after {
    position: absolute;
    display: block;
    content: "";
}

.input-area label.label_select input[type="checkbox"]+span::before {
    width: 20px;
    height: 20px;
    border: solid 2px #C8C8C8;
    border-radius: 4px;
    top: 0;
    left: 0;
}

.input-area label.label_select input[type="checkbox"]+span::after {
    position: absolute;
    display: none;
    content: "";
    width: 0.3em;
    height: 0.65em;
    border-right: solid 2px #FFFFFF;
    border-bottom: solid 2px #FFFFFF;
    transform: rotate(40deg);
    left: 0.55em;
    top: 0.25em;
    z-index: 1;
}

.input-area label.label_select input[type="checkbox"]:checked+span::before {
    background: var(--color01);
}

.input-area label.label_select input[type="checkbox"]:checked+span::after {
    display: block;
}

/** complete **/

.free-trial-complete .centered-description-bold {
    font-size: 1.2em;
    font-weight: 700;
    text-align: center;
    margin: 0 auto 10px;
}

.free-trial-complete .centered-text {
    text-align: center;
}

.free-trial-complete .centered-text-bold {
    text-align: center;
    font-weight: 700;
}

.free-trial-complete .inquiry-tel {
    text-align: center;
    margin: 50px auto;
}

.free-trial-complete .inquiry-tel .centered-text-bold {
    color: var(--color01);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.2;
    margin: 0 auto 10px;
}

.free-trial-complete .inquiry-tel .centered-text-bold.tel span {
    position: relative;
    z-index: 0;
    display: inline-block;
    font-family: "Oswald", sans-serif;
    font-size: 70px;
    font-weight: 400;
    padding: 0 0 0 65px;
}

.free-trial-complete .inquiry-tel .centered-text-bold.tel span::before {
    position: absolute;
    z-index: 1;
    display: block;
    content: "";
    width: 52px;
    height: 60px;
    background: url("../img/ico_tel.png") no-repeat center / cover;
    margin: auto;
    top: 17px;
    left: 0;
}


.free-trial-complete .notice {
    max-width: 1000px;
    margin: 50px auto 100px;
    padding: 0 0 50px;
    border: solid 3px var(--color01);
}

.free-trial-complete .notice>h1 {
    color: #FFFFFF;
    font-size: 25px;
    width: 100%;
    height: 60px;
    line-height: 60px;
    text-align: center;
    background: var(--color01);
    margin: 0 0 30px;
}

.free-trial-complete .notice .notice-text {
    font-size: 20px;
    font-weight: 500;
    color: var(--color01);
    padding: 0 50px;
}

.free-trial-complete .centered-description-bold strong {
    color: #FFFFFF;
    font-weight: 700;
    background: var(--color01);
    padding: 0 0.2em;
}

.free-trial-complete .notice-steps {
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 30px auto 40px;
    padding: 0 50px;
}

.free-trial-complete .notice-steps li {
    text-align: center;
    line-height: 1.5;
}

.free-trial-complete .notice-steps li span {
    font-weight: 500;
}

.free-trial-complete .notice-steps li img {
    max-width: 100%;
    display: block;
    margin: 0 auto 10px;
}

/************************************
SP
************************************/

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

    body {
        -webkit-text-size-adjust: 100%;
        font-size: 14px;
    }

    .pc_cont {
        display: none !important;
    }

    .sp_cont {
        display: block !important;
    }

    header.common {
        justify-content: flex-start;
        height: 70px;
        padding: 0 5%;
        margin: 0 auto 20px;
    }

    header.common .logo {
        position: static;
        width: auto;
        height: auto;
        margin: 0;
    }

    header.common .logo .logo-main {
        font-size: 15px;
        letter-spacing: 0.08em;
    }

    header.common .logo .logo-sub {
        font-size: 10px;
        letter-spacing: 0.18em;
    }

    header.common .header_catch {
        display: none;
    }

    footer .box {
        display: block;
        padding: 20px 5%;
    }

    footer .box ul {
        display: block;
        margin: 0 auto 20px;
    }

    footer .box ul li a {
        font-size: 12px;
    }

    footer .box p {
        font-size: 10px;
        text-align: center;
    }

    /** parts **/

    article.web-form {
        padding: 0 5%;
        margin: 0 auto 30px;
    }

    .centered-page-title {
        font-size: 24px;
        margin: 0 auto 50px;
    }

    .step-remain {
        font-size: 15px;
    }

    .step-remain:first-letter {
        font-size: 22px;
    }

    .step-remain .remaining {
        font-size: 22px;
    }
}


@media screen and (max-width: 900px) {
    .flow-step {
        margin: 0 auto 120px;
    }

    .flow-step li {
        width: 32%;
        height: 90px;
        text-align: center;
        padding: 40px 0 2%;
    }

    .flow-step li p {
        font-size: 12px;
    }

    .flow-step li p>span {
        font-size: 11px;
    }

    .flow-step li.flow-1 {
        background: url("../img/flow01.svg") no-repeat top center / 40px;
    }

    .flow-step li.flow-2 {
        background: url("../img/flow02.svg") no-repeat top center / 40px;
    }

    .flow-step li.flow-3 {
        background: url("../img/flow03.svg") no-repeat top center / 40px;
    }

    .flow-step li.flow-1.active {
        background: url("../img/flow01.svg") no-repeat top center / 40px, #F6E9E9;
    }

    .flow-step li.flow-2.active {
        background: url("../img/flow02.svg") no-repeat top center / 40px, #F6E9E9;
    }

    .flow-step li.flow-3.active {
        background: url("../img/flow03.svg") no-repeat top center / 40px, #F6E9E9;
    }

    .flow-step li.flow-1::after,
    .flow-step li.flow-2::after {
        display: none;
    }

    .fukidashi-active,
    .fukidashi-done {
        width: 100%;
        height: 50px;
        font-size: 12px;
        top: calc(100% + 10px);
    }

    .fukidashi-button a {
        padding: 0.1em 0.5em;
        margin: 5px auto 0;
    }
}

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

    .step1-choose>h1,
    .choose-trial-date h1,
    .step3 h1 {
        font-size: 24px;
        margin: 0 auto 40px;
    }

    .to-start a {
        font-size: 14px;
    }

    .choose-area h1,
    .choose-pref h1,
    .choose-school h1,
    .flow.flow_confirm>h1 {
        font-size: 14px;
    }

    /**step1**/

    .choose-area .area-map li {
        width: 100px;
    }

    .choose-area .area-map .area-map-tohoku {
        top: 0;
        right: auto;
        left: 0;
    }

    .choose-area .area-map .area-map-kanto {
        top: 0;
        right: auto;
        left: 105px;
    }

    .choose-area .area-map .area-map-chubu {
        top: 55px;
        right: auto;
        left: 0;
    }

    .choose-area .area-map .area-map-kinki {
        top: 55px;
        left: 105px;
    }

    .choose-area .area-map .area-map-chugoku {
        top: 110px;
        left: 0;
    }

    .choose-area .area-map .area-map-kyushu {
        top: 110px;
        left: 105px;
    }

    .choose-area .area-map li a {
        font-size: 13px;
        padding: 0.3em 0.5em
    }

    .choose-pref .pref-list li {
        height: auto;
        line-height: 1.4;
    }

    .choose-pref .pref-list li a {
        font-size: 14px;
        padding: 1em 40px;
    }

    .choose-pref .pref-list li a::before {
        width: 6px;
        height: 6px;
        left: 20px;
    }

    .choose-pref .pref-list li a::after {
        width: 10px;
        height: 10px;
        right: 20px;
    }

    .choose-school .school-name-list {
        display: block;
        padding: 5%;
        border-radius: 0;
    }

    .choose-school .school-name-list::before {
        display: none;
    }

    .choose-school .school-name-list::after {
        position: absolute;
        z-index: -1;
        display: block;
        content: "";
        width: 100vw;
        height: 100%;
        background: #FDEFED;
        margin: auto;
        top: 0;
        bottom: 0;
        left: -100%;
        right: -100%;
    }

    .choose-school .school-name-list li {
        width: 100%;
        font-size: 15px;
        margin: 0 0 10px;
    }

    .choose-school .school-name-list li::before {
        top: 3px;
    }

    .choose-school .school-name-list li span {
        display: block;
        width: 4em;
        padding: 0 0.25em;
        text-align: center;
        margin: 5px 0 0;
    }

    .school-list>li {
        display: flex;
        flex-flow: column;
        justify-content: center;
        margin: 0 0 40px;
    }

    .school-list>li .school-photo {
        order: 0;
        width: 100%;
        margin: 0 auto 10px;
    }

    .school-list>li .school-info {
        order: 1;
        width: 100%;
        margin: 0 auto 20px;
    }

    .school-list>li .school-info h2 {
        font-size: 17px;
    }

    .school-list>li .school-info-address {
        font-size: 14px;
        line-height: 1.5;
    }

    .school-list>li .school-info-address::before {
        top: 3px;
    }

    .school-list>li .moyori-title {
        font-size: 14px;
    }

    .school-list>li .moyori-text {
        font-size: 13px;
    }

    .school-list>li .school-choice {
        position: static;
        order: 2;
        width: 220px;
        height: 55px;
        line-height: 55px;
        margin: 0 auto;
    }

    .school-list>li .school-choice a {
        font-size: 14px;
    }

    /**step2**/

    .trial-dates {
        position: relative;
        z-index: 1;
        padding: 30px 0;
        margin: 0 auto 50px;
        background: none;
    }

    .trial-dates::after {
        position: absolute;
        z-index: -1;
        display: block;
        content: "";
        width: 100vw;
        height: 100%;
        background: #FDEFED;
        margin: auto;
        top: 0;
        bottom: 0;
        left: -100%;
        right: -100%;
    }

    .trial-dates>.date_area .trial-dates-head {
        display: none;
    }

    .trial-dates>.date_area .trial-dates-content {
        position: static;
        display: block;
    }

    .trial-dates>.date_area .trial-dates-content .date {
        position: relative;
        z-index: 0;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        width: 100%;
        text-align: left;
        padding: 0 20px 0 0;
        ;
        margin: 0 0 5px;
        border-radius: 4px;
    }

    .trial-dates>.date_area .trial-dates-content .date.checked {
        box-shadow: none;
        margin: 0 0 220px;
    }



    /* 空白セルのスタイル（スマホ版） */
    .trial-dates>.date_area .trial-dates-content .date.empty-cell {
        display: none;
    }

    .trial-dates>.date_area .trial-dates-content .date>span.weekday {
        display: none;
    }

    .trial-dates>.date_area .trial-dates-content .date>span.reservable {
        position: absolute;
        z-index: 0;
        width: 50px;
        height: 20px;
        line-height: 20px;
        margin: auto;
        top: 0;
        bottom: 0;
        right: 10px;
    }

    .trial-dates>.date_area .trial-dates-content .date::before {
        display: block;
        width: 50px;
        height: 50px;
        text-align: center;
        line-height: 50px;
        margin: 0 20px 0 0;
        background: #AEAEAE;
        color: #FFFFFF;
        border-radius: 4px 0 0 4px;
    }

    .trial-dates>.date_area .trial-dates-content .date.sunday::before {
        content: "日";
        background: var(--color01);
    }

    .trial-dates>.date_area .trial-dates-content .date.monday::before {
        content: "月";
    }

    .trial-dates>.date_area .trial-dates-content .date.tuesday::before {
        content: "火";
    }

    .trial-dates>.date_area .trial-dates-content .date.wednesday::before {
        content: "水";
    }

    .trial-dates>.date_area .trial-dates-content .date.thursday::before {
        content: "木";
    }

    .trial-dates>.date_area .trial-dates-content .date.friday::before {
        content: "金";
    }

    .trial-dates>.date_area .trial-dates-content .date.saturday::before {
        content: "土";
        background: #006DCE;
    }

    .trial-dates>.date_area .trial-dates-content .trial-times {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        width: 100%;
        padding: 10px 5% 5px;
        bottom: auto;
        top: 65px;
        justify-content: center;
    }

    .trial-dates>.date_area .trial-dates-content .trial-times::before,
    .trial-dates>.date_area .trial-dates-content .trial-times::after {
        width: 20px;
        height: 20px;
        top: -15px;
    }

    .trial-dates>.date_area .trial-dates-content .trial-times::after {
        top: -20px;
    }

    .trial-dates>.date_area .trial-dates-content .trial-times>a.time {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: auto;
        min-width: 48px;
        padding: 5px 6px;
        margin: 0;
        border-radius: 5px;
    }

    .trial-dates>.date_area .trial-dates-content .trial-times>a.time .hour-minute {
        font-size: 15px;
    }

    .trial-dates>.date_area .trial-dates-content .trial-times>a.time .reservable {
        font-size: 13px;
    }

    .contact-cta {
        padding: 30px 16px;
    }

    .contact-cta__tel {
        font-size: 26px;
        padding: 10px 24px;
        gap: 8px;
    }

    .contact-cta__icon {
        width: 22px;
        height: 22px;
    }

    /**step3**/

    .input-area label {
        font-size: 16px;
        padding: 20px 0 0 40px;
        margin: 20px 0 10px;
        border: none;
    }

    .input-area label::before {
        position: absolute;
        z-index: 0;
        display: block;
        content: "";
        width: 200vw;
        height: 1px;
        background: #E0DBDB;
        margin: auto;
        top: 0;
        left: -100%;
        right: -100%;
    }

    .input-area label .must {
        width: 30px;
        height: 20px;
        line-height: 20px;
        font-size: 12px;
        top: 27px;
    }

    .input-area label .mustnot {
        width: 30px;
        height: 20px;
        line-height: 20px;
        font-size: 12px;
        top: 27px;
    }

    .input-area label .supplement {
        font-size: 13px;
        line-height: 1.4;
    }

    .input-area textarea {
        height: 200px;
    }

    .div-to-confirm {
        margin: 40px auto 0;
    }

    .div-to-confirm button {
        width: 220px;
        height: 55px;
        line-height: 55px;
    }

    .div-to-confirm button::after {
        width: 8px;
        height: 8px;
        right: 15px;
    }

    .flow.flow_confirm {
        margin: 40px auto 0;
    }

    .step2-chosen h1 span,
    .step1-chosen h1 span {
        font-size: 14px;
    }

    .flow.flow_confirm .school-list>li .school-choice {
        width: 160px;
        height: 30px;
        line-height: 30px;
        margin: 0;
    }

    .flow.flow_confirm .school-list>li .school-choice a {
        font-size: 14px;
    }

    .step2-chosen .trial-date .trial-date-chosen {
        font-size: 21px;
    }

    .step2-chosen .trial-date p a {
        min-width: 60px;
        height: 30px;
        line-height: 30px;
    }

    .input-chosen {
        flex-flow: column;
        align-items: flex-end;
    }

    .input-chosen .textarea-text {
        width: 100%;
    }

    .textarea-chosen .textarea-text {
        height: 200px;
    }

    .fix-button {
        margin: 0;
    }

    .fix-button button,
    .input-chosen button,
    .textarea-chosen button {
        width: 50px;
        height: 30px;
        line-height: 30px;
        margin: 10px 0 0 10px;
    }

    .error,
    .error2 {
        width: 300px;
        font-size: 14px;
        line-height: 1.5;
    }

    .free-trial-confirm .to-confirm {
        width: 300px;
        padding: 10px;
        font-size: 21px;
    }

    .free-trial-confirm .to-confirm span {
        font-size: 14px;
    }

    .centered-text.policy {
        margin: 60px auto 30px;
    }

    /** complete **/

    .free-trial-complete .inquiry-tel {
        margin: 40px auto;
    }

    .free-trial-complete .inquiry-tel .centered-text-bold {
        font-size: 16px;
    }

    .free-trial-complete .inquiry-tel .centered-text-bold.tel span {
        font-size: 40px;
        padding: 0 0 0 40px;
    }

    .free-trial-complete .inquiry-tel .centered-text-bold.tel span::before {
        width: 32px;
        height: 36px;
        top: 8px;
    }


    .free-trial-complete .notice {
        margin: 40px auto 50px;
        padding: 0 0 30px;
    }

    .free-trial-complete .notice>h1 {
        font-size: 17px;
        width: 100%;
        height: auto;
        line-height: 1.3;
        padding: 0.5em;
    }

    .free-trial-complete .notice .notice-text {
        font-size: 14px;
        line-height: 1.5;
        padding: 0 20px;
    }

    .free-trial-complete .notice-steps {
        display: block;
        margin: 30px auto 40px;
        padding: 0 20px;
    }

    .free-trial-complete .notice-steps .notice-arrow {
        margin: 20px auto;
    }

    .free-trial-complete .notice-steps .notice-arrow img {
        transform: rotate(90deg);
    }

    .free-trial-complete .centered-text.notice-bikou {
        padding: 0 20px;
        text-align: left;
    }

    /** form add parts **/
    .input-area label.label_select {
        font-size: 14px;
    }

    .input-area label.label_select::before {
        display: none;
    }
}

/* Header Navigation */
.header-nav {
    position: absolute !important;
    top: 50% !important;
    right: 0px !important;
    margin-right: 0 !important;
    z-index: 999 !important;
    width: auto !important;
    transform: translateY(-50%) !important;
}

.homepage-btn {
    display: inline-block;
    padding: 4px 8px;
    background-color: #B71C1C;
    color: #fff;
    text-decoration: none;
    border-radius: 3px;
    font-size: 1.1rem;
    font-weight: normal;
    border: 1px solid #A63637;
    transition: all 0.2s ease;
    margin: 0;
}

.homepage-btn:hover {
    background-color: #A63637;
    transform: translateY(-1px);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Responsive styles for mobile */
@media screen and (max-width: 767px) {
    .header-nav {
        position: absolute !important;
        text-align: right;
        margin-top: 0;
        transform: none !important;
        top: 8px !important;
        right: 0px !important;
    }

    .homepage-btn {
        font-size: 1.0rem;
        padding: 3px 6px;
    }
}

/* === カレンダー空白セル === */
/* PC版 */
.trial-dates>.date_area .trial-dates-content .date.empty-cell {
    background: transparent;
    cursor: default;
    pointer-events: none;
}

/* スマホ版 */
@media screen and (max-width: 767px) {
    .trial-dates>.date_area .trial-dates-content .date.empty-cell {
        display: none !important;
    }
}

/* === 空白セル修正（最優先） === */
/* PC版 */
.trial-dates>.date_area .trial-dates-content .date.empty-cell {
    width: calc(96.5% / 7) !important;
    height: 100px !important;
    background: transparent !important;
    cursor: default !important;
    pointer-events: none !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* スマホ版 */
@media screen and (max-width: 767px) {
    .trial-dates>.date_area .trial-dates-content .date.empty-cell {
        display: none !important;
    }
}

/* === 日曜日の時間選択ボタンを完全非表示（VERSION 2.0） === */
/* PC版・スマホ版共通 */
.trial-dates>.date_area .trial-dates-content .date.sunday .trial-times,
.trial-dates>.date_area .trial-dates-content .date.sunday .time {
    display: none !important;
}

/* 日曜日セル全体のスタイル調整 */
.trial-dates>.date_area .trial-dates-content .date.sunday.unreservable {
    background: #f5f5f5 !important;
    cursor: default !important;
    pointer-events: none !important;
}

/* 日曜日の予約可テキストも非表示 */
.trial-dates>.date_area .trial-dates-content .date.sunday .reservable {
    display: none !important;
}