/* Atlas Freight Line — shared styles.
   Page layout lives in each page's inline styles (carried over from the approved designs).
   This file holds what inline styles can't do: focus, hover, the phone menu, form states. */

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: #FFFFFF; }
*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; }
a { color: #1565C0; }
a:hover { color: #0B3D8C; }
[hidden] { display: none !important; }

:focus-visible { outline: 3px solid #8CC1FF; outline-offset: 2px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #1565C0; outline-offset: 1px; }

.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; background: #FFFFFF; color: #13233D; font-weight: 700; padding: 12px 16px; border-radius: 8px; }
.skip-link:focus { left: 16px; top: 16px; }

/* Buttons and links that carry an inline background get a hover lift */
a[style*="border-radius: 8px"]:hover, button[type="submit"]:hover { filter: brightness(1.08); }

/* Header */
.menu-toggle { display: none; font: inherit; font-weight: 700; font-size: 15px; color: #FFFFFF; background: transparent; border: 1px solid #5B6F8F; border-radius: 8px; padding: 10px 16px; min-height: 44px; cursor: pointer; }
@media (max-width: 960px) {
  .menu-toggle { display: inline-flex; align-items: center; }
  .site-nav, .site-header-cta { display: none !important; }
  .site-header.open .site-nav { display: flex !important; flex-direction: column; width: 100%; gap: 0 !important; }
  .site-header.open .site-nav a { padding: 14px 0 !important; border-top: 1px solid #24385A; border-bottom: 0 !important; font-size: 17px; }
  .site-header.open .site-nav a[aria-current="page"] { color: #8CC1FF !important; }
  .site-header.open .site-header-cta { display: block !important; width: 100%; text-align: center; margin-bottom: 8px; }
}

/* Forms */
.hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.form-error { background: #FDECEC; color: #8A1C1C; border: 1px solid #F3B4B4; border-radius: 8px; padding: 12px 14px; font-size: 15px; line-height: 1.5; }
.form-error a { color: #8A1C1C; font-weight: 700; }
button[disabled] { opacity: 0.7; cursor: progress; }
.ts-slot:empty { display: none; }

/* Embedded map */
.map-frame { width: 100%; height: 100%; border: 0; display: block; }

/* Legal pages */
.legal { max-width: 820px; margin: 0 auto; padding: 56px 24px 96px; }
.legal h2 { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 24px; line-height: 1.2; margin: 40px 0 12px; }
.legal h3 { font-size: 18px; margin: 24px 0 8px; }
.legal p, .legal li { color: #1E2A3B; }
.legal ul { padding-left: 22px; }
.legal li { margin: 6px 0; }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print { header, footer, .menu-toggle { display: none !important; } }
