.language-switch {
  position: fixed !important;
  z-index: 50 !important;
  top: 61% !important;
  right: auto !important;
  left: 0 !important;
  transform: translateY(-50%) !important;
}

.language-switch .language-toggle {
  width: 48px !important;
  min-width: 0 !important;
  height: 84px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  padding: 7px 4px !important;
  border: 2px solid #f5b82e !important;
  border-left: 0 !important;
  border-radius: 0 11px 11px 0 !important;
  cursor: pointer !important;
  color: #fff !important;
  background: rgba(3, 20, 47, .97) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .3), inset -1px 0 0 rgba(255, 220, 118, .28) !important;
  font-size: 12px !important;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-weight: 850 !important;
  line-height: 1 !important;
}

.language-switch .current-code {
  display: block !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: 0 !important;
}

.language-switch .flag-icon {
  display: block !important;
  width: 25px !important;
  height: 17px !important;
  flex: 0 0 auto !important;
  object-fit: cover !important;
  border: 1px solid rgba(0, 0, 0, .18) !important;
  border-radius: 2px !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .14) !important;
}

.language-switch .language-toggle svg {
  width: 15px !important;
  height: 15px !important;
  color: #ffd36a !important;
  transition: transform .2s ease !important;
}

.language-switch.open .language-toggle svg { transform: rotate(180deg) !important; }

.language-switch .language-menu {
  position: absolute !important;
  top: 0 !important;
  left: 55px !important;
  width: 176px !important;
  display: grid !important;
  gap: 5px !important;
  padding: 7px !important;
  border: 1px solid #f5b82e !important;
  border-radius: 12px !important;
  visibility: hidden !important;
  opacity: 0 !important;
  background: #fff !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .28) !important;
  transform: translateX(-12px) !important;
  transition: opacity .2s, transform .2s, visibility .2s !important;
}

.language-switch.open .language-menu {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateX(0) !important;
}

.language-switch .language-option {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 11px !important;
  padding: 10px 11px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  color: #17213a !important;
  background: transparent !important;
  box-shadow: none !important;
  font: inherit !important;
  font-weight: 750 !important;
  text-align: left !important;
}

.language-switch .language-option .flag-icon { width: 27px !important; height: 18px !important; }
.language-switch .language-option:hover { border-color: #d5dbe4 !important; background: #f3f6fa !important; }
.language-switch .language-option.active { border-color: #f5b82e !important; background: linear-gradient(135deg, #fff5d5, #ffe7a1) !important; }

/* Preserve the unified logo's natural aspect ratio throughout the LLC flow. */
.start-logo img,
.state-logo img,
.flow-logo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1810 / 423 !important;
  object-fit: contain !important;
}

/* LLC business-name helper: keep the icon, sentence and counter aligned. */
.field-meta {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-items: center !important;
  align-items: center !important;
  gap: 6px !important;
  text-align: center !important;
}

.field-meta > span:first-child {
  display: inline-flex !important;
  width: fit-content !important;
  max-width: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-width: 0 !important;
  text-align: center !important;
}

.field-meta > span:first-child svg {
  width: 15px !important;
  height: 15px !important;
  margin: 0 !important;
  flex: 0 0 15px !important;
}

.field-meta > span:last-child {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  white-space: nowrap !important;
  text-align: center !important;
}

/* Tablet-only alignment: preserve the tablet grids while centering their content. */
@media (min-width: 761px) and (max-width: 1080px) {
  body,
  main,
  main section,
  main article,
  main aside,
  .section-heading,
  .itin-heading,
  .application-heading,
  .checklist-copy,
  .services-copy,
  .story-copy,
  .visit-copy,
  .contact-copy,
  .legal-content,
  .legal-toc,
  .flow-main,
  .flow-panel,
  .flow-heading,
  .error-card {
    text-align: center !important;
  }

  main h1,
  main h2,
  main h3,
  main h4,
  main p,
  main address,
  main blockquote,
  main .eyebrow,
  main .kicker,
  main .detail-disclaimer,
  main .visit-intro,
  main .legal-updated,
  .flow-main h1,
  .flow-main h2,
  .flow-main h3,
  .flow-main p {
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }

  main img:not(.current-flag):not(.option-flag),
  main picture,
  main figure,
  .card-icon,
  .process-icon,
  .value-icon,
  .summary-icon,
  .mini-icon,
  .contact-icon,
  .service-icon,
  .step-number,
  .panel-icon,
  .error-icon,
  .footer-logo,
  .footer-brand img,
  .flow-logo {
    margin-right: auto !important;
    margin-left: auto !important;
  }

  main .button,
  main a[class*="button"],
  main button:not(.language-toggle):not(.language-option),
  .hero-actions,
  .hero-buttons,
  .itin-actions,
  .certification-actions,
  .detail-center,
  .center-action,
  .trust-row,
  .itin-trust,
  .trust-note,
  .contact-action-label,
  .error-actions,
  .flow-actions,
  .flow-back,
  .flow-next,
  .google-link {
    justify-content: center !important;
    text-align: center !important;
  }

  .itin-cta-box,
  .itin-cta-box > div,
  .process-card,
  .option-card,
  .detail-card,
  .detail-points article,
  .document-item,
  .faq-item,
  .itin-summary,
  .plate-service-card,
  .requirement-grid article,
  .review-card,
  .service-card,
  .value-card,
  .contact-card,
  .contact-box,
  .owner-card,
  .order-detail,
  .selected-summary,
  .secure-note {
    text-align: center !important;
  }

  /* Center the complete hero information panel, not only its contents. */
  .itin-summary {
    width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    justify-self: center !important;
  }

  .itin-cta-box .button {
    justify-self: center !important;
  }

  .itin-cta-box {
    grid-template-columns: 1fr !important;
  }

  main ul,
  main ol,
  .summary-list,
  .check-list,
  .document-list,
  .included {
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .summary-list li,
  .check-list li,
  .contact-list > a,
  .contact-list > span,
  .contact-method,
  .payment-steps article,
  .secure-note,
  .product-top,
  .review-top,
  .review-source,
  .hours-line,
  .map-badge,
  .social-links {
    justify-content: center !important;
    text-align: center !important;
  }

  form,
  fieldset,
  form label,
  .field,
  .choice,
  .consent {
    text-align: center !important;
  }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  option {
    text-align: center !important;
    text-align-last: center;
  }

  .choice,
  .consent {
    justify-content: center !important;
    align-items: center !important;
  }

  /* Balance the FAQ plus symbol so its question is geometrically centered. */
  .faq-item summary {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) 24px !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 8px !important;
    text-align: center !important;
  }

  .faq-item summary::before {
    content: "";
    grid-column: 1 !important;
    width: 24px;
    height: 1px;
  }

  .faq-item summary > span {
    grid-column: 2 !important;
    width: 100% !important;
    text-align: center !important;
  }

  .faq-item summary::after {
    grid-column: 3 !important;
    justify-self: center !important;
  }

  .document-item {
    justify-items: center !important;
  }

  .document-item > div,
  .document-item h3,
  .document-item p,
  .selected-summary > div,
  .secure-note > div {
    text-align: center !important;
  }

  .footer-main,
  .footer-main > div,
  .footer-brand,
  .footer-title,
  .footer-note,
  .footer-bottom-row,
  .footer-legal {
    text-align: center !important;
  }

  /* Approved standard footer arrangement for tablets. */
  footer .footer-main {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 24px !important;
    row-gap: 42px !important;
    padding-top: 54px !important;
    padding-bottom: 42px !important;
  }

  footer .footer-main > .footer-brand {
    grid-column: 1 / -1 !important;
    width: min(100%, 650px) !important;
    max-width: 650px !important;
    justify-self: center !important;
  }

  footer .footer-main .footer-logo {
    width: 300px !important;
    max-width: 100% !important;
    margin: 0 auto 20px !important;
    object-position: center !important;
  }

  footer .footer-main .footer-brand > p {
    width: 100% !important;
    max-width: 650px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }

  footer .footer-main > div:not(.footer-brand) {
    width: 100% !important;
    min-width: 0 !important;
  }

  footer .footer-main .footer-title {
    margin: 0 auto 20px !important;
  }

  .footer-links a,
  .footer-contact a,
  .footer-contact address,
  .social-button {
    justify-content: center !important;
    text-align: center !important;
  }

  .footer-contact,
  .social-links {
    justify-items: center !important;
  }

  footer .footer-main .social-button {
    width: min(150px, 100%) !important;
  }

  .footer-contact a,
  .footer-contact address {
    width: fit-content !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .footer-main .footer-contact .contact-symbol {
    margin: 0 !important;
  }

  footer .footer-bottom-row {
    min-height: 82px !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 10px !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  footer .footer-legal {
    justify-content: center !important;
    flex-wrap: wrap !important;
  }

  /* About photo badges: move both inward from the tablet's right edge. */
  .portrait-wrap > .year-card,
  .portrait-wrap > .bilingual-card {
    right: calc(50% - 115px) !important;
  }
}

/* This grid has two columns only in the narrower tablet range. */
@media (min-width: 761px) and (max-width: 980px) {
  /* Service pages contain six cards: keep the last card in column two. */
  .detail-card-grid > .detail-card:last-child {
    grid-column: auto !important;
    width: auto !important;
    justify-self: stretch !important;
  }

  .process-grid > :last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
    width: calc((100% - 22px) / 2) !important;
    justify-self: center !important;
  }
}

@media (min-width: 981px) and (max-width: 1080px) {
  .process-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .process-grid > :last-child {
    grid-column: auto !important;
    width: auto !important;
    justify-self: stretch !important;
  }
}

@media (max-width: 760px) {
  .language-switch { top: 58% !important; }
  .language-switch .language-toggle {
    width: 42px !important;
    height: 72px !important;
    gap: 3px !important;
    padding: 5px 3px !important;
    border-radius: 0 9px 9px 0 !important;
    font-size: 11px !important;
  }
  .language-switch .language-toggle .current-flag { width: 23px !important; height: 15px !important; }
  .language-switch .language-menu { left: 48px !important; width: 158px !important; }
  .language-switch .language-option { padding: 9px !important; }

  /* Site-wide phone alignment. Tablet and desktop layouts remain unchanged. */
  body,
  main,
  main section,
  main article,
  main aside,
  main header,
  main footer,
  .legal-header,
  .legal-content,
  .flow-main,
  .flow-panel,
  .flow-heading,
  .flow-footer,
  .error-card {
    text-align: center !important;
  }

  main h1,
  main h2,
  main h3,
  main h4,
  main p,
  main address,
  main blockquote,
  main .eyebrow,
  main .kicker,
  main .section-heading,
  .legal-header h1,
  .legal-header p,
  .flow-main h1,
  .flow-main h2,
  .flow-main h3,
  .flow-main p {
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }

  main img:not(.current-flag):not(.option-flag),
  main picture,
  main figure,
  main video,
  .footer-logo,
  .flow-logo,
  .error-card img {
    margin-right: auto !important;
    margin-left: auto !important;
  }

  main [class*="icon"]:not(.contact-symbol):not(.language-switch),
  main [class*="badge"],
  main [class*="number"],
  main [class*="mark"],
  .panel-icon,
  .footer-main .contact-symbol {
    margin-right: auto !important;
    margin-left: auto !important;
  }

  main .button,
  main a[class*="button"],
  main button:not(.language-toggle):not(.language-option),
  .flow-main button,
  .flow-back,
  .flow-next,
  .pay,
  .google-link {
    justify-content: center !important;
    text-align: center !important;
  }

  main [class*="actions"],
  main [class*="buttons"],
  main [class*="trust"],
  main [class*="top"],
  main [class*="heading"],
  main [class*="source"],
  main [class*="meta"],
  main [class*="contact"],
  .flow-actions,
  .flow-context,
  .panel-title,
  .owner-head,
  .response-box,
  .included li,
  .price-line {
    justify-content: center !important;
    text-align: center !important;
  }

  main [class*="heading"],
  main [class*="copy"],
  main [class*="intro"],
  main [class*="content"],
  main [class*="details"],
  main [class*="summary"],
  main [class*="card"],
  main [class*="item"],
  main [class*="box"],
  main [class*="note"],
  .flow-panel,
  .owner-card,
  .order-detail,
  .stripe-shell {
    text-align: center !important;
  }

  main ul,
  main ol,
  .included {
    margin-right: auto !important;
    margin-left: auto !important;
    padding-left: 0 !important;
    list-style-position: inside !important;
    text-align: center !important;
  }

  main li,
  .included li {
    text-align: center !important;
  }

  form,
  fieldset,
  form label,
  .field,
  .choice,
  .consent {
    text-align: center !important;
  }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea,
  option {
    text-align: center !important;
    text-align-last: center;
  }

  .choice,
  .consent {
    justify-content: center !important;
    align-items: center !important;
  }

  .panel-title,
  .response-box,
  .owner-head {
    flex-direction: column;
    align-items: center !important;
  }

  .footer-main,
  .footer-main > div,
  .footer-brand,
  .footer-title,
  .footer-note,
  .footer-bottom-row,
  .footer-legal {
    text-align: center !important;
  }

  .footer-links a,
  .footer-contact a,
  .footer-contact address,
  .social-links,
  .social-button {
    justify-content: center !important;
    text-align: center !important;
  }

  .footer-contact address {
    align-items: center !important;
  }

  /* Keep each contact icon attached to its text while centering the full row. */
  .footer-contact {
    justify-items: center !important;
  }

  .footer-contact a,
  .footer-contact address {
    width: fit-content !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    gap: 10px !important;
  }

  .footer-main .footer-contact .contact-symbol {
    margin: 0 !important;
  }

  /* About Us: center the complete service cards, including their icons. */
  .services .service-pill {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 16px !important;
    text-align: center !important;
  }

  .services .service-pill > i {
    margin: 0 auto !important;
  }

  .services .service-pill > div,
  .services .service-pill strong,
  .services .service-pill small {
    width: 100% !important;
    text-align: center !important;
  }

  /* Keep the original orbit illustration; center only the four lower labels. */
  .policy-support-panel .support-points span {
    display: grid !important;
    grid-template-columns: 20px minmax(0, 1fr) 20px !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 7px !important;
    text-align: center !important;
  }

  .policy-support-panel .support-points span::after {
    content: "";
    width: 20px;
    height: 1px;
  }

  .policy-support-panel .support-points span svg {
    margin: 0 auto !important;
  }

  /* ITIN document checklist: keep each icon, label and action visually united. */
  #document-checklist .document-item {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 12px !important;
    text-align: center !important;
  }

  #document-checklist .document-item > span {
    margin: 0 auto !important;
  }

  #document-checklist .document-item > div,
  #document-checklist .document-item h3,
  #document-checklist .document-item p {
    width: 100% !important;
    text-align: center !important;
  }

  #document-checklist .document-download {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 13px auto 0 !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
  }

  #document-checklist .identity-docs {
    width: 100% !important;
    gap: 7px !important;
    justify-items: center !important;
  }

  #document-checklist .identity-docs li {
    width: fit-content !important;
    max-width: 100% !important;
    min-height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    padding: 5px 0 !important;
    text-align: center !important;
  }

  #document-checklist .identity-docs li::before {
    position: static !important;
    flex: 0 0 auto !important;
  }

  #document-checklist .identity-docs li::after {
    content: none !important;
  }

  /* Center FAQ text geometrically while preserving the expand symbol. */
  .faq-item summary {
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr) 24px !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 8px !important;
    text-align: center !important;
  }

  .faq-item summary::before {
    content: "";
    grid-column: 1 !important;
    width: 24px;
    height: 1px;
  }

  .faq-item summary > span {
    grid-column: 2 !important;
    width: 100% !important;
    text-align: center !important;
  }

  .faq-item summary::after {
    grid-column: 3 !important;
    justify-self: center !important;
  }

  /* Center the contents of ITIN selection and payment summaries. */
  .selected-summary {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    text-align: center !important;
  }

  .selected-summary > span,
  .selected-summary > div,
  .selected-summary small,
  .selected-summary strong,
  .selected-summary .summary-price {
    grid-column: 1 !important;
    width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }

  .selected-summary > span {
    width: 48px !important;
  }

  .payment-order-summary,
  .payment-order-summary span,
  .payment-order-summary small,
  .payment-order-summary strong,
  .payment-order-summary .payment-total {
    text-align: center !important;
  }

  .payment-order-summary .payment-total {
    width: 100% !important;
  }

  .individual-service {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .individual-service > span {
    margin: 0 auto !important;
  }

  .individual-service > div,
  .individual-service small,
  .individual-service strong {
    width: 100% !important;
    text-align: center !important;
  }

  /* LLC state cards: balance the radio control so the copy is truly centered. */
  .state-grid .state-card {
    grid-template-columns: 20px minmax(0, 1fr) 20px !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 8px !important;
    text-align: center !important;
  }

  .state-grid .state-card > input {
    grid-column: 1 !important;
    justify-self: center !important;
    margin: 0 !important;
  }

  .state-grid .state-card > span {
    grid-column: 2 !important;
    width: 100% !important;
    text-align: center !important;
  }

  .state-grid .state-card > span h2,
  .state-grid .state-card > span p,
  .state-grid .state-card > span strong,
  .state-grid .state-card > span small {
    width: 100% !important;
    text-align: center !important;
  }

  .state-grid .state-card .state-fee,
  .state-grid .state-card .state-fee small {
    display: block !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }

  .state-grid .state-card .state-fee small {
    margin-top: 3px !important;
  }

  .state-grid .state-card::after {
    content: "";
    grid-column: 3 !important;
    width: 20px;
    height: 1px;
  }

  .field-meta {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 6px !important;
    text-align: center !important;
  }

  .field-meta > span:first-child {
    width: fit-content !important;
    max-width: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .field-meta > span:last-child {
    width: auto !important;
    text-align: center !important;
  }
}
