@font-face { font-family:"Manrope"; font-style:normal; font-weight:400 800; font-display:swap; src:url("../fonts/manrope-latin-ext.woff2") format("woff2"); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"Manrope"; font-style:normal; font-weight:400 800; font-display:swap; src:url("../fonts/manrope-latin.woff2") format("woff2"); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
:root { --ink:#081722; --ink-soft:#102936; --surface:#d1dee2; --paper:#c8d7dc; --muted:#4d5e68; --line:rgba(8,23,34,.17); --signal:#f5b942; --signal-dark:#d69417; --white:#d8e3e7; --max-width:1240px; font-family:"Manrope","Segoe UI",sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-size:1rem; line-height:1.55; }
a { color:inherit; }
button { font:inherit; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:100; padding:.7rem 1rem; background:var(--ink); color:var(--white); }
.skip-link:focus { top:1rem; }

.site-header { min-height:92px; padding:1rem clamp(1rem,1.5vw,2rem); display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:clamp(2rem,4vw,5rem); border-bottom:1px solid var(--line); background:var(--white); position:sticky; top:0; z-index:20; }
.brand { display:inline-flex; align-items:center; gap:.8rem; text-decoration:none; justify-self:start; }
.brand-name { font-size:1.05rem; font-weight:800; letter-spacing:.08em; }
.brand-name strong { font-weight:400; }
.main-nav { width:min(100%,760px); display:flex; align-items:center; justify-content:space-between; justify-self:center; gap:clamp(2rem,6vw,7rem); }
.main-nav a { padding:.65rem .9rem; text-decoration:none; font-size:1.25rem; font-weight:700; }
.main-nav a:hover,.main-nav a:focus-visible { text-decoration:underline; text-decoration-color:var(--signal-dark); text-decoration-thickness:2px; text-underline-offset:.3rem; }
.main-nav a[aria-current="page"] { text-decoration:underline; text-decoration-color:var(--signal-dark); text-decoration-thickness:2px; text-underline-offset:.35rem; }
.language-switch { position:relative; display:flex; align-items:center; justify-self:end; }
.language-toggle { min-width:96px; min-height:48px; padding:.45rem .7rem; display:inline-flex; align-items:center; justify-content:center; gap:.5rem; border:1px solid var(--line); border-radius:.7rem; background:var(--surface); color:var(--ink); font:inherit; font-weight:800; cursor:pointer; transition:border-color .2s ease,background .2s ease; }
.language-toggle:hover,.language-toggle:focus-visible { border-color:var(--signal-dark); background:var(--white); }
.language-flag { width:28px; height:19px; display:block; object-fit:cover; border:1px solid rgba(8,23,34,.18); border-radius:2px; }
.language-code { font-size:.9rem; letter-spacing:.06em; }
.language-chevron { width:12px; height:8px; fill:none; stroke:currentColor; stroke-width:1.8; transition:transform .2s ease; }
.language-toggle[aria-expanded="true"] .language-chevron { transform:rotate(180deg); }
.language-menu { position:absolute; top:calc(100% + .4rem); right:0; z-index:30; min-width:100%; padding:.3rem; border:1px solid var(--line); border-radius:.7rem; background:var(--white); box-shadow:0 .8rem 2rem rgba(8,23,34,.16); }
.language-menu[hidden] { display:none; }
.language-menu button { width:100%; padding:.55rem .65rem; display:flex; align-items:center; gap:.55rem; border:0; border-radius:.45rem; background:transparent; color:var(--ink); font:inherit; font-weight:800; cursor:pointer; }
.language-menu button:hover,.language-menu button:focus-visible,.language-menu button[aria-current="true"] { background:var(--surface); }
.language-menu img { width:28px; height:19px; object-fit:cover; border:1px solid rgba(8,23,34,.18); border-radius:2px; }

.hero { padding:clamp(2.2rem,4vw,3.5rem) clamp(1rem,1.5vw,2rem) clamp(2rem,3vw,3rem); display:flex; flex-direction:column; gap:clamp(1.5rem,3vw,2.5rem); position:relative; isolation:isolate; overflow:hidden; background:var(--ink); color:var(--white); }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background:url("../images/cad-pattern.svg") center/cover no-repeat; pointer-events:none; }
.section-label { margin:0 0 1rem; color:var(--signal-dark); font-size:.75rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.hero h1 { max-width:none; margin:0; font-size:clamp(2.4rem,4.6vw,4.4rem); line-height:1.02; letter-spacing:-.045em; }
.hero h1 span { display:block; white-space:nowrap; }
.primary-link { display:inline-block; padding:1rem 1.5rem; border:1px solid var(--signal); background:var(--signal); color:var(--ink); text-decoration:none; font-size:1.15rem; font-weight:800; }
.primary-link:hover { background:#f8d37c; border-color:#f8d37c; color:var(--ink); }
.work-areas { width:100%; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.work-areas article { min-height:170px; padding:1.6rem; display:flex; align-items:flex-start; position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.18); border-top:4px solid var(--signal); border-radius:1.5rem; background:var(--ink-soft); color:var(--white); }
.work-areas h2 { max-width:260px; margin:0; font-size:clamp(1.5rem,2.4vw,2.15rem); line-height:1.08; letter-spacing:-.03em; }
.work-area-icon { width:4rem; height:4rem; position:absolute; right:1.5rem; bottom:1.2rem; color:var(--signal); fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.45; opacity:.95; }
.hero-reference-link { align-self:flex-start; }

.content-section { width:100%; margin:0; padding:clamp(3rem,5vw,5rem) clamp(1rem,1.5vw,2rem); }
.section-heading { max-width:790px; margin-bottom:2rem; }
.section-heading h2,.site-footer h2 { margin:0; font-size:clamp(2.2rem,4.2vw,4rem); line-height:1.04; letter-spacing:-.04em; }
.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.benefit-grid article { min-height:215px; padding:1.45rem 1.6rem; display:flex; flex-direction:column; justify-content:flex-start; border:1px solid var(--line); border-radius:2rem; background:var(--surface); box-shadow:inset 0 3px 0 var(--signal); }
.benefit-grid h3 { min-height:3.3rem; margin:0 0 1rem; font-size:1.35rem; line-height:1.2; }
.benefit-grid p { margin:0; color:var(--muted); }

.benefits { padding-bottom:2rem; }
.references { padding-top:0; }
.section-heading-row { max-width:none; display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; }
.projects-link-button { display:inline-block; padding:.8rem 1.15rem; border:1px solid var(--signal-dark); background:var(--signal); color:var(--ink); text-decoration:none; font-weight:800; }
.projects-link-button:hover,.projects-link-button:focus-visible { background:#f8d37c; }
.reference-carousel { position:relative; }
.reference-grid { display:flex; gap:1rem; padding:.15rem 3.75rem .8rem; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-width:none; }
.reference-grid::-webkit-scrollbar { display:none; }
.reference-card { flex:0 0 clamp(285px,29vw,420px); scroll-snap-align:start; border:1px solid var(--line); background:var(--white); }
.carousel-button { width:48px; height:48px; padding:0; display:grid; place-items:center; position:absolute; top:50%; z-index:2; transform:translateY(-50%); border:1px solid var(--signal-dark); border-radius:50%; background:var(--signal); color:var(--ink); cursor:pointer; font-size:1.7rem; font-weight:800; line-height:1; box-shadow:0 5px 16px rgba(8,23,34,.2); }
.carousel-button:hover,.carousel-button:focus-visible { background:#f8d37c; }
.carousel-button-prev { left:0; }
.carousel-button-next { right:0; }
.reference-card-image { width:100%; height:auto; aspect-ratio:4/3; display:block; object-fit:cover; border-bottom:3px solid var(--signal); }
.reference-card>p,.reference-card>h3,.reference-card>span { margin-left:1rem; margin-right:1rem; }
.reference-card>p { margin-top:1.2rem; margin-bottom:.35rem; color:var(--signal-dark); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.reference-card>h3 { margin-top:1.2rem; margin-bottom:.3rem; font-size:1.2rem; line-height:1.25; }
.reference-card>span { display:block; margin-bottom:1.2rem; color:var(--muted); font-size:.88rem; }

.site-footer { padding:clamp(4rem,8vw,7rem) clamp(1rem,1.5vw,2rem); background:var(--ink); color:var(--white); }
.footer-brand { display:block; margin-bottom:2rem; font-size:1.05rem; letter-spacing:.08em; text-transform:uppercase; }
.footer-brand span { font-weight:400; }
.footer-company-name { letter-spacing:.02em; text-transform:none; }
.footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; }
.footer-contact-line { width:100%; display:grid; grid-template-columns:3.75rem minmax(0,1fr); column-gap:.25rem; align-items:baseline; color:var(--white); font-size:1rem; line-height:1.5; }
html[lang="en"] .footer-contact-line { grid-template-columns:4rem minmax(0,1fr); column-gap:.6rem; }
.footer-contact a,.footer-contact address { color:var(--white); font-size:inherit; font-style:normal; line-height:inherit; }
.footer-contact a { text-decoration:none; }
.footer-contact a:hover,.footer-contact a:focus-visible { opacity:.72; }
.footer-emails a:last-child { grid-column:2; }
.footer-social { margin-top:1.5rem; }
.linkedin-link { display:inline-flex; align-items:center; gap:.7rem; color:var(--white); text-decoration:none; font-weight:700; }
.linkedin-link svg { width:2.2rem; height:2.2rem; fill:none; stroke:var(--signal); stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.linkedin-link:hover,.linkedin-link:focus-visible { color:var(--signal); }
.company-identifiers { margin-top:1rem; display:flex; flex-direction:column; gap:.2rem; color:var(--white); font-size:.92rem; }

.all-references-page { background:var(--paper); }
.all-references-hero { padding:clamp(2.25rem,3.5vw,3.5rem) clamp(1rem,1.5vw,2rem); background:var(--ink); color:var(--white); }
.all-references-hero .section-label { color:var(--signal); }
.all-references-hero h1 { margin:0; font-size:clamp(2.35rem,4.5vw,4.25rem); line-height:.98; letter-spacing:-.045em; }
.all-references-grid { padding:clamp(2rem,4vw,4rem) clamp(1rem,1.5vw,2rem) clamp(5rem,8vw,8rem); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; align-items:start; }
.project-reference-card { overflow:hidden; border:1px solid var(--line); border-radius:1.5rem; background:var(--white); }
.project-reference-card>img { width:100%; height:auto; aspect-ratio:16/10; display:block; object-fit:cover; border-bottom:3px solid var(--signal); }
.project-reference-content { padding:1.5rem; display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
.project-reference-content h2 { margin:0; font-size:clamp(1.25rem,1.8vw,1.65rem); line-height:1.15; letter-spacing:-.02em; }
.project-reference-content p { margin:0; color:var(--muted); }
.project-site-link { margin-top:.35rem; padding-bottom:.25rem; border-bottom:2px solid var(--signal-dark); color:var(--ink); text-decoration:none; font-weight:800; }
.project-site-link:hover,.project-site-link:focus-visible { color:var(--ink); text-decoration:underline; text-underline-offset:.25rem; }

@media (max-width:1100px) { .all-references-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:1000px) { .content-section { padding-left:2rem; padding-right:2rem; } }
@media (max-width:760px) {
  .site-header { min-height:auto; padding:.8rem 1rem; grid-template-columns:1fr auto; gap:.75rem 1rem; position:sticky; top:0; transition:transform .25s ease; }
  .site-header.site-header--hidden { transform:translateY(-100%); }
  .brand { grid-column:1; }
  .brand-name { font-size:.88rem; }
  .language-switch { grid-column:2; grid-row:1; }
  .main-nav { width:100%; grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; border-top:1px solid var(--line); }
  .main-nav a { padding:.75rem .3rem; text-align:center; font-size:.9rem; }
  .hero { padding:2.5rem 1rem 3.5rem; gap:2rem; }
  .hero h1 { font-size:clamp(2.35rem,10vw,3.4rem); }
  .hero h1 span { white-space:normal; }
  .work-areas { grid-template-columns:1fr; }
  .work-areas article { min-height:120px; }
  .content-section { padding:4.5rem 1rem; }
  .benefit-grid { display:flex; gap:.8rem; overflow-x:auto; padding-bottom:1rem; scroll-snap-type:x mandatory; }
  .benefit-grid article { flex:0 0 min(78vw,310px); min-height:210px; scroll-snap-align:start; }
  .section-heading-row { align-items:flex-start; flex-direction:column; }
  .reference-grid { padding-left:2.75rem; padding-right:2.75rem; }
  .reference-card { flex-basis:min(78vw,330px); }
  .carousel-button { width:40px; height:40px; font-size:1.35rem; }
  .all-references-hero { padding:2.5rem 1rem; }
  .all-references-grid { grid-template-columns:1fr; padding:1rem 1rem 4.5rem; }
  .project-reference-content { padding:1.25rem; }
  .site-footer { padding:4.5rem 1rem 2rem; }
}

@media (max-width:760px) and (prefers-reduced-motion:reduce) {
  .site-header { transition:none; }
}
