
:root{--navy:#101c30;--deep:#0b1425;--teal:#d44c83;--ink:#18233a;--muted:#59647a;--pale:#f8f5f8;--border:#e9dfe7;--pink:#d44c83;--coral:#e77e6e;--gold:#f4b642;--crimson:#c52c4c;--brand-gradient:linear-gradient(105deg,#c94c91 0%,#e98270 52%,#f5b642 100%)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;font:16px/1.65 Arial,Helvetica,sans-serif;color:var(--ink)}a{text-decoration:none;color:inherit}img{max-width:100%}.wrap{width:min(1160px,calc(100% - 44px));margin:auto}h1,h2,h3{line-height:1.16;letter-spacing:-.035em}h1{font-size:clamp(2.6rem,5vw,4.45rem);margin:15px 0 20px}h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:10px 0 18px}h3{font-size:1.18rem;margin:12px 0}.eyebrow{font-size:.75rem;letter-spacing:.15em;font-weight:800;color:#008fa0;text-transform:uppercase}.lead{color:var(--muted);max-width:710px}.section{padding:76px 0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:28px;font-size:.88rem;font-weight:700;min-height:46px;border:1px solid transparent;transition:.2s}.btn:hover{transform:translateY(-2px)}.primary{background:var(--teal);color:#062439}.outline{border-color:#66cfd2;color:white}.outline-dark{border-color:#a3c3d1;color:var(--ink)}header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #dfe8ee;box-shadow:0 2px 12px #061d330b}.nav{min-height:82px;display:flex;align-items:center;gap:22px;justify-content:space-between}.logo{display:block;width:245px;max-width:42vw;height:auto}.links{display:flex;align-items:center;gap:20px;font-size:.85rem;font-weight:700}.links a:hover,.links .selected{color:#008b9d}.nav-cta{background:var(--navy);color:#fff}.menu{display:none;background:var(--navy);color:white;border:0;border-radius:8px;padding:8px 12px;font-size:1.25rem}.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#061d33 0%,#061d33ef 35%,#061d3388 65%,#061d3320 100%),url('bim-hero.jpg') center/cover}.hero-inner{position:relative;min-height:490px;display:flex;align-items:center;padding:72px 0}.hero-copy{max-width:650px}.hero h1 span{color:var(--teal)}.hero p{max-width:535px;color:#d6e5ed;font-size:1.06rem}.hero .eyebrow{color:var(--teal)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.proof{background:#09283f;color:white}.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:22px 0}.proof strong{display:block;color:var(--teal);font-size:.84rem}.proof span{font-size:.77rem;color:#cfdee7}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.card{border:1px solid var(--border);border-radius:10px;background:linear-gradient(145deg,#fafcfd,#edf5f8);padding:24px 19px;display:flex;flex-direction:column;min-height:235px}.card .num{font-size:1.65rem;color:#008e9f;font-weight:800}.card p{color:var(--muted);font-size:.84rem;flex:1}.card a{font-size:.84rem;font-weight:700;color:#008a9c}.dark{background:var(--navy);color:white}.dark .lead{color:#c4d7e3}.sector-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}.sector{background:#123a54;border:1px solid #ffffff25;border-radius:9px;overflow:hidden;min-height:145px;padding:20px;display:flex;align-items:end;font-weight:700;background-image:linear-gradient(0deg,#041525ee,#0b304d55),var(--bg);background-size:cover;background-position:center}.sector:hover{outline:2px solid var(--teal)}.split{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center}.panel{background:var(--pale);padding:28px;border-radius:12px}.pill{display:inline-block;border:1px solid #bed7e1;border-radius:22px;padding:7px 13px;margin:5px;font-size:.82rem}.list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.item{padding:24px;background:var(--pale);border:1px solid var(--border);border-radius:12px}.item p{color:var(--muted);font-size:.9rem}.cta{background:linear-gradient(100deg,#061d33,#0e3b59);color:#fff;padding:45px;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:25px}.cta p{color:#c4d9e4}.page-hero{background:linear-gradient(110deg,#061d33,#103c58);color:white;padding:76px 0}.page-hero h1{font-size:clamp(2.5rem,4.5vw,4rem);max-width:850px}.page-hero p{max-width:760px;color:#d0e0e9}.page-hero .eyebrow{color:var(--teal)}.feature-list{padding-left:20px}.feature-list li{margin:9px 0}.service-block{padding:32px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr 1.6fr;gap:50px}.service-block p{color:var(--muted)}.service-block ul{columns:2;padding-left:20px}.service-block li{break-inside:avoid;margin:7px 0}.meta{color:var(--muted);font-size:.88rem}.form{display:grid;gap:14px}.form label{font-weight:700;font-size:.86rem}.form input,.form select,.form textarea{width:100%;display:block;padding:12px;border:1px solid #cbdde7;border-radius:7px;margin-top:6px;font:inherit}.form textarea{min-height:135px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form button{cursor:pointer;width:max-content}.footer{background:#041626;color:white;padding:45px 0 18px}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:center}.footer-logo{background:white;padding:10px 14px;border-radius:7px;width:255px}.footer-bottom{border-top:1px solid #ffffff28;margin-top:35px;padding-top:15px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.78rem;color:#bfd0dc}.footer a:hover{color:var(--teal)}.project-placeholder{border:1px dashed #a8bfcb;border-radius:12px;padding:30px;background:#f6fafc}.project-placeholder strong{display:block}.project-placeholder p{color:var(--muted)}.skip{position:absolute;top:-100px;left:10px;z-index:99;background:white;padding:10px}.skip:focus{top:10px}:focus-visible{outline:3px solid #00a9a5;outline-offset:3px}@media(max-width:1000px){.links{gap:10px;font-size:.75rem}.logo{width:200px}.cards{grid-template-columns:repeat(3,1fr)}.sector-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.wrap{width:calc(100% - 32px)}.nav{min-height:70px}.logo{width:195px}.menu{display:block}.links{display:none;position:absolute;top:70px;left:0;right:0;background:white;padding:14px 22px;flex-direction:column;align-items:stretch;box-shadow:0 12px 20px #061d331f}.links.open{display:flex}.nav-cta{display:none}.hero:before{background:linear-gradient(90deg,#061d33f5,#061d33bb),url('bim-hero.jpg') center/cover}.hero-inner{min-height:480px}.proof-grid{grid-template-columns:1fr 1fr}.cards,.sector-grid,.list-grid{grid-template-columns:repeat(2,1fr)}.split,.service-block{grid-template-columns:1fr;gap:15px}.service-block ul{columns:1}.cta,.footer-top{display:block}.cta .btn{margin-top:12px}.footer-logo{margin-bottom:20px}.form-grid{grid-template-columns:1fr}}@media(max-width:460px){.cards,.sector-grid,.list-grid{grid-template-columns:1fr}.hero h1{font-size:2.65rem}.actions .btn{width:100%}.proof-grid{gap:12px}.section{padding:55px 0}}

/* V4: original-logo-led visual identity. Master PNG is not altered. */
header{background:#fff;border-bottom:1px solid #eee4eb}
.nav{min-height:100px;gap:18px}
.logo{width:310px;max-width:37vw;height:auto}
.links a:hover,.links .selected{color:#ad2b63}
.links .selected{border-bottom:2px solid #d44c83;padding-bottom:4px}
.nav-cta{background:var(--navy);color:white}
.btn.primary,.primary{background:var(--brand-gradient);color:#151b2c;border-color:transparent}
.btn.primary:hover{filter:saturate(1.08) brightness(1.04)}
.hero{background:#101c30}
.hero:before{background:linear-gradient(90deg,#101c30 0%,#101c30f5 34%,#101c3099 67%,#101c3033 100%),url('bim-hero.jpg') center/cover}
.hero h1 span{background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .eyebrow,.page-hero .eyebrow,.dark .eyebrow{color:#f0a6c7!important}
.eyebrow{color:#ac3469}
.proof{background:#17263c}
.proof strong{color:#f1b4cd}
.card{background:linear-gradient(145deg,#fff,#f9f3f7)}
.card .num{color:#bd386f}
.card a{color:#a52e63}
.card a:hover{text-decoration:underline}
.sector{background-color:#29354a}
.sector:hover{outline:2px solid #e48a9f}
.dark{background:#101c30}
.page-hero{background:linear-gradient(115deg,#101c30,#30314c 75%,#633047)}
.cta{background:linear-gradient(110deg,#101c30,#2e2b47 70%,#62304c)}
.footer{background:#0b1425}
.footer a:hover{color:#f0a6c7}
.footer-logo{width:310px;max-width:100%;padding:12px 16px}
:focus-visible{outline:3px solid #b72f70;outline-offset:3px}
@media(max-width:1120px){.nav{gap:10px}.links{gap:12px;font-size:.78rem}.logo{width:260px}}
@media(max-width:750px){.nav{min-height:76px}.logo{width:220px;max-width:68vw}.links{top:76px}.hero:before{background:linear-gradient(90deg,#101c30f8,#101c30c4),url('bim-hero.jpg') center/cover}}

/* V5: site photography and responsive editorial layouts */
.site-photo-intro{max-width:770px}.photo-feature{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(22px,4vw,64px);align-items:center}.photo-feature img{display:block;width:100%;height:440px;object-fit:cover;border-radius:18px}.photo-feature .eyebrow{color:var(--pink,#d44c83)}.photo-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:32px}.photo-tile{margin:0;overflow:hidden;border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(8,27,48,.09)}.photo-tile img{display:block;width:100%;height:225px;object-fit:cover}.photo-tile figcaption{padding:16px 18px;color:#17223d;font-size:14px;font-weight:650}.photo-tile figcaption small{display:block;margin-top:7px;color:#52647a;font-weight:400;line-height:1.5}.photo-notice{font-size:13px;color:#64748b;line-height:1.6;margin-top:16px}.photo-feature-copy p{line-height:1.75}.photo-feature-copy .btn{margin-top:12px}.gallery-heading{margin-top:44px}.photo-tile img:hover{transform:scale(1.025)}.photo-tile img{transition:transform .25s ease}@media(max-width:850px){.photo-feature{grid-template-columns:1fr}.photo-feature img{height:360px}.photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.photo-gallery{grid-template-columns:1fr}.photo-tile img{height:250px}.photo-feature img{height:280px}}

/* V6: premium client-name showcase; text only, no external links or borrowed marks. */
.client-showcase{padding:62px 0 70px;background:#fff;border-bottom:1px solid #efe9ee}
.client-showcase-about{background:#fcf9fb;border-top:1px solid #efe9ee}
.client-intro{text-align:center;max-width:760px;margin:0 auto 32px}
.client-intro h2{margin:10px 0 12px;font-size:clamp(1.8rem,3vw,2.45rem);color:#101c30}
.client-lead{color:#5d6678;line-height:1.7;margin:0 auto;max-width:670px}
.client-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.client-name{display:flex;align-items:center;justify-content:center;text-align:center;min-height:102px;padding:18px 16px;background:linear-gradient(140deg,#fff,#fbf6f9);border:1px solid #eee3eb;border-radius:12px;color:#1c2940;font-size:clamp(.95rem,1.3vw,1.14rem);font-weight:750;letter-spacing:-.018em;box-shadow:0 7px 22px rgba(16,28,48,.035);position:relative;overflow:hidden}
.client-name:before{content:'';position:absolute;left:24%;right:24%;bottom:0;height:3px;background:linear-gradient(90deg,#d44c83,#e77e6e,#f4b642);border-radius:3px 3px 0 0;opacity:.8}
@media(max-width:980px){.client-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.client-showcase{padding:48px 0 54px}.client-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.client-name{min-height:85px;padding:14px 10px}}
@media(max-width:360px){.client-grid{grid-template-columns:1fr}}

/* V7: University Hospital Limerick project experience. No unverified Brahmasoft scope. */
.featured-project{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);gap:36px;margin-top:28px;padding:clamp(25px,4vw,50px);border-radius:20px;background:linear-gradient(130deg,#111f35,#24283f 72%,#5b2947);color:#fff;box-shadow:0 20px 45px rgba(16,28,48,.13)}
.project-kicker{font-size:.75rem;font-weight:800;letter-spacing:.13em;color:#ffb0cd}.project-kicker span{padding:0 8px;color:#ffcf91}.featured-project h3{font-size:clamp(1.8rem,3.3vw,2.9rem);line-height:1.16;margin:17px 0}.featured-project h3 span{display:block;color:#f2b2ca;font-size:.66em;margin-top:9px}.project-summary{font-size:1.04rem;line-height:1.7;color:#e2e7f0;max-width:670px}.project-tags{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.project-tags span{padding:7px 11px;border:1px solid #ffffff55;border-radius:999px;font-size:.75rem;color:#fff}.project-scope{border-left:3px solid #f4b642;padding:3px 0 3px 18px;margin-top:26px}.project-scope strong{color:#ffd19a}.project-scope p{color:#d8dfec;font-size:.9rem;line-height:1.65;margin:7px 0 0}.featured-project-facts{background:#ffffff10;border:1px solid #ffffff27;border-radius:14px;padding:25px;display:grid;gap:16px;align-content:start}.featured-project-facts>div{border-bottom:1px solid #ffffff26;padding-bottom:12px}.featured-project-facts small{display:block;font-size:.65rem;letter-spacing:.12em;color:#f0a6c7;font-weight:800;margin-bottom:6px}.featured-project-facts strong{font-size:.96rem}.fact-source{font-size:.74rem;line-height:1.55;color:#d7d8e3;margin:0}.project-more{padding:32px 0 0}.project-more h3{margin-bottom:6px}.project-more p{color:#637085;margin:0}.project-spotlight{background:#fcf8fa;border-top:1px solid #f1e8ee;border-bottom:1px solid #f1e8ee}.spotlight-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}.spotlight-layout p{max-width:650px;color:#5b6678;line-height:1.75}.spotlight-subtitle{font-weight:750;color:#17263c!important}.spotlight-subtitle span{color:#b33972}.spotlight-art{min-height:270px;padding:32px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:18px;background:radial-gradient(circle at 100% 0%,#d44c8366,transparent 55%),linear-gradient(135deg,#142a46,#0a1629);color:white;position:relative;overflow:hidden}.spotlight-art:after{content:'';position:absolute;inset:20px;border:1px solid #ffffff24;border-radius:12px;pointer-events:none}.spotlight-art span{color:#f3a8c5;font-size:.7rem;letter-spacing:.14em;font-weight:800}.spotlight-art strong{font-size:clamp(1.35rem,2.3vw,2rem);line-height:1.22;max-width:340px;margin-top:13px}.spotlight-art i{display:block;height:4px;width:80px;background:linear-gradient(90deg,#d44c83,#f4b642);margin-top:20px;border-radius:5px}@media(max-width:800px){.featured-project,.spotlight-layout{grid-template-columns:1fr}.featured-project{gap:24px}.spotlight-art{min-height:210px}}

/* V9 — contact details and careers */
.footer-contact{color:#cbd5e3;font-size:.82rem;line-height:1.7;padding:19px 0 4px;border-top:1px solid #ffffff1c;margin-top:30px}.footer-contact a{color:#fff;text-decoration:underline;text-decoration-color:#d44c83;text-underline-offset:3px}.contact-details{margin:20px 0 28px;padding:24px;border:1px solid #e9dce7;border-radius:15px;background:#fcf8fb}.contact-details address{font-style:normal;font-weight:650;line-height:1.7;color:#18273d;margin:10px 0 20px}.contact-details p{line-height:1.6}.contact-details a{color:#a92d69}.careers-hero{padding-bottom:75px}.careers-hero .btn{margin-top:18px}.careers-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.careers-heading .lead{max-width:760px}.opportunities-label{flex-shrink:0;padding:10px 15px;background:#fce8f1;color:#a52c67;border-radius:999px;font-size:.75rem;font-weight:750}.job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.job-card{display:flex;flex-direction:column;padding:30px;border:1px solid #eee3eb;border-radius:18px;background:linear-gradient(145deg,#fff,#fdf8fb);box-shadow:0 12px 35px #101c3009;transition:transform .2s ease,box-shadow .2s ease}.job-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #101c3016}.job-top{display:flex;justify-content:space-between;align-items:center}.job-discipline{color:#b52f6a;font-weight:800;font-size:.71rem;letter-spacing:.11em}.job-icon{font-size:1.7rem;font-weight:800;color:#e6c8d8}.job-card h3{font-size:1.42rem;margin:18px 0 8px;color:#101c30}.job-card p{line-height:1.7;color:#59657a}.job-card ul{padding-left:20px;color:#34445a;line-height:1.8;margin-bottom:28px}.job-apply{margin-top:auto;font-weight:750;color:#b52f6a;text-decoration:none}.job-apply:hover{text-decoration:underline}.careers-application{background:#f8f5f8;border-top:1px solid #ede5ec}.apply-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:center}.apply-layout p{max-width:650px;line-height:1.8}.apply-email{display:inline-block;font-size:clamp(1.05rem,2vw,1.55rem);font-weight:800;color:#ac2f6c;overflow-wrap:anywhere}.apply-panel{padding:32px;border-radius:20px;background:#101c30;color:white}.apply-panel-kicker{color:#f5a4c9;font-size:.72rem;letter-spacing:.12em;font-weight:800}.apply-panel h3{color:white;font-size:1.5rem}.apply-panel ol{line-height:2;padding-left:22px;color:#dce3ef}.apply-panel .btn{margin-top:10px}@media(max-width:800px){.job-grid,.apply-layout{grid-template-columns:1fr}.careers-heading{align-items:flex-start;flex-direction:column}.careers-hero{padding-bottom:50px}}@media(max-width:450px){.job-card{padding:22px}.apply-panel{padding:24px}}

/* Version 10 — Why Brahmasoft */
.why-hero{background:linear-gradient(115deg,#081a30 0%,#102b49 74%,#331d40 100%);color:#fff;padding:90px 0}.why-hero-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:65px;align-items:center}.why-hero h1{font-size:clamp(2.6rem,5vw,4.8rem);line-height:1.08;max-width:780px;margin:18px 0}.why-hero h1 span{background:linear-gradient(90deg,#ec388b,#ffbd4c);background-clip:text;-webkit-background-clip:text;color:transparent}.why-hero p{color:#d7e1ed;line-height:1.75;max-width:620px;font-size:1.08rem}.why-hero-panel{border:1px solid #ffffff3b;border-radius:24px;background:#ffffff0c;padding:36px;box-shadow:0 20px 50px #0002}.why-hero-panel h2{color:white;font-size:2rem}.panel-kicker{color:#ff9ac6;font-size:.78rem;letter-spacing:.15em;font-weight:800}.why-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.why-tags span{border:1px solid #ffffff38;border-radius:50px;padding:8px 12px;font-size:.78rem;color:#eaf0f7}.why-values{background:#faf9fb}.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}.why-card{background:white;border:1px solid #e8e5eb;border-radius:18px;padding:30px;box-shadow:0 12px 35px #101c3008}.why-num{font-size:.82rem;font-weight:800;color:#d44c83}.why-card h3{color:#101c30;margin:20px 0 12px;font-size:1.23rem}.why-card p{color:#58677a;line-height:1.7;margin:0}.why-process{background:#0a1b31;color:white}.why-process h2{color:white}.why-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}.why-steps>div{border-top:2px solid #d44c83;padding:20px 10px 0 0}.why-steps span{color:#ffb85c;font-weight:800}.why-steps h3{color:white}.why-steps p{color:#cbd8e5;line-height:1.7}.why-tech-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.why-tech-layout p{line-height:1.8;color:#536276}.why-tech-layout figure{margin:0}.why-tech-layout img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px}.why-tech-layout figcaption{font-size:.76rem;color:#6e7887;margin-top:10px}.why-home{background:#f9f5f8}.why-home-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}.why-home-points{display:grid;grid-template-columns:1fr 1fr;gap:14px}.why-home-points div{padding:22px;border-radius:14px;background:white;border:1px solid #eee3eb;display:flex;flex-direction:column;gap:10px}.why-home-points strong{color:#d44c83}.why-home-points span{font-weight:700;color:#17263b}@media(max-width:850px){.why-hero-layout,.why-tech-layout,.why-home-layout{grid-template-columns:1fr}.why-grid{grid-template-columns:repeat(2,1fr)}.why-steps{grid-template-columns:repeat(2,1fr)}}@media(max-width:540px){.why-hero{padding:56px 0}.why-grid,.why-steps,.why-home-points{grid-template-columns:1fr}.why-hero-panel{padding:22px}}

/* V11 — compact premium header and accessible nested navigation */
header .nav{min-height:76px;gap:24px}
header .logo{width:clamp(165px,17vw,210px);max-width:none;height:auto}
header .links{display:flex;align-items:center;gap:clamp(14px,2.1vw,32px);font-size:.92rem;font-weight:700}
header .links>a,header .nav-parent{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;min-height:46px;color:#15233a}
header .links>a:hover,header .nav-parent:hover,header .links a:focus-visible{color:#c52c70}
header .nav-cta{white-space:nowrap;padding:12px 18px;border-radius:999px;font-size:.84rem;min-height:43px;background:linear-gradient(100deg,#d44c83,#f4b642);color:#fff}
header .nav-group{position:relative;display:flex;align-items:center}
header .nav-parent span{font-size:1rem;line-height:1;color:#bc3e75}
header .submenu{position:absolute;left:-16px;top:100%;min-width:230px;padding:9px;background:white;border:1px solid #e9dfe7;border-radius:14px;box-shadow:0 18px 45px #101c302b;display:none;z-index:40}
header .submenu a{display:block;padding:10px 13px;border-radius:8px;font-size:.87rem;color:#17253d;white-space:nowrap}
header .submenu a:hover,header .submenu a:focus-visible{background:#fbf1f6;color:#b52f6a}
header .nav-group:hover>.submenu,header .nav-group:focus-within>.submenu,header .nav-group.submenu-open>.submenu{display:block}
header .submenu-toggle{display:none}
.faq-list{max-width:850px}.faq-list details{border:1px solid #e9dfe7;border-radius:13px;margin-bottom:14px;padding:17px 23px;background:#fff}.faq-list summary{cursor:pointer;font-size:1.05rem;font-weight:750;color:#101c30}.faq-list details[open]{background:#fcf8fb}.faq-list p{color:#59647a;line-height:1.8}.faq-list a{color:#b52f6a;text-decoration:underline}
@media(max-width:1080px){header .nav{gap:14px}header .links{gap:14px;font-size:.82rem}header .logo{width:170px}header .nav-cta{padding:10px 12px}}
@media(max-width:850px){header .nav{min-height:70px}header .logo{width:190px}header .links{display:none;position:absolute;top:100%;left:0;right:0;padding:16px 22px 25px;background:white;box-shadow:0 20px 35px #101c3029;max-height:calc(100vh - 70px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:0}header .links.open{display:flex}header .links>a,header .nav-parent{padding:10px 0;min-height:44px;font-size:1rem}header .nav-group{display:flex;flex-wrap:wrap;justify-content:space-between}header .nav-group .nav-parent{flex:1}header .submenu-toggle{display:block;border:0;background:#faf1f6;border-radius:8px;padding:8px 15px;color:#a52c67;cursor:pointer}header .submenu{position:static;display:none!important;flex-basis:100%;min-width:0;border:0;box-shadow:none;padding:3px 0 10px 14px;background:#faf7f9}header .nav-group.submenu-open>.submenu{display:block!important}header .nav-group:hover:not(.submenu-open)>.submenu{display:none!important}header .nav-cta{margin-left:auto}header .menu{display:block}}
@media(max-width:440px){header .logo{width:160px}header .nav-cta{display:none}}

/* Accessible honeypot for Netlify Forms */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Version 14: supporting BIM service portfolio */
.additional-services{background:#f8f5f8}
.additional-services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}
.additional-service-card{display:flex;flex-direction:column;padding:24px;background:#fff;border:1px solid #e9dfe7;border-radius:14px;box-shadow:0 6px 18px #101c3008;transition:transform .2s,border-color .2s}
.additional-service-card:hover{transform:translateY(-3px);border-color:#d44c83}
.additional-service-card h3{font-size:1.05rem;margin:0 0 8px;color:#101c30}
.additional-service-card p{font-size:.88rem;color:#59647a;flex:1;margin:0 0 18px}
.additional-service-card span{font-weight:700;font-size:.85rem;color:#c52c4c}
.service-scope-note{padding:18px 20px;background:#f8f5f8;border-left:3px solid #d44c83}
@media(max-width:900px){.additional-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.additional-services-grid{grid-template-columns:1fr}}

/* V15 — coherent corporate typography system, inspired by restrained editorial AEC websites; original design. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;650;700;750;800&display=swap');
:root{--font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{font-family:var(--font-body);font-size:16px;line-height:1.68;font-weight:400;letter-spacing:-.008em;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--font-body);font-weight:650;letter-spacing:-.035em;text-wrap:balance}
h1{font-size:clamp(2.5rem,4.5vw,4.15rem);line-height:1.12;letter-spacing:-.047em}
h2{font-size:clamp(1.85rem,2.9vw,2.65rem);line-height:1.2;letter-spacing:-.037em}
h3{font-size:clamp(1.08rem,1.35vw,1.3rem);line-height:1.32;letter-spacing:-.025em}
p,li{line-height:1.72}
.lead{font-size:clamp(1rem,1.1vw,1.125rem);line-height:1.75;font-weight:400}
.eyebrow,.panel-kicker,.job-discipline,.apply-panel-kicker{font-size:.73rem;font-weight:700;letter-spacing:.11em;line-height:1.4}
header .links,header .nav-parent{font-family:var(--font-body);font-size:.89rem;font-weight:600;letter-spacing:-.015em;line-height:1.45}
header .submenu a{font-family:var(--font-body);font-size:.85rem;font-weight:500;line-height:1.5;letter-spacing:-.01em}
header .nav-cta,.btn{font-family:var(--font-body);font-size:.87rem;font-weight:650;letter-spacing:-.01em}
.hero h1{font-size:clamp(2.65rem,4.8vw,4.4rem);line-height:1.11;letter-spacing:-.05em}
.hero p,.why-hero p,.page-hero p{font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.72}
.page-hero h1,.why-hero h1{font-size:clamp(2.5rem,4.3vw,4rem);line-height:1.13;letter-spacing:-.045em}
.card h3,.job-card h3,.why-card h3,.additional-service-card h3{font-size:1.13rem;font-weight:650;line-height:1.35;letter-spacing:-.02em}
.card p,.item p,.job-card p,.why-card p,.additional-service-card p{font-size:.93rem;line-height:1.7;font-weight:400}
.card a,.job-apply,.additional-service-card span{font-size:.88rem;font-weight:650}
.sector{font-size:1.02rem;font-weight:650;line-height:1.4}
.service-block h2{font-size:clamp(1.6rem,2.2vw,2.1rem);line-height:1.24}
.service-block h3{font-size:1.1rem;font-weight:650}
.service-block li{font-size:.94rem;line-height:1.65}
.faq-list summary{font-size:1.02rem;font-weight:650;line-height:1.5}
.form label{font-size:.88rem;font-weight:600}
.form input,.form select,.form textarea{font-family:var(--font-body);font-size:.95rem}
.footer,.footer-contact,.footer-bottom{font-family:var(--font-body)}
@media(max-width:1080px){header .links{font-size:.82rem}}
@media(max-width:850px){header .links>a,header .nav-parent{font-size:.96rem}}
@media(max-width:460px){.hero h1{font-size:clamp(2.25rem,10vw,2.7rem)}h2{font-size:1.8rem}}

/* V16: quiet underline navigation. No decorative chevrons. */
@media(min-width:851px){
 header .links{gap:clamp(18px,2vw,30px);font-size:15px;font-weight:500}
 header .links>a,header .nav-parent{position:relative;min-height:50px;display:inline-flex;align-items:center;font-size:15px;font-weight:550;letter-spacing:-.012em;color:#15233a;text-decoration:none}
 header .links>a::after,header .nav-parent::after{content:"";position:absolute;left:0;right:0;bottom:5px;height:2px;background:#b93672;transform:scaleX(0);transform-origin:left center;transition:transform .18s ease}
 header .links>a:hover::after,header .links>a:focus-visible::after,header .links>a[aria-current="page"]::after,header .nav-parent:hover::after,header .nav-parent:focus-visible::after,header .nav-parent[aria-current="page"]::after,header .nav-group:hover>.nav-parent::after,header .nav-group:focus-within>.nav-parent::after{transform:scaleX(1)}
 header .links>a:hover,header .nav-parent:hover{color:#15233a}
 header .submenu{top:calc(100% - 1px)}
}
header .nav-parent span{display:none!important}
@media(max-width:850px){
 header .nav-parent{font-weight:550}
 header .submenu-toggle{display:block;font-family:var(--font-body),sans-serif;font-size:12px;font-weight:600;letter-spacing:.01em;background:transparent;border:1px solid #e9dfe7;border-radius:6px;padding:8px 12px;color:#15233a}
 header .nav-group.submenu-open>.nav-parent{border-bottom:2px solid #b93672}
}
@media(prefers-reduced-motion:reduce){header .links>a::after,header .nav-parent::after{transition:none}}

/* Version 17: sample work gallery */
.sample-work-section{background:#f8f9fb}
.sample-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:32px}
.sample-work-card{margin:0;background:white;border:1px solid #e7eaf0;border-radius:12px;overflow:hidden}
.sample-work-card a{display:block;background:#fff}
.sample-work-card img{display:block;width:100%;height:280px;object-fit:contain;padding:12px;box-sizing:border-box;transition:transform .25s}
.sample-work-card a:hover img{transform:scale(1.025)}
.sample-work-card figcaption{display:grid;gap:7px;padding:16px 18px;border-top:1px solid #e7eaf0}
.sample-work-card figcaption strong{font-size:1rem;color:#101c30}
.sample-work-card figcaption span{font-size:.9rem;line-height:1.5;color:#657086}
@media(max-width:700px){.sample-work-grid{grid-template-columns:1fr}.sample-work-card img{height:240px}}

/* V19 UX/accessibility refinement */
:root{--brand-link:#ad2864}
html{scroll-padding-top:104px}
[id]{scroll-margin-top:104px}
body{overflow-x:clip}
.eyebrow{font-size:clamp(.85rem,1.1vw,.96rem);letter-spacing:.095em;font-weight:750;color:#a72861}
.dark .eyebrow,.hero .eyebrow,.page-hero .eyebrow{color:#ffb1d4}
.card .num,.card a,.links a:hover,.links .selected{color:var(--brand-link)}
.btn.primary{color:#fff;background:#b53270}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #d44c83;outline-offset:3px}
.links,.links a,.nav-cta,.nav-parent{white-space:nowrap}
.nav{gap:14px}
.links{gap:18px}
.nav-cta{flex-shrink:0}
.photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.photo-gallery .photo-tile{min-width:0}
.photo-gallery img{width:100%;object-fit:cover}
.sample-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
footer .logo,footer img{max-width:100%;height:auto}
@media(max-width:1080px){.links{display:none}.menu{display:inline-flex}.links.open{display:flex;flex-direction:column;align-items:stretch;position:absolute;top:100%;left:0;right:0;padding:18px 24px;background:#fff;box-shadow:0 12px 20px #101c3020;max-height:calc(100vh - 82px);overflow-y:auto}.links.open .nav-group{width:100%}.links.open a{white-space:normal}}
@media(max-width:700px){.photo-gallery,.sample-work-grid{grid-template-columns:1fr}.photo-gallery img{height:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* V20: premium footer, expanded sector and service system */
.footer-v20{background:#0b1425;color:#eaf0fa;padding:62px 0 20px}
.footer-v20 .footer-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);align-items:center;gap:52px}
.footer-v20 .footer-logo{background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important;width:min(440px,100%);height:auto;object-fit:contain;display:block}
.footer-v20 .footer-brand p{font-size:1.04rem;color:#cdd6e5;margin-top:14px}
.footer-v20 .footer-action h2{color:#fff;font-size:clamp(1.35rem,2.1vw,1.85rem);line-height:1.25;margin:0 0 10px}
.footer-v20 .footer-action p{color:#cdd6e5;font-size:1rem;margin:0 0 20px}
.footer-v20 .footer-details{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:36px;border-top:1px solid #ffffff26;margin-top:44px;padding:32px 0 28px}
.footer-v20 .footer-label{display:block;font-size:.77rem;letter-spacing:.11em;color:#e7a0c3;font-weight:700;margin-bottom:15px}
.footer-v20 .footer-detail address{font-style:normal;line-height:1.8;color:#d4deea}
.footer-v20 .footer-detail a{display:block;width:fit-content;color:#eaf0fa;text-decoration:none!important;border-bottom:1px solid transparent;overflow-wrap:anywhere;margin-bottom:12px}
.footer-v20 .footer-detail a:hover{color:#fff;border-bottom-color:#d44c83}
.footer-v20 .footer-detail p{margin:0 0 9px;color:#d4deea}
.footer-v20 .footer-bottom{border-top:1px solid #ffffff26;padding-top:22px;margin-top:0;display:flex;gap:18px;justify-content:space-between;align-items:center}
.footer-v20 .footer-bottom nav{display:flex;flex-wrap:wrap;gap:18px}
.footer-v20 .footer-bottom nav a{text-decoration:none;color:#d4deea}
.sector-card{display:flex;flex-direction:column;min-height:230px}
.sector-card .sector-link{color:#a72861;font-weight:700;text-decoration:none;margin-top:auto}
.sector-card .sector-link:hover{text-decoration:underline}
.service-intro{padding:8px 0 38px}
.service-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:25px}
.service-summary-card{padding:25px;border-radius:12px;border:1px solid #e6e4eb;background:#faf9fc;text-decoration:none;color:#132038;display:block}
.service-summary-card h3{font-size:1.12rem;margin:0 0 8px}
.service-summary-card p{font-size:.93rem;line-height:1.65;color:#566277;margin:0}
.service-summary-card:hover{border-color:#c73577}
.iso-benefits{background:#f8f7fb}
.eyebrow{font-size:clamp(.88rem,1.05vw,1rem)!important;font-weight:750!important;letter-spacing:.075em!important}
@media(max-width:820px){.footer-v20 .footer-top{grid-template-columns:1fr;gap:24px}.footer-v20 .footer-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.footer-v20 .footer-details,.service-summary-grid{grid-template-columns:1fr}.footer-v20 .footer-bottom{align-items:flex-start;flex-direction:column}.footer-v20{padding-top:42px}}

/* V21: Ireland registration panel inspired by user reference */
.footer-v20 .footer-ireland{border-top:1px solid #ffffff26;margin-top:42px;padding:30px 0 32px;color:#bfcddd}
.footer-ireland-heading{display:flex;align-items:center;gap:18px;margin-bottom:24px;color:#fff;font-size:clamp(1.2rem,2vw,1.55rem)}
.ireland-flag{display:inline-flex;width:44px;height:30px;border-radius:3px;overflow:hidden;flex:none}
.ireland-flag span{flex:1;background:#169b62}.ireland-flag span:nth-child(2){background:#fff}.ireland-flag span:nth-child(3){background:#ff883e}
.footer-ireland-info p{margin:0 0 10px;font-size:clamp(.98rem,1.25vw,1.12rem);line-height:1.7;overflow-wrap:anywhere}
.footer-ireland-info strong{color:#fff;font-weight:700}.footer-ireland .separator{color:#d6a5c0}
.footer-ireland-contact{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px;font-size:.98rem}
.footer-ireland-contact a{color:#eaf0fa;text-decoration:none;border-bottom:1px solid transparent;overflow-wrap:anywhere}
.footer-ireland-contact a:hover{border-color:#d44c83}
@media(max-width:580px){.footer-ireland-heading{gap:12px}.footer-ireland-contact{display:grid;gap:10px}.footer-ireland-contact span{display:none}}

/* V22: BIM and construction scope clarity */
.technical-note{margin-top:24px;padding:18px 22px;border-left:3px solid #b53270;background:#f8f6fa;color:#29384b;line-height:1.7;font-size:.95rem}
.technical-faq{background:#f8f9fc}.technical-faq-item{background:#fff;border:1px solid #e4e8ef;border-radius:10px;padding:16px 20px;margin:12px 0}.technical-faq-item summary{cursor:pointer;font-weight:650;color:#14233a}.technical-faq-item p{line-height:1.7;margin:12px 0 0;color:#4c5a70}

/* V23: About-page leadership profile */
.leadership-section{background:#f8f9fc}.leadership-profile{display:grid;grid-template-columns:minmax(180px,280px) minmax(0,1fr);gap:36px;align-items:center;margin-top:26px;max-width:880px}.leadership-profile img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:14px;display:block}.leadership-profile-copy h3{font-size:clamp(1.45rem,2.4vw,2rem);color:#101c30;margin:0 0 8px}.leadership-role{color:#aa2b65;font-weight:650;font-size:1.05rem;margin:0}@media(max-width:620px){.leadership-profile{grid-template-columns:1fr;gap:18px}.leadership-profile img{max-width:260px}}

/* V24: compact Ireland footer and new capabilities */
.footer-ireland-v24{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:8px!important;padding-top:22px!important;padding-bottom:18px!important}
.footer-ireland-v24 .footer-ireland-heading{margin:0 0 5px!important}
.footer-ireland-v24 .footer-ireland-info,.footer-ireland-v24 .footer-ireland-contact{margin:0!important;padding:0!important;display:block!important;width:100%!important}
.footer-ireland-v24 .footer-ireland-info p{margin:0 0 7px!important;line-height:1.55!important}
.footer-ireland-v24 .footer-ireland-contact{line-height:1.55!important}
.footer-ireland-v24 .footer-ireland-contact a{text-decoration:none!important;border-bottom:0!important}
.footer-ireland-v24 .footer-ireland-contact a:hover{text-decoration:underline!important;text-decoration-color:#d44c83!important}
.software-brand-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px}
.software-brand{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#f7f8fb;border:1px solid #e5e8ee;border-radius:10px;color:#162238;font-weight:600;font-size:.92rem}
.software-mark{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:9px;background:#13223b;color:#fff;font-weight:750;font-size:.85rem}
@media(max-width:900px){.software-brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.software-brand-grid{grid-template-columns:1fr}.footer-ireland-v24 .footer-ireland-info .separator{display:inline}}

/* V25.01: OSM, corridor and plantroom media showcase */
.project-media-v2501{background:#f8f9fc}.project-media-grid-v2501{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:30px;align-items:stretch}.project-media-card-v2501{margin:0;background:#fff;border:1px solid #e8e1e9;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(16,28,48,.06);display:flex;flex-direction:column}.project-media-card-v2501>a{display:block;height:360px;overflow:hidden;background:#e7eaf0}.project-media-card-v2501 img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.project-media-card-v2501>a:hover img{transform:scale(1.025)}.project-media-card-v2501:nth-child(2) img{object-position:center 25%}.project-media-card-v2501 video{width:100%;height:360px;object-fit:contain;background:#101c30;display:block}.project-media-card-v2501 figcaption{padding:22px;display:flex;flex-direction:column;gap:9px;flex:1}.project-media-card-v2501 figcaption strong{font-size:1.12rem;color:#14233a}.project-media-card-v2501 figcaption span{color:#536079;line-height:1.6}.media-teaser-v2501{margin:26px 0 0}.media-teaser-v2501 a{color:#a92963;font-weight:700;text-decoration:underline;text-underline-offset:4px}@media(max-width:1000px){.project-media-grid-v2501{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.project-media-grid-v2501{grid-template-columns:1fr}.project-media-card-v2501>a,.project-media-card-v2501 video{height:310px}}
