:root {
  --font-display: "Manrope", Arial, sans-serif;
  --font-body: "Montserrat", Arial, sans-serif;
  --body-copy-size: 16px;
  --ui-radius: 8px;
}

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

h1,
h2,
h3 {
  font-family: var(--font-display) !important;
  font-weight: 700;
}

h1,
h2 { letter-spacing: -.03em !important; }

h3 { letter-spacing: -.018em !important; }

.section-heading h2,
.seasonal-popup h2,
.series-heading h2,
.campaign-cta h2,
.footer h2 {
  font-family: var(--font-display) !important;
  font-weight: 700;
}

.why-card h3,
.service-card h3,
.seasonal-card h3,
.product-copy h3 {
  font-family: var(--font-display) !important;
  font-size: clamp(22px, 1.6vw, 26px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
  text-transform: none;
}

.hero-lead,
.section-heading > p:last-child,
.why-card p,
.service-card p,
.footer-brand p,
.seasonal-popup__intro,
.seasonal-card__front p,
.seasonal-card__front li,
.seasonal-card__note,
.campaign-hero__content > p:not(.campaign-kicker),
.series-heading > p:last-child,
.product-copy p,
.campaign-cta > p:not(.campaign-kicker) {
  font-family: var(--font-body);
  font-size: var(--body-copy-size) !important;
  line-height: 1.7;
}

.main-nav,
.header-cta,
.button,
.seasonal-card__button,
.campaign-jump,
.campaign-cta a,
.footer-main a,
.footer-bottom,
.kicker,
.eyebrow,
.campaign-kicker,
.seasonal-popup__kicker,
.seasonal-card__hint,
.slider-count {
  font-family: var(--font-body);
}

.footer h2 {
  font-size: 24px;
  line-height: 1.1;
}

.footer-main a { font-size: 15px; }
.footer-bottom p,
.footer-bottom a { font-size: 14px; }

/* Keep the four home-page card descriptions aligned below two-line headings. */
@media (min-width: 1101px) {
  .why-card h3 { min-height: 58px; }
}

/* One shared corner radius, taken from the CTA buttons. */
.site-header,
.nav-submenu,
.header-cta,
.button,
.logo-set figure,
.service-card,
.seasonal-popup__window,
.seasonal-card__face,
.seasonal-card__button,
.campaign-jump a,
.product-card,
.slider-count,
.campaign-cta a,
.footer-cta {
  border-radius: var(--ui-radius) !important;
}

.service-card > img,
.product-slides img,
.seasonal-card__back img {
  border-radius: var(--ui-radius);
}

@media (max-width: 1120px) {
  .main-nav { border-radius: 0 0 var(--ui-radius) var(--ui-radius) !important; }
}

@media (max-width: 560px) {
  :root { --body-copy-size: 16px; }

  .why-card h3,
  .service-card h3,
  .seasonal-card h3,
  .product-copy h3 { font-size: 24px; }
}

/* Compact mobile footer. */
@media (max-width: 820px) {
  .footer-main { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 32px 0 24px; text-align: center; }
  .footer-main .footer-nav, .footer-brand p { display: none; }
  .footer-main > div { margin: 0; }
  .footer-main > div:not(.footer-brand) { padding: 0; border: 0; }
  .footer-brand img { margin: 0 auto; }
  .footer-bottom { justify-content: center; text-align: center; min-height: 72px; padding: 20px 0; }
  .footer-bottom p { width: 100%; margin: 0; text-align: center; }
  .footer-bottom > a { display: none; }
}
