/* ==========================================================================
   07 - FIXES
   Description: Third-party plugin fixes and miscellaneous overrides
   Dependencies: None
   ========================================================================== */

/* ===================== COOKIE CONSENT ===================== */
.cky-modal,
.cky-preference-center,
.cky-consent-container {
  max-width: 100vw !important;
  width: min(100vw, 720px) !important;
  box-sizing: border-box;
}

.cky-preference-center,
.cky-preference-center * {
  box-sizing: border-box;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.cky-overlay,
.cky-modal {
  left: 0 !important;
  right: 0 !important;
}

/* ==========================================================================
   ACCESSIBILITY BATCH - added 25 Jul 2026 from the full-site audit.
   These are the low-risk, additive fixes. The interactive-widget work (FAQ
   accordion keyboard access, slideshow pause control, map marker names) needs
   JS and markup changes and is tracked separately.
   ========================================================================== */

/* Anchor clearance is maintained with the header sizing in 03-navigation.css. */

/* The site had ZERO custom focus styles; it relied on the browser default ring,
   which is close to invisible on the primary blue and on the dark hero.
   WCAG 2.4.7. :focus-visible so mouse users see nothing change. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--color-primary-darker, #0b3d91);
  outline-offset: 2px;
  border-radius: 4px;
}
.symap-hero-fullwidth a:focus-visible,
.symap-hero-fullwidth button:focus-visible,
.symap-btn.primary:focus-visible {
  outline-color: #fff;
  box-shadow: 0 0 0 5px var(--color-primary-darker, #0b3d91);
}

/* Contrast: every failure was a hardcoded hex, not a design token. The tokens
   themselves are fine (body text 10.35:1, muted 7.58:1, primary 5.00:1).
   Measured ratios before -> after are in the comments. */
.symap-silo-wall-label,
.symap-price-badge-value,
.mfn-scheme-stat-label { color: #475569; }          /* #94a3b8 2.45:1 -> 7.58:1 */
.symap-handle-label    { background-color: #5b6b8c; } /* #92a0bb 2.64:1 -> 4.6:1 */
.mfn-article-link,
.mfn-tool-tab          { color: var(--color-primary, #0f62fe); } /* #3b82f6 3.68:1 -> 5.00:1 */
.mfn-info-icon,
.symap-country-price   { color: #475569; }          /* #64748b 4.34:1 -> 7.0:1 */
.wpforms-field-sublabel { color: #595959; }         /* #7f7f7f 4.00:1 -> 7.0:1 */
.symap-release-tag.irp      { color: #046c4e; }     /* #059669 3.34:1 */
.symap-release-tag.mfn      { color: var(--color-primary-dark, #0043ce); } /* #0f62fe 4.34:1 */
.symap-release-tag.platform { color: #92400e; }     /* #b45309 4.42:1 */
.symap-release-eyebrow      { background: #fff; }   /* 3.66:1 over the hero -> 5.00:1 */
.symap-year-badge,
.symap-lifecycle-marker { background-color: #0b3d91; } /* white on #3b82f6/#10b981/#8b5cf6, all under 4.5:1 */

/* Tap targets. WCAG 2.5.8 Target Size (Minimum, AA, new in 2.2) needs 24x24.
   The visual pill stays small; the hit area grows. */
.mfn-carousel-dot {
  min-width: 24px;
  min-height: 24px;
  padding: 7px;
  background-clip: content-box;
}
.mfn-article-link,
.symap-contact-link { padding: 6px 0; }

/* Ghost-button border was ~1.8:1 against its own fill, under WCAG 1.4.11's 3:1. */
.symap-btn.ghost { border-color: rgba(255, 255, 255, 0.6); }

/* 100vw includes the scrollbar gutter, so the hero was 375px inside a 360px
   viewport. Clipped rather than scrolling because of overflow-x: clip. */
.symap-hero-fullwidth { width: 100%; }

/* No prefers-reduced-motion support existed anywhere. The whole content reveal is
   opacity 0 + translateY driven by IntersectionObserver, plus 4s auto-advancing
   slideshows and an infinite pulse animation. Also insurance: if the deferred JS
   never runs, the reveal never fires and the page renders blank. */
@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;
  }
  .symap-animate-on-scroll,
  .symap-grid > .symap-card,
  .symap-blog-header.symap-animate-on-scroll,
  .symap-blog-content.symap-animate-on-scroll,
  .symap-contact-card.symap-animate-on-scroll,
  .symap-contact-expect.symap-animate-on-scroll {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ===================== NO-UNDERLINE LINKS ===================== */
/* A theme-vocabulary utility, applied in the footer template part (the
   "Contact Us" heading) and to the whole footer on the home page.

   Lived in the Site Editor's Styles panel until 28 Jul 26, which made it the
   one piece of live CSS outside /wp-content/symaptics/: invisible to the brace
   lint, to SYMAP_ASSETS_VER cache busting and to verify-deploy.py, and backed
   up nowhere until Template HTML/global-styles.json existed. Moved here so it
   is covered by all three. Copied verbatim, so the rendered result does not
   change - including the hover rule, which is deliberate: removing the
   underline outright leaves a link with no non-colour affordance. */
.no-underline-links a {
  text-decoration: none;
}

.no-underline-links a:hover,
.no-underline-links a:focus {
  text-decoration: underline;
}
