/* Home/Jay and full-page integration. V6 and the isolated Services proof remain unchanged. */
:root {
  --pine: #0c3028;
  --ivory: #f7f5ed;
  --gold: #c8a650;
  --gutter: clamp(28px, 5vw, 84px);
  --header-height: 92px;
  --panel-height: calc(100svh - var(--header-height));
  --home-height: calc(100svh - var(--header-height));
}
html { scroll-behavior: auto; scroll-padding-top: var(--header-height); }
.v7-page .site-header {
  position: sticky; top: 0; left: auto; right: auto;
  width: 100%; height: var(--header-height); margin: 0;
  transform: none; border-radius: 0; border: 0;
  border-bottom: 1px solid #d8dcd0; box-shadow: none;
  padding: 0 var(--gutter); background: var(--ivory); z-index: 80;
}
.v7-page .site-header.is-scrolled { box-shadow: 0 5px 18px #102b2310; }
.v7-page .site-header .brand { min-height: 44px; }
.v7-page .site-header .brand img { display: block; }
.v7-page .site-header a, .v7-page .gold-cta, .home-scroll-cue { text-decoration: none; }
.v7-page .site-header nav a { color: #324b3e; transition: color .2s; }
.v7-page .site-header nav a:hover { color: #876b29; }
.v7-page .site-header .gold-cta { font-weight: 600; }
.v7-page .gold-cta svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.v7-page .shell { width: calc(100% - 2 * var(--gutter)); max-width: 1440px; }
.v7-page .service-story { scroll-margin-top: 0; }
.v7-page .service-ribbon { position: relative; z-index: 2; }
.v7-page .service-story .story-heading h2 em { font: italic 1em/1.08 Georgia, 'Times New Roman', serif; }
.v7-page .industries, .v7-page .closing { scroll-margin-top: 0; }
.v7-page [data-reveal]:focus-within { opacity: 1; transform: none; }

.home-story { position: relative; background: var(--pine); color: var(--ivory); }
.home-panel {
  position: relative; isolation: isolate; min-height: var(--home-height);
  display: grid; grid-template-columns: 1.15fr 1fr; align-items: center;
  gap: 32px; padding: 42px var(--gutter) 66px;
}
.home-story[data-home-mode="pinned"] { height: calc(var(--home-height) + 88svh); }
.home-story[data-home-mode="pinned"] .home-panel {
  position: sticky; top: var(--header-height); height: var(--home-height); min-height: 0;
}
.home-background { position: absolute; inset: 0; z-index: -1; overflow: clip; pointer-events: none; }
.home-background::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 72% 38%, #396d443d, transparent 48%), linear-gradient(120deg, #0b3028, #0c3028 52%, #08241e);
}
.home-background svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: #bdaf7622; stroke-width: .6; }
.home-blue-light { position: absolute; right: -8%; top: 0; width: 28%; height: 100%; background: linear-gradient(90deg, transparent, #51769c2b); transform: skewX(-12deg); }
.home-gold-light { position: absolute; width: 38%; height: 100%; left: 52%; background: linear-gradient(105deg, transparent, #ead1920c, transparent); opacity: .6; }
.home-copy { position: relative; z-index: 5; max-width: 720px; min-width: 0; }
.home-copy p { margin: 0; }
.home-eyebrow { font-size: 10px; line-height: 1.5; letter-spacing: .14em; color: #d1bd86; font-weight: 600; }
.home-savings { margin-top: 22px; padding-bottom: 24px; border-bottom: 1px solid #d3c39736; }
.home-savings .savings-number { display: block; font: 400 clamp(78px, 7.6vw, 116px)/.96 Arial, sans-serif; letter-spacing: -.075em; color: #e3cb8b; white-space: nowrap; font-variant-numeric: tabular-nums; }
.home-savings .savings-detail { display: block; margin-top: 12px; }
.home-savings .savings-detail > p:first-child { font-size: 13px; line-height: 1.45; color: #e3e7de; }
.home-savings .savings-disclosure { font-size: 10px; line-height: 1.5; color: #b9c8ba; margin-top: 5px; }
.home-copy h1 { margin: 24px 0 0; max-width: 680px; font: 400 clamp(38px, 3.7vw, 56px)/1.04 Arial, sans-serif; letter-spacing: -.05em; color: var(--ivory); }
.home-copy h1 > span { font: italic 1em/1.04 Georgia, 'Times New Roman', serif; color: #dfce9c; letter-spacing: -.04em; }
.home-copy .home-intro { margin-top: 22px; max-width: 560px; font-size: 16px; line-height: 1.55; color: #e0e4dc; }
.v7-page .home-copy .hero-cta { display: flex; max-width: 515px; margin-top: 24px; min-height: 55px; padding: 16px 20px; font-size: 12px; line-height: 1.4; letter-spacing: .015em; gap: 18px; }
.home-copy .home-trust { font-size: 12px; line-height: 1.5; margin-top: 13px; max-width: 515px; color: #e1e5d9; }
.home-copy .home-process { font-size: 10px; line-height: 1.5; margin-top: 7px; max-width: 500px; color: #afc2b4; }

.home-art { position: relative; width: 100%; height: min(690px, calc(var(--home-height) - 94px)); min-height: 470px; perspective: 1200px; transform-style: preserve-3d; }
.home-architecture { position: absolute; inset: 0; overflow: clip; pointer-events: none; }
.home-architecture span { position: absolute; height: 92%; width: 42%; border-left: 1px solid #d9c48c3d; border-right: 1px solid #d9c48c17; background: linear-gradient(105deg, #3762451a, transparent); transform: skewX(-14deg); }
.home-architecture span:nth-child(1) { left: 12%; top: 5%; }
.home-architecture span:nth-child(2) { left: 34%; top: 1%; }
.home-architecture span:nth-child(3) { left: 56%; top: -2%; }
.portrait-mount { position: absolute; width: 70%; aspect-ratio: 4/5; right: 2%; top: 4%; transform-origin: 50% 70%; z-index: 2; }
.portrait-photo { position: absolute; inset: 0; overflow: hidden; border-radius: 72px 8px 8px 8px; box-shadow: 0 24px 70px #02150f88; }
.portrait-photo picture, .portrait-photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center top; }
.portrait-shade { position: absolute; inset: 0; background: linear-gradient(0deg, #082a2394, transparent 48%); pointer-events: none; }
.portrait-rule { position: absolute; inset: -12px; width: calc(100% + 24px); height: calc(100% + 24px); overflow: visible; pointer-events: none; }
.portrait-rule path { stroke: #d7bf79; stroke-width: .7; stroke-dasharray: 1; stroke-dashoffset: .12; }
.home-person-caption { position: absolute; top: 11%; left: -2%; z-index: 4; max-width: 170px; }
.home-person-caption .caption-rule { display: block; height: 1px; width: 42px; background: #bea563; margin-bottom: 13px; }
.home-person-caption strong { display: block; font-size: 14px; font-weight: 500; line-height: 1.35; color: #f7f5ed; }
.home-person-caption div > span { display: block; font-size: 10px; line-height: 1.5; color: #bdd0be; margin-top: 5px; max-width: 140px; }
.home-document { position: absolute; z-index: 1; width: 45%; height: 34%; left: 8%; top: 46%; background: linear-gradient(120deg, #f6f3e7, #d9dfd3); border-radius: 2px; box-shadow: 0 18px 32px #03171188; padding: 28px; transform: rotate(-11deg); }
.document-header { display: block; width: 58%; height: 6px; background: #81978a; margin-bottom: 22px; }
.home-document i { display: block; height: 1px; width: 85%; background: #758a734d; margin-top: 14px; }
.home-document i:nth-of-type(2) { width: 72%; }
.document-seal { position: absolute; right: 22px; bottom: 25px; color: #8f7944; }
.document-seal svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1; }
.home-portfolio { position: absolute; z-index: 3; width: 94%; left: -5%; bottom: -1%; transform-origin: 50% 65%; filter: drop-shadow(0 26px 22px #00180dc4); }
.home-portfolio img, .home-review-lens img { display: block; width: 100%; height: auto; }
.home-review-lens { position: absolute; z-index: 4; width: 41%; left: 23%; bottom: 17%; transform-origin: 32% 40%; filter: drop-shadow(0 13px 10px #00180db0); }
.home-art-note { position: absolute; bottom: -4%; right: 4%; display: flex; align-items: center; gap: 12px; font-size: 11px; color: #dcc894; }
.home-art-note svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.25; }
.home-scroll-cue { position: absolute; left: var(--gutter); bottom: 22px; display: flex; align-items: center; gap: 15px; font-size: 10px; color: #cfddc9; z-index: 5; min-height: 26px; }
.cue-line { width: 38px; height: 1px; background: #c6ab6a; }
.home-progress { position: absolute; bottom: 0; left: 0; right: 0; height: 2px; overflow: hidden; }
.home-progress i { display: block; width: 100%; height: 100%; background: #c8a650; transform: scaleX(0); transform-origin: left; }
.home-story[data-home-mode="flow"] .home-panel { min-height: auto; }

@media (min-width: 1700px) {
  .home-panel { gap: 64px; grid-template-columns: 1.05fr 1fr; }
  .home-copy { max-width: 820px; }
  .home-copy h1 { max-width: 780px; font-size: 64px; }
  .home-copy .home-intro { font-size: 18px; max-width: 630px; }
  .home-savings .savings-number { font-size: 138px; }
  .home-art { max-width: 790px; height: 790px; }
}
@media (max-height: 830px) and (min-width: 901px) {
  .home-panel { padding-top: 28px; padding-bottom: 55px; gap: 24px; }
  .home-eyebrow { font-size: 9px; }
  .home-savings { margin-top: 16px; padding-bottom: 17px; }
  .home-savings .savings-number { font-size: clamp(68px, 7vw, 97px); }
  .home-savings .savings-detail { margin-top: 9px; }
  .home-savings .savings-detail > p:first-child { font-size: 11px; }
  .home-savings .savings-disclosure { font-size: 9px; margin-top: 4px; }
  .home-copy h1 { margin-top: 20px; font-size: clamp(32px, 3.3vw, 46px); }
  .home-copy .home-intro { font-size: 14px; margin-top: 17px; line-height: 1.5; }
  .v7-page .home-copy .hero-cta { margin-top: 19px; font-size: 10px; min-height: 48px; padding: 13px 16px; }
  .home-copy .home-trust { font-size: 10px; margin-top: 11px; }
  .home-copy .home-process { font-size: 9px; margin-top: 6px; }
  .home-art { min-height: 435px; height: calc(var(--home-height) - 90px); }
  .home-person-caption { max-width: 135px; }
  .home-person-caption strong { font-size: 12px; }
  .home-person-caption div > span { font-size: 9px; max-width: 100px; }
}
@media (max-width: 1100px) and (min-width: 901px) {
  .home-panel { grid-template-columns: 1.13fr 1fr; gap: 18px; }
  .home-copy h1 { font-size: 36px; }
  .home-savings .savings-number { font-size: 76px; }
  .home-person-caption { left: 1%; top: 1%; }
  .portrait-mount { top: 13%; }
  .home-portfolio { width: 105%; left: -7%; bottom: 3%; }
  .home-review-lens { bottom: 20%; left: 23%; }
  .home-art-note { font-size: 10px; right: 0; bottom: -2%; }
}
@media (max-width: 900px) {
  :root { --header-height: 80px; --gutter: 28px; }
  .home-panel { grid-template-columns: 1fr; gap: 25px; padding-top: 32px; padding-bottom: 65px; }
  .home-copy { width: 100%; max-width: 750px; margin-inline: auto; }
  .home-eyebrow { font-size: 10px; }
  .home-copy h1 { max-width: 750px; font-size: 46px; }
  .home-savings { margin-top: 19px; padding-bottom: 20px; }
  .home-savings .savings-number { font-size: 98px; }
  .home-copy .home-intro { max-width: 670px; }
  .home-copy .home-trust, .home-copy .home-process { max-width: 600px; }
  .home-art { width: min(100%, 620px); margin-inline: auto; height: 370px; min-height: 0; }
  .portrait-mount { width: 42%; right: 4%; top: 0; max-width: 280px; }
  .portrait-photo { border-radius: 48px 5px 5px 5px; }
  .home-person-caption { top: 5%; left: 5%; max-width: 200px; }
  .home-person-caption strong { font-size: 16px; }
  .home-person-caption div > span { font-size: 11px; max-width: 190px; }
  .home-document { width: 35%; height: 40%; left: 12%; top: 36%; }
  .home-portfolio { width: 64%; left: 0; bottom: 3%; }
  .home-review-lens { width: 29%; left: 19%; bottom: 18%; }
  .home-art-note { bottom: 0; right: 4%; font-size: 10px; }
  .home-architecture { opacity: .7; }
}
@media (max-width: 600px) {
  :root { --header-height: 76px; --gutter: 20px; }
  .home-panel { padding-top: 26px; padding-bottom: 56px; gap: 22px; }
  .home-eyebrow { font-size: 8px; letter-spacing: .08em; }
  .home-savings { margin-top: 19px; padding-bottom: 19px; }
  .home-savings .savings-number { font-size: clamp(60px, 17.5vw, 94px); line-height: 1; }
  .home-savings .savings-detail { margin-top: 10px; }
  .home-savings .savings-detail > p:first-child { font-size: 11px; line-height: 1.5; max-width: 310px; }
  .home-savings .savings-disclosure { font-size: 9px; margin-top: 5px; }
  .home-copy h1 { margin-top: 21px; font-size: clamp(31px, 8vw, 43px); line-height: 1.07; letter-spacing: -.045em; }
  .home-copy h1 > span { line-height: 1.07; }
  .home-copy .home-intro { margin-top: 18px; font-size: 14px; line-height: 1.55; }
  .v7-page .home-copy .hero-cta { width: 100%; margin-top: 21px; font-size: 10px; min-height: 55px; padding: 14px 16px; gap: 15px; }
  .home-copy .home-trust { font-size: 10px; line-height: 1.5; margin-top: 12px; }
  .home-copy .home-process { font-size: 9px; margin-top: 8px; line-height: 1.5; }
  .home-art { height: 235px; }
  .portrait-mount { width: 43%; right: 0; top: 9px; }
  .portrait-photo { border-radius: 30px 3px 3px 3px; }
  .portrait-rule { inset: -7px; width: calc(100% + 14px); height: calc(100% + 14px); }
  .home-person-caption { left: 3%; top: 15px; width: 50%; }
  .home-person-caption strong { font-size: 12px; }
  .home-person-caption div > span { font-size: 9px; max-width: 142px; }
  .home-person-caption .caption-rule { width: 32px; margin-bottom: 9px; }
  .home-document { width: 39%; height: 42%; top: 38%; left: 11%; padding: 17px; }
  .document-header { height: 4px; margin-bottom: 15px; }
  .home-document i { margin-top: 10px; }
  .document-seal { right: 13px; bottom: 13px; }
  .document-seal svg { width: 17px; height: 17px; }
  .home-portfolio { width: 69%; left: -2%; bottom: 5%; }
  .home-review-lens { width: 33%; left: 14%; bottom: 15%; }
  .home-art-note { font-size: 8px; bottom: 0; right: 0; gap: 7px; }
  .home-art-note svg { width: 17px; height: 17px; }
  .home-scroll-cue { font-size: 9px; gap: 10px; bottom: 17px; }
  .cue-line { width: 25px; }
}
@media (max-width: 350px) {
  :root { --gutter: 16px; }
  .home-eyebrow { font-size: 7px; letter-spacing: .06em; }
  .home-savings .savings-number { font-size: 60px; }
  .home-copy h1 { font-size: 29px; }
  .home-art { height: 205px; }
  .home-person-caption strong { font-size: 11px; }
  .home-person-caption div > span { font-size: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-progress { display: none; }
  .home-story *, .home-story *::before, .home-story *::after { animation: none !important; transition: none !important; }
}
