:root {
  --void: #f1fafb;
  --night: #e5f4f6;
  --panel: #ffffff;
  --panel-light: #def0f4;
  --line: rgba(31, 80, 117, .18);
  --white: #1f4e71;
  --muted: #557486;
  --purple: #1f5075;
  --violet: #4aa8d0;
  --pink: #2f83ab;
  --mint: #4aa8d0;
  --font: "Plus Jakarta Sans", Arial, sans-serif;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; background: var(--void); }
body { min-width: 320px; min-height: 100%; margin: 0; overflow-x: hidden; color: var(--white); background: var(--void); font-family: var(--font); font-size: 16px; line-height: 1.65; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.08; }
.skip-link { position: fixed; z-index: 99; top: 1rem; left: 1rem; padding: .8rem 1rem; color: #080614; background: var(--mint); transform: translateY(-180%); transition: transform .2s ease; }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.site-header { position: absolute; z-index: 20; top: 0; right: 0; left: 0; display: flex; align-items: center; justify-content: space-between; max-width: var(--max); margin: 0 auto; padding: 1.25rem; }
.brand { display: inline-flex; align-items: center; gap: .6rem; line-height: 1; }
.brand-symbol { display: flex; align-items: center; justify-content: center; gap: .15rem; width: 1.8rem; height: 1.8rem; border: 1px solid rgba(255,255,255,.72); border-radius: .38rem; transform: rotate(-7deg); }
.brand-symbol i { width: .2rem; height: .2rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 .5rem var(--mint); }.brand-symbol i:nth-child(2) { background: var(--violet); box-shadow: 0 0 .5rem var(--violet); }.brand-symbol i:nth-child(3) { background: var(--pink); box-shadow: 0 0 .5rem var(--pink); }
.brand-copy { display: grid; gap: .16rem; }.brand-copy b { font-size: .64rem; font-weight: 800; letter-spacing: .045em; }.brand-copy small { color: var(--muted); font-size: .51rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.menu-toggle { display: grid; width: 2.7rem; height: 2.7rem; place-content: center; gap: .32rem; border: 1px solid var(--line); border-radius: 50%; color: var(--white); background: rgba(255,255,255,.88); backdrop-filter: blur(10px); }.menu-toggle span:not(.sr-only) { width: 1.15rem; height: 1.5px; background: currentColor; transition: transform .2s ease; }.menu-toggle[aria-expanded="true"] span:not(.sr-only):first-of-type { transform: translateY(3.5px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:not(.sr-only):last-of-type { transform: translateY(-3.5px) rotate(-45deg); }
.primary-navigation { position: absolute; top: 4.55rem; right: 1.25rem; left: 1.25rem; display: none; gap: .15rem; padding: .65rem; border: 1px solid var(--line); border-radius: .9rem; background: rgba(250,249,255,.98); box-shadow: 0 1rem 3rem rgba(0,0,0,.45); backdrop-filter: blur(18px); }.primary-navigation.is-open { display: grid; }.primary-navigation a { padding: .8rem .75rem; color: var(--white); font-size: .86rem; font-weight: 700; }.primary-navigation a[aria-current="page"] { color: var(--mint); }.primary-navigation .nav-cta { display: flex; align-items: center; justify-content: space-between; margin-top: .2rem; border: 1px solid rgba(31,80,117,.42); border-radius: .5rem; color: var(--white); }

.home-hero { position: relative; display: flex; min-height: 100svh; align-items: center; overflow: hidden; isolation: isolate; padding: 7.6rem 1.25rem 4.5rem; background: radial-gradient(circle at 88% 3%, rgba(74,168,208,.26), transparent 25rem), radial-gradient(circle at 3% 94%, rgba(47,131,171,.14), transparent 24rem), var(--void); }.home-hero::after { position: absolute; z-index: -1; right: 0; bottom: 0; left: 0; height: 12rem; background: linear-gradient(transparent, var(--void)); content: ""; }
.hero-atmosphere { position: absolute; z-index: -2; inset: 0; overflow: hidden; background-image: radial-gradient(rgba(31,80,117,.15) .6px, transparent .75px); background-size: 17px 17px; mask-image: linear-gradient(to bottom, #000 0%, transparent 86%); opacity: .66; }.orb { position: absolute; display: block; border-radius: 50%; filter: blur(8px); }.orb-one { top: 3%; right: -7rem; width: 19rem; height: 19rem; background: radial-gradient(circle at 32% 35%, var(--violet), transparent 65%); opacity: .72; }.orb-two { bottom: -8%; left: -7rem; width: 17rem; height: 17rem; background: radial-gradient(circle at 55% 45%, var(--pink), transparent 68%); opacity: .54; }.orb-three { top: 44%; right: 19%; width: 5rem; height: 5rem; background: var(--purple); filter: blur(23px); opacity: .32; }.line-shape { position: absolute; width: 9rem; height: 9rem; border: 1px solid rgba(31,80,117,.17); border-radius: 1.6rem; transform: rotate(28deg); }.line-one { top: 18%; right: -1rem; }.line-two { bottom: 25%; left: 42%; width: 5rem; height: 5rem; border-radius: 50%; transform: none; }
.home-hero-grid { position: relative; width: min(100%, var(--max)); margin: 0 auto; }.hero-copy { position: relative; z-index: 2; max-width: 43rem; }.pill { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem; padding: .48rem .78rem; border: 1px solid rgba(31,80,117,.25); border-radius: 99px; color: #e5ddff; background: rgba(31,80,117,.60); font-size: .69rem; font-weight: 600; }.pill span { width: .38rem; height: .38rem; border-radius: 50%; background: var(--violet); box-shadow: 0 0 .7rem var(--violet); }
h1 { max-width: 10ch; margin-bottom: 1.35rem; font-size: clamp(3.15rem, 14vw, 7.15rem); font-weight: 800; letter-spacing: -.075em; }.page-hero h1 { max-width: 12ch; }.page-hero h1 span, h1 strong { display: block; }h1 strong { background: linear-gradient(95deg, var(--pink) 5%, var(--violet) 48%, var(--mint) 105%); -webkit-background-clip: text; background-clip: text; color: transparent; }.hero-lead, .page-hero > p:last-child { max-width: 35rem; color: #537286; font-size: 1rem; line-height: 1.78; }.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }.button { display: inline-flex; align-items: center; justify-content: center; gap: .85rem; min-height: 3.2rem; padding: .78rem 1rem; border: 1px solid transparent; border-radius: .56rem; font-size: .79rem; font-weight: 700; transition: transform .2s ease, box-shadow .2s ease; }.button:hover { transform: translateY(-2px); }.button-glow { color: #0d3b59; background: linear-gradient(105deg, var(--pink), var(--violet), #9bd8e8); box-shadow: 0 0 2rem rgba(74,168,208,.24); }.button-glow:hover { box-shadow: 0 0 2.7rem rgba(74,168,208,.38); }.button-quiet { border-color: rgba(255,255,255,.22); color: var(--white); background: rgba(255,255,255,.04); }
.signal-orbit { position: relative; width: min(19rem, 88vw); height: min(19rem, 88vw); margin: 3.3rem auto 0; border: 1px solid rgba(31,80,117,.28); border-radius: 50%; box-shadow: inset 0 0 4rem rgba(31,80,117,.12), 0 0 5rem rgba(31,80,117,.12); }.signal-orbit::before, .signal-orbit::after { position: absolute; border: 1px dashed rgba(31,80,117,.2); border-radius: 50%; content: ""; }.signal-orbit::before { inset: 1.8rem; }.signal-orbit::after { inset: 4.5rem; }.orbit-core { position: absolute; top: 50%; left: 50%; z-index: 1; display: grid; width: 7.3rem; height: 7.3rem; place-items: center; border: 1px solid rgba(31,80,117,.4); border-radius: 50%; color: var(--mint); background: radial-gradient(circle at 35% 25%, rgba(74,168,208,.76), rgba(22,73,104,.96) 61%); box-shadow: 0 0 2rem rgba(74,168,208,.32); font-size: .86rem; font-weight: 700; line-height: 1.28; text-align: center; transform: translate(-50%, -50%); }.orbit-node { position: absolute; z-index: 2; display: grid; gap: .1rem; min-width: 4.2rem; padding: .48rem .55rem; border: 1px solid rgba(31,80,117,.25); border-radius: .4rem; background: rgba(31,80,117,.92); box-shadow: 0 0 1.3rem rgba(31,80,117,.16); }.orbit-node small { color: var(--violet); font-size: .58rem; font-weight: 700; }.orbit-node b { font-size: .69rem; font-weight: 700; }.node-one { top: 3%; left: 15%; }.node-two { right: -5%; bottom: 28%; }.node-three { bottom: 4%; left: 6%; }.signal-orbit > p { position: absolute; bottom: -3.55rem; left: 50%; width: 17rem; margin: 0; color: var(--muted); font-size: .73rem; text-align: center; transform: translateX(-50%); }.home-bottom { position: absolute; right: 1.25rem; bottom: 1.3rem; left: 1.25rem; display: flex; justify-content: space-between; gap: 1rem; padding-top: .8rem; border-top: 1px solid var(--line); color: #567487; font-size: .63rem; line-height: 1.4; }.home-bottom span:last-child { max-width: 14rem; text-align: right; }

.inner-body { background: linear-gradient(180deg, #e2f3f6 0, var(--void) 36rem); }.page-hero { position: relative; max-width: var(--max); margin: 0 auto; padding: 8.8rem 1.25rem 4.6rem; }.page-hero--split { display: grid; gap: 1.5rem; }.page-hero--split > p { align-self: end; margin-bottom: 1.2rem; }.page-hero--contact { min-height: 31rem; }.content-section { max-width: var(--max); margin: 0 auto; padding: 4.7rem 1.25rem; }.overline { display: inline-flex; align-items: center; gap: .52rem; margin: 0 0 1rem; color: var(--violet); font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.overline::before { width: .42rem; height: .42rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 .75rem currentColor; content: ""; }
h2 { font-size: clamp(2rem, 7vw, 4.4rem); font-weight: 800; letter-spacing: -.065em; } h2 em { font-style: normal; background: linear-gradient(95deg, var(--pink), var(--violet), var(--mint)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.service-page-list { display: grid; gap: 1rem; }.service-detail { display: grid; gap: 1.4rem; padding: 1.4rem; border: 1px solid var(--line); border-radius: .9rem; background: linear-gradient(140deg, rgba(255,255,255,.98), rgba(221,240,244,.94)); }.service-detail-number { color: var(--violet); font-size: 1rem; font-weight: 800; }.service-detail h2 { max-width: 16ch; margin-bottom: 1rem; font-size: clamp(1.7rem, 5vw, 3.3rem); }.service-detail p:not(.overline) { max-width: 42rem; color: var(--muted); font-size: .96rem; }.service-detail ul { display: grid; gap: .4rem; margin: 1.35rem 0 0; padding: 0; list-style: none; color: #466d7d; font-size: .84rem; }.service-detail li { position: relative; padding-left: 1.1rem; }.service-detail li::before { position: absolute; top: .56rem; left: 0; width: .33rem; height: .33rem; border-radius: 50%; background: var(--mint); content: ""; }.inline-link { display: inline-flex; align-items: center; gap: .7rem; width: max-content; padding-bottom: .22rem; border-bottom: 1px solid var(--mint); color: var(--mint); font-size: .78rem; font-weight: 700; }
.page-cta { padding: 4.8rem 1.25rem; text-align: center; background: radial-gradient(circle at 50% 0, rgba(74,168,208,.30), transparent 36rem), #dceff3; }.page-cta > * { max-width: 42rem; margin-right: auto; margin-left: auto; }.page-cta .button { margin-top: .5rem; }.page-cta h2 { margin-bottom: 1.6rem; }
.approach-page { display: grid; gap: 3rem; }.approach-list { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }.approach-list li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .8rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }.approach-list > li > span { padding-top: .2rem; color: var(--violet); font-size: .75rem; font-weight: 800; }.approach-list h2 { margin-bottom: .5rem; font-size: 1.6rem; }.approach-list p { max-width: 31rem; margin: 0; color: var(--muted); font-size: .9rem; }.approach-aside { align-self: start; padding: 1.5rem; border: 1px solid rgba(31,80,117,.25); border-radius: .85rem; background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(224,242,246,.96)); }.approach-aside h3 { margin-bottom: .85rem; font-size: 1.45rem; letter-spacing: -.04em; }.approach-aside p:not(.overline) { color: var(--muted); font-size: .9rem; }
.vision-layout { display: grid; gap: 3rem; }.vision-art { position: relative; display: grid; min-height: 18rem; overflow: hidden; place-items: center; border: 1px solid var(--line); border-radius: 1rem; background: radial-gradient(circle at center, rgba(74,168,208,.28), transparent 37%), #e4f2f5; }.vision-art::before { position: absolute; inset: 0; background-image: linear-gradient(rgba(31,80,117,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(31,80,117,.10) 1px, transparent 1px); background-size: 30px 30px; content: ""; mask-image: radial-gradient(circle at center, #000, transparent 66%); }.data-sphere { position: relative; z-index: 1; width: 9rem; height: 9rem; border: 1px solid rgba(31,80,117,.48); border-radius: 50%; box-shadow: inset 0 0 2.5rem rgba(74,168,208,.28), 0 0 2.7rem rgba(74,168,208,.26); }.data-sphere::before, .data-sphere::after { position: absolute; top: 50%; left: 50%; border: 1px solid rgba(74,168,208,.42); border-radius: 50%; content: ""; transform: translate(-50%,-50%); }.data-sphere::before { width: 72%; height: 72%; }.data-sphere::after { width: 35%; height: 35%; background: rgba(185,255,216,.2); }.data-sphere span { position: absolute; width: .35rem; height: .35rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 .9rem var(--mint); }.data-sphere span:nth-child(1) { top: 10%; left: 43%; }.data-sphere span:nth-child(2) { top: 45%; right: 6%; }.data-sphere span:nth-child(3) { bottom: 10%; left: 31%; }.data-sphere span:nth-child(4) { top: 35%; left: 5%; }.vision-art > i { position: absolute; right: 0; left: 0; height: 1px; background: var(--violet); box-shadow: 0 0 1rem var(--violet); animation: scan 5s ease-in-out infinite; }@keyframes scan { 0%,100% { top: 25%; opacity: .2; }50% { top: 75%; opacity: 1; } }.vision-copy h2 { max-width: 12ch; }.vision-copy > p:not(.overline) { max-width: 36rem; color: var(--muted); font-size: .96rem; }.source-section > h2 { max-width: 17ch; }.source-list { display: grid; margin-top: 2.4rem; border-top: 1px solid var(--line); }.source-list a { display: grid; grid-template-columns: 2.3rem 1fr; gap: .2rem .8rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); transition: color .2s ease; }.source-list a:hover { color: var(--mint); }.source-list > a > span { grid-row: span 2; color: var(--violet); font-weight: 800; }.source-list b { font-size: .98rem; }.source-list p { margin: 0; color: var(--muted); font-size: .83rem; }.source-list small { grid-column: 2; color: var(--violet); font-size: .7rem; font-weight: 700; }
.contact-page { display: grid; gap: 3rem; }.contact-details h2 { max-width: 11ch; }.contact-details > p:not(.overline) { max-width: 30rem; color: var(--muted); font-size: .96rem; }.direct-contact { display: inline-flex; gap: .6rem; margin: .7rem 0 0; padding-bottom: .25rem; border-bottom: 1px solid var(--mint); color: var(--mint); font-size: .9rem; font-weight: 700; }.contact-note { color: #756d8a !important; font-size: .76rem !important; }.contact-form { display: grid; gap: 1.15rem; padding: 1.4rem; border: 1px solid var(--line); border-radius: .9rem; background: rgba(255,255,255,.84); }.contact-form label { display: grid; gap: .45rem; color: #1f5878; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }.contact-form input, .contact-form textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(31,80,117,.28); border-radius: 0; outline: 0; padding: .72rem 0; color: var(--white); background: transparent; font-size: .95rem; font-weight: 500; letter-spacing: normal; text-transform: none; transition: border-color .2s ease; }.contact-form input:focus, .contact-form textarea:focus { border-color: var(--mint); }.contact-form textarea { resize: vertical; }.contact-form textarea::placeholder { color: #6b8490; }.form-bottom { display: grid; gap: .85rem; margin-top: .3rem; }.form-bottom p { margin: 0; color: #5a7887; font-size: .72rem; line-height: 1.55; }
.site-footer { display: grid; gap: 1.4rem; max-width: var(--max); margin: 0 auto; padding: 2.3rem 1.25rem; border-top: 1px solid var(--line); }.site-footer > div { display: flex; flex-wrap: wrap; gap: .7rem 1.1rem; }.site-footer > div a, .site-footer > p { margin: 0; color: var(--muted); font-size: .72rem; font-weight: 600; }.site-footer > p { font-size: .67rem; }.site-footer--home { position: relative; z-index: 3; margin-top: 0; border-top: 1px solid var(--line); }

@media (min-width: 700px) { .site-header { padding: 1.5rem 2.25rem; }.home-hero, .page-hero, .content-section, .page-cta { padding-right: 2.25rem; padding-left: 2.25rem; }.home-bottom { right: 2.25rem; left: 2.25rem; }.signal-orbit { margin-top: 2rem; }.page-hero--split { grid-template-columns: 1fr .8fr; align-items: end; gap: 4rem; }.service-detail { grid-template-columns: 3rem 1fr auto; align-items: end; padding: 2rem; }.service-detail .inline-link { margin-bottom: .3rem; }.approach-list { grid-template-columns: repeat(2,1fr); }.approach-list li:nth-child(odd) { padding-right: 1.5rem; border-right: 1px solid var(--line); }.approach-list li:nth-child(even) { padding-left: 1.5rem; }.vision-layout { grid-template-columns: .8fr 1.2fr; align-items: center; }.contact-page { grid-template-columns: .85fr 1.15fr; align-items: start; }.site-footer { grid-template-columns: 1fr auto; align-items: end; padding: 2.6rem 2.25rem; }.site-footer > p { grid-column: 1 / -1; } }
@media (min-width: 920px) { .menu-toggle { display: none; }.primary-navigation { position: static; display: flex; align-items: center; gap: 1.45rem; padding: 0; border: 0; background: transparent; box-shadow: none; backdrop-filter: none; }.primary-navigation a { padding: .3rem 0; color: #1f4e71; font-size: .79rem; font-weight: 700; }.primary-navigation .nav-cta { gap: .48rem; margin-left: .25rem; padding: .65rem .9rem; border-color: rgba(31,80,117,.42); border-radius: 99px; color: var(--white); }.home-hero { min-height: 100svh; }.home-hero-grid { display: grid; grid-template-columns: 1.06fr .94fr; align-items: center; }.signal-orbit { justify-self: end; width: 21rem; height: 21rem; }.page-hero { padding-top: 10rem; padding-bottom: 6.2rem; }.page-hero--contact { min-height: 34rem; }.approach-page { grid-template-columns: 1.3fr .7fr; align-items: start; }.site-footer { padding-right: max(2.25rem, calc((100vw - var(--max))/2)); padding-left: max(2.25rem, calc((100vw - var(--max))/2)); } }
@media (min-width: 1260px) { .site-header, .home-hero, .page-hero, .content-section, .page-cta { padding-right: max(2.25rem, calc((100vw - var(--max))/2)); padding-left: max(2.25rem, calc((100vw - var(--max))/2)); }.home-bottom { right: max(2.25rem, calc((100vw - var(--max))/2)); left: max(2.25rem, calc((100vw - var(--max))/2)); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }

/* IPCA brand lock-up */
.brand { display: inline-flex; width: 3.75rem; align-items: flex-start; }
.brand-logo { display: block; width: 100%; height: auto; border-radius: .28rem; box-shadow: 0 .25rem .8rem rgba(31, 80, 117, .12); }
.site-footer .brand { width: 5rem; }
@media (min-width: 920px) { .brand { width: 4.1rem; } .site-footer .brand { width: 5.5rem; } }

/* Cache-safe IPCA logo treatment */
.brand-logo { mix-blend-mode: multiply; filter: contrast(1.04) saturate(1.03); }

/* Transparent IPCA logo, without a background plaque */
.brand-logo { mix-blend-mode: normal; filter: none; box-shadow: none; }


/* Desktop-first IPCA composition and accessible orbit contrast */
.orbit-core { color: #ffffff; font-size: 1rem; font-weight: 800; text-shadow: 0 1px 3px rgba(8, 50, 73, .55); }
.orbit-node { min-width: 5rem; gap: .18rem; padding: .62rem .7rem; border-color: rgba(17, 68, 100, .72); background: #1f5075; box-shadow: 0 .55rem 1.2rem rgba(20, 73, 104, .18); }
.orbit-node small { color: #c9f2ff; font-size: .67rem; font-weight: 800; letter-spacing: .05em; }
.orbit-node b { color: #ffffff; font-size: .86rem; font-weight: 800; line-height: 1.15; }
.signal-orbit > p { color: #285971; font-size: .82rem; font-weight: 600; }

@media (min-width: 920px) {
  .site-header { width: 100%; max-width: none; margin: 0; padding: 1.45rem clamp(2rem, 4vw, 5rem); }
  .brand { width: 4.45rem; }
  .primary-navigation { gap: clamp(1.25rem, 2vw, 2.1rem); }
  .primary-navigation a { font-size: .84rem; }
  .home-hero { padding: 8.5rem clamp(2rem, 5vw, 7rem) 5.25rem; }
  .home-hero-grid { width: 100%; max-width: none; grid-template-columns: minmax(0, 1.02fr) minmax(28rem, .78fr); align-items: center; gap: clamp(3rem, 7vw, 9rem); }
  .hero-copy { max-width: 48rem; }
  .signal-orbit { justify-self: center; width: clamp(24rem, 29vw, 30rem); height: clamp(24rem, 29vw, 30rem); margin: 0; }
  .home-bottom { right: clamp(2rem, 5vw, 7rem); left: clamp(2rem, 5vw, 7rem); }
}

@media (min-width: 1440px) {
  .home-hero-grid { grid-template-columns: minmax(36rem, 1.04fr) minmax(31rem, .76fr); }
  .signal-orbit { width: 30rem; height: 30rem; }
}


/* Editorial desktop layouts for IPCA content pages */
@media (min-width: 980px) {
  .page-services main,
  .page-approach main,
  .page-vision main,
  .page-contact main {
    display: grid;
    grid-template-columns: minmax(28rem, .82fr) minmax(40rem, 1.18fr);
    align-items: start;
    min-height: 100svh;
  }

  .page-services .page-hero,
  .page-approach .page-hero,
  .page-vision .page-hero,
  .page-contact .page-hero {
    grid-column: 1;
    grid-row: 1 / span 2;
    position: sticky;
    top: 0;
    align-self: start;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100svh;
    max-width: none;
    margin: 0;
    padding: 9.5rem clamp(2.5rem, 5vw, 7rem) 5rem clamp(2rem, 5vw, 7rem);
    border-right: 1px solid rgba(31, 80, 117, .16);
    background: linear-gradient(145deg, rgba(222, 240, 244, .42), transparent 68%);
  }

  .page-services .page-hero h1,
  .page-approach .page-hero h1,
  .page-vision .page-hero h1,
  .page-contact .page-hero h1 {
    max-width: 7.6ch;
    font-size: clamp(4.3rem, 5.6vw, 7.2rem);
  }

  .page-services .page-hero > p:last-child,
  .page-approach .page-hero > p:last-child,
  .page-vision .page-hero > p:last-child,
  .page-contact .page-hero > p:last-child { max-width: 27rem; font-size: 1.03rem; }

  .page-approach .page-hero--split { gap: 1.45rem; }
  .page-approach .page-hero--split > p { align-self: auto; margin: 0; }

  .page-services .service-page-list,
  .page-approach .approach-page,
  .page-vision .vision-layout,
  .page-contact .contact-page {
    grid-column: 2;
    max-width: none;
    margin: 0;
    padding: 9.5rem clamp(2.5rem, 5vw, 7rem) 4.5rem clamp(2rem, 4vw, 5rem);
  }

  .page-services .service-page-list { gap: .8rem; }
  .page-services .service-detail {
    grid-template-columns: 2.8rem minmax(0, 1fr);
    gap: 1rem 1.25rem;
    padding: 1.5rem;
    border-radius: 1rem;
  }
  .page-services .service-detail h2 { max-width: 24ch; font-size: clamp(1.75rem, 2.15vw, 2.55rem); }
  .page-services .service-detail p:not(.overline) { max-width: 48rem; }
  .page-services .service-detail ul { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem 1rem; }
  .page-services .service-detail .inline-link { grid-column: 2; margin-top: .1rem; }

  .page-approach .approach-page { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
  .page-approach .approach-list { grid-template-columns: repeat(2, minmax(0, 1fr)); border: 0; gap: .85rem; }
  .page-approach .approach-list li,
  .page-approach .approach-list li:nth-child(odd),
  .page-approach .approach-list li:nth-child(even) {
    min-height: 12rem;
    padding: 1.4rem;
    border: 1px solid var(--line);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .7);
  }
  .page-approach .approach-list h2 { font-size: 1.9rem; }
  .page-approach .approach-aside { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem 2rem; align-items: end; padding: 1.65rem; }
  .page-approach .approach-aside .overline,
  .page-approach .approach-aside h3 { grid-column: 1; }
  .page-approach .approach-aside > p:not(.overline) { grid-column: 1; margin: 0; }
  .page-approach .approach-aside .inline-link { grid-column: 2; grid-row: 1 / span 3; align-self: center; }

  .page-vision .vision-layout { display: grid; grid-template-columns: minmax(15rem, .72fr) minmax(24rem, 1.28fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: center; }
  .page-vision .vision-art { min-height: 25rem; }
  .page-vision .vision-copy h2 { max-width: 12ch; font-size: clamp(2.4rem, 3.2vw, 4rem); }
  .page-vision .source-section { grid-column: 2; max-width: none; margin: 0; padding: 0 clamp(2.5rem, 5vw, 7rem) 5rem clamp(2rem, 4vw, 5rem); }
  .page-vision .source-section > h2 { max-width: 16ch; font-size: clamp(2.1rem, 3vw, 3.6rem); }

  .page-contact .contact-page { display: grid; grid-template-columns: minmax(14rem, .62fr) minmax(26rem, 1.38fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: start; }
  .page-contact .contact-details h2 { font-size: clamp(2.2rem, 3.2vw, 3.85rem); }
  .page-contact .contact-form { padding: 2rem; box-shadow: 0 1.25rem 3rem rgba(31, 80, 117, .08); }

  .page-services .page-cta,
  .page-approach .page-cta,
  .page-vision .page-cta {
    grid-column: 2;
    margin: 0;
    padding: 4rem clamp(2.5rem, 5vw, 7rem) 5rem clamp(2rem, 4vw, 5rem);
    text-align: left;
    background: radial-gradient(circle at 100% 50%, rgba(74,168,208,.2), transparent 24rem), #dceff3;
  }
  .page-services .page-cta > *,
  .page-approach .page-cta > *,
  .page-vision .page-cta > * { max-width: 38rem; margin-right: 0; margin-left: 0; }
}


/* Full-width footer: IPCA brand left, navigation right */
@media (min-width: 920px) {
  .site-footer {
    width: 100%;
    max-width: none;
    margin: 0;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    padding: 2.6rem clamp(2rem, 4vw, 5rem) 2.1rem;
  }
  .site-footer .brand { grid-column: 1; grid-row: 1; width: 5.2rem; justify-self: start; }
  .site-footer > div { grid-column: 2; grid-row: 1; justify-content: flex-end; align-self: center; gap: 1.45rem; }
  .site-footer > p { grid-column: 1; grid-row: 2; justify-self: start; margin-top: .35rem; }
}

/* Keep the mobile hero clear of the orbit caption */
@media (max-width: 919px) { .home-bottom { display: none; } }
