:root {
  color-scheme: light;
  --ink:#493a30;
  --panel:#eee2d3;
  --paper:#f8f1e7;
  --muted:#69584a;
  --line:#d8c7b4;
  --accent:#85583f;
  --display:Georgia,"Times New Roman",serif;
  --sans:Arial,Helvetica,sans-serif;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 var(--sans); }
h1,h2,p,figure,dl,dd { margin:0; }
h1,h2 { font:400 clamp(36px,5vw,74px)/1.04 var(--display); letter-spacing:-.045em; }
h1 i,h2 i { color:var(--accent); font-weight:400; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent); }
a:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
img { display:block; width:100%; object-fit:cover; }
.wrap { width:min(1320px, calc(100% - 112px)); margin-inline:auto; }
.skip { position:absolute; left:16px; top:12px; transform:translateY(-150%); padding:9px 15px; background:var(--paper); z-index:4; }
.skip:focus { transform:none; }
.mast { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:78px; padding:14px max(32px,4.5vw); border-bottom:1px solid var(--line); }
.wordmark { display:inline-flex; gap:.42em; font-size:15px; font-weight:700; letter-spacing:.22em; line-height:1.1; }
.wordmark span { font-weight:400; }
nav { display:flex; align-items:center; gap:clamp(18px,3.5vw,48px); }
nav a,.kicker,.card-index,.hero-credit,.section-title>a,.breadcrumb,.footer a:not(.wordmark) { font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
nav a[aria-current] { color:var(--accent); }
nav a:last-child { border:1px solid var(--line); padding:8px 15px; }
.kicker { color:var(--accent); font-weight:700; }
.hero { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,5fr); align-items:center; gap:clamp(28px,5vw,80px); padding-block:clamp(32px,5vw,76px); border-bottom:1px solid var(--line); }
.hero h1 { font-size:clamp(48px,6.5vw,105px); margin:22px 0 24px; }
.hero-content .intro { max-width:38ch; }
.hero-foot { display:flex; flex-wrap:wrap; gap:16px 24px; margin-top:26px; }
.hero-project img { aspect-ratio:4/3; object-position:center; }
.hero-credit { display:inline-flex; align-items:center; gap:10px; color:var(--muted); }
.line-link { display:inline-flex; align-items:center; gap:18px; width:fit-content; border-bottom:1px solid var(--accent); padding:0 0 6px; font-size:12px; letter-spacing:.09em; text-transform:uppercase; }
.line-link span,.project-card h2 span { color:var(--accent); }
.home-intro { display:grid; grid-template-columns:1fr 2fr; gap:28px; padding-block:96px 90px; }
.home-intro h2 { max-width:750px; }
.home-intro div p,.case-note div>p,.about-layout div>p:not(.kicker),.contact-layout p:not(.kicker) { max-width:540px; color:var(--muted); margin-block:18px 22px; }
.section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-block:16px 24px; border-top:1px solid var(--line); }
.selected { padding-bottom:82px; }
.cards { display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,4vw,58px); }
.project-card a { display:block; }
.project-card img { aspect-ratio:1.25; }
.project-card:nth-child(even) { margin-top:52px; }
.card-index { display:flex; justify-content:space-between; gap:8px; color:var(--muted); margin-block:14px 9px; }
.project-card h2 { display:flex; justify-content:space-between; align-items:center; font-size:clamp(30px,4.1vw,62px); }
.project-card h2 span { font:19px var(--sans); }
.lead { padding-block:82px 52px; }
.lead h1 { margin:18px 0 22px; font-size:clamp(62px,9.5vw,150px); line-height:.92; }
.intro { max-width:620px; color:var(--muted); font-size:clamp(16px,1.65vw,23px); }
.work-grid { grid-template-columns:minmax(0,1fr); padding-bottom:65px; }
.work-grid .project-card:nth-child(even) { margin-top:0; }
.work-grid .project-card img { aspect-ratio:1.8; }
.breadcrumb { padding-top:30px; color:var(--muted); }
.case .lead { padding-top:42px; }
.case-cover img { aspect-ratio:1.86; }
.case-note { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding-block:62px; }
.case-note dl { padding-right:18px; }
.case-note dl div { padding:10px 0; border-top:1px solid var(--line); }
.case-note dt { font-size:11px; color:var(--accent); text-transform:uppercase; letter-spacing:.12em; }
.case-note dd { color:var(--muted); font-size:14px; }
.case-note dd a { text-decoration:underline; text-underline-offset:.2em; }
.case-gallery { display:grid; grid-template-columns:1fr 1fr; gap:22px; padding-bottom:56px; }
.case-gallery img { aspect-ratio:1.37; }
figcaption { color:var(--muted); font-size:12px; margin-top:9px; }
.onward { border-top:1px solid var(--line); padding-block:30px 56px; }
.service-list article { display:grid; grid-template-columns:80px 1fr 1fr; gap:25px; align-items:baseline; border-top:1px solid var(--line); padding:27px 0; }
.service-list h2,.contact-layout aside h2 { font-size:clamp(29px,3.4vw,54px); }
.expertise-list h2 a:hover { color:var(--accent); }
.expertise-link { margin-top:16px; }
.service-list article p,.process li p { color:var(--muted); }
.process { border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 2fr; padding-block:48px; gap:26px; }
.process ol { margin:0; padding-left:24px; }
.process li+li { margin-top:14px; }
.process strong { font:24px var(--display); }
.about-layout,.contact-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(24px,6vw,90px); padding-bottom:72px; }
.about-layout h2,.contact-layout h2 { margin-top:8px; font-size:clamp(38px,4.7vw,68px); }
.about-layout figure { max-width:440px; }
.about-layout img { height:auto; }
.contact-layout aside { padding:clamp(20px,4vw,54px); background:var(--panel); }
.contact-layout .address { font-size:13px; margin-top:9px; }
.footer { border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:start; gap:25px; padding-block:28px 37px; }
.footer p { color:var(--muted); font-size:12px; margin-top:8px; }
.footer>div:last-child { display:flex; flex-wrap:wrap; gap:14px 24px; }
@media(max-width:900px) {
  .wrap { width:calc(100% - 56px); }
  .hero { grid-template-columns:1fr; }
  .lead { padding-block:58px 38px; }
  .service-list article { grid-template-columns:40px 1fr 1fr; }
}
@media(max-width:620px) {
  .wrap { width:calc(100% - 36px); }
  .mast { align-items:start; flex-direction:column; gap:13px; padding:17px 18px 10px; }
  nav { width:100%; justify-content:space-between; gap:8px; }
  nav a:last-child { padding:5px 9px; }
  .home-intro,.cards,.case-note,.case-gallery,.process,.about-layout,.contact-layout { grid-template-columns:1fr; gap:23px; }
  .home-intro { padding-block:56px; }
  .project-card:nth-child(even) { margin-top:18px; }
  .service-list article { grid-template-columns:30px 1fr; gap:8px 12px; }
  .service-list article>div { grid-column:2; }
  .case-note { padding-block:38px; }
  .case-cover img { aspect-ratio:1.25; }
  .footer { flex-direction:column; }
}
@media(max-width:380px) {
  .card-index { flex-direction:column; gap:0; }
}
.arrow { display:inline-block; width:.85em; height:.85em; position:relative; vertical-align:middle; flex:none; }
.arrow::before { content:""; position:absolute; top:0; right:0; width:57%; height:57%; border-top:1px solid; border-right:1px solid; }
.arrow::after { content:""; position:absolute; left:0; bottom:0; width:118%; height:1px; background:currentColor; transform:rotate(-45deg); transform-origin:left center; }

.expertise-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 22px; padding-bottom:56px; }
.expertise-directory section { padding:22px; background:var(--panel); }
.expertise-directory h2,.expertise-topics h2 { margin-bottom:14px; font-size:clamp(25px,2.7vw,42px); }
.expertise-directory ul,.expertise-topics ul { list-style:none; margin:0; padding:0; }
.expertise-directory li,.expertise-topics li { border-top:1px solid var(--line); }
.expertise-directory li a,.expertise-topics li a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 0; }
.expertise-topics { padding-block:20px 42px; }
.expertise-topics ul { max-width:760px; }
@media(max-width:900px) { .expertise-directory { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .expertise-directory { grid-template-columns:1fr; gap:16px; } }

.expertise-feature { display:grid; grid-template-columns:minmax(0,680px) minmax(0,320px); justify-content:space-between; align-items:start; gap:clamp(24px,5vw,70px); padding-bottom:44px; }
.expertise-copy h2,.expertise-faq h2 { font-size:clamp(27px,3vw,44px); }
.expertise-copy p,.expertise-faq p { color:var(--muted); margin-top:12px; max-width:68ch; }
.expertise-copy p+h2 { margin-top:26px; }
.expertise-concept { width:100%; max-width:320px; }
.expertise-concept img { aspect-ratio:3/2; }
.expertise-faq { border-top:1px solid var(--line); padding-block:26px 38px; }
@media(max-width:700px) { .expertise-feature { grid-template-columns:1fr; } }

.inquiry-form { display:grid; align-content:start; gap:18px; }
.inquiry-form label { display:grid; gap:6px; font-size:14px; }
.inquiry-form input,.inquiry-form select,.inquiry-form textarea,.inquiry-form button {
  width:100%; padding:11px 12px; font:inherit; color:var(--ink); background:var(--paper); border:1px solid var(--accent);
}
.inquiry-form textarea { resize:vertical; }
.inquiry-form button { width:fit-content; padding-inline:22px; background:var(--accent); color:var(--paper); cursor:pointer; }

.city-hero h1 { font-size:clamp(42px,5vw,76px); }

.city-editorial { max-width:790px; padding-block:15px 48px; }
.city-editorial h2 { font-size:clamp(30px,4vw,54px); margin-block:32px 14px; }
.city-editorial h3 { font:400 clamp(22px,2.4vw,32px)/1.2 var(--display); margin-block:26px 10px; }
.city-editorial p { color:var(--muted); margin-bottom:14px; }
.city-editorial a { text-decoration:underline; text-underline-offset:.18em; }

.expertise-directory li.area-town { padding:12px 0; }

img { height:auto; }
