/* Client round 5, 2026-10-16. Presentation only.
 * Keep component geometry, breakpoints, typefaces, surfaces, selection and
 * state colours. !important is restricted to type roles / existing rules so
 * legacy contextual selectors cannot silently reintroduce a different scale.
 * No display/order/position/grid changes. Heights change only for 1px rules;
 * width changes only for the wordmark and short eyebrow rule.
 */
:root {
  --theo-type-display: clamp(32px, 3.612vw, 52px);
  --theo-type-h1: clamp(26px, 2.5vw, 36px);
  --theo-type-h2: clamp(22px, 1.95vw, 28px);
  --theo-type-h3: clamp(18px, 1.4vw, 20px);
  --theo-type-h4: 17px;
  --theo-type-lead: 18px;
  --theo-type-body: 16px;
  --theo-type-note: 14px;
  /* 13px is expressly allowed for all labels, including Korean. */
  --theo-type-label: 13px;
  --theo-rule: #ebebeb;
  --theo-rule-strong: #d9d9d9;
  --color-line: var(--theo-rule);
  --section-space: 96px;
  --heading-space: 32px;
  --theo-label-space: 12px;
  --theo-title-space: 16px;
  --theo-group-space: 24px;
}

/* Semantic heading defaults; role-specific exceptions follow below. */
body h1 { font-size: var(--theo-type-h1) !important; font-weight: 500 !important; line-height: 1.3 !important; letter-spacing: -.02em !important; }
body h2 { font-size: var(--theo-type-h2) !important; font-weight: 600 !important; line-height: 1.3 !important; letter-spacing: -.02em !important; }
body h3 { font-size: var(--theo-type-h3) !important; font-weight: 600 !important; line-height: 1.4 !important; letter-spacing: -.01em !important; }
body :is(h4,h5,h6) { font-size: var(--theo-type-h4) !important; font-weight: 600 !important; line-height: 1.5 !important; letter-spacing: 0 !important; }

/* A display title belongs only to the first hero of each main menu. */
body :is(.theo-home-banner-title,.service-hero h1,.b2b-hero h1,.edition-hero h1,.theo-exhibitions-hero h1) {
  font-size: var(--theo-type-display) !important; font-weight: 500 !important;
  line-height: 1.25 !important; letter-spacing: -.025em !important;
}
body :is(.theo-account-main h1,.theo-account-entry__intro h1,.theo-mypage-head h1,.theo-auth-return h1,.theo-contact-page h1,.theo-support-guide h1,.theo-information h1,.faq-hub h1,.article-page--faq h1,.theo-order h1,.theo-checkout-shell h1,.theo-library h1) {
  font-size: var(--theo-type-h2) !important; font-weight: 600 !important;
}
/* These semantic H2s are card titles or FAQ categories, not page sections. */
body :is(.journal-archive article h2,.article-page__body h2,.service-principles h2,.service-features h2,.faq-section h2,.faq-categories strong,.theo-support-guide section h2,.theo-contact-form h2,.theo-contact-help h2,.theo-account-sidebar h2) {
  font-size: var(--theo-type-h3) !important; line-height: 1.4 !important; letter-spacing: -.01em !important;
}
body :is(.theo-information h2,.theo-information h3,[data-policy-copy] h2,[data-policy-copy] h3,.theo-paper-card h3) {
  font-size: var(--theo-type-h4) !important; line-height: 1.5 !important; letter-spacing: 0 !important;
}
body :is(.theo-accordion summary,.accordion summary,.theo-support-guide summary) {
  font-size: var(--theo-type-h4) !important; font-weight: 600; line-height: 1.5 !important; letter-spacing: 0;
}

/* Main prose retains the current colour and font family; no global shrink. */
body main :is(p,li,dd) { line-height: 1.7; }
body :is(.article-page__body,.theo-information,.theo-support-guide,.service-intro__copy,.service-info-card,.consultation-card) { font-size: var(--theo-type-body); }
body :is(.article-page__body,.theo-information,.theo-support-guide) :is(p,li) { font-size: 16px; line-height: 1.7; }
body [data-policy-copy] :is(p,li) { font-size: 16px; line-height: 1.7; }
body :is(.theo-information,.theo-account-entry__intro,.theo-auth-panel,.theo-support-guide,.theo-contact-page) :is(h1,h2,h3,h4) { color: #111; }
body :is(.service-hero__content>p:not(.kicker),.b2b-hero__content>p:not(.kicker),.theo-exhibitions-hero__content>p:not(.eyebrow),.edition-hero__copy,.hero__copy p,.theo-account-entry__intro>p:not(.eyebrow),.content-hub__hero .layout>p:last-child,.theo-contact-heading>p:not(.eyebrow)) {
  font-size: var(--theo-type-lead) !important; font-weight: 400; line-height: 1.7 !important;
}
body :is(.button,.edition-hero__link,.edition-video-toggle,.theo-upload-reset,.theo-upload-workspace-nav button,.theo-order-workspace-nav button) {
  font-size: 14px !important; font-weight: 600 !important;
}
body :is(.field,.theo-contact-field,.theo-account-field)>:is(label,span),
body .theo-auth-form>label>span,
body .theo-contact-form label { font-size: 14px !important; font-weight: 500 !important; line-height: 1.6 !important; }
body :is(input:not([type=checkbox],[type=radio],[type=range],[type=hidden],[type=file]),select,textarea) { font-size: 16px !important; }
body :is(.field-help,.theo-field-help,.field small,.theo-badge,.theo-material-hint,.theo-registration-help,.theo-upload-limits,.theo-upload-limits span,.theo-upload-card__meta,.theo-upload-total,.theo-intake-summary,.theo-upload-intake p,.theo-order-panel__heading>p,.theo-editor-note,.theo-checkout-summary__body>p,.theo-checkout-summary__body small,.theo-checkout-section small,.theo-auth-panel__heading>span,.theo-mypage-section-head h2+span) {
  font-size: var(--theo-type-note) !important; font-weight: 400; line-height: 1.6 !important;
}
body :is(.field-help,.theo-field-help,.field small,.theo-registration-help,.theo-upload-limits,.theo-upload-limits span,.theo-upload-card__meta,.theo-intake-summary,.theo-upload-intake p,.theo-order-panel__heading>p,.theo-editor-note,.theo-checkout-summary__body>p,.theo-auth-panel__heading>span,.theo-mypage-section-head h2+span) { color: #6b6b6b; }
/* Semantic error/warning/success colours are not muted. */
body :is(figcaption,.journal-archive small,.article-page__header>p) { font-size: 14px; line-height: 1.6; }

/* Shared label rhythm. Do not reveal labels hidden by the existing layout. */
body :is(.eyebrow,.kicker,.edition-hero__eyebrow,.menu-label,.theo-order-kicker,.theo-mypage-section-head>div>p,.theo-auth-panel__heading>p) {
  font-size: var(--theo-type-label) !important; font-weight: 500 !important;
  letter-spacing: .14em !important; line-height: 1.6 !important;
  margin-bottom: var(--theo-label-space);
}
body .eyebrow::before { width: 28px; height: 1px; background: #111; }
body :is(.eyebrow,.menu-label,.theo-mypage-section-head>div>p,.theo-auth-panel__heading>p) { color: #6b6b6b; }
body :is(.section-heading,.service-section-heading,.b2b-section-heading,.theo-client-gallery__heading,.theo-account-entry__intro,.theo-contact-heading,.theo-support-guide>header) :is(h1,h2) {
  margin-bottom: var(--theo-title-space);
}
body :is(.service-hero h1,.b2b-hero h1,.edition-hero h1,.theo-exhibitions-hero h1,.theo-home-banner-title) { margin-bottom: var(--theo-title-space); }
body .theo-account-entry__intro>p:not(.eyebrow) { margin-bottom: var(--theo-group-space); }
body :is(.theo-auth-panel__heading,.theo-order-panel__heading,.theo-mypage-section-head) { margin-bottom: var(--theo-group-space); }
body .theo-auth-panel__heading h2 { margin-bottom: 12px; }
body .theo-support-guide section { margin-top: 32px; }
body .theo-support-guide h2 { margin-bottom: var(--theo-title-space); }
body .content-hub__hero .layout { row-gap: var(--theo-label-space); }
body .content-hub__hero .eyebrow { margin-bottom: 0; }
body :is(.service-features,.theo-exhibitions-intro,.theo-exhibition-types,.theo-special-exhibitions,.theo-virtual-gallery,.theo-exhibition-consultation,.theo-exhibition-list,.theo-exhibition-faq,.theo-exhibitions-cta) { padding-block: var(--section-space); }

/* Order role hierarchy. File selection still changes preview only. */
body :is(.theo-workspace-group-head h3,.theo-editor-screen-heading h3) {
  font-size: var(--theo-type-h3) !important; font-weight: 600 !important; line-height: 1.4 !important; letter-spacing: -.01em;
}
/* Sequential option labels are controls, not page/section headings. Keep the
 * same scale as the four stage tabs at every viewport and in every state. */
body .theo-order .theo-workspace-group-head strong {
  font-size: 14px !important; font-weight: 600 !important; line-height: 1.5 !important; letter-spacing: 0;
}
body :is(.theo-choice-card strong,.theo-option-value strong,.theo-option-accordion summary strong,.theo-upload-card__title strong) {
  font-size: var(--theo-type-h4) !important; font-weight: 600 !important; line-height: 1.5 !important;
}
body :is(.theo-option-value small,.theo-choice-card small,.theo-paper-picker__guide,.theo-workspace-quality-link) { font-size: 14px !important; line-height: 1.6 !important; }
body :is(.theo-workspace-action-total strong,.theo-cart-action-total strong,.theo-cart-card__price strong,.theo-quote-artwork footer strong,.theo-studio-quote__total,.theo-quote__total,.theo-cart-summary__total,.theo-checkout-total,[data-quote-total],[data-cart-summary-total],[data-cart-action-total],[data-test-checkout-total],[data-test-checkout-summary-total],[data-test-checkout-action-total]) {
  font-size: var(--theo-type-h3) !important; font-weight: 600 !important; line-height: 1.4 !important;
}
/* Later approved order UX: status text is not a monetary headline. */
body .theo-order .is-price-status,
body .theo-order .is-price-status strong {
  font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important;
}

/* Separators only: keep status accents, control icons and focus outlines. */
body :is(.theo-mypage-nav,.theo-order-table,.theo-cart-summary,.theo-quote-summary,.theo-checkout-summary,.theo-quote-breakdown,.theo-order-workspace-nav,.theo-studio-preview,.theo-quote-artwork,.theo-cart-item,.theo-support-guide details,.theo-information section) { border-color: var(--theo-rule) !important; border-width: 1px !important; }
body :is(.theo-workspace-progress,.faq-search__field>div,.theo-quote__total,.theo-cart-summary__total,.theo-checkout-total) { border-bottom-width: 1px !important; border-top-width: 1px !important; }
body .theo-workspace-progress:not([aria-current=step]):not(.is-complete) { border-color: var(--theo-rule) !important; }
body .theo-checkout-progress li { height: 1px; }
body :is(.theo-support-guide th,.theo-support-guide td) { border-color: var(--theo-rule); }
body :is(.theo-support-guide th,.faq-search__field>div) { border-color: var(--theo-rule-strong); }
body .theo-reviews-empty { border-top: 1px solid var(--theo-rule); }
body .theo-contact-help { border-top-width: 1px; border-top-color: var(--theo-rule); }
body .edition-hero__bottom > span { font-size: var(--theo-type-label); line-height: 1.6; }
body .theo-order .theo-upload-primary { border-width: 1px; }
body .theo-account-retention { font-size: 14px; line-height: 1.6; color: #6b6b6b; }
body :is(.theo-account-main,.theo-contact-page,.theo-order,.theo-checkout-shell) .field :is(input:not([type=checkbox],[type=radio],[type=range]),select,textarea):not(:focus):not([aria-invalid=true]) { border-width: 1px; border-color: var(--theo-rule-strong); }

/* Wordmark only: header geometry/scroll behaviour and colour remain intact. */
body .site-header .brand .brand__logo--wordmark,
body.theo-order-page .site-header--order .brand .brand__logo--wordmark { width: 190px; }
body .footer-copyright .footer-bottom { font-size: 13px; }
body .site-footer .footer-grid h2 { font-size: 14px !important; line-height: 1.6 !important; letter-spacing: 0 !important; }
body .site-footer .theo-business h2 { font-size: 14px !important; line-height: 1.6 !important; letter-spacing: 0 !important; }
body .site-footer .footer-grid :is(a,button) { font-size: 14px !important; }
body .footer-information .footer-intro__contact strong { font-size: var(--theo-type-h3); font-weight: 600; }

@media (max-width: 767px) {
  :root { --theo-type-h4: 16px; --theo-type-lead: 16px; --section-space: 64px; --heading-space: 24px; --theo-label-space: 8px; --theo-title-space: 12px; --theo-group-space: 24px; }
  body .site-header .brand .brand__logo--wordmark,
  body.theo-order-page .site-header--order .brand .brand__logo--wordmark { width: 140px; }
  body .theo-support-guide section { margin-top: 24px; }
}
