@charset "utf-8";

/* 変数定義 */
:root {
    --fgray: #bdbdbd;
    --fblack: #333;
    --fwhite: #fff;
    --fred: #ac0c0c;
}

/* スケジュールページ */
.p-page-course-schedule__anchor-wrap {
    background-color: #f6f0e0;
    border: 1px solid #9f894d;
    margin: 40px 0 calc(40px + 20 * (100vw - 375px) / 1545);
}
.p-page-course-schedule__anchor-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1em 1.5em;
    padding: calc(30px + 10 * (100vw - 375px) / 1545) calc(20px + 20 * (100vw - 375px) / 1545);
}
.p-page-course-schedule__anchor-list-link {
    display: block;
    color: #9f894d;
    text-decoration: none;
    font-family: "游明朝体", "Yu Mincho", "YuMincho", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", sans-serif;
    font-size: calc(16px + 4 * (100vw - 375px) / 1545);
}
.p-page-course-schedule__anchor-list-link:hover {
    color: #9f894d;
    text-decoration: none;
    opacity: 0.8;
}
.p-page-course-schedule__section {
    margin: 0 auto;
    max-width: 1100px;
    padding: calc(60px + 60 * (100vw - 375px) / 1545) 0;
}
.p-page-course-schedule__section:not(:last-of-type) {
    border-bottom: 1px solid #9f894d;
}
.p-page-course-schedule__section-title {
    font-size: calc(24px + 6 * (100vw - 375px) / 1545);
    line-height: 1.65;
    margin-bottom: calc(40px + 50 * (100vw - 375px) / 1545);
}
.p-page-course-schedule__section-block {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px calc(40px + 20 * (100vw - 375px) / 1545);
}
.p-page-course-schedule__section-block:not(:last-of-type) {
    margin-bottom: calc(60px + 40 * (100vw - 375px) / 1545);
}
.p-page-course-schedule__section-block-heading {
    font-size: calc(18px + 6 * (100vw - 375px) / 1545) !important;
    margin-bottom: 1em !important;
}
.p-page-course-schedule__section-block-heading-sub {
    font-size: calc(16px + 4 * (100vw - 375px) / 1545) !important;
    margin-bottom: 0.5em !important;
}
.p-page-course-schedule__section-block-list-item {
    align-items: center;
    border-bottom: 2px dashed #dbdbdb;
    padding: 0.5em 0;
    display: grid;
    grid-template-columns: 70% 1fr;
    gap: 0.5em 1em;
}
.p-page-course-schedule__section-block-list-name {
    font-weight: bold;
}
.p-page-course-schedule__section-block-list-link {
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
    color: #333;
    width: 100%;
    border: 1px solid #ccc;
    background: linear-gradient(to bottom, #fdfbfb 0%, #ebedee 100%);
    padding: 0.5em 0;
    min-height: 2em;
}
.p-page-course-schedule__section-block-list-link:hover {
    text-decoration: none;
    color: #333;
    opacity: 0.8;
}
.p-page-course-schedule__section-block-profile {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.p-page-course-schedule__section-block-profile-figure {
    margin-bottom: 0 !important;
}
.p-page-course-schedule__section-block-profile-figure-img {
    max-width: 200px;
    height: auto;
    margin: 0;
    aspect-ratio: 253 / 300;
    object-fit: cover;
    object-position: center top;
    width: 100%;
}
.p-page-course-schedule__section-block-profile-figure-name {
    margin-top: 0.25em;
    font-size: calc(18px + 6 * (100vw - 375px) / 1545);
    font-family: "游明朝体", "Yu Mincho", "YuMincho", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", sans-serif;
}
.p-page-course-schedule__section-block-profile-link {
    display: block;
    color: #9f894d;
    text-decoration: none;
    font-family: "游明朝体", "Yu Mincho", "YuMincho", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", sans-serif;
    font-size: calc(16px + 4 * (100vw - 375px) / 1545);
    background-color: #f6f0e0;
    border: 1px solid #9f894d;
    padding: 0.25em 1em;
    margin-top: 0.5em;
}
.p-page-course-schedule__section-block-profile-link:hover {
    color: #9f894d;
    text-decoration: none;
    opacity: 0.8;
}
.p-page-course-schedule__no {
    text-align: center;
    font-size: calc(16px + 4 * (100vw - 375px) / 1545);
}
@media screen and (min-width: 771px) {
    .p-page-course-schedule__section-block {
        grid-template-columns: 65% 1fr;
    }
    .p-page-course-schedule__section-block-profile-figure-img {
        max-width: 338px;
    }
}

/* スケジュールショートコード */
/* .p-shortcode-course-schedule__wrap {
    display: none !important;
} */
.p-shortcode-course-schedule__no {
    margin-bottom: 1.5em !important;
}
.p-shortcode-course-schedule__block {
    display: flex;
    flex-wrap: wrap;
    gap: 30px 40px;
    align-items: flex-start;
    margin: 0 0 calc(30px + 30 * (100vw - 375px) / 1545) !important;
}
.p-shortcode-course-schedule__main {
    margin: 0 !important;
}
.p-shortcode-course-schedule__heading {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545) !important;
    margin-bottom: 1em !important;
}
.p-shortcode-course-schedule__heading-sub {
    font-family: "游ゴシック体", "Yu Gothic", "YuGothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", sans-serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    color: #333 !important;
    margin-bottom: 0.5em !important;
}
.p-shortcode-course-schedule__heading-sub::before {
    content: "▪️";
}
.p-shortcode-course-schedule__list-item {
    align-items: center;
    border-bottom: 2px dashed #dbdbdb;
    padding: 0.5em 0;
    display: grid;
    grid-template-columns: 70% 1fr;
    gap: 0.5em 1em;
}
.p-shortcode-course-schedule__course-name {
    font-weight: bold;
}
.p-shortcode-course-schedule__apply {
    text-decoration: none;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
    color: #333;
    width: 100%;
    border: 1px solid #ccc;
    background: linear-gradient(to bottom, #fdfbfb 0%, #ebedee 100%);
    padding: 0.5em 0;
    min-height: 2em;
}
.p-shortcode-course-schedule__apply:hover {
    text-decoration: none;
    color: #333;
    opacity: 0.8;
}
.p-shortcode-course-schedule__aside {
    margin: 0 !important;
}
.p-shortcode-course-schedule__profile-image {
    max-width: 200px;
    height: auto;
    margin: 0;
    aspect-ratio: 253 / 300;
    object-fit: cover;
    object-position: center top;
    width: 100%;
}
.p-shortcode-course-schedule__profile {
    margin-top: 0 !important;
}
.p-shortcode-course-schedule__profile-figure {
    margin-bottom: 0 !important;
}
.p-shortcode-course-schedule__profile-name {
    margin-top: 0.25em;
    font-size: 16px;
}
.p-shortcode-course-schedule__profile-name-link {
    color: #997908;
    text-decoration: underline;
}
.p-shortcode-course-schedule__profile-name-link:hover {
    color: #997908;
    opacity: 0.8;
    text-decoration: underline;
}
@media screen and (min-width: 771px) {
    .p-shortcode-course-schedule__main {
        min-width: 450px;
    }
}
@media screen and (max-width: 770px) {
    .p-shortcode-course-schedule__main {
        width: 100%;
    }
    .p-shortcode-course-schedule__aside {
        width: 100%;
    }
}

/* フォーム */
/* =========================================================
  .p-form (WPForms)
========================================================= */
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field {
}

/* SP padding */
@media screen and (max-width: 600px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field {
        padding: 1px 1px 10px;
    }
}

/* input/select 共通 */
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="text"],
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="tel"],
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="email"],
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="number"],
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field select {
    height: auto;
    font-size: calc(16px + 2 * (100vw - 375px) / 1545) !important;
    line-height: 1.2;
    border: 1px solid var(--fgray);
    border-radius: 5px;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="text"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="tel"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="email"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="number"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field select {
        width: 90%;
        padding: 10px 15px !important;
    }
}

@media screen and (max-width: 600px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="text"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="tel"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="email"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field input[type="number"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field select {
        padding: 10px 15px !important;
    }
}

/* textarea */
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field textarea {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545) !important;
    line-height: 1.2;
    border: 1px solid var(--fgray);
    border-radius: 5px;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field textarea {
        padding: 10px 15px !important;
    }
}

@media screen and (max-width: 600px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field textarea {
        padding: 10px 15px !important;
    }
}

/* radio/checkbox input */
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-radio input[type="radio"],
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-checkbox input[type="checkbox"] {
    top: 4px !important;
    transform: scale(1.4) !important;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-radio input[type="radio"],
    .p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-checkbox input[type="checkbox"] {
        top: 0.3em !important;
    }
}

/* unchecked before border color */
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-radio input[type="radio"]:not(:checked)::before,
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-checkbox input[type="checkbox"]:not(:checked)::before {
    border-color: var(--fgray);
}

/* radio/checkbox label */
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-radio label,
.p-form.wpforms-container .wpforms-form .wpforms-field-container .wpforms-field.wpforms-field-checkbox label {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545) !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    color: var(--fblack) !important;
    cursor: pointer !important;
}

/* description */
.p-form.wpforms-container .wpforms-form .wpforms-field-description,
.p-form.wpforms-container .wpforms-form .wpforms-field-sublabel {
    font-weight: 500 !important;
}

.flatpickr-calendar div::after,
.flatpickr-calendar dl::after {
    content: none !important;
    display: none !important;
    clear: none !important;
}

/* =========================================================
  layout
========================================================= */
.p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column-33 {
    font-size: calc(18px + 6 * (100vw - 375px) / 1545) !important;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column-33 {
        width: 30%;
        border-bottom: 1px solid #eeeeef;
        background: #f7f7f7;
    }
    .p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column-67 {
        width: 70%;
        border-bottom: 1px solid #eeeeef;
    }
}

@media screen and (max-width: 600px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-layout {
        border-bottom: 1px solid #ccc;
        padding: 0.75em 0 !important;
    }
}

.p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column-67 .wpforms-field-label {
    display: none;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column .wpforms-field-date-time.p-form__date .wpforms-field-label {
    display: block;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column .wpforms-field-date-time.p-form__date .wpforms-field-row {
    flex-direction: row !important;
    justify-content: space-between !important;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column .wpforms-field-date-time.p-form__date .wpforms-field-row > div {
    width: 47.5% !important;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column .wpforms-field-date-time.p-form__date .wpforms-field-row {
        justify-content: inherit !important;
    }
}

/* =========================================================
  entry preview (通常)
========================================================= */
.p-form.wpforms-container .wpforms-form .wpforms-field-entry-preview .wpforms-entry-preview-layout .wpforms-entry-preview-row {
    gap: 0;
    margin-bottom: 0;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-entry-preview .wpforms-entry-preview-layout .wpforms-entry-preview-row .wpforms-entry-preview-column-33 {
    width: 0;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-entry-preview .wpforms-entry-preview-layout .wpforms-entry-preview-row .wpforms-entry-preview-column-67 {
        display: grid;
        grid-template-columns: 25% 75%;
        width: 100%;
    }
}

.p-form.wpforms-container .wpforms-form .wpforms-field-entry-preview .wpforms-entry-preview-layout .wpforms-entry-preview-row .wpforms-entry-preview-label {
    margin-bottom: 0;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-entry-preview .wpforms-entry-preview-layout .wpforms-entry-preview-row .wpforms-entry-preview-value {
    margin-bottom: 10px;
}

/* =========================================================
  entry preview (repeater)
========================================================= */
.p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row {
    gap: 0;
    margin-bottom: 0;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row .wpforms-entry-preview-column-33:nth-of-type(1) {
        display: none;
        width: 0;
    }
    .p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row .wpforms-entry-preview-column-33:nth-of-type(2) {
        width: 25%;
    }
    .p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row .wpforms-entry-preview-column-33:nth-of-type(3) {
        width: 75%;
    }
}

@media screen and (max-width: 600px) {
    .p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row .wpforms-entry-preview-column-33 {
        display: grid;
        grid-template-columns: 50% 1fr;
    }
    .p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row .wpforms-entry-preview-column-33:nth-of-type(1) {
        display: none;
    }
}

.p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row .wpforms-entry-preview-label {
    margin-bottom: 0;
}

.p-form.wpforms-container .wpforms-form .wpforms-entry-preview-repeater .wpforms-entry-preview-row .wpforms-entry-preview-value {
    margin-bottom: 10px;
}

/* =========================================================
  pagebreak/submit button（WPForms標準）
========================================================= */
.p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button,
.p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0 auto;
    font-size: calc(16px + 2 * (100vw - 375px) / 1545) !important;
    color: var(--fwhite) !important;
    cursor: pointer;
    background: var(--fblack) !important;
    border: none;
    border: 1px solid var(--fblack) !important;
    border-radius: 0;
    outline: none;
    transition: 0.5s ease-in-out !important;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button::after,
.p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit::after {
    position: absolute;
    top: 50%;
    right: 1em;
    content: "→";
    transition: all 0.2s;
    transform: translateY(-50%);
}

.p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button:hover,
.p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit:hover {
    color: var(--fwhite) !important;
    text-decoration: none;
    background: var(--fblack) !important;
    opacity: 0.8;
}

@media screen and (min-width: 601px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button,
    .p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit {
        gap: 15px;
        width: 350px !important;
        height: 60px;
        padding: 5px 25px;
    }
}

@media screen and (max-width: 600px) {
    .p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button,
    .p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit {
        gap: 10px;
        width: 100% !important;
        height: 50px;
        padding: 5px 20px;
    }
}

/* prev/next */
.p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button.wpforms-page-prev,
.p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit.wpforms-page-prev {
    margin-top: 30px !important;
    color: var(--fblack) !important;
    background: var(--fwhite) !important;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button.wpforms-page-prev:hover,
.p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit.wpforms-page-prev:hover {
    color: var(--fblack) !important;
    background: var(--fwhite) !important;
}

.p-form.wpforms-container .wpforms-form .wpforms-field-pagebreak button.wpforms-page-button.wpforms-page-next,
.p-form.wpforms-container .wpforms-form .wpforms-submit-container button.wpforms-submit.wpforms-page-next {
    margin-top: 30px !important;
}

/* =========================================================
  .p-form 独自要素
========================================================= */
.p-form__lead {
    margin-bottom: calc(40px + 60 * (100vw - 375px) / 1545) !important;
}

.p-form__heading {
    margin-right: 0.25em !important;
    font-size: calc(18px + 2 * (100vw - 375px) / 1545) !important;
    font-weight: bold !important;
    color: var(--fblack) !important;
}

.p-form__require {
    font-size: calc(12px + 2 * (100vw - 375px) / 1545) !important;
    font-weight: bold !important;
    color: var(--fred) !important;
}

/* agreement */
.p-form__agreement fieldset {
    display: flex !important;
    flex-direction: column-reverse;
    gap: 30px;
    align-items: flex-start;
    justify-content: flex-start;
}

/* privacy */
.p-form__privacy-text {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545) !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    color: var(--fblack) !important;
}
.p-form__privacy-link {
    color: var(--fred);
    text-decoration: underline;
    word-break: break-all;
    transition: all 0.5s;
}
.p-form__privacy-link:hover {
    color: var(--fred);
    text-decoration: underline;
    opacity: 0.8;
}

/* submit（独自クラス） */
.p-form__submit {
    position: relative !important;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    padding: 1em 2em !important;
    margin: 0 auto !important;
    font-size: calc(16px + 2 * (100vw - 375px) / 1545) !important;
    font-weight: 500 !important;
    color: var(--fwhite) !important;
    background: var(--fblack) !important;
    border: 1px solid var(--fblack) !important;
    border-radius: 0 !important;
    transition: 0.5s ease-in-out !important;
}

.p-form__submit::after {
    position: absolute;
    top: 50%;
    right: 1em;
    content: "→";
    transition: all 0.2s;
    transform: translateY(-50%);
}

.p-form__submit[type="submit"]:hover {
    color: var(--fwhite) !important;
    background: var(--fblack) !important;
}

@media screen and (min-width: 601px) {
    .p-form__submit {
        width: 350px !important;
    }
}

@media screen and (max-width: 600px) {
    .p-form__submit {
        width: 100% !important;
    }
}

/* tel/fax/postal */
.p-form__tel input,
.p-form__fax input {
    width: 300px !important;
}

.p-form__postal input {
    width: 260px !important;
}
