@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap");



:root { --ink:#12364c; --wine:#087fbd; --wine-deep:#075d8a; --cream:#e2f4fc; --paper:#ffffff; --rose:#c9ecfa; --muted:#496371; --line:#a9d8ec; --font-body:"DM Sans",Arial,Helvetica,sans-serif; --font-display:"Playfair Display",Georgia,"Times New Roman",serif; --max:1180px; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:17px; line-height:1.68; text-rendering:optimizeLegibility; }
h1,h2,h3,h4,.name,.case-count,.summary-result strong,.result-panel > strong,.metric-panel strong,.comparison-panel strong,.tool-pathway-title > span { font-family:var(--font-display); }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
::selection { color:white; background:var(--wine); }
.container { width:min(calc(100% - 3rem),var(--max)); margin-inline:auto; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:100; padding:.65rem 1rem; color:white; background:var(--wine); }
.skip-link:focus { top:1rem; }

.site-header { position:sticky; top:0; z-index:50; border-bottom:1px solid var(--line); background:rgba(251,251,251,.94); backdrop-filter:blur(14px); }
.nav-wrap { width:min(calc(100% - 3rem),var(--max)); min-height:76px; margin-inline:auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; }
.name { width:fit-content; font-family:Georgia,"Times New Roman",serif; font-size:1.22rem; font-weight:700; }
.desktop-nav { display:flex; gap:1.65rem; font-size:.88rem; font-weight:500; }
.desktop-nav a { position:relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-.25rem; height:1px; background:var(--wine); transition:right .2s ease; }
.desktop-nav a:hover::after { right:0; }
.nav-contact { justify-self:end; display:inline-flex; align-items:center; gap:.35rem; color:var(--wine); font-weight:700; font-size:.86rem; }

.hero { background:var(--cream); border-bottom:1px solid var(--line); }
.hero-grid { min-height:620px; display:grid; grid-template-columns:1.12fr .88fr; align-items:center; gap:clamp(3rem,8vw,7rem); padding-block:clamp(3.5rem,7vw,5.5rem); }
.eyebrow,.section-label,.project-number { margin:0 0 1.3rem; color:var(--wine); font-size:.84rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.hero h1,.section h2,.contact h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:500; letter-spacing:-.045em; line-height:.98; }
.hero h1 { max-width:700px; font-size:clamp(3.2rem,6.2vw,5.5rem); }
.hero-intro { max-width:600px; margin:1.6rem 0 0; color:#59636c; font-size:clamp(1.08rem,1.5vw,1.24rem); line-height:1.65; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem; margin-top:2rem; }
.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; min-height:50px; padding:.75rem 1.05rem; color:white; background:var(--wine); transition:background .2s ease,transform .2s ease; }
.primary-button:hover { background:var(--wine-deep); transform:translateY(-2px); }
.text-link,.inline-link { display:inline-flex; align-items:center; gap:.4rem; border-bottom:1px solid currentColor; color:var(--wine); font-weight:700; }
.portrait-wrap { position:relative; margin:0; padding:0 0 2rem 2rem; }
.portrait-wrap::before { content:""; position:absolute; left:0; bottom:0; width:78%; height:82%; background:var(--wine); }
.portrait { position:relative; width:100%; max-height:590px; object-fit:cover; object-position:center 15%; filter:saturate(.9); }
.portrait-wrap figcaption { position:absolute; right:0; bottom:0; padding:.7rem 1rem; color:white; background:var(--wine); font-size:.76rem; }

.intro-strip { color:var(--ink); background:#7bc9ec; }
.intro-strip-inner { min-height:94px; display:grid; grid-template-columns:repeat(3,1fr); align-items:center; }
.intro-strip p { margin:0; padding:0 1.5rem; border-left:1px solid rgba(23,56,79,.2); font-family:var(--font-display); font-size:1.15rem; text-align:center; }
.intro-strip p:last-child { border-right:1px solid rgba(23,56,79,.2); }

.section { padding-block:clamp(5rem,9vw,8rem); border-bottom:1px solid var(--line); }
.section h2,.contact h2 { font-size:clamp(2.65rem,5.3vw,5rem); }
.two-column { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(3rem,8vw,8rem); }
.about-copy { padding-top:2rem; }
.about-copy p { max-width:700px; color:var(--muted); }
.about-copy .lead { margin-top:0; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.35rem,2.25vw,1.9rem); line-height:1.48; }
.about-copy .inline-link { margin-top:1rem; }

.section-heading { display:grid; grid-template-columns:1.4fr .6fr; align-items:end; gap:3rem; margin-bottom:3.5rem; }
.section-heading > p { max-width:390px; margin:0 0 .25rem; color:var(--muted); }
.services .section-heading { display:block; }
.section-intro { max-width:760px; margin:1.5rem 0 0; color:var(--muted); font-size:1.08rem; line-height:1.75; }
.service-list { border-top:1px solid var(--line); }
.service-list article { display:grid; grid-template-columns:70px .65fr 1.35fr; gap:2rem; align-items:start; padding:2rem 0; border-bottom:1px solid var(--line); }
.service-list article > span { color:var(--wine); font-size:.74rem; font-weight:800; letter-spacing:.1em; }
.service-list h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.6rem,2.6vw,2.15rem); font-weight:500; }
.service-list p { max-width:570px; margin:0; color:var(--muted); }

.work { color:var(--ink); background:var(--paper); }
.work .section-label { display:inline-block; margin-bottom:1.5rem; padding:.65rem 1rem; color:white; background:var(--wine); font-size:clamp(1.15rem,2vw,1.5rem); font-weight:800; letter-spacing:.07em; }
.work .project-number { color:var(--wine); }
.work-heading > p { color:var(--muted); }
.work-heading { display:block; margin-bottom:3rem; }
.work-heading > div { max-width:900px; }
.proven-results { margin-top:3.2rem; padding:clamp(1.5rem,4vw,2.6rem); border:1px solid #86cbea; background:#e6f6fd; }
.proven-results-copy { max-width:860px; }
.proven-results-copy .section-label { margin-bottom:1rem; font-size:1rem; }
.proven-results-copy h3 { margin:0; color:var(--ink); font-family:var(--font-display); font-size:clamp(2rem,3.6vw,3.35rem); font-weight:500; line-height:1.08; }
.proven-results-copy > p:not(.section-label) { margin:1rem 0; color:#466574; }
.month-work { display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; margin-top:1.4rem; }
.month-work > div { display:grid; grid-template-columns:36px 1fr; gap:.7rem; padding:.9rem; border:1px solid #b7d9e9; background:white; }
.month-work > div > span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; color:white; background:#087fbd; font-size:.7rem; font-weight:800; }
.month-work p { margin:0; color:#536b77; font-size:.82rem; line-height:1.55; }
.month-work strong { display:block; margin-bottom:.15rem; color:#17384b; font-size:.88rem; }
.client-result-evidence { display:grid; grid-template-columns:1.35fr .65fr; gap:1rem; margin-top:1.6rem; }
.client-result-image { margin:0; overflow:hidden; border:1px solid #a8cbdc; background:white; box-shadow:0 10px 25px rgba(20,74,105,.1); }
.client-result-image img { width:100%; height:auto; }
.client-result-image figcaption { padding:.7rem .85rem; color:#536b77; font-size:.76rem; line-height:1.5; }
.client-result-metrics { display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; }
.client-result-metrics > div { display:flex; flex-direction:column; justify-content:center; padding:1rem; border-top:5px solid #087fbd; background:white; }
.client-result-metrics strong,.client-result-metrics span { display:block; }
.client-result-metrics strong { color:#17384b; font-family:var(--font-display); font-size:clamp(1.9rem,3vw,2.8rem); line-height:1; }
.client-result-metrics span { margin-top:.35rem; color:#536b77; font-size:.76rem; }
.result-impact { margin:1rem 0 0; padding:1rem 1.15rem; color:#1c566f; background:white; font-size:.92rem; text-align:center; }
.project { margin-top:1.5rem; border:1px solid rgba(255,255,255,.22); background:#455562; }
.project-featured { display:grid; grid-template-columns:.78fr 1.22fr; align-items:stretch; }
.case-study { display:grid; grid-template-columns:1.16fr .84fr; align-items:stretch; margin-top:2rem; }
.case-study-reverse { grid-template-columns:.84fr 1.16fr; }
.case-study-reverse .case-evidence { order:0; }
.case-study-reverse .project-copy { order:1; }
.project-copy { padding:clamp(1.5rem,4vw,3rem); }
.project-copy h3 { margin:0 0 1rem; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.8rem,3vw,3rem); font-weight:500; line-height:1.08; letter-spacing:-.035em; }
.project-copy p { color:#d9e0e5; }
.case-intro { margin-bottom:1.4rem; font-size:1rem; }
.problem-block { margin:1.4rem 0; padding:1.1rem 1.2rem; border-left:3px solid #cfe8f6; background:rgba(255,255,255,.07); }
.problem-block span { display:block; margin-bottom:.35rem; color:#cfe8f6; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.problem-block p { margin:0; color:white; }
.tool-row { display:flex; flex-wrap:wrap; gap:.45rem; margin:0 0 1.5rem; }
.tool-row span { padding:.38rem .58rem; border:1px solid rgba(255,255,255,.3); color:#e1e6ea; font-size:.7rem; }
.process-title { margin:2rem 0 1rem; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.55rem,2.3vw,2rem); font-weight:500; }
.case-steps { display:grid; gap:1rem; margin-top:0; }
.case-steps > div { display:grid; grid-template-columns:42px 1fr; gap:1rem; align-items:start; padding:1.05rem 1.1rem; border:1px solid #d9e5ed; border-radius:4px; background:#fbfdff; box-shadow:0 4px 14px rgba(37,77,105,.05); }
.case-steps span,.mini-process span { width:36px; height:36px; display:grid; place-items:center; border:1px solid #8fc5e5; border-radius:50%; color:#286e99; background:#e9f6fd; font-size:.82rem; font-weight:800; }
.case-steps p { margin:0; font-size:1rem; line-height:1.7; }
.case-steps strong { display:block; margin-bottom:.22rem; color:var(--ink); font-size:1.02rem; letter-spacing:.01em; }
.case-outcome { margin-top:1.6rem; padding-top:1.1rem; border-top:1px solid rgba(255,255,255,.2); }
.case-outcome > span { color:#cfe8f6; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.case-outcome p { margin:.4rem 0 0; color:white; font-size:.88rem; }
.project-copy ul { display:grid; gap:.65rem; list-style:none; padding:0; margin:1.5rem 0 0; }
.project-copy li { display:grid; grid-template-columns:18px 1fr; gap:.55rem; color:#edf0f2; font-size:.88rem; }
.project-copy li svg { color:#cfe8f6; margin-top:.25rem; }
.work-shot { margin:0; background:#242d35; }
.work-shot img { width:100%; height:auto; object-fit:cover; }
.large-shot img { height:100%; min-height:500px; object-position:left top; }
.work-shot figcaption { padding:.65rem 1rem; color:#cdd5db; border-top:1px solid rgba(255,255,255,.16); font-size:.72rem; }
.case-evidence { display:flex; flex-direction:column; min-width:0; border-left:1px solid rgba(255,255,255,.2); background:#242d35; }
.case-study-reverse .case-evidence { border-left:0; border-right:1px solid rgba(255,255,255,.2); }
.case-evidence .work-shot img { min-height:300px; object-fit:cover; object-position:left top; }
.result-panel { flex:1; padding:clamp(1.4rem,3vw,2.3rem); background:#242d35; }
.result-panel > span { color:#cfe8f6; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.result-panel > strong { display:block; margin:.45rem 0 .6rem; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.5rem,5vw,4.7rem); font-weight:500; line-height:1; }
.result-panel p { margin:.35rem 0; color:#e7ebee; }
.result-panel ul { display:grid; grid-template-columns:repeat(2,1fr); gap:.35rem 1rem; margin:1rem 0; padding:0; list-style:none; color:#e1e6ea; font-size:.82rem; }
.result-panel li::before { content:"✓"; margin-right:.4rem; color:#cfe8f6; }
.result-panel .result-note { margin-top:1.25rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.18); color:#c5ced5; font-size:.78rem; }
.metric-evidence { justify-content:center; }
.expandable-case { --case-accent:#2f80ed; --case-soft:#eef6ff; display:block; margin-top:1.4rem; overflow:hidden; border:1px solid #d9e0e6; border-left:6px solid var(--case-accent); background:white; box-shadow:0 8px 24px rgba(37,44,51,.07); transition:box-shadow .2s ease,transform .2s ease; }
.case-indexing { --case-accent:#087caf; --case-soft:#dff3fc; }
.case-onpage { --case-accent:#0d84b9; --case-soft:#d8effb; }
.case-performance { --case-accent:#168bbf; --case-soft:#d2ecfa; }
.case-content { --case-accent:#1f91c4; --case-soft:#cae9f8; }
.expandable-case:hover { transform:translateY(-2px); box-shadow:0 14px 32px rgba(37,44,51,.12); }
.case-summary { position:relative; display:grid; grid-template-columns:68px minmax(0,1fr) 170px 205px; gap:1.5rem; align-items:center; min-height:195px; padding:2rem; cursor:pointer; list-style:none; color:var(--ink); background:white; transition:background .2s ease; }
.case-summary:hover { background:var(--case-soft); }
.case-summary::-webkit-details-marker { display:none; }
.case-summary::marker { display:none; content:""; }
.case-summary::after { content:"+"; position:absolute; right:1.5rem; top:1.15rem; width:30px; height:30px; display:grid; place-items:center; border:2px solid var(--case-accent); border-radius:50%; color:var(--case-accent); background:white; font-size:1.1rem; }
.expandable-case[open] .case-summary::after { content:"×"; }
.case-summary:focus-visible { outline:3px solid var(--case-accent); outline-offset:3px; }
.case-count { align-self:start; padding-top:.2rem; color:var(--case-accent); font-family:var(--font-display); font-size:2.25rem; }
.case-summary p { margin:0 0 .45rem; color:var(--case-accent); font-size:.75rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.case-summary .case-kicker { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; margin-bottom:.8rem; }
.case-kicker strong { display:inline-block; padding:.38rem .58rem; color:white; background:var(--case-accent); font-family:var(--font-body); font-size:.76rem; letter-spacing:.08em; }
.case-kicker span { color:var(--case-accent); }
.case-summary h3 { max-width:720px; margin:0; font-family:var(--font-display); font-size:clamp(2rem,3.15vw,3.05rem); font-weight:500; line-height:1.08; }
.summary-tools { display:block; margin-top:.75rem; color:#68737d; font-size:.76rem; }
.summary-result { padding-left:1.2rem; border-left:1px solid #d8dee4; }
.summary-result strong { display:block; color:var(--case-accent); font-family:Georgia,"Times New Roman",serif; font-size:2.65rem; font-weight:500; line-height:1; }
.summary-result span { display:block; margin-top:.35rem; color:#68737d; font-size:.72rem; line-height:1.35; }
.toggle-label { align-self:end; justify-self:end; min-width:190px; padding:1rem 1.25rem; border:2px solid var(--case-accent); border-radius:999px; color:white; background:var(--case-accent); font-size:1rem; font-weight:700; text-align:center; box-shadow:0 7px 18px color-mix(in srgb,var(--case-accent) 24%,transparent); }
.expandable-case[open] .toggle-label { font-size:0; }
.expandable-case[open] .toggle-label::after { content:"Close case study"; font-size:.74rem; }
.case-details { display:grid; grid-template-columns:1.16fr .84fr; border-top:1px solid #dfe4e8; background:white; }
.case-details-reverse { grid-template-columns:1.16fr .84fr; }
.case-details-reverse .project-copy { grid-column:1; grid-row:1; }
.case-details-reverse .case-evidence { grid-column:2; grid-row:1; }
.expandable-case .project-copy { color:var(--ink); background:white; }
.expandable-case .project-copy p { color:#56616b; }
.expandable-case .case-evidence,.expandable-case .result-panel { color:var(--ink); background:var(--case-soft); }
.expandable-case .case-evidence { border-color:#dfe4e8; }
.expandable-case .problem-block { border-color:var(--case-accent); }
.expandable-case .problem-block span,.expandable-case .result-panel > span { color:var(--case-accent); }
.expandable-case .problem-block { background:var(--case-soft); }
.expandable-case .problem-block p { color:var(--ink); }
.expandable-case .tool-row span { border-color:color-mix(in srgb,var(--case-accent) 45%,#d9e0e6); color:#46515b; background:white; }
.expandable-case .case-steps span { border-color:var(--case-accent); color:var(--case-accent); }
.expandable-case .case-steps span { color:white; background:var(--case-accent); }
.expandable-case .case-steps strong { color:var(--ink); }
.expandable-case .problem-block p { font-size:1rem; line-height:1.7; }
.expandable-case .tool-row span { font-size:.78rem; }
.expandable-case .result-panel > strong { color:var(--ink); }
.expandable-case .result-panel p,.expandable-case .result-panel ul { color:#4f5b65; font-size:.96rem; line-height:1.65; }
.expandable-case .result-panel .result-note { border-color:#d8dee4; color:#67727c; font-size:.86rem; }
.expandable-case .result-panel li::before { color:var(--case-accent); }
.step-result { display:none; }
.result-panel > span { font-size:0; }
.result-panel > span::after { content:"Main result"; font-size:.74rem; }
.expandable-case .metric-panel { border-color:#d8dee4; background:white; }
.expandable-case .metric-panel strong { color:var(--ink); }
.expandable-case .metric-panel span { color:#66717b; }
.solution-summary { margin-top:1.4rem; padding:1.15rem; border-left:4px solid var(--case-accent); background:white; }
.solution-summary > span { display:block; margin-bottom:.45rem; color:var(--case-accent); font-size:.74rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.solution-summary p { margin:0; color:#254b60 !important; font-size:.94rem !important; line-height:1.7 !important; }
.business-impact { margin-top:1rem; padding:1.15rem; border:1px solid color-mix(in srgb,var(--case-accent) 35%,white); border-top:4px solid var(--case-accent); background:white; }
.business-impact > span { display:block; margin-bottom:.45rem; color:var(--case-accent); font-size:.74rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.business-impact p { margin:0; color:#254b60 !important; font-size:.94rem !important; line-height:1.7 !important; }
.project-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.compact-project { display:flex; flex-direction:column; }
.compact-project .project-copy { flex:1; }
.compact-project .project-copy h3 { font-size:clamp(1.5rem,2.4vw,2.25rem); }
.owned-project { display:grid; grid-template-columns:1.15fr .85fr; }
.owned-project .inline-link { margin-top:.8rem; color:white; }
.metric-panel { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; padding:1.25rem; border-bottom:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.12); }
.metric-panel > div { display:grid; gap:.35rem; text-align:center; }
.metric-panel strong { font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,4vw,3.4rem); font-weight:500; line-height:1; }
.metric-panel span { color:#d9e0e5; font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; }
.comparison-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; border-bottom:1px solid #d8dee4; background:#d8dee4; }
.comparison-panel > div { display:grid; gap:.45rem; padding:1.35rem; background:white; }
.comparison-panel span { color:var(--case-accent); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.comparison-panel strong { color:var(--ink); font-size:clamp(1.8rem,3.4vw,3rem); font-weight:500; line-height:1; }
.comparison-panel small { color:#5b6872; font-size:.82rem; line-height:1.5; }
.additional-project { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; }
.mini-process { list-style:none; padding:clamp(1.5rem,4vw,3rem); margin:0; display:grid; gap:1rem; border-left:1px solid rgba(255,255,255,.2); }
.mini-process li { display:grid; grid-template-columns:28px 1fr; gap:.65rem; align-items:center; color:#edf0f2; font-size:.88rem; }

.approach { background:var(--cream); }
.approach-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.approach-list li { display:grid; grid-template-columns:62px 1fr; gap:1rem; padding:1.6rem 0; border-bottom:1px solid var(--line); }
.approach-list li > span { color:var(--wine); font-size:.72rem; font-weight:800; }
.approach-list h3 { margin:0 0 .25rem; font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; font-weight:500; }
.approach-list p { margin:0; color:var(--muted); }

.tools-heading { display:block; }
.tools-heading .section-label { margin-bottom:1.3rem; }
.tools-heading h2 { max-width:900px; }
.tool-pathways { display:grid; gap:1rem; margin-top:3.2rem; }
.tool-pathway { display:grid; grid-template-columns:minmax(300px,.85fr) 1.15fr; gap:clamp(1.5rem,4vw,4rem); align-items:center; padding:clamp(1.35rem,3vw,2.2rem); border:1px solid #8fcce6; background:#e2f4fc; }
.tool-pathway:nth-child(even) { background:#c9eafa; }
.tool-pathway-title { display:grid; grid-template-columns:68px 1fr; gap:1.1rem; align-items:start; }
.tool-pathway-title > span { display:grid; place-items:center; width:58px; height:58px; border:1px solid #86bddc; border-radius:50%; color:#236f9c; background:white; font-family:Georgia,"Times New Roman",serif; font-size:1.3rem; }
.tool-pathway h3 { margin:0 0 .45rem; font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.5rem,2.4vw,2rem); font-weight:500; line-height:1.12; }
.tool-pathway p { max-width:470px; margin:0; color:var(--muted); font-size:.9rem; line-height:1.6; }
.tool-cloud { display:flex; flex-wrap:wrap; gap:.65rem; align-content:center; }
.tool-cloud span { padding:.65rem .85rem; border:1px solid #b9d5e5; border-radius:999px; color:#31596f; background:white; font-size:.8rem; font-weight:700; box-shadow:0 3px 10px rgba(43,95,126,.06); }

.contact { padding-top:clamp(6rem,10vw,9rem); padding-bottom:clamp(8rem,13vw,12rem); color:var(--ink); background:#7bc9ec; }
.contact .section-label { color:#176d9d; }
.contact-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(3rem,8vw,8rem); align-items:end; }
.contact-intro { max-width:670px; margin:1.5rem 0 0; color:#214b61; font-size:1.1rem; line-height:1.75; }
.contact-links { border-top:0; }
.contact-links h3 { margin:0; padding:0 0 1rem; color:#176d9d; font-family:var(--font-body); font-size:1rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.contact-links a { min-height:82px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.8rem; border-bottom:1px solid rgba(23,56,79,.3); transition:padding .2s ease; }
.contact-links h3 + a { border-top:1px solid rgba(23,56,79,.3); }
.contact-links a:hover { padding-left:.5rem; }
.contact-links a:last-child { grid-template-columns:1fr auto; }
.contact-links span { overflow-wrap:anywhere; }
footer { color:#d7dde2; background:#252c33; }
.footer-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:.76rem; }
.footer-inner a { display:inline-flex; align-items:center; gap:.35rem; color:white; }

@media (max-width:900px) {
  .nav-wrap { grid-template-columns:1fr auto; gap:.65rem 1rem; padding-block:.75rem; }
  .desktop-nav { grid-column:1 / 3; grid-row:2; display:flex; justify-content:flex-start; gap:1.5rem; overflow-x:auto; padding:.2rem 0 .4rem; white-space:nowrap; }
  .hero-grid,.two-column,.contact-grid,.project-featured,.owned-project,.additional-project,.case-study,.case-study-reverse { grid-template-columns:1fr; }
  .hero-grid { min-height:auto; }
  .portrait-wrap { max-width:580px; }
  .section-heading { grid-template-columns:1fr; gap:1rem; }
  .large-shot img { min-height:auto; }
  .case-study-reverse .case-evidence,.case-study-reverse .project-copy { order:initial; }
  .case-evidence,.case-study-reverse .case-evidence { border:0; border-top:1px solid rgba(255,255,255,.2); }
  .case-summary { grid-template-columns:48px minmax(0,1fr) 130px; }
  .toggle-label { grid-column:2 / 4; justify-self:start; }
  .case-details,.case-details-reverse { grid-template-columns:1fr; }
  .case-details-reverse .project-copy { grid-column:1; grid-row:1; }
  .case-details-reverse .case-evidence { grid-column:1; grid-row:2; order:2; }
  .tool-pathway { grid-template-columns:1fr; }
  .client-result-evidence { grid-template-columns:1fr; }
}

@media (max-width:680px) {
  body { font-size:16px; }
  .container,.nav-wrap { width:calc(100% - 2rem); }
  .site-header { position:static; }
  .nav-wrap { min-height:68px; }
  .nav-contact { font-size:.78rem; }
  .hero-grid { padding-block:3.5rem 4.5rem; gap:3rem; }
  .hero h1 { font-size:clamp(3rem,15vw,4.7rem); }
  .portrait-wrap { padding:0 0 1rem 1rem; }
  .intro-strip-inner { grid-template-columns:1fr; padding-block:.7rem; }
  .intro-strip p,.intro-strip p:last-child { padding:.65rem 0; border:0; border-bottom:1px solid rgba(23,56,79,.2); }
  .intro-strip p:last-child { border-bottom:0; }
  .desktop-nav { gap:1.2rem; font-size:.82rem; }
  .service-list article { grid-template-columns:40px 1fr; gap:1rem; }
  .service-list p { grid-column:2; }
  .project-grid { grid-template-columns:1fr; }
  .month-work,.client-result-metrics { grid-template-columns:1fr; }
  .metric-panel,.comparison-panel { grid-template-columns:1fr; gap:1rem; }
  .case-summary { grid-template-columns:1fr; gap:.8rem; min-height:0; padding:1.35rem; }
  .case-count { font-size:1.3rem; }
  .summary-result { padding:1rem 0 0; border-left:0; border-top:1px solid #d8dee4; }
  .toggle-label { grid-column:1; }
  .mini-process { border-left:0; border-top:1px solid rgba(255,255,255,.2); }
  .project-copy { padding:1.35rem; }
  .work-shot figcaption { font-size:.67rem; }
  .footer-inner { min-height:100px; flex-wrap:wrap; padding-block:1rem; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms !important; }
}

/* Writing collection */
.writing-samples{background:var(--cream)}.writing-collections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.writing-collection{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:28px}.writing-collection>summary{cursor:pointer;list-style:none}.writing-collection>summary::-webkit-details-marker{display:none}.writing-collection>summary strong{display:block;font:700 27px/1.3 var(--font-display);color:var(--ink)}.writing-collection-copy{display:block;margin:14px 0 22px;color:var(--muted);font-size:16px}.writing-collection-toggle{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--wine-deep)}.writing-collection[open]{grid-column:1/-1}.writing-collection[open] .writing-collection-toggle svg{transform:rotate(180deg)}.writing-sample-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}.writing-sample-card{display:flex;flex-direction:column;gap:15px;padding:17px;border:1px solid var(--line);border-radius:8px}.writing-sample-card h3{font-size:21px;line-height:1.4;margin:0;font-weight:700}.writing-sample-card img{width:100%;height:140px;object-fit:cover;border-radius:5px}.writing-sample-card>span{display:flex;align-items:center;gap:7px;margin-top:auto;color:var(--wine-deep);font-weight:700}.writing-sample-card:hover{border-color:var(--wine);box-shadow:0 6px 20px #12364c0b}.writing-back{display:inline-block;margin-top:25px;font-weight:700;color:var(--wine-deep)}@media(max-width:760px){.writing-collections{grid-template-columns:1fr}.writing-sample-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-collection{padding:22px}}@media(max-width:480px){.writing-sample-grid{grid-template-columns:1fr}}
