.nvc-home-opening { container-type: inline-size; }
.nvc-hero { position: relative; display: block; background: var(--nvc-surface); isolation: isolate; overflow: clip; }
.nvc-hero::after { content: none; }
.nvc-hero-copy { position: relative; width: 100%; padding: 48px; }
.nvc-hero h1 { max-width: 800px; margin: 0 0 20px; color: var(--nvc-ink); font-size: clamp(52px, 5vw, 72px); font-weight: 700; line-height: 1.08; letter-spacing: -2px; text-shadow: none; }
.nvc-hero h1 span { color: #666d7c; }
.nvc-hero-copy > p { max-width: 620px; margin: 18px 0 22px; color: var(--nvc-muted); font-size: 18px; font-weight: 400; line-height: 1.6; }
.nvc-hero-copy .nvc-hero-eyebrow { margin: 0 0 20px; font-size: 11px; font-weight: 600; letter-spacing: 2px; color: #5f6570; }
.nvc-response-time { display: flex; align-items: flex-start; gap: 7px; margin: 12px 0 0; padding-left: 8px; color: #515965; font-size: 13px; font-weight: 400; line-height: 1.5; }
.nvc-response-time img { flex: 0 0 16px; margin-top: 2px; }
.nvc-hero-credit { display: none; position: absolute; bottom: 12px; right: 16px; color: #fff; font-size: 11px; font-weight: 400; }
.nvc-hero-halos { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.nvc-hero-halos::after { content: ""; position: absolute; width: 420px; height: 420px; right: -105px; bottom: -240px; border: 1px solid #aeb7c74d; border-radius: 50%; box-shadow: 0 0 0 32px #bac1ce0c,0 0 0 64px #bac1ce08; pointer-events: none; animation: nvc-halo-drift 23s ease-in-out infinite alternate-reverse; }
.nvc-hero-halos i { position: absolute; display: block; top: -160px; left: -170px; width: 520px; height: 520px; border: 1px solid #9da6b970; border-radius: 50%; box-shadow: 0 0 0 45px #bac1ce12, 0 0 0 90px #bac1ce0b; animation: nvc-halo-drift 22s ease-in-out infinite alternate; }
.nvc-hero-halos i + i { top: 66%; left: 25%; width: 260px; height: 260px; border-color: #aeb7c760; box-shadow: none; opacity: .7; animation-duration: 23s; animation-direction: alternate-reverse; }
@keyframes nvc-halo-drift { from { transform: translate(-12px,-8px) scale(.95); } to { transform: translate(34px,22px) scale(1.14); } }
@media(max-width:900px) { .nvc-hero-halos i + i { display: none; } }
@media(max-width:700px) { .nvc-hero-halos i { animation: none; left: -180px; top: -150px; } }
@media(prefers-reduced-motion:reduce) { .nvc-hero-halos i,.nvc-hero-halos::after { animation: none; } }
/* Keep the homepage photo on laptops; touch-only tablets retain the text layout. */
@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  .nvc-home-opening .nvc-hero { display:grid;grid-template-columns:54% 46%;align-items:end; }
  .nvc-home-opening .nvc-hero::after { content:'';display:block;grid-area:1 / 2;width:100%;align-self:stretch;aspect-ratio:auto;background:url('../../../images/home-hero.webp') right center / cover no-repeat;pointer-events:none; }
  .nvc-home-opening .nvc-hero-copy { grid-area:1 / 1;align-self:center;padding:32px 20px 32px 32px; }
  .nvc-home-opening .nvc-hero h1 { font-size:clamp(36px,4vw,64px);letter-spacing:-1.5px; }
  .nvc-home-opening .nvc-hero-copy > p:not(.nvc-hero-eyebrow) { max-width:520px;font-size:16px; }
  .nvc-home-opening .nvc-hero-credit { display:block; }
}
@media (min-width:1440px) and (hover:hover) and (pointer:fine) {
  .nvc-home-opening .nvc-hero-copy { padding:48px 28px 48px 48px; }
  .nvc-home-opening .nvc-hero h1 { font-size:clamp(58px,4.5cqw,72px); }
  .nvc-home-opening .nvc-hero-copy > p:not(.nvc-hero-eyebrow) { font-size:18px; }
}
@media (max-width: 900px) {
  .nvc-hero::after { display: none; }
  .nvc-hero-copy { width: 100%; padding: 40px 24px; }
  .nvc-hero-credit { display: none; }
}
@media (max-width: 700px) {
  .nvc-hero { min-height: 0; }
  .nvc-hero-copy { padding: 30px 20px; }
  .nvc-hero h1 { font-size: clamp(28px, 7.6vw, 38px); letter-spacing: -1.2px; }
  .nvc-hero-copy > p { margin: 14px 0 20px; font-size: 16px; }
  .nvc-hero-copy .nvc-hero-eyebrow { margin-bottom: 14px; font-size: 10px; }
  .nvc-hero .nvc-button { width: 100%; font-size: 14px; }
  .nvc-response-time { justify-content: center; padding: 0; }
}
.nvc-hero-halos::after { display: none; }
@media (min-width: 1025px) { .nvc-hero-halos::after { display: block; } }
