/* Bundle: bundle-responsive.css - Consolidated from: responsive-utilities.css, responsive-fixes.css, accessibility-enhancements.css, ui-enhancements.css, trust-enhancements.css, theme-utilities.css, validation.css */

/* === Source: responsive-utilities.css === */
/* Responsive Utilities - Global Responsive Enhancements */

/* Viewport-based Typography */
:root {
  --font-size-base: 16px;
  --font-size-small: 14px;
  --font-size-large: 18px;
  --spacing-unit: 16px;
}

/* Flexible Images */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Logo Specific Styles - Maintain Aspect Ratio */
#heading img,
.hero-logo img,
.nav-logo,
.auth-modal-logo,
img[src*="TrustViewzLogo"],
img[alt*="TrustViewz Logo"] {
  object-fit: contain;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  /* Prevent distortion */
  aspect-ratio: auto;
  /* Smooth rendering */
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  /* Better quality on retina displays */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* About page header logo */
#heading {
  text-align: center;
}

#heading img {
  max-width: 240px;
  width: 100%;
  height: auto;
  margin: 0 auto 16px;
  display: block;
}

@media (max-width: 768px) {
  #heading img {
    max-width: 200px;
  }
}

@media (max-width: 480px) {
  #heading img {
    max-width: 160px;
  }
}

/* Responsive Tables */
.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

table {
  width: 100%;
  border-collapse: collapse;
}

/* Flexible Grid System */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--spacing-unit);
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 calc(-1 * var(--spacing-unit) / 2);
}

.col {
  flex: 1;
  padding: 0 calc(var(--spacing-unit) / 2);
}

/* Responsive Visibility Utilities */
.hide-mobile {
  display: block;
}

.show-mobile {
  display: none;
}

.hide-tablet {
  display: block;
}

.show-tablet {
  display: none;
}

.hide-desktop {
  display: none;
}

.show-desktop {
  display: block;
}

/* Touch-friendly Targets */
@media (hover: none) and (pointer: coarse) {
  button,
  a,
  input[type="button"],
  input[type="submit"],
  .clickable {
    min-height: 44px;
    min-width: 44px;
    padding: 12px 20px;
  }
}

/* Tablet Breakpoint (768px - 1024px) */
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  :root {
    --font-size-base: 15px;
    --spacing-unit: 14px;
  }

  .hide-tablet {
    display: none !important;
  }

  .show-tablet {
    display: block !important;
  }

  .container {
    padding: 0 20px;
  }
}

/* Mobile Breakpoint (max-width: 767px) */
@media only screen and (max-width: 767px) {
  :root {
    --font-size-base: 14px;
    --font-size-small: 12px;
    --font-size-large: 16px;
    --spacing-unit: 12px;
  }

  .hide-mobile {
    display: none !important;
  }

  .show-mobile {
    display: block !important;
  }

  .container {
    padding: 0 15px;
  }

  /* Stack columns on mobile */
  .row {
    flex-direction: column;
  }

  .col {
    width: 100%;
    margin-bottom: var(--spacing-unit);
  }

  /* Full-width buttons on mobile */
  button,
  .btn {
    width: 100%;
    margin-bottom: 10px;
  }

  /* Reduce padding on mobile */
  .card,
  section {
    padding: 12px !important;
  }

  /* Smaller headings on mobile */
  h1 {
    font-size: 1.5rem;
  }

  h2 {
    font-size: 1.3rem;
  }

  h3 {
    font-size: 1.1rem;
  }

  h4 {
    font-size: 1rem;
  }

  /* Optimize form inputs for mobile */
  input,
  select,
  textarea {
    font-size: 16px; /* Prevents zoom on iOS */
  }
}

/* Small Mobile Breakpoint (max-width: 480px) */
@media only screen and (max-width: 480px) {
  :root {
    --font-size-base: 13px;
    --font-size-small: 11px;
    --font-size-large: 15px;
    --spacing-unit: 10px;
  }

  .container {
    padding: 0 10px;
  }

  /* Even smaller headings */
  h1 {
    font-size: 1.3rem;
  }

  h2 {
    font-size: 1.2rem;
  }

  h3 {
    font-size: 1rem;
  }

  h4 {
    font-size: 0.9rem;
  }
}

/* Large Desktop Breakpoint (min-width: 1440px) */
@media only screen and (min-width: 1440px) {
  :root {
    --font-size-base: 18px;
    --font-size-small: 16px;
    --font-size-large: 20px;
    --spacing-unit: 20px;
  }

  .container {
    max-width: 1400px;
  }

  .hide-desktop {
    display: none !important;
  }

  .show-desktop {
    display: block !important;
  }
}

/* Landscape Orientation Adjustments */
@media only screen and (max-height: 500px) and (orientation: landscape) {
  .top-navbar {
    height: auto;
    min-height: 40px;
  }

  #heading {
    padding: 10px;
  }

  #heading img {
    max-width: 180px;
    width: 100%;
    height: auto;
    object-fit: contain;
    margin: 0 auto;
  }

  .card {
    padding: 10px;
  }
}

/* Print Styles */
@media print {
  .top-navbar,
  .footer,
  button,
  .btn,
  .ad-container,
  .login-popup-overlay {
    display: none !important;
  }

  body {
    background: white;
    color: black;
  }

  .card {
    border: 1px solid #000;
    box-shadow: none;
    page-break-inside: avoid;
  }

  a {
    text-decoration: underline;
    color: #000;
  }

  a[href]:after {
    content: " (" attr(href) ")";
  }
}

/* High DPI / Retina Display Support */
@media only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and (min-resolution: 192dpi) {
  /* Use higher quality images if available */
  img {
    image-rendering: -webkit-optimize-contrast;
  }
}

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

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
  :root {
    --bg-gray: #1a1a1a;
    --white: #2d2d2d;
    --text-dark: #e0e0e0;
  }

  body {
    background-color: #1a1a1a;
    color: #e0e0e0;
  }

  .card {
    background-color: #2d2d2d;
    color: #e0e0e0;
    border-color: #0088ff;
  }

  input, select, textarea {
    background-color: #2d2d2d;
    color: #e0e0e0;
    border-color: #0088ff;
  }

  input::placeholder, textarea::placeholder {
    color: #888;
  }
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
  button,
  .btn {
    border: 2px solid currentColor;
  }

  .card {
    border-width: 3px;
  }
}

/* Flexible Spacing Utilities */
.mt-1 { margin-top: calc(var(--spacing-unit) * 0.5); }
.mt-2 { margin-top: var(--spacing-unit); }
.mt-3 { margin-top: calc(var(--spacing-unit) * 1.5); }
.mt-4 { margin-top: calc(var(--spacing-unit) * 2); }

.mb-1 { margin-bottom: calc(var(--spacing-unit) * 0.5); }
.mb-2 { margin-bottom: var(--spacing-unit); }
.mb-3 { margin-bottom: calc(var(--spacing-unit) * 1.5); }
.mb-4 { margin-bottom: calc(var(--spacing-unit) * 2); }

.p-1 { padding: calc(var(--spacing-unit) * 0.5); }
.p-2 { padding: var(--spacing-unit); }
.p-3 { padding: calc(var(--spacing-unit) * 1.5); }
.p-4 { padding: calc(var(--spacing-unit) * 2); }

/* Text Utilities */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-small { font-size: var(--font-size-small); }
.text-base { font-size: var(--font-size-base); }
.text-large { font-size: var(--font-size-large); }

/* Flexbox Utilities */
.d-flex { display: flex; }
.flex-column { flex-direction: column; }
.flex-row { flex-direction: row; }
.flex-wrap { flex-wrap: wrap; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.align-center { align-items: center; }
.align-start { align-items: flex-start; }
.align-end { align-items: flex-end; }

/* Gap Utilities */
.gap-1 { gap: calc(var(--spacing-unit) * 0.5); }
.gap-2 { gap: var(--spacing-unit); }
.gap-3 { gap: calc(var(--spacing-unit) * 1.5); }
.gap-4 { gap: calc(var(--spacing-unit) * 2); }

/* Width Utilities */
.w-100 { width: 100%; }
.w-75 { width: 75%; }
.w-50 { width: 50%; }
.w-25 { width: 25%; }

/* Overflow Utilities */
.overflow-auto { overflow: auto; }
.overflow-hidden { overflow: hidden; }
.overflow-scroll { overflow: scroll; }

/* Position Utilities */
.position-relative { position: relative; }
.position-absolute { position: absolute; }
.position-fixed { position: fixed; }
.position-sticky { position: sticky; }


/* === Source: responsive-fixes.css === */
/* Responsive Fixes - Comprehensive UI/UX Optimization */

/* ===== MOBILE NAVIGATION FIX ===== */
@media (max-width: 768px) {
  .nav-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--bg-primary, #ffffff);
    flex-direction: column;
    padding: var(--space-4, 1rem);
    box-shadow: var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1));
    border-top: 1px solid var(--border-primary, #e5e7eb);
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 999;
  }
  
  .nav-menu.active {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }
  
  .nav-link,
  .nav-btn {
    width: 100%;
    justify-content: flex-start;
    padding: var(--space-3, 0.75rem) var(--space-4, 1rem);
  }
  
  .nav-toggle {
    display: flex;
  }
}

/* ===== HERO SECTION OPTIMIZATION ===== */
.hero-logo {
  display: flex;
  justify-content: center;
}

@media (max-width: 768px) {
  .hero {
    padding: var(--space-6, 1.5rem) var(--space-4, 1rem);
  }
  
  .hero-logo img {
    height: 50px;
  }
  
  .hero-title .subtitle {
    font-size: var(--font-size-base, 1rem);
  }
}

@media (max-width: 480px) {
  .hero {
    padding: var(--space-4, 1rem) var(--space-3, 0.75rem);
  }
  
  .hero-logo img {
    height: 45px;
  }
  
  .hero-title .subtitle {
    font-size: var(--font-size-sm, 0.875rem);
  }
}

/* ===== SEARCH SECTION OPTIMIZATION ===== */
@media (max-width: 768px) {
  .search-section,
  .results-section,
  .quote-section {
    padding: var(--space-6, 1.5rem);
    margin: var(--space-6, 1.5rem) var(--space-3, 0.75rem);
  }
}

@media (max-width: 480px) {
  .search-section,
  .results-section,
  .quote-section {
    padding: var(--space-4, 1rem);
    margin: var(--space-4, 1rem) var(--space-2, 0.5rem);
    border-radius: var(--radius-xl, 0.75rem);
  }
}

/* ===== FORM OPTIMIZATION ===== */
.form-row {
  display: grid;
  gap: var(--space-4, 1rem);
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

@media (max-width: 768px) {
  .form-row {
    grid-template-columns: 1fr;
    gap: var(--space-3, 0.75rem);
  }
}

@media (max-width: 480px) {
  .form-row {
    gap: var(--space-2, 0.5rem);
  }
  
  .form-group input,
  .form-group textarea,
  .form-group select {
    padding: var(--space-3, 0.75rem);
    font-size: 16px; /* Prevents iOS zoom */
  }
}

/* ===== BUTTON OPTIMIZATION ===== */
.form-actions {
  display: flex;
  gap: var(--space-3, 0.75rem);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: var(--space-2, 0.5rem);
}

@media (max-width: 768px) {
  .form-actions {
    flex-direction: column;
    gap: var(--space-2, 0.5rem);
  }
  
  .form-actions .btn {
    width: 100%;
  }
  
  .pagination .btn {
    width: auto;
  }
}

/* ===== RESULTS GRID OPTIMIZATION ===== */
.results-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-4, 1rem);
}

@media (max-width: 768px) {
  .results-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-3, 0.75rem);
  }
}

@media (max-width: 480px) {
  .results-grid {
    grid-template-columns: 1fr;
    gap: var(--space-3, 0.75rem);
  }
}

/* ===== ADDRESS TILE OPTIMIZATION ===== */
.address-tile {
  padding: var(--space-4, 1rem);
  min-height: 120px;
}

@media (max-width: 480px) {
  .address-tile {
    padding: var(--space-3, 0.75rem);
  }
  
  .address-tile p {
    font-size: var(--font-size-sm, 0.875rem);
  }
}

/* ===== PAGINATION OPTIMIZATION ===== */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-2, 0.5rem);
  flex-wrap: nowrap;
  padding: var(--space-3, 0.75rem) 0;
  margin-top: var(--space-4, 1rem);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.pagination .btn {
  min-width: 44px;
  min-height: 44px;
  padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
  font-size: var(--font-size-base, 1rem);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

@media (max-width: 480px) {
  .pagination {
    gap: var(--space-1, 0.25rem);
    padding: var(--space-2, 0.5rem);
  }
  
  .pagination .btn {
    min-width: 44px;
    min-height: 44px;
    padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
    font-size: var(--font-size-sm, 0.875rem);
  }
}

/* ===== TOAST NOTIFICATION OPTIMIZATION ===== */
.toast-container {
  position: fixed;
  top: var(--space-4, 1rem);
  right: var(--space-4, 1rem);
  z-index: var(--z-toast, 1080);
  max-width: 400px;
}

@media (max-width: 768px) {
  .toast-container {
    left: var(--space-3, 0.75rem);
    right: var(--space-3, 0.75rem);
    top: var(--space-3, 0.75rem);
    max-width: none;
  }
  
  .toast {
    min-width: auto;
    width: 100%;
  }
}

@media (max-width: 480px) {
  .toast-container {
    left: var(--space-2, 0.5rem);
    right: var(--space-2, 0.5rem);
    top: var(--space-2, 0.5rem);
  }
  
  .toast {
    padding: var(--space-3, 0.75rem);
    font-size: var(--font-size-sm, 0.875rem);
  }
}

/* ===== MODAL OPTIMIZATION ===== */
.modal {
  padding: var(--space-4, 1rem);
}

.modal-content {
  max-width: 500px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
}

@media (max-width: 768px) {
  .modal {
    padding: var(--space-3, 0.75rem);
  }
  
  .modal-content {
    max-width: 100%;
  }
  
  .modal-header,
  .modal-body,
  .modal-actions {
    padding: var(--space-4, 1rem);
  }
}

@media (max-width: 480px) {
  .modal {
    padding: var(--space-2, 0.5rem);
  }
  
  .modal-header,
  .modal-body,
  .modal-actions {
    padding: var(--space-3, 0.75rem);
  }
  
  .modal-actions {
    flex-direction: column;
    gap: var(--space-2, 0.5rem);
  }
  
  .modal-actions .btn {
    width: 100%;
  }
}

/* ===== FOOTER OPTIMIZATION ===== */
.footer-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--space-6, 1.5rem);
}

@media (max-width: 768px) {
  .footer-content {
    grid-template-columns: 1fr;
    gap: var(--space-4, 1rem);
    text-align: center;
  }
  
  .social-links {
    justify-content: center;
  }
}

/* ===== SEARCH HINT OPTIMIZATION ===== */
.search-hint {
  margin: var(--space-4, 1rem) auto;
  padding: var(--space-3, 0.75rem);
}

@media (max-width: 768px) {
  .search-hint {
    margin: var(--space-3, 0.75rem) var(--space-3, 0.75rem);
    padding: var(--space-3, 0.75rem);
  }
  
  .hint-content {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .search-hint {
    margin: var(--space-2, 0.5rem) var(--space-2, 0.5rem);
    padding: var(--space-2, 0.5rem);
    font-size: var(--font-size-sm, 0.875rem);
  }
}

/* ===== QUOTE SECTION OPTIMIZATION ===== */
.quote-section {
  padding: var(--space-5, 1.25rem) var(--space-6, 1.5rem);
}

@media (max-width: 768px) {
  .quote-section {
    padding: var(--space-4, 1rem) var(--space-5, 1.25rem);
  }
  
  .quote-main {
    font-size: var(--font-size-lg, 1.125rem);
  }
  
  .quote-highlight {
    font-size: var(--font-size-base, 1rem);
  }
}

@media (max-width: 480px) {
  .quote-section {
    padding: var(--space-3, 0.75rem) var(--space-4, 1rem);
  }
  
  .quote-icon {
    font-size: var(--font-size-3xl, 1.875rem);
  }
  
  .quote-main {
    font-size: var(--font-size-base, 1rem);
  }
  
  .quote-highlight {
    font-size: var(--font-size-sm, 0.875rem);
  }
}

/* ===== RATING CONTAINER OPTIMIZATION ===== */
.rating-container {
  display: flex;
  align-items: center;
  gap: var(--space-2, 0.5rem);
  flex-wrap: wrap;
}

.star-rating {
  display: flex;
  gap: 2px;
}

@media (max-width: 480px) {
  .star {
    font-size: 16px;
  }
  
  .star-rating-output {
    font-size: var(--font-size-xs, 0.75rem);
  }
}

/* ===== TOUCH TARGET OPTIMIZATION ===== */
@media (hover: none) and (pointer: coarse) {
  .btn,
  .nav-link,
  .nav-btn,
  .address-tile,
  .suggestion-item {
    min-height: 44px;
    min-width: 44px;
  }
  
  .nav-toggle {
    padding: var(--space-3, 0.75rem);
  }
  
  .bar {
    height: 4px;
  }
}

/* ===== LOADING OVERLAY OPTIMIZATION ===== */
.loader-overlay {
  padding: var(--space-4, 1rem);
}

.loader-content {
  background: var(--bg-primary, #ffffff);
  padding: var(--space-6, 1.5rem);
  border-radius: var(--radius-xl, 0.75rem);
  box-shadow: var(--shadow-xl);
}

@media (max-width: 480px) {
  .loader-content {
    padding: var(--space-4, 1rem);
  }
  
  .spinner {
    width: 32px;
    height: 32px;
  }
}

/* ===== PERFORMANCE INDICATOR OPTIMIZATION ===== */
.performance-indicator {
  position: fixed;
  top: var(--space-4, 1rem);
  left: var(--space-4, 1rem);
}

@media (max-width: 768px) {
  .performance-indicator {
    top: auto;
    bottom: var(--space-4, 1rem);
    left: var(--space-3, 0.75rem);
    font-size: var(--font-size-xs, 0.75rem);
    padding: var(--space-1, 0.25rem) var(--space-2, 0.5rem);
  }
}

/* ===== CONTAINER OPTIMIZATION ===== */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 var(--space-4, 1rem);
}

@media (max-width: 768px) {
  .container {
    padding: 0 var(--space-3, 0.75rem);
  }
}

@media (max-width: 480px) {
  .container {
    padding: 0 var(--space-2, 0.5rem);
  }
}

/* ===== LANDSCAPE ORIENTATION FIX ===== */
@media (max-height: 500px) and (orientation: landscape) {
  .hero {
    padding: var(--space-6, 1.5rem) var(--space-4, 1rem);
  }
  
  .hero-logo img {
    height: 40px;
  }
  
  .modal-content {
    max-height: 95vh;
  }
}

/* ===== SAFE AREA INSETS (iOS) ===== */
@supports (padding: max(0px)) {
  .navbar,
  .footer,
  .toast-container {
    padding-left: max(var(--space-4, 1rem), env(safe-area-inset-left));
    padding-right: max(var(--space-4, 1rem), env(safe-area-inset-right));
  }
  
  .hero,
  .search-section,
  .results-section {
    padding-left: max(var(--space-4, 1rem), env(safe-area-inset-left));
    padding-right: max(var(--space-4, 1rem), env(safe-area-inset-right));
  }
}

/* ===== FOCUS VISIBLE OPTIMIZATION ===== */
.btn:focus-visible,
.nav-link:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--brand-primary, #0074D9);
  outline-offset: 2px;
}

/* ===== SMOOTH SCROLLING WITH OFFSET ===== */
html {
  scroll-padding-top: 80px;
}

@media (max-width: 768px) {
  html {
    scroll-padding-top: 60px;
  }
}

/* ===== PREVENT HORIZONTAL SCROLL ===== */
body {
  overflow-x: hidden;
}

.search-section,
.results-section,
.quote-section,
.modal-content {
  max-width: 100%;
  overflow-x: hidden;
}

/* ===== IMPROVED READABILITY ===== */
p, li {
  max-width: 70ch;
}

@media (max-width: 768px) {
  p, li {
    max-width: 100%;
  }
}

/* ===== CARD OPTIMIZATION ===== */
.card {
  background: var(--bg-primary, #ffffff);
  border-radius: var(--radius-xl, 0.75rem);
  padding: var(--space-6, 1.5rem);
  box-shadow: var(--shadow-md);
  border: 1px solid var(--border-primary, #e5e7eb);
}

@media (max-width: 768px) {
  .card {
    padding: var(--space-4, 1rem);
    border-radius: var(--radius-lg, 0.5rem);
  }
}

@media (max-width: 480px) {
  .card {
    padding: var(--space-3, 0.75rem);
  }
}

/* ===== IMPROVED SPACING CONSISTENCY ===== */
section + section {
  margin-top: var(--space-8, 2rem);
}

@media (max-width: 768px) {
  section + section {
    margin-top: var(--space-6, 1.5rem);
  }
}

@media (max-width: 480px) {
  section + section {
    margin-top: var(--space-4, 1rem);
  }
}

/* ===== IMPROVED CONTRAST FOR ACCESSIBILITY ===== */
@media (prefers-contrast: high) {
  .btn,
  .nav-link,
  .address-tile {
    border-width: 2px;
  }
  
  .form-group input,
  .form-group textarea,
  .form-group select {
    border-width: 2px;
  }
}

/* ===== AD CONTAINER RESPONSIVE FIX ===== */
@media (max-width: 768px) {
  .sticky-bottom-ad {
    height: 80px !important;
    max-height: 80px !important;
  }
  
  .sticky-bottom-ad-content {
    height: 70px !important;
    max-height: 70px !important;
  }
  
  .sticky-bottom-ad-content > *,
  .sticky-bottom-ad-content ins,
  .sticky-bottom-ad-content iframe {
    max-height: 70px !important;
  }
  
  body.has-sticky-ad {
    padding-bottom: 90px !important;
  }
}

@media (max-width: 480px) {
  .sticky-bottom-ad {
    height: 70px !important;
    max-height: 70px !important;
  }
  
  .sticky-bottom-ad-content {
    height: 60px !important;
    max-height: 60px !important;
  }
  
  .sticky-bottom-ad-content > *,
  .sticky-bottom-ad-content ins,
  .sticky-bottom-ad-content iframe {
    max-height: 60px !important;
  }
  
  body.has-sticky-ad {
    padding-bottom: 80px !important;
  }
}

/* ===== PRINT OPTIMIZATION ===== */
@media print {
  .navbar,
  .nav-toggle,
  .modal,
  .toast-container,
  .performance-indicator,
  .btn,
  .form-actions,
  .sticky-bottom-ad {
    display: none !important;
  }
  
  .hero {
    background: none !important;
    color: #000 !important;
    padding: 1rem !important;
  }
  
  .search-section,
  .results-section {
    box-shadow: none !important;
    border: 1px solid #000 !important;
    page-break-inside: avoid;
  }
  
  .address-tile {
    page-break-inside: avoid;
  }
}


/* === Source: accessibility-enhancements.css === */
/* Accessibility Enhancements */

/* Focus visible for keyboard navigation */
.keyboard-nav *:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* Hide focus outline for mouse users */
body:not(.keyboard-nav) *:focus {
    outline: none;
}

/* Skip link */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--primary-color);
    color: white;
    padding: 0.5rem 1rem;
    text-decoration: none;
    z-index: var(--z-tooltip);
    transition: top var(--transition-fast);
}

.skip-link:focus {
    top: 0;
}

/* Screen reader only content */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* Focus trap for modals */
.modal:not(.hidden) {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    * {
        border-color: currentColor !important;
    }
    
    button, a {
        text-decoration: underline;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Touch target size */
button,
a,
input[type="checkbox"],
input[type="radio"],
select {
    min-height: 44px;
    min-width: 44px;
}

/* Interactive element states */
button:hover:not(:disabled),
a:hover {
    opacity: 0.9;
}

button:active:not(:disabled),
a:active {
    transform: scale(0.98);
}

button:disabled {
    opacity: 1;
    cursor: not-allowed;
    background-color: #6c757d !important;
    color: #ffffff !important;
    border-color: #6c757d !important;
}

/* Form field focus */
input:focus,
textarea:focus,
select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px var(--primary-light);
}

/* Error states */
input:invalid:not(:focus),
textarea:invalid:not(:focus) {
    border-color: var(--error);
}

.field-error {
    color: var(--error);
    font-size: var(--font-size-sm);
    margin-top: var(--spacing-xs);
}

/* Loading states */
[aria-busy="true"] {
    cursor: wait;
    opacity: 0.6;
}

/* Disabled states */
[aria-disabled="true"] {
    pointer-events: none;
    opacity: 0.5;
}


/* === Source: ui-enhancements.css === */
/* UI Enhancements - Optimized Spacing, Alignment & Responsiveness */

/* ===== HERO SECTION OPTIMIZATION ===== */
.hero {
  padding: var(--spacing-xl) var(--spacing-lg) !important;
}

.hero-logo img {
  max-width: 240px !important;
  height: auto;
}

.hero-title .subtitle {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-relaxed);
}

/* ===== SEARCH SECTION SPACING OPTIMIZATION ===== */
.search-section {
  padding: var(--spacing-lg) !important;
  margin: var(--spacing-lg) auto !important;
}

.search-form {
  gap: var(--spacing-sm) !important;
}

.form-row {
  gap: var(--spacing-sm) !important;
}

.form-group {
  gap: 0.25rem !important;
}

.form-group label {
  font-size: var(--font-size-sm);
  margin-bottom: 0;
}

.form-group input,
.form-group textarea {
  padding: var(--spacing-sm) var(--spacing-md) !important;
}

.form-actions {
  gap: var(--spacing-sm) !important;
  margin-top: var(--spacing-md) !important;
}

/* ===== QUOTE SECTION ALIGNMENT & SPACING ===== */
.quote-section {
  padding: var(--spacing-xl) var(--spacing-lg) !important;
  margin: var(--spacing-xl) auto !important;
  text-align: center !important;
}

.quote-content {
  margin-bottom: var(--spacing-lg) !important;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

.quote-icon {
  font-size: var(--font-size-3xl);
  margin-bottom: var(--spacing-md) !important;
  text-align: center !important;
}

.quote-text {
  text-align: center !important;
}

.quote-main {
  font-size: var(--font-size-lg) !important;
  line-height: var(--line-height-relaxed) !important;
  margin-bottom: var(--spacing-sm) !important;
  text-align: center !important;
}

.quote-highlight {
  font-size: var(--font-size-base) !important;
  line-height: var(--line-height-normal) !important;
  margin-bottom: var(--spacing-sm) !important;
  text-align: center !important;
}

.quote-description,
.quote-encourage {
  font-size: var(--font-size-base) !important;
  line-height: var(--line-height-normal) !important;
  opacity: 0.95 !important;
  margin-bottom: var(--spacing-xs) !important;
  text-align: center !important;
}

.quote-actions {
  text-align: center !important;
}

/* ===== RESULTS SECTION OPTIMIZATION ===== */
.results-section {
  padding: var(--spacing-lg) !important;
  margin: var(--spacing-lg) auto !important;
}

.results-grid {
  gap: var(--spacing-md) !important;
  margin-top: var(--spacing-md) !important;
}

.address-tile {
  padding: var(--spacing-md) !important;
}

/* ===== SEARCH HINT OPTIMIZATION ===== */
.search-hint {
  padding: var(--spacing-sm) !important;
  margin: var(--spacing-md) auto !important;
}

/* ===== FOOTER OPTIMIZATION ===== */
/* Footer styles are defined in superior-main.css */

/* ===== RESPONSIVE OPTIMIZATIONS ===== */

/* Tablet (768px - 1024px) */
@media (max-width: 1024px) {
  .hero {
    padding: var(--space-10) var(--space-5);
  }
  
  .search-section,
  .results-section {
    padding: var(--space-5);
    margin: var(--space-5) auto;
  }
  
  .quote-section {
    padding: var(--space-6) var(--space-5);
    margin: var(--space-6) auto;
  }
}

/* Mobile (max-width: 768px) */
@media (max-width: 768px) {
  .hero {
    padding: var(--space-8) var(--space-4);
  }
  
  .hero-logo img {
    max-width: 200px;
  }
  
  .hero-title .subtitle {
    font-size: var(--font-size-base);
  }
  
  .search-section,
  .results-section {
    padding: var(--space-4);
    margin: var(--space-4) var(--space-3);
    border-radius: var(--radius-xl);
  }
  
  .search-form {
    gap: var(--space-2);
  }
  
  .form-row {
    gap: var(--space-2);
  }
  
  .form-actions {
    flex-direction: column;
    gap: var(--space-2);
  }
  
  .form-actions .btn {
    width: 100%;
  }
  
  .quote-section {
    padding: var(--space-6) var(--space-4);
    margin: var(--space-6) var(--space-3);
    border-radius: var(--radius-xl);
  }
  
  .quote-icon {
    font-size: var(--font-size-2xl);
    margin-bottom: var(--space-3);
  }
  
  .quote-main {
    font-size: var(--font-size-base);
  }
  
  .quote-highlight,
  .quote-description,
  .quote-encourage {
    font-size: var(--font-size-sm);
  }
  
  .results-grid {
    gap: var(--space-3);
  }
  
  /* Footer responsive styles in superior-main.css */
}

/* Small Mobile (max-width: 480px) */
@media (max-width: 480px) {
  .hero {
    padding: var(--space-6) var(--space-3);
  }
  
  .hero-logo img {
    max-width: 160px;
  }
  
  .hero-title .subtitle {
    font-size: var(--font-size-sm);
  }
  
  .search-section,
  .results-section,
  .quote-section {
    padding: var(--space-3);
    margin: var(--space-3) var(--space-2);
  }
  
  .form-group input,
  .form-group textarea {
    padding: var(--space-2);
    font-size: var(--font-size-sm);
  }
  
  .form-group label {
    font-size: 0.8125rem;
  }
  
  .btn {
    padding: var(--space-2) var(--space-4);
    font-size: var(--font-size-sm);
  }
  
  .quote-main {
    font-size: var(--font-size-sm);
  }
  
  .quote-highlight,
  .quote-description,
  .quote-encourage {
    font-size: 0.8125rem;
  }
}

/* ===== DARK MODE OPTIMIZATIONS ===== */
.dark-mode .search-section,
.dark-mode .results-section {
  background: var(--gray-800);
  border-color: var(--gray-700);
}

.dark-mode .quote-section {
  background: linear-gradient(135deg, #1e40af 0%, #1e3a8a 100%);
  border-color: rgba(255, 255, 255, 0.1);
}

.dark-mode .address-tile {
  background: var(--gray-800);
  border-color: var(--gray-700);
}

.dark-mode .address-tile:hover {
  border-color: var(--brand-primary);
  background: var(--gray-750, #2d3748);
}

/* ===== ACCESSIBILITY ENHANCEMENTS ===== */
@media (prefers-reduced-motion: reduce) {
  .quote-section,
  .search-section,
  .results-section {
    animation: none;
  }
}

/* High contrast mode */
@media (prefers-contrast: high) {
  .quote-section {
    border: 2px solid var(--white);
  }
  
  .search-section,
  .results-section {
    border: 2px solid var(--border-primary);
  }
}

/* ===== PRINT OPTIMIZATIONS ===== */
@media print {
  .hero {
    padding: var(--space-4);
  }
  
  .search-section,
  .quote-section {
    page-break-inside: avoid;
  }
  
  .results-section {
    page-break-before: auto;
  }
}

/* ===== TOUCH DEVICE OPTIMIZATIONS ===== */
@media (hover: none) and (pointer: coarse) {
  .btn {
    min-height: 44px;
    min-width: 44px;
  }
  
  .form-group input,
  .form-group textarea {
    min-height: 44px;
    font-size: 16px; /* Prevents zoom on iOS */
  }
  
  .nav-link {
    min-height: 44px;
    padding: var(--space-3) var(--space-4);
  }
}

/* ===== LANDSCAPE MOBILE OPTIMIZATION ===== */
@media (max-width: 768px) and (orientation: landscape) {
  .hero {
    padding: var(--space-4) var(--space-4);
  }
  
  .hero-logo img {
    max-width: 140px;
  }
  
  .quote-section {
    padding: var(--space-4) var(--space-4);
  }
}


/* === Source: trust-enhancements.css === */
/* Trust & Polish Enhancements - Professional, Trustworthy Design */

/* ===== TRUST INDICATORS ===== */

/* Verified Badge with 3D effect */
.verified-badge {
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
  color: white;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  box-shadow: 0 2px 8px rgba(34, 197, 94, 0.3),
              inset 0 1px 0 rgba(255, 255, 255, 0.3);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* Security indicators */
.security-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(59, 130, 246, 0.1);
  border: 1px solid rgba(59, 130, 246, 0.3);
  border-radius: 6px;
  font-size: 12px;
  color: #3b82f6;
  font-weight: 500;
}

/* ===== ELEVATED CARDS WITH DEPTH ===== */

.card, .review-section, .property-header, #addressUnderReview {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1),
              0 4px 12px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.3s ease, transform 0.2s ease;
}

.card:hover, .address-tile:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12),
              0 8px 24px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

/* ===== PROFESSIONAL BUTTONS ===== */

.primary-btn, .location-pin-btn, #submit-btn, .auth-review-btn {
  box-shadow: 0 2px 8px rgba(0, 116, 217, 0.25),
              inset 0 1px 0 rgba(255, 255, 255, 0.2);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.primary-btn::before, .location-pin-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s ease;
}

.primary-btn:hover::before, .location-pin-btn:hover::before {
  left: 100%;
}

/* ===== TRUST COLORS ===== */

:root {
  --trust-blue: #0074D9;
  --trust-blue-dark: #005197;
  --trust-green: #22c55e;
  --trust-green-dark: #16a34a;
  --trust-gold: #f59e0b;
  --trust-shadow: rgba(0, 116, 217, 0.15);
}

/* ===== PROFESSIONAL GRADIENTS ===== */

.property-header, #addressUnderReview {
  background: linear-gradient(135deg, #005197 0%, #0074D9 50%, #0088ff 100%);
  position: relative;
  overflow: hidden;
}

.property-header::before, #addressUnderReview::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 70%);
  animation: shimmer 8s infinite linear;
}

@keyframes shimmer {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* ===== TRUST TYPOGRAPHY ===== */

h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.02em;
}

.trust-heading {
  background: linear-gradient(135deg, #0074D9, #005197);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
}

/* ===== SMOOTH TRANSITIONS ===== */

* {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== FOCUS STATES FOR TRUST ===== */

input:focus, textarea:focus, select:focus, button:focus-visible {
  outline: 3px solid rgba(0, 116, 217, 0.4);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(0, 116, 217, 0.1);
}

/* ===== LOADING STATES ===== */

.loading-shimmer {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer-load 1.5s infinite;
}

@keyframes shimmer-load {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ===== PROFESSIONAL BORDERS ===== */

.card, .review-section, .input-field input, .input-field textarea {
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.dark-mode .card, .dark-mode .review-section {
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ===== TRUST BADGES ===== */

.trust-indicator {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.1), rgba(22, 163, 74, 0.1));
  border: 1px solid rgba(34, 197, 94, 0.3);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #16a34a;
}

.trust-indicator i {
  color: #22c55e;
  font-size: 16px;
}

/* ===== METALLIC ACCENTS ===== */

.metallic-accent {
  background: linear-gradient(135deg, #e5e7eb 0%, #f3f4f6 50%, #e5e7eb 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8),
              inset 0 -1px 0 rgba(0, 0, 0, 0.1),
              0 2px 4px rgba(0, 0, 0, 0.1);
}

/* ===== PROFESSIONAL SPACING ===== */

.section-spacing {
  padding: clamp(16px, 4vw, 32px);
  margin-bottom: clamp(16px, 4vw, 32px);
}

/* ===== TRUST ANIMATIONS ===== */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-in {
  animation: fadeInUp 0.6s ease-out;
}

/* ===== PROFESSIONAL SHADOWS ===== */

.shadow-soft {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06),
              0 4px 16px rgba(0, 0, 0, 0.04);
}

.shadow-medium {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08),
              0 8px 24px rgba(0, 0, 0, 0.06);
}

.shadow-strong {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12),
              0 16px 48px rgba(0, 0, 0, 0.08);
}

/* ===== TRUST COLORS FOR RATINGS ===== */

.rating-excellent { color: #16a34a; }
.rating-good { color: #22c55e; }
.rating-average { color: #f59e0b; }
.rating-poor { color: #ef4444; }

/* ===== PROFESSIONAL INPUTS ===== */

input, textarea, select {
  background: rgba(255, 255, 255, 0.98);
  border: 1.5px solid rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease;
}

input:hover, textarea:hover, select:hover {
  border-color: rgba(0, 116, 217, 0.3);
}

.dark-mode input, .dark-mode textarea, .dark-mode select {
  background: rgba(55, 65, 81, 0.98);
  border-color: rgba(255, 255, 255, 0.1);
}

/* ===== TRUST FOOTER ===== */

footer {
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.02) 100%);
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.dark-mode footer {
  background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.02) 100%);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* ===== ACCESSIBILITY ENHANCEMENTS ===== */

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

/* ===== HIGH CONTRAST MODE ===== */

@media (prefers-contrast: high) {
  .card, .review-section {
    border-width: 2px;
    border-color: currentColor;
  }
  
  button {
    border: 2px solid currentColor;
  }
}

/* ===== PRINT STYLES ===== */

@media print {
  .shadow-soft, .shadow-medium, .shadow-strong {
    box-shadow: none !important;
  }
  
  .card, .review-section {
    border: 1px solid #000 !important;
    page-break-inside: avoid;
  }
}

/* ===== RESPONSIVE TRUST ELEMENTS ===== */

@media (max-width: 768px) {
  .trust-indicator {
    font-size: 11px;
    padding: 6px 12px;
  }
  
  .verified-badge {
    font-size: 11px;
    padding: 3px 10px;
  }
}

/* ===== SMOOTH SCROLL ===== */

html {
  scroll-behavior: smooth;
}

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

/* ===== PROFESSIONAL LOADER ===== */

.loader-overlay {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.spinner {
  border: 3px solid rgba(0, 116, 217, 0.1);
  border-top-color: #0074D9;
  box-shadow: 0 0 20px rgba(0, 116, 217, 0.2);
}

/* ===== TRUST SEAL ===== */

.trust-seal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: linear-gradient(135deg, #f8fafc, #f1f5f9);
  border: 2px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06),
              inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.trust-seal i {
  color: #22c55e;
  font-size: 20px;
}

/* ===== PROFESSIONAL TOOLTIPS ===== */

[title] {
  position: relative;
  cursor: help;
}

/* ===== GLASS MORPHISM FOR MODALS ===== */

.modal-overlay {
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  background: rgba(0, 0, 0, 0.6);
}

.modal-content {
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.dark-mode .modal-content {
  background: rgba(31, 41, 55, 0.98);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ===== PROFESSIONAL PROGRESS BAR ===== */

.progress-bar {
  background: rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

.progress-fill {
  box-shadow: 0 1px 3px rgba(0, 116, 217, 0.3),
              inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

/* ===== TRUST MICRO-INTERACTIONS ===== */

button:active {
  transform: scale(0.98);
}

.card:active {
  transform: scale(0.995);
}

/* ===== PROFESSIONAL DIVIDERS ===== */

hr, .divider {
  border: none;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1), transparent);
}

.dark-mode hr, .dark-mode .divider {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
}


/* === Source: theme-utilities.css === */
/* Theme-Aware Utility Classes */

/* Star Rating Text */
.rating-text {
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  min-height: 24px;
}

.rating-text-unrated {
  color: var(--gray);
}

.dark-mode .rating-text-unrated {
  color: var(--gray-400, #9ca3af);
}

/* Star Colors */
.star-unselected {
  color: var(--gray-300, #E0E0E0);
}

.dark-mode .star-unselected {
  color: var(--gray-600, #4b5563);
}

/* Character Counter States */
.char-counter {
  font-size: var(--font-size-xs);
  text-align: right;
  margin-top: 4px;
}

.char-counter-normal {
  color: var(--gray);
}

.char-counter-warning {
  color: var(--warning-color);
}

.char-counter-error {
  color: var(--error-color);
}

.dark-mode .char-counter-normal {
  color: var(--gray-400, #9ca3af);
}

.dark-mode .char-counter-warning {
  color: var(--warning, #ffa726);
}

.dark-mode .char-counter-error {
  color: var(--error, #ff6b7a);
}

/* Toggle Switch States */
.toggle-disabled {
  background-color: var(--gray) !important;
}

.toggle-enabled-yes {
  background-color: var(--primary-color) !important;
}

.toggle-enabled-no {
  background-color: var(--secondary-color) !important;
}

.dark-mode .toggle-disabled {
  background-color: var(--gray-500, #6b7280) !important;
}

.dark-mode .toggle-enabled-yes {
  background-color: var(--brand-primary, #60a5fa) !important;
}

.dark-mode .toggle-enabled-no {
  background-color: var(--gray-600, #4b5563) !important;
}

/* Address Tile Content */
.tile-content p {
  margin-bottom: var(--spacing-sm);
  color: var(--dark-gray);
}

.dark-mode .tile-content p {
  color: var(--gray-100, #f3f4f6);
}

.dark-mode .address-tile {
  background: var(--gray-800, #1f2937);
  border-color: var(--gray-700, #374151);
}

.dark-mode .address-tile:hover {
  border-color: var(--brand-primary, #60a5fa);
}


/* === Source: validation.css === */
/* Input Validation Styles */

/* Error state for input fields */
.error {
    border-color: #e74c3c !important;
    box-shadow: 0 0 5px rgba(231, 76, 60, 0.3) !important;
    background-color: #fdf2f2 !important;
}

/* Error message styling */
.error-message {
    color: #e74c3c;
    font-size: 12px;
    margin-top: 4px;
    display: none;
    font-weight: 500;
    line-height: 1.3;
}

/* Success state for validated fields */
.valid {
    border-color: #27ae60 !important;
    box-shadow: 0 0 5px rgba(39, 174, 96, 0.3) !important;
}

/* Form group styling for better error display */
.form-group {
    position: relative;
    margin-bottom: 20px;
}

.form-group input {
    transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}

/* Validation icons */
.validation-icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    pointer-events: none;
}

.validation-icon.success {
    color: #27ae60;
}

.validation-icon.error {
    color: #e74c3c;
}

/* Input focus states */
input:focus {
    outline: none;
    border-color: #3498db;
    box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
}

input.error:focus {
    border-color: #e74c3c;
    box-shadow: 0 0 5px rgba(231, 76, 60, 0.5);
}

/* Validation tooltip */
.validation-tooltip {
    position: absolute;
    background: #2c3e50;
    color: white;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    bottom: 100%;
    left: 0;
    margin-bottom: 5px;
}

.validation-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 20px;
    border: 5px solid transparent;
    border-top-color: #2c3e50;
}

.form-group:hover .validation-tooltip {
    opacity: 1;
    visibility: visible;
}

/* Required field indicator */
.required::after {
    content: ' *';
    color: #e74c3c;
    font-weight: bold;
}

/* Form validation summary */
.validation-summary {
    background: #fdf2f2;
    border: 1px solid #e74c3c;
    border-radius: 4px;
    padding: 15px;
    margin-bottom: 20px;
    display: none;
}

.validation-summary.show {
    display: block;
}

.validation-summary h4 {
    color: #e74c3c;
    margin: 0 0 10px 0;
    font-size: 14px;
    font-weight: 600;
}

.validation-summary ul {
    margin: 0;
    padding-left: 20px;
    color: #c0392b;
}

.validation-summary li {
    margin-bottom: 5px;
    font-size: 13px;
}

/* Loading state for validation */
.validating {
    position: relative;
}

.validating::after {
    content: '';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    border: 2px solid #f3f3f3;
    border-top: 2px solid #3498db;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: translateY(-50%) rotate(0deg); }
    100% { transform: translateY(-50%) rotate(360deg); }
}

/* Responsive adjustments */
@media (max-width: 1024px) {
    .validation-icon {
        font-size: 15px;
    }
}

@media (max-width: 768px) {
    .error-message {
        font-size: 11px;
    }
    
    .validation-tooltip {
        font-size: 11px;
        padding: 6px 10px;
    }
    
    .validation-icon {
        font-size: 14px;
        right: 8px;
    }
    
    .form-group {
        margin-bottom: 15px;
    }

    .validation-summary {
        padding: 12px;
    }

    .validation-summary h4 {
        font-size: 13px;
    }

    .validation-summary li {
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    .error-message {
        font-size: 10px;
    }
    
    .validation-tooltip {
        font-size: 10px;
        padding: 5px 8px;
    }
    
    .validation-icon {
        font-size: 13px;
    }
    
    .form-group {
        margin-bottom: 12px;
    }

    .validation-summary {
        padding: 10px;
    }

    .validation-summary h4 {
        font-size: 12px;
    }

    .validation-summary li {
        font-size: 11px;
    }
}

/* Dark theme support */
@media (prefers-color-scheme: dark) {
    .error {
        background-color: #2d1b1b !important;
        border-color: #e74c3c !important;
    }

    .valid {
        border-color: #4caf50 !important;
        box-shadow: 0 0 5px rgba(76, 175, 80, 0.3) !important;
    }
    
    .validation-summary {
        background: #2d1b1b;
        border-color: #e74c3c;
    }
    
    .validation-tooltip {
        background: #34495e;
    }
    
    .validation-tooltip::after {
        border-top-color: #34495e;
    }
}