*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--color-body);
  background: var(--color-bg);
}

img { display: block; max-width: 100%; height: auto; }

a { color: var(--color-primary); text-decoration: none; }
a:hover { color: var(--color-primary-hover); }

/* Headings */
h1, h2, h3, h4 {
  font-family: var(--font-heading);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--color-near-black);
}

h1 { font-size: 38px; font-weight: 800; letter-spacing: -0.02em; }
h2 { font-size: 26px; font-weight: 800; }
h3 { font-size: 18px; font-weight: 700; }
h4 { font-size: 15px; font-weight: 700; }

/* Container */
.qp-container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 var(--section-pad-h);
}

/* Buttons */
.qp-btn-primary {
  display: inline-block;
  background: var(--color-primary);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 15.5px;
  font-weight: 700;
  padding: 14px 28px;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
  text-decoration: none;
}
.qp-btn-primary:hover {
  background: var(--color-primary-hover);
  color: var(--color-white);
}

.qp-btn-accent {
  display: inline-block;
  background: var(--color-accent);
  color: var(--color-near-black);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  padding: 12px 24px;
  border: none;
  cursor: pointer;
  transition: opacity 0.15s;
  text-decoration: none;
}
.qp-btn-accent:hover { opacity: 0.88; color: var(--color-near-black); }

.qp-btn-text {
  display: inline-block;
  color: var(--color-primary);
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  border-bottom: 2px solid var(--color-primary);
  padding-bottom: 1px;
  text-decoration: none;
  transition: color 0.15s, border-color 0.15s;
}
.qp-btn-text:hover {
  color: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}

/* Eyebrows */
.qp-eyebrow {
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-primary);
  margin-bottom: 12px;
}
.qp-eyebrow--light { color: oklch(70% 0.1 259); }

.qp-eyebrow-badge {
  display: inline-block;
  background: var(--color-tag-bg);
  color: var(--color-primary);
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 6px 14px;
  margin-bottom: 20px;
}

/* Placeholder images */
.qp-img-placeholder {
  width: 100%;
  aspect-ratio: 1;
  background: repeating-linear-gradient(
    -45deg,
    var(--color-border) 0px,
    var(--color-border) 1px,
    transparent 1px,
    transparent 12px
  );
  background-color: oklch(95% 0.005 259);
}

/* Main */
.qp-main { min-height: 60vh; }

/* WooCommerce resets */
.woocommerce-breadcrumb {
  font-size: 13px;
  color: var(--color-muted);
  padding: 20px 0;
}
.woocommerce-breadcrumb a { color: var(--color-muted); }
.woocommerce-breadcrumb a:hover { color: var(--color-primary); }

/* Responsive base */
@media (max-width: 768px) {
  :root {
    --section-pad-h: 20px;
    --section-pad-v: 56px;
  }
  h1 { font-size: 28px; }
  h2 { font-size: 22px; }
}
