/* =========================================================
   CONTACT
   contact.css
   Contact Form 7 の機能を残したまま外観を独自化
   ========================================================= */


/* =========================================================
   COCOON / GRAYISH RESET
   ========================================================= */

.header-container,
#header-container,
#navi,
.breadcrumb,
#breadcrumb {
    display: none !important;
}

.mobile-menu-buttons,
.mobile-menu-content {
    display: none !important;
}

#sidebar {
    display: none !important;
}

#content,
#content-in,
.content-in,
#main,
.main {
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.article {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.article-header,
.entry-title {
    display: none !important;
}

#footer,
.footer {
    margin-top: 0 !important;
}


/* =========================================================
   PAGE BASE
   ========================================================= */

#plv-contact-page {
    --contact-text: #171717;
    --contact-subtext: #625d55;
    --contact-gold: #b98537;
    --contact-gold-dark: #956a2e;
    --contact-bg: #f5f1ea;
    --contact-bg-soft: #faf8f4;
    --contact-white: #ffffff;
    --contact-line: #ddd5ca;
    --contact-dark: #24231f;
    --contact-navy: #10283a;

    position: relative;

    width: 100vw;
    max-width: none;

    margin-top: 0 !important;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);

    padding: 0;
    overflow: hidden;

    background: var(--contact-white);
    color: var(--contact-text);

    font-family:
        "Yu Mincho",
        "YuMincho",
        "Hiragino Mincho ProN",
        "Hiragino Mincho Pro",
        serif;
}

#plv-contact-page *,
#plv-contact-page *::before,
#plv-contact-page *::after {
    box-sizing: border-box;
}

#plv-contact-page p {
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.035em;
}

#plv-contact-page a {
    color: inherit;
}

#plv-contact-page .plv-contact-section-label {
    margin: 0 0 15px;

    color: var(--contact-gold);

    font-family:
        Georgia,
        "Times New Roman",
        serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
}


/* =========================================================
   HEADER
   ========================================================= */

#plv-contact-page .plv-header {
    position: relative;
    z-index: 20;

    width: 100%;
    height: 76px;

    background: rgba(255, 255, 255, 0.98);
    border-bottom: 1px solid #e8e4dd;
}

#plv-contact-page .plv-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    width: calc(100% - 80px);
    max-width: 1240px;
    height: 100%;

    margin: 0 auto;
}

#plv-contact-page .plv-header__brand {
    display: flex;
    align-items: baseline;
    gap: 14px;

    color: var(--contact-text);
    text-decoration: none;
    white-space: nowrap;
}

#plv-contact-page .plv-header__sub {
    font-size: 14px;
    letter-spacing: 0.05em;
}

#plv-contact-page .plv-header__name {
    font-size: 20px;
    letter-spacing: 0.12em;
}

#plv-contact-page .plv-header__nav {
    display: flex;
    align-items: center;
    gap: 34px;

    margin-left: 40px;
}

#plv-contact-page .plv-header__nav a {
    position: relative;

    padding: 28px 0 25px;

    color: #252525;
    text-decoration: none;

    font-family:
        Georgia,
        "Times New Roman",
        serif;
    font-size: 15px;
    letter-spacing: 0.025em;
    line-height: 1;
}

#plv-contact-page .plv-header__nav a::after {
    content: "";

    position: absolute;
    left: 50%;
    bottom: 17px;

    width: 0;
    height: 1px;

    background: var(--contact-gold);

    transform: translateX(-50%);
    transition: width 0.25s ease;
}

#plv-contact-page .plv-header__nav a:hover::after,
#plv-contact-page .plv-header__nav a[aria-current="page"]::after {
    width: 100%;
}


/* =========================================================
   HERO
   ========================================================= */

#plv-contact-page .plv-contact-hero {
    padding: 92px 40px 88px;

    background: var(--contact-bg-soft);
}

#plv-contact-page .plv-contact-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, 0.55fr);
    gap: 84px;
    align-items: end;

    width: 100%;
    max-width: 1120px;

    margin: 0 auto;
}

#plv-contact-page .plv-contact-eyebrow {
    position: relative;

    width: fit-content;
    margin: 0 0 26px;

    color: var(--contact-gold);

    font-family:
        Georgia,
        "Times New Roman",
        serif;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.25em;
}

#plv-contact-page .plv-contact-eyebrow::after {
    content: "";

    position: absolute;
    top: 50%;
    left: calc(100% + 20px);

    width: 70px;
    height: 1px;

    background: var(--contact-gold);
}

#plv-contact-page .plv-contact-hero h1 {
    max-width: 760px;
    margin: 0;

    color: #111;

    font-size: clamp(38px, 4.4vw, 62px);
    font-weight: 400;
    letter-spacing: 0.055em;
    line-height: 1.55;
}

#plv-contact-page .plv-contact-hero__lead {
    max-width: 720px;
    margin: 34px 0 0;

    color: var(--contact-subtext);
}

#plv-contact-page .plv-contact-hero__aside {
    padding: 8px 0 8px 28px;

    border-left: 1px solid #cdbb9c;
}

#plv-contact-page .plv-contact-hero__aside-label {
    margin: 0 0 13px;

    color: var(--contact-gold-dark);

    font-family:
        Georgia,
        "Times New Roman",
        serif;
    font-size: 11px !important;
    font-weight: 600;
    letter-spacing: 0.16em !important;
    line-height: 1.5 !important;
}

#plv-contact-page .plv-contact-hero__aside p:last-child {
    margin: 0;

    color: var(--contact-subtext);

    font-size: 14px;
}


/* =========================================================
   FORM AREA
   ========================================================= */

#plv-contact-page .plv-contact-form {
    padding: 92px 40px 104px;

    background: var(--contact-white);
}

#plv-contact-page .plv-contact-form__inner {
    display: grid;
    grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
    gap: 84px;
    align-items: start;

    width: 100%;
    max-width: 1120px;

    margin: 0 auto;
}

#plv-contact-page .plv-contact-form__intro {
    position: sticky;
    top: 28px;
}

#plv-contact-page .plv-contact-form__intro h2 {
    margin: 0;

    color: var(--contact-text);

    font-size: clamp(30px, 2.8vw, 40px);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.6;
}

#plv-contact-page .plv-contact-form__intro > p:not(.plv-contact-section-label) {
    margin: 22px 0 0;

    color: var(--contact-subtext);
}

/* DIRECT MAIL */

#plv-contact-page .plv-contact-direct {
    margin-top: 36px;
    padding-top: 30px;

    border-top: 1px solid var(--contact-line);
}

#plv-contact-page .plv-contact-direct__label {
    margin: 0 0 10px !important;

    color: var(--contact-gold-dark) !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif;
    font-size: 10px !important;
    font-weight: 600;
    letter-spacing: 0.16em !important;
    line-height: 1.5 !important;
}

#plv-contact-page .plv-contact-direct h3 {
    margin: 0;

    color: var(--contact-text);

    font-size: 18px;
    font-weight: 400;
    letter-spacing: 0.035em;
    line-height: 1.7;
}

#plv-contact-page .plv-contact-direct > p:not(.plv-contact-direct__label) {
    margin: 14px 0 0;

    color: #777066;

    font-size: 12px;
    line-height: 1.9;
}

#plv-contact-page .plv-contact-direct__mail {
    margin-top: 19px;
}

#plv-contact-page .plv-contact-direct__mail img {
    display: block;

    width: auto;
    max-width: 100%;
    max-height: 62px;

    object-fit: contain;
    object-position: left center;
}

#plv-contact-page .plv-contact-form__notes {
    margin-top: 30px;
    padding-top: 25px;

    border-top: 1px solid var(--contact-line);
}

#plv-contact-page .plv-contact-form__notes p {
    margin: 0 0 16px;

    color: #777066;

    font-size: 12px;
}

#plv-contact-page .plv-contact-form__notes p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   CONTACT FORM 7
   ========================================================= */

#plv-contact-page .plv-contact-form__body {
    padding: 46px 50px 50px;

    background: var(--contact-bg-soft);
    border: 1px solid #e2dbd1;
}

#plv-contact-page .wpcf7 {
    margin: 0;
}

#plv-contact-page .wpcf7-form > p {
    margin: 0 0 28px;
}

#plv-contact-page .wpcf7-form > p:last-of-type {
    margin-bottom: 0;
}

#plv-contact-page .wpcf7-form label {
    display: block;

    color: #342f29;

    font-size: 13px;
    line-height: 1.75;
    letter-spacing: 0.055em;
}

#plv-contact-page .wpcf7-form-control-wrap {
    display: block;

    margin-top: 9px;
}

#plv-contact-page .wpcf7-form input[type="text"],
#plv-contact-page .wpcf7-form input[type="email"],
#plv-contact-page .wpcf7-form input[type="tel"],
#plv-contact-page .wpcf7-form input[type="url"],
#plv-contact-page .wpcf7-form select,
#plv-contact-page .wpcf7-form textarea {
    width: 100%;

    margin: 0;
    padding: 13px 15px;

    color: #27231f;

    border: 1px solid #cbc3b8;
    border-radius: 0;
    outline: none;

    background: #fff;

    font-family:
        "Yu Mincho",
        "YuMincho",
        "Hiragino Mincho ProN",
        serif;
    font-size: 14px;
    line-height: 1.7;

    box-shadow: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

#plv-contact-page .wpcf7-form input[type="text"]:focus,
#plv-contact-page .wpcf7-form input[type="email"]:focus,
#plv-contact-page .wpcf7-form input[type="tel"]:focus,
#plv-contact-page .wpcf7-form input[type="url"]:focus,
#plv-contact-page .wpcf7-form select:focus,
#plv-contact-page .wpcf7-form textarea:focus {
    border-color: var(--contact-gold);

    box-shadow:
        0 0 0 2px rgba(185, 133, 55, 0.08);
}

#plv-contact-page .wpcf7-form textarea {
    min-height: 220px;

    resize: vertical;
}

#plv-contact-page .wpcf7-form input[type="submit"] {
    display: inline-flex;

    min-width: 250px;
    min-height: 52px;

    margin: 8px 0 0;
    padding: 14px 30px;

    border: 1px solid var(--contact-navy);
    border-radius: 0;

    background: var(--contact-navy);
    color: #fff;

    font-family:
        "Yu Mincho",
        "YuMincho",
        "Hiragino Mincho ProN",
        serif;
    font-size: 14px;
    letter-spacing: 0.08em;

    cursor: pointer;

    transition:
        background 0.22s ease,
        border-color 0.22s ease;
}

#plv-contact-page .wpcf7-form input[type="submit"]:hover {
    background: #24445b;
    border-color: #24445b;
}

#plv-contact-page .wpcf7-spinner {
    vertical-align: middle;
}

#plv-contact-page .wpcf7-not-valid-tip {
    margin-top: 7px;

    font-size: 12px;
    line-height: 1.6;
}

#plv-contact-page .wpcf7 form .wpcf7-response-output {
    margin: 28px 0 0;
    padding: 15px 18px;

    border-width: 1px;

    font-size: 13px;
    line-height: 1.8;
}


/* =========================================================
   CLOSING
   ========================================================= */

#plv-contact-page .plv-contact-closing {
    padding: 78px 40px 82px;

    background: var(--contact-dark);
    color: #eeeae3;

    text-align: center;
}

#plv-contact-page .plv-contact-closing__inner {
    width: 100%;
    max-width: 760px;

    margin: 0 auto;
}

#plv-contact-page .plv-contact-closing h2 {
    margin: 0;

    color: #fff;

    font-size: clamp(27px, 2.4vw, 36px);
    font-weight: 400;
    letter-spacing: 0.05em;
    line-height: 1.65;
}

#plv-contact-page .plv-contact-closing p:not(.plv-contact-section-label) {
    margin: 22px 0 0;

    color: #c8c3ba;
}


/* =========================================================
   TABLET
   ========================================================= */

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

    #plv-contact-page .plv-header__inner {
        width: calc(100% - 48px);
    }

    #plv-contact-page .plv-header__nav {
        gap: 22px;
        margin-left: 28px;
    }

    #plv-contact-page .plv-header__sub {
        display: none;
    }

    #plv-contact-page .plv-contact-hero__inner,
    #plv-contact-page .plv-contact-form__inner {
        gap: 50px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

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

    #plv-contact-page p {
        font-size: 13px;
    }


    /* HEADER
       STORYと同じ中央揃え */
    #plv-contact-page .plv-header {
        height: auto;
    }

    #plv-contact-page .plv-header__inner {
        width: calc(100% - 24px);
        height: auto;

        padding: 14px 0 12px;

        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 10px;
    }

    #plv-contact-page .plv-header__brand {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;

        min-height: 0;
        padding: 0;
        border-bottom: 0;

        text-align: center;
    }

    #plv-contact-page .plv-header__sub {
        display: block !important;

        font-size: 11px;
        line-height: 1.4;
        letter-spacing: 0.03em;
        white-space: nowrap;
    }

    #plv-contact-page .plv-header__name {
        display: block;

        font-size: 16px;
        line-height: 1.4;
        letter-spacing: 0.12em;
        white-space: nowrap;
    }

    #plv-contact-page .plv-header__nav {
        width: 100%;

        display: flex;
        justify-content: center;
        flex-wrap: nowrap;

        gap: 13px;

        margin: 0;
        padding: 0;
        overflow: visible;

        white-space: nowrap;
    }

    #plv-contact-page .plv-header__nav a {
        flex: 0 0 auto;

        padding: 0;

        font-size: 12px;
        white-space: nowrap;
        letter-spacing: 0;
    }

    #plv-contact-page .plv-header__nav a[aria-current="page"]::after {
        bottom: -7px;
    }


    /* HERO */

    #plv-contact-page .plv-contact-hero {
        padding: 58px 25px 55px;
    }

    #plv-contact-page .plv-contact-hero__inner {
        display: block;
    }

    #plv-contact-page .plv-contact-eyebrow {
        margin-bottom: 20px;

        font-size: 11px;
    }

    #plv-contact-page .plv-contact-eyebrow::after {
        width: 46px;
    }

    #plv-contact-page .plv-contact-hero h1 {
        font-size: 34px;
        line-height: 1.55;
    }

    #plv-contact-page .plv-contact-hero__lead {
        margin-top: 27px;
    }

    #plv-contact-page .plv-contact-hero__lead br {
        display: none;
    }

    #plv-contact-page .plv-contact-hero__aside {
        margin-top: 40px;
        padding-left: 20px;
    }

#plv-contact-page .plv-contact-hero__aside p:last-child {
    font-size: 13px;
}

    /* FORM */

    #plv-contact-page .plv-contact-form {
        padding: 56px 25px 64px;
    }

    #plv-contact-page .plv-contact-form__inner {
        display: block;
    }

    #plv-contact-page .plv-contact-form__intro {
        position: static;
    }

    #plv-contact-page .plv-contact-form__intro h2 {
        font-size: 27px;
    }

    #plv-contact-page .plv-contact-direct {
        margin-top: 30px;
        padding-top: 25px;
    }

    #plv-contact-page .plv-contact-direct h3 {
        font-size: 17px;
    }

    #plv-contact-page .plv-contact-direct__mail img {
        max-height: 54px;
    }

    #plv-contact-page .plv-contact-form__notes {
        margin-top: 26px;
        padding-top: 22px;
    }

    #plv-contact-page .plv-contact-form__body {
        margin-top: 38px;
        padding: 30px 24px 32px;
    }

    #plv-contact-page .wpcf7-form > p {
        margin-bottom: 23px;
    }

    #plv-contact-page .wpcf7-form textarea {
        min-height: 190px;
    }

    #plv-contact-page .wpcf7-form input[type="submit"] {
        width: 100%;
        min-width: 0;
    }


    /* CLOSING */

    #plv-contact-page .plv-contact-closing {
        padding: 58px 25px 62px;
    }

    #plv-contact-page .plv-contact-closing h2 {
        font-size: 26px;
    }

}
