/*
Theme Name: Mint SEO
Theme URI: https://mintseo.co.uk
Description: Custom GeneratePress child theme for the Mint SEO website redesign. Brand tokens, self-hosted Open Sans, Core-Web-Vitals-first. Built to be edited in the GenerateBlocks / GeneratePress site builder.
Author: Mint SEO
Template: generatepress
Version: 0.1.0
*/

/* ============================================================
   Base typography & colour — bind Open Sans + brand tokens
   site-wide. Loads after GeneratePress so these win. Section
   styles live in per-page CSS; tokens in assets/css/tokens.css.
   ============================================================ */

body,
button,
input,
select,
optgroup,
textarea {
  font-family: var(--font-sans);
  color: var(--body);
  font-size: var(--fs-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-sans);
  color: var(--ink);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.01em;
}

h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }

a { color: var(--mint-deep); }
a:hover { color: var(--mint); }

/* Mint accent for em-inside-heading (house rule: --mint on light) */
h1 em, h2 em, h3 em { color: var(--mint); font-style: normal; }

/* Scroll-animation base states (harness adds .is-visible on scroll-in).
   Hidden state is gated behind .mint-js (set in <head> before paint) so that
   with JS disabled the content is always visible — never hidden by a broken observer. */
.mint-js [data-mint-animate] {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .6s ease, transform .6s ease;
  will-change: opacity, transform;
}
[data-mint-animate].is-visible {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .mint-js [data-mint-animate] { opacity: 1; transform: none; transition: none; }
}

/* ============================================================
   Landing pages — let sections run full-bleed, flush under the
   header. Zero GeneratePress content padding/margins/borders.
   ============================================================ */
.mintseo-landing #page,
.mintseo-landing .grid-container,
.mintseo-landing .site-content,
.mintseo-landing .content-area,
.mintseo-landing #primary,
.mintseo-landing .site-main,
.mintseo-landing #main > article,
.mintseo-landing .inside-article,
.mintseo-landing .entry-content {
  margin: 0;
  padding: 0;
  max-width: 100% !important;
  width: 100%;
  border: 0;
}
/* Belt-and-braces: nothing horizontally overflows the viewport on landing pages. */
.mintseo-landing { overflow-x: hidden; }
.mintseo-landing .entry-content > * { margin-top: 0; margin-bottom: 0; }
