/* Shared rules the inline design styles can't express: base, links, focus, skip link. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: hidden; }
img, svg { max-width: 100%; }
img { height: auto; }

a { color: #1F5BB8; }
a:hover { color: #0B2540; }
footer a:hover { color: #FFFFFF !important; }

/* Visible focus on light and dark grounds: white inner ring, accent outer ring. */
a:focus-visible, button:focus-visible {
  outline: 3px solid #1F5BB8;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #FFFFFF;
}
#why a:focus-visible, footer a:focus-visible, section[style*="#0B2540; color"] a:focus-visible {
  outline-color: #FFFFFF;
  box-shadow: 0 0 0 3px #1F5BB8;
}

.skip-link {
  position: absolute; left: 16px; top: -100px; z-index: 10;
  padding: 12px 20px; border-radius: 999px;
  background: #0B2540; color: #FFFFFF; font: 700 15px/1 'Manrope', system-ui, sans-serif; text-decoration: none;
}
.skip-link:focus { top: 12px; color: #FFFFFF; }

[id] { scroll-margin-top: 16px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Designed line breaks in the hero only make sense at desktop widths. */
@media (max-width: 640px) { #top br { display: none; } }

/* Hero waterline: phone-sized version below 760px so all the boats stay in view. */
.hero-wave--narrow { display: none !important; }
@media (max-width: 760px) {
  .hero-wave--wide { display: none !important; }
  .hero-wave--narrow { display: block !important; }
}

/* Products card meta row wraps onto two lines on phones; drop the separator dot there. */
@media (max-width: 480px) { .meta-sep { display: none; } }

/* FoodLife film: play/pause button over the bottom-right corner of the video. */
.film-toggle {
  position: absolute; right: 16px; bottom: 16px;
  width: 44px; height: 44px; padding: 0; border: 0; border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(11, 37, 64, 0.82); color: #FFFFFF; cursor: pointer;
  transition: background 0.15s;
}
.film-toggle:hover { background: #0B2540; }
.film-toggle[hidden] { display: none; }
.film-toggle .icon-play { display: none; }
.film-toggle[data-state="paused"] .icon-play { display: block; }
.film-toggle[data-state="paused"] .icon-pause { display: none; }
.film-frame video { aspect-ratio: 16 / 9; }
@media (max-width: 600px) {
  .film-frame { max-width: 420px; width: 100%; margin: 0 auto; }
  .film-frame video { aspect-ratio: 9 / 16; }
  .film-toggle { right: 12px; bottom: 12px; }
}
