﻿@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700;800;900&display=swap");

:root{
  --bg:#eef4fa;
  --bg-2:#f6f9fc;
  --bg-3:#e6eef8;
  --surface:#ffffff;
  --surface-2:#f8fbff;
  --surface-3:#edf3fb;
  --text:#11273f;
  --muted:#5f748a;
  --line:rgba(24,49,82,.10);
  --line-strong:rgba(44,89,216,.20);
  --primary:#284fd8;
  --primary-2:#587cf5;
  --secondary:#e12f79;
  --secondary-2:#ff5a98;
  --accent:#49b8ff;
  --shadow:0 18px 38px rgba(27,52,92,.10);
  --shadow-strong:0 24px 56px rgba(27,52,92,.16);
  --radius:28px;
  --radius-sm:18px;
  --container:min(1200px, calc(100% - 40px));
  --max-text:62ch;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--text);
  font-family:"Roboto", Arial, sans-serif;
  line-height:1.7;
  background:
    radial-gradient(circle at 100% 0%, rgba(40,79,216,.09), transparent 26%),
    radial-gradient(circle at 0% 6%, rgba(225,47,121,.07), transparent 24%),
    linear-gradient(180deg, #f8fbfe 0%, #eff5fb 45%, #e7f0f8 100%);
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(40,79,216,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(40,79,216,.025) 1px, transparent 1px);
  background-size:58px 58px;
  opacity:.22;
  z-index:-1;
}

img{display:block;max-width:100%}
figure{margin:0}
a{text-decoration:none;color:inherit}
.container{width:var(--container);margin-inline:auto}

.skip-link{
  position:absolute;
  left:16px;
  top:-64px;
  z-index:10000;
  padding:12px 16px;
  border-radius:14px;
  background:#fff;
  color:#07111d;
  font-weight:700;
  transition:top .2s ease;
}
.skip-link:focus{top:16px}

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(250,252,255,.84);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(16,36,60,.08);
}

.nav-shell{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  position:relative;
}

.brand{
  display:flex;
  align-items:center;
  min-width:0;
  padding:8px 0;
}

.brand-lockup{
  display:block;
  height:44px;
  width:auto;
  max-width:min(460px, 42vw);
}

.footer-lockup{
  height:46px;
  max-width:min(460px, 100%);
}

.nav-links{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.nav-links a{
  padding:10px 14px;
  border-radius:999px;
  color:#37506a;
  font-weight:500;
  transition:background .25s ease, color .25s ease, transform .25s ease;
}

.nav-links a:hover,
.nav-links a:focus,
.nav-links a[aria-current="page"]{
  color:var(--text);
  background:rgba(40,79,216,.08);
  transform:translateY(-1px);
  outline:none;
}

.menu-toggle{
  display:none;
  width:48px;
  height:48px;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  cursor:pointer;
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 22px;
  gap:10px;
  border-radius:999px;
  border:none;
  font:inherit;
  font-weight:700;
  letter-spacing:.01em;
  cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}

.button:hover,
.button:focus{
  transform:translateY(-2px);
  outline:none;
}

.button-primary{
  color:#fff;
  background:linear-gradient(135deg, var(--primary), var(--accent));
  box-shadow:0 12px 28px rgba(40,79,216,.22);
}

.button-secondary{
  color:var(--text);
  border:1px solid rgba(40,79,216,.14);
  background:#fff;
  box-shadow:0 10px 24px rgba(27,52,92,.08);
}

.section{padding:92px 0}
.section-sm{padding:62px 0}
.hero{padding:52px 0 28px}

.hero-grid,
.split,
.contact-grid,
.footer-grid{
  display:grid;
  grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr);
  gap:42px;
  align-items:center;
}

.hero-grid > *,
.split > *,
.contact-grid > *,
.footer-grid > *,
.grid-2 > *,
.grid-3 > *,
.grid-4 > *,
.case-grid > *,
.team-grid > *,
.stats > *,
.timeline > *{
  min-width:0;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  margin-bottom:18px;
  border-radius:999px;
  border:1px solid rgba(40,79,216,.12);
  background:rgba(255,255,255,.72);
  color:#15324e;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.14em;
  box-shadow:0 10px 24px rgba(27,52,92,.06);
}

.eyebrow::before{
  content:"";
  width:18px;
  height:18px;
  background:url("../images/logo-mark.png") center/contain no-repeat;
  flex:0 0 auto;
}

.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  color:var(--muted);
  font-size:.95rem;
  margin-bottom:16px;
}

.breadcrumbs span[aria-hidden="true"]{opacity:.55}

.hero-copy{
  min-width:0;
  padding-right:6px;
}

.hero-copy h1{
  margin:0 0 18px;
  font-size:clamp(2.75rem, 4.9vw, 5.15rem);
  line-height:.95;
  letter-spacing:-.045em;
  max-width:10.8ch;
  overflow-wrap:anywhere;
  hyphens:auto;
  text-wrap:balance;
  color:#102740;
}

.hero-copy .lead{
  max-width:58ch;
  margin:0;
  color:#344c64;
  font-size:1.08rem;
  line-height:1.85;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin:30px 0 22px;
}

.tag-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.tag{
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(40,79,216,.10);
  background:rgba(255,255,255,.66);
  color:#28435d;
  font-size:.92rem;
}

.hero-card,
.panel,
.card,
.case-card,
.person-card,
.contact-card,
.step,
.cta-band{
  border:1px solid rgba(18,39,63,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.90));
  box-shadow:var(--shadow);
  border-radius:var(--radius);
}

.hero-card,
.panel,
.card,
.case-card,
.person-card,
.contact-card,
.step{
  position:relative;
  overflow:hidden;
}

.hero-card{
  padding:22px;
  max-width:540px;
  width:100%;
  margin-left:auto;
  box-shadow:var(--shadow-strong);
}

.hero-card::before,
.panel::after,
.card::after,
.case-card::after,
.person-card::after,
.contact-card::after{
  content:"";
  position:absolute;
  right:-34px;
  top:-34px;
  width:150px;
  height:150px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(40,79,216,.09), transparent 72%);
  pointer-events:none;
}

.hero-card::after{
  content:"";
  position:absolute;
  left:-48px;
  top:auto;
  bottom:-48px;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(225,47,121,.14), transparent 70%);
  pointer-events:none;
}

.hero-figure{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  border:1px solid rgba(18,39,63,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(244,249,255,.88));
}

.hero-figure img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center center;
}

.floating-chip{
  position:absolute;
  left:18px;
  top:18px;
  padding:11px 15px;
  border-radius:999px;
  background:rgba(15,42,72,.90);
  border:1px solid rgba(255,255,255,.10);
  color:#f2f7ff;
  backdrop-filter:blur(12px);
  font-size:.88rem;
  box-shadow:0 12px 24px rgba(17,39,72,.18);
}

.floating-chip.alt{
  left:auto;
  top:auto;
  right:18px;
  bottom:18px;
}

.stats,
.grid-2,
.grid-3,
.grid-4,
.case-grid,
.timeline,
.team-grid{
  display:grid;
  gap:24px;
}

.stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:26px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.case-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.timeline{grid-template-columns:repeat(4,minmax(0,1fr))}
.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

.stat,
.kpi{
  padding:24px;
  border-radius:22px;
  border:1px solid rgba(18,39,63,.08);
  background:rgba(255,255,255,.82);
  box-shadow:0 12px 30px rgba(27,52,92,.06);
}

.stat strong,
.kpi strong{
  display:block;
  margin-bottom:8px;
  font-size:1.36rem;
  color:#112740;
}

.stat span,
.kpi span{
  color:var(--muted);
  line-height:1.68;
}

.section-head{
  max-width:780px;
  margin-bottom:38px;
}

.section-head h2{
  margin:0 0 14px;
  font-size:clamp(2rem, 4vw, 3.35rem);
  line-height:1.05;
  letter-spacing:-.03em;
  color:#102740;
  text-wrap:balance;
  max-width:18ch;
}

.section-head p{
  margin:0;
  color:#445d74;
  font-size:1.04rem;
  line-height:1.84;
}

.card,
.panel,
.case-card,
.person-card,
.contact-card,
.step{
  padding:30px;
}

.card h3,
.panel h3,
.case-card h3,
.person-card h3,
.contact-card h3,
.step h3{
  margin:0 0 12px;
  font-size:1.35rem;
  line-height:1.25;
  color:#112740;
}

.card p,
.panel p,
.case-card p,
.person-card p,
.contact-card p,
.step p{
  margin:0;
  color:#4a6279;
  line-height:1.78;
}

.card-icon{
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  margin-bottom:20px;
  border-radius:18px;
  border:1px solid rgba(40,79,216,.10);
  background:linear-gradient(135deg, rgba(40,79,216,.12), rgba(225,47,121,.14));
  color:#173452;
}

.card-icon svg{
  width:28px;
  height:28px;
  stroke:currentColor;
}

.list-check{
  list-style:none;
  padding:0;
  margin:18px 0 0;
  display:grid;
  gap:12px;
}

.list-check li{
  position:relative;
  padding-left:24px;
  color:#28435d;
  line-height:1.62;
}

.list-check li::before{
  content:"";
  position:absolute;
  left:0;
  top:.36em;
  width:14px;
  height:14px;
  background:url("../images/logo-mark.png") center/contain no-repeat;
}

.media-stack{display:grid;gap:18px}

.media-card{
  overflow:hidden;
  border-radius:22px;
  border:1px solid rgba(18,39,63,.08);
  background:rgba(255,255,255,.86);
  box-shadow:0 12px 30px rgba(27,52,92,.06);
}

.media-card img,
.case-image img{
  width:100%;
  aspect-ratio:16/10;
  background:
    radial-gradient(circle at 80% 20%, rgba(40,79,216,.06), transparent 22%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92));
}

.media-card.cover img,
.case-image.cover img{
  object-fit:cover;
  object-position:center center;
}

.media-card.contain img,
.case-image.contain img{
  object-fit:contain;
  object-position:center center;
  padding:18px;
}

.caption{
  padding:14px 16px 16px;
  color:#5c7387;
  font-size:.94rem;
  line-height:1.6;
}

.case-image{
  margin:-30px -30px 20px;
  overflow:hidden;
  border-radius:30px 30px 18px 18px;
  border-bottom:1px solid rgba(18,39,63,.08);
  background:#f8fbff;
}

.case-type{
  color:var(--secondary);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.case-meta{
  display:grid;
  gap:8px;
  margin-top:10px;
  color:#385169;
  font-size:.96rem;
}

.case-meta strong{color:#112740}

.filter-bar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:26px;
}

.filter-button{
  padding:11px 15px;
  border-radius:999px;
  border:1px solid rgba(40,79,216,.12);
  background:#fff;
  color:#29445e;
  font:inherit;
  cursor:pointer;
  transition:background .25s ease, color .25s ease, transform .25s ease, border-color .25s ease;
  box-shadow:0 8px 20px rgba(27,52,92,.05);
}

.filter-button:hover,
.filter-button:focus{
  outline:none;
  transform:translateY(-1px);
  background:#f8fbff;
  border-color:rgba(40,79,216,.22);
}

.filter-button.active{
  border-color:transparent;
  color:#fff;
  background:linear-gradient(135deg, var(--primary), var(--secondary));
}

.case-card[hidden]{display:none}

.person-photo{
  margin:-30px -30px 20px;
  overflow:hidden;
  border-radius:30px 30px 18px 18px;
  border-bottom:1px solid rgba(18,39,63,.08);
  background:#f8fbff;
}

.person-photo img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center top;
}

.role{
  display:block;
  margin-bottom:10px;
  color:var(--secondary);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.contact-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px 16px;
  margin-top:16px;
}

.contact-link{
  color:#163352;
  font-weight:700;
}

.contact-link:hover,
.contact-link:focus{
  color:var(--primary);
  outline:none;
}

.contact-grid{align-items:start}
.contact-stack{display:grid;gap:18px}
.form-card{padding:30px}

.contact-form{display:grid;gap:16px}

.field-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

label{
  display:grid;
  gap:8px;
  color:#173452;
  font-size:.95rem;
  font-weight:700;
}

input,
select,
textarea{
  width:100%;
  padding:15px 16px;
  border-radius:16px;
  border:1px solid rgba(18,39,63,.12);
  background:#fff;
  color:var(--text);
  font:inherit;
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}

input:focus,
select:focus,
textarea:focus{
  outline:none;
  border-color:rgba(40,79,216,.34);
  box-shadow:0 0 0 4px rgba(40,79,216,.10);
  background:#fff;
}

textarea{
  min-height:170px;
  resize:vertical;
}

.form-note{
  margin:0;
  color:#5b7287;
  font-size:.94rem;
  line-height:1.7;
}

.form-status{
  display:none;
  margin:0;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(73,184,255,.22);
  background:rgba(73,184,255,.10);
  color:#173452;
}

.form-status.visible{display:block}

.step-number{
  display:inline-grid;
  place-items:center;
  width:40px;
  height:40px;
  margin-bottom:16px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--primary), var(--secondary));
  color:#fff;
  font-weight:800;
}

.logo-badge{
  display:grid;
  place-items:center;
  min-height:300px;
  border-radius:26px;
  border:1px solid rgba(18,39,63,.08);
  background:
    radial-gradient(circle at 20% 20%, rgba(40,79,216,.10), transparent 26%),
    radial-gradient(circle at 80% 80%, rgba(225,47,121,.10), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92));
  box-shadow:var(--shadow-strong);
}

.logo-badge img{
  width:min(520px, 90%);
  height:auto;
}

.cta-band{
  padding:30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  background:
    radial-gradient(circle at 100% 0%, rgba(225,47,121,.10), transparent 30%),
    radial-gradient(circle at 0% 100%, rgba(40,79,216,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,250,255,.92));
}

.cta-band h3{
  margin:0 0 8px;
  font-size:1.55rem;
  color:#112740;
}

.cta-band p{
  margin:0;
  color:#425b72;
  max-width:60ch;
  line-height:1.75;
}

.footer{
  padding:36px 0 42px;
  border-top:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg, #122743 0%, #0d1f35 100%);
}

.footer-grid{
  align-items:start;
}

.footer h4{
  margin:0 0 12px;
  font-size:1rem;
  color:#eef5ff;
}

.footer p,
.footer li,
.footer a{
  color:rgba(232,241,252,.78);
  line-height:1.75;
}

.footer ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
}

.footer a:hover,
.footer a:focus{
  color:#fff;
  outline:none;
}

.footer-note{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(232,241,252,.66);
  font-size:.92rem;
}

[data-reveal]{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s ease, transform .7s ease;
}

[data-reveal].visible{
  opacity:1;
  transform:none;
}

@media (max-width:1180px){
  .hero-grid,
  .split,
  .contact-grid,
  .footer-grid{
    grid-template-columns:1fr;
    gap:30px;
  }

  .hero-card{
    max-width:none;
    margin-left:0;
  }

  .grid-4,
  .grid-3,
  .case-grid,
  .timeline,
  .stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .hero-copy h1{
    max-width:12ch;
  }
}

@media (max-width:920px){
  .menu-toggle{display:inline-flex}
  .nav-cta{display:none}

  .js .nav-links{
    position:absolute;
    right:0;
    top:calc(100% + 10px);
    width:min(360px, calc(100vw - 40px));
    display:grid;
    gap:8px;
    padding:16px;
    border-radius:22px;
    border:1px solid rgba(18,39,63,.10);
    background:rgba(255,255,255,.98);
    box-shadow:var(--shadow-strong);
    opacity:0;
    pointer-events:none;
    transform:translateY(-10px) scale(.98);
    transform-origin:top right;
    transition:opacity .22s ease, transform .22s ease;
  }

  .js .nav-links.open{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0) scale(1);
  }

  .js .nav-links a{
    padding:12px 14px;
    border-radius:14px;
  }

  .brand-lockup{
    height:34px;
    max-width:230px;
  }
}

@media (max-width:720px){
  .section{padding:72px 0}
  .section-sm{padding:54px 0}
  .hero{padding:34px 0 18px}

  .grid-4,
  .grid-3,
  .grid-2,
  .case-grid,
  .team-grid,
  .timeline,
  .stats,
  .field-grid{
    grid-template-columns:1fr;
  }

  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  .button{width:100%}

  .hero-copy h1{
    font-size:clamp(2.25rem, 11vw, 3.9rem);
    max-width:100%;
  }

  .section-head h2{
    font-size:clamp(1.9rem, 8vw, 2.7rem);
    max-width:100%;
  }

  .cta-band{align-items:flex-start}
  .container{width:min(100% - 28px, 1200px)}

  .brand-lockup{
    height:30px;
    max-width:190px;
  }

  .logo-badge{min-height:220px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation:none !important;
    transition:none !important;
  }

  [data-reveal]{
    opacity:1;
    transform:none;
  }
}
.media-card .caption{
  display:none !important;
}

.media-card{
  background:rgba(255,255,255,.94);
}

.media-card img{
  display:block;
}

.split{
  align-items:start;
}

.split .media-stack{
  gap:22px;
}

.split .media-card{
  padding:0;
  overflow:hidden;
}

.split .media-card.cover img{
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center center;
}

.split .media-card.contain{
  padding:18px;
}

.split .media-card.contain img{
  aspect-ratio:auto;
  max-height:340px;
  width:100%;
  object-fit:contain;
  object-position:center center;
  padding:0;
}

.footer{
  padding:26px 0 34px;
}

.footer-grid{
  grid-template-columns:1.2fr .8fr .8fr;
  gap:28px;
}

.footer .brand{
  margin-bottom:10px;
}

.footer p{
  max-width:46ch;
}

.footer-note{
  margin-top:18px;
}

@media (max-width:1180px){
  .footer-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .split .media-card.contain img{
    max-height:300px;
  }
}

@media (max-width:720px){
  .split .media-card.contain{
    padding:14px;
  }

  .split .media-card.contain img{
    max-height:240px;
  }
}
.ref-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(340px,.98fr);
  gap:34px;
  align-items:center;
}

.ref-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
}

.ref-case-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.ref-gallery{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

.ref-gallery .media-card img{
  aspect-ratio:4/3;
}

.ref-case-card{
  border:1px solid rgba(18,39,63,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.92));
  box-shadow:0 18px 36px rgba(27,52,92,.08);
  border-radius:28px;
  overflow:hidden;
}

.ref-case-card .case-image{
  margin:0;
  border-radius:28px 28px 0 0;
}

.ref-case-card .case-body{
  padding:26px;
}

.ref-case-card h3{
  margin:10px 0 12px;
  font-size:1.35rem;
  line-height:1.2;
  color:#112740;
}

.ref-case-card p{
  margin:0;
  color:#4a6279;
  line-height:1.76;
}

.ref-case-card .list-check{
  margin-top:16px;
}

.ref-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(40,79,216,.08);
  color:#173452;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.ref-badge::before{
  content:"";
  width:14px;
  height:14px;
  background:url("../images/logo-mark.png") center/contain no-repeat;
  flex:0 0 auto;
}

.image-frame{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(18,39,63,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92));
  box-shadow:0 16px 32px rgba(27,52,92,.07);
}

.image-frame img{
  width:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  filter:saturate(.98) contrast(1.02) brightness(1.01);
}

.image-frame.portrait img{
  aspect-ratio:4/5;
}

.image-frame.landscape img{
  aspect-ratio:16/10;
}

.image-frame.contain img{
  aspect-ratio:16/10;
  object-fit:contain;
  padding:14px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92));
}

.image-strip{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.media-card .caption,
figcaption.caption{
  display:none !important;
}

.media-card{
  background:rgba(255,255,255,.94);
}

.media-card img{
  display:block;
  filter:saturate(.98) contrast(1.02) brightness(1.01);
}

.split{
  align-items:start;
}

.split .media-stack{
  gap:22px;
}

.split .media-card{
  padding:0;
  overflow:hidden;
}

.split .media-card.cover img{
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center center;
}

.split .media-card.contain{
  padding:18px;
}

.split .media-card.contain img{
  aspect-ratio:auto;
  max-height:360px;
  width:100%;
  object-fit:contain;
  object-position:center center;
  padding:0;
}

.footer{
  padding:28px 0 34px;
  background:linear-gradient(180deg, #122743 0%, #0d1f35 100%);
}

.footer-simple{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:30px;
  align-items:start;
}

.footer-brand-wrap p{
  max-width:48ch;
  color:rgba(232,241,252,.78);
  line-height:1.8;
}

.footer-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
}

.footer-links h4{
  margin:0 0 10px;
  color:#eef5ff;
}

.footer-links ul{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
}

.footer-links a,
.footer-links li{
  color:rgba(232,241,252,.78);
  line-height:1.7;
}

.footer-links a:hover,
.footer-links a:focus{
  color:#ffffff;
}

.footer-note{
  margin-top:18px;
  padding-top:16px;
}

@media (max-width:1180px){
  .ref-hero-grid,
  .ref-feature-grid,
  .footer-simple{
    grid-template-columns:1fr;
  }

  .ref-case-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ref-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .footer-links{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:720px){
  .ref-case-grid,
  .ref-gallery,
  .image-strip,
  .footer-links{
    grid-template-columns:1fr;
  }

  .split .media-card.contain{
    padding:14px;
  }

  .split .media-card.contain img{
    max-height:240px;
  }
}
.reference-hero{
  padding:52px 0 26px;
}

.reference-hero .hero-grid{
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  align-items:center;
}

.reference-hero .hero-copy h1{
  max-width:11ch;
}

.reference-hero-card{
  max-width:560px;
  width:100%;
  margin-left:auto;
}

.reference-hero .hero-figure img{
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center center;
}

.reference-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.reference-card{
  border:1px solid rgba(18,39,63,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.92));
  box-shadow:0 18px 36px rgba(27,52,92,.08);
  border-radius:28px;
  overflow:hidden;
}

.reference-card .case-image{
  margin:0;
  border-radius:28px 28px 0 0;
  border-bottom:1px solid rgba(18,39,63,.08);
  background:#f8fbff;
}

.reference-card .case-image img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  object-position:center center;
  display:block;
}

.reference-card .case-image.contain img{
  object-fit:contain;
  padding:16px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92));
}

.reference-card .case-body{
  padding:26px;
}

.reference-card h3{
  margin:10px 0 12px;
  font-size:1.34rem;
  line-height:1.22;
  color:#112740;
}

.reference-card p{
  margin:0;
  color:#4a6279;
  line-height:1.76;
}

.reference-card .list-check{
  margin-top:16px;
}

.reference-intro{
  max-width:760px;
  margin-bottom:36px;
}

.reference-intro h2{
  margin:0 0 12px;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.06;
  letter-spacing:-.03em;
  color:#102740;
  max-width:16ch;
}

.reference-intro p{
  margin:0;
  color:#445d74;
  line-height:1.82;
}

@media (max-width:1180px){
  .reference-hero .hero-grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .reference-hero-card{
    margin-left:0;
    max-width:none;
  }

  .reference-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:720px){
  .reference-grid{
    grid-template-columns:1fr;
  }

  .reference-intro h2,
  .reference-hero .hero-copy h1{
    max-width:100%;
  }
}
.reference-hero{
  padding:52px 0 26px;
}

.reference-hero .hero-grid{
  grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);
  gap:34px;
  align-items:center;
}

.reference-hero-card{
  max-width:540px;
  width:100%;
  margin-left:auto;
}

.reference-hero .hero-figure img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center center;
}

.reference-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.reference-card{
  border:1px solid rgba(18,39,63,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,251,255,.92));
  box-shadow:0 18px 36px rgba(27,52,92,.08);
  border-radius:28px;
  overflow:hidden;
}

.reference-card .case-image{
  margin:0;
  border-radius:28px 28px 0 0;
  border-bottom:1px solid rgba(18,39,63,.08);
  background:#f8fbff;
  min-height:280px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.reference-card .case-image img{
  width:100%;
  height:280px;
  display:block;
  object-fit:cover;
  object-position:center center;
}

.reference-card .case-image.contain img{
  object-fit:contain;
  padding:16px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92));
}

.reference-card .case-body{
  padding:26px;
}

.reference-card h3{
  margin:10px 0 12px;
  font-size:1.34rem;
  line-height:1.22;
  color:#112740;
}

.reference-card p{
  margin:0;
  color:#4a6279;
  line-height:1.76;
}

.reference-card .list-check{
  margin-top:16px;
}

.reference-intro{
  max-width:760px;
  margin-bottom:36px;
}

.reference-intro h2{
  margin:0 0 12px;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.06;
  letter-spacing:-.03em;
  color:#102740;
  max-width:16ch;
}

.reference-intro p{
  margin:0;
  color:#445d74;
  line-height:1.82;
}

@media (max-width:1180px){
  .reference-hero .hero-grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .reference-hero-card{
    margin-left:0;
    max-width:none;
  }

  .reference-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:720px){
  .reference-grid{
    grid-template-columns:1fr;
  }

  .reference-card .case-image{
    min-height:240px;
  }

  .reference-card .case-image img{
    height:240px;
  }
}
.reference-hero .hero-grid{
  grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr) !important;
  gap:36px !important;
  align-items:center !important;
}

.reference-hero-card{
  max-width:460px !important;
  width:100% !important;
  margin-left:auto !important;
}

.reference-hero .hero-figure{
  border-radius:24px !important;
}

.reference-hero .hero-figure img{
  width:100% !important;
  height:560px !important;
  aspect-ratio:auto !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.reference-hero .hero-copy h1{
  max-width:9.5ch !important;
  font-size:clamp(2.9rem, 5vw, 5rem) !important;
}

.reference-intro{
  max-width:840px !important;
}

.reference-intro h2{
  max-width:none !important;
}

.card-icon.card-icon-image{
  background:linear-gradient(135deg, rgba(40,79,216,.10), rgba(225,47,121,.12)) !important;
  padding:12px !important;
}

.card-icon.card-icon-image img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  display:block !important;
}

@media (max-width:1180px){
  .reference-hero-card{
    max-width:420px !important;
    margin-left:0 !important;
  }

  .reference-hero .hero-figure img{
    height:480px !important;
  }
}

@media (max-width:720px){
  .reference-hero .hero-figure img{
    height:360px !important;
  }

  .reference-hero .hero-copy h1{
    max-width:100% !important;
  }
}
/* ---------------------------------------------------------
   v5.4 responsive and image scaling fix
--------------------------------------------------------- */

.card-icon{
  width:60px !important;
  height:60px !important;
  padding:12px;
}

.card-icon svg,
.card-icon img{
  width:30px !important;
  height:30px !important;
}

.grid-4 .card:nth-child(1) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.grid-4 .card:nth-child(3) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.hero-card,
.reference-hero-card,
.hero-figure,
.media-card,
.reference-card,
.case-image,
.person-photo,
.logo-badge{
  max-width:100%;
}

.hero-figure img,
.media-card img,
.case-image img,
.person-photo img,
.reference-card .case-image img{
  width:100%;
  height:auto;
  display:block;
}

.hero-figure img{
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center center;
}

.split .media-card.cover img{
  width:100%;
  height:340px;
  object-fit:cover;
  object-position:center center;
}

.split .media-card.contain{
  padding:18px;
}

.split .media-card.contain img{
  width:100%;
  height:320px;
  object-fit:contain;
  object-position:center center;
  padding:0;
}

.reference-card .case-image{
  min-height:280px;
}

.reference-card .case-image img{
  width:100%;
  height:280px;
  object-fit:cover;
  object-position:center center;
}

.reference-card .case-image.contain img{
  object-fit:contain;
  padding:16px;
}

.media-stack{
  min-width:0;
}

.media-card{
  min-width:0;
}

img{
  max-width:100%;
  height:auto;
}

@media (max-width:1180px){
  .split{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .hero-grid,
  .reference-hero .hero-grid{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .hero-card,
  .reference-hero-card{
    margin-left:0 !important;
    max-width:none !important;
  }

  .split .media-card.cover img{
    height:320px;
  }

  .split .media-card.contain img{
    height:280px;
  }

  .reference-card .case-image{
    min-height:250px;
  }

  .reference-card .case-image img{
    height:250px;
  }
}

@media (max-width:920px){
  .grid-4,
  .grid-3,
  .grid-2,
  .case-grid,
  .reference-grid,
  .team-grid,
  .timeline,
  .stats,
  .field-grid{
    grid-template-columns:1fr !important;
  }

  .hero-copy h1,
  .reference-hero .hero-copy h1{
    max-width:100% !important;
    font-size:clamp(2.3rem, 9vw, 4rem) !important;
    line-height:.98 !important;
  }

  .section-head h2,
  .reference-intro h2{
    max-width:100% !important;
  }

  .hero-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .button{
    width:100%;
  }

  .split .media-card.cover img{
    height:300px;
  }

  .split .media-card.contain img{
    height:240px;
  }

  .reference-card .case-image{
    min-height:230px;
  }

  .reference-card .case-image img{
    height:230px;
  }

  .reference-hero .hero-figure img{
    height:420px !important;
    aspect-ratio:auto !important;
  }
}

@media (max-width:720px){
  .container{
    width:min(100% - 24px, 1200px) !important;
  }

  .section,
  .reference-hero{
    padding:64px 0 !important;
  }

  .section-sm{
    padding:48px 0 !important;
  }

  .hero{
    padding:28px 0 18px !important;
  }

  .hero-copy .lead,
  .section-head p,
  .reference-intro p,
  .card p,
  .panel p,
  .case-card p,
  .reference-card p{
    font-size:1rem !important;
    line-height:1.72 !important;
  }

  .card,
  .panel,
  .case-card,
  .reference-card,
  .person-card,
  .contact-card,
  .step{
    padding:22px !important;
  }

  .case-image{
    margin:-22px -22px 18px !important;
  }

  .person-photo{
    margin:-22px -22px 18px !important;
  }

  .split .media-card{
    border-radius:20px !important;
  }

  .split .media-card.cover img{
    height:240px !important;
  }

  .split .media-card.contain{
    padding:14px !important;
  }

  .split .media-card.contain img{
    height:220px !important;
  }

  .reference-card .case-image{
    min-height:220px !important;
  }

  .reference-card .case-image img{
    height:220px !important;
  }

  .reference-hero .hero-figure img{
    height:320px !important;
  }

  .floating-chip{
    font-size:.8rem !important;
    padding:10px 13px !important;
  }

  .tag-row{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .tag{
    text-align:center;
  }

  .card-icon{
    width:58px !important;
    height:58px !important;
  }

  .card-icon svg,
  .card-icon img{
    width:29px !important;
    height:29px !important;
  }

  .grid-4 .card:nth-child(1) .card-icon svg{
    width:32px !important;
    height:32px !important;
  }

  .grid-4 .card:nth-child(3) .card-icon svg{
    width:32px !important;
    height:32px !important;
  }
}

@media (max-width:540px){
  .brand-lockup{
    max-width:170px !important;
    height:28px !important;
  }

  .reference-hero .hero-figure img{
    height:280px !important;
  }

  .split .media-card.cover img{
    height:220px !important;
  }

  .split .media-card.contain img{
    height:200px !important;
  }

  .reference-card .case-image{
    min-height:200px !important;
  }

  .reference-card .case-image img{
    height:200px !important;
  }

  .hero-copy h1,
  .reference-hero .hero-copy h1{
    font-size:clamp(2.1rem, 10vw, 3.4rem) !important;
  }
}
.company-people-intro{
  display:none !important;
}

.team-grid{
  align-items:start;
}

.person-card{
  display:flex;
  flex-direction:column;
}

.person-photo{
  margin:-30px -30px 22px;
  overflow:hidden;
  border-radius:30px 30px 18px 18px;
  border-bottom:1px solid rgba(18,39,63,.08);
  background:#f8fbff;
}

.person-photo img{
  width:100%;
  height:440px;
  object-fit:cover;
  object-position:center 22%;
  display:block;
}

.team-grid .person-card:first-child .person-photo img{
  object-position:center 18%;
}

.team-grid .person-card:last-child .person-photo img{
  object-position:center 20%;
}

.person-card .role{
  margin-bottom:8px;
}

.person-card p{
  display:none !important;
}

.person-card .contact-links{
  margin-top:10px;
}

@media (max-width:920px){
  .person-photo img{
    height:400px;
  }
}

@media (max-width:720px){
  .person-photo{
    margin:-22px -22px 18px !important;
  }

  .person-photo img{
    height:340px;
  }
}
/* ---------------------------------------------------------
   v5.6 company + contact polish
--------------------------------------------------------- */

.card-icon{
  width:60px !important;
  height:60px !important;
  padding:12px !important;
  display:grid;
  place-items:center;
}

.card-icon svg,
.card-icon img{
  width:30px !important;
  height:30px !important;
  display:block;
}

.grid-3 .card:nth-child(1) .card-icon svg,
.grid-4 .card:nth-child(1) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.grid-3 .card:nth-child(3) .card-icon svg,
.grid-4 .card:nth-child(3) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.balanced-title{
  text-wrap:balance;
  overflow-wrap:normal;
  word-break:normal;
  max-width:11ch;
}

.company-hero .hero-grid{
  align-items:center;
}

.company-hero .hero-figure img{
  width:100%;
  height:420px;
  object-fit:cover;
  object-position:center 38%;
  display:block;
}

.team-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  align-items:start;
}

.person-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
}

.person-photo{
  margin:-30px -30px 22px;
  overflow:hidden;
  border-radius:30px 30px 18px 18px;
  border-bottom:1px solid rgba(18,39,63,.08);
  background:#f8fbff;
}

.person-photo img{
  width:100%;
  height:410px;
  object-fit:cover;
  object-position:center 18%;
  display:block;
}

.team-grid .person-card:first-child .person-photo img{
  object-position:center 16%;
}

.team-grid .person-card:last-child .person-photo img{
  object-position:center 16%;
}

.person-card .role{
  margin-bottom:8px;
}

.person-card p{
  display:none !important;
}

.person-card .contact-links{
  margin-top:12px;
}

.contact-people{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
}

.contact-person-card .person-photo{
  margin:-30px -30px 22px;
}

.contact-person-card .person-photo img{
  width:100%;
  height:360px;
  object-fit:cover;
  object-position:center 16%;
  display:block;
}

.contact-person-card p{
  display:none !important;
}

.contact-simple-panel{
  max-width:820px;
}

@media (max-width:1180px){
  .contact-people,
  .team-grid{
    grid-template-columns:1fr;
  }

  .company-hero .hero-figure img{
    height:360px;
  }
}

@media (max-width:720px){
  .balanced-title{
    max-width:100%;
  }

  .person-photo{
    margin:-22px -22px 18px !important;
  }

  .contact-person-card .person-photo{
    margin:-22px -22px 18px !important;
  }

  .person-photo img{
    height:340px;
  }

  .contact-person-card .person-photo img{
    height:320px;
  }

  .company-hero .hero-figure img{
    height:300px;
  }
}
/* ---------------------------------------------------------
   v5.7 headshot positioning fix
--------------------------------------------------------- */

.team-grid,
.contact-people{
  align-items:start !important;
}

.person-card,
.contact-person-card{
  overflow:hidden;
}

.person-photo{
  position:relative;
  overflow:hidden !important;
  background:#eef3f8 !important;
  border-radius:30px 30px 18px 18px !important;
}

.person-photo img{
  width:100% !important;
  height:430px !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  transform:scale(1.04) !important;
}

.team-grid .person-card:first-child .person-photo img,
.contact-people .contact-person-card:first-child .person-photo img{
  object-position:center 30% !important;
  transform:scale(1.05) translateY(20px) !important;
}

.team-grid .person-card:last-child .person-photo img,
.contact-people .contact-person-card:last-child .person-photo img{
  object-position:center 18% !important;
  transform:scale(1.05) translateY(-10px) !important;
}

.person-card h3,
.contact-person-card h3{
  margin:0 0 10px !important;
}

.person-card .role,
.contact-person-card .role{
  display:block !important;
  margin-bottom:10px !important;
  color:var(--secondary) !important;
  font-size:.82rem !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
}

.person-card .contact-links,
.contact-person-card .contact-links{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px 16px !important;
  margin-top:10px !important;
}

@media (max-width:920px){
  .person-photo img{
    height:390px !important;
  }

  .team-grid .person-card:first-child .person-photo img,
  .contact-people .contact-person-card:first-child .person-photo img{
    transform:scale(1.04) translateY(14px) !important;
  }

  .team-grid .person-card:last-child .person-photo img,
  .contact-people .contact-person-card:last-child .person-photo img{
    transform:scale(1.04) translateY(-8px) !important;
  }
}

@media (max-width:720px){
  .person-photo{
    margin:-22px -22px 18px !important;
  }

  .person-photo img{
    height:340px !important;
    transform:scale(1.03) !important;
  }

  .team-grid .person-card:first-child .person-photo img,
  .contact-people .contact-person-card:first-child .person-photo img{
    transform:scale(1.04) translateY(10px) !important;
    object-position:center 28% !important;
  }

  .team-grid .person-card:last-child .person-photo img,
  .contact-people .contact-person-card:last-child .person-photo img{
    transform:scale(1.04) translateY(-6px) !important;
    object-position:center 16% !important;
  }
}
/* ---------------------------------------------------------
   v5.8 company final fix
--------------------------------------------------------- */

.team-grid,
.contact-people{
  align-items:start !important;
}

.person-card,
.contact-person-card{
  overflow:hidden !important;
}

.person-photo{
  margin:-30px -30px 22px !important;
  overflow:hidden !important;
  border-radius:30px 30px 18px 18px !important;
  border-bottom:1px solid rgba(18,39,63,.08) !important;
  background:#e9eef5 !important;
}

.person-photo img{
  width:100% !important;
  height:430px !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center 18% !important;
  transform:none !important;
}

.team-grid .person-card:first-child .person-photo img,
.contact-people .contact-person-card:first-child .person-photo img{
  object-position:center 30% !important;
}

.team-grid .person-card:last-child .person-photo img,
.contact-people .contact-person-card:last-child .person-photo img{
  object-position:center 14% !important;
}

.card-icon{
  width:60px !important;
  height:60px !important;
  display:grid !important;
  place-items:center !important;
  padding:12px !important;
}

.card-icon svg,
.card-icon img{
  width:30px !important;
  height:30px !important;
  display:block !important;
}

.grid-3 .card:nth-child(1) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.grid-3 .card:nth-child(3) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

@media (max-width:920px){
  .person-photo img{
    height:390px !important;
  }
}

@media (max-width:720px){
  .person-photo{
    margin:-22px -22px 18px !important;
  }

  .person-photo img{
    height:340px !important;
  }

  .team-grid .person-card:first-child .person-photo img,
  .contact-people .contact-person-card:first-child .person-photo img{
    object-position:center 28% !important;
  }

  .team-grid .person-card:last-child .person-photo img,
  .contact-people .contact-person-card:last-child .person-photo img{
    object-position:center 14% !important;
  }
}
/* ---------------------------------------------------------
   v5.9 hard reset company/contact
--------------------------------------------------------- */

.company-hero .hero-grid{
  align-items:center !important;
}

.company-hero .hero-copy h1{
  max-width:11ch !important;
  text-wrap:balance !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

.company-hero .hero-figure img{
  width:100% !important;
  height:420px !important;
  object-fit:cover !important;
  object-position:center 38% !important;
  display:block !important;
}

.company-cards.grid-3{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
}

.company-cards .card-icon{
  width:60px !important;
  height:60px !important;
  display:grid !important;
  place-items:center !important;
  padding:12px !important;
}

.company-cards .card-icon svg{
  width:30px !important;
  height:30px !important;
  display:block !important;
}

.company-cards .card:nth-child(1) .card-icon svg,
.company-cards .card:nth-child(3) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.people-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px !important;
  align-items:start !important;
}

.people-card{
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

.people-photo{
  margin:-30px -30px 22px !important;
  overflow:hidden !important;
  border-radius:30px 30px 18px 18px !important;
  border-bottom:1px solid rgba(18,39,63,.08) !important;
  background:#e9eef5 !important;
}

.people-photo img{
  width:100% !important;
  height:430px !important;
  display:block !important;
  object-fit:cover !important;
}

.people-card.mika .people-photo img{
  object-position:center 34% !important;
}

.people-card.aki .people-photo img{
  object-position:center 12% !important;
}

.people-role{
  display:block !important;
  margin-bottom:10px !important;
  color:var(--secondary) !important;
  font-size:.82rem !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
}

.people-card h3{
  margin:0 0 10px !important;
  font-size:1.35rem !important;
  color:#112740 !important;
}

.people-links{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px 16px !important;
  margin-top:10px !important;
}

.people-links a{
  color:#163352 !important;
  font-weight:700 !important;
}

.contact-people-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px !important;
}

.contact-person{
  overflow:hidden !important;
}

.contact-person .people-photo img{
  height:380px !important;
}

@media (max-width:1180px){
  .company-cards.grid-3,
  .people-grid,
  .contact-people-grid{
    grid-template-columns:1fr !important;
  }

  .company-hero .hero-figure img{
    height:360px !important;
  }
}

@media (max-width:720px){
  .company-hero .hero-copy h1{
    max-width:100% !important;
  }

  .people-photo{
    margin:-22px -22px 18px !important;
  }

  .people-photo img{
    height:340px !important;
  }

  .contact-person .people-photo img{
    height:320px !important;
  }

  .company-hero .hero-figure img{
    height:300px !important;
  }
}
/* ---------------------------------------------------------
   v6 company hard fix
--------------------------------------------------------- */

.company-hero .hero-grid{
  align-items:center !important;
}

.company-hero .hero-copy h1{
  max-width:11ch !important;
  text-wrap:balance !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
}

.company-hero .hero-figure img{
  width:100% !important;
  height:420px !important;
  object-fit:cover !important;
  object-position:center 38% !important;
  display:block !important;
}

.company-cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
}

.company-cards .card{
  position:relative !important;
  overflow:hidden !important;
  min-height:230px !important;
}

.company-cards .card::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  opacity:.08 !important;
  pointer-events:none !important;
}

.company-cards .card:nth-child(1)::before{
  background-image:url("../assets/images/transformer-2500kva.jpg") !important;
}

.company-cards .card:nth-child(2)::before{
  background-image:url("../assets/images/rtu-24h-lab.jpg") !important;
}

.company-cards .card:nth-child(3)::before{
  background-image:url("../assets/images/omicron-cmc356.jpg") !important;
}

.company-cards .card > *{
  position:relative !important;
  z-index:1 !important;
}

.company-cards .card-icon{
  width:60px !important;
  height:60px !important;
  display:grid !important;
  place-items:center !important;
  padding:12px !important;
}

.company-cards .card-icon svg{
  width:30px !important;
  height:30px !important;
  display:block !important;
}

.company-cards .card:nth-child(1) .card-icon svg,
.company-cards .card:nth-child(3) .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.people-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px !important;
  align-items:start !important;
}

.people-card{
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
}

.people-photo{
  margin:-30px -30px 22px !important;
  overflow:hidden !important;
  border-radius:30px 30px 18px 18px !important;
  border-bottom:1px solid rgba(18,39,63,.08) !important;
  background:#edf2f7 !important;
  display:grid !important;
  place-items:center !important;
}

.people-photo img{
  width:100% !important;
  height:420px !important;
  display:block !important;
  object-fit:contain !important;
  object-position:center center !important;
  padding:0 !important;
  background:#edf2f7 !important;
}

.people-role{
  display:block !important;
  margin-bottom:10px !important;
  color:var(--secondary) !important;
  font-size:.82rem !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
}

.people-card h3{
  margin:0 0 10px !important;
  font-size:1.35rem !important;
  color:#112740 !important;
}

.people-links{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px 16px !important;
  margin-top:10px !important;
}

.people-links a{
  color:#163352 !important;
  font-weight:700 !important;
}

.contact-people-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px !important;
}

.contact-person .people-photo img{
  height:380px !important;
}

.leadership-head{
  margin-bottom:26px !important;
}

.leadership-head h2{
  margin:0 !important;
  max-width:14ch !important;
  font-size:clamp(2rem, 4vw, 3.2rem) !important;
  line-height:1.05 !important;
  letter-spacing:-.03em !important;
  color:#102740 !important;
}

@media (max-width:1180px){
  .company-cards,
  .people-grid,
  .contact-people-grid{
    grid-template-columns:1fr !important;
  }

  .company-hero .hero-figure img{
    height:360px !important;
  }
}

@media (max-width:720px){
  .company-hero .hero-copy h1{
    max-width:100% !important;
  }

  .people-photo{
    margin:-22px -22px 18px !important;
  }

  .people-photo img{
    height:340px !important;
  }

  .contact-person .people-photo img{
    height:320px !important;
  }

  .company-hero .hero-figure img{
    height:300px !important;
  }
}
/* ---------------------------------------------------------
   v6.1 company/services fix
--------------------------------------------------------- */

.company-cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
}

.company-cards .card{
  position:relative !important;
  overflow:hidden !important;
  min-height:235px !important;
  isolation:isolate !important;
}

.company-cards .card::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  opacity:.09 !important;
  pointer-events:none !important;
  z-index:0 !important;
}

.company-cards .card.bg-transformer::before{
  background-image:url("../images/transformer-2500kva.jpg") !important;
}

.company-cards .card.bg-rtu::before{
  background-image:url("../images/rtu-24h-lab.jpg") !important;
}

.company-cards .card.bg-testing::before{
  background-image:url("../images/omicron-cmc356.jpg") !important;
}

.company-cards .card > *{
  position:relative !important;
  z-index:1 !important;
}

.company-cards .card-icon{
  width:60px !important;
  height:60px !important;
  display:grid !important;
  place-items:center !important;
  padding:12px !important;
}

.company-cards .card-icon svg{
  width:30px !important;
  height:30px !important;
  display:block !important;
}

.company-cards .card.bg-transformer .card-icon svg,
.company-cards .card.bg-testing .card-icon svg{
  width:33px !important;
  height:33px !important;
}

.people-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px !important;
}

.contact-people-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px !important;
}

.people-card,
.contact-person{
  overflow:hidden !important;
}

.people-photo{
  margin:-30px -30px 22px !important;
  padding:14px 14px 0 !important;
  overflow:hidden !important;
  border-radius:30px 30px 18px 18px !important;
  border-bottom:1px solid rgba(18,39,63,.08) !important;
  background:linear-gradient(180deg, rgba(245,248,252,.96), rgba(236,242,248,.96)) !important;
  display:grid !important;
  place-items:center !important;
}

.people-photo img{
  width:auto !important;
  max-width:100% !important;
  height:420px !important;
  display:block !important;
  object-fit:contain !important;
  object-position:center center !important;
  border-radius:24px 24px 0 0 !important;
  background:#edf2f7 !important;
}

.contact-person .people-photo img{
  height:380px !important;
}

.people-role{
  display:block !important;
  margin-bottom:10px !important;
  color:var(--secondary) !important;
  font-size:.82rem !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
}

.people-card h3,
.contact-person h3{
  margin:0 0 10px !important;
  font-size:1.35rem !important;
  color:#112740 !important;
}

.people-links{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px 16px !important;
  margin-top:10px !important;
}

.people-links a{
  color:#163352 !important;
  font-weight:700 !important;
}

.leadership-head{
  margin-bottom:26px !important;
}

.services-page .split .media-card.cover img{
  width:100% !important;
  height:300px !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.services-page .split .media-card.contain{
  padding:14px !important;
}

.services-page .split .media-card.contain img{
  width:100% !important;
  height:260px !important;
  object-fit:contain !important;
  object-position:center center !important;
  padding:0 !important;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92)) !important;
}

@media (max-width:1180px){
  .company-cards,
  .people-grid,
  .contact-people-grid{
    grid-template-columns:1fr !important;
  }
}

@media (max-width:720px){
  .people-photo{
    margin:-22px -22px 18px !important;
    padding:12px 12px 0 !important;
  }

  .people-photo img{
    height:340px !important;
    border-radius:20px 20px 0 0 !important;
  }

  .contact-person .people-photo img{
    height:320px !important;
  }

  .services-page .split .media-card.cover img{
    height:240px !important;
  }

  .services-page .split .media-card.contain img{
    height:220px !important;
  }
}
/* ---------------------------------------------------------
   v6.2 PPC section + company icons
--------------------------------------------------------- */

.ppc-section{
  padding:28px 0 0;
}

.ppc-panel{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(18,39,63,.08);
  border-radius:32px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(246,250,255,.92)),
    radial-gradient(circle at top right, rgba(225,47,121,.08), transparent 42%),
    radial-gradient(circle at bottom left, rgba(40,79,216,.10), transparent 38%);
  box-shadow:0 18px 40px rgba(27,52,92,.08);
  padding:34px;
}

.ppc-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(240px,.9fr);
  gap:28px;
  align-items:center;
}

.ppc-copy h2{
  margin:0 0 14px;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.05;
  letter-spacing:-.03em;
  color:#102740;
}

.ppc-copy p{
  margin:0;
  color:#445d74;
  line-height:1.82;
  max-width:68ch;
}

.ppc-copy p + p{
  margin-top:14px;
}

.ppc-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:180px;
}

.ppc-brand img{
  max-width:min(100%, 320px);
  max-height:120px;
  width:auto;
  height:auto;
  display:block;
  filter:drop-shadow(0 10px 20px rgba(27,52,92,.08));
}

.company-cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
}

.company-cards .card{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  min-height:235px !important;
}

.company-cards .card::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  opacity:.085 !important;
  pointer-events:none !important;
  z-index:0 !important;
}

.company-cards .card.bg-transformer::before{
  background-image:url("../images/transformer-2500kva.jpg") !important;
}

.company-cards .card.bg-rtu::before{
  background-image:url("../images/rtu-24h-lab.jpg") !important;
}

.company-cards .card.bg-testing::before{
  background-image:url("../images/omicron-cmc356.jpg") !important;
}

.company-cards .card > *{
  position:relative !important;
  z-index:1 !important;
}

.company-cards .card-icon{
  width:62px !important;
  height:62px !important;
  display:grid !important;
  place-items:center !important;
  padding:12px !important;
  border-radius:18px !important;
  background:linear-gradient(135deg, rgba(40,79,216,.10), rgba(225,47,121,.14)) !important;
  border:1px solid rgba(40,79,216,.12) !important;
  box-shadow:0 10px 24px rgba(27,52,92,.06) !important;
}

.company-cards .card-icon svg{
  width:30px !important;
  height:30px !important;
  display:block !important;
  color:#173452 !important;
}

.company-cards .card.bg-transformer .card-icon svg,
.company-cards .card.bg-testing .card-icon svg{
  width:33px !important;
  height:33px !important;
}

@media (max-width:1180px){
  .ppc-grid{
    grid-template-columns:1fr;
  }

  .ppc-brand{
    justify-content:flex-start;
    min-height:auto;
  }

  .company-cards{
    grid-template-columns:1fr !important;
  }
}

@media (max-width:720px){
  .ppc-panel{
    padding:24px;
    border-radius:24px;
  }

  .ppc-copy h2{
    font-size:clamp(1.7rem, 8vw, 2.4rem);
  }

  .ppc-brand img{
    max-width:220px;
    max-height:90px;
  }
}
/* ---------------------------------------------------------
   v6.3 png icons + PPC reorder
--------------------------------------------------------- */

.company-cards{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
}

.company-cards .card{
  position:relative !important;
  overflow:hidden !important;
  isolation:isolate !important;
  min-height:235px !important;
}

.company-cards .card::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  opacity:.085 !important;
  pointer-events:none !important;
  z-index:0 !important;
}

.company-cards .card.bg-transformer::before{
  background-image:url("../images/transformer-2500kva.jpg") !important;
}

.company-cards .card.bg-rtu::before{
  background-image:url("../images/rtu-24h-lab.jpg") !important;
}

.company-cards .card.bg-testing::before{
  background-image:url("../images/omicron-cmc356.jpg") !important;
}

.company-cards .card > *{
  position:relative !important;
  z-index:1 !important;
}

.company-cards .card-icon{
  width:62px !important;
  height:62px !important;
  display:grid !important;
  place-items:center !important;
  padding:12px !important;
  border-radius:18px !important;
  background:linear-gradient(135deg, rgba(40,79,216,.10), rgba(225,47,121,.14)) !important;
  border:1px solid rgba(40,79,216,.12) !important;
  box-shadow:0 10px 24px rgba(27,52,92,.06) !important;
}

.company-cards .card-icon img{
  width:30px !important;
  height:30px !important;
  object-fit:contain !important;
  display:block !important;
  filter:none !important;
}

.company-cards .card.bg-transformer .card-icon img,
.company-cards .card.bg-testing .card-icon img{
  width:33px !important;
  height:33px !important;
}

.ppc-section{
  padding:10px 0 0 !important;
}

.ppc-panel{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(18,39,63,.08);
  border-radius:32px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(246,250,255,.92)),
    radial-gradient(circle at top right, rgba(225,47,121,.08), transparent 42%),
    radial-gradient(circle at bottom left, rgba(40,79,216,.10), transparent 38%);
  box-shadow:0 18px 40px rgba(27,52,92,.08);
  padding:34px;
}

.ppc-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(240px,.9fr);
  gap:28px;
  align-items:center;
}

.ppc-copy h2{
  margin:0 0 14px;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.05;
  letter-spacing:-.03em;
  color:#102740;
}

.ppc-copy p{
  margin:0;
  color:#445d74;
  line-height:1.82;
  max-width:68ch;
}

.ppc-copy p + p{
  margin-top:14px;
}

.ppc-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:180px;
}

.ppc-brand img{
  max-width:min(100%, 320px);
  max-height:120px;
  width:auto;
  height:auto;
  display:block;
  filter:drop-shadow(0 10px 20px rgba(27,52,92,.08));
}

@media (max-width:1180px){
  .company-cards{
    grid-template-columns:1fr !important;
  }

  .ppc-grid{
    grid-template-columns:1fr;
  }

  .ppc-brand{
    justify-content:flex-start;
    min-height:auto;
  }
}

@media (max-width:720px){
  .ppc-panel{
    padding:24px;
    border-radius:24px;
  }

  .ppc-copy h2{
    font-size:clamp(1.7rem, 8vw, 2.4rem);
  }

  .ppc-brand img{
    max-width:220px;
    max-height:90px;
  }
}
/* ---------------------------------------------------------
   v6.4 services image scaling + encoding safety
--------------------------------------------------------- */

.services-page .split{
  align-items:start !important;
}

.services-page .media-stack{
  gap:18px !important;
}

.services-page .split .media-card{
  overflow:hidden !important;
  border-radius:26px !important;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,255,.92)) !important;
}

.services-page .split .media-card.cover{
  padding:0 !important;
}

.services-page .split .media-card.cover img{
  width:100% !important;
  height:260px !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.services-page .split .media-card.contain{
  padding:18px !important;
}

.services-page .split .media-card.contain img{
  width:100% !important;
  height:260px !important;
  display:block !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:transparent !important;
}

@media (max-width:1180px){
  .services-page .split .media-card.cover img,
  .services-page .split .media-card.contain img{
    height:300px !important;
  }
}

@media (max-width:720px){
  .services-page .split .media-card.cover img,
  .services-page .split .media-card.contain img{
    height:220px !important;
  }

  .services-page .split .media-card.contain{
    padding:12px !important;
  }
}
/* ---------------------------------------------------------
   v6.5 services image fine tuning
--------------------------------------------------------- */

.services-page .section .media-stack{
  gap:18px !important;
}

.services-page .section .media-card{
  overflow:hidden !important;
  border-radius:26px !important;
}

/* Yleinen kuvakorkeus cover-kuville */
.services-page .section .media-card.cover img{
  width:100% !important;
  height:280px !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
}

/* Contain-kuville rauhallinen korkeus */
.services-page .section .media-card.contain{
  padding:16px !important;
}

.services-page .section .media-card.contain img{
  width:100% !important;
  height:250px !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
}

/* 1. BESS-osio: yläkuva enemmän laitteistoon, alakuva enemmän henkilön keskelle */
.services-page .section:nth-of-type(2) .media-card.cover:first-child img{
  object-position:center 42% !important;
}

.services-page .section:nth-of-type(2) .media-card.cover:last-child img{
  object-position:center 58% !important;
}

/* 2. RTU-osio: kenttäkaappi hieman ylemmäs */
.services-page .section:nth-of-type(3) .media-card.cover img{
  object-position:center 40% !important;
}

/* 3. Suojaus/koestus: contain-kuvat hieman pienemmällä paddingilla */
.services-page .section:nth-of-type(4) .media-card.contain{
  padding:14px !important;
}

.services-page .section:nth-of-type(4) .media-card.contain img{
  height:240px !important;
}

/* 4. Muuntajat ja komponentit:
   yläkuva näyttää enemmän itse muuntajaa,
   alakuva keskitetään työtilanteeseen */
.services-page .section:nth-of-type(5) .media-card.cover:first-child img{
  height:300px !important;
  object-position:center 34% !important;
}

.services-page .section:nth-of-type(5) .media-card.cover:last-child img{
  height:260px !important;
  object-position:center 44% !important;
}

@media (max-width:1180px){
  .services-page .section .media-card.cover img{
    height:300px !important;
  }

  .services-page .section .media-card.contain img{
    height:260px !important;
  }

  .services-page .section:nth-of-type(5) .media-card.cover:first-child img{
    height:320px !important;
  }
}

@media (max-width:720px){
  .services-page .section .media-card{
    border-radius:22px !important;
  }

  .services-page .section .media-card.cover img{
    height:220px !important;
  }

  .services-page .section .media-card.contain{
    padding:12px !important;
  }

  .services-page .section .media-card.contain img{
    height:200px !important;
  }

  .services-page .section:nth-of-type(5) .media-card.cover:first-child img{
    height:230px !important;
  }

  .services-page .section:nth-of-type(5) .media-card.cover:last-child img{
    height:210px !important;
  }
}
/* ---------------------------------------------------------
   v6.6 company bios
--------------------------------------------------------- */

.people-card .people-links{
  display:none !important;
}

.people-bio{
  margin-top:12px;
  color:#445d74;
  line-height:1.82;
  font-size:1rem;
}

.people-bio p{
  margin:0 0 14px;
}

.people-bio p:last-child{
  margin-bottom:0;
}

@media (max-width:720px){
  .people-bio{
    font-size:.98rem;
    line-height:1.74;
  }
}
/* ---------------------------------------------------------
   v6.7 cyber card
--------------------------------------------------------- */

.company-cards{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.company-cards .card-icon img{
  width:30px !important;
  height:30px !important;
  object-fit:contain !important;
  display:block !important;
}

.company-cards .card.bg-transformer .card-icon img,
.company-cards .card.bg-testing .card-icon img{
  width:33px !important;
  height:33px !important;
}

.company-cards .card.bg-cyber::before{
  background-image:url("../images/hero-substation.jpg") !important;
}

@media (max-width:1280px){
  .company-cards{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:720px){
  .company-cards{
    grid-template-columns:1fr !important;
  }
}
.nowrap{
  white-space:nowrap;
}

@media (max-width:720px){
  .nowrap{
    white-space:normal;
  }
}
/* ---------------------------------------------------------
   v7.2 home hero alignment + PV wording pass
--------------------------------------------------------- */

.hero .hero-grid{
  align-items:center !important;
}

.hero .hero-copy{
  align-self:center !important;
}

.hero .hero-card{
  align-self:center !important;
}

.hero .hero-figure{
  margin:0 !important;
}

.hero .hero-figure img{
  width:100% !important;
  height:430px !important;
  object-fit:cover !important;
  object-position:center 42% !important;
  display:block !important;
}

@media (max-width:1180px){
  .hero .hero-figure img{
    height:380px !important;
    object-position:center 46% !important;
  }
}

@media (max-width:720px){
  .hero .hero-figure img{
    height:300px !important;
    object-position:center 50% !important;
  }
}
.hero-grid-single{
  grid-template-columns:minmax(0, 760px) !important;
  justify-content:start !important;
}

.hero-grid-single .hero-copy{
  max-width:760px !important;
}

@media (max-width:1180px){
  .hero-grid-single{
    grid-template-columns:1fr !important;
  }
}
.hero-grid-single{
  grid-template-columns:minmax(0, 1120px) !important;
  justify-content:start !important;
}

.hero-grid-single .hero-copy{
  max-width:1120px !important;
}

.hero-grid-single .hero-copy h1{
  max-width:16ch !important;
  font-size:clamp(4.8rem, 9vw, 7.4rem) !important;
  line-height:.94 !important;
  letter-spacing:-.055em !important;
}

.hero-grid-single .hero-copy .lead{
  max-width:860px !important;
}

@media (max-width:1180px){
  .hero-grid-single{
    grid-template-columns:1fr !important;
  }

  .hero-grid-single .hero-copy{
    max-width:920px !important;
  }

  .hero-grid-single .hero-copy h1{
    max-width:14ch !important;
    font-size:clamp(4rem, 8vw, 6rem) !important;
  }
}

@media (max-width:720px){
  .hero-grid-single .hero-copy h1{
    max-width:100% !important;
    font-size:clamp(2.9rem, 11vw, 4.5rem) !important;
    line-height:.96 !important;
  }

  .hero-grid-single .hero-copy .lead{
    max-width:100% !important;
  }
}
 /* ---------------------------------------------------------
    v7.5 home desktop width fix
 --------------------------------------------------------- */

.hero-grid-single{
  display:grid !important;
  grid-template-columns:minmax(0, 1180px) !important;
  justify-content:start !important;
}

.hero-grid-single .hero-copy{
  width:100% !important;
  max-width:1180px !important;
}

.hero-grid-single .hero-copy h1{
  max-width:1120px !important;
  width:100% !important;
  font-size:clamp(4.2rem, 7vw, 6.4rem) !important;
  line-height:.94 !important;
  letter-spacing:-.055em !important;
  text-wrap:balance !important;
}

.hero-grid-single .hero-copy .lead{
  max-width:760px !important;
}

@media (min-width:1181px){
  .hero-grid-single .hero-copy h1{
    max-width:1200px !important;
  }
}

@media (max-width:1180px){
  .hero-grid-single{
    grid-template-columns:1fr !important;
  }

  .hero-grid-single .hero-copy{
    max-width:920px !important;
  }

  .hero-grid-single .hero-copy h1{
    max-width:14ch !important;
    font-size:clamp(4rem, 8vw, 6rem) !important;
  }
}

@media (max-width:720px){
  .hero-grid-single .hero-copy h1{
    max-width:100% !important;
    font-size:clamp(2.9rem, 11vw, 4.5rem) !important;
    line-height:.96 !important;
    text-wrap:pretty !important;
  }

  .hero-grid-single .hero-copy .lead{
    max-width:100% !important;
  }
}
.home-hero-title{
  max-width: 13ch !important;
  width: 100% !important;
  font-size: clamp(4rem, 6.2vw, 6.2rem) !important;
  line-height: 0.94 !important;
  letter-spacing: -0.055em !important;
  text-wrap: initial !important;
}

.home-hero-title br{
  display: block;
}

.hero-grid-single .hero-copy{
  max-width: 980px !important;
}

.hero-grid-single{
  grid-template-columns: minmax(0, 980px) !important;
  justify-content: start !important;
}

@media (max-width: 1180px){
  .home-hero-title{
    max-width: 11ch !important;
    font-size: clamp(3.4rem, 8vw, 5.2rem) !important;
    line-height: 0.95 !important;
  }

  .hero-grid-single,
  .hero-grid-single .hero-copy{
    max-width: 100% !important;
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px){
  .home-hero-title{
    max-width: 100% !important;
    font-size: clamp(2.8rem, 11vw, 4.4rem) !important;
    line-height: 0.96 !important;
  }

  .home-hero-title br{
    display: none;
  }
}
/* ---------------------------------------------------------
   v7.7 home hero hard fix
--------------------------------------------------------- */

.hero-home{
  padding:48px 0 24px !important;
  background:
    radial-gradient(circle at top left, rgba(225,47,121,.06), transparent 26%),
    linear-gradient(90deg, rgba(247,242,248,.92) 0%, rgba(237,242,250,.96) 100%) !important;
}

.hero-home .container{
  width:min(100% - 48px, 1280px) !important;
}

.hero-home-copy{
  max-width:1120px !important;
}

.hero-home .eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  margin-bottom:18px !important;
}

.hero-home-title{
  margin:0 0 24px !important;
  color:#102740 !important;
  letter-spacing:-0.055em !important;
}

.hero-home-title .desktop-lines{
  display:block !important;
  max-width:1100px !important;
  font-size:clamp(4.25rem, 6.15vw, 6.2rem) !important;
  line-height:0.94 !important;
  font-weight:800 !important;
}

.hero-home-title .mobile-lines{
  display:none !important;
}

.hero-home .lead{
  max-width:760px !important;
  font-size:1.15rem !important;
  line-height:1.78 !important;
  color:#445d74 !important;
  margin:0 0 28px !important;
}

.hero-home .hero-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:14px !important;
  margin-bottom:20px !important;
}

.hero-home .tag-row{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
}

.hero-home .tag{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

@media (max-width:1180px){
  .hero-home .container{
    width:min(100% - 32px, 1180px) !important;
  }

  .hero-home-copy{
    max-width:980px !important;
  }

  .hero-home-title .desktop-lines{
    max-width:980px !important;
    font-size:clamp(3.7rem, 7vw, 5.2rem) !important;
    line-height:0.95 !important;
  }

  .hero-home .lead{
    max-width:700px !important;
  }
}

@media (max-width:720px){
  .hero-home{
    padding:28px 0 18px !important;
  }

  .hero-home .container{
    width:min(100% - 12px, 760px) !important;
  }

  .hero-home-copy{
    max-width:100% !important;
  }

  .hero-home-title{
    margin-bottom:18px !important;
  }

  .hero-home-title .desktop-lines{
    display:none !important;
  }

  .hero-home-title .mobile-lines{
    display:block !important;
    font-size:clamp(2.6rem, 10.6vw, 4rem) !important;
    line-height:0.98 !important;
    font-weight:800 !important;
    max-width:100% !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  .hero-home .lead{
    max-width:100% !important;
    font-size:1.02rem !important;
    line-height:1.72 !important;
    margin-bottom:22px !important;
  }

  .hero-home .hero-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  .hero-home .hero-actions .button{
    width:100% !important;
  }

  .hero-home .tag-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }
}
/* ---------------------------------------------------------
   v7.8 home heading polish
--------------------------------------------------------- */

.hero-home-copy{
  max-width:1180px !important;
}

.hero-home-title{
  margin:0 0 24px !important;
  letter-spacing:-0.055em !important;
  color:#102740 !important;
}

.hero-title-desktop,
.hero-title-tablet,
.hero-title-mobile{
  font-weight:800 !important;
}

.hero-title-desktop{
  display:block !important;
  max-width:1180px !important;
  font-size:clamp(4.5rem, 5.9vw, 6.2rem) !important;
  line-height:0.94 !important;
}

.hero-title-tablet{
  display:none !important;
}

.hero-title-mobile{
  display:none !important;
}

.hero-home .lead{
  max-width:780px !important;
}

@media (max-width:1380px){
  .hero-title-desktop{
    font-size:clamp(4rem, 5.6vw, 5.4rem) !important;
    max-width:1000px !important;
  }
}

@media (max-width:1180px){
  .hero-title-desktop{
    display:none !important;
  }

  .hero-title-tablet{
    display:block !important;
    max-width:900px !important;
    font-size:clamp(3.35rem, 7vw, 4.8rem) !important;
    line-height:0.95 !important;
  }

  .hero-home .lead{
    max-width:720px !important;
  }
}

@media (max-width:720px){
  .hero-title-tablet{
    display:none !important;
  }

  .hero-title-mobile{
    display:block !important;
    max-width:100% !important;
    font-size:clamp(2.55rem, 10.4vw, 3.9rem) !important;
    line-height:0.98 !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  .hero-home .lead{
    max-width:100% !important;
  }
}
/* ---------------------------------------------------------
   v9 publish prep
--------------------------------------------------------- */

.contact-hero-single .hero-grid{
  grid-template-columns:minmax(0, 860px) !important;
  justify-content:start !important;
  align-items:center !important;
}

.contact-hero-single .hero-copy{
  max-width:860px !important;
}

.contact-page .contact-stack{
  margin-top:8px !important;
}

.footer-note{
  opacity:.92 !important;
}

@media (max-width:1180px){
  .contact-hero-single .hero-grid{
    grid-template-columns:1fr !important;
  }

  .contact-hero-single .hero-copy{
    max-width:100% !important;
  }
}