@font-face { font-family: Avenir; src: url('../fonts/AvenirLTStd-Book.otf') format('opentype'); font-weight: 400; font-display: swap; }
@font-face { font-family: Avenir; src: url('../fonts/AvenirLTStd-Black.otf') format('opentype'); font-weight: 700; font-display: swap; }
:root { --teal:#204e56; --deep:#173c42; --paper:#f5f3ec; --ink:#203c38; --muted:#596761; --sand:#ddcfaf; --line:#cdd2c6; --serif:'Cormorant Garamond',Georgia,serif; --sans:Avenir,Arial,sans-serif; --header:88px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header) + 20px); }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.6 var(--sans); }
body:has(dialog[open]) { overflow:hidden; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
:focus-visible { outline:3px solid #a27936; outline-offset:5px; }
.wrap { width:min(1280px,88%); margin-inline:auto; }
.section { padding-block:80px; }
.eyebrow { margin:0 0 20px; font-size:10px; font-weight:700; letter-spacing:.18em; line-height:1.5; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h2 { font-size:clamp(38px,3.9vw,58px); line-height:1.02; letter-spacing:-.03em; }
h2 em { color:#567064; }
.skip-link { position:fixed; top:10px; left:10px; transform:translateY(-160%); z-index:1000; padding:12px; color:var(--deep); background:var(--sand); }
.skip-link:focus { transform:none; }
.site-header { min-height:var(--header); padding:12px 6%; display:flex; align-items:center; justify-content:space-between; gap:28px; background:var(--paper); position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:13px; flex-shrink:0; }
.site-header { padding-left:clamp(25px,4vw,70px); }
.brand img { width:43px; height:47px; object-fit:contain; }
.brand > span { font-size:20px; letter-spacing:.16em; line-height:1.3; }
.brand small { display:block; font-size:8px; letter-spacing:.18em; margin-top:5px; }
.site-header nav { display:flex; gap:32px; align-items:center; font-size:12px; }
.site-header nav a:not(.nav-contact):hover { text-decoration:underline; text-underline-offset:6px; }
.nav-contact { border:1px solid var(--teal); padding:11px 20px; display:flex; gap:28px; align-items:center; }
.nav-contact:hover { background:var(--teal); color:var(--paper); }
.nav-toggle { display:none; }
.hero { display:grid; grid-template-columns:42% 58%; min-height:620px; }
.hero-copy { color:var(--paper); background:var(--teal); padding:40px clamp(25px,4vw,70px) 24px; display:flex; flex-direction:column; align-items:flex-start; }
.site-header .header-logo,.footer-brand .header-logo { display:block; width:168px; height:80px; object-fit:contain; filter:brightness(0) saturate(100%) invert(25%) sepia(19%) saturate(1127%) hue-rotate(142deg) brightness(94%) contrast(88%); }
:root { --header:105px; }
.hero-copy .eyebrow { color:var(--sand); margin-bottom:17px; }
.hero h1 { font-size:clamp(43px,4.4vw,68px); line-height:1.01; letter-spacing:-.035em; }
.hero h1 em { color:var(--sand); }
.hero-intro { font-size:16px; line-height:1.65; max-width:330px; margin:22px 0 28px; color:#e0e7df; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:35px; min-height:48px; padding:13px 20px; font-size:12px; font-weight:700; }
.button-sand { background:var(--sand); color:var(--deep); transition:background .2s; }
.button-sand:hover { background:#f0e4c9; }
.hero-footnote { border-top:1px solid #72908b; margin-top:38px; padding-top:16px; width:100%; display:flex; justify-content:space-between; gap:15px; font-size:10px; color:#d4e0d9; }
.hero-visual { position:relative; min-width:0; min-height:530px; overflow:hidden; }
.hero-visual > img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:48% center; }
.hero-visual::after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,rgba(13,31,25,.72)); pointer-events:none; }
.hero-visual figcaption { position:absolute; inset:auto 32px 26px; z-index:1; color:white; display:flex; justify-content:space-between; gap:20px; align-items:end; }
.hero-visual figcaption div { display:grid; gap:3px; }
.hero-visual .eyebrow { margin-bottom:7px; color:#e7d9b8; }
.hero-visual strong { font-size:18px; font-weight:400; }
.hero-visual figcaption div > span:last-child { font-size:12px; }
.hero-visual figcaption > a { display:grid; place-items:center; border:1px solid #ffffff80; width:46px; height:46px; font-size:24px; }
.hero-visual figcaption > a:hover { color:var(--deep); background:var(--paper); }
.intro-strip { display:grid; grid-template-columns:1fr 1.45fr 1fr; gap:40px; padding-block:32px; border-bottom:1px solid var(--line); align-items:center; }
.intro-strip > p { font-family:var(--serif); font-size:25px; line-height:1.2; }
.intro-strip > div { color:var(--muted); font-size:14px; max-width:450px; }
.text-link { display:inline-flex; align-items:center; gap:18px; font-size:12px; font-weight:700; padding-block:8px; text-decoration:underline; text-decoration-color:#9baa9b; text-underline-offset:6px; }
.text-link:hover { text-decoration-color:currentColor; }
.intro-strip .text-link { justify-self:end; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:35px; }
.section-heading > p { color:var(--muted); font-size:14px; max-width:340px; margin-bottom:5px; }
.project-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:38px 28px; }
.project-card { grid-column:span 6; min-width:0; }
.project-feature { grid-column:span 7; }
.project-secondary { grid-column:span 5; }
.project-image { position:relative; overflow:hidden; background:#d8ddd2; aspect-ratio:1.7; }
.project-feature .project-image,.project-secondary .project-image { height:350px; aspect-ratio:auto; }
.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.project-card:hover img { transform:scale(1.025); }
.image-label { position:absolute; top:15px; left:15px; padding:6px 10px; background:var(--paper); color:var(--deep); font-size:9px; letter-spacing:.12em; }
.image-open { position:absolute; bottom:15px; right:15px; width:34px; height:34px; display:grid; place-items:center; background:var(--paper); font-size:20px; }
.project-caption { display:flex; flex-wrap:wrap; gap:5px 16px; justify-content:space-between; align-items:baseline; padding-top:14px; }
.project-caption h3 { font-size:25px; line-height:1.2; }
.project-caption > span { font-size:11px; color:var(--muted); }
.practice-section { padding-block:75px; background:#e7e9df; }
.practice-layout { display:grid; grid-template-columns:1fr 1.2fr; gap:8%; }
.practice-intro > p:not(.eyebrow) { margin:24px 0 18px; color:var(--muted); max-width:390px; font-size:15px; }
.services { border-top:1px solid #aebbac; }
.services details { border-bottom:1px solid #aebbac; }
.services summary { display:flex; align-items:center; gap:20px; padding:22px 0; cursor:pointer; list-style:none; }
.services summary::-webkit-details-marker { display:none; }
.services h3 { font-size:30px; line-height:1.1; flex:1; }
.service-number { font-size:11px; color:var(--muted); }
.expand { width:16px; height:16px; position:relative; flex-shrink:0; }
.expand::before,.expand::after { content:''; position:absolute; top:7px; width:16px; height:1px; background:var(--teal); }
.expand::after { transform:rotate(90deg); }
details[open] .expand::after { transform:none; }
.service-body { padding:0 30px 25px 34px; font-size:14px; color:var(--muted); }
.service-body .service-tags { margin-top:18px; font-size:9px; letter-spacing:.09em; color:var(--teal); }
.studio-section { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }
.studio-image img { width:100%; aspect-ratio:1; object-fit:cover; }
.studio-image figcaption { margin-top:12px; font-size:10px; color:var(--muted); }
.studio-copy > p:not(.eyebrow) { margin-top:20px; color:var(--muted); font-size:15px; }
.studio-facts { display:flex; flex-wrap:wrap; gap:24px; border-block:1px solid var(--line); padding:18px 0; margin:27px 0 15px; }
dt { font-size:10px; color:var(--muted); }
dd { margin:3px 0 0; font-size:13px; }
.contact-section { color:var(--paper); background:var(--deep); padding-block:70px; }
.contact-section .eyebrow { color:var(--sand); }
.contact-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; }
.contact-section h2 em { color:var(--sand); }
.contact-layout > div > p:not(.eyebrow) { margin:23px 0; color:#d1ddd6; font-size:15px; }
.contact-details { padding-top:20px; }
.contact-details .contact-prompt { margin:0 0 15px !important; }
.contact-details ol { padding:0; margin:0 0 25px; list-style:none; border-top:1px solid #78928b; }
.contact-details li { display:flex; gap:20px; padding:11px 0; border-bottom:1px solid #78928b; font-size:14px; }
.contact-details li span { font-size:10px; color:var(--sand); padding-top:3px; }
.contact-email { display:inline-block; font-size:clamp(18px,2vw,28px); line-height:1.3; text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:1px; overflow-wrap:anywhere; }
.contact-details .contact-location { margin:16px 0 0; font-size:12px; }
.site-footer { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-block:28px; }
.site-footer p,.site-footer nav { font-size:11px; color:var(--muted); }
.site-footer nav { display:flex; gap:22px; }
.site-footer nav a:hover { text-decoration:underline; }
.project-dialog { width:min(1100px,92vw); max-height:90svh; padding:0; border:0; color:var(--ink); background:var(--paper); overflow:auto; }
.project-dialog::backdrop { background:rgba(10,29,29,.82); }
.dialog-close { position:absolute; top:12px; right:12px; width:44px; height:44px; border:1px solid var(--line); background:var(--paper); color:var(--ink); font-size:30px; z-index:1; }
.dialog-layout { display:grid; grid-template-columns:1.2fr 1fr; }
.dialog-image { width:100%; height:100%; min-height:510px; object-fit:cover; }
.dialog-copy { padding:65px 35px 35px; }
.dialog-copy h2 { font-size:44px; }
.dialog-location { color:var(--muted); margin:12px 0 22px; font-size:13px; }
.dialog-copy > p[data-project-description] { color:var(--muted); font-size:15px; }
.dialog-copy dl { border-block:1px solid var(--line); padding:16px 0; display:flex; flex-wrap:wrap; gap:25px; margin:24px 0; }
.image-original { display:block; margin-top:15px; font-size:11px; text-decoration:underline; text-underline-offset:4px; }
@media (max-width:1050px) {
  .site-header { padding-left:30px; }
  .site-header nav { gap:20px; }
  .brand > span { font-size:17px; }
  .hero { grid-template-columns:45% 55%; }
  .hero-copy { padding:30px; }
  .hero h1 { font-size:48px; }
  .hero-footnote { flex-direction:column; gap:3px; }
  .intro-strip { gap:25px; grid-template-columns:1fr 1.5fr; }
  .intro-strip .text-link { grid-column:2; justify-self:start; margin-top:-15px; }
  .project-feature .project-image,.project-secondary .project-image { height:290px; }
  .studio-section { gap:5%; }
  .site-footer { flex-wrap:wrap; }
}
@media (max-width:760px) {
  :root { --header:91px; }
  .site-header { flex-wrap:wrap; padding:12px 6%; gap:12px; }
  .brand img { width:35px; height:40px; }
  .brand > span { font-size:17px; }
  .brand small { font-size:6px; }
  .nav-toggle:not([hidden]) { display:flex; gap:10px; align-items:center; min-height:44px; background:none; color:var(--teal); border:0; font-size:12px; }
  .site-header nav { width:100%; gap:16px; flex-wrap:wrap; padding-block:10px; }
  .site-header nav[hidden] { display:none; }
  .site-header .nav-contact { padding:8px 13px; gap:12px; }
  .hero { grid-template-columns:1fr; min-height:0; }
  .hero-copy { padding:32px 6% 25px; }
  .site-header .header-logo,.footer-brand .header-logo { width:140px; height:66px; }
  .hero h1 { font-size:clamp(43px,8vw,60px); }
  .hero-intro { max-width:410px; }
  .hero-footnote { flex-direction:row; margin-top:26px; }
  .hero-visual { min-height:0; aspect-ratio:1.4; }
  .hero-visual figcaption { inset:auto 6% 20px; }
  .hero-visual strong { font-size:16px; }
  .intro-strip { grid-template-columns:1fr; gap:17px; padding-block:26px; }
  .intro-strip .text-link { grid-column:auto; margin:0; }
  .section { padding-block:50px; }
  .section-heading { display:block; margin-bottom:27px; }
  .section-heading > p { margin-top:20px; }
  .project-grid { grid-template-columns:1fr 1fr; gap:28px 18px; }
  .project-card,.project-feature,.project-secondary { grid-column:span 1; }
  .project-feature .project-image,.project-secondary .project-image { height:auto; aspect-ratio:1.35; }
  .project-image { aspect-ratio:1.35; }
  .project-caption { gap:6px; }
  .project-caption h3 { font-size:23px; }
  .image-label { font-size:8px; top:10px; left:10px; padding:4px 7px; }
  .practice-layout,.studio-section,.contact-layout { grid-template-columns:1fr; gap:35px; }
  .practice-section,.contact-section { padding-block:50px; }
  .practice-intro > p:not(.eyebrow) { max-width:100%; }
  .studio-image img { aspect-ratio:1.4; }
  .contact-details { padding-top:0; }
  .contact-email { font-size:25px; }
  .site-footer { gap:22px; }
  .dialog-layout { grid-template-columns:1fr; }
  .dialog-image { min-height:0; height:240px; }
  .dialog-copy { padding:25px; }
  .dialog-copy h2 { font-size:36px; }
}
@media (max-width:450px) {
  .project-grid { grid-template-columns:1fr; }
  .project-image,.project-feature .project-image,.project-secondary .project-image { aspect-ratio:1.5; }
  .services summary { gap:14px; }
  .services h3 { font-size:27px; }
  .service-body { padding-left:28px; padding-right:0; }
  .hero-visual figcaption .eyebrow { font-size:8px; }
  .hero-footnote { font-size:9px; }
  .studio-facts { gap:16px; }
  .site-footer { flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; } }
