/* Shared visual language from the supplied one-take home.
   Page layouts, application demos and API behaviour remain in their own modules. */
:root {
  --ui-bg: #000;
  --ui-panel: #101110;
  --ui-raised: #191a18;
  --ui-input: #090a09;
  --ui-text: #f5f4f0;
  --ui-soft: #d1d0ca;
  --ui-muted: #a9a8a3;
  --ui-line: rgba(245, 244, 240, .14);
  --ui-border: rgba(245, 244, 240, .32);
  --ui-font: "Sora", "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  --ui-radius: 12px;
}

body.site-layout { margin: 0; }

/* Keep the animated home canvas isolated from utility-page styling. */
body.site-layout:not(.overhouse-public-home), body.overhouse-public-home.auth-locked {
  --bg: var(--ui-bg);
  --page: var(--ui-bg);
  --panel: var(--ui-panel);
  --paper: var(--ui-panel);
  --paper-raised: var(--ui-raised);
  --text: var(--ui-text);
  --ink: var(--ui-text);
  --soft: var(--ui-soft);
  --muted: var(--ui-muted);
  --line: var(--ui-line);
  --line-strong: var(--ui-border);
  --accent: var(--ui-text);
  --cyan: var(--ui-soft);
  --studio-bg: var(--ui-bg);
  --studio-panel: var(--ui-panel);
  --studio-panel-2: var(--ui-raised);
  --studio-text: var(--ui-text);
  --studio-muted: var(--ui-muted);
  --studio-line: var(--ui-line);
  --studio-line-strong: var(--ui-border);
  --studio-accent: var(--ui-text);
  --faq-accent: var(--ui-text);
  --faq-bg: var(--ui-bg);
  --faq-panel: var(--ui-panel);
  --faq-panel-strong: var(--ui-raised);
  --faq-text: var(--ui-text);
  --faq-muted: var(--ui-muted);
  --faq-line: var(--ui-line);
  --faq-line-strong: var(--ui-border);
  --policy-accent: var(--ui-text);
  --site-page-background: var(--ui-bg);
  background: var(--ui-bg);
  color: var(--ui-text);
  font-family: var(--ui-font);
  line-height: 1.7;
}

/* One header/footer, with the existing centred navigation and aligned edges. */
.site-layout .site-header, .site-layout .site-trust-footer, .site-quick-help { font-family: var(--ui-font); color: var(--ui-text); }
.site-layout .site-header { background: var(--ui-bg); border-color: var(--ui-line); }
.site-header .site-header__brand { font-size: 18px; font-weight: 600; }
.site-header .site-header__nav a { color: var(--ui-muted); font-weight: 500; }
.site-header .site-header__nav a:is(:hover, [aria-current]) { color: var(--ui-text); }
.site-header .site-header__account button, .site-header .site-header__signup { border-radius: 999px; border-color: var(--ui-border); color: var(--ui-text); padding-inline: 18px; font-weight: 500; }
.site-header .site-header__signup { background: var(--ui-text); border-color: var(--ui-text); color: var(--ui-bg); }
.site-header.is-signed-in [data-site-account] { background: var(--ui-text); border-color: var(--ui-text); color: var(--ui-bg); }
.site-header.is-signed-in [data-site-account]:hover, .site-header .site-header__signup:hover { background: #deddd6; border-color: #deddd6; color: var(--ui-bg); }
.site-header .site-header__account button:hover { background: var(--ui-raised); }
.site-header .site-header__account .site-header__menu { padding: 0; }
.site-layout .site-header .site-header__account [data-site-logout] { border-color: transparent; color: var(--ui-muted); padding-inline: 8px; font-weight: 500; }
.site-layout .site-trust-footer { border-color: var(--ui-line); }
.site-trust-footer__lead, .site-trust-footer__bottom { border-color: var(--ui-line); }
.site-trust-footer__label, .site-trust-footer__facts dd { color: var(--ui-soft); }
.site-trust-footer__facts dt, .site-trust-footer__bottom, .site-layout .site-trust-footer__links a { color: var(--ui-muted); }
.site-quick-help summary, .site-quick-help__panel { background: var(--ui-panel); border-color: var(--ui-border); }
.site-quick-help summary { border-radius: 50%; }
.site-quick-help__panel header span { color: var(--ui-muted); }
.site-quick-help__panel a { border-color: var(--ui-line); }
.site-quick-help__panel a:hover { color: var(--ui-text); }

/* Page titles and spacing do not replace page-specific information layouts. */
.site-layout:not(.overhouse-public-home) :is(.account-shell, .pricing-shell, .doc-shell, .faq-shell) { width: min(var(--site-shell-width), calc(100% - 2 * var(--site-shell-padding))); margin: 0 auto; padding-top: 48px; padding-bottom: 64px; }
.site-layout:not(.overhouse-public-home) :is(h1, h2, h3) { font-family: var(--ui-font); font-weight: 500; letter-spacing: -.025em; }
.site-layout:not(.overhouse-public-home) :is(.dashboard-hero, .pricing-intro, .inquiry-hero, .faq-hero, .contact-hero) h1 { font-size: clamp(28px, 3vw, 40px); line-height: 1.35; }
.site-layout:not(.overhouse-public-home) :is(.pricing-intro, .dashboard-hero, .inquiry-hero) { margin-bottom: 32px; }
.site-layout :is(.support-breadcrumb, .eyebrow, .purchase-availability, .account-link small) { color: var(--ui-muted); }
.site-layout :is(.support-sections, .account-sections) { border-color: var(--ui-line); margin-block: 24px 32px; }
.site-layout :is(.support-sections a, .account-sections button) { color: var(--ui-muted); border-radius: 0; padding-inline: 18px; }
.site-layout :is(.support-sections a[aria-current], .account-sections button[aria-selected="true"]) { color: var(--ui-text); background: transparent; border-bottom-color: var(--ui-text); }
@media (max-width: 700px) {
  .site-layout .support-sections { gap: 4px; flex-wrap: wrap; }
  .site-layout .support-sections a { padding-inline: 10px; font-size: 14px; }
}

/* Pill-shaped actions, not pill-shaped fields, lists or tabs. */
.site-layout :is(.plan-select, .purchase-button, .retry-button, .plan-help a, .inquiry-button, .pass-actions .text-link, .payment-history-actions a, .payment-history-actions button, .account-security__actions button, .dialog-actions button, .doc-actions a, .policy-actions a, .studio-button, .button, .product-list-link, .faq-contact > a, .faq-results-meta button) {
  min-height: 44px;
  padding: 10px 20px;
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: transparent;
  color: var(--ui-text);
  font-family: var(--ui-font);
  font-weight: 500;
  box-shadow: none;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.site-layout :is(.plan-select[aria-pressed="true"], .purchase-button, .inquiry-button--primary, .pass-actions .text-link, .dialog-actions button[type="submit"], .studio-button--primary, .button.primary, .faq-contact > a:first-of-type) { background: var(--ui-text); border-color: var(--ui-text); color: var(--ui-bg); }
.site-layout :is(.plan-select, .retry-button, .inquiry-button, .studio-button, .button, .doc-actions a, .plan-help a, .faq-contact > a):hover:not(:disabled) { border-color: var(--ui-text); background: var(--ui-raised); color: var(--ui-text); transform: none; }
.site-layout :is(.plan-select[aria-pressed="true"], .purchase-button, .inquiry-button--primary, .pass-actions .text-link, .studio-button--primary, .button.primary, .faq-contact > a:first-of-type):hover:not(:disabled) { background: #deddd6; border-color: #deddd6; color: var(--ui-bg); }
.site-layout :is(.purchase-button, .inquiry-button, .plan-select):disabled { opacity: .45; cursor: not-allowed; }
.site-layout :is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--ui-text); outline-offset: 4px; }
.site-layout input[type="checkbox"] { accent-color: var(--ui-text); }

/* Membership selection and checkout keep the existing prices and consents. */
.site-layout .purchase-layout { grid-template-columns: minmax(0, 1fr) 340px; margin-top: 0; gap: 24px; align-items: stretch; }
.site-layout .benefit-comparison { margin-top: 32px; }
.site-layout .plan-card { border-color: var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-panel); padding: 28px 24px; --option-accent: var(--ui-text); }
.site-layout .plan-card--complete { background: var(--ui-raised); }
.site-layout .plan-card.is-selected { border-color: var(--ui-border); }
.site-layout .plan-card--complete.is-selected { border-color: var(--ui-text); }
.site-layout .plan-identity :is(span, .included-label) { color: var(--ui-muted); }
.site-layout .plan-identity h3 { font-size: 23px; font-weight: 500; }
.site-layout .plan-grid--primary .plan-identity { align-items: end; min-height: 62px; }
.site-layout .plan-grid--primary .plan-identity img { width: 36px; height: 36px; margin-bottom: 0; }
.site-layout .plan-grid--primary .plan-description { min-height: 46px; }
.site-layout .plan-grid--primary { align-items: stretch; }
.site-layout .plan-price b { font-family: var(--ui-font); font-size: 22px; font-weight: 500; }
.site-layout .plan-price { margin-top: auto; }
.site-layout .plan-card .product-link { margin-top: 0; }
.site-layout .plan-apps { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid var(--ui-line); }
.site-layout .plan-apps li { display: grid; gap: 3px; padding: 10px 0; border-bottom: 1px solid var(--ui-line); }
.site-layout .plan-apps a { font-size: 14px; font-weight: 500; }
.site-layout .plan-apps a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-layout .plan-apps small { color: var(--ui-muted); font-size: 12px; line-height: 1.65; }
.site-layout .plan-apps em { color: #b8d3ff; font-size: 10px; font-style: normal; padding-left: 5px; }
.site-layout .plan-feature-upgraded small, .site-layout td.benefit-upgraded { color: #b8d3ff; font-weight: 600; }
.site-layout .plan-apps .plan-feature-upgraded { border-left: 2px solid #8bb6ff; padding-left: 10px; }
.site-layout .plan-common-apps strong { font-size: 13px; font-weight: 500; }
.site-layout .plan-common-apps > div { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 6px 0; }
.site-layout .plan-common-apps a { color: var(--ui-soft); font-size: 12px; }
.site-layout .basic-addons { border: 0; margin: 0 0 24px; padding: 0; min-width: 0; }
.site-layout .basic-addons legend, .site-layout .complete-inclusions h4 { padding: 0; margin: 0; font-size: 15px; font-weight: 500; }
.site-layout .basic-addons p { font-size: 12px; color: var(--ui-muted); margin: 4px 0 12px; }
.site-layout .addon-toggle { display: flex; width: 100%; min-height: 52px; align-items: center; gap: 10px; text-align: left; border: 0; border-top: 1px solid var(--ui-line); background: transparent; padding: 12px; font-size: 12px; color: var(--ui-soft); cursor: pointer; transition: background-color .2s ease, box-shadow .2s ease, color .2s ease; }
.site-layout .addon-toggle b { margin-left: auto; white-space: nowrap; font-size: 12px; font-weight: 500; }
.site-layout .addon-check { box-sizing: border-box; width: 19px; height: 19px; display: grid; place-items: center; flex-shrink: 0; border: 1px solid var(--ui-border); border-radius: 5px; color: transparent; }
.site-layout .addon-toggle[aria-pressed="true"] .addon-check { background: #a7d6ba; color: #0c1912; border-color: #a7d6ba; }
.site-layout .addon-toggle:is(:hover, :focus-visible):not(:disabled) { background: var(--ui-panel); color: var(--ui-text); }
.site-layout .addon-toggle[aria-pressed="true"] { background: #1b201f; box-shadow: inset 2px 0 0 #a7d6ba; color: var(--ui-text); }
.site-layout .addon-toggle[aria-pressed="true"]:is(:hover, :focus-visible):not(:disabled) { background: #252c29; }
.site-layout .addon-toggle:disabled { opacity: .5; }
.site-layout .complete-inclusions { margin: 0 0 24px; padding: 20px 0; border-top: 1px solid var(--ui-line); }
.site-layout .complete-inclusions p { font-size: 13px; margin: 10px 0 14px; color: var(--ui-soft); }
.site-layout .complete-inclusions a { font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.site-layout .complete-inclusions small { display: block; margin-top: 16px; font-size: 11px; color: var(--ui-muted); }
.site-layout .plan-features { gap: 14px; line-height: 1.7; }
.site-layout .plan-features li::before { color: var(--ui-soft); }
.site-layout .purchase-panel { position: static; display: flex; flex-direction: column; background: var(--ui-panel); border-color: var(--ui-line); border-radius: var(--ui-radius); }
.site-layout .purchase-details { margin-top: auto; padding-top: 16px; }
.site-layout .benefit-comparison thead { background: var(--ui-panel); }
.site-layout .benefit-comparison td, .site-layout .purchase-consents > label { color: var(--ui-soft); }
.site-layout .benefit-comparison tr > :nth-child(6) { background: #b8d3ff12; border-inline: 1px solid #b8d3ff48; }
.site-layout .benefit-comparison thead tr > :nth-child(6) { background: #b8d3ff24; color: #d6e5ff; box-shadow: inset 0 2px #b8d3ff; }
.site-layout .benefit-comparison tbody tr:last-child > :nth-child(6) { box-shadow: inset 0 -1px #b8d3ff48; }
.site-layout .order-total strong { font-family: var(--ui-font); font-weight: 500; }
/* Premium explanations use open editorial rows; selection stays above. */
.site-layout .plan-grid--options { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.site-layout .premium-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: center; gap: 48px; padding-block: 48px; border-top: 1px solid var(--ui-line); }
.site-layout .premium-feature__copy { display: grid; gap: 16px; min-width: 0; }
.site-layout .premium-feature .plan-identity { min-height: 0; }
.site-layout .premium-feature .plan-identity h3 { font-size: 21px; }
.site-layout .premium-feature .plan-identity img { width: 40px; height: 40px; }
.site-layout .premium-feature .plan-description { margin: 0; font-size: 23px; color: var(--ui-text); line-height: 1.6; word-break: keep-all; overflow-wrap: anywhere; }
.site-layout .premium-story { margin: 0; font-size: 14px; color: var(--ui-muted); line-height: 1.9; word-break: keep-all; }
.site-layout .premium-upgrade { border-left: 2px solid #a7c7ff; padding: 4px 0 4px 14px; font-size: 14px; color: #c5dbff; line-height: 1.8; }
.site-layout .premium-feature .product-link { justify-content: flex-start; width: fit-content; padding: 0; margin: 0; }
.site-layout .premium-price { display: flex; align-items: baseline; gap: 12px; margin: 4px 0 0; }
.site-layout .premium-price b { font-size: 21px; font-weight: 500; }
.site-layout .premium-price small { font-size: 12px; color: var(--ui-muted); }
.site-layout .premium-capture { margin: 0; min-width: 0; }
.site-layout .premium-capture a { display: block; border: 1px solid var(--ui-line); border-radius: 12px; padding: 10px; background: var(--ui-panel); }
.site-layout .premium-capture img { display: block; width: 100%; height: auto; border-radius: 4px; }
.site-layout .purchase-agreements { border-top: 1px solid var(--ui-line); padding-top: 12px; font-size: 13px; }
.site-layout .purchase-agreements summary { min-height: 36px; cursor: pointer; }
.site-layout .purchase-agreements .purchase-consents { border-top: 0; padding-top: 8px; }
.site-layout .purchase-policy { justify-content: flex-end; gap: 8px 20px; margin-top: 16px; }
.site-layout .purchase-policy a { white-space: nowrap; }
.site-layout .consent-all { padding-bottom: 12px; border-bottom: 1px solid var(--ui-line); }

/* Account and member conversation: preserve semantic status colours. */
.site-layout :is(.account-overview, .inquiry-login, .inquiry-workspace, .account-delete-dialog) { border-color: var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-panel); }
.site-layout .account-overview { padding: 28px; }
.site-layout .account-shortcuts { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.site-layout .account-shortcuts a { display: inline-flex; align-items: center; gap: 16px; font-size: 14px; text-decoration: none; }
.site-layout .account-support-link { color: var(--ui-muted); padding: 10px; }
.site-layout .account-overview .overview-period { border-color: var(--ui-line); }
.site-layout :is(.pass-title > strong, .overview-period > strong, .payment-history-amount) { font-family: var(--ui-font); }
.site-layout .overview-period > strong { color: var(--ui-text); }
.site-layout .current-pass.is-ending .overview-period > strong { color: #ecd19a; }
.site-layout .current-pass__chips > span { color: var(--ui-soft); background: var(--ui-raised); border: 1px solid var(--ui-line); border-radius: 999px; padding: 3px 10px; }
.site-layout .current-pass__meter { background: #30312e; }
.site-layout :is(.refresh-button, .account-avatar, .dialog-close) { background: var(--ui-panel); color: var(--ui-soft); border-color: var(--ui-border); border-radius: 50%; }
.site-layout .inquiry-filters :is(input, select), .site-layout .inquiry-composer textarea, .site-layout .account-delete-dialog :is(input, select) { background: var(--ui-input); color: var(--ui-text); border-color: var(--ui-border); border-radius: 8px; }
.site-layout .inquiry-list-item:is(:hover, .is-selected) { background: var(--ui-raised); }
.site-layout .inquiry-list-item.is-selected { box-shadow: inset 2px 0 0 var(--ui-text); }
.site-layout .inquiry-messages { background: var(--ui-input); }
.site-layout .inquiry-message > p { background: var(--ui-panel); border-color: var(--ui-line); }
.site-layout .inquiry-message--member > p { background: #252723; border-color: var(--ui-border); }
.site-layout .inquiry-thread-head h2 { scroll-margin-top: 110px; overflow-wrap: anywhere; }
.site-layout .inquiry-notice:empty { display: none; }

/* Customer support keeps its product filter, FAQ answers and inquiry routes. */
.site-layout .faq-search { border: 1px solid var(--ui-border); border-radius: 999px; background: var(--ui-panel); box-shadow: none; }
.site-layout .faq-search input { background: transparent; color: var(--ui-text); }
.site-layout .faq-search:focus-within { border-color: var(--ui-text); box-shadow: none; }
.site-layout .faq-search svg, .site-layout .faq-search input::placeholder { color: var(--ui-muted); }
.site-layout .faq-search-controls { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: end; gap: 16px; margin-top: 24px; }
.site-layout .faq-search-controls .faq-search { width: 100%; margin: 0; }
.site-layout .faq-search-controls .faq-product-filter { display: grid; gap: 6px; margin: 0; font-size: 12px; }
.site-layout .faq-search-controls select { width: 100%; min-height: 52px; font-size: 14px; }
.site-layout .support-categories { display: flex; flex-wrap: wrap; gap: 4px; }
.site-layout .support-category__heading { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13px; cursor: pointer; }
.site-layout .support-category__heading b { font-size: 11px; font-weight: 400; color: var(--ui-muted); font-variant-numeric: tabular-nums; }
.site-layout :is(.faq-results-meta, .faq-product-filter, .faq-item__question small, .faq-answer p, .faq-contact .support-hours) { color: var(--ui-muted); }
.site-layout .faq-product-filter select { background: var(--ui-panel); border-color: var(--ui-border); color: var(--ui-text); border-radius: 8px; }
.site-layout :is(.faq-list, .faq-item) { border-color: var(--ui-line); }
.site-layout .faq-item__question strong { color: var(--ui-text); }
.site-layout .faq-item summary { min-height: 80px; }
.site-layout .faq-contact { margin-top: 0; padding: 24px 0 0; background: transparent; border: 0; border-top: 1px solid var(--ui-line); border-radius: 0; }
.site-layout .faq-contact > a svg { color: inherit; stroke: currentColor; border: 0; background: transparent; }
.site-layout .faq-answer > a { color: var(--ui-soft); }

/* Inquiry form, policies and business details. */
.site-layout :is(.doc-card, .doc-hero, .contact-form, .contact-gateway) { background: var(--ui-panel); border-color: var(--ui-line); border-radius: var(--ui-radius); box-shadow: none; }
.site-layout .doc-hero { padding: 32px; margin-bottom: 24px; }
.site-layout :is(.contact-hero, .policy-hero) { background: none; border-radius: 0; padding-inline: 0; }
.site-layout .contact-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; align-items: start; }
.site-layout .contact-guide { background: transparent; border: 0; border-top: 1px solid var(--ui-line); border-radius: 0; padding: 24px 0; }
.site-layout .contact-guide .contact-panel__head { display: grid; gap: 12px; }
.site-layout .contact-guide .contact-panel__head > p { text-align: left; font-size: 13px; line-height: 1.8; }
.site-layout.contact-page .contact-panel__head { margin-bottom: 24px; }
.site-layout:not(.is-product-contact) .contact-category-select { display: grid; gap: 8px; margin-bottom: 24px; font-size: 14px; }
.site-layout .contact-category-select select { width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; }
.site-layout .contact-form .form-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
.site-layout :is(.contact-panel__head div > span, .contact-panel__head > p, .contact-availability > span, .contact-availability p, .contact-channel > span) { color: var(--ui-muted); }
.site-layout .contact-form :is(input:not([type="checkbox"]), textarea, select) { background: var(--ui-input); color: var(--ui-text); border-color: var(--ui-border); border-radius: 8px; }
.site-layout .contact-form :is(input, textarea, select):focus { border-color: var(--ui-text); box-shadow: none; }
.site-layout .contact-form textarea { height: 240px; min-height: 240px; max-height: 240px; resize: none; overflow-y: auto; }
.site-layout .contact-consent > span > span { display: block; }
.site-layout .contact-form__foot { border: 0; margin-top: 20px; padding-top: 0; align-items: center; }
.site-layout .contact-form__foot [data-contact-feedback]:empty { display: none; }
.site-layout .contact-form button[type="submit"] { min-height: 48px; padding: 10px 24px; border: 1px solid var(--ui-text); border-radius: 999px; background: var(--ui-text); color: var(--ui-bg); font-family: var(--ui-font); font-weight: 500; }
.site-layout .contact-form button[type="submit"]:disabled { opacity: .45; cursor: not-allowed; }
.site-layout :is(.contact-consent, .contact-form__foot p, .contact-channel p, .policy-version span, .policy-summary span, .policy-toc a, .policy-section p, .policy-section li) { color: var(--ui-muted); }
.site-layout .policy-actions a { font-size: 13px; }
.site-layout .policy-note { background: var(--ui-panel); color: var(--ui-soft); }
.site-layout .policy-toc__links a::after { background: transparent; border-color: var(--ui-line); color: var(--ui-muted); }

/* Company and product information retain all existing illustrations and sections. */
.site-layout .about-hero__inner, .site-layout .shell { width: min(var(--site-shell-width), calc(100% - 2 * var(--site-shell-padding))); }
.site-layout :is(.studio-intro, .capability-section, .process-section) { background: var(--ui-bg); }
.site-layout :is(.about-hero h1, .studio-intro__manifesto h2) { font-weight: 400; }
.site-layout :is(.about-hero h1 em, .studio-intro__manifesto h2 em) { color: var(--ui-text); font-weight: 600; }
.site-layout .studio-button { font-size: 14px; }
.site-layout .studio-button svg, .site-layout .studio-button span { color: inherit; }
.site-layout .section-kicker { color: var(--ui-muted); font-weight: 500; }
.site-layout .capability-tabs button[aria-selected="true"] { background: var(--ui-panel); }
.site-layout .about-hero__rail { background: #0008; }
.site-layout .project-brief { background: var(--ui-text); color: var(--ui-panel); }
.site-layout .project-brief .section-kicker, .site-layout .project-brief__inner > div:first-child > p:last-child { color: #545550; }
.site-layout .project-brief .studio-button--light { background: var(--ui-bg); border-color: var(--ui-bg); color: var(--ui-text); }
.site-layout .project-brief .studio-button--light:hover { background: var(--ui-raised); color: var(--ui-text); }
.site-layout[data-product] .button.primary:not(.ui-download) { color: var(--ui-bg); }

/* The homepage detail frame adopts the palette; app-simulation internals do not. */
body.overhouse-public-home .product-detail-dialog { font-family: var(--ui-font); color: var(--ui-text); background: var(--ui-bg); border-color: var(--ui-border); border-radius: var(--ui-radius); }
body.overhouse-public-home .product-detail__rail { background: var(--ui-panel); border-color: var(--ui-line); }
body.overhouse-public-home .product-detail__main { background: var(--ui-bg); }
body.overhouse-public-home .product-detail__cta { border-radius: 999px; border-color: var(--ui-text); background: var(--ui-text); color: var(--ui-bg); }
body.overhouse-public-home .product-detail__cta:hover { background: #deddd6; color: var(--ui-bg); transform: none; }

/* Auth rules match the specificity of the existing composite home styles. */
body.auth-locked.overhouse-public-home .auth-screen { background: var(--ui-bg) !important; }
body.auth-locked.overhouse-public-home .auth-card { background: var(--ui-panel) !important; border-color: var(--ui-line) !important; border-radius: var(--ui-radius) !important; }
body.auth-locked.overhouse-public-home .auth-card, body.auth-locked.overhouse-public-home .auth-card :is(button, input, label) { font-family: var(--ui-font) !important; }
body.auth-locked.overhouse-public-home .auth-card #authTitle { color: var(--ui-text) !important; font-size: 30px !important; font-weight: 500 !important; }
body.auth-locked.overhouse-public-home .auth-card-brand { color: var(--ui-text); font-weight: 500; }
body.auth-locked.overhouse-public-home .auth-form label { color: var(--ui-soft) !important; }
body.auth-locked.overhouse-public-home .auth-card input:not([type="checkbox"]) { background: var(--ui-input) !important; border-color: var(--ui-border) !important; color: var(--ui-text) !important; }
body.auth-locked.overhouse-public-home .auth-card input::placeholder { color: #898983 !important; }
body.auth-locked.overhouse-public-home .auth-card input:focus-visible { outline-color: var(--ui-text) !important; }
body.auth-locked.overhouse-public-home .auth-card input[type="checkbox"] { accent-color: var(--ui-text) !important; }
body.auth-locked.overhouse-public-home .auth-card :is(#authSubmit, #authEmailSend, #authEmailConfirm) { background: var(--ui-text) !important; color: var(--ui-bg) !important; border: 1px solid var(--ui-text) !important; border-radius: 999px !important; font-weight: 500 !important; box-shadow: none !important; }
body.auth-locked.overhouse-public-home :is(#authResetPassword, #authResendEmail, .auth-mode-toggle) { color: var(--ui-soft) !important; }
body.auth-locked.overhouse-public-home .house-social-login button { border-radius: 999px; background: transparent; border-color: var(--ui-border); color: var(--ui-muted); font-size: 14px; }
body.auth-locked.overhouse-public-home .house-social-login small { color: var(--ui-muted); }
body.auth-locked.overhouse-public-home .auth-email-status { color: var(--ui-muted); }
body.auth-locked.overhouse-public-home .auth-form .auth-email-field { display: grid; grid-template-columns: minmax(0, 1fr) 118px; align-items: center; gap: 8px; margin-top: 7px; }
body.auth-locked.overhouse-public-home .auth-form .auth-email-field input { margin: 0 !important; min-width: 0; }
body.auth-locked.overhouse-public-home .auth-card :is(#authEmailSend, #authEmailConfirm) { width: 100%; min-width: 0; height: 48px !important; min-height: 48px !important; margin: 0 !important; padding: 0 10px !important; font-size: 13px !important; line-height: 1.3; transform: none; }
body.auth-locked.overhouse-public-home .auth-code-caption { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
body.auth-locked.overhouse-public-home #authEmailCountdown { color: #b8d3ff; font-size: 13px; font-variant-numeric: tabular-nums; }
body.auth-locked.overhouse-public-home .auth-policy-checks label { display: grid !important; grid-template-columns: 18px minmax(0, 1fr); align-items: start; }
body.auth-locked.overhouse-public-home .auth-consent-all { padding-bottom: 12px; border-bottom: 1px solid var(--ui-line); }
body.auth-locked.overhouse-public-home .auth-password-help { margin: -8px 0 0; color: var(--ui-muted); font-size: 12px !important; line-height: 1.7; }
body.auth-locked.overhouse-public-home #authMessage { color: var(--ui-text) !important; background: var(--ui-panel) !important; border-color: var(--ui-border) !important; }
body.auth-locked.overhouse-public-home #authMessage[data-state="success"] { color: #a1dfbb !important; background: #14251c !important; border-color: #3f7955 !important; }
body.auth-locked.overhouse-public-home #authMessage[data-state="error"] { color: #ffc0c0 !important; background: #2b181b !important; border-color: #8b444f !important; }
body.auth-locked.overhouse-public-home .auth-legal { color: var(--ui-muted); }
body.auth-locked.overhouse-public-home .auth-legal a { color: var(--ui-muted) !important; text-decoration-color: var(--ui-border); }
body.auth-locked.overhouse-public-home .auth-visual { background: var(--ui-bg) !important; }
body.auth-locked.overhouse-public-home .auth-visual::before { inset: 0 !important; width: auto !important; height: auto !important; border: 0 !important; border-radius: 0 !important; background: linear-gradient(180deg, #0001, #000e) !important; box-shadow: none !important; transform: none !important; }
body.auth-locked.overhouse-public-home .auth-visual::after { content: none !important; }
body.auth-locked.overhouse-public-home .auth-visual-copy strong { color: var(--ui-text); font-family: var(--ui-font); font-weight: 400; }

/* Email proof reveals password fields in place; final consent stays below them. */
body.auth-locked.overhouse-public-home #authConsentHeading { margin: 0 0 14px; color: var(--ui-soft); font-size: 14px; font-weight: 500; }
body.auth-locked.overhouse-public-home .auth-card #authRegisterPolicy { margin: 8px 0 0; padding-top: 20px; border-top: 1px solid var(--ui-line); }
body.auth-locked.overhouse-public-home .auth-card .auth-form [hidden] { display: none !important; }
body.auth-locked.overhouse-public-home .auth-form .auth-email-field input { height: 48px !important; box-sizing: border-box; }
body.auth-locked.overhouse-public-home .auth-marketing-notice { margin: 2px 0 0; padding-left: 26px; font-size: 12px; line-height: 1.75; font-weight: 400; color: var(--ui-muted); }
body.auth-locked.overhouse-public-home .auth-card :is(.auth-marketing-notice, .auth-privacy-summary p, .auth-email-status, .auth-password-help) { color: var(--ui-muted) !important; font-weight: 400 !important; letter-spacing: 0 !important; }
body.auth-locked.overhouse-public-home .auth-policy-checks b { color: var(--ui-muted); font-size: 10px; font-weight: 400; }

/* Informational pages use the same shell without repeating large title cards. */
.site-layout.business-page .doc-hero { background: none; border: 0; border-radius: 0; padding: 0 0 24px; margin: 0; }
.site-layout.business-page .doc-hero h1 { margin: 0; }
.site-layout.business-page .doc-card { padding: 24px; }
.site-layout.business-page .info-grid { margin-top: 0; }
.site-layout.business-page .info-tile { min-width: 0; }
.site-layout.business-page .info-tile > span { overflow-wrap: anywhere; }
.site-layout.about-page :is(.studio-section__head h2, .project-brief h2) { max-width: 24em; text-wrap: balance; word-break: keep-all; overflow-wrap: break-word; }

/* Legal content retains its provisions; only reading width and hierarchy change. */
.site-layout.policy-page .policy-hero { padding-top: 0; padding-bottom: 24px; }
.site-layout.policy-page .policy-hero h1 { font-size: clamp(28px, 3vw, 36px); }
.site-layout.policy-page .policy-version { gap: 4px; }
.site-layout.policy-page :is(.policy-version span, .policy-summary span) { font-weight: 400; letter-spacing: 0; }
.site-layout.policy-page .policy-summary { margin-top: 24px; }
.site-layout.policy-page .policy-summary strong { font-size: 14px; font-weight: 500; }
.site-layout.policy-page .policy-layout { grid-template-columns: 184px minmax(0, 1fr); gap: 40px; padding-top: 24px; }
.site-layout.policy-page .policy-content { width: 100%; max-width: 860px; }
.site-layout.policy-page .policy-toc a { font-size: 13px; }
.site-layout.policy-page .policy-article { grid-template-columns: 28px minmax(0, 1fr); gap: 16px; padding-block: 28px; }
.site-layout.policy-page .policy-article h2 { font-size: 23px; line-height: 1.5; margin-bottom: 16px; }
.site-layout.policy-page .policy-prose :is(p, li, dd) { font-size: 15px; line-height: 1.85; color: var(--ui-soft); word-break: keep-all; overflow-wrap: anywhere; }
.site-layout.policy-page .policy-prose p + p { margin-top: 12px; }
.site-layout.policy-page .policy-callout { padding-top: 0; }
.site-layout.policy-page .policy-callout > span { color: var(--ui-soft); border-color: var(--ui-line); font-weight: 500; }
.site-layout.policy-page .policy-callout p { font-size: 14px; line-height: 1.8; color: var(--ui-soft); }
.site-layout.policy-page .policy-effective { flex-wrap: wrap; gap: 8px 24px; }
.site-layout .service-message { max-width: 760px; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--ui-line); border-radius: var(--ui-radius); background: var(--ui-panel); }
.site-layout .service-message h1 { font-size: clamp(25px, 3vw, 34px); line-height: 1.45; margin: 0 0 20px; word-break: keep-all; overflow-wrap: anywhere; }
.site-layout .service-message p { color: var(--ui-soft); margin: 0 0 24px; font-size: 15px; line-height: 1.8; }
.site-layout .service-message .doc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.site-layout.email-preferences-page .service-message { margin-inline: auto; }
.site-layout.email-preferences-page .service-message > a:first-child { display: inline-block; color: var(--ui-muted); margin-bottom: 28px; }
.site-layout.email-preferences-page #unsubscribeStatus { margin-top: 24px; }
.site-layout.email-preferences-page #unsubscribeStatus:empty { display: none; }
.site-layout.email-preferences-page .service-message > a:last-child { display: block; margin-top: 24px; text-decoration: underline; text-underline-offset: 4px; }
.site-layout.email-preferences-page #unsubscribeEmail:disabled { opacity: .5; cursor: not-allowed; }

@media (max-width: 760px) {
  .site-layout.policy-page .policy-layout { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .site-layout.policy-page .policy-article { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .site-layout.policy-page .policy-article h2 { font-size: 21px; }
  .site-layout.policy-page .policy-callout { grid-template-columns: minmax(0, 1fr); }
  .site-layout.policy-page .policy-callout > span { justify-self: start; }
}

@media (max-width: 1080px) {
  .site-layout .purchase-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .site-layout .contact-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 700px) {
  .site-layout:not(.overhouse-public-home) :is(.account-shell, .pricing-shell, .doc-shell, .faq-shell) { padding-top: 28px; padding-bottom: 40px; }
  .site-header .site-header__brand { font-size: 16px; }
  .site-header .site-header__account button, .site-header .site-header__signup { padding-inline: 12px; }
  .site-header .site-header__account .site-header__menu { padding: 0; }
  .site-layout :is(.plan-card, .account-overview, .doc-hero) { padding: 20px; }
  .site-layout :is(.contact-hero, .policy-hero) { padding-inline: 0; }
  .site-layout .plan-identity h3 { font-size: 21px; }
  .site-layout .faq-search-controls { grid-template-columns: minmax(0, 1fr); }
  .site-layout .premium-feature { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-block: 32px; }
  .site-layout .account-shortcuts a { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-layout :is(.plan-select, .purchase-button, .inquiry-button, .studio-button, .button) { transition: none; }
}


/* Sub-navigation is subordinate to the four support sections. */
.site-layout .support-subnav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -8px 0 28px; }
.site-layout .support-subnav a { padding: 8px 16px; border: 1px solid transparent; border-radius: 999px; color: var(--ui-muted); font-size: 13px; text-decoration: none; }
.site-layout .support-subnav a[aria-current="page"] { border-color: var(--ui-border); background: var(--ui-panel); color: var(--ui-text); }
.site-layout .support-subnav a:hover { color: var(--ui-text); }

/* Keep verification guidance next to its field, not below the entire form. */
body.auth-locked.overhouse-public-home .auth-card .auth-field-message { margin: 8px 0 0; padding: 0; font-size: 13px; line-height: 1.65; font-weight: 400; color: var(--ui-soft); }
body.auth-locked.overhouse-public-home .auth-card .auth-field-message[data-state="error"] { color: #ffc0c0; }
body.auth-locked.overhouse-public-home .auth-card .auth-field-message[data-state="success"] { color: #a1dfbb; }
body.auth-locked.overhouse-public-home #authEmailStatus { margin: 8px 0 0; font-size: 12px; line-height: 1.65; }
body.auth-locked.overhouse-public-home .auth-card #authEmailChange { width: 100%; min-width: 0; margin: 0 !important; padding: 0 10px !important; height: 48px !important; min-height: 48px !important; border: 1px solid var(--ui-border) !important; border-radius: 999px !important; background: transparent !important; color: var(--ui-text) !important; font-size: 13px !important; box-shadow: none !important; transform: none; }
body.auth-locked.overhouse-public-home .auth-card #authEmail[readonly] { color: var(--ui-muted) !important; }
