/**
 * Site-wide typography rhythm — readable line-height & vertical spacing.
 */

:root {
  --alnair-lh-display: 1.08;
  --alnair-lh-display-stack: 0.05em;
  --alnair-display-tracking: 0.04em;
  --alnair-lh-h1: 1.2;
  --alnair-lh-h2: 1.28;
  --alnair-lh-h3: 1.35;
  --alnair-lh-body: 1.75;
  --alnair-lh-ui: 1.65;
  --alnair-lh-caption: 1.55;
  --alnair-space-xs: 12px;
  --alnair-space-sm: 20px;
  --alnair-space-md: 28px;
  --alnair-space-lg: 40px;
  --alnair-space-xl: 56px;
  --alnair-section-y: 84px;
  --alnair-nav-to-hero: clamp(88px, 11vw, 152px);
}

/* Base readability on custom templates */
body.page-about,
body.page-service,
body.page-contact,
body.page-services-hub,
body.page-portfolio {
  line-height: var(--alnair-lh-body);
  -webkit-font-smoothing: antialiased;
}

body.page-about p,
body.page-service p,
body.page-contact p,
body.page-services-hub p,
body.page-portfolio p,
body.page-about li,
body.page-service li,
body.page-contact li,
body.page-services-hub li,
body.page-portfolio li {
  line-height: var(--alnair-lh-body);
}

/* —— Stacked display headings (About) —— */
.about-masthead__title {
  line-height: var(--alnair-lh-display) !important;
  letter-spacing: var(--alnair-display-tracking) !important;
}

.about-masthead__line {
  display: block;
  line-height: 1.05;
  letter-spacing: var(--alnair-display-tracking) !important;
}

.about-masthead__line + .about-masthead__line {
  margin-top: var(--alnair-lh-display-stack) !important;
}

.about-masthead__title {
  margin-bottom: var(--alnair-space-md) !important;
}

/* —— Services hub stacked hero —— */
.hub-hero__display {
  line-height: var(--alnair-lh-display) !important;
  letter-spacing: var(--alnair-display-tracking) !important;
  margin-bottom: var(--alnair-space-md) !important;
}

.hub-hero__display-line {
  line-height: 1.05;
  letter-spacing: var(--alnair-display-tracking) !important;
}

.hub-hero__display-line + .hub-hero__display-line {
  margin-top: var(--alnair-lh-display-stack) !important;
}

.portfolio-hero__title {
  line-height: 1.15 !important;
  letter-spacing: 0.02em !important;
  margin-bottom: 16px !important;
}

.service-hero__title,
.contact-hero__title {
  line-height: var(--alnair-lh-h1) !important;
  letter-spacing: var(--alnair-display-tracking) !important;
  margin-bottom: var(--alnair-space-sm) !important;
}

/* —— Lead / tagline under heroes —— */
.about-masthead__tagline,
.hub-hero__lead,
.service-hero__tagline,
.contact-hero__tagline,
.portfolio-hero__desc {
  line-height: var(--alnair-lh-body) !important;
  margin-top: var(--alnair-space-xs);
  margin-bottom: var(--alnair-space-md) !important;
}

.about-masthead__tagline,
.contact-hero__tagline {
  max-width: 640px;
}

/* —— Section headings —— */
.about-section-title,
.hub-catalog__title,
.hub-timeline__title,
.hub-benefits__title,
.service-section-title,
.contact-section-title,
.alnair-faq-section__title {
  line-height: var(--alnair-lh-h2) !important;
  margin-bottom: var(--alnair-space-sm) !important;
}

.about-section-desc,
.hub-catalog__desc,
.hub-timeline__desc,
.hub-benefits__desc,
.service-section-desc,
.contact-section-desc,
.alnair-faq-section__desc,
.hub-timeline__trust {
  line-height: var(--alnair-lh-body) !important;
  margin-top: var(--alnair-space-xs);
}

.about-section-head,
.hub-catalog__head,
.hub-benefits__head,
.service-section-head,
.alnair-faq-section__head {
  margin-bottom: var(--alnair-space-lg) !important;
}

/* —— Card & list body copy —— */
.hub-catalog__summary,
.hub-catalog__name,
.about-story__content p,
.about-values__body p,
.about-capabilities__text span,
.about-timeline__content p,
.hub-timeline__content p,
.hub-benefits__card-desc,
.service-intro__content p,
.service-deliverable-card p,
.service-process__body p {
  line-height: var(--alnair-lh-ui);
}

/* —— Section vertical rhythm —— */
.about-story,
.about-values,
.about-capabilities,
.about-timeline,
.about-proof,
.service-intro,
.service-outcomes,
.service-deliverables,
.service-process,
.service-tech,
.service-why,
.service-related,
.contact-main {
  padding-top: var(--alnair-section-y) !important;
  padding-bottom: var(--alnair-section-y) !important;
}

.service-faq.alnair-faq-section {
  padding-top: var(--alnair-section-y) !important;
  padding-bottom: var(--alnair-section-y) !important;
}

.portfolio-page {
  padding-top: 0 !important;
}

.hub-hero--catalog {
  padding-top: 0 !important;
  padding-bottom: var(--alnair-space-xl) !important;
}

.about-masthead,
.hub-hero--catalog,
.service-hero,
.contact-hero {
  padding-top: 0 !important;
}

.about-masthead {
  padding-bottom: var(--alnair-space-xs) !important;
}

.about-masthead__actions {
  margin-bottom: var(--alnair-space-xl) !important;
  gap: 14px !important;
}

.service-hero,
.contact-hero {
  padding-bottom: var(--alnair-space-lg) !important;
}
.service-faq__trigger {
  line-height: var(--alnair-lh-h3) !important;
  padding: 20px 24px !important;
}

.service-faq__answer p {
  line-height: var(--alnair-lh-body) !important;
}

.service-faq__list {
  gap: 14px !important;
}

/* —— Stats & metrics labels —— */
.about-masthead__stat-label,
.hub-hero__metric-label,
.hub-stat-card__label {
  line-height: var(--alnair-lh-caption) !important;
}

.about-masthead__stat {
  padding: 32px 22px !important;
}

/* —— Catalog rows breathing room —— */
.hub-catalog__link {
  padding: 26px 28px !important;
  gap: 22px !important;
}

.hub-catalog__list {
  gap: 14px !important;
}

.hub-catalog__body {
  gap: 10px !important;
}

/* —— About FAQ split layout —— */
.about-faq-wrap {
  padding: var(--alnair-section-y) 0 !important;
}

.about-faq-wrap__layout {
  gap: var(--alnair-space-xl) !important;
}

/* —— Portfolio hero —— */
.portfolio-top {
  margin-bottom: var(--alnair-space-lg) !important;
}

.portfolio-hero__title {
  line-height: var(--alnair-lh-display) !important;
  letter-spacing: var(--alnair-display-tracking) !important;
  margin-bottom: var(--alnair-space-md) !important;
}

.portfolio-hero__title-line {
  line-height: 1.05;
  letter-spacing: var(--alnair-display-tracking) !important;
}

.portfolio-hero__title-line + .portfolio-hero__title-line {
  margin-top: var(--alnair-lh-display-stack) !important;
}

.portfolio-hero__desc {
  line-height: var(--alnair-lh-body) !important;
  margin-top: var(--alnair-space-xs);
  margin-bottom: 0 !important;
}

/* —— Contact form labels —— */
.contact-field__label {
  line-height: var(--alnair-lh-ui);
  margin-bottom: 8px;
}

.contact-form__row {
  margin-bottom: var(--alnair-space-sm);
}

@media (max-width: 768px) {
  :root {
    --alnair-lh-display-stack: 0.04em;
    --alnair-display-tracking: 0.035em;
    --alnair-section-y: 64px;
    --alnair-space-md: 22px;
    --alnair-space-lg: 32px;
    --alnair-nav-to-hero: clamp(72px, 16vw, 112px);
  }

  .about-masthead__line,
  .hub-hero__display-line,
  .portfolio-hero__title-line {
    line-height: 1.06;
  }
}

/* —— About / Services CTA band spacing (wins over Elementor buttons) —— */
body.page-about .about-banner {
  padding-top: 72px !important;
  padding-bottom: 100px !important;
}

body.page-about .about-banner__inner {
  padding: 48px 56px !important;
  gap: 48px 64px !important;
}

body.page-about .about-banner__copy h2 {
  margin-bottom: 20px !important;
}

body.page-about .about-banner__actions {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 18px !important;
  row-gap: 18px !important;
}

body.page-about .about-banner__actions .btn,
body.page-about .about-banner__actions a.btn {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box;
}

body.page-services-hub .hub-cta__band {
  padding: 48px 56px !important;
  gap: 48px 64px !important;
}

body.page-services-hub .hub-cta__actions {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
}

body.page-services-hub .hub-cta__actions .btn {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
}
