/* === Mobile UX QA pass: layout stability, touch targets, forms === */
img,
svg,
video,
iframe {
  max-width: 100%;
}

.container,
.trust-shell {
  min-width: 0;
}

.service-hero__grid,
.service-content-layout,
.service-split,
.service-feature-grid,
.product-cert-map__grid,
.product-outcomes__grid,
.product-regs__grid,
.tu-structure__grid,
.steps,
.cta-grid,
.footer__grid,
.hero,
.hero-form__inner,
.service-final__inner {
  min-width: 0;
}

.service-hero__content,
.service-request,
.hero .lead,
.hero .visual,
.hero .visual .mock,
.hero-form__inner,
.service-content,
.service-sidebar__card,
.trust-card,
.trust-panel,
.trust-prose,
.seo-card,
.seo-case,
.seo-related,
.seo-table-wrap,
.product-cert-card,
.product-mini-card,
.product-reg-card,
.tu-part,
.workflow .step {
  min-width: 0;
  max-width: 100%;
}

.service-content,
.trust-prose,
.content-white,
.seo-trust,
.footer {
  overflow-wrap: anywhere;
}

.service-content table,
.content-white table,
.trust-prose table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.service-btn,
.btn,
.topbar-cta,
.topsearch__submit,
.wpcf7-submit,
input[type="submit"],
.burger {
  min-height: 44px;
}

.btn--sm {
  min-height: 40px;
  padding: 10px 14px !important;
}

.topbar a,
.contact .item a,
.footer a,
.policy a,
.trust-text-link,
.trust-aside-link a {
  text-underline-offset: 3px;
}

.modal__dialog {
  max-height: min(760px, calc(100dvh - 28px));
  overflow: auto;
}

.modal__close {
  min-width: 44px;
  min-height: 44px;
}

.wpcf7-form {
  min-width: 0;
}

.wpcf7 .form-control,
.wpcf7 input[type="text"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="email"],
.wpcf7 input[type="number"],
.wpcf7 textarea,
.wpcf7 select {
  min-height: 48px;
  font-size: 16px !important;
}

.licence_block.form-checkbox,
.wpcf7-acceptance {
  width: 100%;
  max-width: 100%;
}

.licence_block.form-checkbox .wpcf7-list-item,
.wpcf7-acceptance .wpcf7-list-item {
  margin: 0 !important;
  display: block !important;
}

.licence_block.form-checkbox label,
.wpcf7-acceptance label {
  display: grid !important;
  grid-template-columns: 24px minmax(0,1fr);
  gap: 10px;
  align-items: start;
  min-height: 44px;
  cursor: pointer;
}

.licence_block.form-checkbox .form-checkbox__input[type="checkbox"],
.form-checkbox .form-checkbox__input[type="checkbox"],
.wpcf7-acceptance input[type="checkbox"] {
  position: absolute !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  opacity: 0 !important;
  margin: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  pointer-events: none !important;
}

.licence_block.form-checkbox .wpcf7-list-item-label,
.wpcf7-acceptance .wpcf7-list-item-label,
.form-checkbox__text {
  display: contents !important;
}

.licence_block.form-checkbox .form-checkbox__box,
.wpcf7-acceptance .form-checkbox__box,
.form-checkbox__box {
  grid-column: 1;
  width: 24px !important;
  min-width: 24px !important;
  max-width: 24px !important;
  height: 24px !important;
  min-height: 24px !important;
  max-height: 24px !important;
  flex: 0 0 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.licence_block.form-checkbox .form-checkbox__text,
.wpcf7-acceptance .form-checkbox__text {
  grid-column: 2;
  min-width: 0;
  line-height: 1.35 !important;
}

.licence_block.form-checkbox a,
.wpcf7-acceptance a,
.form-checkbox__text a {
  word-break: normal;
  overflow-wrap: anywhere;
}

@media (hover: none) {
  .service-feature:hover,
  .product-doc-card:hover,
  .product-reg-card:hover,
  .tu-part:hover,
  .workflow .step:hover,
  .trust-card:hover {
    transform: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

@media (max-width: 1040px) {
  .topbar__row {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    align-items: stretch !important;
  }
  .topsearch {
    grid-column: 1 / -1;
  }
  .topbar-cta {
    grid-column: 1 / -1;
    width: 100%;
  }
  .header__row {
    gap: 14px !important;
  }
  .contact .item {
    white-space: normal !important;
  }
}

@media (max-width: 960px) {
  nav.primary .menu.open {
    max-height: calc(100dvh - 150px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .menu > ul > li > a {
    width: 100%;
    justify-content: flex-start;
  }
  .primary .submenu a {
    min-height: 44px;
  }
}

@media (max-width: 780px) {
  .container {
    width: 100%;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .hero,
  .hero-form {
    width: auto !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .hero {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .hero .lead,
  .hero .visual .mock,
  .hero-form__inner,
  .service-hero__content,
  .service-request {
    padding: 18px !important;
    border-radius: 8px !important;
  }

  .hero .lead {
    width: 100% !important;
  }

  .hero .usp,
  .hero .trust,
  .service-feature-grid,
  .product-cert-map__grid,
  .product-outcomes__grid,
  .product-regs__grid,
  .tu-structure__grid,
  .trust-grid--experts,
  .trust-grid--cases {
    grid-template-columns: 1fr !important;
  }

  .service-hero {
    padding-top: 24px !important;
  }

  .service-hero__grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .service-request {
    max-width: none !important;
    justify-self: stretch !important;
  }

  .service-request__top {
    grid-template-columns: 44px minmax(0,1fr) !important;
  }

  .service-actions,
  .service-final__actions,
  .hero .cta-row {
    display: grid !important;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .service-btn,
  .btn,
  .wpcf7-submit,
  input[type="submit"] {
    width: 100%;
  }

  .hero .visual .stack {
    position: static !important;
    margin-top: 10px;
  }

  .hero .visual .chip {
    background: #eef6ff !important;
    color: #172033 !important;
    border: 1px solid #d6e8ff;
  }

  .service-step,
  .workflow .step {
    grid-template-columns: 44px minmax(0,1fr) !important;
  }

  .service-step__num,
  .step__icon {
    width: 44px !important;
    height: 44px !important;
  }

  .footer__inner {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

@media (max-width: 560px) {
  .topbar__row {
    grid-template-columns: 1fr !important;
    min-height: 0;
    padding: 10px 16px !important;
  }

  .topbar a {
    display: none !important;
  }

  .topsearch__panel {
    height: auto;
  }

  .topsearch__input {
    min-width: 0;
  }

  .header__row {
    padding: 14px 16px !important;
    align-items: center !important;
  }

  .header-logo {
    width: min(168px, 56vw) !important;
    max-height: 54px;
  }

  .contact {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 8px !important;
  }

  .contact .item:first-child {
    display: none !important;
  }

  nav.primary .menu {
    padding: 10px 16px !important;
  }

  .menu > ul {
    gap: 8px !important;
  }

  .menu > ul > li > a {
    min-height: 48px;
    padding: 10px 12px !important;
  }

  .menu-icon {
    width: 32px !important;
    height: 32px !important;
  }

  .h1,
  .service-hero h1,
  .trust-hero h1 {
    font-size: clamp(29px, 9vw, 36px) !important;
    line-height: 1.08 !important;
  }

  .service-lead,
  .hero .sub,
  .trust-hero p:not(.trust-eyebrow) {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .service-section,
  .trust-section,
  .seo-trust {
    padding-top: 34px !important;
    padding-bottom: 42px !important;
  }

  .service-section__head h2,
  .service-content h2,
  .product-cert-map__head h2,
  .tu-structure__head h2,
  .workflow h2,
  .seo-trust__head h2 {
    font-size: 25px !important;
    line-height: 1.18 !important;
  }

  .service-content,
  .trust-prose,
  .seo-card,
  .seo-case,
  .seo-related,
  .trust-panel {
    padding: 18px !important;
  }

  .modal {
    align-items: flex-end !important;
    padding: 12px;
  }

  .modal__dialog {
    width: 100% !important;
    max-height: calc(100dvh - 24px);
    border-radius: 12px !important;
  }

  .cbk-phone-circle,
  .callbackkiller.cbk-phone,
  .cbk-phone-fixed,
  .callbackkiller,
  [class*="cbk-phone"] {
    right: 10px !important;
    left: auto !important;
    max-width: calc(100vw - 20px) !important;
    transform: scale(.82) !important;
    transform-origin: right bottom !important;
  }
}

@media (max-width: 360px) {
  .container {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .hero .lead,
  .hero .visual .mock,
  .hero-form__inner,
  .service-hero__content,
  .service-request,
  .service-content,
  .service-sidebar__card {
    padding: 16px !important;
  }

  .service-pill,
  .hero .badge {
    width: 100%;
  }
}

@media (max-width: 780px) {
  h1,
  h2,
  h3,
  .h1,
  .trust-hero h1,
  .service-hero h1,
  .service-section__head h2,
  .product-cert-map__head h2,
  .tu-structure__head h2,
  .workflow h2 {
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
  }

  .trust-case-meta,
  .trust-case-meta span,
  .trust-eyebrow {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  .faq,
  .faq .container,
  .faq__inner,
  .faq__grid,
  .faq__list,
  .faq__aside,
  .faq-cta,
  .faq-item {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .faq__inner {
    padding: 18px !important;
    border-radius: 8px !important;
  }

  .faq__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .faq-item {
    width: 100% !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .faq-item__summary {
    display: grid !important;
    grid-template-columns: 32px minmax(0,1fr) 28px !important;
    gap: 10px !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 54px !important;
    padding: 12px !important;
    cursor: pointer;
  }

  .faq-item__icon {
    margin: 0 !important;
  }

  .faq-item__title,
  .faq-item__body,
  .faq-cta__note {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  .faq-item__chevron {
    position: relative !important;
    right: auto !important;
    justify-self: end !important;
  }

  .faq-item__body {
    width: 100% !important;
    padding: 0 12px 14px 54px !important;
  }

  .faq-cta {
    padding: 16px !important;
  }

  .faq-cta__actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}
