/* Keep the live site's navigation gap and responsive header spacing. */
header nav { align-items: center; }
body>header { border-bottom: 0; }
body header nav a,body.pricing-page header nav a[aria-current] {
  position: relative; background: transparent; color: #fff; padding: 11px 0;
  transition: color .25s ease,transform .25s ease;
}
body header nav a:is(:hover,:focus-visible),body.pricing-page header nav a[aria-current]:is(:hover,:focus-visible) {
  color: var(--orange); transform: scale(1.05);
}
body header nav .nav-pricing { font-weight: 600; }
body header nav .nav-reserve { color: var(--orange); font-weight: 600; border-bottom: 1px solid var(--orange); }
.hero .round-link { transition: transform .25s ease; }
.hero .round-link:is(:hover,:focus-visible) { transform: translateY(4px); }
.hero .round-link:is(:hover,:focus-visible) .circle { transform: none; background: var(--orange); border-color: var(--orange); }
/* Extend the existing Capabilities modules with the four service descriptions. */
.services .intro { align-items: center; margin-block: 32px; }
.contact h2 .contact-next-line { display: inline-block; margin-top: .2em; }
.services .intro>p { font-size: 1.25rem; line-height: 1.65; padding: 0; margin-block: 0; }
.hero .round-link .circle { display: grid; flex-shrink: 0; }
.footer-socials { margin-top: 10px; }
.footer-socials a { display: inline-flex; align-items: center; gap: 9px; }
footer .footer-socials .social-icon { width: 20px; height: 20px; flex-shrink: 0; }
.pricing-page .footer-socials .social-icon { filter: invert(1); }
.site-footer { display: grid; grid-template-columns: minmax(100px,230px) repeat(3,max-content); column-gap: 16px; row-gap: 16px; justify-content: space-between; align-items: center; }
.site-footer .footer-brand { display: grid; gap: 8px; justify-items: start; }
.site-footer .footer-brand>img { width: 230px; max-width: 100%; }
.site-footer .footer-socials { margin: 0; }
.site-footer .footer-contact,.site-footer .footer-legal,.site-footer .footer-socials a { white-space: nowrap; }
@media(max-width:760px) {
  .site-footer { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 16px; }
  .site-footer .footer-brand>img { transform: scale(1.2); transform-origin: center; }
  .site-footer .footer-contact,.site-footer .footer-legal { grid-column: 1 / -1; }
}
.services summary h3 { flex: 1; min-width: 0; transition:color .25s ease; }
.services summary:is(:hover,:focus-visible) h3 { color:var(--orange); }
.services .service-list { overflow-anchor:none; }
.services .service-num { flex-shrink: 0; }
.services .service-tag { flex-shrink: 0; }
.services .plus { flex-shrink: 0; }
.services .capability-lead { color: var(--ink); font-size: 1.125rem; margin-bottom: 12px; }
.services .pricing-link { color: var(--ink); margin-top: 4px; border-bottom: 0; }
.services .pricing-link:hover { color: var(--orange); }
/* Captions stay on the videos; every row uses one consistent, tighter gap. */
.film-grid { gap: 20px; }
.film .film-caption,.film .film-index,.film .film-description { transition: none; }
.film:not(.description-selected) .play { transform: rotate(0deg); }
.film.description-selected .play { transform: rotate(45deg); background: var(--orange); border-color: var(--orange); }
.film-grid .film:not(.description-open) .film-caption { bottom: 23px; }
.contact-success { min-height: 430px; padding: 64px 54px 50px; display:flex; flex-direction:column; justify-content:center; animation:success-in .55s cubic-bezier(.2,.65,.3,1) both; }
.contact-success[hidden] { display:none; }
.contact-success .eyebrow { margin:22px 0 18px; }
.contact-success h2 { max-width:540px; font-size:clamp(48px,7vw,74px); }
.contact-success>p:not(.eyebrow) { max-width:500px; color:var(--muted); margin:22px 0 0; }
.contact-success .contact-button { width:min(100%,330px); margin-top:34px; }
.success-mark { display:grid; grid-template-columns:repeat(2,7px); gap:5px; width:max-content; }
.success-mark span { width:7px; height:7px; border:2px solid var(--orange); border-radius:50%; }
@keyframes success-in { from { opacity:0; transform:translateX(24px); } to { opacity:1; transform:none; } }
@media(max-width:700px) {
  .services .intro>p { margin-top: 20px; }
  body header nav a { padding-block: 10px; }
  .film-grid { gap: 18px; }
  .film-grid .film:not(.description-open) .film-caption { bottom: 20px; }
  .services summary { gap: 12px; }
  .services summary h3 { font-size: 1.375rem; line-height: 1.25; }
  .services summary .plus { margin-left: 0; }
  .contact-success { min-height:390px; padding:48px 28px 38px; }
}
@media(max-width:700px) {
  body.home-page>header {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    grid-template-areas: "brand contact" "nav nav";
    align-items: center;
    gap: 12px 8px;
    padding: 18px 6%;
  }
  .home-page>header .brand { grid-area: brand; min-width: 0; max-width: none; }
  .home-page>header .brand .brand-logo { width: clamp(155px,53vw,200px); max-width: 100%; }
  .home-page>header .header-cta { grid-area: contact; white-space: nowrap; font-size: 13px; padding: 9px 0; }
  .home-page>header .header-cta span { margin-left: 5px; }
  .home-page>header nav {
    grid-area: nav;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 2px 14px;
    font-size: 12px;
  }
  .home-page>header nav a {
    display: flex;
    align-items: center;
    min-height: 44px;
    line-height: 1.2;
    padding: 7px 0;
  }
  .home-page>header nav .nav-reserve { justify-self: start; }
  .home-page .hero { display: flex; height: auto; min-height: max(760px,100svh); }
  .home-page .hero-content {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    margin-top: auto;
    width: 100%;
    padding: 190px 6% 115px;
  }
}
@media(prefers-reduced-motion:reduce) { .contact-success { animation:none; } }

/* Restrained pointer motion for primary calls to action. */
.magnetic-button {
  --magnetic-x: 0px;
  --magnetic-y: 0px;
  transform: translate3d(var(--magnetic-x),var(--magnetic-y),0);
  transition: transform .36s cubic-bezier(.16,.72,.22,1),background-color .2s ease,color .2s ease;
  will-change: transform;
}

/* The underline grows from the cursor's entry side and retreats toward its exit side. */
.cursor-underline {
  --underline-origin: left;
  position: relative;
  text-decoration: none !important;
}
.cursor-underline::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: var(--underline-origin) center;
  transition: transform .28s cubic-bezier(.2,.7,.3,1);
  pointer-events: none;
}
.cursor-underline.underline-active::after { transform: scaleX(1); }
@media(hover:none),(pointer:coarse) { .magnetic-button { transform:none; } }
@media(prefers-reduced-motion:reduce) {
  .magnetic-button { transform:none; will-change:auto; }
  .cursor-underline::after { transition:none; }
}

/* Service copy now aligns with the unnumbered headings. */
.services .service-body { margin-left: 0; }
