/* ─── Site-wide cohesion ─── */

/* Subtle film grain across the whole page (very low opacity) */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  opacity: 0.025;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.7'/></svg>");
  background-size: 240px 240px;
}

/* Heading polish */
.wp-block-heading {
  font-feature-settings: "ss01", "kern", "liga";
  text-rendering: optimizeLegibility;
}

h2.wp-block-heading {
  font-weight: 600 !important;
  letter-spacing: -0.015em;
}

/* Card hover border (background + base styles handled by cards.css/3d-effects.css) */
.card-3d {
  background: #FFFFFF !important;
  border: 1px solid rgba(13,59,46,0.06);
}
.card-3d:hover {
  border-color: rgba(45,139,78,0.18);
}

/* Smooth-scroll anchor offset for fixed header */
[id] { scroll-margin-top: 90px; }
