/* Project visual contract: see /design-system.md. Load after page styles. */
:root {
  --ds-canvas: #fff;
  --ds-surface: #f6f8fb;
  --ds-ink: #111;
  --ds-copy: #526174;
  --ds-muted: #64748b;
  --ds-line: #e5eaf1;
  --ds-primary: #003ea5;
  --ds-accent:var(--color-accent);
  --ds-mint:var(--color-brand-mint);
  --ds-content: 1300px;
  --ds-section-space: 110px;
  --ds-gap: 24px;
  --ds-split-gap: 80px;
  --ds-card-radius: 18px;
  --ds-media-radius: 20px;
  --ds-control-radius: 12px;
  --ds-card-shadow: 0 10px 26px rgba(20,40,70,.04);
  --ds-media-shadow: 0 16px 32px rgba(20,40,70,.06);
  --ds-heading: clamp(30px,2.8vw,42px);
  --ds-card-title: 21px;
  --ds-heading-line: 1.4;
  --ds-copy-line: 1.85;
}
.site-sub {
  --site-width: var(--ds-content);
  --color-panel: var(--ds-surface);
  --color-bg-light: var(--ds-surface);
  --color-border: var(--ds-line);
  --color-line: var(--ds-line);
  --color-ink: var(--ds-ink);
  --color-text-dark: var(--ds-ink);
  --color-text: var(--ds-copy);
  --color-text-body: var(--ds-copy);
  --color-ink-light: var(--ds-copy);
  --color-muted: var(--ds-muted);
  --color-primary: var(--ds-primary);
  --radius-lg: var(--ds-card-radius);
  --shadow-card: var(--ds-card-shadow);
  --shadow-lift: var(--ds-media-shadow);
  --customer-container: var(--ds-content);
  --customer-ink: var(--ds-ink);
  --customer-text: var(--ds-copy);
  --customer-muted: var(--ds-muted);
  --customer-line: var(--ds-line);
  --customer-soft: var(--ds-surface);
  background: var(--ds-canvas);
}
.site-sub .section,
.site-sub .content-section,
.site-sub .certificate-section,
.site-sub .location-section,
.site-sub .service-overview,
.site-sub .service-targets,
.site-sub .service-features,
.site-sub .service-steps,
.site-sub .service-scope-table--guide,
.site-sub .work-process {padding-block:var(--ds-section-space);}
.site-sub .service-overview {gap:var(--ds-split-gap);margin-bottom:0;align-items:center;}
.site-sub .service-overview__media {align-self:stretch;min-height:300px;border:0;border-radius:var(--ds-media-radius);box-shadow:var(--ds-media-shadow);}
.site-sub .service-overview__media::after {box-shadow:none;}
.site-sub .about-source-intro__image {border-radius:var(--ds-media-radius);box-shadow:var(--ds-media-shadow);}
.site-sub .about-source-message h2,
.site-sub .service-overview__title,
.site-sub .section-header__title,
.site-sub .section-title,
.site-sub .board-title,
.site-sub .board-section__head h2 {font-size:var(--ds-heading);font-weight:var(--font-weight-heading);line-height:var(--ds-heading-line);letter-spacing:-.04em;color:var(--ds-ink);word-break:keep-all;}
.site-sub .service-overview__text,
.site-sub .section-header__text,
.site-sub .about-source-message__body {color:var(--ds-copy);font-size:18px;line-height:var(--ds-copy-line);word-break:keep-all;}
.site-sub .service-targets__title,
.site-sub .features-card__title,
.site-sub .service-steps__card-title,
.site-sub .qualification-card h3 {font-size:var(--ds-card-title);font-weight:var(--font-weight-heading);color:var(--ds-ink);line-height:1.45;}
.site-sub .service-targets__text,
.site-sub .features-card__text,
.site-sub .service-steps__card-text {font-size:16px;line-height:1.8;color:var(--ds-copy);}
.site-sub .about-source-services {background:var(--ds-surface);}
.site-sub .about-source-services__grid,
.site-sub .qualification-grid {gap:var(--ds-gap);}
.site-sub .about-source-service-card,
.site-sub .qualification-card,
.site-sub .location-info-card,
.site-sub .map-wrapper {border:1px solid var(--ds-line);border-radius:var(--ds-card-radius);background:var(--ds-canvas);box-shadow:var(--ds-card-shadow);}
.site-sub .qualification-card {padding:32px;}
.site-sub .qualification-card p {margin-top:14px;color:var(--ds-copy);line-height:var(--ds-copy-line);}
.site-sub .work-process__cards {gap:16px;}
.site-sub .work-process__title {font-weight:var(--font-weight-heading);line-height:1.45;}
.site-sub .board-shell,
.site-sub .board-section {padding-block:80px var(--ds-section-space);}
.site-sub.page-board-gallery .gallery-grid {gap:var(--ds-gap);}
.site-sub.page-board-gallery .gallery-card {border-color:var(--ds-line);border-radius:var(--ds-card-radius);box-shadow:var(--ds-card-shadow);}
.site-sub.page-board-gallery .gallery-card__title {font-weight:var(--font-weight-heading);line-height:1.45;}
.site-sub.page-board-faq .faq-board {border-top:0;display:grid;gap:16px;}
.site-sub.page-board-faq .faq-card {border:1px solid var(--ds-line);border-radius:var(--ds-control-radius);overflow:hidden;box-shadow:var(--ds-card-shadow);}
.site-sub.page-board-faq .faq-card summary {padding-left:24px;padding-right:24px;font-weight:var(--font-weight-heading);}
.site-sub.page-board-faq .faq-card[open] {background:var(--ds-surface);}
.site-sub.page-board-faq .faq-card p {padding-left:58px;line-height:1.85;}
.site-sub.page-board-contact .board-field input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.site-sub.page-board-contact .board-field select,
.site-sub.page-board-contact .board-field textarea,
.site-sub.page-board-contact .board-field--choice,
.site-sub.page-board-contact .board-file-row,
.site-sub.page-board-contact .board-checkbox-item,
.site-sub.page-board-contact .board-submit-btn {border-radius:var(--ds-control-radius);}
.site-sub.page-board-contact .board-contact-form__grid {gap:var(--ds-gap);}
.site-sub.page-board-contact .board-contact-card,
.site-sub.page-board-contact .board-privacy-consent {border-radius:var(--ds-card-radius);border-color:var(--ds-line);}
.site-sub.page-board-contact .board-submit-btn {background:var(--ds-accent);font-weight:var(--font-weight-heading);}
.site-sub.page-board-contact .board-submit-btn:hover {background:var(--ds-primary);}
.site-sub .policy-copy {max-width:1000px;color:var(--ds-copy);line-height:var(--ds-copy-line);}
.site-sub .policy-copy h2 {color:var(--ds-ink);font-weight:var(--font-weight-heading);}
@media(max-width:1024px) {
  .site-sub {--ds-split-gap:40px;}
  .site-sub .service-overview {align-items:stretch;}
  .site-sub .service-overview__media {aspect-ratio:16/10;min-height:0;}
}
@media(max-width:768px) {
  .site-sub {--ds-section-space:72px;--ds-gap:20px;--ds-heading:28px;--ds-card-title:20px;}
  .site-sub .service-overview__text,
  .site-sub .section-header__text,
  .site-sub .about-source-message__body {font-size:16px;}
  .site-sub .board-shell,
  .site-sub .board-section {padding-top:48px;}
  .site-sub.page-board-faq .faq-card summary {padding-inline:18px;}
  .site-sub.page-board-faq .faq-card p {padding-left:46px;padding-right:22px;}
  .site-sub .work-process__cards {gap:16px;}
}

/* Small English accents use mint; Korean emphasis and controls use deep blue. */
.site-sub .section-eyebrow,.site-sub .service-overview__eyebrow,.site-sub .section-header__eyebrow{color:var(--ds-mint);}
