.df-services-menu { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:2rem; max-width:1360px; margin:auto; padding:2.5rem 2rem; }
.df-menu-heading { color:var(--magenta); font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; min-height:2.5rem; }
.df-service-group ul { display:grid; gap:1rem; margin-top:1.25rem; }
.df-service-group a { display:block; transition:color .2s; }
.df-service-group a:hover { color:var(--magenta); }
.df-services-menu .df-service-group li { border-top:1px solid var(--line); padding-top:1rem; }
.df-services-menu .df-service-group span { display:block; font-weight:600; font-size:.95rem; }
.df-service-group small { display:block; color:#6b6068; font-size:.8rem; margin-top:.25rem; }
#nav .df-menu-panel { top:calc(114px + var(--df-admin-offset)); max-height:calc(100svh - 114px - var(--df-admin-offset)); overflow:auto; }
#nav.solid .df-menu-panel { top:calc(78px + var(--df-admin-offset)); }
.df-footer-services { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:2rem; padding:4rem 0 3rem; }
.df-footer-services .eyebrow { font-size:.72rem; letter-spacing:.08em; align-items:flex-start; min-height:2.5rem; }
.df-footer-services .eyebrow::before { margin-top:.45rem; flex-shrink:0; width:14px; }
.df-footer-services a { font-size:.95rem; }
.df-footer-services a:hover { color:white; }
.df-footer-company { display:grid; grid-template-columns:1fr 1fr; gap:3rem; padding:2.5rem 0 4rem; border-top:1px solid rgba(255,255,255,.1); }
.df-section-shell { max-width:1360px; margin:0 auto; padding-left:2rem; padding-right:2rem; }
.df-added-capabilities,.df-added-services,.df-service-section { padding:6rem 0; }
.df-added-capabilities,.df-shell-section { background:#f6f2ef; }
.df-section-title { font-size:clamp(2rem,3.8vw,3.4rem); max-width:24ch; margin-top:1.5rem; }
.df-section-intro { max-width:46rem; margin-top:1.5rem; color:#6b6068; font-size:1.1rem; line-height:1.75; }
.df-capability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-top:3rem; }
.df-capability-card { display:block; background:white; border-bottom:2px solid #e4dad4; transition:border-color .2s; }
.df-capability-card:hover { border-color:var(--magenta); }
.df-card-photo { aspect-ratio:16/10; }
.df-card-copy { padding:2rem; }
.df-card-copy .eyebrow { font-size:.65rem; letter-spacing:.08em; }
.df-card-copy h3 { font-size:1.85rem; margin-top:1rem; }
.df-card-copy > p:not(.eyebrow) { margin-top:1rem; color:#6b6068; line-height:1.75; }
.df-card-copy .alink { margin-top:1.75rem; font-size:.9rem; }
.df-two-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
.df-service-wide { margin-top:3rem; }
.df-service-wide .df-capability-card { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
.df-new-section-link { flex-shrink:0; padding:1.25rem 0; color:#6b6068; font-size:.95rem; font-weight:500; }
.df-new-section-link.on { color:#141014; box-shadow:inset 0 -3px var(--magenta); }
.df-service-hero > .slot { min-height:0; }
.df-service-subnav { position:sticky; top:calc(78px + var(--df-admin-offset)); z-index:30; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.df-service-subnav nav { display:flex; gap:2rem; overflow-x:auto; }
.df-service-subnav a { white-space:nowrap; padding:1.25rem 0; font-size:.95rem; font-weight:500; color:#6b6068; }
.df-service-subnav a.on { color:#141014; box-shadow:inset 0 -3px var(--magenta); }
.df-overview-grid { display:grid; grid-template-columns:.7fr 2fr; gap:4rem; align-items:start; }
.df-overview-grid > .eyebrow { margin-top:1.8rem; }
.df-offerings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-top:3rem; }
.df-offering { background:white; padding:2.5rem; border-top:2px solid var(--line); }
.df-offering .num,.df-approach-grid .num { font-size:1.8rem; }
.df-offering h3,.df-approach-grid h3 { font-size:1.5rem; margin-top:1.5rem; }
.df-offering p,.df-approach-grid p { margin-top:1rem; color:#6b6068; line-height:1.75; }
.df-approach-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; margin-top:3rem; }
.df-approach-grid li { border-top:1px solid var(--line); padding-top:2rem; }
.df-service-note { padding:2.5rem; margin-top:3rem; background:#141014; color:white; border-left:4px solid var(--amber); }
.df-service-note h3 { font-size:1.65rem; }
.df-service-note p { margin-top:1rem; color:rgba(255,255,255,.75); line-height:1.75; max-width:62rem; }
.df-faq details { border-bottom:1px solid var(--line); padding:1.5rem 0; }
.df-faq summary { display:flex; justify-content:space-between; gap:1rem; font-size:1.1rem; font-weight:600; cursor:pointer; list-style:none; }
.df-faq summary span { color:var(--magenta); }
.df-faq details[open] summary span { transform:rotate(45deg); }
.df-faq details p { margin-top:1rem; color:#6b6068; line-height:1.75; }
.df-related-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-top:3rem; }
.df-related-link { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.5rem 0; border-top:1px solid var(--line); font-size:1.2rem; font-weight:500; }
.df-related-link:hover { color:var(--magenta); }
.df-service-cta { background:var(--magenta); color:white; padding:6rem 0; }
.df-service-cta p:not(.eyebrow) { font-size:1.1rem; max-width:40rem; margin-top:1.5rem; color:rgba(255,255,255,.8); }
.df-service-cta .btn { margin-top:2rem; }

/* A single continuous, silent film sits behind the existing hero messages. */
#heroSlider.df-video-hero { isolation:isolate; }
.df-hero-film { position:absolute; inset:0; z-index:0; overflow:hidden; background-size:cover; background-position:50% center; }
.df-hero-film video { width:100%; height:100%; object-fit:cover; object-position:50% center; opacity:0; transition:opacity 1.2s; filter:saturate(1.04) contrast(1.08); }
.df-video-playing .df-hero-film video { opacity:1; }
.df-film-grade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,16,20,.8),rgba(20,16,20,.58) 33%,rgba(20,16,20,.12) 68%,rgba(20,16,20,.08)),linear-gradient(0deg,rgba(20,16,20,.78),transparent 35%,rgba(20,16,20,.22)); }
#heroSlider.df-video-hero > .hs { z-index:1; }
#heroSlider.df-video-hero .cap { max-width:42rem; }
#heroSlider.df-video-hero #hPause { display:grid; }
@media(max-width:1023px) {
  .df-footer-services { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .df-capability-grid { gap:1.25rem; }
  .df-card-copy { padding:1.5rem; }
  .df-card-copy h3 { font-size:1.5rem; }
  .df-overview-grid { grid-template-columns:1fr; gap:1rem; }
  .df-approach-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:639px) {
  .df-section-shell { padding-left:1.25rem; padding-right:1.25rem; }
  .df-added-capabilities,.df-added-services,.df-service-section,.df-service-cta { padding:4rem 0; }
  .df-footer-services,.df-footer-company { grid-template-columns:1fr 1fr; gap:2rem; }
  .df-capability-grid,.df-two-cards,.df-offerings-grid,.df-related-links { grid-template-columns:1fr; }
  .df-service-wide .df-capability-card { grid-template-columns:1fr; }
  .df-offering { padding:1.75rem; }
  .df-approach-grid { grid-template-columns:1fr; gap:2rem; }
  .df-service-note { padding:1.75rem; }
  #heroSlider.df-video-hero > .hs > .absolute { padding-top:calc(var(--df-header-height) + var(--df-admin-offset) + 3rem); }
  .df-hero-film { background-position:40% center; }
  .df-hero-film video { object-position:40% center; }
  .df-film-grade { background:linear-gradient(0deg,rgba(20,16,20,.92),rgba(20,16,20,.66) 60%,rgba(20,16,20,.36)); }
}
@media(prefers-reduced-motion:reduce) {
  .df-hero-film video { transition:none; }
}
