@charset "UTF-8";
/* =========================================================
   お問い合わせエリア（hospital.linkwin.jp の tp-contact / tp-cband--bottom と同じ指定）
   トップ・下層共通。テーマの rem 基準に影響されないよう px 指定のみ
   ========================================================= */
#ldt {
	--tp-blue: #29a9e1;
	--tp-blue-d: #1b8cc4;
	--tp-en: "Josefin Sans", sans-serif;
	--tp-slant: 7vw;
}
#ldt .tp-inner { width: 90%; max-width: 1100px; margin: 0 auto; position: relative; }

/* ---- PHONE / E-MAIL パネル ---- */
#ldt .tp-contact {
	position: relative; background: #1f97d3; color: #fff;
	padding: calc(var(--tp-slant) + 50px) 0 60px; margin-top: calc(var(--tp-slant) * -1);
	clip-path: polygon(0 0, 100% var(--tp-slant), 100% 100%, 0 100%);
}
#ldt .tp-contact__head { display: flex; flex-direction: column; }
#ldt .tp-contact__sub { font-weight: 700; font-size: 15px; line-height: 1.8; color: #fff; }
#ldt .tp-contact__ttl {
	display: flex; align-items: center; gap: 24px; color: #fff; font-weight: 700;
	font-size: clamp(22px, 2.4vw, 32px); line-height: 1.5; text-align: left;
}
#ldt .tp-contact__ttl::after { content: ""; flex: 1; height: 1px; background: rgba(255,255,255,.5); }
#ldt .tp-contact__panels { display: grid; grid-template-columns: 1fr 1fr; margin-top: 40px; }
#ldt .tp-contact__panel {
	position: relative; display: flex; flex-direction: column; justify-content: center;
	aspect-ratio: 1086 / 724; padding: 40px 34px; color: #fff; overflow: hidden; z-index: 0;
	background-image: var(--tp-panels-bg); background-repeat: no-repeat; background-size: 200% 100%;
	text-shadow: 0 2px 10px rgba(0, 50, 100, .45); text-decoration: none;
}
#ldt .tp-contact__panel--phone { background-position: left top; }
#ldt .tp-contact__panel--mail { background-position: right top; }
#ldt .tp-contact__panel::before {
	content: ""; position: absolute; inset: 0; z-index: -1; transition: background .3s;
	background: rgba(20, 95, 165, .32);
}
#ldt .tp-contact__panel:hover::before { background: rgba(20, 95, 165, .12); }
#ldt .tp-contact__en { display: block; width: auto; font-family: var(--tp-en); font-size: clamp(32px, 3.4vw, 46px); font-weight: 600; line-height: 1; letter-spacing: .03em; }
#ldt .tp-contact__ja { display: block; width: auto; margin-top: 8px; font-size: 13px; font-weight: 700; }
#ldt .tp-contact__tel { display: block; width: auto; margin-top: 26px; font-family: var(--tp-en); font-size: clamp(28px, 2.6vw, 36px); font-weight: 600; letter-spacing: .04em; line-height: 1; }
#ldt .tp-contact__hours { display: block; width: auto; margin-top: 8px; font-size: 12px; }
#ldt .tp-contact__arrow { position: absolute; right: 26px; bottom: 26px; width: 46px; height: 46px; border: 1px solid #fff; border-radius: 50%; display: block; }
#ldt .tp-contact__arrow::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 22px; height: 6px;
	border-bottom: 1px solid #fff; border-right: 1px solid #fff; transform: translate(-50%, -75%) skewX(45deg);
}

/* ---- 写真背景のお問合せ帯 ---- */
#ldt .tp-cband {
	position: relative; z-index: 1; width: 100%; overflow: hidden;
	padding: calc(var(--tp-slant) * .5 + 70px) 5vw calc(var(--tp-slant) + 70px);
	background: #dcefff var(--tp-cband-bg) no-repeat right center / cover;
	clip-path: polygon(0 calc(var(--tp-slant) * .5), 100% 0, 100% calc(100% - var(--tp-slant)), 0 100%);
	margin-bottom: calc(var(--tp-slant) * -1);
}
#ldt .tp-cband--bottom {
	clip-path: polygon(0 calc(var(--tp-slant) * .5), 100% 0, 100% 100%, 0 100%);
	margin-bottom: 0; padding-bottom: 150px; margin-top: calc(var(--tp-slant) * -.5);
}
#ldt .tp-cband__en {
	position: absolute; left: 2vw; bottom: calc(var(--tp-slant) - 2vw); display: block; width: auto; z-index: 0;
	font-family: var(--tp-en); font-weight: 300; font-size: clamp(80px, 9vw, 140px); line-height: 1; letter-spacing: .04em;
	color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.75); pointer-events: none;
}
#ldt .tp-cband--bottom .tp-cband__en { bottom: 10px; }
#ldt .tp-cband__inner { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto; display: flex; align-items: center; justify-content: flex-start; gap: 40px; }
#ldt .tp-cband__body { text-align: left; max-width: 640px; }
#ldt .tp-cband__ttl { text-align: left; color: #3c3c3c; font-weight: 500; font-size: clamp(20px, 2vw, 28px); letter-spacing: .06em; line-height: 1.5; }
#ldt .tp-cband__sub { text-align: left; margin-top: 4px; color: #555; font-size: 15px; letter-spacing: .08em; font-weight: 400; line-height: 1.8; }
#ldt .tp-cband__row { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 14px 30px; margin-top: 18px; }
#ldt .tp-cband__telbox { display: flex; align-items: center; gap: 12px; }
#ldt .tp-cband__tel {
	display: inline-flex; align-items: center; gap: 10px; color: #234d9c; font-family: var(--tp-en);
	font-weight: 600; font-size: clamp(32px, 3.4vw, 48px); letter-spacing: .02em; line-height: 1; text-decoration: none;
}
#ldt .tp-cband__tel svg { width: 30px; height: 30px; flex-shrink: 0; }
#ldt .tp-cband__hours { display: inline; width: auto; color: #234d9c; font-size: 12px; white-space: nowrap; }
#ldt .tp-cband__btn {
	display: inline-flex; align-items: center; gap: 12px; padding: 18px 46px; border-radius: 999px;
	background: #d9f53b; color: #1f3d73; font-weight: 700; font-size: 16px; letter-spacing: .06em;
	box-shadow: 0 6px 16px rgba(30,90,120,.15); text-decoration: none; transition: background .3s, transform .3s;
}
#ldt .tp-cband__btn svg { width: 20px; height: 20px; flex-shrink: 0; }
#ldt .tp-cband__btn:hover { background: #e7fb6a; transform: translateY(-2px); }

/* 下層ページ：直前は本文なので上に重ねない */
#ldt.ldt-sub .tp-contact { margin-top: 0; }

@media (max-width: 900px) {
	#ldt .tp-cband__inner { flex-direction: column; gap: 16px; }
}
@media (max-width: 767px) {
	#ldt .tp-contact__panels { grid-template-columns: 1fr; }
	#ldt .tp-contact__panel { padding: 24px 22px; }
	#ldt .tp-contact__ttl::after { display: none; }
	#ldt .tp-cband { padding-top: calc(var(--tp-slant) * .5 + 40px); padding-bottom: calc(var(--tp-slant) + 44px); background-position: 72% center; }
	#ldt .tp-cband::before {
		content: ""; position: absolute; inset: 0; z-index: 0;
		background: linear-gradient(to bottom, rgba(235,246,255,.92) 0%, rgba(235,246,255,.8) 100%);
	}
	#ldt .tp-cband__en { top: 12%; bottom: auto; transform: none; left: 4vw; font-size: 52px; -webkit-text-stroke: 1.5px rgba(255,255,255,.95); }
	#ldt .tp-cband--bottom .tp-cband__en { top: 12%; bottom: auto; }
	#ldt .tp-cband__body { text-align: center; padding-top: 34px; }
	#ldt .tp-cband__ttl, #ldt .tp-cband__sub { text-align: center; }
	#ldt .tp-cband__row { justify-content: center; }
	#ldt .tp-cband__ttl { font-size: 16px; letter-spacing: .02em; }
	#ldt .tp-cband__sub { font-size: 13px; }
	#ldt .tp-cband__telbox { flex-direction: column; gap: 4px; }
	#ldt .tp-cband__btn { padding: 16px 26px; font-size: 14px; width: 100%; justify-content: center; }
}
