/* ==========================================================
   site-v2.css — fixes layered on top of styles.css
   ========================================================== */

/* ---- Color contrast (WCAG AA 4.5:1 for body text) ---- */
:root { --text-dim: #8391a7; }                 /* was #64748b: 3.9:1 on dark, now 6.2:1 */
body.light-theme {
  --aurora-mint: #047857;                      /* was #059669: 3.6:1, now 5.2:1 */
  --aurora-cyan: #0369a1;                      /* was #0284c7: 3.9:1, now 5.7:1 */
  --text-highlight: #047857;
  --text-dim: #5b6b80;                         /* ~5:1 on #f8fafc */
}

/* ---- Visible keyboard focus ---- */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
  outline: 3px solid #4f8bff; outline-offset: 2px;
}

/* ---- Mobile responsiveness (small phones) ---- */
img { max-width: 100%; height: auto; }
@media (max-width: 480px) {
  .container { padding-left: 16px; padding-right: 16px; }
  .hero-title { font-size: 1.95rem; line-height: 1.15; }
  .section-title, .newsletter-title { font-size: 1.75rem; }
  .about-card { padding: 1.5rem; }
  .service-card { padding: 1.75rem 1.25rem; }
  .newsletter-card { padding: 2rem 1.1rem; }
  .newsletter-form .btn, .newsletter-input { width: 100%; }
  .modal-card { width: calc(100vw - 24px); max-height: calc(100vh - 24px); overflow-y: auto; padding: 1.5rem; }
  .credentials-grid { grid-template-columns: 1fr 1fr; }
}

/* ---- Form validation ---- */
.field-error { display: block; color: #dc2626; font-size: .85rem; margin-top: .35rem; min-height: 1em; }
body:not(.light-theme) .field-error { color: #f87171; }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] {
  border-color: #dc2626 !important; box-shadow: 0 0 0 2px rgba(220,38,38,.18);
}
.newsletter-form-wrapper .field-error { text-align: left; padding-left: .5rem; }

/* ---- Cookie consent banner ---- */
.cookie-banner {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9999;
  max-width: 560px; margin: 0 auto; padding: 1.1rem 1.25rem;
  background: #0f172a; color: #f8fafc; border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px; box-shadow: 0 18px 40px -12px rgba(0,0,0,.5);
  font-size: .92rem; line-height: 1.5; display: none;
}
.cookie-banner.is-visible { display: block; }
.cookie-banner p { margin: 0 0 .85rem; color: #e2e8f0; }
.cookie-banner a { color: #93c5fd; text-decoration: underline; }
.cookie-actions { display: flex; gap: .6rem; flex-wrap: wrap; }
.cookie-actions button {
  flex: 1 1 auto; min-height: 44px; padding: .55rem 1rem; border-radius: 999px;
  font: inherit; font-weight: 600; cursor: pointer; border: 1px solid transparent;
}
.cookie-accept { background: #f8fafc; color: #0f172a; }
.cookie-decline { background: transparent; color: #f8fafc; border-color: rgba(255,255,255,.35) !important; }
.footer-legal-btn { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; }

/* ---- Legal + 404 pages ---- */
.legal-page { max-width: 760px; margin: 0 auto; padding: 7rem 20px 4rem; }
.legal-page h1 { font-family: 'Outfit', sans-serif; font-size: clamp(2rem, 5vw, 2.8rem); margin-bottom: .5rem; color: var(--text-main); }
.legal-page .legal-updated { color: var(--text-muted); margin-bottom: 2.5rem; }
.legal-page h2 { font-family: 'Outfit', sans-serif; font-size: 1.35rem; margin: 2.2rem 0 .7rem; color: var(--text-main); }
.legal-page p, .legal-page li { color: var(--text-muted); line-height: 1.7; font-size: 1rem; }
.legal-page ul { padding-left: 1.25rem; margin: .5rem 0 1rem; }
.legal-page li { margin-bottom: .35rem; }
.legal-page a { color: var(--aurora-cyan); text-decoration: underline; }
.legal-top { position: fixed; top: 0; left: 0; right: 0; z-index: 50; padding: 1rem 20px;
  background: var(--bg-dark); border-bottom: 1px solid var(--bg-glass-border); }
.legal-top a { display: inline-flex; align-items: center; gap: .6rem; font-family: 'Outfit', sans-serif;
  font-weight: 700; font-size: 1.15rem; color: var(--text-main); text-decoration: none; }
.legal-top img { width: 30px; height: 30px; }
.legal-foot { text-align: center; padding: 2rem 20px 3rem; color: var(--text-muted); font-size: .9rem; border-top: 1px solid var(--bg-glass-border); }
.legal-foot a { color: inherit; margin: 0 .5rem; }
.notfound { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 6rem 20px 3rem; }
.notfound .code { font-family: 'Outfit', sans-serif; font-size: clamp(4.5rem, 18vw, 8rem); font-weight: 800; line-height: 1;
  background: linear-gradient(135deg, #2563eb, #0369a1); -webkit-background-clip: text; background-clip: text; color: transparent; }
.notfound h1 { font-family: 'Outfit', sans-serif; font-size: clamp(1.6rem, 4vw, 2.2rem); margin: 1rem 0 .6rem; color: var(--text-main); }
.notfound p { color: var(--text-muted); max-width: 460px; line-height: 1.6; margin-bottom: 2rem; }
.notfound-links { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: center; }
