:root {
  --navy:#001d32;
  --gold:#b99a57;
  --lightgold:#d3b46b;
  --text:#102536;
  --line:#e9e9e9
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:auto;
  scroll-padding-top:20px
}
body {
  margin:0;
  background:#fff;
  color:var(--text);
  font-family:'Roboto',Arial,sans-serif;
  font-size:clamp(14px,1.58vw,20px);
  line-height:1.4
}
body>header,body>main,body>footer {
  max-width:1440px;
  margin-inline:auto
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit;
  color:inherit;
  cursor:pointer
}
button,a {
  -webkit-tap-highlight-color:transparent
}
button {
  border:0;
  background:none;
  padding:0
}
a:focus-visible,button:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:5px
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-family:'Roboto Condensed','Arial Narrow',Arial,sans-serif;
  font-weight:700;
  text-transform:uppercase;
  line-height:1.03
}
h1 {
  font-family:'Roboto',Arial,sans-serif;
  font-size:clamp(32px,4.3vw,62px);
  line-height:1.02;
  letter-spacing:-.02em
}
h2 {
  font-size:clamp(30px,3.8vw,55px);
  letter-spacing:-.025em
}
h1 span,h2 span {
  color:var(--gold)
}
.button {
  background:linear-gradient(110deg,#b08e47,#cfad65);
  color:white;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:15px 30px;
  border-radius:2px;
  font-family:'Roboto',Arial,sans-serif;
  font-weight:500;
  font-size:clamp(13px,1.4vw,19px);
  line-height:1.15;
  text-transform:none;
  white-space:nowrap
}
.button:hover {
  filter:brightness(1.07)
}
.eyebrow {
  display:flex;
  gap:16px;
  align-items:center;
  text-transform:uppercase;
  letter-spacing:.045em;
  font-size:clamp(11px,1.3vw,17px);
  font-weight:600;
  margin-bottom:16px
}
.eyebrow:before {
  content:'';
  display:block;
  width:40px;
  height:2px;
  background:var(--gold);
  flex:none
}
.art {
  position:relative;
  overflow:hidden;
  display:block
}
.art img {
  position:absolute;
  max-width:none;
  pointer-events:none
}
.site-header {
  display:flex;
  align-items:center;
  padding:15px 2.8%;
  gap:2.2%;
  height:clamp(96px,9.7vw,139px)
}
.brand {
  width:30%;
  flex-shrink:0;
  aspect-ratio:156/33
}
.header-right {
  flex:1
}
.tagline {
  text-align:right;
  font-size:clamp(10px,1.05vw,15px);
  font-weight:600;
  margin-bottom:16px
}
nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:clamp(10px,1vw,14px);
  font-weight:600;
  white-space:nowrap
}
nav .active {
  position:relative;
  color:#a58a4e
}
nav .active:after {
  content:'';
  height:2px;
  position:absolute;
  bottom:-12px;
  background:var(--gold);
  left:0;
  right:0
}
.small {
  font-size:clamp(9px,.92vw,13px);
  padding:14px 13px;
  gap:4px
}
.login {
  background:var(--navy);
  color:#fff;
  padding:14px 15px;
  border-radius:3px;
  font-size:clamp(9px,.95vw,13px)
}
.login span {
  margin-right:8px
}
.menu-toggle {
  display:none
}
.hero {
  position:relative;
  aspect-ratio:535/196;
  background:var(--navy) url('assets/hero.png') center/cover no-repeat;
  color:white;
  padding:6.4% 5.4% 3.5%;
  isolation:isolate
}
.hero-copy {
  position:relative;
  z-index:1
}
.hero .eyebrow {
  font-size:clamp(8px,.94vw,13px);
  color:#cdd3d9;
  letter-spacing:.12em;
  margin-bottom:20px;
  gap:10px
}
.hero .eyebrow:before {
  width:42px
}
.hero p:not(.eyebrow) {
  font-size:clamp(13px,1.6vw,22px);
  line-height:1.35;
  margin-top:17px
}
.hero-actions {
  display:flex;
  gap:24px;
  margin-top:28px
}
.outline {
  background:#001b2b66;
  border:1px solid white;
  padding:14px 28px
}
.play-small {
  border:1px solid white;
  width:24px;
  height:24px;
  border-radius:50%;
  font-size:11px;
  display:grid;
  place-items:center
}
.hero-script {
  position:absolute;
  left:57.5%;
  top:34%;
  font-family:'Caveat',cursive;
  font-size:clamp(25px,4.2vw,60px);
  line-height:.87;
  transform:rotate(-10deg);
  font-weight:400
}
.hero-script span {
  height:2px;
  width:95%;
  background:var(--gold);
  display:block;
  margin-top:10px;
  transform:rotate(-10deg)
}
.services {
  display:grid;
  grid-template-columns:repeat(9,1fr);
  gap:9px;
  padding:2.6% 2%;
  background:#fdfdfd
}
.service {
  border:1px solid #f0f0ef;
  padding:10px 3px;
  text-align:center;
  min-height:140px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  font-family:'Roboto Condensed',Arial,sans-serif;
  font-weight:600;
  font-size:clamp(11px,1.2vw,17px);
  line-height:1.15
}
.icon {
  display:inline-flex;
  color:var(--gold);
  width:53px;
  height:53px;
  flex-shrink:0
}
.icon svg {
  width:100%;
  height:100%;
  stroke:currentColor;
  stroke-width:1.35;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round
}
.section-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6%;
  align-items:center
}
.mission {
  padding:3.4% 4.5% 2.6%;
  gap:6.5%
}
.mission-copy>p:not(.eyebrow),.solutions .section-grid>div>p:not(.eyebrow) {
  margin:16px 0 22px;
  line-height:1.4
}
.story-poster {
  width:100%;
  aspect-ratio:229/182
}
.stats {
  display:grid;
  grid-template-columns:.9fr .9fr 1.2fr;
  margin-top:32px;
  gap:14px
}
.stats>div {
  display:flex;
  flex-direction:column;
  line-height:1.15
}
.stats>div+div {
  border-left:1px solid #ddd;
  padding-left:20px
}
.stats strong {
  font-family:'Roboto Condensed',Arial,sans-serif;
  font-size:clamp(22px,2.8vw,38px)
}
.stats span {
  font-size:clamp(12px,1.5vw,20px)
}
.difference {
  background:var(--navy);
  color:white;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:5.5% 4.5%;
  gap:20px
}
.difference .eyebrow {
  font-size:clamp(8px,.88vw,12px);
  margin:0;
  gap:14px;
  white-space:nowrap
}
.difference>div {
  display:flex;
  align-items:center;
  gap:13px;
  font-size:clamp(12px,1.5vw,20px);
  line-height:1.3
}
.difference>div+div {
  border-left:1px solid #54616b;
  padding-left:26px
}
.testimonials {
  display:grid;
  grid-template-columns:2.2fr 1fr;
  gap:6%;
  padding:2.5% 4.5% 2%
}
.testimonial-art {
  width:100%;
  aspect-ratio:141/84
}
.quote-row {
  display:flex;
  align-items:center;
  gap:25px
}
.round {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid currentColor;
  border-radius:50%;
  width:35px;
  height:35px;
  font-size:27px;
  line-height:1;
  flex-shrink:0
}
blockquote {
  font-size:clamp(13px,1.6vw,22px);
  margin:8px 0 0;
  line-height:1.4
}
cite {
  display:block;
  font-size:.88em;
  font-style:normal;
  font-weight:700;
  text-transform:uppercase;
  margin-top:10px
}
.solutions {
  padding:0 4% 3.4%
}
.solutions .section-grid {
  gap:5%;
  grid-template-columns:1fr 1fr
}
.solutions .section-grid>div:first-child {
  padding-left:5px
}
.family-art {
  width:100%;
  aspect-ratio:241/145
}
.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2%;
  margin-top:24px
}
.cards article {
  box-shadow:0 1px 7px #00000013;
  border:1px solid #eee;
  border-radius:2px;
  overflow:hidden
}
.card-art {
  width:100%;
  aspect-ratio:2/1
}
.card-copy {
  padding:21px 24px
}
.card-copy h3 {
  font-size:clamp(15px,1.65vw,23px);
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap
}
.card-copy h3:before {
  content:'';
  width:24px;
  height:1px;
  background:var(--gold);
  flex:none
}
.card-copy p {
  margin:13px 0 21px;
  font-size:clamp(13px,1.6vw,22px);
  line-height:1.4
}
.card-copy button,.card-copy .text-link {
  font-size:clamp(13px,1.6vw,21px);
  font-weight:600
}
.consultation {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:3.3% 7% 3.3% 4.5%;
  gap:35px;
  background:#e7f0f6
}
.consultation:before {
  content:'';
  position:absolute;
  inset:0;
  background-image:url('assets/consultation.png');
  background-size:cover;
  background-position:center;
  z-index:-1
}
.consultation .eyebrow {
  margin-bottom:16px
}
.consultation>div>h2,.consultation>div>p:not(.eyebrow) {
  margin-left:53px
}
.consultation>div>p:not(.eyebrow) {
  margin-top:17px;
  font-size:clamp(13px,1.6vw,21px)
}
.consultation .button {
  padding:28px 30px
}
.consultation .button>span:first-child {
  font-size:25px
}
footer {
  background:var(--navy);
  color:#e8ecf0;
  padding:4% 4% 2.3%;
  font-size:clamp(12px,1.4vw,19px)
}
.footer-main {
  display:grid;
  grid-template-columns:1.65fr 1fr 1.03fr 1.4fr .9fr;
  gap:23px
}
.footer-logo {
  width:100%;
  aspect-ratio:125/27;
  margin-top:17px
}
.footer-column {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.5;
  padding-left:25px;
  border-left:1px solid #345064
}
.footer-column h3 {
  font-family:'Roboto',Arial,sans-serif;
  color:var(--gold);
  font-size:1em;
  text-transform:none;
  margin-bottom:9px;
  font-weight:600;
  white-space:nowrap
}
.footer-column button {
  text-align:left
}
.connect {
  padding-left:8px;
  border:0;
  gap:9px;
  white-space:nowrap
}
.connect h3 {
  margin-bottom:0
}
.connect>a {
  font-size:.92em
}
.connect>a>span {
  color:var(--gold);
  font-size:24px;
  vertical-align:middle;
  margin-right:10px
}
.socials {
  display:flex;
  gap:13px
}
.socials button {
  background:#e8ecf0;
  color:var(--navy);
  border-radius:50%;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  line-height:1;
  font-weight:bold;
  font-size:20px
}
.footer-script {
  width:100%;
  aspect-ratio:82/60;
  margin-top:18px
}
.footer-bottom {
  margin-top:37px;
  padding:20px 0 0;
  border-top:1px solid #234053;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:.88em
}
.footer-bottom>div {
  display:flex;
  align-items:center;
  gap:13px
}
.footer-bottom i {
  height:14px;
  width:1px;
  background:#47606f
}
.footer-bottom .round {
  font-size:20px;
  margin-left:15px
}
dialog {
  border:0;
  border-radius:4px;
  padding:34px;
  color:var(--text);
  width:min(90%,480px);
  box-shadow:0 16px 80px #0005
}
dialog::backdrop {
  background:#001d32b3
}
dialog h2 {
  font-size:30px;
  padding-right:20px
}
dialog p {
  margin:20px 0;
  font-size:17px
}
.close {
  position:absolute;
  right:15px;
  top:8px;
  font-size:30px
}
@media(min-width:1440px) {
  .site-header {
    padding-inline:40px
  }
  .hero {
    padding:92px 78px 50px
  }
  .services {
    padding:37px 29px
  }
  .mission {
    padding:49px 65px 37px
  }
  .difference {
    padding:79px 65px
  }
  .testimonials {
    padding:36px 65px 29px
  }
  .solutions {
    padding:0 58px 49px
  }
  .consultation {
    padding:47px 101px 47px 65px
  }
  footer {
    padding:58px 58px 33px
  }
}
@media(max-width:1000px) and (min-width:701px) {
  .site-header {
    padding-inline:2%;
    gap:2%;
    height:98px
  }
  .brand {
    width:28%
  }
  nav {
    gap:7px
  }
  nav .button {
    padding:10px 8px
  }
  .login {
    padding:10px 8px
  }
  .hero {
    padding-top:5%
  }
  .hero-actions {
    margin-top:19px;
    gap:14px
  }
  .hero .eyebrow {
    margin-bottom:13px
  }
  .button {
    padding:12px 20px
  }
  .services {
    gap:5px
  }
  .service {
    min-height:110px
  }
  .icon {
    width:40px;
    height:40px
  }
  .difference {
    gap:12px
  }
  .difference>div+div {
    padding-left:14px
  }
  .difference .eyebrow:before {
    width:24px
  }
  .difference>div {
    gap:8px
  }
  .card-copy {
    padding:15px 12px
  }
  .card-copy h3 {
    gap:5px
  }
  .card-copy h3:before {
    width:14px
  }
  .footer-main {
    gap:13px
  }
  .footer-column {
    padding-left:14px
  }
  .connect {
    padding-left:0
  }
  .socials {
    gap:8px
  }
  .socials button {
    width:23px;
    height:23px;
    font-size:15px
  }
  .consultation .button {
    padding:20px
  }
  .consultation {
    gap:15px
  }
  .consultation>div>h2,.consultation>div>p:not(.eyebrow) {
    margin-left:35px
  }
}
@media(max-width:700px) {
  body {
    font-size:16px
  }
  .site-header {
    height:auto;
    min-height:86px;
    padding:19px 5%;
    position:relative;
    flex-wrap:wrap
  }
  .brand {
    width:205px
  }
  .header-right {
    flex:1
  }
  .tagline {
    display:none
  }
  .menu-toggle {
    display:block;
    margin-left:auto;
    font-size:14px;
    border:1px solid #d4dce1;
    padding:8px 12px
  }
  nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:white;
    padding:20px;
    z-index:10;
    box-shadow:0 7px 10px #0002;
    font-size:15px;
    white-space:normal
  }
  nav.open {
    display:flex;
    flex-wrap:wrap;
    gap:22px
  }
  nav .small,nav .login {
    font-size:13px
  }
  .hero {
    aspect-ratio:auto;
    min-height:425px;
    padding:40px 6%;
    background-position:62% center
  }
  .hero:before {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#001d32e0,#001d3255);
    z-index:-1
  }
  h1 {
    font-size:34px
  }
  h2 {
    font-size:34px
  }
  .hero .eyebrow {
    font-size:9px;
    margin-bottom:25px
  }
  .hero p:not(.eyebrow) {
    font-size:15px;
    max-width:310px;
    margin-top:20px
  }
  .desktop-break {
    display:none
  }
  .hero-actions {
    gap:12px;
    flex-wrap:wrap;
    margin-top:27px
  }
  .button {
    font-size:13px;
    padding:14px 19px
  }
  .outline {
    padding:12px 16px
  }
  .hero-script {
    display:none
  }
  .services {
    grid-template-columns:repeat(3,1fr);
    padding:18px 5%;
    gap:8px
  }
  .service {
    font-size:13px;
    min-height:110px;
    gap:7px
  }
  .icon {
    width:40px;
    height:40px
  }
  .section-grid,.solutions .section-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .mission {
    padding:35px 6%
  }
  .eyebrow {
    font-size:12px;
    gap:12px
  }
  .eyebrow:before {
    width:30px
  }
  .mission-copy>p:not(.eyebrow),.solutions .section-grid>div>p:not(.eyebrow) {
    font-size:16px
  }
  .stats {
    margin-top:25px;
    gap:9px
  }
  .stats>div+div {
    padding-left:12px
  }
  .stats strong {
    font-size:27px
  }
  .stats span {
    font-size:13px
  }
  .difference {
    padding:27px 6%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px 15px
  }
  .difference .eyebrow {
    grid-column:1/-1;
    font-size:10px
  }
  .difference>div {
    font-size:14px;
    gap:12px
  }
  .difference>div+div {
    border:0;
    padding:0
  }
  .testimonials {
    grid-template-columns:1fr;
    padding:29px 6%;
    gap:20px
  }
  .quote-row {
    gap:14px
  }
  blockquote {
    font-size:15px
  }
  .round {
    width:27px;
    height:27px;
    font-size:21px
  }
  .testimonial-art {
    width:180px;
    margin:auto
  }
  .solutions {
    padding:0 6% 32px
  }
  .solutions .section-grid>div:first-child {
    padding-left:0
  }
  .cards {
    grid-template-columns:1fr;
    gap:22px;
    margin-top:25px
  }
  .card-copy {
    padding:21px
  }
  .card-copy h3 {
    font-size:20px
  }
  .card-copy p {
    font-size:16px;
    margin-bottom:18px
  }
  .card-copy button,.card-copy .text-link {
    font-size:15px
  }
  .consultation {
    padding:32px 6%;
    display:block
  }
  .consultation>div>h2,.consultation>div>p:not(.eyebrow) {
    margin-left:0
  }
  .consultation>div>p:not(.eyebrow) {
    font-size:15px
  }
  .consultation .button {
    margin-top:22px;
    padding:18px 22px
  }
  footer {
    padding:34px 6% 23px;
    font-size:14px
  }
  .footer-main {
    grid-template-columns:1fr 1fr;
    gap:25px
  }
  .footer-logo {
    width:200px;
    grid-column:1/-1;
    margin:0 0 5px
  }
  .footer-column {
    padding:0;
    border:0
  }
  .connect {
    grid-column:1/2;
    font-size:12px
  }
  .socials button {
    width:25px;
    height:25px;
    font-size:17px
  }
  .footer-script {
    width:125px;
    margin:auto
  }
  .footer-bottom {
    display:block;
    margin-top:27px;
    font-size:11px
  }
  .footer-bottom>div {
    margin-top:16px;
    gap:9px
  }
  .footer-bottom .round {
    margin-left:auto
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
}
/* Reference-matched, scalable artwork. Photograph text is rendered separately. */
.brand,.footer-logo {
  display:block;
  color:var(--navy)
}
.logo-svg {
  display:block;
  width:100%;
  height:auto;
  overflow:visible
}
.footer-logo {
  color:#f4f5f6;
  aspect-ratio:auto;
  align-self:start;
  min-width:0
}
.footer-main>* {
  min-width:0
}
.art img {
  position:static;
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:cover
}
.inline-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.15em;
  height:1.15em;
  vertical-align:middle;
  flex-shrink:0
}
.inline-icon svg,.socials svg {
  width:100%;
  height:100%;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  fill:none
}
nav a {
  display:inline-flex;
  align-items:center;
  gap:4px
}
.login {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px
}
.login span {
  margin-right:0
}
.script-caption {
  font-family:'Hurricane',cursive;
  font-weight:400;
  text-transform:none;
  letter-spacing:0
}
.hero-script {
  left:57.8%;
  top:34%;
  font-size:clamp(28px,4.3vw,62px);
  line-height:.94;
  transform:rotate(-9deg)
}
.hero-script>span {
  display:block;
  height:auto;
  width:auto;
  background:none;
  margin:0;
  transform:none
}
.hero-script>span:nth-child(even) {
  margin-left:10%
}
.hero-script:after,.family-art .script-caption:after,.footer-script:after {
  content:'';
  display:block;
  height:2px;
  background:var(--gold);
  width:88%;
  transform:rotate(-12deg);
  margin:8px 0 0 5%
}
.story-poster {
  isolation:isolate;
  text-align:left;
  color:white
}
.story-poster:after {
  content:'';
  position:absolute;
  inset:50% 0 0;
  background:linear-gradient(transparent,#00101fed);
  z-index:0
}
.poster-play {
  position:absolute;
  inset:39% auto auto 41%;
  display:grid;
  place-items:center;
  width:17%;
  aspect-ratio:1;
  border:2px solid #fff;
  border-radius:50%;
  z-index:1
}
.poster-play svg {
  width:55%;
  height:55%;
  margin-left:3%
}
.poster-title {
  position:absolute;
  left:5%;
  bottom:6%;
  z-index:1;
  font-family:'Roboto Condensed',Arial,sans-serif;
  font-size:clamp(19px,2.4vw,34px);
  line-height:1.02;
  text-transform:uppercase;
  font-weight:500
}
.poster-title strong {
  display:block;
  color:var(--lightgold);
  font-size:1.14em;
  line-height:1.05;
  font-weight:700
}
.poster-flourish {
  display:block;
  width:34%;
  height:8px;
  border-top:1px solid var(--gold);
  margin-bottom:10px;
  position:relative
}
.poster-flourish:before {
  content:'';
  position:absolute;
  left:0;
  top:-4px;
  width:6px;
  height:6px;
  border-left:1px solid var(--gold);
  border-top:1px solid var(--gold);
  transform:rotate(45deg);
  background:var(--navy)
}
.poster-link {
  position:absolute;
  right:5%;
  bottom:6%;
  z-index:1;
  font-size:clamp(12px,1.3vw,18px);
  font-weight:500
}
.testimonial-art {
  display:grid;
  place-items:center;
  background:url('assets/brush.svg') center/100% 100% no-repeat;
  aspect-ratio:141/84;
  width:100%
}
.testimonial-art p {
  font-size:clamp(19px,2.7vw,38px);
  line-height:1.08;
  text-align:center;
  color:#fff;
  transform:rotate(-5deg);
  padding:7% 4% 0 0
}
.solutions .section-grid>.family-art>.script-caption {
  position:absolute;
  top:17%;
  left:9%;
  margin:0;
  font-size:clamp(27px,4.4vw,63px);
  line-height:.87;
  color:#fff;
  transform:rotate(-9deg);
  text-shadow:0 1px 3px #0003
}
.family-art .script-caption:after {
  background:#fff;
  margin-top:9px;
  width:110%;
  height:1px
}
.footer-script {
  font-size:clamp(21px,2.9vw,40px);
  line-height:.94;
  transform:rotate(-11deg);
  white-space:nowrap;
  align-self:start;
  padding-top:12px;
  aspect-ratio:auto;
  color:white
}
.footer-script:after {
  margin-top:13px
}
.socials button {
  background:#e8ecf0;
  color:var(--navy)
}
.socials svg {
  width:100%;
  height:100%;
  padding:3px
}
.connect>a {
  display:flex;
  align-items:center;
  gap:12px
}
.connect>a>.inline-icon {
  font-size:1.5em;
  margin:0;
  width:1em;
  height:1em
}
.card-copy h3 {
  white-space:normal;
  font-size:clamp(10px,1.53vw,22px)
}
.consultation .button>.inline-icon {
  font-size:1.4em
}
@media(min-width:701px) {
  h1 {
    font-size:clamp(31px,4.22vw,60.7px);
    font-weight:700;
    letter-spacing:-.025em
  }
  h2 {
    font-size:clamp(27px,3.91vw,56.3px);
    letter-spacing:-.02em
  }
  body {
    font-size:clamp(13px,1.6vw,23px);
    line-height:1.4
  }
  .hero p:not(.eyebrow) {
    font-size:clamp(12px,1.53vw,22px);
    font-weight:400
  }
  .hero .eyebrow {
    font-size:clamp(7px,.85vw,12px);
    letter-spacing:.08em
  }
  .button {
    font-size:clamp(12px,1.35vw,19px)
  }
  .small {
    font-size:clamp(9px,.92vw,13px)
  }
  .eyebrow {
    font-family:'Roboto Condensed',Arial,sans-serif;
    font-size:clamp(10px,1.28vw,18px);
    font-weight:600
  }
  .service {
    font-size:clamp(10px,1.18vw,17px);
    line-height:1.35;
    min-height:0;
    padding:12px 3px;
    gap:10px
  }
  .services {
    padding-block:2.6% 3.4%
  }
  .mission {
    grid-template-columns:1.06fr 1fr;
    gap:5.5%;
    padding-top:2.8%
  }
  .mission-copy>p:not(.eyebrow) {
    font-size:clamp(12px,1.58vw,22px);
    line-height:1.45
  }
  .stats {
    margin-top:29px
  }
  .difference {
    padding-block:5%
  }
  .difference>div {
    font-size:clamp(11px,1.42vw,20px)
  }
  .testimonials {
    grid-template-columns:2.3fr 1fr;
    gap:6%;
    padding-top:2.4%;
    padding-bottom:2.1%
  }
  blockquote {
    font-size:clamp(12px,1.53vw,22px)
  }
  .solutions .section-grid {
    grid-template-columns:1fr 1.02fr;
    gap:5%
  }
  .solutions .section-grid>div>p:not(.eyebrow) {
    font-size:clamp(12px,1.6vw,23px)
  }
  .card-copy p {
    font-size:clamp(12px,1.58vw,22px)
  }
  .footer-main {
    grid-template-columns:1.65fr 1fr 1.1fr 1.5fr 1fr;
    gap:19px
  }
  footer {
    font-size:clamp(11px,1.35vw,19px)
  }
}
@media(max-width:700px) {
  .hero {
    background-position:right center
  }
  .hero-script {
    display:block;
    left:auto;
    right:6%;
    top:auto;
    bottom:7%;
    font-size:32px;
    line-height:.88
  }
  .poster-title {
    font-size:clamp(23px,5.7vw,37px)
  }
  .poster-link {
    font-size:clamp(11px,2.6vw,17px)
  }
  .testimonial-art {
    width:220px
  }
  .testimonial-art p {
    font-size:29px
  }
  .solutions .section-grid>.family-art>.script-caption {
    font-size:clamp(33px,8vw,51px)
  }
  .footer-script {
    font-size:29px;
    width:auto
  }
  .card-copy h3 {
    font-size:19px
  }
  .connect>a {
    gap:9px
  }
  .consultation .button>.inline-icon {
    font-size:1.4em
  }
}

/* Resources submenu: hover on desktop, keyboard focus, and visible mobile link. */
.nav-resources {position:relative}
.resource-submenu {display:none;position:absolute;top:100%;left:-14px;padding:18px 14px 12px;min-width:135px;background:white;box-shadow:0 8px 15px #001d3226;z-index:30;border-bottom:2px solid var(--gold)}
.nav-resources:hover .resource-submenu,.nav-resources:focus-within .resource-submenu {display:block}
.resource-submenu a {display:block;padding:8px;color:var(--navy)}
.resource-submenu a:hover {background:#f5f1e7}
@media(max-width:700px){
 .nav-resources {display:flex;align-items:center;gap:20px}
 .resource-submenu {display:block;position:static;padding:0;min-width:0;box-shadow:none;border:0}
 .resource-submenu a {padding:0;color:#80632d}
}

/* Supplied stacked company logo; preserve existing header and footer columns. */
.brand {aspect-ratio:auto;}
.company-logo {display:block;object-fit:contain;max-width:100%;height:auto;}
.brand .company-logo {width:auto;height:clamp(66px,7vw,105px);background:transparent;}
.footer-logo .company-logo {width:100%;max-width:240px;height:auto;}

/* Header navigation: gold underline and bold emphasis on hover or keyboard focus. */
.site-header #navigation a {position:relative;}
.site-header #navigation a::after {content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .16s ease;pointer-events:none;}
.site-header #navigation a:hover,.site-header #navigation a:focus-visible {font-weight:700;}
.site-header #navigation a:hover::after,.site-header #navigation a:focus-visible::after,.site-header #navigation a[aria-current="page"]::after {transform:scaleX(1);}
@media(prefers-reduced-motion:reduce){.site-header #navigation a::after{transition:none;}}
