@font-face { font-family: "CCO Palatino"; font-style: normal; font-weight: 400; src: local("Palatino Linotype"), local("PalatinoLinotype-Roman"), local("Palatino-Roman"), local("Palatino");
  size-adjust: 100.5%; ascent-override: 103.1%; descent-override: 32.7%; line-gap-override: 0%; }
@font-face { font-family: "CCO Palatino"; font-style: italic; font-weight: 400; src: local("Palatino Linotype Italic"), local("PalatinoLinotype-Italic"), local("Palatino-Italic"), local("Palatino Italic");
  size-adjust: 96.5%; ascent-override: 107.3%; descent-override: 34.1%; line-gap-override: 0%; }
@font-face { font-family: "CCO Palatino"; font-style: normal; font-weight: 700; src: local("Palatino Linotype Bold"), local("PalatinoLinotype-Bold"), local("Palatino-Bold"), local("Palatino Bold");
  size-adjust: 100.5%; ascent-override: 103.1%; descent-override: 32.7%; line-gap-override: 0%; }
@font-face { font-family: "CCO Georgia"; font-style: normal; font-weight: 400; src: local("Georgia");
  size-adjust: 101.6%; ascent-override: 102%; descent-override: 32.4%; line-gap-override: 0%; }
@font-face { font-family: "CCO Georgia"; font-style: italic; font-weight: 400; src: local("Georgia Italic"), local("Georgia-Italic");
  size-adjust: 85.8%; ascent-override: 120.8%; descent-override: 38.4%; line-gap-override: 0%; }
@font-face { font-family: "CCO Georgia"; font-style: normal; font-weight: 700; src: local("Georgia Bold"), local("Georgia-Bold");
  size-adjust: 101.6%; ascent-override: 102%; descent-override: 32.4%; line-gap-override: 0%; }
@font-face { font-family: "CCO Arial"; font-style: normal; font-weight: 400; src: local("Arial"), local("ArialMT");
  size-adjust: 101.4%; ascent-override: 93.9%; descent-override: 21%; line-gap-override: 2.8%; }
@font-face { font-family: "CCO Arial"; font-style: italic; font-weight: 400; src: local("Arial Italic"), local("Arial-ItalicMT");
  size-adjust: 100.6%; ascent-override: 95.1%; descent-override: 21.2%; line-gap-override: 2.8%; }
@font-face { font-family: "CCO Arial"; font-style: normal; font-weight: 700; src: local("Arial Bold"), local("Arial-BoldMT");
  size-adjust: 101.4%; ascent-override: 93.9%; descent-override: 21%; line-gap-override: 2.8%; }
:root {
  --serif: "Iowan Old Style", "iowan-old-style-bt", "CCO Palatino", "CCO Georgia", Georgia, serif;
  --sans: "Helvetica Neue", "nimbus-sans", Helvetica, "CCO Arial", Arial, sans-serif;
  --r7-serif: var(--serif);
}

:root {
  --r7-navy: #0d1a2c; --r7-navy-3: #091523; --r7-paper: #e9eef4; --r7-pale: #a8c8ed;
  --r7-muted: #526273; --r7-label: #395b85; --r7-rule-light: rgba(233,238,244,.2);
  --r7-on-dark: rgba(233,238,244,.82); --r7-ease: cubic-bezier(.22,1,.36,1);
    --r7-fast: .25s; --r7-move: .4s; --r7-reveal: .9s;
  --r7-ease-soft: cubic-bezier(.33,1,.68,1);      --r7-gutter: max(clamp(24px,6vw,102px), calc((100vw - 1720px) / 2));
}

.arrow svg, .circle svg { display: block; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.eyebrow { display: block; font-size: 11px; line-height: 1.5; letter-spacing: .14em; text-transform: uppercase; color: var(--r7-pale); }
.wash .eyebrow { color: var(--r7-label); }
.arrow { display: inline-flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 44px; padding: 8px 0; border-bottom: 1px solid currentColor; font-size: 13px; transition: color var(--r7-fast) ease; }
.arrow svg { transition: transform var(--r7-move) var(--r7-ease); }
.arrow:hover svg, .arrow:focus-visible svg { transform: translateX(5px); }
.wash .arrow:hover { color: #2f5fc4; }
.circle { display: grid; place-items: center; width: 50px; height: 50px; flex-shrink: 0; border: 1px solid currentColor; border-radius: 50%; transition: background var(--r7-fast) ease, color var(--r7-fast) ease; }
.r7-bar { position: relative; height: 100px; background: var(--r7-navy); color: #fff; }
@media (max-width: 650px) { .r7-bar { height: 84px; } }
.wash { position: relative; background-color: var(--r7-paper); color: var(--r7-navy); background-image: radial-gradient(ellipse at 100% 0, rgba(168,200,237,.35), transparent 55%), linear-gradient(90deg, transparent calc(100% - 1px), rgba(13,26,44,.035) 0); background-size: auto, 25% 100%; }

.home-shots { display: grid; grid-template-columns: 1.6fr .462fr; gap: clamp(24px,3vw,48px); align-items: start; }
.home-shot { margin: 0; }
.home-frame { overflow: hidden; border: 1px solid #b8c7d7; background: #dbe3ed; box-shadow: 0 28px 70px -45px rgba(13,26,44,.5); }
.home-shot--phone .home-frame { border-radius: 28px; }
.home-frame img { width: 100%; height: auto; }
.home-shot figcaption { margin-top: 14px; color: var(--r7-muted); font-size: 14px; line-height: 1.5; }

.home-footer { position: relative; overflow: hidden; padding: clamp(80px,8vw,120px) var(--r7-gutter) 26px; background: var(--r7-navy-3); color: var(--r7-paper); }
.home-footer__invite { display: grid; grid-template-columns: 1fr minmax(260px,.42fr); gap: 20px 60px; align-items: end; padding-bottom: 70px; }
.home-footer__invite .eyebrow { grid-column: 1 / -1; }
.home-footer__invitation { display: inline-flex; align-items: center; gap: clamp(20px,4vw,60px); font-size: clamp(44px,6vw,96px); font-weight: 300; line-height: 1; letter-spacing: -.06em; transition: color var(--r7-fast) ease; }
.home-footer__invitation svg { flex-shrink: 0; width: clamp(40px,5vw,70px); height: clamp(40px,5vw,70px); fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--r7-move) var(--r7-ease); }
.home-footer__invitation span { text-wrap: balance; }
.home-footer__invitation em { display: block; font-family: var(--r7-serif); font-style: italic; letter-spacing: -.02em; }
.home-footer__invitation:hover { color: var(--r7-pale); }
.home-footer__invitation:hover svg { transform: translateX(12px); }
.home-footer__invite p { color: var(--r7-on-dark); font-size: 15px; line-height: 1.6; }
.home-footer__grid { display: grid; grid-template-columns: 1.1fr 1fr 1.2fr 1fr; gap: 35px; padding-top: 40px; border-top: 1px solid var(--r7-rule-light); font-size: 14px; }
.home-footer--plain .home-footer__grid { padding-top: 0; border-top: 0; }
.home-footer__brand { align-self: start; font-family: var(--r7-serif); font-size: 21px; letter-spacing: -.03em; }
.home-footer__grid p { color: var(--r7-pale); line-height: 1.5; }
.home-footer__grid nav { display: grid; grid-template-columns: repeat(2, max-content); gap: 0 32px; align-content: start; }
.home-footer__grid nav a { padding: 6px 0; }
.home-footer__grid nav a:hover, .home-footer__bottom a:hover { color: var(--r7-pale); text-decoration: underline; text-underline-offset: .22em; }
.home-footer__email { display: inline-block; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--r7-rule-light); }
.home-footer__email:hover { color: var(--r7-pale); }
.home-footer__word i { font-style: italic; letter-spacing: -.02em; }
.home-footer__word [data-w]::before { content: attr(data-w); }  .home-footer__word { pointer-events: none; margin-top: 30px; color: #1b2e45; font-family: var(--r7-serif); font-size: clamp(130px,29vw,460px); line-height: 1.05; letter-spacing: -.08em; white-space: nowrap; user-select: none; }
.home-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid var(--r7-rule-light); color: var(--r7-pale); font-size: 12px; }

.js-reveal .reveal { opacity: 0; transform: translateY(14px); transition: opacity var(--r7-reveal) var(--r7-ease-soft), transform var(--r7-reveal) var(--r7-ease-soft); }
@media (max-width: 820px) { .js-reveal .reveal { transform: translateY(10px); } }
.js-reveal .reveal.is-in { opacity: 1; transform: none; }

@media (max-width: 1100px) {
  .home-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
  .home-shots { grid-template-columns: 1fr; }
  .home-shot--phone { display: none; }
  .home-frame img { max-height: 80svh; object-fit: contain; }
  .home-footer__invite { grid-template-columns: 1fr; padding-bottom: 50px; }
}

@media (max-width: 520px) {
  .home-footer { padding-left: 18px; padding-right: 18px; }
  .home-footer__invitation { font-size: clamp(36px,11vw,46px); }
  .home-footer__grid { grid-template-columns: 1fr; gap: 26px; }
  .home-footer__word { font-size: 31vw; }
  .home-footer__bottom { flex-wrap: wrap; }
}

.site-plate { position: relative; display: grid; place-items: center; overflow: clip; aspect-ratio: 16 / 10; background: #d2deec; }
.site-family { position: relative; width: min(78%, 760px); aspect-ratio: 2.2 / 1; }
.site-family i { position: absolute; top: 14%; left: 0; width: 64%; height: 76%; border: 1px solid #607b9b; background: var(--r7-paper); box-shadow: 15px 12px 35px rgba(13,26,44,.08); transition: transform .6s var(--r7-ease); }
.site-family i::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 11%; border-bottom: 1px solid #607b9b; background: #bccce0; }
.site-family i::after { content: ""; position: absolute; inset: 24% 7% 10%; background: linear-gradient(90deg, #a8bfd8 45%, transparent 45%), repeating-linear-gradient(0deg, #c3d0df 0 1px, transparent 1px 15px); }
.site-family i:nth-child(2) { left: 18%; top: 0; }
.site-family i:nth-child(3) { left: 36%; top: 26%; }
.site-plate:hover .site-family i:first-child { transform: translateX(-8px); }
.site-plate:hover .site-family i:last-child { transform: translateX(8px); }

.cap-next { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; padding: clamp(60px,7vw,110px) var(--r7-gutter); background: var(--r7-paper); color: var(--r7-navy); border-top: 1px solid rgba(13,26,44,.12); }
.cap-next__main { display: grid; gap: 12px; }
.nw { white-space: nowrap; }  .cap-next__main span { color: var(--r7-muted); font-size: 14px; }
.cap-next__main strong { display: block; font-size: clamp(32px,4.2vw,68px); font-weight: 300; line-height: 1.04; letter-spacing: -.05em; }
.cap-next__main em { font-family: var(--r7-serif); font-style: italic; letter-spacing: -.02em; }
.cap-next__main svg { display: inline-block; vertical-align: middle; margin: -.1em 0 0 clamp(12px,1.4vw,22px); width: clamp(28px,3vw,46px); height: clamp(28px,3vw,46px); fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--r7-move) var(--r7-ease); }
.cap-next__main:hover svg, .cap-next__main:focus-visible svg { transform: translateX(8px); }
.cap-next .arrow { color: var(--r7-muted); }
.cap-next .arrow:hover { color: var(--r7-navy); }
@media (max-width: 520px) { .cap-next { padding-left: 18px; padding-right: 18px; } }

.r7-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.72) brightness(.92); }
.r7-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(13,26,44,.97) 0%, rgba(13,26,44,.9) 34%, rgba(13,26,44,.55) 68%, rgba(13,26,44,.42) 100%); }
@media (max-width: 760px) {
  .r7-shade { background: linear-gradient(180deg, rgba(13,26,44,.6) 0%, rgba(13,26,44,.9) 50%, rgba(13,26,44,.97) 100%); }
}

@media (max-width: 820px) { .header-contact { display: inline-flex !important; } }
@media (max-width: 374px) { .header-contact { display: none !important; } }

.wm-amp { font-style: italic; margin-right: .02em; }  
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
