/* =========================================================
   청소나라 — 공용 스타일 (v7: 따뜻한 그레이지 · 편집형 레이아웃)
   ========================================================= */
:root {
  --bg: #ffffff;
  --warm: #f0f7fc;
  --greige: #e1eef8;
  --taupe: #7696ae;
  --ink: #203548;
  --muted: #5d7487;
  --line: #d8e7f2;
  --blue: #2877c5; /* 시안 #3975E8 → 흰 글자 대비 4.5:1 맞춤 */
  --blue-press: #1f609f;

  --fs-h1: clamp(1.875rem, 1.35rem + 1.7vw, 3rem);      /* 30 → 48 */
  --fs-h2: clamp(1.5rem, 1.3rem + .7vw, 2rem);           /* 24 → 32 */
  --fs-h3: clamp(1.125rem, 1.05rem + .35vw, 1.375rem);   /* 18 → 22 */
  --fs-body: clamp(.9375rem, .9rem + .2vw, 1.0625rem);   /* 15 → 17 */
  --fs-lead: clamp(1rem, .95rem + .3vw, 1.125rem);       /* 16 → 18 */
  --fs-small: .8125rem;                                   /* 13 */

  --max: 1200px;
  --margin: clamp(20px, 4vw, 48px);
  --gap: clamp(56px, 7vw, 104px);
  --header-h: 68px;
  --ease: cubic-bezier(.22, .8, .24, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  font-size: var(--fs-body); line-height: 1.7; word-break: keep-all; overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased; padding-top: var(--header-h);
}
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .22em; }
h1, h2, h3, p, ul, ol, figure, blockquote, dl, dd { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--ink); color: #fff; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3 { font-weight: 700; letter-spacing: -0.025em; line-height: 1.3; color: var(--ink); text-wrap: balance; }
p { color: var(--muted); }
.wrap { width: 100%; max-width: calc(var(--max) + var(--margin) * 2); margin: 0 auto; padding: 0 var(--margin); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: #fff; padding: 10px 16px; z-index: 100; }
.skip:focus { left: 8px; }
.label { display: block; font-size: var(--fs-small); font-weight: 600; letter-spacing: .02em; color: #7a6f63; margin-bottom: 14px; }
.h2 { font-size: var(--fs-h2); }
.lead { font-size: var(--fs-lead); line-height: 1.75; }
.small { font-size: var(--fs-small); }
.muted { color: var(--muted); }
.sample { display: inline-block; font-size: 13px; color: var(--muted); background: var(--warm); padding: 3px 8px; border-radius: 4px; }

/* 버튼: 작고 단정하게 */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px;
  border: 0; border-radius: 999px; background: var(--blue); color: #fff; font-weight: 600; font-size: 1rem;
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background-color .2s var(--ease), transform .2s var(--ease), color .2s var(--ease);
}
.btn:hover { background: var(--blue-press); }
.btn:active { transform: scale(.97); }
.btn svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.btn:hover svg { transform: translateX(3px); }
.btn--sm { min-height: 38px; padding: 0 16px; font-size: .9375rem; }
.btn--white { background: #fff; color: var(--ink); }
.btn--white:hover { background: var(--warm); }
.btn--ghost { background: var(--warm); color: var(--ink); }
.btn--ghost:hover { background: var(--greige); }
.btn--light { background: #fff; color: var(--ink); }
.btn--light:hover { background: var(--warm); }
.link-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--ink); text-decoration: none; }
.link-more svg { width: 15px; height: 15px; transition: transform .25s var(--ease); }
.link-more:hover { color: var(--blue); }
.link-more:hover svg { transform: translateX(3px); }

/* ---------- 헤더: 슬림한 흰 바탕, 고정 ---------- */
.site-header { position: fixed; inset: 0 0 auto; z-index: 50; height: var(--header-h); background: rgba(255,255,255,.97); transition: box-shadow .3s var(--ease); }
.site-header.is-scrolled { box-shadow: 0 1px 0 var(--line); }
.site-header .wrap { height: 100%; display: flex; align-items: center; gap: 36px; }
.wordmark { font-size: 1.375rem; font-weight: 800; letter-spacing: -0.04em; text-decoration: none; color: var(--ink); }
.nav { display: flex; gap: 32px; margin-left: auto; }
.nav a { text-decoration: none; font-size: .9375rem; font-weight: 500; color: var(--ink); padding: 6px 0; position: relative; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5px; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.nav a:hover::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }
.menu-toggle, .mobile-nav { display: none; }
@media (max-width: 900px) {
  :root { --header-h: 58px; }
  .nav, .site-header .btn { display: none; }
  .menu-toggle { display: inline-flex; margin-left: auto; margin-right: -10px; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span, .menu-toggle span::before, .menu-toggle span::after { display: block; width: 20px; height: 1.5px; background: var(--ink); position: relative; transition: transform .3s var(--ease), background-color .2s; }
  .menu-toggle span::before, .menu-toggle span::after { content: ""; position: absolute; left: 0; }
  .menu-toggle span::before { top: -6px; } .menu-toggle span::after { top: 6px; }
  .menu-open .menu-toggle span { background: transparent; }
  .menu-open .menu-toggle span::before { transform: translateY(6px) rotate(45deg); }
  .menu-open .menu-toggle span::after { transform: translateY(-6px) rotate(-45deg); }
  .mobile-nav { display: block; position: fixed; inset: var(--header-h) 0 0; z-index: 49; background: #fff; padding: 20px var(--margin) 40px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .25s var(--ease), transform .3s var(--ease), visibility 0s .3s; }
  .menu-open .mobile-nav { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .mobile-nav a:not(.btn) { display: block; padding: 14px 0; font-size: 1.25rem; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line); }
  .mobile-nav .btn { margin-top: 28px; width: 100%; }
}

/* ---------- 첫 화면: 넓은 현장 영상 ---------- */
.hero { position: relative; height: clamp(560px, 82vh, 720px); min-height: 520px; overflow: hidden; background: var(--greige); color: #fff; }
.hero-video, .hero-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(21,45,65,.62) 0%, rgba(21,45,65,.38) 32%, rgba(21,45,65,0) 60%); }
.hero-body { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: center; }
.hero h1 { color: #fff; font-size: var(--fs-h1); line-height: 1.28; letter-spacing: -0.03em; }
.hero p { color: rgba(255,255,255,.9); font-size: var(--fs-lead); margin-top: 18px; max-width: 24em; }
.hero .btn { margin-top: 32px; align-self: flex-start; }
.video-toggle {
  position: absolute; right: var(--margin); bottom: 24px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.6);
  background: rgba(21,45,65,.25); color: #fff; display: grid; place-items: center; cursor: pointer; transition: background-color .2s var(--ease);
}
.video-toggle:hover { background: rgba(21,45,65,.45); }
.video-toggle svg { width: 14px; height: 14px; }
.video-toggle .i-play { display: none; }
.video-toggle[aria-pressed="true"] .i-play { display: block; }
.video-toggle[aria-pressed="true"] .i-pause { display: none; }
@media (max-width: 760px) {
  .hero { height: 78svh; min-height: 520px; max-height: 720px; }
  .hero-video, .hero-poster { object-position: 60% 50%; }
  .hero-shade { background: linear-gradient(0deg, rgba(21,45,65,.7) 0%, rgba(21,45,65,.35) 55%, rgba(21,45,65,.1) 100%); }
  .hero-body { justify-content: flex-end; padding-bottom: 64px; }
  .hero .btn { width: 100%; }
  .video-toggle { bottom: 16px; right: 16px; width: 36px; height: 36px; }
}

/* 강점 안내 줄 */
.strengths { border-bottom: 1px solid var(--line); }
.strengths ul { display: grid; grid-template-columns: repeat(3, 1fr); }
.strengths li { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 24px 12px; font-weight: 600; color: var(--ink); font-size: 1rem; }
.strengths li + li { border-left: 1px solid var(--line); }
.strengths svg { width: 26px; height: 26px; color: var(--ink); flex: none; }
@media (max-width: 760px) {
  .strengths ul { grid-template-columns: 1fr; }
  .strengths li { justify-content: flex-start; padding: 14px 0; }
  .strengths li + li { border-left: 0; border-top: 1px solid var(--line); }
}

/* ---------- 구간 공통 ---------- */
.sec { padding: var(--gap) 0; }
.sec--warm { background: var(--warm); }
.sec-head { max-width: 640px; margin-bottom: clamp(32px, 4vw, 48px); }
.sec-head p { margin-top: 12px; }
.sec-head--center { margin-left: auto; margin-right: auto; text-align: center; }

/* 편집형: 글 + 넓은 사진, 좌우 교차 */
.split { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(36px, 6vw, 88px); align-items: center; }
.split--flip { grid-template-columns: 7fr 5fr; }
.split--flip .split-media { order: -1; }
.split-media { position: relative; }
.split-media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
.split-media .sample { position: absolute; left: 12px; bottom: 12px; background: rgba(255,255,255,.92); }
.split-text h2 { font-size: var(--fs-h2); }
.split-text .key { margin-top: 18px; font-size: var(--fs-lead); font-weight: 600; color: var(--ink); }
.split-text .key + p, .split-text h2 + p { margin-top: 14px; }
.split-text p + p { margin-top: 14px; }
.split-text .btn { margin-top: 28px; }
.chip { display: inline-flex; align-items: center; gap: 6px; margin-top: 22px; font-size: var(--fs-small); font-weight: 600; color: var(--ink); padding: 5px 12px; border: 1px solid var(--taupe); border-radius: 999px; }
.chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
.split-text .note { margin-top: 12px; font-size: .9375rem; }
@media (max-width: 860px) {
  .split, .split--flip { grid-template-columns: 1fr; gap: 28px; }
  .split--flip .split-media { order: 0; }
  .split .split-media { order: -1; }
  .split-text .btn { width: 100%; }
}

/* ---------- 안심톡: 설명 + 휴대폰 ---------- */
.talk { display: grid; grid-template-columns: 6fr 6fr; gap: clamp(36px, 6vw, 88px); align-items: center; }
.talk-text h2 { font-size: var(--fs-h2); }
.talk-text h2 + p { margin-top: 16px; }
.talk-stage { display: grid; justify-items: center; gap: 12px; }
.phone { width: min(330px, 86vw); background: #1d1c1a; border-radius: 42px; padding: 9px; }
.phone-screen { background: #fff; border-radius: 34px; overflow: hidden; height: 600px; display: flex; flex-direction: column; }
.phone-top { display: flex; align-items: center; gap: 10px; padding: 18px 18px 12px; border-bottom: 1px solid var(--line); }
.phone-top b { font-size: 1rem; color: var(--ink); }
.phone-top span { margin-left: auto; font-size: 12px; color: var(--muted); }
.phone-top .avatar, .msg .avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 13px; font-weight: 700; display: grid; place-items: center; flex: none; }
.chat { flex: 1; overflow: hidden; padding: 16px 14px; display: flex; flex-direction: column; gap: 14px; background: #f2f8fc; }
.msg { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; }
.msg-body { display: grid; gap: 6px; }
.msg-text { justify-self: start; background: #fff; border: 1px solid var(--line); border-radius: 4px 14px 14px 14px; padding: 8px 12px; font-size: .9375rem; color: var(--ink); line-height: 1.45; }
.msg img { width: 100%; max-width: 210px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.msg time { font-size: 12px; color: var(--muted); }
.js .talk .msg { opacity: 0; transform: translateY(14px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
.js .talk .msg.is-in { opacity: 1; transform: none; }
.talk-stage .sample { justify-self: center; }
@media (max-width: 860px) {
  .talk { grid-template-columns: 1fr; gap: 32px; }
  .phone-screen { height: 560px; }
}

/* ---------- 청소 과정: 네 단계 ---------- */
.process { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.process li { padding: 28px 24px 8px 0; }
.process li + li { padding-left: 24px; border-left: 1px solid var(--line); }
.process .num { display: block; font-size: var(--fs-small); font-weight: 700; color: #7a6f63; font-variant-numeric: tabular-nums; }
.process svg { width: 30px; height: 30px; color: var(--ink); margin: 14px 0 16px; }
.process h3 { font-size: var(--fs-h3); }
.process p { margin-top: 8px; font-size: .9375rem; }
@media (max-width: 900px) {
  .process { grid-template-columns: 1fr 1fr; }
  .process li:nth-child(3) { padding-left: 0; border-left: 0; }
  .process li:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 520px) {
  .process li { padding: 20px 12px 16px 0; }
  .process li:nth-child(even) { padding-left: 14px; padding-right: 0; }
  .process svg { width: 26px; height: 26px; margin: 10px 0 12px; }
  .process p { font-size: .875rem; }
}

/* ---------- 작업 사례: 큰 사진 세 칸 ---------- */
.cases-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: clamp(28px, 4vw, 40px); }
.cases-head .sec-head { margin-bottom: 0; }
.cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.case img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 6px; }
.case h3 { margin-top: 16px; font-size: var(--fs-h3); }
.case p { margin-top: 4px; font-size: .9375rem; }
@media (max-width: 860px) {
  .cases { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--margin); gap: 14px; margin: 0 calc(var(--margin) * -1); padding: 0 var(--margin) 6px; scrollbar-width: none; }
  .cases::-webkit-scrollbar { display: none; }
  .case { scroll-snap-align: start; }
  .cases-head { flex-direction: column; align-items: flex-start; }
}

/* ---------- 서비스 안내: 두 가지 ---------- */
.services2 { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); }
.svc2 img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 6px; }
.svc2 h3 { margin-top: 20px; font-size: var(--fs-h3); }
.svc2 p { margin-top: 8px; max-width: 30em; }
.svc2 .link-more { margin-top: 14px; }
@media (max-width: 760px) { .services2 { grid-template-columns: 1fr; } }

/* ---------- FAQ ---------- */
.faq-wrap { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(28px, 5vw, 80px); }
.faq { border-top: 1px solid var(--ink); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { position: relative; list-style: none; cursor: pointer; padding: 22px 44px 22px 0; font-size: var(--fs-h3); font-weight: 600; color: var(--ink); line-height: 1.45; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 14px; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease); }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0deg); }
.faq details p { padding: 0 44px 24px 0; max-width: 42em; }
@media (max-width: 860px) { .faq-wrap { grid-template-columns: 1fr; } }

/* ---------- 마무리 상담 ---------- */
.cta-final { position: relative; min-height: 440px; display: flex; align-items: center; color: #fff; overflow: hidden; }
.cta-final img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cta-final::before { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(21,45,65,.55); }
.cta-final .wrap { position: relative; z-index: 2; }
.cta-final h2 { color: #fff; font-size: var(--fs-h2); line-height: 1.4; }
.cta-final .btn { margin-top: 28px; }
@media (max-width: 760px) { .cta-final { min-height: 380px; } .cta-final .btn { width: 100%; } }

/* ---------- 푸터 ---------- */
.site-footer { background: #203548; color: #d9d5cf; padding: 56px 0 36px; font-size: .9375rem; }
.site-footer p { color: #b9b3ab; }
.footer-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; flex-wrap: wrap; }
.footer-logo { font-size: 1.375rem; font-weight: 800; letter-spacing: -0.04em; color: #fff; }
.footer-top p { margin-top: 8px; }
.footer-nav { display: flex; gap: 24px; flex-wrap: wrap; }
.footer-nav a { text-decoration: none; color: #e9e5df; }
.footer-nav a:hover { text-decoration: underline; }
.credits { margin-top: 32px; padding-top: 20px; border-top: 1px solid #3a3835; max-width: 90ch; font-size: 13px; line-height: 1.7; color: #9a948c; }
.credits a { color: inherit; }
.copy { margin-top: 10px; font-size: 13px; }

/* ---------- 오른쪽 고정 SNS ---------- */
.sns { position: fixed; right: 22px; top: 50%; transform: translateY(-50%); z-index: 45; display: grid; gap: 11px; }
.sns-toggle { display: none; }
.sns-list { display: grid; gap: 11px; }
.sns-list a { position: relative; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; text-decoration: none; transition: transform .2s var(--ease); }
.sns-list a:hover, .sns-list a:focus-visible { transform: scale(1.07); }
.sns-list svg { width: 22px; height: 22px; }
.sns-list a::after {
  content: attr(data-name); position: absolute; right: calc(100% + 10px); top: 50%; transform: translateY(-50%) translateX(4px);
  background: var(--ink); color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap; padding: 5px 9px; border-radius: 6px;
  opacity: 0; pointer-events: none; transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.sns-list a:hover::after, .sns-list a:focus-visible::after { opacity: 1; transform: translateY(-50%); }
.sns-list a[aria-disabled="true"] { cursor: default; }
.sns-ig { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%); }
.sns-blog { background: #03c75a; }
.sns-kakao { background: #fee500; }
.sns-yt { background: #ff0000; }
@media (max-width: 900px) {
  .sns { top: auto; bottom: 16px; right: 14px; transform: none; justify-items: end; }
  .sns-toggle { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #fee500; cursor: pointer; box-shadow: 0 4px 14px -6px rgba(0,0,0,.4); }
  .sns-toggle svg { width: 24px; height: 24px; }
  .sns-list { order: -1; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s var(--ease), transform .25s var(--ease), visibility 0s .25s; }
  .sns.is-open .sns-list { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .sns-list a::after { opacity: 1; transform: translateY(-50%); }
  body.at-hero .sns { opacity: 0; pointer-events: none; }
  .sns { transition: opacity .3s var(--ease); }
}

/* ---------- 하위 페이지 공통 ---------- */
.page-hero { padding: clamp(56px, 8vw, 104px) 0 clamp(36px, 5vw, 56px); }
.page-hero h1, .page-hero .display { font-size: var(--fs-h1); line-height: 1.3; }
.page-hero p { margin-top: 16px; max-width: 34em; font-size: var(--fs-lead); }
.page-photo { width: 100%; height: clamp(280px, 42vw, 560px); object-fit: cover; }
.head { font-size: var(--fs-h2); }
.section { padding: var(--gap) 0; }
.field--surface { background: var(--warm); }
.close { padding: var(--gap) 0; }
.close p { font-size: var(--fs-h2); font-weight: 700; color: var(--ink); line-height: 1.4; max-width: 18em; letter-spacing: -0.025em; }
.close .actions { margin-top: 28px; display: flex; gap: 12px; flex-wrap: wrap; }

/* 소개: 원칙 */
.principle { display: grid; grid-template-columns: 4fr 8fr; gap: 32px; padding: 32px 0; border-top: 1px solid var(--line); }
.principle h3 { font-size: var(--fs-h3); }
.principle p + p { margin-top: 8px; }
@media (max-width: 760px) { .principle { grid-template-columns: 1fr; gap: 10px; } }
/* 소개: 팀 */
.team { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(28px, 5vw, 72px); }
.team-people { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.person-photo { aspect-ratio: 4 / 5; background: var(--greige); border-radius: 6px; display: grid; place-items: center; color: var(--taupe); }
.person-photo svg { width: 40%; }
.person strong { display: block; margin-top: 12px; font-size: var(--fs-h3); }
.person span { font-size: .9375rem; color: var(--muted); }
.team .lead { margin-top: 14px; }
@media (max-width: 860px) { .team { grid-template-columns: 1fr; } .team-people { grid-template-columns: 1fr 1fr; } }
/* 소개: 지역 */
.area { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.area img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.area-list { margin-top: 20px; display: grid; gap: 14px; }
.area-list strong { display: block; font-size: var(--fs-h3); }
@media (max-width: 860px) { .area { grid-template-columns: 1fr; } }
/* 소개: 가로 사진 */
.drag-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 24px; }
.drag-head h2 { font-size: var(--fs-h2); }
.drag-row { display: flex; gap: 12px; height: clamp(320px, 50vh, 520px); overflow-x: auto; scroll-snap-type: x proximity; padding: 0 var(--margin); scrollbar-width: none; cursor: grab; }
.drag-row::-webkit-scrollbar { display: none; }
.drag-row > * { flex: none; height: 100%; scroll-snap-align: start; }
.drag-row img { width: 100%; height: 100%; object-fit: cover; border-radius: 6px; }
.m-tall { aspect-ratio: 3 / 4; } .m-wide { aspect-ratio: 16 / 10; }
.m-pair { display: grid; grid-template-rows: 1fr 1fr; gap: 12px; aspect-ratio: 4 / 6.2; }
.m-pair img { min-height: 0; }

/* 문의 페이지 */
.contact { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(36px, 5vw, 80px); align-items: start; }
.form { display: grid; gap: 32px; }
.form fieldset { border: 0; padding: 0; margin: 0; }
.form legend, .form .label { display: block; padding: 0; margin-bottom: 12px; font-size: var(--fs-h3); font-weight: 700; color: var(--ink); letter-spacing: -0.02em; }
.choice { display: flex; flex-wrap: wrap; gap: 8px; }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice label { min-height: 44px; padding: 0 18px; display: inline-flex; align-items: center; border-radius: 999px; border: 1px solid var(--line); background: #fff; cursor: pointer; font-weight: 600; transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease); }
.choice label:hover { border-color: var(--taupe); }
.choice input:checked + label { background: var(--ink); color: #fff; border-color: var(--ink); }
.choice input:focus-visible + label { outline: 2px solid var(--blue); outline-offset: 3px; }
.range-row { display: flex; align-items: center; gap: 18px; }
.range-row output { font-size: 1.5rem; font-weight: 800; min-width: 4em; font-variant-numeric: tabular-nums; color: var(--ink); }
input[type="range"] { flex: 1; accent-color: var(--blue); height: 32px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.input label { display: block; font-weight: 600; margin-bottom: 8px; font-size: .9375rem; color: var(--ink); }
.input input, .input select, .input textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--line); background: #fff; border-radius: 8px; font-size: 1rem; transition: border-color .2s var(--ease); }
.input textarea { min-height: 120px; resize: vertical; }
.input input:focus, .input select:focus, .input textarea:focus { outline: none; border-color: var(--blue); }
.input input::placeholder, .input textarea::placeholder { color: #758b9d; }
.opt { display: grid; gap: 10px; }
.opt label { display: grid; grid-template-columns: 24px 1fr; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; transition: border-color .2s var(--ease); }
.opt label:hover { border-color: var(--taupe); }
.opt input { width: 20px; height: 20px; accent-color: var(--blue); margin: 3px 0 0; }
.opt strong { display: block; color: var(--ink); }
.opt span { color: var(--muted); font-size: .9375rem; }
.summary { position: sticky; top: calc(var(--header-h) + 24px); background: var(--warm); padding: 32px 28px; border-radius: 8px; }
.summary h2 { font-size: var(--fs-h3); }
.summary pre { white-space: pre-wrap; font-family: inherit; margin: 16px 0 0; font-size: .9375rem; line-height: 1.75; color: var(--ink); min-height: 8em; }
.summary .btn { width: 100%; margin-top: 22px; }
.summary .btn + .btn { margin-top: 10px; }
.summary #send-sms { background: var(--blue); color: #fff; }
.summary #copy-text { background: #fff !important; color: var(--ink); }
.summary .small { margin-top: 16px; }
.summary .err { color: #c0392b; font-weight: 600; margin-top: 12px; min-height: 1.6em; }
.contact-ways { margin-top: 24px; display: grid; gap: 4px; font-size: .9375rem; }
.contact-ways b { color: var(--ink); margin-right: 8px; }
.photo-band { display: grid; grid-template-columns: 2fr 1fr 1fr 2fr; gap: 12px; max-width: calc(var(--max) + var(--margin) * 2); margin: 0 auto; padding: 0 var(--margin); }
.photo-band img { width: 100%; height: clamp(180px, 20vw, 280px); object-fit: cover; border-radius: 6px; }
@media (max-width: 860px) {
  .contact { grid-template-columns: 1fr; }
  .summary { position: static; }
  .field-row { grid-template-columns: 1fr; }
  .photo-band { grid-template-columns: 1fr 1fr; gap: 8px; }
  .photo-band img { height: 150px; }
}

/* 서비스 상세 페이지 */
.svc-intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); }
.svc-block img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 6px; }
.svc-block h2 { margin-top: 22px; font-size: var(--fs-h2); }
.svc-block p { margin-top: 10px; }
.svc-block ul { margin-top: 16px; display: grid; gap: 6px; }
.svc-block li, .zone-col li { position: relative; padding-left: 14px; color: var(--muted); }
.svc-block li::before, .zone-col li::before { content: ""; position: absolute; left: 0; top: .72em; width: 5px; height: 5px; border-radius: 50%; background: var(--taupe); }
.zones4 { display: grid; grid-template-columns: repeat(4, 1fr); }
.zone-col { padding: 0 22px; }
.zone-col + .zone-col { border-left: 1px solid var(--line); }
.zone-col:first-child { padding-left: 0; } .zone-col:last-child { padding-right: 0; }
.zone-col img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.zone-col h3 { margin: 18px 0 10px; font-size: var(--fs-h3); }
.zone-col ul { display: grid; gap: 6px; font-size: .9375rem; }
.zone-col .zone-label { margin: 16px 0 6px; font-size: var(--fs-small); font-weight: 700; color: var(--ink); }
.price-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 56px; }
.price-group h3 { font-size: var(--fs-h3); padding-bottom: 10px; border-bottom: 1px solid var(--ink); margin-top: 32px; }
.price-group:nth-child(-n+2) h3 { margin-top: 0; }
.price-item { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.price-item b { color: var(--ink); font-weight: 600; }
.price-item span { display: block; font-size: .875rem; color: var(--muted); }
.price-item .v { font-weight: 600; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 1000px) {
  .zones4 { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .zone-col:nth-child(odd) { padding-left: 0; border-left: 0; }
  .zone-col:nth-child(even) { padding-right: 0; }
}
@media (max-width: 640px) {
  .svc-intro, .price-list { grid-template-columns: 1fr; }
  .price-group:nth-child(2) h3 { margin-top: 32px; }
  .zones4 { grid-template-columns: 1fr; row-gap: 0; }
  .zone-col, .zone-col:nth-child(odd), .zone-col:nth-child(even) { padding: 24px 0; border-left: 0; }
  .zone-col + .zone-col { border-top: 1px solid var(--line); }
  .zone-col:first-child { padding-top: 0; }
}

/* ---------- 등장 모션: 12~20px, 0.6초 ---------- */
.js .rise { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--ease), transform .6s var(--ease); transition-delay: calc(var(--i, 0) * 70ms); }
.js .rise.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .rise, .js .talk .msg { opacity: 1; transform: none; }
}

/* 안심톡: 집에 있는 장면 위로 알림이 하나씩 */
.talk { grid-template-columns: 5fr 7fr; }
.talk-stage { justify-items: stretch; }
.talk-media { position: relative; aspect-ratio: 16 / 11; border-radius: 6px; overflow: hidden; background: var(--greige); }
.talk-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 45%; }
.push-stack { position: absolute; right: 4.5%; top: 9%; width: min(360px, 56%); display: grid; gap: 10px; }
.push {
  display: grid; grid-template-columns: 34px 1fr 48px; gap: 12px; align-items: center;
  padding: 12px 12px 12px 14px; border-radius: 16px; background: rgba(255,255,255,.96);
  box-shadow: 0 10px 28px -14px rgba(32,53,72,.45); /* taste-skill-ignore: 영상 위에 뜬 알림 */
}
.push-app { width: 34px; height: 34px; border-radius: 9px; background: var(--blue); color: #fff; font-size: 14px; font-weight: 700; display: grid; place-items: center; }
.push-txt b { display: block; font-size: 12px; font-weight: 600; color: var(--muted); line-height: 1.4; }
.push-txt p { margin-top: 2px; font-size: .9375rem; font-weight: 600; color: var(--ink); line-height: 1.4; }
.push img { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; }
.js .talk-media .push { opacity: 0; transform: translateY(18px) scale(.97); }
.talk-media.is-playing .push { animation: pushIn 10s var(--ease) infinite; }
.talk-media.is-playing .push:nth-child(2) { animation-delay: 1.2s; }
.talk-media.is-playing .push:nth-child(3) { animation-delay: 2.4s; }
@keyframes pushIn {
  0% { opacity: 0; transform: translateY(18px) scale(.97); }
  6%, 80% { opacity: 1; transform: none; }
  90%, 100% { opacity: 0; transform: translateY(-8px) scale(.98); }
}
@media (max-width: 860px) {
  .talk { grid-template-columns: 1fr; }
  .talk-media { aspect-ratio: 4 / 5; }
  .talk-video { object-position: 28% 45%; }
  .push-stack { left: 4%; right: 4%; top: auto; bottom: 4%; width: auto; gap: 8px; }
  .push { grid-template-columns: 30px 1fr 42px; padding: 10px; gap: 10px; }
  .push-app { width: 30px; height: 30px; }
  .push img { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) { .js .talk-media .push { opacity: 1; transform: none; } }

/* ---------- 두 가지 안심: 나란히 두 칸 ---------- */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.duo-card { position: relative; min-height: 480px; border-radius: 10px; overflow: hidden; background: var(--warm); display: flex; }
.duo-text { position: relative; z-index: 2; padding: clamp(28px, 3vw, 40px); max-width: 58%; display: flex; flex-direction: column; justify-content: center; }
.duo-text .chip { margin-top: 0; align-self: flex-start; margin-bottom: 18px; background: #fff; }
.duo-text h3 { font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); }
.duo-key { margin-top: 14px; font-size: var(--fs-lead); font-weight: 600; color: var(--ink); line-height: 1.55; }
.duo-key + p { margin-top: 12px; font-size: .9375rem; }
.duo-text .link-more { margin-top: 20px; }
.duo-sample { position: absolute; z-index: 3; right: 12px; bottom: 12px; background: rgba(255,255,255,.9); }
.duo-photo { position: absolute; top: 0; right: 0; width: 62%; height: 100%; object-fit: cover; object-position: 40% 40%; }
.duo-women::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, var(--warm) 0%, var(--warm) 38%, rgba(240,247,252,.85) 46%, rgba(240,247,252,0) 62%); } /* taste-skill-ignore: 사진과 글을 잇는 페이드 */
.mini-phone { position: absolute; right: 8%; top: 36px; width: min(250px, 44%); bottom: -40px; background: #1d1c1a; border-radius: 34px; padding: 7px; z-index: 1; }
.mini-top { display: flex; align-items: center; justify-content: space-between; padding: 14px 14px 10px; background: #fff; border-radius: 28px 28px 0 0; font-size: .875rem; color: var(--ink); }
.mini-top b { font-size: .9375rem; }
.mini-top span { color: var(--muted); font-size: 1rem; }
.mini-chat { height: calc(100% - 44px); padding: 10px 12px 60px; display: grid; align-content: start; gap: 12px; background: #f2f8fc; overflow: hidden; }
.mini-msg { display: grid; grid-template-columns: 24px 1fr; gap: 8px; align-items: start; }
.mini-msg .av { width: 24px; height: 24px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.mini-msg p { display: inline-flex; align-items: baseline; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 4px 10px 10px 10px; padding: 4px 9px; }
.mini-msg time { font-size: 11px; font-weight: 500; color: var(--muted); }
.mini-msg img { margin-top: 6px; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; }
.js .mini-msg { opacity: 0; transform: translateY(14px); }
.duo-talk.is-playing .mini-msg { animation: chatIn 10s var(--ease) infinite; }
.duo-talk.is-playing .mini-msg:nth-child(2) { animation-delay: 1.1s; }
.duo-talk.is-playing .mini-msg:nth-child(3) { animation-delay: 2.2s; }
@keyframes chatIn {
  0% { opacity: 0; transform: translateY(14px); }
  6%, 82% { opacity: 1; transform: none; }
  92%, 100% { opacity: 0; transform: translateY(-6px); }
}
@media (max-width: 960px) {
  .duo { grid-template-columns: 1fr; }
  .duo-card { min-height: 0; flex-direction: column; }
  .duo-text { max-width: none; padding: 28px 24px 24px; }
  .duo-women .duo-photo { position: relative; width: 100%; height: auto; aspect-ratio: 16 / 10; order: 2; }
  .duo-women::after { display: none; }
  .mini-phone { position: relative; right: auto; top: auto; bottom: auto; width: min(260px, 72%); height: 420px; margin: 0 auto -60px; }
  .duo-talk .duo-text { padding-bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) { .js .mini-msg { opacity: 1; transform: none; } }

/* AI 생성 영상 표시 · 여성안심케어 칸 영상 */
.ai-note { position: absolute; left: var(--margin); bottom: 22px; font-size: 12px; color: rgba(255,255,255,.85); background: rgba(21,45,65,.35); padding: 3px 8px; border-radius: 4px; }
.duo-video { object-position: 62% 50%; }
@media (max-width: 760px) { .ai-note { bottom: 20px; left: 16px; } .hero-video, .hero-poster { object-position: 66% 50%; } }

/* 히어로(시안 사진형): 사진은 오른쪽, 왼쪽은 밝은 바탕에 글 */
.hero--photo { background: #eaf4fc; color: var(--ink); }
.hero-photo { position: absolute; top: 0; right: 0; width: 66%; height: 100%; object-fit: cover; object-position: 30% 22%; }
.hero-fade { position: absolute; inset: 0; background: linear-gradient(90deg, #eaf4fc 0%, #eaf4fc 30%, rgba(234,244,252,.88) 38%, rgba(234,244,252,0) 54%); } /* taste-skill-ignore: 사진과 글을 잇는 페이드 */
.hero--photo h1 { color: var(--ink); }
.hero--photo p { color: var(--muted); }
.hero--photo .ai-note { left: auto; right: var(--margin); background: rgba(255,255,255,.85); color: var(--muted); }
.duo-mock { object-position: 50% 20%; }
@media (max-width: 760px) {
  .hero--photo { color: #fff; }
  .hero-photo { width: 100%; object-position: 28% 20%; }
  .hero-fade { background: linear-gradient(0deg, rgba(21,45,65,.72) 0%, rgba(21,45,65,.35) 50%, rgba(21,45,65,0) 75%); }
  .hero--photo h1 { color: #fff; }
  .hero--photo p { color: rgba(255,255,255,.9); }
  .hero--photo .btn { background: #fff; color: var(--ink); }
  .hero--photo .ai-note { top: 12px; bottom: auto; right: 12px; }
}

/* =========================================================
   v8: 시안 2 레이아웃
   ========================================================= */
/* 세 가지 안심: 3칸 카드 */
.trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.trio-card { display: flex; flex-direction: column; background: var(--warm); border-radius: 10px; overflow: hidden; text-decoration: none; color: inherit; transition: transform .3s var(--ease); }
.trio-card:hover { transform: translateY(-4px); }
.trio-img { position: relative; aspect-ratio: 4 / 3.5; overflow: hidden; }
.trio-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.trio-card:hover .trio-img img { transform: scale(1.03); }
.trio-tag { position: absolute; left: 14px; bottom: 14px; font-size: 13px; font-weight: 600; color: var(--blue); background: #fff; border: 1px solid #c9d8f7; border-radius: 999px; padding: 3px 11px; }
.trio-body { position: relative; padding: 22px 56px 26px 22px; }
.trio-body h3 { font-size: var(--fs-h3); }
.trio-body p { margin-top: 8px; font-size: .9375rem; line-height: 1.6; }
.trio-go { position: absolute; right: 22px; bottom: 28px; width: 18px; height: 18px; color: var(--ink); transition: transform .25s var(--ease); }
.trio-card:hover .trio-go { transform: translateX(4px); }
.trio-note { margin-top: 14px; text-align: right; }
@media (max-width: 900px) { .trio { grid-template-columns: 1fr; gap: 14px; } .trio-img { aspect-ratio: 16 / 10; } }

/* 안심톡 띠: 글 | 사진 | 카톡 화면 */
.band { position: relative; background: #e6f2fb; padding: clamp(48px, 6vw, 80px) 0 28px; overflow: hidden; }
.band-grid { display: grid; grid-template-columns: 4.2fr 4fr 3.3fr; gap: clamp(24px, 3vw, 40px); align-items: center; }
.band-text h2 { font-size: var(--fs-h2); line-height: 1.4; }
.band-text p { margin-top: 14px; font-size: var(--fs-lead); }
.band-photo { position: relative; aspect-ratio: 255 / 220; border-radius: 10px; overflow: hidden; background: var(--greige); }
.band-photo img, .band-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.band-play { position: absolute; left: 37.3%; top: 59%; transform: translate(-50%, -50%); width: 54px; height: 54px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: var(--ink); display: grid; place-items: center; cursor: pointer; transition: transform .2s var(--ease); }
.band-play:hover { transform: translate(-50%, -50%) scale(1.08); }
.band-play svg { width: 18px; height: 18px; margin-left: 3px; }
.band-photo.is-video .band-play { display: none; }
.kphone { justify-self: center; width: min(280px, 100%); background: #1d1c1a; border-radius: 36px; padding: 8px; }
.kphone-top { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px 10px; background: #fff; border-radius: 28px 28px 0 0; font-size: .875rem; }
.kphone-top b { font-size: .9375rem; color: var(--ink); }
.kphone-top span { color: var(--muted); }
.kchat { background: #bacee0; padding: 14px 12px 18px; display: grid; gap: 10px; border-radius: 0 0 28px 28px; min-height: 380px; align-content: start; }
.kmsg { display: grid; grid-template-columns: 30px 1fr; gap: 8px; align-items: start; }
.kav { width: 30px; height: 30px; border-radius: 11px; background: #fee500; color: #3c1e1e; font-size: 9px; font-weight: 800; display: grid; place-items: center; letter-spacing: -.02em; }
.kbubble { background: #fff; border-radius: 4px 14px 14px 14px; padding: 10px 12px; }
.kbubble b { display: block; font-size: 12px; color: var(--ink); }
.kbubble p { margin-top: 2px; font-size: 13px; color: var(--ink); line-height: 1.45; }
.kbubble time { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; }
.kbtn { display: block; margin-top: 8px; text-align: center; font-size: 12px; font-weight: 600; color: var(--blue); background: #eef3fd; border-radius: 6px; padding: 6px; }
.js .kmsg { opacity: 0; transform: translateY(14px); }
.kphone.is-playing .kmsg { animation: chatIn 10s var(--ease) infinite; }
.kphone.is-playing .kmsg:nth-child(2) { animation-delay: 1.1s; }
.kphone.is-playing .kmsg:nth-child(3) { animation-delay: 2.2s; }
.band-note { margin-top: 18px; text-align: right; }
@media (max-width: 960px) {
  .band-grid { grid-template-columns: 1fr; }
  .kphone { width: min(300px, 86%); }
}
@media (prefers-reduced-motion: reduce) { .js .kmsg { opacity: 1; transform: none; } }

/* 현장에서 증명: 영상 4칸 */
.proof { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.proof-media { position: relative; aspect-ratio: 6 / 5; border-radius: 8px; overflow: hidden; background: var(--greige); }
.proof-media video { width: 100%; height: 100%; object-fit: cover; }
.proof-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); color: var(--ink); display: grid; place-items: center; cursor: pointer; transition: opacity .25s var(--ease), transform .2s var(--ease); }
.proof-play svg { width: 16px; height: 16px; margin-left: 2px; }
.proof-media.is-playing .proof-play { opacity: 0; }
.proof-media.is-playing:hover .proof-play { opacity: .9; }
.proof-item h3 { margin-top: 14px; font-size: var(--fs-h3); }
.proof-item p { margin-top: 4px; font-size: .9375rem; line-height: 1.55; }
@media (max-width: 900px) { .proof { grid-template-columns: 1fr 1fr; } }

/* 청소 과정: 단계 사이 화살표 */
.process--arrows li { position: relative; }
.process--arrows li:not(:last-child)::after { content: "\203A"; position: absolute; right: 10px; top: 40px; font-size: 22px; color: var(--taupe); }
@media (max-width: 900px) { .process--arrows li::after { display: none; } }

/* 서비스 2칸 카드 */
.services2--card .svc2 { display: block; background: var(--warm); border-radius: 10px; overflow: hidden; text-decoration: none; color: inherit; transition: transform .3s var(--ease); }
.services2--card .svc2:hover { transform: translateY(-4px); }
.services2--card .svc2 img { aspect-ratio: 16 / 7; border-radius: 0; }
.svc2-body { padding: 20px 22px 24px; }
.svc2-body h3 { margin-top: 0; }
.svc2-body .link-more { margin-top: 12px; }

/* 마무리 */
.cta-final p { margin-top: 12px; color: rgba(255,255,255,.85); max-width: 26em; }

/* SNS: 모든 화면에서 오른쪽 위쪽에 세로로 고정 */
.sns { top: calc(var(--header-h) + 96px) !important; bottom: auto !important; right: 20px !important; transform: none !important; opacity: 1 !important; pointer-events: auto !important; }
.sns-toggle { display: none !important; }
.sns-list { order: 0 !important; opacity: 1 !important; visibility: visible !important; transform: none !important; }
@media (max-width: 900px) {
  .sns { right: 10px !important; top: calc(var(--header-h) + 64px) !important; gap: 8px; }
  .sns-list { gap: 8px; }
  .sns-list a { width: 38px; height: 38px; box-shadow: 0 4px 12px -6px rgba(0,0,0,.35); }
  .sns-list svg { width: 20px; height: 20px; }
  .sns-list a::after { display: none; }
}
.band-text p { color: #5d7487; }
.kbtn { color: #1f5bd0; }
video[hidden], .band-video[hidden] { display: none !important; }
.hero--photo .hero-photo[src*="m2-hero"] { object-position: 55% 30%; }
/* SNS 자리 확보: 본문이 버튼 밑으로 들어가지 않게 */
main .wrap, .site-footer .wrap { padding-right: max(var(--margin), 80px); }
@media (max-width: 900px) {
  main .wrap, .site-footer .wrap { padding-right: 52px; }
  .sns { right: 8px !important; }
  .sns-list a { width: 34px; height: 34px; }
  .sns-list svg { width: 18px; height: 18px; }
  .hero .wrap { padding-right: var(--margin); }
}

/* 안심톡 카드: 사진 위로 카톡 메시지가 하나씩 */
.duo-kakao .kstack { position: absolute; z-index: 2; right: 4%; top: 50%; transform: translateY(-50%); width: min(250px, 44%); display: grid; gap: 10px; }
.duo-kakao .kbubble { box-shadow: 0 10px 26px -14px rgba(32,53,72,.45); } /* taste-skill-ignore: 사진 위에 뜬 메시지 */
.duo-kakao .kbubble p { font-size: 13px; }
.js .duo-kakao .kmsg { opacity: 0; transform: translateY(14px); }
.duo-kakao.is-playing .kmsg { animation: chatIn 10s var(--ease) infinite; }
.duo-kakao.is-playing .kmsg:nth-child(2) { animation-delay: 1.1s; }
.duo-kakao.is-playing .kmsg:nth-child(3) { animation-delay: 2.2s; }
@media (max-width: 960px) {
  .duo-kakao { display: grid; }
  .duo-kakao .duo-photo { order: 2; }
  .duo-kakao .kstack { top: auto; bottom: 16px; transform: none; right: 4%; left: 4%; width: auto; }
  .duo-kakao .kmsg:nth-child(2) { display: none; }
}
@media (prefers-reduced-motion: reduce) { .js .duo-kakao .kmsg { opacity: 1; transform: none; } }
@media (max-width: 960px) {
  .duo-kakao { display: flex; flex-direction: column; }
  .duo-kakao .duo-photo { order: 2; }
  .duo-kakao .kstack { order: 3; position: relative; top: auto; bottom: auto; left: auto; right: auto; transform: none; width: auto; margin: -170px 16px 16px; }
  .duo-kakao .duo-sample { bottom: auto; top: 12px; }
}
@media (max-width: 960px) { .duo-kakao .kmsg:nth-child(n+2) { display: none; } .duo-kakao .kstack { margin: -150px 16px 18px; } .duo-kakao.is-playing .kmsg { animation-duration: 6s; } }

/* =========================================================
   두 가지 안심 (시안 3): 좁은 칸 | 넓은 칸 + 카톡 휴대폰
   ========================================================= */
.pair { display: grid; grid-template-columns: 1fr 1.85fr; gap: 20px; align-items: stretch; }
.pair-card { display: flex; flex-direction: column; background: var(--warm); border-radius: 12px; padding: clamp(22px, 2.4vw, 32px); }
.pair-card .chip { margin: 0 0 16px; align-self: flex-start; background: #fff; border-color: #d5e5f1; }
.pair-card h3 { font-size: clamp(1.75rem, 1.4rem + 1.1vw, 2.25rem); line-height: 1.2; }
.pair-key { margin-top: 12px; font-size: var(--fs-h3); font-weight: 700; color: var(--ink); line-height: 1.4; letter-spacing: -0.02em; }
.pair-desc { margin-top: 4px; font-size: .9375rem; }
.pair-media { margin-top: 22px; border-radius: 10px; overflow: hidden; aspect-ratio: 541 / 424; flex: none; }
.pair-media img { width: 100%; height: 100%; object-fit: cover; }
.pair-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; font-weight: 600; color: var(--blue); text-decoration: none; }
.pair-link svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.pair-link:hover svg { transform: translateX(4px); }
.pair-card > .pair-link { margin-top: auto; padding-top: 20px; }
/* 넓은 칸 */
.pair-card--wide { display: grid; grid-template-columns: 1fr minmax(220px, 290px); grid-template-rows: 1fr auto; column-gap: 28px; }
.pair-main { display: flex; flex-direction: column; min-width: 0; }
.pair-card--wide .pair-media { aspect-ratio: 618 / 424; }
.kphone2 { align-self: end; justify-self: end; width: 100%; max-width: 290px; background: #1d1c1a; border-radius: 40px; padding: 9px; }
.kphone2-top { display: flex; justify-content: space-between; align-items: center; padding: 18px 18px 12px; background: #fff; border-radius: 32px 32px 0 0; font-size: .875rem; }
.kphone2-top b { font-size: .9375rem; color: var(--ink); }
.kphone2-top span { color: var(--muted); font-size: 1rem; }
.kchat2 { background: #bacee0; padding: 18px 12px 28px; border-radius: 0 0 32px 32px; display: grid; gap: 14px; align-content: start; min-height: 420px; }
.pair-foot { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 20px; padding-top: 14px; border-top: 1px solid var(--line); } /* taste-skill-ignore: 시안의 구분선 */
.pair-foot .pair-link { margin-top: 0; }
.pair-note { font-size: 13px; color: var(--muted); }
.js .kchat2 .kmsg { opacity: 0; transform: translateY(14px); }
.pair-card--wide.is-playing .kchat2 .kmsg { animation: chatIn 8s var(--ease) infinite; }
.pair-card--wide.is-playing .kchat2 .kmsg:nth-child(2) { animation-delay: 1.4s; }
@media (max-width: 1100px) {
  .pair { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .pair-card--wide { grid-template-columns: 1fr; }
  .kphone2 { justify-self: center; max-width: 280px; margin-top: 24px; }
  .kchat2 { min-height: 340px; }
  .pair-foot { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { .js .kchat2 .kmsg { opacity: 1; transform: none; } }
.pair-link { color: #2563d6; }
.pair-media, .pair-card--wide .pair-media { flex: 1 1 auto; aspect-ratio: auto; min-height: 280px; }
.pair-card > .pair-link { margin-top: 0; padding-top: 20px; }
@media (max-width: 700px) { .pair-media, .pair-card--wide .pair-media { flex: none; aspect-ratio: 541 / 424; min-height: 0; } }
@media (max-width: 700px) { .kchat2 { min-height: 300px; } }
.kav { font-size: 11px; letter-spacing: -0.04em; }

/* =========================================================
   두 가지 안심 (시안 4): 사진이 카드 전체에 깔리는 형태
   ========================================================= */
.pcards { display: grid; grid-template-columns: 1fr 1.55fr; gap: 16px; }
.pcard { position: relative; min-height: 560px; border-radius: 14px; overflow: hidden; background: #edf6fc; display: flex; align-items: center; }
.pcard-photo { position: absolute; top: 0; height: 100%; object-fit: cover; }
.pcard--women .pcard-photo { right: 0; width: 52%; object-position: 30% 20%; }
.pcard--talk .pcard-photo { left: 30%; width: 46%; object-position: 40% 30%; }
.pcard::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; } /* 사진과 글을 잇는 페이드 */
.pcard--women::before { background: linear-gradient(90deg, #edf6fc 0%, #edf6fc 44%, rgba(237,246,252,.7) 52%, rgba(237,246,252,0) 64%); } /* taste-skill-ignore: 사진 페이드 */
.pcard--talk::before { background: linear-gradient(90deg, #edf6fc 0%, #edf6fc 29%, rgba(237,246,252,.6) 36%, rgba(237,246,252,0) 46%, rgba(237,246,252,0) 70%, rgba(237,246,252,.85) 78%, #edf6fc 84%); } /* taste-skill-ignore: 사진 페이드 */
.pcard-text { position: relative; z-index: 2; padding: clamp(28px, 3vw, 44px); max-width: 360px; }
.pcard-text .chip { margin: 0 0 18px; background: #fff; border-color: #d5e5f1; }
.pcard-text h3 { font-size: clamp(1.875rem, 1.4rem + 1.5vw, 2.625rem); line-height: 1.15; }
.pcard-key { margin-top: 18px; font-size: clamp(1.125rem, 1rem + .6vw, 1.5rem); font-weight: 700; color: var(--ink); line-height: 1.4; letter-spacing: -0.02em; }
.pcard-desc { margin-top: 14px; font-size: 1rem; line-height: 1.7; }
/* 흰색 알약 링크: 배경과 겹치지 않게 */
.pill-link {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 28px; padding: 11px 20px; border-radius: 999px;
  background: #fff; color: #1f5bd0; font-weight: 700; font-size: 1rem; text-decoration: none;
  box-shadow: 0 6px 18px -10px rgba(32,53,72,.35); /* taste-skill-ignore: 사진 위 버튼 */
  transition: transform .2s var(--ease), background-color .2s var(--ease);
}
.pill-link svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.pill-link:hover { background: #f7f9ff; }
.pill-link:hover svg { transform: translateX(4px); }
.pill-link:active { transform: scale(.97); }
.pcard-phone { position: absolute; z-index: 2; right: 3.5%; top: 50%; transform: translateY(-50%); width: min(260px, 24%); max-width: none; }
.pcard-phone .kchat2 { min-height: 380px; }
.pcard-note { position: absolute; z-index: 2; right: 4%; bottom: 14px; font-size: 13px; color: var(--muted); }
.js .pcard .kmsg { opacity: 0; transform: translateY(14px); }
.pcard--talk.is-playing .kmsg { animation: chatIn 8s var(--ease) infinite; }
.pcard--talk.is-playing .kmsg:nth-child(2) { animation-delay: 1.4s; }
@media (max-width: 1100px) {
  .pcards { grid-template-columns: 1fr; }
  .pcard--talk .pcard-photo { left: 34%; width: 40%; }
}
@media (max-width: 700px) {
  .pcard { min-height: 0; flex-direction: column; align-items: stretch; }
  .pcard-photo { position: relative; width: 100% !important; left: auto !important; right: auto !important; height: auto; aspect-ratio: 4 / 3.4; order: 2; }
  .pcard::before { display: none; }
  .pcard-text { max-width: none; padding: 28px 22px 22px; }
  .pcard-phone { position: relative; right: auto; top: auto; transform: none; width: min(270px, 80%); margin: -120px auto 40px; order: 3; }
  .pcard-phone .kchat2 { min-height: 300px; }
  .pcard-note { right: 50%; transform: translateX(50%); bottom: 12px; white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) { .js .pcard .kmsg { opacity: 1; transform: none; } }
.pcards { grid-template-columns: 1fr 1.8fr; }
@media (max-width: 1100px) { .pcards { grid-template-columns: 1fr; } }
.pcard-phone { width: 250px; }
.pill-link { box-shadow: none; border: 1px solid #d8e7f2; }
@media (max-width: 1100px) { .pcard-phone { width: 250px; } }
@media (max-width: 700px) { .pcard-phone { width: min(260px, 78%); margin: -40px auto 44px; } .pcard--talk .pcard-photo { object-position: 30% 20%; } }

/* =========================================================
   두 가지 안심 (시안 그대로): 카드 사진 통째 + 글·휴대폰을 같은 자리에
   ========================================================= */
.mcards { display: grid; grid-template-columns: 664fr 1032fr; gap: 16px; }
.mcard { position: relative; container-type: inline-size; border-radius: 14px; overflow: hidden; background: #eef7fd; }
.mcard--left { aspect-ratio: 664 / 729; }
.mcard--right { aspect-ratio: 1032 / 729; }
.mcard picture, .mcard-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.mcard-bg { object-fit: cover; }
/* 시안에 박힌 글씨를 카드 바탕색으로 덮음 */
.mcard-cover { position: absolute; inset: 0; pointer-events: none; }
.mcard--left .mcard-cover { background: linear-gradient(90deg, #eef7fd 0%, #eef7fd 53%, rgba(238,247,253,0) 59%); } /* taste-skill-ignore: 시안 글씨 덮기 */
.mcard--right .mcard-cover { background: linear-gradient(90deg, #eef7fd 0%, #eef7fd 33%, rgba(238,247,253,0) 38%); -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 83%, transparent 90%); mask-image: linear-gradient(180deg, #000 0%, #000 83%, transparent 90%); } /* taste-skill-ignore: 시안 글씨 덮기 */
.mcard-text { position: absolute; top: 14.4%; z-index: 2; }
.mcard--left .mcard-text { left: 7.2cqw; right: 46cqw; }
.mcard--right .mcard-text { left: 4.6cqw; width: 30cqw; }
.mcard .chip { margin: 0; background: #fff; border-color: #d5e5f1; font-size: max(12px, 2.3cqw); padding: .45em 1.1em; }
.mcard--right .chip { font-size: max(12px, 1.5cqw); }
.mcard h3 { margin-top: 5.4cqw; font-size: 7.6cqw; line-height: 1.1; letter-spacing: -0.035em; }
.mcard--right h3 { margin-top: 3.5cqw; font-size: 4.9cqw; }
.mcard-key { margin-top: 5cqw; font-size: 5.2cqw; font-weight: 700; color: var(--ink); line-height: 1.38; letter-spacing: -0.03em; }
.mcard--right .mcard-key { margin-top: 3.2cqw; font-size: 3.35cqw; }
.mcard-desc { margin-top: 5.6cqw; font-size: max(13px, 3.4cqw); line-height: 1.7; color: var(--muted); }
.mcard--right .mcard-desc { margin-top: 3.6cqw; font-size: max(13px, 2.2cqw); }
.mcard .pill-link { margin-top: 6.8cqw; font-size: max(13px, 3cqw); padding: .7em 1.25em; }
.mcard--right .pill-link { margin-top: 4.4cqw; font-size: max(13px, 1.95cqw); }
/* 움직이는 휴대폰: 시안 휴대폰 위에 정확히 겹침 */
.mphone { position: absolute; z-index: 2; left: 69%; top: 11.6%; width: 28.2%; height: 77.8%; background: #1d1c1a; border-radius: 4cqw; padding: .9cqw; display: flex; flex-direction: column; }
.mphone-top { display: flex; justify-content: space-between; align-items: center; padding: 2.2cqw 1.8cqw 1.4cqw; background: #fff; border-radius: 3.2cqw 3.2cqw 0 0; font-size: 1.4cqw; }
.mphone-top b { font-size: 1.5cqw; color: var(--ink); }
.mphone-top span { color: var(--muted); font-size: 1.8cqw; }
.mphone-chat { flex: 1; background: #d5e3f0; border-radius: 0 0 3.2cqw 3.2cqw; padding: 2.4cqw 1.3cqw; display: grid; gap: 1.8cqw; align-content: start; }
.mphone .kmsg { grid-template-columns: 4cqw 1fr; gap: 1cqw; }
.mphone .kav { width: 4cqw; height: 4cqw; border-radius: 1.3cqw; font-size: max(11px, 1.15cqw); }
.mphone .kbubble { border-radius: .6cqw 1.6cqw 1.6cqw 1.6cqw; padding: 1.4cqw 1.4cqw; }
.mphone .kbubble b { font-size: max(11px, 1.3cqw); }
.mphone .kbubble p { font-size: max(11px, 1.35cqw); }
.mphone .kbubble time { font-size: max(11px, 1.2cqw); }
.mphone .kbtn { margin-top: 1.2cqw; font-size: max(11px, 1.3cqw); padding: .9cqw; }
.js .mphone .kmsg { opacity: 0; transform: translateY(14px); }
.mcard--right.is-playing .mphone .kmsg { animation: chatIn 8s var(--ease) infinite; }
.mcard--right.is-playing .mphone .kmsg:nth-child(2) { animation-delay: 1.4s; }
@media (max-width: 1100px) { .mcards { grid-template-columns: 1fr; } }
/* 모바일: 글 위, 사진 아래 (사진 속 휴대폰은 시안 그대로) */
@media (max-width: 700px) {
  .mcard--left, .mcard--right { aspect-ratio: auto; display: flex; flex-direction: column; }
  .mcard picture { position: relative; order: 2; display: block; height: auto; }
  .mcard-bg { position: relative; height: auto; aspect-ratio: 309 / 729; max-height: 460px; object-position: 30% 20%; }
  .mcard--right .mcard-bg { aspect-ratio: 680 / 729; max-height: none; }
  .mcard-cover, .mphone { display: none; }
  .mcard-text { position: relative; inset: auto; padding: 28px 22px 22px; width: auto !important; }
  .mcard .chip { font-size: 13px; }
  .mcard h3, .mcard--right h3 { margin-top: 16px; font-size: 1.875rem; }
  .mcard-key, .mcard--right .mcard-key { margin-top: 12px; font-size: 1.125rem; }
  .mcard-desc, .mcard--right .mcard-desc { margin-top: 10px; font-size: .9375rem; }
  .mcard .pill-link, .mcard--right .pill-link { margin-top: 20px; font-size: .9375rem; }
}
@media (prefers-reduced-motion: reduce) { .js .mphone .kmsg { opacity: 1; transform: none; } }
@media (max-width: 700px) { .mcard--left .mcard-text, .mcard--right .mcard-text { left: auto; right: auto; top: auto; } }
/* 페이드를 더 길고 부드럽게 (글씨가 끝나는 지점부터 천천히) */
.mcard--left .mcard-cover { background: linear-gradient(90deg, #eef7fd 0%, #eef7fd 52%, rgba(238,247,253,.92) 55%, rgba(238,247,253,.75) 58.5%, rgba(238,247,253,.52) 62%, rgba(238,247,253,.3) 65.5%, rgba(238,247,253,.13) 69%, rgba(238,247,253,0) 73%); } /* taste-skill-ignore: 시안 글씨 덮기 */
.mcard--right .mcard-cover { background: linear-gradient(90deg, #eef7fd 0%, #eef7fd 32%, rgba(238,247,253,.92) 34%, rgba(238,247,253,.74) 36.5%, rgba(238,247,253,.5) 39%, rgba(238,247,253,.28) 41.5%, rgba(238,247,253,.11) 44%, rgba(238,247,253,0) 47%); -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 80%, rgba(0,0,0,.6) 85%, rgba(0,0,0,.2) 90%, transparent 94%); mask-image: linear-gradient(180deg, #000 0%, #000 80%, rgba(0,0,0,.6) 85%, rgba(0,0,0,.2) 90%, transparent 94%); } /* taste-skill-ignore: 시안 글씨 덮기 */
/* 여성안심케어: 사진 경계를 블러로 한 번 더 흐리게 */
.mcard--left::after { content: ""; position: absolute; top: 0; bottom: 0; left: 46%; width: 24%; z-index: 1; pointer-events: none;
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 25%, #000 45%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 25%, #000 45%, transparent 100%); } /* taste-skill-ignore: 사진 경계 블러 */
.mcard--left .mcard-cover { background: linear-gradient(90deg, #eef7fd 0%, #eef7fd 52%, rgba(238,247,253,.9) 55%, rgba(238,247,253,.72) 58.5%, rgba(238,247,253,.5) 62%, rgba(238,247,253,.3) 65.5%, rgba(238,247,253,.15) 69%, rgba(238,247,253,.05) 72%, rgba(238,247,253,0) 76%); } /* taste-skill-ignore: 시안 글씨 덮기 */
@media (max-width: 700px) { .mcard--left::after { display: none; } }

/* 여성안심케어: 어깨를 가리지 않게. 위쪽(긴 글씨 줄)만 넓게 덮고, 어깨가 있는 아래쪽은 글씨 끝까지만 */
.mcard--left::after { display: none !important; }
.mcard--left .mcard-cover { background: none; }
.mcard--left .mcard-cover::before, .mcard--left .mcard-cover::after { content: ""; position: absolute; inset: 0; }
.mcard--left .mcard-cover::before { /* 위쪽: 제목·큰 문구 줄 */
  background: linear-gradient(90deg, #eef7fd 0%, #eef7fd 53%, rgba(238,247,253,.75) 56%, rgba(238,247,253,.35) 59%, rgba(238,247,253,0) 62%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 49%, transparent 56%); mask-image: linear-gradient(180deg, #000 0%, #000 49%, transparent 56%); } /* taste-skill-ignore: 시안 글씨 덮기 */
.mcard--left .mcard-cover::after { /* 전체 높이: 짧은 글씨 줄까지만, 어깨(카드 48%~) 전에 끝 */
  background: linear-gradient(90deg, #eef7fd 0%, #eef7fd 43.5%, rgba(238,247,253,.6) 45.5%, rgba(238,247,253,0) 47.5%); } /* taste-skill-ignore: 시안 글씨 덮기 */
.mcard--left .mcard-desc { font-size: max(13px, 3cqw); }
.mcard--left .pill-link { font-size: max(12px, 2.6cqw); padding: .6em 1.05em; }

/* =========================================================
   여성안심케어·안심톡 섹션 최종 스펙
   40:60, 간격 22px, 모서리 16px, 두 카드 글자 크기·시작 높이 동일
   ========================================================= */
.mcards { gap: 22px; }
.mcard { border-radius: 16px; }
.mcard-text { top: 14.5%; bottom: 20%; display: flex; flex-direction: column; align-items: flex-start; }
.mcard--left .mcard-text { left: 6%; right: auto; width: 46%; }
.mcard--right .mcard-text { left: 4.6%; width: 32%; }
.mcard .chip, .mcard--right .chip { font-size: 13px; padding: 6px 14px; border-color: #d5e5f1; color: #203548; }
.mcard .chip::before { background: #1670ff; }
.mcard h3, .mcard--right h3 { margin-top: 18px; font-size: clamp(1.75rem, 1.4rem + .6vw, 2rem); font-weight: 800; color: #203548; line-height: 1.2; letter-spacing: -0.03em; }
.mcard-key, .mcard--right .mcard-key { margin-top: 14px; font-size: clamp(1.125rem, 1rem + .3vw, 1.25rem); font-weight: 700; color: #203548; line-height: 1.45; }
.mcard-desc, .mcard--left .mcard-desc, .mcard--right .mcard-desc { margin-top: 14px; font-size: 1rem; line-height: 1.65; color: #5d7487; }
/* 하단 링크: 두 카드 같은 높이 */
.mcard .pill-link, .mcard .text-link { margin-top: auto; }
.mcard--left .pill-link { font-size: .875rem; padding: 9px 15px; color: #1670ff; background: #fff; border: 1px solid #d5e5f1; box-shadow: 0 2px 8px -4px rgba(23,23,23,.18); } /* taste-skill-ignore: 사진 위 흰 알약 버튼의 아주 약한 그림자 */
.text-link { display: inline-flex; align-items: center; gap: 6px; padding: 9px 0; font-weight: 700; font-size: .9375rem; color: #1670ff; text-decoration: none; }
.text-link svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.text-link:hover svg { transform: translateX(4px); }
/* 알림톡 메시지 글자: 읽을 수 있게 */
.mphone .kbubble b, .mphone .kbubble p, .mphone .kbtn { font-size: max(12px, 1.35cqw); }
.mphone-chat { background: #dbe8f5; }
@media (max-width: 700px) {
  .mcard-text, .mcard--left .mcard-text, .mcard--right .mcard-text { position: relative; inset: auto; width: auto; padding: 28px 22px 24px; }
  .mcard .pill-link, .mcard .text-link { margin-top: 20px; }
}

/* =========================================================
   밀도 조정: 콘텐츠 1000px · 섹션 여백 120px · 제목 30px · 본문 16px
   ========================================================= */
:root {
  --max: 1000px;
  --fs-h2: clamp(1.5rem, 1.35rem + .4vw, 1.875rem);
  --fs-body: 1rem;
  --fs-lead: 1.0625rem;
  --fs-h3: 1.125rem;
}
.sec { padding: 120px 0; }
.sec:not(.sec--warm) + .sec:not(.sec--warm) { padding-top: 0; }
.sec-head { margin-bottom: 48px; }
.sec-head .h2, .sec-head h2 { line-height: 1.35; }
.sec-note { margin-top: 18px; text-align: right; }
@media (min-width: 1240px) { main .wrap, .site-footer .wrap { padding-right: var(--margin); } }
@media (max-width: 760px) { .sec { padding: 64px 0; } .sec-head { margin-bottom: 32px; } }

/* 매니저: 작은 프로필 6개 한 줄 */
.mgrs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.mgr img { width: 100%; aspect-ratio: 88 / 120; object-fit: cover; object-position: 50% 20%; border-radius: 8px; background: var(--greige); }
.mgr b { display: block; margin-top: 12px; font-size: .9375rem; font-weight: 600; color: var(--ink); text-align: center; }
.mgr span { display: block; margin-top: 2px; font-size: 13px; color: var(--muted); text-align: center; }
@media (max-width: 760px) { .mgrs { grid-template-columns: repeat(3, 1fr); gap: 20px 12px; } }

/* 맡기는 마음까지: 카드 글을 줄이고 작게 */
#care .mcards { gap: 20px; }
#care .mcard h3 { margin-top: 16px; font-size: 1.375rem; }
#care .mcard-desc { margin-top: 10px; font-size: .9375rem; line-height: 1.6; }
#care .mcard-text { top: 16%; bottom: 18%; }
#care .mcard .pill-link { font-size: .875rem; padding: 8px 14px; }
#care .mcard .text-link { font-size: .875rem; }
#care .mcard .chip { font-size: 12px; padding: 5px 12px; }
#care .mphone .kbubble b, #care .mphone .kbubble p, #care .mphone .kbtn, #care .mphone .kbubble time { font-size: max(10.5px, 1.35cqw); }
#care .mphone .kav { font-size: 11px; }

/* 고객 후기: 블로그 후기 3칸 */
.rvs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.rv { display: block; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; text-decoration: none; color: inherit; transition: transform .3s var(--ease); }
.rv:hover { transform: translateY(-3px); }
.rv-img { position: relative; aspect-ratio: 19 / 15; overflow: hidden; }
.rv-img img { width: 100%; height: 100%; object-fit: cover; }
.rv-tag { position: absolute; right: 10px; top: 10px; font-size: 12px; font-weight: 600; background: #fff; color: var(--ink); padding: 4px 10px; border-radius: 999px; }
.rv-body { position: relative; padding: 16px 18px 44px; }
.rv-src { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; color: #03c75a; }
.rv-src i { font-style: normal; width: 16px; height: 16px; border-radius: 4px; background: #03c75a; color: #fff; font-size: 10px; display: grid; place-items: center; }
.rv h3 { margin-top: 8px; font-size: 1rem; }
.rv p { margin-top: 4px; font-size: .875rem; }
.rv-go { position: absolute; left: 18px; bottom: 16px; width: 16px; height: 16px; color: var(--blue); }
.rv[aria-disabled="true"] { cursor: default; }
@media (max-width: 760px) {
  .rvs { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(var(--margin) * -1); padding: 0 var(--margin) 4px; scroll-padding-inline: var(--margin); scrollbar-width: none; }
  .rvs::-webkit-scrollbar { display: none; }
  .rv { scroll-snap-align: start; }
}
.rv-src { color: #0a8a43; }
.rv-img { aspect-ratio: 190 / 118; }
.rv-src { color: #087a3b; }
.rv-src i { width: 20px; height: 20px; font-size: 11px; border-radius: 5px; }
.rv-tag { padding: 5px 12px; }

/* 대표 중심 소개 — 2026-10-29 */
.hero--representative {height:auto; min-height:0; background:#eaf4fc; color:var(--ink);}
.representative-hero-grid {display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px;}
.representative-hero-copy {padding:64px 0;}
.representative-eyebrow {display:block; font-size:13px; font-weight:600; letter-spacing:.04em; color:var(--muted); margin-bottom:24px;}
.hero--representative h1 {color:var(--ink); font-size:clamp(38px,4.8vw,64px); line-height:1.23;}
.hero--representative p {color:var(--muted); margin-top:24px;}
.representative-actions {display:flex; align-items:center; gap:24px; margin-top:32px; flex-wrap:wrap;}
.hero--representative .btn {margin:0;}
.representative-link {font-size:14px; text-decoration:none; border-bottom:1px solid #aac6db; padding:8px 0;}
.representative-hero-photo {position:relative; align-self:end;}
.representative-hero-photo img {width:100%; height:clamp(480px,48vw,650px); object-fit:cover; object-position:center 22%;}
.representative-hero-photo figcaption {position:absolute; bottom:24px; left:24px; right:24px; padding:16px 20px; background:rgba(255,255,255,.9); font-weight:600; color:var(--ink);}
.representative-hero-photo figcaption span {display:block; font-size:12px; font-weight:400; color:var(--muted); margin-top:3px;}
.representative-intro {display:grid; grid-template-columns:1fr 1fr; gap:64px;}
.representative-statement {font-size:24px; font-weight:600; color:var(--ink); margin-bottom:16px;}
.representative-principles {margin-top:28px; border-top:1px solid var(--line);}
.representative-principles li {padding:18px 0; border-bottom:1px solid var(--line);}
.representative-principles strong {display:block; font-size:16px;}
.representative-principles span {font-size:14px; color:var(--muted);}
.representative-about {display:grid; grid-template-columns:minmax(0,380px) 1fr; align-items:center; gap:80px;}
.representative-about > img {width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:8px;}
.representative-about .lead {margin:24px 0;}
@media(max-width:760px) {
  .representative-hero-grid {grid-template-columns:1fr; gap:0;}
  .representative-hero-copy {padding:40px 0 32px;}
  .representative-eyebrow {font-size:11px; margin-bottom:20px;}
  .hero--representative .btn {width:auto;}
  .representative-actions {gap:20px; margin-top:24px;}
  .representative-hero-photo img {height:auto; max-height:520px; aspect-ratio:4/5; object-position:center 22%;}
  .representative-hero-photo figcaption {bottom:16px; left:16px; right:16px;}
  .representative-intro,.representative-about {grid-template-columns:1fr; gap:32px;}
  .representative-about > img {max-width:380px;}
  .representative-statement {font-size:20px;}
}

/* White and pale sky palette across all four pages. */
.site-header {border-bottom:1px solid var(--line);}
.page-hero {background:linear-gradient(120deg,#ffffff 0%,#edf7ff 100%);}
.site-footer {background:#edf6fc; color:var(--ink); border-top:1px solid var(--line);}
.site-footer p,.credits {color:var(--muted);}
.footer-logo,.footer-nav a {color:var(--ink);}
.credits {border-top-color:var(--line);}
.choice input:checked + label {background:var(--blue); border-color:var(--blue);}
.input input:focus,.input select:focus,.input textarea:focus {border-color:var(--blue);}
.input input[type=range],input[type=checkbox],input[type=range] {accent-color:var(--blue);}
.summary {border:1px solid var(--line); background:#edf6ff;}
.cta-final {background:#eaf4fc; color:var(--ink);}
.cta-final::before {background:linear-gradient(90deg,rgba(234,244,252,.98),rgba(234,244,252,.9));}
.cta-final h2 {color:var(--ink);}
.cta-final p {color:var(--muted);}
.cta-final .btn--white {background:var(--blue); color:#fff;}
.cta-final .btn--white:hover {background:var(--blue-press);}
.representative-hero-photo {padding-top:28px;}
.representative-hero-photo img {height:auto; max-height:none; width:100%; object-fit:contain;}
.representative-hero-photo figcaption {position:static; margin:0; background:#fff; border-top:1px solid var(--line);}
.representative-about > img {height:auto; aspect-ratio:auto; object-fit:contain;}
@media(max-width:760px) {
  .representative-hero-photo {padding-top:0; width:min(100%,420px); justify-self:center;}
  .representative-hero-photo img {height:auto; max-height:none; aspect-ratio:auto; object-fit:contain;}
  .representative-hero-copy {padding-top:36px;}
}

/* Interior opening and service-led homepage. */
.hero--interior {height:min(84svh,850px); min-height:560px; background:#dcebf5;}
.hero--interior .hero-video {object-position:center;}
.interior-shade {position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,37,57,.62),rgba(13,37,57,.22) 65%,rgba(13,37,57,.12));}
.interior-copy {position:relative; height:100%; display:flex; flex-direction:column; justify-content:center; align-items:flex-start;}
.interior-eyebrow {font-size:13px; letter-spacing:.1em; margin-bottom:28px; color:#fff;}
.hero--interior h1 {font-size:clamp(44px,5.2vw,76px); line-height:1.22; font-weight:600;}
.hero--interior p {margin-top:24px; color:#fff;}
.hero--interior .btn {margin-top:32px;}
.interior-toggle {position:absolute; right:28px; bottom:24px; border:1px solid rgba(255,255,255,.6); background:rgba(13,37,57,.35); color:#fff; border-radius:24px; padding:10px 16px; cursor:pointer;}
.interior-note {position:absolute; bottom:28px; left:var(--margin); font-size:11px; color:#fff;}
.brand-assurances {background:#edf6fc; border-bottom:1px solid var(--line);}
.brand-assurances .wrap {display:grid; grid-template-columns:repeat(3,1fr); padding-top:32px; padding-bottom:32px;}
.brand-assurances p {text-align:center; border-right:1px solid #cadfea;}
.brand-assurances p:last-child {border:0;}
.brand-assurances strong {display:block; color:var(--ink); font-size:20px; font-weight:600;}
.brand-assurances span {display:block; margin-top:6px; font-size:13px;}
#services .sec-head,#reviews .sec-head,#scope-preview .sec-head {margin-bottom:40px;}
.representative-profile {display:grid; grid-template-columns:minmax(0,420px) 1fr; align-items:center; gap:80px;}
.representative-profile figure {background:#edf6fc;}
.representative-profile figure img {width:100%; height:auto;}
.representative-profile figcaption {font-size:13px; padding:16px 20px; color:var(--muted); background:#f0f7fc;}
.representative-profile .representative-intro {display:block; padding:0;}
.representative-profile .representative-intro-copy {margin-top:28px;}
#representative {background:linear-gradient(120deg,#f4faff,#fff);}
@media(max-width:760px) {
 .hero--interior {height:78svh; min-height:560px; max-height:760px;}
 .interior-eyebrow {font-size:11px; letter-spacing:.02em;}
 .hero--interior h1 {font-size:44px;}
 .hero--interior p {font-size:15px;}
 .hero--interior .btn {width:auto;}
 .brand-assurances .wrap {padding:24px 16px; gap:8px;}
 .brand-assurances strong {font-size:13px;}
 .brand-assurances span {font-size:11px;}
 .representative-profile {grid-template-columns:1fr; gap:32px;}
 .representative-profile figure {width:min(100%,380px); justify-self:center;}
 .interior-toggle {right:16px; bottom:18px; font-size:11px;}
 .interior-note {bottom:24px; font-size:10px;}
}

/* Fresh interior footage, balanced for white text readability. */
.hero--interior .hero-video {filter:brightness(1.13) saturate(.8);}
.interior-shade {background:linear-gradient(90deg,rgba(13,37,57,.55),rgba(13,37,57,.16) 65%,rgba(13,37,57,.08));}

/* White apartment living room: keep the room bright. */
.hero--interior .hero-video {filter:none; object-position:50% 53%;}
.interior-shade {background:linear-gradient(90deg,rgba(20,43,62,.34),rgba(20,43,62,.08) 58%,transparent);}
.hero--interior h1,.hero--interior p,.interior-eyebrow {text-shadow:0 2px 14px rgba(10,32,50,.35);}
@media(max-width:760px) {.hero--interior .hero-video {object-position:45% 52%;}.interior-shade {background:linear-gradient(90deg,rgba(20,43,62,.38),rgba(20,43,62,.08));}}

/* Native landscape footage: preserve the complete frame. */
.hero.hero--interior {height:auto; min-height:0; max-height:none; aspect-ratio:16/9;}
.hero--interior .hero-video {object-fit:contain; object-position:center; width:100%; height:100%;}
.interior-copy {position:absolute; inset:0; width:100%;}
@media(max-width:760px) {
 .hero.hero--interior {aspect-ratio:auto; height:auto; min-height:0; max-height:none; background:#edf6fc;}
 .hero--interior .hero-video {position:relative; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain;}
 .interior-shade {display:none;}
 .interior-copy {position:relative; inset:auto; padding-top:32px; padding-bottom:40px; height:auto;}
 .hero--interior h1 {font-size:38px; color:var(--ink); text-shadow:none;}
 .hero--interior p,.interior-eyebrow {color:var(--muted); text-shadow:none;}
 .interior-eyebrow {margin-bottom:18px;}
 .interior-toggle {top:12px; right:12px; bottom:auto; padding:7px 12px;}
 .interior-note {top:12px; left:12px; bottom:auto; background:rgba(20,43,62,.5); padding:3px 7px; border-radius:4px;}
}

/* Slow photographic opening, keeping the complete room in view. */
.hero.hero--still {aspect-ratio:2400/1602; background:#eef4f8;}
.interior-photo {position:absolute; inset:0; width:100%; height:100%; object-fit:contain; animation:interior-drift 22s ease-in-out infinite alternate; transform-origin:center;}
@keyframes interior-drift {from {transform:scale(1);} to {transform:scale(1.025);}}
.hero--still .interior-copy {align-items:center; text-align:center;}
.hero--still .interior-copy .btn {align-self:center;}
.hero--still .interior-shade {background:linear-gradient(180deg,rgba(19,40,58,.16),rgba(19,40,58,.26) 55%,rgba(19,40,58,.32));}
.hero--still h1 {font-size:clamp(42px,5vw,76px);}
.interior-motion-toggle {position:absolute; right:28px; bottom:24px; border:1px solid rgba(255,255,255,.6); background:rgba(13,37,57,.35); color:#fff; border-radius:24px; padding:10px 16px; cursor:pointer;}
.hero--still.is-motion-paused .interior-photo {animation-play-state:paused;}
@media(max-width:760px) {
 .hero.hero--still {aspect-ratio:auto;}
 .hero--still .interior-photo {position:relative; width:100%; height:auto; aspect-ratio:2400/1602; object-fit:contain;}
 .hero--still .interior-shade {display:none;}
 .hero--still .interior-copy {position:relative; padding-top:32px; padding-bottom:40px;}
 .hero--still h1 {font-size:38px;}
 .interior-motion-toggle {top:12px; right:12px; bottom:auto; font-size:11px; padding:7px 12px;}
}
@media(prefers-reduced-motion:reduce) {.interior-photo {animation:none;}}

/* Cinematic interior opening. */
.hero.hero--cinematic {aspect-ratio:16/9; height:auto; min-height:0; max-height:none; background:#162b3c;}
.hero--cinematic .hero-video {position:absolute; inset:0; width:100%; height:100%; object-fit:contain; filter:none;}
.hero--cinematic .interior-copy {position:absolute; inset:0; width:100%; height:100%; align-items:center; text-align:center;}
.hero--cinematic .interior-copy .btn {align-self:center;}
.hero--cinematic .interior-shade {display:block; background:linear-gradient(180deg,rgba(12,29,43,.12),rgba(12,29,43,.26) 55%,rgba(12,29,43,.42));}
.hero--cinematic h1 {color:#fff; font-weight:500; letter-spacing:-.035em; font-size:clamp(42px,5vw,76px);}
.hero--cinematic p,.hero--cinematic .interior-eyebrow {color:#fff;}
.hero--cinematic .interior-eyebrow {letter-spacing:.12em;}
@media(max-width:760px) {
 .hero.hero--cinematic {aspect-ratio:auto; background:#edf6fc;}
 .hero--cinematic .hero-video {position:relative; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain;}
 .hero--cinematic .interior-shade {display:none;}
 .hero--cinematic .interior-copy {position:relative; inset:auto; height:auto; padding-top:32px; padding-bottom:40px;}
 .hero--cinematic h1 {font-size:38px; color:var(--ink); text-shadow:none;}
 .hero--cinematic p,.hero--cinematic .interior-eyebrow {color:var(--muted); text-shadow:none;}
 .hero--cinematic .interior-eyebrow {letter-spacing:.02em;}
}

/* Refined hero typography and consultation button. */
.hero--cinematic .interior-copy {padding-top:36px; padding-bottom:36px;}
.hero--cinematic .interior-eyebrow {font-size:12px; font-weight:500; letter-spacing:.22em; margin-bottom:30px; color:rgba(255,255,255,.88);}
.hero--cinematic h1 {font-size:clamp(32px,4.1vw,64px); font-weight:500; line-height:1.38; letter-spacing:-.045em; text-shadow:0 2px 24px rgba(12,29,43,.22);}
.hero--cinematic .hero-promise {font-weight:700;}
.hero--cinematic .hero-description {margin-top:24px; max-width:32em; font-size:clamp(14px,1.2vw,18px); line-height:1.9; font-weight:400; color:rgba(255,255,255,.9);}
.hero--cinematic .hero-consult {margin-top:36px; min-width:232px; min-height:58px; padding:17px 26px; display:inline-flex; justify-content:space-between; gap:32px; border:1px solid rgba(255,255,255,.85); border-radius:3px; background:#fff; color:#203548; font-size:14px; font-weight:600; letter-spacing:.02em; box-shadow:none; transition:background .25s,color .25s,border-color .25s;}
.hero--cinematic .hero-consult:hover {background:#eaf4fc; border-color:#eaf4fc; color:#164b73;}
.hero-area {display:block; margin-top:24px; font-size:11px; letter-spacing:.08em; color:rgba(255,255,255,.8);}
@media(max-width:760px) {
 .hero--cinematic .interior-copy {padding-top:40px; padding-bottom:44px;}
 .hero--cinematic .interior-eyebrow {font-size:10px; margin-bottom:22px; color:var(--muted); letter-spacing:.16em;}
 .hero--cinematic h1 {font-size:clamp(26px,6.3vw,38px); line-height:1.45; color:var(--ink); text-shadow:none;}
 .hero--cinematic .hero-description {font-size:14px; margin-top:20px; color:var(--muted);}
 .hero--cinematic .hero-consult {min-height:54px; margin-top:28px; min-width:224px; background:#203e56; border-color:#203e56; color:#fff;}
 .hero--cinematic .hero-consult:hover {background:#2c526e; border-color:#2c526e; color:#fff;}
 .hero-area {font-size:10px; letter-spacing:.01em; color:var(--muted); margin-top:20px;}
}

/* Representative profile: quiet editorial layout matching the opening. */
#representative.representative-premium {background:#f2f8fc; padding:clamp(64px,8vw,120px) 0;}
.representative-editorial {display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(40px,7vw,100px); align-items:center;}
.representative-portrait {margin:0; align-self:start; background:#eaf4fc;}
.representative-portrait img {display:block; width:100%; height:auto; max-height:none; object-fit:contain; border-radius:0;}
.representative-portrait figcaption {padding:20px 0 0; border-top:1px solid #d8e7f2; background:#f2f8fc; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px;}
.representative-portrait figcaption strong {font-size:14px; font-weight:600; color:var(--ink);}
.representative-portrait figcaption span {font-size:11px; letter-spacing:.025em; color:var(--muted);}
.profile-eyebrow {display:block; color:#56738b; font-size:12px; letter-spacing:.16em; margin-bottom:26px;}
.representative-editorial-copy h2 {font-size:clamp(25px,2.7vw,39px); line-height:1.5; letter-spacing:-.045em; font-weight:400; color:#203548;}
.representative-editorial-copy h2 strong {font-weight:650;}
.profile-lead {margin-top:28px; font-size:17px; color:#314e64; line-height:1.8;}
.profile-description {margin-top:14px; font-size:15px; line-height:1.95; color:var(--muted);}
.profile-commitments {margin-top:32px; padding:0; border-top:1px solid #d2e2ef;}
.profile-commitments > div {display:grid; grid-template-columns:132px 1fr; gap:18px; padding:17px 0; border-bottom:1px solid #d2e2ef; align-items:baseline;}
.profile-commitments dt {font-size:14px; font-weight:600; color:#203548;}
.profile-commitments dd {font-size:13px; color:var(--muted); line-height:1.7;}
.profile-consult {display:inline-flex; gap:24px; align-items:center; margin-top:30px; padding:12px 0; border-bottom:1px solid #7d9ab0; font-size:13px; font-weight:600; text-decoration:none; color:#203e56;}
.profile-consult svg {width:17px; height:17px; transition:transform .2s;}
.profile-consult:hover svg {transform:translateX(4px);}
@media(max-width:760px) {
 .representative-editorial {grid-template-columns:1fr; gap:36px;}
 .representative-portrait {width:min(100%,380px); justify-self:center;}
 .representative-editorial-copy {max-width:540px; width:100%; justify-self:center;}
 .profile-eyebrow {font-size:11px; margin-bottom:20px;}
 .representative-editorial-copy h2 {font-size:clamp(24px,5.7vw,34px);}
 .profile-lead {font-size:15px; margin-top:22px;}
 .profile-description {font-size:14px;}
 .profile-commitments > div {grid-template-columns:112px 1fr; gap:12px;}
 .profile-commitments dt {font-size:13px;}
 .profile-commitments dd {font-size:12px;}
}

/* Service overview: centered introduction and restrained numbered cards. */
#services.services-premium {padding:clamp(72px,9vw,136px) 0; background:#fff;}
.service-editorial-head {text-align:center; max-width:760px; margin:0 auto 48px;}
.service-editorial-head .profile-eyebrow {margin-bottom:22px;}
.service-editorial-head h2 {font-size:clamp(28px,3vw,44px); font-weight:500; line-height:1.45; letter-spacing:-.04em;}
.service-editorial-head p {margin-top:22px; font-size:15px; line-height:1.9;}
.service-editorial-grid {display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:960px; margin:auto;}
.service-editorial-card {display:flex; flex-direction:column; align-items:flex-start; padding:38px 40px; border:1px solid #d8e5ee; text-decoration:none; background:#fff; transition:background .25s,border-color .25s;}
.service-editorial-card:hover {background:#f3f9fd; border-color:#93b4ce;}
.service-index {display:grid; place-items:center; width:44px; height:44px; background:#edf6fc; color:#527690; font-size:12px; letter-spacing:.08em; margin-bottom:28px;}
.service-editorial-card h3 {font-size:25px; font-weight:500; letter-spacing:-.035em;}
.service-editorial-card p {margin-top:14px; font-size:15px; line-height:1.9;}
.service-detail {display:inline-flex; align-items:center; gap:24px; margin-top:28px; font-size:12px; font-weight:600; color:#355b76;}
.service-detail svg {width:16px; height:16px;}
.care-secondary {background:#f2f8fc; padding:0 0 64px; scroll-margin-top:90px;}
.care-secondary-head {display:flex; gap:24px; align-items:baseline; padding-top:28px; border-top:1px solid #d2e2ef; margin-bottom:24px;}
.care-secondary-head .profile-eyebrow {margin:0; font-size:11px;}
.care-secondary-head h2 {font-size:21px; line-height:1.5; font-weight:500; letter-spacing:-.025em;}
.care-secondary-grid {display:grid; grid-template-columns:1fr 1fr; border:1px solid #d8e5ee; background:rgba(255,255,255,.65);}
.care-secondary-item {padding:26px 32px;}
.care-secondary-item + .care-secondary-item {border-left:1px solid #d8e5ee;}
.care-small-label {font-size:10px; color:#668198; letter-spacing:.04em;}
.care-secondary-item h3 {font-size:19px; font-weight:600; margin-top:7px;}
.care-secondary-item p {font-size:13px; line-height:1.85; margin-top:10px;}
.care-secondary-item a {display:inline-flex; align-items:center; gap:18px; margin-top:14px; font-size:11px; font-weight:600; color:#355b76; text-decoration:none;}
@media(max-width:760px) {
 .service-editorial-head {margin-bottom:30px;}
 .service-editorial-head h2 {font-size:28px;}
 .service-editorial-head p {font-size:13px;}
 .service-editorial-grid {gap:12px;}
 .service-editorial-card {padding:24px 16px;}
 .service-index {width:34px; height:34px; margin-bottom:22px; font-size:11px;}
 .service-editorial-card h3 {font-size:19px;}
 .service-editorial-card p {font-size:12px; line-height:1.85;}
 .service-detail {font-size:11px; gap:8px; margin-top:24px;}
 .care-secondary {padding-bottom:40px;}
 .care-secondary-head {display:block; margin-bottom:18px;}
 .care-secondary-head h2 {font-size:19px; margin-top:10px;}
 .care-secondary-grid {grid-template-columns:1fr;}
 .care-secondary-item {padding:18px 20px;}
 .care-secondary-item + .care-secondary-item {border-left:0; border-top:1px solid #d8e5ee;}
 .care-secondary-item h3 {font-size:17px; margin-top:4px;}
 .care-secondary-item p {font-size:12px; line-height:1.7; margin-top:6px;}
 .care-secondary-item a {margin-top:8px;}
}

/* Reviews and cleaning scope share the service/profile editorial system. */
#reviews.reviews-premium,#scope-preview.scope-premium {padding:clamp(72px,9vw,128px) 0;}
#reviews.reviews-premium {background:#fff;}
#scope-preview.scope-premium {background:#f2f8fc;}
.section-editorial-head {text-align:center; max-width:760px; margin:0 auto 48px;}
.section-editorial-head .profile-eyebrow {margin-bottom:22px;}
.section-editorial-head h2 {font-size:clamp(28px,3vw,44px); font-weight:500; line-height:1.45; letter-spacing:-.04em;}
.section-editorial-head > p {font-size:15px; line-height:1.9; margin-top:22px;}
.review-editorial-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px;}
.review-editorial-card {min-width:0; border:1px solid #d8e5ee; background:#fff;}
.review-editorial-image {position:relative; aspect-ratio:4/3; overflow:hidden; background:#edf6fc;}
.review-editorial-image img {width:100%; height:100%; object-fit:cover;}
.review-editorial-image > span {position:absolute; top:14px; left:14px; background:rgba(255,255,255,.95); padding:5px 10px; font-size:10px; letter-spacing:.04em; color:#4c687e;}
.review-editorial-body {padding:26px 24px 30px;}
.review-editorial-label {font-size:10px; letter-spacing:.08em; color:#688297;}
.review-editorial-body h3 {margin-top:12px; font-size:18px; line-height:1.6; font-weight:500; letter-spacing:-.03em;}
.review-editorial-body p {font-size:12px; line-height:1.8; margin-top:10px;}
.editorial-note {text-align:center; font-size:11px; line-height:1.8; margin-top:26px; color:#6b8191;}
.scope-editorial-grid {display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px;}
.scope-editorial-card {min-width:0; border:1px solid #d8e5ee; background:#fff; align-self:start;}
.scope-editorial-image {aspect-ratio:4/3; overflow:hidden;}
.scope-editorial-image img {width:100%; height:100%; object-fit:cover; border-radius:0;}
.scope-editorial-body {padding:24px 20px;}
.scope-card-heading {display:flex; gap:12px; align-items:baseline; margin-bottom:22px;}
.scope-card-heading > span {font-size:11px; letter-spacing:.06em; color:#7894aa;}
.scope-card-heading h3 {font-size:21px; font-weight:500; letter-spacing:-.035em;}
.scope-list-label {font-size:10px; letter-spacing:.08em; color:#587890; margin-bottom:12px;}
.scope-editorial-body ul {display:grid; gap:9px; font-size:12px; line-height:1.75; color:var(--muted);}
.scope-editorial-body li {position:relative; padding-left:11px;}
.scope-editorial-body li::before {content:''; width:3px; height:3px; background:#90acc0; position:absolute; top:.8em; left:0;}
.scope-extra {border-top:1px solid #e0eaf2; margin-top:22px; padding-top:16px;}
.scope-extra summary {font-size:11px; color:#4c6c84; cursor:pointer;}
.scope-extra ul {margin-top:14px; font-size:11px;}
.scope-editorial-foot {display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:32px;}
.scope-editorial-foot p {font-size:12px;}
.scope-editorial-foot .profile-consult {margin-top:0; flex-shrink:0;}
@media(max-width:1000px) {.scope-editorial-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px) {
 .section-editorial-head {margin-bottom:30px;}
 .section-editorial-head h2 {font-size:28px;}
 .section-editorial-head > p {font-size:13px;}
 .review-editorial-grid {grid-template-columns:1fr; gap:20px;}
 .review-editorial-image {aspect-ratio:16/9;}
 .review-editorial-body {padding:22px;}
 .review-editorial-body h3 {font-size:18px;}
 .scope-editorial-grid {gap:12px;}
 .scope-editorial-body {padding:20px 14px;}
 .scope-card-heading {gap:8px; margin-bottom:18px;}
 .scope-card-heading h3 {font-size:18px;}
 .scope-editorial-body ul {font-size:11px; gap:8px;}
 .scope-editorial-foot {flex-direction:column; align-items:flex-start; gap:12px;}
}
@media(max-width:380px) {.scope-editorial-grid {grid-template-columns:1fr;}}
