:root {
  --sh-emerald: #0b3c2b;
  --sh-emerald-dark: #06291d;
  --sh-cream: #fafaf8;
  --sh-white: #ffffff;
  --sh-blush: #d9a2a2;
  --sh-sage: #5a6e63;
  --sh-ink: #2c3e35;
  --sh-mist: #f1f4f1;
  --sh-line: #dfe6e1;
  --sh-display: "Cormorant Garamond", Georgia, serif;
  --sh-body: "Montserrat", Arial, sans-serif;
  --sh-container: 1440px;
  --sh-shadow: 0 24px 60px rgba(11, 60, 43, 0.1);
}

html { scroll-behavior: smooth; }

body {
  color: var(--sh-ink);
  background: var(--sh-cream);
  font-family: var(--sh-body);
  -webkit-font-smoothing: antialiased;
}

body, button, input, select, textarea { font-family: var(--sh-body); }

h1, h2, h3, h4, h5, h6 {
  color: var(--sh-emerald);
  font-family: var(--sh-display);
  line-height: 1.05;
}

a { color: inherit; }

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

.sh-container {
  width: min(var(--sh-container), calc(100% - 48px));
  margin-inline: auto;
}

/* Keep Astra pages and WooCommerce layouts on the same site-wide grid. */
body .ast-container,
body .site-content > .ast-container {
  width: min(var(--sh-container), calc(100% - 48px));
  max-width: var(--sh-container);
  margin-inline: auto;
  padding-inline: 0;
}

/* Remove Astra's default 4em/60px spacing around the main content column. */
body #primary,
body .site-content #primary,
body main#primary,
body.ast-separate-container #primary {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0;
}

body .site-content { padding-top: 0; }

/* Hide WordPress/Astra's automatic page-title block; custom templates supply headings. */
body.page .entry-header,
body.page .ast-page-title-bar,
body.page .ast-advanced-headers-wrap {
  display: none !important;
}

body.page .entry-content { margin-top: 0 !important; }

.sh-section { padding: clamp(76px, 9vw, 128px) 0; }

.sh-eyebrow {
  margin: 0 0 18px;
  color: var(--sh-blush);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.sh-section-heading {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  align-items: end;
  gap: 48px;
  margin-bottom: 48px;
}

.sh-section-heading h2 {
  margin: 0;
  font-size: clamp(2.7rem, 5vw, 4.6rem);
  font-weight: 600;
}

.sh-section-heading > p {
  max-width: 460px;
  margin: 0 0 8px auto;
  color: var(--sh-sage);
  font-size: 0.93rem;
  line-height: 1.8;
}

@media (max-width: 767px) {
  .sh-container { width: min(100% - 32px, var(--sh-container)); }
  body .ast-container,
  body .site-content > .ast-container { width: min(100% - 32px, var(--sh-container)); }
  .sh-section-heading { grid-template-columns: 1fr; gap: 20px; margin-bottom: 34px; }
  .sh-section-heading > p { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}
