/* FLOWNODE: original navy, gold, local fonts and architectural photograph. */
:root { --fn-gold:#c4a764; --fn-gold-ink:#80662e; --fn-ink:#0f1729; --fn-muted:#5c697a; --fn-line:#dae0e7; --fn-paper:#f9fafb; --fn-header-height:88px; }
html { scroll-padding-top:calc(var(--fn-header-height) + 24px); }
body.fn-page { margin:0; background:var(--fn-paper); color:var(--fn-ink); font-family:'Plus Jakarta Sans',sans-serif; line-height:1.65; }
.fn-page *, .fn-page *::before, .fn-page *::after { box-sizing:border-box; }
.fn-page h1, .fn-page h2, .fn-page h3, .fn-page p, .fn-page ul, .fn-page dl { margin:0; }
.fn-page a { color:inherit; text-decoration:none; }
.fn-page button { font:inherit; cursor:pointer; }
.fn-page button:disabled { cursor:default; }
.fn-page :focus-visible { outline:2px solid var(--fn-gold-ink); outline-offset:5px; }
.fn-page ::selection { background:#e8dec5; color:var(--fn-ink); }
.fn-page img { max-width:100%; height:auto; }
.fn-container { width:min(1120px,calc(100% - 96px)); margin-inline:auto; }
.fn-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.fn-skip-link { position:fixed; top:10px; left:10px; z-index:100; padding:12px 20px; background:white; transform:translateY(-160%); border:1px solid var(--fn-line); border-radius:4px; }
.fn-skip-link:focus { transform:none; }
.fn-header { position:fixed; inset:0 0 auto; z-index:50; border-bottom:1px solid transparent; transition:background-color .25s,border-color .25s; }
.fn-header.is-scrolled, .fn-header.is-open { background:rgba(249,250,251,.97); border-color:var(--fn-line); backdrop-filter:blur(12px); }
.fn-header-inner { min-height:var(--fn-header-height); display:flex; align-items:center; justify-content:space-between; gap:28px; }
.fn-logo { display:block; flex:0 0 auto; width:154px; }
.fn-logo img { display:block; width:100%; }
.fn-nav { display:flex; align-items:center; gap:34px; font-size:.875rem; font-weight:500; }
.fn-nav > a { padding-block:10px; color:var(--fn-muted); transition:color .2s; }
.fn-nav > a:hover, .fn-footer a:hover { color:var(--fn-gold-ink); }
.fn-nav > .fn-nav-contact { display:inline-flex; align-items:center; gap:12px; color:var(--fn-ink); border-bottom:1px solid var(--fn-gold); }
.fn-nav svg { width:17px; height:17px; }
.fn-menu-toggle { display:none; }
.fn-hero { position:relative; overflow:hidden; padding:174px 0 66px; border-bottom:1px solid var(--fn-line); isolation:isolate; }
.fn-hero-background { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.fn-hero-background img { width:100%; height:100%; object-fit:cover; object-position:center 52%; filter:grayscale(1); opacity:.24; }
.fn-hero-background::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(249,250,251,.88),rgba(249,250,251,.45) 55%,#f9fafb 100%); }
.fn-hero-content { position:relative; text-align:center; }
.fn-eyebrow { display:flex; align-items:center; gap:12px; font-family:'JetBrains Mono',monospace; font-size:.8125rem; font-weight:400; letter-spacing:.09em; text-transform:uppercase; line-height:1.6; color:var(--fn-muted); }
.fn-eyebrow::before { content:''; flex:0 0 auto; width:30px; height:1px; background:var(--fn-gold); }
.fn-eyebrow > span { color:var(--fn-gold-ink); }
.fn-hero-eyebrow { justify-content:center; margin-bottom:30px !important; }
.fn-hero h1 { font-size:clamp(2.75rem,5.2vw,4.5rem); line-height:1.14; letter-spacing:-.052em; font-weight:600; }
.fn-hero-description { max-width:645px; margin:28px auto 0 !important; font-size:1.125rem; line-height:1.85; color:var(--fn-muted); text-wrap:pretty; }
.fn-hero-actions { display:flex; justify-content:center; align-items:center; gap:32px; margin-top:34px; }
.fn-button { min-height:50px; padding:13px 23px; display:inline-flex; justify-content:center; align-items:center; gap:25px; background:var(--fn-ink); color:#f9fafb !important; border:1px solid var(--fn-ink); border-radius:5px; font-size:.875rem; font-weight:600; line-height:1.6; transition:background-color .2s,transform .2s; }
.fn-button:hover { background:#20325a; transform:translateY(-1px); }
.fn-button svg, .fn-text-link svg { width:18px; height:18px; flex:0 0 auto; }
.fn-text-link { display:inline-flex; align-items:center; gap:12px; padding-block:12px; font-size:.875rem; font-weight:500; }
.fn-text-link:hover { color:var(--fn-gold-ink); }
.fn-location { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:44px !important; font-size:.8125rem; color:var(--fn-muted); }
.fn-location svg { width:15px; height:15px; color:var(--fn-gold-ink); }
.fn-section { padding-block:96px; }
.fn-page h2 { font-size:clamp(2rem,3.1vw,2.625rem); line-height:1.27; letter-spacing:-.04em; font-weight:600; }
.fn-about-layout { display:grid; grid-template-columns:1fr 1.18fr; gap:88px; }
.fn-about h2 { margin-top:24px; max-width:430px; }
.fn-about-copy { padding-top:45px; font-size:1rem; line-height:1.9; color:var(--fn-muted); }
.fn-about-copy p + p { margin-top:22px; }
.fn-services { background:#f0f2f5; border-block:1px solid var(--fn-line); }
.fn-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:38px; }
.fn-section-heading h2 { margin-top:18px; }
.fn-section-description { margin-top:14px !important; font-size:1rem; color:var(--fn-muted); }
.fn-carousel-controls { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.fn-carousel-count { font-family:'JetBrains Mono',monospace; font-size:.8125rem; color:var(--fn-muted); margin-right:12px; min-width:100px; text-align:right; }
.fn-arrow { width:46px; height:46px; border:1px solid #aeb8c5; background:transparent; border-radius:5px; display:grid; place-items:center; color:var(--fn-ink); transition:background-color .2s,border-color .2s,color .2s; }
.fn-arrow svg { width:19px; height:19px; }
.fn-arrow:hover:not(:disabled) { color:white; border-color:var(--fn-ink); background:var(--fn-ink); }
.fn-arrow:disabled { color:#8893a1; border-color:var(--fn-line); }
.fn-carousel-track { --visible:2; --gap:24px; display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - (var(--visible) - 1) * var(--gap)) / var(--visible)); gap:var(--gap); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; padding:0 0 10px !important; list-style:none; }
.fn-carousel-track.is-ready { scrollbar-width:none; padding-bottom:0 !important; }
.fn-carousel-track.is-ready::-webkit-scrollbar { display:none; }
.fn-carousel-track > li { scroll-snap-align:start; scroll-snap-stop:always; min-width:0; }
.fn-service-card { background:#fff; border:1px solid var(--fn-line); border-radius:6px; padding:30px 34px 34px; min-height:344px; transition:border-color .2s; }
.fn-service-card:hover { border-color:var(--fn-gold); }
.fn-card-top { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.fn-card-number { color:var(--fn-gold-ink); font-family:'JetBrains Mono',monospace; font-size:.875rem; }
.fn-card-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:5px; background:#f3f4f6; color:#3c4553; }
.fn-card-icon svg { width:25px; height:25px; }
.fn-service-card h3 { margin-top:29px; font-size:1.5rem; line-height:1.4; letter-spacing:-.027em; font-weight:600; max-width:470px; }
.fn-service-card p { margin-top:17px; font-size:1rem; line-height:1.75; color:var(--fn-muted); }
.fn-carousel-progress { height:2px; margin-top:28px; background:var(--fn-line); overflow:hidden; }
.fn-carousel-progress span { display:block; height:100%; background:var(--fn-gold); }
.fn-industry-track { --visible:3; }
.fn-industry-card { padding:27px 28px 30px; border:1px solid var(--fn-line); border-radius:6px; min-height:254px; background:white; transition:border-color .2s; }
.fn-industry-card:hover { border-color:var(--fn-gold); }
.fn-industry-card .fn-card-icon { background:transparent; width:30px; height:38px; color:var(--fn-gold-ink); }
.fn-industry-card .fn-card-icon svg { width:29px; height:29px; }
.fn-industry-card h3 { margin-top:39px; font-size:1.375rem; line-height:1.35; font-weight:600; letter-spacing:-.035em; }
.fn-industry-card p { margin-top:10px; font-size:.875rem; line-height:1.65; color:var(--fn-muted); }
.fn-contact { padding:0 0 96px; }
.fn-contact-card { padding:45px 48px; background:#fff; border:1px solid var(--fn-line); border-radius:6px; }
.fn-contact h2 { margin-top:19px; font-size:2rem; }
.fn-contact-intro > p:last-child { margin-top:14px; color:var(--fn-muted); font-size:1rem; }
.fn-contact-details { margin-top:30px; padding-top:30px; border-top:1px solid var(--fn-line); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.fn-email-group { display:flex; align-items:center; gap:18px; min-width:0; }
.fn-email-group > div { min-width:0; }
.fn-email-icon { width:44px; height:44px; flex:0 0 auto; display:grid; place-items:center; background:#f0f2f5; border-radius:5px; }
.fn-email-icon svg { width:21px; height:21px; }
.fn-detail-label { display:block; font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:var(--fn-muted); margin-bottom:3px; }
.fn-email { font-family:'JetBrains Mono',monospace; font-size:1.125rem; font-weight:400; overflow-wrap:anywhere; }
.fn-email:hover { text-decoration:underline; text-decoration-color:var(--fn-gold); text-underline-offset:5px; }
.fn-footer { padding-top:64px; border-top:1px solid var(--fn-line); }
.fn-footer-grid { display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:48px; padding-bottom:48px; font-size:.875rem; color:var(--fn-muted); }
.fn-footer-brand > p { margin-top:23px; max-width:280px; line-height:1.8; }
.fn-entity { display:inline-flex; align-items:center; gap:8px; font-size:.75rem; margin-top:18px; padding:4px 10px; border:1px solid var(--fn-line); border-radius:30px; }
.fn-entity svg { width:15px; height:15px; }
.fn-footer-label { font-size:.75rem; text-transform:uppercase; letter-spacing:.07em; font-weight:600; margin-bottom:22px !important; }
.fn-register > div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding-block:10px; border-bottom:1px solid var(--fn-line); }
.fn-register > div:first-child { padding-top:0; }
.fn-register dd { color:var(--fn-ink); font-weight:500; margin:0; }
.fn-mono { font-family:'JetBrains Mono',monospace; }
.fn-company address { display:flex; gap:10px; font-size:.8125rem; font-style:normal; line-height:1.8; margin-top:15px; }
.fn-company address svg { width:16px; height:16px; flex:0 0 auto; margin-top:4px; }
.fn-footer-inquiries > p:not(.fn-footer-label) { line-height:1.8; }
.fn-footer-email { display:inline-block; color:var(--fn-ink) !important; font-family:'JetBrains Mono',monospace; font-size:.8125rem; margin-top:16px; border-bottom:1px solid var(--fn-gold); overflow-wrap:anywhere; }
.fn-footer nav { display:flex; flex-wrap:wrap; gap:20px; margin-top:25px; }
.fn-footer-bottom { display:flex; justify-content:space-between; align-items:flex-start; gap:32px; padding-block:26px; border-top:1px solid var(--fn-line); font-size:.75rem; line-height:1.8; color:var(--fn-muted); }
.fn-footer-bottom > p:last-child { text-align:right; max-width:440px; }
@media (max-width:1000px) {
 .fn-container { width:calc(100% - 64px); }
 .fn-about-layout { gap:48px; }
 .fn-nav { gap:24px; }
 .fn-footer-grid { grid-template-columns:1fr 1fr; gap:40px; }
 .fn-footer-brand { grid-column:1 / -1; }
 .fn-footer-brand > p { max-width:430px; }
}
@media (max-width:799px) {
 :root { --fn-header-height:76px; }
 .fn-section { padding-block:72px; }
 .fn-header-inner { gap:16px; }
 .fn-logo { width:139px; }
 .fn-hero { padding-top:150px; padding-bottom:56px; }
 .fn-hero h1 { font-size:clamp(2.625rem,6.3vw,3.5rem); }
 .fn-about-layout { grid-template-columns:1fr; gap:27px; }
 .fn-about h2 { max-width:540px; }
 .fn-about-copy { padding:0; max-width:680px; }
 .fn-service-track { --visible:1; }
 .fn-industry-track { --visible:2; }
 .fn-service-card { min-height:325px; }
 .fn-contact { padding-bottom:72px; }
 .fn-contact-card { padding:32px; }
 .fn-contact-details { align-items:flex-start; flex-direction:column; }
 .fn-header.is-enhanced .fn-nav { display:none; position:absolute; top:100%; left:0; right:0; padding:12px 32px 26px; border-bottom:1px solid var(--fn-line); background:var(--fn-paper); box-shadow:0 12px 18px #0f172908; }
 .fn-header.is-open .fn-nav { display:flex; align-items:stretch; flex-direction:column; gap:3px; }
 .fn-header.is-enhanced .fn-menu-toggle { display:inline-flex; align-items:center; gap:12px; font-size:.875rem; min-height:44px; padding:8px 0 8px 12px; background:none; border:0; }
 .fn-nav-contact { justify-content:space-between; }
 .fn-menu-lines { position:relative; width:22px; height:15px; border-top:1px solid currentColor; border-bottom:1px solid currentColor; }
 .fn-menu-lines::after { content:''; position:absolute; left:0; right:0; top:6px; border-top:1px solid currentColor; }
 .fn-header.is-open .fn-menu-lines { border-color:transparent; }
 .fn-header.is-open .fn-menu-lines::before, .fn-header.is-open .fn-menu-lines::after { content:''; position:absolute; left:0; right:0; top:6px; border-top:1px solid currentColor; transform:rotate(45deg); }
 .fn-header.is-open .fn-menu-lines::after { transform:rotate(-45deg); }
 .fn-header:not(.is-enhanced) { position:relative; background:var(--fn-paper); }
 .fn-header:not(.is-enhanced) .fn-header-inner { flex-wrap:wrap; padding-block:16px; }
 .fn-header:not(.is-enhanced) .fn-nav { display:flex; flex-wrap:wrap; gap:8px 20px; }
}
@media (max-width:599px) {
 .fn-container { width:calc(100% - 40px); }
 .fn-hero { padding-top:135px; padding-bottom:45px; }
 .fn-hero-eyebrow { font-size:.75rem; letter-spacing:.045em; margin-bottom:25px !important; gap:9px; }
 .fn-hero-eyebrow::before { width:18px; }
 .fn-hero h1 { font-size:clamp(2.05rem,7.7vw,2.8rem); letter-spacing:-.047em; line-height:1.2; }
 .fn-hero-description { font-size:1rem; line-height:1.85; margin-top:24px !important; max-width:390px; }
 .fn-hero-actions { flex-direction:column; gap:12px; margin-top:28px; }
 .fn-hero-actions .fn-button { min-width:190px; }
 .fn-location { margin-top:26px !important; }
 .fn-section { padding-block:60px; }
 .fn-page h2 { font-size:1.875rem; line-height:1.3; }
 .fn-about h2 { max-width:370px; margin-top:18px; }
 .fn-about-copy { font-size:1rem; line-height:1.85; }
 .fn-section-heading { align-items:flex-start; flex-direction:column; gap:23px; margin-bottom:25px; }
 .fn-carousel-controls { align-self:flex-end; }
 .fn-carousel-count { font-size:.75rem; }
 .fn-carousel-track { --gap:16px; }
 .fn-industry-track { --visible:1; }
 .fn-service-card { padding:25px 24px 28px; min-height:382px; }
 .fn-service-card h3 { font-size:1.375rem; margin-top:24px; }
 .fn-service-card p { margin-top:17px; font-size:1rem; }
 .fn-industry-card { min-height:243px; padding:25px; }
 .fn-industry-card h3 { font-size:1.375rem; }
 .fn-contact { padding-bottom:60px; }
 .fn-contact-card { padding:29px 24px; }
 .fn-contact h2 { font-size:1.75rem; }
 .fn-contact-details { gap:26px; }
 .fn-contact-details .fn-button { width:100%; }
 .fn-email-group { gap:12px; }
 .fn-email-icon { width:36px; height:40px; }
 .fn-email { font-size:.875rem; }
 .fn-footer { padding-top:44px; }
 .fn-footer-grid { grid-template-columns:1fr; gap:38px; }
 .fn-footer-brand { grid-column:auto; }
 .fn-footer-bottom { flex-direction:column; gap:14px; padding-block:23px; }
 .fn-footer-bottom > p:last-child { text-align:left; }
 .fn-footer-label { margin-bottom:17px !important; }
}
@media (max-width:359px) {
 .fn-container { width:calc(100% - 32px); }
 .fn-hero-eyebrow { font-size:.75rem; letter-spacing:0; }
 .fn-hero-eyebrow::before { display:none; }
 .fn-email-icon { display:none; }
 .fn-service-card { padding-inline:20px; }
}
@media (prefers-reduced-motion:reduce) {
 *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
@media print {
 .fn-header { position:static; }
 .fn-hero { padding-block:35px; }
 .fn-section { padding-block:35px; }
 .fn-carousel-controls, .fn-carousel-progress, .fn-menu-toggle { display:none !important; }
 .fn-carousel-track { display:grid; grid-auto-flow:row; grid-template-columns:1fr 1fr; overflow:visible; }
 .fn-carousel-track > li { break-inside:avoid; }
}
