/***コンテンツ全体***/
/* Reset box-model and set borders */
/* ============================================ */

:where(.tour-guide-contents) *,
:where(.tour-guide-contents) ::before,
:where(.tour-guide-contents) ::after {
    box-sizing: border-box;
    border-style: solid;
    border-width: 0;
    min-width: 0;
}

/* Vertical rhythm */
:where(.tour-guide-contents) p,
:where(.tour-guide-contents) table,
:where(.tour-guide-contents) blockquote,
:where(.tour-guide-contents) address,
:where(.tour-guide-contents) pre,
:where(.tour-guide-contents) iframe,
:where(.tour-guide-contents) form,
:where(.tour-guide-contents) figure,
:where(.tour-guide-contents) dl {
    margin: 0;
}

/* Headings */
:where(.tour-guide-contents) h1,
:where(.tour-guide-contents) h2,
:where(.tour-guide-contents) h3,
:where(.tour-guide-contents) h4,
:where(.tour-guide-contents) h5,
:where(.tour-guide-contents) h6 {
    font-size: inherit;
    font-weight: inherit;
    margin: 0;
}

/* Lists */
:where(.tour-guide-contents) ul,
:where(.tour-guide-contents) ol {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Definition list */
:where(.tour-guide-contents) dt {
    font-weight: bold;
}

:where(.tour-guide-contents) dd {
    margin-left: 0;
}

/* Grouping content */
/* ============================================ */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

:where(.tour-guide-contents) hr {
    box-sizing: content-box;
    /* 1 */
    height: 0;
    /* 1 */
    overflow: visible;
    /* 2 */
    border-top-width: 1px;
    margin: 0;
    clear: both;
    color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

:where(.tour-guide-contents) pre {
    font-family: monospace, monospace;
    /* 1 */
    font-size: inherit;
    /* 2 */
}

:where(.tour-guide-contents) address {
    font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */

/**
 * Remove the gray background on active links in IE 10.
 */

:where(.tour-guide-contents) a {
    background-color: transparent;
    text-decoration: none;
    color: inherit;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

:where(.tour-guide-contents) abbr[title] {
    text-decoration: underline dotted;
    /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

:where(.tour-guide-contents) b,
:where(.tour-guide-contents) strong {
    font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

:where(.tour-guide-contents) code,
:where(.tour-guide-contents) kbd,
:where(.tour-guide-contents) samp {
    font-family: monospace, monospace;
    /* 1 */
    font-size: inherit;
    /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

:where(.tour-guide-contents) small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

:where(.tour-guide-contents) sub,
:where(.tour-guide-contents) sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

:where(.tour-guide-contents) sub {
    bottom: -0.25em;
}

:where(.tour-guide-contents) sup {
    top: -0.5em;
}

/* Replaced content */
/* ============================================ */

/**
 * Prevent vertical alignment issues.
 */

:where(.tour-guide-contents) svg,
:where(.tour-guide-contents) img,
:where(.tour-guide-contents) embed,
:where(.tour-guide-contents) object,
:where(.tour-guide-contents) iframe {
    vertical-align: bottom;
}

/* Forms */
/* ============================================ */

/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */

:where(.tour-guide-contents) button,
:where(.tour-guide-contents) input,
:where(.tour-guide-contents) optgroup,
:where(.tour-guide-contents) select,
:where(.tour-guide-contents) textarea {
    -webkit-appearance: none;
    /* 1 */
    appearance: none;
    vertical-align: middle;
    color: inherit;
    font: inherit;
    background: transparent;
    padding: 0;
    margin: 0;
    border-radius: 0;
    text-align: inherit;
    text-transform: inherit;
    /* 2 */
}

/**
 * Correct cursors for clickable elements.
 */

:where(.tour-guide-contents) button,
:where(.tour-guide-contents) [type="button"],
:where(.tour-guide-contents) [type="reset"],
:where(.tour-guide-contents) [type="submit"] {
    cursor: pointer;
    border: 0;
}

:where(.tour-guide-contents) button:disabled,
:where(.tour-guide-contents) [type="button"]:disabled,
:where(.tour-guide-contents) [type="reset"]:disabled,
:where(.tour-guide-contents) [type="submit"]:disabled {
    cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */

:where(.tour-guide-contents) :-moz-focusring {
    outline: auto;
}


:where(.tour-guide-contents) select:disabled {
    opacity: inherit;
}

/**
 * Remove padding
 */

:where(.tour-guide-contents) option {
    padding: 0;
}

/**
 * Reset to invisible
 */

:where(.tour-guide-contents) fieldset {
    margin: 0;
    padding: 0;
    min-width: 0;
}

:where(.tour-guide-contents) legend {
    padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

:where(.tour-guide-contents) progress {
    vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

:where(.tour-guide-contents) textarea {
    overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

:where(.tour-guide-contents) [type="number"]::-webkit-inner-spin-button,
:where(.tour-guide-contents) [type="number"]::-webkit-outer-spin-button {
    height: auto;
}

/**
 * Correct the outline style in Safari.
 */

:where(.tour-guide-contents) [type="search"] {
    outline-offset: -2px;
    /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

:where(.tour-guide-contents) [type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */

:where(.tour-guide-contents) ::-webkit-file-upload-button {
    -webkit-appearance: button;
    /* 1 */
    font: inherit;
    /* 2 */
}

/**
 * Fix appearance for Firefox
 */
:where(.tour-guide-contents) [type="number"] {
    -moz-appearance: textfield;
}

/**
 * Clickable labels
 */

:where(.tour-guide-contents) label[for] {
    cursor: pointer;
}

/* Interactive */
/* ============================================ */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

:where(.tour-guide-contents) details {
    display: block;
}

/*
 * Add the correct display in all browsers.
 */

:where(.tour-guide-contents) summary {
    display: list-item;
}

/*
 * Remove outline for editable content.
 */

:where(.tour-guide-contents) [contenteditable]:focus {
    outline: auto;
}

/* Tables */
/* ============================================ */

/**
1. Correct table border color inheritance in all Chrome and Safari.
*/

:where(.tour-guide-contents) table {
    border-color: inherit;
    /* 1 */
    border-collapse: collapse;
}

:where(.tour-guide-contents) caption {
    text-align: left;
}

:where(.tour-guide-contents) td,
:where(.tour-guide-contents) th {
    vertical-align: top;
    padding: 0;
}

:where(.tour-guide-contents) th {
    text-align: left;
    font-weight: bold;
}

/***コンテンツ全体***/


.pc-inline-block {
    display: inline-block;
}

@media screen and (max-width: 768px) {
    .pc-inline-block {
        display: none;
    }
}

.sp-inline-block {
    display: none;
}

@media screen and (max-width: 768px) {
    .sp-inline-block {
        display: inline-block;
    }
}

.pc-block {
    display: block;
}

@media screen and (max-width: 768px) {
    .pc-block {
        display: none;
    }
}

.sp-block {
    display: none;
}

@media screen and (max-width: 768px) {
    .sp-block {
        display: block;
    }
}

.d-inline-block {
    display: inline-block;
}


.page-wrapper.page-wrapper--tour-guide {
    padding-inline: 0;
    padding-bottom: 0;
}

.px-basic {
    padding-inline: 18px;
}


/***波線背景***/
.wave-wrap--blue {
    background: url(../img/tour-guide/bg-wave--blue.png) no-repeat center center / cover;
    width: 100%;
    height: 77px;
    position: absolute;
    top: -75px;
    left: 0;
}

.wave-wrap--white {
    background: url(../img/tour-guide/bg-wave--white.png) no-repeat center center / cover;
    width: 100%;
    height: 77px;
    position: absolute;
    top: -75px;
    left: 0;
}

@media screen and (max-width: 768px) {
    .wave-wrap--blue {
        background: url(../img/tour-guide/bg-wave--blue_sp.png) repeat center center / contain;
        width: 100%;
        height: 42px;
        top: -37px;
        left: 0;
    }

    .wave-wrap--white {
        background: url(../img/tour-guide/bg-wave--white_sp.png) repeat center center / contain;
        width: 100%;
        height: 42px;
        top: -37px;
        left: 0;
    }
}

/***波線タイトル***/
.section-ttl--tour-guide {
    color: #000;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.8;
    position: relative;
    display: block;
    width: fit-content;
    margin-inline: auto;
    margin-block: 0;
    padding-bottom: 5px;
}

.section-ttl--tour-guide::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 6px;
    background: url(../img/tour-guide/line-wave-blue.png) repeat center center / contain;
}

@media screen and (max-width: 768px) {
    .section-ttl--tour-guide {
        font-size: 22px;
    }

    .section-ttl--tour-guide::after {
        height: 6px;
        background: url(../img/tour-guide/line-wave-blue_sp.png) repeat center center / contain;
    }

}

@media screen and (max-width: 389px) {
    .section-ttl--tour-guide {
        font-size: 20px;
    }


}

.page-top.tour-guide h1 {
    font-weight: 700;
}

/******観光ガイドページ　最初のテキスト******/

.page-about {
    margin-top: 66px;
    margin-bottom: 46px;
    padding-inline: 16px;
}

.page-about p {
    font-size: 18px;
    font-weight: 500;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .page-about {
        margin-top: 48px;
        margin-bottom: 36px;
    }

    .page-about p {
        font-size: 17px;
    }
}

@media screen and (max-width: 389px) {
    .page-about p {
        font-size: 16px;
    }
}

/******ガイドを申し込むアンカーリンクボタン******/

.tour-guide__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.tour-guide__action-text {
    color: #3C66C4;
    font-size: 18px;
    font-weight: 700;
    transition: opacity 0.3s;
}

.tour-guide__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 24px 30px 25px;
    border-radius: 50px;
    text-decoration: none;
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    background-color: #3C66C4;
    position: relative;
    width: 96%;
    max-width: 396px;
}

.tour-guide__btn:hover {
    opacity: 0.85;
}

.tour-guide__btn::after {
    content: "";
    position: absolute;
    right: 14px;
    width: 33px;
    height: 33px;
    background: url("../img/tour-guide/button-link.png") no-repeat center / contain;
}

.tour-guide__btn-text {
    flex: 1;
    text-align: center;
}

/******観光ガイドの流れ******/
.flow-sec {
    position: relative;
    padding-top: 16px;
    padding-bottom: 145px;
}

.flow-sec__inner {
    max-width: 1120px;
    margin: 0 auto;
}

.flow__main {
    margin-top: 22px;
    margin-bottom: 60px;
    display: flex;
    flex-direction: row-reverse;
    gap: 80px;
}

.flow__img {
    margin-top: 33px;
    flex-shrink: 0;
    width: 400px;
    display: flex;
    align-items: center;
}


.flow__content {
    margin-top: 65px;
    flex: 1;
    padding-left: 80px;
}

.flow__content-ttl {
    font-size: 20px;
    font-weight: 700;
    color: #3C66C4;
    line-height: 1.75;
    margin-bottom: 15px;
}

.flow__content-text {
    font-size: 17px;
    line-height: 2;
    font-weight: 500;
    padding-left: 0.3em;
}

.flow__content-text--info {
    margin-top: 1em;
}


@media screen and (max-width: 1024px) {
    .flow-sec__inner {
        max-width: 858px;
    }

    .flow__main {
        gap: 20px;
    }

    .flow__img {
        width: 300px;
    }

    .flow__content {
        padding-inline: 18px 30px;
        margin-top: 0;
    }

}

@media screen and (max-width: 768px) {
    .flow-sec {
        padding-bottom: 84px;
    }


    .section-ttl--tour-guide {}

    .flow__main {
        flex-direction: column;
        gap: 43px;
        margin-top: 26px;
        margin-bottom: 40px;
    }

    .flow__img {
        width: 100%;
        max-width: calc(366px + 24px);
        margin: 0 auto;
        padding-left: 24px;
    }


    .flow__content {
        padding-inline: 18px;
        margin-top: 0;
    }

    .flow__content-ttl {
        text-align: center;
    }

    .flow__content-text {
        padding-left: 0;
        padding-right: 0.5em;
        letter-spacing: -0.01em;
        max-width: 500px;
        margin-inline: auto;
        letter-spacing: -0.04em;
    }
}


@media screen and (max-width: 389px) {
    .flow__content-ttl {
        font-size: 17px;
    }
}


/******コースの例******/

.course-sec {
    position: relative;
    background-color: #EBEFF9;
    padding-top: 12px;
    padding-bottom: 150px;
}

.course-sec__outer {
    overflow: hidden;
}

.course-sec__inner {
    max-width: 858px;
    margin: 0 auto;
}

.course-sec .section-ttl {
    margin-bottom: 20px;
    text-align: center;
    position: relative;
    padding-bottom: 20px;
}

.course-sec .section-ttl::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    height: 20px;
    background: url("../img/common/wave-blue.svg") no-repeat center / contain;
    background-size: 200px auto;
}

.course__note {
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 75px;
    margin-top: 20px;
}



.course__main {
    max-width: 1200px;
    margin: 0 auto;
}

.course__item {
    display: grid;
    position: relative;
    margin-bottom: 114px;
}

.course__item:last-child {
    margin-bottom: 0;
}

.course__item:not(:last-child)::after {
    content: "";
    position: absolute;
    bottom: -57px;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #3C66C4;
}

.course__item:nth-child(1),
.course__item:nth-child(2),
.course__item:nth-child(4),
.course__item:nth-child(6) {
    grid-template-columns: 368px 1fr;
    grid-template-rows: auto 1fr;
    grid-template-areas:
        "a b"
        "a c";
    column-gap: 98px;
}

.course__item:nth-child(2) {
    margin-bottom: 130px;
}

.course__item:nth-child(2)::after {
    bottom: -68px;
}

.course__item:nth-child(4) {
    margin-bottom: 178px;
}

.course__item:nth-child(4)::after {
    bottom: -83px;
}

/* 3,5番目のコースのみ、画像width100% */
.course__item:nth-child(3),
.course__item:nth-child(5) {
    grid-template-columns: 1fr;
    grid-template-areas:
        "a"
        "b"
        "c";
}


.course__item-img-wrap {
    position: relative;
}

.course__item-img {
    width: 100%;
    grid-area: a;
}



.course__item-img img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    aspect-ratio: 368 / 245;
}



.course__item:nth-child(3) .course__item-img,
.course__item:nth-child(5) .course__item-img {
    width: 100%;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.course__item:nth-child(3) .course__item-img {
    aspect-ratio: 858 / 487;
}

.course__item:nth-child(5) .course__item-img {
    aspect-ratio: 858 / 503;
}




.course__item-deco-img {
    position: absolute;
    z-index: 2;
}

.course__item-deco-img img {
    width: 100%;
}

.course__item:nth-child(3) .course__item-deco-img {
    width: 371px;
    right: -125px;
    object-fit: cover;
    bottom: -8px;
}

.course__item:nth-child(5) .course__item-deco-img {
    width: 303px;
    right: -57px;
    bottom: -9px;
    object-fit: cover;
}

.course__item-ttl {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 16px;
    color: #3C66C4;
    grid-area: b;
}

.course__item:nth-child(1) .course__item-ttl {
    margin-top: 18px;
    margin-bottom: 20px;
}

.course__item:nth-child(4) .course__item-ttl {
    margin-top: 12px;
    margin-bottom: 13px;
}

.course__item:nth-child(3) .course__item-ttl {
    margin-top: 58px;
    margin-bottom: 15px;
}

.course__item:nth-child(5) .course__item-ttl {
    margin-top: 31px;
    margin-bottom: 15px;
}

.course__item:nth-child(6) .course__item-ttl {
    margin-top: 9px;
    margin-bottom: 13px;
}

.course__item-text {
    font-size: 17px;
    line-height: 2;
    grid-area: c;
    letter-spacing: -0.01em;
}

.course__item:nth-child(3) .course__item-text {
    width: 67.9%;
}

.course__item:nth-child(5) .course__item-text {
    width: 63.5%;
}

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

    .course__item:nth-child(1),
    .course__item:nth-child(2),
    .course__item:nth-child(4),
    .course__item:nth-child(6) {
        column-gap: 40px;
    }

    .course__note {
        margin-bottom: 50px;
        margin-top: 10px;
    }

    .course__item {
        margin-bottom: 84px;
    }

    .course__item:not(:last-child)::after {
        bottom: -42px;
    }

    .course__item:nth-child(2) {
        margin-bottom: 100px;
    }

    .course__item:nth-child(2)::after {
        bottom: -50px;
    }

    .course__item:nth-child(4) {
        margin-bottom: 120px;
    }

    .course__item:nth-child(3) .course__item-ttl {
        margin-top: 30px;
        margin-bottom: 15px;
    }

    .course__item:nth-child(3) .course__item-deco-img {
        width: 37%;
        right: 10px;
        bottom: 0;
    }

    .course__item:nth-child(5) .course__item-deco-img {
        width: 37%;
        right: 10px;
        bottom: 2%;
    }

    .course__item:nth-child(3) .course__item-text {
        width: 58%;
    }

    .course__item:nth-child(5) .course__item-text {
        width: 58%;
    }
}

@media screen and (max-width: 768px) {
    .course-sec {
        position: relative;
        padding-top: 0;
        padding-bottom: 90px;
    }

    .course__note {
        font-weight: 500;
        font-size: 16px;
        margin-top: 7px;
        margin-bottom: 49px;
    }

    .course__main {
        max-width: 500px;
    }

    .course__item-img {
        margin-left: 0.5em;
    }

    .course__item:nth-child(3) .course__item-img,
    .course__item:nth-child(5) .course__item-img {
        margin-left: 0;
        aspect-ratio: 355 / 236;
    }

    .course__item {
        margin-bottom: 55px;
    }

    .course__item:nth-child(2) {
        margin-bottom: 46px;
    }

    .course__item:nth-child(3) {
        margin-bottom: 50px;
    }

    .course__item:nth-child(4) {
        margin-bottom: 64px;
    }

    .course__item:nth-child(5) {
        margin-bottom: 80px;
    }

    .course__item:not(:last-child)::after {
        bottom: -27px;
    }

    .course__item:nth-child(2)::after {
        bottom: -24px;
    }

    .course__item:nth-child(3)::after {
        bottom: -24px;
    }

    .course__item:nth-child(4)::after {
        bottom: -31px;
    }

    .course__item:nth-child(5)::after {
        bottom: -44px;
    }

    .course__item:nth-child(1),
    .course__item:nth-child(2),
    .course__item:nth-child(4),
    .course__item:nth-child(6) {
        grid-template-columns: 48% 1fr;
        grid-template-areas:
            "a b"
            "c c";
        row-gap: 10px;
        align-items: start;
    }

    .course__item:nth-child(1),
    .course__item:nth-child(2) {
        column-gap: 20px;
    }

    .course__item:nth-child(4),
    .course__item:nth-child(6) {
        column-gap: 16px;
    }

    .course__item:nth-child(3),
    .course__item:nth-child(5) {
        grid-template-columns: 1fr;
        grid-template-areas:
            "b"
            "a"
            "c";
    }

    .course__item-ttl {
        line-height: 1.3;
    }

    .course__item:nth-child(1) .course__item-ttl,
    .course__item:nth-child(2) .course__item-ttl,
    .course__item:nth-child(4) .course__item-ttl,
    .course__item:nth-child(6) .course__item-ttl {
        margin: 0;
    }

    .course__item:nth-child(3) .course__item-ttl,
    .course__item:nth-child(5) .course__item-ttl {
        margin-top: 0;
        margin-bottom: 15px;
    }

    .course__item-text {
        line-height: 1.65;
        letter-spacing: -0.01em;
        padding-right: 0.6em;

    }


    .course__item:nth-child(3) .course__item-text,
    .course__item:nth-child(5) .course__item-text {
        width: 100%;
    }

    .course__item:nth-child(3) .course__item-text {
        margin-top: 139px;
    }

    .course__item:nth-child(5) .course__item-text {
        margin-top: 153px;
    }

    .course__item-deco-img {
        position: absolute;
        z-index: 2;
    }

    .course__item:nth-child(3) .course__item-deco-img {
        width: 100%;
        max-width: 326px;
        right: 18px;
        bottom: -107px;
    }

    .course__item:nth-child(5) .course__item-deco-img {
        width: 100%;
        max-width: 362px;
        right: -4px;
        bottom: -126px;
    }

}



@media screen and (max-width: 389px) {
    .course__item-ttl {
        font-size: 18px;
    }
}

/******各エリアのおすすめスポット******/

.spot-sec {
    position: relative;
    background-color: #fff;
    padding-top: 38px;
    padding-bottom: 90px;
}

.spot-sec .section-ttl--tour-guide {
    margin-bottom: 81px;
}

.spot-sec__inner {
    max-width: 760px;
    margin: 0 auto;
}

.spot__head-img {
    width: 100%;
    max-width: 505px;
    margin: 0 auto;
    margin-bottom: 68px;
}

.spot__head-img img {
    width: 100%;
    height: auto;
    display: block;
}

.spot__area {}

.spot__area--sea {
    margin-bottom: 106px;
}

.spot__area--sato {
    margin-bottom: 98px;
}

.spot__area-ttl {
    color: #3C66C4;
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 41px;
    padding-left: 40px;
    position: relative;
}

.spot__area-ttl::before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 33px;
    height: 38px;
}

.spot__area--sea .spot__area-ttl::before {
    background: url(../img/tour-guide/flag--blue.png) no-repeat center center / contain;
}

.spot__area--sato .spot__area-ttl::before {
    background: url(../img/tour-guide/flag--green.png) no-repeat center center / contain;
}


.spot__area-images {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 24px;
    row-gap: 30px;
    margin-bottom: 26px;
}

.spot__area-images--sato {
    margin-bottom: 47px;
}

.spot__area-image {
    flex: 1;
    min-width: 300px;
}

.spot__area-image img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 368 / 244;
    object-fit: cover;
}

.spot__area-label {
    margin-top: 13px;
    font-size: 20px;
    font-weight: 700;
    text-align: center;
}

.spot__area-text {
    margin-bottom: 35px;
    font-size: 17px;
    line-height: 2;
    letter-spacing: 0;
}

.spot__area-text--sato {
    margin-bottom: 14px;
}

@media screen and (max-width: 768px) {
    .spot-sec {
        padding-top: 0;
        padding-bottom: 97px;
    }

    .spot-sec .section-ttl--tour-guide {
        margin-bottom: 39px;
    }

    .spot__head-img {
        margin-bottom: 69px;
        padding-inline: 13px;
    }

    .spot__area {}

    .spot__area--sea {}

    .spot__area-ttl {
        font-size: 20px;
        text-align: center;
        padding-top: 31px;
        padding-left: 0;
        margin-bottom: 35px;
        line-height: 1.2;
    }

    .spot__area-ttl::before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        translate: -50% 0;
        width: 33px;
        height: 38px;
    }

    .spot__area-images {
        display: grid;
        grid-template-columns: repeat(auto-fill, 294px);
        justify-content: center;
        row-gap: 20px;
        margin-bottom: 22px;
        padding-right: 2px;
    }

    .spot__area-images--sato {
        margin-bottom: 16px;
    }

    .spot__area-image {
        min-width: 294px;
    }

    .spot__area-label {
        margin-top: 1px;
    }

    .spot__area-text {
        padding-left: 0.2em;
        padding-right: 0.6em;
        margin-bottom: 30px;
    }

    .spot__area-text--sato {
        margin-bottom: 18px;
    }

}

/******スポット一覧アコーディオン******/

.spot__area-accordion {}

.spot__area-accordion-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 30px 22px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    position: relative;
    width: 100%;
    text-align: left;
    transition: all 0.3s ease;
}

.spot__area-accordion-btn[aria-expanded="true"] {
    border-radius: 10px 10px 0 0;
}

.spot__area-accordion-btn--blue {
    background-color: #21CDEB;
}

.spot__area-accordion-btn--green {
    background-color: #64BE4F;
}

.spot__area-accordion-btn-text {
    flex: 1;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
}

.spot__area-accordion-arrow {
    position: absolute;
    right: 14px;
    width: 30px;
    height: 30px;
    background: url("../img/tour-guide/accordion_arrow.svg") no-repeat center / contain;
    transition: transform 0.3s ease;
}

.spot__area-accordion-btn[aria-expanded="true"] .spot__area-accordion-arrow {
    transform: rotate(180deg);
}

.spot__area-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.spot__area-accordion-content.is-open {
    transition: max-height 0.3s ease;
    max-height: 2000px;
}

.spot__area-accordion-inner {
    background-color: #fff;
    border: 2px solid #21CDEB;
    border-top: none;
    border-radius: 0 0 10px 10px;
    overflow: hidden;
}

.spot__area-accordion-inner--sato {
    border: 2px solid #62C053;
    border-top: none;
}

.spot__area-accordion-body,
.spot__area-accordion-body--sato {
    padding: 32px 0 25px;
    display: flex;
    flex-direction: column;
}

/* 海まちエリアのリスト */
.spot__area-accordion-list--sea {
    padding-inline: 50px;
    display: grid;
    grid-auto-flow: column;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(7, auto);
    column-gap: 24px;
}

/* 里まちエリアのリスト */
.spot__area-accordion-list--sato {
    padding-inline: 73px 106px;
    display: block;
    column-count: 3;
    -webkit-column-count: 3;
}


.spot__area-accordion-item {
    margin-bottom: 9px;
    width: fit-content;
}

.spot__area-accordion-item a {
    line-height: 1;
    color: #000;
    text-decoration: underline;
    transition: opacity 0.3s;
    font-size: 15px;
    font-weight: 700;

}

.spot__area-accordion-item a:hover {
    opacity: 0.85;
}

.spot__area-accordion-footer {
    text-align: center;
    margin-top: 20px;
    font-size: 17px;
    color: #3C66C4;
    font-weight: 700;
    letter-spacing: -0.025em;
}

.spot__area-accordion-close {
    margin-top: 23px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 7px;
    font-weight: 700;
    font-size: 18px;
}

@media screen and (max-width: 768px) {
    .spot__area--sea {
        margin-bottom: 58px;
    }

    .spot__area--sato {
        margin-bottom: 0;
    }


    .spot__area-accordion-btn {
        padding: 14px 60px;
    }

    .spot__area-accordion-btn-text {
        line-height: 1.5;
    }

    .spot__area-accordion-inner {
        border-radius: 0 0 10px 10px;
    }

    .spot__area-accordion-body {
        padding: 20px 0 20px;
    }

    .spot__area-accordion-body--sato {
        padding: 20px 0 43px;
    }

    .spot__area-accordion-list {
        padding-inline: 20px;
    }

    .spot__area-accordion-list--sato {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(21, auto);
    }


    .spot__area-accordion-item {
        font-size: 14px;
        margin-bottom: 14px;
    }

    .spot__area-accordion-footer {
        margin-top: 10px;
    }


}

@media screen and (max-width: 576px) {
    .spot__area-accordion {
        margin-inline: 4px;
    }

    .spot__area-accordion-body {
        flex-direction: column-reverse;
    }


    .spot__area-accordion-list--sea {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        grid-auto-flow: row;
        gap: 0;
        padding-inline: 16px;
        max-width: 320px;
        width: 100%;
        margin-inline: auto;
    }

    /* 里まちエリアのリスト */
    .spot__area-accordion-list--sato {
        column-count: 2;
        -webkit-column-count: 2;
        padding-inline: 16px 31px;
    }

    .spot__area-accordion-list--sato .spot__area-accordion-item:last-child {
        padding-bottom: 2em;
        margin-bottom: 0;
    }

    .spot__area-accordion-footer {
        font-size: 16px;
        margin-top: 0;
        line-height: 1.5;
        letter-spacing: -0.032em;
        margin-bottom: 30px;
    }
}

@media screen and (max-width: 389px) {
    .spot__area-accordion-btn-text {
        font-size: 16px;
    }

    .spot__area-accordion-arrow {
        width: 24px;
        height: 24px;
    }

    .spot__area-accordion-body {
        padding: 20px 10px;
    }

    .spot__area-accordion-footer {
        font-size: 14px;
    }
}


.spot__model {
    margin-top: 60px;
    text-align: center;
}

.spot__model-text {
    font-size: 18px;
    margin-bottom: 9px;
    color: #3C66C4;
    font-weight: 700;
    text-align: center;
}

.spot__model-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 24px 30px;
    border-radius: 50px;
    text-decoration: none;
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    background-color: #3C66C4;
    position: relative;
    max-width: 396px;
    width: 100%;
    transition: opacity 0.3s;
}

@media (hover: hover) and (pointer: fine) {
    .spot__model-btn:hover {
        opacity: 0.85;
    }
}

.spot__model-btn::after {
    content: "";
    position: absolute;
    right: 14px;
    width: 33px;
    height: 33px;
    background: url("../img/tour-guide/button-link.png") no-repeat center / contain;
}

.spot__model-btn-text {
    flex: 1;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .spot__model {
        margin-top: 36px;
    }


    .spot__model-btn-text {
        padding-right: 1em;
    }
}

@media screen and (max-width: 389px) {
    .spot__model-text {
        font-size: 16px;
    }

    .spot__model-btn-text {
        font-size: 18px;
    }

    .spot__model-btn::after {
        width: 24px;
        height: 24px;
    }
}

/******ご利用について******/

.usage-sec {
    background-color: #EBEFF9;
    padding: 16px 0 174px;
    position: relative;
}

.usage__wrapper {
    max-width: 760px;
    margin: 0 auto;
    display: flex;
}

.usage__content {}

.usage-sec .section-ttl--tour-guide {
    margin-bottom: 30px;
}


.usage__text {
    margin-bottom: 54px;
    font-size: 17px;
    line-height: 2;
    font-weight: 500;
}

.usage__table {
    width: 564px;
    margin-inline: auto;
    border-collapse: collapse;
    margin-bottom: 56px;
    overflow: hidden;
}

.usage__table th {
    background-color: #3C66C4;
    color: #fff;
    padding: 20px 25px 15px;
    font-size: 18px;
    font-weight: 700;
    text-align: center;
    width: 172px;
    vertical-align: middle;
    border: 2px solid #3C66C4;
}

.usage__table tr:first-child th {
    border-bottom: 2px solid #ffffff;

}

/* ★ 2行目のthの上線だけ色を変える */
.usage__table tr+tr th {
    border-top: 2px solid #ffffff;
}

.usage__table td {
    background-color: #fff;
    padding: 23px 19px 15px;
    font-size: 18px;
    border: 2px solid #3C66C4;
    font-size: 18px;
    font-weight: 700;
}

.usage__table-note {
    font-size: 16px;
    font-weight: 500;
    display: block;
    margin-top: 4px;
    line-height: 1.6;
    letter-spacing: 0;
}



.usage__character {
    width: 321px;
    position: absolute;
    right: 16%;
    left: calc(50% + 333px);
    bottom: 22%;
}

.usage__character img {
    width: 100%;
    height: auto;
    display: block;
}

@media screen and (max-width: 1400px) {
    .usage__character {
        width: 280px;
        left: calc(50% + 288px);
        bottom: 23%;
    }
}

@media screen and (max-width: 1200px) {
    .usage__character {
        width: 250px;
        left: calc(50% + 180px);
        bottom: 24%;
    }
}

@media screen and (max-width: 1024px) {
    .usage__character {
        width: 176px;
        left: calc(50% + 198px);
        bottom: 24%;
    }
}

@media screen and (max-width: 768px) {
    .usage-sec {
        padding-bottom: 298px;
    }

    .usage-sec .section-ttl--tour-guide {
        margin-bottom: 16px;
    }

    .usage__text {
        margin-bottom: 14px;
    }

    .usage__table {
        width: 100%;
        margin-bottom: 17px;
    }

    .usage__table th,
    .usage__table td {
        display: block;
        width: 100%;
    }

    .usage__table td {
        letter-spacing: 0;
    }

    .usage__table tr:first-child th {
        border-bottom: none;
        padding: 15px 8px 10px;
    }

    .usage__table tr:nth-child(2) th {
        padding: 7px 8px;
    }

    .usage__table tr:first-child td {
        padding: 20px 8px 25px;
        text-align: center;
    }

    .usage__table tr:nth-child(2) td {
        padding: 17px 4px 17px 8px;
    }

    .usage__table tr+tr th {
        border-top: none;
    }

    .usage__table tr {
        display: flex;
        flex-direction: column;
    }



    .usage__btn {
        width: 100%;
        max-width: 100%;
        font-size: 22px;
    }

    .usage__character {
        bottom: 104px;
        left: 50%;
        translate: -50% 0;
        right: auto;
        width: 100%;
        max-width: 346px;
    }
}

@media screen and (max-width: 389px) {
    .usage-sec {
        padding-bottom: 250px;
    }

    .usage__character {
        width: 90%;
        bottom: 96px;
    }
}

/******お申し込みの流れ******/

.application-sec {
    position: relative;
    background-color: #fff;
    padding-top: 19px;
    padding-bottom: 188px;
}

.application-sec .section-ttl--tour-guide {
    text-align: center;
    margin-bottom: 98px;
    position: relative;
}

.application-sec__inner {
    max-width: 808px;
    margin-inline: auto;
}



.application__flow {
    margin-bottom: 45px;
}

.application__step {
    background-color: #EBEFF9;
    padding: 25px 54px 33px;
    position: relative;
}

.application__step:nth-child(1) {
    padding: 25px 54px 33px;
    margin-bottom: 68px;
}

.application__step:nth-child(2) {
    padding: 25px 54px 41px;
    margin-bottom: 75px;
}

.application__step:nth-child(3) {
    padding: 19px 54px 27px;
    margin-bottom: 82px;
}

.application__step:nth-child(4) {
    padding: 25px 54px 28px;
}

.application__step:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 50%;
    translate: -50% 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 15px solid transparent;
    border-left: 15px solid transparent;
    border-top: 19px solid #3c66c4;
    border-bottom: 0;
}

.application__step:nth-child(1)::after,
.application__step:nth-child(2)::after {
    bottom: -47px;
}

.application__step:nth-child(3)::after {
    bottom: -61px;
}

.application__step-number {
    position: absolute;
    top: -15px;
    left: 30px;
    width: 40px;
    height: 40px;
    background-color: #284679;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    z-index: 1;
}

.application__step-content {
    margin-top: 10px;
}

.application__step-title {
    font-size: 20px;
    font-weight: 700;
    color: #3C66C4;
    margin-bottom: 15px;
    text-align: center;
}

.application__step:nth-child(1) .application__step-title,
.application__step:nth-child(2) .application__step-title {
    margin-bottom: 18px;
}

.application__step-text {
    font-size: 16px;
    line-height: 2;
    text-align: center;
    letter-spacing: 0.05em;
    font-weight: 500;

}

.application__step-btn {
    margin-top: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 17px 35px 19px;
    border-radius: 50px;
    text-decoration: none;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background-color: #3C66C4;
    position: relative;
    transition: opacity 0.3s;
    width: 284px;
    margin-inline: auto;
}

.application__step-btn:hover {
    opacity: 0.85;
}

.application__step-btn::after {
    content: "";
    position: absolute;
    right: 10px;
    width: 24px;
    height: 24px;
    background: url("../img/tour-guide/button-link.png") no-repeat center / contain;
}

.application__step-btn-text {
    flex: 1;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.05em;
}


.application__confirm {
    background-color: #FFF6EA;
    border: 2px solid #FA9100;
    border-radius: 20px;
    padding: 28px 23px;
    margin-bottom: 49px;
}

.application__confirm-title {
    font-size: 18px;
    font-weight: 700;
    color: #FA9100;
    text-align: center;
    margin-bottom: 25px;
    padding-left: 1.5em;
}

.application__confirm-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.application__confirm-item {
    font-size: 14px;
    color: #333;
    position: relative;
    line-height: 1.7;
    margin-bottom: 2px;
    font-weight: 700;
}


.application__confirm-item:last-child {
    margin-bottom: 0;
}

.application__confirm-link {
    text-decoration: underline;
    transition: opacity 0.3s;
}

@media (hover: hover) and (pointer: fine) {
    .application__confirm-link:hover {
        opacity: 0.85;
    }
}

.application__contact {
    display: flex;
    align-items: flex-start;
    gap: 22px;
}

.application__contact-title {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px 8px;
    border-radius: 5px;
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    background-color: #3C66C4;
    flex-shrink: 0;
}


.application__contact-info {
    flex: 1;
    margin-top: 3px;
}

.application__contact-name {
    font-size: 17px;
    font-weight: 700;
    color: #333;
    margin-bottom: 10px;
    line-height: 1;
}

.application__contact-tel,
.application__contact-fax {
    font-size: 16px;
    color: #333;
    margin-bottom: 5px;
    display: inline-block;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.tel-link {
    pointer-events: none;
    /* クリック無効 */
    color: inherit;
    text-decoration: none;
    cursor: default;
}

@media (max-width: 768px) {

    /* SP：クリックOK */
    .tel-link {
        pointer-events: auto;
        color: inherit;
        text-decoration: none;
        cursor: pointer;
    }
}


@media screen and (max-width: 768px) {
    .application-sec {
        padding-top: 24px;
        padding-bottom: 74px;
    }

    .application-sec .section-ttl--tour-guide {
        margin-bottom: 23px;
    }

    .application-sec__inner {}

    .section-ttl--tour-guide {}

    .application__flow {
        margin-bottom: 40px;
    }

    .application__step:nth-child(1) {
        padding: 21px 18px 33px;
        margin-bottom: 62px;
    }

    .application__step:nth-child(2) {
        padding: 22px 18px 33px;

        margin-bottom: 65px;
    }

    .application__step:nth-child(3) {
        padding: 19px 54px 27px;
        margin-bottom: 62px;
    }

    .application__step:nth-child(4) {
        padding: 25px 54px 28px;
    }



    .application__step-content {
        margin-top: 0;
    }


    .application__step:nth-child(3) {
        padding: 21px 18px 26px;
    }

    .application__step:nth-child(4) {
        padding: 21px 18px 21px;
    }

    .application__step-title {
        line-height: 1.4;
    }

    .application__step:nth-child(1) .application__step-title,
    .application__step:nth-child(2) .application__step-title {
        margin-bottom: 5px;
    }

    .application__step:nth-child(3) .application__step-title,
    .application__step:nth-child(4) .application__step-title {
        margin-bottom: 13px;
    }

    .application__step-text {
        letter-spacing: 0.06em;
        line-height: 2.1;
        text-align: left;
    }

    .application__step-btn {
        width: 100%;
        max-width: 284px;
        margin-top: 18px;
    }

    .application__step:nth-child(1)::after,
    .application__step:nth-child(2)::after {
        bottom: -42px;
    }

    .application__step:nth-child(3)::after {
        bottom: -42px;
    }

    .application__step-btn-text {}

    .application__confirm {
        border-radius: 15px;
        padding: 26px 13px 13px;
        margin-bottom: 30px;
    }

    .application__confirm-title {
        padding-left: 0;
        font-size: 20px;
        margin-bottom: 22px;
    }

    .application__confirm-list li {
        font-size: 16px;
        margin-bottom: -2px;
    }

    .application__contact {
        flex-direction: column;
        align-items: center;
        gap: 14px;
    }

    .application__contact-title {
        padding: 10px 24px 8px;
    }

    .application__contact-info {
        margin-top: 0;
        text-align: center;
    }

    .application__contact-name {
        text-align: center;
        line-height: 1.8;
        margin-bottom: 0;
    }

    .application__contact-tel {}

    .application__contact-fax {}


}

@media screen and (max-width: 389px) {
    .application__confirm-title {
        font-size: 18px;
    }
}

/******お問い合わせフォーム******/


.form-area {
    position: relative;
    background-color: #EBEFF9;
    padding-top: 14px;
    padding-bottom: 100px;
}

.form-area.form-area--finish {
    background-color: #fff;
    padding-top: 100px;
    padding-bottom: 200px;
}

.form-area .section-ttl--tour-guide {
    margin-bottom: 61px;
}

.form-area__inner {
    max-width: 569px;
    margin-inline: auto;
    padding-left: 10px;
}

.reservation-heading {
    font-size: 20px;
    font-weight: 700;
    color: #3C66C4;
    margin-bottom: 33px;
    margin-left: -10px;
}

.form-input-item {
    margin-bottom: 34px;
}

/** 入力項目見出し */
.smf-item__label {
    position: relative;
    width: fit-content;
    padding-left: 13px;
    margin-bottom: 16px;
}

.smf-item__label::before {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    width: 6px;
    height: 117%;
    background-color: #3C66C4;
}

/** 必須項目バッジ */
.sme-badge {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: -3.3em;
    padding: 3px 5px;
    background-color: #F80202;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    border-radius: 4px;
    line-height: 1;
    letter-spacing: 0.05em;
    text-align: center;
    vertical-align: middle;
}

.smf-item__label__text {
    font-weight: 700;
    font-size: 18px;
    letter-spacing: 0.03em;
}

/** 入力欄 */
.smf-form .smf-text-control__control,
.smf-form .smf-textarea-control__control,
.smf-form .smf-select-control__control {
    border: 2px solid #D3D3D3;
    padding: 8px 8px 9px 8px;
    font-size: 18px;
    font-weight: 500;
    vertical-align: middle;
    border-radius: 5px;
    width: 100%;
}

.smf-form .smf-text-control__control {
    height: 43px;
}

.smf-select-control__toggle {
    border-radius: 5px;
}

.form-area input::placeholder,
.form-area textarea::placeholder {
    color: #B4B4B4;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-size: 18px;
    font-weight: 500;
}

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

    .form-area input::placeholder,
    .form-area textarea::placeholder {
        font-size: 14px;
    }
}

/** 日付入力欄 */
input[type="date"].smf-text-control__control {
    font-size: 18px;
    font-weight: 500;
    width: 337px;
}


.form-input-item--preferred_date input[type="date"][name="preferred_date"] {
    color: #B4B4B4;
    opacity: 1;
}

.form-input-item--preferred_date input[type="date"][name="preferred_date"].is-filled {
    color: #000;
}

.form-input-item--preferred_date input[type="date"][name="preferred_date"]::-webkit-calendar-picker-indicator {
    filter: invert(50%);
}

/** ご希望時間 */
input[type="text"][name="preferred_time_start"],
input[type="text"][name="preferred_time_end"] {
    font-size: 18px;
    font-weight: 500;
    width: 141px;
    text-align: left;
}

input[type="text"][name="preferred_time_start"]::placeholder,
input[type="text"][name="preferred_time_end"]::placeholder {
    text-align: center;
}

:where(.wp-block-columns.is-layout-flex) {
    gap: 0.5rem;
    align-items: center;
}

/* 確認画面では、入力時の固定幅を解除する */
#snow-monkey-form-1848[data-screen="confirm"] .wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis] {
    flex-basis: auto !important;
    display: flex;
    align-items: center;
}

/** 待ち合わせ場所 */
.form-input-item--meeting_place {
    margin-bottom: 41px;
}


input[type="text"] [name="meeting_place"] {
    width: 100%;
    display: block;
}



/** 案内を希望する観光地 */
.form-input-item--desired_spot {
    margin-bottom: 14px;
}

.form-input-item--desired_spot .smf-item__label {
    margin-bottom: 24px;
}



.form-input-item--desired_spot .smf-checkbox-control__label {
    font-size: 18px;
    font-weight: 500;
    color: #000000;
}

.form-input-item--desired_spot .smf-checkboxes-control__control {
    display: flex;
    flex-wrap: wrap;
    column-gap: 28px;
    row-gap: 22px;
    width: 100%;
    max-width: 530px;
}

.form-input-item--desired_spot .smf-checkbox-control {
    display: flex;
    align-items: center;
    gap: 6px;
}




.form-input-item--desired_spot .smf-checkbox-control__control {
    width: 25px;
    height: 25px;
    border-radius: 5px;
    border: 1px solid #D3D3D3;
    margin: 0;
}


/** その他のスポット,観光ガイドのご要望 */
.desired_spot__other-spot-head {}

.desired_spot__other-spot-head,
.desired_spot__guide_request-head {
    margin-top: 30px;
    font-size: 17px;
    font-weight: 500;
}


/** よくあるご要望 */
.form-common-requests {
    margin-bottom: 49px;
}

.form-common-requests__title {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 4px;
    letter-spacing: 0.04em;
}

.form-common-requests__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.form-common-requests__item {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
    position: relative;
    padding-left: 15px;
    letter-spacing: 0.04em;
}

.form-common-requests__item::before {
    content: "・";
    position: absolute;
    left: 0;
    top: 0;
    font-size: 14px;
    font-weight: 700;
}


.reservation-heading--2 {
    margin-top: 60px;
    margin-bottom: 34px;
}

/** お名前 ,団体名 */
.name-group-wrap {
    margin-bottom: 45px;
}

input[type="text"][name="shimei"].smf-text-control__control,
input[type="text"][name="group_name"].smf-text-control__control {
    width: 337px;
}

.shimei_note {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-top: 5px;

}

/** 電話番号 */
/** メールアドレス */
.form-input-item--email {
    margin-bottom: 45px;
}

.email_note {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-top: 5px;
    white-space: nowrap;
    color: #000000;
}


/** 住所 */
.form-input-item--address {
    margin-bottom: 53px;
}

.form-input-item--address .smf-item__description {
    margin-top: -3px;
    margin-bottom: 10px;
    font-size: 14px;
    font-weight: 700;
    color: #000000;
    letter-spacing: 0.01em;
}

/** 見出し */
.address-head {
    flex-shrink: 0;
}

.zip-wrap .wp-block-group__inner-container,
.address1-wrap .wp-block-group__inner-container,
.address2-wrap .wp-block-group__inner-container {
    display: flex;
    align-items: center;
    gap: 24px;
}

.address3-wrap .wp-block-group__inner-container {
    display: flex;
    align-items: center;
    gap: 7px;
}

.zip-wrap,
.address1-wrap,
.address2-wrap,
.address3-wrap {
    margin-bottom: 13px;
}

/** 郵便番号 */
input[type="text"][name="zip-code"] {
    width: 214px;
}

/** 都道府県 */
.smf-form select[name="address1"].smf-select-control__control {
    width: 214px;
}

/** 市区町村 ,以降の住所*/
.address2-wrap .smf-placeholder,
.address3-wrap .smf-placeholder {
    width: 100%;
}

input[type="text"][name="address2"],
input[type="text"][name="address3"] {
    width: 100%;
    display: block;
}



/** 電話番号 */
input[type="tel"][name="tel"] {
    width: 337px;
    display: block;
}

.form-input-item--tel {
    margin-bottom: 58px;
}


.form-input-item--message {
    margin-bottom: 29px;
}




.privacy-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
}

.privacy-wrap .smf-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-left: 1em;
}

.privacy-wrap .smf-checkboxes-control {
    margin-top: 12px;
}




.privacy-wrap input[type="checkbox"] {
    width: 20px;
    height: 20px;
    border: 1px solid #D3D3D3;
    margin: 0;
}

.privacy-consent-note {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
    position: relative;
}

.privacy-consent-link {
    color: #3C66C4;
    text-decoration: underline;
    transition: opacity 0.3s;
}

@media (hover: hover) and (pointer: fine) {
    .privacy-consent-link:hover {
        opacity: 0.85;
    }
}


.smf-action {
    margin-top: 90px;
    display: flex;
    justify-content: center;
}



.smf-action .smf-button-control__control:hover {
    opacity: 0.85;
}

.smf-button-control__control[data-action="confirm"],
.smf-button-control__control[data-action="complete"] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 368px;
    height: 60px;
    border-radius: 50px;
    text-decoration: none;
    transition: 0.3s;
    margin: 5px auto 25px;
    padding: 0 2em;
    position: relative;
    background-image: none;
    border: none;
    font-size: 22px;
    font-weight: 700;
    flex: 1;
    justify-content: center;
    background-image: none;
    color: #fff;
    background-color: #FA9100;
}

.smf-button-control__control[data-action="confirm"]::after,
.smf-button-control__control[data-action="complete"]::after {
    content: "";
    position: absolute;
    width: 1.5em;
    height: 1.5em;
    right: 0.8em;
    background: url("../img/common/btn-white-orange.svg") no-repeat center / contain;
}

/* 戻るボタン */
.btn-back, .smf-button-control__control[data-action="back"] {
    width: 20%;
    max-width: 120px;
    height: 60px;
    border: none;
    cursor: pointer;
    color: #fff;
    background: #9c9c9c;
    font-size: 22px;
    font-weight: 600;
    flex: 1;
    justify-content: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border-radius: 50px;
    text-decoration: none;
    transition: opacity .3s;
    padding: 0 .5em;
    position: relative;
}

.snow-monkey-form[data-screen="confirm"] .smf-button-control__control[data-action="back"] {
    flex-shrink: 0;
    width: 150px;
    max-width: 100%;
}

.snow-monkey-form[data-screen="confirm"] .smf-button-control__control[data-action="complete"] {
    flex-shrink: 0;
    margin-top: 0;
    margin-bottom: 0;
}

/** エラーメッセージ */
.smf-error-messages {
    font-size: 14px;
    font-weight: 700;
}

.privacy-wrap {
    position: relative;
}

.privacy-wrap .smf-error-messages {
    position: absolute;
    bottom: -1.5em;
    left: 50%;
    translate: -50% 0;
}

form[data-screen="confirm"] .smf-placeholder {
    font-weight: 500;
    font-size: 18px;
}



@media screen and (max-width: 768px) {
    .form-area {
        padding-top: 1px;
    }

    .form-area .section-ttl--tour-guide {
        margin-bottom: 32px;
    }

    .form-area__inner {
        padding-left: 5px;
    }

    .reservation-heading {
        margin-left: -8px;
        margin-bottom: 32px;
    }

    /** テキスト入力欄 */
    .smf-form .smf-text-control__control,
    .smf-form .smf-textarea-control__control,
    .smf-form .smf-select-control__control {
        font-size: 16px;
    }

    .smf-form .smf-text-control__control,
    .smf-form .smf-select-control__control {
        padding: 8px 15px 9px 15px;
    }

    .smf-form .smf-textarea-control__control {
        padding: 11px 14px 9px 14px;
    }

    .form-input-item {
        margin-bottom: 34px;
    }

    .form-input-item--desired_spot {
        margin-bottom: 52px;
    }

    .form-input-item--desired_spot .smf-checkboxes-control__control {
        display: grid;
        grid-template-columns: 47% 1fr;
        column-gap: 0;
    }

    .smf-item__label {
        margin-bottom: 17px;
    }

    .form-input-item--desired_spot .smf-item__label {
        margin-bottom: 24px;
    }

    .form-input-item--meeting_place {
        margin-bottom: 39px;
    }

    .desired_spot__other-spot-head {
        margin-top: 23px;
        margin-bottom: 3px;
    }

    textarea[name="other_spots"],
    textarea[name="guide_request"] {
        min-height: 230px;
    }

    .desired_spot__guide_request-head {
        margin-top: 12px;
        margin-bottom: 3px;

    }

    .reservation-heading--2 {
        margin-left: -1px;
        margin-bottom: 41px;
    }

    .name-group-wrap {
        margin-bottom: 47px;

    }

    .shimei_note {
        letter-spacing: 0;
        padding-right: 1em;
        margin-top: 6px;
    }

    .form-input-item--shimei {
        margin-bottom: 40px;
    }



    .email_note {
        white-space: wrap;
        margin-top: 8px;
        letter-spacing: 0.03em;
    }

    .form-input-item--address {
        margin-bottom: 40px;
    }

    .form-input-item--address .smf-item__description {
        margin-bottom: 0;
    }

    .form-input-item--address .smf-item__description {
        margin-top: -5px;
        margin-bottom: -2px;
    }

    .zip-wrap {
        margin-bottom: 11px;
    }

    .address1-wrap, .address2-wrap, .address3-wrap {
        margin-bottom: 17px;
    }

    .zip-wrap .wp-block-group__inner-container,
    .address1-wrap .wp-block-group__inner-container,
    .address2-wrap .wp-block-group__inner-container,
    .address3-wrap .wp-block-group__inner-container {
        display: flex;
        flex-direction: column;
        align-items: start;
    }

    .zip-wrap .wp-block-group__inner-container {
        gap: 10px;
    }

    .address1-wrap .wp-block-group__inner-container,
    .address2-wrap .wp-block-group__inner-container,
    .address3-wrap .wp-block-group__inner-container {
        gap: 3px;
    }

    input[type="text"][name="zip1"],
    input[type="text"][name="zip2"],
    input[type="text"][name="address2"],
    input[type="text"][name="address3"] {
        padding: 8px 15px;
    }

    input[type="text"][name="address2"] {
        width: 232px;
    }

    .zip-dash p {
        margin-top: -9px;
    }

    input[type="tel"][name="tel"] {
        width: 100%;
    }

    .form-input-item--tel {
        margin-bottom: 56px;
    }

    .form-input-item--message {
        margin-bottom: 27px;
    }

    textarea[name="message"] {
        min-height: 250px;
    }

    .smf-action {
        margin-top: 54px;
    }



    .smf-button-control__control[data-action="confirm"],
    .smf-button-control__control[data-action="complete"] {
        max-width: 100%;
        width: 347px;
    }

    .privacy-wrap .sme-badge {
        top: auto;
        bottom: -2.5em;
        left: 50%;
        translate: -50% 0;
        right: auto;
    }
}

@media screen and (max-width: 389px) {
    .privacy-consent-note {
        font-size: 14px;
    }

    .smf-button-control__control[data-action="confirm"],
    .smf-button-control__control[data-action="back"],
    .smf-button-control__control[data-action="complete"] {
        font-size: 18px;
    }


}