/* VFIX service identity: green for IT, blue for communications. */
:root {
  --it: #00d59c;
  --it-deep: #006f51;
  --it-night: #053f35;
  --comms: #009cd5;
  --comms-deep: #006da2;
  --comms-night: #073654;
  --accent: var(--it);
  --accent-ink: var(--it-deep);
  --accent-soft: #e5f8ef;
  --accent-night: var(--it-night);
}

/* Visible social destinations, shared by the footer and contact page. */
.footer-social { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: 0 0 30px; margin-bottom: 30px; border-bottom: 1px solid #ceded7; }
.footer-social>span { font-size: 1rem; font-weight: 600; color: #254a3d; }
.social-links { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.social-links a { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; border: 1px solid #c7dcd2; background: #fff; color: #234a3b; border-radius: 7px; padding: 11px 15px; font-size: .875rem; font-weight: 600; line-height: 1.4; transition: border-color .2s, background .2s; }
.social-links a:hover { background: #e1f6ec; border-color: #00956d; }
.social-links a:focus-visible { outline: 3px solid #0079b1; outline-offset: 3px; }
.social-links svg { flex-shrink: 0; }
.theme-comms .social-links a { color: #12557b; border-color: #bfd7e6; }
.theme-comms .social-links a:hover { background: #e0f1fc; border-color: #008fc5; }
.contact-social { margin-top: 30px; border-top: 1px solid #d3e1da; padding-top: 26px; }
.contact-social h3 { font-size: 1rem; font-weight: 600; margin: 0 0 16px; }
@media(max-width:640px) {
  .footer-social { flex-direction: column; align-items: start; gap: 16px; padding-bottom: 25px; margin-bottom: 25px; }
  .social-links { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .social-links a { justify-content: start; padding: 12px 14px; }
}
body.theme-comms {
  --accent: var(--comms);
  --accent-ink: var(--comms-deep);
  --accent-soft: #e7f5ff;
  --accent-night: var(--comms-night);
}
.header { border-bottom: 0; box-shadow: 0 1px 0 #17252a16; }
.header::after { content: ''; position: absolute; inset: auto 0 0; height: 3px; background: linear-gradient(90deg,var(--it) 0 49.8%,var(--comms) 50.2% 100%); }
.nav nav a[href='/managed-it/'] { color: var(--it-deep); }
.nav nav a[href='/communications/'] { color: var(--comms-deep); }
.hero { padding-block: 70px; }
.hero h1 em { color: #007e5b; }
.proof-band { background: linear-gradient(100deg,#006b4f 0%,#00695e 43%,#005c8b 100%); border: 0; color: white; }
.proof-band span:first-child { color: #d1f6ea; }
.proof-band span+span { border-color: #ffffff45; }
.service-card.it { background: #005d46; color: white; }
.service-card.comm { background: #006397; color: white; }
.service-card .card-overline { color: #b4ffe2; }
.service-card.comm .card-overline { color: #b9e9ff; }
.service-card p { color: #e2f4ef; }
.service-card.comm p { color: #e2f1ff; }
.service-card .service-tags span { border-color: #ffffff42; background: #ffffff0b; }
.service-card .card-link { border-color: #ffffff40; }
.service-card:hover { box-shadow: 0 18px 40px #163b3220; }
.connected { background: #073f68; }
.connected .eyebrow { color: #8ddcfe; }
.connected h2 em { color: #70dbff; }
.connected p:not(.eyebrow) { color: #d3e8f8; }
.capability-list,.capability-list>a { border-color: #69b0da55; }
.capability-list>a>span:first-child { color: #94ccee; }
.capability-list>a>span:last-child,.capability-list>a:hover { color: #81ddff; }
.closing { background: #006748; border: 0; color: white; }
.closing .eyebrow { color: #a7ffd9; }
.closing p:not(.eyebrow) { color: #d8f4e7; }
.closing .button.primary { background: white; color: #005c41; }
.closing .button.primary:hover { background: #d5ffec; }
.theme-comms .button.primary { background: #0077af; color: #fff; }
.theme-comms .button.primary:hover { background: #005e91; }
.theme-comms .eyebrow,.theme-comms .section-heading .eyebrow,.theme-comms .sticky-heading .eyebrow,.theme-comms .faq-layout .eyebrow { color: var(--comms-deep); }
.theme-comms .feature-number { color: #006397; background: #e0f3ff; }
.theme-comms .row-number,.theme-comms .service-row>span:last-child,.theme-comms .service-row:hover h3,.theme-comms .faq summary>span { color: #007bb0; }
.theme-comms .related-grid .inline-link,.theme-comms .inline-link:hover,.theme-comms .card-overline { color: #006b9b; }
.theme-comms .related-grid>a:hover { background: #edf7ff; }
.theme-comms .closing { background: #075687; }
.theme-comms .closing .eyebrow { color: #9bddff; }
.theme-comms .closing p:not(.eyebrow) { color: #d9f0ff; }
.theme-comms .closing .button.primary { color: #064e7d; background: #fff; }
.theme-comms .price-card.featured { background: #ebf7ff; border-color: #6bbbe8; }
.theme-comms .radio-group { background: #edf4f9; }
.theme-comms .radio-group input:checked+span,.theme-comms .check-list li:before { color: #006b9b; }
.theme-comms .pricing-explainer { border-color: #24afe3; }
.theme-comms .button.outline { color: #006a99; border-color: #a9cfe2; }
.theme-comms .button.outline:hover { background: #e4f5ff; }
.theme-comms .legacy-links a:hover { color: #006b9b; }
.theme-comms .download-index { color: #006b9b; }
.theme-comms .footer-links>div:first-child h3 { color: var(--it-deep); }
.footer-links>div:first-child h3 { color: var(--it-deep); }
.footer-links>div:nth-child(2) h3 { color: var(--comms-deep); }
.footer { background: #eff7f4; }
.theme-comms .footer { background: #f0f6fb; }
.feature-grid article { border-top: 3px solid var(--accent); }
.process-grid>article { border-top: 3px solid #00b784; }
.process-grid>article>span { background: #d4f5e7; border-radius: 50%; width: 36px; height: 36px; display: inline-grid; place-items: center; }
.industry-grid article { border: 0; border-radius: 12px; background: white; padding: 26px; border-top: 4px solid #00bf8c; }
.industry-grid article:nth-child(even) { border-color: #009cd5; }
.soft:has(.industry-grid) { background: #e8f4f0; }
.price-card { border-top: 4px solid var(--accent); }
@media(max-width:640px) {
  .hero { padding-block: 38px; }
  .industry-grid article { padding: 24px; }
}

/* Photography and more substantial service-color surfaces. */
.home-hero-backdrop { background: linear-gradient(115deg,#f6fffa 5%,#ecfff5 43%,#e5f4ff 100%); }
.hero-art.people-art { border-radius: 20px; box-shadow: 0 20px 45px #0a423f1d; min-height: 548px; }
.hero-art.people-art img { filter: none; object-position: 59% center; }
.hero-art.people-art::after { background: linear-gradient(180deg,#061f2b86 0%,transparent 24%,transparent 54%,#051f2adc 100%); }
.hero-art.people-art .art-label { color: #fff; font-size: .75rem; line-height: 1.6; letter-spacing: .09em; }
.hero-art.people-art .art-bottom { align-items: end; gap: 20px; }
.hero-art.people-art .art-bottom b { color: #fff; }
.hero-service-key { display: flex; flex-direction: column; align-items: start; gap: 8px; font: 600 .75rem 'DM Sans',sans-serif; letter-spacing: 0; }
.hero-service-key>span { padding: 7px 11px; border-radius: 4px; }
.hero-service-key .key-it { color: #043426; background: #69edbd; }
.hero-service-key .key-comms { color: #fff; background: #0077b1; }
.service-card.photo-card { padding: 32px; overflow: hidden; }
.photo-card .card-photo { margin: -32px -32px 28px; height: 240px; position: relative; overflow: hidden; }
.card-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; transition: transform .5s; }
.card-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 50%,#005d4666); }
.comm .card-photo::after { background: linear-gradient(180deg,transparent 50%,#00639755); }
.photo-card:hover .card-photo img { transform: scale(1.035); }
.photo-card h3 { margin-top: 22px; }
.photo-card .service-tags { margin-bottom: 28px; }
.connected-grid { gap: 80px; }
.connected-aside { min-width: 0; }
.connected-photo { margin: 0 0 18px; height: 250px; overflow: hidden; border-radius: 13px; border: 1px solid #9dd2ef55; }
.connected-photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 38%; }
.connected .capability-list>a { padding: 17px 0; font-size: 1rem; }
.photo-intro { padding-top: 22px; padding-bottom: 54px; }
.photo-intro>.wrap>.breadcrumbs { margin-bottom: 30px; }
.intro-layout { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 64px; }
.intro-copy { min-width: 0; }
.photo-intro h1 { font-size: clamp(2.5rem,3.9vw,3.7rem); line-height: 1.14; max-width: 720px; letter-spacing: -.045em; }
.photo-intro .lede { font-size: 1rem; line-height: 1.8; max-width: 620px; }
.intro-visual { margin: 0; align-self: stretch; position: relative; overflow: hidden; min-height: 420px; border-radius: 17px; box-shadow: 0 20px 38px #00172822; }
.intro-visual img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 58% 45%; }
.intro-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 50%,#061d26d9); }
.intro-visual figcaption { position: absolute; z-index: 1; left: 27px; right: 27px; bottom: 25px; color: white; }
.intro-visual figcaption>span { display: block; font-size: .75rem; letter-spacing: .08em; margin-bottom: 10px; color: #b9ffe3; }
.intro-visual figcaption>strong { display: block; font-family: Manrope,sans-serif; font-size: 1.2rem; line-height: 1.4; font-weight: 550; letter-spacing: -.025em; }
.photo-intro.intro-it { background: linear-gradient(118deg,#004f3f 0%,#007153 65%,#069c72 100%); color: white; }
.photo-intro.intro-it .breadcrumbs { color: #b0e6d1; }
.photo-intro.intro-it .eyebrow { color: #95f7cf; }
.photo-intro.intro-it .lede { color: #e0f4ec; }
.photo-intro.intro-it .button.text { color: #fff; }
.photo-intro.intro-it .button.text:hover { color: #9fffd8; }
.photo-intro.intro-it .intro-visual { border: 1px solid #6ddeb357; }
.photo-intro.intro-comms { background: linear-gradient(116deg,#06446f 0%,#006ba4 65%,#009cd5 100%); color: #fff; }
.photo-intro.intro-comms .breadcrumbs { color: #c1e7fe; }
.photo-intro.intro-comms .eyebrow { color: #a9e8ff; }
.photo-intro.intro-comms .lede { color: #e4f4ff; }
.photo-intro.intro-comms .button.primary { background: #fff; color: #00699c; }
.photo-intro.intro-comms .button.primary:hover { background: #d2f1ff; color: #004d76; }
.photo-intro.intro-comms .button.text { color: #fff; }
.photo-intro.intro-comms .button.light-outline { border-color: #b0e1ff99; color: white; }
.photo-intro.intro-comms .button.text:hover { color: #b9ecff; }
.photo-intro.intro-comms .intro-visual { border: 1px solid #9edfff6b; }
.intro-comms .intro-visual figcaption>span { color: #a7eaff; }
.intro-comms .intro-tags { color: #d0f0ff; border-color: #9ce2ff66; margin-top: 28px; gap: 22px; flex-wrap: wrap; }
.photo-intro.intro-brand { background: linear-gradient(115deg,#e2f8ed,#e5f4ff); }
.text-intro .intro-layout { display: block; }
.photo-intro .actions { gap: 15px; }
.photo-intro .actions .button { font-size: .9375rem; gap: 14px; }
.article-art.article-photo { padding: 0; position: relative; height: 205px; min-height: 0; display: block; background: #005a46; overflow: hidden; }
.article-photo img { width: 100%; height: 100%; object-fit: cover; display: block; object-position: 55% 42%; transition: transform .4s; }
.article-card:hover .article-photo img { transform: scale(1.03); }
.article-art.article-photo .article-topic { position: absolute; bottom: 17px; left: 20px; color: #fff; background: #064d36; padding: 7px 11px; font-size: .8125rem; font-weight: 650; line-height: 1.4; letter-spacing: .04em; border-radius: 4px; }
.article-card>div:last-child>.card-overline { display: none; }
@media(min-width:1500px) {
  .hero-art.people-art { min-height: 575px; }
  .intro-visual { min-height: 450px; }
}
@media(max-width:1100px) {
  .intro-layout { gap: 35px; grid-template-columns: 1.15fr 1fr; }
  .photo-intro h1 { font-size: 2.85rem; }
  .intro-visual { min-height: 430px; }
  .connected-grid { gap: 45px; }
  .hero-art.people-art .art-bottom { flex-direction: column; align-items: start; gap: 15px; }
  .hero-service-key { flex-direction: row; flex-wrap: wrap; }
}
@media(max-width:800px) {
  .intro-layout { grid-template-columns: 1fr; gap: 33px; }
  .photo-intro h1 { font-size: 3.1rem; }
  .intro-visual { min-height: 370px; max-height: 410px; }
  .intro-visual img { object-position: center 42%; }
  .photo-intro .lede { max-width: 100%; }
  .connected-grid { grid-template-columns: 1fr; }
  .connected-photo { height: 330px; }
  .photo-card .card-photo { height: 205px; }
}
@media(max-width:640px) {
  .hero-art.people-art { min-height: 390px; }
  .hero-art.people-art img { object-position: 57% center; }
  .hero-art.people-art .art-label { gap: 18px; font-size: .75rem; letter-spacing: .06em; }
  .hero-art.people-art .art-bottom { left: 22px; right: 22px; bottom: 24px; }
  .hero-service-key { gap: 7px; }
  .hero-service-key>span { padding: 6px 9px; }
  .service-card.photo-card { padding: 26px; }
  .photo-card .card-photo { height: 215px; margin: -26px -26px 24px; }
  .photo-card h3 { font-size: 1.75rem; }
  .connected-photo { height: 235px; }
  .connected .capability-list>a { padding: 18px 0; }
  .photo-intro { padding-bottom: 35px; }
  .photo-intro>.wrap>.breadcrumbs { margin-bottom: 28px; }
  .photo-intro h1 { font-size: clamp(2.2rem,9.5vw,3rem); }
  .photo-intro .actions .button { font-size: .875rem; }
  .intro-layout { gap: 28px; }
  .intro-visual { min-height: 305px; max-height: 345px; }
  .intro-visual figcaption { left: 21px; right: 21px; bottom: 23px; }
  .intro-visual figcaption>strong { font-size: 1.15rem; }
  .intro-comms .intro-tags { gap: 15px; font-size: .8125rem; margin-top: 25px; }
  .article-art.article-photo { height: 205px; }
}
