:root{--ink:#17242c;--blue:#034c78;--muted:#485860;--line:#d2dce0;--paper:#f2f5f4}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fcfcfa;color:var(--ink);font:17px/1.55 "Inter","Segoe UI",sans-serif}a{color:var(--blue);text-underline-offset:.22em}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #246ba0;outline-offset:4px}.wrap{width:min(1120px,calc(100% - 80px));margin:auto}header,.foot,nav,.brand{display:flex;align-items:center}header,.foot{justify-content:space-between;gap:18px}header{min-height:82px}.brand,nav a,.button{text-decoration:none;font-weight:700}.brand{gap:10px;line-height:1.1}.brand b{color:var(--ink)}.brand img{object-fit:contain}nav{gap:26px;font-size:.88rem}.nav-contact{border:1px solid var(--blue);padding:8px 15px}.hero,.about{background:var(--paper);border-block:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center;min-height:470px;padding-block:64px}.identity{display:grid;place-items:center;border-left:1px solid var(--line);padding:32px 0 32px 35px}.identity img{display:block;width:100%;height:auto;max-width:485px}.eyebrow{font-size:.76rem;font-weight:750;letter-spacing:.12em;color:var(--blue);margin:0 0 18px}h1,h2,h3{line-height:1.1;margin:0;letter-spacing:-.045em}h1{font-size:clamp(3.6rem,8vw,7.2rem)}h2{font-size:clamp(2.1rem,4.3vw,3.5rem)}h3{font-size:1.3rem}.intro>p:not(.eyebrow),article p,.about p,.contact p{color:var(--muted);max-width:56ch}.intro>p:not(.eyebrow){margin:22px 0}.button{display:inline-flex;align-items:center;gap:20px;padding:12px 18px;background:var(--blue);color:white;font:700 .9rem/1.5 "Inter","Segoe UI",sans-serif;border:0;cursor:pointer}.button:hover{background:#14334a}.services,.contact,.about-grid{padding-block:70px}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin-top:28px}article{border-top:1px solid var(--line);padding:20px 0}article p{margin:8px 0 0}.about-grid,.contact{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:40px}.address{padding:18px 0 18px 24px;border-left:3px solid var(--blue)}address{font-style:normal;margin:0 0 10px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-size:.9rem;font-weight:700;margin-bottom:13px}input,textarea{display:block;width:100%;margin-top:5px;border:1px solid #8598a2;border-radius:2px;padding:9px;color:var(--ink);background:white;font:inherit;font-weight:400}textarea{resize:vertical}#mail-note{font-size:.83rem;margin:0 0 13px}footer{background:var(--ink);color:#fff}.foot{padding-block:24px;font-size:.9rem}.foot a{color:inherit}.foot div{display:flex;gap:20px}dt{font-weight:700}dd{margin:0 0 10px}@media(max-width:730px){.wrap{width:calc(100% - 36px)}header{align-items:flex-start;flex-direction:column;justify-content:center;padding-block:12px;gap:12px}nav{width:100%;justify-content:space-between;gap:10px}.hero-grid,.about-grid,.contact{grid-template-columns:1fr;gap:26px}.hero-grid{padding-block:40px;min-height:0}.identity{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.identity img{max-width:340px}.services,.about-grid,.contact{padding-block:44px}.service-list{gap:0 18px}.foot{align-items:flex-start;flex-direction:column}h3{font-size:1.12rem}}@media(max-width:440px){.service-list,.fields{grid-template-columns:1fr}.fields{gap:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.hero{background:#eaf0f4}
.hero-grid{grid-template-columns:1.15fr .85fr;gap:36px;min-height:455px}
.hero h1{font-size:clamp(2.65rem,5.3vw,5rem);line-height:1.06}
.identity{border-left:0;padding:0}
.identity img{max-width:465px}
.service-list{column-gap:58px}
.service-list article{padding-block:23px}
.about{background:#f0f4f6}
.about-grid{grid-template-columns:1.4fr .6fr;align-items:center}
.about .profile-role{font-weight:700;color:var(--blue);margin-top:10px}
.about .address{background:#fcfcfa;padding:24px}
.contact form{background:#f0f4f6;padding:23px}
@media(max-width:800px){
  .hero-grid,.about-grid{grid-template-columns:1fr}
  .identity{border-top:1px solid var(--line);padding-top:26px;justify-items:start}
  .identity img{max-width:350px}
}
@media(max-width:440px){
  .contact form{padding:16px}
}

.examples{padding-block:0 64px}
.examples>p,.photo-credits{color:var(--muted)}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:24px}
.photo-grid figure{margin:0}
.photo-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--paper)}
.photo-grid figcaption{padding-top:10px;font-size:.92rem;font-weight:700}
.photo-credits{font-size:.83rem;margin-top:17px}
.photo-credits summary{cursor:pointer}
#file-note,#request-status{font-size:.83rem;margin:0 0 12px}
#request-status:not(:empty){margin:12px 0 0}
#request-submit:disabled{opacity:.65;cursor:wait}
#attachments{font-size:.82rem}
@media(max-width:730px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.examples{padding-bottom:44px}}
@media(max-width:390px){nav{flex-wrap:wrap;justify-content:flex-start}.photo-grid{gap:12px}}

.legal{max-width:790px;padding-block:52px 72px}
.legal h1{font-size:clamp(2.7rem,6vw,4.6rem);overflow-wrap:anywhere}
.legal h2{font-size:clamp(1.45rem,3vw,2rem);margin:34px 0 12px}
.legal dl{display:grid;grid-template-columns:minmax(135px,1fr) 2fr;gap:0 20px}
.legal dt,.legal dd{border-top:1px solid var(--line);padding:10px 0;margin:0}
.foot div{flex-wrap:wrap}
@media(max-width:560px){.legal dl{display:block}.legal dd{padding-top:0;border:0}}
.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.photo-grid img{aspect-ratio:3/2}
.photo-grid figcaption{border-bottom:1px solid var(--line);padding:10px 0 14px}
.form-privacy{font-size:.82rem;margin:14px 0 0}
@media(max-width:470px){.photo-grid{grid-template-columns:1fr;gap:18px}}

.photo-grid{gap:24px 28px}
.photo-feature{grid-column:1/-1}
.photo-feature img{aspect-ratio:2.15;object-position:center 53%}
.photo-grid img{border-radius:3px}
.photo-grid figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 14px;padding-block:12px 17px}
.photo-grid figcaption strong{font-size:1.05rem}
.photo-grid figcaption span{color:var(--muted);font-size:.84rem;font-weight:400}
@media(max-width:600px){.photo-feature img{aspect-ratio:4/3}.photo-grid figcaption{display:grid;gap:3px}}

.photo-feature img{aspect-ratio:1.8;object-position:center 53%}
@media(max-width:600px){.photo-feature img{aspect-ratio:4/3}}

.intro > .hero-services:not(.eyebrow) {
  color: var(--blue);
  font-weight: 700;
  margin: 16px 0 0;
}

.intro > .hero-services + p:not(.eyebrow) {
  margin-top: 10px;
}
