/* Actavia website: shared styles.
   Page layout is written on the elements themselves; this file holds the
   fonts, links, forms, the phone menu and small-screen adjustments. */

/* Fonts (stored on this site, so no visitor data goes to a font provider) */
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/jost-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/jost-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Jost'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/jost-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/source-sans-3-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 600; font-display: swap; src: url('fonts/source-sans-3-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: italic; font-weight: 400; font-display: swap; src: url('fonts/source-sans-3-latin-400-italic.woff2') format('woff2'); }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: #FFFFFF; }
img { max-width: 100%; }
a { color: #1B4E8F; }
a:hover { color: #2B2D42; }
[hidden] { display: none !important; }

/* Keyboard focus */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid #15C2D6; outline-offset: 2px;
}

/* Skip link for keyboard and screen reader users */
.skip-link { position: absolute; left: -9999px; top: 0; background: #2B2D42; color: #FFFFFF; padding: 12px 18px; z-index: 10; font-weight: 600; }
.skip-link:focus { left: 8px; top: 8px; color: #FFFFFF; }

/* Buttons and button-style links: hover */
a.btn-accent:hover { background: #4FD3E3 !important; color: #2B2D42; }
a.btn-dark:hover, button.btn-dark:hover { background: #17233B !important; color: #FFFFFF; }
a.btn-outline:hover { border-color: #FFFFFF !important; color: #FFFFFF; }
button.btn-dark:disabled { opacity: 0.6; cursor: default; }

/* Form messages */
.form-status { padding: 14px 18px; border-radius: 8px; font-size: 17px; line-height: 1.5; }
.form-status.ok { background: #E3F7FA; color: #17233B; border-left: 4px solid #15C2D6; }
.form-status.error { background: #FCEDEA; color: #7A2412; border-left: 4px solid #C4432B; }
.form-status a { color: inherit; font-weight: 600; }
/* Hidden field that only automated spam tools fill in */
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Menu button (phones only) */
.nav-toggle { display: none; font: inherit; font-weight: 600; font-size: 16px; background: #FFFFFF; color: #2B2D42; border: 1.5px solid #2B2D42; border-radius: 6px; padding: 10px 18px; cursor: pointer; }

@media (max-width: 760px) {
  .js .nav-toggle { display: inline-block; }
  .js .site-nav { display: none !important; width: 100%; }
  .js .site-nav.open { display: flex !important; flex-direction: column; align-items: stretch !important; gap: 0 !important; }
  .js .site-nav.open a { padding: 14px 0 !important; border-bottom: 1px solid #D9DFE8; }
  .js .site-nav.open a[aria-current="page"] { border-bottom: 2px solid #15C2D6 !important; }
  .js .site-nav.open a.nav-cta { margin: 16px 0 6px; padding: 14px 20px !important; text-align: center; border-bottom: none !important; }
}

/* Smaller screens: tighter vertical spacing */
@media (max-width: 640px) {
  .wrap { padding-top: 64px !important; padding-bottom: 64px !important; }
  .wrap-tight { padding-top: 48px !important; padding-bottom: 48px !important; }
  .hero-photo { height: 400px !important; }
}

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

@media print {
  .nav-toggle, .site-nav, .skip-link { display: none !important; }
}

/* Text pages (privacy notice, thank you) */
.prose { max-width: 760px; margin: 0 auto; padding: 72px 24px 104px; }
.prose p, .prose li { color: #3E4B66; margin: 0 0 16px; }
.prose ul { margin: 0 0 16px; padding-left: 24px; }
.prose li { margin-bottom: 6px; }
.prose h2 { margin: 48px 0 14px; font-family: 'Jost', sans-serif; font-weight: 500; font-size: 30px; line-height: 1.2; color: #17233B; }
.prose h3 { margin: 28px 0 8px; font-family: 'Jost', sans-serif; font-weight: 500; font-size: 22px; line-height: 1.25; color: #17233B; }
.prose .prose-meta { font-size: 16px; color: #53607A; }
@media (max-width: 640px) { .prose { padding: 48px 24px 72px; } }
