@font-face{font-family:SystemFallback;src:local('Arial');font-display:swap}
:root{--ink:#172e36;--muted:#60737a;--blue:#006fbd;--teal:#087b70;--paper:#f7f9f8;--line:#dce5e5;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,'Segoe UI',SystemFallback,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}input:focus,textarea:focus,select:focus{outline:2px solid var(--blue);outline-offset:2px}[hidden]{display:none!important}.container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}.header{position:sticky;top:0;background:rgba(247,249,248,.97);border-bottom:1px solid var(--line);z-index:30}.nav{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:96px}.brand{display:block;flex-shrink:0}.brand img{display:block;width:173px;height:auto}nav{display:flex;gap:30px;font-size:14px;font-weight:550}nav a{padding-block:15px}nav a:hover,.text-link:hover,.text-button:hover{color:var(--blue)}.nav-actions{display:flex;align-items:center;gap:24px}.language{font-size:12px;font-weight:700;letter-spacing:.08em;border-bottom:1px solid;padding:8px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;background:var(--blue);color:white;border:1px solid var(--blue);border-radius:4px;padding:17px 23px;font-size:14px;font-weight:650;line-height:1.25;transition:background .2s}.button:hover{background:#005a98;border-color:#005a98}.button span{font-size:20px}.button.small{padding:12px 17px}.button.secondary{background:transparent;color:var(--ink);border-color:#a1b3b8}.button.secondary:hover{background:#eaf0f0}.button:disabled{opacity:.65;cursor:wait}.menu-button{display:none;background:none;border:0;font-size:14px;color:var(--ink)}.hero{display:grid;grid-template-columns:1.04fr 1fr;gap:60px;align-items:center;padding-block:82px 64px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;line-height:1.8;text-transform:uppercase;margin:0 0 25px;color:var(--teal)}.status-dot{display:inline-block;background:var(--teal);width:7px;height:7px;border-radius:50%;margin-right:9px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(42px,4.2vw,62px);line-height:1.08;font-weight:550;letter-spacing:-.055em;margin-bottom:27px}h1 em{font-style:normal;color:var(--blue)}.hero-intro{font-size:18px;line-height:1.8;max-width:470px;color:var(--muted);margin-bottom:30px}.hero-actions{display:flex;align-items:flex-start;gap:20px;flex-direction:column}.text-link{display:inline-flex;align-items:center;gap:14px;font-size:13px;font-weight:600}.location{font-size:12px;color:var(--muted);margin:34px 0 0}.location span{font-size:19px;margin-right:6px}.hero-image{margin:0;position:relative;background:#e6eeee;border-radius:3px;overflow:hidden}.hero-image>img{width:100%;height:auto;display:block;aspect-ratio:1.18;object-fit:cover;object-position:58% center}.hero-image figcaption{position:relative;padding:21px 26px;background:#14343b;color:white;display:flex;flex-direction:column;gap:7px;font-size:15px}.image-label{font-size:9px;letter-spacing:.14em;color:#9dc6cb}.image-corner{position:absolute;right:17px;top:10px;font-weight:200;font-size:30px;line-height:1.1;color:white}.promise-strip{display:flex;justify-content:space-between;padding:25px 0;border-block:1px solid var(--line);font-size:13px;color:var(--muted)}.promise-strip i{font-style:normal;color:var(--teal);padding-right:12px}.section{padding-block:100px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:65px;margin-bottom:46px}h2{font-size:clamp(32px,3.5vw,45px);font-weight:500;letter-spacing:-.045em;line-height:1.15;margin-bottom:0}.section-heading>p{font-size:16px;line-height:1.8;color:var(--muted);max-width:355px;margin-bottom:3px}.service-row{display:grid;grid-template-columns:45px 1fr 1.3fr 42px;gap:30px;align-items:start;border-top:1px solid var(--line);padding:32px 0}.service-row:last-child{border-bottom:1px solid var(--line)}.service-number{font-size:12px;font-family:monospace;color:var(--teal);padding-top:7px}.service-row h3{font-size:23px;letter-spacing:-.035em;font-weight:550;margin:0}.service-row p{font-size:14px;line-height:1.8;color:var(--muted);margin-bottom:15px}.service-tags{font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--teal)}.service-arrow{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:22px;transition:.2s}.service-arrow:hover{background:var(--blue);color:white;border-color:var(--blue)}.process-section{background:#eaf0ee}.process-symbol{font-size:65px;font-weight:300;color:#83a7a0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:60px}.step-number{font-family:monospace;font-size:12px;color:var(--teal);display:block;border-bottom:1px solid #c7d6d2;padding-bottom:20px;margin-bottom:24px}.steps h3{font-size:20px;font-weight:550;letter-spacing:-.025em;margin-bottom:14px}.steps p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}.about{display:grid;grid-template-columns:.8fr 1.3fr;gap:130px;align-items:center}.about-identity{padding:40px;background:#fff;border-left:3px solid var(--blue)}.monogram{width:84px;height:84px;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:500;letter-spacing:-.08em;background:#e5f1f8;color:var(--blue);position:relative;margin-bottom:30px}.monogram span{position:absolute;right:-9px;bottom:-7px;background:white;font-size:24px;padding-inline:5px}.about-identity h3{font-size:23px;font-weight:550;letter-spacing:-.03em;margin-bottom:8px}.about-identity p{font-size:12px;color:var(--muted);line-height:1.6}.about-text{font-size:17px;line-height:1.85;color:var(--muted);margin:25px 0 17px}.muted{color:var(--muted);line-height:1.8;font-size:14px}.contact-section{background:#12343e;color:#fff}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:100px}.contact-section .eyebrow{color:#9dc9c6}.contact-section h2{font-size:56px}.contact-intro{font-size:15px;line-height:1.85;color:#c0d3d7;max-width:330px;margin:25px 0 35px}.direct-contact{display:flex;flex-direction:column;align-items:flex-start;gap:15px;font-size:17px}.direct-contact a{display:flex;align-items:center;gap:20px;border-bottom:1px solid #51717a;padding-bottom:6px}.direct-contact a:hover{color:#a9d5f6}form label{display:block;font-size:12px;font-weight:550;line-height:1.8}input,textarea,select{width:100%;border:1px solid #54717a;background:#1a3d47;color:white;border-radius:3px;padding:13px 14px;margin-top:7px;min-width:0}input::placeholder,textarea::placeholder{color:#afc4c8;font-size:13px}textarea{resize:vertical;min-height:125px}select{min-height:49px}input,textarea,select{font-size:16px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}#contact-form>label{margin-top:20px}.form-note{font-size:11px;color:#aec7cd;margin-bottom:17px}.form-bottom{display:flex;gap:20px;align-items:center;margin-top:24px}.form-bottom .button{background:#fff;border-color:white;color:#17323b;flex-shrink:0}.form-bottom .button:hover{background:#e8f4fa}.form-bottom p{font-size:10px;line-height:1.8;color:#c3d4d8;margin:0}.form-bottom a{text-decoration:underline;text-underline-offset:3px}#form-status{font-size:13px;line-height:1.7;margin:20px 0 0}#form-status:not(:empty){padding:15px;border:1px solid #779ea8;border-radius:3px}#form-status[data-error=true]{border-color:#efb89b}.trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.footer{background:#fff;padding-top:45px}.footer-main{display:flex;justify-content:space-between;align-items:center;padding-bottom:36px}.wordmark{font-size:20px;font-weight:800;letter-spacing:.08em}.wordmark span{font-size:8px;vertical-align:super;margin-left:4px}.footer-main p{font-size:11px;color:var(--muted);margin:12px 0 0}.business{font-size:11px;color:var(--muted);line-height:1.9;text-align:right}.footer-bottom{display:flex;justify-content:space-between;gap:25px;padding-block:20px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.footer-bottom>div{display:flex;gap:25px}.text-button{background:none;border:0;padding:0;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:4px}.privacy-page{max-width:800px;padding-block:65px 100px}.privacy-page>.eyebrow{margin-top:50px}.privacy-page h1{font-size:48px}.privacy-page section{margin-top:38px}.privacy-page h2{font-size:24px;margin-bottom:15px}.privacy-page p{font-size:16px;line-height:1.85;color:var(--muted)}.privacy-page a:not(.button){text-decoration:underline;text-underline-offset:4px}dialog{width:min(540px,calc(100% - 32px));border:1px solid var(--line);border-radius:8px;padding:38px;background:white;color:var(--ink);box-shadow:0 20px 100px #102d3b30}dialog::backdrop{background:#12343e66}dialog h2{font-size:28px;letter-spacing:-.035em;margin:0 20px 18px 0}dialog p{font-size:14px;line-height:1.8;color:var(--muted)}dialog p a{text-decoration:underline}.dialog-close{position:absolute;right:15px;top:9px;background:none;border:0;font-size:28px;color:var(--muted)}.consent-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.consent-buttons .text-button{font-size:12px;padding:8px}.consent-options label{display:flex;align-items:center;gap:12px;font-size:14px;margin:15px 0}.consent-options input{width:18px;height:18px;margin:0;accent-color:var(--blue)}
@media(min-width:1600px){.hero{padding-block:100px 80px}h1{font-size:65px}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}.nav{gap:20px}.nav nav{gap:20px}.nav-actions{gap:17px}.hero{gap:35px}.hero-intro{font-size:16px}.header-cta{display:none}.about{gap:70px}.contact-grid{gap:55px}.form-bottom{align-items:flex-start;flex-direction:column}.service-row{gap:20px;grid-template-columns:28px 1fr 1.25fr 38px}}
@media(max-width:900px){html{scroll-padding-top:90px}.container{width:calc(100% - 40px)}.nav{min-height:78px;gap:12px}.brand img{width:139px}.nav-actions{gap:19px}.menu-button{display:flex;align-items:center;gap:8px;padding:10px 0}.nav nav{display:none;position:absolute;top:77px;left:0;right:0;background:var(--paper);padding:12px 20px 20px;border-bottom:1px solid var(--line);box-shadow:0 8px 12px #12343e08}.nav nav.open{display:flex;flex-direction:column;gap:0}.nav nav a{padding:15px 0;font-size:16px}.hero{grid-template-columns:1fr;gap:35px;padding-top:46px;padding-bottom:35px}.eyebrow{font-size:10px;margin-bottom:20px}h1{font-size:clamp(40px,9.8vw,58px);line-height:1.08}.hero-intro{font-size:16px;max-width:510px;margin-bottom:25px}.hero-actions{gap:21px}.hero-actions>.button{font-size:13px;padding:17px 20px;gap:18px}.location{margin-top:25px}.hero-image>img{aspect-ratio:1.7;object-position:center 48%}.hero-image figcaption{padding:18px 20px;font-size:13px}.promise-strip{font-size:10px;gap:15px;line-height:1.6;align-items:flex-start}.promise-strip span{flex:1}.promise-strip i{display:block;margin-bottom:4px}.section{padding-block:65px}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:24px;font-size:15px}h2{font-size:35px}.service-row{grid-template-columns:25px 1fr 35px;gap:10px 15px;padding:28px 0}.service-row h3{font-size:22px}.service-row>div{grid-row:2;grid-column:2/4}.service-row .service-arrow{grid-row:1;grid-column:3}.service-row p{font-size:14px;margin-top:8px}.service-tags{font-size:9px;line-height:1.8}.steps{grid-template-columns:1fr;gap:28px;margin-top:40px}.step-number{margin-bottom:17px;padding-bottom:15px}.steps h3{margin-bottom:9px}.process-symbol{display:none}.about{grid-template-columns:1fr;gap:32px}.about-identity{order:2;padding:25px}.monogram{width:60px;height:60px;font-size:24px;margin-bottom:20px}.about-text{font-size:16px}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-section h2{font-size:46px}.contact-intro{max-width:100%;margin-block:23px}.direct-contact{font-size:17px}.form-pair{grid-template-columns:1fr;gap:20px}.form-bottom{gap:17px}.form-bottom .button{width:100%}.form-bottom p{font-size:11px}.footer-main{display:block}.business{text-align:left;margin-top:25px}.footer-bottom{flex-wrap:wrap;gap:20px}.footer-bottom>span:last-child{display:none}.footer-bottom>div{gap:20px}.privacy-page{padding-top:40px}.privacy-page h1{font-size:38px}dialog{padding:30px 22px}.consent-buttons .button{flex:1;white-space:nowrap;padding:14px 15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Responsive layout: readable text, touch targets and narrow-screen reflow. */
html { -webkit-text-size-adjust: 100%; }
.hero > *, .contact-grid > *, .about > *, .service-row > *, .form-pair > * { min-width: 0; }
h1, h2, h3 { overflow-wrap: break-word; }
.button, .text-link, .language, .menu-button, .dialog-close { min-height: 44px; }
.brand { min-height: 44px; display: flex; align-items: center; }
.language { display: inline-flex; justify-content: center; align-items: center; min-width: 44px; padding: 10px; border: 0; border-radius: 4px; background: #eaf0ee; font-size: 13px; }
.menu-button { min-width: 64px; }
.service-arrow { width: 44px; height: 44px; }
.service-row { grid-template-columns: 45px 1fr 1.3fr 44px; }
.mobile-contact { display: none; }
.direct-contact a { min-height: 44px; padding-block: 8px; }
form label { font-size: 14px; }
.form-note, .form-bottom p { font-size: 12px; }
.form-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-main p, .business, .footer-bottom { font-size: 12px; }
.footer-bottom { align-items: center; }
.footer-bottom > div { flex-wrap: wrap; gap: 8px 24px; }
.footer-bottom a, .footer-bottom button, .wordmark { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.service-tags { font-size: 11px; line-height: 1.8; }
.image-label { font-size: 10px; }
dialog { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
.dialog-close { width: 44px; right: 8px; top: 8px; }
.consent-options label { min-height: 44px; cursor: pointer; }
.consent-options input { flex-shrink: 0; }
.consent-buttons .text-button { min-height: 44px; }
@media (min-width: 901px) and (max-width: 1100px) {
  .service-row { grid-template-columns: 28px 1fr 1.25fr 44px; }
  .steps { gap: 32px; }
  .contact-section h2 { font-size: 48px; }
}
@media (max-width: 900px) {
  .nav-actions { gap: 8px; }
  .nav nav { max-height: calc(100dvh - 78px); overflow-y: auto; overscroll-behavior: contain; }
  .nav nav .mobile-contact { display: block; color: var(--blue); }
  .hero { padding-top: 40px; }
  .hero-copy { max-width: 650px; }
  .hero-intro { max-width: 590px; }
  .promise-strip { font-size: 12px; gap: 18px; }
  .service-row { grid-template-columns: 25px minmax(0, 1fr) 44px; }
  .service-tags { font-size: 11px; }
  .footer-bottom { gap: 8px; }
  .footer-bottom > div { width: 100%; }
  .form-bottom p { font-size: 12px; }
  .privacy-page h1 { font-size: clamp(32px, 6vw, 44px); }
  .consent-buttons .button { white-space: normal; }
}
@media (min-width: 601px) and (max-width: 900px) {
  .container { width: calc(100% - 64px); }
  h1 { font-size: clamp(48px, 7.4vw, 62px); }
  .hero-image > img { aspect-ratio: 2; }
  .hero-actions { flex-direction: row; align-items: center; gap: 28px; }
  .form-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-bottom .button { width: auto; }
  .contact-intro { max-width: 580px; }
}
@media (max-width: 380px) {
  .container { width: calc(100% - 32px); }
  .brand img { width: 125px; }
  h1 { font-size: 38px; }
  h2 { font-size: 32px; }
  .contact-section h2 { font-size: 40px; }
  .hero-actions > .button { width: 100%; padding-inline: 12px; gap: 12px; }
  .service-row { column-gap: 10px; }
  .service-row h3 { font-size: 21px; }
  .promise-strip { flex-direction: column; gap: 10px; }
  .promise-strip i { display: inline; padding-right: 10px; }
}
@media (max-height: 500px) and (max-width: 900px) {
  .header { position: relative; }
  html { scroll-padding-top: 20px; }
}

/* Project photographs share the page grid and open at their full aspect ratio. */
.references { padding-top: 0; }
.reference-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.reference-card { min-width: 0; }
.reference-photo { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; background: #e6eeee; }
.reference-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.reference-card:last-child .reference-photo img { object-position: center 30%; }
.reference-expand { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 44px; height: 44px; background: white; color: var(--ink); border-radius: 50%; font-size: 24px; }
.reference-photo:hover .reference-expand { background: var(--blue); color: white; }
.reference-category { font-size: 11px; font-weight: 650; letter-spacing: .06em; color: var(--teal); margin: 25px 0 12px; }
.reference-card h3 { font-size: 23px; font-weight: 550; line-height: 1.25; letter-spacing: -.035em; margin-bottom: 14px; }
.reference-card > p:last-child { font-size: 15px; line-height: 1.8; color: var(--muted); margin-bottom: 0; }
.reference-credit { border-top: 1px solid var(--line); padding-top: 20px; margin: 35px 0 0; font-size: 12px; color: var(--muted); }
.reference-dialog { width: min(1100px, calc(100% - 32px)); padding: 60px 24px 20px; }
.reference-dialog figure { margin: 0; }
.reference-dialog img { display: block; width: 100%; height: min(72dvh, 800px); object-fit: contain; }
.reference-dialog figcaption { margin-top: 16px; text-align: center; font-size: 16px; line-height: 1.5; }
@media (max-width: 1100px) and (min-width: 901px) {
  .reference-grid { gap: 22px; }
  .reference-card h3 { font-size: 21px; }
}
@media (max-width: 900px) {
  .reference-grid { grid-template-columns: 1fr; gap: 40px; }
  .reference-photo { aspect-ratio: 16 / 10; }
  .reference-category { margin-top: 20px; }
  .reference-card > p:last-child { max-width: 600px; }
  .reference-dialog { padding: 56px 14px 18px; }
  .reference-dialog img { height: 65dvh; }
}
