@font-face {
  font-family: Barlow;
  src: url("/assets/brand/Barlow-Regular.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Barlow;
  src: url("/assets/brand/Barlow-SemiBold.ttf") format("truetype");
  font-weight: 500 700;
  font-display: swap;
}
@font-face {
  font-family: Barlow;
  src: url("/assets/brand/Barlow-ExtraBold.ttf") format("truetype");
  font-weight: 800 900;
  font-display: swap;
}
:root {
  --p-bg: #fdfdf1; --p-surface: #f3f2e7; --p-ink: #2d3047; --p-muted: #50566b;
  --p-accent: #007dba; --p-accent-ink: #ffffff; --p-action: #006ca3; --p-action-ink: #ffffff;
  --p-inv-bg: #2d3047; --p-inv-surface: #393c52; --p-inv-ink: #fdfdf1; --p-inv-muted: #aeafb2;
  --p-inv-accent: #fdfdf1; --p-inv-accent-ink: #2d3047; --p-inv-action: #fdfdf1; --p-inv-action-ink: #2d3047;
  --font-display: Barlow, system-ui, sans-serif;
  --font-text: Barlow, system-ui, sans-serif;
  --display-weight: 800;
  --display-tracking: -.034em;
  --display-tracking-xl: -.046em;
  --hat-yellow: #ffc629;
  --deep-blue: #07537b;
  --nav: 80px;
  --gut: clamp(24px, 4.45vw, 72px);
  --head-gap: 34px;
}
body { font-size: 17px; }
.nav { border-bottom: 1px solid color-mix(in srgb, var(--p-ink) 14%, transparent); }
.nav__logo img { height: 50px; }
.nav__logo:hover img { transform: none !important; }
.nav__link { font-size: 16px; font-weight: 600; }
.nav__item .nav__link[aria-current="page"] { color: var(--deep-blue); text-decoration: underline; text-underline-offset: .35em; }
.nav .btn { min-height: 46px; }
.nav__actions .btn { gap: 13px; }
.btn { font-weight: 600; }
.btn--primary { white-space: nowrap; }
.nav__mobile-quote { display: none; }
.hero--photo { background: #b9aa8f; }
.hero--photo > .hero__bg { --ly-pos: 63% 49%; --ly-pos-phone: 65% 43%; }
.hero--photo:not([data-box="none"]) .hero__text {
  width: min(47%, 620px);
  padding: clamp(32px, 3.7vw, 57px);
  border-radius: 8px;
}
.hero--photo h1 { font-size: clamp(47px, 5.15vw, 76px); line-height: .98; max-width: 100%; text-wrap: balance; }
.hero--photo .hero__lead { max-width: 35ch; }
.hero__kicker { color: var(--deep-blue); font-weight: 700; font-size: 15px; letter-spacing: .055em; }
.hero__kicker .dot { background: var(--hat-yellow); width: 12px; height: 12px; }
.hero .btn-row { gap: 12px 20px; }
.hero .btn--primary { min-height: 52px; }
.section-head h2, .closing h2 { font-size: clamp(43px, 5.1vw, 74px); line-height: .98; }
.section-head p { margin-top: 13px; }
.service-section .section-head { display: flex; justify-content: space-between; align-items: end; gap: 18px; max-width: none; }
.service-section .section-head .link { flex-shrink: 0; }
.service-deck { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gutter); }
.service-tile {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  align-content: stretch;
  padding: 0;
  gap: 0;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  overflow: clip;
  color: var(--p-ink);
  text-decoration: none;
}
.service-tile:focus-visible { outline-offset: 4px; }
.service-tile .tile__media { display: block; position: relative; overflow: clip; min-height: 200px; margin: 0; border-radius: 0; aspect-ratio: auto; }
.service-tile .tile__media img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.service-tile .tile__body {
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 22px 24px 24px;
  background: var(--p-bg);
  min-height: 107px;
}
.service-tile h3 { font-size: clamp(25px, 2.45vw, 36px); line-height: 1; letter-spacing: -.027em; }
.tile-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tile-title svg { flex: none; color: var(--deep-blue); width: 20px; height: 20px; }
.service-tile p { color: var(--p-muted); }
.commercial-section { background: var(--p-surface); }
main > .section > .wrap.split-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--gutter); align-items: start; align-content: stretch; }
.split-layout .section-head { max-width: 470px; margin-bottom: 32px; }
.split-layout .photo-frame { position: relative; height: auto; min-height: 320px; align-self: stretch; margin: 0; border-radius: 8px; overflow: clip; }
.photo-frame img { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; }
.commercial-section .photo-frame img { object-position: center 45%; }
.commercial-section .section-head h2 { max-width: 10ch; }
.scope-list { list-style: none; margin: 0 0 30px; padding: 0; max-width: 365px; }
.scope-list li { padding: 10px 0; border-top: 1px solid var(--line-strong); font-weight: 600; }
.scope-list li:last-child { border-bottom: 1px solid var(--line-strong); }
.about-section { background: var(--hat-yellow); --bg: var(--hat-yellow); --accent: var(--deep-blue); }
main > .about-section > .wrap.split-layout { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.about-section .section-head { max-width: none; margin-bottom: 22px; }
.about-section .mo-wh__text { font-size: clamp(30px, 3.2vw, 48px); line-height: 1.12; max-width: 22ch; margin-bottom: 24px; font-weight: 600; }
.about-section .mo-wh .mo-w { color: color-mix(in srgb, var(--ink) 80%, var(--bg)); }
.about-section .mo-wh .mo-w.is-on { color: var(--ink); }
.about-section .mo-wh strong .mo-w.is-on { color: var(--accent); }
.about-section .photo-frame img { object-fit: contain; object-position: center bottom; }
.about-section .link { color: var(--p-ink); }
.closing { background: var(--deep-blue); color: var(--p-bg); --ink: var(--p-bg); --muted: #e5edf3; --line: #ffffff59; --line-strong: #ffffff88; --action: var(--hat-yellow); --action-ink: var(--p-ink); }
.closing__cta .section-head h2 { max-width: 16ch; }
.closing .nav__logo img { height: 72px; }
.closing .footer__lede { margin-top: 14px; font-weight: 400; }
.closing .footer__col h3 { color: var(--hat-yellow); font-weight: 700; font-size: 16px; }
.closing .footer__col a:hover { color: var(--hat-yellow); }
.closing .footer__legal { border-color: var(--line); color: var(--p-bg); }
.phone-line { font-size: 16px; }
.small-arrow { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
a.skip:focus, a.skip-link:focus { z-index: 200; }

@media (min-width: 1024px) {
  .home-page .hero > .wrap > .hero-text { justify-content: center; }
  .home-page .service-section, .home-page .commercial-section, .home-page .about-section { --padt: clamp(90px, 12svh, 120px); --padb: clamp(52px, 8svh, 76px); }
}
@media (max-width: 1023px) {
  :root { --nav: 64px; }
  .nav__logo img { height: 42px; }
  .hero--photo:not([data-box="none"]) .hero__text { width: 100%; padding: 0; }
  .hero--photo { --photo: min(46svh, 58vw); background: var(--p-bg); }
  .hero--photo h1 { font-size: clamp(46px, 7.4vw, 76px); max-width: 13ch; }
  .hero--photo .hero__lead { font-size: 19px; max-width: 37ch; }
  .nav .nav__mobile-quote { display: inline-flex; margin-left: auto; }
  .split-layout { align-items: stretch; }
  .split-layout .photo-frame { min-height: 440px; }
  .home-page .service-deck { min-height: 380px; }

}
@media (max-width: 639px) {
  :root { --gut: 24px; --nav: 64px; --padt: 86px; --padb: 42px; --hgap: 25px; --head-gap: 22px; }
  .nav__logo img { height: 40px; }
  .nav .nav__mobile-quote { min-height: 44px; padding-inline: 13px; }
  .nav .nav__mobile-quote svg { display: none; }
  .hero--photo { --photo: min(40svh, 83vw); }
  .hero--photo h1 { font-size: clamp(42px, 12.5vw, 54px); max-width: 13ch; }
  .hero--photo .hero__lead { font-size: 17px; }
  .hero__text > * + * { margin-top: 15px; }
  .hero__text > .btn-row { margin-top: 21px; }
  .hero .btn-row { gap: 7px; }
  .hero .btn-row .btn { width: 100%; justify-content: space-between; }
  .service-section .section-head { align-items: start; flex-direction: column; gap: 4px; }
  .service-deck { grid-template-columns: minmax(0, 1fr); }
  .service-tile { grid-template-rows: auto auto; }
  .service-tile .tile__media { min-height: 0; aspect-ratio: 2.16; }
  .service-tile .tile__body { min-height: 0; padding: 13px 15px 15px; }
  .service-tile h3 { font-size: 27px; }
  .service-tile p { font-size: 16px; line-height: 1.25; }
  main > .section > .wrap.split-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; align-content: start; }
  .split-layout .section-head { margin-bottom: 15px; }
  .split-layout .photo-frame { min-height: 0; height: auto; aspect-ratio: 1.35; }
  .about-section .photo-frame { aspect-ratio: 1.12; }
  .scope-list { margin-bottom: 17px; }
  .scope-list li { padding: 6px 0; }
  .about-section .mo-wh__text { margin-bottom: 13px; }
  .closing .nav__logo img { height: 53px; }
}
@media (max-width: 350px) {
  :root { --gut: 19px; }
  .hero--photo { --photo: min(33svh, 73vw); }
  .hero--photo h1 { font-size: 40px; }
}

.detail-intro { padding: calc(var(--nav) + clamp(46px, 6.7vw, 96px)) 0 clamp(46px, 6vw, 88px); background: var(--p-surface); }
.detail-intro .wrap { display: grid; align-items: center; }
.detail-intro--photo .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 72px); }
.detail-heading { max-width: 850px; }
.detail-heading h1 { font-size: clamp(41px, 5.6vw, 82px); line-height: 1; text-wrap: balance; }
.detail-heading > p { max-width: 47ch; margin-top: 18px; font-size: clamp(18px, 1.7vw, 24px); }
.detail-heading .btn-row { margin-top: 25px; gap: 12px 18px; }
.detail-intro .photo-frame { position: relative; overflow: clip; border-radius: 8px; margin: 0; min-height: 270px; aspect-ratio: 1.46; }
.detail-intro .photo-frame:has(img[data-subject="Bryan and Michelle"]) img { object-fit: contain; }
.detail-content { padding-block: clamp(38px, 6vw, 86px); }
.detail-content .wrap > :not(.detail-gallery) { max-width: 880px; }
.detail-content .wrap > * + * { margin-top: 20px; }
.detail-content .wrap h2 { font-size: clamp(29px, 3.3vw, 46px); line-height: 1.04; margin-top: 35px; }
.detail-content .wrap h2:first-child { margin-top: 0; }
.detail-content .wrap :is(h3, h4) { font-size: clamp(22px, 2.3vw, 33px); line-height: 1.1; margin-block: 24px 10px; }
.detail-content .wrap :is(p, li, summary, td, th) { line-height: 1.55; font-size: 18px; overflow-wrap: break-word; }
.detail-content .wrap :is(ul, ol):not(.detail-links) { padding-left: 24px; }
.detail-content .wrap li + li { margin-top: 6px; }
.detail-content .wrap a:not(.link, .btn) { color: var(--deep-blue); text-decoration: underline; text-underline-offset: .16em; }
.detail-content .wrap a:hover { color: var(--deep-blue); }
.detail-content .wrap p > .link { margin-right: 20px; }
.detail-links { list-style: none; padding: 0; margin-bottom: 28px; }
.detail-links li { border-top: 1px solid var(--line); margin-top: 0 !important; }
.detail-links li:last-child { border-bottom: 1px solid var(--line); }
.detail-links .link { display: flex; justify-content: space-between; align-items: center; min-height: 48px; }
.detail-content .questions details, .detail-content .wrap > details { border-bottom: 1px solid var(--line); padding-block: 14px; }
.detail-content summary { cursor: pointer; font-weight: 600; min-height: 44px; }
.detail-content details p { margin-top: 10px; }
.detail-content .table-scroll { overflow-x: auto; max-width: 100%; }
.detail-content table { width: 100%; border-collapse: collapse; }
.detail-content :is(th, td) { padding: 8px 11px; border-bottom: 1px solid var(--line); text-align: left; }
.detail-content blockquote { border-left: 4px solid var(--hat-yellow); padding-left: 16px; }
.detail-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.detail-gallery figure { margin: 0; overflow: clip; border-radius: 8px; }
.detail-gallery img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
@media (max-width: 700px) {
  .detail-intro--photo .wrap, .detail-gallery { grid-template-columns: minmax(0, 1fr); }
  .detail-intro .photo-frame { min-height: 0; aspect-ratio: 1.5; }
}
