/* =========================================================
   ROOT VARIABLES
========================================================= */

:root {
    --ink: #25231f;
    --beige: #f3f0eb;
    --gold: #ae8b45;
    --gold-dark: #84682f;
    --line: #d9d1c3;
    --white: #ffffff;
    --black: #111111;

    --max: 1180px;
    --header-height: 96px;
}


/* =========================================================
   RESET / BASE
========================================================= */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    background: #ffffff;
    color: var(--ink);

    /*font-family:
        "Noto Sans JP",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        sans-serif;*/
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;

    line-height: 1.8;
}

body.menu-open {
    overflow: hidden;
}

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

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

button,
input,
textarea,
select {
    font: inherit;
}


.pcv{
    display: block;
}
.spv{
    display: none;
}

/* =========================================================
   COMMON CONTAINER
========================================================= */

.container {
    width: min(
        calc(100% - 40px),
        var(--max)
    );

    margin: 0 auto;
}


/* =========================================================
   COMMON SECTION
========================================================= */

.section {
    padding: 70px 0;
}

.section-title {
    margin: 0 0 45px;

    text-align: center;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 34px;
    line-height: 1.5;
    font-weight: 500;
}


/* =========================================================
   EYEBROW
========================================================= */

.eyebrow {
    color: #8a7450;

    font-family:
        Arial,
        sans-serif;

    font-size: 11px;
    line-height: 1.4;
    letter-spacing: 0.16em;

    text-transform: uppercase;
}


/* =========================================================
   COMMON BUTTON
========================================================= */

.btn {
    min-width: 220px;

    padding: 13px 28px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid var(--gold);

    background: #ffffff;
    color: #7a6335;

    transition:
        background 0.3s ease,
        color 0.3s ease;
}

.btn:hover {
    background: var(--gold);
    color: #ffffff;
}


/* =========================================================
   COMMON CARDS
========================================================= */

.cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}


/* =========================================================
   CASE CARD
========================================================= */

.case-card {
    background: #ffffff;
    border: 1px solid #e4dfd7;
}

.case-card__body {
    padding: 22px;
}

.case-card img {
    width: 100%;

    aspect-ratio: 16 / 9;
    object-fit: cover;
}


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

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;

    width: 100%;

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

.site-header__inner {
    width: 100%;
    height: var(--header-height);

    display: flex;
    align-items: stretch;
    justify-content: space-between;
}


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

.site-logo {
    width: 320px;

    display: flex;
    align-items: center;

    padding-left: 42px;

    background: #ffffff;
}

.site-logo img {
    width: 225px;
    max-width: 100%;
    height: auto;
}


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

.site-header__right {
    display: flex;
    align-items: stretch;

    margin-left: auto;
}


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

.header-tel {
    min-width: 255px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 13px;

    padding: 0 24px;

    color: #222222;

    border-left: 1px solid #ece9e5;

    transition:
        background 0.3s ease,
        color 0.3s ease;
}

.header-tel:hover {
    background: #f7f5f1;
}

.header-tel__icon {
    width: 29px;
    height: 29px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;
}

.header-tel__icon svg {
    width: 100%;
    height: 100%;

    fill: var(--gold);
}

.header-tel__body {
    display: flex;
    flex-direction: column;
}

.header-tel__number {
    font-family:
        "Times New Roman",
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 24px;
    line-height: 1.1;
    letter-spacing: 0.03em;
}

.header-tel__time {
    margin-top: 7px;

    color: #777777;

    font-size: 10px;
    line-height: 1.3;
    letter-spacing: 0.08em;
}


/* =========================================================
   HEADER ACTION BUTTON
========================================================= */

.header-action {
    position: relative;

    width: 154px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 11px;

    overflow: hidden;

    color: #ffffff;

    transition:
        background 0.35s ease,
        color 0.35s ease;
}

.header-action::before {
    content: "";

    position: absolute;
    left: 0;
    bottom: 0;

    width: 100%;
    height: 0;

    transition: height 0.35s ease;
}

.header-action:hover::before {
    height: 100%;
}

.header-action__icon,
.header-action__text {
    position: relative;
    z-index: 1;
}

.header-action__icon {
    width: 25px;
    height: 25px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;
}

.header-action__icon svg {
    width: 100%;
    height: 100%;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.header-action__text {
    display: flex;
    flex-direction: column;
}

.header-action__text strong {
    font-size: 13px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.08em;
}

.header-action__text small {
    margin-top: 7px;

    font-family:
        Arial,
        sans-serif;

    font-size: 7px;
    line-height: 1;
    letter-spacing: 0.13em;
}


/* =========================================================
   HEADER WEB RESERVATION
========================================================= */

.header-action--reserve {
    background: var(--gold);
}

.header-action--reserve::before {
    background: var(--gold-dark);
}


/* =========================================================
   HEADER MAIL CONSULTATION
========================================================= */

.header-action--mail {
    background: #353535;
}

.header-action--mail::before {
    background: #1c1c1c;
}


/* =========================================================
   MENU BUTTON
========================================================= */

.menu-btn {
    width: 104px;

    padding: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    border: 0;
    border-left: 1px solid #ece9e5;
    border-radius: 0;

    background: #ffffff;
    color: #222222;

    cursor: pointer;

    transition:
        background 0.3s ease,
        color 0.3s ease;
}

.menu-btn:hover {
    background: #f6f3ed;
    color: var(--gold);
}

.menu-btn__lines {
    position: relative;

    width: 29px;
    height: 18px;

    display: block;
}

.menu-btn__lines i {
    position: absolute;
    left: 0;

    width: 29px;
    height: 1px;

    display: block;

    background: currentColor;

    transition:
        top 0.35s ease,
        transform 0.35s ease,
        opacity 0.25s ease;
}

.menu-btn__lines i:nth-child(1) {
    top: 0;
}

.menu-btn__lines i:nth-child(2) {
    top: 8px;
}

.menu-btn__lines i:nth-child(3) {
    top: 16px;
}

.menu-btn__text {
    margin-top: 10px;

    font-family:
        Arial,
        sans-serif;

    font-size: 9px;
    line-height: 1;
    letter-spacing: 0.18em;
}


/* =========================================================
   MENU BUTTON OPEN
========================================================= */

body.menu-open .menu-btn {
    background: #f6f3ed;
    color: var(--gold);
}

body.menu-open .menu-btn__lines i:nth-child(1) {
    top: 8px;

    transform: rotate(45deg);
}

body.menu-open .menu-btn__lines i:nth-child(2) {
    opacity: 0;
}

body.menu-open .menu-btn__lines i:nth-child(3) {
    top: 8px;

    transform: rotate(-45deg);
}


/* =========================================================
   GLOBAL NAVIGATION
========================================================= */

.global-nav {
    position: fixed;
    z-index: 900;

    top: var(--header-height);
    right: 0;
    bottom: 0;
    left: 0;

    visibility: hidden;
    opacity: 0;

    overflow-x: hidden;
    overflow-y: auto;

    background: #ffffff;
    color: var(--ink);

    pointer-events: none;

    transition:
        opacity 0.4s ease,
        visibility 0.4s ease;
}

body.menu-open .global-nav {
    visibility: visible;
    opacity: 1;

    pointer-events: auto;
}


/* =========================================================
   GLOBAL NAV BACKGROUND
========================================================= */

.global-nav__bg {
    position: fixed;

    top: var(--header-height);
    right: 0;
    bottom: 0;
    left: 0;

    overflow: hidden;

    background:
        linear-gradient(
            90deg,
            #faf9f7 0%,
            #faf9f7 34%,
            #ffffff 34%,
            #ffffff 100%
        );

    pointer-events: none;
}


/* 大きな薄い英字 */

.global-nav__bg::before {
    content: "ALL-ON-4";

    position: absolute;

    left: -30px;
    bottom: -45px;

    color: rgba(174, 139, 69, 0.045);

    font-family:
        "Times New Roman",
        serif;

    font-size: clamp(110px, 16vw, 260px);
    line-height: 1;
    letter-spacing: -0.05em;

    white-space: nowrap;
}


/* 右上の大きな円 */

.global-nav__bg::after {
    content: "";

    position: absolute;

    top: 70px;
    right: -120px;

    width: 430px;
    height: 430px;

    border: 1px solid rgba(174, 139, 69, 0.15);
    border-radius: 50%;
}


/* =========================================================
   GLOBAL NAV DECORATION
========================================================= */

.global-nav__bg span {
    position: absolute;

    display: block;

    border-radius: 50%;

    pointer-events: none;
}

.global-nav__bg span:nth-child(1) {
    top: 115px;
    right: 80px;

    width: 230px;
    height: 230px;

    border: 1px solid rgba(174, 139, 69, 0.10);
}

.global-nav__bg span:nth-child(2) {
    top: 40%;
    left: calc(34% - 5px);

    width: 10px;
    height: 10px;

    background: var(--gold);
}

.global-nav__bg span:nth-child(3) {
    left: 34%;
    bottom: 80px;

    width: 160px;
    height: 1px;

    border-radius: 0;

    background: rgba(174, 139, 69, 0.35);
}


/* =========================================================
   GLOBAL NAV INNER
========================================================= */

.global-nav__inner {
    position: relative;
    z-index: 2;

    width: min(
        calc(100% - 100px),
        1320px
    );

    min-height: calc(100vh - var(--header-height));

    margin: 0 auto;
    padding: 72px 0 80px;

    display: grid;
    grid-template-columns: 0.65fr 1.35fr;
    gap: 90px;
}


/* =========================================================
   GLOBAL NAV INTRO
========================================================= */

.global-nav__intro {
    position: relative;

    padding: 15px 65px 20px 0;
}

.global-nav__intro::before {
    content: "";

    display: block;

    width: 46px;
    height: 1px;

    margin-bottom: 27px;

    background: var(--gold);
}

.global-nav__label {
    margin: 0 0 35px;

    color: var(--gold);

    font-size: 11px;
    line-height: 1;
    letter-spacing: 0.25em;
}

.global-nav__catch {
    margin: 0;

    color: #292722;

    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: clamp(30px, 2.5vw, 45px);
    line-height: 1.8;
    font-weight: 400;
    letter-spacing: 0.07em;
}


/* =========================================================
   GLOBAL NAV TELEPHONE
========================================================= */

.global-nav__contact {
    margin-top: 55px;
}

.global-nav__tel {
    position: relative;

    display: inline-block;

    padding-left: 20px;

    color: #292722;
}

.global-nav__tel::before {
    content: "";

    position: absolute;

    top: 0;
    bottom: 0;
    left: 0;

    width: 1px;

    background: var(--gold);
}

.global-nav__tel small {
    display: block;

    margin-bottom: 8px;

    color: #9b8b70;

    font-family:
        Arial,
        sans-serif;

    font-size: 9px;
    line-height: 1;
    letter-spacing: 0.20em;
}

.global-nav__tel strong {
    display: block;

    color: #292722;

    font-family:
        "Times New Roman",
        serif;

    font-size: 31px;
    line-height: 1.2;
    font-weight: 400;
    letter-spacing: 0.03em;
}

.global-nav__tel span {
    display: block;

    margin-top: 9px;

    color: #77736d;

    font-size: 10px;
    line-height: 1.5;
}


/* =========================================================
   GLOBAL NAV MENU
========================================================= */

.global-nav__menu {
    position: relative;

    min-width: 0;
}

.global-nav__menu::before {
    content: "MENU";

    position: absolute;

    top: -42px;
    right: 0;

    color: rgba(174, 139, 69, 0.10);

    font-family:
        "Times New Roman",
        serif;

    font-size: 72px;
    line-height: 1;
    letter-spacing: 0.06em;

    pointer-events: none;
}


/* =========================================================
   GLOBAL NAV ACTIONS
========================================================= */

.global-nav__actions {
    margin-top: 48px;

    display: grid;
    grid-template-columns: 1fr 1fr;

    border: 1px solid #d7cdbc;
}

.global-nav__action {
    position: relative;

    min-height: 116px;

    padding: 28px 75px 28px 32px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    overflow: hidden;

    background: #ffffff;
    color: #292722;

    transition:
        background 0.35s ease,
        color 0.35s ease;
}

.global-nav__action:first-child {
    border-right: 1px solid #d7cdbc;
}

.global-nav__action::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 3px;
    height: 100%;

    background: var(--gold);

    transform: scaleY(0);
    transform-origin: bottom;

    transition: transform 0.35s ease;
}

.global-nav__action:hover::before {
    transform: scaleY(1);
}

.global-nav__action:hover {
    background: #f7f4ee;
}

.global-nav__action span {
    margin-bottom: 9px;

    color: #a38d66;

    font-family:
        Arial,
        sans-serif;

    font-size: 8px;
    line-height: 1;
    letter-spacing: 0.19em;
}

.global-nav__action strong {
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        serif;

    font-size: 16px;
    line-height: 1.4;
    font-weight: 400;
    letter-spacing: 0.08em;
}

.global-nav__action i {
    position: absolute;

    top: 50%;
    right: 28px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #cdbd9f;
    border-radius: 50%;

    color: var(--gold);

    font-family:
        Arial,
        sans-serif;

    font-size: 15px;
    line-height: 1;
    font-style: normal;

    transform: translateY(-50%);

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

.global-nav__action:hover i {
    background: var(--gold);
    color: #ffffff;
    border-color: var(--gold);
}


/* =========================================================
   MENU OPEN ANIMATION
========================================================= */

body.menu-open .global-nav__intro {
    animation: menuFadeUp 0.55s ease 0.08s both;
}

body.menu-open .global-nav__actions {
    animation: menuFadeUp 0.55s ease 0.26s both;
}

@keyframes menuFadeUp {

    from {
        opacity: 0;
        transform: translateY(18px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   SITE FOOTER
========================================================= */

.site-footer {
    padding: 80px 0 0;

    background: #f2eee6;

    color: #403930;
}

.site-footer__inner {
    width: min(1280px, calc(100% - 60px));

    margin: 0 auto;
}


/* =========================================================
   FOOTER TOP
========================================================= */

.site-footer__top {
    display: grid;

    grid-template-columns: 250px minmax(0, 1fr);

    gap: 75px;

    padding-bottom: 65px;
}


/* =========================================================
   BRAND
========================================================= */

.footer-brand__logo {
    display: inline-block;

    margin-bottom: 30px;
}

.footer-brand__logo img {
    display: block;

    width: 220px;
    height: auto;
}

.footer-brand__address {
    margin: 0 0 22px;

    color: #5c554d;

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

.footer-brand__tel {
    display: block;

    margin-bottom: 7px;

    color: #3a3128;

    font-family:
        "Times New Roman",
        "Yu Mincho",
        "YuMincho",
        serif;

    font-size: 24px;
    line-height: 1.4;

    text-decoration: none;
}

.footer-brand__tel span {
    margin-right: 6px;

    color: #9a7945;

    font-size: 9px;

    letter-spacing: .14em;
}

.footer-brand__hours {
    margin: 0;

    color: #736c64;

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


/* SNS */

.footer-brand__sns {
    display: flex;

    gap: 18px;

    margin-top: 27px;
}

.footer-brand__sns a {
    position: relative;

    padding-bottom: 4px;

    color: #695b49;

    font-family: "Times New Roman", serif;

    font-size: 11px;

    letter-spacing: .08em;

    text-decoration: none;
}

.footer-brand__sns a::after {
    content: "";

    position: absolute;

    right: 0;
    bottom: 0;
    left: 0;

    height: 1px;

    background: #a5834e;

    transform: scaleX(0);

    transform-origin: left;

    transition: transform .25s ease;
}

.footer-brand__sns a:hover::after {
    transform: scaleX(1);
}


/* =========================================================
   FOOTER NAV
========================================================= */

.footer-nav {
    display: grid;

    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 45px;
}

.footer-nav__title {
    margin: 0 0 25px;

    padding-bottom: 13px;

    border-bottom: 1px solid #cfc4b2;

    color: #8e6e3d;

    font-family: "Times New Roman", serif;

    font-size: 10px;
    line-height: 1.5;

    letter-spacing: .14em;
}

.footer-nav__title span {
    display: block;

    margin-top: 5px;

    color: #3d352d;

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

    font-size: 15px;

    letter-spacing: .03em;
}

.footer-nav ul {
    margin: 0;
    padding: 0;

    list-style: none;
}

.footer-nav li {
    margin: 0 0 11px;
}

.footer-nav a {
    position: relative;

    display: inline-block;

    padding-left: 12px;

    color: #625b53;

    font-size: 12px;
    line-height: 1.65;

    text-decoration: none;

    transition:
        color .25s ease,
        transform .25s ease;
}

.footer-nav a::before {
    content: "";

    position: absolute;

    top: .78em;
    left: 0;

    width: 4px;
    height: 1px;

    background: #a5834e;
}

.footer-nav a:hover {
    color: #8c6937;

    transform: translateX(3px);
}


/* MAIN LINK */

.footer-nav__main {
    margin-bottom: 12px !important;
}

.footer-nav__main a {
    padding-left: 0;

    color: #382f27;

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

    font-size: 14px;
    font-weight: 600;
}

.footer-nav__main a::before {
    display: none;
}


/* GROUP */

.footer-nav__group {
    margin-top: 30px !important;

    padding-top: 23px !important;

    border-top: 1px solid #ddd4c6;
}


/* =========================================================
   FOOTER CONTACT
========================================================= */

.footer-contact {
    display: grid;

    grid-template-columns: 180px minmax(0, 1fr);

    align-items: center;

    gap: 35px;

    padding: 40px 0;

    border-top: 1px solid #cfc4b2;
    border-bottom: 1px solid #cfc4b2;
}

.footer-contact__heading span {
    display: block;

    margin-bottom: 7px;

    color: #9a7945;

    font-family: "Times New Roman", serif;

    font-size: 9px;

    letter-spacing: .18em;
}

.footer-contact__heading strong {
    display: block;

    color: #352e27;

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

    font-size: 18px;
    font-weight: 500;
}


/* CONTACT LINKS */

.footer-contact__links {
    display: grid;

    grid-template-columns: 1.25fr 1fr 1fr;

    gap: 1px;

    background: #d4c8b6;
}

.footer-contact__links > a {
    display: flex;

    min-height: 110px;

    padding: 20px 25px;

    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    background: #fff;

    text-decoration: none;

    transition:
        background .25s ease,
        transform .25s ease;
}

.footer-contact__links > a:hover {
    position: relative;

    z-index: 2;

    background: #f8f4ec;

    transform: translateY(-2px);
}

.footer-contact__links small {
    display: block;

    margin-bottom: 5px;

    color: #82786d;

    font-size: 10px;
}

.footer-contact__links strong {
    display: block;

    color: #392f26;

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

    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
}

.footer-contact__tel strong {
    font-family: "Times New Roman", serif;

    font-size: 24px;
}

.footer-contact__links span {
    display: block;

    margin-top: 5px;

    color: #9a7945;

    font-family: "Times New Roman", serif;

    font-size: 9px;

    letter-spacing: .1em;
}


/* =========================================================
   FOOTER BOTTOM
========================================================= */

.site-footer__bottom {
    display: flex;

    align-items: center;
    justify-content: space-between;

    min-height: 85px;
}

.footer-subnav {
    display: flex;

    gap: 25px;
}

.footer-subnav a {
    color: #746d65;

    font-size: 10px;

    text-decoration: none;
}

.footer-subnav a:hover {
    color: #8e6e3d;
}

.footer-copyright {
    color: #8a837b;

    font-family: "Times New Roman", serif;

    font-size: 12px;

    letter-spacing: .05em;
}


/* =========================================================
   FIXED CONTACT
========================================================= */

.fixed-contact {
    position: fixed;

    right: 25px;
    bottom: 25px;

    z-index: 900;

    display: flex;

    box-shadow:
        0 8px 30px rgba(43, 35, 27, .18);
}

.fixed-contact a {
    display: flex;

    min-width: 125px;
    height: 60px;

    padding: 0 18px;

    flex-direction: column;
    align-items: center;
    justify-content: center;

    border-right: 1px solid rgba(255, 255, 255, .25);

    color: #fff;

    font-size: 11px;
    line-height: 1.4;

    text-align: center;
    text-decoration: none;

    transition:
        filter .25s ease,
        transform .25s ease;
}

.fixed-contact a:last-child {
    border-right: 0;
}

.fixed-contact a:hover {
    filter: brightness(1.08);

    transform: translateY(-2px);
}

.fixed-contact a span {
    display: block;

    margin-bottom: 2px;

    font-family: "Times New Roman", serif;

    font-size: 8px;

    letter-spacing: .12em;

    opacity: .8;
}

.fixed-contact__tel {
    background: #51473d;
}

.fixed-contact__mail {
    background: #927344;
}

.fixed-contact__web {
    background: #76572d;
}


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

@media (max-width: 1100px) {

    .site-footer__top {
        grid-template-columns: 210px minmax(0, 1fr);

        gap: 45px;
    }

    .footer-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 45px 35px;
    }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .site-footer {
        padding-top: 55px;

        padding-bottom: 70px;
    }

    .site-footer__inner {
        width: calc(100% - 36px);
    }


    /* BRAND */

    .site-footer__top {
        display: block;

        padding-bottom: 45px;
    }

    .footer-brand {
        padding-bottom: 40px;
    }

    .footer-brand__logo {
        margin-bottom: 23px;
    }

    .footer-brand__logo img {
        width: 190px;
    }

    .footer-brand__tel {
        font-size: 23px;
    }


    /* NAV */

    .footer-nav {
        grid-template-columns: 1fr 1fr;

        gap: 40px 22px;
    }

    .footer-nav__title {
        margin-bottom: 18px;
    }

    .footer-nav__title span {
        font-size: 14px;
    }

    .footer-nav li {
        margin-bottom: 10px;
    }

    .footer-nav a {
        padding-left: 10px;

        font-size: 11px;
    }

    .footer-nav__main a {
        padding-left: 0;

        font-size: 13px;
    }


    /* CONTACT */

    .footer-contact {
        display: block;

        padding: 35px 0;
    }

    .footer-contact__heading {
        margin-bottom: 22px;
    }

    .footer-contact__links {
        grid-template-columns: 1fr;

        gap: 1px;
    }

    .footer-contact__links > a {
        min-height: 90px;

        padding: 17px 20px;
    }


    /* BOTTOM */

    .site-footer__bottom {
        display: block;

        min-height: 0;

        padding: 28px 0;
    }

    .footer-subnav {
        flex-wrap: wrap;

        gap: 10px 20px;

        margin-bottom: 20px;
    }


    /* FIXED CONTACT */

    .fixed-contact {
        right: 0;
        bottom: 0;
        left: 0;

        width: 100%;

        box-shadow:
            0 -5px 20px rgba(43, 35, 27, .13);
    }

    .fixed-contact a {
        min-width: 0;
        height: 62px;

        padding: 0 5px;

        flex: 1;

        font-size: 10px;
    }

}


/* =========================================================
   FIXED CONTACT
========================================================= */

.fixed-contact {
    position: fixed;

    left: 0;
    right: 0;
    bottom: 0;

    z-index: 800;

    display: none;

    background: #ffffff;

    border-top: 1px solid #dddddd;
}

.fixed-contact a {
    flex: 1;

    padding: 14px 5px;

    text-align: center;

    font-size: 12px;
    line-height: 1.4;

    border-right: 1px solid #dddddd;
}

.fixed-contact a:last-child {
    border-right: 0;

    background: var(--gold);
    color: #ffffff;
}


/* =========================================================
   TABLET
   901px - 1100px
========================================================= */

@media (max-width: 1100px) {

    /* HEADER */

    .site-logo {
        width: 260px;

        padding-left: 25px;
    }

    .site-logo img {
        width: 200px;
    }

    .header-tel {
        min-width: 220px;

        padding: 0 18px;
    }

    .header-tel__number {
        font-size: 21px;
    }

    .header-action {
        width: 135px;
    }


    /* GLOBAL NAV */

    .global-nav__inner {
        width: calc(100% - 60px);

        grid-template-columns: 0.6fr 1.4fr;

        gap: 55px;
    }

    .global-nav__intro {
        padding-right: 30px;
    }

}


/* =========================================================
   SMARTPHONE
   900px以下
========================================================= */

@media (max-width: 900px) {

    :root {
        --header-height: 70px;
    }


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

    .site-header__inner {
        height: var(--header-height);
    }

    .site-logo {
        width: auto;
        min-width: 0;

        flex: 1;

        padding-left: 18px;
    }

    .site-logo img {
        width: 175px;
    }

    .header-tel {
        display: none;
    }


    /* =====================================================
       HEADER WEB / MAIL
    ===================================================== */

    .header-action {
        width: 66px;

        gap: 0;
    }

    .header-action__icon {
        width: 22px;
        height: 22px;
    }

    .header-action__text {
        display: none;
    }


    /* =====================================================
       MENU BUTTON
    ===================================================== */

    .menu-btn {
        width: 66px;
    }

    .menu-btn__lines {
        width: 25px;
    }

    .menu-btn__lines i {
        width: 25px;
    }


    /* =====================================================
       GLOBAL NAV BACKGROUND
    ===================================================== */

    .global-nav__bg {
        background: #ffffff;
    }

    .global-nav__bg::before {
        left: -20px;
        bottom: 10px;

        font-size: 90px;
    }

    .global-nav__bg::after {
        top: 50px;
        right: -160px;

        width: 300px;
        height: 300px;
    }

    .global-nav__bg span:nth-child(1) {
        top: 75px;
        right: -70px;

        width: 190px;
        height: 190px;
    }

    .global-nav__bg span:nth-child(2),
    .global-nav__bg span:nth-child(3) {
        display: none;
    }


    /* =====================================================
       GLOBAL NAV INNER
    ===================================================== */

    .global-nav__inner {
        width: calc(100% - 40px);
        min-height: auto;

        margin: 0 auto;
        padding: 40px 0 100px;

        display: block;
    }


    /* =====================================================
       GLOBAL NAV INTRO
    ===================================================== */

    .global-nav__intro {
        padding: 0 0 30px;

        border-bottom: 1px solid #ded9d0;
    }

    .global-nav__intro::before {
        width: 35px;

        margin-bottom: 20px;
    }

    .global-nav__label {
        margin-bottom: 17px;
    }

    .global-nav__catch {
        font-size: 25px;
        line-height: 1.7;
    }

    .global-nav__contact {
        display: none;
    }


    /* =====================================================
       GLOBAL NAV MENU
    ===================================================== */

    .global-nav__menu {
        padding-top: 15px;
    }

    .global-nav__menu::before {
        top: 7px;
        right: 0;

        font-size: 45px;
    }


    /* =====================================================
       GLOBAL NAV CTA
    ===================================================== */

    .global-nav__actions {
        margin-top: 35px;

        grid-template-columns: 1fr;
    }

    .global-nav__action {
        min-height: 88px;

        padding: 20px 70px 20px 25px;
    }

    .global-nav__action:first-child {
        border-right: 0;
        border-bottom: 1px solid #d7cdbc;
    }

    .global-nav__action i {
        right: 22px;

        width: 34px;
        height: 34px;
    }


    /* =====================================================
       COMMON
    ===================================================== */

    .container {
        width: calc(100% - 30px);
    }

    .section {
        padding: 45px 0;
    }

    .section-title {
        font-size: 25px;
    }

    .cards {
        grid-template-columns: 1fr;
    }


    /* =====================================================
       FIXED CONTACT
    ===================================================== */

    .fixed-contact {
        display: flex;
    }

}


/* =========================================================
   SMALL SMARTPHONE
   600px以下
========================================================= */

@media (max-width: 600px) {

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

    .site-logo {
        padding-left: 14px;
    }

    .site-logo img {
        width: 150px;
    }

    .header-action {
        width: 54px;
    }

    .menu-btn {
        width: 54px;
    }


    /* =====================================================
       GLOBAL NAV
    ===================================================== */

    .global-nav__catch {
        font-size: 24px;
    }

}


/* =========================================================
   GLOBAL NAV MENU HEAD
========================================================= */

.global-nav__menu-head {
    margin-bottom: 30px;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    border-bottom: 1px solid #ddd5c8;
}

.global-nav__menu-head span {
    padding-bottom: 13px;

    color: #9f8a65;

    font-family:
        "Times New Roman",
        serif;

    font-size: 9px;
    line-height: 1;
    letter-spacing: 0.22em;
}

.global-nav__menu-head strong {
    color: rgba(174, 139, 69, 0.12);

    font-family:
        "Times New Roman",
        serif;

    font-size: 58px;
    line-height: 0.8;
    font-weight: 400;
    letter-spacing: 0.03em;
}


/* =========================================================
   GLOBAL NAV GRID
========================================================= */

.global-nav__menu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);

    column-gap: 55px;
    row-gap: 0;
}


/* =========================================================
   GLOBAL NAV GROUP
========================================================= */

.global-nav__group {
    padding: 0 0 28px;
}

.global-nav__group--single {
    padding-bottom: 0;
}


/* =========================================================
   GLOBAL NAV MAIN LINK
========================================================= */

.global-nav__main-link {
    position: relative;

    min-height: 75px;

    display: grid;
    grid-template-columns: 40px 1fr 30px;
    align-items: center;

    border-bottom: 1px solid #ded8ce;

    color: #292722;

    transition:
        color 0.3s ease,
        padding-left 0.3s ease;
}

.global-nav__main-link::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: -1px;

    width: 0;
    height: 1px;

    background: var(--gold);

    transition: width 0.35s ease;
}

.global-nav__main-link:hover {
    padding-left: 7px;

    color: #8a6c34;
}

.global-nav__main-link:hover::after {
    width: 100%;
}


/* =========================================================
   NUMBER
========================================================= */

.global-nav__number {
    color: #b19b72;

    font-family:
        "Times New Roman",
        serif;

    font-size: 11px;
    line-height: 1;
    letter-spacing: 0.08em;
}


/* =========================================================
   MAIN TEXT
========================================================= */

.global-nav__main-text {
    display: flex;
    flex-direction: column;
}

.global-nav__main-text strong {
    font-family:
        "Noto Serif JP",
        "Yu Mincho",
        "Hiragino Mincho ProN",
        serif;

    font-size: 16px;
    line-height: 1.4;
    font-weight: 400;
    letter-spacing: 0.07em;
}

.global-nav__main-text small {
    margin-top: 5px;

    color: #aaa198;

    font-family:
        Arial,
        sans-serif;

    font-size: 7px;
    line-height: 1;
    letter-spacing: 0.16em;
}


/* =========================================================
   MAIN LINK ARROW
========================================================= */

.global-nav__main-link > i {
    color: #b19b72;

    font-family:
        Arial,
        sans-serif;

    font-size: 16px;
    line-height: 1;
    font-style: normal;

    text-align: right;

    transition: transform 0.3s ease;
}

.global-nav__main-link:hover > i {
    transform: translateX(4px);
}


/* =========================================================
   SUB MENU
========================================================= */

.global-nav__sub {
    margin: 13px 0 0;
    padding: 0;

    list-style: none;
}

.global-nav__sub li {
    margin: 0;
    padding: 0;
}

.global-nav__sub a {
    position: relative;

    display: block;

    padding: 6px 0 6px 18px;

    color: #666159;

    font-size: 11px;
    line-height: 1.65;

    transition:
        color 0.25s ease,
        padding-left 0.25s ease;
}

.global-nav__sub a::before {
    content: "";

    position: absolute;

    top: 50%;
    left: 0;

    width: 7px;
    height: 1px;

    background: #b9a078;

    transform: translateY(-50%);

    transition: width 0.25s ease;
}

.global-nav__sub a:hover {
    padding-left: 23px;

    color: #8a6c34;
}

.global-nav__sub a:hover::before {
    width: 12px;
}


/* =========================================================
   GLOBAL NAV RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .global-nav__menu-head {
        margin-bottom: 15px;
    }

    .global-nav__menu-head strong {
        font-size: 42px;
    }

    .global-nav__menu-grid {
        grid-template-columns: 1fr;

        column-gap: 0;
    }

    .global-nav__group {
        padding-bottom: 20px;
    }

    .global-nav__main-link {
        min-height: 68px;

        grid-template-columns: 34px 1fr 25px;
    }

    .global-nav__main-text strong {
        font-size: 14px;
    }

    .global-nav__sub {
        margin-top: 8px;
    }

    .global-nav__sub a {
        padding-top: 5px;
        padding-bottom: 5px;

        font-size: 11px;
    }

}


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

.header-social {
    display: flex;
    align-items: center;

    gap: 9px;

    margin-right: 4px;
}


/* =========================================================
   SOCIAL LINK
========================================================= */

.header-social__link {
    position: relative;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}

.header-social__link:hover {
    transform: translateY(-2px);
    opacity: 0.82;
}

.header-social__link svg {
    display: block;

    width: 22px;
    height: 22px;
}


/* =========================================================
   INSTAGRAM
========================================================= */

.header-social__link--instagram {
    border-radius: 50%;

    color: #ffffff;

    background:
        radial-gradient(
            circle at 30% 107%,
            #fdf497 0%,
            #fdf497 5%,
            #fd5949 45%,
            #d6249f 60%,
            #285aeb 90%
        );
}

.header-social__link--instagram svg {
    width: 20px;
    height: 20px;
}


/* =========================================================
   YOUTUBE
========================================================= */

.header-social__link--youtube {
    color: #ff0000;
}

.header-social__link--youtube svg {
    width: 28px;
    height: 28px;
}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .pcv{
        display: none !important;
    }
    .spv{
        display: block !important;
    }

    .header-social {
        display: none;
    }

}


/* =========================================================
   GLOBAL MENU
   文字サイズ調整
========================================================= */

/* メインメニュー */
.global-nav__main > li > a {
    font-size: 20px;
    line-height: 1.6;
    letter-spacing: 0.06em;
}


/* メインメニューの英字がある場合 */
.global-nav__main > li > a small {
    font-size: 11px;
    letter-spacing: 0.16em;
}


/* サブメニュー */
.global-nav__sub a {
    font-size: 15px;
    line-height: 1.7;
    letter-spacing: 0.03em;
}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    /* メインメニュー */
    .global-nav__main > li > a {
        font-size: 18px;
        line-height: 1.55;
    }

    /* 英字 */
    .global-nav__main > li > a small {
        font-size: 10px;
    }

    /* サブメニュー */
    .global-nav__sub a {
        font-size: 15px;
        line-height: 1.65;
    }

}


/* =========================================================
   LOWER PAGE
========================================================= */

.lower-page {
    background: #ffffff;
    color: #4d4841;
}


/* =========================================================
   PAGE TITLE
========================================================= */

.page-title {
    position: relative;
    padding: 42px 0 40px;
    background: #f5f3ef;
    border-bottom: 1px solid #e4dfd7;
}

.page-title__inner {
    position: relative;
}

.page-title__en {
    display: block;
    margin-bottom: 10px;
    color: #9a7943;
    font-family: "Times New Roman", serif;
    font-size: 11px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.22em;
}

.page-title h1 {
    margin: 0;
    color: #292621;
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 36px;
    line-height: 1.35;
    font-weight: 500;
    letter-spacing: 0.04em;
}


/* =========================================================
   BREADCRUMB
========================================================= */

.breadcrumb {
    padding: 14px 0;
    background: #ffffff;
    border-bottom: 1px solid #eeeae4;
}

.breadcrumb__list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.breadcrumb__list li {
    color: #8a847c;
    font-size: 11px;
    line-height: 1.5;
}

.breadcrumb__list li:not(:last-child)::after {
    content: "/";
    margin-left: 8px;
    color: #bbb3a7;
}

.breadcrumb__list a {
    color: #716b63;
    text-decoration: none;
}

.breadcrumb__list a:hover {
    color: #9a7943;
}


/* =========================================================
   LOWER SECTION
========================================================= */

.lower-section {
    padding: 95px 0;
}

.lower-section--gray {
    background: #f7f5f1;
}

.lower-section--beige {
    background: #eee9e1;
}


/* =========================================================
   SECTION HEADING
========================================================= */

.section-heading {
    margin-bottom: 36px;
}

.section-heading__en {
    display: block;
    margin-bottom: 12px;
    color: #9a7943;
    font-family: "Times New Roman", serif;
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.22em;
}

.section-heading h2 {
    margin: 0;
    color: #2d2924;
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 32px;
    line-height: 1.55;
    font-weight: 500;
    letter-spacing: 0.03em;
}

.section-heading p {
    max-width: 820px;
    margin: 22px 0 0;
    color: #5b554d;
    font-size: 16px;
    line-height: 2;
}


/* =========================================================
   CONTENT TITLE
========================================================= */

.lower-page h3 {
    margin: 0 0 22px;
    color: #302c27;
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 23px;
    line-height: 1.6;
    font-weight: 500;
    letter-spacing: 0.03em;
}

.lower-page p {
    margin: 0 0 24px;
    color: #575149;
    font-size: 16px;
    line-height: 2;
}

.lower-page p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   TWO COLUMN
========================================================= */

.lower-two-column {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 70px;
    align-items: center;
}

.lower-two-column--reverse .lower-two-column__image {
    order: 2;
}

.lower-two-column--reverse .lower-two-column__content {
    order: 1;
}

.lower-two-column__image img {
    display: block;
    width: 100%;
    height: auto;
}


/* =========================================================
   CONTENT LEAD
========================================================= */

.content-lead {
    margin-bottom: 28px;
    color: #3c3731;
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 21px;
    line-height: 1.8;
    font-weight: 500;
}


/* =========================================================
   POINT LIST
========================================================= */

.point-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.point-card {
    padding: 36px 30px;
    background: #ffffff;
    border-top: 2px solid #a88650;
}

.point-card__number {
    display: block;
    margin-bottom: 20px;
    color: #ad9268;
    font-family: "Times New Roman", serif;
    font-size: 38px;
    line-height: 1;
}

.point-card h3 {
    margin-bottom: 18px;
    font-size: 21px;
}

.point-card p {
    font-size: 14px;
    line-height: 1.9;
}


/* =========================================================
   INFORMATION BOX
========================================================= */

.info-box {
    padding: 40px;
    background: #f7f5f1;
    border-left: 3px solid #a88650;
}

.info-box h3 {
    margin-bottom: 16px;
}


/* =========================================================
   TEXT LINK
========================================================= */

.lower-link {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    margin-top: 20px;
    color: #80612f;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.lower-link::after {
    content: "→";
    font-family: "Times New Roman", serif;
    font-size: 18px;
    transition: transform 0.3s ease;
}

.lower-link:hover::after {
    transform: translateX(5px);
}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .page-title {
        padding: 30px 0 28px;
    }

    .page-title__en {
        margin-bottom: 8px;
        font-size: 9px;
    }

    .page-title h1 {
        font-size: 27px;
        line-height: 1.4;
    }

    .breadcrumb {
        padding: 11px 0;
    }

    .breadcrumb__list li {
        font-size: 10px;
    }

    .lower-section {
        padding: 65px 0;
    }

    .section-heading {
        margin-bottom: 26px;
    }

    .section-heading__en {
        margin-bottom: 10px;
        font-size: 9px;
    }

    .section-heading h2 {
        font-size: 25px;
        line-height: 1.55;
    }

    .section-heading p {
        margin-top: 17px;
        font-size: 15px;
        line-height: 1.9;
    }

    .lower-page h3 {
        margin-bottom: 17px;
        font-size: 21px;
    }

    .lower-page p {
        margin-bottom: 20px;
        font-size: 15px;
        line-height: 1.9;
    }

    .content-lead {
        margin-bottom: 22px;
        font-size: 18px;
        line-height: 1.8;
    }

    .lower-two-column,
    .lower-two-column--reverse {
        display: block;
    }

    .lower-two-column__image {
        margin-bottom: 30px;
    }

    .lower-two-column--reverse .lower-two-column__image,
    .lower-two-column--reverse .lower-two-column__content {
        order: initial;
    }

    .point-list {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .point-card {
        padding: 28px 24px;
    }

    .point-card__number {
        margin-bottom: 15px;
        font-size: 32px;
    }

    .point-card h3 {
        font-size: 20px;
    }

    .point-card p {
        font-size: 14px;
    }

    .info-box {
        padding: 28px 23px;
    }

}

/* =========================================================
   LOWER HERO
   症例・メンテナンス等の下層タイトル統一
========================================================= */

.lower-page .lower-hero {
    padding: 42px 0 40px;
    background: #f5f3ef;
    border-bottom: 1px solid #e4dfd7;
}

.lower-page .lower-hero__en {
    display: block;
    margin: 0 0 10px;
    color: #9a7943;
    font-family: "Times New Roman", serif;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.22em;
}

.lower-page .lower-hero h1 {
    margin: 0;
    color: #292621;
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 36px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 0.04em;
}

@media (max-width: 767px) {
    .lower-page .lower-hero {
        padding: 30px 0 28px;
    }

    .lower-page .lower-hero__en {
        margin-bottom: 8px;
        font-size: 9px;
    }

    .lower-page .lower-hero h1 {
        font-size: 27px;
        line-height: 1.4;
    }
}




/* =========================================================
   HOME CASE
========================================================= */

.home-case-grid {
    align-items: stretch;
}

.home-case-card {
    display: flex;
    flex-direction: column;

    overflow: hidden;

    background: #fff;

    border: 1px solid #e1ddd6;
}


/* =========================================================
   IMAGE
========================================================= */

.home-case-card__image {
    display: block;

    width: 100%;

    overflow: hidden;

    background: #f2f0ec;
}

.home-case-card__image img {
    display: block;

    width: 100%;
    height: auto;

    margin: 0;
    padding: 0;

    transition: opacity .3s ease;
}

.home-case-card:hover .home-case-card__image img {
    opacity: .92;
}


/* =========================================================
   BODY
========================================================= */

.home-case-card .case-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 25px 0 0;
}


/* =========================================================
   CATEGORY
========================================================= */

.home-case-card .eyebrow {
    display: block;

    margin: 0 25px 10px;

    color: #967446;

    font-family: "Times New Roman", serif;

    font-size: 10px;
    line-height: 1.6;

    letter-spacing: .08em;
}


/* =========================================================
   TITLE
========================================================= */

.home-case-card h3 {
    margin: 0 25px 16px;

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

    font-size: 19px;
    font-weight: 500;
    line-height: 1.7;
}

.home-case-card h3 a {
    color: #332e29;

    text-decoration: none;
}


/* =========================================================
   SUMMARY
========================================================= */

.home-case-card__summary {
    margin: 0 25px 22px;

    color: #57514b;

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


/* =========================================================
   CASE DATA TABLE
========================================================= */

.home-case-card__data {
    display: block;

    width: 100%;

    margin: 0;
    padding: 0;

    border-top: 1px solid #d9d3ca;
    border-left: 1px solid #d9d3ca;
    border-right: 1px solid #d9d3ca;

    box-sizing: border-box;
}

.home-case-card__data > div {
    display: grid;

    width: 100%;

    grid-template-columns: 95px minmax(0, 1fr);

    margin: 0;
    padding: 0;

    border-bottom: 1px solid #d9d3ca;

    box-sizing: border-box;
}

.home-case-card__data dt {
    display: block;

    margin: 0;
    padding: 13px 12px;

    border-right: 1px solid #d9d3ca;

    background: #f4f0e9;

    color: #594b3b;

    font-size: 14px;
    font-weight: 600;
    line-height: 1.7;

    box-sizing: border-box;
}

.home-case-card__data dd {
    display: block;

    min-width: 0;

    margin: 0;
    padding: 13px 14px;

    background: #fff;

    color: #514c46;

    font-size: 14px;
    line-height: 1.8;

    box-sizing: border-box;

    overflow-wrap: anywhere;
}


/* =========================================================
   DETAIL BUTTON
========================================================= */

.home-case-card__detail {
    display: block;

    margin: 24px 25px 25px;
    padding: 13px 15px;

    border: 1px solid #9c7a49;

    color: #765a34;

    font-size: 12px;
    line-height: 1.4;

    text-align: center;
    text-decoration: none;

    transition:
        background .25s ease,
        color .25s ease;
}

.home-case-card__detail:hover {
    background: #82653c;

    color: #fff;
}


/* =========================================================
   MORE
========================================================= */

.home-cases__more {
    margin: 40px 0 0;

    text-align: center;
}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .home-case-card .case-card__body {
        padding-top: 20px;
    }

    .home-case-card .eyebrow {
        margin-right: 20px;
        margin-left: 20px;
    }

    .home-case-card h3 {
        margin-right: 20px;
        margin-left: 20px;

        font-size: 18px;
    }

    .home-case-card__summary {
        margin-right: 20px;
        margin-left: 20px;
    }

    .home-case-card__data {
        width: 100%;

        margin-right: 0;
        margin-left: 0;
    }

    .home-case-card__data > div {
        grid-template-columns: 82px minmax(0, 1fr);
    }

    .home-case-card__data dt {
        padding: 11px 9px;
    }

    .home-case-card__data dd {
        padding: 11px 12px;
    }

    .home-case-card__detail {
        margin-right: 20px;
        margin-left: 20px;
    }

}


/* =========================================================
   COMMON WEB RESERVATION
   診療ページ共通 WEB予約
========================================================= */

.common-reservation {
    width: 100%;
    padding: 75px 0;

    background: #f5f2ec;
}

.common-reservation__inner {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 580px);

    align-items: center;

    gap: 60px;
}


/* =========================================================
   CONTENT
========================================================= */

.common-reservation__content {
    min-width: 0;
}

.common-reservation__en {
    margin: 0 0 8px;

    color: #9a7949;

    font-family:
        "Times New Roman",
        "Yu Mincho",
        "YuMincho",
        serif;

    font-size: 11px;
    line-height: 1.5;

    letter-spacing: .18em;
}

.common-reservation__title {
    margin: 0 0 20px;

    color: #332c24;

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

    font-size: 28px;
    font-weight: 500;
    line-height: 1.5;

    letter-spacing: .04em;
}

.common-reservation__text {
    margin: 0;

    color: #5b554e;

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


/* =========================================================
   IFRAME
========================================================= */

.common-reservation__frame {
    width: 100%;
    max-width: 580px;

    margin: 0;
    padding: 0;
}

.common-reservation__frame iframe {
    display: block;

    width: 100%;
    max-width: 580px;
    height: 210px;

    margin: 0;
    padding: 0;

    border: 0;

    background: #fff;
}


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

@media (max-width: 1000px) {

    .common-reservation__inner {
        grid-template-columns:
            minmax(0, .8fr)
            minmax(0, 1.2fr);

        gap: 35px;
    }

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

    .common-reservation {
        padding: 55px 0;
    }

    .common-reservation__inner {
        display: block;
    }

    .common-reservation__content {
        margin-bottom: 28px;
    }

    .common-reservation__title {
        margin-bottom: 15px;

        font-size: 24px;
    }

    .common-reservation__text {
        font-size: 14px;
        line-height: 1.9;
    }

    .common-reservation__frame {
        width: 100%;
        max-width: none;
    }

    .common-reservation__frame iframe {
        width: 100%;
        max-width: none;
        height: 210px;
    }

}

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

.header-action--document {
    background: #75664f;
    color: #fff;
}

.header-action--document:hover {
    background: #665943;
}

.header-action--document .header-action__icon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* =========================================================
   BREADCRUMB
========================================================= */

.breadcrumb {
    width: 100%;
    background: #fff;
    border-bottom: 1px solid #eee9e1;
}

.breadcrumb .container {
    width: 100%;
}

.breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 16px 0;
    list-style: none;
}

.breadcrumb li {
    display: flex;
    align-items: center;
    margin: 0;
    color: #777169;
    font-size: 12px;
    line-height: 1.6;
}

.breadcrumb li + li::before {
    content: "/";
    margin: 0 12px;
    color: #b7afa4;
}

.breadcrumb a {
    color: #6f604c;
    text-decoration: none;
    transition: opacity .2s ease;
}

.breadcrumb a:hover {
    opacity: .65;
}

@media (max-width: 767px) {
    .breadcrumb ol {
        padding: 12px 0;
    }

    .breadcrumb li {
        font-size: 11px;
    }

    .breadcrumb li + li::before {
        margin: 0 8px;
    }
}


/* =========================================================
   SP FIXED CONTACT - 4 COLUMNS
========================================================= */

@media (max-width: 767px) {

    .fixed-contact {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .fixed-contact__line {
        background: #06c755 !important;
        color: #fff !important;
    }

    .fixed-contact__line span {
        color: #fff !important;
    }

    .fixed-contact__line:hover {
        background: #05b94f !important;
        color: #fff !important;
    }

}


/* =========================================================
   BREADCRUMB
========================================================= */

.breadcrumb {
    width: 100%;
    background: #fff;
    border-bottom: 1px solid #eee9e1;
}

.breadcrumb .container {
    width: 100%;
}

.breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    margin: 0;
    padding: 16px 0;
    list-style: none;
}

.breadcrumb li {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
    color: #777169;
    font-size: 12px;
    line-height: 1.6;
}

/* 区切りはbeforeだけで1本 */
.breadcrumb li + li::before {
    content: "/";
    display: inline-block;
    margin: 0 12px;
    color: #b7afa4;
}

/* after側は完全に無効化 */
.breadcrumb li::after {
    content: none !important;
    display: none !important;
}

/* 先頭には区切りを出さない */
.breadcrumb li:first-child::before {
    content: none !important;
    display: none !important;
}

.breadcrumb a {
    color: #6f604c;
    text-decoration: none;
    transition: opacity .2s ease;
}

.breadcrumb a:hover {
    opacity: .65;
}

@media (max-width: 767px) {
    .breadcrumb ol {
        padding: 12px 0;
    }

    .breadcrumb li {
        font-size: 11px;
    }

    .breadcrumb li + li::before {
        margin: 0 8px;
    }
}



/* 202060926追加 CSS*/
.breadcrumb .container {
    width: min(1180px, calc(100% - 60px));
    margin: 0 auto;
}

/* =========================================================
   404
========================================================= */

.error404 {
    padding: 150px 0 160px;
    text-align: center;
    background: #f7f7f5;
}

.error404__en {
    margin: 0 0 20px;
    color: #718276;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .2em;
}

.error404 h1 {
    margin: 0;
    color: #2f332f;
    font-size: 36px;
    font-weight: 500;
    line-height: 1.6;
}

.error404__text {
    margin: 28px 0 0;
    color: #666;
    font-size: 16px;
    line-height: 2;
}

.error404__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 240px;
    min-height: 60px;
    margin-top: 42px;
    padding: 15px 40px;
    color: #fff;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .08em;
    text-decoration: none;
    background: #607568;
    transition: opacity .25s ease;
}

.error404__button:hover {
    opacity: .75;
}

@media (max-width: 767px) {
    .error404 {
        padding: 100px 0 110px;
    }

    .error404__en {
        margin-bottom: 16px;
        font-size: 11px;
    }

    .error404 h1 {
        font-size: 27px;
        line-height: 1.6;
    }

    .error404__text {
        margin-top: 22px;
        font-size: 14px;
        line-height: 1.9;
    }

    .error404__button {
        width: 100%;
        min-width: 0;
        min-height: 56px;
        margin-top: 34px;
    }
}

/* =========================================================
   SUPERVISOR
   監修医師の表示（includes/supervisor.php）
   .lower-page p の共通設定に負けないよう .supervisor から指定する
========================================================= */

.supervisor-section {
    padding: 50px 0;
}

.supervisor {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    max-width: 880px;
    margin: 0 auto;
    padding: 28px 30px;
    border: 1px solid #e2dccf;
    background: #faf8f4;
}

.supervisor__photo img {
    display: block;
    width: 120px;
    height: 150px;
    object-fit: cover;
    object-position: center top;
}

.supervisor .supervisor__label {
    display: inline-block;
    margin: 0 0 10px;
    padding: 3px 10px;
    background: #9a7943;
    color: #fff;
    font-size: 12px;
    letter-spacing: 0.08em;
}

.supervisor .supervisor__title {
    margin: 0;
    color: #6d665c;
    font-size: 13px;
    line-height: 1.7;
}

.supervisor .supervisor__name {
    margin: 4px 0 12px;
    color: #27231e;
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.5;
}

.supervisor .supervisor__name span {
    margin-left: 12px;
    color: #9a7943;
    font-family: "Times New Roman", serif;
    font-size: 12px;
    letter-spacing: 0.14em;
}

.supervisor .supervisor__text {
    margin: 0 0 12px;
    color: #4a4540;
    font-size: 14px;
    line-height: 1.9;
}

.supervisor__link {
    color: #2e6650;
    font-size: 14px;
    text-decoration: underline;
}

@media (max-width: 767px) {
    .supervisor-section {
        padding: 36px 0;
    }

    .supervisor {
        grid-template-columns: 84px minmax(0, 1fr);
        gap: 16px;
        padding: 20px 16px;
    }

    .supervisor__photo img {
        width: 84px;
        height: 106px;
    }

    .supervisor .supervisor__name {
        font-size: 19px;
    }

    .supervisor .supervisor__name span {
        display: block;
        margin: 2px 0 0;
    }

    .supervisor .supervisor__text {
        font-size: 13px;
    }
}



/* =========================================================
   TEXT WRAP
   行末に1〜2文字だけ残る改行を避ける（MacBookなどの画面幅でも読みやすく）
   ・見出しは各行の長さをそろえる（balance）
   ・本文は最後の行が極端に短くならないようにする（pretty）
   ・.u-phrase で囲んだまとまりは途中で改行しない
========================================================= */

/* <main> がないページもあるので、ページ全体に当てる */
h1,
h2,
h3,
h4,
summary,
dt,
th {
    text-wrap: balance;
}

p,
li,
dd,
td,
figcaption {
    text-wrap: pretty;
}

.u-phrase {
    display: inline-block;
}


/* =========================================================
   MONITOR CASES
   モニター患者様の症例（includes/monitor-cases.php）
   症例一覧・トップページで使う
   通常の症例カードより小さく、深い色＋金色で区別する
========================================================= */

.case-monitor {
    margin-bottom: 50px;
}

.case-monitor__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.case-monitor .case-monitor__label {
    display: inline-block;
    margin-bottom: 8px;
    padding: 3px 10px;
    background: linear-gradient(90deg, #a98840 0%, #c9a75d 100%);
    color: #fff;
    font-family: "Times New Roman", serif;
    font-size: 11px;
    letter-spacing: 0.2em;
}

.case-monitor .case-monitor__title {
    margin: 0;
    color: #18231f;
    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.5;
}

.case-monitor .case-monitor__more {
    flex-shrink: 0;
    color: #8a6d36;
    font-size: 14px;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
}

.case-monitor__nav {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 10px;
}

.case-monitor__nav .case-monitor__more {
    margin-right: 8px;
}

.case-monitor__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #c2a05a;
    border-radius: 50%;
    background: #fff;
    color: #8a6d36;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}

.case-monitor__arrow:hover {
    background: #c2a05a;
    color: #fff;
}

/* 1行だけ表示し、横にスクロールして送る（PCは3件ずつ見える） */
.case-monitor__grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 16px * 2) / 3);
    gap: 16px;
    padding: 4px 0 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #c2a05a transparent;
}

.case-monitor__grid > .case-monitor-card {
    scroll-snap-align: start;
}

.case-monitor-card {
    min-width: 0;
    background: #1d2a26;
    border-top: 3px solid #c2a05a;
    box-shadow: 0 10px 24px rgba(20, 30, 26, 0.12);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.case-monitor-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 30px rgba(20, 30, 26, 0.18);
}

.case-monitor-card__link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.case-monitor-card__images {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
    background: #1d2a26;
}

/* 治療前の下に治療後。写真は切り取らず全体を表示する */
.case-monitor-card__images figure {
    position: relative;
    margin: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #141d1a;
}

.case-monitor-card__images img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.case-monitor-card__images figcaption {
    position: absolute;
    left: 0;
    bottom: 0;
    padding: 2px 7px;
    background: rgba(29, 42, 38, 0.82);
    color: #fff;
    font-family: "Times New Roman", serif;
    font-size: 9px;
    letter-spacing: 0.14em;
}

.case-monitor-card__images figure:last-child figcaption {
    background: #b4934f;
}

.case-monitor-card__body {
    position: relative;
    padding: 14px 16px 16px;
}

.case-monitor .case-monitor-card__badge {
    display: inline-block;
    margin-bottom: 6px;
    color: #d8b973;
    font-family: "Times New Roman", serif;
    font-size: 10px;
    letter-spacing: 0.22em;
}

.case-monitor .case-monitor-card__patient {
    margin: 0 0 4px;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
}

/* 主訴・治療内容・期間・費用・リスク */
.case-monitor .case-monitor-card__info {
    margin: 0 0 12px;
    border-top: 1px solid rgba(216, 185, 115, 0.3);
}

.case-monitor .case-monitor-card__info > div {
    display: grid;
    grid-template-columns: 5.6em minmax(0, 1fr);
    gap: 8px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.case-monitor .case-monitor-card__info dt {
    color: #d8b973;
    font-size: 11px;
    line-height: 1.7;
}

.case-monitor .case-monitor-card__info dd {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
    font-size: 12px;
    line-height: 1.7;
}

/* 主訴は4行まで（続きは詳細ページ） */
.case-monitor .case-monitor-card__info dd.is-clamp {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

/* 旧：主訴の抜粋（未使用） */
.case-monitor .case-monitor-card__complaint {
    display: -webkit-box;
    margin: 0 0 10px;
    overflow: hidden;
    color: rgba(255, 255, 255, 0.72);
    font-size: 12px;
    line-height: 1.7;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.case-monitor .case-monitor-card__more {
    display: inline-block;
    color: #d8b973;
    font-size: 12px;
    letter-spacing: 0.06em;
}

.case-monitor .case-monitor-card__more::after {
    content: " →";
}

@media (max-width: 1024px) {
    .case-monitor__grid {
        grid-auto-columns: calc((100% - 16px) / 2);
    }
}

@media (max-width: 767px) {
    .case-monitor {
        margin-bottom: 36px;
    }

    .case-monitor__head {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .case-monitor .case-monitor__title {
        font-size: 19px;
    }

    .case-monitor__grid {
        grid-auto-columns: 82%;
        gap: 10px;
    }

    .case-monitor__arrow {
        display: none;
    }

    .case-monitor-card__body {
        padding: 10px 11px 12px;
    }

    .case-monitor .case-monitor-card__patient {
        font-size: 13px;
    }
}


/* =========================================================
   DOUBLE CROWN（二重冠の上部構造）
   includes/double-crown.php。オールオン4・専属技工所のページで共通
========================================================= */

.double-crown {
    padding: 80px 0;
    background: #1f2422;
    color: #fff;
}

.double-crown .double-crown__container {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
}

.double-crown .double-crown__head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    align-items: center;
    gap: 56px;

    margin-bottom: 45px;
}

.double-crown .double-crown__head-text {
    min-width: 0;
}

.double-crown .double-crown__nowrap {
    white-space: nowrap;
}

.double-crown .double-crown__head-text .double-crown__lead:last-child {
    margin-bottom: 0;
}

.double-crown .double-crown__head-image img {
    display: block;

    width: 100%;
    height: auto;
}

.double-crown .double-crown__en {
    margin: 0 0 12px;
    color: #c9ad7a;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .24em;
}

.double-crown h2 {
    margin: 0 0 24px;
    color: #fff;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: .04em;
}

.double-crown .double-crown__lead {
    margin: 0 0 14px;
    color: rgba(255, 255, 255, .82);
    font-size: 15px;
    line-height: 2;
}

.double-crown .double-crown__points {
    margin-bottom: 50px;
}

.double-crown .double-crown__points-title {
    margin: 0 0 20px;
    color: #fff;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: .04em;
}

.double-crown .double-crown__points-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.double-crown .double-crown-point {
    display: grid;
    grid-template-columns: auto 1fr;
    align-content: start;
    column-gap: 18px;
    padding: 26px 28px;
    border: 1px solid rgba(201, 173, 122, .4);
    background: rgba(255, 255, 255, .04);
}

.double-crown .double-crown-point__num {
    grid-row: span 2;
    color: #c9ad7a;
    font-size: 34px;
    line-height: 1;
}

.double-crown .double-crown-point h4 {
    margin: 0 0 8px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
}

.double-crown .double-crown-point p {
    margin: 0;
    color: rgba(255, 255, 255, .85);
    font-size: 14px;
    line-height: 1.9;
}

.double-crown .double-crown__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.double-crown .double-crown-card {
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(201, 173, 122, .4);
    background: rgba(255, 255, 255, .04);
}

.double-crown .double-crown-card__image img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

.double-crown .double-crown-card__body {
    padding: 34px 32px 36px;
}

.double-crown .double-crown-card__type {
    display: inline-block;
    margin-bottom: 14px;
    padding: 4px 10px;
    background: #c9ad7a;
    color: #1f2422;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
}

.double-crown .double-crown-card__en {
    margin: 0 0 4px;
    color: #c9ad7a;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    line-height: 1.4;
}

.double-crown .double-crown-card h3 {
    margin: 0;
    color: #fff;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.6;
}

.double-crown .double-crown-card__sub {
    margin: 2px 0 18px;
    color: rgba(255, 255, 255, .6);
    font-size: 13px;
}

.double-crown .double-crown-card__body > p:not([class]) {
    color: rgba(255, 255, 255, .85);
    font-size: 14px;
    line-height: 1.95;
}

.double-crown .double-crown-card ul {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.double-crown .double-crown-card li {
    position: relative;
    margin-bottom: 10px;
    padding-left: 18px;
    color: #fff;
    font-size: 14px;
    line-height: 1.85;
}

.double-crown .double-crown-card li::before {
    position: absolute;
    top: .75em;
    left: 0;
    width: 7px;
    height: 7px;
    background: #c9ad7a;
    content: "";
}

.double-crown .double-crown-card__note {
    margin: 18px 0 0;
    padding: 14px 16px;
    border-left: 3px solid #c9ad7a;
    background: rgba(255, 255, 255, .06);
    color: rgba(255, 255, 255, .9);
    font-size: 13px;
    line-height: 1.85;
}

.double-crown .double-crown__notice {
    margin-top: 30px;
}

.double-crown .double-crown__notice p {
    margin: 0 0 6px;
    color: rgba(255, 255, 255, .6);
    font-size: 12px;
    line-height: 1.8;
}

@media (max-width: 900px) {

    .double-crown .double-crown__head {
        grid-template-columns: 1fr;
        gap: 28px;
    }

}

@media (max-width: 767px) {

    .double-crown {
        padding: 55px 0;
    }

    .double-crown h2 {
        font-size: 24px;
    }

    .double-crown .double-crown__lead {
        font-size: 14px;
    }

    .double-crown .double-crown__points {
        margin-bottom: 36px;
    }

    .double-crown .double-crown__points-title {
        font-size: 19px;
    }

    .double-crown .double-crown__points-list {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .double-crown .double-crown-point {
        column-gap: 14px;
        padding: 20px 18px;
    }

    .double-crown .double-crown-point__num {
        font-size: 28px;
    }

    .double-crown .double-crown-point h4 {
        font-size: 16px;
    }

    .double-crown .double-crown__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .double-crown .double-crown-card__body {
        padding: 24px 20px 26px;
    }
}


/* =========================================================
   FAQ SECTION（ページ内のよくある質問）
   includes/faq-section.php
========================================================= */

.page-faq {
    padding: 70px 0;
    background: #f7f5f1;
}

.page-faq .page-faq__container {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
}

.page-faq .page-faq__head {
    margin-bottom: 30px;
}

.page-faq .page-faq__en {
    margin: 0 0 10px;
    color: #a88650;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .24em;
}

.page-faq h2 {
    margin: 0;
    color: #2e2a25;
    font-size: 30px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .04em;
}

.page-faq .page-faq__list {
    border-top: 1px solid #ddd6ca;
}

.page-faq .page-faq__item {
    border-bottom: 1px solid #ddd6ca;
    background: #fff;
}

.page-faq summary {
    display: grid;
    grid-template-columns: 34px 1fr 20px;
    gap: 12px;
    align-items: center;
    padding: 22px 24px;
    cursor: pointer;
    list-style: none;
}

.page-faq summary::-webkit-details-marker {
    display: none;
}

.page-faq .page-faq__q,
.page-faq .page-faq__a {
    color: #a88650;
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
}

.page-faq .page-faq__question {
    color: #2e2a25;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.7;
}

.page-faq summary i {
    position: relative;
    width: 14px;
    height: 14px;
}

.page-faq summary i::before,
.page-faq summary i::after {
    position: absolute;
    top: 6px;
    left: 0;
    width: 14px;
    height: 2px;
    background: #a88650;
    content: "";
    transition: transform .2s;
}

.page-faq summary i::after {
    transform: rotate(90deg);
}

.page-faq .page-faq__item[open] summary i::after {
    transform: rotate(0deg);
}

.page-faq .page-faq__answer {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 12px;
    padding: 0 56px 24px 24px;
}

.page-faq .page-faq__answer p {
    margin: 0;
    color: #555049;
    font-size: 15px;
    line-height: 1.95;
}

.page-faq .page-faq__more {
    margin: 22px 0 0;
    text-align: right;
}

.page-faq .page-faq__more a {
    color: #8a6d3b;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
}

@media (max-width: 767px) {

    .page-faq {
        padding: 50px 0;
    }

    .page-faq h2 {
        font-size: 23px;
    }

    .page-faq summary {
        grid-template-columns: 26px 1fr 16px;
        gap: 10px;
        padding: 18px 16px;
    }

    .page-faq .page-faq__question {
        font-size: 15px;
    }

    .page-faq .page-faq__answer {
        grid-template-columns: 26px 1fr;
        gap: 10px;
        padding: 0 16px 20px;
    }

    .page-faq .page-faq__answer p {
        font-size: 14px;
    }
}

/* 各ページの「よくある質問」へのリンク（#faq）で、固定ヘッダーに隠れないようにする */
#faq {
    scroll-margin-top: 100px;
}


/* =========================================================
   HEADER RESPONSIVE（ロゴ・SNS・電話・ボタンが重ならないよう幅ごとに調整）
   ・1101〜1280px / 901〜1100px：各パーツを少しずつ小さく
   ・900px以下：ボタンにアイコンと文字の両方を表示（高さは変えない）
========================================================= */

@media (max-width: 1280px) and (min-width: 901px) {

    .site-logo {
        width: auto;
        flex: 0 0 auto;
        padding: 0 20px 0 28px;
    }

    .site-logo img {
        width: 225px;
    }

    .header-tel {
        min-width: 0;
        gap: 10px;
        padding: 0 16px;
    }

    .header-tel__number {
        font-size: 20px;
    }

    .header-action {
        width: 136px;
        gap: 8px;
    }

    .menu-btn {
        width: 88px;
    }
}

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

    .site-logo {
        padding: 0 14px 0 20px;
    }

    .site-logo img {
        width: 190px;
    }

    .header-tel {
        gap: 8px;
        padding: 0 12px;
    }

    .header-tel__icon {
        width: 22px;
        height: 22px;
    }

    .header-tel__number {
        font-size: 18px;
    }

    .header-tel__time {
        font-size: 9px;
        letter-spacing: 0.04em;
    }

    .header-action {
        width: 104px;
        gap: 6px;
    }

    .header-action__icon {
        width: 20px;
        height: 20px;
    }

    .header-action__text strong {
        font-size: 12px;
        letter-spacing: 0.04em;
    }

    .header-action__text small {
        display: none;
    }

    .menu-btn {
        width: 76px;
    }
}

@media (max-width: 900px) {

    .site-logo {
        flex: 1 1 auto;
    }

    .header-action {
        flex-direction: column;
        gap: 5px;
    }

    .header-action__text {
        display: flex;
        align-items: center;
    }

    .header-action__text strong {
        font-size: 10px;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .header-action__text small {
        display: none;
    }
}

@media (max-width: 600px) {

    .site-logo img {
        width: 140px;
    }

    .header-action {
        width: 56px;
    }

    .header-action__icon {
        width: 20px;
        height: 20px;
    }
}

@media (max-width: 390px) {

    .site-logo {
        padding-left: 12px;
    }

    .site-logo img {
        width: 124px;
    }

    .header-action {
        width: 52px;
    }

    .header-action__text strong {
        font-size: 9.5px;
    }

    .menu-btn {
        width: 50px;
    }
}

@media (max-width: 340px) {

    .site-logo {
        padding-left: 10px;
    }

    .site-logo img {
        width: 112px;
    }

    .header-action {
        width: 48px;
    }

    .header-action__text strong {
        font-size: 9px;
    }

    .menu-btn {
        width: 46px;
    }
}


/* =========================================================
   GLOBAL NAV SOCIAL（ヘッダーのSNSが消えるスマホ幅だけメニュー内に表示）
========================================================= */

.global-nav__social {
    display: none;
}

.global-nav__nowrap {
    white-space: nowrap;
}

@media (max-width: 767px) {

    .global-nav__catch {
        text-wrap: balance;
    }

    .global-nav__social {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;

        margin-top: 24px;
    }

    .global-nav__social-link {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;

        min-height: 52px;
        padding: 0 10px;

        border: 1px solid #ded9d0;
        background: #ffffff;
        color: #292722;

        font-size: 14px;
        letter-spacing: 0.05em;
    }

    .global-nav__social-link .header-social__link {
        flex: 0 0 auto;

        width: 32px;
        height: 32px;
    }

    .global-nav__social-link .header-social__link--instagram svg {
        width: 18px;
        height: 18px;
    }

}


/* =========================================================
   SECOND OPINION
   includes/second-opinion.php（トップ・オールオン4）
========================================================= */

.second-opinion {
    padding: 90px 0;

    background: #ffffff;
}

.second-opinion__inner::before {
    content: "SECOND OPINION";

    position: absolute;
    top: 26px;
    right: -20px;

    color: rgba(142, 109, 57, 0.06);

    font-family: "Times New Roman", serif;
    font-size: clamp(64px, 9vw, 150px);
    line-height: 1;
    letter-spacing: -0.02em;
    white-space: nowrap;

    pointer-events: none;
}

.second-opinion__inner {
    position: relative;

    padding: 64px 60px;

    border-top: 3px solid #9a7943;
    background: #f3efe7;

    overflow: hidden;

    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    align-items: center;
    gap: 64px;
}

.second-opinion__en {
    display: flex;
    align-items: center;
    gap: 14px;

    margin: 0 0 18px;

    color: #9a7943;

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

.second-opinion__en::after {
    content: "";

    width: 40px;
    height: 1px;

    background: #9a7943;
}

.second-opinion h2 {
    margin: 0 0 26px;
    padding: 0;
    border: 0;

    color: #2e2a25;

    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 34px;
    line-height: 1.5;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-align: left;
}

.second-opinion h2::before,
.second-opinion h2::after {
    content: none;
}

.second-opinion__nowrap {
    white-space: nowrap;
}

.second-opinion .second-opinion__lead,
.second-opinion .second-opinion__note {
    text-wrap: wrap;
}

.second-opinion .second-opinion__lead {
    margin: 0 0 16px;

    color: #4f4942;

    font-size: 16px;
    line-height: 2.05;
}

.second-opinion .second-opinion__note {
    margin: 0 0 34px;
    padding-left: 14px;

    border-left: 2px solid #c9ad7a;

    color: #6c655b;

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

.second-opinion__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.second-opinion__btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;

    min-height: 56px;
    padding: 0 24px;

    border: 1px solid #9a7943;
    background: #ffffff;
    color: #2e2a25;

    font-size: 15px;
    letter-spacing: 0.06em;

    transition:
        background 0.3s ease,
        color 0.3s ease;
}

.second-opinion__btn span {
    color: #9a7943;

    transition: color 0.3s ease;
}

.second-opinion__btn--primary {
    background: #9a7943;
    color: #ffffff;
}

.second-opinion__btn--primary span {
    color: #ffffff;
}

.second-opinion__btn:hover {
    background: #2e2a25;
    border-color: #2e2a25;
    color: #ffffff;
}

.second-opinion__btn:hover span {
    color: #ffffff;
}

.second-opinion__card {
    position: relative;

    padding: 40px 40px 36px;

    background: #ffffff;
    box-shadow: 0 20px 50px rgba(66, 54, 37, 0.07);
}

.second-opinion__main {
    position: relative;
}

.second-opinion .second-opinion__card-title {
    margin: 0 0 18px;

    text-wrap: balance;

    color: #2e2a25;

    font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 20px;
    line-height: 1.6;
    font-weight: 500;
}

.second-opinion__list {
    margin: 0;
    padding: 0;

    list-style: none;
}

.second-opinion__list li {
    position: relative;

    text-wrap: balance;

    padding: 15px 0 15px 34px;

    border-bottom: 1px solid #ebe5da;

    color: #3f3a34;

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

.second-opinion__list li:last-child {
    border-bottom: 0;
}

.second-opinion__list li::before {
    content: "";

    position: absolute;
    top: 22px;
    left: 4px;

    width: 14px;
    height: 7px;

    border-bottom: 2px solid #9a7943;
    border-left: 2px solid #9a7943;

    transform: rotate(-45deg);
}

@media (max-width: 1000px) {

    .second-opinion__inner {
        grid-template-columns: 1fr;
        gap: 40px;
    }

}

@media (max-width: 767px) {

    .second-opinion {
        padding: 60px 0;
    }

    .second-opinion__inner {
        padding: 40px 20px 22px;
    }

    .second-opinion__inner::before {
        top: 14px;
        font-size: 44px;
    }

    .second-opinion h2 {
        margin-bottom: 20px;

        font-size: 25px;
    }

    .second-opinion .second-opinion__lead {
        font-size: 15px;
        line-height: 2;
    }

    .second-opinion__actions {
        flex-direction: column;
    }

    .second-opinion__btn {
        width: 100%;
    }

    .second-opinion__card {
        padding: 28px 22px 24px;
    }

    .second-opinion .second-opinion__card-title {
        font-size: 18px;
    }

    .second-opinion__list li {
        font-size: 14px;
    }

}
