/* Garner Solutions additions on top of the original template (home.css). */
:root{--g-blue:#5865AD;--g-blue-dark:#46529A;--g-midnight:#263358;--g-porcelain:#F8F9FC}

/* Hero slides: explicit backgrounds (the template's 1x files were missing, which blanked the hero) */
.hero-slider__item--g1{background-image:url(../d8dfe02a/img/home-header-slider/planning.webp)!important}
.hero-slider__item--g2{background-image:url(../d8dfe02a/img/home-header-slider/slide_2.webp)!important}
.hero-slider__item--g3{background-image:url(img/slide-wattfoundry.webp)!important;background-position:center top!important}
.hero-slider__item--g4{background-image:url(img/slide-mahjong.webp)!important}
.hero-slider__item--g5{background-image:url(../d8dfe02a/img/home-header-slider/slide_3.webp)!important}
.hero-slider__item--g1,.hero-slider__item--g2,.hero-slider__item--g3,.hero-slider__item--g4,.hero-slider__item--g5{background-size:cover;background-position:center}
.overlay-60{position:absolute;inset:0;background:rgba(20,28,52,.62)}
.overlay-70{position:absolute;inset:0;background:rgba(20,28,52,.88)}
.hero-slider__content .hero-cta{display:inline-flex;margin-top:28px;gap:12px;flex-wrap:wrap;position:relative}
.g-btn{display:inline-flex;align-items:center;justify-content:center;font:600 14px/1 Montserrat,Arial,sans-serif;text-transform:uppercase;letter-spacing:.03em;padding:17px 30px;background:var(--g-blue);color:#fff!important;border:2px solid var(--g-blue);text-decoration:none;transition:background .2s,border-color .2s;cursor:pointer}
.g-btn:hover{background:var(--g-blue-dark);border-color:var(--g-blue-dark)}
.g-btn--ghost{background:transparent;border-color:#fff}
.g-btn--ghost:hover{background:#fff;color:var(--g-midnight)!important;border-color:#fff}
.g-btn--outline{background:transparent;color:var(--g-blue)!important}
.g-btn--outline:hover{background:var(--g-blue);color:#fff!important}

/* Logo sizing for Astra's lockup */
.logo{background-size:contain!important;background-repeat:no-repeat!important;background-position:left center!important}

/* Proof strip (replaces the empty logo carousel) */
.g-proof{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 44px;margin:36px auto 0;max-width:980px}
.g-proof a,.g-proof span{font:600 15px/1.2 Montserrat,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:#323232;text-decoration:none}
.g-proof a:hover{color:var(--g-blue)}
.g-proof small{display:block;font-weight:400;text-transform:none;letter-spacing:0;color:#757575;font-size:13px;margin-top:4px}

/* Stats row */
.g-stats{background:var(--g-midnight);color:#fff;padding:64px 0}
.g-stats .container{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.g-stat b{display:block;font:700 48px/1 Montserrat,Arial,sans-serif;color:#fff}
.g-stat span{display:block;margin-top:12px;font:400 15px/1.45 Montserrat,Arial,sans-serif;color:#C6CCE4}
@media (max-width:900px){.g-stats .container{grid-template-columns:repeat(2,1fr);row-gap:40px}}

/* Case studies (Intellectsoft-style: outcome over image) */
.g-cases{padding:90px 0;background:#fff}
.g-cases h2{text-align:center;text-transform:uppercase;font:600 36px/1.2 Montserrat,Arial,sans-serif;color:#323232;margin:0 0 16px}
.g-cases .g-sub{text-align:center;max-width:720px;margin:0 auto 48px;color:#757575;font:400 17px/1.6 Montserrat,Arial,sans-serif}
.g-case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.g-case{display:flex;flex-direction:column;background:#fff;box-shadow:0 6px 24px rgba(38,51,88,.10);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}
.g-case:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(38,51,88,.16)}
.g-case-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--g-midnight)}
.g-case-media img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.g-case-outcome{position:absolute;left:0;right:0;bottom:0;padding:14px 20px;background:rgba(38,51,88,.92);color:#fff;font:600 18px/1.3 Montserrat,Arial,sans-serif}
.g-case-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.g-case-body h3{margin:0;font:600 19px/1.35 Montserrat,Arial,sans-serif;color:#323232}
.g-case-body p{margin:0;font:400 15px/1.6 Montserrat,Arial,sans-serif;color:#757575}
.g-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.g-tags span{font:400 12px/1 Montserrat,Arial,sans-serif;color:#555;border:1px solid #d6d6d6;border-radius:20px;padding:6px 10px}
@media (max-width:980px){.g-case-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.g-case-grid{grid-template-columns:1fr}.g-cases h2{font-size:28px}}

/* Contact form (native; replaces the deleted HubSpot form) */
.g-form{display:grid;gap:16px;margin-top:8px}
.g-form .g-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.g-form label{display:block;font:600 13px/1.3 Montserrat,Arial,sans-serif;color:#33475b;margin-bottom:6px}
.g-form label i{color:#f2545b;font-style:normal}
.g-form input,.g-form textarea{width:100%;box-sizing:border-box;font:400 15px/1.4 Montserrat,Arial,sans-serif;color:#33475b;background:#f5f8fa;border:1px solid #cbd6e2;border-radius:3px;padding:11px 12px}
.g-form input:focus,.g-form textarea:focus{outline:none;border-color:var(--g-blue);box-shadow:0 0 0 3px rgba(88,101,173,.18);background:#fff}
.g-form textarea{min-height:120px;resize:vertical}
.g-hp{position:absolute;left:-9999px}
.g-status{min-height:22px;font:600 14px/1.4 Montserrat,Arial,sans-serif}
.g-status.ok{color:#2c6b46}.g-status.err{color:#b3261e}
@media (max-width:640px){.g-form .g-row{grid-template-columns:1fr}}
.contact-information{background:var(--g-midnight)!important}

/* Footer text links */
.footer .sub-menu li a{color:inherit;text-decoration:none}
.footer .sub-menu li a:hover{color:var(--g-blue)}

/* Services CTA band: template background image was missing */
.service-cta--team-extension{background:linear-gradient(rgba(38,51,88,.78),rgba(38,51,88,.78)),url(../d8dfe02a/img/home-header-slider/slide_2.webp) center/cover no-repeat!important}
/* Contact hero: darken the photo so the white logo and text read */
.hero-contact-new{position:relative}
.hero-contact-new::before{content:"";position:absolute;inset:0;background:rgba(20,28,52,.66);pointer-events:none}
.hero-contact-new > .container{position:relative;z-index:1}
/* Mobile menu button in brand blue */


/* FAQ (services page) */
.g-faq{padding:90px 0;background:#fff}
.g-faq h2{text-align:center;text-transform:uppercase;font:600 36px/1.2 Montserrat,Arial,sans-serif;color:#323232;margin:0 0 40px}
.g-faq details{max-width:860px;margin:0 auto;border-bottom:1px solid #e3e6ef}
.g-faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;position:relative;font:600 18px/1.4 Montserrat,Arial,sans-serif;color:#323232}
.g-faq summary::-webkit-details-marker{display:none}
.g-faq summary::after{content:"+";position:absolute;right:6px;top:18px;font:400 28px/1 Montserrat,Arial,sans-serif;color:var(--g-blue)}
.g-faq details[open] summary::after{content:"\2212"}
.g-faq details p{margin:0 0 22px;font:400 16px/1.7 Montserrat,Arial,sans-serif;color:#757575;max-width:760px}
.g-faq summary:focus-visible{outline:2px solid var(--g-blue);outline-offset:4px}
@media (max-width:640px){.g-faq h2{font-size:28px}.g-faq summary{font-size:16px}}

.g-footer-loc{display:block;margin-top:8px;font:400 14px/1.4 Montserrat,Arial,sans-serif;color:#757575}

/* Case study pages (/work/*) */
.g-case-hero{background-size:cover!important;background-position:center!important;position:relative}
.g-case-hero::before{content:"";position:absolute;inset:0;background:rgba(20,28,52,.78);pointer-events:none}
.g-case-hero > .container{position:relative;z-index:1}
.g-case-hero .g-btn{margin-top:28px}
.g-crumbs{font:400 14px/1.4 Montserrat,Arial,sans-serif;color:#C6CCE4;margin:0 0 14px}
.g-crumbs a{color:#fff;text-decoration:none}
.g-crumbs a:hover{text-decoration:underline}
.g-case-facts{background:#fff;border-bottom:1px solid #e3e6ef}
.g-case-facts dl{display:grid;grid-template-columns:repeat(4,1fr);margin:0}
.g-case-facts dl > div{padding:26px 20px;border-left:1px solid #e3e6ef}
.g-case-facts dl > div:first-child{border-left:0;padding-left:0}
.g-case-facts dt{font:600 12px/1.3 Montserrat,Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#757575;margin-bottom:6px}
.g-case-facts dd{margin:0;font:600 16px/1.4 Montserrat,Arial,sans-serif;color:#323232}
@media (max-width:760px){.g-case-facts dl{grid-template-columns:1fr 1fr}.g-case-facts dl > div{border-left:0;padding-left:0}}
.g-stats--3{grid-template-columns:repeat(3,1fr)!important}
@media (max-width:900px){.g-stats--3{grid-template-columns:1fr!important}}
.g-case-article{padding:80px 0 60px;background:#fff}
.g-case-article .container{max-width:900px}
.g-case-section{margin-bottom:48px}
.g-eyebrow{font:600 13px/1.3 Montserrat,Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--g-blue);margin:0 0 10px}
.g-case-section h2{font:600 30px/1.25 Montserrat,Arial,sans-serif;color:#323232;margin:0 0 18px;text-transform:none}
.g-case-section p{font:400 17px/1.75 Montserrat,Arial,sans-serif;color:#555;margin:0 0 14px}
.g-bullets{margin:0;padding:0;list-style:none}
.g-bullets li{position:relative;padding:0 0 12px 28px;font:400 17px/1.65 Montserrat,Arial,sans-serif;color:#555}
.g-bullets li::before{content:"";position:absolute;left:2px;top:.55em;width:10px;height:10px;background:var(--g-blue)}
.g-shot{margin:0 0 56px;box-shadow:0 10px 36px rgba(38,51,88,.14)}
.g-shot img{display:block;width:100%;height:auto}
.g-tags--case{margin:8px 0 0}
@media (max-width:640px){.g-case-section h2{font-size:24px}.g-case-section p,.g-bullets li{font-size:16px}}

/* Case pages v2: text sections, feature tour, steps, video, gallery */
.g-case-article{padding:56px 0!important}
.g-case-article + .g-case-article{padding-top:0!important}
.g-case-article--end{padding-bottom:64px!important}
.g-case-article h2,.g-case-wide h2{font:600 30px/1.25 Montserrat,Arial,sans-serif;color:#323232;margin:0 0 18px;text-transform:none}
.g-case-article p{font:400 17px/1.75 Montserrat,Arial,sans-serif;color:#555;margin:0 0 14px;max-width:780px}
.g-case-article a{color:var(--g-blue)}
.g-case-wide{padding:80px 0;background:#fff}
.g-case-wide--tint{background:#f4f6fb}
.g-case-wide--dark{background:var(--g-midnight)}
.g-case-wide--dark h2{color:#fff}
.g-case-wide--dark .g-eyebrow{color:#AEB6E3}
.g-case-wide--dark .g-case-head p{color:#C6CCE4}
.g-case-head{max-width:760px;margin:0 auto 48px;text-align:center}
.g-case-head p{font:400 17px/1.7 Montserrat,Arial,sans-serif;color:#757575;margin:0}
.g-note{text-align:center;font:400 13px/1.5 Montserrat,Arial,sans-serif;color:#8a8f9c;margin:28px 0 0}
.g-feature{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:center;margin-bottom:72px}
.g-feature:last-of-type{margin-bottom:0}
.g-feature--flip .g-feature__media{order:2}
.g-feature__media{box-shadow:0 12px 40px rgba(38,51,88,.16);background:#fff;max-height:520px;overflow:hidden}
.g-feature__media img{display:block;width:100%;height:auto}
.g-feature__text h3{font:600 24px/1.3 Montserrat,Arial,sans-serif;color:#323232;margin:0 0 14px}
.g-feature__text p{font:400 17px/1.7 Montserrat,Arial,sans-serif;color:#555;margin:0}
@media (max-width:900px){.g-feature{grid-template-columns:1fr;gap:24px;margin-bottom:56px}.g-feature--flip .g-feature__media{order:0}}
.g-steps{list-style:none;margin:0 auto;padding:0;max-width:1000px;counter-reset:none}
.g-step{display:grid;grid-template-columns:56px 1fr 1.1fr;gap:28px;align-items:start;padding:32px 0;border-top:1px solid #dfe3ee;position:relative}
.g-step:first-child{border-top:0}
.g-step--text{grid-template-columns:56px 1fr}
.g-step__num{width:48px;height:48px;border-radius:50%;background:var(--g-blue);color:#fff;display:flex;align-items:center;justify-content:center;font:700 20px/1 Montserrat,Arial,sans-serif}
.g-step__text h3{font:600 21px/1.3 Montserrat,Arial,sans-serif;color:#323232;margin:8px 0 10px}
.g-step__text p{font:400 16px/1.7 Montserrat,Arial,sans-serif;color:#555;margin:0}
.g-step__media{box-shadow:0 8px 28px rgba(38,51,88,.14);background:#fff;max-height:420px;overflow:hidden}
.g-step__media img{display:block;width:100%;height:auto}
@media (max-width:860px){.g-step,.g-step--text{grid-template-columns:48px 1fr;gap:16px}.g-step__media{grid-column:1/-1}}
.g-video{max-width:1000px;margin:0 auto;box-shadow:0 16px 48px rgba(0,0,0,.35);background:#000}
.g-video video{display:block;width:100%;height:auto;aspect-ratio:16/9}
.g-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.g-gallery figure{margin:0}
.g-gallery img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;box-shadow:0 8px 28px rgba(38,51,88,.14)}
.g-gallery figcaption{font:400 15px/1.5 Montserrat,Arial,sans-serif;color:#555;margin-top:12px}
@media (max-width:980px){.g-gallery{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.g-gallery{grid-template-columns:1fr}.g-case-article h2,.g-case-wide h2{font-size:24px}}
.g-next{margin-top:18px!important;font-weight:600!important}

.g-case-wide--dark{background:#1a2342!important}

.g-step__media img[src*="bw-phone"]{max-width:300px;margin:0 auto}
.g-step__media:has(img[src*="bw-phone"]){box-shadow:none;background:transparent;max-height:none}
.g-step__media img[src*="bw-phone"]{box-shadow:0 8px 28px rgba(38,51,88,.18)}

/* Contact section: one full-width, two-panel block (was a 499px card + offset 360px panel) */
#contact-section .contact-section:not(.contact-section-new){max-width:1100px;margin:0 auto;align-items:stretch;box-shadow:0 18px 50px rgba(38,51,88,.14)}
#contact-section .contact-section:not(.contact-section-new) #form-wrap{flex:1.45 1 0;min-width:0}
#contact-section .contact-section:not(.contact-section-new) .contact__form{max-width:none!important;width:auto!important;height:100%;box-sizing:border-box;padding:52px 60px!important;box-shadow:none!important;border-radius:0}
#contact-section .contact-section:not(.contact-section-new) .form__form___hub{width:auto}
#contact-section .contact-section:not(.contact-section-new) .contact-information{flex:1 1 0;max-width:none!important;width:auto!important;margin:0!important;padding:52px 48px!important;display:flex;flex-direction:column;justify-content:center;border-radius:0}
.contact-information h4{font-size:26px!important;margin-bottom:28px!important}
.contact-information ul li{font-size:15px!important;line-height:1.6!important}
.g-direct{margin-top:32px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18);display:grid;gap:8px}
.g-direct__label{margin:0 0 4px!important;font:600 13px/1.4 Montserrat,Arial,sans-serif!important;text-transform:uppercase;letter-spacing:.1em;color:#AEB6E3!important}
.g-direct a,.g-direct span{font:600 17px/1.4 Montserrat,Arial,sans-serif;color:#fff!important;text-decoration:none}
.g-direct a:hover{text-decoration:underline}
.g-direct span{font-weight:400;color:#C6CCE4!important}
.contact--title{font-size:32px!important;margin-bottom:20px!important}
@media (max-width:900px){
  #contact-section .contact-section:not(.contact-section-new){flex-direction:column}
  #contact-section .contact-section:not(.contact-section-new) .contact__form{padding:36px 24px!important}
  #contact-section .contact-section:not(.contact-section-new) .contact-information{padding:36px 24px!important}
}
#contact-section .contact-section:not(.contact-section-new){align-items:stretch!important}
#contact-section .contact-section:not(.contact-section-new) > .contact-information{align-self:stretch!important;height:auto!important}
#contact-section .contact-section:not(.contact-section-new) #form-wrap{align-self:stretch}
.contact-information h4{text-align:left!important}
/* Contact page: left column fills the space beside the overlapping form */
.g-contact-side{flex:1 1 0;max-width:520px;padding:24px 48px 0 0}
.g-contact-side h2{font:600 30px/1.25 Montserrat,Arial,sans-serif;color:#323232;margin:0 0 24px;text-transform:none}
.g-contact-steps{background:none!important;padding:0!important;margin:0!important;max-width:none!important;width:auto!important;color:#323232}
.g-contact-steps ul li{color:#555!important}
.g-direct--light{border-top-color:#e3e6ef}
.g-direct--light .g-direct__label{color:var(--g-blue)!important}
.g-direct--light a{color:#323232!important}
.g-direct--light span{color:#757575!important}
@media (max-width:767px){.g-contact-side{max-width:none;padding:0 0 32px;order:2}}
/* v3: grid so both panels are always the same height */
#contact-section .contact-section:not(.contact-section-new){display:grid!important;grid-template-columns:1.45fr 1fr;align-items:stretch!important}
#contact-section .contact-section:not(.contact-section-new) > .contact-information{height:100%!important;box-sizing:border-box}
@media (max-width:900px){#contact-section .contact-section:not(.contact-section-new){grid-template-columns:1fr}}
/* contact page steps on a light background */
.g-contact-steps ul li:before{background-color:var(--g-blue)!important;color:#fff!important;border-radius:50%}
.g-contact-steps ul li{font-size:16px!important;line-height:1.6!important}
.g-form input,.g-form textarea{width:100%!important;max-width:none!important}
.g-form .g-row > div{min-width:0}
#contact-section .contact-section .contact-information{max-height:none!important}
@media (max-width:767px){.contact-section-new .contact__form,.contact-section-new .form__form___hub{width:auto!important;max-width:none!important;box-sizing:border-box}}
.contact-section-new .review__contact{flex:1 1 auto;width:100%}
@media (min-width:768px){.contact-section-new #form-wrap{max-width:480px!important;width:480px!important}}
