/* Public website presentation on the shared tokens: frosted surfaces on the neutral light canvas,
   buttons, links and accents stay monochrome. */
/* Public website presentation. Product apps and the design catalogue do not load this file. */
body.public-site { color:var(--ink); background:var(--canvas); font-size: var(--fs-body); line-height:1.65; }
body.public-site :is(main,section,article,aside) { min-width:0; }
body.public-site [id] { scroll-margin-top: var(--space-9); }
body.public-site :focus-visible { outline:3px solid var(--focus-ring); outline-offset:4px; }
body.public-site :is(.hero,.job-hero,.co-page-title) { background:transparent; color:var(--ink); }
body.public-site .hero { padding-top: var(--space-8); padding-bottom: var(--space-8); }
body.public-site :is(.hero h1,.job-hero-title) { font-weight:var(--fw-medium); line-height:1.2; letter-spacing:-.03em; }
body.public-site :is(.hero-description,.hero-sub,.hero-desc,.hero p) { color:var(--ink-2); font-size: var(--fs-lead); line-height:1.75; }
body.public-site :is(.feat-card,.p-card,.doc-card,.job-card):not(.glass) { position:relative; isolation:isolate; background:var(--panel-fill); border:1px solid var(--panel-border); box-shadow:var(--panel-shadow),inset 0 0 0 1px var(--glass-ring); border-radius: var(--radius-md); color:var(--ink); -webkit-backdrop-filter:none; backdrop-filter:none; }
/* 정보 카드(shared.css 의 .card 묶음)도 바깥 경계는 DS 카드 경계 --panel-border(바탕 대비 3:1 이상)·안쪽 흰 링·깊이다. */
.x-site:not(.cosentio-page) :is(.card,.p-card,.line-card,.doc-card,.job-card,.trust-card,.pool-card,.ax-hg-card):not(.glass),
body.public-site :is(.co-product:not(:last-child),.co-ax-offering,.feat-card,.p-card,.doc-card,.job-card):not(.glass) { border:0; box-shadow:var(--panel-shadow); }
body.public-site :is(.x-btn--ghost,.x-btn--text,.btn-text) { color:var(--accent-deep); }
body.public-site :is(.co-contact,.cta-section,.job-cta) { background:var(--surface-inverse); color:var(--ink-inverse); }
body.public-site :is(.co-contact,.cta-section,.job-cta) :is(h2,p) { color:var(--ink-inverse); }
body.public-site .co-page-title { padding-inline: max(var(--space-6),calc((100vw - var(--space-10))/2)); width:100%; }
body.public-site .co-hero { border-bottom:1px solid var(--rule); }
body.public-site .co-hero h1 { color:var(--ink); }
body.public-site .foot-links a { color:inherit; min-height:44px; display:inline-flex; align-items:center; }
/* Career content uses a paired dark surface, including its nested cards. */
body.public-site .flow-step span { opacity:1; color:var(--ink-2); }
body.public-site .flow-step.selected span { color:inherit; }
body.public-site [data-radar-label="diagnose"] { color:var(--ink-inverse); }
/* API code remains selectable text; syntax and method labels have readable contrast. */
body.public-site[data-page-group="docs"] :is(pre,.m-post,.m-get,.m-del,.level-badge) { background:var(--solid); }
body.public-site[data-page-group="docs"] :is(.c-str,.m-post) { color:var(--accent-deep); }
body.public-site[data-page-group="docs"] :is(pre code,table,.callout,.side a) { font-size: var(--fs-body); }
body.public-site[data-page-group="docs"] :is(section.block p,section.block ul) { font-size: var(--fs-lead); }
body.public-site[data-page-group="docs"] .side { top:88px; }
body.public-site[data-page-group="docs"] .side a { min-height:44px; display:flex; align-items:center; }
body.public-site[data-page-group="docs"] .callout { border-left:3px solid var(--accent); background:var(--solid); }
body.public-site[data-page-group="docs"] .lv-adv { color:var(--ink); }
body.public-site[data-page-group="docs"] main.doc a { color:var(--accent); }
@media(max-width:767px) {
 body.public-site { font-size: var(--fs-body); }
 body.public-site .hero { padding-top: var(--space-6); padding-bottom: var(--space-6); }
 body.public-site :is(.hero-description,.hero-sub,.hero-desc,.hero p) { font-size: var(--fs-lead); }
 body.public-site .co-page-title { padding-inline: var(--space-5); }
 body.public-site :is(.cta-section,.job-cta) { padding: var(--space-6) var(--space-5); }
 body.public-site[data-page-group="docs"] :is(section.block p,section.block ul) { font-size: var(--fs-body); }
}
@media(prefers-reduced-motion:reduce) { body.public-site *,body.public-site *::before,body.public-site *::after { animation:none; transition:none; scroll-behavior:auto; } }
/* Recruitment pages retain their white wordmark on a neutral dark surface. */
body.public-site .job-hero { background:var(--surface-inverse); color:var(--ink-inverse); }
body.public-site[data-page-group="career"] .foot-links { color:var(--ink-inverse); }
body.public-site .job-card-closed { opacity:1; }

/* Accent surfaces mark content changes while reading cards stay solid. */
body.public-site .dn-hero { background:transparent; color:var(--ink); }
body.public-site[data-page-group="product"] :is(.team-section,.capabilities),
body.public-site[data-page-group="service"] #results { background:transparent; color:var(--ink); }
body.public-site[data-page-group="service"] section.contact { background:var(--surface-inverse); color:var(--ink-inverse); }
body.public-site[data-page-group="product"] .closing-section { background:transparent; color:var(--ink); }

/* 주 액션 외관은 tactile .btn-primary. 여기서 --aqua-fill 로 덮지 않는다. */
body.public-site a.btn-primary { color: var(--primary-text); }
/* Secondary fill is light. a.btn:link {color:inherit} would take inverse ink on .job-cta / #contact. */
body.public-site a.btn.btn-secondary:is(:link,:visited,:hover,:active,:focus) { color: var(--ink); }
/* Card-interior compact. Beats .x-site :is(.btn-secondary){min-height:var(--control-height)}. */
body.public-site .co-product .co-product-links a.btn,
body.public-site .program-card .program-actions a.btn {
  min-height:40px;
  padding: var(--space-2) var(--space-4);
}
@media (max-width:767px), (pointer:coarse) {
  body.public-site .co-product .co-product-links a.btn,
  body.public-site .program-card .program-actions a.btn {
    min-height:44px;
    padding: var(--space-3) var(--space-4);
  }
}
