@charset "UTF-8";
/* ==========================================================================
   MIRA Dental Clinic  -  Figma: PC 1600 / SP 390
   ========================================================================== */
:root {
	--c-text: #402e2e;
	--c-bg: #f6f2ed;
	--c-gold: #cca867;
	--c-gold-d: #ad8844;
	--c-beige: #edddc0;
	--c-line: #06c755;
	--c-border: #a29e92;
	--c-gray: #dddddd;
	--f-ja: "Zen Kaku Gothic Antique", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	--f-en: "Montserrat", "Zen Kaku Gothic Antique", sans-serif;
	--f-jost: "Jost", "Montserrat", sans-serif;
	--header-h: 101px;
}

/* reset ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; background: var(--c-bg); color: var(--c-text); font-family: var(--f-ja); font-weight: 500; font-size: 16px; line-height: 1.6; letter-spacing: .05em; font-feature-settings: "palt" 0; -webkit-font-smoothing: antialiased; overflow-x: clip; line-break: strict; overflow-wrap: anywhere; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; height: auto; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
address { font-style: normal; }
table { border-collapse: collapse; }
small { font-size: inherit; }
.sp, .sp-only { display: none; }
@media (max-width: 767px) {
	.pc { display: none; }
	.sp { display: inline; }
	br.sp { display: inline; }
	.sp-only { display: list-item; }
}

main.top { container-type: inline-size; overflow: clip; }

/* common ----------------------------------------------------------------- */
.c-title { display: flex; align-items: center; flex-wrap: wrap; column-gap: 15px; font-weight: 700; line-height: 1.4; }
.c-title__en { font-family: var(--f-en); font-weight: 600; font-size: 24px; letter-spacing: 0; color: var(--c-gold); display: inline-flex; align-items: center; gap: 15px; }
.c-title__en::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-gold); }
.c-title__ja { font-size: 38px; letter-spacing: .08em; }
.c-title--s { line-height: 1; }
.c-title--s .c-title__ja { font-size: 30px; }

.c-btn { position: relative; display: inline-flex; align-items: center; width: 300px; max-width: 100%; height: 60px; padding: 0 45px 0 20px; border: 2px solid var(--c-gold); border-radius: 9999px; font-size: 16px; letter-spacing: .08em; line-height: 1.6; background: transparent; transition: background-color .3s, color .3s; overflow: hidden; }
.c-btn__label { flex: 1; }
.c-btn__arrow { position: absolute; right: 25px; top: 50%; width: 19px; height: 19px; margin-top: -9.5px; color: var(--c-gold); transition: transform .3s; }
.c-btn__arrow svg { width: 100%; height: 100%; }
.c-btn:hover { background: var(--c-gold); color: #fff; }
.c-btn:hover .c-btn__arrow { color: #fff; transform: translateX(5px); }
.c-btn--s { width: auto; height: 40px; padding: 0 47px 0 12px; border-width: 1.2px; font-size: 14px; }
.c-btn--s .c-btn__arrow { width: 16px; height: 16px; margin-top: -8px; right: 14px; }

.marquee { overflow: hidden; pointer-events: none; user-select: none; }
.marquee__track { display: flex; width: max-content; animation: marquee 60s linear infinite; }
.marquee__track span { font-family: var(--f-jost); font-weight: 300; font-size: 169.7px; line-height: 1.44; letter-spacing: 0; color: var(--c-gold); opacity: .2; white-space: pre; padding-right: 52px; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation: none; } }

/* dl（所在地など） */
.c-dl__name { padding-bottom: 20px; border-bottom: 1px solid var(--c-border); font-size: 30px; line-height: 1.6; letter-spacing: 0; }
.c-dl__name--b { font-weight: 700; font-size: 24px; }
.c-dl__row { display: flex; align-items: stretch; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--c-border); }
.c-dl__row dt { flex: 0 0 99px; display: flex; align-items: center; font-size: 16px; border-right: 1px dashed var(--c-border); }
.c-dl__row dd { flex: 1; font-size: 15px; line-height: 1.6; }
.c-dl__row dd small { font-size: 13px; letter-spacing: 0; }
.c-dl__row--tel dd a { display: inline-flex; align-items: center; gap: 10px; font-size: 30px; line-height: 1.6; }
.c-dl__row--tel dd svg { width: 26px; height: 26px; flex: none; }

/* 診療時間 */
.hours { background: #fff; border-radius: 8px; padding: 30px; }
.hours__table { width: 100%; table-layout: fixed; }
.hours__table th, .hours__table td { height: 50px; border-bottom: 1px solid var(--c-gold); text-align: center; padding: 0; font-weight: 500; font-size: 15px; letter-spacing: 0; line-height: 1.2; }
.hours__table thead th { font-size: 15px; }
.hours__table th:first-child { width: 152px; text-align: left; padding-left: 12px; color: var(--c-gold); font-weight: 700; font-size: 16px; }
.hours__table thead th:first-child { font-size: 17px; letter-spacing: .05em; }
.hours__on { font-size: 14px; }
.hours__off { font-size: 14px; }
.hours__note { margin-top: 10px; font-size: 14px; line-height: 1.6; }

/* reserve ---------------------------------------------------------------- */
.reserve { text-align: center; color: #fff; }
.reserve__en { font-family: var(--f-en); font-weight: 600; font-size: 24px; line-height: 1; letter-spacing: 0; }
.reserve__title { margin-top: 15px; font-weight: 700; font-size: 38px; line-height: 1; letter-spacing: .08em; }
.reserve__btns { display: flex; justify-content: center; gap: 15px; margin-top: 30px; }
.reserve__btn { flex: 0 1 385px; height: 90px; display: flex; align-items: center; justify-content: center; gap: 14px; border-radius: 10px; background: var(--c-gold-d); color: #fff; font-weight: 700; font-size: 22px; letter-spacing: .03em; transition: opacity .3s, transform .3s; }
.reserve__btn--line { background: var(--c-line); }
.reserve__btn svg { width: 26px; height: 26px; flex: none; }
.reserve__btn:hover { opacity: .85; }
.reserve--box { width: calc(100% - 50px); max-width: 1550px; margin: 0 auto; padding: 60px 20px; background: var(--c-gold); border-radius: 8px; }

/* header ----------------------------------------------------------------- */
.header { position: fixed; inset: 0 0 auto; z-index: 100; height: var(--header-h); transition: background-color .3s, box-shadow .3s; }
.header.is-scrolled { background: rgba(246, 242, 237, .96); box-shadow: 0 2px 12px rgba(64, 46, 46, .06); }
.header__inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 0 30px; }
.header__logo { flex: none; margin: 0; line-height: 0; }
.header__logo a { display: block; transition: opacity .3s; }
.header__logo a:hover { opacity: .75; }
.header__logo img { width: auto; height: 52px; }
.header__r { display: flex; flex-direction: column; align-items: flex-end; gap: 15px; }
.header__btns { display: flex; gap: 6px; }
.hbtn { height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 6px; background: var(--c-gold-d); color: #fff; font-weight: 700; font-size: 14px; letter-spacing: .03em; transition: opacity .3s; }
.hbtn:hover { opacity: .85; }
.hbtn svg { width: 16px; height: 16px; }
.hbtn--tel { width: 169px; font-family: var(--f-en); letter-spacing: 0; }
.hbtn--web, .hbtn--line { width: 150px; }
.hbtn--line { background: var(--c-line); }
.gnav__list { display: flex; gap: 25px; }
.gnav__list > li > a { display: flex; align-items: center; gap: 3px; font-weight: 700; font-size: 15px; line-height: 22px; letter-spacing: .05em; white-space: nowrap; transition: color .3s; }
.gnav__list > li > a:hover { color: var(--c-gold); }
.gnav__down { width: 12px; height: 7px; margin-left: 3px; transition: transform .3s; }
.gnav__has-sub { position: static; }
.gnav__has-sub::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 0; }
.gnav__has-sub.is-open .gnav__down { transform: rotate(180deg); }

/* mega menu */
.mega { position: absolute; left: 50%; top: calc(var(--header-h) + 15px); width: min(1476px, calc(100% - 40px)); transform: translate(-50%, 10px); opacity: 0; visibility: hidden; transition: opacity .3s, transform .3s, visibility .3s; }
.gnav__has-sub.is-open .mega { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -15px; height: 15px; }
.mega__inner { background: #fff; border-radius: 10px; box-shadow: 0 0 25px rgba(0, 0, 0, .1); padding: 60px clamp(40px, 9.35%, 138px); }
.mega__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--c-gray); }
.mega__title { display: flex; align-items: center; gap: 10px; }
.mega__title .c-title__en { font-size: 16px; letter-spacing: .03em; }
.mega__title .c-title__en::after { display: none; }
.mega__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--c-gold); }
.mega__ja { font-weight: 700; font-size: 20px; letter-spacing: .08em; line-height: 1.6; }
.mega__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 20px; margin-top: 25px; }
.mega__col { display: flex; flex-direction: column; gap: 20px; }
.mnav__parent { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; line-height: 1.6; transition: color .3s; }
.mnav__parent:hover, .mnav__children a:hover { color: var(--c-gold); }
.mnav__arrow { flex: none; width: 16px; height: 16px; border-radius: 50%; background: var(--c-gold); color: #fff; display: grid; place-items: center; }
.mnav__arrow svg { width: 10px; height: 10px; }
.mnav__children { padding: 10px 0 0 15px; display: flex; flex-direction: column; gap: 12px; }
.mnav__children a { font-size: 14px; line-height: 1.6; transition: color .3s; }

/* hamburger / drawer（1180px 以下） */
.hamb { display: none; }
.drawer { display: none; }

/* MV --------------------------------------------------------------------- */
.mv { --k: calc(min(100cqw, 1600px) / 1600); position: relative; height: calc(1024 * var(--k)); }
.mv__ph { position: absolute; left: calc(52 * var(--k)); right: 0; top: calc(181 * var(--k)); height: calc(845 * var(--k)); overflow: hidden; }
.mv__ph picture, .mv__ph img { width: 100%; height: 100%; object-fit: cover; object-position: left top; }
.mv__wave { position: absolute; left: 0; right: 0; top: calc(925 * var(--k)); height: calc(150 * var(--k)); background: url(../img/svg/bg_mv.svg) center top / 100% auto no-repeat; }
.mv__en { position: absolute; left: calc(106 * var(--k)); top: calc(128 * var(--k)); font-family: var(--f-en); font-weight: 700; font-size: calc(76 * var(--k)); line-height: 1.4; letter-spacing: 0; color: #fff; white-space: nowrap; }
.mv__copy { position: absolute; left: calc(97 * var(--k)); top: calc(649 * var(--k)); }
.mv__h1 { position: relative; font-weight: 700; }
.mv__h1-sub { position: absolute; left: calc(3 * var(--k)); bottom: 100%; margin-bottom: calc(14 * var(--k)); display: inline-flex; align-items: center; gap: calc(10 * var(--k)); white-space: nowrap; font-size: max(calc(17 * var(--k)), 12px); line-height: 1.5; letter-spacing: .08em; color: var(--c-gold-d); }
.mv__h1-sub::before { content: ""; width: calc(28 * var(--k)); height: 1px; background: var(--c-gold); }
.mv__catch { display: block; font-weight: 700; font-size: calc(54 * var(--k)); line-height: 1.4; letter-spacing: .1em; white-space: nowrap; }
.mv__catch::after { content: ""; display: block; width: calc(714 * var(--k)); height: 2px; margin: calc(24 * var(--k)) 0 0 calc(3 * var(--k)); background: var(--c-gold); }
.mv__lead { margin: calc(9 * var(--k)) 0 0 calc(6 * var(--k)); font-weight: 700; font-size: calc(24 * var(--k)); line-height: 2; letter-spacing: .05em; white-space: nowrap; }
.mv__badges { position: absolute; right: calc(36 * var(--k)); top: calc(822 * var(--k)); display: flex; gap: calc(13.45 * var(--k)); }
.mv__badges li { position: relative; width: calc(182 * var(--k)); aspect-ratio: 1; border-radius: 50%; background: rgba(204, 168, 103, .8); -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: calc(10 * var(--k)); color: #fff; text-align: center; padding-bottom: calc(6 * var(--k)); }
.mv__badges li::before { content: ""; position: absolute; inset: calc(7 * var(--k)); border: 1px solid #fff; border-radius: 50%; }
.mv__badges svg { width: calc(24 * var(--k)); height: auto; }
.mv__badges span { font-weight: 700; font-size: calc(20 * var(--k)); line-height: 1.6; letter-spacing: .08em; }

/* NEWS ------------------------------------------------------------------- */
.news { padding-top: 100px; }
.news__inner { width: min(1300px, calc(100% - 80px)); margin: 0 auto; display: flex; gap: 40px; }
.news__head { flex: 0 0 360px; display: flex; flex-direction: column; gap: 40px; }
.news__list { flex: 1; }
.news__list a { display: flex; align-items: center; gap: 15px; padding: 15px 0; transition: color .3s; }
.news__list a:hover { color: var(--c-gold); }
.news__list time { flex: none; font-family: var(--f-en); font-size: 14px; letter-spacing: .05em; color: var(--c-gold); }
.news__list span { font-size: 16px; letter-spacing: .08em; }

/* ABOUT ------------------------------------------------------------------ */
.about { position: relative; padding: 150px 0 200px; }
.about__inner { position: relative; z-index: 1; width: min(1300px, calc(100% - 80px)); margin: 0 auto; display: flex; align-items: center; min-height: 530px; }
.about__body { flex: 0 0 50%; display: flex; flex-direction: column; gap: 40px; padding-right: 30px; }
.about__list { display: flex; flex-direction: column; gap: 16px; }
.about__list li { position: relative; padding-left: 23px; font-size: clamp(15px, 1.25vw, 18px); line-height: 1.6; letter-spacing: .05em; }
.about__list li::before { content: ""; position: absolute; left: 0; top: calc(.8em - 6.5px); width: 13px; height: 13px; border-radius: 3px; background: var(--c-gold); }
.about__ph { position: absolute; left: 50%; top: 0; bottom: 0; margin-left: 0; right: calc(-1 * (100vw - 100%) / 2 + 6px); }
.about__ph img { width: 100%; height: 100%; object-fit: cover; object-position: left center; border-radius: 10px 0 0 10px; }
.about .marquee { position: absolute; left: 0; right: 0; top: 607px; }

/* お悩み ----------------------------------------------------------------- */
.nayami { position: relative; padding: 150px 0 0; }
.nayami__wave { position: absolute; left: 0; right: 0; top: -4px; aspect-ratio: 1600 / 1169; background: url(../img/svg/bg_nayami.svg) center top / 100% auto no-repeat; pointer-events: none; }
.nayami__inner { position: relative; width: min(1400px, calc(100% - 80px)); margin: 0 auto; }
.nayami__title { font-weight: 700; font-size: 38px; line-height: 1.8; letter-spacing: .1em; }
.nayami__list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 60px 20px; margin-top: 80px; }
.nayami__item { position: relative; background: #fff; border-radius: 8px; padding: 60px 15px 30px; text-align: center; }
.nayami__ph { position: absolute; left: 50%; top: -37px; width: 91px; height: 90px; margin-left: -45.5px; border-radius: 50%; overflow: hidden; background: #524b44; }
.nayami__ph img { width: 100%; height: 100%; object-fit: cover; }
.nayami__no { display: block; font-family: var(--f-en); font-size: 18px; line-height: 1; letter-spacing: .08em; color: var(--c-gold); }
.nayami__txt { margin-top: 10px; font-size: clamp(14px, 1.125vw, 18px); line-height: 1.7; letter-spacing: .08em; white-space: nowrap; }

/* info（概要アクセス） ---------------------------------------------------- */
.info { padding: 150px 0; }
.info__inner { width: min(1400px, calc(100% - 80px)); margin: 0 auto; display: flex; align-items: flex-end; gap: 60px; }
.info__l { flex: 0 1 640px; }
.info__r { flex: 0 1 700px; margin-left: auto; }
.info__btn { margin-top: 30px; }

/* GREETING --------------------------------------------------------------- */
.greeting { position: relative; overflow: hidden; }
.greeting__inner { width: min(1400px, calc(100% - 80px)); margin: 0 auto; display: flex; min-height: 827px; }
.greeting__body { flex: 0 0 810px; max-width: 58%; padding: 130px 40px 130px 0; display: flex; flex-direction: column; gap: 40px; }
.greeting__txt { max-width: 650px; }
.greeting__txt > p:first-child { font-size: 18px; line-height: 2.2; letter-spacing: .05em; }
.greeting__sign { margin-top: 16px; text-align: right; line-height: 1.6; letter-spacing: .05em; }
.greeting__sign small { font-size: 13px; }
.greeting__sign b { font-size: 20px; }
.greeting__sign span { font-size: 13px; }
.greeting__career { display: flex; flex-wrap: wrap; gap: 5px; max-width: 650px; padding: 15px; border-radius: 10px; background: rgba(255, 255, 255, .8); }
.greeting__career li { display: flex; align-items: center; gap: 5px; font-size: 14px; line-height: 1.6; }
.greeting__career li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--c-gold); }
.greeting__phs--pc { position: relative; flex: 0 0 590px; }
.greeting__col { position: absolute; width: 290px; display: flex; flex-direction: column; gap: 10px; }
.greeting__col--1 { left: 0; top: -32px; }
.greeting__col--2 { left: 300px; top: -192px; }
.gph { position: relative; height: 340px; border-radius: 8px; overflow: hidden; display: flex; }
.gph img { width: 100%; height: auto; }
.gph--b { align-items: flex-end; border-radius: 0 0 8px 8px; }
.gph--t { align-items: flex-start; border-radius: 8px 8px 0 0; }
.greeting__phs--sp { display: none; }

/* FEATURE ---------------------------------------------------------------- */
.feature { position: relative; padding: 150px 0; }
.feature__wave { position: absolute; left: 0; right: 0; top: -50px; aspect-ratio: 1600 / 1169; background: url(../img/svg/bg_feature.svg) center top / 100% auto no-repeat; pointer-events: none; }
.feature__inner { position: relative; width: min(1400px, calc(100% - 80px)); margin: 0 auto; display: flex; }
.feature__head { position: relative; flex: 0 0 296px; }
.feature__en { position: absolute; left: 96px; top: 0; writing-mode: vertical-rl; font-family: var(--f-en); font-weight: 600; font-size: 120px; line-height: 1.4; letter-spacing: 0; color: var(--c-gold); opacity: .3; }
.feature__ja { position: absolute; left: 124px; top: 0; writing-mode: vertical-rl; font-weight: 700; font-size: 38px; line-height: 1.2; letter-spacing: .08em; }
.feature__list { flex: 1; display: flex; flex-direction: column; gap: 120px; }
.fitem { position: relative; display: flex; align-items: flex-end; gap: 30px; }
.fitem:nth-child(even) { flex-direction: row-reverse; }
.fitem__ph { position: relative; flex: 0 0 calc(50% - 15px); aspect-ratio: 537 / 384; }
.fitem__ph img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.fitem__sq { position: absolute; width: 62px; height: 62px; border-radius: 6px; background: var(--c-gold); }
.fitem--01 .fitem__sq { left: -20px; bottom: -10px; }
.fitem--02 .fitem__sq { right: -28px; bottom: -10px; width: 83px; height: 83px; }
.fitem--03 .fitem__sq { right: -26px; bottom: -11px; width: 63px; height: 63px; }
.fitem--04 .fitem__sq { right: -28px; top: -29px; width: 83px; height: 83px; }
.fitem--05 .fitem__sq { left: -20px; bottom: -10px; }
.fitem__body { flex: 1; padding: 0 20px; }
.fitem__num { position: absolute; top: -21px; display: flex; align-items: flex-end; gap: 10px; line-height: 1; letter-spacing: 0; white-space: nowrap; pointer-events: none; }
.fitem:nth-child(odd) .fitem__num { left: calc(50% - 133px); }
.fitem:nth-child(even) .fitem__num { left: calc(50% - 254px); }
.fitem__label { font-family: var(--f-en); font-weight: 700; font-size: 36px; color: var(--c-gold); }
.fitem__no { font-family: var(--f-en); font-weight: 800; font-size: 81.6px; color: transparent; -webkit-text-stroke: 2px var(--c-gold); }
.fitem__title { font-weight: 700; font-size: 28px; line-height: 1.5; letter-spacing: .08em; }
.fitem__txt { margin-top: 30px; font-size: 16px; line-height: 2; letter-spacing: .05em; }

/* DOCTOR ----------------------------------------------------------------- */
.doctor { width: calc(100% - 60px); max-width: 1540px; margin: 0 auto; padding: 100px 0; background: #fff; border-radius: 30px; }
.doctor__inner { width: min(1300px, calc(100% - 80px)); margin: 0 auto; display: flex; gap: 80px; }
.doctor__l { flex: 0 0 520px; display: flex; flex-direction: column; gap: 40px; }
.doctor__ph { aspect-ratio: 520 / 680; border-radius: 20px; background: #555; }
.doctor__r { flex: 1; max-width: 650px; display: flex; flex-direction: column; gap: 30px; }
.doctor__pos { font-weight: 700; font-size: 16px; }
.doctor__ja { font-size: 48px; line-height: 1.6; letter-spacing: .05em; }
.doctor__ja span { margin-left: 8px; font-size: 16px; }
.doctor__en { font-family: var(--f-en); font-weight: 600; font-size: 16px; color: var(--c-gold); letter-spacing: .05em; }
.doctor__block h3 { font-weight: 700; font-size: 15px; line-height: 1.6; margin-bottom: 8px; }
.doctor__block > p, .doctor__history { padding: 10px 0; border-top: 1px solid var(--c-gray); border-bottom: 1px solid var(--c-gray); font-size: 15px; line-height: 1.6; }
.doctor__history { display: flex; flex-direction: column; gap: 5px; }
.doctor__history li { display: flex; align-items: baseline; }
.doctor__history span { flex: none; display: inline-flex; align-items: center; gap: 5px; margin-right: 5px; }
.doctor__history span::after { content: "●"; font-size: 6px; color: var(--c-gold); transform: translateY(-2px); }
.doctor__btn { margin-top: 10px; }

/* MENU ------------------------------------------------------------------- */
.menu { padding: 150px 0; }
.menu__title { justify-content: center; }
.menu__list { width: min(1130px, calc(100% - 80px)); margin: 60px auto 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.menu__list a { height: 184px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px 0; background: #fff; border-radius: 8px; transition: box-shadow .3s, transform .3s; }
.menu__list a:hover { box-shadow: 0 6px 20px rgba(204, 168, 103, .25); transform: translateY(-3px); }
.menu__list img { width: 80px; height: 80px; }
.menu__ja { margin-top: 10px; font-weight: 700; font-size: 16px; line-height: 1.7; letter-spacing: .08em; }
.menu__en { margin-top: 5px; font-family: var(--f-en); font-size: 13px; line-height: 1.7; letter-spacing: 0; color: var(--c-gold); }

/* PRICE ------------------------------------------------------------------ */
.price { position: relative; height: 500px; }
.price__bg, .price__bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.price__bg img { border-radius: 10px 0 0 10px; }
.price::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 539px; z-index: 1; background: linear-gradient(to left, #fff, rgba(255, 255, 255, 0)); opacity: .5; }
.price__inner { position: relative; z-index: 2; width: min(1400px, calc(100% - 80px)); margin: 0 auto; padding-top: 147px; display: flex; flex-direction: column; align-items: flex-end; gap: 20px; }
.price__title { font-weight: 700; font-size: 30px; line-height: 1.4; letter-spacing: .08em; }
.price__txt { font-size: 18px; line-height: 2; letter-spacing: .05em; }

/* TREATMENT -------------------------------------------------------------- */
.treat { position: relative; padding: 250px 0 150px; }
.treat__wave { position: absolute; left: 0; right: 0; top: -100px; bottom: 0; background: url(../img/svg/bg_treat.svg) center top / 100% auto no-repeat, linear-gradient(#fff, #fff) left 0 top calc(100vw * 1169 / 1600 - 2px) / 100% 100% no-repeat; pointer-events: none; z-index: 1; }
.treat__inner { position: relative; z-index: 2; width: min(1400px, calc(100% - 80px)); margin: 0 auto; }
.treat__head { position: absolute; left: 0; right: 0; top: -140px; text-align: center; }
.treat__en { font-family: var(--f-en); font-weight: 600; font-size: 24px; line-height: 1.4; letter-spacing: 0; color: var(--c-gold); }
.treat__title { margin-top: 15px; display: flex; flex-direction: column; align-items: center; gap: 15px; font-weight: 700; letter-spacing: .08em; line-height: 1.4; }
.treat__balloon { position: relative; padding: 5px 20px; border-radius: 9999px; background: var(--c-gold); color: var(--c-bg); font-size: 28px; }
.treat__balloon::after { content: ""; position: absolute; left: 50%; bottom: -8px; margin-left: -7px; border: 7px solid transparent; border-top: 9px solid var(--c-gold); border-bottom: 0; }
.treat__main { font-size: 48px; }
.treat__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.titem { padding-top: 40px; display: flex; flex-direction: column; align-items: center; }
.titem--02 { padding-top: 120px; }
.titem__ph { position: relative; width: 100%; aspect-ratio: 440 / 300; }
.titem__ph img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.titem__no { position: absolute; left: -25px; bottom: -23px; width: 70px; height: 70px; display: grid; place-items: center; border-radius: 8px; background: var(--c-gold); color: #fff; font-family: var(--f-en); font-weight: 600; font-size: 40px; line-height: 1; letter-spacing: -.02em; }
.titem__title { margin-top: 30px; font-weight: 700; font-size: 30px; line-height: 1.6; letter-spacing: .08em; text-align: center; }
.titem__txt { margin-top: 10px; width: 100%; font-size: 16px; line-height: 1.8; letter-spacing: .05em; }
.titem__btn { margin-top: 30px; }

/* CLINIC TOUR ------------------------------------------------------------ */
.tour { padding: 150px 0; overflow: hidden; }
.tour__inner { width: min(1400px, calc(100% - 80px)); margin: 0 auto; display: flex; }
.tour__head { position: relative; flex: 0 0 300px; }
.tour__en { position: absolute; left: -5px; top: -120px; font-family: var(--f-en); font-weight: 600; font-size: 120px; line-height: 1.4; letter-spacing: 0; color: var(--c-gold); opacity: .3; white-space: nowrap; pointer-events: none; }
.tour__ja { position: relative; font-weight: 700; font-size: 38px; line-height: 1.4; letter-spacing: .08em; }
.tour__slider { position: relative; flex: 1; min-width: 0; height: 460px; }
.tour__viewport { margin-right: calc(-1 * (100vw - 100%)); overflow: hidden; height: 100%; }
.tour__track { display: flex; align-items: flex-start; gap: 17.4px; transition: transform .6s cubic-bezier(.25, .8, .25, 1); }
.tour__slide { flex: 0 0 391px; height: 330px; border-radius: 8px; overflow: hidden; transition: height .6s cubic-bezier(.25, .8, .25, 1); }
.tour__slide.is-active { height: 460px; }
.tour__slide img { width: 100%; height: 100%; object-fit: cover; }
.tour__arrow { position: absolute; top: 200px; width: 70px; height: 70px; z-index: 2; border-radius: 50%; transition: transform .3s, box-shadow .3s; }
.tour__arrow:hover { transform: scale(1.06); box-shadow: 0 4px 14px rgba(0, 0, 0, .08); }
.tour__arrow svg { width: 100%; height: 100%; }
.tour__arrow--prev { left: -43px; }
.tour__arrow--next { left: 370px; }
.tour__caps { position: absolute; left: 302px; top: 380px; }
.tour__cap { display: none; align-items: flex-start; gap: 40px; }
.tour__cap.is-active { display: flex; animation: fadeIn .5s; }
.tour__no { font-family: var(--f-en); font-weight: 600; font-size: 80px; line-height: 1; letter-spacing: -.02em; color: var(--c-gold); margin-top: 30px; }
.tour__name { font-weight: 700; font-size: 30px; line-height: 1.6; letter-spacing: .08em; }
.tour__desc { margin-top: 10px; font-size: 18px; line-height: 1.8; letter-spacing: .05em; white-space: nowrap; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* COLUMN ----------------------------------------------------------------- */
.column { padding: 150px 0; }
.column__inner { width: min(1400px, calc(100% - 80px)); margin: 0 auto; }
.column__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.column__btn--sp { display: none; }
.column__list { margin-top: 60px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 25px; }
.column__list a { display: flex; flex-direction: column; gap: 10px; }
.column__ph { display: block; aspect-ratio: 331 / 240; border-radius: 6px; background: #8a8a8a; overflow: hidden; }
.column__ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.column__list a:hover .column__ph img { transform: scale(1.05); }
.column__list time { font-family: var(--f-en); font-size: 13px; line-height: 1.2; letter-spacing: 0; }
.column__ttl { font-size: 14px; line-height: 1.6; letter-spacing: .05em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ACCESS ----------------------------------------------------------------- */
.access { position: relative; }
.access .marquee { height: 205px; }
.access__inner { width: min(1400px, calc(100% - 80px)); margin: 0 auto; padding: 150px 0; display: flex; gap: 60px; }
.access__l { flex: 0 1 700px; display: flex; flex-direction: column; gap: 30px; }
.access__l .c-title { margin-bottom: 0; }
.access__l .c-dl { margin-top: 0; }
.access__l .c-dl__row, .access__l .c-dl__name { max-width: 640px; }
.access__map { flex: 1; align-self: flex-end; height: 623px; border-radius: 15px; overflow: hidden; background: #999; }
.access__map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* FOOTER ----------------------------------------------------------------- */
.footer { background: var(--c-gold); color: #fff; }
.reserve--footer { padding: 60px 20px 0; }
.footer__inner { width: min(1400px, calc(100% - 80px)); margin: 0 auto; padding: 80px 0; display: flex; gap: 80px; }
.footer__l { flex: 0 0 400px; display: flex; flex-direction: column; gap: 10px; }
.footer__logo { display: block; align-self: flex-start; margin-bottom: 18px; }
.footer__logo img { width: auto; height: 60px; }
.footer__address { font-size: 15px; line-height: 1.6; letter-spacing: .05em; }
.footer__tel { font-size: 14px; letter-spacing: .05em; }
.footer__copy { margin-top: 14px; font-family: var(--f-en); font-size: 11px; line-height: 1.6; letter-spacing: .05em; white-space: nowrap; }
.footer__copy--sp { display: none; }
.footer__nav { flex: 1; display: flex; gap: 60px; }
.fnav__title { padding-bottom: 5px; border-bottom: 1px solid #fff; font-size: 14px; line-height: 26px; letter-spacing: .05em; }
.fnav ul { font-size: 14px; line-height: 26px; letter-spacing: .05em; }
.fnav a { transition: opacity .3s; }
.fnav a:hover { opacity: .7; }
.fnav--info { flex: 0 0 170px; }
.fnav--info ul { margin-top: 15px; }
.fnav--menu { flex: 0 1 436px; }
.fnav--menu ul { margin-top: 15px; display: grid; grid-template-columns: 149fr 93fr 168fr; row-gap: 5px; column-gap: 10px; }
.fnav--other ul { display: flex; flex-direction: column; gap: 10px; color: #f7f5f1; }
.fixbar { display: none; }

/* sub pages -------------------------------------------------------------- */
.sub { padding: calc(var(--header-h) + 80px) 0 120px; }
.sub__inner { width: min(1000px, calc(100% - 40px)); margin: 0 auto; }
.sub__title { font-weight: 700; font-size: 34px; line-height: 1.5; letter-spacing: .08em; margin-bottom: 40px; }
.sub__date { display: block; margin: -24px 0 32px; font-family: var(--f-en); color: var(--c-gold); }
.sub__content { line-height: 2; }
.sub__content > * + * { margin-top: 1.5em; }
.sub__list a { display: flex; gap: 15px; padding: 18px 0; border-bottom: 1px solid var(--c-gray); }
.sub__list time { font-family: var(--f-en); color: var(--c-gold); }

/* ==========================================================================
   ≤1400 微調整
   ========================================================================== */
@media (max-width: 1400px) {
	.about__body { flex-basis: 56%; }
	.about__ph { left: 56%; }
	.feature__head { flex-basis: 200px; }
	.feature__en { left: 30px; }
	.feature__ja { left: 58px; }
	.tour__head { flex-basis: 260px; }
}

/* ==========================================================================
   ≤1180 : ヘッダーをハンバーガーに
   ========================================================================== */
@media (max-width: 1180px) {
	:root { --header-h: 76px; }
	.header { background: rgba(246, 242, 237, .96); }
	.header__r { display: none; }
	.header__logo img { height: 46px; }
	.hamb { display: block; position: relative; z-index: 2; width: 64px; height: 32px; border-radius: 30px; background: var(--c-gold); }
	.hamb span { position: absolute; left: 50%; width: 26px; height: 1px; margin-left: -13px; background: #fff; transition: transform .3s, top .3s; }
	.hamb span:nth-child(1) { top: 12px; }
	.hamb span:nth-child(2) { top: 19px; }
	.is-drawer-open .hamb span:nth-child(1) { top: 16px; transform: rotate(25deg); }
	.is-drawer-open .hamb span:nth-child(2) { top: 16px; transform: rotate(-25deg); }

	.drawer { display: block; position: fixed; inset: var(--header-h) 0 0; z-index: 99; background: #f3f2f1; overflow-y: auto; overscroll-behavior: contain; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
	.is-drawer-open .drawer { opacity: 1; visibility: visible; }
	.is-drawer-open { overflow: hidden; }
	.drawer__inner { width: min(560px, calc(100% - 30px)); margin: 0 auto; padding: 24px 0 40px; }
	.acc { border: 2px solid var(--c-gold); border-radius: 29px; background: #fff; transition: border-radius .3s; }
	.acc.is-open { border-radius: 15px; }
	.acc__btn { width: 100%; height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px 0 40px; font-weight: 700; font-size: 16px; letter-spacing: 0; }
	.acc__arrow { width: 19px; height: 19px; transition: transform .3s; }
	.acc.is-open .acc__arrow { transform: rotate(180deg); }
	.acc__body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s; }
	.acc.is-open .acc__body { grid-template-rows: 1fr; }
	.acc__inner { overflow: hidden; padding: 0 20px; }
	.acc.is-open .acc__inner { padding-bottom: 25px; }
	.acc__top { display: flex; align-items: center; justify-content: space-between; height: 50px; padding: 0 16px 0 22px; border: 2px solid var(--c-gold); border-radius: 9999px; font-weight: 700; font-size: 14px; letter-spacing: 0; }
	.acc__top i { width: 19px; height: 19px; color: var(--c-gold); }
	.acc__list { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
	.acc__list .mnav__item.is-wide { grid-column: 1 / -1; }
	.acc__list .mnav__parent { width: 100%; height: 40px; justify-content: space-between; border-bottom: 1px solid var(--c-gray); font-size: 14px; letter-spacing: 0; }
	.acc__list .mnav__parent span { white-space: nowrap; font-size: min(14px, calc((100vw - 110px) / 21)); }
	.acc__list .mnav__children { padding: 5px 0; gap: 10px 10px; }
	.acc__list .mnav__item.is-wide .mnav__children { display: grid; grid-template-columns: 1fr 1fr; }
	.acc__list .mnav__children a { font-size: 13px; letter-spacing: 0; }
	.drawer__nav { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; column-gap: 10px; }
	.drawer__nav a { display: flex; align-items: center; height: 50px; border-bottom: 1px solid var(--c-gray); font-size: 14px; letter-spacing: .05em; }
	.reserve--drawer { margin-top: 40px; padding: 30px 25px; border-radius: 8px; background: var(--c-gold); }
	.reserve--drawer .reserve__en { font-size: 14px; }
	.reserve--drawer .reserve__title { font-size: min(20px, calc((100vw - 90px) / 15)); letter-spacing: 0; white-space: nowrap; }
	.reserve--drawer .reserve__btns { flex-direction: column; gap: 10px; margin-top: 20px; }
	.reserve--drawer .reserve__btn { flex: none; height: 60px; font-size: 18px; }
	.reserve--drawer .reserve__btn svg { width: 24px; height: 24px; }
}

/* ==========================================================================
   768–1180 : タブレット調整
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1180px) {
	.mv__lead { font-size: max(calc(24 * var(--k)), 13px); }
	.mv__badges span { font-size: max(calc(20 * var(--k)), 11px); letter-spacing: .02em; }
	.about { padding-bottom: 220px; }
	.about__inner { flex-direction: column; align-items: stretch; min-height: 0; }
	.about__body { flex: none; padding-right: 0; }
	.about__list li { font-size: 16px; }
	.about__ph { position: relative; left: auto; right: auto; top: auto; bottom: auto; margin: 40px -40px 0 0; aspect-ratio: 794 / 529; }
	.about .marquee { top: auto; bottom: 10px; }
	.mv__copy { top: calc(600 * var(--k)); }
	.news__head { flex-basis: 260px; }
	.nayami__list { grid-template-columns: repeat(3, 1fr); }
	.info__inner { flex-direction: column; align-items: stretch; }
	.info__l, .info__r { flex: none; width: 100%; max-width: 760px; margin: 0 auto; }
	.greeting__inner { min-height: 0; }
	.greeting__body { flex: 1; max-width: none; padding: 120px 0; }
	.greeting__phs--pc { display: none; }
	.feature__head { flex-basis: 110px; }
	.feature__en { left: 0; font-size: 90px; }
	.feature__ja { left: 22px; font-size: 30px; }
	.fitem, .fitem:nth-child(even) { flex-direction: column; align-items: stretch; gap: 40px; }
	.fitem__ph { flex: none; width: 100%; }
	.fitem__num, .fitem:nth-child(odd) .fitem__num, .fitem:nth-child(even) .fitem__num { position: relative; left: auto; top: auto; margin-bottom: 10px; }
	.fitem__body { padding: 0; }
	.doctor__inner { flex-direction: column; gap: 40px; }
	.doctor__l { flex: none; }
	.doctor__ph { width: min(420px, 100%); margin: 0 auto; }
	.doctor__r { max-width: none; }
	.menu__list { grid-template-columns: repeat(3, 1fr); }
	.treat__list { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; gap: 60px; }
	.titem, .titem--02 { padding-top: 0; }
	.treat__head { position: static; margin-bottom: 60px; }
	.treat { padding-top: 160px; }
	.tour__inner { flex-direction: column; gap: 60px; }
	.tour__head { flex: none; }
	.tour__slider { height: 560px; margin-left: 40px; }
	.tour__caps { left: 0; top: 480px; }
	.tour__arrow--prev { left: -35px; }
	.column__list { grid-template-columns: repeat(2, 1fr); }
	.access__inner { flex-direction: column; }
	.access__l { flex: none; }
	.access__map { flex: none; height: 450px; align-self: stretch; }
	.footer__inner { flex-direction: column; gap: 50px; }
	.footer__l { flex: none; }
	.reserve__btn { font-size: 18px; }
}

/* ==========================================================================
   SP（≤767） Figma SP 390
   ========================================================================== */
@media (max-width: 767px) {
	:root { --header-h: 60px; }
	html { scroll-padding-top: 70px; }
	body { font-size: 15px; padding-bottom: 40px; }
	.header__inner { padding: 0 15px; }
	.header__logo img { height: 38px; }
	.hamb { width: 56px; height: 28px; }
	.hamb span { width: 23px; margin-left: -11.5px; }
	.hamb span:nth-child(1) { top: 10.5px; }
	.hamb span:nth-child(2) { top: 16.5px; }
	.is-drawer-open .hamb span:nth-child(1), .is-drawer-open .hamb span:nth-child(2) { top: 13.5px; }
	.drawer__inner { width: calc(100% - 30px); }
	.reserve--drawer { margin: 40px -5px 0; }

	.c-title { column-gap: 10px; }
	.c-title__en { font-size: 14px; gap: 10px; }
	.c-title__en::after { width: 6px; height: 6px; }
	.c-title__ja { font-size: 24px; }
	.c-title--s .c-title__en { font-size: 12px; letter-spacing: .03em; }
	.c-title--s .c-title__ja { font-size: 20px; }
	.c-btn { width: 300px; height: 50px; font-size: 15px; }
	.c-btn__arrow { right: 22px; }
	.marquee__track span { font-size: 83.1px; padding-right: 25.5px; }

	.c-dl__name { padding-bottom: 20px; font-size: 20px; }
	.c-dl__name--b { font-size: 20px; }
	.c-dl__row dt { flex-basis: 75px; font-size: 14px; }
	.c-dl__row dd { font-size: 14px; }
	.c-dl__row dd small { font-size: 14px; letter-spacing: .05em; }
	.c-dl__row--tel dd a { font-size: 26px; }
	.c-dl__row--tel dd svg { width: 20px; height: 20px; }

	.hours { padding: 0 10px 20px; }
	.hours__table th, .hours__table td { font-size: 13px; }
	.hours__table th:first-child { width: 88px; font-size: 13px; }
	.hours__table thead th:first-child { font-size: 13px; }
	.hours__note { font-size: 12px; }

	.reserve__en { font-size: 14px; }
	.reserve__title { margin-top: 15px; font-size: min(22px, calc((100vw - 60px) / 15)); letter-spacing: 0; white-space: nowrap; }
	.reserve__btns { flex-direction: column; align-items: center; gap: 10px; margin-top: 20px; }
	.reserve__btn { flex: none; width: 100%; max-width: 320px; height: 70px; font-size: 20px; }
	.reserve__btn svg { width: 24px; height: 24px; }
	.reserve--box { width: calc(100% - 20px); padding: 40px 25px; }

	/* MV */
	.mv { --k: calc(100cqw / 390); height: calc(740 * var(--k)); }
	.mv__ph { left: calc(10 * var(--k)); top: calc(99 * var(--k)); height: calc(512 * var(--k)); }
	.mv__ph img { object-position: center top; }
	.mv__wave { top: calc(435 * var(--k)); height: calc(200 * var(--k)); background-image: url(../img/svg/sp_bg_mv.svg); }
	.mv__en { left: calc(13 * var(--k)); top: calc(78 * var(--k)); font-size: calc(40 * var(--k)); line-height: 1; }
	.mv__copy { left: calc(20 * var(--k)); top: calc(475 * var(--k)); }
	.mv__catch { font-size: calc(25 * var(--k)); }
	.mv__catch::after { width: calc(350 * var(--k)); height: 1px; margin: calc(10 * var(--k)) 0 0; }
	.mv__lead { margin: calc(9 * var(--k)) 0 0 calc(1 * var(--k)); font-size: calc(15 * var(--k)); line-height: 1.6; }
	.mv__badges { right: auto; left: calc(21 * var(--k)); top: calc(621 * var(--k)); gap: calc(6.08 * var(--k)); }
	.mv__badges li { width: calc(112 * var(--k)); gap: calc(5 * var(--k)); padding-bottom: calc(4 * var(--k)); }
	.mv__badges li::before { inset: calc(4.3 * var(--k)); }
	.mv__badges svg { width: calc(15 * var(--k)); }
	.mv__badges span { font-size: calc(13 * var(--k)); letter-spacing: 0; }

	/* NEWS */
	.news { padding-top: 80px; }
	.news__inner { width: calc(100% - 40px); flex-direction: column; gap: 20px; }
	.news__head { flex: none; flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; }
	.news__btn { width: 150px; height: 40px; padding: 0 20px; font-size: 13px; }
	.news__btn .c-btn__arrow { right: 16px; }
	.news__list a { flex-direction: column; align-items: flex-start; gap: 0; padding: 10px 0; }
	.news__list time { font-size: 13px; line-height: 1.6; }
	.news__list span { font-size: 15px; }

	/* ABOUT */
	.about { padding: 80px 0 150px; }
	.about__inner { width: calc(100% - 40px); display: block; min-height: 0; }
	.about__body { display: contents; }
	.about__inner { display: flex; flex-direction: column; align-items: stretch; gap: 30px; }
	.about__ph { position: relative; left: auto; right: auto; top: auto; bottom: auto; order: 2; margin-right: -20px; aspect-ratio: 370 / 285; }
	.about__ph img { border-radius: 6px 0 0 6px; }
	.about__body .c-title { order: 1; }
	.about__list { order: 3; gap: 16px; }
	.about__list li { padding-left: 20px; font-size: 16px; }
	.about__list li::before { width: 10px; height: 10px; border-radius: 2px; top: calc(.8em - 5px); }
	.about .marquee { top: auto; bottom: 0; transform: translateY(14px); }

	/* お悩み */
	.nayami { padding-top: 80px; }
	.nayami__wave { top: 0; aspect-ratio: 390 / 284; background-image: url(../img/svg/sp_bg_nayami.svg); }
	.nayami__inner { width: calc(100% - 40px); }
	.nayami__title { font-size: 28px; letter-spacing: .1em; }
	.nayami__list { grid-template-columns: 1fr 1fr; gap: 40px 10px; margin-top: 90px; }
	.nayami__item { padding: 50px 8px 15px; border-radius: 5px; }
	.nayami__ph { top: -29px; width: 70px; height: 70px; margin-left: -35px; }
	.nayami__no { font-size: 13px; }
	.nayami__txt { margin-top: 6px; font-size: min(14px, 3.6vw); letter-spacing: 0; }

	/* info */
	.info { padding: 80px 0; }
	.info__inner { width: calc(100% - 40px); flex-direction: column; align-items: stretch; gap: 40px; }
	.info__l { display: contents; }
	.info__l .c-dl { order: 1; }
	.info__r { order: 2; flex: none; width: 100%; }
	.info__btn { order: 3; margin: 0 auto; }

	/* GREETING */
	.greeting { overflow: hidden; }
	.greeting__inner { width: calc(100% - 40px); min-height: 0; }
	.greeting__body { flex: 1; max-width: none; padding: 80px 0; gap: 40px; }
	.greeting__txt > p:first-child { font-size: 15px; }
	.greeting__sign { margin-top: 16px; }
	.greeting__career { flex-direction: column; gap: 5px; }
	.greeting__career li { font-size: 13px; }
	.greeting__phs--pc { display: none; }
	.greeting__phs--sp { --k: calc(100cqw / 390); display: block; height: calc(461 * var(--k)); position: relative; }
	.greeting__row { position: absolute; display: flex; gap: calc(6.67 * var(--k)); }
	.greeting__row--1 { left: calc(-80 * var(--k)); top: 0; }
	.greeting__row--2 { left: 0; top: calc(234 * var(--k)); }
	.greeting__row .gph { width: calc(174 * var(--k)); height: calc(227 * var(--k)); border-radius: calc(5.3 * var(--k)); }
	.greeting__row .gph img { width: 100%; height: 100%; object-fit: cover; }
	.greeting__row .gph--r { justify-content: flex-end; }
	.greeting__row .gph--r img { width: calc(94 * var(--k)); flex: none; }
	.greeting__row .gph--l img { width: auto; flex: none; }
	.greeting__row--1 .gph--l img { width: calc(110 * var(--k)); }
	.greeting__row--2 .gph--l img { width: calc(30 * var(--k)); }

	/* FEATURE */
	.feature { padding: 100px 0; }
	.feature__wave { top: -25px; aspect-ratio: 390 / 285; background-image: url(../img/svg/sp_bg_feature.svg); }
	.feature__inner { width: calc(100% - 20px); margin-left: 10px; }
	.feature__head { flex: 0 0 71px; }
	.feature__en { left: -10px; top: -31px; font-size: 48px; }
	.feature__ja { left: 1px; top: -32px; font-size: 16px; }
	.feature__list { gap: 80px; padding-right: 9px; }
	.fitem, .fitem:nth-child(even) { flex-direction: column; align-items: stretch; gap: 20px; }
	.fitem__ph { flex: none; width: 100%; aspect-ratio: 290 / 240; }
	.fitem__sq { width: 46px; height: 46px; border-radius: 4px; }
	.fitem--01 .fitem__sq { left: -19px; bottom: -6px; }
	.fitem--02 .fitem__sq { right: -22px; left: auto; bottom: 44px; top: auto; width: 60px; height: 60px; }
	.fitem--03 .fitem__sq { right: -9px; bottom: -5px; width: 45px; height: 45px; }
	.fitem--04 .fitem__sq { right: 11px; top: -30px; width: 60px; height: 60px; }
	.fitem--05 .fitem__sq { left: -23px; bottom: 49px; width: 45px; height: 45px; }
	.fitem__num, .fitem:nth-child(odd) .fitem__num, .fitem:nth-child(even) .fitem__num { top: -45px; left: auto; right: 0; gap: 7px; }
	.feature .fitem.fitem--02 .fitem__num { right: auto; left: -3px; }
	.feature .fitem.fitem--04 .fitem__num { right: auto; left: 0; }
	.feature .fitem.fitem--05 .fitem__num { right: 7px; }
	.fitem__label { font-size: 25.2px; }
	.fitem__no { font-size: 57.1px; -webkit-text-stroke-width: 1.4px; }
	.fitem__body { padding: 0; }
	.fitem__title { font-size: 20px; letter-spacing: 0; }
	.fitem__txt { margin-top: 15px; font-size: 15px; }

	/* DOCTOR */
	.doctor { width: 100%; padding: 60px 0; }
	.doctor__inner { width: calc(100% - 40px); flex-direction: column; gap: 40px; }
	.doctor__l { flex: none; }
	.doctor__ph { width: min(283px, 100%); margin: 0 auto; border-radius: 11px; }
	.doctor__r { max-width: none; }
	.doctor__name { text-align: center; }
	.doctor__pos { font-size: 14px; text-align: left; width: 239px; margin: 0 auto; }
	.doctor__ja { font-size: 36px; }
	.doctor__ja span { font-size: 14px; }
	.doctor__en { font-size: 14px; }
	.doctor__block > p, .doctor__history { font-size: 14px; }
	.doctor__btn { margin: 10px auto 0; }

	/* MENU */
	.menu { padding: 80px 0; }
	.menu__list { width: calc(100% - 40px); grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 40px; }
	.menu__list a { height: 136px; padding: 12px 0; border-radius: 5px; }
	.menu__list img { width: 62px; height: 62px; }
	.menu__ja { margin-top: 6px; font-size: 14px; letter-spacing: 0; }
	.menu__en { margin-top: 3px; font-size: 10px; }

	/* PRICE */
	.price::before { height: 487px; opacity: .7; background: linear-gradient(to left, #fff, rgba(255, 255, 255, 0)); }
	.price__inner { width: calc(100% - 40px); padding-top: 89px; align-items: center; text-align: center; }
	.price__title { font-size: 20px; }
	.price__txt { font-size: 15px; }

	/* TREATMENT */
	.treat { padding: 0 0 80px; }
	.treat__wave { top: -99px; background-image: url(../img/svg/sp_bg_treat.svg), linear-gradient(#fff, #fff); background-size: 100% auto, 100% 100%; background-position: center top, left 0 top calc(100vw * 2044 / 390 - 2px); }
	.treat__inner { width: calc(100% - 40px); }
	.treat__head { position: static; margin-bottom: 40px; }
	.treat__en { font-size: 14px; }
	.treat__title { margin-top: 11px; gap: 11px; }
	.treat__balloon { padding: 3.7px 15px; font-size: 18px; }
	.treat__balloon::after { bottom: -6px; border-width: 5px; border-top-width: 7px; margin-left: -5px; }
	.treat__main { font-size: 30px; }
	.treat__list { grid-template-columns: 1fr; gap: 60px; }
	.titem, .titem--02 { padding-top: 0; }
	.titem__ph { aspect-ratio: 350 / 260; }
	.titem__no { left: -14px; bottom: -19px; width: 50px; height: 50px; font-size: 30px; }
	.titem__title { margin-top: 20px; font-size: 24px; }
	.titem__txt { font-size: 15px; }
	.titem__btn { margin-top: 20px; }

	/* TOUR */
	.tour { padding: 80px 0; }
	.tour__inner { width: calc(100% - 40px); flex-direction: column; gap: 40px; }
	.tour__head { flex: none; }
	.tour__en { left: -3px; top: -39px; font-size: 48px; }
	.tour__ja { font-size: 16px; }
	.tour__slider { height: auto; }
	.tour__viewport { margin-right: -20px; height: 353px; }
	.tour__track { gap: 13.5px; }
	.tour__slide { flex-basis: 300px; height: 257px; border-radius: 6px; }
	.tour__slide.is-active { height: 353px; }
	.tour__arrow { top: 167px; width: 40px; height: 40px; }
	.tour__arrow--prev { left: -10px; }
	.tour__arrow--next { left: 280px; }
	.tour__caps { position: static; margin-top: 20px; }
	.tour__cap { gap: 20px; align-items: center; }
	.tour__no { margin-top: 0; font-size: 60px; }
	.tour__name { font-size: 24px; }
	.tour__desc { margin-top: 0; font-size: 15px; letter-spacing: 0; white-space: normal; }

	/* COLUMN */
	.column { padding: 0 0 80px; }
	.column__inner { width: calc(100% - 40px); }
	.column__head .column__btn { display: none; }
	.column__btn--sp { display: inline-flex; margin: 40px auto 0; }
	.column__inner { display: flex; flex-direction: column; }
	.column__list { margin-top: 40px; grid-template-columns: 1fr 1fr; gap: 40px 15px; }
	.column__ph { aspect-ratio: 168 / 120; border-radius: 4px; }
	.column__list time { font-size: 12px; }
	.column__ttl { font-size: 13px; }

	/* ACCESS */
	.access .marquee { height: 101px; }
	.access__inner { width: calc(100% - 40px); padding: 80px 0; flex-direction: column; gap: 40px; }
	.access__l { flex: none; gap: 40px; }
	.access__l .c-dl__row, .access__l .c-dl__name { max-width: none; }
	.access__map { flex: none; height: 450px; align-self: stretch; }

	/* FOOTER */
	.reserve--footer { display: none; }
	.footer__inner { width: calc(100% - 40px); padding: 60px 0; flex-direction: column; gap: 60px; }
	.footer__l { flex: none; gap: 10px; }
	.footer__logo { margin-bottom: 14px; }
	.footer__logo img { height: 50px; }
	.footer__address, .footer__tel { font-size: 13px; }
	.footer__copy--pc { display: none; }
	.footer__copy--sp { display: block; margin: 0; text-align: center; font-size: 10px; letter-spacing: 0; }
	.footer__nav { flex-direction: column; gap: 60px; }
	.fnav--info { display: none; }
	.fnav--menu { flex: none; }
	.fnav--menu ul { grid-template-columns: 1fr 1fr; row-gap: 5px; }
	.fnav--menu ul, .fnav--menu li { font-size: 13px; }
	.fnav--other ul { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 0; }

	/* 追従ボタン */
	.fixbar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; transition: transform .3s; }
	.fixbar.is-hidden { transform: translateY(110%); }
	.fixbar__balloon { position: absolute; left: 50%; top: -19px; transform: translateX(-50%); width: 226px; height: 22px; display: grid; place-items: center; border-radius: 9999px; background: var(--c-beige); font-size: 12px; letter-spacing: .08em; line-height: 1.2; white-space: nowrap; }
	.fixbar__btns { display: grid; grid-template-columns: repeat(3, 1fr); }
	.fixbar__btn { height: 40px; display: flex; align-items: center; justify-content: center; gap: 6px; background: var(--c-gold-d); color: #fff; font-weight: 700; font-size: 12px; letter-spacing: 0; }
	.fixbar__btn + .fixbar__btn { border-left: 1px solid var(--c-bg); }
	.fixbar__btn--line { background: var(--c-line); border-left: 0 !important; }
	.fixbar__btn svg { width: 14px; height: 14px; }

	.sub__title { font-size: 24px; }
}

/* 日本語の文節で自然に改行（対応ブラウザ） */
.c-title__ja, .nayami__title, .fitem__title, .titem__title, .price__title, .treat__main, .tour__name, .column__ttl, .news__list span { word-break: auto-phrase; }

.fnav--other ul { white-space: nowrap; }

@media (max-width: 767px) {
	.mv__h1-sub { left: 0; margin-bottom: calc(6 * var(--k)); font-size: calc(11.5 * var(--k)); letter-spacing: .02em; gap: calc(6 * var(--k)); }
	.mv__h1-sub::before { width: calc(16 * var(--k)); }
}
.column__empty { grid-column: 1 / -1; padding: 30px 0; text-align: center; font-size: 15px; letter-spacing: .08em; color: var(--c-text, #402e2e); }
