/* =========================================================
   ACTUARIALENS — FINAL VISUAL HARMONIZATION
   Shared finishing layer for every customer-facing page.
   This intentionally sits after styles.css + responsive.css.
   ========================================================= */

:root{
  --harmonized-section: 84px;
  --harmonized-card-radius: 16px;
  --harmonized-gap: 20px;
  --harmonized-card-shadow: 0 12px 32px rgba(15,37,64,.055);
}

/* Global rhythm */
body{ background: var(--paper); }
main{ overflow: hidden; }
.section{ padding: var(--harmonized-section) 0; }
.section + .section{ border-top: 1px solid rgba(15,37,64,.045); }
.section-intro{ margin-bottom: 34px; }
.section-intro > p{ max-width: 580px; }
.content-grid{ gap: clamp(40px,6vw,70px); }
.content-grid p{ font-size: 1rem; line-height: 1.72; }
.content-grid p:first-child{ margin-top: 0; }

/* Header — same dimensions everywhere */
.navigation-wrapper{ min-height: 96px; grid-template-columns: minmax(260px,350px) 1fr auto; gap: 26px; }
.site-header .brand-image img{ height: 74px; }
.primary-navigation{ gap: 26px; font-size: .92rem; }
.navigation-cta{ min-height: 56px; padding: 0 26px; border-radius: 13px; }
.primary-navigation > a[aria-current="page"]{ color: var(--navy-700); }
.primary-navigation > a[aria-current="page"]::after{ right: 0; }

/* Page heroes — common spacing and text width */
.page-hero,
.services-page-hero,
.service-detail-hero{ padding: 78px 0 72px; }
.page-hero > .container,
.insights-page-hero > .container{ max-width: var(--container); }
.page-hero h1,
.services-page-hero h1,
.service-detail-hero h1{ margin: 14px 0 16px; font-size: clamp(2.65rem,4.8vw,4.35rem); letter-spacing: -.025em; }
.page-hero p:last-child,
.services-page-hero .container > div > p:not(.eyebrow-label),
.service-detail-hero-copy > p:not(.eyebrow-label){ max-width: 720px; font-size: 1.03rem; line-height: 1.7; }

/* The generic dark page hero stays elegant rather than oversized */
.page-hero:not(.services-page-hero){
  background: radial-gradient(120% 150% at 12% -10%, #234b75 0%, #0a1628 65%);
}

/* Shared card language */
.info-card,
.industry-grid article,
.partner-grid article,
.service-directory-card,
.service-problem-card,
.service-deliverable-card,
.related-insights-grid article,
.insight-card,
.insights-empty,
.regulatory-box{
  border-radius: var(--harmonized-card-radius);
  box-shadow: var(--harmonized-card-shadow);
}

.industry-grid,
.partner-grid,
.about-values-grid,
.service-directory-grid,
.service-problems-grid,
.service-deliverables-grid,
.related-insights-grid{ gap: var(--harmonized-gap); }

.industry-grid article,
.partner-grid article{ padding: 28px; border: 1px solid var(--line); background: rgba(255,255,255,.82); }
.industry-grid article h3,
.partner-grid article h3{ margin: 0 0 8px; font-size: 1.3rem; line-height: 1.2; }
.industry-grid article p{ margin: 0; line-height: 1.62; }
.partner-grid article{ min-height: 108px; display: flex; align-items: center; }
.partner-grid article h3{ margin: 0; }

/* About */
.about-direction-section{ background: linear-gradient(180deg,#f4eee5 0%,#f8f4ed 100%); }
.about-value-card{ padding: 28px; }
.about-value-card h3{ margin: 8px 0 12px; font-size: 1.45rem; }
.about-value-card p{ margin: 0; line-height: 1.68; }
.value-number{ font-size: .68rem; }
.strategic-layout{ gap: clamp(42px,6vw,68px); }
.strategic-principles{ gap: 12px; }
.strategic-principles li{ padding: 20px 22px 20px 70px; border-radius: 14px; }

/* Services overview */
.services-hero-layout{ gap: clamp(34px,5vw,62px); }
.services-context-card{ padding: 30px; border-radius: 16px; }
.services-context-card h2{ font-size: clamp(1.65rem,2.5vw,2.25rem); }
.service-directory-card{ padding: 28px; grid-template-columns: 50px 1fr; gap: 20px; }
.service-directory-number{ width: 46px; height: 46px; }
.service-directory-card h2{ font-size: 1.65rem; }
.service-directory-card ul{ margin-top: 16px; }

/* Service detail pages */
.service-detail-hero-layout{ gap: clamp(40px,6vw,68px); }
.service-audience-card,
.service-regulatory-box,
.service-note-box{ padding: 28px; border-radius: 16px; }
.service-problem-card,
.service-deliverable-card{ padding: 26px; }
.service-problem-card h3,
.service-deliverable-card h3{ margin-top: 0; }
.service-cta-section .callout{ margin: 0; }

/* Contact */
.contact-page{ background: linear-gradient(180deg,#f8f5ef 0%,var(--paper) 28%); }
.contact-layout{ gap: clamp(36px,5vw,64px); }
.contact-copy{ padding-top: 18px; }
.contact-copy h1{ letter-spacing: -.025em; }
.contact-details{ border-radius: 16px; }
.form-panel{ border-radius: 16px; box-shadow: 0 16px 42px rgba(15,37,64,.07); }
.form-tab{ min-height: 64px; }
.advisor-form{ padding: clamp(24px,3vw,38px); }

/* Insights */
.insights-library-section{ padding-top: 64px; }
.insight-category-filter{ margin-bottom: 30px; }
.insights-grid{ gap: 20px; }
.insight-card-dynamic{ border: 1px solid var(--line); background: #fff; }
.insight-body{ padding: 22px; }
.insight-card-dynamic .insight-body h2{ font-size: clamp(1.3rem,1.8vw,1.6rem); }
.insight-card-featured .insight-body h2{ font-size: clamp(1.45rem,2.2vw,1.9rem); }
.insights-empty{ padding: 44px 30px; }

/* Article pages */
.insight-article-header{ padding: 72px 0 50px; }
.insight-article-header h1{ font-size: clamp(2.55rem,5.3vw,4.8rem); }
.insight-article-layout{ padding-top: 62px; padding-bottom: 84px; }
.insight-article-content{ font-size: 1.04rem; line-height: 1.78; }
.insight-article-aside{ top: 122px; border-radius: 16px; }
.related-insights-section{ background: #f5f0e8; }
.related-insights-grid article{ padding: 24px; background: #fff; border: 1px solid var(--line); }

/* Footer — same spacing/logo sizing everywhere */
.site-footer{ padding: 64px 0 24px; }
.footer-grid{ gap: clamp(30px,4vw,54px); }
.footer-logo-link img{ width: min(100%,300px); height: auto; }
.footer-brand p{ max-width: 430px; margin-top: 18px; line-height: 1.55; }
.footer-bottom{ margin-top: 48px; padding-top: 24px; }

/* Home page finishing: preserve compact cards and create consistent spacing below the hero */
.home-services-grid{ gap: 18px; }
.clients-section{ padding-top: 76px; padding-bottom: 76px; }
.client-logo-card{ border-radius: 16px; }

@media (max-width: 1120px){
  .navigation-wrapper{ min-height: 84px; grid-template-columns: 1fr auto; }
  .site-header .brand-image img{ height: 62px; }
}

@media (max-width: 900px){
  :root{ --harmonized-section: 68px; }
  .page-hero,.services-page-hero,.service-detail-hero{ padding: 68px 0 60px; }
  .strategic-intro{ position: static; }
  .insight-article-layout{ padding-top: 52px; padding-bottom: 68px; }
  .insight-article-aside{ position: static; }
}

@media (max-width: 768px){
  :root{ --harmonized-section: 58px; }
  .container{ width: min(calc(100% - 30px),var(--container)); }
  .page-hero,.services-page-hero,.service-detail-hero{ padding: 58px 0 52px; }
  .page-hero h1,.services-page-hero h1,.service-detail-hero h1{ font-size: clamp(2.15rem,9vw,3.05rem); }
  .section-intro{ margin-bottom: 26px; }
  .content-grid{ gap: 28px; }
  .industry-grid,.partner-grid,.about-values-grid,.service-directory-grid,.service-problems-grid,.service-deliverables-grid{ gap: 14px; }
  .industry-grid article,.partner-grid article,.about-value-card,.service-directory-card,.service-problem-card,.service-deliverable-card{ padding: 22px; }
  .service-directory-card{ grid-template-columns: 44px 1fr; gap: 14px; }
  .service-directory-number{ width: 40px; height: 40px; }
  .site-footer{ padding-top: 52px; }
  .footer-bottom{ margin-top: 34px; }
  .insight-article-header{ padding: 58px 0 42px; }
}

@media (max-width: 520px){
  .container{ width: min(calc(100% - 24px),var(--container)); }
  .page-hero,.services-page-hero,.service-detail-hero{ padding: 50px 0 46px; }
  .page-hero h1,.services-page-hero h1,.service-detail-hero h1{ font-size: clamp(2rem,10vw,2.7rem); }
  .industry-grid article,.partner-grid article,.about-value-card,.service-problem-card,.service-deliverable-card{ padding: 20px; }
  .service-directory-card{ display: block; padding: 20px; }
  .service-directory-number{ margin-bottom: 16px; }
  .service-directory-link{ grid-column: auto; margin-top: 18px; }
  .advisor-form{ padding: 22px 18px; }
}
