@font-face{font-family:GAFN Display;src:url('../fonts/oxanium.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
@font-face{font-family:GAFN Sans;src:url('../fonts/manrope.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
body.gafn-homepage-template{margin:0;background:#f3f8fc}
body.gafn-homepage-template>.gafn-skip-link,body.gafn-homepage-template>.gafn-minimal-footer{display:none!important}
.gf-site{--gf-ink:#091b56;--gf-line:rgba(9,27,86,.18);color:var(--gf-ink);font-family:GAFN Sans,Arial,sans-serif;font-size:17px;line-height:1.7;background:#f3f8fc;isolation:isolate;text-align:left;width:100%;overflow:clip}
.gf-site *,.gf-site *::before,.gf-site *::after{box-sizing:border-box}
.gf-site h1,.gf-site h2,.gf-site h3,.gf-site p{margin:0;color:var(--gf-ink)}
.gf-site h1,.gf-site h2,.gf-site h3{font-family:GAFN Display,GAFN Sans,Arial,sans-serif;font-style:normal;font-weight:600;text-transform:none}
.gf-site a{color:var(--gf-ink);text-decoration:none}
.gf-site a:hover{text-decoration:underline;text-underline-offset:.25em}
.gf-site a:focus-visible,.gf-site summary:focus-visible{outline:3px solid var(--gf-ink);outline-offset:5px;border-radius:4px}
.gf-site .gf-skip{position:absolute;top:12px;left:20px;z-index:20;padding:10px 16px;background:#fff;transform:translateY(-200%)}
.gf-site .gf-skip:focus{transform:translateY(0)}
.gf-site .gf-hero{position:relative;width:100%;aspect-ratio:1672/941;min-height:580px;display:flex;flex-direction:column;overflow:hidden;background:#dcebfa}
.gf-site .gf-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;z-index:0}
.gf-site .gf-header{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:2.5% 4.4% 0}
.gf-site .gf-brand{display:block;width:clamp(175px,20vw,336px);flex-shrink:0;line-height:0}
.gf-site .gf-brand img{display:block;width:100%;height:auto}
.gf-site .gf-nav{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid rgba(255,255,255,.97);border-radius:80px;background:rgba(240,248,255,.64);box-shadow:0 2px 12px rgba(18,94,166,.13),inset 0 0 0 2px rgba(255,255,255,.35);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.gf-site .gf-nav a{padding:6px 15px;white-space:nowrap;font-size:clamp(14px,1.28vw,21px);line-height:1.6;font-weight:600;min-height:40px;display:flex;align-items:center}
.gf-site .gf-nav a[aria-current=page]{border-radius:40px;background:rgba(255,255,255,.66);box-shadow:inset 0 0 0 1px rgba(255,255,255,.95)}
.gf-site .gf-intro{position:relative;z-index:1;margin:1.4% 5.1% 0;width:max-content;max-width:90%;padding:0 0 8px;background:radial-gradient(ellipse at 35% 40%,rgba(245,250,255,.45),rgba(245,250,255,0) 73%)}
.gf-site .gf-intro h1{font-size:clamp(42px,5.1vw,92px);line-height:1.13;letter-spacing:-.045em;white-space:nowrap;text-shadow:0 1px 0 rgba(255,255,255,.7)}
.gf-site .gf-intro p{font-size:clamp(19px,1.87vw,33px);line-height:1.28;font-weight:600;max-width:43ch;margin-top:8px;letter-spacing:-.024em;text-wrap:pretty}
.gf-site .gf-hero-bottom{position:relative;z-index:1;margin-top:auto;padding:18px 4.4% 2.5%;background:linear-gradient(0deg,rgba(244,249,255,.91),rgba(244,249,255,.61) 73%,rgba(244,249,255,0))}
.gf-site .gf-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.gf-site .gf-actions a{display:inline-flex;align-items:center;gap:16px;min-height:44px;font-weight:600;font-size:clamp(17px,1.65vw,28px);line-height:1.4;letter-spacing:-.025em}
.gf-site .gf-hero-bottom .gf-actions a:first-child{background:#0b2a65;color:#fff;border:1px solid #0b2a65;border-radius:9px;padding:10px 18px;min-height:50px;box-shadow:0 6px 18px rgba(9,27,86,.12);text-decoration:none}
.gf-site .gf-hero-bottom .gf-actions a:first-child:hover{background:#173b80;border-color:#173b80}
.gf-site .gf-hero-bottom .gf-actions a+a{padding-left:2px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.gf-site .gf-actions span{font-size:1.2em;font-family:Arial,sans-serif}
.gf-site .gf-hero-bottom p{font-size:clamp(15px,1.28vw,22px);margin-top:5px;letter-spacing:-.02em}
.gf-site .gf-content{max-width:1350px;width:100%;margin:0 auto;padding:0 5%;outline:none}
.gf-site .gf-section{padding:72px 0;border-bottom:1px solid var(--gf-line);scroll-margin-top:24px}
.gf-site .gf-eyebrow{font-size:14px;letter-spacing:.09em;font-weight:700;margin-bottom:18px;text-transform:uppercase}
.gf-site h2{font-size:clamp(28px,3.1vw,48px);line-height:1.2;letter-spacing:-.03em;max-width:28ch;margin-bottom:28px}
.gf-site h3{font-size:25px;line-height:1.25;letter-spacing:-.02em;margin-bottom:16px}
.gf-site .gf-overview h2{max-width:31ch}
.gf-site .gf-columns{display:grid;grid-template-columns:1fr 1fr;gap:52px}
.gf-site .gf-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px;margin-top:38px}
.gf-site .gf-service{border-top:2px solid var(--gf-line);padding-top:26px;display:flex;flex-direction:column;align-items:flex-start}
.gf-site .gf-service p{margin-bottom:22px}
.gf-site .gf-link{display:inline-block;font-size:16px;font-weight:700;min-height:44px;padding:8px 0;text-decoration:underline;text-underline-offset:5px;margin-top:auto}
.gf-site .gf-note{font-size:14px;line-height:1.65;margin-top:20px}
.gf-site .gf-projects p{margin-bottom:14px;max-width:70ch}
.gf-site .gf-faq details{border-top:1px solid var(--gf-line);padding:20px 0}
.gf-site .gf-faq summary{cursor:pointer;font-size:18px;font-weight:600;list-style:disclosure-closed;padding:5px 0;min-height:44px}
.gf-site .gf-faq details[open] summary{list-style:disclosure-open}
.gf-site .gf-faq details p{max-width:83ch;margin-top:16px;padding-right:16px}
.gf-site .gf-contact{border:0;padding-bottom:86px}
.gf-site .gf-contact p{max-width:65ch;margin-bottom:22px}
.gf-site .gf-contact .gf-actions{gap:32px}
.gf-site .gf-contact .gf-actions a{font-size:19px;text-decoration:underline;text-underline-offset:5px}
.gf-site .gf-footer{border-top:1px solid var(--gf-line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px;padding:24px 5%}
@media(min-width:2100px){.gf-site .gf-hero{max-height:1180px;aspect-ratio:auto;min-height:1000px}.gf-site .gf-intro{margin-top:35px}}
@media(max-width:1050px) and (min-width:761px){.gf-site .gf-header{padding-top:24px}.gf-site .gf-nav{gap:0}.gf-site .gf-nav a{padding:6px 12px}.gf-site .gf-intro{margin-top:22px}.gf-site .gf-intro p{max-width:43ch}}
@media(max-width:900px){
 .gf-site{font-size:16px}
 .gf-site .gf-hero{aspect-ratio:auto;min-height:0;display:flex;flex-direction:column;background:linear-gradient(155deg,#edf7ff,#d9eaf9 60%,#f4f9fd)}
 .gf-site .gf-header{order:0;flex-direction:column;gap:20px;align-items:flex-start;padding:24px 6% 0}
 .gf-site .gf-brand{width:185px}
 .gf-site .gf-nav{align-self:stretch;justify-content:space-between;gap:0;padding:5px 6px;backdrop-filter:none}
 .gf-site .gf-nav a{font-size:14px;padding:6px 10px;min-height:44px}
 .gf-site .gf-intro{order:1;margin:30px 6% 0;max-width:88%;width:auto;background:none}
 .gf-site .gf-intro h1{font-size:clamp(36px,7.8vw,57px);white-space:normal;max-width:17ch;line-height:1.12;letter-spacing:-.045em;text-wrap:balance}
 .gf-site .gf-intro p{font-size:18px;line-height:1.5;font-weight:500;margin-top:16px;max-width:42ch}
 .gf-site .gf-hero-image{position:relative;order:2;inset:auto;width:100%;height:auto;aspect-ratio:1.9;object-fit:cover;object-position:center 70%;margin-top:18px}
 .gf-site .gf-hero-bottom{order:3;margin:0;padding:24px 6% 32px;background:#f2f8fd}
 .gf-site .gf-actions{gap:6px 22px;align-items:flex-start}
 .gf-site .gf-actions a{font-size:17px;min-height:44px;gap:10px}
 .gf-site .gf-hero-bottom .gf-actions a+a{padding-left:0}
 .gf-site .gf-hero-bottom .gf-actions a:first-child{min-height:48px;padding:9px 16px}
 .gf-site .gf-hero-bottom p{font-size:14px;max-width:40ch;margin-top:12px;line-height:1.6}
 .gf-site .gf-content{padding:0 6%}
 .gf-site .gf-section{padding:46px 0}
 .gf-site h2{font-size:31px;margin-bottom:22px;line-height:1.25}
 .gf-site h3{font-size:24px}
 .gf-site .gf-columns,.gf-site .gf-services{grid-template-columns:1fr;gap:24px}
 .gf-site .gf-services{margin-top:24px;gap:30px}
 .gf-site .gf-columns h2{margin:0}
 .gf-site .gf-faq summary{font-size:17px;padding-right:5px}
 .gf-site .gf-contact .gf-actions{gap:10px 24px}
 .gf-site .gf-contact .gf-actions a{font-size:17px}
 .gf-site .gf-footer{padding:24px 6%;gap:10px}
}
@media(max-width:600px){
 .gf-site .gf-header{gap:16px;padding-top:18px}
 .gf-site .gf-nav{width:100%;border-radius:24px}
 .gf-site .gf-nav a{justify-content:center;flex:1;padding-inline:6px;text-align:center}
 .gf-site .gf-intro{margin-top:25px}
 .gf-site .gf-intro p{line-height:1.45}
 .gf-site .gf-hero-image{aspect-ratio:1.55;object-position:center 70%}
 .gf-site .gf-hero-bottom{padding-top:22px}
 .gf-site .gf-section{padding-block:40px}
}
@media(prefers-reduced-motion:reduce){.gf-site *{scroll-behavior:auto!important}}

/* Mobile refinement: the full-size transparent header should leave the reading
   surface while scrolling, instead of covering catalogue cards and form fields. */
@media(max-width:760px){
 body.gafn-v2 .gafn-v2-header{position:absolute;top:0;left:0;right:0;width:100%;margin-bottom:0}
 body.admin-bar.gafn-v2 .gafn-v2-header{top:46px}
}
@media(max-width:600px){
 .gafn-v2 .gf-site .gf-hero-image{aspect-ratio:1.4;object-position:center 70%}
 .gafn-v2 .gf-site .gf-hero-bottom{padding-bottom:28px}
 .gafn-v2 .gf-site .gf-hero-bottom .gf-actions{row-gap:4px}
}
