:root{--teal:#007A8E;--deep-teal:#005B5C;--navy:#001F3F;--mint:#A8D8B9;--sand:#F0E5D8;--soft-mint:#E9EFED;--brand-gradient:linear-gradient(140deg,var(--deep-teal),var(--navy));--ink:var(--navy);--olive:var(--deep-teal);--moss:var(--mint);--paper:#F6F7F5;--muted:var(--deep-teal);--line:var(--soft-mint);--gutter:5vw;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--moss);color:var(--ink)}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--olive)}a:focus-visible,summary:focus-visible{outline:2px solid var(--olive);outline-offset:6px}img{display:block;width:100%;height:auto}figure,p,h1,h2,h3{margin:0}p+p{margin-top:20px}h1,h2,h3{font-weight:400;line-height:1.08}p{color:var(--muted)}header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:28px;min-height:78px;padding:14px var(--gutter);background:var(--ink);color:#fff;border-bottom:1px solid var(--navy)}header a:hover{color:white}header a:focus-visible{outline-color:white}.wordmark{font-size:40px;line-height:1;letter-spacing:-3px;font-weight:600;text-decoration:none}.brand-dot{color:var(--moss)}.nav-description{font:9px/1.55 var(--sans);letter-spacing:1.2px;color:var(--soft-mint)}nav{display:flex;gap:32px;align-items:center;margin-left:auto;font-size:12px}nav a{text-decoration:none;position:relative;padding:5px 0}nav a:after{position:absolute;bottom:0;left:0;content:'';height:1px;width:0;background:var(--moss);transition:width .25s}nav a:hover:after,nav a[aria-current=page]:after{width:100%}.navcta{margin-left:25px;border-bottom:1px solid var(--teal)}.navcta span{margin-left:25px}.eyebrow,.masthead-meta,.margin-label,.opening-bottom,figcaption,.location-marker{font:10px/1.5 var(--sans);letter-spacing:1.2px}.eyebrow{color:var(--deep-teal);margin-bottom:27px}.opening{padding:27px var(--gutter) 0;max-width:1800px;margin:auto}.masthead-meta{display:flex;justify-content:space-between;color:var(--deep-teal);border-bottom:1px solid var(--line);padding-bottom:16px;gap:20px}.nameplate{font-size:clamp(80px,13.6vw,218px);font-weight:400;line-height:1.06;letter-spacing:-.075em;padding:14px 0 29px;white-space:nowrap}.name-period{color:var(--olive)}.opening-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:9vw;padding-bottom:52px}.opening-thought{padding-top:20px}.opening-thought h1{font-family:var(--serif);font-size:clamp(38px,4.2vw,65px);letter-spacing:-1.9px;line-height:1.08;margin-bottom:30px}.opening-intro{font-size:16px;max-width:385px;line-height:1.8}.line-link{display:inline-flex;align-items:center;gap:35px;font-size:12px;line-height:1.5;text-decoration:none;border-bottom:1px solid var(--teal);padding:0 0 9px;transition:gap .25s,color .25s}.line-link:hover{gap:45px}.opening-thought>.line-link{margin-top:27px}.opening-portrait{align-self:start;position:relative;max-width:560px}.opening-portrait img{aspect-ratio:1.05;object-fit:cover;object-position:center 42%}.opening-portrait figcaption{display:flex;justify-content:space-between;gap:12px;font-size:8px;padding-top:13px;color:var(--deep-teal)}.field-note{display:flex;gap:15px;margin-top:45px;align-items:flex-start}.field-note p{font:11px/1.8 var(--sans);color:var(--deep-teal)}.small-cross{font:20px/1 var(--sans);color:var(--deep-teal)}.opening-bottom{display:flex;justify-content:space-between;padding:17px 0;border-top:1px solid var(--line);color:var(--deep-teal)}.opening-bottom a{text-decoration:none}.opening-bottom a span{margin-left:30px}.section-shell{display:grid;grid-template-columns:18% 1fr;gap:5%;padding:100px var(--gutter);max-width:1800px;margin:auto}.margin-label{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;color:var(--deep-teal);max-height:100px;padding-top:8px}.perspective{padding-top:115px;padding-bottom:115px}.perspective h2{font:clamp(36px,4.2vw,64px)/1.15 var(--serif);letter-spacing:-2px;margin-bottom:52px}.perspective h2 span{color:var(--olive)}.perspective-columns{display:grid;grid-template-columns:1fr 1fr;gap:9%}.large-copy{font:25px/1.5 var(--serif);color:var(--ink)}.perspective-columns>div p{font-size:15px}.perspective-columns .line-link{margin-top:28px}.collaboration{background:var(--surface);max-width:none;border-top:1px solid var(--soft-mint);border-bottom:1px solid var(--soft-mint)}.section-intro{display:grid;grid-template-columns:1fr .8fr;gap:12%;align-items:end;margin-bottom:50px}.section-intro h2{font:clamp(40px,4.6vw,68px)/1.05 var(--serif);letter-spacing:-2px}.section-intro>p{font-size:14px;line-height:1.8}.conversation-list{border-top:1px solid var(--mint);margin-bottom:30px}.conversation-list details{border-bottom:1px solid var(--mint)}.conversation-list summary{display:grid;grid-template-columns:55px 1fr 25px;gap:10px;list-style:none;cursor:pointer;padding:25px 0;align-items:center}.conversation-list summary::-webkit-details-marker{display:none}.item-index{font:15px var(--serif);color:var(--ink)}.conversation-list h3{font:clamp(20px,2.1vw,30px)/1.25 var(--sans);letter-spacing:-.6px}.toggle{position:relative;width:15px;height:15px}.toggle:before,.toggle:after{content:'';position:absolute;background:var(--deep-teal);top:7px;left:0;height:1px;width:15px}.toggle:after{transform:rotate(90deg);transition:transform .2s}details[open] .toggle:after{transform:rotate(0deg)}.detail-copy{padding:0 45px 27px 65px;max-width:730px}.detail-copy p{font-size:14px;line-height:1.9}.places{padding:95px var(--gutter);max-width:1800px;margin:auto}.places-heading{display:grid;grid-template-columns:23% 1fr;margin-bottom:45px}.places-heading h2{font:clamp(36px,4vw,60px)/1.1 var(--serif);letter-spacing:-1.7px}.landscape-plate{margin-left:9%;}.landscape-plate img{aspect-ratio:2.2;object-fit:cover;object-position:50% 52%}.landscape-plate figcaption{display:flex;justify-content:space-between;padding-top:13px;font-size:9px;color:var(--deep-teal)}.locations{margin-top:52px;display:grid;grid-template-columns:repeat(3,1fr);gap:6%;margin-left:23%}.locations article{position:relative;padding-top:20px;border-top:1px solid var(--line)}.location-marker{font-size:9px;color:var(--deep-teal);display:block;margin-bottom:16px}.locations h3{font-family:var(--serif);font-size:30px;margin-bottom:17px}.locations p{font-size:13px;line-height:1.9;min-height:120px}.locations .line-link{font-size:10px;gap:0;margin-top:20px}.in-conversation{border-top:1px solid var(--line);padding-top:85px;padding-bottom:100px}.conversation-body{display:grid;grid-template-columns:1.2fr 1fr;gap:7%;align-items:start}.conversation-body>figure{margin-top:45px}.conversation-body>figure img{aspect-ratio:1.2;object-fit:cover;object-position:51%}.conversation-body figcaption{font-size:8px;padding-top:12px;color:var(--deep-teal)}.conversation-copy h2{font:clamp(34px,3.4vw,51px)/1.1 var(--serif);letter-spacing:-1.5px;margin-bottom:27px}.conversation-copy p:not(.eyebrow){font-size:14px;line-height:1.85}.conversation-copy .line-link{margin-top:30px;font-size:11px;gap:0}footer{background:var(--ink);color:var(--paper);padding:0 var(--gutter)}footer p{color:var(--mint)}footer a:hover{color:var(--sand)}footer .eyebrow{color:var(--mint)}footer .line-link{border-bottom-color:var(--teal);color:var(--paper)}.footer-invitation{padding:70px 0 60px;border-bottom:1px solid var(--deep-teal)}.invitation-row{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-bottom:26px}.invitation-row h2{font:clamp(42px,5.8vw,88px)/1.06 var(--serif);letter-spacing:-2.5px}.round-cta{width:100px;height:100px;display:grid;place-items:center;border:1px solid var(--teal);border-radius:50%;font:45px var(--sans);text-decoration:none;flex-shrink:0;transition:background .25s,transform .25s}.round-cta:hover{background:var(--mint);transform:rotate(8deg);color:var(--ink)}.footer-invitation>p:not(.eyebrow){font-size:14px}.footer-invitation>.line-link{margin-top:25px}.footer-profile{display:grid;grid-template-columns:1.15fr 1fr 1fr .8fr;gap:35px;padding:55px 0;border-bottom:1px solid var(--deep-teal);font-size:12px}.footer-name{font:30px/1 var(--serif);letter-spacing:-1px;display:block;margin-bottom:20px}.footer-profile p{margin-bottom:18px}.footer-profile .eyebrow{font-size:8px;margin-bottom:20px}.footer-profile address{font-style:normal;line-height:1.8}.footer-profile address a{text-decoration:none}.map{display:inline-block;border-bottom:1px solid var(--teal);font-size:10px;margin-top:18px}.footer-region{font-family:var(--serif);font-size:24px;text-decoration:none;display:inline-block;margin-bottom:20px}.footer-perspective{padding:45px 0;display:grid;grid-template-columns:23% 1fr;gap:0}.footer-perspective h2{font:28px/1.1 var(--serif)}.footer-story{display:grid;grid-template-columns:1fr 1.3fr;gap:8%}.footer-story p{font-size:12px;line-height:1.9;margin:0}.footer-story a{text-decoration-color:var(--teal)}.end{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 0;border-top:1px solid var(--deep-teal);font-size:10px;color:var(--mint)}.end a{text-decoration:none}.modal-mention{text-decoration:none;border-bottom:1px solid var(--mint)}footer .modal-mention{border-color:var(--teal)}.image-label .modal-mention{color:inherit}.skip{position:fixed;top:-100px;left:10px;background:#fff;padding:12px;z-index:101}.skip:focus{top:10px}.wrap{max-width:1600px;margin:auto;padding:85px var(--gutter)}.pagehead{padding-top:85px;padding-bottom:70px;border-bottom:1px solid var(--line);margin-bottom:70px}.pagehead h1{font:clamp(54px,7vw,108px)/1.03 var(--serif);letter-spacing:-3.5px;margin-bottom:30px}.pagehead h1 em{font-style:normal;color:var(--deep-teal)}.pagehead .lead{font-size:18px;max-width:580px;line-height:1.8;margin-left:23%}.pagehead>.button{margin-top:30px;margin-left:23%}.intro-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:12%;align-items:start}.subcontent{padding-top:0;padding-bottom:100px}.intro-grid img{aspect-ratio:4/5;object-fit:cover;max-height:660px}.intro-grid h2{font:clamp(34px,3.5vw,52px)/1.15 var(--serif);letter-spacing:-1.2px;margin:18px 0 30px}.intro-grid h3{font:29px/1.2 var(--serif);margin:38px 0 20px}.intro-grid p{font-size:16px;line-height:1.9}.textlink{display:inline-block;font-size:12px;text-decoration:none;border-bottom:1px solid var(--teal);padding-bottom:8px;margin-top:28px}.editorial{padding-top:0;padding-left:26%;}.editorial article{display:grid;grid-template-columns:100px 1fr;gap:25px;padding:38px 0;border-top:1px solid var(--line)}.editorial article:first-child{border-top:0;padding-top:0}.editorial h2{font:36px/1.15 var(--serif);letter-spacing:-.7px;margin-bottom:25px}.editorial h3{font:27px/1.2 var(--serif);margin:30px 0 20px}.editorial p{max-width:680px;line-height:1.9}.note{background:var(--surface);max-width:none;padding-left:26%}.note h2{font:40px/1.15 var(--serif);max-width:650px;margin-bottom:25px}.note p{margin-bottom:28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;font-size:12px;text-decoration:none;padding:17px 23px;background:var(--ink);color:#fff}.button:hover{background:var(--deep-teal);color:white}.button span{font-size:20px}
@media(min-width:1800px){:root{--gutter:90px}.nameplate{font-size:218px}.opening-grid{gap:160px}.section-shell,.places{max-width:1800px}.opening-portrait{max-width:610px}}
@media(max-width:1000px){nav{gap:23px}.navcta{margin-left:0}.nav-description{display:none}.opening-grid{gap:6vw}.opening-thought .eyebrow{font-size:8px;letter-spacing:.6px}.opening-thought h1{font-size:43px}.opening-intro{font-size:14px}.field-note{margin-top:25px}.section-shell{grid-template-columns:15% 1fr;gap:5%;padding-top:75px;padding-bottom:75px}.perspective h2{font-size:45px}.perspective-columns{gap:7%}.large-copy{font-size:22px}.section-intro{gap:7%}.section-intro h2{font-size:45px}.conversation-body{grid-template-columns:1fr;gap:35px}.conversation-body>figure{margin-top:0;max-width:620px}.conversation-body>figure img{aspect-ratio:1.75}.conversation-copy{max-width:600px;margin-left:15%}.locations{margin-left:0}.locations p{min-height:100px}.footer-profile{grid-template-columns:1fr 1fr;row-gap:38px}.footer-perspective{grid-template-columns:1fr;gap:25px}.footer-story{gap:7%}.editorial{padding-left:15%}.pagehead .lead,.pagehead>.button{margin-left:15%}.intro-grid{gap:7%}}
@media(max-width:650px){:root{--gutter:6vw}html{scroll-padding-top:125px}header{min-height:100px;gap:15px;flex-wrap:wrap;padding-top:13px;padding-bottom:12px}.wordmark{font-size:30px}.nav-description{display:block;font-size:7px;line-height:1.4}nav{order:3;width:100%;font-size:10px;gap:14px;justify-content:space-between}nav .navcta{margin-left:auto}.navcta span{margin-left:5px}.masthead-meta{font-size:7px;letter-spacing:.6px;gap:10px}.masthead-meta span{max-width:48%}.masthead-meta span:last-child{text-align:right}.opening{padding-top:20px}.nameplate{font-size:13.6vw;letter-spacing:-.075em;padding:20px 0 25px}.opening-grid{grid-template-columns:1fr;gap:35px;padding-bottom:25px}.opening-thought{padding-top:0}.opening-thought h1{font-size:42px;letter-spacing:-1.4px}.opening-thought .eyebrow{font-size:8px;letter-spacing:.7px;margin-bottom:23px}.opening-intro{font-size:15px;max-width:390px}.opening-thought>.line-link{margin-top:24px}.field-note{display:none}.opening-portrait{width:80%;justify-self:start;max-width:390px}.opening-portrait img{aspect-ratio:1}.opening-portrait figcaption{font-size:6px;letter-spacing:.4px}.opening-bottom{font-size:7px;letter-spacing:.6px}.opening-bottom a span{margin-left:12px}.section-shell{display:block;padding:60px var(--gutter)}.margin-label{flex-direction:row;align-items:center;margin-bottom:32px;font-size:9px;max-height:none}.perspective h2{font-size:36px;letter-spacing:-1.3px;margin-bottom:28px}.perspective-columns{grid-template-columns:1fr;gap:28px}.large-copy{font-size:24px}.perspective-columns>div p{font-size:14px}.section-intro{grid-template-columns:1fr;gap:25px;margin-bottom:32px}.section-intro h2{font-size:44px}.conversation-list summary{grid-template-columns:30px 1fr 16px;gap:8px;padding:22px 0}.conversation-list h3{font-size:20px}.detail-copy{padding:0 0 23px 38px}.detail-copy p{font-size:13px}.places{padding:60px var(--gutter)}.places-heading{display:block;margin-bottom:30px}.places-heading h2{font-size:36px;letter-spacing:-1px}.landscape-plate{margin-left:0}.landscape-plate img{aspect-ratio:1.3}.landscape-plate figcaption{font-size:7px;letter-spacing:.5px;gap:15px}.locations{grid-template-columns:1fr;margin-top:35px;gap:30px}.locations article{display:grid;grid-template-columns:35px 1fr;gap:0 10px;padding-top:22px}.location-marker{grid-row:1/4;margin-top:8px}.locations h3{font-size:30px;margin-bottom:14px}.locations p{font-size:14px;min-height:0}.locations .line-link{justify-self:start;font-size:11px;margin-top:20px}.conversation-body>figure img{aspect-ratio:1.5}.conversation-copy{margin-left:0}.conversation-copy h2{font-size:39px}.conversation-copy .eyebrow{font-size:8px}.conversation-body figcaption{font-size:7px}.invitation-row h2{font-size:40px;letter-spacing:-1.2px}.invitation-row{gap:16px}.round-cta{width:50px;height:50px;font-size:27px}.footer-invitation{padding:55px 0 40px}.footer-invitation .eyebrow{font-size:8px}.footer-invitation>p:not(.eyebrow){font-size:13px}.footer-profile{grid-template-columns:1fr;gap:32px;padding:40px 0}.footer-profile p{margin-bottom:12px}.footer-profile .eyebrow{margin-bottom:13px}.footer-story{grid-template-columns:1fr;gap:22px}.footer-perspective{padding:35px 0}.footer-story p{font-size:12px}.end{font-size:9px;gap:16px}.pagehead{padding-top:50px;padding-bottom:40px;margin-bottom:40px}.pagehead h1{font-size:48px;letter-spacing:-1.8px}.pagehead .lead{margin-left:0;font-size:16px}.pagehead>.button{margin-left:0}.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}.intro-grid{grid-template-columns:1fr;gap:35px}.subcontent{padding-top:0;padding-bottom:60px}.intro-grid img{max-height:450px;width:85%}.intro-grid h2{font-size:35px;margin-top:0}.intro-grid p{font-size:15px}.editorial{padding-top:0;padding-bottom:60px}.editorial article{grid-template-columns:1fr;gap:10px;padding:30px 0}.editorial h2{font-size:30px}.editorial p{font-size:15px}.editorial .eyebrow{margin-bottom:8px}.note{padding-top:50px;padding-bottom:50px}.note h2{font-size:33px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Vector arrows retain their monochrome appearance on every platform. */
.link-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0;color:inherit}

/* Barely softened corners on content and controls. */
:root{--corner-soft:2px}
:where(main img,.button,button,input,select,textarea,.key-points,.article-next,.editorial-notice){border-radius:var(--corner-soft)}

/* Equal heading scale and spacing for qualification and membership entries. */
.credentials h2:not(:first-child){margin-top:30px}

/* Shared typography and actions across the profile and journal. */
main :is(h1,h2,h3) { text-wrap: balance; }
main p { text-wrap: pretty; }
main .line-link, main p a { color: var(--olive); }
.button, .opening-thought > .line-link {
  background: var(--olive);
  color: var(--paper);
  padding: 12px 20px;
  border: 0;
  border-radius: var(--corner-soft);
}
.button:hover, .opening-thought > .line-link:hover { background: var(--ink); color: var(--paper); }
:where(button,input,select,textarea):focus-visible { outline: 2px solid var(--olive); outline-offset: 4px; }
footer :focus-visible { outline-color: var(--paper); }
@media (max-width:650px) {
  .opening-portrait { width: 100%; max-width: none; }
  .opening-portrait figcaption, .landscape-plate figcaption, .conversation-body figcaption { font-size: 10px; }
  .opening-thought h1 { margin-bottom: 20px; }
}

/* Architectural identity, adaptive type and shared interaction surfaces. */
:root {
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --surface: var(--soft-mint);
  --sage: var(--teal);
  --steel: var(--teal);
  --enquiry: var(--teal);
  --muted: var(--olive);
  --line: var(--mint);
  --radius: 1.25rem;
  --gutter: max(clamp(1.125rem, 5vw, 5rem), calc((100vw - 82rem) / 2));
}
body { font-family: var(--sans); line-height: 1.6; }
:where(a, button, input, select, summary):focus-visible { outline: 3px solid var(--olive); outline-offset: 3px; }
header {
  min-height: 4.25rem; padding-block: .5rem; gap: 1.2rem;
  background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--line);
}
@supports (backdrop-filter: blur(18px)) {
  header { background: rgb(246 247 245 / 94%); backdrop-filter: blur(18px); }
}
header a:hover, header .brand-dot { color: var(--olive); }
header a:focus-visible { outline-color: var(--olive); }
.wordmark { display: inline-flex; align-items: center; min-height: 44px; font-size: 2rem; }
.nav-description { display: block; font-size: .625rem; color: var(--muted); letter-spacing: .09em; }
header nav { gap: clamp(.45rem, 1.8vw, 1.75rem); flex-wrap: wrap; font-size: .875rem; }
header nav a { min-height: 44px; display: inline-flex; align-items: center; padding: .5rem .2rem; }
header nav a:after { background: var(--olive); bottom: .35rem; }
header nav .navcta, .button, .opening-thought > .line-link {
  min-height: 44px; border: 0; border-radius: 2rem; background: var(--olive);
  color: var(--paper); font-size: .875rem; font-weight: 600; padding: .65rem 1.25rem; gap: .7rem;
}
header nav .navcta { margin-left: 0; }
header nav .navcta span { margin: 0; }
header nav .navcta:after { content: none; }
header nav .navcta:hover { background: var(--ink); color: var(--paper); }
.line-link { min-height: 44px; align-items: center; font-size: .875rem; }
.opening, .places, .section-shell, .wrap { max-width: none; }
.opening { padding-top: clamp(1.5rem, 4vw, 4rem); }
.masthead-meta, .opening-bottom { font-size: .7rem; letter-spacing: .085em; align-items: center; }
.nameplate {
  font: 550 clamp(3rem, 8vw, 7.5rem)/1.05 var(--sans); letter-spacing: -.07em;
  white-space: normal; padding-block: clamp(1.5rem, 4vw, 3.5rem);
}
.opening-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(2rem, 6vw, 6rem);
  align-items: center; padding: 0 0 clamp(2rem, 5vw, 5rem);
}
.opening-thought { padding: 0; }
.opening-thought h1 { font: 400 clamp(2.6rem, 4.4vw, 4.75rem)/1.02 var(--serif); letter-spacing: -.045em; }
.opening-intro { font-size: 1.0625rem; line-height: 1.65; max-width: none; }
.opening-portrait { max-width: none; width: 100%; align-self: center; }
.opening-portrait img { aspect-ratio: 1.12; border-radius: var(--radius); }
.opening-portrait figcaption, .landscape-plate figcaption, .conversation-body figcaption {
  font-size: .6875rem; letter-spacing: .07em; line-height: 1.5;
}
.field-note { display: flex; margin-top: 1.75rem; }
.field-note p { font-size: .8125rem; color: var(--muted); }
.eyebrow, .margin-label, .location-marker, .opening-thought .eyebrow {
  color: var(--olive); font: 600 .6875rem/1.5 var(--sans); letter-spacing: .09em;
}
.section-shell { grid-template-columns: minmax(9rem, .27fr) minmax(0, 1fr); gap: 5%; }
.collaboration, .note { background: var(--surface); }
.conversation-list { border: 0; border-radius: var(--radius); background: var(--paper); padding-inline: clamp(1rem, 3vw, 2rem); }
.conversation-list details:last-child { border-bottom: 0; }
.conversation-list summary { min-height: 60px; }
.landscape-plate { margin-left: 0; }
.landscape-plate img, .conversation-body img, .intro-grid img { border-radius: var(--radius); }
.locations { margin-left: 0; gap: 1rem; }
.locations article { padding: 1.5rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.locations p, .detail-copy p, .conversation-copy p:not(.eyebrow) { font-size: 1rem; line-height: 1.65; }
.locations .line-link { font-size: .875rem; }
.pagehead { padding-block: clamp(3rem, 7vw, 7rem); margin-bottom: 0; }
.pagehead h1 { font: 550 clamp(2.8rem, 6.8vw, 6.25rem)/1.03 var(--sans); letter-spacing: -.06em; }
.pagehead h1 em { color: var(--olive); }
.pagehead .lead, .pagehead > .button { margin-left: 0; }
.pagehead .lead { max-width: 58ch; font-size: 1.125rem; }
.subcontent, .editorial { padding-top: clamp(2.5rem, 6vw, 5rem); }
.editorial { padding-inline: var(--gutter); }
.editorial p, .intro-grid p { max-width: 65ch; }
footer { padding-block-end: env(safe-area-inset-bottom); }
.footer-profile { font-size: .9375rem; }
.footer-profile .eyebrow { color: var(--mint); font-size: .6875rem; margin-bottom: .75rem; }
.footer-region { font-size: clamp(1.5rem, 2.2vw, 2rem); min-height: 44px; margin-bottom: .5rem; }
.footer-profile .map { display: inline-flex; align-items: center; min-height: 44px; gap: .35rem; }
footer a:focus-visible { outline-color: var(--paper); }
@media (max-width: 58rem) {
  header { flex-wrap: wrap; gap: .25rem 1rem; }
  header nav { flex: 1 1 30rem; justify-content: flex-end; }
  .section-shell { display: block; }
  .margin-label { margin-bottom: 1.5rem; }
}
@media (max-width: 43rem) {
  html { scroll-padding-top: 1rem; }
  header { position: relative; padding-top: .65rem; }
  header nav { width: 100%; justify-content: flex-start; gap: .15rem .65rem; font-size: .875rem; }
  header nav .navcta { margin-left: 0; }
  .masthead-meta { flex-wrap: wrap; gap: .4rem 1rem; }
  .masthead-meta span { max-width: none; }
  .opening-grid, .locations { grid-template-columns: 1fr; }
  .opening-portrait img { aspect-ratio: 1.2; }
  .opening-bottom { flex-wrap: wrap; }
  .opening-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
  .locations article { display: block; }
  .locations p { min-height: 0; }
  .footer-profile { grid-template-columns: 1fr; gap: 0; }
  .footer-profile > div { padding-block: 1.25rem; }
  .footer-profile > div + div { border-top: 1px solid var(--deep-teal); }
}
@media (prefers-reduced-transparency: reduce) { header { background: var(--paper); backdrop-filter: none; } }
@media (prefers-contrast: more) { :root { --line: var(--deep-teal); --muted: var(--ink); } header { background: var(--paper); } }

.project-study { margin: 0 var(--gutter); }
.project-study img { width: 100%; height: auto; border-radius: var(--radius); }
.project-study figcaption { padding-block: .75rem; color: var(--muted); font: .8125rem/1.5 var(--sans); }
.pagehead + .project-study { margin-top: clamp(1.5rem, 4vw, 4rem); }
@media (min-width: 48rem) {
  .project-study figcaption { position: relative; width: fit-content; margin: -1.25rem 0 0 1.25rem; padding: .65rem 1rem; background: var(--paper); border-radius: .6rem; }
}

/* Give project enquiries the copper accent throughout the site. */
header nav .navcta, .opening-thought > .line-link, .button[href*="/book-a-meeting"], .round-cta {
  background: var(--enquiry);
  color: white;
}
.round-cta { border-color: var(--paper); }
:is(.navcta, .round-cta, .button, .opening-thought > .line-link)[href*="/book-a-meeting"]:hover {
  background: var(--ink);
  color: var(--paper);
}

header .brand-dot, .name-period, .pagehead h1 em { color: var(--sage); }
.collaboration, .note { background: var(--moss); --olive: var(--deep-teal); --muted: var(--ink); }
.collaboration .margin-label, .collaboration .eyebrow, .note p { color: var(--ink); }
.line-link, .textlink, .map { border-bottom-color: var(--steel); }
.footer-profile .eyebrow, footer .eyebrow { color: var(--moss); }


/* Shared brand surfaces */
.opening, .pagehead, .journal-heading, .article-heading, footer {
  background: var(--brand-gradient);
}
.opening, .pagehead, .journal-heading, .article-heading {
  color: var(--paper);
  --deep-teal: #F6F7F5;
  --olive: #F6F7F5;
  --muted: #E1ECEA;
  --sage: var(--mint);
  --line: #ffffff40;
}
:is(.opening, .pagehead, .journal-heading, .article-heading) :is(h1, h2, h3, p, figcaption, a:not(.button):not(.line-link)) { color: inherit; }
:is(.opening, .pagehead, .journal-heading, .article-heading) :focus-visible { outline-color: white; }
.collaboration, .note { background: var(--soft-mint); }
footer a:hover { color: var(--paper); }
.opening-bottom { border-bottom: 0; }
.opening + .project-study { margin-top: clamp(1.5rem, 4vw, 4rem); }
.conversation-body figcaption { color: var(--ink); }
.nameplate, .pagehead h1, .journal-heading h1, .article-heading h1, main h2 { color: var(--deep-teal); }

::selection { background: var(--mint); color: var(--navy); }

.opening .masthead-meta { padding-bottom: 1rem; }
@media (max-width: 720px) {
  .opening-grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .opening-thought { display: contents; }
  .opening-thought > .eyebrow { grid-row: 1; margin: 0; }
  .opening-portrait { grid-row: 2; }
  .opening-thought > :is(h1, p, .line-link, .field-note) { margin-block: 0; }
  .opening-thought > .line-link { justify-self: start; }
}

header .menu-toggle { display: none; }
body { --header-height: 5rem; --nav-concrete: #E9EFED; }

@media (scripting: enabled) {
  body:where(:has(:is(.opening,.pagehead,.article-heading,.journal-heading))) header {
    position: fixed; inset: 0 0 auto; height: var(--header-height); min-height: 0;
    --nav-surface: transparent; --nav-ink: white;
  }
  main > :is(.opening,.pagehead,.journal-heading):first-child,
  main > article:first-child > .article-heading:first-child {
    border-top: var(--header-height) solid transparent;
    background-origin: border-box;
    background-clip: border-box;
    background-repeat: no-repeat;
  }
  body header {
    background: var(--nav-surface, var(--nav-concrete)); color: var(--nav-ink, black);
    border: 0; backdrop-filter: none; transition: color .25s ease, background-color .25s ease;
  }
  body header::after {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    border-radius: inherit; background: var(--brand-gradient); opacity: 0;
    transition: opacity .25s ease;
  }
  body header.scrolled:not(.over-dark)::after { opacity: 1; }
  body header.scrolled { --nav-surface: var(--nav-concrete); --nav-ink: white; box-shadow: 0 3px 16px rgb(0 31 63 / 10%); }
  body header.scrolled.over-dark { --nav-surface: var(--nav-concrete); --nav-ink: black; }
  header :is(.wordmark,.brand-dot,.nav-description,nav a,.menu-toggle) { color: inherit; }
  header :is(a,button):focus-visible { outline-color: currentColor; }
  header nav a::after { background: currentColor; }
  header nav .navcta { background: transparent; color: inherit; border: 1px solid currentColor; }
  body header { --nav-accent: var(--deep-teal); --nav-inverse: white; }
  body:has(:is(.opening,.pagehead,.article-heading,.journal-heading)) header,
  body header.scrolled { --nav-accent: var(--mint); --nav-inverse: var(--navy); }
  body header.scrolled.over-dark { --nav-accent: var(--deep-teal); --nav-inverse: white; }
  body header .wordmark:is(:hover,:focus-visible),
  body header nav a:not(.navcta):is(:hover,:focus-visible) { color: inherit; }
  body header .wordmark:is(:hover,:focus-visible) .brand-dot { color: var(--nav-accent); }
  header nav a:not(.navcta):is(:hover,:focus-visible)::after {
    width: 100%; height: 2px; background: var(--nav-accent);
  }
  body header nav .navcta:is(:hover,:focus-visible) {
    background: var(--nav-ink, black); color: var(--nav-inverse);
  }
}
@media (min-width: 75.001rem) and (hover: hover) {
  body:has(:is(.opening,.pagehead,.article-heading,.journal-heading)) header.menu-ready {
    --nav-progress: 0;
    --nav-surface: rgb(233 239 237 / var(--nav-progress));
    --nav-ink: white;
    inset: calc(.625rem * var(--nav-progress)) calc(var(--nav-compact-inset, 0px) * var(--nav-progress)) auto;
    width: auto; max-width: none; margin: 0;
    height: calc(var(--header-height) + (3.75rem - var(--header-height)) * var(--nav-progress));
    padding-block: .5rem;
    padding-inline-start: calc(var(--gutter) + (1.5rem - var(--gutter)) * var(--nav-progress));
    padding-inline-end: calc(var(--gutter) + (.5rem - var(--gutter)) * var(--nav-progress));
    border-radius: calc(2rem * var(--nav-progress));
    box-shadow: 0 3px 16px rgb(0 31 63 / calc(.1 * var(--nav-progress)));
    transition: none;
  }
  body:has(:is(.opening,.pagehead,.article-heading,.journal-heading)) header.menu-ready.over-dark.surface-ink {
    --nav-ink: black;
  }
  body:has(:is(.opening,.pagehead,.article-heading,.journal-heading)) header.menu-ready::after {
    opacity: var(--nav-progress); transition: none;
  }
  body:has(:is(.opening,.pagehead,.article-heading,.journal-heading)) header.menu-ready.over-dark::after {
    opacity: 0;
  }
  header :is(.wordmark,.nav-description), header #main-navigation {
    flex-shrink: 0;
  }
  header #main-navigation {
    flex-wrap: nowrap;
  }
}
@media (max-width: 75rem) and (scripting: enabled), (hover: none) and (pointer: coarse) and (scripting: enabled) {
  body { --header-height: 4rem; }
  html { scroll-padding-top: 5rem; }
  body header {
    display: grid; grid-template-columns: auto minmax(0,1fr) 44px;
    align-items: center; gap: .75rem; min-height: var(--header-height); padding-block: .5rem;
  }
  header .nav-description { display: block; }
  header .menu-toggle {
    display: inline-flex; align-items: center; justify-content: flex-end;
    width: 44px; height: 44px; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer;
  }
  header #main-navigation {
    position: absolute; top: 100%; inset-inline: 0; width: auto; margin: 0;
    display: none; grid-template-columns: 1fr; justify-content: stretch; gap: .125rem;
    padding: .5rem var(--gutter) 1rem; max-height: calc(100dvh - 4rem); overflow-y: auto;
    background: var(--nav-concrete); color: black; text-align: left;
  }
  body header::after { display: none; }
  body header.scrolled:has(.menu-toggle[aria-expanded="false"]) {
    --nav-surface: var(--nav-concrete); --nav-ink: black;
    --nav-accent: var(--deep-teal); --nav-inverse: white;
  }
  html:has(header .menu-toggle[aria-expanded="true"]) { overflow: hidden; }
  body header:has(.menu-toggle[aria-expanded="true"]) {
    position: fixed; inset: 0 0 auto; color: white; box-shadow: none;
    --nav-accent: var(--mint); --nav-inverse: var(--navy); --nav-ink: white;
  }
  header:has(.menu-toggle[aria-expanded="true"])::before {
    content: ""; position: fixed; inset: 0; z-index: -1;
    background: var(--brand-gradient);
    animation: menu-reveal .36s cubic-bezier(.2,.7,.25,1) both;
  }
  header:has(.menu-toggle[aria-expanded="true"]) #main-navigation {
    display: grid; align-content: start; height: calc(100dvh - var(--header-height));
    padding-bottom: max(1rem, env(safe-area-inset-bottom)); overscroll-behavior: contain;
    background: transparent; color: white;
  }
  header:has(.menu-toggle[aria-expanded="true"]) #main-navigation a {
    animation: menu-settle .48s var(--menu-delay, 0ms) both;
  }
  header #main-navigation a:nth-child(2) { --menu-delay: 25ms; }
  header #main-navigation a:nth-child(3) { --menu-delay: 50ms; }
  header #main-navigation a:nth-child(4) { --menu-delay: 75ms; }
  header #main-navigation a:nth-child(5) { --menu-delay: 100ms; }
  header #main-navigation a { min-height: 44px; padding-inline: 0; justify-content: flex-start; font-size: 1rem; }
  header #main-navigation .navcta { width: fit-content; margin: .375rem 0 0; padding-inline: 1rem; }
  .menu-icon { position: relative; width: 24px; height: 2px; background: currentColor; }
  .menu-icon::before,.menu-icon::after { content: ''; position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; transition: transform .2s ease; }
  .menu-icon::before { transform: translateY(-7px); }
  .menu-icon::after { transform: translateY(7px); }
  [aria-expanded="true"] .menu-icon { background: transparent; }
  [aria-expanded="true"] .menu-icon::before { transform: rotate(45deg); }
  [aria-expanded="true"] .menu-icon::after { transform: rotate(-45deg); }
}
@media (prefers-reduced-motion: reduce) {
  body header, body header.menu-ready,body header::after,.menu-icon::before,.menu-icon::after { transition: none; }
}

@keyframes menu-reveal {
  from { clip-path: inset(0 0 100%); }
  to { clip-path: inset(0); }
}
@keyframes menu-settle {
  0% { opacity: 0; transform: translateY(-14px); animation-timing-function: ease-out; }
  72% { opacity: 1; transform: translateY(2px); animation-timing-function: ease-in-out; }
  100% { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  header:has(.menu-toggle[aria-expanded="true"])::before,
  header:has(.menu-toggle[aria-expanded="true"]) #main-navigation a { animation: none; }
}

.homeowner-section { padding: clamp(3rem,6vw,6rem) var(--gutter); }
.homeowner-section h2 { margin: 0 0 1.5rem; }
.homeowner-section > p:not(.eyebrow) { max-width: 68ch; margin-bottom: 2rem; }
.homeowner-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1.25rem,3vw,3rem); }
.homeowner-pair img { display: block; width: 100%; aspect-ratio: 3/2; object-fit: cover; border-radius: var(--radius); }
.homeowner-pair h3 { font: 2rem/1.15 var(--serif); margin: 1rem 0 .5rem; }
.homeowner-pair p { margin-bottom: 1rem; }
.homeowner-pair figure { margin: 0; }
.comparison img { aspect-ratio: auto; }
.comparison figcaption { margin: .65rem 0 1.5rem; }
.homeowner-section a,.reading-guides a { text-decoration: underline; text-underline-offset: .18em; }
.opening .booking-note { font-size: 1rem; }
.opening-thought > .line-link { margin-block-end: clamp(.75rem, 1.5vw, 1.5rem); }
.reading-guides { margin: 0 0 2.5rem; }
.reading-guides h2 { margin-bottom: 1rem; }
.reading-guides .homeowner-pair { gap: 1rem 2rem; }
.reading-guides details { padding: 1rem 0; border-bottom: 1px solid var(--line); scroll-margin-top: 6rem; }
.reading-guides summary { cursor: pointer; font-weight: 600; }
.reading-guides li { padding: .3rem 0; }
@media(max-width:759px){ .homeowner-pair { grid-template-columns: 1fr; } }

header #main-navigation .phone-call-card { display: none; }
@media (max-width: 37.5rem) and (pointer: coarse), (orientation: landscape) and (max-height: 30rem) and (max-width: 59rem) and (pointer: coarse) {
  header:has(.menu-toggle[aria-expanded="true"]) #main-navigation .phone-call-card {
    display: flex; gap: 1rem; align-items: center; margin-top: 1.5rem;
    padding: .875rem 1rem; border-radius: 1rem;
    background: var(--nav-concrete); color: var(--navy); line-height: 1.4;
  }
  header #main-navigation .phone-call-card::before {
    content: ""; flex: 0 0 3.5rem; height: 3.5rem; border-radius: 50%;
    background: url('/assets/sam-hodgson-modal-founder-auckland-192w.webp') center 36% / cover;
  }
  header #main-navigation .phone-call-card::after { content: none; }
  header #main-navigation .phone-call-card:focus-visible { outline: 2px solid white; outline-offset: 3px; }
}

/* Picture sources keep the existing image boxes and responsive layout. */
.fast-image { display: contents; }
.field-note p { min-width: 0; }
.field-note p > span { display: block; }
