/* v44 — clear type floor and semantic light/dark contrast. */
:root {
  --v44-category-type: 18px;
  --v44-min-readable: 18px;
  --v44-light-text: #241a13;
  --v44-light-muted: #5b4b3d;
  --v44-light-accent: #75491f;
  --v44-dark-text: #fbf3e8;
  --v44-dark-muted: #d5c4b1;
  --v44-dark-accent: #f2ca8a;
}

html[data-theme="light"] {
  --ink: var(--v44-light-text);
  --muted: var(--v44-light-muted);
  --gold-hi: var(--v44-light-accent);
}

html[data-theme="dark"] {
  --ink: var(--v44-dark-text);
  --muted: var(--v44-dark-muted);
  --gold-hi: var(--v44-dark-accent);
}

html,
body {
  color: var(--ink) !important;
}

body {
  font-size: var(--v44-min-readable) !important;
  line-height: 1.7;
}

/* Readable copy and controls never drop below the category-column type size. */
html body :is(p, li, small, label, button, input, textarea, select, a, td, th, dt, dd, summary, span, .category-banner-copy small, .section-label) {
  font-size: max(var(--v44-min-readable), 1em) !important;
}

.category-banner-copy strong {
  font-size: max(var(--v44-category-type), clamp(17px, 1.7vw, 23px)) !important;
}

html body :is(
  .eyebrow,
  .section-label,
  .breadcrumb,
  .category-banner-intro p,
  .category-banner-intro > a,
  .category-banner-number,
  .category-banner-copy small,
  .category-banner-copy i,
  .service-card-top .bento-index,
  .service-card-badge,
  .service-card-context,
  .service-card-copy p,
  .service-tags span,
  .service-card-footer a,
  .service-card-footer a i,
  .service-proof-intro > span,
  .service-proof-item b,
  .service-proof-item span,
  .service-access-note span,
  .service-access-note > small,
  .service-access-note > a,
  .product-rail-intro span,
  .product-rail-intro small,
  .product-rail-item b,
  .product-rail-item small,
  .product-rail-item > i,
  .detail-note p,
  .detail-spec,
  .detail-viewer-footer,
  .concierge-top,
  .concierge-note,
  .brand-interpretation-head,
  .brand-interpretation-card-top small,
  .brand-interpretation-card p,
  .philosophy-facts span,
  .material-caption span,
  .material-caption b,
  .material-warp-label span,
  .material-warp-label b,
  .visual-caption,
  .account-card-kicker,
  .account-identity-card > span:not(.account-card-kicker),
  .account-identity-card small,
  .account-quick-card span,
  .account-quick-card small,
  .account-section-head > span,
  .account-order-product small,
  .account-order-meta small,
  .account-order-status,
  .account-order-link,
  .account-empty-state,
  .market-filter,
  #market-result-count,
  .catalog-action,
  .import-result-count,
  .dashboard-settings p,
  .activity-card b,
  .activity-card p,
  .store-contact-modal-copy,
  .store-focus-note,
  .side-label,
  .side-link,
  .demo-pill,
  .product-table,
  .product-table th,
  .product-table td,
  .product-source,
  .status,
  .empty-state,
  .product-detail-intro-label,
  .product-detail-price span,
  .concierge-modal-card > small,
  .concierge-modal form button,
  body[data-merchant-auth-state="pending"]::before
) {
  font-size: var(--v44-min-readable) !important;
}

/* The legacy theme layer has several higher-specificity micro-label rules.
   Override those roles explicitly so no visible text falls below the
   category-column type size on any route. */
html body :is(
  .brand-submark,
  .nav-links a,
  .topbar .button,
  .request-access small,
  .request-access i,
  .hero-motion-control button b,
  .scene-corner-label,
  .hero-kicker,
  .hero-access-note,
  .hero-slogan-main i,
  .hero-cta i,
  .detail-note b,
  .service-card-footer a i,
  .service-access-note > a i,
  .concierge-primary i,
  .concierge-option i,
  .merchant-card strong,
  .join-card a i,
  .account-logout,
  .dash-stat em,
  .mini-profile b,
  .hierarchy-item b,
  .dashboard-main [style*="font-size:10px"],
  .login-session strong,
  .modal-product b,
  .product-order-selected strong,
  kbd,
  .theme-toggle-copy b,
  .theme-toggle-copy small,
  .language-trigger span,
  legend
):not(#v44-typography-floor-exempt) {
  font-size: var(--v44-min-readable) !important;
}

.hero-slogan-main {
  font-size: max(var(--v44-min-readable), clamp(16px, 1.65vw, 24px)) !important;
}

.hero-slogan small {
  font-size: var(--v44-min-readable) !important;
}

.service-card-copy blockquote,
.philosophy-copy blockquote {
  font-size: max(var(--v44-min-readable), 1.15em) !important;
}

.service-card--brand .service-card-copy blockquote,
.service-card--concierge .service-card-copy blockquote {
  font-size: var(--v44-min-readable) !important;
}

/* Strong text keeps its hierarchy while still respecting the 18px floor. */
.metric strong { font-size: max(var(--v44-min-readable), 27px) !important; }
.price { font-size: max(var(--v44-min-readable), 22px) !important; }
.account-identity-card strong { font-size: max(var(--v44-min-readable), 30px) !important; }
.account-quick-card strong { font-size: max(var(--v44-min-readable), 27px) !important; }
.account-order-product strong, .account-order-meta strong { font-size: max(var(--v44-min-readable), 20px) !important; }
.product-rail-item strong { font-size: max(var(--v44-min-readable), 22px) !important; }
.service-proof-item strong { font-size: max(var(--v44-min-readable), 18px) !important; }
.concierge-core { font-size: max(var(--v44-min-readable), 50px) !important; }
.concierge-core b { font-size: max(var(--v44-min-readable), 31px) !important; }

html[data-theme="light"] body :is(
  p,
  li,
  small,
  label,
  td,
  th,
  dt,
  dd,
  .category-banner-copy small,
  .service-card-copy p,
  .service-tags span,
  .service-card-context,
  .service-proof-item span,
  .service-access-note > small,
  .product-rail-item small,
  .detail-note p,
  .detail-spec,
  .account-identity-card small,
  .account-quick-card small,
  .account-order-product small,
  .account-order-meta small,
  .account-empty-state,
  .activity-card p,
  .store-contact-modal-copy,
  .store-focus-note,
  .product-source,
  .empty-state
) {
  color: var(--v44-light-muted) !important;
}

html[data-theme="light"] body :is(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  strong,
  b,
  .brand,
  .brand-wordmark,
  .nav-links a,
  .category-banner-copy strong,
  .service-card-copy h3,
  .product-detail-title,
  .account-hero h1,
  .account-section-head h2
) {
  color: var(--v44-light-text) !important;
}

html[data-theme="light"] :where(
  .section-label,
  .eyebrow,
  .breadcrumb,
  .category-banner-number,
  .category-banner-copy i,
  .service-card-badge,
  .service-card-footer a,
  .service-access-note > a,
  .market-filter[aria-pressed="true"],
  .catalog-action,
  .account-card-kicker,
  .account-order-status,
  .account-order-link
) {
  color: var(--v44-light-accent) !important;
}

html[data-theme="dark"] body :is(
  p,
  li,
  small,
  label,
  td,
  th,
  dt,
  dd,
  .category-banner-copy small,
  .service-card-copy p,
  .service-tags span,
  .service-card-context,
  .service-proof-item span,
  .service-access-note > small,
  .product-rail-item small,
  .detail-note p,
  .detail-spec,
  .account-identity-card small,
  .account-quick-card small,
  .account-order-product small,
  .account-order-meta small,
  .account-empty-state,
  .activity-card p,
  .store-contact-modal-copy,
  .store-focus-note,
  .product-source,
  .empty-state
) {
  color: var(--v44-dark-muted) !important;
}

html[data-theme="dark"] body :is(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  strong,
  b,
  .brand,
  .brand-wordmark,
  .nav-links a,
  .category-banner-copy strong,
  .service-card-copy h3,
  .product-detail-title,
  .account-hero h1,
  .account-section-head h2
) {
  color: var(--v44-dark-text) !important;
}

/* Inline emphasis must follow the active surface instead of inheriting a
   low-contrast decorative gold from the original dark-first theme. */
html[data-theme="light"] body :is(
  h1 em,
  h2 em,
  h3 em,
  h4 em,
  h5 em,
  h6 em,
  .hero-slogan-main em
) {
  color: var(--v44-light-accent) !important;
}

html[data-theme="dark"] body :is(
  h1 em,
  h2 em,
  h3 em,
  h4 em,
  h5 em,
  h6 em,
  .hero-slogan-main em
) {
  color: var(--v44-dark-accent) !important;
}

/* Small labels in the light merchant/service surfaces use the same readable
   semantic palette as the rest of the page. */
html[data-theme="light"] body :is(
  .service-card-context span,
  .service-proof-intro > span,
  .service-access-note span,
  .product-rail-intro span,
  .brand-interpretation-head,
  .brand-interpretation-card-top small,
  .material-caption span,
  .material-warp-label span
) {
  color: var(--v44-light-accent) !important;
}

html[data-theme="light"] body :is(
  .service-card-context b,
  .service-proof-item b,
  .material-caption b,
  .material-warp-label b
) {
  color: var(--v44-light-text) !important;
}

html[data-theme="dark"] :where(
  .section-label,
  .eyebrow,
  .breadcrumb,
  .category-banner-number,
  .category-banner-copy i,
  .service-card-badge,
  .service-card-footer a,
  .service-access-note > a,
  .market-filter[aria-pressed="true"],
  .catalog-action,
  .account-card-kicker,
  .account-order-status,
  .account-order-link
) {
  color: var(--v44-dark-accent) !important;
}

html[data-theme="light"] body :is(input, textarea, select) {
  color: var(--v44-light-text) !important;
  background: var(--surface-1) !important;
}

html[data-theme="dark"] body :is(input, textarea, select) {
  color: var(--v44-dark-text) !important;
  background: var(--surface-3) !important;
}

::placeholder {
  color: var(--muted) !important;
  opacity: .92 !important;
}

html[data-theme="light"] body :is(.join-card.mint, .join-card.mint p, .join-card.mint a) {
  color: var(--v44-light-text) !important;
}

html[data-theme="dark"] body :is(.join-card.mint, .join-card.mint p, .join-card.mint a) {
  color: var(--v44-dark-text) !important;
}

@media (max-width: 1100px) {
  .luxury-header {
    min-height: 108px;
    height: auto;
    padding-top: 13px;
    padding-bottom: 13px;
    flex-wrap: wrap;
    row-gap: 9px;
  }

  .luxury-header .hero-nav {
    order: 3;
    flex-basis: 100%;
    justify-content: center;
    padding-top: 3px;
  }
}

@media (max-width: 680px) {
  body { line-height: 1.65; }
  .luxury-header { min-height: 78px; flex-wrap: nowrap; }
  .luxury-header .hero-nav { display: none; }
  .luxury-header .request-access { min-width: 0; padding: 12px 13px; }
  .category-banner-copy strong { font-size: var(--v44-category-type) !important; }
  .hero-slogan-main { font-size: var(--v44-min-readable) !important; }
}
