/* ==========================================================
 * Family Memorial Design — Home Landing
 * Themify Ultra · Salon 스킨과 맞춘 스타일
 *  - 제목: Cormorant Garamond (+ 한글 Noto Serif KR)
 *  - 본문: Quicksand (+ 한글 Noto Sans KR)
 *  - 포인트 색: #df9a2b (Salon 스킨 테마 색), 각진 모서리
 *  - 50대 이상 방문자를 위해 본문 19px, 버튼 높이 56px 이상, 높은 대비
 * ========================================================== */

body.fmdl-page { overflow-x: clip; }

.fmdl {
	--fmdl-ink: #262320;
	--fmdl-muted: #57514a;
	--fmdl-accent: #df9a2b;
	--fmdl-accent-ink: #8A6232;
	--fmdl-band: #f7f2ea;
	--fmdl-line: #e4dacb;
	--fmdl-dark: #141312;
	--fmdl-ivory: #f6efe3;
	--fmdl-serif: "Cormorant Garamond", "Noto Serif KR", Georgia, serif;
	--fmdl-sans: "Quicksand", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;

	width: 100vw;
	margin-left: calc(50% - 50vw);
	background: #fff;
	color: var(--fmdl-ink);
	font-family: var(--fmdl-sans);
	font-size: 19px;
	font-weight: 500;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
.fmdl--ko { word-break: keep-all; overflow-wrap: break-word; }
.fmdl *, .fmdl *::before, .fmdl *::after { box-sizing: border-box; }
.fmdl p { margin: 0; }
.fmdl ul, .fmdl ol { margin: 0; padding: 0; list-style: none; }
.fmdl img { max-width: 100%; display: block; }
.fmdl a { color: inherit; text-decoration: none; }
.fmdl .fmdl-ico { flex-shrink: 0; vertical-align: middle; }

.fmdl-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ---------- 제목 ---------- */
.fmdl .fmdl-h1,
.fmdl .fmdl-h2,
.fmdl .fmdl-h3 { font-family: var(--fmdl-serif); color: var(--fmdl-ink); margin: 0; text-transform: none; }
.fmdl .fmdl-h1 { font-size: 64px; line-height: 1.05; font-weight: 600; letter-spacing: -0.01em; }
.fmdl--ko .fmdl-h1 { font-size: 50px; line-height: 1.32; font-weight: 700; letter-spacing: -0.02em; }
.fmdl .fmdl-h2 { font-size: 46px; line-height: 1.12; font-weight: 600; letter-spacing: 0.01em; }
.fmdl--ko .fmdl-h2 { font-size: 38px; line-height: 1.38; font-weight: 700; letter-spacing: -0.01em; }
.fmdl .fmdl-h3 { font-size: 26px; line-height: 1.25; font-weight: 700; }
.fmdl--ko .fmdl-h3 { font-size: 22px; line-height: 1.45; }

.fmdl-eyebrow {
	font-family: var(--fmdl-sans);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--fmdl-accent-ink);
	margin-bottom: 14px !important;
}
.fmdl--ko .fmdl-eyebrow { font-size: 16px; letter-spacing: 0.04em; }

.fmdl-lead { font-size: 20px; color: var(--fmdl-muted); max-width: 720px; }
.fmdl-note { margin-top: 28px !important; font-size: 17px; color: var(--fmdl-muted); }
.fmdl-note--icon { display: flex; gap: 8px; align-items: flex-start; }
.fmdl-note--tight { margin-top: 16px !important; }
.fmdl-note .fmdl-ico { color: var(--fmdl-accent-ink); margin-top: 4px; }
.fmdl-note--center { text-align: center; }

.fmdl-badge {
	display: inline-block;
	background: var(--fmdl-accent);
	color: #1c1406;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	padding: 7px 10px;
	letter-spacing: 0.04em;
}

/* ---------- 버튼 (Salon: 각진 모서리) ---------- */
.fmdl-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.fmdl-actions--center { justify-content: center; }
.fmdl .fmdl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 58px;
	padding: 0 32px;
	border: 1.5px solid var(--fmdl-dark);
	border-radius: 0;
	font-family: var(--fmdl-sans);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: center;
	transition: background-color .25s, color .25s, border-color .25s;
}
.fmdl .fmdl-btn--primary { background: var(--fmdl-dark); color: #fff; }
.fmdl .fmdl-btn--primary:hover,
.fmdl .fmdl-btn--primary:focus-visible { background: var(--fmdl-accent); border-color: var(--fmdl-accent); color: #1c1406; }
.fmdl .fmdl-btn--ghost { background: transparent; color: var(--fmdl-dark); }
.fmdl .fmdl-btn--ghost:hover,
.fmdl .fmdl-btn--ghost:focus-visible { background: var(--fmdl-accent); border-color: var(--fmdl-accent); color: #1c1406; }
.fmdl .fmdl-btn--light { background: #fff; border-color: #fff; color: var(--fmdl-dark); }
.fmdl .fmdl-btn--light:hover,
.fmdl .fmdl-btn--light:focus-visible { background: var(--fmdl-accent); border-color: var(--fmdl-accent); color: #1c1406; }
.fmdl .fmdl-btn--outline-light { background: transparent; border-color: #fff; color: #fff; }
.fmdl .fmdl-btn--outline-light:hover,
.fmdl .fmdl-btn--outline-light:focus-visible { background: var(--fmdl-accent); border-color: var(--fmdl-accent); color: #1c1406; }
.fmdl .fmdl-btn--block { width: 100%; }
.fmdl a:focus-visible { outline: 3px solid var(--fmdl-accent); outline-offset: 3px; }

.fmdl .fmdl-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 700;
	color: var(--fmdl-ink);
	border-bottom: 2px solid var(--fmdl-accent);
	padding-bottom: 2px;
	white-space: nowrap;
}
.fmdl .fmdl-more:hover { color: var(--fmdl-accent-ink); }

/* ---------- 섹션 ---------- */
.fmdl-sec { padding: 104px 0; }
.fmdl-sec--band { background: var(--fmdl-band); }
.fmdl-head { margin-bottom: 52px; }
.fmdl-head .fmdl-lead { margin-top: 18px; }
.fmdl-head--center { text-align: center; }
.fmdl-head--center .fmdl-h2,
.fmdl-head--center .fmdl-lead { margin-left: auto; margin-right: auto; max-width: 820px; }
.fmdl-head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; }

.fmdl-grid { display: grid; gap: 24px; }
.fmdl-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px; }
.fmdl-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fmdl-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.fmdl-card {
	background: #fff;
	border: 1px solid var(--fmdl-line);
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.fmdl-sec--band .fmdl-card { border-color: #fff; }
.fmdl-card p { font-size: 17.5px; color: var(--fmdl-muted); }
.fmdl-card__top { display: flex; justify-content: space-between; align-items: flex-start; }
.fmdl-card__icon { color: var(--fmdl-accent-ink); }
.fmdl-card--svc .fmdl-more { margin-top: auto; align-self: flex-start; padding-top: 8px; }

.fmdl-checks li {
	position: relative;
	padding-left: 34px;
	margin-bottom: 12px;
	font-size: 18px;
}
.fmdl-checks li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 0.45em;
	width: 16px;
	height: 9px;
	border-left: 2.5px solid var(--fmdl-accent-ink);
	border-bottom: 2.5px solid var(--fmdl-accent-ink);
	transform: rotate(-45deg);
}

/* ---------- 히어로 ---------- */
.fmdl-hero { background: var(--fmdl-band); padding: 72px 0 96px; position: relative; }
.fmdl-hero__grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr); gap: 56px; align-items: center; }
.fmdl-hero__text { position: relative; }
.fmdl .fmdl-lang {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--fmdl-line);
	background: #fff;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 28px;
}
.fmdl .fmdl-lang:hover { border-color: var(--fmdl-accent); }
.fmdl-freeline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 26px 0 18px !important;
	font-size: 19px;
	font-weight: 700;
}
.fmdl-hero .fmdl-lead { font-size: 20px; }
.fmdl-help {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid var(--fmdl-line);
}
.fmdl-help__icon {
	width: 48px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--fmdl-line);
	color: var(--fmdl-accent-ink);
	flex-shrink: 0;
}
.fmdl-help__lead { font-size: 17px; color: var(--fmdl-muted); }
.fmdl-help__line { font-size: 17px; color: var(--fmdl-muted); }
.fmdl .fmdl-help__line a { font-size: 26px; font-weight: 700; color: var(--fmdl-ink); letter-spacing: 0.01em; }

/* 휴대폰 목업 */
.fmdl-hero__visual { position: relative; display: flex; justify-content: flex-end; padding: 0 0 24px; }
.fmdl-phone {
	width: 330px;
	background: #fff;
	border: 10px solid #1d1b19;
	border-radius: 38px;
	overflow: hidden;
	box-shadow: 0 30px 60px rgba(38, 35, 32, 0.18);
}
.fmdl-phone__bar {
	background: #f3f1ee;
	text-align: center;
	font-size: 14px;
	font-weight: 700;
	padding: 16px 12px 12px;
	border-bottom: 1px solid #e6e2dc;
}
.fmdl-phone__chat {
	background: #c9d3dc;
	padding: 16px 14px 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.fmdl-bubble {
	align-self: flex-start;
	max-width: 86%;
	background: #fff;
	padding: 9px 12px;
	font-size: 13.5px;
	line-height: 1.45;
	border-radius: 4px 14px 14px 14px;
}
.fmdl-bubble--me { align-self: flex-end; background: #f5e2b8; border-radius: 14px 4px 14px 14px; }
.fmdl-ocard {
	align-self: flex-end;
	width: 82%;
	background: var(--fmdl-ivory);
	border: 1px solid #d6c6a8;
	padding: 14px 12px 12px;
	text-align: center;
	color: #2f2b27;
	line-height: 1.3;
}
.fmdl-ocard p { margin: 0; }
.fmdl-ocard__top { font-family: var(--fmdl-serif); font-size: 12px; letter-spacing: 0.06em; color: #6f5a3c; }
.fmdl-ocard__arch {
	width: 92px;
	height: 104px;
	margin: 8px auto 8px;
	border: 1.5px solid #b59a6e;
	border-radius: 46px 46px 3px 3px;
	background: #fbf7ef;
	display: flex;
	align-items: center;
	justify-content: center;
}
.fmdl-ocard__name { font-family: "Noto Serif KR", serif; font-size: 20px; font-weight: 700; }
.fmdl-ocard__en { font-family: var(--fmdl-serif); font-size: 14px; font-weight: 600; margin-bottom: 4px !important; }
.fmdl-ocard__dates,
.fmdl-ocard__svc { font-size: 10.5px; color: #4a4239; }
.fmdl-ocard__rsvp { margin-top: 7px !important; padding-top: 7px; border-top: 1px solid #d6c6a8; font-size: 10.5px; font-weight: 700; color: #6f5a3c; }

.fmdl-float {
	position: absolute;
	left: 0;
	top: 150px;
	width: 210px;
	background: #fff;
	border: 1px solid var(--fmdl-line);
	box-shadow: 0 18px 40px rgba(38, 35, 32, 0.14);
	padding: 18px 20px;
}
.fmdl-float__title { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 16px; }
.fmdl-float__title .fmdl-ico { color: var(--fmdl-accent-ink); }
.fmdl-float__count { font-size: 14px; color: var(--fmdl-muted); margin: 4px 0 10px !important; }
.fmdl-float li { font-size: 14px; padding: 6px 0; border-top: 1px solid #efe8dc; }

/* ---------- 이용 방법 ---------- */
.fmdl-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; counter-reset: none; }
.fmdl-step { background: var(--fmdl-band); padding: 36px 32px; position: relative; }
.fmdl-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border: 1.5px solid var(--fmdl-accent);
	font-family: var(--fmdl-serif);
	font-size: 26px;
	font-weight: 700;
	color: var(--fmdl-accent-ink);
	margin-bottom: 22px;
}
.fmdl-step p { margin-top: 12px; color: var(--fmdl-muted); font-size: 18px; }

/* ---------- 메모리 페이지 ---------- */
.fmdl-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.fmdl-split--rev { align-items: start; }
.fmdl-split--rev .fmdl-split__visual { margin-top: 40px; }
.fmdl-price { margin: 18px 0 16px !important; font-size: 18px; color: var(--fmdl-muted); }
.fmdl-price strong { font-family: var(--fmdl-serif); font-size: 44px; color: var(--fmdl-ink); font-weight: 700; line-height: 1; }
.fmdl-split .fmdl-checks { margin-top: 26px; }
.fmdl-split__visual { position: relative; padding: 0 40px 0 0; }
.fmdl-album {
	background: #fff;
	border: 1px solid var(--fmdl-line);
	padding: 28px;
	box-shadow: 0 24px 50px rgba(38, 35, 32, 0.1);
}
.fmdl-album__title { font-family: var(--fmdl-serif); font-size: 28px; font-weight: 700; margin-bottom: 18px !important; }
.fmdl--ko .fmdl-album__title { font-size: 22px; }
.fmdl-album__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.fmdl-album__grid span { display: block; aspect-ratio: 1 / 1; background: #e3d6c1; }
.fmdl-album__grid span:nth-child(2) { background: #c9cfc4; }
.fmdl-album__grid span:nth-child(3) { background: #d9c7a9; }
.fmdl-album__grid span:nth-child(4) { background: #bfb3a0; }
.fmdl-album__grid span:nth-child(5) { background: #eadfcd; }
.fmdl-album__grid span:nth-child(6) { background: #b8c1b9; }
.fmdl-album__grid span:nth-child(7) { background: #d4c2a4; }
.fmdl-album__grid span:nth-child(8) { background: #c8b89e; }
.fmdl-album__grid span:nth-child(9) { background: #e6d9c4; }
.fmdl-album__btns { display: flex; gap: 8px; margin-top: 14px; }
.fmdl-album__btns span { flex: 1; text-align: center; padding: 11px 8px; font-size: 15px; font-weight: 700; border: 1px solid var(--fmdl-dark); }
.fmdl-album__btns .is-dark { background: var(--fmdl-dark); color: #fff; }
.fmdl-gate {
	position: absolute;
	right: -20px;
	top: 96px;
	width: 250px;
	background: #fff;
	border: 1px solid var(--fmdl-line);
	box-shadow: 0 18px 40px rgba(38, 35, 32, 0.16);
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.fmdl-gate__title { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 16px; }
.fmdl-gate__title .fmdl-ico { color: var(--fmdl-accent-ink); }
.fmdl-gate__field { display: block; border: 1px solid #d7d7d7; padding: 9px 12px; font-size: 14px; color: var(--fmdl-muted); }
.fmdl-gate__pw { letter-spacing: 4px; color: var(--fmdl-ink); }
.fmdl-gate__note { font-size: 13.5px; color: var(--fmdl-muted); line-height: 1.45; }

/* ---------- 추억 앨범 (TV 목업) ---------- */
.fmdl-split--rev .fmdl-split__visual { padding: 0; }
.fmdl-lead--gap { margin-top: 18px !important; }
.fmdl-split--rev .fmdl-checks { margin-top: 24px; }
.fmdl-tv { display: flex; flex-direction: column; align-items: center; }
.fmdl-tv__screen {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #0f0e0d;
	border: 12px solid #1f1d1b;
	box-shadow: 0 30px 60px rgba(38, 35, 32, 0.22);
	display: grid;
	grid-template-columns: 60% 40%;
	overflow: hidden;
}
.fmdl-tv__photo {
	display: block;
	background:
		radial-gradient(circle at 50% 38%, #c9b18d 0 16%, transparent 16.5%),
		radial-gradient(ellipse at 50% 92%, #8f7a5c 0 34%, transparent 34.5%),
		linear-gradient(160deg, #6d6153, #3b342d);
}
.fmdl-tv__text { display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 18px 20px; color: #efe7da; }
.fmdl-tv__quote { font-family: var(--fmdl-serif); font-size: 16px; line-height: 1.55; font-weight: 600; }
.fmdl--ko .fmdl-tv__quote { font-family: "Noto Serif KR", serif; font-size: 13.5px; line-height: 1.75; font-weight: 600; }
.fmdl-tv__name { font-size: 12.5px; color: var(--fmdl-accent); font-weight: 700; }
.fmdl-tv__dots { position: absolute; left: 30%; bottom: 10px; transform: translateX(-50%); display: flex; gap: 6px; }
.fmdl-tv__dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, 0.4); }
.fmdl-tv__dots i.is-on { background: #fff; }
.fmdl-tv__count { position: absolute; right: 12px; bottom: 10px; font-size: 11px; color: rgba(255, 255, 255, 0.55); letter-spacing: 0.08em; }
.fmdl-tv__stand { width: 34%; height: 14px; background: #1f1d1b; clip-path: polygon(12% 0, 88% 0, 100% 100%, 0 100%); }
.fmdl-tvtag {
	position: absolute;
	right: -12px;
	top: -18px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--fmdl-accent);
	color: #1c1406;
	font-size: 15px;
	font-weight: 700;
	padding: 10px 16px;
	box-shadow: 0 12px 24px rgba(38, 35, 32, 0.16);
}
.fmdl-tvbox {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	margin-top: 28px;
	padding: 24px;
	background: var(--fmdl-band);
	border-left: 0;
}
.fmdl-tvbox__icon {
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--fmdl-accent);
	color: var(--fmdl-accent-ink);
	background: #fff;
}
.fmdl-tvbox p { margin-top: 6px !important; font-size: 17px; color: var(--fmdl-muted); }

.fmdl-offer {
	position: relative;
	margin-top: 28px;
	padding: 26px 24px 22px;
	border: 1.5px dashed var(--fmdl-accent);
	background: #fdf8ee;
}
.fmdl-offer__tag {
	position: absolute;
	top: -14px;
	left: 20px;
	background: var(--fmdl-accent);
	color: #1c1406;
	font-size: 14px;
	font-weight: 700;
	padding: 4px 12px;
}
.fmdl-offer p { font-size: 17.5px; }
.fmdl .fmdl-offer__price { margin-top: 8px !important; font-family: var(--fmdl-serif); font-size: 26px; font-weight: 700; color: var(--fmdl-ink); }
.fmdl--ko .fmdl-offer__price { font-size: 22px; }
.fmdl-disc { margin: -6px 0 14px !important; display: inline-block; font-size: 16px; font-weight: 700; color: var(--fmdl-accent-ink); background: #fdf3df; padding: 6px 12px; }

/* ---------- 올린 이미지(스크린샷·사진) ---------- */
.fmdl .fmdl-shot { display: block; width: 100%; height: auto; }
.fmdl-hero__visual.has-shot { justify-content: flex-end; }
.fmdl .fmdl-shot--hero { width: auto; height: auto; max-width: 100%; max-height: 640px; filter: drop-shadow(0 24px 40px rgba(38, 35, 32, 0.16)); }
.fmdl .fmdl-shot-wrap { display: block; position: relative; }
.fmdl-hero__visual.has-shot .fmdl-shot-wrap { width: fit-content; max-width: 100%; margin-left: auto; }
.fmdl-split__visual.has-shot .fmdl-shot--tv { filter: drop-shadow(0 24px 40px rgba(38, 35, 32, 0.18)); }
.fmdl-split__visual.has-shot .fmdl-shot--mem { box-shadow: 0 24px 50px rgba(38, 35, 32, 0.12); }
.fmdl-split:not(.fmdl-split--rev) .fmdl-split__visual.has-shot { padding-right: 40px; }

.fmdl-step.has-img { padding-top: 0; overflow: hidden; }
.fmdl .fmdl-step__img-wrap { display: block; position: relative; margin: 0 -32px 24px; }
.fmdl .fmdl-step__img { display: block; width: 100%; height: auto; max-width: none; aspect-ratio: 4 / 3; object-fit: cover; object-position: top center; }

.fmdl-card--svc.has-img { padding-top: 0; overflow: hidden; }
.fmdl .fmdl-card__img-wrap { display: block; position: relative; margin: 0 -28px 8px; }
.fmdl .fmdl-card__img { display: block; width: 100%; height: auto; max-width: none; aspect-ratio: 4 / 3; object-fit: cover; }

.fmdl-sec--dark.has-bg { background: linear-gradient(rgba(20, 19, 18, 0.8), rgba(20, 19, 18, 0.8)), var(--fmdl-bg) center / cover no-repeat; }
.fmdl-end.has-bg { background: linear-gradient(rgba(246, 239, 227, 0.88), rgba(246, 239, 227, 0.88)), var(--fmdl-bg) center / cover no-repeat; }

/* ---------- 타임라인 (검정 띠) ---------- */
.fmdl-sec--dark { background: var(--fmdl-dark); color: #efe9df; }
.fmdl-sec--dark .fmdl-h2,
.fmdl-sec--dark .fmdl-h3 { color: #fff; }
.fmdl-sec--dark .fmdl-eyebrow { color: var(--fmdl-accent); }
.fmdl-tl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.fmdl-tl li { border-top: 1.5px solid var(--fmdl-accent); padding-top: 26px; }
.fmdl-tl__num { display: block; font-family: var(--fmdl-serif); font-size: 40px; font-weight: 600; color: var(--fmdl-accent); line-height: 1; margin-bottom: 18px; }
.fmdl-tl p { margin-top: 12px; color: #d9d1c4; font-size: 17.5px; }

/* ---------- 가족 클라우드 요금 ---------- */
.fmdl-plans { align-items: stretch; }
.fmdl-plan {
	position: relative;
	background: #fff;
	border: 1px solid var(--fmdl-line);
	padding: 40px 32px 32px;
	display: flex;
	flex-direction: column;
}
.fmdl-plan.is-featured { border: 2px solid var(--fmdl-accent); }
.fmdl-plan__pop {
	position: absolute;
	top: -15px;
	left: 32px;
	background: var(--fmdl-accent);
	color: #1c1406;
	font-size: 14px;
	font-weight: 700;
	padding: 5px 12px;
}
.fmdl .fmdl-plan__name { font-family: var(--fmdl-sans); font-size: 18px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fmdl-accent-ink); margin: 0; }
.fmdl-plan__price { margin: 12px 0 24px !important; color: var(--fmdl-muted); font-size: 18px; }
.fmdl-plan__price strong { font-family: var(--fmdl-serif); font-size: 54px; font-weight: 700; color: var(--fmdl-ink); line-height: 1; }
.fmdl-plan .fmdl-checks { flex-grow: 1; margin-bottom: 24px; }

/* ---------- 안심 ---------- */
.fmdl-feature { display: flex; gap: 20px; align-items: flex-start; background: #fff; padding: 30px; }
.fmdl-feature__icon {
	width: 56px;
	height: 56px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--fmdl-accent);
	color: var(--fmdl-accent-ink);
}
.fmdl-feature p { margin-top: 8px; color: var(--fmdl-muted); font-size: 17.5px; }

/* ---------- 최근 부고 / 리소스 ---------- */
.fmdl .fmdl-obit,
.fmdl .fmdl-post {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--fmdl-line);
	transition: border-color .25s, box-shadow .25s;
}
.fmdl .fmdl-obit:hover,
.fmdl .fmdl-post:hover { border-color: var(--fmdl-accent); box-shadow: 0 14px 30px rgba(38, 35, 32, 0.08); }
.fmdl-obit__photo {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	background: var(--fmdl-ivory);
	overflow: hidden;
}
.fmdl-obit__photo img { width: 100%; height: 100%; object-fit: cover; }
.fmdl-obit__body { display: flex; flex-direction: column; padding: 22px 24px 24px; gap: 2px; }
.fmdl-obit__name { font-family: "Noto Serif KR", var(--fmdl-serif); font-size: 24px; font-weight: 700; }
.fmdl-obit__en { font-family: var(--fmdl-serif); font-size: 20px; font-weight: 600; color: var(--fmdl-muted); }
.fmdl-obit__dates { font-size: 16px; color: var(--fmdl-muted); margin-top: 6px; }
.fmdl-obit__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 700; font-size: 16px; color: var(--fmdl-accent-ink); }
.fmdl-post img { aspect-ratio: 16 / 9; width: 100%; object-fit: cover; }
.fmdl-post__title { padding: 22px 24px 0; font-family: var(--fmdl-serif); font-size: 24px; font-weight: 700; line-height: 1.3; }
.fmdl--ko .fmdl-post__title { font-size: 21px; line-height: 1.45; }
.fmdl-post__ex { padding: 10px 24px 0; font-size: 16.5px; color: var(--fmdl-muted); }
.fmdl-post .fmdl-obit__link { padding: 0 24px 24px; }

.fmdl-topic { background: #fff; border: 1px solid var(--fmdl-line); padding: 30px 26px; }
.fmdl-sec--band .fmdl-topic { border-color: #fff; }
.fmdl-topic__num { display: block; font-family: var(--fmdl-serif); font-size: 34px; font-weight: 700; color: var(--fmdl-accent); line-height: 1; margin-bottom: 14px; }
.fmdl-topic p { margin-top: 10px; font-size: 17px; color: var(--fmdl-muted); }

.fmdl-dir {
	margin-top: 56px;
	padding: 40px;
	background: #fff;
	border: 1.5px dashed #cdbb9c;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 40px;
}
.fmdl-dir__text { max-width: 760px; }
.fmdl .fmdl-dir .fmdl-btn { flex-shrink: 0; white-space: nowrap; }
.fmdl .fmdl-dir__title { margin: 4px 0 10px; }
.fmdl-dir__text > p:not(.fmdl-eyebrow) { color: var(--fmdl-muted); font-size: 18px; }
.fmdl-soon { display: inline-block; margin-left: 8px; background: var(--fmdl-ivory); color: var(--fmdl-accent-ink); padding: 3px 9px; letter-spacing: 0.04em; }
.fmdl-states { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.fmdl-states li { font-size: 15px; padding: 6px 12px; border: 1px solid var(--fmdl-line); color: var(--fmdl-muted); }
.fmdl-states li.is-first { border-color: var(--fmdl-accent); color: var(--fmdl-ink); font-weight: 700; }

/* ---------- FAQ ---------- */
.fmdl-faq { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.6fr); gap: 64px; align-items: start; }
.fmdl-qa { border-top: 1px solid #d8ccb9; }
.fmdl-qa:last-child { border-bottom: 1px solid #d8ccb9; }
.fmdl-qa summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 24px 0;
	min-height: 56px;
	font-size: 20px;
	font-weight: 700;
}
.fmdl-qa summary::-webkit-details-marker { display: none; }
.fmdl-qa summary::after {
	content: "+";
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--fmdl-accent);
	color: var(--fmdl-accent-ink);
	font-size: 22px;
	font-weight: 500;
}
.fmdl-qa[open] summary::after { content: "−"; }
.fmdl-qa summary:focus-visible { outline: 3px solid var(--fmdl-accent); outline-offset: 2px; }
.fmdl-qa p { padding: 0 52px 26px 0; color: var(--fmdl-muted); font-size: 18px; }

/* ---------- 마무리 ---------- */
.fmdl-end { background: var(--fmdl-ivory); color: var(--fmdl-ink); padding: 112px 0; text-align: center; border-top: 1px solid var(--fmdl-line); }
.fmdl-end .fmdl-lead { margin: 20px auto 0; }
.fmdl-end__meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 32px; margin-top: 36px !important; font-size: 17px; color: var(--fmdl-muted); }
.fmdl-end__meta span { display: inline-flex; align-items: center; gap: 8px; }
.fmdl-end__meta .fmdl-ico { color: var(--fmdl-accent-ink); }
.fmdl .fmdl-end__meta a { color: var(--fmdl-ink); font-weight: 700; border-bottom: 2px solid var(--fmdl-accent); }

/* ---------- 모바일 하단 전화 버튼 ---------- */
.fmdl .fmdl-sticky { display: none; }

/* ---------- 반응형 ---------- */
@media (max-width: 1080px) {
	.fmdl-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fmdl-tl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 32px; }
	.fmdl-hero__grid { grid-template-columns: minmax(0, 1fr); }
	.fmdl-hero__visual { justify-content: center; padding-left: 0; margin-top: 16px; }
	.fmdl-hero__visual { justify-content: center; }
	.fmdl-float { left: calc(50% - 330px); }
	.fmdl-split { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.fmdl-split--rev .fmdl-split__visual { order: 2; }
	.fmdl-tvtag { right: 0; }
	.fmdl-gate { right: 0; }
	.fmdl-split__visual { padding-right: 20px; }
	.fmdl-faq { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

@media (max-width: 782px) {
	.fmdl { font-size: 18px; }
	.fmdl-sec { padding: 72px 0; }
	.fmdl-hero { padding: 40px 0 64px; }
	.fmdl-wrap { padding: 0 20px; }
	.fmdl .fmdl-h1 { font-size: 42px; }
	.fmdl--ko .fmdl-h1 { font-size: 34px; }
	.fmdl .fmdl-h2 { font-size: 34px; }
	.fmdl--ko .fmdl-h2 { font-size: 28px; }
	.fmdl-lead, .fmdl-hero .fmdl-lead { font-size: 18px; }
	.fmdl-head { margin-bottom: 36px; }
	.fmdl-head--row { flex-direction: column; align-items: flex-start; }
	.fmdl-grid--2, .fmdl-grid--3, .fmdl-grid--4, .fmdl-steps, .fmdl-tl { grid-template-columns: minmax(0, 1fr); }
	.fmdl-actions { flex-direction: column; }
	.fmdl .fmdl-btn { width: 100%; }
	.fmdl-hero__visual { padding-bottom: 0; }
	.fmdl-hero__visual { position: relative; }
	.fmdl-float { display: block; top: auto; bottom: 28px; left: 0; width: 150px; padding: 12px 14px; }
	.fmdl-float__title { font-size: 14px; }
	.fmdl-float__count { font-size: 12px; margin: 2px 0 6px !important; }
	.fmdl-float li { font-size: 12px; padding: 4px 0; }
	.fmdl .fmdl-phone { width: 78%; margin-left: auto; margin-right: 0; }
	.fmdl-hero__visual.has-shot .fmdl-shot-wrap { max-width: 78%; }
	.fmdl-hero__visual { justify-content: flex-end; }
	.fmdl-phone { width: 300px; }
	.fmdl .fmdl-gate { position: static; width: auto; margin-top: 16px; box-shadow: none; }
	.fmdl .fmdl-shot--hero { max-height: 520px; }
	.fmdl-split:not(.fmdl-split--rev) .fmdl-split__visual.has-shot { padding-right: 0; }
	.fmdl .fmdl-dir .fmdl-btn { white-space: normal; }
	.fmdl-split__visual { padding: 0; }
	.fmdl-dir { flex-direction: column; align-items: stretch; padding: 28px 22px; }
	.fmdl-tv__screen { border-width: 8px; grid-template-columns: 1fr; grid-template-rows: 54% 46%; aspect-ratio: 4 / 3.6; }
	.fmdl-tv__text { padding: 12px 16px; gap: 8px; }
	.fmdl-tv__dots { left: 50%; bottom: auto; top: 48%; }
	.fmdl-tvbox { padding: 20px 18px; }
	.fmdl-tvtag { top: -14px; font-size: 14px; }
	.fmdl-feature { padding: 24px 20px; }
	.fmdl-plan { padding: 36px 24px 26px; }
	.fmdl-qa summary { font-size: 18px; }
	.fmdl-qa p { padding-right: 0; }
	.fmdl-end { padding: 80px 0 96px; }

	body.fmdl-page { padding-bottom: 64px; }
	.fmdl .fmdl-sticky {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		min-height: 60px;
		padding: 0 16px calc(env(safe-area-inset-bottom, 0px));
		background: var(--fmdl-dark);
		color: #fff;
		font-size: 18px;
		font-weight: 700;
		border-top: 3px solid var(--fmdl-accent);
	}
}

@media (prefers-reduced-motion: reduce) {
	.fmdl * { transition: none !important; }
}

/* ---------- 이미지 크게 보기 ---------- */
.fmdl a.fmdl-zoom { cursor: zoom-in; position: relative; display: block; }
.fmdl-end__qr a.fmdl-zoom { display: block; }
.fmdl-zoom__badge {
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	color: var(--fmdl-ink);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
	transition: transform .2s;
}
.fmdl a.fmdl-zoom:hover .fmdl-zoom__badge,
.fmdl a.fmdl-zoom:focus-visible .fmdl-zoom__badge { transform: scale(1.1); }

.fmdl-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(20, 19, 18, 0.9);
	cursor: zoom-out;
}
.fmdl-lightbox[hidden] { display: none; }
.fmdl-lightbox img { max-width: 100%; max-height: calc(100vh - 96px); width: auto; height: auto; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4); background: #fff; cursor: default; }
.fmdl-lightbox__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 52px;
	height: 52px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: #262320;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}
.fmdl-lightbox__close:focus-visible { outline: 3px solid #df9a2b; outline-offset: 3px; }
body.fmdl-lightbox-open { overflow: hidden; }

.fmdl .fmdl-more--inline { margin-left: 6px; white-space: nowrap; }

/* 스크린샷 위의 "참석 예정" 박스: 맨 위(상단바·대화방 제목 쪽)로, 작게 */
.fmdl-hero__visual.has-shot .fmdl-float { top: -28px; bottom: auto; left: -24px; width: 196px; padding: 14px 16px; }
.fmdl-hero__visual.has-shot .fmdl-float__title { font-size: 15px; }
.fmdl-hero__visual.has-shot .fmdl-float__count { font-size: 13px; margin: 2px 0 6px !important; }
.fmdl-hero__visual.has-shot .fmdl-float li { font-size: 13px; padding: 4px 0; }
@media (max-width: 782px) {
	.fmdl-hero__visual.has-shot { padding-top: 24px; }
	.fmdl-hero__visual.has-shot .fmdl-float { top: 0; left: 0; width: 150px; padding: 10px 12px; }
	.fmdl-hero__visual.has-shot .fmdl-float__title { font-size: 14px; }
	.fmdl-hero__visual.has-shot .fmdl-float__count,
	.fmdl-hero__visual.has-shot .fmdl-float li { font-size: 12px; }
}

/* ---------- 추억 앨범 vs 가족 메모리 페이지 비교표 ---------- */
.fmdl .fmdl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fmdl-cmp { width: 100%; max-width: 1000px; margin: 0 auto; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--fmdl-line); font-size: 18px; }
.fmdl-cmp th, .fmdl-cmp td { padding: 18px 22px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--fmdl-line); line-height: 1.55; }
.fmdl-cmp tbody tr:last-child th, .fmdl-cmp tbody tr:last-child td { border-bottom: 0; }
.fmdl-cmp thead th { font-family: var(--fmdl-serif); font-size: 24px; font-weight: 700; color: var(--fmdl-ink); padding: 22px; border-bottom: 2px solid var(--fmdl-accent); }
.fmdl--ko .fmdl-cmp thead th { font-family: "Noto Serif KR", var(--fmdl-serif); font-size: 21px; }
.fmdl-cmp thead th .fmdl-ico { color: var(--fmdl-accent-ink); margin-right: 4px; vertical-align: -4px; }
.fmdl-cmp thead th:first-child { width: 22%; }
.fmdl-cmp .fmdl-cmp__a { background: #fdf8ee; }
.fmdl-cmp .fmdl-cmp__b { background: #f4f1ec; }
.fmdl-cmp tbody th { font-size: 16px; font-weight: 700; color: var(--fmdl-accent-ink); background: var(--fmdl-band); }
.fmdl-cmp tbody td { color: var(--fmdl-ink); }
.fmdl-cmp tbody td:nth-child(2) { background: #fffdf8; }
.fmdl-cmp tr.is-key td { font-weight: 700; font-size: 19px; }
.fmdl-cmp__tip { max-width: 1000px; margin: 22px auto 0 !important; display: flex; gap: 10px; align-items: flex-start; font-size: 18px; color: var(--fmdl-ink); background: #fdf3df; padding: 16px 20px; }
.fmdl-cmp__tip .fmdl-ico { color: var(--fmdl-accent-ink); margin-top: 3px; }

@media (max-width: 782px) {
	.fmdl-cmp, .fmdl-cmp tbody, .fmdl-cmp tr, .fmdl-cmp th, .fmdl-cmp td { display: block; width: 100%; }
	.fmdl-cmp { border: 0; background: transparent; }
	.fmdl-cmp thead { display: none; }
	.fmdl-cmp tbody tr { background: #fff; border: 1px solid var(--fmdl-line); margin-bottom: 12px; }
	.fmdl-cmp tbody th { border-bottom: 1px solid var(--fmdl-line); padding: 12px 16px; }
	.fmdl-cmp tbody td { padding: 12px 16px 12px; border-bottom: 1px solid var(--fmdl-line); font-size: 17px; }
	.fmdl-cmp tbody td::before { content: attr(data-label); display: block; font-size: 13px; font-weight: 700; color: var(--fmdl-muted); margin-bottom: 2px; }
	.fmdl-cmp tbody tr:last-child td { border-bottom: 1px solid var(--fmdl-line); }
	.fmdl-cmp tbody tr td:last-child { border-bottom: 0; }
}

/* ---------- 카카오톡 · 이메일 문의 ---------- */
.fmdl-help.has-qr { align-items: center; }
.fmdl-help__qr { flex-shrink: 0; width: 132px; background: #fff; border: 1px solid var(--fmdl-line); padding: 8px; }
.fmdl-help__qr .fmdl-zoom__badge { width: 30px; height: 30px; right: 4px; bottom: 4px; }
.fmdl-help__qr .fmdl-zoom__badge svg { width: 16px; height: 16px; }
.fmdl .fmdl-qr { display: block; width: 100%; height: auto; }
.fmdl-help__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 10px 0 6px; }
.fmdl .fmdl-kakao,
.fmdl .fmdl-btn--kakao { display: inline-flex; align-items: center; gap: 8px; background: #FEE500; color: #191600; border: 1.5px solid #FEE500; font-weight: 700; }
.fmdl .fmdl-kakao { min-height: 48px; padding: 0 18px; font-size: 17px; }
.fmdl .fmdl-kakao:hover, .fmdl .fmdl-kakao:focus-visible,
.fmdl .fmdl-btn--kakao:hover, .fmdl .fmdl-btn--kakao:focus-visible { background: #f5d800; border-color: #f5d800; color: #191600; }
.fmdl .fmdl-mail { display: inline-flex; align-items: center; gap: 6px; font-size: 17px; font-weight: 700; color: var(--fmdl-ink); border-bottom: 2px solid var(--fmdl-accent); padding-bottom: 1px; }
.fmdl .fmdl-mail .fmdl-ico { color: var(--fmdl-accent-ink); }
.fmdl-help__hours { font-size: 15px; color: var(--fmdl-muted); }
.fmdl-end__qr { display: inline-flex; flex-direction: column; align-items: center; gap: 8px; margin-top: 32px; }
.fmdl-end__qr .fmdl-zoom { width: 150px; background: #fff; border: 1px solid var(--fmdl-line); padding: 8px; }
.fmdl-end__qr p { font-size: 15px; color: var(--fmdl-muted); }
.fmdl-end__qr .fmdl-zoom__badge { width: 30px; height: 30px; right: 4px; bottom: 4px; }
.fmdl-end__qr .fmdl-zoom__badge svg { width: 16px; height: 16px; }
.fmdl .fmdl-sticky--kakao { background: #FEE500; color: #191600; border-top-color: #e0c800; }
@media (max-width: 782px) {
	.fmdl-help__qr, .fmdl-end__qr, .fmdl-help__scan { display: none; }
	.fmdl-help.has-qr .fmdl-help__icon { display: inline-flex; }
	.fmdl .fmdl-kakao { width: 100%; justify-content: center; }
}

/* ---------- 하위 페이지 머리말 ---------- */
.fmdl-pagehead { background: var(--fmdl-band); padding: 72px 0 64px; text-align: center; border-bottom: 1px solid var(--fmdl-line); }
.fmdl .fmdl-pagehead__title { font-size: 54px; }
.fmdl--ko .fmdl-pagehead__title { font-size: 44px; }
.fmdl .fmdl-pagehead__lead { margin: 18px auto 0; max-width: 760px; }
@media (max-width: 782px) {
	.fmdl-pagehead { padding: 48px 0 40px; }
	.fmdl .fmdl-pagehead__title { font-size: 38px; }
	.fmdl--ko .fmdl-pagehead__title { font-size: 32px; }
}
