:root {
  --font-sans: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg: #f5f7fb;
  --bg-soft: #eef3f8;
  --surface: #ffffff;
  --surface-strong: #f8fafc;
  --surface-inverse: #101828;
  --text: #101828;
  --text-soft: #475467;
  --text-muted: #667085;
  --border: #d7dee8;
  --border-strong: #aebbd0;
  --primary: #155eef;
  --primary-hover: #0f46b8;
  --accent: #0e9384;
  --accent-soft: #e6f5f3;
  --warning-soft: #fff4e5;
  --focus: #8a4b00;
  --success: #087443;
  --error: #b42318;
  --radius-sm: 6px;
  --radius: 8px;
  --radius-lg: 12px;
  --shadow-xs: 0 1px 2px rgba(16, 24, 40, 0.06);
  --shadow-sm: 0 10px 28px rgba(16, 24, 40, 0.08);
  --shadow-md: 0 24px 70px rgba(16, 24, 40, 0.12);
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 80px;
  --container: 1760px;
  --content-gutter: clamp(16px, 2vw, 36px);
  /* Public served section rhythm 2026-09-13: reduce oversized vertical gaps without collapsing hierarchy. */
  --section-space: clamp(40px, 4.2vw, 64px);
  --section-padding: clamp(28px, 3.4vw, 48px);
  --card-padding: clamp(20px, 2.2vw, 32px);
  --title-hero: clamp(2.1rem, 3.2vw, 3.55rem);
  --title-page: clamp(2rem, 2.8vw, 3rem);
  --title-section: clamp(1.5rem, 1.9vw, 2.05rem);
  --title-subsection: clamp(1.35rem, 1.7vw, 1.75rem);
  --title-card: clamp(1.12rem, 1.25vw, 1.35rem);
  --title-metric: clamp(1.5rem, 2vw, 2.05rem);
  --title-tight-line: 1.08;
  color-scheme: light;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

body.public-shell {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background:
    linear-gradient(180deg, #ffffff 0, #f9fbff 30rem, var(--bg) 100%);
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.55;
  letter-spacing: 0;
}

img,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: var(--primary);
  text-decoration: none;
}

a:hover {
  color: var(--primary-hover);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

[hidden] {
  display: none !important;
}

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

#main-content,
.public-shell :target {
  scroll-margin-top: 96px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-links {
  position: absolute;
  inset: 0 auto auto 0;
  z-index: 1000;
  width: 1px;
  height: 1px;
  overflow: visible;
}

.skip-link {
  position: fixed;
  top: var(--s-3);
  left: var(--s-3);
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  transform: translateY(-160%);
  border-radius: var(--radius-sm);
  padding: var(--s-2) var(--s-3);
  color: #ffffff;
  background: var(--surface-inverse);
  box-shadow: var(--shadow-sm);
  white-space: nowrap;
}

.skip-link:not(:focus):not(:focus-visible) {
  padding: 0;
  border: 0;
  box-shadow: none;
}

.skip-link:focus,
.skip-link:focus-visible {
  width: auto;
  height: auto;
  overflow: visible;
  clip-path: none;
  transform: translateY(0);
  padding: var(--s-2) var(--s-3);
}

.container,
.public-nav,
.public-footer {
  width: min(var(--container), calc(100vw - (var(--content-gutter) * 2)));
  margin-inline: auto;
}

.public-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(215, 222, 232, 0.78);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 1px 0 rgba(16, 24, 40, 0.02);
  backdrop-filter: blur(18px);
}

.public-nav {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-6);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: var(--s-3);
  min-width: max-content;
  color: var(--text);
  font-size: 1.12rem;
  font-weight: 800;
}

.logo-inline {
  width: 34px;
  height: 34px;
}

.public-menu-toggle {
  display: none;
}

.public-menu {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}

.public-menu-groups {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--s-1);
  margin: 0;
  padding: 0;
  list-style: none;
}

.public-menu-group {
  position: relative;
}

.public-menu-column {
  position: relative;
}

.public-menu-group-title,
.public-menu-link,
.public-menu-action .btn-small {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 8px 10px;
  color: var(--text);
  background: transparent;
  text-align: left;
}

.public-menu-group-title:hover,
.public-menu-link:hover,
.public-menu-link.active,
.public-menu-group-title[aria-expanded="true"] {
  border-color: transparent;
  background: #f3f6fb;
  box-shadow: inset 0 -2px 0 var(--primary);
}

.public-menu-group-icon,
.public-menu-icon {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-sm);
  color: var(--primary);
  background: #eef4ff;
}

.public-mobile-cta-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  color: var(--primary);
}

.public-menu-group-icon svg,
.public-menu-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-mobile-cta-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-menu-group-copy,
.public-menu-copy {
  display: grid;
  gap: 1px;
}

.public-menu-group-copy strong,
.public-menu-copy strong {
  color: var(--text);
  font-size: 0.9rem;
  line-height: 1.15;
}

.public-menu-group-copy span,
.public-menu-copy small {
  color: var(--text-muted);
  font-size: 0.77rem;
  line-height: 1.25;
}

.public-menu-locale {
  display: flex;
  align-items: center;
  margin-left: var(--s-2);
}

.public-locale-switch {
  display: inline-flex;
  gap: 2px;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 3px;
  background: var(--surface-strong);
}

.public-locale-switch a {
  min-width: 34px;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: var(--text-soft);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1;
}

.public-locale-switch a:hover,
.public-locale-switch a:focus-visible,
.public-locale-switch a.is-active {
  color: #ffffff;
  background: var(--primary-hover);
}

.public-menu-group-count {
  min-width: 28px;
  flex-shrink: 0;
  white-space: nowrap;
  border-radius: 999px;
  padding: 2px 8px;
  color: #ffffff;
  background: var(--accent);
  font-size: 0.76rem;
  font-weight: 800;
  text-align: center;
}

.public-menu-submenu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 70;
  width: min(420px, calc(100vw - 48px));
  max-height: calc(100vh - 110px);
  overflow: auto;
  display: grid;
  gap: var(--s-2);
  margin: 0;
  padding: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-md);
  list-style: none;
}

.public-menu-submenu-trades {
  width: min(1080px, calc(100vw - (var(--content-gutter) * 2)));
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-menu-submenu .public-menu-link {
  width: 100%;
  justify-content: flex-start;
  border-color: var(--border);
}

.public-menu-trades-summary,
.public-menu-trades-tools {
  grid-column: 1 / -1;
}

.public-menu-trades-summary {
  display: grid;
  gap: var(--s-1);
  padding: var(--s-3);
  border-radius: var(--radius);
  background: var(--accent-soft);
}

.public-menu-trades-summary strong {
  color: var(--text);
}

.public-menu-trades-summary span {
  color: var(--text-soft);
  font-size: 0.92rem;
}

.public-menu-trades-search,
.home-sector-search,
.sector-search-form,
.sector-hero-search {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: var(--s-4);
  align-items: end;
}

.public-menu-trades-search {
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto auto;
}

label {
  display: grid;
  gap: var(--s-2);
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 700;
}

input,
select,
textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 14px;
  color: var(--text);
  background: var(--surface);
  line-height: 1.35;
}

input:hover,
select:hover,
textarea:hover {
  border-color: var(--border-strong);
}

input:focus,
select:focus,
textarea:focus {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
  border-color: var(--primary);
}

.btn,
.button,
button,
input[type="submit"],
.btn-small {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  border: 1px solid var(--primary);
  border-radius: var(--radius);
  padding: 12px 18px;
  color: #ffffff;
  background: var(--primary);
  box-shadow: var(--shadow-xs);
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

.btn:hover,
.button:hover,
button:hover,
input[type="submit"]:hover,
.btn-small:hover {
  color: #ffffff;
  border-color: var(--primary-hover);
  background: var(--primary-hover);
  box-shadow: var(--shadow-sm);
}

.btn:active,
.button:active,
button:active,
.btn-small:active {
  transform: translateY(1px);
}

.btn-outline,
a.btn-outline,
button.btn-outline {
  color: var(--primary);
  border-color: var(--border-strong);
  background: var(--surface);
}

.btn-outline:hover,
a.btn-outline:hover,
button.btn-outline:hover {
  color: #ffffff;
  border-color: var(--primary-hover);
  background: var(--primary-hover);
}

main.container {
  padding-block: var(--section-space);
}

.eyebrow,
.badge,
.tag,
.chip,
.pill,
.home-sector-card-kicker,
.pricing-feature-more {
  width: fit-content;
  margin: 0;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 5px 10px;
  color: var(--primary);
  background: #eef4ff;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.15;
}

h1,
h2,
h3,
h4,
p {
  margin-block: 0;
}

h1,
h2,
h3,
h4 {
  color: var(--text);
  line-height: 1.08;
  text-wrap: balance;
}

h1 {
  max-width: 21ch;
  font-size: var(--title-page);
  font-weight: 800;
}

h2 {
  font-size: var(--title-section);
  font-weight: 800;
}

h3 {
  font-size: var(--title-card);
  font-weight: 800;
}

p,
li,
small,
em,
dd,
dt {
  color: var(--text-soft);
  overflow-wrap: break-word;
  word-break: normal;
}

p {
  max-width: 68ch;
}

/* Public directory page primitives 2026-09-10: scoped to English overview and listing kit. */
.public-shell .public-info-grid-two,
.public-shell .public-info-grid-three {
  display: grid;
  gap: clamp(20px, 2vw, 32px);
  min-width: 0;
}

.public-shell .public-info-grid-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-shell .public-info-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-shell .public-info-card {
  min-width: 0;
  display: grid;
  gap: var(--s-4);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--card-padding);
  color: var(--text);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .public-info-card > * {
  min-width: 0;
}

.public-shell .public-info-card :is(h1, h2, h3, strong) {
  color: var(--text);
}

.public-shell .public-info-card :is(p, li, dd, dt, small) {
  color: var(--text-soft);
}

.public-shell .public-info-card .check-list {
  display: grid;
  gap: var(--s-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.public-shell .public-info-card .check-list li {
  position: relative;
  padding-left: 26px;
  line-height: 1.5;
}

.public-shell .public-info-card .check-list li::before {
  content: "";
  position: absolute;
  top: 0.45em;
  left: 0;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: inset 0 0 0 4px var(--surface);
}

.public-shell .public-info-card .definition-list {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: var(--s-3) var(--s-4);
  margin: 0;
}

.public-shell .public-info-card .definition-list dt {
  color: var(--text);
  font-weight: 850;
}

.public-shell .public-info-card .definition-list dd {
  margin: 0;
}

.public-shell .public-info-card .muted {
  color: var(--text-muted);
}

.public-shell .english-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.72fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--section-padding);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .english-hero-grid > div {
  display: grid;
  gap: var(--s-5);
  min-width: 0;
}

.public-shell .english-hero-grid h1 {
  max-width: 16ch;
  font-size: var(--title-hero);
}

.public-shell .english-hero-visual {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  aspect-ratio: 16 / 11;
  background: var(--surface-strong);
  box-shadow: var(--shadow-sm);
}

.public-shell .english-hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-actions,
.public-card-actions,
.sector-card-actions,
.plan-primary-actions,
.plan-complete-channel-actions,
.plan-trade-shortcut-actions,
.plan-sector-actions,
.signup-primary-actions,
.cookie-consent-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  align-items: center;
}

.home-hero,
.hero-home {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
  gap: clamp(36px, 4vw, 56px);
  align-items: stretch;
  margin-bottom: var(--section-space);
  border: 1px solid #1f2937;
  border-radius: var(--radius-lg);
  padding: var(--section-padding);
  color: #ffffff;
  background:
    linear-gradient(135deg, rgba(21, 94, 239, 0.28), transparent 46%),
    linear-gradient(145deg, #101828 0%, #172033 54%, #0f172a 100%);
  box-shadow: var(--shadow-md);
}

.home-hero h1,
.hero-home h1,
.home-hero p,
.hero-home p,
.home-hero .eyebrow,
.hero-home .eyebrow {
  color: #ffffff;
}

.home-hero .eyebrow,
.hero-home .eyebrow {
  border-color: rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.10);
}

.home-hero-copy,
.hero-copy {
  display: grid;
  align-content: center;
  gap: var(--s-5);
  min-width: 0;
}

.home-hero-copy > p:not(.eyebrow),
.hero-copy > p:not(.eyebrow) {
  max-width: 58ch;
  color: #d0d5dd;
  font-size: clamp(1.08rem, 1.4vw, 1.22rem);
  line-height: 1.62;
}

.home-hero .btn-outline,
.hero-home .btn-outline {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.36);
  background: rgba(255, 255, 255, 0.08);
}

.home-hero .btn-outline:hover,
.hero-home .btn-outline:hover {
  color: var(--text);
  border-color: #ffffff;
  background: #ffffff;
}

.home-hero-proof,
.home-hero-trust,
.sector-catalog-proof,
.plan-primary-proof,
.signup-primary-proof {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.home-hero-proof span,
.home-hero-trust span,
.sector-catalog-proof span,
.plan-primary-proof span,
.signup-primary-proof span {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  padding: 7px 11px;
  color: #e4e7ec;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.9rem;
  font-weight: 700;
}

.home-hero-decision {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
}

.home-hero-decision-card,
.home-hero-directory-link {
  min-width: 0;
  display: grid;
  gap: var(--s-2);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  padding: var(--s-3);
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
}

.home-hero-decision-card {
  grid-template-columns: auto minmax(0, 1fr);
  align-content: start;
}

.home-hero-decision-card:hover,
.home-hero-directory-link:hover,
.home-hero-decision-card.is-primary {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.32);
  background: rgba(255, 255, 255, 0.14);
}

.home-hero-decision-card span {
  color: #98a2b3;
  font-size: 0.8rem;
  font-weight: 800;
}

.home-hero-decision-card strong,
.home-hero-directory-link strong {
  color: #ffffff;
}

.home-hero-decision-card small,
.home-hero-directory-link span {
  color: #d0d5dd;
}

.home-hero-decision-card small {
  grid-column: 2;
}

.home-hero-directory-link {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.home-hero-media,
.hero-art,
.hero-visual {
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 3vw, 40px);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.hero-art img {
  width: 100%;
  height: auto;
  max-height: 380px;
  object-fit: contain;
}

.screen-bar {
  display: flex;
  gap: var(--s-2);
  margin-bottom: var(--s-4);
}

.screen-bar span {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #98a2b3;
}

.home-flow-preview,
.screen-grid {
  display: grid;
  gap: var(--s-3);
}

.home-flow-gallery {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-flow-step,
.screen-grid div {
  min-width: 0;
  display: grid;
  gap: var(--s-2);
  border-radius: var(--radius);
  padding: var(--s-3);
  background: rgba(255, 255, 255, 0.10);
}

.home-flow-photo {
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--radius-sm);
  background: var(--bg-soft);
}

.home-flow-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-flow-step svg {
  width: 22px;
  height: 22px;
  color: #84caff;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
}

.home-flow-step strong,
.screen-grid strong {
  color: #ffffff;
  font-size: 0.92rem;
}

.home-flow-step {
  grid-template-columns: 64px 22px minmax(0, 1fr);
  align-items: center;
}

.home-flow-step strong {
  line-height: 1.25;
}

.screen-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: var(--s-3);
}

.screen-grid b {
  color: #d0d5dd;
  font-size: 0.82rem;
  font-weight: 600;
}

.home-hero-product .screen-grid div {
  padding: 10px;
}

.public-section,
.home-band,
.home-cta,
.public-sector-picker,
.sector-search-band {
  margin-bottom: var(--section-space);
}

.home-band,
.public-section,
.home-cta,
.public-sector-picker {
  border: 0;
  border-radius: 0;
  padding: var(--section-padding) 0;
  background: transparent;
  box-shadow: none;
}

.home-cta,
.public-sector-picker {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--card-padding);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-sector-picker {
  display: grid;
  gap: var(--s-6);
}

.section-heading {
  display: grid;
  gap: var(--s-3);
  max-width: 880px;
  margin-bottom: var(--s-5);
}

.section-heading > p:not(.eyebrow) {
  color: var(--text-soft);
  font-size: clamp(1.05rem, 1.2vw, 1.16rem);
  line-height: 1.55;
}

.public-product-modules-grid,
.pricing-grid,
.sector-grid,
.plan-entry-price-grid,
.plan-simple-names-grid,
.plan-complete-channel-grid,
.plan-trust-brief-grid,
.plan-trade-shortcuts-grid,
.service-ledger,
.plan-sector-grid,
.sector-proof-grid,
.sector-instant-grid,
.instant-module-list,
.public-sector-picker-grid,
.home-sector-more-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
  gap: clamp(20px, 2vw, 32px);
}

.pricing-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.public-product-module-card,
.pricing-card,
.sector-card,
.plan-entry-price-grid article,
.plan-simple-names-grid article,
.plan-complete-channel-grid article,
.plan-trust-brief-grid article,
.plan-trade-shortcut-card,
.service-ledger article,
.plan-sector-grid article,
.sector-proof-grid article,
.sector-instant-grid article,
.instant-module-list a,
.home-sector-card,
.public-sector-picker-request {
  min-width: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--s-5);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--card-padding);
  color: var(--text);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-product-module-card:hover,
.pricing-card:hover,
.plan-entry-price-grid article:hover,
.plan-simple-names-grid article:hover,
.plan-trade-shortcut-card:hover,
.home-sector-card:hover,
.instant-module-list a:hover {
  color: var(--text);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}

.public-product-module-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: var(--radius);
  color: var(--primary);
  background: #eef4ff;
}

.public-product-module-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pricing-card,
.plan-simple-names-grid article,
.plan-entry-price-grid article {
  padding: clamp(28px, 3vw, 44px);
}

.pricing-card {
  gap: var(--s-4);
}

.pricing-card h3 {
  margin-bottom: var(--s-1);
}

.pricing-card .price-tag {
  margin-top: var(--s-2);
}

.pricing-card.plan-highlight,
.pricing-card.is-highlight,
.plan-simple-names-grid article.is-recommended,
.plan-entry-price-grid article.is-featured,
.plan-trade-shortcut-card.is-recommended {
  border-color: var(--primary);
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(21, 94, 239, 0.12);
}

.price-tag {
  color: var(--text);
  overflow-wrap: normal;
  word-break: normal;
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 800;
  line-height: 1;
}

.price-tag-monthly {
  color: var(--primary);
}

.price-monthly-note,
.price-annual-discount,
.small {
  color: var(--text-muted);
  font-size: 0.95rem;
}

.compact-list,
.pricing-feature-list {
  display: grid;
  gap: var(--s-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.compact-list li,
.pricing-feature-list li {
  position: relative;
  padding-left: 26px;
  color: var(--text-soft);
  line-height: 1.48;
}

.compact-list li::before,
.pricing-feature-list li::before {
  content: "";
  position: absolute;
  top: 0.45em;
  left: 0;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: inset 0 0 0 4px #ffffff;
}

.pricing-card .btn,
.pricing-card .btn-outline,
.plan-simple-names-grid .btn,
.plan-entry-price-grid .btn,
.plan-trade-shortcut-actions,
.plan-sector-actions,
.sector-card-actions {
  margin-top: auto;
}

.plan-primary-next-step,
.sector-catalog-primary-next-step,
.signup-primary-next-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.45fr);
  gap: var(--s-6);
  align-items: center;
}

.plan-primary-next-step .plan-primary-proof span,
.sector-catalog-proof span,
.signup-primary-proof span {
  color: var(--text-soft);
  border-color: var(--border);
  background: var(--surface-strong);
}

.plan-trade-shortcut-card dl {
  display: grid;
  gap: var(--s-3);
  margin: 0;
}

.plan-trade-shortcut-card dl div {
  display: grid;
  gap: var(--s-1);
  border-top: 1px solid var(--border);
  padding-top: var(--s-3);
}

.plan-trade-shortcut-card dt {
  color: var(--text-muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.plan-trade-shortcut-card dd {
  margin: 0;
  color: var(--text);
  font-weight: 700;
}

/* Public plans served pricing contract 2026-09-10: planes.php is styled by public.css. */
.public-shell .hero-home {
  min-width: 0;
}

.public-shell .plans-hero-section .hero-copy h1 {
  max-width: 18ch;
  font-size: clamp(2.35rem, 4vw, 4.35rem);
  line-height: 0.99;
}

.public-shell .plan-entry-price-strip {
  display: grid;
  grid-template-columns: minmax(18rem, 0.72fr) minmax(32rem, 1.28fr);
  grid-template-areas: "intro prices";
  gap: clamp(20px, 3vw, 48px);
  align-items: center;
}

.public-shell .plan-entry-price-strip .section-heading {
  grid-area: intro;
  margin: 0;
}

.public-shell .plan-entry-price-strip .plan-entry-price-grid {
  grid-area: prices;
}

.public-shell .plan-entry-price-grid article.is-featured,
.public-shell .plan-simple-names-grid article.is-recommended,
.public-shell .plan-trade-shortcuts {
  min-width: 0;
}

.public-shell .plan-primary-actions :where(a, button, .btn):focus-visible,
.public-shell .plan-trust-brief-actions :where(a, button, .btn):focus-visible,
.public-shell .plan-trade-shortcut-actions :where(a, button, .btn):focus-visible,
.public-shell .pricing-card :where(a, button, .btn):focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.72);
  outline-offset: 3px;
}

/* Public pricing decision cards 2026-08-04: plans must compare fast without reading long copy. */
.public-shell .pricing-grid {
  align-items: stretch;
  gap: clamp(20px, 2vw, 32px);
}

.public-shell .pricing-card {
  grid-template-rows: auto auto auto auto auto 1fr auto;
}

.public-shell .pricing-card.plan-highlight,
.public-shell .pricing-card.is-featured {
  position: relative;
  transform: translateY(-0.65rem);
}

.public-shell .pricing-card.plan-highlight::before,
.public-shell .pricing-card.is-featured::before {
  content: "Recomendado";
}

.public-shell .pricing-card .price-annual-discount {
  width: fit-content;
  border-color: rgba(22, 163, 74, 0.24);
  background: #ecfdf5;
  color: #166534;
}

/* Public pricing short feature list 2026-08-04: home pricing should compare fast, not expose every plan detail. */
/* Public pricing comparison polish 2026-08-07: plans must compare by price, fit and action without long reading. */
.public-shell .pricing-card .pricing-feature-list {
  gap: var(--s-2);
}

.public-shell .pricing-card .pricing-feature-list li {
  display: block;
  min-width: 0;
  overflow-wrap: break-word;
  word-break: normal;
}

.public-shell .pricing-card .pricing-feature-more {
  width: fit-content;
}

.public-shell .pricing-card.is-featured,
.public-shell .pricing-card.plan-highlight {
  box-shadow: 0 24px 58px rgba(37, 99, 235, 0.16);
}

.public-shell .pricing-card .price,
.public-shell .pricing-card .price-tag {
  font-variant-numeric: tabular-nums;
}

html[data-theme="dark"] .public-shell .pricing-card .pricing-feature-more {
  color: #bfdbfe;
  border-color: rgba(96, 165, 250, 0.34);
  background: rgba(37, 99, 235, 0.18);
}

/* Public plans mobile pricing decision guard: keep recommended plan and CTAs clear on phones. */
@media (max-width: 900px) {
  .public-shell .pricing-card.plan-highlight,
  .public-shell .pricing-card.is-featured {
    transform: none;
  }
}

@media (max-width: 760px) {
  .public-shell :where(.plan-entry-price-grid, .plan-simple-names-grid, .plan-trust-brief-grid, .plan-trade-shortcuts-grid, .plan-sector-grid, .pricing-grid) {
    grid-template-columns: 1fr;
  }

  .public-shell :where(.plan-entry-price-grid article.is-featured, .plan-simple-names-grid article.is-recommended, .pricing-card.plan-highlight)::before {
    content: "Recomendado";
    position: static;
    width: fit-content;
    margin-bottom: var(--s-2);
  }

  .public-shell :where(.plan-primary-proof, .plan-primary-actions, .plan-trust-brief-actions, .plan-trade-shortcut-actions, .plan-sector-actions) {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--s-3);
    width: 100%;
  }

  .public-shell :where(.plan-primary-actions, .plan-trust-brief-actions, .plan-trade-shortcut-actions, .plan-sector-actions, .pricing-card) :where(a, button, .btn) {
    width: 100%;
    min-height: 2.95rem;
    justify-content: center;
    text-align: center;
  }

  .public-shell :where(.pricing-card .price-tag, .plan-entry-price-grid b, .plan-simple-names-grid h3, .plan-trade-shortcut-card h3) {
    overflow-wrap: break-word;
  }
}

/* Public commercial page decision panels 2026-09-10: served by public.css. */
.service-primary-next-step,
.empresa-primary-next-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.44fr);
  gap: var(--s-6);
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--card-padding);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.service-primary-next-step h2,
.empresa-primary-next-step h2 {
  max-width: 18ch;
}

.service-primary-next-step p:not(.eyebrow),
.empresa-primary-next-step p:not(.eyebrow) {
  max-width: 58ch;
  color: var(--text-soft);
  font-size: clamp(1rem, 1.08vw, 1.12rem);
  line-height: 1.58;
}

.service-primary-next-step > .btn {
  justify-self: start;
}

.empresa-primary-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--s-3);
}

/* Public services step strip 2026-06-27: make the recommended path scannable. */
/* Company step strip 2026-06-27: validate Mantivo through a real trade before reading proof. */
.service-step-strip,
.empresa-step-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
}

.service-step-strip span,
.empresa-step-strip span {
  min-width: 0;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 8px 12px;
  color: var(--primary-hover);
  background: var(--surface-strong);
  font-size: 0.92rem;
  font-weight: 850;
  line-height: 1.22;
  text-align: center;
}

.service-step-strip strong,
.empresa-step-strip strong {
  color: inherit;
  font-weight: 900;
}

.service-primary-next-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-3);
}

.service-primary-next-links a {
  min-width: 0;
  display: grid;
  gap: var(--s-1);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-4);
  color: var(--text);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.service-primary-next-links a:hover,
.service-primary-next-links a:focus-visible {
  color: var(--text);
  border-color: var(--primary);
  background: var(--accent-soft);
}

.service-primary-next-links span {
  color: var(--text-muted);
  font-size: 0.88rem;
  font-weight: 800;
  text-transform: uppercase;
}

.service-primary-next-links strong {
  color: var(--text);
  font-size: 1.02rem;
  line-height: 1.25;
}

/* Public services contrast polish: keep the shortened services page readable in light and dark themes. */
.service-plan-redirect {
  text-align: center;
}

.service-plan-redirect .section-heading {
  margin-inline: auto;
  max-width: 48rem;
}

.service-plan-redirect p {
  color: var(--text-soft);
}

.service-plan-redirect a:not(.btn) {
  color: var(--primary-hover);
}

.service-plan-redirect .btn {
  margin-top: var(--s-3);
}

.empresa-vertical-proof-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: clamp(20px, 2vw, 32px);
}

.empresa-vertical-proof-grid article {
  min-width: 0;
  display: grid;
  gap: var(--s-4);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--card-padding);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.empresa-vertical-proof-grid span {
  width: 42px;
  height: 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: var(--primary-hover);
  font-weight: 900;
}

.empresa-vertical-proof-grid h3 {
  max-width: 18ch;
}

.empresa-vertical-proof-grid p {
  color: var(--text-soft);
  line-height: 1.56;
}

.empresa-vertical-proof-grid a {
  align-self: end;
  width: fit-content;
  margin-top: var(--s-2);
  color: var(--primary-hover);
  font-weight: 850;
}

.home-sector-search,
.sector-search-form {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 3vw, 40px);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.sector-catalog-results-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--section-padding);
}

.sector-catalog-results-band > .section-heading {
  margin-bottom: 0;
}

.sector-search-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
  margin-bottom: 0;
}

.sector-search-band > .section-heading {
  margin-bottom: 0;
}

.sector-search-band > .section-heading h2 {
  max-width: 22ch;
}

.sector-search-band .sector-group-shortcuts {
  gap: var(--s-3);
}

.sector-search-band,
.sector-group-shortcuts,
.sector-filter-chips,
.sector-grid {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.sector-search-form {
  grid-template-columns: minmax(280px, 1.25fr) minmax(260px, 1.15fr) minmax(220px, 0.9fr) minmax(190px, 0.8fr);
}

.sector-search-form label {
  min-width: 0;
}

.sector-search-form :is(button, .btn) {
  min-width: 0;
  min-height: 48px;
  padding-inline: var(--s-5);
  white-space: nowrap;
}

.home-sector-filter-chips,
.sector-filter-chips,
.sector-group-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.home-sector-filter-chips a,
.sector-filter-chips a,
.sector-group-shortcuts a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 9px 15px;
  color: var(--text-soft);
  background: var(--surface);
  font-size: 0.94rem;
  font-weight: 700;
  line-height: 1.2;
}

.home-sector-filter-chips a:hover,
.sector-filter-chips a:hover,
.sector-group-shortcuts a:hover,
.sector-filter-chips a.is-active,
.sector-group-shortcuts a.is-active {
  color: #ffffff;
  border-color: var(--primary-hover);
  background: var(--primary-hover);
}

.sector-filter-chips a:focus-visible,
.sector-group-shortcuts a:focus-visible {
  color: #ffffff;
  border-color: var(--primary-hover);
  background: var(--primary-hover);
}

.home-sector-card {
  padding: 0;
  overflow: hidden;
}

.sector-card-visual-sale {
  gap: var(--s-4);
  overflow: hidden;
  padding: 0;
}

.sector-card-visual-sale > :not(.sector-card-visual) {
  margin-inline: var(--s-5);
}

.sector-card-visual-sale > :last-child {
  margin-bottom: var(--s-5);
}

.sector-card-visual {
  position: relative;
  isolation: isolate;
  min-height: 220px;
  display: grid;
  align-content: end;
  overflow: hidden;
  padding: var(--s-5);
  color: #ffffff;
  background: var(--surface-inverse);
}

.sector-card-img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sector-card-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(16, 24, 40, 0.08) 0%, rgba(16, 24, 40, 0.78) 100%);
}

.sector-card-visual span,
.sector-card-visual strong {
  color: #ffffff;
}

.sector-card-visual span {
  width: fit-content;
  margin-bottom: var(--s-2);
  border-radius: 999px;
  padding: 5px 10px;
  background: rgba(255, 255, 255, 0.18);
  font-size: 0.78rem;
  font-weight: 800;
}

.sector-card-visual strong {
  max-width: 18ch;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.1;
}

.sector-card-price {
  color: var(--primary);
  font-weight: 800;
}

.sector-card-demo-link {
  color: var(--primary);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-sector-card-visual {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--bg-soft);
}

.home-sector-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 180ms ease;
}

.home-sector-card:hover .home-sector-card-img {
  transform: scale(1.035);
}

.home-sector-card-copy {
  display: grid;
  gap: var(--s-3);
  padding: var(--s-5);
}

.home-sector-card-copy strong {
  color: var(--text);
  font-size: 1.22rem;
  line-height: 1.16;
}

.home-sector-card-copy small,
.home-sector-card-copy em {
  color: var(--text-soft);
  font-style: normal;
}

.home-sector-card-cta {
  margin-top: auto;
  color: var(--primary);
  font-weight: 800;
}

.home-sector-more {
  grid-column: 1 / -1;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-5);
  background: var(--surface-strong);
}

.home-sector-more summary,
.sector-secondary-summary {
  cursor: pointer;
  list-style: none;
}

.home-sector-more summary::-webkit-details-marker,
.sector-secondary-summary::-webkit-details-marker {
  display: none;
}

.home-sector-more summary {
  display: flex;
  justify-content: space-between;
  gap: var(--s-4);
  margin-bottom: var(--s-5);
}

.public-sector-picker-request {
  justify-content: center;
  border-style: dashed;
  background: var(--accent-soft);
}

.sector-hero-card {
  display: grid;
  gap: var(--s-3);
  align-content: start;
}

.sector-hero-card strong {
  color: #ffffff;
  font-size: 1.3rem;
}

.sector-hero-card span {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  padding: 8px 12px;
  color: #e4e7ec;
  background: rgba(255, 255, 255, 0.08);
}

.sector-hero-search {
  grid-template-columns: 1fr auto;
}

.sector-hero-search label {
  color: #ffffff;
}

.home-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-6);
  color: #ffffff;
  border-color: #101828;
  background:
    linear-gradient(135deg, rgba(14, 147, 132, 0.22), transparent 50%),
    var(--surface-inverse);
}

.home-cta h2,
.home-cta .eyebrow {
  color: #ffffff;
}

.home-cta .eyebrow {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.10);
}

.public-footer {
  display: grid;
  grid-template-columns: minmax(260px, 0.55fr) minmax(0, 1fr);
  gap: var(--s-6);
  align-items: start;
  border-top: 1px solid var(--border);
  padding: var(--s-7) 0 calc(var(--s-8) + 56px);
}

.public-footer p {
  max-width: 42ch;
  color: var(--text-muted);
  margin: 0;
}

.footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--s-3);
}

.footer-links a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 7px 12px;
  color: var(--text-soft);
  background: transparent;
  font-weight: 700;
}

/* Public footer accessible links served 2026-09-11: legal and commercial exits stay clear for keyboard and touch users. */
/* Public footer touch served 2026-09-11: footer exits stay readable, keyboard-visible and easy to tap. */
.public-footer .footer-links {
  align-items: center;
  justify-content: center;
  max-width: 100%;
}

.public-footer .footer-links a {
  max-width: 100%;
  min-width: 0;
  min-height: var(--mantivo-touch-target, 44px);
  justify-content: center;
  overflow-wrap: break-word;
  line-height: 1.18;
  text-align: center;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.public-footer .footer-links a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
  background: #eff6ff;
}

.public-footer .footer-links a[aria-current="page"] {
  color: var(--primary);
  background: #eff6ff;
}

@media (max-width: 640px) {
  .public-footer .footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    width: 100%;
  }

  .public-footer .footer-links a {
    width: 100%;
    min-height: var(--mantivo-touch-target, 44px);
    padding-inline: 0.55rem;
    white-space: normal;
  }
}

.footer-links a:hover,
.footer-links a.active {
  color: #ffffff;
  border-color: var(--primary-hover);
  background: var(--primary-hover);
}

.cookie-consent-banner {
  position: fixed;
  right: var(--content-gutter);
  bottom: var(--s-5);
  left: var(--content-gutter);
  z-index: 90;
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto;
  gap: var(--s-6);
  align-items: center;
  width: min(1040px, calc(100vw - (var(--content-gutter) * 2)));
  margin-inline: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 2.4vw, 32px);
  background: var(--surface);
  box-shadow: var(--shadow-md);
}

.cookie-consent-copy {
  display: grid;
  gap: var(--s-3);
  min-width: 0;
}

.cookie-consent-copy strong {
  color: var(--text);
}

.public-mobile-cta {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 60;
  display: none;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(14px);
}

.public-mobile-cta a {
  min-width: 0;
  display: grid;
  place-items: center;
  gap: 3px;
  padding: 8px 4px;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.public-mobile-cta a.active,
.public-mobile-cta a:hover {
  color: var(--primary);
}

.public-mobile-cta-icon {
  width: 20px;
  height: 20px;
}

/* Public mobile sticky CTA served 2026-09-11: compact four-action navigation lives in public.css. */
@media (max-width: 720px) {
  body.public-shell {
    padding-bottom: calc(4.75rem + env(safe-area-inset-bottom, 0px));
  }

  .public-mobile-cta {
    right: 0.75rem;
    bottom: calc(0.7rem + env(safe-area-inset-bottom, 0px));
    left: 0.75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.42rem;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 999px;
    padding: 0.5rem;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
  }

  .public-mobile-cta a {
    min-width: 0;
    min-height: var(--mantivo-touch-target, 44px);
    display: grid;
    place-items: center;
    gap: 0.18rem;
    border-radius: 0.95rem;
    padding: 0.42rem 0.28rem;
    line-height: 1.05;
    text-align: center;
    overflow-wrap: break-word;
    touch-action: manipulation;
  }

  .public-mobile-cta a.active,
  .public-mobile-cta a[aria-current="page"] {
    color: #ffffff;
    background: var(--primary);
  }

  .public-mobile-cta a:focus-visible {
    outline: 3px solid var(--focus);
    outline-offset: 0.18rem;
  }

  .public-mobile-cta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.18rem;
    height: 1.18rem;
    color: currentColor;
  }

  .public-mobile-cta-icon svg {
    width: 1.05rem;
    height: 1.05rem;
    stroke: currentColor;
  }

  .public-mobile-cta-label {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Public mobile anchor clearance served 2026-09-11: fixed CTA must not cover anchors or focus targets. */
@media (max-width: 760px) {
  body.public-shell :where([id], section, main, h1, h2, h3, .card, .public-section, .home-band, .public-sector-picker) {
    scroll-margin-top: calc(var(--public-header-height, 5.5rem) + 1rem);
  }

  body.public-shell :where(.home-sector-card, .pricing-card, .btn, button, input, select, textarea, summary) {
    scroll-margin-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px));
  }

  .public-mobile-cta {
    z-index: 60;
  }
}

/* Public readable width and card contrast served 2026-09-11: wide screens, unclipped sections and legible sector CTAs. */
body.public-shell {
  --container: min(1880px, 95vw);
  overflow-x: clip;
}

body.public-shell .container,
.public-nav,
.public-footer {
  width: 95%;
  max-width: min(1880px, calc(100vw - 1rem));
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

body.public-shell :where(.public-container, .public-section, .home-band, .public-product-modules-band, .public-sector-picker, .sector-instant-band, .sector-catalog-primary-next-step, .pricing-section) {
  width: 100%;
  max-width: none;
  overflow: visible;
  box-sizing: border-box;
}

body.public-shell :where(.section-heading, .section-heading-tight, .sector-secondary-detail-body > .section-heading) {
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.48fr);
}

body.public-shell :where(.section-heading > *, .section-heading h1, .section-heading :is(h2), .section-heading :is(p)) {
  max-width: none;
}

body.public-shell :where(.public-product-modules-grid, .pricing-grid, .grid-two, .grid-three) {
  width: 100%;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: clamp(1rem, 1.8vw, 1.5rem);
  overflow: visible;
}

body.public-shell :where(.public-sector-picker-grid, .home-sector-more-grid) {
  width: 100%;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 34rem), 1fr));
  gap: clamp(1rem, 1.8vw, 1.5rem);
  overflow: visible;
}

body.public-shell .public-sector-picker-grid .home-sector-card,
body.public-shell .home-sector-more-grid .home-sector-card {
  grid-template-columns: clamp(12rem, 30%, 17rem) minmax(0, 1fr);
  min-height: 12rem;
  overflow: hidden;
}

body.public-shell .home-sector-card-copy,
body.public-shell .home-sector-card-copy > * {
  min-width: 0;
  max-width: 100%;
}

body.public-shell .home-sector-card-copy > strong,
body.public-shell .home-sector-card small,
body.public-shell .home-sector-card em {
  overflow-wrap: break-word;
}

body.public-shell .home-sector-card-cta,
body.public-shell .public-sector-picker-grid .home-sector-card-cta,
body.public-shell .home-sector-more-grid .home-sector-card-cta,
body.public-shell .sector-card .btn {
  color: #ffffff;
  border-color: #123f91;
  background: #123f91;
  opacity: 1;
  box-shadow: 0 12px 24px rgba(18, 63, 145, 0.18);
}

body.public-shell .home-sector-card:hover .home-sector-card-cta,
body.public-shell .home-sector-card:focus-visible .home-sector-card-cta,
body.public-shell .sector-card .btn:hover,
body.public-shell .sector-card .btn:focus-visible {
  color: #ffffff;
  border-color: #0b2f6f;
  background: #0b2f6f;
}

/* Public responsive typography and action rhythm served 2026-09-11: readable sales pages on desktop and phone without oversized headings or weak CTAs. */
body.public-shell :where(.home-hero-product h1, .hero-home h1, .sector-hero h1, .page-hero h1) {
  font-size: clamp(2.35rem, 3.8vw, 4.35rem);
  line-height: 1.04;
  letter-spacing: 0;
  max-width: 15ch;
}

body.public-shell :where(.section-heading h1, .section-heading :is(h2)) {
  font-size: clamp(1.65rem, 2.25vw, 2.55rem);
  line-height: 1.12;
  letter-spacing: 0;
  max-width: 24ch;
}

body.public-shell :where(.home-hero-product p, .hero-copy > p:not(.eyebrow), .section-heading :is(p), .page-hero p) {
  font-size: clamp(1rem, 1.05vw, 1.14rem);
  line-height: 1.55;
  color: #284261;
}

body.public-shell :where(.hero-actions, .public-actions, .form-actions, .pricing-actions, .sector-card-actions) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

body.public-shell :where(.btn, .btn-outline, .btn-small, button[type="submit"]) {
  min-height: 2.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  line-height: 1.15;
}

body.public-shell :where(.hero-actions .btn, .hero-actions .btn-outline, .public-actions .btn, .public-actions .btn-outline, .form-actions .btn, .form-actions .btn-outline) {
  flex: 1 1 min(100%, 14rem);
}

body.public-shell :where(.btn, button[type="submit"]) {
  color: #ffffff;
  border-color: #123f91;
  background: #123f91;
}

body.public-shell :where(.btn-outline) {
  color: #123f91;
  border-color: #9ec3ff;
  background: #ffffff;
}

body.public-shell :where(.btn:hover, .btn:focus-visible, button[type="submit"]:hover, button[type="submit"]:focus-visible) {
  color: #ffffff;
  border-color: #0b2f6f;
  background: #0b2f6f;
}

body.public-shell :where(.btn-outline:hover, .btn-outline:focus-visible) {
  color: #0b2f6f;
  border-color: #123f91;
  background: #eaf3ff;
}

@media (min-width: 1180px) {
  body.public-shell .home-hero-product {
    grid-template-columns: minmax(0, 0.98fr) minmax(29rem, 0.82fr);
    align-items: center;
  }
}

@media (max-width: 980px) {
  body.public-shell :where(.section-heading, .section-heading-tight, .sector-secondary-detail-body > .section-heading) {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  body.public-shell .container,
  .public-nav,
  .public-footer {
    width: min(95%, calc(100vw - 0.75rem));
  }

  body.public-shell .public-sector-picker-grid .home-sector-card,
  body.public-shell .home-sector-more-grid .home-sector-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body.public-shell :where(.home-hero-product h1, .hero-home h1, .sector-hero h1, .page-hero h1) {
    font-size: clamp(2rem, 9vw, 2.65rem);
    line-height: 1.04;
    letter-spacing: 0;
    max-width: 100%;
  }

  body.public-shell :where(.section-heading h1, .section-heading :is(h2)) {
    font-size: clamp(1.55rem, 7vw, 2.15rem);
    max-width: 100%;
  }

  body.public-shell :where(.hero-actions, .public-actions, .form-actions, .pricing-actions, .sector-card-actions) {
    align-items: stretch;
  }

  body.public-shell :where(.hero-actions .btn, .hero-actions .btn-outline, .public-actions .btn, .public-actions .btn-outline, .form-actions .btn, .form-actions .btn-outline, button[type="submit"]) {
    width: 100%;
    flex-basis: 100%;
  }
}

/* Public form touch accessibility served 2026-09-11: public forms must be easy to use from phones and keyboard. */
body.public-shell :where(input, select, textarea) {
  min-height: 2.9rem;
  border: 1px solid #b8cbea;
  border-radius: 0.9rem;
  color: #07142f;
  background: #ffffff;
  font-size: 1rem;
  line-height: 1.35;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

body.public-shell :where(input::placeholder, textarea::placeholder) {
  color: #64748b;
  opacity: 1;
}

body.public-shell :where(input:focus-visible, select:focus-visible, textarea:focus-visible) {
  border-color: #123f91;
  outline: 3px solid var(--focus);
  outline-offset: 2px;
  box-shadow: 0 0 0 1px rgba(18, 63, 145, 0.2);
}

body.public-shell :where(label) {
  color: #14243f;
  font-weight: 800;
}

body.public-shell :where(.form-card, .contact-form, .checkout-card, .demo-form, .public-form) {
  gap: clamp(0.9rem, 1.6vw, 1.25rem);
}

body.public-shell :where(.form-hint, .field-hint, .help-text, small) {
  color: #536984;
  line-height: 1.45;
}

@media (max-width: 760px) {
  body.public-shell :where(input, select, textarea, button, .btn, .btn-outline) {
    min-height: 3.15rem;
    font-size: 1rem;
  }

  body.public-shell :where(.form-card, .contact-form, .checkout-card, .demo-form, .public-form) {
    width: 100%;
  }
}

/* Public cookie consent touch served 2026-09-11: analytics and marketing consent must be clear, compact and usable from phone. */
body.public-shell .cookie-consent-banner {
  position: fixed;
  left: 50%;
  right: auto;
  bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  z-index: 120;
  width: min(94vw, 62rem);
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(0.85rem, 2vw, 1.25rem);
  align-items: center;
  padding: clamp(0.95rem, 2vw, 1.25rem);
  border: 1px solid #a7c7ff;
  border-radius: 1.25rem;
  color: #07142f;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 24px 70px rgba(15, 40, 87, 0.2);
}

body.public-shell .cookie-consent-banner[hidden] {
  display: none;
}

body.public-shell .cookie-consent-copy {
  min-width: 0;
}

body.public-shell .cookie-consent-copy strong {
  color: #07142f;
  font-size: 1rem;
}

body.public-shell .cookie-consent-copy p {
  margin: 0.25rem 0 0;
  color: #284261;
  line-height: 1.45;
}

body.public-shell .cookie-consent-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
}

body.public-shell .cookie-consent-actions :where(.btn-small, button, a) {
  min-height: 2.75rem;
  border-radius: 999px;
  white-space: normal;
  text-align: center;
}

body.public-shell .cookie-consent-actions :where(.btn-small:focus-visible, button:focus-visible, a:focus-visible),
body.public-shell .cookie-preferences-panel :where(input:focus-visible, button:focus-visible) {
  outline: 3px solid rgba(37, 99, 235, 0.24);
  outline-offset: 3px;
}

body.public-shell .cookie-preference-options {
  gap: 0.85rem;
}

body.public-shell .cookie-preference-option {
  min-height: 4.25rem;
  border-color: #b8cbea;
  background: #ffffff;
}

body.public-shell .cookie-preference-option input {
  width: 1.25rem;
  height: 1.25rem;
  min-height: 1.25rem;
}

body.public-shell .cookie-preference-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

html[data-theme="dark"] .cookie-consent-banner,
html[data-theme="dark"] .cookie-preference-option {
  border-color: rgba(147, 197, 253, 0.42);
  color: #ffffff;
  background: rgba(15, 23, 42, 0.98);
}

html[data-theme="dark"] .cookie-consent-copy strong,
html[data-theme="dark"] .cookie-consent-copy p {
  color: #e5eefc;
}

/* Public cookie decision hierarchy served 2026-09-11: preserve every consent option while keeping the first viewport readable. */
body.public-shell .cookie-consent-banner {
  width: min(94vw, 64rem);
  grid-template-columns: minmax(16rem, 19rem) minmax(0, 1fr);
  gap: clamp(1rem, 2.4vw, 1.5rem);
  padding: clamp(1rem, 2vw, 1.2rem);
  border-color: #9fc0f3;
  border-radius: 1.5rem;
  box-shadow: 0 1.5rem 4rem rgba(16, 45, 92, 0.2);
}

body.public-shell .cookie-consent-copy p {
  max-width: 32rem;
  font-size: 0.95rem;
  line-height: 1.5;
}

body.public-shell .cookie-consent-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  align-items: stretch;
}

body.public-shell .cookie-consent-actions :where(button, a) {
  width: 100%;
  min-width: 0;
  min-height: 2.85rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.9rem;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
}

body.public-shell .cookie-consent-actions [data-cookie-accept-all] {
  order: 1;
  border-color: #1d4ed8;
  color: #ffffff;
  background: linear-gradient(135deg, #1d4ed8, #2563eb);
}

body.public-shell [data-cookie-consent].cookie-consent-banner .cookie-consent-actions button[data-cookie-reject-nonessential].btn-outline {
  order: 2;
  border-color: #a9bdd8;
  color: #17365d;
  background-color: #ffffff;
  background-image: none;
}

body.public-shell [data-cookie-consent].cookie-consent-banner .cookie-consent-actions button[data-cookie-accept-analytics].btn-small {
  order: 3;
  border-color: #9fc0ff;
  color: #123a78;
  background-color: #eaf2ff;
  background-image: none;
}

body.public-shell .cookie-consent-actions a[href*="cookies.php"] {
  order: 4;
  border-color: #c2d1e5;
  color: #174ea6;
  background: #f8fbff;
}

html[data-theme="dark"] body.public-shell .cookie-consent-actions [data-cookie-reject-nonessential],
html[data-theme="dark"] body.public-shell .cookie-consent-actions a[href*="cookies.php"] {
  border-color: #6f8db5;
  color: #f1f6ff;
  background: #17243a;
}

html[data-theme="dark"] body.public-shell .cookie-consent-actions [data-cookie-accept-analytics] {
  border-color: #6d9fe8;
  color: #ffffff;
  background: #1c3761;
}

@media (max-width: 760px) {
  body.public-shell .cookie-consent-banner {
    width: min(94vw, 40rem);
    grid-template-columns: 1fr;
    gap: 0.85rem;
    align-items: stretch;
    padding: 0.9rem;
  }

  body.public-shell .cookie-consent-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  body.public-shell .cookie-consent-actions :where(.btn-small, button, a),
  body.public-shell .cookie-preference-actions :where(.btn, .btn-outline, button) {
    flex: 1 1 100%;
    width: 100%;
    min-height: 3rem;
    font-size: 0.82rem;
  }
}

@media (max-width: 340px) {
  body.public-shell .cookie-consent-actions {
    grid-template-columns: 1fr;
  }
}

/* Public destructive action clarity served 2026-09-11: cancellation, delete and void actions must not look like normal primary CTAs. */
body.public-shell :where(button.danger, .btn.danger, .btn-danger, input[type="submit"].danger) {
  min-height: 2.85rem;
  border-color: #b42318;
  border-radius: 0.85rem;
  color: #ffffff;
  background: #b42318;
  box-shadow: 0 12px 26px rgba(180, 35, 24, 0.18);
}

body.public-shell :where(button.danger, .btn.danger, .btn-danger, input[type="submit"].danger):hover,
body.public-shell :where(button.danger, .btn.danger, .btn-danger, input[type="submit"].danger):focus-visible {
  border-color: #8f1f17;
  color: #ffffff;
  background: #8f1f17;
  outline: 3px solid rgba(180, 35, 24, 0.26);
  outline-offset: 3px;
}

body.public-shell :where(.alert.danger, .notice.danger) {
  border-color: #f4b4ad;
  color: #7a271a;
  background: #fff1f0;
}

html[data-theme="dark"] body.public-shell :where(button.danger, .btn.danger, .btn-danger, input[type="submit"].danger) {
  border-color: #f97066;
  color: #111827;
  background: #f04438;
}

html[data-theme="dark"] body.public-shell :where(.alert.danger, .notice.danger) {
  border-color: rgba(248, 113, 113, 0.55);
  color: #fecaca;
  background: rgba(127, 29, 29, 0.46);
}

@media (max-width: 760px) {
  body.public-shell :where(button.danger, .btn.danger, .btn-danger, input[type="submit"].danger) {
    min-height: 3.1rem;
  }
}

/* Public disabled and readonly clarity served 2026-09-11: unavailable controls and locked fields must not look editable or primary. */
body.public-shell :where(button, .btn, .btn-small, input[type="submit"]):disabled,
body.public-shell :where(button, .btn, .btn-small)[aria-disabled="true"],
body.public-shell :where(.is-disabled, .btn-disabled) {
  cursor: not-allowed;
  opacity: 1;
  border-color: #cbd5e1;
  color: #475569;
  background: #e2e8f0;
  box-shadow: none;
  transform: none;
}

body.public-shell :where(input:not([type="submit"]), select, textarea):disabled,
body.public-shell :where(input:not([type="submit"]), textarea)[readonly] {
  cursor: default;
  opacity: 1;
  border-color: #cbd5e1;
  color: #334155;
  background: #f1f5f9;
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.2);
}

body.public-shell :where(input:not([type="submit"]), textarea)[readonly]:focus-visible {
  border-color: #64748b;
  outline: 3px solid rgba(100, 116, 139, 0.22);
  outline-offset: 2px;
}

html[data-theme="dark"] body.public-shell :where(button, .btn, .btn-small, input[type="submit"]):disabled,
html[data-theme="dark"] body.public-shell :where(button, .btn, .btn-small)[aria-disabled="true"],
html[data-theme="dark"] body.public-shell :where(.is-disabled, .btn-disabled) {
  border-color: #475569;
  color: #cbd5e1;
  background: #1e293b;
}

html[data-theme="dark"] body.public-shell :where(input:not([type="submit"]), select, textarea):disabled,
html[data-theme="dark"] body.public-shell :where(input:not([type="submit"]), textarea)[readonly] {
  border-color: #475569;
  color: #cbd5e1;
  background: #0f172a;
}

/* Public disabled and readonly professional clarity served 2026-09-11 */
body.public-shell :where(button, .btn, .btn-small, input[type="submit"]):disabled,
body.public-shell :where(button, .btn, .btn-small)[aria-disabled="true"],
body.public-shell :where(.is-disabled, .btn-disabled) {
  position: relative;
  color: #475569;
  -webkit-text-fill-color: #475569;
  background:
    repeating-linear-gradient(135deg, rgba(148, 163, 184, 0.16) 0 1px, transparent 1px 8px),
    #e8edf5;
  border: 1px solid #cbd5e1;
  box-shadow: none;
  filter: saturate(0.86);
}

body.public-shell :where(button, .btn, .btn-small)[aria-disabled="true"]::after,
body.public-shell :where(.is-disabled, .btn-disabled)::after {
  content: "No disponible";
  margin-left: 0.42rem;
  padding: 0.12rem 0.36rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  color: #334155;
  background: #ffffff;
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1.1;
}

body.public-shell :where(input:not([type="submit"]), textarea, select)[readonly],
body.public-shell :where(input:not([type="submit"]), textarea, select):disabled {
  cursor: not-allowed;
  border-color: #cbd5e1;
  color: #334155;
  -webkit-text-fill-color: #334155;
  background: #f8fafc;
}

body.public-shell :where(input:not([type="submit"]), textarea, select)[readonly]:focus,
body.public-shell :where(input:not([type="submit"]), textarea, select):disabled:focus {
  outline: 3px solid rgba(100, 116, 139, 0.28);
  outline-offset: 2px;
  box-shadow: none;
}

@media (max-width: 760px) {
  body.public-shell :where(button, .btn, .btn-small, input[type="submit"]):disabled,
  body.public-shell :where(button, .btn, .btn-small)[aria-disabled="true"],
  body.public-shell :where(.is-disabled, .btn-disabled) {
    min-height: 2.9rem;
    justify-content: center;
  }
}

html[data-theme="dark"] body.public-shell :where(button, .btn, .btn-small, input[type="submit"]):disabled,
html[data-theme="dark"] body.public-shell :where(button, .btn, .btn-small)[aria-disabled="true"],
html[data-theme="dark"] body.public-shell :where(.is-disabled, .btn-disabled) {
  border-color: rgba(148, 163, 184, 0.44);
  color: #cbd5e1;
  -webkit-text-fill-color: #cbd5e1;
  background:
    repeating-linear-gradient(135deg, rgba(148, 163, 184, 0.14) 0 1px, transparent 1px 8px),
    #1e293b;
}

html[data-theme="dark"] body.public-shell :where(input:not([type="submit"]), textarea, select)[readonly],
html[data-theme="dark"] body.public-shell :where(input:not([type="submit"]), textarea, select):disabled {
  border-color: rgba(148, 163, 184, 0.42);
  color: #cbd5e1;
  -webkit-text-fill-color: #cbd5e1;
  background: #111827;
}

@media print {
  .public-mobile-cta {
    display: none;
  }

  body.public-shell {
    padding-bottom: 0;
  }
}

@media (max-width: 1120px) {
  .public-menu-toggle {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: var(--s-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 9px 12px;
    color: var(--text);
    background: var(--surface);
    font-weight: 800;
  }

  .public-menu-toggle-lines {
    display: grid;
    gap: 4px;
  }

  .public-menu-toggle-lines i {
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
  }

  .public-menu {
    position: fixed;
    top: 72px;
    right: 24px;
    left: 24px;
    display: none;
    max-height: calc(100vh - 96px);
    overflow: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--s-4);
    background: var(--surface);
    box-shadow: var(--shadow-md);
  }

  .public-menu.is-open,
  .public-menu[data-open="true"] {
    display: block;
  }

  .public-menu-groups {
    display: grid;
    align-items: stretch;
    justify-content: stretch;
  }

  .public-menu-group-title,
  .public-menu-link,
  .public-menu-action .btn-small {
    width: 100%;
  }

  .public-menu-submenu {
    position: static;
    width: 100%;
    max-height: none;
    margin-top: var(--s-2);
    box-shadow: none;
  }
}

@media (max-width: 980px) {
  .home-hero,
  .hero-home,
  .plan-primary-next-step,
  .service-primary-next-step,
  .empresa-primary-next-step,
  .sector-catalog-primary-next-step,
  .signup-primary-next-step {
    grid-template-columns: 1fr;
  }

  .home-hero h1,
  .hero-home h1 {
    max-width: 17ch;
  }

  .home-sector-search,
  .sector-search-form,
  .public-menu-trades-search {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
  }

  .pricing-grid {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
  }

  .service-step-strip,
  .empresa-step-strip,
  .service-primary-next-links {
    grid-template-columns: 1fr;
  }

  .home-cta,
  .cookie-consent-banner {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .home-hero-media,
  .home-hero-decision {
    display: none;
  }
}

@media (max-width: 760px) {
  .container,
  .public-nav,
  .public-footer {
    width: min(100% - 32px, var(--container));
  }

  main.container {
    padding-block: var(--s-7) var(--s-8);
  }

  .public-nav {
    min-height: 64px;
  }

  .public-menu {
    top: 64px;
    right: 16px;
    left: 16px;
  }

  .home-hero,
  .hero-home,
  .home-band,
  .public-section,
  .home-cta,
  .public-sector-picker {
    margin-bottom: var(--s-8);
  }

  .home-band,
  .public-section {
    padding-block: var(--s-7);
  }

  .home-hero,
  .hero-home,
  .home-cta,
  .public-sector-picker {
    padding: var(--s-5);
  }

  .sector-catalog-results-band {
    gap: var(--s-7);
  }

  .sector-search-band {
    gap: var(--s-4);
  }

  h1 {
    max-width: 16ch;
    font-size: clamp(1.85rem, 7.8vw, 2.45rem);
  }

  h2 {
    font-size: clamp(1.35rem, 5.4vw, 1.85rem);
  }

  .home-hero-decision,
  .home-flow-gallery,
  .screen-grid,
  .public-menu-submenu-trades,
  .home-sector-search,
  .sector-search-form,
  .sector-hero-search,
  .public-menu-trades-search,
  .pricing-grid {
    grid-template-columns: 1fr;
  }

  .sector-search-form :is(button, .btn) {
    width: 100%;
  }

  .home-hero-media {
    display: none;
  }

  .home-flow-photo {
    display: none;
  }

  .home-flow-step {
    grid-template-columns: 22px minmax(0, 1fr);
    padding: 10px;
  }

  .home-flow-step strong {
    grid-column: 2;
  }

  .home-hero-directory-link {
    grid-template-columns: 1fr;
  }

  .home-hero-decision {
    display: none;
  }

  .hero-actions,
  .public-card-actions,
  .sector-card-actions,
  .plan-primary-actions,
  .plan-complete-channel-actions,
  .plan-trade-shortcut-actions,
  .plan-sector-actions,
  .signup-primary-actions,
  .cookie-consent-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .btn,
  .button,
  button,
  input[type="submit"],
  .btn-small {
    width: 100%;
  }

  .public-mobile-cta {
    display: grid;
  }

  .public-footer {
    grid-template-columns: 1fr;
    gap: var(--s-4);
    padding-bottom: calc(var(--s-8) + 76px);
  }

  .footer-links {
    justify-content: flex-start;
  }

  .footer-links a {
    min-height: 44px;
  }

  .cookie-consent-banner {
    right: 16px;
    bottom: 72px;
    left: 16px;
    width: auto;
    gap: var(--s-4);
  }

  .sector-card-visual-sale .sector-card-actions,
  .sector-card-visual-sale .sector-card-actions :is(.btn, .btn-outline, .sector-card-demo-link) {
    width: auto;
  }
}

@media (max-width: 420px) {
  .container,
  .public-nav,
  .public-footer {
    width: min(100% - 20px, var(--container));
  }

  .brand span {
    font-size: 1rem;
  }

  .public-menu-toggle-label {
    display: none;
  }

  .home-hero,
  .hero-home,
  .home-cta,
  .public-sector-picker,
  .pricing-card,
  .plan-entry-price-grid article,
  .plan-simple-names-grid article {
    padding: var(--s-4);
  }

  h1 {
    font-size: 1.95rem;
  }

  h2 {
    font-size: 1.42rem;
  }

  .price-tag {
    font-size: 2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Sector landing layout: styles only for gremio.php pages loaded through public.css. */
.sector-landing-hero {
  padding-block: clamp(24px, 3.2vw, 48px);
}

.sector-landing-hero .sector-hero-grid {
  grid-template-columns: minmax(0, 1.05fr) minmax(420px, 0.95fr);
  align-items: center;
  gap: clamp(28px, 3.4vw, 56px);
  padding: clamp(28px, 3.8vw, 56px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, #ffffff 0%, #f9fbff 58%, #eef4ff 100%);
  box-shadow: var(--shadow-sm);
}

.sector-landing-hero .hero-copy {
  display: grid;
  align-content: center;
  gap: var(--s-5);
  min-width: 0;
}

.sector-landing-hero .hero-copy h1 {
  max-width: 18ch;
  margin: 0;
  color: var(--text);
  font-size: var(--title-hero);
  line-height: var(--title-tight-line);
  letter-spacing: 0;
}

.sector-landing-hero .hero-copy > p:not(.eyebrow) {
  max-width: 62ch;
  margin: 0;
  color: var(--text-soft);
  font-size: clamp(1.04rem, 1.2vw, 1.2rem);
  line-height: 1.55;
}

.sector-price-pill {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--s-2);
  width: fit-content;
  max-width: 100%;
  border: 1px solid #bfd1f4;
  border-radius: 999px;
  padding: 10px 14px;
  background: #ffffff;
  color: var(--text);
  box-shadow: var(--shadow-xs);
  word-break: normal;
}

.sector-price-pill span,
.sector-price-pill small {
  color: var(--text-soft);
  font-size: 0.92rem;
  font-weight: 800;
}

.sector-price-pill strong {
  color: var(--primary-hover);
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  line-height: 1;
}

.sector-hero-proof-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.sector-hero-proof-chip {
  display: grid;
  gap: 3px;
  min-width: min(100%, 12rem);
  max-width: 18rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-3) var(--s-4);
  background: var(--surface);
}

.sector-hero-proof-chip small,
.sector-dashboard-preview span,
.sector-page-fast-decision-card span,
.sector-page-fast-decision-card em,
.sector-flow-visual-grid small,
.sector-mini-photo span,
.sector-scene-card small,
.sector-example-card span,
.sector-specific-fit-grid article > span,
.sector-personalization-grid article > span {
  color: var(--primary-hover);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase;
}

.sector-hero-proof-chip strong {
  color: var(--text);
  font-size: 0.96rem;
  line-height: 1.32;
}

.sector-visual-showcase {
  display: grid;
  grid-template-columns: minmax(280px, 0.92fr) minmax(220px, 0.72fr);
  gap: var(--s-4);
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-4);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

/* Public sector landing visual diversity: photos appear once in the primary flow; secondary blocks use stage markers. */
.sector-visual-image,
.sector-flow-visual-grid article,
.sector-mini-photo,
.sector-use-case-visual,
.sector-scene-picture,
.sector-example-picture,
.sector-section-visual {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: #dbeafe;
}

.sector-visual-image {
  min-height: clamp(300px, 30vw, 460px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--s-3);
  border-radius: var(--radius-lg);
  padding: clamp(22px, 2.5vw, 34px);
  color: #ffffff;
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.08), rgba(15, 23, 42, 0.78)),
    linear-gradient(135deg, #2563eb 0%, #0f766e 100%);
}

.sector-visual-image span {
  width: fit-content;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(15, 23, 42, 0.62);
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 850;
}

.sector-visual-image strong {
  max-width: 13ch;
  color: #ffffff;
  font-size: var(--title-section);
  line-height: var(--title-tight-line);
}

.sector-visual-image small {
  max-width: 34ch;
  color: #eef6ff;
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.42;
}

.sector-dashboard-preview {
  align-self: center;
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.sector-dashboard-preview div {
  display: grid;
  gap: var(--s-2);
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-4);
  background: var(--surface-strong);
}

.sector-dashboard-preview strong {
  color: var(--text);
  font-size: 1rem;
  line-height: 1.32;
  overflow-wrap: break-word;
}

.sector-page-fast-decision,
.sector-next-step-band,
.sector-mini-gallery-band,
.sector-use-cases,
.sector-scene-strip,
.sector-example-visuals,
.sector-specific-fit,
.sector-personalization {
  display: grid;
  gap: clamp(20px, 2.5vw, 32px);
}

.sector-landing-hero,
.sector-page-fast-decision,
.sector-next-step-band,
.sector-mini-gallery-band,
.sector-use-cases,
.sector-scene-strip,
.sector-example-visuals,
.sector-specific-fit,
.sector-personalization,
.sector-page-cta {
  margin-bottom: clamp(32px, 4vw, 56px);
  padding-block: clamp(24px, 3.2vw, 48px);
}

.sector-page-fast-decision-grid,
.sector-flow-visual-grid,
.sector-mini-gallery,
.sector-use-case-grid,
.sector-scene-grid,
.sector-example-grid,
.sector-specific-fit-grid,
.sector-personalization-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: var(--s-5);
  min-width: 0;
}

.sector-flow-visual-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}

.sector-page-fast-decision-card,
.sector-use-case-card,
.sector-scene-card,
.sector-example-card,
.sector-specific-fit-grid article,
.sector-personalization-grid article {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 2vw, 28px);
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-xs);
  overflow: hidden;
}

.sector-page-fast-decision-card {
  min-height: 100%;
  text-decoration: none;
}

.sector-page-fast-decision-card:hover,
.sector-page-fast-decision-card:focus-visible {
  border-color: var(--primary);
  color: var(--text);
  box-shadow: var(--shadow-sm);
}

.sector-page-fast-decision-card strong,
.sector-scene-card strong,
.sector-specific-fit-grid h3,
.sector-example-card h3 {
  color: var(--text);
  font-size: var(--title-card);
  line-height: 1.15;
}

.sector-page-fast-decision-card small,
.sector-scene-card p,
.sector-example-card p,
.sector-specific-fit-grid p,
.sector-use-case-card p {
  color: var(--text-soft);
  font-size: 1rem;
  line-height: 1.5;
}

.sector-page-fast-decision-card em {
  margin-top: auto;
  font-style: normal;
}

.sector-flow-visual {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding-inline: clamp(20px, 3vw, 40px);
  background: linear-gradient(135deg, #111827 0%, #173b86 100%);
  color: #ffffff;
}

.sector-flow-visual .section-heading :is(h2, p) {
  color: #ffffff;
}

.sector-flow-visual .eyebrow {
  border-color: rgba(255, 255, 255, 0.42);
  color: #ffffff;
  background: rgba(15, 23, 42, 0.68);
}

.sector-flow-visual-grid article,
.sector-mini-photo {
  min-height: clamp(210px, 19vw, 280px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--s-2);
  border-radius: var(--radius-lg);
  padding: var(--s-5);
  color: #ffffff;
}

.sector-flow-card-img,
.sector-visual-img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.04) contrast(1.04);
}

.sector-visual-image::before,
.sector-flow-visual-grid article::before,
.sector-mini-photo::before,
.sector-use-case-visual::before,
.sector-scene-picture::before,
.sector-example-picture::before,
.sector-section-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(16, 24, 40, 0.18), rgba(16, 24, 40, 0.8));
  pointer-events: none;
}

.sector-stage-card,
.sector-stage-panel {
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: #111827;
  color: #ffffff;
}

.sector-stage-card::before,
.sector-stage-panel::before {
  background: linear-gradient(180deg, rgba(16, 24, 40, 0.2), rgba(16, 24, 40, 0.78));
}

.sector-stage-card strong,
.sector-stage-panel strong {
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(16, 24, 40, 0.42);
}

.sector-stage-card > span:not(.sector-stage-marker),
.sector-stage-panel > small,
.sector-stage-panel > span {
  position: relative;
  z-index: 2;
}

.sector-stage-marker,
.sector-stage-panel > span {
  display: inline-grid;
  place-items: center;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 999px;
  background: var(--stage-accent);
  color: #ffffff;
  font-weight: 900;
  box-shadow: 0 14px 28px var(--stage-glow);
}

.sector-stage-panel {
  display: flex;
  min-height: 7.75rem;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-3);
  padding: var(--s-4);
}

.sector-stage-panel > small {
  max-width: 13rem;
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 850;
  line-height: 1.25;
  text-transform: uppercase;
}

.sector-visual-image > :not(.sector-visual-img),
.sector-flow-visual-grid article > :not(.sector-flow-card-img),
.sector-mini-photo > :not(.sector-visual-img),
.sector-use-case-visual > :not(.sector-visual-img),
.sector-scene-picture > :not(.sector-visual-img),
.sector-example-picture > :not(.sector-visual-img),
.sector-section-visual > :not(.sector-visual-img) {
  position: relative;
  z-index: 2;
}

.sector-flow-visual-grid article strong,
.sector-mini-photo strong {
  color: #ffffff;
  font-size: 1.14rem;
  line-height: 1.22;
  text-shadow: 0 2px 12px rgba(16, 24, 40, 0.42);
}

.sector-stage-card strong,
.sector-stage-panel strong {
  color: #ffffff;
  text-shadow: 0 2px 12px rgba(16, 24, 40, 0.42);
}

.sector-step-badge,
.sector-mini-photo em,
.sector-use-case-visual strong,
.sector-use-case-visual span,
.sector-scene-picture span {
  width: fit-content;
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--primary-hover);
  font-style: normal;
  font-weight: 900;
}

.sector-stage-panel > span,
.sector-stage-card .sector-stage-marker {
  background: var(--stage-accent);
  color: #ffffff;
}

.sector-use-case-visual,
.sector-scene-picture,
.sector-example-picture {
  min-height: 180px;
  border-radius: var(--radius);
}

.sector-section-visual {
  width: min(100%, 520px);
  min-height: clamp(180px, 16vw, 240px);
  display: flex;
  align-items: flex-end;
  margin: var(--s-2) 0 0;
  border-radius: var(--radius-lg);
  padding: var(--s-5);
  color: #ffffff;
}

.sector-section-visual figcaption {
  max-width: 24rem;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1rem, 1.2vw, 1.16rem);
  font-weight: 850;
  line-height: 1.25;
  text-shadow: 0 2px 14px rgba(16, 24, 40, 0.52);
}

.sector-use-case-visual {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--s-3);
  padding: var(--s-4);
}

.sector-use-case-card small {
  color: var(--primary-hover);
  font-size: 0.8rem;
  font-weight: 850;
  text-transform: uppercase;
}

.sector-use-case-card h3,
.sector-personalization-grid h3 {
  margin: 0;
  color: var(--text);
  font-size: var(--title-card);
  line-height: 1.2;
}

.sector-scene-card p,
.sector-specific-fit-grid p,
.sector-example-card p {
  margin: 0;
}

.sector-specific-fit-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sector-specific-fit-grid article {
  border-color: var(--border);
  background: var(--surface);
}

@media (max-width: 1180px) {
  .sector-specific-fit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .sector-specific-fit-grid {
    grid-template-columns: 1fr;
  }
}

.sector-example-picture {
  min-height: 210px;
  margin-bottom: var(--s-2);
}

.sector-personalization-grid .compact-list {
  margin: 0;
}

.sector-personalization-grid .compact-list li {
  color: var(--text);
}

.sector-page-cta {
  border-color: #173b86;
  background: linear-gradient(135deg, #101828 0%, #173b86 100%);
}

.sector-page-cta :is(h2, p, .eyebrow) {
  color: #ffffff;
}

/* Trade landing professional rhythm 2026-09-11: wider, tighter and image-led gremio pages. */
body.public-shell .sector-landing-hero,
body.public-shell .sector-page-fast-decision,
body.public-shell .sector-next-step-band,
body.public-shell .sector-mini-gallery-band,
body.public-shell .sector-use-cases,
body.public-shell .sector-scene-strip,
body.public-shell .sector-example-visuals,
body.public-shell .sector-specific-fit,
body.public-shell .sector-personalization,
body.public-shell .sector-page-cta {
  margin-bottom: clamp(8px, 1.2vw, 18px);
  padding-block: clamp(12px, 1.7vw, 26px);
}

body.public-shell .sector-landing-hero,
body.public-shell :is(.sector-page-fast-decision, .sector-next-step-band, .sector-mini-gallery-band, .sector-use-cases, .sector-scene-strip, .sector-example-visuals, .sector-specific-fit, .sector-personalization, .sector-page-cta) {
  width: min(1680px, calc(100vw - (var(--content-gutter) * 2)));
  margin-inline: auto;
}

body.public-shell .sector-landing-hero .sector-hero-grid {
  grid-template-columns: minmax(420px, 0.9fr) minmax(620px, 1.1fr);
  gap: clamp(28px, 3vw, 48px);
  align-items: center;
  padding: clamp(30px, 3.2vw, 52px);
  border-color: #cfd8e6;
  background: #ffffff;
  box-shadow: 0 18px 54px rgba(16, 24, 40, 0.08);
}

body.public-shell .sector-landing-hero .hero-copy {
  gap: clamp(14px, 1.6vw, 22px);
}

body.public-shell .sector-landing-hero .hero-copy h1 {
  max-width: 17ch;
  font-size: clamp(2.25rem, 3.15vw, 3.9rem);
  line-height: 1.05;
}

body.public-shell .sector-landing-hero .hero-copy > p:not(.eyebrow) {
  max-width: 58ch;
  font-size: clamp(1rem, 1vw, 1.14rem);
  line-height: 1.55;
}

body.public-shell .sector-visual-showcase {
  grid-template-columns: minmax(0, 1.35fr) minmax(230px, 0.65fr);
  gap: clamp(14px, 1.5vw, 22px);
  align-items: stretch;
  padding: clamp(14px, 1.4vw, 20px);
  border-color: #cfd8e6;
  border-radius: var(--radius-lg);
  background: #f8fafc;
  box-shadow: none;
}

body.public-shell .sector-visual-image {
  min-height: clamp(360px, 32vw, 560px);
  border-radius: var(--radius);
}

body.public-shell .sector-visual-image::before,
body.public-shell .sector-flow-visual-grid article::before,
body.public-shell .sector-mini-photo::before,
body.public-shell .sector-use-case-visual::before,
body.public-shell .sector-scene-picture::before,
body.public-shell .sector-example-picture::before {
  background: linear-gradient(180deg, rgba(16, 24, 40, 0.04), rgba(16, 24, 40, 0.58));
}

body.public-shell .sector-visual-image strong {
  max-width: none;
  width: fit-content;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(15, 23, 42, 0.72);
  color: #ffffff;
  font-size: 0.86rem;
  font-weight: 850;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: uppercase;
}

body.public-shell .sector-visual-image small {
  max-width: 42ch;
  color: #ffffff;
  font-size: clamp(1.08rem, 1.4vw, 1.48rem);
  line-height: 1.24;
}

body.public-shell .sector-dashboard-preview {
  align-self: auto;
  align-content: stretch;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-3);
}

body.public-shell .sector-dashboard-preview div {
  padding: clamp(14px, 1.4vw, 18px);
  border-color: #d0d5dd;
  background: #ffffff;
  box-shadow: none;
}

/* Trade landing hero visual simplification 2026-09-13: one dominant photo with compact operational signals. */
body.public-shell .sector-landing-hero .sector-visual-showcase {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-3);
  padding: var(--s-3);
  background: #ffffff;
  box-shadow: 0 14px 42px rgba(16, 24, 40, 0.06);
}

body.public-shell .sector-landing-hero .sector-visual-image {
  min-height: clamp(320px, 28vw, 480px);
  padding: clamp(18px, 2vw, 28px);
}

body.public-shell .sector-landing-hero .sector-visual-image strong {
  max-width: 100%;
  width: fit-content;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 0.78rem;
  line-height: 1.1;
}

body.public-shell .sector-landing-hero .sector-visual-image small {
  max-width: min(42ch, 100%);
  font-size: clamp(1.02rem, 1.15vw, 1.22rem);
  line-height: 1.3;
}

body.public-shell .sector-landing-hero .sector-dashboard-preview {
  align-self: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-2);
}

body.public-shell .sector-landing-hero .sector-dashboard-preview div {
  padding: 12px;
  border-radius: var(--radius-sm);
  background: #f8fafc;
}

body.public-shell .sector-landing-hero .sector-dashboard-preview strong {
  font-size: 0.94rem;
  line-height: 1.25;
}

body.public-shell .sector-flow-visual {
  padding-inline: clamp(20px, 2.2vw, 32px);
  border-color: #173b86;
  background: #102a56;
}

body.public-shell .sector-flow-visual .eyebrow {
  border-color: #bfdbfe;
  color: #0b2a5b;
  background: #ffffff;
}

body.public-shell :is(.sector-page-fast-decision, .sector-next-step-band, .sector-mini-gallery-band, .sector-use-cases, .sector-scene-strip, .sector-example-visuals, .sector-specific-fit, .sector-personalization) {
  gap: clamp(14px, 1.6vw, 22px);
}

body.public-shell :is(.sector-page-fast-decision, .sector-next-step-band, .sector-mini-gallery-band, .sector-use-cases, .sector-scene-strip, .sector-example-visuals, .sector-specific-fit, .sector-personalization) > .section-heading {
  max-width: min(1040px, 100%);
  gap: var(--s-2);
  margin-bottom: 0;
}

body.public-shell :is(.sector-page-fast-decision, .sector-next-step-band, .sector-mini-gallery-band, .sector-use-cases, .sector-scene-strip, .sector-example-visuals, .sector-specific-fit, .sector-personalization) > .section-heading h2 {
  max-width: 38ch;
  font-size: clamp(1.42rem, 1.45vw, 1.82rem);
  line-height: 1.16;
}

body.public-shell :is(.sector-page-fast-decision-card, .sector-use-case-card, .sector-scene-card, .sector-example-card, .sector-specific-fit-grid article, .sector-personalization-grid article) :is(h3, strong) {
  font-size: clamp(1.02rem, 1vw, 1.18rem);
  line-height: 1.22;
}

body.public-shell .sector-page-fast-decision-grid,
body.public-shell .sector-flow-visual-grid,
body.public-shell .sector-mini-gallery,
body.public-shell .sector-use-case-grid,
body.public-shell .sector-scene-grid,
body.public-shell .sector-example-grid,
body.public-shell .sector-personalization-grid {
  gap: clamp(12px, 1.3vw, 18px);
}

body.public-shell .sector-page-fast-decision-card,
body.public-shell .sector-use-case-card,
body.public-shell .sector-scene-card,
body.public-shell .sector-example-card,
body.public-shell .sector-specific-fit-grid article,
body.public-shell .sector-personalization-grid article {
  padding: clamp(16px, 1.45vw, 22px);
  border-radius: var(--radius);
  box-shadow: var(--shadow-xs);
}

body.public-shell .sector-flow-visual-grid article,
body.public-shell .sector-mini-photo,
body.public-shell .sector-example-picture {
  min-height: clamp(210px, 16vw, 280px);
}

body.public-shell .sector-use-case-visual,
body.public-shell .sector-scene-picture {
  min-height: clamp(190px, 14vw, 250px);
}

body.public-shell .sector-specific-fit-grid {
  gap: var(--s-4);
}

html[data-theme="dark"] body.public-shell .sector-flow-visual .eyebrow {
  border-color: #bfdbfe;
  color: #0b1220;
  background: #dbeafe;
}

html[data-theme="dark"] body.public-shell .sector-dashboard-preview div {
  background: var(--surface-strong);
}

@media (max-width: 1120px) {
  body.public-shell .sector-landing-hero .sector-hero-grid {
    grid-template-columns: minmax(320px, 0.88fr) minmax(420px, 1.12fr);
    gap: clamp(14px, 1.6vw, 22px);
    padding: clamp(14px, 1.6vw, 22px);
  }

  body.public-shell .sector-landing-hero .hero-copy {
    gap: var(--s-3);
  }

  body.public-shell .sector-hero-proof-chips {
    display: none;
  }

  body.public-shell .sector-visual-showcase {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .sector-landing-hero .hero-copy h1 {
    max-width: 18ch;
    font-size: clamp(1.85rem, 3.4vw, 2.65rem);
  }

  body.public-shell .sector-dashboard-preview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1040px), (max-width: 1120px) and (max-height: 820px) {
  body.public-shell .sector-dashboard-preview {
    display: none;
  }

  body.public-shell .sector-visual-image {
    min-height: clamp(210px, 24vw, 270px);
  }
}

@media (max-width: 900px) {
  body.public-shell .sector-landing-hero .sector-hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .sector-dashboard-preview {
    display: none;
  }

  body.public-shell .sector-visual-image {
    min-height: clamp(210px, 34vw, 300px);
  }
}

@media (max-width: 760px) {
  body.public-shell .sector-landing-hero,
  body.public-shell .sector-page-fast-decision,
  body.public-shell .sector-next-step-band,
  body.public-shell .sector-mini-gallery-band,
  body.public-shell .sector-use-cases,
  body.public-shell .sector-scene-strip,
  body.public-shell .sector-example-visuals,
  body.public-shell .sector-specific-fit,
  body.public-shell .sector-personalization,
  body.public-shell .sector-page-cta {
    margin-bottom: var(--s-4);
    padding-block: var(--s-3);
  }

  body.public-shell .sector-landing-hero,
  body.public-shell :is(.sector-page-fast-decision, .sector-next-step-band, .sector-mini-gallery-band, .sector-use-cases, .sector-scene-strip, .sector-example-visuals, .sector-specific-fit, .sector-personalization, .sector-page-cta) {
    width: min(100%, calc(100vw - 24px));
  }

  body.public-shell .sector-landing-hero .sector-hero-grid {
    padding: var(--s-3);
  }

  body.public-shell .sector-landing-hero .hero-copy > p:not(.eyebrow) {
    font-size: 0.98rem;
    line-height: 1.4;
  }

  body.public-shell .sector-landing-hero .hero-actions {
    gap: var(--s-2);
  }

  body.public-shell .sector-landing-hero .hero-actions .btn-outline {
    display: none;
  }

  body.public-shell .sector-price-pill {
    margin-block: 0;
    padding: 7px 10px;
  }

  body.public-shell .sector-landing-hero .hero-copy h1,
  body.public-shell :is(.sector-page-fast-decision, .sector-next-step-band, .sector-mini-gallery-band, .sector-use-cases, .sector-scene-strip, .sector-example-visuals, .sector-specific-fit, .sector-personalization) > .section-heading h2 {
    max-width: 100%;
    font-size: clamp(1.45rem, 6.2vw, 1.95rem);
  }

  body.public-shell .sector-dashboard-preview {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .sector-visual-image {
    min-height: clamp(150px, 42vw, 200px);
    padding: var(--s-3);
  }
}

/* Public contact workbench 2026-09-10: canonical form layout loaded by public.css. */
.sales-contact-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(380px, 0.54fr);
  gap: clamp(24px, 3vw, 44px);
  align-items: center;
  padding-block: clamp(24px, 3.6vw, 48px) var(--s-5);
}

.sales-contact-hero > div {
  max-width: 860px;
  display: grid;
  gap: var(--s-4);
}

.sales-contact-hero h1 {
  max-width: 18ch;
  font-size: var(--title-hero);
  letter-spacing: 0;
}

.sales-contact-hero p:not(.eyebrow) {
  max-width: 58ch;
  color: var(--text-soft);
  font-size: clamp(1.08rem, 1.2vw, 1.22rem);
  line-height: 1.62;
}

.contact-hero-visual,
.contact-sector-visual {
  min-width: 0;
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.contact-hero-visual {
  position: relative;
  min-height: clamp(280px, 28vw, 420px);
}

.contact-hero-visual img,
.contact-sector-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.contact-hero-visual img {
  min-height: inherit;
}

.contact-hero-visual figcaption {
  position: absolute;
  left: var(--s-4);
  bottom: var(--s-4);
  max-width: calc(100% - var(--s-8));
  border: 1px solid rgba(191, 219, 254, 0.72);
  border-radius: 999px;
  padding: 7px 11px;
  color: #07142f;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.14);
  font-size: 0.9rem;
  font-weight: 850;
}

.contact-primary-next-step,
.contact-lead-context {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.42fr);
  gap: clamp(20px, 2.4vw, 36px);
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: clamp(22px, 2.5vw, 36px);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.contact-primary-next-step > div:first-child,
.contact-lead-context > div:first-child {
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.contact-primary-actions,
.contact-success-actions,
.sector-summary-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  gap: var(--s-3);
  align-items: center;
}

.contact-primary-actions > a:not(.btn):not(.btn-outline) {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--primary-hover);
  font-weight: 850;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.contact-lead-context-tags,
.sector-summary-proof {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.contact-lead-context-tags span,
.sector-summary-proof span {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 11px;
  color: var(--text-soft);
  background: var(--surface-strong);
  font-size: 0.9rem;
  font-weight: 750;
}

.contact-workbench-section {
  padding-top: 0;
}

.contact-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1.34fr) minmax(340px, 0.66fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: start;
  width: 100%;
}

.contact-form,
.sector-summary-card {
  min-width: 0;
  display: grid;
  gap: var(--s-5);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: clamp(24px, 2.6vw, 40px);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.honeypot-field {
  position: absolute;
  left: -100vw;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.contact-form-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-4);
}

.contact-form-heading {
  grid-column: 1 / -1;
  display: grid;
  gap: var(--s-3);
  max-width: none;
  padding-bottom: var(--s-4);
  border-bottom: 1px solid var(--border);
}

.contact-form-heading h2 {
  color: var(--text);
  font-size: var(--title-section);
  line-height: var(--title-tight-line);
}

.contact-form-heading p:not(.eyebrow) {
  color: var(--text-soft);
  font-size: 1rem;
  line-height: 1.55;
}

.form-field,
.contact-intent-panel,
.sector-summary-card,
.public-sector-selling-points article,
.sector-lead-questions,
.sector-contact-hook,
.success,
.error-list {
  min-width: 0;
}

.form-field {
  grid-column: span 6;
  display: grid;
  gap: 10px;
}

.form-field-wide,
.contact-step-strip,
.contact-intent-panel,
.inline-check,
.contact-form > button[type="submit"] {
  grid-column: 1 / -1;
}

.contact-form label {
  color: var(--text);
  font-size: 0.96rem;
  font-weight: 800;
  line-height: 1.25;
}

.contact-form :is(input:not([type="checkbox"]), select, textarea) {
  min-height: 54px;
  border-color: var(--border);
  border-radius: var(--radius);
  padding: 14px 15px;
  color: var(--text);
  background: var(--surface);
  font-size: 1rem;
  line-height: 1.45;
}

.contact-form select {
  text-overflow: ellipsis;
}

.contact-form textarea {
  min-height: 148px;
  resize: vertical;
}

.contact-form :is(input:not([type="checkbox"]), select, textarea):hover {
  border-color: var(--border-strong);
}

.contact-form :is(input:not([type="checkbox"]), select, textarea):focus-visible {
  outline: 3px solid rgba(138, 75, 0, 0.32);
  outline-offset: 3px;
  border-color: var(--primary-hover);
}

.contact-form :is(input:not([type="checkbox"]), select, textarea)[aria-invalid="true"] {
  border-color: var(--error);
  box-shadow: 0 0 0 1px rgba(180, 35, 24, 0.16);
}

.contact-form :is(input:not([type="checkbox"]), select, textarea):disabled {
  color: var(--text-muted);
  background: var(--surface-strong);
  cursor: not-allowed;
}

.contact-step-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
}

.contact-step-strip span {
  min-width: 0;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px 12px;
  color: var(--primary-hover);
  background: var(--surface-strong);
  font-weight: 850;
  line-height: 1.2;
}

.contact-step-strip strong {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: var(--primary-hover);
  font-size: 0.82rem;
  font-weight: 900;
}

.contact-intent-panel {
  display: grid;
  gap: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-5);
  background: var(--surface-strong);
}

.contact-intent-panel > strong {
  color: var(--text);
  font-size: 1rem;
  font-weight: 850;
}

.contact-intent-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.75rem, 1fr));
  gap: var(--s-3);
}

.contact-intent-grid button {
  min-width: 0;
  min-height: 46px;
  border-color: var(--border);
  padding: 10px 12px;
  color: var(--primary-hover);
  background: var(--surface);
  box-shadow: none;
  font-size: 0.95rem;
}

.contact-intent-grid button:hover,
.contact-intent-grid button:focus-visible {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
}

.contact-intent-grid button[aria-pressed="true"],
.contact-intent-grid button.is-selected {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
  box-shadow: 0 14px 24px rgba(29, 78, 216, 0.18);
}

.contact-intent-panel small,
.sector-summary-kicker {
  color: var(--text-soft);
  font-size: 0.95rem;
  line-height: 1.45;
}

.inline-check {
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: var(--s-3);
  color: var(--text-soft);
  font-weight: 650;
}

.inline-check span {
  min-width: 0;
  color: var(--text-soft);
  line-height: 1.5;
}

.inline-check a {
  display: inline;
  overflow-wrap: normal;
  word-break: normal;
  font-weight: 800;
}

.inline-check input[type="checkbox"] {
  width: 20px;
  min-height: 20px;
  margin-top: 2px;
  accent-color: var(--primary);
}

.contact-form > button[type="submit"] {
  width: 100%;
  min-height: 54px;
  font-size: 1rem;
}

.sector-summary-card {
  position: sticky;
  top: 96px;
  gap: var(--s-4);
}

.contact-sector-visual {
  aspect-ratio: 16 / 10;
  border-radius: var(--radius);
}

.sector-summary-card h3 {
  font-size: var(--title-card);
}

.sector-summary-card p {
  max-width: none;
}

.sector-summary-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-3);
}

.sector-summary-meta p {
  display: grid;
  gap: 4px;
  margin: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-3);
  background: var(--surface-strong);
}

.sector-summary-meta strong {
  color: var(--primary-hover);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.sector-summary-meta span {
  color: var(--text);
  font-weight: 850;
  line-height: 1.25;
}

.sector-summary-description {
  color: var(--text-soft);
  line-height: 1.55;
}

.public-sector-selling-points {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-4);
}

.public-sector-selling-points article,
.sector-lead-questions,
.sector-contact-hook {
  display: grid;
  gap: var(--s-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-4);
  background: var(--surface-strong);
}

.public-sector-selling-points ul,
.sector-lead-questions ul,
.error-list {
  display: grid;
  gap: var(--s-2);
  margin: 0;
  padding-left: 1.15rem;
}

.sector-contact-hook strong,
.public-sector-selling-points strong,
.sector-lead-questions strong {
  color: var(--text);
}

.success {
  display: grid;
  gap: var(--s-3);
  border: 1px solid rgba(8, 116, 67, 0.28);
  border-radius: var(--radius);
  padding: var(--s-4);
  color: var(--text);
  background: #ecfdf3;
}

.error,
.error-list {
  color: var(--error);
}

.error-list {
  border: 1px solid rgba(180, 35, 24, 0.22);
  border-radius: var(--radius);
  padding-block: var(--s-3);
  padding-right: var(--s-4);
  background: #fff1f0;
}

html[data-theme="dark"] .public-shell :is(.contact-primary-next-step, .contact-lead-context, .contact-form, .sector-summary-card, .contact-intent-panel, .public-sector-selling-points article, .sector-lead-questions, .sector-contact-hook, .contact-hero-visual, .contact-sector-visual) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(.contact-step-strip span, .contact-lead-context-tags span, .sector-summary-proof span, .sector-summary-meta p, .public-sector-selling-points article, .sector-lead-questions, .sector-contact-hook, .contact-intent-panel) {
  background: var(--surface-strong);
}

html[data-theme="dark"] .public-shell .contact-form :is(input:not([type="checkbox"]), select, textarea),
html[data-theme="dark"] .public-shell .contact-intent-grid button {
  border-color: var(--border);
  color: var(--text);
  background: #0b1220;
}

html[data-theme="dark"] .public-shell .contact-form :is(input:not([type="checkbox"]), select, textarea):focus-visible {
  border-color: var(--primary);
  outline-color: rgba(251, 191, 36, 0.72);
}

html[data-theme="dark"] .public-shell .contact-intent-grid button:hover,
html[data-theme="dark"] .public-shell .contact-intent-grid button:focus-visible {
  border-color: #dbeafe;
  color: #0b1220;
  background: #dbeafe;
}

html[data-theme="dark"] .public-shell .contact-intent-grid button[aria-pressed="true"],
html[data-theme="dark"] .public-shell .contact-intent-grid button.is-selected {
  border-color: #93c5fd;
  color: #ffffff;
  background: #1d4ed8;
}

html[data-theme="dark"] .public-shell .contact-step-strip strong {
  color: #0b1220;
  background: #dbeafe;
}

html[data-theme="dark"] .public-shell .success {
  border-color: rgba(110, 231, 183, 0.44);
  background: #06351f;
}

html[data-theme="dark"] .public-shell .error-list {
  border-color: rgba(248, 113, 113, 0.48);
  background: #3b0a0a;
}

@media (max-width: 1180px) {
  .contact-workbench,
  .sales-contact-hero,
  .contact-primary-next-step,
  .contact-lead-context {
    grid-template-columns: 1fr;
  }

  .sector-summary-card {
    position: static;
  }

  .contact-intent-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .sales-contact-hero h1 {
    max-width: 100%;
    font-size: clamp(1.85rem, 7.2vw, 2.25rem);
  }

  .contact-form,
  .sector-summary-card,
  .contact-primary-next-step,
  .contact-lead-context,
  .module-request-primary-next-step {
    padding: var(--s-5);
  }

  .contact-form-grid,
  .sector-summary-meta,
  .contact-step-strip,
  .contact-intent-grid,
  .public-sector-selling-points {
    grid-template-columns: 1fr;
  }

  .contact-form .form-field {
    grid-column: 1 / -1;
  }

  .contact-step-strip span {
    justify-content: flex-start;
  }

  .contact-primary-actions > :is(a, button, .btn),
  .contact-success-actions > :is(a, button, .btn),
  .sector-summary-actions > :is(a, button, .btn) {
    width: 100%;
  }

  .module-request-primary-next-step {
    grid-template-columns: 1fr;
  }

  .module-request-primary-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .empresa-primary-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .service-primary-next-step,
  .empresa-primary-next-step {
    padding: var(--s-5);
  }

  .service-primary-next-step > .btn {
    width: 100%;
  }

  .service-step-strip span,
  .empresa-step-strip span {
    justify-content: flex-start;
    text-align: left;
  }
}

/* Trade request public form 2026-09-10: served by public.css, not the admin stylesheet. */
.module-request-hero .hero-home {
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.72fr);
  align-items: center;
}

.module-request-hero .hero-copy h1 {
  max-width: 13ch;
}

.module-request-signal-card {
  position: relative;
  isolation: isolate;
  min-height: 420px;
  overflow: hidden;
  border: 1px solid rgba(16, 24, 40, 0.18);
  border-radius: var(--radius-lg);
  background: var(--surface-inverse);
  box-shadow: var(--shadow-sm);
}

.module-request-signal-photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.module-request-signal-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(16, 24, 40, 0.1) 0%, rgba(16, 24, 40, 0.84) 100%);
}

.module-request-signal-overlay {
  min-height: 100%;
  display: grid;
  align-content: end;
  gap: var(--s-4);
  padding: clamp(24px, 3vw, 40px);
  color: #ffffff;
}

.module-request-signal-overlay strong {
  color: #ffffff;
  font-size: clamp(1.7rem, 2.2vw, 2.35rem);
  line-height: 1.08;
}

.module-request-signal-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.module-request-signal-list span {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  padding: 7px 12px;
  color: #ffffff;
  background: rgba(16, 24, 40, 0.48);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
}

.module-request-primary-next-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s-5);
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--card-padding);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.module-request-primary-next-step h2 {
  max-width: 18ch;
}

.module-request-primary-next-step p:not(.eyebrow) {
  max-width: 58ch;
  color: var(--text-soft);
  line-height: 1.58;
}

.module-request-primary-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--s-3);
}

#module-request-form .grid-two {
  display: grid;
  grid-template-columns: minmax(760px, 1.15fr) minmax(360px, 0.85fr);
  gap: clamp(32px, 4vw, 64px);
  align-items: start;
}

.module-request-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.module-request-form-heading,
.trade-request-step-strip,
.trade-request-examples,
.compact-module-request-fields,
.module-request-field-wide,
.module-request-form .inline-check,
.module-request-form .notice,
.module-request-form > button[type="submit"] {
  grid-column: 1 / -1;
}

.module-request-field {
  min-width: 0;
  display: grid;
  gap: var(--s-2);
}

.compact-module-request-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-5);
}

.trade-request-step-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
}

.trade-request-step-strip span {
  min-width: 0;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 12px;
  color: var(--primary-hover);
  background: var(--surface-strong);
  font-weight: 850;
  line-height: 1.2;
}

.trade-request-step-strip strong {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: var(--primary-hover);
  font-size: 0.82rem;
  font-weight: 900;
}

.trade-request-examples {
  display: grid;
  gap: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-5);
  background: var(--surface-strong);
}

.trade-request-examples > strong {
  color: var(--text);
  font-size: 1rem;
  font-weight: 850;
}

.trade-request-example-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s-3);
}

.trade-request-example-grid button {
  min-width: 0;
  min-height: 46px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px 12px;
  color: var(--primary-hover);
  background: var(--surface);
  box-shadow: none;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1.2;
}

.trade-request-example-grid button:hover,
.trade-request-example-grid button:focus-visible {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
}

.trade-request-examples small,
.module-request-field .small {
  color: var(--text-soft);
  font-size: 0.95rem;
  line-height: 1.45;
}

.module-request-side-card {
  position: sticky;
  top: 104px;
  display: grid;
  gap: var(--s-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 2.6vw, 36px);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.module-request-side-visual {
  position: relative;
  min-height: 220px;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--surface-inverse);
}

.module-request-side-visual img {
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
}

.module-request-side-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(16, 24, 40, 0) 0%, rgba(16, 24, 40, 0.78) 100%);
}

.module-request-side-visual figcaption {
  position: absolute;
  inset: auto var(--s-4) var(--s-4);
  z-index: 1;
  color: #ffffff;
  font-size: 0.95rem;
  font-weight: 850;
  line-height: 1.2;
}

.module-request-side-card h3 {
  color: var(--text);
  font-size: var(--title-card);
  line-height: 1.15;
}

.module-request-known {
  display: grid;
  gap: var(--s-3);
}

.module-request-known > div {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
}

.module-request-known a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 12px;
  color: var(--primary-hover);
  background: var(--surface-strong);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
}

.module-request-known a:hover,
.module-request-known a:focus-visible {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
}

html[data-theme="dark"] .public-shell :is(.module-request-form, .module-request-side-card, .trade-request-examples, .trade-request-step-strip span, .module-request-known a) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell .trade-request-examples {
  background: var(--surface-strong);
}

html[data-theme="dark"] .public-shell :is(.trade-request-step-strip span, .module-request-known a, .trade-request-example-grid button) {
  border-color: var(--border-strong);
  color: var(--primary);
  background: var(--surface-strong);
}

html[data-theme="dark"] .public-shell :is(.trade-request-step-strip strong) {
  color: #0b1220;
  background: #dbeafe;
}

html[data-theme="dark"] .public-shell :is(.trade-request-example-grid button:hover, .trade-request-example-grid button:focus-visible, .module-request-known a:hover, .module-request-known a:focus-visible) {
  border-color: #dbeafe;
  color: #0b1220;
  background: #dbeafe;
}

@media (max-width: 1180px) {
  .module-request-hero .hero-home,
  #module-request-form .grid-two {
    grid-template-columns: 1fr;
  }

  .module-request-side-card {
    position: static;
  }

  .trade-request-example-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .module-request-hero .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(1.85rem, 7.2vw, 2.25rem);
  }

  .module-request-signal-card {
    min-height: 320px;
  }

  .module-request-form,
  .compact-module-request-fields,
  .trade-request-step-strip,
  .trade-request-example-grid {
    grid-template-columns: 1fr;
  }

  .trade-request-step-strip span {
    justify-content: flex-start;
  }
}

/* Signup decision layout 2026-09-10: alta.php is served by public.css. */
.public-shell .signup-sector-hero .hero-home {
  grid-template-columns: minmax(0, 0.9fr) minmax(24rem, 0.62fr);
  gap: clamp(24px, 3vw, 48px);
  align-items: center;
}

.public-shell .signup-sector-hero .hero-copy {
  max-width: min(100%, 58rem);
}

.public-shell .signup-sector-hero h1 {
  max-width: 13ch;
}

.public-shell .signup-sector-hero .hero-actions {
  display: grid;
  grid-template-columns: minmax(13rem, 1.35fr) repeat(2, minmax(10rem, 1fr));
  gap: var(--s-3);
  align-items: stretch;
}

.public-shell .signup-sector-hero .hero-actions .btn {
  min-height: 48px;
  justify-content: center;
  text-align: center;
}

.public-shell .signup-config-card {
  position: relative;
  isolation: isolate;
  min-height: clamp(320px, 32vw, 440px);
  overflow: hidden;
  display: grid;
  align-content: end;
  border-color: rgba(255, 255, 255, 0.18);
  padding: 0;
  background: var(--surface-inverse);
}

.public-shell .signup-config-photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  filter: none;
}

.public-shell .signup-config-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(16, 24, 40, 0.04), rgba(16, 24, 40, 0.82)),
    linear-gradient(90deg, rgba(16, 24, 40, 0.28), rgba(16, 24, 40, 0.02));
}

.public-shell .signup-config-overlay {
  display: grid;
  gap: var(--s-4);
  padding: clamp(24px, 3vw, 40px);
}

.public-shell .signup-config-card strong {
  width: fit-content;
  max-width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 999px;
  padding: 8px 12px;
  color: #ffffff;
  background: rgba(16, 24, 40, 0.68);
  font-size: clamp(1.35rem, 2vw, 2rem);
  line-height: 1.08;
}

.public-shell .signup-config-steps {
  display: grid;
  gap: var(--s-3);
}

.public-shell .signup-config-card span {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: var(--s-2);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  padding: 8px 12px;
  color: #101828;
  background: rgba(255, 255, 255, 0.9);
  font-weight: 850;
  line-height: 1.2;
  box-shadow: 0 14px 30px rgba(16, 24, 40, 0.16);
}

.public-shell .signup-config-card span::before {
  content: "";
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 999px;
  background: var(--primary-hover);
  box-shadow: 0 0 0 5px rgba(21, 94, 239, 0.12);
}

.public-shell .signup-primary-next-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.5fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: stretch;
}

.public-shell .signup-primary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.public-shell .signup-primary-actions .btn {
  min-height: 48px;
  justify-content: center;
}

.public-shell .signup-step-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
  margin-block: var(--s-5);
}

.public-shell .signup-step-strip span,
.public-shell .signup-primary-proof dl {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-4);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .signup-step-strip span {
  color: var(--text);
  font-weight: 850;
}

.public-shell .signup-step-strip strong {
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  margin-right: var(--s-2);
  border-radius: 999px;
  color: #ffffff;
  background: var(--primary-hover);
  font-size: 0.86rem;
}

.public-shell .signup-primary-proof {
  display: grid;
  gap: var(--s-3);
  align-content: start;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s-5);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .signup-primary-proof > span {
  color: var(--primary-hover);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.public-shell .signup-primary-proof dt {
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.public-shell .signup-primary-proof dd {
  margin: var(--s-1) 0 0;
  color: var(--text);
  font-weight: 900;
  line-height: 1.22;
  overflow-wrap: break-word;
}

.public-shell .signup-instant-grid,
.public-shell .signup-equation,
.public-shell .signup-brief-grid,
.public-shell .signup-next-actions,
.public-shell .signup-plan-grid,
.public-shell .signup-complete-channel-grid {
  display: grid;
  gap: clamp(16px, 2vw, 24px);
}

.public-shell .signup-instant-grid,
.public-shell .signup-next-actions,
.public-shell .signup-plan-grid,
.public-shell .signup-complete-channel-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-shell .signup-equation,
.public-shell .signup-brief-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.public-shell :where(.signup-instant-grid article, .signup-equation article, .signup-brief-grid article, .signup-plan-grid article, .signup-next-actions a, .signup-complete-channel-grid article) {
  min-width: 0;
  display: grid;
  gap: var(--s-3);
  align-content: start;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-5);
  color: var(--text);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .signup-brief-grid article {
  border-left: 4px solid var(--primary);
}

.public-shell .signup-brief-grid article:nth-child(2) {
  border-left-color: var(--accent);
}

.public-shell .signup-brief-grid article:nth-child(3) {
  border-left-color: var(--success);
}

.public-shell .signup-brief-grid article:nth-child(4) {
  border-left-color: #7c3aed;
}

.public-shell :where(.signup-instant-grid span, .signup-equation span, .signup-plan-grid header span, .signup-brief-grid span, .signup-next-actions span) {
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.public-shell :where(.signup-instant-grid h3, .signup-equation h3, .signup-plan-grid h3, .signup-brief-grid h3, .signup-next-actions strong) {
  color: var(--text);
  font-size: var(--title-card);
  line-height: 1.15;
}

.public-shell :where(.signup-instant-grid p, .signup-equation p, .signup-plan-grid p, .signup-brief-grid p, .signup-next-actions small, .signup-complete-channel-grid p) {
  color: var(--text-soft);
  line-height: 1.5;
}

.public-shell .signup-equation small,
.public-shell .signup-plan-grid header small {
  display: block;
  margin-top: var(--s-2);
  color: var(--text-muted);
  font-size: 0.9rem;
  line-height: 1.42;
}

.public-shell .signup-next-actions a,
.public-shell .signup-module-links a {
  text-decoration: none;
}

.public-shell .signup-next-actions a:hover,
.public-shell .signup-next-actions a:focus-visible {
  color: var(--text);
  border-color: var(--primary-hover);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}

.public-shell .signup-module-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2);
  margin-top: var(--s-4);
}

.public-shell .signup-module-links a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 12px;
  color: var(--primary-hover);
  background: var(--surface-strong);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
}

.public-shell .signup-module-links a:hover,
.public-shell .signup-module-links a:focus-visible {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
}

/* Signup secondary details 2026-09-10: keep comparison available without forcing long reading. */
.public-shell .signup-secondary-detail {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 0;
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .signup-secondary-detail > summary {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  padding: var(--s-5);
  cursor: pointer;
  list-style: none;
}

.public-shell .signup-secondary-detail > summary::-webkit-details-marker {
  display: none;
}

.public-shell .signup-secondary-detail > summary::after {
  content: "+";
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: var(--primary-hover);
  font-weight: 900;
}

.public-shell .signup-secondary-detail[open] > summary::after {
  content: "-";
}

.public-shell .signup-secondary-detail > summary span {
  color: var(--primary-hover);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.public-shell .signup-secondary-detail > summary strong {
  color: var(--text);
  font-size: var(--title-card);
  line-height: 1.15;
}

.public-shell .signup-secondary-detail[open] > .section-heading,
.public-shell .signup-secondary-detail[open] > .signup-brief-grid,
.public-shell .signup-secondary-detail[open] > .signup-next-actions,
.public-shell .signup-secondary-detail[open] > .signup-plan-grid {
  padding-inline: var(--s-5);
}

.public-shell .signup-secondary-detail[open] > :last-child {
  padding-bottom: var(--s-5);
}

.public-shell .signup-complete-channel-strip {
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--card-padding);
  background:
    radial-gradient(circle at 100% 0, rgba(96, 165, 250, 0.16), transparent 22rem),
    var(--surface);
}

.public-shell .signup-complete-channel-grid span {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border-radius: var(--radius);
  color: #ffffff;
  background: var(--primary-hover);
  font-size: 0.78rem;
  font-weight: 900;
}

html[data-theme="dark"] .public-shell :where(.signup-primary-next-step, .signup-primary-proof, .signup-step-strip span, .signup-primary-proof dl, .signup-instant-grid article, .signup-equation article, .signup-brief-grid article, .signup-plan-grid article, .signup-next-actions a, .signup-complete-channel-grid article, .signup-secondary-detail, .signup-complete-channel-strip) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell :where(.signup-primary-proof dd, .signup-instant-grid h3, .signup-equation h3, .signup-plan-grid h3, .signup-brief-grid h3, .signup-next-actions strong, .signup-secondary-detail > summary strong, .signup-complete-channel-grid strong) {
  color: var(--text);
}

html[data-theme="dark"] .public-shell :where(.signup-primary-proof dt, .signup-instant-grid p, .signup-equation p, .signup-plan-grid p, .signup-brief-grid p, .signup-next-actions small, .signup-complete-channel-grid p) {
  color: var(--text-soft);
}

html[data-theme="dark"] .public-shell :where(.signup-step-strip strong, .signup-secondary-detail > summary::after, .signup-complete-channel-grid span) {
  color: #0b1220;
  background: #dbeafe;
}

html[data-theme="dark"] .public-shell .signup-config-card span {
  color: #0b1220;
}

@media (max-width: 1180px) {
  .public-shell .signup-sector-hero .hero-home,
  .public-shell .signup-primary-next-step,
  .public-shell .signup-complete-channel-strip {
    grid-template-columns: 1fr;
  }

  .public-shell .signup-sector-hero .hero-actions {
    grid-template-columns: 1fr;
  }

  .public-shell .signup-equation,
  .public-shell .signup-brief-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .public-shell .signup-sector-hero h1 {
    max-width: 100%;
    font-size: clamp(1.85rem, 7.2vw, 2.25rem);
  }

  .public-shell .signup-config-card {
    min-height: 320px;
  }

  .public-shell .signup-instant-grid,
  .public-shell .signup-equation,
  .public-shell .signup-brief-grid,
  .public-shell .signup-next-actions,
  .public-shell .signup-plan-grid,
  .public-shell .signup-complete-channel-grid,
  .public-shell .signup-step-strip {
    grid-template-columns: 1fr;
  }

  .public-shell .signup-primary-actions .btn,
  .public-shell .signup-sector-hero .hero-actions .btn {
    width: 100%;
  }
}

/* Checkout layout 2026-09-10: loaded by checkout.php through public.css. */
.checkout-start-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(380px, 0.62fr);
  align-items: stretch;
  gap: clamp(24px, 3.2vw, 48px);
  padding: clamp(32px, 4vw, 56px);
  border: 1px solid #1f2937;
  border-radius: var(--radius);
  color: #ffffff;
  background:
    linear-gradient(135deg, rgba(14, 147, 132, 0.24), transparent 48%),
    linear-gradient(145deg, #101828 0%, #173b86 58%, #0f172a 100%);
  box-shadow: var(--shadow-md);
}

.checkout-start-copy {
  display: grid;
  align-content: center;
  gap: var(--s-5);
  min-width: 0;
}

.checkout-start-copy :is(h1, p, .eyebrow) {
  color: #ffffff;
}

.checkout-start-copy h1 {
  max-width: 18ch;
  font-size: var(--title-hero);
  line-height: var(--title-tight-line);
}

.checkout-start-copy > p:not(.eyebrow) {
  max-width: 58ch;
  color: #dbeafe;
  font-size: clamp(1.08rem, 1.35vw, 1.24rem);
  line-height: 1.6;
}

.checkout-start-summary {
  display: grid;
  gap: var(--s-4);
  align-self: center;
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-lg);
  padding: clamp(20px, 2.4vw, 32px);
  background: rgba(255, 255, 255, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.checkout-start-visual {
  position: relative;
  min-width: 0;
  display: grid;
  align-content: end;
  min-height: clamp(320px, 28vw, 480px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: var(--radius-lg);
  background: #0f172a;
}

.checkout-start-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(16, 24, 40, 0.06), rgba(16, 24, 40, 0.7));
  pointer-events: none;
}

.checkout-start-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.04) contrast(1.04);
}

.checkout-start-visual .checkout-start-summary {
  position: relative;
  z-index: 2;
  align-self: end;
  margin: clamp(16px, 2vw, 24px);
  background: rgba(15, 23, 42, 0.7);
  backdrop-filter: blur(10px);
}

.checkout-return-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 0.8fr);
  align-items: center;
  gap: clamp(28px, 4vw, 56px);
}

.checkout-return-hero > div {
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.checkout-return-hero h1 {
  max-width: 13ch;
  font-size: var(--title-page);
  line-height: var(--title-tight-line);
}

.checkout-return-hero > div > p:not(.eyebrow) {
  max-width: 58ch;
  color: var(--text-soft);
  font-size: clamp(1.05rem, 1.25vw, 1.2rem);
  line-height: 1.6;
}

.checkout-return-visual {
  position: relative;
  min-width: 0;
  min-height: clamp(300px, 30vw, 460px);
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: #0f172a;
  box-shadow: var(--shadow-md);
}

.checkout-return-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.04), rgba(15, 23, 42, 0.74));
}

.checkout-return-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.04) contrast(1.03);
}

.checkout-return-visual figcaption {
  position: absolute;
  right: clamp(16px, 2vw, 24px);
  bottom: clamp(16px, 2vw, 24px);
  left: clamp(16px, 2vw, 24px);
  z-index: 2;
  display: grid;
  gap: var(--s-2);
  max-width: 32rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius);
  padding: var(--s-4);
  color: #ffffff;
  background: rgba(15, 23, 42, 0.74);
  backdrop-filter: blur(10px);
}

.checkout-return-visual figcaption span {
  color: #bfdbfe;
  font-size: 0.8rem;
  font-weight: 850;
  text-transform: uppercase;
}

.checkout-return-visual figcaption strong {
  color: #ffffff;
  font-size: clamp(1.12rem, 1.8vw, 1.5rem);
  line-height: 1.2;
}

.checkout-start-summary span,
.checkout-step-strip span {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: var(--s-3);
  color: #eef6ff;
  font-weight: 800;
  line-height: 1.25;
}

.checkout-start-summary strong,
.checkout-step-strip strong,
.checkout-step-list span {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #0b1220;
  background: #dbeafe;
  font-weight: 900;
}

.checkout-panel {
  display: grid;
  gap: clamp(32px, 4vw, 56px);
}

.checkout-panel > .section-heading {
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: var(--s-5);
  margin-bottom: 0;
}

.checkout-panel > .section-heading > div {
  display: grid;
  gap: var(--s-4);
  min-width: 0;
  max-width: 980px;
}

.checkout-panel > .section-heading h2 {
  max-width: 20ch;
}

.checkout-step-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.checkout-step-strip span {
  width: fit-content;
  min-height: 46px;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 4px 14px 4px 4px;
  color: var(--text);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.checkout-choice-band,
.checkout-state-band,
.checkout-pending,
.checkout-summary-grid article,
.checkout-preparation-card {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.checkout-choice-band {
  display: grid;
  gap: var(--s-5);
  padding: clamp(24px, 2.6vw, 40px);
}

.checkout-choice-head {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(24px, 3vw, 44px);
  align-items: start;
}

.checkout-choice-head > div:first-child {
  position: sticky;
  top: 104px;
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.checkout-choice-head h3,
.checkout-state-band h3,
.checkout-preparation-card h4 {
  color: var(--text);
}

.checkout-choice-head p:not(.eyebrow),
.checkout-state-band p,
.checkout-preparation-card p {
  color: var(--text-soft);
  font-size: 1rem;
  line-height: 1.55;
}

.checkout-choice-form {
  min-width: 0;
  display: grid;
  gap: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: clamp(22px, 2.3vw, 34px);
  background: var(--surface-strong);
}

.checkout-plan-radio-group {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: var(--s-4);
  margin: 0;
  border: 0;
  padding: 0;
}

.checkout-plan-radio-group legend {
  grid-column: 1 / -1;
  padding: 0;
  color: var(--text);
  font-size: 0.94rem;
  font-weight: 850;
}

.checkout-choice-form > label,
.checkout-signup-inline-fields label,
.referral-code-form label {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 850;
  line-height: 1.25;
}

.checkout-choice-form :is(input:not([type="radio"]):not([type="checkbox"]), select),
.referral-code-form input {
  min-height: 54px;
  border-color: var(--border);
  border-radius: var(--radius);
  padding: 14px 15px;
  color: var(--text);
  background: var(--surface);
  font-size: 1rem;
  line-height: 1.45;
}

.checkout-choice-form :is(input:not([type="radio"]):not([type="checkbox"]), select):hover,
.referral-code-form input:hover {
  border-color: var(--border-strong);
}

.checkout-choice-form :is(input:not([type="radio"]):not([type="checkbox"]), select):focus-visible,
.referral-code-form input:focus-visible {
  outline: 3px solid rgba(138, 75, 0, 0.32);
  outline-offset: 3px;
  border-color: var(--primary-hover);
}

.checkout-plan-radio-card,
.checkout-plan-choice-card {
  min-width: 0;
  display: grid;
  gap: var(--s-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-4);
  background: var(--surface);
  color: var(--text);
  text-decoration: none;
}

.checkout-plan-radio-card {
  position: relative;
  min-height: 11.5rem;
  align-content: start;
  cursor: pointer;
}

.checkout-plan-radio-card input {
  position: absolute;
  inset: var(--s-3) var(--s-3) auto auto;
  width: 20px;
  min-height: 20px;
  accent-color: var(--primary);
}

.checkout-plan-radio-card span,
.checkout-plan-choice-card span,
.checkout-summary-grid span,
.checkout-preparation-card span {
  color: var(--primary-hover);
  font-size: 0.8rem;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.checkout-plan-radio-card strong,
.checkout-plan-choice-card strong,
.checkout-summary-grid strong {
  color: var(--text);
  font-size: 1.08rem;
  line-height: 1.22;
}

.checkout-plan-radio-card em,
.checkout-plan-choice-card em {
  color: var(--text);
  font-size: clamp(1.35rem, 1.8vw, 1.82rem);
  font-style: normal;
  font-weight: 900;
  line-height: 1;
}

.checkout-plan-radio-card small,
.checkout-plan-choice-card small,
.checkout-summary-grid p {
  color: var(--text-soft);
  font-size: 0.94rem;
  line-height: 1.45;
}

.checkout-plan-annual-note {
  color: var(--text-muted);
  font-size: 0.86rem;
}

.checkout-plan-radio-card:hover,
.checkout-plan-radio-card:focus-within,
.checkout-plan-radio-card.is-active,
.checkout-plan-radio-card:has(input:checked),
.checkout-plan-choice-card:hover,
.checkout-plan-choice-card:focus-visible,
.checkout-plan-choice-card.is-active {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(21, 94, 239, 0.12);
}

.checkout-plan-radio-card.is-recommended,
.checkout-plan-choice-card.is-recommended {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.checkout-signup-inline-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-4);
}

.checkout-signup-inline-fields label {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.checkout-consent-row {
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  color: var(--text-soft);
  font-weight: 650;
}

.checkout-consent-row input {
  width: 20px;
  min-height: 20px;
  margin-top: 2px;
  accent-color: var(--primary);
}

.checkout-choice-form button[type="submit"],
.referral-code-form button {
  width: 100%;
  min-height: 54px;
  font-size: 1rem;
}

.checkout-plan-reference-detail {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-strong);
}

.checkout-plan-reference-detail > summary {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  padding: var(--s-4) var(--s-5);
  color: var(--text);
  cursor: pointer;
}

.checkout-plan-reference-detail > summary::-webkit-details-marker {
  display: none;
}

.checkout-plan-reference-detail > summary span {
  color: var(--primary-hover);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.checkout-plan-reference-detail > summary strong {
  color: var(--text);
}

.checkout-plan-reference-detail > summary::after {
  content: "+";
  color: var(--primary-hover);
  font-size: 1.35rem;
  font-weight: 900;
}

.checkout-plan-reference-detail[open] > summary::after {
  content: "-";
}

.checkout-plan-choice-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  gap: var(--s-4);
  padding: 0 var(--s-5) var(--s-5);
}

.checkout-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  gap: var(--s-5);
}

.checkout-summary-grid article {
  display: grid;
  gap: var(--s-2);
  padding: var(--s-5);
}

.checkout-state-band {
  display: grid;
  grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(24px, 3vw, 48px);
  align-items: start;
  padding: clamp(28px, 3vw, 44px);
}

.checkout-state-band > div {
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.referral-code-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  gap: var(--s-4);
  min-width: 0;
}

.referral-code-form label {
  min-width: 0;
}

.checkout-step-list {
  display: grid;
  gap: var(--s-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.checkout-step-list li {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: var(--s-3);
  align-items: start;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-4);
  background: var(--surface-strong);
}

.checkout-success-decision-panel,
.checkout-cancel-decision-panel {
  min-width: 0;
  display: grid;
  gap: var(--s-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(28px, 3vw, 44px);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.checkout-success-decision-panel {
  border-color: #b7e4c7;
  background: linear-gradient(135deg, #f5fff8 0%, #ffffff 58%);
}

.checkout-cancel-decision-panel {
  border-color: #fed7aa;
  background: linear-gradient(135deg, #fff8ed 0%, #ffffff 58%);
}

.checkout-success-decision-panel > div:first-child,
.checkout-cancel-decision-panel .section-heading-row > div {
  display: grid;
  gap: var(--s-3);
  max-width: 820px;
}

.checkout-success-decision-panel h2,
.checkout-cancel-decision-panel h3 {
  color: var(--text);
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
  line-height: 1.12;
}

.checkout-success-decision-panel p,
.checkout-cancel-decision-panel p {
  color: var(--text-soft);
  font-size: 1rem;
  line-height: 1.55;
}

.checkout-success-decision-grid,
.checkout-cancel-decision-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s-4);
}

.checkout-success-decision-card,
.checkout-cancel-decision-card {
  min-width: 0;
  min-height: 100%;
  display: grid;
  align-content: start;
  gap: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-5);
  background: rgba(255, 255, 255, 0.9);
  color: var(--text);
  text-decoration: none;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.checkout-success-decision-card:hover,
.checkout-success-decision-card:focus-visible,
.checkout-cancel-decision-card:hover,
.checkout-cancel-decision-card:focus-visible {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(21, 94, 239, 0.12);
  transform: translateY(-1px);
}

.checkout-success-decision-card span,
.checkout-cancel-decision-card span {
  color: var(--primary-hover);
  font-size: 0.8rem;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.checkout-success-decision-card strong,
.checkout-cancel-decision-card strong {
  color: var(--text);
  font-size: 1.1rem;
  line-height: 1.2;
}

.checkout-success-decision-card small,
.checkout-cancel-decision-card small {
  color: var(--text-soft);
  font-size: 0.94rem;
  line-height: 1.45;
}

.checkout-success-decision-card em,
.checkout-cancel-decision-card em {
  align-self: end;
  color: var(--primary-hover);
  font-style: normal;
  font-weight: 850;
}

.checkout-step-list strong,
.checkout-step-list p {
  grid-column: 2;
}

.checkout-preparation-band {
  grid-template-columns: minmax(300px, 0.78fr) minmax(0, 1.22fr);
}

.checkout-preparation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.checkout-preparation-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-4);
}

.checkout-preparation-card {
  display: grid;
  gap: var(--s-3);
  padding: var(--s-5);
}

.checkout-preparation-card ul {
  display: grid;
  gap: var(--s-2);
  margin: 0;
  padding-left: 1.15rem;
}

.checkout-pending {
  display: grid;
  gap: var(--s-4);
  padding: var(--s-5);
}

.checkout-pending p {
  max-width: none;
}

.admin-empty-state-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

html[data-theme="dark"] .public-shell :is(.checkout-choice-band, .checkout-choice-form, .checkout-plan-radio-card, .checkout-plan-choice-card, .checkout-plan-reference-detail, .checkout-summary-grid article, .checkout-state-band, .checkout-step-list li, .checkout-preparation-card, .checkout-pending) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(.checkout-success-decision-panel, .checkout-cancel-decision-panel, .checkout-success-decision-card, .checkout-cancel-decision-card) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(.checkout-plan-radio-card.is-recommended, .checkout-plan-choice-card.is-recommended, .checkout-choice-form, .checkout-plan-reference-detail, .checkout-step-list li) {
  background: var(--surface-strong);
}

html[data-theme="dark"] .public-shell :is(.checkout-step-strip span) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(.checkout-plan-radio-card span, .checkout-plan-choice-card span, .checkout-summary-grid span, .checkout-preparation-card span, .checkout-plan-reference-detail > summary span, .checkout-success-decision-card span, .checkout-cancel-decision-card span, .checkout-success-decision-card em, .checkout-cancel-decision-card em) {
  color: var(--primary);
}

html[data-theme="dark"] .public-shell :is(.checkout-plan-radio-card small, .checkout-plan-choice-card small, .checkout-summary-grid p, .checkout-state-band p, .checkout-preparation-card p, .checkout-consent-row, .checkout-success-decision-panel p, .checkout-cancel-decision-panel p, .checkout-success-decision-card small, .checkout-cancel-decision-card small) {
  color: var(--text-soft);
}

@media (max-width: 1180px) {
  .checkout-start-hero,
  .checkout-return-hero,
  .checkout-choice-head,
  .checkout-state-band,
  .checkout-preparation-band {
    grid-template-columns: 1fr;
  }

  .checkout-choice-head > div:first-child {
    position: static;
  }

  .checkout-plan-radio-group,
  .checkout-plan-choice-grid,
  .checkout-success-decision-grid,
  .checkout-cancel-decision-grid,
  .checkout-preparation-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  }
}

@media (max-width: 760px) {
  .checkout-start-hero,
  .checkout-return-hero,
  .checkout-choice-band,
  .checkout-state-band,
  .checkout-success-decision-panel,
  .checkout-cancel-decision-panel {
    padding: var(--s-5);
  }

  .checkout-panel > .section-heading,
  .checkout-signup-inline-fields,
  .referral-code-form {
    grid-template-columns: 1fr;
  }

  .checkout-panel > .section-heading h2,
  .checkout-start-copy h1,
  .checkout-return-hero h1 {
    max-width: 100%;
  }

  .checkout-start-hero {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }

  .checkout-start-copy,
  .checkout-start-visual {
    min-width: 0;
    max-width: 100%;
  }

  .checkout-start-copy > p:not(.eyebrow) {
    max-width: 100%;
    font-size: 1rem;
    line-height: 1.55;
    overflow-wrap: break-word;
  }

  .checkout-start-copy h1,
  .checkout-return-hero h1 {
    font-size: clamp(1.78rem, 7vw, 2.1rem);
    overflow-wrap: break-word;
  }

  .checkout-start-visual,
  .checkout-return-visual {
    min-height: 280px;
  }
}

html[data-theme="dark"] body.public-shell {
  --bg: #0b1220;
  --bg-soft: #111827;
  --surface: #111827;
  --surface-strong: #172033;
  --surface-inverse: #020617;
  --text: #f8fafc;
  --text-soft: #d6e0ee;
  --text-muted: #cbd5e1;
  --border: #506886;
  --border-strong: #6b86ad;
  --primary: #93c5fd;
  --primary-hover: #bfdbfe;
  --focus: #fbbf24;
  color-scheme: dark;
  color: var(--text);
  background: linear-gradient(180deg, #0b1220 0%, #111827 100%);
}

html[data-theme="dark"] .public-shell :is(.public-header, .public-menu, .home-band, .public-section, .public-sector-picker, .pricing-card, .sector-card, .service-primary-next-step, .empresa-primary-next-step, .service-primary-next-links a, .empresa-vertical-proof-grid article, .sector-page-fast-decision-card, .sector-use-case-card, .sector-scene-card, .sector-example-card, .sector-specific-fit-grid article, .sector-personalization-grid article, .sector-visual-showcase, .sector-dashboard-preview div) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(h1, h2, h3, h4, strong, .brand span, .public-nav a, .public-menu-toggle) {
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(p, li, small, .text-muted, .service-primary-next-step p:not(.eyebrow), .empresa-primary-next-step p:not(.eyebrow), .empresa-vertical-proof-grid p, .sector-page-fast-decision-card small, .sector-scene-card p, .sector-example-card p, .sector-specific-fit-grid p, .sector-use-case-card p) {
  color: var(--text-soft);
}

html[data-theme="dark"] .public-shell :is(.service-step-strip span, .empresa-step-strip span) {
  border-color: var(--border);
  color: #dbeafe;
  background: var(--surface-strong);
}

html[data-theme="dark"] .public-shell :is(.service-primary-next-links a:hover, .service-primary-next-links a:focus-visible) {
  border-color: var(--primary);
  background: #172554;
}

html[data-theme="dark"] .public-shell :is(.btn-outline, .button-outline) {
  border-color: var(--primary);
  color: var(--primary);
}

html[data-theme="dark"] .public-shell :is(.btn, .button, button, input[type="submit"]) {
  border-color: #dbeafe;
  background: #dbeafe;
  color: #0b1220;
}

html[data-theme="dark"] .public-shell :is(.btn, .button, button, input[type="submit"]):hover,
html[data-theme="dark"] .public-shell :is(.btn, .button, button, input[type="submit"]):focus-visible {
  border-color: #bfdbfe;
  background: #bfdbfe;
  color: #0b1220;
}

html[data-theme="dark"] .public-shell :is(.btn-outline, .button-outline):hover,
html[data-theme="dark"] .public-shell :is(.btn-outline, .button-outline):focus-visible {
  background: #dbeafe;
  color: #0b1220;
}

/* Public header dark contrast 2026-09-29: navigation states remain readable on the dark header. */
html[data-theme="dark"] body.public-shell :is(.public-menu-group-title, .public-menu-link) {
  border-color: transparent;
  background: transparent;
  color: var(--text);
}

html[data-theme="dark"] body.public-shell :is(.public-menu-group-title, .public-menu-link):hover,
html[data-theme="dark"] body.public-shell :is(.public-menu-group-title, .public-menu-link):focus-visible,
html[data-theme="dark"] body.public-shell .public-menu-link.active,
html[data-theme="dark"] body.public-shell .public-menu-group-title[aria-expanded="true"] {
  border-color: var(--border-strong);
  background: #172554;
  color: var(--text);
}

html[data-theme="dark"] body.public-shell :is(.public-menu-group-icon, .public-menu-icon) {
  color: #bfdbfe;
  background: #172554;
}

html[data-theme="dark"] body.public-shell .public-menu-group-count {
  color: #ffffff;
  background: #0f766e;
}

html[data-theme="dark"] body.public-shell .public-locale-switch a:hover,
html[data-theme="dark"] body.public-shell .public-locale-switch a:focus-visible,
html[data-theme="dark"] body.public-shell .public-locale-switch a.is-active {
  color: #ffffff;
  background: #1d4ed8;
}

html[data-theme="dark"] body.public-shell :is(.eyebrow, .badge, .tag, .chip, .pill, .home-sector-card-kicker, .pricing-feature-more) {
  border-color: #506886;
  color: #dbeafe;
  background: #172554;
}

html[data-theme="dark"] body.public-shell :is(.checkout-start-summary strong, .checkout-step-strip strong, .checkout-step-list span) {
  color: #0b1220;
  background: #bfdbfe;
}

/* Public trade landing dark contrast 2026-08-25: keep gremio templates readable. */
html[data-theme="dark"] .public-shell .sector-landing-hero .sector-hero-grid {
  border-color: var(--border);
  background:
    linear-gradient(135deg, rgba(147, 197, 253, 0.12), transparent 42%),
    linear-gradient(145deg, #0b1220 0%, #111827 56%, #172033 100%);
  color: var(--text);
}

html[data-theme="dark"] .public-shell .sector-landing-hero .hero-copy :is(h1, p:not(.eyebrow), strong) {
  color: var(--text);
}

html[data-theme="dark"] .public-shell .sector-landing-hero .hero-copy > p:not(.eyebrow) {
  color: var(--text-soft);
}

html[data-theme="dark"] .public-shell :is(.sector-price-pill, .sector-hero-proof-chip, .sector-visual-showcase, .sector-dashboard-preview div) {
  border-color: var(--border);
  background: var(--surface-strong);
  color: var(--text);
}

html[data-theme="dark"] .public-shell .sector-price-pill :is(span, small),
html[data-theme="dark"] .public-shell .sector-dashboard-preview span,
html[data-theme="dark"] .public-shell .sector-hero-proof-chip small {
  color: var(--text-soft);
}

html[data-theme="dark"] .public-shell .sector-price-pill strong,
html[data-theme="dark"] .public-shell .sector-hero-proof-chip strong,
html[data-theme="dark"] .public-shell .sector-dashboard-preview strong {
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(.sector-specific-fit-grid article, .sector-personalization-grid article, .sector-page-fast-decision-card, .sector-use-case-card, .sector-scene-card, .sector-example-card) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(.sector-specific-fit-grid article > span, .sector-personalization-grid article > span, .sector-page-fast-decision-card span, .sector-page-fast-decision-card em, .sector-use-case-card small, .sector-scene-card small, .sector-example-card span) {
  color: var(--primary);
}

html[data-theme="dark"] .public-shell :is(.sector-page-fast-decision-card strong, .sector-use-case-card h3, .sector-scene-card strong, .sector-example-card h3, .sector-specific-fit-grid h3, .sector-personalization-grid h3) {
  color: var(--text);
}

html[data-theme="dark"] .public-shell :is(.sector-page-fast-decision-card small, .sector-use-case-card p, .sector-scene-card p, .sector-example-card p, .sector-specific-fit-grid p, .sector-personalization-grid li) {
  color: var(--text-soft);
}

@media (max-width: 1180px) {
  .sector-landing-hero .sector-hero-grid,
  .sector-visual-showcase {
    grid-template-columns: 1fr;
  }

  .sector-landing-hero .hero-copy h1 {
    max-width: 14ch;
  }
}

@media (max-width: 760px) {
  .sector-landing-hero {
    padding-block: var(--s-5);
  }

  .sector-landing-hero .sector-hero-grid {
    padding: var(--s-5);
    gap: var(--s-5);
  }

  .sector-landing-hero .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(1.85rem, 7.2vw, 2.25rem);
  }

  .sector-visual-showcase,
  .sector-page-fast-decision-card,
  .sector-use-case-card,
  .sector-scene-card,
  .sector-example-card,
  .sector-personalization-grid article {
    padding: var(--s-4);
  }

  .sector-visual-image,
  .sector-flow-visual-grid article,
  .sector-mini-photo {
    min-height: 220px;
  }
}

@media (max-width: 420px) {
  .sector-price-pill,
  .sector-hero-proof-chip {
    width: 100%;
  }

  .sector-visual-showcase {
    gap: var(--s-4);
  }
}

/* Public mobile width guard 2026-08-26: served trade landings must not create horizontal scroll. */
@media (max-width: 640px) {
  body.public-shell .container,
  body.public-shell :where(.public-container, .public-section, .home-band, .public-product-modules-band, .public-sector-picker, .sector-instant-band, .sector-catalog-primary-next-step, .pricing-section) {
    box-sizing: border-box;
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
    min-width: 0;
  }

  body.public-shell .sector-landing-hero .sector-hero-grid,
  body.public-shell .sector-landing-hero .hero-copy,
  body.public-shell .sector-page-cta,
  body.public-shell .sector-page-cta .hero-actions {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .sector-landing-hero .hero-copy > *,
  body.public-shell .sector-landing-hero .hero-actions,
  body.public-shell .sector-landing-hero .hero-actions > :is(a, button, .btn),
  body.public-shell .sector-page-cta .hero-actions > :is(a, button, .btn) {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  body.public-shell .sector-landing-hero .hero-copy h1 {
    font-size: clamp(1.7rem, 8vw, 2.35rem);
    overflow-wrap: break-word;
  }

  body.public-shell .sector-page-cta {
    display: grid;
  }

  body.public-shell :where(.sector-landing-hero .hero-actions, .sector-page-cta .hero-actions) {
    justify-content: stretch;
    justify-items: stretch;
  }
}

/* Public served form system 2026-09-10: public.css is authoritative for visible public forms. */
body.public-shell :where(.contact-form, .module-request-form, .checkout-choice-form, .referral-code-form) {
  gap: clamp(18px, 1.8vw, 28px);
  border-color: var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(24px, 2.6vw, 42px);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

body.public-shell :where(.contact-form-grid, .module-request-form, .checkout-choice-form, .checkout-signup-inline-fields, .compact-module-request-fields, .public-menu-trades-search, .sector-search-form, .home-sector-search) {
  gap: clamp(16px, 1.5vw, 24px);
  align-items: end;
}

body.public-shell :where(.contact-form label, .module-request-form label, .checkout-choice-form > label, .checkout-signup-inline-fields label, .referral-code-form label, .sector-search-form label, .home-sector-search label, .public-menu-trades-search label, .checkout-plan-radio-group legend) {
  gap: var(--s-2);
  color: var(--text);
  font-size: 0.96rem;
  font-weight: 850;
  line-height: 1.28;
}

body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 56px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 15px;
  color: var(--text);
  background: var(--surface);
  box-shadow: inset 0 1px 0 rgba(16, 24, 40, 0.03);
  font-size: 1rem;
  line-height: 1.45;
}

body.public-shell :where(select) {
  padding-right: 38px;
  text-overflow: ellipsis;
}

body.public-shell :where(textarea) {
  min-height: 150px;
  resize: vertical;
}

body.public-shell :where(input::placeholder, textarea::placeholder) {
  color: #667085;
  opacity: 1;
}

body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):hover {
  border-color: var(--border-strong);
}

body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus-visible {
  outline: 3px solid rgba(21, 94, 239, 0.28);
  outline-offset: 3px;
  border-color: var(--primary);
  box-shadow: 0 0 0 1px rgba(21, 94, 239, 0.16), var(--shadow-xs);
}

body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea)[aria-invalid="true"] {
  border-color: var(--error);
  box-shadow: 0 0 0 1px rgba(180, 35, 24, 0.18);
}

body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):disabled {
  color: var(--text-muted);
  border-color: var(--border);
  background: var(--surface-strong);
  cursor: not-allowed;
}

body.public-shell :where(.inline-check, .checkout-consent-row) {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: var(--s-3);
  align-items: start;
  color: var(--text-soft);
  font-size: 0.96rem;
  font-weight: 650;
  line-height: 1.5;
}

body.public-shell :where(.inline-check input[type="checkbox"], .checkout-consent-row input[type="checkbox"]) {
  width: 20px;
  min-height: 20px;
  margin-top: 2px;
  accent-color: var(--primary);
}

body.public-shell :where(.contact-form > button[type="submit"], .module-request-form > button[type="submit"], .checkout-choice-form button[type="submit"], .referral-code-form button) {
  min-height: 56px;
  padding-inline: clamp(18px, 2vw, 28px);
  font-size: 1rem;
}

html[data-theme="dark"] body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  color: var(--text);
  border-color: var(--border-strong);
  background: #0f172a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

html[data-theme="dark"] body.public-shell :where(input::placeholder, textarea::placeholder) {
  color: #cbd5e1;
}

html[data-theme="dark"] body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus-visible {
  outline-color: rgba(251, 191, 36, 0.72);
  border-color: #fbbf24;
  box-shadow: 0 0 0 1px rgba(251, 191, 36, 0.32);
}

/* Public mobile input ergonomics: forms must be easy to complete from a phone. */
/* Public mobile action ergonomics: public CTAs must be thumb-friendly and uncluttered. */
@media (max-width: 760px) {
  body.public-shell :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
    min-height: 2.9rem;
    width: 100%;
    border-radius: 0.78rem;
    font-size: 16px;
    line-height: 1.35;
  }

  body.public-shell textarea {
    min-height: 7.2rem;
    resize: vertical;
  }

  body.public-shell :where(input[type="checkbox"], input[type="radio"]) {
    width: 1.22rem;
    min-width: 1.22rem;
    height: 1.22rem;
    min-height: 1.22rem;
  }

  body.public-shell :where(.hero-actions, .public-actions, .plan-primary-actions, .form-actions) {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--s-3);
    align-items: stretch;
    width: 100%;
  }

  body.public-shell :where(.btn, button, a[role="button"], .hero-actions a, .public-actions a, .plan-primary-actions a) {
    min-width: 0;
    min-height: 2.95rem;
    width: 100%;
    justify-content: center;
    border-radius: 0.84rem;
    text-align: center;
    overflow-wrap: break-word;
    line-height: 1.15;
    white-space: normal;
    touch-action: manipulation;
  }

  body.public-shell button[type="submit"] {
    font-weight: 950;
  }
}

/* Public listing kit visual assets 2026-09-10: served by public.css. */
.public-shell .kit-hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(20rem, 0.58fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--section-padding);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.public-shell .kit-hero-panel > div {
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.public-shell .kit-hero-panel h1 {
  max-width: 13ch;
  font-size: var(--title-hero);
}

.public-shell .kit-hero-panel p:not(.eyebrow) {
  max-width: 54ch;
  color: var(--text-soft);
  font-size: clamp(1rem, 1.18vw, 1.18rem);
  line-height: 1.6;
}

.public-shell .kit-hero-visual,
.public-shell .kit-asset-gallery a {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.public-shell .kit-hero-visual {
  position: relative;
  margin: 0;
  aspect-ratio: 16 / 11;
}

.public-shell .kit-hero-visual img,
.public-shell .kit-asset-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.public-shell .kit-hero-visual figcaption,
.public-shell .kit-asset-gallery span {
  position: absolute;
  left: var(--s-3);
  bottom: var(--s-3);
  max-width: calc(100% - 24px);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 11px;
  color: var(--text);
  background: rgba(255, 255, 255, 0.94);
  font-size: 0.88rem;
  font-weight: 850;
  box-shadow: var(--shadow-sm);
}

.public-shell .kit-asset-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
  margin: var(--s-4) 0;
}

.public-shell .kit-asset-gallery a {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  color: inherit;
}

.public-shell .kit-asset-gallery a:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

html[data-theme="dark"] .public-shell .kit-hero-panel,
html[data-theme="dark"] .public-shell .kit-hero-visual,
html[data-theme="dark"] .public-shell .kit-asset-gallery a {
  border-color: var(--border);
  background: var(--surface);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.32);
}

html[data-theme="dark"] .public-shell .kit-hero-panel h1 {
  color: var(--text);
}

html[data-theme="dark"] .public-shell .kit-hero-panel p:not(.eyebrow) {
  color: var(--text-soft);
}

@media (max-width: 760px) {
  .public-shell .public-info-grid-two,
  .public-shell .public-info-grid-three,
  .public-shell .english-hero-grid,
  .public-shell .kit-hero-panel,
  .public-shell .kit-asset-gallery {
    grid-template-columns: 1fr;
  }

  .public-shell .public-info-card .definition-list {
    grid-template-columns: 1fr;
  }

  body.public-shell :where(.contact-form, .module-request-form, .checkout-choice-form, .referral-code-form) {
    padding: var(--s-5);
  }

  body.public-shell :where(.contact-form-grid, .module-request-form, .checkout-choice-form, .checkout-signup-inline-fields, .compact-module-request-fields, .public-menu-trades-search, .sector-search-form, .home-sector-search) {
    grid-template-columns: 1fr;
  }

  body.public-shell :where(.contact-form > button[type="submit"], .module-request-form > button[type="submit"], .checkout-choice-form button[type="submit"], .referral-code-form button) {
    width: 100%;
  }
}


/* Public professionals served directory 2026-09-10: professionals.php is loaded through public.css. */
/* Public professional directory MVP */
.professionals-hero-grid {
  align-items: stretch;
}

.professionals-map-card {
  min-height: 360px;
  border: 1px solid rgba(37, 99, 235, .22);
  border-radius: 28px;
  background: #0f172a;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .12);
  padding: 0;
  display: block;
  overflow: hidden;
  position: relative;
}

.professionals-map-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background:
    linear-gradient(180deg, rgba(15, 23, 42, 0.12), rgba(15, 23, 42, 0.42)),
    radial-gradient(circle at 14% 15%, rgba(255, 255, 255, 0.2), transparent 18rem);
  pointer-events: none;
}

.professionals-map-card::after {
  content: none;
}

.professionals-map-photo {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
}

.professionals-map-overlay {
  position: absolute;
  inset: auto 1.15rem 1.15rem 1.15rem;
  z-index: 2;
  display: grid;
  gap: 0.9rem;
  max-width: min(92%, 28rem);
  border: 1px solid rgba(191, 219, 254, 0.74);
  border-radius: 1.25rem;
  padding: clamp(1rem, 2.2vw, 1.45rem);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.2);
}

.professionals-map-card span,
.professionals-map-card strong {
  position: relative;
  z-index: 2;
}

.professionals-map-card span {
  color: #1d4ed8;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .78rem;
}

.professionals-map-card strong {
  color: #0f172a;
  font-size: clamp(2rem, 5vw, 4.2rem);
  line-height: .94;
  max-width: 9ch;
}

.professionals-map-lines {
  position: relative;
  z-index: 1;
  display: grid;
  gap: .7rem;
}

.professionals-map-lines i {
  display: block;
  width: min(100%, 420px);
  height: 14px;
  border-radius: 999px;
  background: linear-gradient(90deg, #1d4ed8, rgba(96, 165, 250, .18));
}

.professionals-map-lines i:nth-child(2) {
  width: 72%;
}

.professionals-map-lines i:nth-child(3) {
  width: 48%;
}

.professionals-audience-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.75rem, 2vw, 1rem);
  margin: 1rem auto;
  max-width: var(--container);
}

.professionals-audience-switch a {
  min-width: 0;
  min-height: 5rem;
  display: grid;
  align-content: center;
  gap: 0.25rem;
  padding: 1rem 1.1rem;
  border: 1px solid #bfdbfe;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.92);
  color: #0f172a;
  text-decoration: none;
  box-shadow: 0 16px 45px rgba(37, 99, 235, 0.08);
}

.professionals-audience-switch a:hover,
.professionals-audience-switch a:focus-visible {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
  transform: translateY(-1px);
}

.professionals-audience-switch span,
.professionals-audience-switch em {
  color: #1d4ed8;
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.professionals-audience-switch strong {
  color: #0f172a;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.2;
  overflow-wrap: break-word;
}

.professionals-search-band .section-heading,
.professionals-flow .section-heading {
  max-width: none;
  width: 100%;
}

/* Professionals search clarity 2026-07-02: the public directory starts with a short action, not an explanatory block. */
.professionals-search-heading {
  display: grid;
  gap: 0.45rem;
}

.professionals-search-heading h2 {
  max-width: 100%;
}

.professionals-search-heading p {
  max-width: 46rem;
  margin: 0;
}


/* Public professional directory clean layout guard: keep the search form, quick searches and result cards readable without duplicated CSS. */
.professionals-step-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 1rem 0 0;
}

.professionals-step-strip span {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.75rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid rgba(37, 99, 235, 0.18);
  border-radius: 999px;
  background: #ffffff;
  color: #1e3a8a;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(37, 99, 235, 0.07);
}

.professionals-step-strip strong {
  display: inline-grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 999px;
  background: #dbeafe;
  color: #1d4ed8;
}

.professionals-search-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}

.professionals-search-form label {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  color: #334155;
  font-weight: 800;
}

.professionals-search-form label > span {
  color: #0f172a;
  font-size: 0.88rem;
}

.professionals-search-form :where(input, select) {
  width: 100%;
  min-height: 52px;
  border: 1px solid rgba(37, 99, 235, 0.25);
  border-radius: 16px;
  background: #ffffff;
  color: #0f172a;
  padding: 0.85rem 1rem;
  font: inherit;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
}

.professionals-search-form :where(input, select):focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.32);
  outline-offset: 2px;
  border-color: #1d4ed8;
}

.professionals-search-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.professionals-empty-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.professionals-empty-actions .btn {
  min-height: 2.85rem;
}

.professionals-quick-searches {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr);
  gap: 0.85rem;
  align-items: center;
  margin-top: 1rem;
  padding: 0.95rem;
  border: 1px solid rgba(147, 197, 253, 0.72);
  border-radius: 1.15rem;
  background: linear-gradient(135deg, rgba(239, 246, 255, 0.94), rgba(255, 255, 255, 0.98));
}

.professionals-quick-searches strong {
  display: block;
  color: #07142f;
  font-size: 1rem;
}

.professionals-quick-searches p {
  margin: 0.2rem 0 0;
  color: #385777;
  font-size: 0.92rem;
  line-height: 1.4;
}

.professionals-quick-searches nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
}

.professionals-quick-searches a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  min-width: 0;
  padding: 0.55rem 0.8rem;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #ffffff;
  color: #1d4ed8;
  font-size: 0.9rem;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(37, 99, 235, 0.08);
}

.professionals-quick-searches a:hover,
.professionals-quick-searches a:focus-visible {
  color: #ffffff;
  background: #1d4ed8;
  border-color: #1d4ed8;
}

.professionals-customer-type-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin-top: 0.8rem;
  padding: 0.75rem;
  border: 1px solid rgba(147, 197, 253, 0.6);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
}

.professionals-customer-type-chips strong {
  margin-right: 0.2rem;
  color: #0f172a;
  font-size: 0.88rem;
}

.professionals-customer-type-chips a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.45rem;
  padding: 0.5rem 0.78rem;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  color: #1d4ed8;
  background: #ffffff;
  font-weight: 900;
  text-decoration: none;
}

.professionals-customer-type-chips a:hover,
.professionals-customer-type-chips a:focus-visible,
.professionals-customer-type-chips a[aria-current="true"] {
  color: #ffffff;
  background: #1d4ed8;
  border-color: #1d4ed8;
}

.professionals-result-grid {
  margin-top: 1.5rem;
}

.professionals-result-card,
.professionals-privacy-card {
  min-width: 0;
  overflow-wrap: break-word;
}

.professionals-summary-list {
  display: grid;
  gap: 0.65rem;
  margin: 0;
}

.professionals-summary-list div {
  display: grid;
  grid-template-columns: minmax(7rem, 0.35fr) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.professionals-summary-list dt {
  color: #64748b;
  font-weight: 800;
}

.professionals-summary-list dd {
  margin: 0;
  color: #0f172a;
  font-weight: 900;
}

@media (max-width: 900px) {
  .professionals-search-form,
  .professionals-step-strip,
  .professionals-quick-searches {
    grid-template-columns: 1fr;
  }

  .professionals-step-strip span,
  .professionals-quick-searches nav {
    justify-content: flex-start;
  }

  .professionals-search-actions,
  .professionals-empty-actions,
  .professionals-quick-searches nav,
  .professionals-customer-type-chips {
    display: grid;
    grid-template-columns: 1fr;
  }

  .professionals-search-actions :where(.btn, button),
  .professionals-empty-actions .btn,
  .professionals-quick-searches a,
  .professionals-customer-type-chips a {
    width: 100%;
    min-height: 2.95rem;
  }

  .professionals-summary-list div {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}

html[data-theme="dark"] .public-shell :where(.professionals-step-strip span, .professionals-quick-searches, .professionals-customer-type-chips, .professionals-result-card, .professionals-privacy-card) {
  background: linear-gradient(180deg, #111d32 0%, #0f172a 100%);
  border-color: #506886;
}

html[data-theme="dark"] .public-shell .professionals-audience-switch a {
  background: rgba(15, 23, 42, 0.94);
  border-color: rgba(147, 197, 253, 0.38);
  color: #e5eefc;
  box-shadow: 0 18px 44px rgba(2, 6, 23, 0.34);
}

html[data-theme="dark"] .public-shell .professionals-audience-switch a:hover,
html[data-theme="dark"] .public-shell .professionals-audience-switch a:focus-visible {
  border-color: #93c5fd;
  box-shadow: 0 0 0 3px rgba(147, 197, 253, 0.28);
}

html[data-theme="dark"] .public-shell .professionals-audience-switch span,
html[data-theme="dark"] .public-shell .professionals-audience-switch em {
  color: #bfdbfe;
}

html[data-theme="dark"] .public-shell .professionals-audience-switch strong {
  color: #f8fafc;
}

html[data-theme="dark"] .public-shell :where(.professionals-search-form label > span, .professionals-quick-searches strong, .professionals-customer-type-chips strong, .professionals-summary-list dd) {
  color: #f8fafc;
}

html[data-theme="dark"] .public-shell :where(.professionals-search-form label, .professionals-quick-searches p, .professionals-summary-list dt) {
  color: #cbd5e1;
}

html[data-theme="dark"] .public-shell .professionals-search-form :where(input, select) {
  background: #0f172a;
  color: #f8fafc;
  border-color: #506886;
}


/* Public professional lead handoff guard: keep professional search context clear before the contact form. */
.contact-lead-context {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(250px, 0.75fr);
  gap: 1.25rem;
  align-items: center;
  min-width: 0;
  border-color: rgba(37, 99, 235, 0.22);
  background:
    radial-gradient(circle at 92% 14%, rgba(96, 165, 250, 0.22), transparent 28%),
    linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
  box-shadow: 0 18px 42px rgba(30, 64, 175, 0.08);
}

.contact-lead-context h2 {
  max-width: none;
  margin-bottom: 0.35rem;
}

.contact-lead-context p {
  max-width: 64ch;
}

.contact-lead-context-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
  min-width: 0;
}

.contact-lead-context-tags span {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  min-height: 34px;
  border: 1px solid rgba(37, 99, 235, 0.22);
  border-radius: 999px;
  background: #ffffff;
  color: #1e3a8a;
  font-weight: 900;
  padding: 0.35rem 0.75rem;
  overflow-wrap: break-word;
  box-shadow: 0 10px 22px rgba(37, 99, 235, 0.08);
}

@media (max-width: 760px) {
  .contact-lead-context {
    grid-template-columns: 1fr;
    padding: 1rem;
  }

  .contact-lead-context-tags {
    display: grid;
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .contact-lead-context-tags span {
    width: 100%;
  }
}

html[data-theme="dark"] .public-shell .contact-lead-context {
  border-color: #506886;
  background:
    radial-gradient(circle at 92% 14%, rgba(59, 130, 246, 0.24), transparent 28%),
    linear-gradient(135deg, #0f172a 0%, #111c33 100%);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.34);
}

html[data-theme="dark"] .public-shell .contact-lead-context h2 {
  color: #f8fafc;
}

html[data-theme="dark"] .public-shell .contact-lead-context p {
  color: #cbd5e1;
}

html[data-theme="dark"] .public-shell .contact-lead-context-tags span {
  border-color: rgba(96, 165, 250, 0.32);
  background: rgba(15, 23, 42, 0.86);
  color: #dbeafe;
}

/* Public professionals search decision panel 2026-08-04: service requests must start from a compact usable search. */
.public-shell .professionals-search-band {
  gap: clamp(1rem, 2vw, 1.5rem);
}

.public-shell :where(.professionals-search-form) {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(10rem, 1fr));
  gap: 0.68rem;
  align-items: end;
  padding: 0.82rem;
  border: 1px solid rgba(147, 197, 253, 0.62);
  border-radius: 1.2rem;
  background:
    radial-gradient(circle at 8% 16%, rgba(37, 99, 235, 0.08), transparent 12rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.9));
  box-shadow: 0 18px 46px rgba(15, 23, 42, 0.07);
}

.public-shell :where(.professionals-search-form) label {
  min-width: 0;
  gap: 0.32rem;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.public-shell :where(.professionals-search-form) :where(input, select) {
  min-height: 3.05rem;
  border-color: rgba(147, 197, 253, 0.82);
  border-radius: 0.9rem;
  background: #ffffff;
  color: #071327;
  font-size: 1rem;
}

.public-shell .professionals-search-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.6rem;
  align-items: center;
}

.public-shell .professionals-search-actions :where(.btn, .btn-outline, button, a) {
  min-height: 3.05rem;
  border-radius: 999px;
  justify-content: center;
  font-weight: 900;
}

.public-shell .professionals-quick-searches,
.public-shell .professionals-customer-type-chips {
  border: 1px solid rgba(147, 197, 253, 0.54);
  border-radius: 1.15rem;
  background: #f8fbff;
  box-shadow: 0 14px 36px rgba(15, 23, 42, 0.055);
}

.public-shell .professionals-quick-searches nav,
.public-shell .professionals-customer-type-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.48rem;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.public-shell .professionals-quick-searches nav::-webkit-scrollbar,
.public-shell .professionals-customer-type-chips::-webkit-scrollbar {
  display: none;
}

.public-shell .professionals-quick-searches a,
.public-shell .professionals-customer-type-chips a {
  flex: 0 0 auto;
  min-height: 2.55rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.76rem;
  border-radius: 999px;
  touch-action: manipulation;
}

.public-shell .professionals-result-card,
.public-shell .professionals-privacy-card {
  border-radius: 1.25rem;
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.07);
}

.public-shell .professionals-summary-list div {
  border-radius: 0.95rem;
  background: #eff6ff;
  border-color: rgba(147, 197, 253, 0.62);
}

@media (max-width: 980px) {
  .public-shell :where(.professionals-search-form) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .public-shell :where(.professionals-search-form),
  .public-shell .professionals-search-actions {
    grid-template-columns: 1fr;
  }

  .public-shell .professionals-search-actions :where(.btn, .btn-outline, button, a) {
    width: 100%;
  }
}

html[data-theme="dark"] .public-shell :where(.professionals-search-form),
html[data-theme="dark"] .public-shell .professionals-quick-searches,
html[data-theme="dark"] .public-shell .professionals-customer-type-chips,
html[data-theme="dark"] .public-shell .professionals-result-card,
html[data-theme="dark"] .public-shell .professionals-privacy-card {
  background: linear-gradient(135deg, #0f172a, #111827);
  border-color: rgba(96, 165, 250, 0.36);
}

html[data-theme="dark"] .public-shell .professionals-summary-list div {
  background: rgba(30, 58, 138, 0.26);
  border-color: rgba(96, 165, 250, 0.36);
}

/* Public professionals mobile search guard: keep filters, quick searches and results usable on phones. */
@media (max-width: 760px) {
  .public-shell .professionals-hero-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .public-shell .professionals-map-card {
    min-height: 13rem;
    border-radius: 1.35rem;
    padding: 1.15rem;
  }

  .public-shell .professionals-map-card strong {
    max-width: 13ch;
    font-size: clamp(1.8rem, 13vw, 2.65rem);
  }

  .public-shell .professionals-search-band {
    overflow: hidden;
  }

  .public-shell .professionals-step-strip,
  .public-shell .professionals-audience-switch,
  .public-shell .professionals-search-form,
  .public-shell .professionals-result-grid,
  .public-shell .professionals-flow .grid-three {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
  }

  .public-shell .professionals-step-strip span {
    justify-content: flex-start;
    width: 100%;
    border-radius: 1rem;
    text-align: left;
  }

  .public-shell .professionals-audience-switch a {
    width: 100%;
    min-height: 4.75rem;
  }

  .public-shell .professionals-search-form label,
  .public-shell .professionals-search-actions,
  .public-shell .professionals-result-card,
  .public-shell .professionals-privacy-card,
  .public-shell .professionals-quick-searches {
    min-width: 0;
    width: 100%;
  }

  .public-shell .professionals-search-form :where(input, select, button, .btn),
  .public-shell .professionals-search-actions :where(a, button, .btn),
  .public-shell .professionals-quick-searches a,
  .public-shell .professionals-result-card .btn {
    width: 100%;
    min-height: 2.95rem;
    justify-content: center;
    text-align: center;
  }

  .public-shell .professionals-search-form :where(input, select, button, .btn):focus-visible,
  .public-shell .professionals-search-actions :where(a, button, .btn):focus-visible,
  .public-shell .professionals-quick-searches a:focus-visible,
  .public-shell .professionals-result-card .btn:focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.72);
    outline-offset: 3px;
    box-shadow: 0 0 0 6px rgba(191, 219, 254, 0.72);
    border-color: #2563eb;
  }

  .public-shell .professionals-search-actions,
  .public-shell .professionals-quick-searches nav {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }

  .public-shell .professionals-quick-searches {
    padding: 0.85rem;
    border-radius: 1rem;
  }

  .public-shell .professionals-summary-list div {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }

  .public-shell .professionals-summary-list dd {
    text-align: left;
  }

  .public-shell :where(.professionals-result-card, .professionals-privacy-card, .professionals-quick-searches, .professionals-summary-list) :where(a, p, span, strong, dt, dd) {
    overflow-wrap: break-word;
  }
}

html[data-theme="dark"] .public-shell .professionals-quick-searches,
html[data-theme="dark"] .public-shell .professionals-result-card,
html[data-theme="dark"] .public-shell .professionals-privacy-card {
  background: linear-gradient(180deg, #111d32 0%, #0f172a 100%);
  border-color: #506886;
}

html[data-theme="dark"] .public-shell .professionals-search-form span,
html[data-theme="dark"] .public-shell .professionals-quick-searches strong,
html[data-theme="dark"] .public-shell .professionals-summary-list dd {
  color: #f8fafc;
}

html[data-theme="dark"] .public-shell .professionals-search-form label,
html[data-theme="dark"] .public-shell .professionals-quick-searches p,
html[data-theme="dark"] .public-shell .professionals-summary-list dt {
  color: #cbd5e1;
}

html[data-theme="dark"] .public-shell .professionals-search-form :where(input, select, button, .btn):focus-visible,
html[data-theme="dark"] .public-shell .professionals-search-actions :where(a, button, .btn):focus-visible,
html[data-theme="dark"] .public-shell .professionals-quick-searches a:focus-visible,
html[data-theme="dark"] .public-shell .professionals-result-card .btn:focus-visible {
  outline-color: rgba(147, 197, 253, 0.9);
  box-shadow: 0 0 0 6px rgba(30, 64, 175, 0.58);
  border-color: #60a5fa;
}

/* Public professionals trust strip guard: contact requests must explain cost, privacy and context before the form. */
.public-shell .professionals-trust-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  margin: clamp(0.9rem, 2vw, 1.15rem) 0;
}

.public-shell .professionals-trust-strip article {
  position: relative;
  display: grid;
  grid-template-columns: 2.15rem minmax(0, 1fr);
  gap: 0.3rem 0.75rem;
  align-items: start;
  min-width: 0;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(37, 99, 235, 0.18);
  border-radius: 1.1rem;
  background: linear-gradient(145deg, #ffffff 0%, #f7fbff 100%);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

.public-shell .professionals-trust-strip article::before {
  content: "";
  grid-row: 1 / span 2;
  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 50%, #ffffff 0 22%, transparent 24%),
    linear-gradient(135deg, #bfdbfe 0%, #2563eb 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72), 0 10px 22px rgba(37, 99, 235, 0.16);
}

.public-shell .professionals-trust-strip strong {
  min-width: 0;
  color: var(--mantivo-text-strong, #0f172a);
  font-size: 0.98rem;
  line-height: 1.2;
}

.public-shell .professionals-trust-strip span {
  min-width: 0;
  color: var(--mantivo-muted, #475569);
  font-size: 0.92rem;
  line-height: 1.42;
}

@media (max-width: 760px) {
  .public-shell .professionals-trust-strip {
    grid-template-columns: 1fr;
  }

  .public-shell .professionals-trust-strip article {
    padding: 1rem;
  }
}

html[data-theme="dark"] .public-shell .professionals-trust-strip article {
  border-color: rgba(96, 165, 250, 0.32);
  background: linear-gradient(145deg, #0f172a 0%, #111c33 100%);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.34);
}

html[data-theme="dark"] .public-shell .professionals-trust-strip article::before {
  background:
    radial-gradient(circle at 50% 50%, #0f172a 0 22%, transparent 24%),
    linear-gradient(135deg, #38bdf8 0%, #1d4ed8 100%);
  box-shadow: inset 0 0 0 1px rgba(219, 234, 254, 0.42), 0 12px 26px rgba(37, 99, 235, 0.28);
}

html[data-theme="dark"] .public-shell .professionals-trust-strip strong {
  color: #f8fafc;
}

html[data-theme="dark"] .public-shell .professionals-trust-strip span {
  color: #dbeafe;
}

/* Public professionals search clarity final 2026-08-07: search must feel like a direct decision tool. */
.public-shell :where(.professionals-search-form) {
  gap: clamp(0.65rem, 1vw, 0.95rem);
  border-color: rgba(147, 197, 253, 0.58);
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.07);
}

.public-shell :where(.professionals-search-form) :where(label, .form-field, .field-group) {
  display: grid;
  gap: 0.3rem;
}

.public-shell :where(.professionals-search-form) :where(input, select, button, .btn) {
  min-height: 2.75rem;
}

.public-shell .professionals-search-actions {
  justify-content: flex-start;
  gap: 0.58rem;
}

.public-shell :where(.professionals-quick-searches, .professionals-customer-type-chips) {
  scroll-snap-type: x proximity;
  padding-bottom: 0.18rem;
}

.public-shell :where(.professionals-quick-searches, .professionals-customer-type-chips) :where(a, button, label) {
  min-height: 2.75rem;
  scroll-snap-align: start;
  border-color: #aac7ff;
  background: #ffffff;
  color: #174ea6;
}

.public-shell .professionals-result-card {
  border-left: 3px solid rgba(37, 99, 235, 0.62);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.07);
}

.public-shell .professionals-summary-list div {
  min-height: 2.75rem;
  align-content: center;
}

@media (max-width: 640px) {
  .public-shell .professionals-search-actions :where(.btn, button, a) {
    width: 100%;
  }
}

html[data-theme="dark"] .public-shell :where(.professionals-search-form) {
  border-color: rgba(96, 165, 250, 0.36);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.28);
}

html[data-theme="dark"] .public-shell :where(.professionals-quick-searches, .professionals-customer-type-chips) :where(a, button, label) {
  border-color: rgba(147, 197, 253, 0.42);
  background: #111827;
  color: #dbeafe;
}


/* Public contact served mobile conversion 2026-09-10: contacto.php is loaded through public.css. */
/* Public contact mobile conversion guard: keep contact, demo and professional-search requests easy on phones. */
@media (max-width: 760px) {
  .public-shell :where(.contact-primary-next-step, .contact-commercial-form, .contact-lead-context) {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .public-shell :where(.contact-primary-next-step, .contact-commercial-form, .contact-lead-context, .contact-success-actions) :where(a, button, .btn) {
    width: 100%;
    min-height: 2.95rem;
    justify-content: center;
    text-align: center;
  }

  .public-shell :where(.contact-primary-next-step, .contact-commercial-form, .contact-lead-context, .contact-success-actions) :where(a, button, .btn, input, select, textarea):focus-visible {
    outline: 3px solid rgba(37, 99, 235, 0.72);
    outline-offset: 3px;
    box-shadow: 0 0 0 6px rgba(191, 219, 254, 0.72);
    border-color: #2563eb;
  }

  .public-shell .contact-commercial-form :where(label, input, select, textarea) {
    min-width: 0;
    width: 100%;
  }

  .public-shell .contact-commercial-form :where(input, select, textarea) {
    font-size: 16px;
    min-height: 2.95rem;
  }

  .public-shell .contact-commercial-form textarea {
    min-height: 8.5rem;
  }

  .public-shell .contact-commercial-form :where(.form-actions, .contact-success-actions) {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.6rem;
    width: 100%;
  }

  .public-shell .contact-commercial-form :where(.checkbox-row, .privacy-consent, label:has(input[type="checkbox"])) {
    align-items: flex-start;
    gap: 0.7rem;
    line-height: 1.45;
    overflow-wrap: break-word;
  }

  .public-shell .contact-commercial-form input[type="checkbox"] {
    width: 1.35rem;
    height: 1.35rem;
    min-width: 1.35rem;
    margin-top: 0.12rem;
  }

  .public-shell .contact-lead-context-tags {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .public-shell :where(.contact-primary-next-step, .contact-commercial-form, .contact-lead-context) :where(p, span, strong, small, label, a) {
    overflow-wrap: break-word;
  }
}

html[data-theme="dark"] .public-shell :where(.contact-primary-next-step, .contact-commercial-form, .contact-lead-context) {
  border-color: #506886;
}

html[data-theme="dark"] .public-shell :where(.contact-primary-next-step, .contact-commercial-form, .contact-lead-context) :where(p, small, span, label) {
  color: #cbd5e1;
}

html[data-theme="dark"] .public-shell :where(.contact-primary-next-step, .contact-commercial-form, .contact-lead-context, .contact-success-actions) :where(a, button, .btn, input, select, textarea):focus-visible {
  outline-color: rgba(147, 197, 253, 0.9);
  box-shadow: 0 0 0 6px rgba(30, 64, 175, 0.58);
  border-color: #60a5fa;
}

/* Public contact decision form final 2026-08-07: contact should feel like a clear next step. */
.public-shell .contact-commercial-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(0.72rem, 1.1vw, 1rem);
  border-color: rgba(147, 197, 253, 0.58);
  box-shadow: 0 18px 44px rgba(15, 23, 42, 0.07);
}

.public-shell .contact-commercial-form :where(label, .field-group, .form-field) {
  display: grid;
  gap: 0.32rem;
}

.public-shell .contact-commercial-form :where(input, select, textarea) {
  min-height: 2.85rem;
}

.public-shell .contact-commercial-form :where(input[type="checkbox"]) {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  min-height: 1.25rem;
}

.public-shell .contact-commercial-form :where(.gdpr-consent, .consent-row, label:has(input[type="checkbox"])) {
  align-items: start;
  padding: 0.72rem;
  border: 1px solid #cfe0ff;
  border-radius: 0.9rem;
  background: #f8fbff;
}

.public-shell .contact-success-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  gap: 0.62rem;
}

.public-shell .contact-success-actions :where(a, button, .btn) {
  width: 100%;
  min-height: 2.85rem;
  justify-content: center;
}

html[data-theme="dark"] .public-shell .contact-commercial-form {
  border-color: rgba(96, 165, 250, 0.36);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.28);
}

html[data-theme="dark"] .public-shell .contact-commercial-form :where(.gdpr-consent, .consent-row, label:has(input[type="checkbox"])) {
  border-color: rgba(147, 197, 253, 0.34);
  background: rgba(15, 23, 42, 0.78);
}

/* Public actionable empty state polish 2026-09-10: public empty states are served by public.css. */
.public-shell :where(.public-empty-state, .professionals-empty-state, .sector-empty-state) {
  border: 1px solid rgba(191, 219, 254, 0.9);
  border-radius: 1.15rem;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 55%, #eef6ff 100%);
  box-shadow: 0 18px 46px rgba(30, 64, 175, 0.08);
  padding: clamp(1rem, 3vw, 1.35rem);
  color: #0f172a;
}

.public-shell :where(.public-empty-state, .professionals-empty-state, .sector-empty-state) :where(h2, h3, h4, strong) {
  color: #0b1220;
}

.public-shell :where(.public-empty-state, .professionals-empty-state, .sector-empty-state) :where(p, small, span) {
  color: #475569;
  line-height: 1.5;
}

.public-shell :where(.empty-actions, .public-empty-actions, .professionals-empty-actions) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.85rem;
}

.public-shell :where(.empty-actions, .public-empty-actions, .professionals-empty-actions) :where(a, button, .btn) {
  min-width: 0;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  overflow-wrap: break-word;
  text-align: center;
  touch-action: manipulation;
  white-space: normal;
}

.public-shell :where(.empty-actions, .public-empty-actions, .professionals-empty-actions) :where(a, button, .btn):focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.72);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(191, 219, 254, 0.72);
}

@media (max-width: 760px) {
  .public-shell :where(.empty-actions, .public-empty-actions, .professionals-empty-actions) {
    display: grid;
    grid-template-columns: 1fr;
  }

  .public-shell :where(.empty-actions, .public-empty-actions, .professionals-empty-actions) :where(a, button, .btn) {
    min-width: 0;
    width: 100%;
  }
}

html[data-theme="dark"] .public-shell :where(.public-empty-state, .professionals-empty-state, .sector-empty-state) {
  border-color: rgba(59, 130, 246, 0.42);
  background: linear-gradient(135deg, #0f172a 0%, #111d32 100%);
  color: #e5eefb;
}

html[data-theme="dark"] .public-shell :where(.public-empty-state, .professionals-empty-state, .sector-empty-state) :where(h2, h3, h4, strong) {
  color: #f8fafc;
}

html[data-theme="dark"] .public-shell :where(.public-empty-state, .professionals-empty-state, .sector-empty-state) :where(p, small, span) {
  color: #cbd5e1;
}

html[data-theme="dark"] .public-shell :where(.empty-actions, .public-empty-actions, .professionals-empty-actions) :where(a, button, .btn):focus-visible {
  outline-color: rgba(147, 197, 253, 0.88);
  box-shadow: 0 0 0 6px rgba(30, 64, 175, 0.58);
}

/* Public sector catalog served contract 2026-09-10: gremios.php is styled by public.css. */
/* Public sectors first action polish 2026-08-07: search before explanatory depth. */
/* Public sector catalog scanability 2026-08-04: radical design continuity for searchable trades. */
/* Public sector catalog group shortcuts: many trades need practical filters before the grid. */
/* Sector catalog visual cards: the public gremios list must sell the trade, not look like an admin catalog. */
/* Sector catalog concise cards: avoid dense admin-like module summaries. */
.public-shell .sectors-hero-section {
  padding-block: clamp(24px, 3vw, 44px);
}

.public-shell .sectors-hero-section .hero-home {
  width: min(100%, 1760px);
  min-height: 0;
  padding: clamp(24px, 3.2vw, 48px);
  gap: clamp(28px, 4vw, 72px);
  align-items: center;
}

.public-shell .sectors-hero-section .hero-copy {
  gap: clamp(12px, 1.6vw, 22px);
}

.public-shell .sectors-hero-section .hero-copy h1 {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(2.45rem, 4vw, 4.4rem);
  line-height: 1;
  letter-spacing: 0;
}

.public-shell .sectors-hero-section .hero-copy > p:not(.eyebrow) {
  max-width: 58ch;
  margin: 0;
}

.public-shell .sectors-hero-section .sector-hero-card {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
  min-height: 0;
  padding: clamp(18px, 2.4vw, 32px);
  gap: 12px;
}

.public-shell .sectors-hero-section .sector-hero-card > strong,
.public-shell .sectors-hero-section .sector-hero-search {
  grid-column: 1 / -1;
}

.public-shell .sector-hero-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
  margin: 4px 0 8px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.public-shell .sector-hero-search label {
  display: grid;
  gap: 6px;
  min-width: 0;
  color: var(--primary-hover);
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: 0;
}

.public-shell .sector-hero-search input,
.public-shell .sector-hero-search button {
  min-height: 48px;
  border-radius: var(--radius-sm);
}

.public-shell .sector-hero-search input {
  width: 100%;
  border: 1px solid var(--border-strong);
  background: var(--surface);
  color: var(--text);
}

.public-shell .sector-hero-search button {
  padding-inline: var(--s-5);
  border: 1px solid var(--primary-hover);
  background: var(--primary-hover);
  color: #ffffff;
  font-weight: 850;
}

.public-shell .sector-catalog-primary-next-step {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(12px, 1.8vw, 28px);
  margin-block: var(--s-4);
  padding: clamp(18px, 2.4vw, 30px);
}

.public-shell .sector-catalog-primary-next-step h2 {
  max-width: 760px;
  margin: 0 0 var(--s-2);
  font-size: clamp(1.45rem, 2.2vw, 2.25rem);
  line-height: 1.08;
  letter-spacing: 0;
}

.public-shell .sector-catalog-primary-next-step p {
  max-width: 820px;
  font-size: 0.98rem;
  line-height: 1.48;
}

.public-shell .sector-catalog-primary-next-step .sector-catalog-proof {
  gap: 8px;
  margin-top: var(--s-3);
}

.public-shell .sector-catalog-primary-actions {
  gap: 10px;
  flex-wrap: wrap;
}

.public-shell .sector-catalog-primary-actions .btn,
.public-shell .sector-catalog-primary-actions .btn-outline {
  min-height: 44px;
  padding-inline: var(--s-4);
  white-space: nowrap;
}

.public-shell .sector-secondary-detail:not([open]) {
  margin-block: var(--s-3);
  border-radius: var(--radius);
  box-shadow: var(--shadow-xs);
}

.public-shell .sector-secondary-detail:not([open]) .sector-secondary-summary {
  grid-template-columns: minmax(140px, 0.32fr) minmax(0, 1fr) auto;
  min-height: 0;
  gap: 8px 14px;
  padding: var(--s-4);
}

.public-shell .sector-secondary-detail:not([open]) .sector-secondary-summary h2 {
  margin: 0;
  font-size: clamp(1.18rem, 1.55vw, 1.62rem);
  line-height: 1.1;
}

.public-shell .sector-secondary-detail:not([open]) .sector-secondary-summary > p:last-child:not(.eyebrow) {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.36;
}

.public-shell .sector-catalog-results-band {
  width: min(95vw, 104rem);
  margin-inline: auto;
  margin-top: var(--s-4);
  padding: clamp(18px, 2.4vw, 32px);
}

.public-shell .sector-catalog-results-band > .section-heading {
  display: block;
  margin-bottom: var(--s-4);
}

.public-shell .sector-catalog-results-band > .section-heading > h2,
.public-shell .sector-catalog-results-band #sector-search-title {
  margin: 4px 0 6px;
  font-size: clamp(1.5rem, 2.2vw, 2.3rem);
  line-height: 1.08;
  letter-spacing: 0;
}

.public-shell .sector-catalog-results-band > .section-heading > p {
  max-width: 62rem;
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.5;
}

.public-shell .sector-catalog-results-band .sector-search-band,
.public-shell .sector-search-band {
  width: min(95vw, 104rem);
  gap: var(--s-3);
  margin-inline: auto;
  margin-bottom: var(--s-4);
  padding: clamp(14px, 1.8vw, 24px);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .sector-catalog-results-band .sector-search-band > .section-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  justify-content: start;
  gap: 6px 10px;
  margin: 0;
}

.public-shell .sector-catalog-results-band .sector-search-band > .section-heading :where(h2) {
  margin: 0;
  font-size: clamp(1.22rem, 1.65vw, 1.72rem);
}

.public-shell .sector-search-form {
  grid-template-columns: minmax(18rem, 1.35fr) minmax(13rem, 0.85fr) minmax(13rem, 0.85fr) auto;
  gap: 12px;
  align-items: end;
  margin: 0;
  padding: var(--s-3);
}

.public-shell .sector-search-form label {
  min-width: 0;
  gap: 4px;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0;
}

.public-shell .sector-search-form :where(input, select, button, .btn) {
  min-height: 46px;
  border-radius: var(--radius-sm);
  font-size: 0.98rem;
}

.public-shell .sector-search-form :where(input, select) {
  border-color: var(--border-strong);
  background: var(--surface);
  color: var(--text);
}

.public-shell .sector-search-form :where(button, .btn) {
  background: var(--primary-hover);
  color: #ffffff;
  font-weight: 850;
}

.public-shell .sector-catalog-results-band :where(.sector-group-shortcuts, .sector-filter-chips),
.public-shell .sector-group-shortcuts {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  max-width: 100%;
  margin: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding-bottom: 4px;
  scrollbar-width: thin;
}

.public-shell .sector-catalog-results-band :where(.sector-group-shortcuts, .sector-filter-chips) a,
.public-shell .sector-group-shortcuts a {
  flex: 0 0 auto;
  min-height: 38px;
  border-color: var(--border-strong);
  color: var(--primary-hover);
  background: var(--surface);
  font-size: 0.9rem;
}

.public-shell .sector-catalog-results-band :where(.sector-group-shortcuts, .sector-filter-chips) a:hover,
.public-shell .sector-catalog-results-band :where(.sector-group-shortcuts, .sector-filter-chips) a:focus-visible,
.public-shell .sector-catalog-results-band :where(.sector-group-shortcuts, .sector-filter-chips) a.is-active,
.public-shell .sector-group-shortcuts a:hover,
.public-shell .sector-group-shortcuts a:focus-visible,
.public-shell .sector-group-shortcuts a.is-active {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
}

.public-shell .sector-catalog-results-band .sector-result-summary {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.96rem;
  line-height: 1.4;
}

.public-shell .sector-card-visual-sale {
  display: grid;
  grid-template-columns: clamp(8rem, 30%, 12rem) minmax(0, 1fr);
  gap: clamp(16px, 2vw, 24px);
  align-items: stretch;
  min-width: 0;
  min-height: 0;
  padding: var(--s-4);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .sector-card-visual-sale > h3,
.public-shell .sector-card-visual-sale > p,
.public-shell .sector-card-visual-sale > ul,
.public-shell .sector-card-visual-sale > .sector-card-price,
.public-shell .sector-card-visual-sale > .sector-card-actions {
  min-width: 0;
}

.public-shell .sector-card-visual-sale > h3 {
  font-size: clamp(1.22rem, 1.7vw, 1.55rem);
  line-height: 1.1;
  text-wrap: balance;
  overflow-wrap: break-word;
}

.public-shell .sector-card-visual-sale > p:not(.eyebrow):not(.sector-card-price) {
  max-width: 42rem;
  color: var(--text-soft);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.public-shell .sector-card-visual-sale .sector-card-chips,
.public-shell .sector-card-visual-sale .compact-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-block: 6px 10px;
}

.public-shell .sector-card-visual-sale .sector-card-chips li,
.public-shell .sector-card-visual-sale .compact-list li {
  max-width: 100%;
  color: var(--primary-hover);
  background: var(--bg-soft);
  border-color: var(--border);
  white-space: normal;
  overflow-wrap: break-word;
}

.public-shell .sector-card-visual-sale .sector-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: auto;
  touch-action: manipulation;
}

.public-shell .sector-card-visual-sale .sector-card-actions .btn,
.public-shell .sector-card-visual-sale .sector-card-actions .btn-outline,
.public-shell .sector-card-demo-link {
  min-height: 44px;
  padding-inline: var(--s-4);
  border-radius: var(--radius-sm);
  font-weight: 800;
  justify-content: center;
  text-align: center;
}

.public-shell .sector-card-visual-sale .sector-card-actions .btn,
.public-shell .sector-card-demo-link {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
}

.public-shell .sector-card-visual-sale .sector-card-actions .btn-outline {
  border-color: var(--border-strong);
  color: var(--primary-hover);
  background: var(--surface);
}

.public-shell .sector-card-visual,
.public-shell .sector-card-img {
  min-height: 10.8rem;
  height: 100%;
  border-radius: var(--radius-sm);
}

@media (min-width: 1000px) {
  .public-shell .sectors-hero-section .hero-home {
    grid-template-columns: minmax(0, 0.95fr) minmax(24rem, 0.72fr);
  }
}

@media (max-width: 980px) {
  .public-shell .sector-search-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-shell .sector-search-form button,
  .public-shell .sector-search-form .btn {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .public-shell .sectors-hero-section .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(2.2rem, 11vw, 3.25rem);
  }

  .public-shell .sectors-hero-section .sector-hero-card,
  .public-shell .sector-hero-search,
  .public-shell .sector-catalog-primary-next-step,
  .public-shell .sector-catalog-results-band .sector-search-band > .section-heading,
  .public-shell .sector-search-form {
    grid-template-columns: 1fr;
  }

  .public-shell .sector-hero-search button,
  .public-shell .sector-search-form button,
  .public-shell .sector-search-form .btn {
    width: 100%;
  }

  .public-shell .sector-secondary-detail:not([open]) .sector-secondary-summary {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .public-shell .sector-secondary-detail:not([open]) .sector-secondary-summary .eyebrow,
  .public-shell .sector-secondary-detail:not([open]) .sector-secondary-summary > p:last-child:not(.eyebrow) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .public-shell .sector-search-band {
    width: min(95vw, 100%);
    padding: var(--s-3);
    border-radius: var(--radius-sm);
  }

  .public-shell .sector-card-visual-sale {
    grid-template-columns: 1fr;
  }

  .public-shell .sector-card-visual,
  .public-shell .sector-card-img {
    min-height: 11rem;
    max-height: 13.5rem;
  }

  .public-shell .sector-card-visual-sale .sector-card-actions .btn,
  .public-shell .sector-card-visual-sale .sector-card-actions .btn-outline,
  .public-shell .sector-card-demo-link {
    width: 100%;
  }
}

html[data-theme="dark"] .public-shell .sector-hero-search label {
  color: #bfdbfe;
}

html[data-theme="dark"] .public-shell .sector-hero-search input,
html[data-theme="dark"] .public-shell .sector-search-form :where(input, select) {
  border-color: rgba(147, 197, 253, 0.42);
  background: #111827;
  color: #f8fafc;
}

html[data-theme="dark"] .public-shell .sector-catalog-results-band .sector-search-band,
html[data-theme="dark"] .public-shell .sector-search-band,
html[data-theme="dark"] .public-shell .sector-card-visual-sale,
html[data-theme="dark"] .public-shell .sector-secondary-detail:not([open]) {
  border-color: rgba(96, 165, 250, 0.34);
  background: #111827;
}

/* Public home sector picker served contract 2026-09-11: index.php trade picker is styled by public.css. */
/* Public trade compact names final guard: scalable catalog guard, expanded catalog, first 12 plus Ver todos. */
/* Public trade search compaction guard: keep many gremios findable without dense catalog pages. */
/* Public home sector search decision panel 2026-08-04: search, need and group work as one panel. */
/* Public sector picker real photos: visual cards must feel human, not like gradients. */
/* Public sector picker anti-overflow guard: trade cards must stay readable. */
/* Public sector picker concise sales cards: home copy must stay short and readable. */
.public-shell .home-sector-search {
  display: grid;
  grid-template-columns: minmax(14rem, 1.35fr) minmax(11rem, 0.85fr) minmax(11rem, 0.85fr) auto auto;
  gap: 12px;
  align-items: end;
  padding: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.public-shell .home-sector-search label {
  min-width: 0;
  gap: 4px;
  color: var(--text);
  font-size: 0.9rem;
  font-weight: 800;
  letter-spacing: 0;
}

.public-shell .home-sector-search input,
.public-shell .home-sector-search select {
  min-height: 46px;
  border-color: var(--border-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--text);
  font-size: 0.98rem;
}

.public-shell .home-sector-search button,
.public-shell .home-sector-search .btn {
  min-height: 46px;
  border-color: var(--primary-hover);
  border-radius: var(--radius-sm);
  background: var(--primary-hover);
  color: #ffffff;
  font-weight: 850;
}

.public-shell .home-sector-filter-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.public-shell .home-sector-filter-chips a {
  flex: 0 0 auto;
  min-height: 38px;
  border-color: var(--border-strong);
  color: var(--primary-hover);
  background: var(--surface);
  font-size: 0.9rem;
  touch-action: manipulation;
}

.public-shell .home-sector-filter-chips a:hover,
.public-shell .home-sector-filter-chips a:focus-visible,
.public-shell .home-sector-filter-chips a.is-active {
  border-color: var(--primary-hover);
  color: #ffffff;
  background: var(--primary-hover);
}

.public-shell .public-sector-picker-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 31rem), 1fr));
  align-items: stretch;
}

.public-shell .public-sector-picker-grid .home-sector-card {
  display: grid;
  grid-template-columns: clamp(8rem, 31%, 11rem) minmax(0, 1fr);
  min-height: 12.8rem;
  max-width: 100%;
  overflow: hidden;
  gap: clamp(14px, 1.6vw, 20px);
  padding: clamp(16px, 1.8vw, 22px);
}

.public-shell .public-sector-picker-grid .home-sector-card-visual {
  min-height: 10.6rem;
  background: linear-gradient(135deg, #dbeafe, #eff6ff);
}

.public-shell .public-sector-picker-grid .home-sector-card-img {
  z-index: 0;
  filter: saturate(1.04) contrast(1.02);
}

.public-shell .public-sector-picker-grid .home-sector-card-visual::before {
  z-index: 1;
  opacity: 0.28;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0) 0%, rgba(15, 23, 42, 0.18) 100%);
}

.public-shell .public-sector-picker-grid .home-sector-card-visual::after {
  z-index: 2;
  background: rgba(255, 255, 255, 0.28);
}

.public-shell .home-sector-card-copy {
  align-content: center;
  grid-template-rows: auto auto auto auto auto;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
  padding: 0;
}

.public-shell .home-sector-card-kicker,
.public-shell .home-sector-card-copy > strong,
.public-shell .home-sector-card small,
.public-shell .home-sector-card em {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  white-space: normal;
  overflow-wrap: break-word;
  text-transform: none;
}

.public-shell .home-sector-card-kicker {
  color: var(--primary-hover);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0;
  -webkit-line-clamp: 2;
}

.public-shell .home-sector-card-copy > strong {
  -webkit-line-clamp: 2;
  font-size: clamp(1.22rem, 1.7vw, 1.55rem);
  line-height: 1.08;
}

.public-shell .home-sector-card small {
  color: var(--text-soft);
  font-size: 0.96rem;
  line-height: 1.38;
  -webkit-line-clamp: 3;
}

.public-shell .home-sector-card em {
  width: fit-content;
  color: var(--text-muted);
  font-size: 0.86rem;
  line-height: 1.24;
  -webkit-line-clamp: 2;
}

.public-shell .home-sector-card-cta {
  align-self: end;
  margin-top: 2px;
  color: var(--primary-hover);
  font-weight: 850;
}

@media (max-width: 1080px) {
  .public-shell .home-sector-search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-shell .home-sector-search :where(button, .btn) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .public-shell .public-sector-picker-grid .home-sector-card {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
  }

  .public-shell .public-sector-picker-grid .home-sector-card-visual {
    min-height: 12rem;
  }

  .public-shell .home-sector-card-copy {
    align-content: start;
  }
}

@media (max-width: 640px) {
  .public-shell .home-sector-search {
    grid-template-columns: 1fr;
  }

  .public-shell .home-sector-search :where(button, .btn) {
    width: 100%;
  }
}

html[data-theme="dark"] .public-shell .home-sector-search,
html[data-theme="dark"] .public-shell .public-sector-picker-grid .home-sector-card {
  border-color: rgba(96, 165, 250, 0.34);
  background: #111827;
}

html[data-theme="dark"] .public-shell .home-sector-search input,
html[data-theme="dark"] .public-shell .home-sector-search select {
  border-color: rgba(147, 197, 253, 0.42);
  background: #111827;
  color: #f8fafc;
}

/* Public home hero served viewport fit 2026-09-11: the home hero is styled in public.css, not app.css. */
.public-shell .home-hero.home-hero-product {
  width: min(95vw, 1680px);
  grid-template-columns: minmax(0, 0.92fr) minmax(540px, 1.08fr);
  align-items: center;
  gap: clamp(28px, 3.4vw, 56px);
  overflow-x: clip;
}

.public-shell .home-hero.home-hero-product .home-hero-copy {
  gap: var(--s-4);
}

.public-shell .home-hero.home-hero-product h1 {
  max-width: 14.5ch;
  font-size: clamp(2.65rem, 5.2vw, 5.55rem);
  line-height: 1.02;
  text-wrap: balance;
}

.public-shell .home-hero.home-hero-product .home-hero-copy > p:not(.eyebrow) {
  max-width: 58ch;
  font-size: clamp(1.02rem, 1.3vw, 1.18rem);
}

.public-shell .home-hero-product .home-hero-media {
  display: grid;
  max-width: 100%;
  padding: clamp(18px, 2.1vw, 30px);
  border-color: rgba(255, 255, 255, 0.18);
  background:
    radial-gradient(circle at 10% 8%, rgba(147, 197, 253, 0.18), transparent 15rem),
    rgba(255, 255, 255, 0.08);
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(10px, 1.15vw, 16px);
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step {
  position: relative;
  isolation: isolate;
  grid-column: span 2;
  min-height: clamp(9.4rem, 11.6vw, 12rem);
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.10);
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step:nth-child(4),
.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step:nth-child(5) {
  grid-column: span 3;
  min-height: clamp(10rem, 12.2vw, 12.8rem);
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-photo,
.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-photo-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-photo {
  z-index: 0;
  aspect-ratio: auto;
  border-radius: inherit;
  background: var(--home-flow-photo) center / cover no-repeat;
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-photo-img {
  object-fit: cover;
  object-position: center;
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(6, 19, 44, 0.02) 0%, rgba(6, 19, 44, 0.12) 45%, rgba(6, 19, 44, 0.72) 100%);
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step svg {
  display: none;
}

.public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step strong {
  position: absolute;
  z-index: 2;
  right: 0.72rem;
  bottom: 0.72rem;
  left: 0.72rem;
  width: fit-content;
  max-width: calc(100% - 1.44rem);
  padding: 0.44rem 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 999px;
  background: rgba(7, 23, 50, 0.82);
  color: #ffffff;
  font-size: clamp(0.78rem, 0.82vw, 0.92rem);
  line-height: 1.08;
  text-wrap: balance;
}

@media (max-width: 1120px) {
  .public-shell .home-hero.home-hero-product {
    grid-template-columns: minmax(0, 0.9fr) minmax(420px, 1.1fr);
    align-items: start;
    gap: clamp(20px, 2.5vw, 34px);
  }

  .public-shell .home-hero.home-hero-product .home-hero-copy {
    gap: clamp(10px, 1.4vw, 16px);
  }

  .public-shell .home-hero.home-hero-product h1 {
    max-width: 13.5ch;
    font-size: clamp(2.55rem, 4.7vw, 3.65rem);
    line-height: 1;
  }

  .public-shell .home-hero.home-hero-product .home-hero-copy > p:not(.eyebrow) {
    max-width: 42ch;
    font-size: 1rem;
    line-height: 1.48;
  }

  .public-shell .home-hero.home-hero-product .home-hero-decision {
    display: none;
  }

  .public-shell .home-hero.home-hero-product .home-hero-trust span,
  .public-shell .home-hero.home-hero-product .home-hero-proof span {
    min-height: 32px;
    padding: 6px 10px;
    font-size: 0.82rem;
  }

  .public-shell .home-hero-product .home-hero-media {
    display: grid;
    padding: clamp(14px, 1.8vw, 22px);
  }

  .public-shell .home-hero-product .home-flow-preview.home-flow-gallery {
    gap: clamp(8px, 1vw, 12px);
  }

  .public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step {
    min-height: clamp(7.3rem, 10.5vw, 9.3rem);
  }

  .public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step:nth-child(4),
  .public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step:nth-child(5) {
    min-height: clamp(7.8rem, 11vw, 9.8rem);
  }

  .public-shell .home-hero-product .home-flow-preview.home-flow-gallery .home-flow-step strong {
    right: 0.55rem;
    bottom: 0.55rem;
    left: 0.55rem;
    max-width: calc(100% - 1.1rem);
    padding: 0.34rem 0.48rem;
    font-size: 0.76rem;
  }
}

@media (max-width: 960px) {
  .public-shell .home-hero.home-hero-product {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .public-shell .home-hero.home-hero-product h1 {
    max-width: 100%;
    font-size: clamp(2.15rem, 11vw, 3.35rem);
  }

  .public-shell .home-hero-product .home-hero-media {
    display: none;
  }
}

/* Public contact professional layout 2026-09-11: keep web forms spacious, scannable and consistent. */
body.public-shell .contact-workbench {
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.72fr);
  gap: clamp(28px, 3vw, 52px);
  align-items: start;
}

body.public-shell .contact-form,
body.public-shell .sector-summary-card {
  border-color: #cfd8e6;
  border-radius: var(--radius-lg);
  padding: clamp(28px, 2.8vw, 44px);
  box-shadow: 0 18px 52px rgba(16, 24, 40, 0.08);
}

body.public-shell .contact-form {
  gap: clamp(22px, 2vw, 30px);
}

body.public-shell .contact-form-grid {
  gap: clamp(18px, 1.7vw, 26px);
  align-items: start;
}

body.public-shell .contact-form-heading {
  gap: var(--s-3);
  padding-bottom: var(--s-2);
  border-bottom: 1px solid #e4eaf2;
}

body.public-shell .contact-form-heading h2 {
  max-width: 18ch;
  font-size: clamp(1.55rem, 1.7vw, 2rem);
}

body.public-shell .contact-form-heading p:not(.eyebrow) {
  max-width: 66ch;
  color: #344054;
}

body.public-shell .contact-form .form-field {
  gap: var(--s-2);
}

body.public-shell .contact-form label {
  color: #101828;
  font-size: 0.98rem;
}

body.public-shell .contact-form :is(input:not([type="checkbox"]), select, textarea) {
  min-height: 56px;
  border-color: #cfd8e6;
  background: #ffffff;
  color: #101828;
  box-shadow: none;
}

body.public-shell .contact-form select {
  white-space: normal;
  line-height: 1.35;
}

body.public-shell .contact-form textarea {
  min-height: 168px;
  line-height: 1.55;
}

body.public-shell :where(.contact-form) :where(input:not([type="checkbox"]), select, textarea):focus-visible {
  border-color: #155eef;
}

body.public-shell .contact-form .inline-check {
  border: 1px solid #e4eaf2;
  border-radius: var(--radius);
  padding: var(--s-4);
  background: #f8fafc;
}

body.public-shell .sector-summary-card {
  gap: clamp(18px, 1.8vw, 26px);
}

body.public-shell .sector-summary-meta {
  gap: var(--s-3);
}

body.public-shell .sector-summary-meta p,
body.public-shell .public-sector-selling-points article,
body.public-shell .sector-lead-questions,
body.public-shell .sector-contact-hook {
  border-color: #d7dee8;
  background: #f8fafc;
}

body.public-shell .sector-summary-meta strong {
  color: #0b2f6f;
}

@media (max-width: 1180px) {
  body.public-shell .contact-workbench {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .sector-summary-card {
    position: static;
  }
}

@media (max-width: 760px) {
  body.public-shell .contact-form,
  body.public-shell .sector-summary-card {
    padding: var(--s-5);
    box-shadow: var(--shadow-xs);
  }

  body.public-shell .contact-form-heading h2 {
    max-width: 100%;
    font-size: clamp(1.35rem, 6vw, 1.75rem);
  }

  body.public-shell .contact-form .inline-check {
    padding: var(--s-3);
  }
}

html[data-theme="dark"] body.public-shell .contact-form,
html[data-theme="dark"] body.public-shell .sector-summary-card {
  border-color: #506886;
  background: #111827;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
}

html[data-theme="dark"] body.public-shell .contact-form-heading {
  border-bottom-color: #506886;
}

html[data-theme="dark"] body.public-shell .contact-form-heading p:not(.eyebrow),
html[data-theme="dark"] body.public-shell .contact-form .inline-check,
html[data-theme="dark"] body.public-shell .contact-form .inline-check span {
  color: #cbd5e1;
}

html[data-theme="dark"] body.public-shell .contact-form :is(input:not([type="checkbox"]), select, textarea) {
  border-color: #506886;
  background: #0b1220;
  color: #f8fafc;
}

html[data-theme="dark"] body.public-shell .contact-form .inline-check,
html[data-theme="dark"] body.public-shell .sector-summary-meta p,
html[data-theme="dark"] body.public-shell .public-sector-selling-points article,
html[data-theme="dark"] body.public-shell .sector-lead-questions,
html[data-theme="dark"] body.public-shell .sector-contact-hook {
  border-color: #506886;
  background: #0b1220;
}

/* Public checkout professional layout 2026-09-11: served checkout refinement. */
body.public-shell .checkout-start-hero,
body.public-shell .checkout-panel {
  width: min(95vw, 1680px);
  margin-inline: auto;
}

body.public-shell .checkout-start-hero {
  grid-template-columns: minmax(0, 0.9fr) minmax(420px, 0.72fr);
  align-items: center;
  gap: clamp(32px, 4vw, 64px);
  padding: clamp(34px, 4.4vw, 72px);
  border-color: #d7dee8;
  border-radius: var(--radius-lg);
  color: var(--text);
  background: linear-gradient(135deg, #ffffff 0%, #f4f8ff 100%);
  box-shadow: 0 18px 60px rgba(15, 23, 42, 0.08);
}

body.public-shell .checkout-start-copy {
  gap: clamp(18px, 2vw, 28px);
}

body.public-shell .checkout-start-copy :is(h1, p, .eyebrow) {
  color: var(--text);
}

body.public-shell .checkout-start-copy h1 {
  max-width: 14ch;
  font-size: clamp(2.45rem, 4.4vw, 4.65rem);
  letter-spacing: 0;
}

body.public-shell .checkout-start-copy > p:not(.eyebrow) {
  max-width: 54ch;
  color: var(--text-soft);
  font-size: clamp(1.05rem, 1.15vw, 1.18rem);
}

body.public-shell .checkout-start-visual {
  min-height: clamp(340px, 31vw, 560px);
  border-color: #d7dee8;
  border-radius: var(--radius-lg);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.16);
}

body.public-shell .checkout-start-visual::before {
  background: linear-gradient(180deg, rgba(15, 23, 42, 0), rgba(15, 23, 42, 0.72));
}

body.public-shell .checkout-start-visual .checkout-start-summary {
  grid-template-columns: 1fr;
  gap: var(--s-3);
  margin: clamp(18px, 2vw, 28px);
  padding: clamp(18px, 2vw, 26px);
  border-color: rgba(255, 255, 255, 0.28);
  border-radius: var(--radius);
  background: rgba(15, 23, 42, 0.78);
}

body.public-shell .checkout-start-summary span {
  color: #ffffff;
}

body.public-shell .checkout-start-summary strong {
  color: #082f49;
  background: #e0f2fe;
}

body.public-shell .checkout-panel {
  gap: clamp(28px, 3vw, 44px);
  padding-block: clamp(34px, 4vw, 62px);
}

body.public-shell .checkout-panel > .section-heading {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 2vw, 32px);
  align-items: end;
}

body.public-shell .checkout-panel > .section-heading > div {
  max-width: 1120px;
  gap: var(--s-3);
}

body.public-shell .checkout-panel > .section-heading h2 {
  max-width: 26ch;
  font-size: clamp(1.85rem, 2.8vw, 3rem);
}

body.public-shell .checkout-step-strip {
  gap: var(--s-2);
}

body.public-shell .checkout-step-strip span {
  min-height: 44px;
  border-color: #d7dee8;
  box-shadow: none;
}

body.public-shell .checkout-choice-band,
body.public-shell .checkout-state-band,
body.public-shell .checkout-pending,
body.public-shell .checkout-summary-grid article,
body.public-shell .checkout-preparation-card {
  border-color: #d7dee8;
  border-radius: var(--radius-lg);
  box-shadow: 0 14px 42px rgba(15, 23, 42, 0.07);
}

body.public-shell .checkout-choice-band {
  padding: clamp(28px, 3.3vw, 52px);
  background: #ffffff;
}

body.public-shell .checkout-choice-head {
  grid-template-columns: minmax(280px, 0.55fr) minmax(0, 1.45fr);
  gap: clamp(28px, 3.5vw, 56px);
}

body.public-shell .checkout-choice-head > div:first-child {
  gap: var(--s-3);
}

body.public-shell .checkout-choice-head h3,
body.public-shell .checkout-state-band h3 {
  font-size: clamp(1.45rem, 1.9vw, 2rem);
  line-height: 1.15;
}

body.public-shell .checkout-choice-form {
  gap: clamp(18px, 1.7vw, 26px);
  padding: clamp(24px, 2.6vw, 42px);
  border-color: #d7dee8;
  border-radius: var(--radius-lg);
  background: #f8fafc;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

body.public-shell .checkout-plan-radio-group {
  grid-template-columns: repeat(3, minmax(210px, 1fr));
  gap: var(--s-4);
}

body.public-shell .checkout-plan-radio-card,
body.public-shell .checkout-plan-choice-card {
  min-height: auto;
  gap: 10px;
  padding: clamp(18px, 1.8vw, 24px);
  border-color: #d7dee8;
  border-radius: var(--radius);
  background: #ffffff;
  box-shadow: none;
}

body.public-shell .checkout-plan-radio-card em,
body.public-shell .checkout-plan-choice-card em,
body.public-shell .checkout-summary-grid p {
  color: #0b2f6f;
  font-weight: 850;
}

body.public-shell .checkout-plan-radio-card small,
body.public-shell .checkout-plan-choice-card small,
body.public-shell .checkout-plan-annual-note {
  color: #334155;
}

body.public-shell .checkout-plan-radio-card:hover,
body.public-shell .checkout-plan-radio-card:focus-within,
body.public-shell .checkout-plan-radio-card.is-active,
body.public-shell .checkout-plan-radio-card:has(input:checked),
body.public-shell .checkout-plan-choice-card:hover,
body.public-shell .checkout-plan-choice-card:focus-visible,
body.public-shell .checkout-plan-choice-card.is-active {
  border-color: #0b5bd3;
  box-shadow: 0 0 0 3px rgba(11, 91, 211, 0.18);
}

body.public-shell .checkout-plan-radio-card.is-recommended,
body.public-shell .checkout-plan-choice-card.is-recommended {
  background: linear-gradient(180deg, #ffffff 0%, #eef6ff 100%);
}

body.public-shell .checkout-choice-form :is(input:not([type="radio"]):not([type="checkbox"]), select),
body.public-shell .referral-code-form input {
  min-height: 56px;
  border-color: #b8c5d6;
  border-radius: var(--radius);
  background: #ffffff;
}

body.public-shell :where(.checkout-choice-form) :is(input:not([type="radio"]):not([type="checkbox"]), select):focus-visible,
body.public-shell .referral-code-form input:focus-visible,
body.public-shell .checkout-choice-form button[type="submit"]:focus-visible,
body.public-shell .referral-code-form button:focus-visible {
  outline: 3px solid rgba(11, 91, 211, 0.28);
  outline-offset: 3px;
  border-color: #0b5bd3;
}

body.public-shell .checkout-choice-form button[type="submit"],
body.public-shell .referral-code-form button {
  min-height: 56px;
  border-radius: var(--radius);
  background: #155eef;
}

body.public-shell .checkout-choice-form button[type="submit"]:hover,
body.public-shell .referral-code-form button:hover {
  background: #0b3f9f;
}

body.public-shell .checkout-summary-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
  gap: clamp(18px, 2vw, 28px);
}

body.public-shell .checkout-state-band {
  grid-template-columns: minmax(300px, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(26px, 3vw, 50px);
  padding: clamp(26px, 3vw, 44px);
  background: #ffffff;
}

body.public-shell .checkout-step-list li {
  border-color: #d7dee8;
  background: #f8fafc;
}

body.public-shell .checkout-preparation-grid {
  grid-template-columns: repeat(3, minmax(240px, 1fr));
}

@media (max-width: 1180px) {
  body.public-shell .checkout-start-hero,
  body.public-shell .checkout-choice-head,
  body.public-shell .checkout-state-band {
    grid-template-columns: 1fr;
  }

  body.public-shell .checkout-choice-head > div:first-child {
    position: static;
  }

  body.public-shell .checkout-plan-radio-group,
  body.public-shell .checkout-preparation-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  }
}

@media (max-width: 760px) {
  body.public-shell .checkout-start-hero,
  body.public-shell .checkout-choice-band,
  body.public-shell .checkout-state-band {
    padding: var(--s-5);
  }

  body.public-shell .checkout-start-copy h1 {
    max-width: 100%;
    font-size: clamp(2rem, 10vw, 2.55rem);
  }

  body.public-shell .checkout-start-visual {
    min-height: 300px;
  }

  body.public-shell .checkout-panel > .section-heading,
  body.public-shell .checkout-signup-inline-fields {
    grid-template-columns: 1fr;
  }
}

html[data-theme="dark"] body.public-shell .checkout-start-hero,
html[data-theme="dark"] body.public-shell .checkout-choice-band,
html[data-theme="dark"] body.public-shell .checkout-choice-form,
html[data-theme="dark"] body.public-shell .checkout-state-band,
html[data-theme="dark"] body.public-shell .checkout-summary-grid article,
html[data-theme="dark"] body.public-shell .checkout-preparation-card,
html[data-theme="dark"] body.public-shell .checkout-pending {
  border-color: #506886;
  background: #111827;
  color: #f8fafc;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
}

html[data-theme="dark"] body.public-shell .checkout-start-copy :is(h1, p, .eyebrow),
html[data-theme="dark"] body.public-shell .checkout-choice-head h3,
html[data-theme="dark"] body.public-shell .checkout-state-band h3 {
  color: #f8fafc;
}

html[data-theme="dark"] body.public-shell .checkout-start-copy > p:not(.eyebrow),
html[data-theme="dark"] body.public-shell .checkout-choice-head p:not(.eyebrow),
html[data-theme="dark"] body.public-shell .checkout-state-band p,
html[data-theme="dark"] body.public-shell .checkout-plan-radio-card small,
html[data-theme="dark"] body.public-shell .checkout-plan-choice-card small,
html[data-theme="dark"] body.public-shell .checkout-plan-annual-note {
  color: #cbd5e1;
}

html[data-theme="dark"] body.public-shell .checkout-plan-radio-card,
html[data-theme="dark"] body.public-shell .checkout-plan-choice-card,
html[data-theme="dark"] body.public-shell .checkout-step-list li,
html[data-theme="dark"] body.public-shell .checkout-choice-form :is(input:not([type="radio"]):not([type="checkbox"]), select),
html[data-theme="dark"] body.public-shell .referral-code-form input {
  border-color: #506886;
  background: #0b1220;
  color: #f8fafc;
}

/* Public layout recovery 2026-09-12: restore product-scale hierarchy across home, trade, checkout and referral pages. */
body.public-shell :where(.section-heading, .section-heading-tight, .sector-secondary-detail-body > .section-heading) {
  max-width: 980px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: var(--s-3);
  margin-bottom: clamp(18px, 2vw, 30px);
}

body.public-shell :where(.section-heading > *, .section-heading h1, .section-heading :is(h2), .section-heading :is(p)) {
  min-width: 0;
  max-width: 100%;
}

body.public-shell :where(.section-heading h1, .section-heading :is(h2)) {
  max-width: 24ch;
  font-size: clamp(1.65rem, 2.15vw, 2.5rem);
  line-height: 1.12;
  letter-spacing: 0;
}

body.public-shell :where(.section-heading > p:not(.eyebrow), .section-heading > div > p:not(.eyebrow)) {
  max-width: 66ch;
  color: var(--text-soft);
  font-size: clamp(1rem, 1vw, 1.12rem);
  line-height: 1.58;
}

body.public-shell :where(.home-hero.home-hero-product, .checkout-start-hero, .referral-hero, .checkout-panel, .referral-primary-next-step, .referral-action-band, .public-product-modules-band, .public-sector-picker, .service-table-band, .home-cta) {
  width: min(95vw, 1680px);
  margin-inline: auto;
  box-sizing: border-box;
}

body.public-shell .home-hero.home-hero-product {
  grid-template-columns: minmax(0, 0.95fr) minmax(460px, 1fr);
  gap: clamp(28px, 3vw, 52px);
  padding: clamp(30px, 3.6vw, 56px);
}

body.public-shell .home-hero.home-hero-product h1 {
  max-width: 15ch;
  font-size: clamp(2.35rem, 3.55vw, 4.15rem);
  line-height: 1.04;
}

body.public-shell .home-hero.home-hero-product .home-hero-copy > p:not(.eyebrow) {
  max-width: 58ch;
  font-size: clamp(1rem, 1.05vw, 1.14rem);
}

body.public-shell .home-hero-product .hero-actions > :where(.btn, .btn-outline),
body.public-shell .home-cta .hero-actions > :where(.btn, .btn-outline),
body.public-shell .referral-primary-actions > :where(.btn, .btn-outline) {
  flex: 0 1 auto;
  min-width: min(100%, 12rem);
}

body.public-shell .public-product-modules-grid,
body.public-shell .pricing-grid,
body.public-shell .checkout-summary-grid,
body.public-shell .checkout-preparation-grid {
  gap: clamp(18px, 1.8vw, 28px);
}

body.public-shell .pricing-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.public-shell .checkout-panel,
body.public-shell .referral-public-panel {
  gap: clamp(24px, 2.6vw, 40px);
  padding-block: clamp(28px, 3vw, 52px);
}

body.public-shell .checkout-panel > .section-heading {
  max-width: none;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: clamp(18px, 2vw, 30px);
}

body.public-shell .checkout-panel > .section-heading h2 {
  max-width: 28ch;
  font-size: clamp(1.65rem, 2.3vw, 2.55rem);
  line-height: 1.12;
}

body.public-shell .checkout-start-copy h1,
body.public-shell .referral-hero h1 {
  max-width: 16ch;
  font-size: clamp(2.2rem, 3.6vw, 4rem);
  line-height: 1.04;
}

body.public-shell .checkout-choice-head {
  grid-template-columns: minmax(260px, 0.5fr) minmax(0, 1.5fr);
}

body.public-shell .checkout-plan-radio-group {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.public-shell .checkout-state-band {
  grid-template-columns: minmax(280px, 0.55fr) minmax(0, 1.45fr);
}

body.public-shell .referral-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 0.72fr);
  align-items: center;
  gap: clamp(20px, 3vw, 44px);
  padding: clamp(30px, 3.6vw, 56px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

body.public-shell .referral-hero-visual {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-strong);
  box-shadow: var(--shadow-sm);
}

body.public-shell .referral-hero-photo {
  display: block;
  width: 100%;
  aspect-ratio: 900 / 620;
  object-fit: cover;
}

body.public-shell .referral-hero > div,
body.public-shell .referral-primary-next-step > div:first-child {
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

body.public-shell .referral-primary-next-step {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(20px, 2vw, 32px);
  padding: clamp(24px, 2.8vw, 40px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

body.public-shell .referral-primary-next-step h2,
body.public-shell .referral-action-band .section-heading h2 {
  max-width: 22ch;
  font-size: clamp(1.65rem, 2.1vw, 2.35rem);
  line-height: 1.12;
}

body.public-shell .referral-step-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-3);
  max-width: 34rem;
}

body.public-shell .referral-step-strip span {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 6px 12px;
  color: var(--text);
  background: var(--surface-strong);
  font-weight: 850;
}

body.public-shell .referral-step-strip strong {
  width: 1.5rem;
  height: 1.5rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: var(--primary-hover);
  font-size: 0.78rem;
  line-height: 1;
}

body.public-shell .referral-primary-next-step > div:first-child > span {
  width: fit-content;
  border-radius: 999px;
  padding: 5px 10px;
  color: #0b2f6f;
  background: #dbeafe;
  font-size: 0.82rem;
  font-weight: 900;
}

body.public-shell .referral-primary-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--s-3);
  min-width: min(100%, 22rem);
}

body.public-shell .referral-action-band {
  display: grid;
  gap: clamp(18px, 2vw, 28px);
  padding: clamp(28px, 3vw, 48px);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

body.public-shell .referral-action-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.4vw, 22px);
}

body.public-shell .referral-action-grid article {
  min-width: 0;
  min-height: 100%;
  display: grid;
  align-content: start;
  gap: var(--s-3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: var(--s-5);
  background: var(--surface-strong);
}

body.public-shell .referral-action-grid article.is-primary {
  border-color: #93b4e8;
  background: #f4f8ff;
}

body.public-shell .referral-action-grid span {
  color: var(--primary-hover);
  font-size: 0.8rem;
  font-weight: 850;
  text-transform: uppercase;
}

body.public-shell .referral-action-grid h3 {
  color: var(--text);
  font-size: clamp(1.08rem, 1.05vw, 1.2rem);
  line-height: 1.18;
}

body.public-shell .referral-action-grid p {
  color: var(--text-soft);
  font-size: 0.96rem;
  line-height: 1.48;
}

body.public-shell .referral-action-grid .btn,
body.public-shell .referral-action-grid .btn-outline {
  align-self: end;
  width: 100%;
}

body.public-shell :is(.sector-specific-fit, .sector-personalization) > .section-heading:has(.sector-section-visual) {
  max-width: none;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.65fr);
  grid-auto-flow: row;
  column-gap: clamp(24px, 3vw, 48px);
  row-gap: var(--s-3);
  align-items: center;
}

body.public-shell :is(.sector-specific-fit, .sector-personalization) > .section-heading:has(.sector-section-visual) > :where(.eyebrow, h2, p) {
  grid-column: 1;
}

body.public-shell :is(.sector-specific-fit, .sector-personalization) > .section-heading .sector-section-visual {
  grid-column: 2;
  grid-row: 1 / span 3;
  width: 100%;
  min-height: 0;
  aspect-ratio: 16 / 10;
  margin: 0;
  border-radius: var(--radius);
  padding: var(--s-4);
}

body.public-shell :is(.sector-specific-fit, .sector-personalization) > .section-heading .sector-section-visual figcaption {
  max-width: 28rem;
  font-size: clamp(1rem, 1.05vw, 1.14rem);
}

@media (max-width: 1180px) {
  body.public-shell .home-hero.home-hero-product,
  body.public-shell .checkout-choice-head,
  body.public-shell .checkout-state-band,
  body.public-shell .referral-hero,
  body.public-shell .referral-primary-next-step {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .checkout-choice-head > div:first-child {
    position: static;
  }

  body.public-shell .checkout-plan-radio-group,
  body.public-shell .pricing-grid,
  body.public-shell .referral-action-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  }

  body.public-shell .referral-primary-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 900px) {
  body.public-shell :is(.sector-specific-fit, .sector-personalization) > .section-heading:has(.sector-section-visual) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell :is(.sector-specific-fit, .sector-personalization) > .section-heading .sector-section-visual {
    grid-column: 1;
    grid-row: auto;
  }
}

@media (max-width: 760px) {
  body.public-shell :where(.home-hero.home-hero-product, .checkout-start-hero, .referral-hero, .referral-primary-next-step, .referral-action-band, .checkout-choice-band, .checkout-state-band, .home-cta, .public-sector-picker) {
    width: min(100%, calc(100vw - 24px));
    padding: var(--s-5);
  }

  body.public-shell .home-hero.home-hero-product h1,
  body.public-shell .checkout-start-copy h1,
  body.public-shell .referral-hero h1 {
    max-width: 100%;
    font-size: clamp(2rem, 9vw, 2.55rem);
  }

  body.public-shell .checkout-panel > .section-heading,
  body.public-shell .referral-step-strip {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .referral-primary-actions > :where(.btn, .btn-outline) {
    width: 100%;
  }
}

html[data-theme="dark"] body.public-shell :is(.referral-hero, .referral-primary-next-step, .referral-action-band, .referral-action-grid article) {
  border-color: #506886;
  background: #111827;
  color: #f8fafc;
}

html[data-theme="dark"] body.public-shell .referral-hero-visual {
  border-color: #506886;
  background: #0f172a;
}

html[data-theme="dark"] body.public-shell .referral-action-grid article.is-primary {
  border-color: #6b86ad;
  background: #172033;
}

html[data-theme="dark"] body.public-shell :is(.referral-hero h1, .referral-primary-next-step h2, .referral-action-grid h3) {
  color: #f8fafc;
}

html[data-theme="dark"] body.public-shell :is(.referral-hero p, .referral-primary-next-step p, .referral-action-grid p) {
  color: #d6e0ee;
}

/* Public sector catalog served cleanup 2026-09-12: keep gremios.php wide, scannable and out of private CSS. */
body.public-shell .sector-catalog-primary-next-step,
body.public-shell .sector-catalog-results-band {
  width: min(96vw, 1760px);
  margin-inline: auto;
}

body.public-shell .sector-catalog-primary-next-step {
  padding: clamp(22px, 2.8vw, 38px);
}

body.public-shell .sector-catalog-primary-next-step h2,
body.public-shell .sector-catalog-results-band > .section-heading > h2,
body.public-shell .sector-catalog-results-band #sector-search-title {
  letter-spacing: 0;
}

body.public-shell .sector-catalog-primary-next-step h2 {
  max-width: 24ch;
  font-size: clamp(1.55rem, 1.9vw, 2.25rem);
}

body.public-shell .sector-catalog-primary-next-step p {
  color: var(--text-soft);
  font-size: clamp(1rem, 0.98vw, 1.1rem);
}

body.public-shell .sector-catalog-results-band {
  padding: clamp(20px, 2.2vw, 34px);
}

body.public-shell .sector-catalog-results-band > .section-heading {
  margin-bottom: clamp(16px, 1.5vw, 24px);
}

body.public-shell .sector-catalog-results-band > .section-heading > h2 {
  margin: 0 0 6px;
  font-size: clamp(1.55rem, 1.9vw, 2.2rem);
}

body.public-shell .sector-catalog-results-band > .section-heading > p {
  max-width: 68ch;
  color: var(--text-soft);
  font-size: clamp(1rem, 0.98vw, 1.1rem);
}

body.public-shell .sector-catalog-results-band .sector-search-band {
  width: 100%;
  margin-bottom: clamp(14px, 1.4vw, 22px);
  padding: clamp(14px, 1.5vw, 22px);
}

body.public-shell .sector-catalog-results-band .sector-search-form {
  grid-template-columns: minmax(260px, 1.25fr) minmax(220px, 0.9fr) minmax(170px, 0.7fr) auto;
  padding: clamp(14px, 1.4vw, 20px);
}

body.public-shell .sector-catalog-results-band .sector-search-form label {
  font-size: 0.9rem;
}

body.public-shell .sector-catalog-results-band .sector-search-form :where(input, select, button, .btn) {
  min-height: 48px;
  font-size: 0.96rem;
}

body.public-shell .sector-catalog-results-band :where(.sector-group-shortcuts, .sector-filter-chips) a {
  min-height: 36px;
  padding: 7px 12px;
}

body.public-shell .sector-catalog-results-band .sector-result-summary {
  margin-top: var(--s-2);
}

@media (max-width: 900px) {
  body.public-shell .sector-catalog-primary-next-step {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-shell .sector-catalog-results-band .sector-search-form {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  body.public-shell .sector-catalog-primary-next-step,
  body.public-shell .sector-catalog-results-band {
    width: min(100%, calc(100vw - 24px));
  }
}

/* Public layout rhythm consolidation 2026-09-12: wider, calmer and consistent across public templates. */
body.public-shell :where(.public-container, .public-section, .home-band, .public-product-modules-band, .public-sector-picker, .sector-instant-band, .sector-catalog-primary-next-step, .pricing-section, .checkout-panel, .referral-action-band) {
  width: min(96vw, 1760px);
  margin-inline: auto;
}

body.public-shell :where(.public-section, .home-band, .public-product-modules-band, .public-sector-picker, .sector-instant-band, .sector-catalog-primary-next-step, .pricing-section) {
  margin-block: clamp(28px, 3.8vw, 62px);
}

body.public-shell :where(.section-heading, .section-heading-tight, .sector-secondary-detail-body > .section-heading, .contact-form-heading, .checkout-panel > .section-heading) {
  gap: clamp(8px, 0.9vw, 14px);
  margin-bottom: clamp(18px, 1.9vw, 28px);
}

body.public-shell :where(.section-heading h1, .section-heading :is(h2), .checkout-panel > .section-heading h2, .contact-form-heading h2) {
  max-width: 26ch;
  font-size: clamp(1.55rem, 1.85vw, 2.25rem);
  line-height: 1.14;
  letter-spacing: 0;
}

body.public-shell :where(.home-hero.home-hero-product h1, .sector-landing-hero .hero-copy h1, .checkout-start-copy h1, .sales-contact-hero h1, .referral-hero h1, .sectors-hero-section .hero-copy h1) {
  max-width: 17ch;
  font-size: clamp(2.2rem, 3.05vw, 3.65rem);
  line-height: 1.05;
  letter-spacing: 0;
}

body.public-shell :where(.section-heading > p:not(.eyebrow), .section-heading > div > p:not(.eyebrow), .hero-copy > p:not(.eyebrow), .home-hero-copy > p:not(.eyebrow), .checkout-start-copy > p:not(.eyebrow), .contact-form-heading p:not(.eyebrow)) {
  max-width: 68ch;
  font-size: clamp(1rem, 0.98vw, 1.12rem);
  line-height: 1.58;
}

body.public-shell :where(.card, .pricing-card, .sector-card, .home-sector-card, .module-card, .feature-card, .public-card, .contact-form, .checkout-card, .checkout-plan-choice-card, .checkout-plan-radio-card, .sector-page-fast-decision-card, .sector-use-case-card, .sector-scene-card, .sector-example-card) {
  border-radius: var(--radius);
}

body.public-shell :where(.contact-form, .module-request-form, .checkout-choice-form, .referral-code-form) {
  gap: clamp(16px, 1.5vw, 24px);
  padding: clamp(22px, 2.4vw, 36px);
}

body.public-shell :where(.contact-form-grid, .checkout-signup-inline-fields, .compact-module-request-fields) {
  gap: clamp(14px, 1.3vw, 22px);
}

body.public-shell :where(.contact-form label, .module-request-form label, .checkout-choice-form > label, .checkout-signup-inline-fields label, .referral-code-form label, .sector-search-form label, .home-sector-search label) {
  gap: 8px;
}

body.public-shell :where(.contact-form, .module-request-form, .checkout-choice-form, .referral-code-form) :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 54px;
  padding-inline: 16px;
}

body.public-shell :where(.public-product-modules-grid, .pricing-grid, .home-sector-card-grid, .sector-results-grid, .sector-use-case-grid, .sector-scene-grid, .sector-example-grid, .checkout-summary-grid, .checkout-preparation-grid) {
  gap: clamp(18px, 1.8vw, 30px);
}

@media (max-width: 760px) {
  body.public-shell :where(.public-container, .public-section, .home-band, .public-product-modules-band, .public-sector-picker, .sector-instant-band, .sector-catalog-primary-next-step, .pricing-section, .checkout-panel, .referral-action-band) {
    width: min(100%, calc(100vw - 24px));
  }

  body.public-shell :where(.public-section, .home-band, .public-product-modules-band, .public-sector-picker, .sector-instant-band, .sector-catalog-primary-next-step, .pricing-section) {
    margin-block: clamp(24px, 7vw, 42px);
  }

  body.public-shell :where(.home-hero.home-hero-product h1, .sector-landing-hero .hero-copy h1, .checkout-start-copy h1, .sales-contact-hero h1, .referral-hero h1, .sectors-hero-section .hero-copy h1) {
    max-width: 100%;
    font-size: clamp(2rem, 8.8vw, 2.55rem);
  }
}

/* Public footer navigation panel served 2026-09-12: useful footer navigation belongs in public.css. */
/* Public footer navigation polish served 2026-09-12: commercial links stay prominent and legal links stay accessible. */
body.public-shell .public-footer {
  width: min(96vw, 1760px);
  margin-inline: auto;
  margin-top: clamp(28px, 3vw, 48px);
  padding: clamp(20px, 2.5vw, 32px) clamp(20px, 2.5vw, 32px) calc(clamp(20px, 2.5vw, 32px) + 56px);
  border: 1px solid rgba(147, 197, 253, 0.55);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, #ffffff 0%, #f4f8ff 100%);
  color: var(--text);
  box-shadow: 0 -12px 34px rgba(15, 23, 42, 0.045);
}

body.public-shell .public-footer > p {
  max-width: 68ch;
  margin: 0;
  color: var(--text);
  font-weight: 780;
  line-height: 1.4;
}

body.public-shell .public-footer .footer-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.25rem, 1fr));
  gap: clamp(0.48rem, 0.8vw, 0.72rem);
  align-items: stretch;
}

body.public-shell .public-footer .footer-links a {
  min-width: 0;
  min-height: var(--mantivo-touch-target, 44px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.58rem 0.78rem;
  border: 1px solid #aac7ff;
  border-radius: 999px;
  background: #ffffff;
  color: #174ea6;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  overflow-wrap: break-word;
  touch-action: manipulation;
}

body.public-shell .public-footer .footer-links a:nth-child(-n+5) {
  background: #eff6ff;
  color: #0f3f9f;
  box-shadow: 0 8px 20px rgba(37, 99, 235, 0.08);
}

body.public-shell .public-footer .footer-links a:nth-child(n+6) {
  font-size: 0.88rem;
  font-weight: 750;
  color: #31527e;
  background: rgba(255, 255, 255, 0.74);
}

body.public-shell .public-footer .footer-links a:hover,
body.public-shell .public-footer .footer-links a:focus-visible,
body.public-shell .public-footer .footer-links a.active,
body.public-shell .public-footer .footer-links a[aria-current="page"] {
  border-color: var(--primary-hover);
  background: var(--primary-hover);
  color: #ffffff;
  box-shadow: 0 12px 28px rgba(37, 99, 235, 0.18);
}

@media (max-width: 760px) {
  body.public-shell .public-footer {
    width: min(100%, calc(100vw - 24px));
    padding-bottom: calc(5.25rem + env(safe-area-inset-bottom, 0px));
  }

  body.public-shell .public-footer .footer-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.public-shell .public-footer .footer-links a {
    border-radius: 0.95rem;
  }
}

html[data-theme="dark"] body.public-shell .public-footer {
  border-color: #506886;
  background: linear-gradient(135deg, #111827 0%, #172033 100%);
  color: #f8fafc;
  box-shadow: 0 -12px 34px rgba(0, 0, 0, 0.28);
}

html[data-theme="dark"] body.public-shell .public-footer > p {
  color: #f8fafc;
}

html[data-theme="dark"] body.public-shell .public-footer .footer-links a {
  border-color: rgba(147, 197, 253, 0.38);
  background: #111827;
  color: #dbeafe;
}

html[data-theme="dark"] body.public-shell .public-footer .footer-links a:nth-child(-n+5) {
  background: rgba(30, 64, 175, 0.28);
  color: #f8fafc;
}

html[data-theme="dark"] body.public-shell .public-footer .footer-links a:nth-child(n+6) {
  color: #cbd5e1;
  background: rgba(15, 23, 42, 0.72);
}

html[data-theme="dark"] body.public-shell .public-footer .footer-links a:hover,
html[data-theme="dark"] body.public-shell .public-footer .footer-links a:focus-visible,
html[data-theme="dark"] body.public-shell .public-footer .footer-links a.active,
html[data-theme="dark"] body.public-shell .public-footer .footer-links a[aria-current="page"] {
  border-color: #93c5fd;
  background: #1d4ed8;
  color: #ffffff;
}

/* Public trust pages real photo heroes 2026-09-12: legal and trust pages keep a sober photographic first viewport. */
body.public-shell .public-trust-hero-section {
  padding-block-start: clamp(var(--s-6), 4vw, var(--s-8));
}

body.public-shell .public-trust-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(360px, 0.8fr);
  align-items: center;
  gap: clamp(var(--s-5), 4vw, var(--s-8));
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: clamp(var(--s-5), 4vw, var(--s-8));
  background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
  box-shadow: var(--shadow-xs);
}

body.public-shell .public-trust-hero-copy {
  max-width: 68ch;
}

body.public-shell .public-trust-hero-copy h1 {
  margin: 0;
  max-width: 13ch;
  font-size: clamp(2.15rem, 4vw, 3.65rem);
  line-height: 1.04;
}

body.public-shell .public-trust-hero-copy .eyebrow {
  margin-block: 0 var(--s-3);
}

body.public-shell .public-trust-hero-copy > p:not(.eyebrow) {
  margin: var(--s-4) 0 0;
  max-width: 58ch;
  color: var(--text-soft);
  font-size: clamp(1rem, 1.18vw, 1.15rem);
  line-height: 1.55;
}

body.public-shell .public-trust-hero-visual {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-strong);
  box-shadow: var(--shadow-sm);
}

body.public-shell .public-trust-hero-visual img {
  width: 100%;
  aspect-ratio: 900 / 620;
  height: auto;
  object-fit: cover;
}

@media (max-width: 900px) {
  body.public-shell .public-trust-hero {
    grid-template-columns: 1fr;
  }

  body.public-shell .public-trust-hero-copy h1 {
    max-width: 16ch;
    font-size: clamp(2rem, 8vw, 3rem);
  }
}

@media (max-width: 560px) {
  body.public-shell .public-trust-hero {
    padding: var(--s-5);
  }
}

html[data-theme="dark"] body.public-shell .public-trust-hero {
  border-color: #506886;
  background: linear-gradient(135deg, #111827 0%, #172033 100%);
}

html[data-theme="dark"] body.public-shell .public-trust-hero-copy :is(h1, p, .eyebrow) {
  color: #f8fafc;
}

html[data-theme="dark"] body.public-shell .public-trust-hero-copy > p:not(.eyebrow) {
  color: #dbeafe;
}

html[data-theme="dark"] body.public-shell .public-trust-hero-visual {
  border-color: #506886;
  background: #111827;
}

/* Demo activation real photo 2026-09-12: activation uses the same local 900x620 media contract as public flows. */
body.public-shell .auth-brand-panel .demo-activation-visual {
  margin: var(--s-5) 0 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 22px 46px rgba(15, 23, 42, 0.22);
}

body.public-shell .auth-brand-panel .demo-activation-visual img {
  display: block;
  width: 100%;
  aspect-ratio: 900 / 620;
  height: auto;
  object-fit: cover;
}

@media (max-width: 760px) {
  body.public-shell .auth-brand-panel .demo-activation-visual {
    margin-top: var(--s-4);
  }
}

html[data-theme="dark"] body.public-shell .auth-brand-panel .demo-activation-visual {
  border-color: #506886;
  background: #111827;
}
