/*
  Self-hosted fonts go here. Download from Google Fonts and place in assets/fonts/.
  Uncomment when fonts are available:

  @font-face {
    font-family: 'Playfair Display';
    src: url('../fonts/PlayfairDisplay-Regular.woff2') format('woff2');
    font-weight: 400; font-style: normal; font-display: swap;
  }
  @font-face {
    font-family: 'Playfair Display';
    src: url('../fonts/PlayfairDisplay-SemiBold.woff2') format('woff2');
    font-weight: 600; font-style: normal; font-display: swap;
  }
  @font-face {
    font-family: 'Playfair Display';
    src: url('../fonts/PlayfairDisplay-Bold.woff2') format('woff2');
    font-weight: 700; font-style: normal; font-display: swap;
  }
  @font-face {
    font-family: 'Playfair Display';
    src: url('../fonts/PlayfairDisplay-Italic.woff2') format('woff2');
    font-weight: 400; font-style: italic; font-display: swap;
  }
  @font-face {
    font-family: 'Lato';
    src: url('../fonts/Lato-Light.woff2') format('woff2');
    font-weight: 300; font-style: normal; font-display: swap;
  }
  @font-face {
    font-family: 'Lato';
    src: url('../fonts/Lato-Regular.woff2') format('woff2');
    font-weight: 400; font-style: normal; font-display: swap;
  }
  @font-face {
    font-family: 'Lato';
    src: url('../fonts/Lato-Bold.woff2') format('woff2');
    font-weight: 700; font-style: normal; font-display: swap;
  }
*/

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

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--warm-white);
  -webkit-font-smoothing: antialiased;
}

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

a {
  color: inherit;
  text-decoration: none;
}

/* ── Utility ── */
.site-container {
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

.eyebrow {
  font-family: var(--font-sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--terra);
  display: block;
}

.eyebrow-light { color: var(--terra-light); }

.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
}

/* ── Buttons ── */
.btn-primary {
  display: inline-block;
  background: var(--terra);
  color: var(--warm-white);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 16px 32px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s;
  line-height: 1;
}
.btn-primary:hover { background: #b36840; color: var(--warm-white); }

.btn-primary-teal {
  background: var(--teal);
}
.btn-primary-teal:hover { background: var(--teal-dark); }

.btn-outline-light {
  display: inline-block;
  border: 1px solid rgba(251,247,242,0.5);
  color: var(--warm-white);
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 16px 32px;
  background: transparent;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s;
}
.btn-outline-light:hover { background: rgba(251,247,242,0.1); color: var(--warm-white); }

/* ── Default page content ── */
.page-default {
  padding-bottom: var(--space-8); /* breathing room before footer */
}

/*
 * Constrain standard WordPress blocks (paragraphs, headings, lists, etc.)
 * to a readable content width without touching PCB section blocks.
 *
 * WordPress adds wp-block-pcb-* to every custom PCB block wrapper, so
 * :not([class*="wp-block-pcb"]) selects only core / third-party blocks.
 */
.page-default > *:not([class*="wp-block-pcb"]) {
  max-width: 760px;
  margin-inline: auto;
  padding-inline: var(--container-pad);
  box-sizing: border-box;
}

/*
 * When the first block on the page is regular content (no hero),
 * push it below the fixed nav. PCB hero blocks handle this themselves
 * via their own margin-top: var(--nav-height).
 */
.page-default > *:not([class*="wp-block-pcb"]):first-child {
  margin-top: var(--nav-height);
}

/* ── Fade-up animation ── */
.fade-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.mt-40 { margin-top: 40px; }