/* Shared visual system. Edit here to update all five pages. */
:root {
  --site-cream:#fef8f4; --site-green:#163428; --site-green-hover:#2d4b3e;
  --site-accent:#944931; --site-ink:#1d1b19; --site-muted:#424844;
  --site-tint:#f2ede9; --site-border:#d7dcd7; --site-radius:8px;
}
html { scroll-behavior:smooth; scrollbar-gutter:stable; }
body.site-page { margin:0; background:var(--site-cream); color:var(--site-ink); font-family:'Plus Jakarta Sans','Jakarta Fallback',sans-serif; }
body.site-page main { padding-top:0 !important; }
body.site-page main:focus { outline:none; }
.site-page a { transition:color 160ms ease,background-color 160ms ease,border-color 160ms ease; }
.site-page a:focus-visible,.site-page button:focus-visible,.site-page input:focus-visible,.site-page textarea:focus-visible {
  outline:2px solid var(--site-accent) !important; outline-offset:4px;
}
.site-page [id] { scroll-margin-top:104px; }
.site-page a[aria-disabled="true"] { cursor:default; }
.skip-link { position:fixed; left:20px; top:-100px; padding:12px 20px; z-index:100; background:var(--site-green); color:var(--site-cream); border-radius:4px; }
.skip-link:focus { top:12px; }
/* Header stays in document flow. No page-specific compensation or hero jump. */
body.site-page .site-header { position:sticky !important; top:0; z-index:50; width:100%; background:var(--site-cream); border-bottom:1px solid #e7e5de; box-shadow:0 1px 8px #00000006; }
.site-header-inner { max-width:1280px; margin:0 auto; padding:16px 56px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.site-brand { display:flex; flex-direction:column; flex-shrink:0; text-decoration:none; color:var(--site-green); }
.site-brand-name { font-family:'Newsreader',Georgia,serif; font-size:22px; line-height:30px; font-weight:500; }
.site-brand-role { font-family:'Plus Jakarta Sans','Jakarta Fallback',sans-serif; font-size:11px; line-height:16px; letter-spacing:.025em; font-weight:500; text-transform:uppercase; color:var(--site-accent); }
.site-header-actions { display:flex; align-items:center; gap:20px; }
.site-nav { display:flex; align-items:center; flex-wrap:wrap; gap:16px; font:600 12px/18px 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; letter-spacing:.025em; }
.site-nav a { display:inline-flex; align-items:center; min-height:34px; border-bottom:2px solid transparent; padding:5px 0; color:var(--site-muted); text-decoration:none; white-space:nowrap; }
.site-nav a[aria-current="page"] { color:var(--site-green); border-bottom-color:var(--site-accent); }
.site-nav a:hover { color:var(--site-green); border-bottom-color:var(--site-accent); }
.site-nav-separator { color:#adb5af; font-weight:400; }
.site-socials { display:flex; align-items:center; gap:6px; }
.site-social-link { display:inline-flex; width:28px; height:34px; align-items:center; justify-content:center; color:var(--site-muted); }
.site-social-link svg { width:16px; height:16px; fill:currentColor; }
.site-social-link:hover { color:var(--site-accent); }
.site-header .site-header-cta { min-height:34px; padding:7px 16px; font-size:12px; line-height:18px; margin-left:4px; }
/* One eyebrow, one starting line, and one readable italic weight. */
.site-page .site-hero { padding-top:56px !important; padding-bottom:64px !important; }
.site-page .site-hero-grid { align-items:start !important; column-gap:48px !important; }
.site-page .site-hero-copy { padding-top:0 !important; }
.site-page .site-hero-visual { padding-top:0 !important; margin-top:0 !important; }
.site-eyebrow { display:flex; align-items:center; gap:9px; min-height:18px; margin:0 0 20px; color:var(--site-accent); font-family:'Plus Jakarta Sans','Jakarta Fallback',sans-serif; font-size:12px; line-height:18px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.site-dot { width:6px; height:6px; flex:0 0 6px; border-radius:50%; background:currentColor; }
.site-page .site-hero-title { margin:0 0 32px !important; font-family:'Newsreader','Newsreader Fallback',Georgia,serif !important; font-size:56px !important; line-height:1.12 !important; font-weight:400 !important; letter-spacing:-.02em; color:var(--site-green) !important; }
.site-page .site-hero-title em { font-family:inherit; font-style:italic; font-weight:450; color:inherit; }
.site-page .site-hero-lead { font-family:'Plus Jakarta Sans','Jakarta Fallback',sans-serif; font-size:18px !important; line-height:1.65 !important; font-weight:400 !important; color:var(--site-muted) !important; }
.site-page .site-image-frame { background:var(--site-tint); padding:12px; border:1px solid #e7e3dd; border-radius:var(--site-radius); box-shadow:0 2px 8px #16342806; }
.site-image-frame > img,.site-image-frame > div { border-radius:4px; }
/* Shared controls, with separate treatment for light buttons on dark panels. */
.site-page .site-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:11px 24px; border:1px solid transparent; border-radius:4px; font:600 14px/20px 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; letter-spacing:.01em; text-decoration:none; white-space:normal; cursor:pointer; box-shadow:none; }
.site-page .site-button-primary { background:var(--site-green); color:var(--site-cream); }
.site-page .site-button-primary:hover { background:var(--site-green-hover); }
.site-page .site-button-light { background:var(--site-cream); color:var(--site-green); }
.site-page .site-button-light:hover { background:#e9eee8; }
.site-page .site-text-link { text-underline-offset:4px; text-decoration-thickness:1px; }
.site-page .site-text-link:hover { text-decoration-line:underline; }
/* Small repeated details connect the editorial pages to the service pages. */
.site-section-accent::before { content:''; display:block; width:32px; height:2px; background:var(--site-accent); margin-bottom:20px; }
.site-accent-card { border-top:2px solid var(--site-accent) !important; box-shadow:0 2px 8px #16342805; }
.site-page .site-project-outcome { border-left:2px solid var(--site-accent); padding-left:16px; }
.site-page #reykjavik .site-project-outcome { border-color:#ffb59f; }
/* Contact and footer use the identical component on every page. */
.site-page .site-contact { padding-top:48px; padding-bottom:48px; }
.site-page .site-contact h2 { font:400 40px/1.2 'Newsreader',Georgia,serif; letter-spacing:-.015em; }
.site-page .site-contact label { font:600 13px/20px 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; }
.site-page .site-contact input,.site-page .site-contact textarea { border:1px solid #c5cdc5; border-radius:4px; background:#f8f3ef; font:400 15px/24px 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; }
.site-page .site-contact input { min-height:46px; }
.site-page .site-contact textarea { min-height:138px; resize:vertical; }
.site-page .site-contact input:focus,.site-page .site-contact textarea:focus { background:var(--site-cream); border-color:var(--site-green); }
.site-page .site-contact [id="message-help"],.site-page .site-contact .text-label-annotation { font-size:13px; line-height:20px; }
.site-footer { font-family:'Plus Jakarta Sans','Jakarta Fallback',sans-serif; }
.site-footer-brand { text-decoration:none; }
.site-footer-brand > span:first-child { font-family:'Newsreader','Newsreader Fallback',Georgia,serif !important; }
.site-footer nav a[aria-current="page"] { text-decoration:underline; text-decoration-color:var(--site-accent); text-underline-offset:4px; }
@media (max-width:1199px) {
 .site-header-inner { align-items:flex-start; }
 .site-header-actions { flex-direction:column; align-items:flex-end; gap:6px; }
}
@media (max-width:1023px) {
 body.site-page .site-header { position:relative !important; }
 .site-header-inner { padding:16px 20px; flex-direction:column; align-items:flex-start; gap:12px; }
 .site-header-actions { align-items:flex-start; gap:8px; }
 .site-nav { gap:12px; }
 .site-nav a { min-height:40px; }
 .site-social-link { width:36px; height:40px; }
 .site-page [id] { scroll-margin-top:24px; }
 .site-page .site-hero { padding-top:40px !important; padding-bottom:48px !important; }
 .site-page .site-hero-title { font-size:44px !important; }
 .site-page .site-hero-grid { row-gap:32px !important; }
 .site-page .site-hero-visual { width:100%; }
}
@media (max-width:639px) {
 .site-brand-role { font-size:10px; letter-spacing:.015em; }
 .site-nav { column-gap:10px; row-gap:2px; }
 .site-eyebrow { font-size:11px; letter-spacing:.08em; margin-bottom:20px; }
 .site-page .site-hero-title { font-size:38px !important; margin-bottom:24px !important; }
 .site-page .site-hero-title br { display:none; }
 .site-page .site-hero-lead { font-size:17px !important; }
 .site-page .site-hero-copy > div:has(>.site-button) { flex-wrap:wrap; gap:16px; }
 .site-page .site-contact h2 { font-size:30px; }
 .site-page .site-contact > div { padding:24px; }
 .site-page .site-contact form { min-width:0; }
 .site-page .site-contact .lg\:col-span-7 { padding:20px; }
 .site-page .site-contact a[href^="mailto:"] { overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto !important; }
 .site-page *, .site-page *::before, .site-page *::after { transition:none !important; animation:none !important; }
}

/* Keep section headings and text-link actions consistent at each breakpoint. */
.site-page main h2 { font-family:'Newsreader',Georgia,serif; font-size:40px; line-height:1.2; font-weight:400; }
.site-page .site-hero-copy > div > .site-text-link { font-size:14px; font-weight:600; }
.site-page .site-header .site-header-cta { min-height:34px; padding:7px 16px; font-size:12px; line-height:18px; }
@media(max-width:639px) {
 .site-page main h2 { font-size:30px; }
 .site-page .site-header .site-header-cta { min-height:44px; }
}

@media(min-width:1024px) and (max-width:1199px) {
 .site-page [id] { scroll-margin-top:132px; }
}
@media(max-width:359px) { .site-eyebrow { min-height:36px; } }
@media(max-width:639px) { .site-page .site-contact input,.site-page .site-contact textarea { font-size:16px; } }

/* Review refinements: readable support text and explicit component responsibilities. */
:root { --site-muted-text:#626a64; --site-soft-accent:#ffdbd0; }
.site-page [hidden] { display:none !important; }
.site-page .text-outline { color:var(--site-muted-text); }
.site-caption { display:block; color:var(--site-muted-text); font:400 12px/1.6 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; margin:8px 0 0; }
.site-context-link { display:inline-flex; align-items:center; align-self:flex-start; margin-top:20px; min-height:32px; color:var(--site-accent); font:600 14px/1.6 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; text-decoration:underline; }
#reykjavik .site-context-link { color:var(--site-soft-accent); }
.site-related-work { margin:24px 0 0; font-size:15px; line-height:1.65; color:var(--site-muted); }
.site-availability { margin:20px 0 0; color:var(--site-muted); font-size:14px; line-height:1.65; }
.site-experience-note { font-size:14px; line-height:1.65; }
.site-placex-learning { padding:24px 28px; background:#2d4b3e; }
@media(max-width:600px){ .site-placex-learning { padding:20px 22px; } }
.site-section-nav { display:flex; flex-wrap:wrap; gap:4px 20px; margin-top:16px; font-size:13px; line-height:1.6; }
.site-section-nav a { display:inline-flex; align-items:center; min-height:36px; text-decoration:underline; text-underline-offset:4px; color:var(--site-accent); }
.site-project-descriptor { display:block; margin-top:8px; color:var(--site-muted); font:400 12px/1.5 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; }
.site-page .site-form-help { color:var(--site-muted); font:400 14px/1.6 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; }
.site-page .site-copy-button { display:inline-flex; align-self:flex-start; align-items:center; min-height:36px; background:none; border:0; padding:4px 0; color:var(--site-accent); font:600 13px/1.5 'Plus Jakarta Sans','Jakarta Fallback',sans-serif; text-decoration:underline; cursor:pointer; }
.site-page .site-footer nav a { display:inline-flex; align-items:center; align-self:flex-start; min-height:32px; }
.site-page .site-case-grid { grid-template-columns:var(--case-image-columns) var(--case-copy-columns); grid-template-areas:'image intro' 'image body'; row-gap:0; align-items:start; }
.site-page .site-case-image-right { grid-template-columns:var(--case-copy-columns) var(--case-image-columns); grid-template-areas:'intro image' 'body image'; }
.site-case-intro { grid-area:intro; min-width:0; }
.site-case-body { grid-area:body; min-width:0; }
.site-case-image { grid-area:image; align-self:center; min-width:0; }
.site-page #placex [class*='text-primary-fixed-dim/'] { color:#e1e7e2; }
.site-page #placex a:focus-visible { outline-color:var(--site-soft-accent) !important; }
@media(max-width:1023px) {
 .site-header .site-social-link { display:none; }
 .site-header-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 16px; padding:14px 20px; }
 .site-header-actions { display:contents; }
 .site-header .site-socials { grid-column:2; grid-row:1; }
 .site-header .site-nav { grid-column:1/-1; grid-row:2; }
 .site-page .site-case-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:'intro' 'image' 'body'; row-gap:24px; }
 .site-case-image { width:100%; aspect-ratio:3/2; max-height:440px; }
 .site-case-image > div { width:100%; height:100%; max-height:440px; aspect-ratio:auto; }
 #jtre .site-case-image { aspect-ratio:4/3; max-height:none; }
 #jtre .site-case-image > div { max-width:none; max-height:none; }
 .page-about .site-hero-visual [class*='aspect-'] { max-height:540px; }
 .page-speaking_education #talks,.page-speaking_education #education,.page-speaking_education #placex,.page-speaking_education #content { padding-top:64px; padding-bottom:64px; }
 .site-page .site-strategy-projects { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:639px) {
 .site-header-inner { display:flex; gap:6px; }
 .site-header-actions { display:flex; gap:6px; }
 .site-header .site-header-cta { margin-left:0; }
 .site-header .site-nav a { min-height:36px; }
 .site-header .site-socials { display:none; }
 .site-page .site-contact > div { padding:20px; }
 .site-page .site-contact .lg\:col-span-7 { padding:0; border:0; box-shadow:none; background:transparent; }
 .site-page .site-contact a[href^='mailto:'] { font-size:clamp(18px,5.3vw,24px); overflow-wrap:normal; }
 .site-page .site-footer nav a { min-height:40px; }
 .site-page .site-strategy-projects { grid-template-columns:minmax(0,1fr); }
}
/* Focus indicators on the existing dark surfaces need a light counterpart. */
.site-page :is(#reykjavik,#placex,#spatial-strategy > .bg-primary,[class*='bg-[#1B3327]']) :is(a,button):focus-visible { outline-color:var(--site-soft-accent) !important; }
.site-brand-role { font-family:'Plus Jakarta Sans',Arial,sans-serif; }
@media(max-width:639px) {
 .site-page .site-hero-title { font-family:'Newsreader','Newsreader Fallback Small',Georgia,serif !important; }
}

/* Approved editorial additions. */
.site-editorial-quote { margin:32px 0 0; padding:24px 0 8px 24px; border-left:2px solid #a35f45; max-width:780px; }
.site-editorial-quote blockquote { margin:0 0 16px; font-family:Newsreader,Georgia,serif; font-size:clamp(24px,2.4vw,32px); line-height:1.3; color:#163428; }
.site-editorial-quote figcaption { font-size:14px; color:#424844; }
.site-media { text-align:center; }
.site-media > p { margin:12px 0 24px; }
.site-media-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.site-media-item { display:flex; flex-direction:column; align-items:center; gap:10px; color:#163428; text-decoration:none; font-size:14px; line-height:1.5; }
.site-media-item img { width:100%; max-width:240px; height:110px; object-fit:contain; }
.site-media-item > span:first-of-type { flex:1; }
.site-media-read { color:#8b4d35; text-decoration:underline; text-underline-offset:4px; }
.site-media-item:hover .site-media-read { color:#163428; }
.site-replacement-frame { position:relative; overflow:hidden; padding:0 !important; }
.site-replacement-image { display:block; width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
#jtre .site-replacement-image { transform:scale(1.12); }
.site-page img[src$="redeia-workplace-evaluation-methodology.webp"] { transform:scale(1.12); }
.site-replacement-fallback { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:120px; color:#626a64; padding:24px; }
.site-contact button:disabled { opacity:.6; cursor:not-allowed; }
@media(max-width:767px) { .site-media-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; } .site-media-item img { height:85px; } .site-editorial-quote { padding-left:18px; } }
.site-social-link[aria-label="Instagram"] svg { fill:none; }
.site-image-caption { font-size:13px; line-height:1.5; color:#626a64; margin:8px 0 16px; }
.site-page .site-hero-credit { margin:8px 0 0; }
