:root {
  --navy:#071f2d;
  --deep:#051824;
  --paper:#f5f5ef;
  --ink:#122d3b;
  --muted:#51616a;
  --line:#cdd3cf;
  --blue:#bfdcf1;
  --ease:cubic-bezier(.22,1,.36,1);
  --gutter:clamp(24px,5.6vw,96px);
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:105px;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Manrope,Arial,sans-serif;
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
body:has(dialog[open]) {
  overflow:hidden;
}
button,a {
  -webkit-tap-highlight-color:transparent;
}
button {
  font:inherit;
  color:inherit;
}
a {
  color:inherit;
  text-decoration:none;
}
button {
  cursor:pointer;
}
button:disabled {
  cursor:default;
}
img {
  max-width:100%;
  display:block;
}
button {
  border:0;
}
h1,h2,h3,p {
  margin:0;
}
h1,h2,h3 {
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.055em;
}
h2 {
  font-size:clamp(38px,4.3vw,70px);
}
em {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;
  letter-spacing:-.035em;
}
::selection {
  background:var(--blue);
  color:var(--navy);
}
:focus-visible {
  outline:2px solid #3d91c8;
  outline-offset:7px;
}
section {
  scroll-margin-top:10px;
}
.section-pad {
  padding:112px var(--gutter);
}
.skip-link {
  position:fixed;
  z-index:30;
  left:20px;
  top:-100px;
  padding:10px 20px;
  background:white;
  color:var(--navy);
}
.skip-link:focus {
  top:10px;
}
.site-header {
  height:108px;
  position:absolute;
  z-index:10;
  inset:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 var(--gutter);
  color:white;
  border-bottom:1px solid #ffffff1b;
  transition:background .3s,height .3s,transform .3s;
}
.site-header.scrolled {
  height:78px;
  position:fixed;
  background:#071f2df5;
  box-shadow:0 1px #ffffff16;
}
.brand {
  display:block;
  width:155px;
  flex-shrink:0;
}
.brand img {
  width:100%;
  height:auto;
}
.desktop-nav {
  display:flex;
  gap:38px;
  margin-left:30px;
}
.desktop-nav a {
  font-size:13px;
  position:relative;
  padding:12px 0;
}
.desktop-nav a:after,.text-link:after {
  position:absolute;
  content:"";
  inset:auto 0 4px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s var(--ease);
}
.desktop-nav a:hover:after,.desktop-nav a:focus-visible:after,.text-link:hover:after {
  transform:scaleX(1);
}
.header-contact {
  display:flex;
  gap:28px;
  align-items:center;
  font-size:13px;
  border:1px solid #ffffff50;
  padding:10px 20px;
  border-radius:30px;
  transition:background .25s,color .25s;
}
.header-contact:hover {
  background:var(--paper);
  color:var(--navy);
}
.header-contact span {
  font-size:21px;
}
.menu-toggle {
  display:none;
  background:none;
  color:white;
  gap:16px;
  align-items:center;
  min-height:44px;
}
.menu-icon {
  width:25px;
  display:grid;
  gap:6px;
}
.menu-icon i {
  height:1px;
  background:white;
  width:25px;
}
.mobile-menu {
  margin:0;
  padding:0 var(--gutter) 35px;
  border:0;
  background:var(--navy);
  color:white;
  width:100%;
  max-width:none;
  max-height:none;
  height:100dvh;
}
.mobile-menu[open] {
  display:flex;
  flex-direction:column;
  animation:menu-in .45s var(--ease);
}
.menu-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  height:100px;
}
.menu-top img {
  width:140px;
  height:auto;
}
.menu-close,.dialog-close {
  width:48px;
  height:48px;
  border:1px solid #ffffff50;
  border-radius:50%;
  background:transparent;
  color:white;
  font-size:23px;
}
.mobile-menu nav {
  display:grid;
  margin:auto 0;
  gap:0;
}
.mobile-menu nav a {
  font-size:clamp(30px,9vw,54px);
  letter-spacing:-.04em;
  border-bottom:1px solid #ffffff25;
  padding:20px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.mobile-menu nav a span {
  font-size:14px;
  color:var(--blue);
}
.menu-email {
  font-size:14px;
}
.mobile-menu::backdrop {
  background:var(--navy);
}
.hero {
  background:var(--navy);
  color:var(--paper);
  min-height:860px;
  height:100svh;
  max-height:1200px;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:145px var(--gutter) 120px;
}
.hero-copy {
  position:relative;
  z-index:2;
  width:80%;
  pointer-events:none;
}
.hero-copy a {
  pointer-events:auto;
}
.hero h1 {
  font-size:clamp(65px,7.1vw,112px);
  line-height:1.04;
  letter-spacing:-.065em;
}
.hero h1 span {
  display:block;
}
.hero h1 em {
  display:block;
  color:var(--blue);
  line-height:1.14;
}
.hero-copy p {
  font-size:15px;
  line-height:1.8;
  margin:26px 0 30px;
  color:#c0cdd2;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  padding:14px 24px;
  border-radius:40px;
  font-size:13px;
  line-height:1.8;
  transition:background .25s,color .25s,box-shadow .25s;
}
.button-light {
  background:var(--paper);
  color:var(--navy);
}
.button span {
  font-size:23px;
  line-height:1;
  transition:transform .35s var(--ease);
}
.button:hover span {
  transform:translate(3px,-3px);
}
.button:hover {
  background:var(--blue);
  box-shadow:0 0 0 5px #bfdcf11a;
}
.hero-art {
  position:absolute;
  inset:60px -5% 50px 31%;
  pointer-events:none;
  mask-image:linear-gradient(90deg,transparent,black 15%);
  opacity:.95;
}
#growth-canvas {
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
}
.art-orbit {
  position:absolute;
  border:1px solid #a5d9f218;
  border-radius:50%;
  width:68%;
  height:70%;
  left:21%;
  top:15%;
  transform:rotate(-34deg);
}
.orbit-two {
  width:78%;
  height:84%;
  left:15%;
  top:8%;
  border-color:#a5d9f20c;
}
.art-star {
  position:absolute;
  right:21%;
  top:17%;
  color:#d4ecfc;
  font-size:22px;
  text-shadow:0 0 20px #d4ecfc80;
}
.hero-bottom {
  position:absolute;
  bottom:34px;
  left:var(--gutter);
  right:var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:22px;
  border-top:1px solid #ffffff25;
  gap:20px;
}
.scroll-link {
  font-size:12px;
  display:flex;
  align-items:center;
  gap:14px;
  color:#d1dbdf;
}
.scroll-arrow {
  display:grid;
  place-items:center;
  border:1px solid #ffffff40;
  border-radius:50%;
  width:33px;
  height:33px;
  font-size:20px;
  transition:transform .3s;
}
.scroll-link:hover .scroll-arrow {
  transform:translateY(4px);
}
.hero-signature {
  font-size:22px;
  letter-spacing:-.04em;
}
.hero-signature em {
  font-size:29px;
}
.motion-toggle {
  background:none;
  border:0;
  color:#c0cdd2;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  padding:12px 0 12px 12px;
}
.motion-symbol {
  border:1px solid #ffffff35;
  border-radius:50%;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  font-size:11px;
}
.hero-copy h1>* {
  animation:hero-in 1.2s var(--ease) both;
}
.hero-copy h1>:nth-child(2) {
  animation-delay:.12s;
}
.hero-copy h1>:nth-child(3) {
  animation-delay:.24s;
}
.hero-copy p,.hero-copy .button {
  animation:hero-in 1.2s .35s var(--ease) both;
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:68px;
}
.section-number {
  padding-top:12px;
  color:var(--muted);
  font-size:12px;
  letter-spacing:.05em;
}
.intro-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12%;
  align-items:center;
}
.intro-image {
  height:570px;
  position:relative;
  overflow:hidden;
}
.intro-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 61%;
  transition:transform 1.5s var(--ease);
}
.intro-image:hover img {
  transform:scale(1.035);
}
.image-line {
  position:absolute;
  inset:23px;
  border:1px solid #ffffff50;
}
.intro-copy {
  max-width:530px;
}
.intro-copy .large-copy {
  font-size:clamp(25px,2.3vw,36px);
  line-height:1.35;
  letter-spacing:-.04em;
  color:var(--ink);
  margin-bottom:30px;
}
.intro-copy>p {
  font-size:14px;
  line-height:1.95;
  margin:0 0 18px;
  color:var(--muted);
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:32px;
  background:transparent;
  padding:9px 0;
  position:relative;
  font-size:13px;
  line-height:1.6;
}
.text-link span {
  font-size:20px;
  transition:transform .3s;
}
.text-link:hover span {
  transform:translate(3px,-3px);
}
.intro-facts {
  display:flex;
  gap:55px;
  border-top:1px solid var(--line);
  padding-top:25px;
  margin-top:36px;
}
.intro-facts>div {
  display:flex;
  flex-direction:column;
  gap:8px;
}
.intro-facts strong {
  font-size:48px;
  font-weight:400;
  line-height:1.1;
  letter-spacing:-.05em;
}
.intro-facts span {
  font-size:11px;
  color:var(--muted);
}
.method {
  background:var(--navy);
  color:var(--paper);
  overflow:hidden;
}
.method-top {
  display:grid;
  grid-template-columns:1.7fr 1fr;
  gap:8%;
  align-items:end;
}
.method-top h2 {
  font-size:clamp(36px,4vw,64px);
}
.method-top em {
  color:var(--blue);
}
.method-top>p {
  font-size:14px;
  line-height:1.9;
  color:#b6c7cf;
  max-width:305px;
}
.method-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7%;
  margin-top:85px;
}
.step-no {
  font-size:12px;
  color:#93b1c0;
  display:block;
  margin-bottom:25px;
}
.method-steps h3 {
  font-size:30px;
  margin-bottom:20px;
  letter-spacing:-.03em;
}
.method-steps p {
  font-size:13px;
  color:#b6c7cf;
  line-height:1.95;
  max-width:315px;
}
.method-track {
  height:1px;
  background:#ffffff23;
  position:relative;
  margin-top:65px;
  overflow:visible;
}
.method-track:after {
  content:"↗";
  position:absolute;
  right:0;
  top:-21px;
  background:var(--navy);
  padding-left:15px;
  color:var(--blue);
  font-size:27px;
}
.method-track span {
  display:block;
  width:0;
  height:1px;
  background:var(--blue);
  transition:width 1.5s var(--ease);
}
.method.in-view .method-track span {
  width:100%;
}
.case-intro {
  display:flex;
  justify-content:space-between;
  align-items:end;
  margin-top:-28px;
  margin-bottom:48px;
  gap:20px;
}
.case-intro p {
  font-size:14px;
  color:var(--muted);
}
.case-intro>span {
  font-size:11px;
  color:var(--muted);
}
.featured-cases {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:44px;
}
.case-feature:nth-child(2) {
  margin-top:125px;
}
.case-image {
  display:block;
  width:100%;
  height:490px;
  position:relative;
  overflow:hidden;
  background:#d0d3cd;
  text-align:left;
  padding:0;
}
.case-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1s var(--ease),filter 1s;
}
.case-feature:nth-child(2) .case-image img {
  object-position:center;
}
.case-image:after {
  content:"";
  position:absolute;
  inset:50% 0 0;
  background:linear-gradient(transparent,#071f2db3);
}
.case-image:hover img {
  transform:scale(1.055);
}
.case-open {
  position:absolute;
  right:23px;
  top:23px;
  border-radius:50%;
  background:var(--paper);
  color:var(--navy);
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  font-size:25px;
  transition:transform .4s var(--ease);
  z-index:1;
}
.case-image:hover .case-open {
  transform:rotate(45deg);
}
.case-image-caption {
  position:absolute;
  left:27px;
  bottom:23px;
  color:white;
  z-index:1;
  font-size:12px;
}
.case-title {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin:25px 0 17px;
}
.case-title h3 {
  font-size:31px;
  letter-spacing:-.045em;
}
.case-title>span {
  font-size:11px;
  color:var(--muted);
}
.case-feature>p {
  font-size:15px;
  color:var(--muted);
  line-height:1.65;
}
.case-feature>.text-link {
  margin-top:15px;
}
.more-cases {
  margin-top:75px;
}
.more-cases>button {
  display:grid;
  grid-template-columns:1fr 1fr 25px;
  width:100%;
  align-items:center;
  gap:20px;
  padding:22px 0;
  background:transparent;
  border-top:1px solid var(--line);
  text-align:left;
  transition:padding .4s var(--ease),color .25s;
}
.more-cases>button:last-child {
  border-bottom:1px solid var(--line);
}
.more-cases>button:hover {
  padding-left:14px;
  padding-right:14px;
  color:#356783;
}
.more-cases>button>span:first-child {
  font-size:23px;
  letter-spacing:-.035em;
}
.more-cases>button>span:nth-child(2) {
  font-size:12px;
  color:var(--muted);
}
.more-cases>button>span:last-child {
  font-size:23px;
}
.contact {
  background:#d2e4ef;
  position:relative;
  overflow:hidden;
  padding-bottom:70px;
}
.contact h2 {
  font-size:clamp(48px,6.2vw,94px);
  line-height:1.08;
  position:relative;
}
.contact h2 em {
  color:#376580;
}
.contact-content {
  position:relative;
  z-index:1;
}
.contact-content>p {
  font-size:14px;
  margin-top:25px;
  line-height:1.9;
}
.contact .button {
  margin-top:30px;
  background:var(--navy);
  color:white;
}
.contact .button:hover {
  background:#214659;
}
.contact-shape {
  position:absolute;
  font-family:Arial,sans-serif;
  font-weight:400;
  right:4%;
  top:-90px;
  font-size:680px;
  color:#aacbdf;
  line-height:1;
  transform:rotate(-5deg);
  pointer-events:none;
}
.contact-details {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:30px;
  align-items:start;
  border-top:1px solid #abc4d3;
  margin-top:80px;
  padding-top:35px;
  position:relative;
  z-index:1;
  font-size:14px;
}
.contact-details>a {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  width:max-content;
  max-width:100%;
}
.contact-details>a>span {
  font-size:20px;
}
.contact-details address {
  font-style:normal;
  font-size:12px;
  justify-self:end;
}
.site-footer {
  background:var(--deep);
  color:#becdd4;
  padding:60px var(--gutter) 25px;
}
.footer-main {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  padding-bottom:45px;
}
.footer-main>span {
  font-size:33px;
  color:var(--paper);
  letter-spacing:-.04em;
}
.footer-main>span em {
  font-size:43px;
}
.back-top {
  display:flex;
  gap:20px;
  align-items:center;
  font-size:12px;
}
.back-top span {
  font-size:22px;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid #ffffff20;
  padding-top:23px;
  font-size:10px;
}
.footer-bottom>a {
  font-size:11px;
}
.case-dialog {
  width:min(1000px,calc(100% - 48px));
  max-height:90dvh;
  padding:0;
  border:0;
  background:var(--paper);
  color:var(--ink);
  overflow:auto;
  overscroll-behavior:contain;
}
.case-dialog[open] {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  animation:dialog-in .5s var(--ease);
}
.case-dialog::backdrop {
  background:#02141bd9;
  backdrop-filter:blur(5px);
}
.dialog-close {
  position:absolute;
  right:17px;
  top:17px;
  background:var(--navy);
  z-index:3;
}
.dialog-image {
  min-height:600px;
  height:100%;
}
.dialog-image img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.dialog-content {
  padding:70px 44px 44px;
}
.dialog-content h2 {
  font-size:48px;
}
.case-meta {
  font-size:11px;
  color:var(--muted);
  margin:17px 0 25px;
}
.dialog-content>p:not(.case-meta) {
  font-size:14px;
  line-height:1.85;
}
.dialog-content h3 {
  font-size:22px;
  margin:28px 0 14px;
  letter-spacing:-.03em;
}
.dialog-content ul {
  padding-left:17px;
  font-size:13px;
  color:var(--muted);
  line-height:1.8;
  display:grid;
  gap:8px;
}
.dialog-content .text-link {
  margin-top:16px;
}
.reveal {
  opacity:1;
  transform:none;
}
.motion-enabled .reveal:not(.in-view) {
  opacity:0;
  transform:translateY(30px);
}
.motion-enabled .reveal {
  transition:opacity .9s var(--ease),transform .9s var(--ease);
}
.method-steps .reveal:nth-child(2) {
  transition-delay:.1s;
}
.method-steps .reveal:nth-child(3) {
  transition-delay:.2s;
}
.motion-paused *,.motion-paused *:before,.motion-paused *:after {
  animation:none!important;
  transition:none!important;
}
.motion-paused .reveal {
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}
.motion-paused .method-track span {
  width:100%;
}
.motion-paused {
  scroll-behavior:auto;
}
@keyframes hero-in {
  from {
    opacity:0;
    transform:translateY(35px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@keyframes dialog-in {
  from {
    opacity:0;
    transform:translateY(30px) scale(.98);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@keyframes menu-in {
  from {
    opacity:0;
    transform:translateY(-15px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@media(min-width:1600px) {
  .section-pad {
    padding-left:max(var(--gutter),calc((100% - 1400px)/2));
    padding-right:max(var(--gutter),calc((100% - 1400px)/2));
  }
  .hero-copy {
    max-width:1100px;
  }
  .intro-image {
    height:650px;
  }
}
@media(max-width:1100px) {
  .hero {
    min-height:800px;
  }
  .hero h1 {
    font-size:clamp(65px,8vw,88px);
  }
  .hero-copy {
    width:100%;
  }
  .hero-art {
    left:28%;
    opacity:.7;
  }
  .intro-grid {
    gap:8%;
  }
  .intro-image {
    height:540px;
  }
  .case-image {
    height:410px;
  }
  .contact-details {
    grid-template-columns:1.4fr 1fr;
  }
  .contact-details address {
    grid-column:1/-1;
    justify-self:start;
  }
  .method-top {
    grid-template-columns:1.6fr 1fr;
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:80px;
  }
  .section-pad {
    padding-top:75px;
    padding-bottom:75px;
  }
  .site-header {
    height:90px;
  }
  .site-header.scrolled {
    height:72px;
  }
  .brand {
    width:129px;
  }
  .desktop-nav,.header-contact {
    display:none;
  }
  .menu-toggle {
    display:flex;
  }
  .hero {
    height:100svh;
    min-height:780px;
    max-height:950px;
    padding-top:125px;
    padding-bottom:175px;
    justify-content:center;
  }
  .hero h1 {
    font-size:clamp(51px,8.9vw,68px);
    line-height:1.03;
  }
  .hero h1 em {
    font-size:1.06em;
    line-height:1.07;
    max-width:600px;
  }
  .hero-copy p {
    font-size:13px;
    line-height:1.85;
    margin-top:25px;
    margin-bottom:27px;
  }
  .hero-art {
    inset:115px -48% -50px 5%;
    opacity:.5;
    mask-image:linear-gradient(90deg,transparent,black 33%);
  }
  .art-star {
    right:31%;
    top:8%;
    font-size:17px;
  }
  .art-orbit {
    opacity:.5;
  }
  .hero-copy {
    width:100%;
  }
  .button {
    font-size:12px;
    padding:14px 20px;
    gap:25px;
  }
  .hero-bottom {
    bottom:25px;
    flex-wrap:wrap;
    gap:16px;
  }
  .scroll-link {
    font-size:10px;
    gap:10px;
  }
  .hero-signature {
    font-size:17px;
    margin-left:auto;
  }
  .hero-signature em {
    font-size:23px;
  }
  .motion-toggle {
    margin-left:auto;
    padding:0;
    font-size:10px;
    gap:6px;
  }
  .motion-symbol {
    width:22px;
    height:22px;
  }
  .section-heading {
    margin-bottom:38px;
    gap:15px;
  }
  .section-heading h2 {
    font-size:clamp(33px,6vw,45px);
  }
  .section-number {
    font-size:10px;
    padding-top:7px;
  }
  .intro-grid {
    grid-template-columns:1fr;
    gap:40px;
  }
  .intro-image {
    height:420px;
    max-width:100%;
  }
  .intro-image img {
    object-position:center 58%;
  }
  .intro-copy {
    max-width:none;
  }
  .intro-copy .large-copy {
    font-size:28px;
  }
  .intro-copy>p {
    font-size:14px;
  }
  .intro-facts {
    gap:65px;
    margin-top:30px;
  }
  .intro-facts strong {
    font-size:43px;
  }
  .method-top {
    grid-template-columns:1fr;
    gap:30px;
  }
  .method-top h2 {
    font-size:38px;
  }
  .method-top>p {
    max-width:400px;
  }
  .method-steps {
    grid-template-columns:1fr;
    gap:34px;
    margin-top:50px;
  }
  .method-steps article {
    display:grid;
    grid-template-columns:35px 1fr;
    gap:12px 8px;
    border-top:1px solid #ffffff20;
    padding-top:28px;
  }
  .step-no {
    grid-row:1/3;
    margin:4px 0 0;
  }
  .method-steps h3 {
    font-size:27px;
    margin:0;
  }
  .method-steps p {
    grid-column:2;
    max-width:100%;
  }
  .method-track {
    margin-top:45px;
  }
  .case-intro {
    display:block;
    margin-top:0;
    margin-bottom:30px;
  }
  .case-intro p {
    font-size:13px;
  }
  .case-intro>span {
    display:block;
    margin-top:15px;
  }
  .featured-cases {
    grid-template-columns:1fr;
    gap:50px;
  }
  .case-feature:nth-child(2) {
    margin:0;
  }
  .case-image {
    height:460px;
  }
  .case-feature:nth-child(2) .case-image {
    height:360px;
  }
  .case-title h3 {
    font-size:29px;
  }
  .case-image-caption {
    left:22px;
  }
  .more-cases {
    margin-top:48px;
  }
  .more-cases>button {
    grid-template-columns:1fr 25px;
    gap:4px 10px;
    padding:20px 0;
  }
  .more-cases>button>span:first-child {
    font-size:22px;
  }
  .more-cases>button>span:nth-child(2) {
    font-size:11px;
    grid-row:2;
  }
  .more-cases>button>span:last-child {
    grid-column:2;
    grid-row:1/3;
  }
  .contact h2 {
    font-size:clamp(43px,8.5vw,64px);
  }
  .contact-shape {
    font-size:450px;
    right:-95px;
    top:50px;
    opacity:.5;
  }
  .contact-content>p {
    font-size:13px;
  }
  .contact-details {
    grid-template-columns:1fr;
    gap:21px;
    margin-top:55px;
    padding-top:27px;
  }
  .contact-details>a {
    font-size:14px;
  }
  .contact-details address {
    grid-column:auto;
    margin-top:5px;
  }
  .footer-main {
    flex-wrap:wrap;
    gap:35px 20px;
    padding-bottom:30px;
  }
  .footer-main>.brand {
    width:125px;
  }
  .footer-main>span {
    font-size:24px;
    margin-left:auto;
  }
  .footer-main>span em {
    font-size:31px;
  }
  .back-top {
    width:100%;
    font-size:11px;
  }
  .site-footer {
    padding-top:42px;
  }
  .footer-bottom {
    display:block;
    line-height:1.9;
  }
  .footer-bottom>a {
    display:inline-block;
    margin-top:14px;
  }
  .case-dialog {
    width:calc(100% - 24px);
    max-height:calc(100dvh - 24px);
  }
  .case-dialog[open] {
    display:block;
  }
  .dialog-image {
    height:240px;
    min-height:0;
  }
  .dialog-content {
    padding:30px 25px 35px;
  }
  .dialog-content h2 {
    font-size:38px;
  }
  .dialog-close {
    position:sticky;
    float:right;
    top:12px;
    right:12px;
    margin:12px 12px -60px 0;
  }
  .dialog-content>p:not(.case-meta) {
    font-size:13px;
  }
}
@media(max-width:380px) {
  .hero {
    min-height:740px;
  }
  .hero h1 {
    font-size:46px;
  }
  .hero-signature {
    display:none;
  }
  .hero-bottom {
    align-items:flex-start;
  }
  .motion-toggle {
    margin-top:5px;
  }
  .motion-label {
    display:none;
  }
  .section-heading h2 {
    font-size:32px;
  }
  .contact h2 {
    font-size:40px;
  }
  .intro-facts {
    gap:40px;
  }
  .case-image {
    height:390px;
  }
  .text-link {
    gap:17px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
  .motion-enabled .reveal:not(.in-view) {
    opacity:1;
    transform:none;
  }
  .method-track span {
    width:100%;
  }
}
@media(forced-colors:active) {
  .hero-art,.contact-shape {
    display:none;
  }
  .button,.case-open,.menu-close,.dialog-close {
    border:1px solid ButtonText;
  }
}

.services { background:#e7eff7; padding-bottom:0; }
.services-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:clamp(40px,7vw,115px); align-items:start; }
.services-index { position:sticky; top:110px; z-index:2; max-height:calc(100dvh - 130px); overflow-y:auto; scrollbar-width:thin; }
.services-index>p { font-size:13px; color:var(--muted); line-height:1.9; margin-bottom:28px; }
.services-index nav { display:grid; }
.services-index nav a { display:flex; gap:14px; align-items:baseline; padding:17px 0; border-top:1px solid #b8c9c7; font-size:13px; line-height:1.5; transition:color .25s; }
.services-index nav a:last-child { border-bottom:1px solid #b8c9c7; }
.services-index nav a:hover,.services-index nav a[aria-current] { color:var(--service-accent); }
.services-index nav a[aria-current] { border-top-color:var(--service-accent); }
.services-index nav a>span { font-size:10px; color:var(--muted); min-width:15px; }
.service-chapters { min-width:0; }
.service-chapter { --service-bg:#e9eeec; --service-accent:#356783; padding:70px 0 100px; scroll-margin-top:20px; background:var(--service-bg); box-shadow:0 0 0 100vmax var(--service-bg); clip-path:inset(0 -100vmax); }
.service-chapter:last-child { padding-bottom:100px; }
.service-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; border-top:1px solid #869fa7; padding-top:27px; margin-bottom:25px; }
.service-heading h3 { font-size:clamp(34px,3.3vw,52px); line-height:1.12; letter-spacing:-.05em; }
.service-heading>span { font-size:12px; color:var(--muted); }
.service-lead { font-size:clamp(17px,1.45vw,21px); line-height:1.7; letter-spacing:-.02em; max-width:800px; margin-bottom:48px; }
.service-topic { border-top:1px solid #c5d2cf; padding-top:30px; margin-top:40px; }
.service-topic h4 { font-size:clamp(24px,2.05vw,31px); font-weight:400; letter-spacing:-.035em; line-height:1.25; margin:0 0 18px; }
.service-topic>p { font-size:14px; line-height:1.95; color:var(--muted); max-width:760px; }
.service-definitions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:27px 38px; margin:27px 0 0; }
.service-definitions dt { font-size:14px; line-height:1.6; margin-bottom:7px; color:#284e61; }
.service-definitions dd { margin:0; font-size:13px; line-height:1.85; color:var(--muted); }
.service-end { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:15px; padding-top:25px; margin-top:36px; border-top:1px solid #b8c9c7; }
.service-end>a:last-child { font-size:11px; color:var(--muted); display:flex; align-items:center; gap:16px; min-height:44px; }
.integration-map { margin:30px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border-top:1px solid #b8c9c7; padding-top:24px; }
.integration-map dt { font-size:14px; margin-bottom:10px; color:#284e61; }
.integration-map dd { margin:0; font-size:12px; line-height:1.9; color:var(--muted); }
@media(max-width:1100px) {
  .services-layout { grid-template-columns:185px minmax(0,1fr); gap:40px; }
  .services-index nav a { font-size:12px; gap:10px; }
  .service-heading h3 { font-size:36px; }
}
@media(max-width:760px) {
  .services-layout { grid-template-columns:1fr; gap:45px; }
  .services-index { position:static; max-height:none; overflow:visible; }
  .services-index>p { max-width:500px; margin-bottom:23px; }
  .services-index nav a { font-size:14px; min-height:53px; padding:15px 0; }
  .services-index nav a:after { content:'↓'; margin-left:auto; }
  .service-chapter { padding:45px 0 65px; scroll-margin-top:15px; }
  .service-heading { padding-top:22px; margin-bottom:23px; gap:12px; }
  .service-heading h3 { font-size:34px; }
  .service-heading>span { font-size:11px; }
  .service-lead { font-size:17px; margin-bottom:32px; }
  .service-topic { padding-top:25px; margin-top:30px; }
  .service-topic h4 { font-size:26px; }
  .service-definitions { grid-template-columns:1fr; gap:23px; }
  .service-definitions dt { font-size:15px; }
  .service-definitions dd { font-size:14px; }
  .service-end { align-items:flex-start; flex-direction:column; gap:4px; }
  .integration-map { grid-template-columns:1fr; gap:23px; }
  .integration-map dd { font-size:14px; }
}
@media(max-width:380px) {
  .service-heading h3 { font-size:30px; }
  .service-topic h4 { font-size:24px; }
}


#strategic-planning,.services-index a[href="#strategic-planning"] { --service-bg:#e7eff7; --service-accent:#285d84; }
#controlling,.services-index a[href="#controlling"] { --service-bg:#f1e7d9; --service-accent:#775229; }
.service-heading { border-top-color:var(--service-accent); }
.service-definitions dt { color:var(--service-accent); }

#cash-management,.services-index a[href="#cash-management"] { --service-bg:#e1eee4; --service-accent:#346347; }
#system-integration,.services-index a[href="#system-integration"] { --service-bg:#eae4f2; --service-accent:#62507d; }
#temporary-management,.services-index a[href="#temporary-management"] { --service-bg:#f2e1da; --service-accent:#86523d; }
#operations,.services-index a[href="#operations"] { --service-bg:#e8ecda; --service-accent:#586336; }
#ma-advisory,.services-index a[href="#ma-advisory"] { --service-bg:#dee9ed; --service-accent:#335f70; }
#supporto-continuativo,.services-index a[href="#supporto-continuativo"] { --service-bg:#f4ecd5; --service-accent:#756022; }
.services-index nav a>span { color:var(--service-accent); border-bottom:3px solid var(--service-accent); padding-bottom:3px; }

.reviews { background:var(--paper); }
.reviews-intro { max-width:620px; margin:-20px 0 65px; color:var(--muted); }
.review { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.7fr); gap:clamp(32px,5vw,80px); align-items:center; border-top:1px solid var(--line); padding:52px 0; }
.review:last-child { padding-bottom:0; }
.review-copy h3 { font-size:clamp(30px,3vw,46px); margin-bottom:12px; }
.review-copy p { font-size:14px; line-height:1.9; color:var(--muted); }
.review-copy .review-sector { color:var(--ink); margin-bottom:22px; }
.review-copy .review-period { font-size:12px; margin-top:22px; }
.review-media { min-width:0; }
.review-video { display:block; width:100%; aspect-ratio:16/9; background:var(--navy); object-fit:contain; }
.video-error { padding-top:12px; font-size:14px; }
.video-error a { text-decoration:underline; text-underline-offset:3px; }
@media(max-width:760px) {
  .reviews-intro { margin:0 0 35px; font-size:15px; }
  .review { grid-template-columns:1fr; gap:26px; padding:36px 0; }
  .review-copy h3 { font-size:34px; }
  .review-copy .review-sector { margin-bottom:14px; }
  .review-copy .review-period { margin-top:14px; }
}
