* {
  box-sizing: border-box;
}

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

:root {
  --bg: #eef3f8;
  --panel: #ffffff;
  --ink: #182333;
  --soft-ink: #46546d;
  --muted: #65738a;
  --subtle: #edf2f8;
  --line: #dce4ee;
  --line-strong: #a4bdcf;
  --feature: #174574;
  --feature-2: #205d9d;
  --accent: #1b75bb;
  --accent-dark: #0d5a8a;
  --accent-soft: #d9eefb;
  --danger: #b42318;
  --shadow: rgba(26, 57, 88, 0.12);
  --max: 1180px;
}

body {
  margin: 0;
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.58;
}

body a {
  color: inherit;
}

.container {
  width: min(100%, var(--max));
  margin: 0 auto;
}

.topbar {
  background: #09192b;
  color: #fff;
}

.nav-wrap {
  min-height: 74px;
  display: flex;
  align-items: center;
  gap: 34px;
}

.brand {
  text-decoration: none;
}

.brand-logo {
  display: inline-block;
  font-size: 29px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.05em;
  color: #fff;
}

.brand-logo .brand-dot {
  color: #c9def5;
}

.main-nav {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 30px;
}

.main-nav a {
  color: #bfd7ed;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.nav-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-weight: 700;
  font-size: 12px;
  border-radius: 6px;
  padding: 11px 20px;
}

.nav-button.muted {
  border: 1px solid #557794;
  color: #c9def5;
  background: transparent;
}

.nav-button.primary {
  background: var(--accent);
  color: #fff;
}

.hero {
  background: linear-gradient(135deg, #dceef9, #edf7ff);
  padding: 82px 0 80px;
}

.hero-grid {
  display: grid;
  grid-template-columns: minmax(620px, 1fr) minmax(430px, 480px);
  gap: 40px;
  align-items: center;
}

.hero-copy {
  padding-left: 6px;
}

.kicker {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-dark);
}

.hero-copy h1 {
  margin: 24px 0 20px;
  font-size: clamp(40px, 5vw, 70px);
  line-height: 0.95;
  letter-spacing: -0.06em;
  color: #10263e;
}

.hero-copy .lede {
  max-width: 620px;
  color: var(--soft-ink);
  font-size: 23px;
  line-height: 1.48;
}

.cta-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 34px;
}

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  padding: 12px 24px;
  border-radius: 8px;
  border: 1px solid var(--accent);
  font-weight: 800;
  font-size: 13px;
}

.button-primary {
  background: var(--accent);
  color: white;
}

.button-ghost {
  background: transparent;
  color: var(--accent-dark);
}

.button.compact {
  padding: 8px 16px;
  font-size: 11px;
}

.hero-stats {
  margin-top: 46px;
  display: flex;
  gap: 50px;
}

.hero-stats strong {
  display: block;
  color: var(--accent-dark);
  font-size: 35px;
  line-height: 1;
}

.hero-stats span {
  color: var(--muted);
  display: block;
  margin-top: 10px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.hero-panel {
  display: flex;
  align-items: center;
  justify-content: center;
}

.panel-wrapper {
  width: 100%;
  background: var(--panel);
  border-radius: 20px;
  border: 1px solid var(--line-strong);
  padding: 28px;
  box-shadow: 0 20px 50px var(--shadow);
}

.panel-head {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  font-weight: 800;
  color: var(--muted);
}

.status-dot {
  width: 10px;
  height: 10px;
  display: inline-block;
  background: #1ebf74;
  border-radius: 50%;
}

.panel-code {
  margin-top: 24px;
  padding: 20px;
  background: linear-gradient(120deg, #0d2434, #1e4059);
  border-radius: 10px;
  min-height: 170px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.barcode-preview {
  text-align: center;
}

.barcode-lines {
  display: flex;
  gap: 2px;
  height: 95px;
  align-items: stretch;
}

.barcode-lines span {
  width: 4px;
  border-radius: 2px;
  background: repeating-linear-gradient(180deg, #0a111a 0 7px, transparent 7px 9px);
}

.barcode-lines span:nth-child(3n) {
  background: #fff;
}

.barcode-label {
  margin-top: 12px;
  font-size: 13px;
  color: #fff;
  font-weight: 700;
}

.mini-form {
  margin-top: 24px;
}

.form-row {
  margin-bottom: 14px;
}

.form-row label {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.form-row input,
.form-row select {
  width: 100%;
  min-height: 38px;
  border-radius: 6px;
  border: 1px solid var(--line);
  color: var(--ink);
  font: inherit;
  background: #fff;
  padding: 9px 12px;
}

.panel-actions {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}

.section-pad {
  padding: 70px 0;
}

.section-head h2 {
  margin: 0 0 20px;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.04;
  letter-spacing: -0.04em;
  color: #10263e;
}

.section-head.centered {
  text-align: center;
}

.section-head.centered h2 {
  display: inline-block;
}

.centered-copy {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
}

.cards.three-col {
  display: grid;
  grid-template-columns: repeat(3, minmax(200px, 1fr));
  gap: 28px;
}

.feature-card {
  padding: 30px 24px;
  border-radius: 14px;
  background: var(--panel);
  border: 1px solid var(--line);
  min-height: 250px;
}

.feature-card h3 {
  margin-top: 26px;
  margin-bottom: 10px;
  font-size: 24px;
  line-height: 1.05;
}

.feature-card p {
  margin: 0;
  color: var(--soft-ink);
}

.feature-card .icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent-dark);
  display: grid;
  place-items: center;
  font-size: 28px;
  font-weight: 900;
}

.text-link {
  display: inline-block;
  margin-top: 12px;
  color: var(--accent-dark);
  font-weight: 700;
}

.two-col {
  display: grid;
  grid-template-columns: minmax(440px, 1fr) minmax(330px, 0.8fr);
  gap: 58px;
  align-items: center;
}

.check-list {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.check-list li {
  position: relative;
  padding-left: 34px;
  margin-bottom: 14px;
}

.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--accent);
  font-weight: 900;
}

.image-panel img,
.image-strip img {
  max-width: 100%;
  border-radius: 14px;
}

.image-panel {
  background: #fff;
  border-radius: 14px;
  border: 1px solid var(--line);
  padding: 16px;
}

.scanner {
  background: #eef7fc;
}

.compact-grid {
  align-items: center;
}

.api-wrap {
  border-radius: 24px;
  background: #10263e;
  padding: 54px;
  color: #eefbff;
}

.api-wrap .section-head h2 {
  color: white;
}

.api-wrap p {
  color: #bfd7ed;
}

.api-code {
  margin-top: 26px;
}

.api-code pre {
  margin: 0;
  border-radius: 12px;
  padding: 20px;
  overflow-x: auto;
  background: #071927;
  color: #d4f3ff;
  border: 1px solid #395c73;
}

.api-code code {
  font-family: "Cascadia Code", Consolas, monospace;
  font-size: 12px;
}

.faq-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(300px, 1fr));
  gap: 24px;
}

.faq-list article {
  background: white;
  border-radius: 12px;
  border: 1px solid var(--line);
  padding: 20px;
}

.faq-list article h3 {
  margin: 0 0 10px;
  font-size: 24px;
}

.faq-list article p {
  margin: 0 0 10px;
}

.about {
  background: #162b3d;
  color: white;
}

.about .section-head h2 {
  color: white;
}

.about p {
  color: #ccdae8;
}

.social-links {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 20px;
}

.social-links a {
  color: white;
  font-weight: 800;
  text-decoration: none;
}

.copyright {
  margin-top: 20px;
  color: #acbed2;
}

.footer {
  background: #071824;
  color: #bfd7ed;
  padding: 38px 0;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.vvip-home .scanner,
.vvip-home .data-generators,
.vvip-home .api,
.vvip-home .referral,
.vvip-home .packages,
.vvip-home .tools,
.vvip-home .faq,
.vvip-home .about {
  display: none;
}

.footer-about { max-width: 650px; padding-right: 42px; }
.footer-about h3 { margin: 22px 0 8px; color: #fff; }
.footer-about p { margin: 0 0 14px; color: #aebfd0; font-size: 13px; }

.footer h3 {
  margin-top: 0;
  color: white;
  font-size: 18px;
}

.footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-links li {
  margin-bottom: 8px;
}

.footer-links a {
  color: #bfd7ed;
  text-decoration: none;
}

.footer-brand {
  display: inline-block;
  margin-top: 6px;
}

/* States and calculator page layout support */
.states-page {
  background: linear-gradient(180deg, #eef8ff, #f8fbfd);
}

.compact-hero {
  padding: 80px 0;
}

.compact-hero h1 {
  font-size: clamp(34px, 4vw, 52px);
  margin-bottom: 28px;
}

.state-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-top: 40px;
}

.state-panel {
  background: white;
  border-radius: 15px;
  border: 1px solid var(--line);
  padding: 24px;
}

.state-panel h3 {
  margin: 0 0 16px;
  font-size: 28px;
  color: var(--accent-dark);
}

.state-links {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}

.state-links a,
.state-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  color: var(--accent-dark);
  font-weight: 700;
  text-decoration: none;
  padding: 10px 13px;
  border-radius: 10px;
  background: var(--subtle);
  border: 1px solid var(--line);
  line-height: 1.25;
}

.state-entry {
  gap: 9px;
}

.state-entry > span {
  min-width: 0;
  color: var(--accent-dark);
  font-weight: 700;
}

.state-entry select {
  min-width: 82px;
  max-width: 112px;
  padding: 5px 23px 5px 7px;
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  background: #fff;
  color: var(--accent-dark);
  font: 700 11px/1.2 inherit;
  cursor: pointer;
}

.state-entry select:focus-visible {
  outline: 3px solid rgba(27, 117, 187, .18);
  border-color: var(--accent);
}

.state-links a span {
  flex: 0 0 auto;
  margin-left: 6px;
  color: #198754;
  font-size: 11px;
}

@media (max-width: 1050px) {
  .state-links { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .state-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .state-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 390px) {
  .state-links { grid-template-columns: 1fr; }
}

.info-strip {
  border-top: 1px solid var(--line);
  margin-top: 30px;
  padding-top: 26px;
  color: var(--soft-ink);
}

.info-strip p {
  margin: 0;
}

.state-header {
  padding-top: 8px;
}

.state-header h1 {
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.02;
  margin: 0;
  color: #2a2f36;
}

.state-header .state-meta {
  margin-top: 10px;
}

.state-header .meta-line {
  display: inline-block;
  color: #6a707b;
  font-size: 26px;
  line-height: 1.1;
  font-weight: 500;
}

.state-header .star-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  color: #d4a545;
  border: 1px solid #d4a545;
  font-size: 14px;
}

.state-header .state-chip-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 18px;
}

.state-header .chip-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 15px;
  border-radius: 8px;
  border: 1px solid #cfd8df;
  background: #f7f9fb;
  color: #7a8795;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}

.nav-button.muted.active {
  border-color: #8fc8f2;
  background: rgba(27, 117, 187, 0.22);
  color: #fff;
}

.country-picker {
  width: min(100% - 32px, 720px);
  margin: 34px auto 70px;
  padding: 32px;
}

.code128-panel,
.code128-output {
  width: min(100% - 32px, 920px);
  margin: 28px auto;
  padding: 28px;
}

.code128-panel label {
  display: grid;
  gap: 8px;
  font-weight: 800;
}

.code128-panel input {
  width: 100%;
  min-height: 50px;
  padding: 10px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: 600 16px/1.3 monospace;
}

.code128-preview {
  width: min(100%, 886px);
  aspect-ratio: 886 / 445;
  min-width: min(280px, 100%);
  max-width: 100%;
  margin-inline: auto;
  overflow: hidden;
  resize: horizontal;
  background: transparent;
  box-sizing: border-box;
  outline: 1px dashed #9db1bf;
  border-radius: 8px;
}

.code128-preview svg {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
}

.country-picker > label {
  display: block;
  margin-bottom: 9px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 800;
}

.country-picker select {
  width: 100%;
  min-height: 52px;
  padding: 0 15px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: 600 15px/1.4 inherit;
}

.country-picker select:focus {
  border-color: var(--accent);
  outline: 3px solid rgba(27, 117, 187, 0.15);
}

.document-options {
  margin: 24px 0 0;
  padding: 0;
  border: 0;
}

.document-options legend {
  padding: 0;
  color: var(--ink);
  font-size: 14px;
  font-weight: 800;
}

.document-options > p {
  margin: 5px 0 12px;
  color: var(--muted);
  font-size: 12px;
}

.document-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.document-choice {
  cursor: pointer;
}

.document-choice input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.document-choice span {
  min-height: 78px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 10px;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  text-align: center;
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

.document-choice small {
  color: var(--muted);
  font-size: 11px;
}

.document-choice input:checked + span {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 3px rgba(27, 117, 187, 0.14);
  color: var(--accent-dark);
}

.document-choice input:focus-visible + span {
  outline: 3px solid rgba(27, 117, 187, 0.2);
}

.document-options:disabled .document-choice {
  cursor: not-allowed;
}

.document-options:disabled .document-choice span {
  opacity: 0.48;
  background: var(--subtle);
}

.international-document-form {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.international-document-form[hidden] {
  display: none;
}

.document-form-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.document-form-heading h2 {
  margin: 5px 0 0;
  font-size: 25px;
}

.format-badge {
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--subtle);
  color: var(--accent-dark);
  font: 700 11px/1.2 monospace;
  white-space: nowrap;
}

.international-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 20px;
}

.international-field-grid label {
  display: grid;
  gap: 6px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
}

.international-field-grid input,
.international-field-grid select {
  width: 100%;
  min-height: 44px;
  padding: 8px 11px;
  border: 1px solid var(--line-strong);
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  font: 600 14px/1.3 inherit;
}

.generated-identifier {
  display: grid;
  gap: 5px;
  margin-top: 20px;
  padding: 18px;
  border-radius: 9px;
  background: #0d2438;
  color: #fff;
}

.generated-identifier > span,
.generated-identifier small {
  color: #bdd3e7;
  font-size: 11px;
}

.generated-identifier output {
  overflow-wrap: anywhere;
  font: 800 clamp(17px, 3vw, 24px)/1.3 monospace;
  letter-spacing: 0.08em;
}

.uk-calculate-button {
  width: fit-content;
  margin-top: 7px;
  cursor: pointer;
}


.country-result {
  display: grid;
  gap: 2px;
  margin-top: 18px;
  padding: 16px 18px;
  border-left: 4px solid var(--accent);
  border-radius: 6px;
  background: var(--accent-soft);
}

.country-result[hidden] {
  display: none;
}

.country-result span,
.country-result small,
.country-note {
  color: var(--muted);
}

.country-result strong {
  font-size: 20px;
}

.country-note {
  margin: 20px 0 0;
  font-size: 13px;
}

.state-header .chip-chip.active {
  background: linear-gradient(180deg, #d7ebff, #cce0ff);
  border-color: #7db8e8;
  color: #225aa0;
}

.centered-block {
  text-align: center;
}

.real-id {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: #d3e8fb;
  color: var(--accent-dark);
  font-size: 12px;
  font-weight: 800;
}

.badge-green {
  background: #ccefdc;
  color: #12623b;
}

.copy {
  color: var(--soft-ink);
}

.compact-panel {
  margin-top: 20px;
}

.state-orientation-panel {
  background: #f7faff;
  border-radius: 14px;
  border: 1px solid var(--line);
  padding: 24px;
}

.dl-form-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
}

.state-header .chip-chip:focus-visible {
  outline: 3px solid rgba(29, 112, 184, .25);
  outline-offset: 2px;
}

.scanner-profile-note {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.legacy-jurisdiction #jurisdiction-format-note {
  color: #9a6200;
  font-weight: 700;
}

.state-form-grid .form-row {
  min-width: 0;
}

.state-form-grid .form-row { grid-column: span 3; }
.state-form-grid .form-row:nth-child(7),
.state-form-grid .form-row:nth-child(8),
.state-form-grid .form-row:nth-child(9),
.state-form-grid .form-row:nth-child(10) { grid-column: span 2; }
.state-form-grid .form-row:nth-child(11),
.state-form-grid .form-row:nth-child(12),
.state-form-grid .form-row:nth-child(13) { grid-column: span 2; }
.state-form-grid .form-row:nth-child(14),
.state-form-grid .form-row:nth-child(15) { grid-column: span 3; }
.state-form-grid .form-row:nth-child(20),
.state-form-grid .form-row:nth-child(21),
.state-form-grid .form-row:nth-child(22) { grid-column: span 4; }

.state-form-grid .form-row input,
.state-form-grid .form-row select {
  width: 100%;
}

.state-form-grid .form-row:nth-child(1),
.state-form-grid .form-row:nth-child(2),
.state-form-grid .form-row:nth-child(3),
.state-form-grid .form-row:nth-child(4) {
  min-width: 0;
}

.state-output {
  margin-top: 24px;
  padding: 14px 18px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #eef7ff;
  color: #44516a;
}

.state-output p {
  margin: 0;
  font-size: 16px;
  color: #42536b;
}

.state-barcode {
  margin-top: 18px;
  padding: 18px;
  overflow: visible;
  border-radius: 10px;
  background: #fff;
  text-align: center;
  box-sizing: border-box;
}

.state-barcode svg {
  display: block;
  width: min(100%, 680px);
  height: auto;
  max-width: 100%;
  max-height: none;
  margin-inline: auto;
  overflow: visible;
  object-fit: contain;
}

.state-barcode-fit {
  width: min(100%, 1504.42px);
  aspect-ratio: 1504.42 / 390;
  min-width: min(280px, 100%);
  max-width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  resize: horizontal;
  margin-inline: auto;
  padding: 8px;
  border: 1px dashed #9db1bf;
  border-radius: 8px;
  box-sizing: border-box;
  position: relative;
}

.state-barcode-fit.texas-barcode-fit {
  width: min(100%, 718px);
  height: 200px;
  aspect-ratio: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: 1px dashed #9db1bf;
  resize: none;
  overflow: visible;
  margin-inline: 0;
  align-items: flex-start;
  justify-content: flex-start;
  transform-origin: top left;
}

.state-barcode.texas-barcode-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}

.state-barcode-fit.texas-barcode-fit svg {
  display: block;
  transform-origin: top left;
}

.texas-barcode-stage > .barcode-size-readout {
  position: absolute;
  right: 18px;
  bottom: 2px;
  left: 18px;
}

.texas-center-scale-handle {
  position: absolute;
  top: auto;
  right: -9px;
  bottom: -9px;
  width: 18px;
  height: 18px;
  transform: none;
  border: 2px solid #fff;
  border-radius: 9px;
  background: var(--accent);
  box-shadow: 0 2px 8px rgba(9, 25, 43, .28);
  cursor: nwse-resize;
  touch-action: none;
  z-index: 4;
}

.texas-barcode-fit.is-scaling {
  outline-color: var(--accent);
}

.state-barcode-fit svg {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
}

.barcode-size-readout {
  margin: 8px 0 0 !important;
  color: var(--muted) !important;
  font: 11px/1.3 monospace !important;
  text-align: center;
}

@media print {
  .state-barcode,
  .state-barcode-fit {
    overflow: visible !important;
  }

  .state-barcode-fit {
    resize: none !important;
    border: 0 !important;
    padding: 0 !important;
  }

  .state-barcode svg {
    width: auto !important;
    max-width: 2.975in !important;
    max-height: 1.5in !important;
    break-inside: avoid;
  }
}

.state-downloads {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
}

.state-downloads[hidden] {
  display: none;
}

.state-form-grid input.field-error,
.state-form-grid select.field-error,
.mrz-form input.field-error,
.mrz-form select.field-error {
  border-color: #d33f49;
  box-shadow: 0 0 0 3px rgba(211, 63, 73, .12);
}

.field-format-help {
  display: block;
  min-height: 16px;
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.field-format-help.invalid {
  color: #b4232f;
  font-weight: 700;
}

.field-format-help.valid {
  color: #18794e;
}

.state-secondary-row {
  margin-top: 12px;
}

.create-button {
  min-width: 132px;
  margin-top: 12px;
}

.state-primary-button-wrap {
  display: flex;
  justify-content: center;
}

.label-line {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.calc-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, #eefaff, #dff2ff);
  color: var(--accent-dark);
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  padding: 0;
  position: relative;
}

.calc-trigger::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 12px);
  transform: translate(-50%, 6px);
  background: #102b36;
  color: white;
  border-radius: 8px;
  padding: 7px 11px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: 10;
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.2);
}

.calc-trigger::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: calc(100% + 7px);
  transform: translate(-50%, 2px)
  rotate(45deg);
  width: 10px;
  height: 10px;
  background: #102b36;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: 8;
}

.calc-trigger:hover::after,
.calc-trigger:focus::after,
.calc-trigger:hover::before,
.calc-trigger:focus::before,
.calc-trigger:focus-visible::after,
.calc-trigger:focus-visible::before {
  opacity: 1;
  transform: translate(-50%, 0);
}

.calc-trigger:hover,
.calc-trigger:focus {
  outline: 2px solid rgba(30, 105, 210, 0.22);
  border-color: var(--accent);
}

.info-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-left: 3px;
  margin-right: 3px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid #aab3ba;
  background: #eef3f4;
  color: #234d68;
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  position: relative;
}

.info-trigger::after {
  content: attr(data-info);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 12px);
  transform: translate(-50%, 6px);
  background: #264a57;
  color: white;
  border-radius: 8px;
  padding: 7px 11px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  width: max-content;
  max-width: min(360px, 78vw);
  white-space: normal;
  text-align: left;
  line-height: 1.45;
  padding: 10px 12px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: 11;
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.2);
}

.info-trigger::before {
  content: '';
  position: absolute;
  left: 50%;
  bottom: calc(100% + 7px);
  transform: translate(-50%, 2px) rotate(45deg);
  width: 10px;
  height: 10px;
  background: #264a57;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
  z-index: 8;
}

.info-trigger:hover::after,
.info-trigger:focus::after,
.info-trigger:hover::before,
.info-trigger:focus::before {
  opacity: 1;
  transform: translate(-50%, 0);
}

.info-trigger:hover,
.info-trigger:focus {
  outline: 2px solid rgba(66, 114, 170, 0.22);
  border-color: #356d99;
}

.dl-form-grid .label-text,
.mrz-form .label-text {
  display: block;
  margin-bottom: 4px;
  font-size: 11px;
  font-weight: 800;
  color: var(--muted);
  text-transform: uppercase;
}

.dl-form-grid input,
.mrz-form input,
.mrz-form select,
.inline-select select {
  width: 100%;
  min-height: 40px;
  padding: 9px 12px;
  border-radius: 7px;
  border: 1px solid var(--line);
  background: white;
  color: var(--ink);
}

.mrz-layout {
  display: grid;
  grid-template-columns: minmax(420px, 1fr) minmax(340px, 0.88fr);
  gap: 28px;
  align-items: start;
}

.mrz-form-panel,
.output-panel {
  background: white;
  border-radius: 14px;
  border: 1px solid var(--line);
  padding: 24px;
}

.compact-head h2 {
  font-size: 26px;
  margin: 0 0 18px;
}

.mrz-form .row-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(210px, 1fr));
  gap: 14px;
}

.mrz-form .inline-select {
  display: block;
  margin-bottom: 12px;
}

.mrz-output {
  min-height: 210px;
  margin: 0;
  padding: 16px;
  background: #071927;
  color: #d2effe;
  border-radius: 10px;
  overflow-x: auto;
  white-space: pre-wrap;
  font-family: "Courier New", monospace;
  font-size: clamp(12px, 1.35vw, 18px);
  line-height: 1.65;
  letter-spacing: .04em;
}

.mrz-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.mrz-actions[hidden] { display: none; }

.note {
  color: var(--muted);
  font-size: 12px;
}

.mrz-info {
  margin-top: 34px;
}

.mrz-info article {
  background: white;
  border-radius: 14px;
  border: 1px solid var(--line);
  padding: 24px;
}

.inline-image {
  max-width: 100%;
  border-radius: 12px;
}

@media (max-width: 900px) {
  .hero-grid,
  .two-col,
  .cards.three-col,
  .faq-list,
  .footer-grid,
  .state-grid,
  .mrz-layout,
  .dl-form-grid,
  .mrz-form .row-grid {
    grid-template-columns: 1fr;
  }

  .hero {
    padding-top: 50px;
  }

  .state-form-grid .form-row,
  .state-form-grid .form-row:nth-child(n) {
    grid-column: 1;
  }

  .hero-copy h1 {
    font-size: 44px;
  }

  .hero-copy .lede {
    font-size: 20px;
  }

  .hero-stats {
    flex-wrap: wrap;
  }

  .main-nav {
    display: none;
  }

  .nav-wrap {
    justify-content: space-between;
  }
}

@media (max-width: 560px) {
  .nav-wrap {
    min-height: auto;
    padding: 14px 12px;
    flex-wrap: wrap;
    gap: 12px;
  }

  .nav-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
  }

  .nav-button {
    padding: 9px 8px;
  }

  .country-picker {
    width: calc(100% - 24px);
    padding: 22px 18px;
  }

  .document-choice-grid {
    grid-template-columns: 1fr;
  }

  .international-field-grid {
    grid-template-columns: 1fr;
  }

  .document-form-heading {
    flex-direction: column;
  }
}

/* Public storefront layer. Scoped so the existing generator pages are unchanged. */
.shop-page { background: #f3f5f7; color: #172033; }
.shop-page [hidden] { display: none !important; }
.shop-page button, .shop-page input, .shop-page select { font: inherit; }
.shop-header { position: sticky; top: 0; z-index: 30; background: #071827; color: #fff; box-shadow: 0 3px 16px rgba(0,0,0,.18); }
.shop-nav { min-height: 76px; display: flex; align-items: center; gap: 24px; padding: 10px 0; }
.store-brand { display: inline-flex; align-items: center; gap: 9px; color: #fff; font-size: 19px; font-weight: 850; letter-spacing: -.02em; }.store-brand small { display: block; color: #9fb5c6; font-size: 8px; letter-spacing: .24em; line-height: 1; }.store-brand-mark { width: 37px; height: 37px; display: grid; place-items: center; border-radius: 10px 4px 10px 4px; background: linear-gradient(145deg,#ffbf50,#e8881b); color: #102334; font-size: 23px; font-weight: 950; }
.shop-search { flex: 1; display: grid; grid-template-columns: 105px 1fr 50px; height: 46px; background: #fff; border: 3px solid transparent; border-radius: 9px; overflow: hidden; }
.shop-search:focus-within { border-color: #f3ac32; }
.shop-search select, .shop-search input { min-width: 0; border: 0; outline: 0; padding: 0 14px; color: #172033; background: #fff; }
.shop-search select { border-right: 1px solid #dfe5eb; background: #f4f5f6; font-size: 12px; }
.shop-search button { border: 0; background: #f3ac32; color: #172033; font-size: 25px; cursor: pointer; }
.shop-account-wrap { position: relative; display: flex; align-items: center; gap: 3px; }
.shop-account-wrap:has(.guest-actions[hidden]) { min-width: 43px; justify-content: center; }
.shop-account-wrap:has(.guest-actions[hidden]) .account-trigger { padding: 4px; }
.guest-actions { display: flex; align-items: center; gap: 3px; white-space: nowrap; }.guest-actions span { color: #657c8f; font-size: 11px; }.guest-actions button { padding: 4px 3px; border: 0; background: transparent; color: #d8e5ee; font-size: 11px; font-weight: 700; cursor: pointer; }.guest-actions button:hover { color: #f3ac32; text-decoration: underline; }
.account-trigger { display: flex; align-items: center; gap: 9px; color: #fff; background: transparent; border: 0; padding: 7px; text-align: left; cursor: pointer; }
.account-trigger small, .account-trigger strong { display: block; line-height: 1.2; max-width: 112px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-trigger small { color: #b9c7d5; font-size: 11px; }.account-trigger strong { font-size: 13px; }
.profile-icon { width: 35px; height: 35px; display: grid; place-items: center; border: 2px solid #d6e5f2; border-radius: 50%; color: #d6e5f2; font-size: 13px; }
.profile-icon svg { width: 24px; height: 24px; overflow: visible; fill: #d6e5f2; stroke: #d6e5f2; stroke-width: 2; stroke-linecap: round; }
.cart-button { border: 1px solid #446176; border-radius: 8px; background: #10283b; color: #fff; padding: 10px 13px; cursor: pointer; }.cart-button span { display: inline-grid; min-width: 22px; height: 22px; place-items: center; margin-left: 4px; border-radius: 20px; background: #f3ac32; color: #172033; font-weight: 800; }
.account-menu { position: absolute; right: 0; top: calc(100% + 12px); width: 235px; padding: 9px; border: 1px solid #dce3e9; border-radius: 12px; background: #fff; color: #172033; box-shadow: 0 18px 44px rgba(2,17,30,.25); }
.account-menu::before { content: ''; position: absolute; right: 28px; top: -7px; width: 12px; height: 12px; background: #fff; transform: rotate(45deg); border-left: 1px solid #dce3e9; border-top: 1px solid #dce3e9; }
.account-menu button { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 12px; border: 0; border-radius: 8px; background: transparent; color: #26364b; text-align: left; cursor: pointer; }.account-menu button:hover { background: #edf4fa; }.account-menu button span:last-child { color: #607087; font-size: 12px; }
.account-menu .vvip-menu-item { position: relative; margin: 7px 0; overflow: hidden; background: linear-gradient(120deg,#132b45,#273f62); color: #fff; opacity: 0; filter: blur(7px); transition: opacity .2s ease,filter .2s ease; }.account-menu .vvip-menu-item:hover,.account-menu .vvip-menu-item:focus-visible { opacity: .72; filter: blur(.7px); outline: 1px solid #d6ad5c; }.account-menu .vvip-menu-item span,.account-menu .vvip-menu-item small { position: relative; z-index: 1; }.account-menu .vvip-menu-item small { color: #b9c8da; }.account-menu .logout-item { color: #b42318; border-top: 1px solid #edf0f3; border-radius: 0; }
.shop-category-nav { background: #102c42; color: #e7f0f6; }.shop-category-nav .container { display: flex; justify-content: center; gap: 36px; overflow-x: auto; }.shop-category-nav a { padding: 10px 0; flex: 0 0 auto; text-decoration: none; font-size: 13px; }
.shop-hero { min-height: 455px; background: radial-gradient(circle at 74% 28%,#337db3 0,#17486e 30%,#0b263c 70%); color: #fff; overflow: hidden; }.shop-hero-inner { min-height: 455px; display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 70px; }.shop-hero h1 { max-width: 690px; margin: 10px 0 16px; font-size: clamp(38px,5vw,65px); line-height: 1.02; letter-spacing: -.04em; }.shop-hero p { max-width: 610px; margin: 0 0 26px; color: #cae0ef; font-size: 18px; }.shop-eyebrow { color: #f3ac32; font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.hero-device { justify-self: center; width: min(390px,90%); filter: drop-shadow(0 35px 30px rgba(0,0,0,.28)); transform: perspective(800px) rotateY(-9deg); }.device-screen { aspect-ratio: 1.55; display: flex; align-items: end; gap: 16px; padding: 28px; border: 9px solid #18202a; border-radius: 17px; background: linear-gradient(145deg,#eaf4fc,#8dc8e9); }.device-screen span { flex: 1; border-radius: 8px 8px 2px 2px; background: #174574; }.device-screen span:nth-child(1){height:45%}.device-screen span:nth-child(2){height:78%}.device-screen span:nth-child(3){height:60%}.device-base { width: 108%; height: 18px; margin-left: -4%; border-radius: 2px 2px 14px 14px; background: #d5dde3; }
.shop-benefits { position: relative; z-index: 2; margin-top: -36px; display: grid; grid-template-columns: repeat(4,1fr); border-radius: 14px; background: #fff; box-shadow: 0 15px 35px rgba(17,42,66,.12); }.shop-benefits div { padding: 22px 25px; border-right: 1px solid #e6ebef; }.shop-benefits div:last-child { border: 0; }.shop-benefits strong,.shop-benefits span { display: block; }.shop-benefits span { color: #68788c; font-size: 13px; }
.shop-section { padding-top: 72px; padding-bottom: 75px; }.shop-section-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 24px; }.shop-section h2,.membership-banner h2 { margin: 5px 0 0; font-size: 31px; line-height: 1.1; }.text-button { padding: 0; border: 0; background: transparent; color: #17699e; font-weight: 700; cursor: pointer; }
.catalog-pagination { display: flex; justify-content: center; gap: 7px; margin: 34px 0 0; }.catalog-pagination button { min-width: 39px; height: 39px; border: 1px solid #cbd5dd; border-radius: 7px; background: #fff; color: #26384b; cursor: pointer; }.catalog-pagination button:hover { border-color: #1b75bb; }.catalog-pagination button.active { border-color: #174574; background: #174574; color: #fff; font-weight: 800; box-shadow: 0 4px 12px rgba(23,69,116,.22); }
.product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }.product-card { position: relative; padding: 14px 14px 18px; border: 1px solid #e0e5e9; border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(23,49,74,.07); transition: transform .18s ease,box-shadow .18s ease; }.product-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(23,49,74,.13); }.product-art { height: 190px; display: grid; place-items: center; margin-bottom: 14px; overflow: hidden; border-radius: 9px; background: #edf1f4; }.product-art img { width: 100%; height: 100%; display: block; object-fit: cover; }.product-badge { display: inline-block; padding: 3px 8px; border-radius: 4px; background: #dceef9; color: #17699e; font-size: 10px; font-weight: 800; text-transform: uppercase; }.product-card h3 { margin: 10px 0 3px; font-size: 17px; }.product-card p { min-height: 44px; margin: 5px 0 8px; color: #69778a; font-size: 13px; }.product-rating { color: #e89416; font-size: 12px; letter-spacing: .03em; }.product-rating span { margin-left: 4px; color: #557086; letter-spacing: 0; }.product-price { min-height: 51px; }.product-price small,.product-price strong { display: block; }.product-price small { color: #788697; font-size: 11px; text-decoration: line-through; }.product-price strong { font-size: 23px; line-height: 1.1; }.delivery-line { margin: 8px 0 12px; color: #2c6245; font-size: 11px; font-weight: 700; }.product-meta { display: flex; align-items: center; justify-content: space-between; }.product-meta > span { color: #377552; font-size: 11px; }.product-meta button { padding: 8px 10px; border: 0; border-radius: 7px; background: #f3ac32; color: #152334; font-size: 12px; font-weight: 800; cursor: pointer; }
.membership-banner { margin-bottom: 76px; padding: 35px 42px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-radius: 15px; background: linear-gradient(120deg,#0b2235,#174f78); color: #fff; box-shadow: 0 18px 40px rgba(9,31,49,.18); }.membership-banner p { margin: 8px 0 0; color: #bed4e4; }.shop-footer { padding: 52px 0 20px; background: #071827; color: #b9c8d5; }.shop-footer p { margin: 12px 0 20px; }.shop-footer-grid { display: grid; grid-template-columns: 1.5fr repeat(4,1fr); gap: 46px; }.shop-footer h3 { margin: 0 0 15px; color: #fff; font-size: 14px; }.shop-footer-grid a,.shop-footer-grid button { display: block; margin: 9px 0; padding: 0; border: 0; background: transparent; color: #aebfcd; font-size: 12px; text-decoration: none; text-align: left; cursor: pointer; }.shop-footer-grid a:hover,.shop-footer-grid button:hover { color: #fff; text-decoration: underline; }.footer-store { padding-right: 18px; }.payment-badges { display: flex; flex-wrap: wrap; gap: 7px; }.payment-badges span { padding: 5px 8px; border: 1px solid #40586b; border-radius: 4px; background: #fff; color: #16283a; font-size: 9px; font-weight: 900; }.shop-footer-bottom { display: flex; justify-content: space-between; gap: 25px; margin-top: 42px; padding-top: 19px; border-top: 1px solid #23394a; color: #8196a7; font-size: 11px; }.shop-footer-bottom a { margin-left: 18px; color: #9fb1bf; text-decoration: none; }
.shop-dialog { width: min(92vw,440px); padding: 34px; border: 0; border-radius: 17px; color: #172033; box-shadow: 0 28px 80px rgba(0,0,0,.35); }.shop-dialog::backdrop { background: rgba(4,17,28,.68); backdrop-filter: blur(4px); }.shop-dialog h2 { margin: 7px 0 6px; font-size: 29px; }.shop-dialog > p,#auth-copy { color: #66758a; }.dialog-close { position: absolute; right: 15px; top: 12px; border: 0; background: transparent; color: #637286; font-size: 28px; cursor: pointer; }.shop-dialog form { display: grid; gap: 14px; margin-top: 22px; }.shop-dialog label { display: grid; gap: 6px; font-size: 13px; font-weight: 700; }.shop-dialog input { width: 100%; padding: 12px; border: 1px solid #bdc9d4; border-radius: 8px; outline: 0; }.shop-dialog input:focus { border-color: #1b75bb; box-shadow: 0 0 0 3px #d9eefb; }.shop-dialog .button { border: 0; cursor: pointer; }.auth-toggle { display: block; margin: 18px auto 0; }.form-error { min-height: 18px; margin: -4px 0; color: #b42318; font-size: 12px; }.vvip-mark { display: inline-block; padding: 5px 10px; border-radius: 5px; background: #152d47; color: #f3c76d; font-weight: 900; letter-spacing: .15em; }.account-detail p { display: flex; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid #e7ebef; }.account-detail p span { color: #68768a; }.balance-card { margin-top: 20px; padding: 24px; border-radius: 12px; background: linear-gradient(135deg,#123c5c,#1b75bb); color: #fff; }.balance-card small,.balance-card strong { display: block; }.balance-card strong { margin-top: 8px; font-size: 35px; }.empty-state { justify-content: center !important; color: #68768a; }
.profile-id-card { margin-top: 20px; padding: 22px; border-radius: 12px; background: #102b42; color: #fff; }.profile-id-card small,.profile-id-card strong,.profile-id-card span { display: block; }.profile-id-card small { color: #9db5c8; font-size: 9px; letter-spacing: .16em; }.profile-id-card strong { margin: 7px 0; font: 900 23px/1.2 monospace; letter-spacing: .15em; }.profile-id-card span { color: #b9cad7; font-size: 11px; }

.pricing-page { background: #f2f5f8; }.pricing-page .page-wrap { max-width: 1120px; }.pricing-heading { max-width: 720px; margin: 0 auto 40px; text-align: center; }.pricing-heading > span { color: #1b75bb; font-size: 11px; font-weight: 900; letter-spacing: .18em; }.pricing-heading h1 { margin: 8px 0 12px; font-size: clamp(34px,5vw,50px); line-height: 1.08; letter-spacing: -.035em; }.pricing-heading p { margin: 0; color: #64758a; }.pricing-page .pricing-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }.pricing-page .price-card { position: relative; display: flex; flex-direction: column; min-height: 390px; padding: 29px; overflow: hidden; border: 1px solid #dce4eb; border-radius: 15px; background: #fff; box-shadow: 0 10px 28px rgba(22,49,75,.08); }.pricing-page .price-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(22,49,75,.13); }.package-label { color: #1b75bb; font-size: 10px; font-weight: 900; letter-spacing: .16em; }.pricing-page .price-card h3 { margin: 8px 0 0; font-size: 23px; }.pricing-page .price { margin: 13px 0 8px; color: #10283b; font-size: 55px; font-weight: 900; line-height: 1; }.pricing-page .price sup { position: relative; top: -20px; margin-right: 3px; font-size: 20px; }.pricing-page .price-card p { min-height: 47px; margin: 0 0 14px; color: #66768a; font-size: 13px; }.pricing-page .price-card ul { margin: 0 0 24px; padding: 0; list-style: none; }.pricing-page .price-card li { position: relative; margin: 8px 0; padding-left: 20px; color: #42546a; font-size: 12px; }.pricing-page .price-card li::before { content: '✓'; position: absolute; left: 0; color: #23845b; font-weight: 900; }.pricing-page .price-card .button { width: 100%; margin-top: auto; text-align: center; }.highlighted-price-card { border: 2px solid #1b75bb !important; }.bulk-price-card { border: 2px solid #d99a27 !important; }.popular-ribbon { position: absolute; right: -42px; top: 19px; width: 150px; padding: 5px 0; transform: rotate(38deg); background: #1b75bb; color: #fff; font-size: 8px; font-weight: 900; letter-spacing: .1em; text-align: center; }.bulk-price-card .popular-ribbon { background: #d99a27; color: #162536; }.pricing-note { display: flex; align-items: center; gap: 18px; margin: 28px 0 10px; padding: 19px 23px; border: 1px solid #d6e1e8; border-radius: 11px; background: #e8f2f8; }.pricing-note strong { flex: 0 0 auto; }.pricing-note span { color: #5c7083; font-size: 13px; }
@media (max-width: 850px) { .pricing-page .pricing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.pricing-page .page-wrap { padding-inline: 16px; } }
@media (max-width: 540px) { .pricing-page .pricing-grid { grid-template-columns: 1fr; }.pricing-page .price-card { min-height: 355px; }.pricing-note { align-items: flex-start; flex-direction: column; gap: 5px; } }
.nowpayments-widget-dialog{width:min(96vw,470px);max-height:94vh;padding:24px;border:0;border-radius:16px;color:#172033;box-shadow:0 28px 80px rgba(0,0,0,.38)}.nowpayments-widget-dialog::backdrop{background:rgba(4,17,28,.72);backdrop-filter:blur(4px)}.nowpayments-widget-dialog h2{margin:7px 0 5px}.nowpayments-widget-dialog>p{margin:0 30px 17px 0;color:#66758a;font-size:13px}.nowpayments-widget-close{position:absolute;right:12px;top:9px;border:0;background:transparent;color:#637286;font-size:28px;cursor:pointer}.nowpayments-widget-frame{position:relative;display:grid;place-items:center;min-height:300px;overflow:hidden;border:1px solid #dce4eb;border-radius:11px;background:#f5f7f9}.nowpayments-widget-frame.is-loading::before{content:"Loading secure payment…";position:absolute;color:#5f6f82;font-size:14px}.nowpayments-widget-frame.is-loading::after{content:"";position:absolute;width:30px;height:30px;margin-top:-46px;border:3px solid #d8e0e8;border-top-color:#1877d2;border-radius:50%;animation:nowpayments-spin .75s linear infinite}.nowpayments-widget-frame iframe{position:relative;z-index:1;display:block;width:410px;max-width:100%;height:696px;border:0;background:transparent}.nowpayments-widget-frame.is-loading iframe{visibility:hidden}@keyframes nowpayments-spin{to{transform:rotate(360deg)}}@media(max-width:480px){.nowpayments-widget-dialog{padding:18px 10px}.nowpayments-widget-frame iframe{width:100%}}

/* Pricing stays three across on desktop and flows into additional rows. */
.pricing-page .pricing-grid { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; }
.document-order-page [hidden]{display:none!important}.order-page-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:55px;align-items:start;max-width:1080px}.order-intro>span{color:#1b75bb;font-size:11px;font-weight:900;letter-spacing:.17em}.order-intro h1{margin:8px 0 14px;font-size:46px;line-height:1.06}.order-intro>p{color:#65758a}.order-intro>div{margin-top:22px;padding:15px;border-left:3px solid #1b75bb;background:#e7f1f7}.order-intro strong,.order-intro small{display:block}.order-intro small{color:#66778a}.order-form-card{padding:30px;border:1px solid #dce4eb;border-radius:15px;background:#fff;box-shadow:0 14px 38px rgba(20,49,76,.1)}.order-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.order-form-grid label{display:grid;gap:6px;font-size:12px;font-weight:800}.order-form-grid label small{color:#7a8797;font-weight:400}.order-form-grid input,.order-form-grid select,.order-form-grid textarea{width:100%;padding:11px;border:1px solid #bdc9d3;border-radius:7px;background:#fff;font:inherit}.order-wide{grid-column:1/-1}.order-form-card form>.button{width:100%;border:0;cursor:pointer}.order-success{text-align:center;padding:45px 20px}.order-success>span{color:#23845b;font-size:11px;font-weight:900;letter-spacing:.16em}.order-success h2{font:900 27px/1.2 monospace;letter-spacing:.08em}.order-success p{color:#65758a}.order-success .button{display:inline-block;margin-top:10px}
.order-form-grid input[type="file"]{padding:8px;background:#f7fafc;cursor:pointer}.attachment-name{color:#65758a;font-size:12px;font-weight:500;overflow-wrap:anywhere}
@media(max-width:700px){.pricing-page .pricing-grid{grid-template-columns:1fr!important}.order-page-grid{grid-template-columns:1fr;padding-inline:16px}.order-form-grid{grid-template-columns:1fr}.order-wide{grid-column:auto}.order-intro h1{font-size:38px}}
.shop-dialog.product-dialog { width: min(94vw,900px); }.product-dialog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; }.product-dialog-grid > img { width: 100%; height: 420px; object-fit: cover; border-radius: 12px; background: #edf1f4; }.product-dialog-grid h2 { margin-top: 12px; }.product-dialog-grid ul { margin: 17px 0; padding-left: 19px; color: #4d5f72; font-size: 13px; }.product-dialog-grid li { margin: 6px 0; }.dialog-product-price small,.dialog-product-price strong { display: block; }.dialog-product-price small { color: #788697; text-decoration: line-through; }.dialog-product-price strong { font-size: 32px; }.dialog-delivery { padding: 11px 13px; border-radius: 8px; background: #edf7f1; color: #35624a !important; font-size: 12px; }.quantity-label { display: flex !important; align-items: center; gap: 9px !important; margin: 13px 0; }.quantity-label select { padding: 7px 24px 7px 9px; border: 1px solid #bfcbd5; border-radius: 6px; }.product-dialog-grid .button { width: 100%; }
.shop-dialog.cart-dialog { width: min(94vw,690px); }.cart-items { display: grid; gap: 11px; max-height: 55vh; margin: 22px 0; overflow: auto; }.cart-row { display: grid; grid-template-columns: 82px 1fr auto auto; align-items: center; gap: 14px; padding: 10px; border: 1px solid #e0e6eb; border-radius: 10px; }.cart-row img { width: 82px; height: 72px; object-fit: cover; border-radius: 7px; }.cart-row div > strong,.cart-row div > small { display: block; }.cart-row div > small { margin: 4px 0 7px; color: #718094; }.cart-row label { display: flex; align-items: center; gap: 7px; color: #65758a; font-size: 11px; }.cart-row select { padding: 3px 16px 3px 5px; }.cart-row > button { border: 0; background: transparent; color: #b42318; font-size: 11px; cursor: pointer; }.cart-empty { display: grid; place-items: center; min-height: 180px; border: 1px dashed #bdc9d3; border-radius: 11px; color: #68788b; }.cart-empty strong,.cart-empty span { display: block; }.cart-summary { display: flex; justify-content: space-between; margin: 14px 0; padding-top: 15px; border-top: 1px solid #dce3e8; }.cart-summary strong { font-size: 24px; }.cart-dialog > .button { width: 100%; border: 0; cursor: pointer; }
@media (max-width: 900px) { .shop-nav { flex-wrap: wrap; padding-inline: 16px; }.shop-search { order: 3; flex-basis: 100%; }.shop-hero-inner { grid-template-columns: 1fr; padding: 60px 20px; }.hero-device { display: none; }.shop-benefits { margin: 0 16px; grid-template-columns: repeat(2,1fr); }.product-grid { grid-template-columns: repeat(2,1fr); }.shop-section,.membership-banner { margin-left: 16px; margin-right: 16px; }.shop-category-nav .container { padding-inline: 16px; }.shop-footer-grid { grid-template-columns: repeat(2,1fr); padding-inline: 20px; }.footer-store { grid-column: 1 / -1; }.shop-footer-bottom { margin-inline: 20px; }.product-dialog-grid { grid-template-columns: 1fr; }.product-dialog-grid > img { height: 310px; } }
@media (max-width: 560px) { .shop-nav .brand-logo { font-size: 24px; }.account-trigger #account-label { display: none; }.shop-search { grid-template-columns: 78px 1fr 44px; }.shop-category-nav .container { gap: 20px; }.shop-hero { min-height: 400px; }.shop-hero-inner { min-height: 400px; }.shop-hero h1 { font-size: 40px; }.shop-benefits { grid-template-columns: 1fr 1fr; }.shop-benefits div { padding: 17px 14px; }.product-grid { grid-template-columns: 1fr; }.membership-banner { align-items: flex-start; flex-direction: column; padding: 28px; }.shop-dialog { padding: 28px 22px; }.shop-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px 22px; }.shop-footer-bottom { flex-direction: column; }.shop-footer-bottom a { margin: 0 13px 0 0; }.product-dialog-grid > img { height: 230px; }.cart-row { grid-template-columns: 64px 1fr auto; }.cart-row img { width: 64px; height: 64px; }.cart-row > button { grid-column: 2 / -1; justify-self: start; } }

/* Vintage storefront theme: deliberately simple, quiet, and print-inspired. */
:root{--v-paper:#f3ecd8;--v-paper-light:#fffaf0;--v-ink:#2d261d;--v-muted:#6d6253;--v-line:#8b795e;--v-dark:#463827;--v-accent:#7b2f25;--v-gold:#c5a76b}
html{scroll-behavior:smooth}
body{background:var(--v-paper);color:var(--v-ink);font-family:Georgia,"Times New Roman",Times,serif;letter-spacing:0}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.22;background-image:repeating-linear-gradient(0deg,transparent 0,transparent 3px,rgba(75,58,35,.035) 4px)}
h1,h2,h3,h4,.brand-logo,.price,.package-label{font-family:Georgia,"Times New Roman",Times,serif!important;letter-spacing:0!important}
p,small,label,input,select,textarea,button,a{font-family:inherit}
.topbar,.shop-header{background:var(--v-dark)!important;color:var(--v-paper-light)!important;border-bottom:3px double var(--v-gold)!important;box-shadow:none!important}
.brand,.brand-logo,.topbar a,.main-nav a{color:var(--v-paper-light)!important;text-shadow:none!important}
.brand-dot{color:var(--v-gold)!important}
.main-nav a,.shop-category-nav a{text-decoration:none}.main-nav a:hover,.shop-category-nav a:hover{text-decoration:underline}
.shop-category-nav{background:#66543c!important;border-bottom:1px solid #33291d!important;color:#fffaf0!important}
.button,button,.catalog-pagination button,.cart-button,.product-meta button{border-radius:2px!important;box-shadow:none!important;text-transform:none;transition:none!important}
.button-primary,.product-meta button,.catalog-pagination button.active{border:1px solid #3b2d20!important;background:var(--v-dark)!important;color:#fffaf0!important}
.button:hover,.product-meta button:hover{filter:none!important;background:#66513a!important;transform:none!important}
input,select,textarea,.shop-search{border-radius:1px!important;border-color:var(--v-line)!important;background:var(--v-paper-light)!important;box-shadow:inset 0 1px 2px rgba(55,39,20,.12)!important;color:var(--v-ink)!important}
input:focus,select:focus,textarea:focus{border-color:var(--v-accent)!important;box-shadow:0 0 0 1px var(--v-accent)!important;outline:0}
.shop-hero{min-height:390px!important;background:#d8c9a9!important;color:var(--v-ink)!important;border-bottom:1px solid var(--v-line)}
.shop-hero-inner{min-height:390px!important}.shop-hero h1{font-size:clamp(36px,5vw,58px)!important;line-height:1.08!important}.shop-hero p{color:#514636!important}.shop-eyebrow{color:var(--v-accent)!important}
.hero-device{filter:none!important;transform:none!important}.device-screen{border-radius:2px!important;border-color:var(--v-dark)!important;background:#eadfca!important}.device-screen span{border-radius:0!important;background:#735c3e!important}.device-base{border-radius:0!important;background:#9e8d72!important}
.shop-benefits,.product-card,.price-card,.order-form-card,.pricing-note,.membership-banner,.balance-card,.profile-id-card{border-radius:2px!important;border:1px solid var(--v-line)!important;background:var(--v-paper-light)!important;color:var(--v-ink)!important;box-shadow:3px 3px 0 rgba(70,56,39,.16)!important}
.shop-benefits{margin-top:-22px!important}.product-card,.price-card{transition:none!important}.product-card:hover,.price-card:hover{transform:none!important;box-shadow:3px 3px 0 rgba(70,56,39,.24)!important;border-color:var(--v-dark)!important}
.product-art,.product-dialog-grid>img{border-radius:1px!important;background:#e4dac5!important}.product-badge,.popular-ribbon{border-radius:0!important;background:var(--v-accent)!important;color:#fffaf0!important}.product-rating{color:#8b5d20!important}
.membership-banner{background:#dfd0ae!important}.membership-banner p,.balance-card small,.profile-id-card small,.profile-id-card span{color:var(--v-muted)!important}
.pricing-page{background:var(--v-paper)!important}.pricing-heading>span,.package-label,.order-intro>span{color:var(--v-accent)!important}.pricing-heading h1,.order-intro h1{letter-spacing:0!important}.pricing-page .price{color:var(--v-dark)!important}.highlighted-price-card,.bulk-price-card{border:2px solid var(--v-accent)!important}
.shop-dialog,.nowpayments-widget-dialog,.account-menu{border-radius:2px!important;border:2px solid var(--v-dark)!important;background:var(--v-paper-light)!important;color:var(--v-ink)!important;box-shadow:8px 8px 0 rgba(20,15,10,.35)!important}
.shop-dialog::backdrop,.nowpayments-widget-dialog::backdrop{background:rgba(45,38,29,.68)!important;backdrop-filter:none!important}.account-menu::before{background:var(--v-paper-light)!important;border-color:var(--v-dark)!important}.account-menu button:hover{background:#e7dcc5!important}
.nowpayments-widget-frame,.cart-row,.cart-empty{border-radius:1px!important;border-color:var(--v-line)!important;background:#eee4d1!important}
.shop-footer{background:#3c3022!important;color:#dfd2bb!important;border-top:4px double var(--v-gold)}.shop-footer h3{color:#fffaf0!important}.shop-footer-grid a,.shop-footer-grid button{color:#dfd2bb!important}.payment-badges span{border-color:#9c896b!important;border-radius:1px!important;background:#eee4d1!important;color:#33281c!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Regency-era printed catalogue details (early nineteenth century). */
body{background-color:#e9ddbd!important;background-image:radial-gradient(rgba(72,51,27,.09) .7px,transparent .8px)!important;background-size:5px 5px!important;font-family:Baskerville,"Baskerville Old Face","Iowan Old Style",Georgia,"Times New Roman",serif!important}
.container{max-width:1180px}
h1,h2,h3{font-variant-caps:small-caps;color:#302419}
h1::after,.section-head h2::after,.shop-section-head h2::after,.pricing-heading h1::after{content:"❦";display:block;margin:.22em auto 0;color:#765f3d;font-size:.42em;line-height:1;text-align:center}
.shop-section-head h2::after,.section-head:not(.centered) h2::after{margin-left:0;text-align:left}
.topbar,.shop-header{background:#35291d!important;border-top:5px double #bda56f!important;border-bottom:5px double #bda56f!important}
.shop-category-nav{background:#e2d2ad!important;color:#35291d!important;border-top:1px solid #6e5a3c!important;border-bottom:3px double #6e5a3c!important}.shop-category-nav a{color:#35291d!important;font-variant-caps:small-caps;font-weight:700;letter-spacing:.06em}
.shop-hero{background:#e7dab9!important;border-top:1px solid #8b795e!important;border-bottom:4px double #796345!important}.shop-hero-inner{text-align:center;grid-template-columns:1fr!important;max-width:900px}.shop-hero-inner>div:first-child{max-width:760px;margin:auto}.shop-hero h1{font-size:clamp(40px,6vw,68px)!important;font-weight:400!important}.shop-hero p{margin-inline:auto}.shop-hero .hero-device{display:none!important}
.shop-benefits{margin-top:28px!important;border:3px double #6e5a3c!important;box-shadow:none!important}.shop-benefits div{border-color:#9b8968!important;text-align:center}.shop-benefits strong{font-variant-caps:small-caps;font-size:17px}.shop-benefits span{color:#665842!important;font-style:italic}
.shop-section{padding-top:52px!important}.shop-section-head{padding:0 0 13px;border-bottom:3px double #786344}.shop-section-head>div{width:100%;text-align:center}.shop-section-head h2::after{margin-inline:auto;text-align:center}.shop-section-head .shop-eyebrow{letter-spacing:.13em!important}.text-button{font-style:italic;text-decoration:underline}
.product-grid{gap:24px!important}.product-card{padding:12px 12px 20px!important;border:3px double #796647!important;background:#f4ead1!important;box-shadow:none!important;text-align:center}.product-card:hover{box-shadow:none!important;outline:1px solid #4b3927;outline-offset:3px}.product-art{border:1px solid #796647!important}.product-art img{filter:sepia(.48) saturate(.72) contrast(.92)}.product-badge{padding:3px 9px!important;background:#4d3b29!important;font-variant-caps:small-caps;letter-spacing:.08em!important}.product-card h3{font-size:20px!important;font-weight:400}.product-card p{color:#5e513e!important;font-style:italic}.product-rating{color:#694b22!important}.product-price strong{font-weight:400}.delivery-line{color:#54452f!important}.product-meta{padding-top:10px;border-top:1px solid #ad9b78}.product-meta>span{color:#594a32!important}
.catalog-pagination{clear:both;width:100%;margin:38px auto 0!important;padding:22px 0 0;border-top:3px double #786344}.catalog-pagination button{min-width:36px!important;height:34px!important;border:1px solid #6f5b3d!important;background:#efe3c6!important;color:#35291d!important;font-size:15px}.catalog-pagination button.active{background:#3f3021!important;color:#fff6df!important}
.shop-footer{background:#35291d!important;border-top:7px double #bda56f!important}.shop-footer-grid{border-bottom:1px solid #8e7856;padding-bottom:30px}.shop-footer h3{font-variant-caps:small-caps;letter-spacing:.08em}
.feature-card,.state-card,.form-card,.hero-panel,.content-card{border-radius:0!important;border:3px double #796647!important;background:#f4ead1!important;box-shadow:none!important}
hr{border:0;border-top:3px double #796647}
@media(max-width:560px){.shop-benefits{margin-top:18px!important}.shop-hero h1{font-size:42px!important}.product-grid{gap:18px!important}}

/* Carry the printed-catalogue language through every protected tool page. */
.states-page,.others-page,.mrz-page,.code128-page,.document-order-page,.pricing-page{background:transparent!important}
.state-panel,.state-orientation-panel,.state-output,.country-picker,.document-workspace,.mrz-form-panel,.mrz-output,.mrz-info article,.code128-panel,.code128-output,.order-form-card,.pricing-page .price-card{border:3px double #796647!important;border-radius:0!important;background:#f4ead1!important;box-shadow:none!important}
.state-header,.section-head.centered{padding-bottom:18px;border-bottom:3px double #796647;text-align:center}
.state-header h1,.section-head.centered h1{font-weight:400!important;font-variant-caps:small-caps}
.state-links a,.state-entry,.chip-chip,.nav-button{border-radius:0!important;border-color:#796647!important;background:#efe3c6!important;color:#35291d!important;box-shadow:none!important}
.state-links a:hover,.state-entry:hover,.chip-chip:hover{background:#dfcfaa!important;transform:none!important}
.mrz-output pre,.code128-preview,.state-barcode,.state-barcode-fit{border:1px solid #796647!important;border-radius:0!important;background:#fffdf5!important}
.field-format-help,.note,.lead-text{color:#635540!important;font-style:italic}
.catalog-pagination[hidden]{display:none!important}

/* VVIP landing page: complete Regency-era broadsheet treatment. */
.vvip-home .hero{padding:68px 0!important;background:#e6d7b4!important;border-top:1px solid #796647;border-bottom:5px double #796647}
.vvip-home .hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,.65fr);gap:58px}
.vvip-home .hero-copy{text-align:center}.vvip-home .kicker{display:block;color:#654a2e!important;font-variant-caps:small-caps;letter-spacing:.14em!important}.vvip-home .hero-copy h1{max-width:820px;margin:22px auto 18px;color:#302419!important;font-size:clamp(42px,5.2vw,66px)!important;font-weight:400;line-height:1.06!important;letter-spacing:0!important}.vvip-home .hero-copy h1::before{content:"— ❦ —";display:block;margin-bottom:.28em;color:#765f3d;font-size:.3em;letter-spacing:.2em}.vvip-home .hero-copy h1::after{font-size:.3em}.vvip-home .hero-copy .lede{max-width:700px;margin-inline:auto;color:#5c4e39!important;font-size:20px;line-height:1.6;font-style:italic}.vvip-home .cta-row{justify-content:center}
.vvip-home .hero-stats{justify-content:center;gap:0;margin:40px auto 0;border-top:3px double #826e4d;border-bottom:3px double #826e4d}.vvip-home .hero-stats>div{min-width:145px;padding:14px 22px;border-right:1px solid #9d8a68}.vvip-home .hero-stats>div:last-child{border-right:0}.vvip-home .hero-stats strong{color:#3e3021!important;font-size:29px;font-weight:400}.vvip-home .hero-stats span{color:#6b5b43!important;font-variant-caps:small-caps;letter-spacing:.08em}
.vvip-home .hero-panel .panel-wrapper{padding:22px;border:5px double #705b3d!important;border-radius:0!important;background:#f3e8ce!important;box-shadow:7px 7px 0 rgba(67,48,27,.18)!important}.vvip-home .panel-head{justify-content:center;padding-bottom:12px;border-bottom:1px solid #8d7958;color:#4b3d2a!important;font-variant-caps:small-caps;letter-spacing:.08em}.vvip-home .status-dot{width:8px;height:8px;border-radius:0;background:#74562d!important}.vvip-home .panel-code{border:1px solid #6d593d;border-radius:0!important;background:#d8c7a2!important}.vvip-home .barcode-label{color:#3e3021!important}.vvip-home .mini-form{padding-top:18px;border-top:3px double #8b7654}.vvip-home .form-row label{color:#5f503a!important;font-variant-caps:small-caps;letter-spacing:.07em}.vvip-home .panel-actions{justify-content:center}
.vvip-home .advantages,.vvip-home .features{background:transparent!important}.vvip-home .advantages{border-bottom:3px double #796647}.vvip-home .section-head h2{color:#302419!important;font-weight:400;letter-spacing:0!important}.vvip-home .feature-card{min-height:270px;padding:28px;text-align:center}.vvip-home .feature-card .icon-wrap{width:48px;height:48px;margin:auto;border:3px double #745f40;border-radius:0!important;background:#e0cfaa!important;color:#493824!important;font-size:22px}.vvip-home .feature-card h3{font-weight:400;font-variant-caps:small-caps}.vvip-home .feature-card p{color:#5f523f!important}.vvip-home .text-link{color:#6f2e25!important;text-decoration:underline}
.vvip-home .features .two-col{padding:34px;border:5px double #796647;background:#f2e6cc}.vvip-home .check-list li{padding-left:27px;border-bottom:1px dotted #9c8967;padding-bottom:10px}.vvip-home .check-list li::before{content:"❧";color:#624a2f!important}.vvip-home .image-panel{padding:8px;border:3px double #796647!important;border-radius:0!important;background:#eadcbe!important}.vvip-home .image-panel img{border-radius:0!important;filter:sepia(.62) saturate(.68) contrast(.92)}
.vvip-home .footer{padding:44px 0;background:#35291d!important;border-top:7px double #bda56f;color:#dfd2bb!important}.vvip-home .footer h3,.vvip-home .footer a{color:#f3e7ce!important}.vvip-home .footer-about p,.vvip-home .copyright{color:#c9b99d!important}.vvip-home .footer-grid{gap:55px}
@media(max-width:900px){.vvip-home .hero-grid{grid-template-columns:1fr}.vvip-home .hero-panel{max-width:560px;margin:auto}.vvip-home .features .two-col{padding:24px}}
@media(max-width:600px){.vvip-home .hero{padding:48px 0!important}.vvip-home .hero-copy h1{font-size:42px!important}.vvip-home .hero-stats{flex-wrap:wrap}.vvip-home .hero-stats>div{min-width:33%;padding-inline:10px}.vvip-home .features .two-col{padding:16px}.vvip-home .footer-grid{grid-template-columns:1fr}}
