/* LEADTIME: nine semantic type roles, shared by the homepage and all services. */
:root {
    --type-family: "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --type-display: 700 clamp(38px, 4.7vw, 66px)/1.22 var(--type-family);
    --type-page: 700 clamp(34px, 3.8vw, 54px)/1.27 var(--type-family);
    --type-section: 700 clamp(28px, 3vw, 40px)/1.35 var(--type-family);
    --type-subheading: 600 clamp(20px, 2vw, 23px)/1.5 var(--type-family);
    --type-body: 400 16px/1.8 var(--type-family);
    --type-small: 400 14px/1.75 var(--type-family);
    --type-label: 600 14px/1.5 var(--type-family);
    --type-caption: 600 12px/1.6 var(--type-family);
    --type-numeric: 600 30px/1.2 var(--type-family);
    --tracking-title: -.035em;
    --tracking-body: -.015em;
    --tracking-label: 0;
    --tracking-caption: .1em;
    --space-section: clamp(64px, 7vw, 100px);
    --space-heading: 36px;
    --radius: 12px;
}
body, p, li, input, select, textarea { font: var(--type-body); letter-spacing: var(--tracking-body); }
h1, .page-hero h1 { font: var(--type-page); letter-spacing: var(--tracking-title); }
.home-hero h1 { font: var(--type-display); letter-spacing: var(--tracking-title); }
h2, .section-title, .sticky-heading h2, .cta-band h2, .feature-panel h2 { font: var(--type-section); letter-spacing: var(--tracking-title); }
h3, .service-card h3, .type-card h3, .number-item h3, .step-card h3, .service-outline-item h3,
.info-card h3, .contact-note h3 { font: var(--type-subheading); letter-spacing: var(--tracking-title); }
.home-hero__lead, .section-copy, .page-hero p { font: var(--type-body); letter-spacing: var(--tracking-body); }
.button, .nav-link, .nav-dropdown-toggle, .nav-dropdown-menu a, .primary-nav .nav-link,
.primary-nav .nav-dropdown-toggle, .form-field label, .footer-nav h3, .service-jumpnav a {
    font: var(--type-label); letter-spacing: var(--tracking-label);
}
.eyebrow, .step-card__index, .service-card__category, .service-card__label,
.franchise-flow__step, .certification-card__label { font: var(--type-caption); letter-spacing: var(--tracking-caption); }
.photo-card figcaption, .hero-mosaic figcaption, .footer-bottom, .footer-nav a,
.step-card p, .info-card p, .certification-card p, .certification-notes p,
.form-agree, .contact-note p { font: var(--type-small); letter-spacing: var(--tracking-body); }
.number-item__index, .proof-item strong, .service-outline-item > span, .care-outcomes strong,
.market-metrics strong, .certification-card strong { font: var(--type-numeric); letter-spacing: var(--tracking-title); }
.section { padding-block: var(--space-section); }
.section-head { margin-bottom: var(--space-heading); }
.title-line { white-space: normal; }
h1, h2, h3, p { word-break: keep-all; overflow-wrap: anywhere; }
h1, h2 { text-wrap: balance; }
.content-grid { gap: clamp(32px, 5vw, 72px); }
.step-card { min-height: 220px; border-radius: var(--radius); }
.step-card__index { margin-bottom: 28px; }
.photo-card { border-radius: var(--radius); }
.button { min-height: 48px; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }

/* Service pages share the same editorial grid and quiet white hero. */
.service-detail .page-hero { color: var(--navy); background: #fff; border-bottom: 1px solid var(--line); }
.service-detail .page-hero__grid {
    width: min(calc(100% - 64px), var(--container)); margin-inline: auto;
    min-height: 560px; padding-block: 64px; gap: 64px;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); align-items: center;
}
.service-detail .page-hero__copy { padding: 0; }
.service-detail .page-hero__copy .eyebrow { color: var(--blue); }
.service-detail .page-hero__copy .eyebrow::before { background: var(--blue); }
.service-detail .page-hero p { color: var(--muted); max-width: 540px; }
.service-detail .page-hero .button--light { color: white; background: var(--navy); }
.service-detail .page-hero__visual { min-height: 380px; height: 100%; max-height: 470px; overflow: hidden; border-radius: 12px; }
.service-detail .page-hero__visual img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; }
.service-detail .page-hero__visual::after { display: none; }
.service-detail .page-hero--graphic .page-hero__visual { color: white; padding: 36px; }
.service-detail .page-hero__graphic-word { font-size: clamp(48px, 5.3vw, 80px); }
.service-jumpnav { border-bottom: 1px solid var(--line); background: white; }
.service-jumpnav .site-shell { display: flex; gap: 30px; overflow-x: auto; scrollbar-width: thin; }
.service-jumpnav a { display: block; flex: 0 0 auto; padding-block: 20px; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; }
.service-jumpnav a:hover, .service-jumpnav a:focus-visible { color: var(--blue); border-bottom-color: var(--blue); }
.service-detail .section { scroll-margin-top: 100px; }
.service-detail .section-head--split { align-items: start; gap: 40px; }
.service-detail .section-head p { max-width: 600px; }
.service-detail .service-outline-grid { border-top: 1px solid var(--line); }

@media (max-width: 1080px) {
    .service-detail .page-hero__grid { gap: 32px; min-height: 0; padding-block: 48px; }
    .service-detail .page-hero__visual, .service-detail .page-hero__visual img { min-height: 340px; }
}
@media (max-width: 720px) {
    .service-detail .page-hero__grid { width: calc(100% - 40px); grid-template-columns: 1fr; padding-block: 40px; gap: 32px; }
    .service-detail .page-hero__visual { height: 260px; min-height: 260px; }
    .service-detail .page-hero__visual img { min-height: 260px; }
    .service-jumpnav .site-shell { gap: 24px; }
    .service-jumpnav a { padding-block: 16px; }
    .service-detail .section-head--split { grid-template-columns: 1fr; gap: 8px; }
    .section-head { margin-bottom: 28px; }
    .step-card { min-height: 0; padding: 26px; }
    .content-grid { gap: 28px; }
    .number-item { gap: 12px; }
}
