/* v265U Public CSS Consolidation Pass 1
   Low-risk public UI normalization for CTA/button, card, form, and table/pricing surfaces.
   This file intentionally does NOT redefine header, hero, chatbot, live chat, WhatsApp, or sticky CTA rules.
*/

:root {
  --vge-ui-radius-sm: 12px;
  --vge-ui-radius-md: 16px;
  --vge-ui-radius-lg: 22px;
  --vge-ui-border: rgba(15, 23, 42, 0.10);
  --vge-ui-shadow-soft: 0 14px 34px rgba(15, 23, 42, 0.08);
  --vge-ui-shadow-card: 0 18px 46px rgba(15, 23, 42, 0.10);
  --vge-ui-focus: 0 0 0 4px rgba(37, 99, 235, 0.16);
}

/* Buttons / CTAs: one final low-risk layer for common public CTA classes. */
:where(.btn, .lp-cta, .cta-button, .primary-cta, .secondary-cta, .service-cta, .quote-submit, .order-action, .form-submit) {
  min-height: 44px;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: -0.01em;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

:where(.btn, .lp-cta, .cta-button, .primary-cta, .secondary-cta, .service-cta, .quote-submit, .order-action, .form-submit):hover {
  transform: translateY(-1px);
}

:where(.btn, .lp-cta, .cta-button, .primary-cta, .secondary-cta, .service-cta, .quote-submit, .order-action, .form-submit):focus-visible {
  outline: none;
  box-shadow: var(--vge-ui-focus);
}

@media (max-width: 640px) {
  :where(.hero-actions, .cta-row, .actions-row, .service-actions, .lp-hero-actions, .form-actions) {
    gap: 0.75rem;
  }

  :where(.hero-actions, .cta-row, .actions-row, .service-actions, .lp-hero-actions, .form-actions) > :where(.btn, .lp-cta, .cta-button, .primary-cta, .secondary-cta, .service-cta, .quote-submit, .order-action, .form-submit) {
    width: 100%;
  }
}

/* Cards / panels: normalize surfaces without changing page-specific layout. */
:where(.card, .service-card, .trust-card, .fee-card, .pricing-card, .faq-card, .faq-tools-card, .step-card, .info-card, .quote-card, .summary-card, .review-card, .lp-card, .lp-trust-card, .feature-card, .route-card) {
  border-radius: var(--vge-ui-radius-lg);
  border: 1px solid var(--vge-ui-border);
  box-shadow: var(--vge-ui-shadow-soft);
}

:where(.card, .service-card, .trust-card, .fee-card, .pricing-card, .faq-card, .step-card, .info-card, .quote-card, .summary-card, .review-card, .lp-card, .lp-trust-card, .feature-card, .route-card):where(:hover) {
  box-shadow: var(--vge-ui-shadow-card);
}

@media (max-width: 640px) {
  :where(.card, .service-card, .trust-card, .fee-card, .pricing-card, .faq-card, .faq-tools-card, .step-card, .info-card, .quote-card, .summary-card, .review-card, .lp-card, .lp-trust-card, .feature-card, .route-card) {
    border-radius: var(--vge-ui-radius-md);
  }
}

/* Forms: readable, touch-friendly inputs/selects/textareas for public customer pages. */
:where(form) :where(input, select, textarea) {
  min-height: 44px;
  border-radius: var(--vge-ui-radius-sm);
  border: 1px solid rgba(148, 163, 184, 0.38);
  font-size: 1rem;
}

:where(form) :where(input, select, textarea):focus {
  outline: none;
  border-color: rgba(37, 99, 235, 0.58);
  box-shadow: var(--vge-ui-focus);
}

:where(form) :where(label) {
  font-weight: 750;
}

@media (max-width: 640px) {
  :where(form) :where(input, select, textarea) {
    width: 100%;
    font-size: 16px;
  }
}

/* Pricing/table overflow: prevent mobile breakage without restyling data. */
:where(.pricing-table, .fees-table, .comparison-table, .table-wrap, .table-scroll, .responsive-table, .fee-table-wrap) {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

:where(.pricing-table, .fees-table, .comparison-table, .responsive-table) table,
:where(.table-wrap, .table-scroll, .fee-table-wrap) table {
  width: 100%;
  border-collapse: collapse;
}

@media (max-width: 760px) {
  :where(.pricing-table, .fees-table, .comparison-table, .responsive-table) table,
  :where(.table-wrap, .table-scroll, .fee-table-wrap) table {
    min-width: 620px;
  }
}

/* Tiny utility guard: public cards/forms should not create horizontal overflow. */
:where(main, .page-shell, .container, .section, .lp-section) {
  min-width: 0;
}
