/* RITAIS public website system — governed by WEBSITE-BRAND-GUIDE.md */
:root {
  --ritais-ink: #091526;
  --ritais-navy: #102a4c;
  --ritais-blue: #1e4e7d;
  --ritais-amber: #e19a31;
  --ritais-amber-deep: #a85f0f;
  --ritais-violet: #8a73bd;
  --ritais-paper: #f6f3ec;
  --ritais-surface: #fffdf8;
  --ritais-soft-blue: #eaf1f7;
  --ritais-soft-violet: #f0edf7;
  --ritais-line: #d9dee5;
  --ritais-muted: #5b6878;
  --ritais-success: #1d6f54;
  --ritais-warning: #80520d;
  --ritais-danger: #9a2f2f;
  --ritais-focus: #f3b456;
  --ritais-radius-sm: 12px;
  --ritais-radius-md: 20px;
  --ritais-radius-lg: 32px;
  --ritais-shadow-sm: 0 10px 30px rgba(9, 21, 38, 0.08);
  --ritais-shadow-lg: 0 28px 72px rgba(9, 21, 38, 0.15);
  --ritais-content: 1180px;
  --ritais-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ritais-product-briefcase-accent: #35679f;
  --ritais-product-peregrine-accent: #d27a16;
  --ritais-product-moneypenny-accent: #7f5ba7;
  --ritais-product-argosy-accent: #21806e;
}

html { max-width: 100%; overflow-x: hidden; scroll-behavior: smooth; }
body {
  max-width: 100%;
  overflow-x: hidden;
  background: var(--ritais-paper);
  color: var(--ritais-ink);
  font-family: var(--ritais-font);
  text-rendering: optimizeLegibility;
}
body.site-v17 { overflow-x: clip; }
body.site-v17 [hidden] { display: none !important; }
body.site-v17 main { display: block; }
.home-page.site-v17 main > section,
.marketplace-page.site-v17 main > section { padding: clamp(62px, 7vw, 100px) 0; }
.home-page.site-v17 h1,
.home-page.site-v17 h2,
.home-page.site-v17 h3,
.marketplace-page.site-v17 h1,
.marketplace-page.site-v17 h2,
.marketplace-page.site-v17 h3 { color: var(--ritais-ink); text-wrap: balance; }
.home-page.site-v17 h1,
.marketplace-page.site-v17 h1 { letter-spacing: -0.055em; }
.home-page.site-v17 h2,
.marketplace-page.site-v17 h2 { font-size: clamp(1.9rem, 3.2vw, 3.1rem); line-height: 1.08; letter-spacing: -0.035em; }
.home-page.site-v17 p,
.marketplace-page.site-v17 p { line-height: 1.7; }
body.site-v17 .container { width: min(var(--ritais-content), calc(100% - 40px)); }
[id] { scroll-margin-top: 105px; }

/* Keep editorial display type confident without overwhelming the interface. */
body.site-v17:not(.home-page):not(.marketplace-page) :is(.hero-system, .hero-clean, .page-hero, .photo-hero) h1 {
  max-width: 860px;
  font-size: clamp(2.15rem, 3.7vw, 3.65rem);
  line-height: 1.06;
  letter-spacing: -0.035em;
  overflow-wrap: normal;
  text-wrap: balance;
}

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 12px;
  left: 12px;
  padding: 10px 14px;
  color: #fff;
  background: var(--ritais-ink);
  border-radius: 8px;
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--ritais-focus);
  outline-offset: 3px;
}

/* Shared public shell */
.site-header {
  position: sticky;
  inset: 0 0 auto;
  z-index: 120;
  width: 100%;
  background: rgba(255, 253, 248, 0.94);
  border-bottom: 1px solid rgba(9, 21, 38, 0.1);
  box-shadow: 0 8px 30px rgba(9, 21, 38, 0.05);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  backdrop-filter: blur(18px) saturate(140%);
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 82px;
  gap: 28px;
  padding: 10px 0;
}
.site-header.is-overlay {
  position: absolute;
  color: #fff;
  background: linear-gradient(180deg, rgba(5, 14, 28, 0.88), rgba(5, 14, 28, 0.28));
  border-bottom-color: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}
.site-header.is-overlay.scrolled {
  position: fixed;
  background: rgba(7, 18, 35, 0.94);
  box-shadow: 0 16px 44px rgba(0, 0, 0, 0.25);
}
.site-brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 12px;
  color: var(--ritais-ink);
  text-decoration: none;
}
.site-header.is-overlay .site-brand { color: #fff; }
.site-brand img { width: 44px; height: 52px; object-fit: contain; }
.site-brand-copy { display: grid; gap: 1px; }
.site-brand-copy strong { font-size: 1.18rem; line-height: 1; letter-spacing: 0.16em; }
.site-brand-copy small { color: var(--ritais-muted); font-size: 0.69rem; letter-spacing: 0.04em; }
.site-header.is-overlay .site-brand-copy small { color: rgba(255, 255, 255, 0.7); }
.site-nav { display: flex; align-items: center; gap: 6px; }
.site-nav a {
  padding: 10px 11px;
  border-radius: 999px;
  color: var(--ritais-ink);
  font-size: 0.88rem;
  font-weight: 750;
  text-decoration: none;
}
.site-header.is-overlay .site-nav a { color: rgba(255, 255, 255, 0.9); }
.site-nav a:hover,
.site-nav a[aria-current="page"] { background: var(--ritais-soft-blue); color: var(--ritais-navy); }
.site-header.is-overlay .site-nav a:hover,
.site-header.is-overlay .site-nav a[aria-current="page"] { background: rgba(255, 255, 255, 0.12); color: #fff; }
.site-nav .site-contact {
  margin-left: 4px;
  padding-inline: 17px;
  color: #17130d !important;
  background: var(--ritais-amber) !important;
}
.site-nav .site-contact:hover { background: #efae4d !important; }
.site-menu-toggle {
  display: none;
  min-width: 48px;
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid rgba(9, 21, 38, 0.18);
  border-radius: 999px;
  color: var(--ritais-ink);
  background: transparent;
  font: inherit;
  font-weight: 800;
}
.site-header.is-overlay .site-menu-toggle { color: #fff; border-color: rgba(255, 255, 255, 0.35); background: rgba(255, 255, 255, 0.08); }

/* Home */
.suite-hero {
  position: relative;
  display: grid;
  min-height: min(900px, 100svh);
  padding: 0 !important;
  color: #fff;
  background: var(--ritais-ink);
  isolation: isolate;
}
.suite-hero-media,
.suite-hero-media video,
.suite-hero-media::after { position: absolute; inset: 0; width: 100%; height: 100%; }
.suite-hero-media { z-index: -2; overflow: hidden; }
.suite-hero-media video { object-fit: cover; opacity: 0.7; filter: saturate(0.85) contrast(1.08); }
.suite-hero-media::after {
  content: "";
  background:
    radial-gradient(circle at 82% 18%, rgba(138, 115, 189, 0.28), transparent 28%),
    linear-gradient(90deg, rgba(5, 14, 28, 0.98) 0%, rgba(6, 21, 42, 0.92) 48%, rgba(8, 28, 54, 0.56) 78%, rgba(8, 28, 54, 0.3) 100%),
    linear-gradient(180deg, rgba(5, 14, 28, 0.1), rgba(5, 14, 28, 0.62));
}
.suite-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(290px, 0.55fr);
  align-items: end;
  gap: clamp(42px, 7vw, 92px);
  min-height: min(900px, 100svh);
  padding: 165px 0 82px;
}
.suite-hero-copy { align-self: center; max-width: 830px; }
.suite-kicker,
.section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--ritais-amber-deep);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}
.suite-kicker { color: #f6bd67; }
.suite-kicker::before,
.section-kicker::before { content: ""; width: 24px; height: 2px; background: currentColor; }
.suite-hero h1 {
  margin: 19px 0 25px;
  max-width: 830px;
  color: #fff !important;
  font-size: clamp(2.8rem, 4.85vw, 4.9rem);
  line-height: 0.98;
}
.suite-hero h1 span { color: #f4c786; }
.suite-hero-copy > p { max-width: 750px; color: rgba(255, 255, 255, 0.82); font-size: clamp(1.05rem, 1.6vw, 1.25rem); }
.suite-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 31px; }
.suite-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 51px;
  padding: 13px 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 850;
  text-decoration: none;
  transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
}
.suite-button:hover { transform: translateY(-2px); }
.suite-button.is-primary { color: #17130d; background: var(--ritais-amber); }
.suite-button.is-secondary { color: #fff; border-color: rgba(255, 255, 255, 0.35); background: rgba(9, 21, 38, 0.42); }
.suite-button.is-dark { color: #fff; background: var(--ritais-ink); }
.suite-button.is-light { color: var(--ritais-ink); border-color: var(--ritais-line); background: var(--ritais-surface); }
.suite-proof {
  display: grid;
  gap: 1px;
  align-self: end;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: var(--ritais-radius-lg);
  overflow: hidden;
  background: rgba(7, 18, 35, 0.58);
  box-shadow: var(--ritais-shadow-lg);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.suite-proof-row { padding: 21px 22px; background: rgba(255, 255, 255, 0.055); }
.suite-proof-row strong { display: block; color: #fff; font-size: 1.06rem; }
.suite-proof-row span { color: rgba(255, 255, 255, 0.67); font-size: 0.88rem; }

.suite-intro { background: var(--ritais-surface); }
.suite-section-head {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.6fr);
  align-items: end;
  gap: 64px;
  margin-bottom: 45px;
}
.suite-section-head h2 { margin: 12px 0 0; }
.suite-section-head > p { margin: 0; color: var(--ritais-muted); font-size: 1.04rem; }
.suite-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.suite-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 320px;
  padding: 26px;
  overflow: hidden;
  border: 1px solid var(--ritais-line);
  border-radius: var(--ritais-radius-md);
  color: var(--ritais-ink);
  background: var(--ritais-surface);
  text-decoration: none;
  box-shadow: var(--ritais-shadow-sm);
}
.suite-product-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--product-accent, var(--ritais-amber)); }
.suite-product-card:hover { transform: translateY(-4px); box-shadow: var(--ritais-shadow-lg); }
.suite-product-card .product-category { color: var(--ritais-muted); font-size: 0.73rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.suite-product-card h3 { margin: 38px 0 13px; font-size: 1.55rem; }
.suite-product-card p { color: var(--ritais-muted); font-size: 0.94rem; }
.suite-product-card .product-open { margin-top: auto; color: var(--ritais-navy); font-weight: 900; }
.product-briefcase { --product-accent: var(--ritais-product-briefcase-accent); }
.product-peregrine { --product-accent: var(--ritais-product-peregrine-accent); }
.product-moneypenny { --product-accent: var(--ritais-product-moneypenny-accent); }
.product-argosy { --product-accent: var(--ritais-product-argosy-accent); }

.category-section { background: var(--ritais-paper); }
.category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.category-card {
  min-height: 235px;
  padding: 22px;
  border: 1px solid var(--ritais-line);
  border-radius: var(--ritais-radius-md);
  background: rgba(255, 253, 248, 0.74);
}
.category-card .category-index { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #fff; background: var(--ritais-navy); font-weight: 900; }
.category-card h3 { margin: 30px 0 9px; font-size: 1.15rem; }
.category-card p { margin: 0; color: var(--ritais-muted); font-size: 0.88rem; }
.category-card.is-planned { border-style: dashed; background: var(--ritais-soft-violet); }
.status-pill { display: inline-flex; align-items: center; gap: 7px; margin-top: 18px; padding: 6px 10px; border-radius: 999px; color: var(--ritais-warning); background: #fff4dc; font-size: 0.72rem; font-weight: 900; text-transform: uppercase; }

.governance-panel { color: #fff; background: var(--ritais-ink); }
.governance-panel h2 { color: #fff !important; }
.governance-panel .suite-section-head > p { color: rgba(255, 255, 255, 0.68); }
.governance-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.governance-card { padding: 27px; border: 1px solid rgba(255, 255, 255, 0.13); border-radius: var(--ritais-radius-md); background: rgba(255, 255, 255, 0.055); }
.governance-card span { color: #f4c786; font-size: 0.75rem; font-weight: 900; letter-spacing: 0.1em; text-transform: uppercase; }
.governance-card h3 { margin: 31px 0 10px; color: #fff !important; }
.governance-card p { margin: 0; color: rgba(255, 255, 255, 0.68); }

.engineering-feature { background: var(--ritais-surface); }
.engineering-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr); gap: 68px; align-items: center; }
.engineering-copy h2 { margin: 12px 0 20px; }
.engineering-copy p { color: var(--ritais-muted); font-size: 1.04rem; }
.engineering-visual { position: relative; min-height: 520px; border-radius: var(--ritais-radius-lg); overflow: hidden; background: var(--ritais-soft-blue); box-shadow: var(--ritais-shadow-lg); }
.engineering-visual img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.engineering-visual figcaption { position: absolute; inset: auto 18px 18px; padding: 12px 15px; border-radius: 12px; color: #fff; background: rgba(9, 21, 38, 0.86); font-size: 0.82rem; }
.media-unavailable { display: grid; place-items: center; min-height: inherit; padding: 28px; color: var(--ritais-muted); background: var(--ritais-soft-blue); text-align: center; }

.suite-callout { background: linear-gradient(120deg, #e9eef4, #f2edf7); }
.suite-callout-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: clamp(28px, 5vw, 56px); max-width: 100%; padding: clamp(30px, 5vw, 58px); overflow: hidden; border: 1px solid rgba(16, 42, 76, 0.12); border-radius: var(--ritais-radius-lg); background: rgba(255, 253, 248, 0.76); box-shadow: var(--ritais-shadow-sm); }
.suite-callout-card > * { min-width: 0; max-width: 100%; }
.suite-callout-card h2 { margin: 10px 0 13px; max-width: 680px; overflow-wrap: break-word; }
.suite-callout-card p { margin: 0; max-width: 720px; color: var(--ritais-muted); }

/* Product suite catalogue */
.marketplace-page.site-v17 { background: var(--ritais-paper); }
.suite-catalog-hero { padding: clamp(76px, 9vw, 126px) 0 84px !important; color: #fff; background: var(--ritais-ink); }
.suite-catalog-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.55fr); gap: 70px; align-items: end; }
.suite-catalog-hero h1 { max-width: 820px; margin: 17px 0 24px; color: #fff !important; font-size: clamp(2.75rem, 4.6vw, 4.6rem); line-height: 0.99; }
.suite-catalog-hero p { max-width: 760px; color: rgba(255, 255, 255, 0.74); font-size: 1.08rem; }
.purchase-lock {
  padding: 25px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--ritais-radius-md);
  background: rgba(255, 255, 255, 0.06);
}
.purchase-lock-label { display: inline-flex; align-items: center; gap: 8px; color: #f4c786; font-size: 0.73rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; }
.purchase-lock-label::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--ritais-amber); box-shadow: 0 0 0 5px rgba(225, 154, 49, 0.15); }
.purchase-lock strong { display: block; margin-top: 17px; color: #fff; font-size: 1.3rem; }
.purchase-lock p { margin: 8px 0 0; font-size: 0.9rem; }

.catalogue-section { background: var(--ritais-surface); }
.catalogue-toolbar { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 38px; }
.category-filter {
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid var(--ritais-line);
  border-radius: 999px;
  color: var(--ritais-navy);
  background: #fff;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 820;
  cursor: pointer;
}
.category-filter[aria-pressed="true"] { color: #fff; border-color: var(--ritais-navy); background: var(--ritais-navy); }
.marketplace-status { margin-bottom: 34px; border-radius: var(--ritais-radius-sm); }
.marketplace-account-prompt { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: -16px 0 42px; padding: 22px 24px; border: 1px solid var(--ritais-line); border-radius: var(--ritais-radius-md); background: var(--ritais-soft-blue); }
.marketplace-account-prompt p { margin: 5px 0 0; color: var(--ritais-muted); }
.catalogue-groups { display: grid; gap: 48px; }
.catalogue-group { scroll-margin-top: 110px; }
.catalogue-group-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 18px; padding-bottom: 15px; border-bottom: 1px solid var(--ritais-line); }
.catalogue-group-head h2 { margin: 0; font-size: clamp(1.8rem, 3.5vw, 3rem); }
.catalogue-group-head p { max-width: 620px; margin: 0; color: var(--ritais-muted); }
.product-market-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.product-market-card {
  min-height: 390px;
  padding: 29px;
  border: 1px solid var(--ritais-line);
  border-radius: var(--ritais-radius-md);
  background: #fff;
  box-shadow: var(--ritais-shadow-sm);
}
.product-market-card h3 { margin: 17px 0 10px; font-size: 1.8rem; }
.product-market-card .product-category { color: var(--ritais-muted); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; }
.assistant-label { align-self: flex-start; margin-top: 23px; background: var(--ritais-soft-violet); }
.product-availability { margin: auto 0 7px !important; }
.product-purchase { min-height: 48px; border: 0; border-radius: 999px; font: inherit; font-weight: 900; }
.product-purchase:disabled { color: #fff; background: #727e8c; cursor: not-allowed; }
.purchase-note { margin: 10px 0 0 !important; color: var(--ritais-muted) !important; font-size: 0.82rem; }
.planned-category-card { padding: 30px; border: 1px dashed #b5a9cb; border-radius: var(--ritais-radius-md); background: var(--ritais-soft-violet); }
.planned-category-card h3 { margin: 0 0 8px; }
.planned-category-card p { max-width: 720px; margin: 0; color: var(--ritais-muted); }

.purchase-path { background: var(--ritais-paper); }
.purchase-path-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; counter-reset: purchase-step; }
.purchase-step { min-height: 210px; padding: 21px; border: 1px solid var(--ritais-line); border-radius: var(--ritais-radius-md); background: var(--ritais-surface); }
.purchase-step::before { counter-increment: purchase-step; content: counter(purchase-step, decimal-leading-zero); display: block; color: var(--ritais-amber-deep); font-weight: 950; }
.purchase-step h3 { margin: 46px 0 8px; font-size: 1.1rem; }
.purchase-step p { margin: 0; color: var(--ritais-muted); font-size: 0.87rem; }

/* Marketplace identity */
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.account-page.site-v17 { background: var(--ritais-paper); }
.account-hero { padding: clamp(68px, 8vw, 104px) 0; color: #fff; background: var(--ritais-ink); }
.account-hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(290px, 0.55fr); align-items: end; gap: 68px; }
.account-hero h1 { max-width: 820px; margin: 17px 0 23px; color: #fff; font-size: clamp(2.4rem, 4.1vw, 3.9rem); line-height: 1.03; letter-spacing: -0.04em; text-wrap: balance; }
.account-hero p { max-width: 760px; color: rgba(255, 255, 255, 0.76); font-size: 1.05rem; line-height: 1.7; }
.account-state { padding: 25px; border: 1px solid rgba(255, 255, 255, 0.16); border-radius: var(--ritais-radius-md); background: rgba(255, 255, 255, 0.06); }
.account-state > span { color: #f4c786; font-size: 0.72rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; }
.account-state strong { display: block; margin: 16px 0 7px; font-size: 1.25rem; }
.account-state p { margin: 0; font-size: 0.88rem; }
.account-section { padding: clamp(70px, 8vw, 110px) 0; }
.account-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr); gap: 24px; align-items: start; }
.account-card,
.account-assurance { border-radius: var(--ritais-radius-lg); box-shadow: var(--ritais-shadow-sm); }
.account-card { padding: clamp(28px, 5vw, 54px); border: 1px solid var(--ritais-line); background: var(--ritais-surface); }
.account-card-head h2,
.account-assurance h2 { margin: 11px 0 13px; font-size: clamp(2rem, 3.4vw, 3.2rem); line-height: 1.05; letter-spacing: -0.04em; }
.account-card-head p { color: var(--ritais-muted); }
.account-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 32px 0; padding: 0; list-style: none; }
.account-steps li { min-height: 82px; padding: 14px; border: 1px solid var(--ritais-line); border-radius: var(--ritais-radius-sm); color: var(--ritais-muted); background: #fff; font-size: 0.78rem; font-weight: 800; }
.account-steps li span { display: grid; place-items: center; width: 26px; height: 26px; margin-bottom: 9px; border-radius: 50%; color: #fff; background: #778493; }
.account-steps li.is-current { color: var(--ritais-navy); border-color: #a8c2dc; background: var(--ritais-soft-blue); }
.account-steps li.is-current span,
.account-steps li.is-complete span { background: var(--ritais-navy); }
.account-card fieldset,
.sign-in-panel fieldset { display: grid; gap: 18px; margin: 0; padding: 0; border: 0; }
.account-card legend { margin-bottom: 16px; color: var(--ritais-navy); font-size: 1.25rem; font-weight: 900; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.account-card label,
.sign-in-panel label { display: grid; gap: 8px; font-size: 0.88rem; font-weight: 850; }
.account-card input,
.sign-in-panel input { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #b8c0ca; border-radius: 11px; color: var(--ritais-ink); background: #fff; font: inherit; }
.account-card input:focus,
.sign-in-panel input:focus { outline: 3px solid rgba(243, 180, 86, 0.45); border-color: var(--ritais-amber-deep); }
.account-card label small,
.form-help { margin: 0; color: var(--ritais-muted); font-size: 0.78rem; font-weight: 500; line-height: 1.5; }
.account-card fieldset:disabled,
.sign-in-panel fieldset:disabled { opacity: 0.58; }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
.text-button { padding: 9px; border: 0; color: var(--ritais-blue); background: transparent; font: inherit; font-weight: 850; cursor: pointer; }
.account-form-status { min-height: 24px; margin: 22px 0 0; color: var(--ritais-muted); font-weight: 750; }
.account-form-status.is-warning { color: var(--ritais-warning); }
.account-form-status.is-success { color: var(--ritais-success); }
.identity-view-switch { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 18px; }
.suite-button.is-outline { color: var(--ritais-navy); border: 1px solid #a8b6c5; background: #fff; }
.suite-button.is-outline:hover { border-color: var(--ritais-navy); background: var(--ritais-soft-blue); }
.identity-view-switch button[aria-pressed="true"] { box-shadow: 0 0 0 3px rgba(243, 180, 86, 0.34); }
.managed-auth-shell { min-height: 260px; padding: clamp(18px, 3vw, 30px); border: 1px solid var(--ritais-line); border-radius: var(--ritais-radius-md); background: #f8fafc; }
.managed-auth-shell[aria-busy="false"] { background: #fff; }
.managed-auth-placeholder { display: grid; gap: 8px; min-height: 200px; place-content: center; text-align: center; color: var(--ritais-muted); }
.managed-auth-placeholder strong { color: var(--ritais-navy); font-size: 1.05rem; }
.managed-auth-placeholder p { max-width: 530px; margin: 0; }
.authenticated-account { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px; border-radius: var(--ritais-radius-sm); background: var(--ritais-soft-blue); }
.authenticated-account h3 { margin: 8px 0 4px; color: var(--ritais-navy); font-size: 1.35rem; }
.authenticated-account p { margin: 0; color: var(--ritais-muted); }
.demo-administration { display: grid; gap: 18px; margin-top: 22px; padding: 24px; border: 1px solid #d5b56f; border-radius: var(--ritais-radius-md); background: #fff9ea; }
.demo-administration[hidden] { display: none; }
.demo-administration h3 { margin: 8px 0 6px; color: var(--ritais-navy); font-size: 1.35rem; }
.demo-administration p { margin: 0; color: var(--ritais-muted); }
.demo-administration > label:not(.demo-reset-switch) { display: grid; gap: 8px; color: var(--ritais-navy); font-size: 0.88rem; font-weight: 850; }
.demo-administration input[type="text"] { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #aeb8c4; border-radius: 10px; font: inherit; }
.demo-administration small { color: var(--ritais-muted); font-weight: 500; }
.demo-reset-switch { display: flex; align-items: center; gap: 12px; color: var(--ritais-navy); font-weight: 850; }
.demo-reset-switch input { width: 42px; height: 22px; accent-color: var(--ritais-navy); }
.demo-administration-status { padding: 12px 14px; border-radius: 10px; background: #fff; font-weight: 750; }
.account-privacy-note { padding: 14px; border-radius: var(--ritais-radius-sm); background: rgba(255, 255, 255, 0.08); font-size: 0.88rem; }
.managed-auth-shell .cl-rootBox { margin-inline: auto; }
.managed-auth-shell .cl-cardBox,
.managed-auth-shell .cl-card { box-shadow: none; }
.account-assurance { padding: 34px; color: #fff; background: var(--ritais-navy); }
.account-assurance h2 { color: #fff; font-size: clamp(1.9rem, 3vw, 2.7rem); }
.account-assurance ul { display: grid; gap: 12px; padding-left: 20px; color: rgba(255, 255, 255, 0.75); }
.sign-in-panel { margin-top: 30px; padding-top: 27px; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.sign-in-panel h3 { margin: 0 0 6px; color: #fff; }
.sign-in-panel p { color: rgba(255, 255, 255, 0.7); }
.sign-in-panel .suite-button.is-light { color: var(--ritais-ink); }

/* Shared footer */
.site-footer { max-width: 100%; padding: 54px 0 24px; overflow: hidden; color: #fff; background: #071425; }
.site-footer-grid { display: grid; grid-template-columns: minmax(270px, 1.5fr) repeat(3, minmax(125px, 0.72fr)); gap: clamp(26px, 4vw, 52px); }
.site-footer-grid > * { min-width: 0; }
.site-footer-brand { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: 14px; max-width: 360px; }
.site-footer-brand img { width: 46px; height: 56px; object-fit: contain; }
.site-footer-brand strong { display: block; margin-bottom: 4px; letter-spacing: 0.15em; }
.site-footer-brand span { color: rgba(255, 255, 255, 0.68); font-size: 0.78rem; line-height: 1.55; }
.site-footer p { max-width: 360px; color: rgba(255, 255, 255, 0.64); font-size: 0.91rem; line-height: 1.65; }
body.site-v17 .site-footer h2 {
  margin: 6px 0 0;
  color: #fff;
  font-size: 0.76rem;
  line-height: 1.35;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.site-footer ul { margin: 15px 0 0; padding: 0; list-style: none; }
.site-footer li { margin: 9px 0; }
.site-footer a { color: rgba(255, 255, 255, 0.8); font-size: 0.91rem; line-height: 1.5; text-decoration: none; }
.site-footer a:hover { color: #f4c786; }
.site-footer-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; margin-top: 50px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.11); color: rgba(255, 255, 255, 0.52); font-size: 0.78rem; }

@media (max-width: 1080px) {
  .site-brand-copy small { display: none; }
  .site-nav { gap: 2px; }
  .site-nav a { padding-inline: 8px; font-size: 0.82rem; }
  .suite-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .purchase-path-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 860px) {
  .site-menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .site-nav {
    position: absolute;
    inset: 100% 0 auto;
    display: none;
    align-items: stretch;
    flex-direction: column;
    gap: 2px;
    padding: 16px 20px 22px;
    border-bottom: 1px solid var(--ritais-line);
    background: rgba(255, 253, 248, 0.98);
    box-shadow: var(--ritais-shadow-lg);
  }
  .site-nav.open { display: flex; }
  .site-nav a,
  .site-header.is-overlay .site-nav a { padding: 12px 14px; color: var(--ritais-ink); }
  .site-header.is-overlay .site-nav { background: rgba(7, 18, 35, 0.98); border-bottom-color: rgba(255, 255, 255, 0.12); }
  .site-header.is-overlay .site-nav a { color: #fff; }
  .site-nav .site-contact { margin: 7px 0 0; text-align: center; }
  .suite-hero-grid,
  .suite-catalog-hero-grid,
  .engineering-grid,
  .account-hero-grid,
  .account-layout { grid-template-columns: 1fr; }
  .suite-hero-grid { align-items: center; padding-top: 135px; }
  .suite-proof { grid-template-columns: repeat(3, 1fr); }
  .suite-section-head { grid-template-columns: 1fr; gap: 20px; }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .governance-grid { grid-template-columns: 1fr; }
  .suite-callout-card { grid-template-columns: 1fr; align-items: flex-start; }
  .marketplace-account-prompt { align-items: flex-start; flex-direction: column; }
  .site-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer-grid > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  body.site-v17 .container { width: min(100% - 28px, var(--ritais-content)); }
  .site-header .container { min-height: 72px; }
  .site-brand img { width: 38px; height: 46px; }
  .site-brand-copy strong { font-size: 1rem; }
  .suite-hero { min-height: 820px; }
  .suite-hero-grid { min-height: 820px; padding: 118px 0 44px; }
  .home-page.site-v17 h2,
  .marketplace-page.site-v17 h2 { font-size: clamp(1.8rem, 8.5vw, 2.35rem); line-height: 1.12; }
  .suite-hero h1 { font-size: clamp(2.55rem, 12vw, 3.45rem); line-height: 1.02; }
  .suite-actions .suite-button { width: 100%; }
  .suite-proof { grid-template-columns: 1fr; }
  .suite-proof-row { padding: 16px 18px; }
  .suite-product-grid,
  .category-grid,
  .product-market-grid,
  .purchase-path-grid,
  .site-footer-grid { grid-template-columns: 1fr; }
  .suite-product-card { min-height: 290px; }
  .category-card { min-height: 210px; }
  .catalogue-group-head { align-items: flex-start; flex-direction: column; gap: 10px; }
  .form-grid,
  .account-steps { grid-template-columns: 1fr; }
  .engineering-visual,
  .engineering-visual img { min-height: 360px; }
  .suite-callout-card { gap: 24px; padding: 26px; border-radius: var(--ritais-radius-md); }
  .site-footer { padding-top: 44px; }
  .site-footer-grid > :first-child { grid-column: auto; }
  .site-footer-meta { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
