/* XFANS V3.2 — master visual cohesion / responsive hardening */
:root{
  --xf-navy:#0a2742;
  --xf-navy-deep:#061d31;
  --xf-gold:#c99b3f;
  --xf-cream:#f5f2eb;
  --xf-white:#fbfaf7;
}

/* Prevent browser zoom / viewport width from creating broken line wraps on desktop. */
@media (min-width:1181px){
  .hero-content{width:min(760px,44vw)!important}
  .hero h1{font-size:clamp(38px,3.05vw,54px)!important;line-height:1.01!important}
  .hero-line{white-space:nowrap!important}
  .hero-sub{white-space:nowrap!important;font-size:clamp(13px,.92vw,16px)!important}
}
@media (min-width:981px) and (max-width:1180px){
  .hero-content{width:min(650px,49vw)!important}
  .hero h1{font-size:clamp(34px,3.55vw,44px)!important;line-height:1.02!important}
  .hero-line{white-space:nowrap!important}
  .hero-sub{font-size:clamp(12px,1.15vw,15px)!important;white-space:nowrap!important}
}

/* Hero: brighter authentic asset, stronger left atmosphere, no fake visual content. */
.hero{background:linear-gradient(120deg,var(--xf-navy-deep),var(--xf-navy) 58%,#0e3557)!important}
.hero-image{
  width:60%!important;
  right:-1.5%!important;
  filter:brightness(1.30) saturate(1.08) contrast(1.015)!important;
  opacity:1!important;
  object-position:58% 58%!important;
}
.hero:after{
  background:linear-gradient(90deg,
    rgba(6,29,49,1) 0%,
    rgba(6,29,49,.98) 29%,
    rgba(6,29,49,.86) 43%,
    rgba(6,29,49,.40) 61%,
    rgba(6,29,49,.08) 81%,
    transparent 100%)!important;
}
.hero:before{
  left:-9%!important;
  top:105px!important;
  width:58%!important;
  height:430px!important;
  border:0!important;
  border-radius:50%!important;
  background:
    radial-gradient(circle at 58% 48%,rgba(201,155,63,.19),rgba(201,155,63,.055) 25%,transparent 62%),
    radial-gradient(circle at 28% 62%,rgba(255,255,255,.055),transparent 55%)!important;
  filter:blur(3px)!important;
  animation:heroHalo 9s ease-in-out infinite alternate!important;
}
.hero-content:before{
  content:"";
  position:absolute;
  left:-120px;
  top:128px;
  width:390px;
  height:390px;
  border:1px solid rgba(201,155,63,.11);
  border-radius:50%;
  pointer-events:none;
}
.hero-content{position:relative}

/* Intro / global-network thumbnail: full map remains visible at every desktop width. */
.network-composite{background:var(--xf-navy-deep)!important;isolation:isolate}
.network-composite .image-blur{
  display:block!important;
  position:absolute!important;
  inset:-18%!important;
  background-size:cover!important;
  background-position:center!important;
  filter:blur(32px) brightness(.56) saturate(.75)!important;
  opacity:.9!important;
  transform:scale(1.08);
  z-index:0!important;
}
.network-composite img{
  position:relative!important;
  z-index:1!important;
  object-fit:contain!important;
  object-position:center!important;
  width:100%!important;
  height:100%!important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 5%,#000 95%,transparent 100%)!important;
  mask-image:linear-gradient(90deg,transparent 0%,#000 5%,#000 95%,transparent 100%)!important;
}

/* HOME services — use the authentic source photo in full over a blurred copy of itself. */
.v31-service-media{
  position:relative!important;
  isolation:isolate!important;
  background:var(--xf-navy-deep)!important;
  overflow:hidden!important;
}
.v31-service-media:before{
  content:"";
  position:absolute;
  inset:-26px;
  background-image:var(--media-bg);
  background-size:cover;
  background-position:center;
  filter:blur(22px) brightness(.55) saturate(.75);
  transform:scale(1.08);
  z-index:0;
}
.v31-service-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(6,29,49,.23),transparent 17%,transparent 83%,rgba(6,29,49,.23));
  z-index:1;
  pointer-events:none;
}
.v31-service-media img{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
  filter:none!important;
}
.v31-service-card:hover .v31-service-media img{transform:scale(1.008)!important}
.v31-service-body{min-height:218px!important}
.v31-service-body h3{min-height:52px!important}
.v31-service-links{border-top:1px solid #e1dbd0;padding-top:12px!important;margin-top:auto!important}

/* Featured projects: panorama stays panorama; deck/project slides keep full composition. */
.v31-feature-media{position:relative;isolation:isolate;background:var(--xf-navy-deep)!important}
.v31-feature-media:before{
  content:"";position:absolute;inset:-24px;background-image:var(--feature-bg);background-size:cover;background-position:center;
  filter:blur(22px) brightness(.48) saturate(.70);transform:scale(1.08);z-index:0;
}
.v31-feature-media img{position:relative!important;z-index:2!important;object-fit:contain!important;background:transparent!important}
.v31-feature-hero .v31-feature-media img{object-fit:cover!important;width:100%!important;height:100%!important}
.v31-feature-hero .v31-feature-media:before{display:none}
.v31-feature-body{border-top:1px solid rgba(255,255,255,.08)}

/* Network panorama: safe image, full map retained, professional fade at both edges. */
.v31-network-visual{min-height:510px!important;background:var(--xf-navy-deep)!important}
.v31-network-visual>img{
  object-fit:cover!important;
  object-position:center!important;
  width:100%!important;
  height:100%!important;
  opacity:.98!important;
  filter:saturate(.92) contrast(1.035)!important;
}
.v31-network-visual:before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(5,28,49,.99) 0%,rgba(5,28,49,.92) 19%,rgba(5,28,49,.48) 34%,rgba(5,28,49,.04) 57%,rgba(5,28,49,.12) 100%),
    linear-gradient(180deg,rgba(5,28,49,.16),transparent 22%,transparent 78%,rgba(5,28,49,.20));
}
.v31-network-visual:after{display:none!important}
.v31-network-overlay{z-index:2!important}
.v31-network-copy{padding-top:68px!important;padding-bottom:66px!important}
.v31-network-copy h2{font-size:clamp(32px,2.75vw,47px)!important}
.v31-network-copy p{font-size:16px!important;line-height:1.5!important}

/* Roster: no fake cropping; preserve faces and original images. */
.player-img-wrap{background:#102f4d!important;position:relative!important}
.player-img-wrap:before{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(5,24,40,.06));pointer-events:none;z-index:2;
}
.player-card img{object-fit:contain!important;object-position:center top!important;background:#102f4d!important;transform:none!important}
.player-card:hover img{transform:none!important;filter:contrast(1.02)!important}

/* Contact/footer corporate identity is visible but discreet. */
.corp-legal{font-size:11.5px!important;color:#93a4b1!important;letter-spacing:.005em!important}

/* Inner pages: visual rhythm matches the new master without changing approved copy. */
.page-hero{padding-top:132px!important;padding-bottom:56px!important}
.page-hero h1{font-size:clamp(34px,3.4vw,52px)!important;line-height:1.03!important;letter-spacing:-.028em!important}
.page-hero p{max-width:720px!important;font-size:16px!important;line-height:1.5!important}
.site-footer .foot,.foot{gap:clamp(18px,2vw,32px)!important}

@media(max-width:1180px){
  .v31-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .v31-featured-projects{grid-template-columns:1.15fr .85fr!important}
  .v31-feature:nth-child(3){grid-column:2!important}
}
@media(max-width:980px){
  .hero-image{width:100%!important;right:0!important;opacity:.58!important;filter:brightness(1.22) saturate(1.05)!important}
  .hero:after{background:linear-gradient(90deg,rgba(6,29,49,.98) 0%,rgba(6,29,49,.88) 60%,rgba(6,29,49,.38) 100%)!important}
  .hero-content:before{display:none}
  .hero-line,.hero-sub{white-space:normal!important}
  .v31-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v31-featured-projects{grid-template-columns:1fr 1fr!important}
  .v31-feature-hero{grid-column:1/-1!important}
  .v31-network-visual{min-height:560px!important}
  .v31-network-visual>img{object-position:62% center!important}
}
@media(max-width:640px){
  .hero{min-height:590px!important}
  .hero-image{opacity:.48!important}
  .hero h1{font-size:34px!important}
  .v31-service-grid{grid-template-columns:1fr!important}
  .v31-service-media{height:200px!important}
  .v31-featured-projects{grid-template-columns:1fr!important}
  .v31-feature-hero{grid-column:auto!important}
  .v31-network-visual{min-height:610px!important}
  .v31-network-visual>img{object-position:67% center!important;opacity:.78!important}
  .v31-network-copy{padding-top:58px!important;padding-bottom:54px!important}
  .v31-network-copy h2{font-size:31px!important;max-width:330px!important}
  .v31-network-copy p{font-size:15px!important;max-width:335px!important}
  .page-hero{padding-top:112px!important;padding-bottom:42px!important}
}

@media(prefers-reduced-motion:reduce){
  .hero:before{animation:none!important}
}

/* Case-study index — preserve complete deck visuals and integrate their edges. */
.project-media{
  position:relative!important;
  isolation:isolate!important;
  background:var(--xf-navy-deep)!important;
  overflow:hidden!important;
}
.project-media:before{
  content:"";
  position:absolute;
  inset:-24px;
  background-image:var(--project-bg);
  background-size:cover;
  background-position:center;
  filter:blur(20px) brightness(.58) saturate(.72);
  transform:scale(1.08);
  z-index:0;
}
.project-media:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(7,31,53,.20),transparent 16%,transparent 84%,rgba(7,31,53,.20));
}
.project-media img{
  position:relative!important;
  z-index:2!important;
  object-fit:contain!important;
  object-position:center!important;
  background:transparent!important;
  transform:none!important;
}
.project-card:hover .project-media img{transform:none!important}
.project-card{border-color:#d4cdc1!important;box-shadow:0 8px 20px rgba(10,39,66,.035)}
.project-card:hover{box-shadow:0 18px 40px rgba(10,39,66,.11)!important;border-color:#c39b4a!important}
.project-body{padding:17px 17px 19px!important}
.project-body .project-cta,.project-body a{font-weight:850}

/* Stronger accessible focus without changing layout. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--xf-gold)!important;
  outline-offset:3px!important;
}
