@charset "UTF-8";
/* =========================================================
   Linkwin Dental Top  — trump-okinawa.com UI準拠
   ========================================================= */
#ldt, #ldt *, #ldt *::before, #ldt *::after { box-sizing: border-box; }
body.ldt-body { margin: 0; padding: 0; background: #fff; overflow-x: hidden; min-width: 0 !important; width: auto !important; }
#ldt {
	--blue: #53abe0;
	--sky: #67c0f6;
	--mint: #a6f8e2;
	--deep: #297fc1;
	--royal: #2e57bf;
	--ink: #3153ad;
	--navy: #07297f;
	--navy2: #0a2560;
	--text: #1f2a4e;
	--lime: #d7ff31;
	font-family: "Noto Sans JP", sans-serif;
	color: #241913;
	font-size: 16px;
	line-height: 1.6;
	overflow-x: hidden;
}
#ldt img { max-width: 100%; height: auto; vertical-align: bottom; border: 0; }
#ldt a { color: inherit; text-decoration: none; }
#ldt ul, #ldt ol { list-style: none; margin: 0; padding: 0; }
#ldt h1, #ldt h2, #ldt h3, #ldt p, #ldt dl, #ldt dd { margin: 0; }
#ldt .ldt-ico { width: 1.2em; height: 1.2em; flex-shrink: 0; }
#ldt .ldt-arrow { width: .5rem; height: auto; flex-shrink: 0; }
#ldt .en, .ldt-onestop__title, .ldt-data__title, .ldt-concept__title-en, .ldt-works__title,
.ldt-service__bg-title, .ldt-points__label, .ldt-service__label, .ldt-drawer__title,
.ldt-footer__nav-title, .ldt-clients__title { font-family: "Poiret One", sans-serif; }

/* 共通ボタン（trump：水色グラデのピル） */
#ldt .ldt-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 1.25rem;
	background: linear-gradient(135deg, #67c0f6 0%, #54ace1 100%);
	color: #fff; font-weight: 600; font-size: 19px;
	padding: 1.125rem 4.375rem; border-radius: 2.5rem;
	transition: background .3s, transform .3s;
}
#ldt .ldt-btn:hover { background: linear-gradient(135deg, #54ace1 0%, #4398cb 100%); }

/* 出現アニメ */
.ldt-fade { opacity: 0; transform: translateY(30px); transition: opacity .8s ease, transform .8s ease; }
.ldt-slide-left { opacity: 0; transform: translateX(-50px); transition: opacity .8s ease, transform .8s ease; }
.ldt-fade.is-visible, .ldt-slide-left.is-visible { opacity: 1; transform: none; }

/* =========================================================
   HEADER
   ========================================================= */
.ldt-header { position: fixed; top: 0; left: 0; width: 100%; height: 90px; z-index: 1000; pointer-events: none; }
.ldt-header > * { pointer-events: auto; }
.ldt-header::after {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0;
	background: rgb(255 255 255 / 50%); backdrop-filter: blur(.375rem); -webkit-backdrop-filter: blur(.375rem);
	transition: opacity .3s ease; pointer-events: none;
}
.ldt-header.is-scrolled::after { opacity: 1; }
.ldt-header__logo {
	position: absolute; left: 20px; top: 45px; transform: translateY(-40%); opacity: 0;
	transition: opacity .5s ease, transform .5s ease; pointer-events: none;
}
.ldt-header.is-scrolled .ldt-header__logo { opacity: 1; transform: translateY(-50%); pointer-events: auto; }
#ldt .ldt-header__logo img { height: 100px; width: auto; display: block; } /* 支給ロゴは上下左右に余白込み（2172x724） */
.ldt-header__bar {
	position: absolute; top: 0; right: 0; display: flex; align-items: center; gap: .75rem;
	padding: .5rem 1rem; padding-right: 6rem; z-index: 10;
}
.ldt-header__tel-block { display: flex; align-items: center; }
.ldt-header__label {
	background: var(--lime); border-radius: 999px; padding: .625rem 1.25rem; font-size: 1.125rem;
	color: #003876; position: relative; right: .625rem; top: .125rem; font-weight: 500; white-space: nowrap;
}
.ldt-header__tel-wrap { display: flex; flex-direction: column; align-items: center; }
.ldt-header__tel { display: flex; align-items: center; gap: .4rem; font-size: 1.725rem; color: var(--navy); font-weight: 700; line-height: 1.1; white-space: nowrap; }
.ldt-header__tel .ldt-ico { width: 1.2rem; height: 1.2rem; }
.ldt-header__hours { font-size: .8rem; font-weight: 600; color: var(--navy); white-space: nowrap; }
.ldt-header__box {
	width: 4.5rem; height: 4.5rem; background: #65b7ff; border: none; border-radius: .25rem; color: #fff;
	font-size: 1rem; font-weight: 700; display: flex; flex-direction: column; align-items: center; justify-content: center;
	cursor: pointer; line-height: 1; font-family: inherit; padding: 0;
}
.ldt-header__box .ldt-ico { width: 1.6rem; height: 1.6rem; margin-bottom: .25rem; }
#ldt .ldt-header__box { color: #fff; }
.ldt-header__box--menu { position: absolute; top: .5rem; right: .5rem; z-index: 20010; }
.ldt-header__hamburger { display: block; width: 1.5rem; height: 2px; background: #fff; position: relative; margin: .8125rem 0 .9375rem; transition: background .2s; }
.ldt-header__hamburger::before, .ldt-header__hamburger::after {
	content: ""; position: absolute; left: 0; width: 1.5rem; height: 2px; background: #fff; transition: transform .3s, top .3s;
}
.ldt-header__hamburger::before { top: -.5rem; }
.ldt-header__hamburger::after { top: .5rem; }
.ldt-header__box--menu.is-open .ldt-header__hamburger { background: transparent; }
.ldt-header__box--menu.is-open .ldt-header__hamburger::before { top: 0; transform: rotate(45deg); }
.ldt-header__box--menu.is-open .ldt-header__hamburger::after { top: 0; transform: rotate(-45deg); }

/* ドロワー */
.ldt-drawer {
	position: fixed; inset: 0; z-index: 10000; background: rgb(81 192 243 / 95%);
	padding: 2rem 3rem 2.5rem; overflow-y: auto; -webkit-overflow-scrolling: touch;
	display: flex; flex-direction: column; gap: 2rem;
	opacity: 0; visibility: hidden; transform: translateY(-100%);
	transition: transform .3s cubic-bezier(.4, 1.4, .6, 1), opacity .2s, visibility .3s;
}
.ldt-drawer.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.ldt-drawer__logo img { width: 22rem; height: auto; }
.ldt-drawer__nav { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 2rem; }
.ldt-drawer__title { font-size: 1.8rem; font-weight: 700; color: #fff; margin-bottom: .75rem; }
.ldt-drawer__group li { margin-bottom: 1rem; }
#ldt .ldt-drawer__group a { font-size: 18px; font-weight: 300; color: #fff; transition: color .2s; }
#ldt .ldt-drawer__group a:hover { color: #e0e0e0; }
.ldt-drawer__cta { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; max-width: 50rem; width: 100%; margin: 0 auto; }
.ldt-drawer__btn {
	display: flex; align-items: center; justify-content: center; gap: .6rem; flex-wrap: wrap;
	padding: .9rem 1.2rem; border-radius: 999px; font-weight: 700; line-height: 1.3;
}
#ldt .ldt-drawer__btn--tel { background: var(--lime); color: var(--navy); font-size: 1.3rem; }
.ldt-drawer__btn--tel small { font-size: 12px; font-weight: 400; }
#ldt .ldt-drawer__btn--mail { background: linear-gradient(135deg, #0060c7 0%, #0b56b7 100%); color: #fff; }

/* =========================================================
   HERO
   ========================================================= */
.ldt-hero {
	position: relative; width: 100%; aspect-ratio: 1774 / 887;
	background-image: var(--fv-pc); background-position: center; background-size: cover; background-repeat: no-repeat; overflow: hidden;
}
.ldt-hero::before {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 48%; pointer-events: none; z-index: 3;
	background: linear-gradient(to top, rgb(38 120 210 / 62%) 0%, rgb(56 150 230 / 38%) 32%, rgb(90 175 240 / 0%) 100%);
}
.ldt-hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 4;
	background: linear-gradient(to bottom, rgb(255 255 255 / 80%) 0%, rgb(255 255 255 / 0%) 10%);
}
.ldt-hero__slideshow { position: absolute; inset: -20% 0; transform: rotate(-10deg); z-index: 2; }
.ldt-hero__col { position: absolute; top: 0; height: 100%; width: 17vw; overflow: hidden; }
.ldt-hero__col--1 { left: 60vw; }
.ldt-hero__col--2 { left: 79vw; }
.ldt-hero__col--3 { left: 98vw; }
.ldt-hero__track { display: flex; flex-direction: column; gap: 1.5rem; animation: ldtSlideUp 30s linear infinite; will-change: transform; }
.ldt-hero__track--reverse { animation-name: ldtSlideDown; }
/* 列ごとに速度と開始位置をずらして、横並びで同じ画像がそろわないようにする */
.ldt-hero__col--1 .ldt-hero__track { animation-duration: 32s; animation-delay: 0s; }
.ldt-hero__col--2 .ldt-hero__track { animation-duration: 38s; animation-delay: -13s; }
.ldt-hero__col--3 .ldt-hero__track { animation-duration: 35s; animation-delay: -24s; }
.ldt-hero__slide {
	display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: top center;
	border-radius: .5rem; box-shadow: 0 4px 12px rgb(0 0 0 / 20%);
}
#ldt .ldt-hero__slide.is-natural { aspect-ratio: auto; height: auto; object-fit: fill; }
@keyframes ldtSlideUp { from { transform: translateY(0); } to { transform: translateY(calc(-50% - .75rem)); } }
@keyframes ldtSlideDown { from { transform: translateY(calc(-50% - .75rem)); } to { transform: translateY(0); } }

.ldt-hero__logo-pack { position: absolute; bottom: 18%; left: 2%; display: flex; align-items: center; gap: 2.64vw; z-index: 5; pointer-events: none; }
#ldt .ldt-hero__logo { display: block; width: min(37vw, 36rem); height: auto; margin: -3.2vw 0 -3.2vw -1.6vw; filter: drop-shadow(0 0 10px rgb(255 255 255 / 85%)) drop-shadow(0 0 2px rgb(255 255 255 / 90%)); }
.ldt-hero__balloon {
	position: relative; width: min(9vw, 8.1rem); flex-shrink: 0; aspect-ratio: 1 / 1; transform: translateY(-20%) rotate(-10deg);
	background: var(--lime); border-radius: 50%; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 2px 8px rgb(0 0 0 / 10%);
}
.ldt-hero__balloon::after {
	content: ""; position: absolute; left: 12%; bottom: 2%; width: 22%; height: 22%; background: var(--lime);
	clip-path: polygon(0 100%, 100% 0, 60% 0, 0 60%);
}
.ldt-hero__balloon p { text-align: center; line-height: 1.1; color: #003876; }
.ldt-hero__balloon .big { display: block; font-weight: 800; font-size: min(2.28vw, 32px); white-space: nowrap; }
.ldt-hero__heading { position: absolute; left: 2%; bottom: 4%; color: #fff; z-index: 5; pointer-events: none; text-shadow: 0 2px 12px rgb(0 56 118 / 45%); }
.ldt-hero__main { font-weight: 700; letter-spacing: .05em; line-height: 1.05; font-size: min(4.8vw, 4.8rem); white-space: nowrap; }
.ldt-hero__sub { margin-top: .4rem !important; font-weight: 600; letter-spacing: .05em; line-height: 1.3; font-size: clamp(14.4px, 1.8vw, 1.8rem); white-space: nowrap; }

/* =========================================================
   NEWS
   ========================================================= */
.ldt-news { position: relative; padding: 50px 0; overflow: hidden; z-index: 0; }
.ldt-news::before {
	content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; z-index: -1;
	background: linear-gradient(135deg, #67c0f6 0%, #53abe0 100%);
	clip-path: polygon(0 0, 100% 0, 78% 100%, 0 100%);
}
.ldt-news__inner { display: flex; align-items: center; gap: clamp(8rem, 18vw, 15rem); max-width: 82.5rem; margin: 0 auto; padding: 3.75rem 1.25rem; }
.ldt-news__title { flex-shrink: 0; color: #fff; line-height: 1.1; display: flex; flex-direction: column; }
.ldt-news__title .en { font-size: 50px; font-weight: 300; letter-spacing: .1em; }
.ldt-news__title .jp { font-size: 1.125rem; font-weight: 400; letter-spacing: .2em; }
.ldt-news__list { display: flex; flex-direction: column; gap: 2rem; width: 100%; max-width: 58%; margin-left: auto !important; padding-right: 2rem; }
.ldt-news__item { display: flex; gap: 1.5rem; align-items: baseline; }
.ldt-news__item:nth-child(2) { margin-left: 2rem; }
.ldt-news__item:nth-child(3) { margin-left: 4rem; }
.ldt-news__date { color: var(--blue); font-weight: 700; white-space: nowrap; }
#ldt .ldt-news__text { color: #241913; border-bottom: 1px solid transparent; transition: border-color .2s; }
#ldt .ldt-news__text:hover { border-color: var(--blue); }

/* =========================================================
   ONE STOP（FOR MEDICAL）
   ========================================================= */
.ldt-onestop {
	position: relative; z-index: 0; padding: 5rem 5vw 0; overflow: hidden;
	background:
		radial-gradient(ellipse 60% 40% at 100% 0%, rgb(103 192 246 / 25%) 0%, rgb(103 192 246 / 0%) 70%),
		radial-gradient(ellipse 40% 30% at 0% 30%, rgb(166 248 226 / 25%) 0%, rgb(166 248 226 / 0%) 70%),
		linear-gradient(180deg, #fff 0%, #f1f9fe 50%, #fff 100%);
}
.ldt-onestop__title {
	position: absolute; top: 3%; left: 3%; transform: translateY(-10%);
	font-size: 135px; font-weight: 300; letter-spacing: .1em; color: #53abe04d; line-height: 1; white-space: nowrap;
}
.ldt-onestop__subtitle { text-align: center; font-size: 39px; font-weight: 400; white-space: nowrap; margin: 150px 0 50px !important; }
.ldt-onestop__subtitle .hl { color: var(--blue); }
.ldt-onestop__subtitle .bk { color: #000; }

.ldt-points { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; padding-bottom: 3rem !important; }
.ldt-points__card {
	flex: 1 1 16rem; max-width: 24rem; background-color: #67c0f6b3; border-radius: 2rem; text-align: center;
	padding: .8rem 1.4rem 1.6rem; box-shadow: 0 .25rem .5rem rgb(0 0 0 / 5%); color: #fff;
}
.ldt-points__card--2 { background-color: #a6f8e2b3; }
.ldt-points__label { font-size: 60px; font-weight: 300; letter-spacing: .05em; color: #fff; line-height: 1.2; }
.ldt-points__card--1 .num, .ldt-points__card--3 .num { color: #d5ff13; }
.ldt-points__card--2 .num { color: var(--sky); }
.ldt-points__img { margin: .5rem auto .75rem; border-radius: 1rem; overflow: hidden; }
.ldt-points__img img { display: block; width: 100%; height: auto; }
.ldt-points__desc { font-size: 19px; font-weight: 500; line-height: 1.4; color: #fff; }
.ldt-points__card--2 .ldt-points__desc { color: var(--royal); }
.ldt-points__text { margin-top: .8rem !important; font-size: .9rem; line-height: 1.75; color: var(--text); text-align: left; }

.ldt-onestop__desc { display: flex; align-items: flex-start; justify-content: space-between; gap: 3rem; margin: 2rem auto 0; width: 100%; max-width: 82.5rem; padding: 0 .625rem; }
.ldt-onestop__desc-text { flex: 1; color: #333; font-size: 1.125rem; line-height: 1.75; }
#ldt .ldt-onestop__desc-text p { margin: 0 0 1.5rem; }
#ldt .ldt-onestop__desc-text p:first-child { font-size: 1.25rem; line-height: 1.6; margin-bottom: 1.2rem; }
#ldt .ldt-onestop__desc-text .ldt-btn { margin-top: 1rem; }
.ldt-onestop__desc-text strong { color: #000; font-weight: 700; }
.ldt-onestop__desc-image { flex: 1; max-width: 37.5rem; position: relative; }
.ldt-onestop__desc-image img { width: 100%; height: auto; display: block; }

/* CLIENT DATA */
.ldt-data {
	max-width: 82.5rem; margin: 6rem auto 0; padding: 3.5rem 3rem 4rem; border-radius: 2.5rem;
	background: linear-gradient(135deg, #86cdf8 0%, #67c0f6 55%, #8fe6d4 100%);
	box-shadow: 0 .5rem 2rem rgb(83 171 224 / 20%);
}
.ldt-data__header { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: 0 1rem; margin-bottom: 2.5rem; }
.ldt-data__title { font-size: 90px; font-weight: 300; letter-spacing: .1em; color: #ffffffcc; line-height: 1; white-space: nowrap; }
.ldt-data__subtitle { font-size: 29px; font-weight: 400; color: #fff; white-space: nowrap; }
.ldt-data__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.ldt-data__item {
	background: #fff; border-radius: 50%; aspect-ratio: 1 / 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
	box-shadow: 0 .25rem 1rem rgb(0 0 0 / 6%); text-align: center; padding: 1rem;
}
.ldt-data__label { font-size: 1rem; font-weight: 500; color: var(--deep); }
.ldt-data__value { color: var(--royal); font-weight: 700; font-size: 1.2rem; line-height: 1.1; margin-top: .3rem; }
.ldt-data__value b { font-family: "Poiret One", sans-serif; font-weight: 700; font-size: clamp(2.6rem, 4.5vw, 4.4rem); letter-spacing: .02em; margin: 0 .1em; }

/* 代表メッセージ（訪問対応レイアウト） */
.ldt-message { position: relative; display: flex; align-items: center; width: 100vw; margin: 6rem 0 0 -5vw; min-height: 450px; }
.ldt-message__image { flex: 0 0 36vw; max-width: 40rem; }
#ldt .ldt-message__image img { display: block; width: 100%; height: auto; } /* 支給写真は比率そのまま */
.ldt-message__content { flex: 1; padding: 3rem 5vw 5rem 4vw; color: #333; line-height: 1.75; }
.ldt-message__title { font-size: 29px; font-weight: 500; color: var(--blue); margin-bottom: 1.5rem !important; }
.ldt-message__desc { font-size: 1.05rem; margin-bottom: 1.2rem !important; }
.ldt-message__desc strong { color: #000; }
.ldt-message .ldt-btn { margin-top: 1rem; font-size: 17px; padding: 1rem 3rem; }

/* =========================================================
   CONCEPT（NEWLY OPEN PLAN）
   ========================================================= */
.ldt-concept {
	position: relative; z-index: 1; margin-top: 10vw;
	background: linear-gradient(to right, #3556ac, #5f78c6, #3556ac); color: #f0f7fb;
	padding: 5rem 5vw calc(14.7rem + 8vw + 5rem);
}
.ldt-concept::before {
	content: ""; position: absolute; top: 1px; left: 0; width: 100%; height: 8vw;
	background: linear-gradient(to right, #3556ac, #5f78c6, #3556ac);
	clip-path: polygon(0 100%, 100% 100%, 100% 0); transform: translateY(-100%);
}
.ldt-concept__title-en { font-size: 135px; font-weight: 300; line-height: 1; opacity: .5; letter-spacing: .1em; text-align: center; }
.ldt-concept__title-jp { margin-top: 2.5rem !important; text-align: center; font-size: 29px; font-weight: 500; line-height: 1.5; }
.ldt-concept__desc { margin: 2.5rem auto 0 !important; max-width: 60rem; text-align: center; font-size: 1.125rem; line-height: 1.9; opacity: .9; }
.ldt-concept__desc strong { font-weight: 700; color: var(--lime); }
.ldt-concept__desc .ib { display: inline-block; }
.ldt-clients { position: relative; z-index: 1; background: #fff; border-bottom: 1px solid #e3f0f8; }
.ldt-clients__title { text-align: center; color: #fff; margin-bottom: 1.4rem !important; line-height: 1.2; font-weight: 400; }
.ldt-clients__title .en { display: block; font-size: 2.6rem; font-weight: 300; letter-spacing: .12em; }
.ldt-clients__title .jp { display: block; font-size: 1rem; letter-spacing: .2em; margin-top: .4rem; opacity: .9; }
.ldt-clients__viewport { overflow: hidden; padding: 2rem 0; }
.ldt-clients__track { display: flex; width: max-content; animation: ldtMarquee 40s linear infinite; }
.ldt-clients__item { flex: 0 0 auto; width: 280px; height: 100px; padding: 0 2rem; display: flex; align-items: center; justify-content: center; }
#ldt .ldt-clients__item img { max-height: 66px; max-width: 100%; width: auto; height: auto; object-fit: contain; }
@keyframes ldtMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* =========================================================
   WORKS
   ========================================================= */
.ldt-works {
	position: relative; z-index: 2; margin-top: -14.7rem; padding: 10rem 5vw 6rem;
	background: linear-gradient(to right, #64a1d4, #95cbf4, #64a1d4);
}
.ldt-works::before {
	content: ""; position: absolute; top: 1px; left: 0; width: 100%; height: 8vw;
	background: linear-gradient(to right, #64a1d4, #95cbf4, #64a1d4);
	clip-path: polygon(0 100%, 100% 100%, 100% 0); transform: translateY(-100%);
}
.ldt-works__inner { max-width: 90rem; margin: 0 auto; }
.ldt-works__header { display: flex; align-items: baseline; flex-wrap: wrap; margin-bottom: 5rem; }
.ldt-works__title { font-size: 145px; font-weight: 300; color: rgb(255 255 255 / 70%); letter-spacing: .1em; white-space: nowrap; line-height: 1; opacity: .8; }
.ldt-works__subtitle { font-size: 27px; font-weight: 100; color: #fff; white-space: nowrap; margin-left: 1rem !important; }
.ldt-works__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; }
.ldt-works__card { background: #fff; display: flex; flex-direction: column; box-shadow: 0 .25rem 1rem rgb(0 0 0 / 8%); }
.ldt-works__media { display: flex; align-items: flex-end; gap: .75rem; background: #fff; padding: 0; overflow: hidden; }
.ldt-works__media-desktop { display: block; width: 76%; aspect-ratio: 5.69 / 3.3; object-fit: cover; object-position: top center; transition: transform .4s; }
.ldt-works__media-mobile {
	display: block; width: 24%; aspect-ratio: 9 / 16; object-fit: cover; object-position: top center;
	border: 2px solid #fff; border-radius: .25rem; box-shadow: 0 .125rem .25rem rgb(0 0 0 / 10%);
}
.ldt-works__card:hover .ldt-works__media-desktop { transform: scale(1.03); }
.ldt-works__info { padding: 1rem 1.5rem 1.5rem; flex: 1; display: flex; flex-direction: column; }
.ldt-works__badge {
	display: inline-block; align-self: flex-start; margin-bottom: .6rem; padding: .3rem 1.6rem .3rem 1rem;
	background: var(--deep); color: #fff; font-size: 1rem; font-weight: 300; line-height: 1.2;
	clip-path: polygon(0 0, calc(100% - .8rem) 0, 100% 50%, calc(100% - .8rem) 100%, 0 100%);
}
.ldt-works__card-title { font-size: 1.5rem; font-weight: 300; color: var(--navy2); line-height: 1.3; margin-bottom: .4rem !important; }
.ldt-works__meta { font-size: 1rem; color: #5599b5; }
.ldt-works__btns { display: flex; gap: .6rem; margin-top: auto; padding-top: 1rem; }
#ldt .ldt-works__btn {
	flex: 1; text-align: center; padding: .6rem .5rem; border-radius: 2rem; font-size: .9rem; font-weight: 600;
	border: 1px solid var(--sky); color: var(--deep); transition: background .2s, color .2s;
}
#ldt .ldt-works__btn:hover { background: var(--sky); color: #fff; }
#ldt .ldt-works__btn--site { background: var(--sky); color: #fff; }
#ldt .ldt-works__btn--site:hover { background: var(--deep); border-color: var(--deep); }
#ldt .ldt-works__more {
	display: flex; width: fit-content; margin: 4rem auto 0; align-items: center; gap: 1.25rem;
	background: #d6ff14; color: var(--navy); font-weight: 600; font-size: 1.125rem;
	padding: 1.125rem 4.375rem; border-radius: 2.5rem; transition: background .3s;
}
#ldt .ldt-works__more:hover { background: #a4cc00; }

/* =========================================================
   CONTACT
   ========================================================= */
.ldt-contact {
	position: relative; z-index: 0; overflow: hidden; padding: 3rem 2rem;
	background: linear-gradient(100deg, #f4fbff 0%, #dff2fd 55%, #c4e6fb 100%);
}
.ldt-contact::after {
	content: "CONTACT"; position: absolute; top: 50%; right: 3%; transform: translateY(-50%);
	font-family: "Poiret One", sans-serif; font-weight: 100; font-size: 151px; color: rgb(255 255 255 / 70%);
	pointer-events: none; z-index: -1; line-height: 1;
}
.ldt-contact__inner { display: flex; align-items: center; justify-content: center; gap: 1.25rem 2.5rem; flex-wrap: wrap; max-width: 90rem; margin: 0 auto; }
#ldt .ldt-contact__image img { height: 220px; width: auto; display: block; border-radius: 50%; aspect-ratio: 1 / 1; object-fit: cover; }
.ldt-contact__head { color: #444c66; }
.ldt-contact__title { font-size: 29px; font-weight: 400; line-height: 1.3; }
.ldt-contact__subtitle { font-size: 1.125rem; font-weight: 300; margin-top: .25rem !important; opacity: .8; }
.ldt-contact__tel { display: flex; flex-direction: column; }
#ldt .ldt-contact__tel-number { display: inline-flex; align-items: center; gap: .6rem; font-size: 42px; font-weight: 700; color: var(--ink); line-height: 1.1; white-space: nowrap; }
.ldt-contact__tel-number .ldt-ico { width: 1.6rem; height: 1.6rem; }
.ldt-contact__tel-hours { font-size: 13px; color: var(--ink); margin-left: .25rem; }
#ldt .ldt-contact__email {
	display: inline-flex; align-items: center; gap: .75rem; background: var(--lime); padding: 1rem 3rem;
	border-radius: 1.875rem; color: var(--text); font-size: 1.125rem; font-weight: 500; white-space: nowrap; transition: background .3s;
}
#ldt .ldt-contact__email:hover { background: #c1e629; }

/* =========================================================
   SERVICE（CONSULTING）
   ========================================================= */
.ldt-service {
	position: relative; overflow: hidden; padding: 9rem 5vw 7rem; z-index: 0;
	background:
		radial-gradient(ellipse 50% 40% at 0% 0%, rgb(103 192 246 / 22%) 0%, rgb(103 192 246 / 0%) 70%),
		linear-gradient(180deg, #fff 0%, #eef8fe 100%);
}
.ldt-service__bg-title {
	position: absolute; top: 2rem; left: 3%; font-size: 135px; font-weight: 300; letter-spacing: .1em;
	color: #53abe04d; line-height: 1; white-space: nowrap; z-index: -1;
}
.ldt-service__header { text-align: center; margin-bottom: 4rem; color: var(--text); }
.ldt-service__title { font-size: 1.9rem; font-weight: 500; line-height: 1.4; margin-bottom: .8rem !important; }
.ldt-service__title .hl { color: #2f4aba; font-weight: 700; }
.ldt-service__title .bk { color: #000; font-weight: 400; }
.ldt-service__lead { font-size: 1.3rem; font-weight: 700; color: var(--deep); margin-bottom: 1.2rem !important; }
.ldt-service__desc { font-size: 1.05rem; line-height: 2; max-width: 52rem; margin: 0 auto !important; color: #333; }
.ldt-service__desc .ib { display: inline-block; }
#ldt .ldt-service__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 82.5rem; margin: 0 auto; }
#ldt .ldt-service__card {
	position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: 1.25rem;
	padding: 1.2rem 1.6rem 1.6rem; box-shadow: 0 .25rem 1rem rgb(31 42 78 / 8%); transition: transform .3s, box-shadow .3s;
}
#ldt .ldt-service__card:hover { transform: translateY(-4px); box-shadow: 0 .6rem 1.6rem rgb(31 42 78 / 14%); }
#ldt .ldt-service__card.is-nolink:hover { transform: none; box-shadow: 0 .25rem 1rem rgb(31 42 78 / 8%); }
.ldt-service__label {
	align-self: flex-start; font-size: 1.6rem; font-weight: 700; color: #fff; line-height: 1;
	background: linear-gradient(135deg, #67c0f6 0%, #54ace1 100%); padding: .45rem 1rem .4rem; border-radius: .4rem;
	margin: -2rem 0 1rem -.4rem; letter-spacing: .05em;
}
.ldt-service__label .num { color: var(--lime); margin-left: .3rem; }
.ldt-service__name { font-size: 1.3rem; font-weight: 500; color: var(--text); line-height: 1.4; }
.ldt-service__en { font-size: .9rem; color: #85bed5; margin-top: .3rem; }
.ldt-service__go {
	position: absolute; right: 1.2rem; bottom: 1.2rem; width: 2.2rem; height: 2.2rem; border-radius: 50%;
	background: var(--lime); color: var(--navy); display: flex; align-items: center; justify-content: center;
}
.ldt-service__item { padding-top: 1rem; }

/* =========================================================
   FOOTER
   ========================================================= */
.ldt-footer { background: #fff; }
.ldt-footer__inner { display: flex; align-items: stretch; flex-wrap: wrap; }
.ldt-footer__left { flex: 1 1 30rem; padding: 5rem 5rem 4rem; }
.ldt-footer__logo img { width: 26rem; height: auto; display: block; margin: -2rem 0 .5rem -1.4rem; }
.ldt-footer__nav { display: flex; gap: 2.5rem; flex-wrap: wrap; }
.ldt-footer__nav-group { flex: 1 1 12rem; }
.ldt-footer__nav-title { font-size: 24px; font-weight: 700; color: var(--sky); margin-bottom: 1.5rem !important; }
.ldt-footer__nav li { margin-bottom: 1rem; }
.ldt-footer__nav li::before { content: "•"; color: var(--sky); margin-right: .3rem; }
#ldt .ldt-footer__nav a { font-size: 1rem; color: var(--text); transition: color .2s; }
#ldt .ldt-footer__nav a:hover { color: #767e97; }
.ldt-footer__right { flex: 1 1 28rem; background: #ddebf0; padding: 5rem 5rem 2rem; display: flex; flex-direction: column; }
.ldt-footer__row { display: flex; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ldt-footer__row dt { flex: 0 0 6rem; font-size: 1rem; font-weight: 500; color: #85bed5; white-space: nowrap; }
.ldt-footer__row dd { flex: 1 1 auto; font-size: 1rem; color: var(--text); line-height: 1.6; }
.ldt-footer__copy { margin-top: auto !important; padding-top: 2rem; font-size: .9rem; color: #7aaec8; }

/* =========================================================
   タブレット
   ========================================================= */
@media (max-width: 1200px) {
	.ldt-onestop__title, .ldt-concept__title-en, .ldt-service__bg-title { font-size: 100px; }
	.ldt-works__title { font-size: 110px; }
	.ldt-onestop__subtitle { font-size: 32px; white-space: normal; }
	.ldt-works__grid { grid-template-columns: repeat(2, 1fr); }
	#ldt .ldt-data__list { grid-template-columns: repeat(2, 1fr); max-width: 40rem; margin: 0 auto; }
	.ldt-news__inner { gap: 6rem; }
	.ldt-news__list { padding-right: 1rem; max-width: 62%; }
	.ldt-contact::after { font-size: 110px; }
}

/* =========================================================
   SP
   ========================================================= */
@media (max-width: 767px) {
	#ldt { font-size: 15px; }
	body.ldt-body { padding-bottom: 67px; }
	#ldt .ldt-btn { font-size: 16px; padding: 1rem 2.5rem; }

	/* header */
	.ldt-header { height: 70px; }
	.ldt-header::after { height: 70px; bottom: auto; }
	.ldt-header__logo { left: 10px; top: 35px; }
	#ldt .ldt-header__logo img { height: 64px; }
	.ldt-header__bar {
		position: fixed; top: auto; bottom: 0; left: 0; right: 0; height: 67px; padding: 0; gap: 0;
		background: rgb(255 255 255 / 85%); align-items: stretch; z-index: 20000;
	}
	.ldt-header__tel-block { width: 50%; flex-direction: column; justify-content: center; background: var(--lime); padding: .4rem; }
	.ldt-header__label { position: static; padding: 0 1.25rem 2px; font-size: .75rem; background: #fff; }
	.ldt-header__tel { font-size: 1.15rem; }
	.ldt-header__tel .ldt-ico { width: 1rem; height: 1rem; }
	.ldt-header__hours { font-size: .62rem; }
	.ldt-header__box--mail {
		width: 50%; height: auto; flex-direction: row; gap: .4rem; border-radius: 0; font-size: .85rem;
		background: linear-gradient(135deg, #0060c7 0%, #0b56b7 100%);
	}
	.ldt-header__box--mail .ldt-ico { width: 1.1rem; height: 1.1rem; margin: 0; }
	.ldt-header__box--mail span { display: none; }
	.ldt-header__box--mail::after { content: "メールでのお問合せ"; font-weight: 700; white-space: nowrap; }
	.ldt-header__box--menu { position: fixed; width: 3.5rem; height: 3.5rem; font-size: .75rem; z-index: 30000; }
	.ldt-drawer { padding: 1rem 1rem calc(80px + env(safe-area-inset-bottom, 0px)); gap: 1.2rem; }
	.ldt-drawer__logo img { width: 15rem; }
	.ldt-drawer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 0 .5rem; }
	.ldt-drawer__title { font-size: 1.5rem; margin-bottom: .5rem; }
	.ldt-drawer__group li { margin-bottom: .4rem; }
	#ldt .ldt-drawer__group a { font-size: .9rem; }
	.ldt-drawer__cta { display: none; }

	/* hero */
	.ldt-hero__col { width: 26vw; }
	.ldt-hero__col--1 { left: 58vw; }
	.ldt-hero__col--2 { left: 86vw; }
	.ldt-hero__col--3 { display: none; }
	.ldt-hero__track { gap: .6rem; }
	.ldt-hero__slide { border-radius: .25rem; }
	.ldt-hero__logo-pack { bottom: 30%; left: 3%; }
	#ldt .ldt-hero__logo { width: 44vw; margin: -3.6vw 0 -3.6vw -2vw; }
	.ldt-hero__balloon { width: 13vw; }
	.ldt-hero__balloon .big { font-size: 3.2vw; }
	.ldt-hero__heading { bottom: 5%; left: 3%; }
	.ldt-hero__main { font-size: 6vw; }
	.ldt-hero__sub { font-size: 3.2vw; }

	/* SP専用FV（1024x1536）がある場合：trumpのSP構図 */
	.ldt-hero.has-sp { background-image: var(--fv-sp); aspect-ratio: 1024 / 1536; }
	.ldt-hero.has-sp .ldt-hero__slideshow { inset: -30% -20% 28% 0; transform: rotate(-24deg); }
	.ldt-hero.has-sp .ldt-hero__col { width: 30vw; }
	.ldt-hero.has-sp .ldt-hero__col--1 { left: 58vw; }
	.ldt-hero.has-sp .ldt-hero__col--2 { left: 91vw; }
	.ldt-hero.has-sp .ldt-hero__track { gap: .8rem; }
	.ldt-hero.has-sp .ldt-hero__logo-pack { bottom: 15%; left: 4%; gap: 8vw; }
	#ldt .ldt-hero.has-sp .ldt-hero__logo { width: 60vw; margin: -5vw 0 -5vw -2.6vw; }
	.ldt-hero.has-sp .ldt-hero__balloon { width: 19vw; transform: translateY(-55%) rotate(-10deg); }
	.ldt-hero.has-sp .ldt-hero__balloon .big { font-size: 4.6vw; }
	.ldt-hero.has-sp .ldt-hero__heading { bottom: 4%; left: 4%; }
	.ldt-hero.has-sp .ldt-hero__main { font-size: 6.5vw; }
	.ldt-hero.has-sp .ldt-hero__sub { font-size: 3.7vw; }

	/* news */
	.ldt-news { padding: 0; }
	.ldt-news::before { width: 100%; height: 6rem; bottom: auto; clip-path: polygon(0 0, 100% 0, 100% 60%, 0 100%); }
	.ldt-news__inner { flex-direction: column; align-items: flex-start; gap: 2.5rem; padding: 1.5rem 1.25rem 2.5rem; }
	.ldt-news__title .en { font-size: 36px; }
	.ldt-news__list { padding-right: 0; gap: 1.2rem; max-width: 100%; margin-left: 0 !important; }
	.ldt-news__item { flex-direction: column; gap: .2rem; margin-left: 0 !important; }

	/* onestop */
	.ldt-onestop { padding: 3rem 1.25rem 0; }
	.ldt-onestop__title { font-size: 64px; }
	.ldt-onestop__subtitle { font-size: 22px; margin: 60px 0 30px !important; line-height: 1.5; }
	.ldt-onestop__subtitle span { display: block; }
	.ldt-points__card { flex-basis: 100%; }
	.ldt-points__label { font-size: 46px; }
	.ldt-points__desc { font-size: 17px; }
	.ldt-onestop__desc { flex-direction: column; gap: 2rem; padding: 0; }
	.ldt-onestop__desc-text { font-size: 1rem; text-align: left; }
	.ldt-onestop__desc-text .ldt-btn { display: flex; }
	.ldt-onestop__desc-image { max-width: 100%; }
	.ldt-data { margin-top: 4rem; padding: 2.5rem 1rem; border-radius: 1.5rem; }
	.ldt-data__title { font-size: 46px; }
	.ldt-data__subtitle { font-size: 18px; }
	#ldt .ldt-data__list { gap: .8rem; }
	.ldt-data__label { font-size: .75rem; }
	.ldt-data__value { font-size: .9rem; }
	.ldt-data__value b { font-size: 2.2rem; }
	.ldt-message { flex-direction: column; margin: 4rem 0 0 -1.25rem; }
	.ldt-message__image { flex: none; width: 100%; max-width: none; }
	.ldt-message__content { padding: 2rem 1.25rem 3rem; }
	.ldt-message__title { font-size: 22px; }
	.ldt-message .ldt-btn { display: flex; padding: 1rem 1.2rem; font-size: 15px; }

	/* concept */
	.ldt-concept { padding: 3rem 1.25rem calc(8rem + 8vw + 3rem); }
	.ldt-concept__title-en { font-size: 58px; }
	.ldt-concept__title-jp { font-size: 21px; }
	.ldt-concept__desc { font-size: 1rem; text-align: left; }
	.ldt-concept__desc .ib { display: inline; }
	.ldt-concept__desc .pc-br { display: none; }
	.ldt-clients__item { width: 190px; height: 72px; padding: 0 1.2rem; }
	#ldt .ldt-clients__item img { max-height: 60px; }

	/* works */
	.ldt-works { padding: 6rem 1.25rem 4rem; margin-top: -8rem; }
	.ldt-works__header { margin-bottom: 2.5rem; }
	.ldt-works__title { font-size: 64px; }
	.ldt-works__subtitle { font-size: 18px; }
	.ldt-works__grid { grid-template-columns: 1fr; gap: 1.5rem; }
	.ldt-works__card-title { font-size: 1.25rem; }
	#ldt .ldt-works__more { padding: 1rem 2.5rem; font-size: 1rem; }

	/* contact */
	.ldt-contact { padding: 3rem 1.25rem; }
	.ldt-contact::after { font-size: 64px; top: 1.5rem; transform: none; }
	.ldt-contact__inner { flex-direction: column; gap: 1.2rem; text-align: center; }
	#ldt .ldt-contact__image img { height: 140px; }
	.ldt-contact__title { font-size: 19px; }
	.ldt-contact__tel { align-items: center; }
	#ldt .ldt-contact__tel-number { font-size: 30px; }
	.ldt-contact__cta { width: 100%; }
	#ldt .ldt-contact__email { display: flex; justify-content: center; padding: 1rem; font-size: .95rem; white-space: normal; }

	/* service */
	.ldt-service { padding: 5rem 1.25rem 4rem; }
	.ldt-service__bg-title { font-size: 64px; top: 1.5rem; }
	.ldt-service__header { margin-bottom: 2.5rem; }
	.ldt-service__title { font-size: 1.35rem; }
	.ldt-service__title span { display: block; }
	.ldt-service__lead { font-size: 1.1rem; }
	.ldt-service__desc { font-size: 1rem; text-align: left; }
	.ldt-service__desc .ib { display: inline; }
	.ldt-service__desc br { display: none; }
	#ldt .ldt-service__grid { grid-template-columns: 1fr; gap: 1rem; }
	.ldt-service__label { font-size: 1.3rem; }
	.ldt-service__name { font-size: 1.15rem; padding-right: 2.5rem; }

	/* footer */
	.ldt-footer__left { padding: 3rem 1.25rem 2rem; }
	.ldt-footer__logo img { width: 15rem; }
	.ldt-footer__nav { gap: 1rem; }
	.ldt-footer__nav-group { flex: 1 1 100%; }
	.ldt-footer__right { padding: 3rem 1.25rem 2rem; }
	.ldt-footer__row dt { flex-basis: 100%; }
}

/* =========================================================
   FV下CTA（旧NEWS枠）
   ========================================================= */
.ldt-topcta__body { width: 100%; max-width: 46rem; margin-left: auto; }
.ldt-topcta__lead { font-size: 1.05rem; line-height: 1.8; color: #333; margin-bottom: 1.4rem !important; }
.ldt-topcta__btns { display: flex; gap: 1.2rem; flex-wrap: wrap; align-items: stretch; }
#ldt .ldt-topcta__tel {
	flex: 1 1 18rem; display: flex; flex-direction: column; align-items: center; justify-content: center;
	background: var(--lime); border-radius: 999px; padding: .8rem 1.5rem; color: var(--navy); transition: background .3s;
}
#ldt .ldt-topcta__tel:hover { background: #c1e629; }
.ldt-topcta__tel-num { display: flex; align-items: center; gap: .5rem; font-size: 1.9rem; font-weight: 700; line-height: 1.1; white-space: nowrap; }
.ldt-topcta__tel-num .ldt-ico { width: 1.4rem; height: 1.4rem; }
.ldt-topcta__tel-hours { font-size: .8rem; font-weight: 600; }
#ldt .ldt-topcta__mail {
	flex: 1 1 18rem; display: flex; align-items: center; justify-content: center; gap: .7rem;
	background: linear-gradient(135deg, #0060c7 0%, #0b56b7 100%); color: #fff; border-radius: 999px;
	padding: 1rem 1.5rem; font-size: 1.1rem; font-weight: 700; transition: opacity .3s;
}
#ldt .ldt-topcta__mail:hover { opacity: .85; }
@media (max-width: 1200px) {
	.ldt-topcta__body { max-width: 60%; }
}
@media (max-width: 767px) {
	.ldt-topcta__body { max-width: 100%; }
	.ldt-topcta::before { height: 8.5rem; clip-path: polygon(0 0, 100% 0, 100% 72%, 0 100%); }
	.ldt-topcta .ldt-news__title .jp { font-size: .9rem; letter-spacing: .12em; }
	.ldt-topcta .ldt-news__inner { gap: 3.2rem; }
	.ldt-topcta__lead { font-size: .92rem; }
	.ldt-topcta__lead .pc-br { display: none; }
	.ldt-topcta__tel-num { font-size: 1.6rem; }
	#ldt .ldt-topcta__mail { font-size: 1rem; }
}

/* WORKS：テーマ既存の事例カードを青背景の上に載せる調整 */
#ldt .ldt-works__cases .case-list { margin-bottom: 0; }
#ldt .ldt-works__cases .case-card { padding: 24px 24px 28px; box-shadow: 0 .25rem 1rem rgb(0 0 0 / 8%); }
@media (max-width: 767px) {
	#ldt .ldt-works__cases .case-list { gap: 1.5rem; }
	#ldt .ldt-works__cases .case-card { padding: 18px 16px 22px; }
}

/* 並び替え後の調整（SERVICEをONE STOP直後、代表メッセージを支援実績の後へ） */
.ldt-onestop { padding-bottom: 6rem; }
.ldt-message-sec { position: relative; background: #fff; padding: 5rem 0 calc(7vw + 4rem); overflow: hidden; }
#ldt .ldt-message-sec .ldt-message { margin: 0; width: 100%; }
#ldt .ldt-service__desc { text-align: left; }
@media (max-width: 767px) {
	.ldt-onestop { padding-bottom: 4rem; }
	.ldt-message-sec { padding: 0 0 calc(7vw + 3rem); }
	#ldt .ldt-message-sec .ldt-message { margin: 0; }
}

/* フッター左下：運営会社（linkwin.jp）へのリンクボタン */
#ldt .ldt-footer__corp {
	display: inline-flex; align-items: center; gap: .8rem; margin-top: 2.5rem; padding: 1rem 1.6rem;
	border: 1px solid var(--sky); border-radius: 999px; color: var(--text); background: #fff;
	transition: background .3s, color .3s, border-color .3s;
}
#ldt .ldt-footer__corp:hover { background: var(--sky); border-color: var(--sky); color: #fff; }
.ldt-footer__corp-sub { font-size: .75rem; color: #85bed5; letter-spacing: .1em; transition: color .3s; }
#ldt .ldt-footer__corp:hover .ldt-footer__corp-sub { color: #fff; }
.ldt-footer__corp-name { font-size: 1rem; font-weight: 600; }
#ldt .ldt-footer__corp-ico { width: 1rem; height: 1rem; flex-shrink: 0; }
@media (max-width: 767px) {
	#ldt .ldt-footer__corp { margin-top: 2rem; padding: .9rem 1.2rem; }
	.ldt-footer__corp-name { font-size: .95rem; }
}
