/* Otrovia — shared stylesheet. Component styling stays inline (as in the
   original design export); this file only holds resets, base type and
   the handful of interactive pieces shared across every page. */

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Nunito', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

h1, h2, h3, h4 {
  font-family: 'Quicksand', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

a {
  color: oklch(50% 0.1 230);
  text-decoration: none;
}
a:hover {
  color: oklch(40% 0.12 230);
}

img { border: 0; }

button { font-family: inherit; }

table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 14px;
}
th, td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid oklch(90% 0.02 90);
}
th {
  background: oklch(92% 0.035 230 / 0.4);
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

/* image-slot replacement: real <img> filling its placeholder box */
.ph-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* skip link for accessibility */
.skip-link {
  position: absolute;
  left: -999px;
  top: auto;
  background: white;
  padding: 10px 16px;
  border-radius: 8px;
  z-index: 999;
}
.skip-link:focus {
  left: 12px;
  top: 12px;
}

/* cookie banner + cart drawer visibility toggles (state set via [hidden]) */
[hidden] { display: none !important; }

.form-msg-success {
  text-align: center;
  padding: 20px;
}

.field-error {
  color: oklch(55% 0.15 25);
  font-size: 13px;
  margin: -6px 0 0;
}
