@charset "UTF-8";
/* ==========================================================================
   診療科目LP（Figmaデザイン版）  top2026.css と併用
   Figma：皮膚科_PC_オンライン診療LP 5433:2（1440）／ 皮膚科_SP_オンライン診療LP 5506:529（375）
   部品：inc/dept-lp.php ／ 科目ごとの本体：parts/department/{スラッグ}.php
   ========================================================================== */

body.is-dept-lp { background: #f5faf9; }
.dl, .dl-ctab {
	--teal: #2b968f; --teal-d: #3d7f7a; --teal-l: #1f857e; --coral: #f07b68; --rose: #c2547a;
	--blue: #1382cb; --pinkbar: #e7a4ba; --border: #dceae7; --green: #27703d;
}
.dl {
	font-family: var(--f-noto, "Noto Sans JP", sans-serif); color: #222; line-height: 1.6; background: #f5faf9;
	overflow-x: clip; /* 背景のまる飾りを画面外で切る */
}
.dl em { font-style: normal; color: var(--coral); }
.dl h4 { margin: 0; }
.dl img { max-width: none; }
.dl-ctab { font-family: var(--f-noto, "Noto Sans JP", sans-serif); }

/* ---------- 共通：見出し ---------- */
.dl-h2 { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 8px 0 4px; text-align: center; }
.dl-h2__logo { width: 44px; height: 44px; object-fit: contain; }
.dl-h2__ttl { font-size: 34px; font-weight: 700; line-height: 1.3; color: #222; }
.dl-h2__bar { display: flex; gap: 4px; }
.dl-h2__bar::before, .dl-h2__bar::after { content: ""; display: block; height: 4px; border-radius: 2px; }
.dl-h2__bar::before { width: 32px; background: var(--blue); }
.dl-h2__bar::after { width: 16px; background: var(--pinkbar); }
.dl-h2--sm { gap: 16px; }
.dl-h2--sm .dl-h2__ttl { font-size: 27px; }
.dl-h2--plan .dl-h2__ttl { font-size: 32px; line-height: 1.4; letter-spacing: .04em; }
.dl-h2--plan .dl-h2__bar { display: none; }
.dl-h2--teal .dl-h2__ttl { color: var(--teal); }
.dl-marker { position: relative; z-index: 0; }
.dl-marker::before { content: ""; position: absolute; z-index: -1; left: -4px; right: -4px; top: 26px; height: 16px; border-radius: 8px; background: #fbe3ea; }

.dl-h3 { display: flex; align-items: center; gap: 12px; padding-bottom: 8px; border-bottom: 2px solid var(--teal-d); font-size: 24px; font-weight: 700; line-height: 1.4; letter-spacing: .04em; }
.dl-h3::before { content: ""; width: 6px; height: 28px; background: var(--teal-d); flex-shrink: 0; }

.dl-lead { font-size: 16px; line-height: 1.8; }
.dl-lead--lg { font-size: 18px; line-height: 1.7; letter-spacing: .04em; }
.dl-note { font-size: 13px; line-height: 1.6; color: #666; }

/* ---------- 共通：ボタン ---------- */
.dl-chev { width: 14px; height: 22px; flex-shrink: 0; }
.dl-btn-new, .dl-btn-repeat {
	display: flex; align-items: center; gap: 16px; height: 76px; padding: 0 24px 0 28px; border-radius: 14px;
	font-weight: 700; line-height: 1.3; transition: transform .15s, box-shadow .15s;
}
.dl-btn-new { background: var(--coral); color: #fff; box-shadow: 0 5px 0 rgba(191,89,13,.55); }
.dl-btn-new > img:first-child { width: 34px; height: 34px; }
.dl-btn-new__txt { flex: 1; font-size: 28px; white-space: nowrap; }
.dl-btn-repeat { background: #fff; border: 2.5px solid var(--teal); color: var(--teal); box-shadow: 0 5px 0 rgba(18,102,166,.35); }
.dl-btn-repeat__txt { flex: 1; display: flex; flex-direction: column; gap: 2px; font-size: 27px; white-space: nowrap; }
.dl-btn-repeat__txt small { font-size: 14px; }
.dl-btn-new:hover, .dl-btn-repeat:hover { transform: translateY(3px); }
.dl-btn-new:hover { box-shadow: 0 2px 0 rgba(191,89,13,.55); }
.dl-btn-repeat:hover { box-shadow: 0 2px 0 rgba(18,102,166,.35); }
.dl-capsule { position: relative; width: 34px; height: 34px; flex-shrink: 0; }
.dl-capsule i { position: absolute; left: 1px; top: 9.5px; width: 32px; height: 15px; border: 2.4px solid var(--teal); border-radius: 7.5px; background: linear-gradient(90deg, var(--teal) 50%, #fff 50%); transform: rotate(-35deg); }

.dl-ctapair {
	align-self: center; display: flex; flex-direction: column; align-items: center; gap: 12px;
	background: rgba(255,255,255,.85); border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,.08); padding: 18px 24px 22px;
}
.dl-ctapair__cap { font-size: 21px; font-weight: 700; line-height: 1.3; color: #2e7d4f; text-align: center; }
.dl-ctapair__btns { display: flex; gap: 20px; padding-bottom: 6px; }
.dl-ctapair__btns > a { width: 440px; }
.dl-ctapair--in { align-self: stretch; }
.dl-ctapair--in .dl-ctapair__btns > a { width: auto; flex: 1 1 0; max-width: 440px; }

.dl-btn-line {
	display: flex; align-items: center; justify-content: center; gap: 12px; width: 440px; max-width: 100%; height: 76px;
	background: #06c755; border-radius: 999px; box-shadow: 0 4px 0 rgba(5,128,64,.45); color: #fff; font-weight: 700;
	transition: transform .15s, box-shadow .15s;
}
.dl-btn-line img { width: 32px; height: 32px; }
.dl-btn-line span { font-size: 20px; line-height: 1.4; }
.dl-btn-line b { font-size: 24px; line-height: 1; }
.dl-btn-line:hover { transform: translateY(2px); box-shadow: 0 2px 0 rgba(5,128,64,.45); }

.dl-btn-pill, .dl-btn-outline {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 999px;
	font-size: 18px; font-weight: 700; line-height: normal; transition: opacity .15s;
}
.dl-btn-pill b, .dl-btn-outline b { font-size: 22px; }
.dl-btn-pill { width: 460px; padding: 16px 0; background: var(--coral); color: #fff; box-shadow: 0 4px 0 rgba(153,89,26,.25); }
.dl-btn-outline { width: 420px; height: 58px; background: #fff; border: 2px solid var(--coral); color: var(--coral); }
.dl-btn-pill:hover, .dl-btn-outline:hover { opacity: .85; }

.dl-seccta {
	align-self: center; width: 720px; max-width: 100%; margin-top: 8px; display: flex; flex-direction: column; align-items: center; gap: 14px;
	background: rgba(255,255,255,.78); border-radius: 12px; box-shadow: 0 6px 18px rgba(0,0,0,.15); padding: 24px 40px 28px;
}
.dl-seccta__catch { font-size: 20px; font-weight: 700; color: var(--green); }
.dl-seccta__btn {
	display: flex; align-items: center; justify-content: center; gap: 16px; width: 100%; padding: 24px 20px 24px 24px;
	background: var(--coral); border-radius: 999px; box-shadow: 0 4px 0 rgba(0,77,26,.3); color: #fff; font-size: 28px; font-weight: 700; white-space: nowrap;
	transition: transform .15s, box-shadow .15s;
}
.dl-seccta__btn img:first-child { width: 40px; height: 40px; }
.dl-seccta__btn img:last-child { width: 30px; height: 30px; }
.dl-seccta__btn:hover { transform: translateY(2px); box-shadow: 0 2px 0 rgba(0,77,26,.3); }

/* ---------- セクション・背景帯 ---------- */
.dl-sec { position: relative; padding: 48px 0; scroll-margin-top: 240px; }
.dl-in { position: relative; z-index: 1; width: min(1000px, calc(100% - 40px)); margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.dl-band--dots { background-color: #f5faf9; background-image: url(../img/dept/common/bg-dot-pattern.png); background-size: 75px 75px; }
.dl-band--first { padding-top: 24px; }
.dl-band--white { background: #fff; z-index: 1; }
.dl-band--white::before, .dl-band--white::after {
	content: ""; position: absolute; left: 0; right: 0; height: 46px; pointer-events: none;
	background: url(../img/dept/common/wave-white.svg) center / 100% 100% no-repeat;
}
.dl-band--white::before { top: -45px; }
.dl-band--white::after { bottom: -45px; transform: rotate(180deg); }
.dl-blob { position: absolute; z-index: 0; border-radius: 50%; pointer-events: none; }
.dl-blob--r { width: 320px; height: 320px; top: 80px; left: calc(50% + 520px); background: rgba(252,232,237,.55); }
.dl-blob--l { width: 360px; height: 360px; left: calc(50% - 880px); background: rgba(214,240,236,.5); }
.dl-ring { position: absolute; z-index: 0; width: 180px; height: 180px; top: -49px; left: calc(50% + 628px); border: 2px solid rgba(43,150,143,.15); border-radius: 50%; pointer-events: none; }
.dl-sec[id] { scroll-margin-top: 240px; }
#plan-1, #plan-2, #medicine, .dl-med__cat { scroll-margin-top: 250px; }

/* ---------- FV ---------- */
.dl-hero { position: relative; overflow: hidden; background: linear-gradient(90deg, #e8f6f3 0%, #f6fbfa 55%, #fff 100%); }
.dl-hero__stage { position: relative; width: 1440px; height: 685px; margin: 0 auto; }
.dl-hero__deco { position: absolute; left: 0; top: 0; width: 1440px; height: 685px; }
.dl-hero__photo { position: absolute; left: 540px; top: 85px; width: 900px; height: 600px; }
.dl-hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.dl-hero__fade { position: absolute; pointer-events: none; }
.dl-hero__fade--top { left: 566px; top: 85px; width: 900px; height: 140px; background: linear-gradient(180deg, #f6fbfa 0%, rgba(246,251,250,0) 100%); }
.dl-hero__fade--left { left: 540px; top: 0; width: 260px; height: 685px; background: linear-gradient(90deg, #f6fbfa 0%, rgba(246,251,250,0) 100%); }
.dl-hero__fade--bottom { display: none; }
.dl-hero__copy { position: absolute; left: 141px; top: 58px; width: 1062px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.dl-hero__lead { min-width: 560px; white-space: nowrap; text-align: center; font-size: 28px; font-weight: 700; line-height: 1.2; letter-spacing: .06em; color: #2e2a2e; }
.dl-hero__lead em { color: var(--rose); }
.dl-hero__catch { display: flex; flex-direction: column; font-weight: 900; text-shadow: 0 0 6px #fff, 0 0 14px rgba(255,255,255,.9), 0 3px 6px rgba(26,77,71,.18); }
.dl-hero__catch .is-1 { font-size: 120px; line-height: 1.25; letter-spacing: 2.88px; color: #e5614d; }
.dl-hero__catch .is-2 { font-size: 97px; line-height: 1.07; letter-spacing: -.97px; color: #1c7d75; }
.dl-hero__row { display: flex; align-items: center; gap: 24px; }
.dl-hero__cta { width: 520px; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 16px 20px 20px; background: rgba(255,255,255,.85); border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,.08); }
.dl-hero__cta > a { width: 480px; }
.dl-hero__points { width: 500px; display: flex; justify-content: center; gap: 14px; }
.dl-hero__points li {
	width: 150px; height: 150px; border-radius: 50%; background: #fff; border: 4px solid var(--teal); box-shadow: 0 6px 16px rgba(26,89,84,.18);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-weight: 700; line-height: 1.2;
}
.dl-hero__points b { font-size: 27px; color: var(--teal); }
.dl-hero__points small { font-size: 22px; color: var(--coral); }
.dl-hero__points li:nth-child(2) small { color: var(--teal); }
.dl-hero__points li:nth-child(2) b { color: var(--coral); }
.dl-hero__wave { position: absolute; left: 0; bottom: -9px; width: 100%; height: 46px; z-index: 2; }
@media (min-width: 1441px) {
	.dl-hero__photo { -webkit-mask-image: linear-gradient(to left, transparent 0, #000 80px); mask-image: linear-gradient(to left, transparent 0, #000 80px); }
}
@media (min-width: 768px) and (max-width: 1439px) { .dl-hero__stage { zoom: .88; } }
@media (min-width: 768px) and (max-width: 1279px) { .dl-hero__stage { zoom: .78; } }
@media (min-width: 768px) and (max-width: 1119px) { .dl-hero__stage { zoom: .68; } }
@media (min-width: 768px) and (max-width: 979px) { .dl-hero__stage { zoom: .56; } }

/* ---------- 診療プラン一覧（FV下） ---------- */
.dl-band--first .dl-in { gap: 16px; align-items: center; }
.dl-pmini { display: flex; gap: 20px; width: 100%; padding: 0 8px; }
.dl-pmini__card { flex: 1 1 0; min-width: 0; min-height: 218px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 16px; padding: 24px; background: #fff; border: 1px solid var(--border); border-radius: 8px; }
.dl-pmini__top { display: flex; align-items: center; gap: 18px; width: 100%; }
.dl-pmini__photo { width: 104px; height: 104px; border-radius: 50%; flex-shrink: 0; }
.dl-pmini__box { position: relative; width: 107px; height: 86px; flex-shrink: 0; overflow: hidden; }
.dl-pmini__box img { width: 100%; height: 100%; object-fit: cover; }
.dl-pmini__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; line-height: 1.4; }
.dl-pmini__ttl { font-size: 22px; font-weight: 700; color: var(--blue); }
.dl-pmini__desc { font-size: 16px; }
.dl-pmini__price { font-size: 15px; font-weight: 700; color: var(--teal); }
.dl-pmini__btn {
	display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 52px; padding: 0 18px 0 20px;
	background: var(--coral); border-radius: 14px; box-shadow: 0 5px 0 rgba(191,89,13,.55); color: #fff; font-size: 18px; font-weight: 700; white-space: nowrap;
	transition: transform .15s, box-shadow .15s;
}
.dl-pmini__btn:hover { transform: translateY(3px); box-shadow: 0 2px 0 rgba(191,89,13,.55); }
.dl-down { width: 22px; height: 14px; background: url(../img/dept/common/icon-chevron-white.svg) center / 14px 22px no-repeat; transform: rotate(90deg); }

/* ---------- 特長 ---------- */
.dl-feat { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.dl-feat__card { display: flex; flex-direction: column; padding: 16px 16px 4px; background: #fff; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.dl-feat__img { position: relative; display: block; height: 120px; border-radius: 8px; background: #f3f9f8; overflow: hidden; }
.dl-feat__img img { position: absolute; width: 169.31%; height: 222.22%; left: -34.66%; top: -61.11%; max-width: none; }
.dl-feat__ttl { display: flex; align-items: center; gap: 10px; padding: 14px 4px 0; font-size: 18px; font-weight: 700; line-height: 1.4; color: var(--coral); }
.dl-feat__ttl span { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; background: var(--coral); color: #fff; font-size: 14px; line-height: 1; }
.dl-feat__txt { padding: 8px 4px 16px; font-size: 14px; line-height: 1.65; color: #333; }

.dl-3step { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 28px 24px; background: #fff; border-radius: 12px; }
.dl-3step__ttl { font-size: 26px; font-weight: 700; line-height: 1.3; }
.dl-3step__ttl b { font-size: 40px; color: #1f857e; }
.dl-3step__ttl span { color: #1f857e; }
.dl-3step__list { display: flex; align-items: center; gap: 28px; width: 100%; }
.dl-3step__list li { position: relative; flex: 1 1 0; min-width: 0; display: flex; align-items: center; gap: 14px; padding: 14px; background: #edf7f5; border-radius: 10px; }
.dl-3step__list li + li::before { content: ""; position: absolute; left: -18px; top: 50%; width: 8px; height: 18px; margin-top: -9px; background: url(../img/dept/common/step-arrow.svg) center / contain no-repeat; }
.dl-3step__shot { flex-shrink: 0; width: 64px; height: 100px; overflow: hidden; }
.dl-3step__shot img { width: 64px; height: auto; }
.dl-3step__txt { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; font-size: 13px; line-height: 1.6; color: #333; }
.dl-3step__txt small { padding: 2px 10px; border-radius: 999px; background: var(--teal); color: #fff; font-size: 12px; font-weight: 700; line-height: 1.4; }
.dl-3step__txt b { font-size: 18px; line-height: 1.4; color: var(--teal); }
.dl-3step__line { display: flex; flex-direction: column; align-items: center; gap: 12px; padding-top: 8px; }
.dl-3step__line p { font-size: 20px; font-weight: 700; line-height: 1.4; text-align: center; }

/* ---------- 対応症状 ---------- */
#symptom .dl-in { gap: 20px; }
.dl-symp { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.dl-symp li { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 10px 12px 12px; background: #fff; border: 1px solid #e7b8c6; border-radius: 6px; text-align: center; }
.dl-symp img { width: 144px; height: 96px; object-fit: contain; margin-bottom: 8px; }
.dl-symp h3 { font-size: 16px; font-weight: 700; line-height: 1.4; color: var(--rose); }
.dl-symp p { font-size: 12.5px; line-height: 1.5; color: #444; }

/* ---------- 2つの診療プラン ---------- */
.dl-plans { padding: 40px 32px 44px; align-items: center; }
.dl-plans__sub { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-top: -16px; font-size: 18px; line-height: 1.6; letter-spacing: .04em; color: #555; text-align: center; }
.dl-plans__sub::after { content: ""; width: 52px; height: 4px; background: linear-gradient(90deg, var(--blue) 0 32px, transparent 32px 36px, var(--pinkbar) 36px); border-radius: 2px; }
.dl-plan { width: 100%; max-width: 936px; display: flex; flex-direction: column; gap: 20px; padding: 28px; background: #fff; border: 1px solid var(--border); border-radius: 12px; }
.dl-plan__head { display: flex; align-items: center; gap: 28px; padding-top: 4px; }
.dl-plan__photo { flex-shrink: 0; width: 160px; height: 160px; border-radius: 50%; border: 6.667px solid #c3e3de; background: #fff; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.dl-plan__photo img { width: 100%; height: 100%; object-fit: cover; }
.dl-plan.is-set .dl-plan__photo { border-color: #cfe6c8; }
.dl-plan.is-set .dl-plan__photo img { object-fit: contain; }
.dl-plan__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.dl-plan__label { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.dl-plan__no { padding: 4px 14px; border-radius: 999px; background: var(--coral); color: #fff; font-size: 22px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.dl-plan__tag { display: flex; align-items: center; gap: 6px; min-height: 36px; padding: 5px 14px 5px 12px; border-radius: 4px; background: rgba(61,127,122,.1); color: var(--coral); font-size: 22px; font-weight: 700; line-height: 1.2; }
.dl-plan__tag::before { content: ""; width: 13px; height: 10px; flex-shrink: 0; background: url(../img/dept/common/icon-check.svg) center / contain no-repeat; }
.dl-plan.is-set .dl-plan__tag { background: rgba(0,132,57,.1); }
.dl-plan__ttl { display: flex; align-items: center; gap: 12px; padding-bottom: 8px; border-bottom: 2px solid var(--coral); font-size: 24px; font-weight: 700; line-height: 1.4; letter-spacing: .04em; }
.dl-plan__ttl::before { content: ""; width: 6px; height: 28px; background: var(--coral); flex-shrink: 0; }
.dl-plan.is-set .dl-plan__ttl { border-color: var(--teal-d); }
.dl-plan__desc { font-size: 16px; line-height: 1.8; }
.dl-plan__info { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.dl-plan__info > div { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 4px; background: #fff; border: 1px solid var(--border); border-radius: 6px; font-weight: 700; line-height: 1.4; text-align: center; }
.dl-plan__info dt { font-size: 16px; color: #545454; }
.dl-plan__info dd { margin: 0; font-size: 21px; color: var(--coral); }
.dl-plan__info a { color: var(--teal-l); text-decoration: underline; text-underline-offset: 3px; }
.dl-plan__cta { display: flex; justify-content: center; padding-top: 4px; }
.dl-fee { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 8px; font-size: 18px; font-weight: 700; line-height: 1.4; }
.dl-fee b { font-size: 30px; line-height: 1.2; color: #e0654f; }
.dl-fee__row { display: inline-flex; align-items: center; gap: 12px; white-space: nowrap; }
.dl-swipe { font-size: 13px; font-weight: 500; color: #666; text-align: center; }
.dl-swipe--left { text-align: left; }
.dl-docs { display: flex; flex-direction: column; gap: 24px; }
.dl-sets { display: flex; gap: 16px; }
.dl-set { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 16px; padding: 24px 14px; border: 1px solid var(--border); border-radius: 8px; }
.dl-set__ttl { display: flex; align-items: center; justify-content: center; gap: 6px; line-height: 1.3; }
.dl-set__ttl img { width: 36px; height: 36px; }
.dl-set__ttl b { font-size: 19px; color: var(--rose); }
.dl-set__ttl small { font-size: 13px; font-weight: 700; }
.dl-set__box { display: flex; flex-direction: column; gap: 8px; padding: 12px 10px; border-radius: 6px; background: #e6f4f2; }
.dl-set__box.is-premium { background: #fceaf0; }
.dl-set__name { font-size: 16px; font-weight: 700; line-height: 1.4; color: var(--teal); }
.dl-set__box.is-premium .dl-set__name { color: var(--rose); }
.dl-set__items { font-size: 14px; font-weight: 700; line-height: 1.6; color: #333; }
.dl-set__price { display: flex; align-items: center; gap: 4px; padding: 6px 8px 6px 10px; border-radius: 4px; background: #fff; }
.dl-set__price span { flex: 1; font-size: 13px; font-weight: 700; line-height: 1.4; color: #444; }
.dl-set__price b { font-size: 21px; line-height: 1.2; }
.dl-set__price small { font-size: 10px; line-height: 1.4; color: #444; }
.dl-set__btn { margin-top: auto; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 0; border-radius: 999px; background: var(--coral); color: #fff; font-size: 16px; font-weight: 700; line-height: 1.4; transition: opacity .15s; }
.dl-set__btn b { font-size: 20px; line-height: 1; }
.dl-set__btn:hover { opacity: .85; }
.dl-note--plan { line-height: 1.7; }
.dl-note--plan + .dl-note--plan { margin-top: 0; }

/* ---------- 処方できるお薬の例 ---------- */
.dl-med { gap: 32px; }
.dl-h2__sub { display: block; font-size: 24px; }
.dl-med__card { display: flex; flex-direction: column; gap: 28px; padding: 32px 40px; background: #fff; border: 1px solid var(--border); border-radius: 8px; }
.dl-med__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dl-med__chips a { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 8px 16px; border: 1px solid var(--teal); border-radius: 4px; background: #fff; color: var(--teal); font-size: 15px; line-height: 1.4; white-space: nowrap; transition: background .15s; }
.dl-med__chips a:hover { background: #eef8f6; }
.dl-med__cat-ttl { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 2px solid var(--teal); font-size: 22px; font-weight: 700; line-height: 1.4; color: var(--teal); }
.dl-med__cat-ttl small { font-size: 15px; font-weight: 400; color: #666; }
.dl-med__list { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px 12px; padding-top: 16px; }
.dl-med__list li { display: flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; text-align: center; background: #fff; transition: border-color .15s, box-shadow .15s; }
.dl-med__list li:hover { border-color: var(--teal); box-shadow: 0 2px 8px rgba(43,150,143,.18); }
.dl-med__list a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding-bottom: 10px; color: inherit; }
.dl-med__list a:hover .dl-med__name { color: var(--teal); text-decoration: underline; }
.dl-med__name, .dl-med__price { display: block; }
.dl-med__list img { width: 100%; height: 81px; object-fit: contain; }
.dl-med__name { padding: 0 4px; font-size: 14px; font-weight: 700; line-height: 1.4; }
.dl-med__price { font-size: 13px; line-height: 23px; color: #737878; }
.dl-med__price b { font-size: 17px; color: var(--rose); }
.dl-med__est { display: flex; flex-direction: column; align-items: center; gap: 12px; padding-top: 8px; }
.dl-med__est p { font-size: 20px; font-weight: 700; line-height: 1.4; text-align: center; }
.dl-decided { position: relative; display: flex; flex-direction: column; gap: 24px; padding: 24px; background: #fff; border: 1px solid var(--border); border-radius: 8px; }
.dl-decided__top { display: flex; align-items: center; gap: 24px; }
.dl-decided__img { flex-shrink: 0; width: 180px; height: 145px; }
.dl-decided__img img { width: 100%; height: 100%; object-fit: cover; }
.dl-decided__txt { display: flex; flex-direction: column; gap: 8px; }
.dl-decided__txt h3 { font-size: 20px; font-weight: 700; line-height: 1.5; letter-spacing: .04em; color: var(--rose); }
.dl-decided__txt p { font-size: 18px; line-height: 1.7; letter-spacing: .04em; }
.dl-decided__deco { position: absolute; left: 606px; bottom: 105px; width: 168px; height: 56px; opacity: .9; pointer-events: none; }
.dl-decided__btn {
	position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 8px; height: 78px; padding: 14px 12px 14px 14px;
	border-radius: 999px; background: var(--coral); box-shadow: 0 3px 0 #d9611a; color: #fff; font-size: 28px; font-weight: 700; line-height: 1.3;
	transition: transform .15s, box-shadow .15s;
}
.dl-decided__btn img:first-child { width: 26px; height: 26px; }
.dl-decided__btn img:last-child { width: 20px; height: 20px; }
.dl-decided__btn:hover { transform: translateY(2px); box-shadow: 0 1px 0 #d9611a; }

/* ---------- ご利用方法（スライダー） ---------- */
#flow .dl-in { gap: 16px; }
#flow .dl-lead { line-height: 1.7; }
.dl-flow { display: flex; flex-direction: column; gap: 16px; }
.dl-flow__track { display: flex; gap: 20px; padding: 8px 0 12px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.dl-flow__track::-webkit-scrollbar { display: none; }
.dl-flow__card { flex: 0 0 300px; height: 420px; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; scroll-snap-align: start; }
.dl-flow__shot { position: relative; height: 230px; flex-shrink: 0; background: #f1f7f6; }
.dl-flow__shot img { position: absolute; top: 22px; left: 50%; width: auto; height: 196px; transform: translateX(-50%); }
.dl-flow__no { position: absolute; z-index: 1; left: 16px; top: 16px; width: 60px; height: 60px; border-radius: 50%; background: var(--teal-d); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 28px; font-weight: 700; line-height: 1.1; letter-spacing: .04em; }
.dl-flow__no small { font-size: 12px; letter-spacing: .1em; }
.dl-flow__txt { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 20px 22px; }
.dl-flow__txt h3 { font-size: 20px; font-weight: 700; line-height: 1.4; color: var(--teal); white-space: nowrap; }
.dl-flow__txt p { font-size: 15px; line-height: 1.7; }
.dl-flow__ctrl { display: flex; align-items: center; justify-content: center; gap: 24px; }
.dl-flow__prev, .dl-flow__next { position: relative; width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--teal) !important; background: #fff !important; transition: opacity .15s; }
.dl-flow__next { background: var(--teal) !important; }
.dl-flow__prev::before, .dl-flow__next::before { content: ""; position: absolute; top: 50%; left: 50%; width: 11px; height: 11px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); border-radius: 1px; transform: translate(-30%, -50%) rotate(45deg); }
.dl-flow__next::before { border-color: #fff; transform: translate(-70%, -50%) rotate(-135deg); }
.dl-flow__prev:disabled, .dl-flow__next:disabled { opacity: .5; cursor: default; }
.dl-flow__dots { display: flex; gap: 10px; }
.dl-flow__dots button { width: 10px; height: 10px; border-radius: 5px; background: #d3e5e2 !important; transition: width .2s, background .2s; }
.dl-flow__dots button.is-on { width: 28px; background: var(--teal) !important; }

/* ---------- 料金 ---------- */
.dl-ptable { width: 100%; table-layout: fixed; background: #fff; border: 1px solid #cfe3df; }
.dl-ptable th, .dl-ptable td { border: 1px solid #cfe3df; padding: 16px; font-size: 17px; line-height: 1.5; letter-spacing: .02em; text-align: center; vertical-align: middle; color: #333; }
.dl-ptable thead td, .dl-ptable tbody th { width: 200px; background: #f1f7f6; }
.dl-ptable--opt td { padding: 16px; }
.dl-ptable tbody th { padding: 16px 20px; font-weight: 700; color: #222; text-align: left; }
.dl-ptable thead th b { display: block; font-size: 20px; line-height: 1.4; }
.dl-ptable thead th small { display: block; margin-top: 4px; font-size: 15px; font-weight: 400; color: #444; }
.dl-ptable thead th.is-set { background: #fce4eb; color: var(--rose); }
.dl-ptable thead th.is-consult { background: #e2f3e3; color: var(--green); }
.dl-ptable strong { font-size: 22px; letter-spacing: .02em; }
.dl-ptable strong.is-set { color: var(--rose); }
.dl-ptable strong.is-consult { color: var(--green); }
.dl-ptable a { color: var(--teal-l); text-decoration: underline; text-underline-offset: 3px; }
.dl-pnotes { font-size: 16px; line-height: 1.7; letter-spacing: .04em; color: #555; }
.dl-hours { display: flex; gap: 16px; }
.dl-hours__card { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px 16px; background: #fff; border: 1px solid #cfe3df; border-radius: 8px; }
.dl-hours__badge { padding: 6px 16px; border-radius: 4px; background: var(--teal-d); color: #fff; font-size: 18px; font-weight: 700; line-height: 1.3; letter-spacing: .02em; }
.dl-hours__card.is-night .dl-hours__badge { background: #555; }
.dl-hours__card p { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 30px; line-height: 1.3; letter-spacing: .02em; }
.dl-hours__card img { width: 34px; height: 34px; }
.dl-linenote { padding: 16px; border-radius: 8px; background: #f2faf3; color: var(--green); font-size: 20px; font-weight: 700; line-height: 1.3; letter-spacing: .02em; text-align: center; }
.dl-list li { font-size: 17px; font-weight: 700; line-height: 1.8; color: #333; }
.dl-list .is-wine { color: #a83359; }
.dl-list-note { margin-top: -24px; font-size: 15px; line-height: 1.8; color: #545454; }
.dl-list-note.is-bold { font-size: 17px; font-weight: 700; color: #333; }

/* ---------- 医師紹介 ---------- */
.dl-doc { position: relative; display: flex; align-items: flex-start; gap: 24px; padding: 24px 24px 32px; background: #fff; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.dl-doc__photo { flex-shrink: 0; width: 200px; height: 250px; border-radius: 8px; object-fit: cover; }
.dl-doc__photo.is-ph { display: flex; align-items: center; justify-content: center; background: #f1ece4; color: #8a7a66; font-size: 16px; line-height: 1.5; letter-spacing: .04em; text-align: center; }
.dl-doc__info { position: relative; z-index: 1; flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.dl-doc__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.dl-doc__tags span { padding: 4px 10px; border-radius: 4px; background: #e6f4f2; color: var(--teal-d); font-size: 14px; font-weight: 700; line-height: 1.3; letter-spacing: .04em; }
.dl-doc__role { font-size: 16px; line-height: 1.5; letter-spacing: .04em; color: #555; }
.dl-doc__name { font-size: 26px; font-weight: 700; line-height: 1.4; letter-spacing: .04em; }
.dl-doc__txt { font-size: 17px; line-height: 1.7; letter-spacing: .04em; }
.dl-doc__career { display: flex; flex-direction: column; gap: 4px; padding: 12px; border-radius: 4px; background: #f1f7f6; font-size: 16px; line-height: 1.6; letter-spacing: .04em; }
.dl-doc__career b { line-height: 1.5; }
.dl-deco { position: absolute; right: 7px; bottom: -5px; width: 189px; height: 63px; opacity: .9; pointer-events: none; }
.dl-deco--blue { width: 168px; height: 56px; }

/* ---------- 提携クリニック ---------- */
.dl-clinic { position: relative; display: flex; gap: 24px; padding: 24px 24px 32px; background: #fff; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.dl-clinic__photo { flex-shrink: 0; width: 300px; height: 200px; border-radius: 8px; object-fit: cover; }
.dl-clinic__info { position: relative; z-index: 1; flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; font-size: 17px; line-height: 1.7; letter-spacing: .04em; }
.dl-clinic__info h3 { font-size: 22px; font-weight: 700; line-height: 1.5; color: var(--teal-d); }
.dl-clinic__addr { font-size: 16px; color: #555; }
.dl-clinic__more { display: inline-flex; align-items: center; gap: 12px; padding: 14px 24px; background: #fff; border: 1.5px solid var(--teal-d); border-radius: 2px; color: var(--teal-d); font-size: 17px; line-height: 1.3; letter-spacing: .02em; transition: background .15s; }
.dl-clinic__more:hover { background: #f1f7f6; }
.dl-clinic__more img { width: 16px; height: 16px; }

/* ---------- 下部CTA ---------- */
.dl-ctab { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; gap: 24px; padding: 56px 20px; background: #f1f7f6; text-align: center; }
.dl-ctab > *:not(.dl-ctab__deco):not(.dl-ctab__penguin) { position: relative; z-index: 1; }
.dl-ctab__ttl { font-size: 36px; font-weight: 700; line-height: 1.4; letter-spacing: .04em; color: #c95a48; }
.dl-ctab__lead { font-size: 18px; line-height: 1.6; letter-spacing: .04em; color: #c95a48; }
.dl-ctab__btns { display: flex; align-items: flex-start; gap: 24px; }
.dl-ctab__line, .dl-ctab__guide { display: flex; align-items: center; justify-content: center; gap: 16px; border-radius: 8px; text-align: left; transition: opacity .15s; }
.dl-ctab__line:hover, .dl-ctab__guide:hover { opacity: .88; }
.dl-ctab__line { padding: 22px 48px; background: var(--coral); border: 3px solid #fff; color: #fff; }
.dl-ctab__line img:first-child { width: 40px; height: 40px; }
.dl-ctab__line img:last-child { width: 28px; height: 28px; }
.dl-ctab__line span, .dl-ctab__guide span { display: flex; flex-direction: column; gap: 2px; font-size: 28px; font-weight: 700; line-height: 1.3; letter-spacing: .04em; white-space: nowrap; }
.dl-ctab__line small, .dl-ctab__guide small { font-size: 16px; font-weight: 400; }
.dl-ctab__guide { gap: 12px; padding: 22px 40px; background: #fff; color: var(--teal-d); }
.dl-ctab__guide i { width: 28px; height: 28px; background: url(../img/dept/common/icon-chevron-teal-28.svg) center / contain no-repeat; }
.dl-ctab__deco { position: absolute; bottom: -4px; width: 378px; height: 126px; opacity: .55; pointer-events: none; }
.dl-ctab__deco--l { left: 8px; }
.dl-ctab__deco--r { right: 8px; }
.dl-ctab__penguin { position: absolute; z-index: 1; left: calc(50% - 567px); top: -6px; width: 149px; height: 156px; }
@media (max-width: 1239px) { .dl-ctab__penguin { display: none; } }

/* ==========================================================================
   タブレット（768〜1039px）：1000pxの段組みを詰める
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1039px) {
	.dl-blob, .dl-ring { display: none; }
	.dl-feat { grid-template-columns: repeat(2, 1fr); }
	.dl-ctapair__btns { flex-direction: column; gap: 14px; }
	.dl-3step__list { flex-direction: column; gap: 22px; }
	.dl-3step__list li { width: 100%; }
	.dl-3step__list li + li::before { left: 50%; top: -20px; margin: 0 0 0 -4px; transform: rotate(90deg); }
	.dl-symp { grid-template-columns: repeat(3, 1fr); }
	.dl-plans { padding: 32px 0; }
	.dl-sets { flex-direction: column; }
	.dl-plan__info { grid-template-columns: repeat(2, 1fr); }
	.dl-med__card { padding: 28px 24px; }
	.dl-med__list { grid-template-columns: repeat(4, 1fr); }
	.dl-decided__deco { display: none; }
	.dl-decided__btn { font-size: 22px; }
	.dl-seccta__btn { font-size: 22px; }
	.dl-ctab__btns { flex-direction: column; align-items: center; }
	.dl-pmini__desc { font-size: 14px; }
}

/* ==========================================================================
   SP（〜767px）  Figma 5506:529
   ========================================================================== */
@media (max-width: 767px) {
	.dl-sec { padding: 32px 0; scroll-margin-top: 90px; }
	.dl-sec[id], #plan-1, #plan-2, #medicine, .dl-med__cat { scroll-margin-top: 90px; }
	.dl-in { width: calc(100% - 32px); }
	.dl-band--dots { background-image: none; }
	.dl-band--white { background: none; }
	.dl-band--white::before, .dl-band--white::after, .dl-blob, .dl-ring { display: none; }
	.dl-band--first { padding-top: 32px; }

	.dl-h2__ttl { font-size: 18px; }
	.dl-h2--sm { gap: 8px; }
	.dl-h2--sm .dl-h2__ttl { font-size: 18px; }
	.dl-h2--plan .dl-h2__ttl { font-size: 22px; letter-spacing: .04em; }
	.dl-h2__sub { display: inline; font-size: inherit; }
	.dl-marker::before { top: 13px; height: 10px; }
	.dl-h3 { font-size: 19px; }
	.dl-lead, .dl-lead--lg { font-size: 16px; letter-spacing: .04em; }
	.dl-note { font-size: 16px; }

	/* ボタン */
	.dl-btn-new, .dl-btn-repeat { height: auto; min-height: 62px; padding: 14px 12px 14px 14px; gap: 10px; }
	.dl-btn-new__txt { font-size: 16px; }
	.dl-btn-repeat__txt { font-size: 16px; }
	.dl-btn-repeat__txt small { font-size: 14px; }
	.dl-ctapair { width: 100%; padding: 18px 24px 22px; }
	.dl-ctapair__cap { font-size: 16px; }
	.dl-ctapair__btns { flex-direction: column; gap: 16px; width: 100%; max-width: 295px; }
	.dl-ctapair__btns > a, .dl-ctapair--in .dl-ctapair__btns > a { width: 100%; max-width: none; flex: none; }
	.dl-btn-line { width: 295px; height: auto; padding: 14px 0; }
	.dl-btn-line span { font-size: 16px; }
	.dl-btn-line b { font-size: 19px; }
	.dl-btn-pill, .dl-btn-outline { width: 100%; height: auto; padding: 12px 0; font-size: 14px; gap: 6px; }
	.dl-btn-pill b, .dl-btn-outline b { font-size: 18px; }
	.dl-seccta { width: 100%; margin-top: 0; padding: 24px 12px 28px; background: none; box-shadow: none; }
	.dl-seccta__catch { font-size: 18px; }
	.dl-seccta__btn { padding: 14px; gap: 12px; font-size: 16px; line-height: 1.3; }
	.dl-seccta__btn img:first-child, .dl-seccta__btn img:last-child { width: 22px; height: 22px; }

	/* FV：Figma（375px）の配置をそのまま画面幅に合わせて拡大縮小（--u = 1px@375） */
	.dl-hero { --u: calc(100vw / 375); }
	.dl-hero__stage { width: 100%; height: calc(var(--u) * 619); padding: 0; }
	.dl-hero__deco, .dl-hero__wave { display: none; }
	.dl-hero__photo { left: calc(var(--u) * 86); right: auto; top: calc(var(--u) * -36); width: calc(var(--u) * 300); height: calc(var(--u) * 404.19); }
	.dl-hero__fade--top { left: 0; top: 0; width: calc(var(--u) * 386); height: calc(var(--u) * 110); }
	.dl-hero__fade--left { left: calc(var(--u) * 70); top: calc(var(--u) * 60); width: calc(var(--u) * 120); height: calc(var(--u) * 424.19); }
	.dl-hero__fade--bottom { display: block; left: calc(var(--u) * 77); top: calc(var(--u) * 286); width: calc(var(--u) * 300); height: calc(var(--u) * 90); background: linear-gradient(180deg, rgba(246,251,250,0) 0%, #f6fbfa 100%); }
	.dl-hero__copy { position: static; width: auto; gap: 0; }
	.dl-hero__lead { position: absolute; z-index: 1; left: calc(var(--u) * 26); top: calc(var(--u) * 39); min-width: 0; width: auto; white-space: nowrap; text-align: left; font-size: calc(var(--u) * 18); line-height: 1.6; letter-spacing: 0; text-shadow: 0 0 6px #fff, 0 0 14px rgba(255,255,255,.9); }
	.dl-hero__catch { position: absolute; z-index: 1; left: calc(var(--u) * 22); top: calc(var(--u) * 149); margin: 0; white-space: nowrap; }
	.dl-hero__catch .is-1 { font-size: calc(var(--u) * 53); line-height: calc(var(--u) * 52); letter-spacing: calc(var(--u) * 2.88); }
	.dl-hero__catch .is-2 { font-size: calc(var(--u) * 48); line-height: calc(var(--u) * 52); letter-spacing: calc(var(--u) * -.48); }
	.dl-hero__row { position: static; display: block; }
	.dl-hero__points { position: absolute; z-index: 1; left: calc(var(--u) * 12); top: calc(var(--u) * 270.44); width: calc(var(--u) * 351); max-width: none; gap: calc(var(--u) * 9.83); }
	.dl-hero__points li { width: calc(var(--u) * 105.3); height: calc(var(--u) * 105.3); border-width: calc(var(--u) * 2.81); gap: calc(var(--u) * 2.81); box-shadow: 0 calc(var(--u) * 4.2) calc(var(--u) * 11.2) rgba(26,89,84,.18); }
	.dl-hero__points b { font-size: calc(var(--u) * 18.95); }
	.dl-hero__points small { font-size: calc(var(--u) * 15.44); }
	.dl-hero__cta { position: absolute; z-index: 1; left: calc(var(--u) * 12); top: calc(var(--u) * 399); width: calc(var(--u) * 351); max-width: none; gap: calc(var(--u) * 10); padding: calc(var(--u) * 12) calc(var(--u) * 12) calc(var(--u) * 14); border-radius: calc(var(--u) * 14); background: rgba(255,255,255,.92); }
	.dl-hero__cta .dl-ctapair__cap { font-size: calc(var(--u) * 13); }
	.dl-hero__cta > a { width: 100%; min-height: 0; height: auto; gap: calc(var(--u) * 16); padding: calc(var(--u) * 14) calc(var(--u) * 12) calc(var(--u) * 14) calc(var(--u) * 14); border-radius: calc(var(--u) * 14); }
	.dl-hero__cta .dl-btn-new > img:first-child, .dl-hero__cta .dl-capsule { width: calc(var(--u) * 34); height: calc(var(--u) * 34); }
	.dl-hero__cta .dl-capsule i { left: calc(var(--u) * 1); top: calc(var(--u) * 9.5); width: calc(var(--u) * 32); height: calc(var(--u) * 15); border-width: calc(var(--u) * 2.4); border-radius: calc(var(--u) * 7.5); }
	.dl-hero__cta .dl-chev { width: calc(var(--u) * 14); height: calc(var(--u) * 22); }
	.dl-hero__cta .dl-btn-new__txt { font-size: calc(var(--u) * 17); }
	.dl-hero__cta .dl-btn-repeat__txt { font-size: calc(var(--u) * 17); }
	.dl-hero__cta .dl-btn-repeat__txt small { font-size: calc(var(--u) * 11); }

	/* 診療プラン一覧 */
	.dl-band--first .dl-in { gap: 12px; }
	.dl-pmini { flex-direction: column; gap: 12px; padding: 0; }
	.dl-pmini__card { flex: none; min-height: 0; gap: 14px; padding: 18px 16px; border-radius: 10px; }
	.dl-pmini__top { gap: 12px; }
	.dl-pmini__photo { width: 64px; height: 64px; }
	.dl-pmini__box { width: 64px; height: 51.556px; }
	.dl-pmini__txt { gap: 4px; }
	.dl-pmini__ttl { font-size: 17px; }
	.dl-pmini__desc { font-size: 16px; line-height: 1.5; }
	.dl-pmini__price { font-size: 16px; }
	.dl-pmini__card.is-set .dl-pmini__price { color: #2e8b57; }
	.dl-pmini__btn { height: 44px; padding: 11px 0; gap: 6px; border-radius: 8px; font-size: 14px; }
	.dl-pmini__btn::after { content: "›"; font-size: 16px; }
	.dl-pmini__btn .dl-down { display: none; }

	/* 特長 */
	.dl-feat { grid-template-columns: 1fr; gap: 12px; }
	.dl-feat__card { display: grid; grid-template-columns: 96px 1fr; grid-template-areas: "ttl ttl" "img txt"; gap: 8px 12px; align-items: center; padding: 12px; }
	.dl-feat__img { grid-area: img; width: 96px; height: 88px; }
	.dl-feat__img img { width: 262.84%; height: 161.29%; left: -81.42%; top: -30.65%; }
	.dl-feat__ttl { grid-area: ttl; padding: 0; }
	.dl-feat__txt { grid-area: txt; padding: 0; font-size: 16px; }
	.dl-3step { padding: 28px 24px; }
	.dl-3step__ttl { font-size: 21px; }
	.dl-3step__ttl b { font-size: 24px; }
	.dl-3step__list { flex-direction: column; gap: 22px; }
	.dl-3step__list li { width: 100%; align-items: center; }
	.dl-3step__list li + li::before { left: 50%; top: -20px; margin: 0 0 0 -4px; transform: rotate(90deg); }
	.dl-3step__shot { width: 51.67px; height: 80.73px; }
	.dl-3step__shot img { width: 51.67px; }
	.dl-3step__txt { font-size: 16px; }
	.dl-3step__txt b { font-size: 16px; }
	.dl-3step__line { width: 100%; max-width: 295px; }
	.dl-3step__line p { font-size: 16px; text-align: left; }

	/* 症状 */
	.dl-symp { grid-template-columns: repeat(2, 1fr); gap: 12px 10px; }
	.dl-symp li { padding: 10px 8px 12px; }
	.dl-symp img { width: 99px; height: 66px; margin-bottom: 6px; }
	.dl-symp h3 { font-size: 14px; }

	/* プラン */
	.dl-plans { width: 100%; padding: 40px 0 44px; }
	.dl-plans__sub { font-size: 16px; }
	.dl-plan { padding: 28px 15px; }
	.dl-plan__head { flex-direction: column; gap: 14px; }
	.dl-plan__photo { width: 110px; height: 110px; border-width: 2.91px; }
	.dl-plan__body { width: 100%; }
	.dl-plan__label { gap: 6px 8px; }
	.dl-plan__no { font-size: 18px; }
	.dl-plan__tag { width: 100%; min-height: 24px; font-size: 12px; }
	.dl-plan__ttl { font-size: 19px; }
	.dl-plan__ttl::before { width: 5px; height: 22px; }
	.dl-plan__info { grid-template-columns: repeat(2, 1fr); gap: 8px; }
	.dl-plan__info dt { font-size: 14px; }
	.dl-plan__info dd { font-size: 16px; }
	.dl-plan__info a { font-size: 14px; }
	.dl-fee { flex-direction: column; gap: 6px; font-size: 16px; text-align: center; }
	.dl-fee__row { gap: 10px; }
	.dl-fee b { font-size: 26px; }
	.dl-swipe { margin-bottom: -4px; }
	/* セットプランは横スライド */
	.dl-sets { flex-direction: row; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.dl-sets::-webkit-scrollbar { display: none; }
	.dl-set { flex: 0 0 236px; scroll-snap-align: start; padding: 19px 13px 24px; }
	.dl-set__ttl { white-space: nowrap; gap: 4px; }
	.dl-set__ttl b { font-size: 15px !important; }
	.dl-set__ttl small { font-size: 12px; }
	.dl-med__cat-ttl { flex-wrap: wrap; row-gap: 0; }
	.dl-set__ttl b { font-size: 16px; }
	.dl-set__name { font-size: 14px; }
	.dl-set__price b { font-size: 16px; }
	.dl-set__btn { padding: 12px 0; font-size: 14px; }
	.dl-set__btn b { font-size: 16px; }
	.dl-note--plan { font-size: 16px; }

	/* お薬 */
	.dl-med__card { padding: 32px 22px; }
	.dl-med__chips { display: grid; grid-template-columns: repeat(2, 1fr); }
	.dl-med__chips a { display: flex; flex-wrap: wrap; height: 52px; padding: 0 6px; gap: 0 2px; font-size: 12px; white-space: normal; text-align: center; line-height: 1.3; }
	.dl-med__chips b { font-size: 13px; }
	.dl-med__cat-ttl { font-size: 18px; }
	.dl-med__cat-ttl small { font-size: 14px; }
	.dl-med__list { grid-template-columns: repeat(3, 1fr); gap: 12px 10px; }
	.dl-med__name { font-size: 14px; }
	.dl-med__price { font-size: 12px; line-height: 21px; }
	.dl-med__price b { font-size: 15px; }
	.dl-med__est { width: 100%; }
	.dl-med__est p { font-size: 16px; }
	.dl-ctapair--in { padding: 18px 12px 22px; }
	.dl-decided { gap: 16px; }
	.dl-decided__top { flex-direction: column; gap: 12px; }
	.dl-decided__img { width: 150px; height: 124px; }
	.dl-decided__txt h3 { font-size: 16px; text-align: center; }
	.dl-decided__txt p { font-size: 16px; }
	.dl-decided__deco { left: auto; right: 1px; bottom: 57px; }
	.dl-decided__btn { height: auto; padding: 14px; font-size: 15px; }
	.dl-decided__btn img:first-child, .dl-decided__btn img:last-child { width: 22px; height: 22px; }

	/* ご利用方法 */
	.dl-flow__no { font-size: 22px; letter-spacing: .04em; }
	.dl-flow__txt h3 { font-size: 16px; }
	.dl-flow__txt p { font-size: 16px; }

	/* 料金 */
	.dl-ptable th, .dl-ptable td, .dl-ptable tbody th { padding: 10px 6px; font-size: 13px; line-height: 1.45; text-align: center; }
	.dl-ptable thead td, .dl-ptable tbody th { width: 72px; font-size: 12px; }
	.dl-ptable thead th b, .dl-ptable thead th small { font-size: 12px; line-height: 1.45; }
	.dl-ptable thead th { height: 56px; }
	.dl-ptable thead th small { display: none; }
	.dl-ptable--opt th { width: 110px !important; }
	.dl-ptable strong { font-size: 13px; }
	.dl-pnotes { font-size: 12px; }
	.dl-hours { flex-direction: column; gap: 10px; }
	.dl-hours__card { flex-direction: row; justify-content: center; padding: 14px 12px; }
	.dl-hours__badge { font-size: 16px; }
	.dl-hours__card p { gap: 6px; font-size: 18px; }
	.dl-hours__card img { width: 24px; height: 24px; }
	.dl-linenote { font-size: 16px; text-align: left; }
	.dl-list li, .dl-list-note, .dl-list-note.is-bold { font-size: 14px; }

	/* 医師 */
	/* 医師紹介は横スライド */
	.dl-docs { flex-direction: row; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.dl-docs::-webkit-scrollbar { display: none; }
	.dl-doc { flex: 0 0 292px; flex-direction: column; gap: 14px; scroll-snap-align: start; }
	.dl-doc__photo.is-ph { width: 200px; height: 250px; font-size: 14px; }
	.dl-doc__info { width: 100%; }
	.dl-doc__tags { gap: 6px 8px; }
	.dl-doc__role { font-size: 14px; }
	.dl-doc__name { font-size: 21px; }
	.dl-doc__txt { font-size: 16px; }
	.dl-doc__career b { font-size: 14px; }

	/* クリニック */
	.dl-clinic { flex-direction: column; gap: 14px; }
	.dl-clinic__photo { width: 100%; height: auto; aspect-ratio: 3 / 2; }
	.dl-clinic__info { font-size: 16px; }
	.dl-clinic__info h3 { font-size: 18px; }
	.dl-clinic__more { align-self: stretch; justify-content: center; padding: 12px 10px; font-size: 13px; }
	.dl-clinic__more img { width: 12px; height: 12px; }

	/* 下部CTA */
	.dl-ctab { overflow: visible; overflow-x: clip; gap: 16px; padding: 40px 16px 48px; background: #f7f3ec; z-index: 2; }
	.dl-ctab__ttl { font-family: var(--f-mincho); font-size: 22px; letter-spacing: .04em; color: #cb5713; }
	.dl-ctab__lead { font-family: var(--f-gothic); font-size: 15px; color: #cb5713; }
	.dl-ctab__btns { flex-direction: column; gap: 12px; width: 100%; }
	.dl-ctab__line, .dl-ctab__guide { justify-content: space-between; width: 100%; padding: 16px 14px 16px 16px; font-family: var(--f-gothic); }
	.dl-ctab__line { background: #ff8437; }
	.dl-ctab__line span, .dl-ctab__guide span { flex: 1; font-size: 20px; letter-spacing: .04em; }
	.dl-ctab__line small, .dl-ctab__guide small { font-size: 13px; }
	.dl-ctab__guide { color: #3f74a6; }
	.dl-ctab__guide i { background-image: url(../img/dept/common/sp-ctab-chevron-blue-28.svg); }
	.dl-ctab__deco { bottom: 0; width: 189px; height: 63px; }
	.dl-ctab__deco--l { left: -10px; }
	.dl-ctab__deco--r { right: -10px; }
	.dl-ctab__penguin { display: block; left: calc(50% - 37px); top: auto; bottom: -8px; width: 64px; height: 68px; z-index: 3; }
}
.dl-hero__photo, .dl-decided__img { display: block; }
