:root {
  --ink:#f7f8ff;
  --muted:#c3c3cb;
  --black:#030306;
  --navy:#000015;
  --panel:#0b0c22;
  --panel2:#11142b;
  --cyan:#a5f6ff;
  --blue:#3c53f4;
  --lime:#c2ff00;
  --magenta:#ee00fb;
  --line:rgba(165,246,255,.25);
  --max:980px;
  --radius:0px;
  --shadow:0 24px 70px rgba(0,0,0,.45);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:#000; }
body {
  margin:0;
  background:#000;
  color:var(--ink);
  font-family:Pretendard,"Noto Sans KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  line-height:1.72;
  word-break:keep-all;
  overflow-x:hidden;
}
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
button,input,textarea { font:inherit; }

.site-header {
  height:90px;
  background:linear-gradient(180deg,#171717 0,#030303 95%);
  border-top:1px solid rgba(255,255,255,.22);
  border-bottom:1px solid rgba(255,255,255,.04);
  position:relative;
  z-index:10;
}
.header-inner {
  width:min(var(--max),calc(100% - 32px));
  height:100%;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand { width:54px; height:54px; display:block; }
.brand img { width:54px; height:54px; object-fit:contain; }
.site-nav { display:flex; gap:38px; align-items:center; font-size:14px; }
.site-nav a { padding:31px 0; color:#e9e9ee; }
.site-nav a:hover { color:var(--cyan); }
.nav-toggle { display:none; background:transparent; color:#fff; border:1px solid rgba(255,255,255,.35); padding:8px 12px; }

.source-wrap,
.hero,
.section,
.directory-hero,
.site-footer { width:min(var(--max),calc(100% - 32px)); margin-inline:auto; }

.source-prose h1,
.source-prose h2,
.source-prose h3,
.source-prose h4 { font-weight:400; letter-spacing:-.035em; }
.source-prose h1 { margin:0; font-size:34px; line-height:1.26; }
.source-prose h2 { margin:0 0 28px; font-size:29px; line-height:1.35; }
.source-prose h3 { margin:28px 0 8px; font-size:23px; line-height:1.42; }
.source-prose h4 { margin:20px 0 6px; font-size:16px; }
.source-prose p { margin:0 0 10px; color:#e4e4e9; }
.eyebrow { margin:0 0 12px; color:var(--cyan); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }

.source-hero {
  min-height:847px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:center;
  gap:62px;
  padding:78px 0 70px;
}
.hero-homecare-line { margin:2px 0 28px!important; text-align:center; font-size:34px; line-height:1.2; font-weight:300; }
.hero-subtitle { margin:0 0 18px!important; font-size:15px; font-weight:700; }
.source-bullets { margin:13px 0; padding-left:24px; }
.source-bullets li { margin:5px 0; color:#ececf1; }
.hero-highlights { display:flex; flex-direction:column; align-items:center; margin:24px 0 18px; line-height:1.35; }
.hero-highlights strong:nth-child(1) { color:var(--lime); font-size:17px; }
.hero-highlights strong:nth-child(2) { color:var(--lime); font-size:16px; }
.hero-highlights strong:nth-child(3) { color:var(--magenta); font-size:16px; }
.source-outline-button {
  display:flex;
  width:210px;
  min-height:54px;
  margin:24px auto 0;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.82);
  background:#000;
  color:#fff;
  font-size:16px;
  letter-spacing:.14em;
}
.source-outline-button:hover { color:var(--cyan); border-color:var(--cyan); }

.source-media-card {
  margin:0;
  position:relative;
  min-height:650px;
  overflow:hidden;
  border-radius:12px;
  background:#12100f;
  box-shadow:var(--shadow);
}
.hero-media { min-height:670px; border-radius:0; }
.source-media-card>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; }
.source-media-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.35) 0,rgba(0,0,0,.18) 38%,rgba(0,0,0,.76) 100%); }
.source-media-card figcaption { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; padding:38px 30px 28px; }
.source-media-card figcaption>strong { margin:auto 0 70px; text-align:center; font-size:25px; line-height:1.35; }
.source-media-card figcaption>p { margin:24px 0 0; text-align:center; color:#ece8e4; font-size:12px; }
.media-benefits { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.45); border-bottom:1px solid rgba(255,255,255,.45); }
.media-benefits span { min-height:120px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; font-size:28px; border-right:1px solid rgba(255,255,255,.55); }
.media-benefits span:last-child { border-right:0; }
.media-benefits small { font-size:12px; line-height:1.45; text-align:center; }

.owner-promo-banner-section {
  background:#000;
  padding:82px 0 72px;
}
.owner-promo-banner {
  width:min(904px,100%);
  margin:0 auto;
  background:#080808;
}
.owner-promo-banner img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

.source-course-section {
  min-height:2136px;
  background:#000018;
  padding:72px 0 100px;
}
.section-heading { text-align:center; max-width:760px; margin:0 auto 48px; }
.section-heading h2 { margin:0; font-size:30px; font-weight:300; letter-spacing:-.03em; }
.section-heading p { color:var(--muted); }
.source-course-stack { width:410px; max-width:100%; margin:0 auto; display:grid; gap:12px; }
.course-card { background:#02021a; border:1px solid var(--cyan); padding:28px 38px; box-shadow:none; }
.course-card .eyebrow { display:none; }
.course-card h3 { margin:0 0 12px; color:var(--cyan); font-size:27px; text-align:center; font-weight:400; }
.course-card>p { margin:0 0 16px; color:var(--muted); font-size:12px; text-align:center; }
.course-card table { width:100%; border-collapse:collapse; }
.course-card tr { border:0; }
.course-card th,.course-card td { padding:7px 0; text-align:left; font-size:18px; font-weight:300; }
.course-card td { text-align:right; color:#fff; font-weight:800; }
.source-course-card { min-height:225px; }
.course-call { margin-top:20px; }
.semantic-course-board {
  width:440px;
  min-height:760px;
  max-width:100%;
  margin:100px auto 0;
  padding:46px 42px;
  position:relative;
  overflow:hidden;
  background-image:linear-gradient(rgba(7,5,2,.52),rgba(7,5,2,.74)),var(--course-bg);
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,255,255,.15);
}
.semantic-course-board section { position:relative; z-index:1; padding:0 0 27px; margin:0 0 26px; border-bottom:2px solid var(--cyan); }
.semantic-course-board section:last-child { border-bottom:0; margin-bottom:0; }
.semantic-course-board h3 { margin:0 0 16px; color:#9fffdc; text-align:center; font-size:25px; }
.semantic-course-board table { width:100%; border-collapse:collapse; }
.semantic-course-board th,.semantic-course-board td { padding:8px 0; font-size:18px; text-align:left; }
.semantic-course-board td { text-align:right; color:#e8ff18; font-weight:800; }

.source-long-section { background:#000; }
.source-two-column { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:74px; align-items:start; }
.source-two-column.media-right { grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); }
.source-two-column.media-right>.source-media-card { order:2; }
.source-two-column.media-right>.source-prose { order:1; }
.service-source-section { min-height:1053px; padding:92px 0; }
.service-owner-promo {
  width:100%;
  margin:0;
  position:sticky;
  top:28px;
  overflow:hidden;
  border-radius:0;
  background:#080808;
  box-shadow:var(--shadow);
}
.service-owner-promo img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.source-detail-copy { padding-top:10px; }
.locality-list { margin-bottom:24px; }
.hub-table { margin:14px 0 22px; border-top:1px solid rgba(255,255,255,.24); }
.hub-table>div { display:grid; grid-template-columns:1fr 1.3fr .8fr; gap:8px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.14); font-size:12px; }
.hub-table strong { color:#fff; }
.hub-table span { color:#d7d7df; }
.hub-table em { color:var(--cyan); font-style:normal; text-align:right; }

.process-source-section { min-height:1700px; padding:120px 0 110px; }
.process-long-copy { font-size:14px; }
.process-step { margin-top:22px; }
.process-step ul { margin:8px 0 13px; padding-left:24px; }
.quick-steps { margin:8px 0 18px; padding:0; list-style:none; }
.quick-steps li { margin:0; padding:4px 0 19px; position:relative; }
.quick-steps li:not(:last-child):after { content:"↓"; position:absolute; left:0; bottom:-3px; color:#aaa; }
.process-media-card { min-height:700px; position:sticky; top:28px; }

.faq-source-section { min-height:2263px; padding:120px 0 110px; }
.faq-source-grid { grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); }
.faq-media-card { min-height:690px; position:sticky; top:28px; }
.faq-item { margin:0 0 30px; }
.faq-item h3 { margin:0 0 8px; font-size:22px; }
.faq-item p { margin:0 0 5px; color:#e1e1e5; }

.policy-source-section { min-height:590px; padding:78px 0; }
.policy-source-grid { align-items:center; }
.policy-long-copy { padding-top:30px; }
.policy-media-card { min-height:520px; }

.contact-source-section { min-height:1002px; padding:108px 0 80px; }
.contact-source-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:60px 90px; }
.contact-details h2 { margin:0 0 50px; font-size:55px; font-weight:300; }
.contact-details p { display:flex; align-items:center; gap:28px; margin:0 0 35px; color:#d8d8dd; }
.contact-details p span { width:40px; font-size:30px; text-align:center; }
.social-dots { margin:48px 0 0; font-size:18px; letter-spacing:.16em; }
.source-contact-form { display:flex; flex-direction:column; gap:13px; padding-top:70px; }
.source-contact-form>div { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.source-contact-form label { display:flex; flex-direction:column; gap:6px; color:#cfcfd5; font-size:12px; }
.source-contact-form input,.source-contact-form textarea { width:100%; border:0; border-radius:0; background:#fff; color:#111; padding:10px; }
.source-contact-form input { height:40px; }
.source-contact-form textarea { resize:vertical; }
.source-contact-form button { width:135px; min-height:44px; margin-left:auto; border:0; background:var(--blue); color:#fff; }
.source-map { grid-column:1 / -1; height:320px; margin-top:65px; background:#111; position:relative; overflow:hidden; }
.source-map img { width:100%; height:320px; object-fit:cover; }
.source-map a { position:absolute; right:10px; bottom:10px; padding:7px 10px; background:#080808; color:#fff; font-size:12px; }

.floating-call { position:fixed; right:20px; bottom:20px; z-index:20; min-width:180px; padding:12px 18px; display:flex; flex-direction:column; background:#080808; border:1px solid rgba(255,255,255,.65); box-shadow:0 12px 35px rgba(0,0,0,.55); }
.floating-call span { color:var(--cyan); font-size:11px; }
.floating-call strong { font-size:17px; }

.section { padding:92px 0; }
.directory-hero { padding:100px 0 48px; text-align:center; }
.directory-hero h1 { margin:0; font-size:48px; line-height:1.2; }
.directory-hero>p:last-child { color:var(--muted); }
.course-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.process-grid article { padding:28px 24px; background:#0b0c22; border-top:2px solid var(--magenta); }
.process-grid strong { color:var(--cyan); font-size:18px; }
.faq-page details { border-top:1px solid rgba(255,255,255,.15); padding:18px 0; }
.faq-page summary { font-weight:700; cursor:pointer; }
.faq-page p { color:var(--muted); }
.region-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.region-grid a { min-height:150px; padding:24px; background:#0b0c22; border:1px solid rgba(255,255,255,.12); display:flex; flex-direction:column; justify-content:flex-end; }
.region-grid span { color:var(--magenta); font-size:11px; font-weight:800; }
.region-grid strong { font-size:25px; }
.region-grid small { color:var(--muted); }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.profile-card { display:flex; flex-direction:column; background:#0c0d1d; border:1px solid rgba(255,255,255,.1); padding-bottom:20px; overflow:hidden; }
.profile-card img { aspect-ratio:1; object-fit:contain; background:#08080d; }
.profile-card span { color:var(--cyan); font-size:12px; font-weight:800; padding:17px 18px 0; }
.profile-card strong { padding:4px 18px; font-size:18px; line-height:1.4; }
.profile-card small { padding:2px 18px; color:var(--muted); }
.search-form { max-width:650px; margin:28px auto 0; text-align:left; }
.search-form label { display:block; margin-bottom:8px; color:var(--cyan); }
.search-form>div { display:flex; }
.search-form input { flex:1; min-width:0; background:#0c0d1d; color:#fff; border:1px solid rgba(255,255,255,.25); padding:14px; }
.search-form button { border:0; background:var(--blue); color:#fff; padding:0 22px; }
.simple-list { display:grid; gap:10px; }
.simple-list a { display:flex; justify-content:space-between; gap:20px; padding:18px; background:#0c0d1d; border-left:3px solid var(--cyan); }
.note-section,.faq-page,.search-results { max-width:760px; }
.not-found { min-height:560px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:0 22px; border:1px solid var(--cyan); }
.button.primary { background:var(--blue); border-color:var(--blue); }

.site-footer { border-top:1px solid rgba(255,255,255,.15); padding:42px 0 28px; }
.site-footer>div { display:flex; align-items:center; justify-content:space-between; }
.site-footer img { width:150px; height:50px; object-fit:contain; }
.site-footer nav { display:flex; gap:20px; color:var(--muted); font-size:12px; }
.ai-disclosure { margin:24px 0 0; padding-top:18px; border-top:1px solid rgba(255,255,255,.08); color:#85858f; font-size:10px; }

@media (max-width:760px) {
  body { font-size:14px; word-break:keep-all; }
  .site-header { height:auto; min-height:76px; }
  .header-inner { min-height:76px; flex-wrap:wrap; }
  .brand,.brand img { width:48px; height:48px; }
  .nav-toggle { display:block; }
  .site-nav { display:none; width:100%; flex-direction:column; align-items:stretch; gap:0; padding:6px 0 14px; }
  .site-nav.is-open { display:flex; }
  .site-nav a { padding:10px 4px; }
  .source-hero { min-height:0; grid-template-columns:1fr; gap:35px; padding:52px 0 66px; }
  .source-prose h1 { font-size:31px; }
  .hero-homecare-line { font-size:30px; text-align:left; }
  .hero-media { order:-1; min-height:520px; }
  .source-media-card { min-height:530px; position:relative; top:auto; }
  .source-media-card figcaption { padding:26px 20px 22px; }
  .source-media-card figcaption>strong { margin:auto 0 42px; font-size:22px; }
  .media-benefits span { min-height:100px; font-size:22px; }
  .media-benefits small { font-size:10px; }
  .owner-promo-banner-section { padding:48px 0 42px; }
  .source-course-section,.service-source-section,.process-source-section,.faq-source-section,.policy-source-section,.contact-source-section { min-height:0; }
  .source-course-section { padding:60px 0 78px; }
  .section-heading h2 { font-size:26px; }
  .source-course-stack { width:100%; }
  .semantic-course-board { margin-top:70px; padding:38px 24px; }
  .source-two-column,.source-two-column.media-right,.faq-source-grid { grid-template-columns:1fr; gap:42px; }
  .source-two-column.media-right>.source-media-card,.source-two-column.media-right>.source-prose { order:initial; }
  .service-source-section,.process-source-section,.faq-source-section,.policy-source-section { padding:72px 0; }
  .service-owner-promo { position:relative; top:auto; }
  .source-detail-copy { padding-top:0; }
  .hub-table>div { grid-template-columns:1fr; gap:2px; padding:10px 0; }
  .hub-table em { text-align:left; }
  .faq-long-copy { padding-top:0; }
  .faq-item h3 { font-size:20px; }
  .policy-long-copy { padding-top:0; }
  .contact-source-section { padding:76px 0 56px; }
  .contact-source-grid { grid-template-columns:1fr; gap:40px; }
  .contact-details h2 { font-size:44px; margin-bottom:35px; }
  .source-contact-form { padding-top:0; }
  .source-contact-form>div { grid-template-columns:1fr; }
  .source-map { grid-column:auto; margin-top:20px; }
  .floating-call { position:relative; left:auto; right:auto; bottom:auto; width:calc(100% - 32px); min-width:0; margin:0 auto 24px; padding:14px 18px; flex-direction:row; align-items:center; justify-content:center; gap:14px; }
  .floating-call strong { font-size:15px; }
  .course-grid,.process-grid { grid-template-columns:1fr; }
  .region-grid,.card-grid { grid-template-columns:repeat(2,1fr); }
  .profile-card strong { font-size:15px; }
  .directory-hero h1 { font-size:36px; }
  .site-footer>div { align-items:flex-start; gap:20px; flex-direction:column; }
  .site-footer nav { flex-wrap:wrap; }
  .simple-list a { flex-direction:column; gap:3px; }
}

@media (max-width:340px) {
  .source-wrap,.hero,.section,.directory-hero,.site-footer,.header-inner { width:min(var(--max),calc(100% - 20px)); }
  .source-prose h1 { font-size:28px; }
  .hero-homecare-line { font-size:27px; }
  .hero-media { min-height:460px; }
  .region-grid,.card-grid { grid-template-columns:1fr; }
  .floating-call { width:calc(100% - 20px); }
  .semantic-course-board { padding:34px 18px; }
}
