@font-face {
  font-family:"Open Sans";
  src:url("/assets/fonts/open-sans.woff2") format("woff2");
  font-style:normal;
  font-weight:300 800;
  font-display:swap
}
:root {
  --ink:#324158;
  --cyan:#12b8c4;
  --teal:#087780;
  --black:#131d2c;
  --white:#fff;
  --muted:#526073;
  --line:#d8dfe3;
  --tint:#f3f6f7;
  --measure:1200px;
  --copy-size:1.125rem;
  --radius:20px;
  color-scheme:light;
  font-family:"Open Sans",Arial,sans-serif;
  color:var(--ink);
  background:var(--white)
}
*,*::before,*::after {
  box-sizing:border-box
}
html {
  scroll-padding-top:7rem
}
body {
  margin:0;
  font-size:var(--copy-size);
  line-height:1.7
}
a {
  color:inherit;
  text-decoration:none
}
.brand-wordmark {
  display:inline;
  white-space:nowrap;
  font-weight:800;
  text-transform:uppercase;
}
.brand-wordmark sup {
  color:var(--cyan);
  font-size:.7em;
  line-height:0;
  vertical-align:super;
}
button,input,textarea,select {
  font:inherit
}
button,a,input,textarea,summary {
  -webkit-tap-highlight-color:transparent
}
button,summary {
  cursor:pointer
}
button {
  color:inherit
}
button:disabled {
  cursor:default
}
img {
  display:block;
  max-width:100%;
  height:auto
}
figure {
  margin:0
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  line-height:1.2;
  text-wrap:balance;
  letter-spacing:-.025em;
  overflow-wrap:break-word
}
h1 {
  font-size:clamp(2.3rem,4.5vw,4rem);
  font-weight:750
}
h2 {
  font-size:clamp(1.85rem,3.1vw,2.8rem);
  font-weight:750
}
h3 {
  font-size:clamp(1.25rem,1.7vw,1.55rem);
  font-weight:750
}
p+p {
  margin-top:1.1em
}
h1+p,h2+p,h3+p {
  margin-top:1.2rem
}
strong {
  font-weight:750
}
ul,ol {
  padding-left:1.3rem
}
li+li {
  margin-top:.55rem
}
main a:not(.button):not(.arrow-button):not(.wordmark):not(.topic-link):not(.choice-chip):not(.audience-card) {
  color:var(--teal)
}
main a:not(.button):not(.arrow-button):not(.wordmark):hover {
  text-decoration:underline;
  text-underline-offset:.22em
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible {
  outline:3px solid var(--teal);
  outline-offset:5px
}
::selection {
  background:#12b8c44d;
  color:var(--black)
}
[hidden] {
  display:none!important
}
.js-only {
  display:none
}
html.js .js-only {
  display:block
}
.skip-link {
  position:fixed;
  z-index:100;
  top:8px;
  left:8px;
  transform:translateY(-180%);
  background:white;
  padding:.65rem 1rem;
  font-weight:700
}
.skip-link:focus {
  transform:none
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}
.wrap {
  width:min(var(--measure),calc(100% - 80px));
  margin-inline:auto
}
.reading {
  max-width:820px
}
.section {
  padding-block:clamp(4rem,7vw,6.8rem)
}
.section-tint {
  background:var(--tint)
}
.center {
  text-align:center
}
.accent {
  color:var(--teal)
}
.eyebrow {
  display:block;
  color:var(--teal);
  font-size:.78rem;
  line-height:1.5;
  font-weight:800;
  letter-spacing:.115em;
  text-transform:uppercase;
  margin-bottom:1.15rem
}
.lead,.large-copy {
  font-size:clamp(1.15rem,1.6vw,1.35rem);
  line-height:1.65
}
.lead {
  max-width:65ch
}
.microcopy {
  font-size:.86rem;
  color:var(--muted);
  line-height:1.6
}
.section-head,.section-heading {
  margin-bottom:2.6rem
}
.section-head {
  max-width:800px
}
.section-head>p {
  max-width:65ch
}
.text-link {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-weight:750;
  gap:.7rem
}
.text-link::after {
  content:"↗";
  font-size:1.15em;
  transition:transform .18s ease
}
.text-link:hover::after {
  transform:translate(2px,-2px)
}
.wordmark {
  font-weight:800;
  white-space:nowrap;
  letter-spacing:-.025em
}
.wordmark sup {
  color:var(--cyan);
  font-size:.72em;
  line-height:0;
  vertical-align:super
}
/* Shared navigation and contrast-safe actions. */
.site-header {
  position:sticky;
  top:0;
  z-index:50;
  min-height:100px;
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto;
  align-items:center;
  gap:2rem;
  padding:1.4rem max(40px,calc((100% - 1360px)/2));
  background:#fffffffa;
  border-bottom:1px solid #32415812;
  box-shadow:0 5px 24px #32415805
}
.brand {
  justify-self:start;
  min-width:0
}
.brand img {
  width:222px;
  height:auto
}
.desktop-nav {
  display:flex;
  align-items:center;
  justify-self:end;
  gap:.25rem
}
.desktop-nav>a,.audience-menu>summary {
  display:block;
  white-space:nowrap;
  font-size:.93rem;
  font-weight:750;
  line-height:1.4;
  padding:.8rem .95rem;
  min-height:44px;
  border-radius:999px;
  border:1px solid transparent
}
.desktop-nav>a:hover {
  background:var(--tint)
}
.desktop-nav>[aria-current="page"] {
  background:#12b8c416;
  border-color:#12b8c445;
  color:var(--ink)
}
.desktop-nav>a:last-child {
  background:var(--ink);
  color:white;
  padding-inline:1.35rem;
  margin-left:.5rem
}
.desktop-nav>a:last-child:hover {
  background:var(--black)
}
.desktop-nav>a:last-child[aria-current="page"] {
  border-color:var(--cyan);
  box-shadow:inset 0 0 0 1px var(--cyan)
}
.mobile-nav {
  display:none
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:.6rem;
  min-height:50px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--ink);
  color:white;
  padding:.78rem 1.45rem;
  font-size:.96rem;
  line-height:1.45;
  font-weight:750;
  text-align:center;
  transition:background .18s,border-color .18s,transform .18s,box-shadow .18s
}
.button:hover {
  background:var(--black);
  border-color:var(--black);
  transform:translateY(-2px);
  box-shadow:0 6px 16px #32415818
}
.button.secondary {
  background:transparent;
  color:var(--ink);
  border-color:#32415855
}
.button.secondary:hover {
  background:var(--tint);
  border-color:var(--ink)
}
.button-row {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.9rem;
  margin-top:1.8rem
}
.center .button-row {
  justify-content:center
}
.arrow-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--cyan);
  color:var(--black);
  width:60px;
  height:48px;
  border-radius:999px;
  margin-top:1.8rem
}
.arrow-button svg {
  width:22px;
  height:28px
}
.arrow-button:hover {
  background:var(--ink);
  color:white
}
/* The first view connects the proposition with the municipal setting. */
.home-hero {
  position:relative;
  padding-block:clamp(3.5rem,6.5vw,6rem);
  background:linear-gradient(115deg,#f5f8f9 0%,#fff 68%)
}
.hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
  gap:clamp(2rem,4.5vw,4.5rem);
  align-items:center
}
.hero-grid>*,.intro-grid>*,.offer-layout>*,.profile>*,.contact-layout>* {
  min-width:0
}
.home-hero h1 {
  max-width:14ch
}
.hero-copy .lead {
  margin-top:1.7rem;
  max-width:43ch
}
.hero-copy .button-row {
  margin-top:2rem
}
.hero-media {
  position:relative;
  align-self:stretch;
  min-height:480px;
  border-radius:26px 26px 26px 5px;
  overflow:hidden;
  background:#dfe7e9
}
.hero-media>img {
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:auto
}
.hero-note {
  margin-top:1.15rem;
  padding-left:1rem;
  border-left:3px solid var(--cyan);
  font-size:.9rem;
  color:var(--muted);
  max-width:55ch
}
.hero-media .hero-note {
  position:absolute;
  bottom:1.5rem;
  left:1.5rem;
  right:1.5rem;
  background:#ffffffed;
  border-radius:6px;
  padding:1rem 1.1rem;
  color:var(--ink)
}
.intro-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:clamp(2rem,6vw,6rem)
}
.intro-grid>h2,.intro-grid>div:first-child h2 {
  max-width:18ch
}
.intro-grid>div>.text-link {
  margin-top:1rem
}
.topic-links {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
  margin-top:2.6rem
}
.topic-link {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1rem;
  position:relative;
  padding:1.8rem;
  min-height:200px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:white;
  transition:border-color .18s,transform .18s,box-shadow .18s
}
.topic-link h3 {
  max-width:22ch
}
.topic-link p {
  margin:0;
  font-size:1rem;
  font-weight:400
}
.topic-link>span:last-child {
  margin-top:auto;
  color:var(--teal);
  font-size:.9rem;
  font-weight:750
}
.topic-link:hover {
  border-color:var(--teal);
  transform:translateY(-3px);
  box-shadow:0 10px 26px #32415808;
  text-decoration:none!important
}
.audience-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.2rem
}
.audience-card {
  padding:1.8rem;
  border-top:3px solid var(--cyan);
  background:white;
  border-radius:0 0 16px 16px
}
.audience-card p {
  margin-top:1rem;
  font-size:1rem
}
.audience-card h3 {
  font-size:1.3rem
}
.audience-card .text-link {
  margin-top:1rem
}
/* The optional entry finder remains short and keyboard accessible. */
.pathfinder {
  padding:clamp(2rem,4vw,3.5rem);
  border:1px solid #d0dfe3;
  border-radius:24px;
  background:#f0f6f7
}
.pathfinder .section-head {
  margin-bottom:1.8rem
}
.pathfinder-options {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-block:1.8rem
}
.path-choice {
  color:var(--ink);
  border:1px solid #98a9b5;
  border-radius:999px;
  min-height:48px;
  padding:.75rem 1.1rem;
  font-size:.95rem;
  line-height:1.5;
  text-align:left;
  font-weight:650;
  background:white;
  transition:border-color .18s,background .18s
}
.path-choice:hover {
  border-color:var(--ink);
  background:#ffffffb0
}
.path-choice[aria-pressed="true"] {
  background:var(--ink);
  color:white;
  border-color:var(--ink);
  box-shadow:inset 0 -3px var(--cyan)
}
.pathfinder-result {
  padding:clamp(1.5rem,3vw,2.3rem);
  background:white;
  border-left:4px solid var(--cyan);
  border-radius:0 14px 14px 0
}
.pathfinder-result .eyebrow {
  margin-bottom:.7rem
}
.pathfinder-result h3 {
  font-size:1.6rem
}
.pathfinder-result p {
  max-width:75ch;
  margin-top:.85rem
}
.pathfinder-result>.button,.pathfinder-result>.text-link {
  margin-top:1.3rem;
  margin-right:1rem
}
.pathfinder+.microcopy {
  margin-top:1rem
}
/* Interior introductions and media. */
.page-intro {
  padding-block:clamp(3.5rem,6vw,5.8rem);
  background:var(--tint)
}
.page-intro h1 {
  max-width:21ch
}
.page-intro .lead {
  margin-top:1.5rem;
  max-width:67ch
}
.page-intro .microcopy {
  margin-top:1rem
}
.jump-nav {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.5rem;
  margin-top:2rem;
  padding-top:1.25rem;
  border-top:1px solid var(--line)
}
.jump-nav a {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  min-height:44px;
  font-size:.95rem;
  font-weight:750
}
.jump-nav a::after {
  content:"↓"
}
.page-hero {
  position:relative;
  isolation:isolate;
  min-height:clamp(350px,42vw,560px);
  display:flex;
  align-items:flex-end;
  padding:3.5rem 0
}
.page-hero>img {
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover
}
.page-hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(0deg,#ffffffed 0%,#ffffff50 60%,#ffffff15)
}
.page-hero h1 {
  max-width:850px
}
.page-hero.compact {
  min-height:380px
}
.photo {
  width:100%;
  object-fit:cover;
  aspect-ratio:16/6.5
}
.picture-section,.portrait-frame {
  position:relative
}
.section .picture-section {
  margin-top:3rem
}
.ai-label {
  position:absolute;
  bottom:8px;
  left:8px;
  z-index:1;
  padding:3px 6px;
  border:1px solid #32415820;
  border-radius:3px;
  background:#fffffff0;
  color:var(--ink);
  font-size:.65rem;
  line-height:1.4;
  font-weight:500;
  letter-spacing:0;
  white-space:nowrap
}
/* All offer text is available in native details instead of repeated carousels. */
.offer-list {
  display:grid;
  gap:1rem
}
.offer-details {
  border:1px solid var(--line);
  border-radius:18px;
  background:white;
  scroll-margin-top:8rem
}
.offer-details[open] {
  border-color:#94c7cd;
  box-shadow:0 12px 36px #32415807
}
.offer-summary {
  display:grid;
  grid-template-columns:45px minmax(0,1fr) 42px;
  align-items:center;
  gap:1.2rem;
  padding:1.7rem 1.8rem;
  list-style:none
}
.offer-summary::-webkit-details-marker,.faq-item>summary::-webkit-details-marker,.project-card>summary::-webkit-details-marker {
  display:none
}
.offer-summary:hover {
  background:#12b8c405;
  border-radius:inherit
}
.offer-number {
  align-self:start;
  padding-top:.1rem;
  font-size:.88rem;
  line-height:1.7;
  font-weight:800;
  color:var(--teal)
}
.offer-heading h2 {
  font-size:clamp(1.35rem,2.1vw,1.8rem)
}
.offer-heading p {
  margin-top:.6rem;
  font-size:1rem;
  line-height:1.6;
  max-width:70ch;
  color:var(--muted)
}
.offer-toggle {
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--tint);
  font-size:0
}
.offer-toggle::before {
  content:"+";
  font-size:1.6rem;
  line-height:1;
  font-weight:400
}
.offer-details[open] .offer-toggle {
  background:var(--ink);
  color:white
}
.offer-details[open] .offer-toggle::before {
  content:"−"
}
.offer-body {
  padding:0 1.8rem 1.8rem
}
.offer-layout {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:2rem;
  padding-top:1.8rem;
  border-top:1px solid var(--line);
  align-items:start
}
.offer-copy p {
  font-size:1.03rem
}
.offer-copy h3 {
  margin-top:1.5rem;
  font-size:1.15rem
}
.offer-copy h3+p {
  margin-top:.6rem
}
.offer-copy .button {
  margin-top:1.4rem
}
.offer-visual {
  position:relative;
  overflow:hidden;
  border-radius:12px
}
.offer-visual img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover
}
.offer-result {
  margin-top:1.5rem;
  padding:1.2rem 1.3rem;
  border-left:3px solid var(--cyan);
  background:var(--tint);
  border-radius:0 8px 8px 0;
  font-size:1rem
}
.offer-result strong {
  display:block;
  margin-bottom:.25rem
}
.format-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.3rem
}
.format-card {
  padding:1.8rem;
  border:1px solid var(--line);
  border-radius:16px;
  background:white
}
.format-card .eyebrow {
  margin-bottom:.7rem
}
.format-card h3 {
  font-size:1.35rem
}
.format-card p,.format-card li {
  font-size:1rem
}
.format-card .text-link {
  margin-top:.8rem;
  font-size:.95rem
}
/* A visible process sequence and native FAQ interaction. */
.process-list {
  list-style:none;
  padding:0;
  margin:0
}
.process-step {
  display:grid;
  grid-template-columns:68px minmax(0,1fr);
  gap:2rem;
  padding-block:2rem;
  border-top:1px solid var(--line)
}
.process-step:last-child {
  border-bottom:1px solid var(--line)
}
.step-number {
  display:grid;
  place-items:center;
  align-self:start;
  width:54px;
  height:54px;
  font-size:1rem;
  line-height:1;
  font-weight:800;
  color:var(--teal);
  background:#12b8c40e;
  border:1px solid #12b8c43b;
  border-radius:50%
}
.process-step h3 {
  font-size:1.4rem
}
.process-step h3+p {
  margin-top:.7rem
}
.process-meta {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem 1.8rem;
  margin:1.25rem 0 0;
  font-size:.94rem
}
.process-meta>div {
  padding-left:1rem;
  border-left:2px solid #cbd8db
}
.process-meta dt {
  font-weight:750
}
.process-meta dd {
  margin:.3rem 0 0;
  color:var(--muted)
}
.principles {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.5rem
}
.principles article {
  padding:1.8rem;
  border-top:3px solid var(--cyan);
  border-radius:0 0 14px 14px;
  background:var(--tint)
}
.principles h3 {
  font-size:1.4rem
}
.principles p {
  font-size:1rem;
  margin-top:1rem
}
.principle-number {
  display:block;
  color:var(--teal);
  font-size:.85rem;
  font-weight:800;
  letter-spacing:.08em;
  margin-bottom:1rem
}
.faq-list {
  border-top:1px solid var(--line)
}
.faq-item {
  border-bottom:1px solid var(--line)
}
.faq-item>summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.5rem;
  list-style:none;
  padding:1.45rem 0;
  font-size:1.12rem;
  line-height:1.5;
  font-weight:750
}
.faq-item>summary::after {
  content:"+";
  flex-shrink:0;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:var(--tint);
  color:var(--teal);
  font-size:1.5rem;
  font-weight:400
}
.faq-item[open]>summary::after {
  content:"−"
}
.faq-item>div {
  padding:0 3rem 1.6rem 0;
  max-width:80ch;
  font-size:1.03rem
}
/* The proprietor and project-based experts appear in distinct sections. */
.profile {
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:center
}
.profile-media {
  position:relative;
  overflow:hidden;
  border-radius:20px;
  background:var(--tint)
}
.profile-media img {
  width:100%;
  height:auto;
  aspect-ratio:4/4.8;
  object-fit:cover;
  object-position:right center
}
.profile-copy .role {
  font-weight:750;
  margin-block:1.2rem
}
.profile-copy .eyebrow+h2 {
  font-size:clamp(2rem,3.1vw,3rem)
}
.profile-copy p {
  font-size:1.05rem
}
.profile-copy .text-link {
  margin-top:1rem
}
.network-block {
  padding:clamp(1.8rem,4vw,3rem);
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--tint)
}
.network-block .profile {
  grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);
  gap:2.5rem
}
.network-block .profile-media img {
  object-position:left center
}
.network-block>p {
  max-width:80ch
}
.network-block>.profile {
  margin-top:2.4rem
}
.network-block .profile-copy .role {
  font-size:.95rem
}
.network-block .profile-copy p {
  font-size:1rem
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.2rem;
  align-items:start
}
.project-card {
  border:1px solid var(--line);
  border-radius:16px;
  background:white
}
.project-card>summary {
  position:relative;
  list-style:none;
  padding:1.7rem 3.4rem 1.7rem 1.7rem;
  min-height:218px
}
.project-card>summary::after {
  content:"+";
  position:absolute;
  top:1.6rem;
  right:1.25rem;
  color:var(--teal);
  font-size:1.7rem;
  line-height:1
}
.project-card[open]>summary::after {
  content:"−"
}
.project-card>summary:hover {
  background:#12b8c405;
  border-radius:inherit
}
.project-card h3 {
  font-size:1.3rem;
  line-height:1.35
}
.project-context {
  display:block;
  color:var(--muted);
  margin-top:.9rem;
  font-size:.91rem;
  line-height:1.6
}
.project-detail {
  margin:0 1.7rem;
  padding:1.5rem 0;
  border-top:1px solid var(--line)
}
.project-detail dl {
  margin:0;
  font-size:1rem
}
.project-detail dt {
  font-weight:750
}
.project-detail dd {
  margin:.35rem 0 1.25rem
}
.project-detail dd:last-child {
  margin-bottom:0
}
.project-detail dl>div+div {
  margin-top:1.25rem
}
/* The contact flow provides email actions with no form dependency. */
.contact-layout {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(2rem,5vw,4.5rem);
  align-items:start
}
.contact-layout .lead {
  margin-top:1.3rem
}
.contact-panel {
  padding:clamp(1.7rem,3vw,2.6rem);
  border-radius:20px;
  border:1px solid var(--line);
  background:var(--tint)
}
.contact-panel h2 {
  font-size:1.65rem
}
.contact-panel p,.contact-panel li {
  font-size:1rem
}
.contact-panel .button {
  margin-top:1.5rem
}
.contact-panel .microcopy {
  margin-top:1rem;
  font-size:.85rem
}
.contact-address {
  margin-top:1.5rem;
  font-weight:750;
  overflow-wrap:anywhere
}
.choice-grid {
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1.5rem
}
.choice-chip {
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:.6rem .95rem;
  border:1px solid #97abb5;
  border-radius:999px;
  background:white;
  color:var(--ink);
  font-size:.9rem;
  line-height:1.5;
  font-weight:650;
  transition:border-color .18s,background .18s
}
.choice-chip:hover {
  background:#12b8c410;
  border-color:var(--teal);
  text-decoration:none!important
}
.contact-guidance {
  border-top:1px solid var(--line);
  margin-top:2rem;
  padding-top:1.7rem
}
.contact-guidance h3 {
  font-size:1.15rem
}
.contact-guidance p,.contact-guidance li {
  font-size:1rem
}
.callout {
  margin-top:2rem;
  padding:1.5rem 1.7rem;
  border-left:4px solid var(--cyan);
  border-radius:0 12px 12px 0;
  background:var(--tint)
}
.callout p {
  font-size:1.02rem
}
.callout .eyebrow {
  margin-bottom:.7rem
}
.section-dark {
  background:var(--ink);
  color:white
}
.section-dark .eyebrow,main .section-dark a:not(.button):not(.arrow-button):not(.wordmark) {
  color:#6ee0e6
}
.section-dark .microcopy,.section-dark .lead {
  color:#e0e7ee
}
.section-dark .button {
  background:var(--cyan);
  color:var(--black);
  border-color:var(--cyan)
}
.section-dark .button:hover {
  background:#69d9e0;
  border-color:#69d9e0
}
.section-dark .button.secondary {
  background:transparent;
  color:white;
  border-color:#b9cbd8
}
.section-dark .button.secondary:hover {
  background:#ffffff12
}
.section-dark a:focus-visible,.section-dark button:focus-visible {
  outline-color:#6ee0e6
}
.contact-band {
  padding-block:clamp(4rem,7vw,6rem);
  background:var(--ink);
  color:white;
  text-align:center
}
.contact-band .brand-bottom {
  width:205px;
  margin:0 auto 2rem;
  background:white;
  padding:.6rem;
  border-radius:5px
}
.contact-band p {
  max-width:750px;
  margin:1.3rem auto
}
.contact-band .button-row {
  justify-content:center
}
.contact-band .button {
  background:var(--cyan);
  color:var(--black);
  border-color:var(--cyan)
}
.contact-band .button:hover {
  background:#69d9e0;
  border-color:#69d9e0
}
/* Existing future essays and the user-controlled carousel remain supported. */
.future-content {
  font-size:1.125rem;
}
.future-content .reading,.future-content .quote-carousel,.future-content .section-heading {
  text-align:left
}
.future-content>.section>.wrap,
.future-content>.image-reveal>.section>.wrap {
  max-width:850px
}
.future-content .large-copy {
  font-size:1.125rem
}
.future-content h1 {
  max-width:20ch
}
.future-content h1+.large-copy {
  margin-top:1.7rem
}
.carousel {
  position:relative
}
.carousel-track {
  display:grid;
  gap:1.5rem
}
.slide {
  min-width:0
}
.carousel-controls {
  display:none;
  align-items:center;
  justify-content:center;
  gap:1.3rem;
  margin-top:1.8rem
}
.carousel.enhanced>.carousel-controls {
  display:flex
}
.carousel-controls button {
  width:48px;
  height:48px;
  border:1px solid var(--ink);
  border-radius:50%;
  background:white;
  font-size:1.6rem;
  line-height:1;
  transition:background .18s
}
.carousel-controls button:hover {
  background:#12b8c426
}
.carousel-count {
  min-width:75px;
  text-align:center;
  font-size:.9rem
}
.quote-carousel {
  padding:2.5rem;
  border:1px solid var(--line);
  border-radius:18px;
  background:white
}
.quote-carousel .slide {
  display:grid;
  align-content:start;
  min-height:180px;
  max-width:850px;
  margin:auto
}
.quote-carousel h3 {
  margin-bottom:1rem
}
.quote-carousel p {
  font-size:1.125rem;
  line-height:1.7
}
.quote-carousel h3+p {
  margin-top:0
}
.split {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:3rem;
  align-items:center
}
.steps {
  list-style:none;
  padding:0;
  margin:0;
  counter-reset:steps
}
.steps li {
  counter-increment:steps;
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:1.5rem;
  padding:1.8rem 0;
  border-bottom:1px solid var(--line)
}
.steps li::before {
  content:counter(steps,decimal-leading-zero);
  font-size:1.3rem;
  font-weight:750;
  color:var(--teal);
  border-top:3px solid var(--cyan);
  padding-top:.5rem
}
.steps h3 {
  font-size:1.4rem
}
.steps p {
  margin-top:.7rem
}
/* Legal text and common footer. */
.legal {
  padding-block:4rem 6rem;
  max-width:850px;
  overflow-wrap:anywhere
}
.legal h1 {
  font-size:2.7rem;
  margin-bottom:2.5rem
}
.legal h2 {
  font-size:1.5rem;
  margin:2.5rem 0 1rem
}
.legal h3 {
  font-size:1.2rem;
  margin:1.8rem 0 .8rem
}
.legal p,.legal li {
  font-size:1rem
}
.legal address {
  font-style:normal
}
.legal .date {
  margin-top:2.8rem;
  font-size:.9rem
}
.error-page {
  text-align:center;
  min-height:55vh;
  padding-block:5rem
}
.error-number {
  color:var(--teal);
  font-size:5rem;
  font-weight:800;
  line-height:1.1;
  margin-bottom:1.5rem
}
.site-footer {
  border-top:1px solid #ffffff26;
  background:#26354a;
  color:white;
  padding:3rem 0 2rem;
  font-size:.93rem
}
.site-footer>nav,.site-footer>.copyright {
  padding-inline:24px;
  text-align:center
}
.site-footer nav {
  display:flex;
  flex-wrap:wrap;
  gap:.7rem 1.3rem;
  justify-content:center
}
.site-footer a {
  min-height:44px;
  display:inline-flex;
  align-items:center
}
.site-footer a:hover {
  color:#7be2e8
}
.site-footer a:focus-visible {
  outline-color:#7be2e8
}
.footer-grid {
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:3rem;
  padding-bottom:2rem
}
.footer-brand {
  max-width:470px
}
.footer-brand img {
  width:200px;
  padding:.6rem;
  background:white;
  border-radius:4px
}
.footer-brand p {
  margin-top:1rem;
  color:#e0e7ee;
  font-size:.94rem
}
.footer-links {
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:.5rem 1.4rem;
  align-content:start
}
.footer-grid nav {
  justify-content:flex-end
}
.copyright {
  margin-top:1.2rem;
  font-size:.8rem;
  color:#cdd8e3
}
/* Template-specific composition: compact topic links and light finder panels. */
.hero-caption {
  position:absolute;
  right:1rem;
  top:1rem;
  max-width:75%;
  padding:.6rem .8rem;
  background:#fffffff0;
  border-radius:6px;
  font-size:.77rem;
  line-height:1.5;
  font-weight:650;
  text-align:right
}
.intro-grid .topic-links {
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1.6rem
}
.intro-grid .topic-link {
  min-height:48px;
  display:inline-flex;
  padding:.75rem 1rem;
  border-radius:12px;
  font-size:.92rem;
  font-weight:750;
  justify-content:center
}
.jump-nav {
  margin-bottom:1.8rem
}
.jump-nav .topic-link {
  min-height:44px;
  display:inline-flex;
  padding:.55rem .85rem;
  border-radius:10px;
  font-size:.88rem;
  gap:.5rem
}
.section.pathfinder {
  padding:clamp(4rem,7vw,6.8rem) 0;
  border:0;
  border-radius:0;
  background:var(--ink)
}
html.js .pathfinder-options {
  display:flex
}
.pathfinder-results {
  display:grid;
  gap:1.2rem
}
.pathfinder-result {
  color:var(--ink)
}
.section-dark .pathfinder-result .eyebrow,main .section-dark .pathfinder-result a:not(.button) {
  color:var(--teal)
}
.section-dark .pathfinder-result .button {
  background:var(--ink);
  border-color:var(--ink);
  color:white
}
.section-dark .pathfinder-result .button:hover {
  background:var(--black);
  border-color:var(--black)
}
.section-dark .pathfinder-result :focus-visible {
  outline-color:var(--teal)
}
.situation-list {
  font-size:inherit;
  line-height:inherit;
  max-width:75ch;
  padding-left:1.2rem;
  margin-block:1.2rem;
  color:inherit
}
.situation-list li+li { margin-top:.8em; }
.question-list {
  padding-left:1.2rem
}
.question-list li+li {
  margin-top:1rem
}
.audience-card .step-number {
  margin-bottom:1.3rem
}
.format-card>.picture-section {
  margin:0 0 1.4rem;
  overflow:hidden;
  border-radius:9px
}
.format-card>.picture-section img {
  aspect-ratio:16/10
}
.offer-result h3 {
  margin-top:0
}
.offer-copy .button-row .button {
  margin-top:0
}
.qualification {
  padding-top:1rem;
  border-top:1px solid var(--line)
}
.experience-note {
  max-width:80ch;
  margin-bottom:2.4rem;
  font-size:1rem;
  color:var(--muted)
}
.section.network-block {
  border:0;
  border-radius:0;
  padding:clamp(4rem,7vw,6.8rem) 0
}
.network-block .profile {
  margin-top:2.8rem
}
.contact-guidance dt {
  font-weight:750;
  margin-top:1.2rem
}
.contact-guidance dd {
  margin:.35rem 0 1.2rem
}
.contact-panel .button-row .button {
  margin-top:0
}
.contact-band .eyebrow,main .contact-band a:not(.button) {
  color:#6ee0e6
}
.contact-band :focus-visible {
  outline-color:#6ee0e6
}
.future-content>.picture-section img {
  max-height:460px
}
.picture-section img[src*="kommunal-08-"] {
  aspect-ratio:auto;
  max-height:460px;
  object-fit:contain;
  background:var(--tint)
}
.footer-brand>p:first-child {
  font-size:1.3rem;
  margin:0;
  color:white
}
@media(max-width:1100px) {
  .site-header {
    padding-inline:32px;
    gap:1rem
  }
  .brand img {
    width:195px
  }
  .desktop-nav>a {
    padding-inline:.7rem;
    font-size:.9rem
  }
  .wrap {
    width:calc(100% - 64px)
  }
  .hero-grid {
    gap:2rem
  }
  .hero-media {
    min-height:470px
  }
  .topic-link,.audience-card,.format-card {
    padding:1.5rem
  }
  .format-grid {
    gap:1rem
  }
}
@media(max-width:960px) {
  html {
    scroll-padding-top:6rem
  }
  .site-header {
    min-height:86px;
    display:flex;
    justify-content:space-between;
    padding-block:1.1rem
  }
  .brand img {
    width:200px
  }
  .desktop-nav {
    display:none
  }
  .mobile-nav {
    display:block
  }
  .mobile-nav>summary {
    list-style:none;
    border:1px solid #32415845;
    border-radius:999px;
    padding:.6rem 1rem;
    min-height:46px;
    font-size:.9rem;
    line-height:1.5;
    font-weight:750;
    background:white;
    color:var(--ink)
  }
  .mobile-nav>summary::-webkit-details-marker {
    display:none
  }
  .mobile-nav>summary::after {
    content:" ☰";
    margin-left:.25rem
  }
  .mobile-nav[open]>summary::after {
    content:" ×"
  }
  .mobile-links {
    position:absolute;
    left:32px;
    right:32px;
    top:calc(100% - 1px);
    padding:.8rem;
    background:var(--ink);
    border:1px solid #768392;
    border-radius:14px;
    box-shadow:0 18px 40px #32415824
  }
  .mobile-links a {
    display:block;
    padding:.85rem 1rem;
    min-height:44px;
    color:white;
    font-size:1rem;
    font-weight:650;
    border-radius:6px
  }
  .mobile-links a:hover,.mobile-links a[aria-current="page"] {
    background:#ffffff12;
    box-shadow:inset 3px 0 var(--cyan)
  }
  .mobile-links a:focus-visible {
    outline-color:#6ee0e6;
    outline-offset:0
  }
  .mobile-label {
    display:block;
    font-size:.8rem;
    color:#dae7ee;
    padding:.6rem 1rem 0
  }
  .mobile-links .child {
    padding-left:1.8rem
  }
  .home-hero {
    padding-block:3rem 4rem
  }
  .hero-grid {
    grid-template-columns:1.05fr 1fr;
    gap:1.8rem
  }
  .home-hero h1 {
    font-size:clamp(2.2rem,4.7vw,3rem)
  }
  .hero-media {
    min-height:430px
  }
  .hero-copy .button-row {
    align-items:flex-start;
    flex-direction:column
  }
  .intro-grid {
    gap:2rem
  }
  .topic-links,.format-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .topic-links>:last-child:nth-child(odd),.format-grid>:last-child:nth-child(odd) {
    grid-column:1/-1
  }
  .offer-layout {
    grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
    gap:1.5rem
  }
  .offer-summary {
    padding:1.4rem
  }
  .offer-body {
    padding:0 1.4rem 1.4rem
  }
  .profile {
    gap:2rem
  }
  .network-block .profile {
    gap:1.8rem
  }
  .contact-layout {
    gap:2rem
  }
}
@media(max-width:740px) {
  :root {
    --copy-size:1.05rem
  }
  .wrap {
    width:calc(100% - 48px)
  }
  .section {
    padding-block:3.6rem
  }
  .site-header {
    padding-inline:24px
  }
  .hero-grid,.intro-grid,.contact-layout,.profile,.network-block .profile,.split,.footer-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .home-hero h1 {
    max-width:16ch;
    font-size:clamp(2.3rem,7.5vw,3.5rem)
  }
  .hero-copy .lead {
    max-width:56ch
  }
  .hero-copy .button-row {
    flex-direction:row;
    align-items:center
  }
  .hero-media {
    min-height:0;
    aspect-ratio:16/10;
    margin-top:.8rem
  }
  .hero-media>img {
    height:100%
  }
  .hero-note {
    max-width:none
  }
  .intro-grid>h2,.intro-grid>div:first-child h2 {
    max-width:23ch
  }
  .section-head {
    margin-bottom:2rem
  }
  .audience-grid {
    gap:1rem
  }
  .audience-card h3 {
    font-size:1.2rem
  }
  .pathfinder {
    padding:1.5rem;
    border-radius:18px
  }
  .pathfinder-result {
    padding:1.4rem
  }
  .pathfinder-result h3 {
    font-size:1.4rem
  }
  .pathfinder-options {
    gap:.55rem
  }
  .path-choice {
    font-size:.9rem;
    padding-inline:.9rem
  }
  .page-intro {
    padding-block:3.2rem
  }
  .offer-layout {
    grid-template-columns:minmax(0,1fr)
  }
  .offer-visual {
    max-width:100%
  }
  .offer-visual img {
    aspect-ratio:16/9
  }
  .offer-summary {
    grid-template-columns:28px minmax(0,1fr) 34px;
    gap:.8rem;
    padding:1.3rem
  }
  .offer-heading h2 {
    font-size:1.35rem
  }
  .offer-heading p {
    font-size:.95rem
  }
  .offer-toggle {
    width:34px;
    height:34px
  }
  .offer-body {
    padding:0 1.3rem 1.3rem
  }
  .process-step {
    grid-template-columns:48px minmax(0,1fr);
    gap:1rem
  }
  .step-number {
    width:44px;
    height:44px;
    font-size:.9rem
  }
  .process-meta {
    grid-template-columns:1fr
  }
  .profile-media {
    max-width:440px
  }
  .profile-media img {
    aspect-ratio:1/1
  }
  .network-block {
    padding:1.6rem
  }
  .network-block .profile-media {
    max-width:360px
  }
  .project-card>summary {
    min-height:210px;
    padding:1.4rem 3rem 1.4rem 1.4rem
  }
  .project-detail {
    margin-inline:1.4rem
  }
  .project-card h3 {
    font-size:1.18rem
  }
  .page-hero {
    min-height:350px
  }
  .photo {
    aspect-ratio:16/9
  }
  .quote-carousel {
    padding:1.7rem
  }
  .quote-carousel .slide {
    min-height:240px
  }
  .quote-carousel p {
    font-size:1.05rem
  }
  .footer-grid {
    gap:1.5rem
  }
  .footer-links,.footer-grid nav {
    justify-content:flex-start
  }
  .mobile-links {
    left:24px;
    right:24px
  }
}
@media(max-width:520px) {
  :root {
    --copy-size:1rem
  }
  .wrap {
    width:calc(100% - 40px)
  }
  h1 {
    font-size:2.35rem
  }
  h2 {
    font-size:1.85rem
  }
  .site-header {
    min-height:80px;
    padding:1rem 20px
  }
  .brand img {
    width:173px
  }
  .mobile-nav>summary {
    padding:.6rem .85rem
  }
  .mobile-links {
    left:20px;
    right:20px
  }
  .home-hero {
    padding-block:2.7rem 3rem
  }
  .home-hero h1 {
    font-size:clamp(2.18rem,8.7vw,2.75rem)
  }
  .hero-copy .lead {
    font-size:1.1rem;
    margin-top:1.4rem
  }
  .hero-media {
    aspect-ratio:4/3;
    border-radius:18px 18px 18px 3px
  }
  .hero-note {
    font-size:.83rem
  }
  .eyebrow {
    font-size:.72rem
  }
  .button {
    font-size:.92rem;
    padding-inline:1.2rem
  }
  .button-row {
    gap:.7rem
  }
  .topic-links,.audience-grid,.format-grid,.principles,.project-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .topic-link {
    min-height:0
  }
  .topic-link>span:last-child {
    margin-top:.4rem
  }
  .audience-card,.format-card,.principles article {
    padding:1.5rem
  }
  .project-card>summary {
    min-height:0
  }
  .pathfinder {
    padding:1.3rem
  }
  .pathfinder-options {
    display:grid;
    grid-template-columns:minmax(0,1fr)
  }
  .path-choice {
    border-radius:12px
  }
  .pathfinder-result {
    padding:1.2rem
  }
  .pathfinder-result>.button {
    margin-right:0
  }
  .pathfinder-result>.text-link {
    display:flex;
    width:fit-content;
    margin-top:.8rem
  }
  .jump-nav {
    column-gap:1.1rem;
    row-gap:.15rem
  }
  .jump-nav a {
    font-size:.88rem
  }
  .offer-summary {
    grid-template-columns:minmax(0,1fr) 32px;
    padding:1.25rem 1rem;
    gap:.65rem
  }
  .offer-number {
    display:none
  }
  .offer-heading h2 {
    font-size:1.25rem
  }
  .offer-toggle {
    width:32px;
    height:32px
  }
  .offer-body {
    padding:0 1rem 1.2rem
  }
  .offer-copy p {
    font-size:1rem
  }
  .process-step {
    grid-template-columns:36px minmax(0,1fr);
    gap:.8rem
  }
  .step-number {
    width:34px;
    height:34px;
    font-size:.8rem
  }
  .process-step h3 {
    font-size:1.25rem
  }
  .process-meta {
    font-size:.9rem
  }
  .faq-item>summary {
    font-size:1rem;
    gap:1rem
  }
  .faq-item>div {
    font-size:1rem;
    padding-right:.5rem
  }
  .profile-copy p {
    font-size:1rem
  }
  .network-block {
    padding:1.3rem
  }
  .contact-panel {
    padding:1.5rem
  }
  .contact-panel h2 {
    font-size:1.5rem
  }
  .callout {
    padding:1.2rem 1.3rem
  }
  .page-hero {
    min-height:290px
  }
  .page-hero.compact {
    min-height:260px
  }
  .quote-carousel {
    padding:1.5rem
  }
  .quote-carousel .slide {
    min-height:290px
  }
  .legal h1 {
    font-size:2.2rem
  }
  .legal h2 {
    font-size:1.35rem
  }
  .desktop-break {
    display:none
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important
  }
  .button:hover,.topic-link:hover,.text-link:hover::after {
    transform:none
  }
}
@media(max-width:520px) {
  html.js .pathfinder-options {
    display:grid
  }
}
/* Preserve the visual principles of the approved September 21 website. */
:root {
  --measure:1080px;
  --copy-size:1.125rem;
  --radius:8px;
  --black:#000;
}
body { line-height:1.65; }
h1,h2,h3 { letter-spacing:normal; line-height:1.3; }
h1 { font-size:clamp(2rem,3.1vw,2.8rem); }
h2 { font-size:clamp(1.8rem,2.6vw,2.35rem); }
h3 { font-size:clamp(1.35rem,2vw,1.8rem); font-weight:700; }
.wrap { width:min(var(--measure),calc(100% - 64px)); }
.reading { max-width:900px; }
.section { padding-block:clamp(3.5rem,6vw,6rem); }
.section-tint { background:#32415806; }
.lead,.large-copy { font-size:1.25rem; line-height:1.65; }
.section-head { max-width:900px; margin-bottom:2.4rem; }
.section-head .lead { max-width:75ch; }
.site-header {
  min-height:118px;
  padding:25px 30px;
  display:grid;
  grid-template-columns:minmax(230px,1fr) auto minmax(230px,1fr);
  gap:24px;
  background:white;
  box-shadow:0 8px 24px #3241580a;
}
.brand img { width:230px; }
.desktop-nav {
  display:flex;
  justify-self:center;
  background:var(--ink);
  border-radius:999px;
  padding:4px;
  gap:2px;
}
.desktop-nav>a,.desktop-nav>a:last-child {
  padding:9px 13px;
  margin:0;
  background:transparent;
  color:white;
  font-size:1rem;
  font-weight:800;
  letter-spacing:.015em;
  border:2px solid transparent;
  box-shadow:none;
}
.desktop-nav>a:hover,.desktop-nav>a:last-child:hover {
  background:transparent;
  border-color:var(--cyan);
  color:white;
}
.desktop-nav>[aria-current="page"],.desktop-nav>a:last-child[aria-current="page"] {
  background:transparent;
  border-color:var(--cyan);
  color:white;
  box-shadow:none;
}
.desktop-nav>a:focus-visible { outline-color:var(--cyan); outline-offset:3px; }
.mobile-nav { display:none; }
.button,.contact-band .button {
  background:var(--cyan);
  border-color:var(--cyan);
  color:black;
  padding:11px 24px;
  font-size:1rem;
  min-height:48px;
  box-shadow:none;
}
.button:hover,.contact-band .button:hover {
  background:var(--ink);
  border-color:var(--ink);
  color:white;
  transform:none;
  box-shadow:none;
}
.button.secondary { background:white; border-color:var(--ink); color:var(--ink); }
.button.secondary:hover { background:var(--ink); color:white; }
.home-hero,.contact-band {
  position:relative;
  isolation:isolate;
  background:white;
  color:var(--ink);
  text-align:center;
}
.home-hero { padding:75px 0 85px; }
.home-hero::before,.contact-band::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:url("/assets/images/network-1280.webp") center/cover no-repeat;
  opacity:.18;
}
.home-hero::before { opacity:.55; }
.home-hero .hero-copy { max-width:1000px; margin:auto; }
.home-hero h1 { max-width:900px; margin:auto; font-size:clamp(2rem,3.1vw,2.8rem); }
.home-hero .lead { max-width:860px; margin:30px auto 0; font-size:1.25rem; }
.home-hero .button-row { justify-content:center; align-items:center; flex-direction:row; margin-top:30px; }
.home-hero .hero-note { border:0; padding:0; margin:24px auto 0; max-width:none; }
.hero-grid { display:block; }
.page-intro { background:white; padding-block:clamp(3.5rem,6vw,6rem); }
.page-intro h1 { max-width:900px; }
.page-intro .lead { max-width:900px; margin-top:1.5rem; }
.hero-media,.profile-media,.offer-visual { border-radius:0; }
.hero-media { min-height:0; }
.picture-section .photo { max-height:460px; }
.home-hero+.picture-section .photo { aspect-ratio:16/7; max-height:none; }
.pathfinder+.picture-section .photo { aspect-ratio:1942/809; max-height:none; object-position:right center; }
@media(max-width:900px) {
  .home-hero+.picture-section .photo { aspect-ratio:16/9; }
  .pathfinder+.picture-section .photo { aspect-ratio:16/9; }
}
@media(max-width:600px) {
  .home-hero+.picture-section .photo { aspect-ratio:4/3; }
}
.reading.center .lead { margin-inline:auto; }
.home-future .large-copy { max-width:960px; margin:1.5rem auto 0; }
.reading.center .topic-links { display:flex; justify-content:center; flex-wrap:wrap; gap:1rem; margin-top:1.8rem; }
.reading.center .topic-link { display:inline-flex; min-height:44px; min-width:0; padding:.6rem .9rem; border:0; border-radius:0; border-bottom:1px solid var(--line); font-size:1rem; font-weight:700; background:transparent; }
.topic-link:hover { transform:none; box-shadow:none; }
.audience-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.8rem 3.5rem; }
.audience-card { padding:1.5rem 0 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
.audience-heading { display:flex; align-items:flex-start; gap:1rem; }
.audience-icon { flex:0 0 40px; width:40px; height:40px; color:var(--teal); }
.audience-card h3 { min-width:0; font-size:1.45rem; }
.audience-card p { font-size:1.125rem; }
.audience-card .text-link { font-size:1rem; }
.audience-next { margin-top:3rem; padding-top:1.8rem; border-top:1px solid var(--line); }
.audience-next p { max-width:65ch; margin:0 0 1.2rem; }
.format-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
#formate .format-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.format-card { border:0; border-top:1px solid var(--line); border-radius:0; padding:1.5rem 0 0; background:transparent; }
.format-card>.picture-section { border-radius:0; margin:0 0 1.4rem; }
.format-card p { font-size:1.05rem; }
.section.pathfinder { background:white; color:var(--ink); border:0; border-radius:0; padding:clamp(3.5rem,6vw,6rem) 0; }
.pathfinder .section-head { max-width:900px; }
.pathfinder-options { gap:.75rem; }
.path-choice { color:var(--ink); background:white; border:1px solid #98a9b5; box-shadow:none; }
.path-choice:hover { background:#32415806; border-color:var(--ink); }
.path-choice[aria-pressed="true"] { background:var(--ink); border-color:var(--ink); box-shadow:inset 0 -2px var(--cyan); color:white; }
.pathfinder-result { background:white; color:var(--ink); border:0; border-left:3px solid var(--cyan); border-radius:0; padding:1.2rem 1.6rem; }
.pathfinder-result .eyebrow,.pathfinder-result a.text-link { color:var(--teal); }
.pathfinder-result .button { background:var(--cyan); border-color:var(--cyan); color:black; }
.pathfinder-result .button:hover { background:var(--ink); border-color:var(--ink); color:white; }
.pathfinder-result h3 { font-size:1.65rem; }
.offer-details { border:0; border-bottom:1px solid var(--line); border-radius:0; background:white; }
.offer-details:first-child { border-top:1px solid var(--line); }
.offer-details[open] { border-color:var(--line); box-shadow:none; }
.offer-summary { padding:1.5rem 0; }
.offer-summary:hover { background:#32415803; }
.offer-body { padding:0 0 1.8rem; }
.offer-result,.callout { border-radius:0; }
.jump-nav .topic-link { border:0; border-radius:0; border-bottom:1px solid var(--line); padding:.5rem .4rem; }
.principles { gap:2.5rem 3.5rem; }
.principles article { border-top:3px solid var(--cyan); border-radius:0; background:transparent; padding:1.5rem 0 0; }
.principles p { font-size:1.125rem; }
.step-number { border:0; border-radius:0; background:transparent; border-top:3px solid var(--cyan); }
.profile-copy .eyebrow+h2 { font-size:clamp(1.8rem,2.6vw,2.35rem); }
.profile-copy p { font-size:1.125rem; }
.project-grid { grid-template-columns:minmax(0,1fr); gap:0; }
.project-card { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.project-card:first-child { border-top:1px solid var(--line); }
.project-card>summary { padding:1.5rem 3rem 1.5rem 0; min-height:0; }
.project-card>summary:hover { background:#32415803; }
.project-card>summary::after { right:.5rem; }
.project-card h3 { font-size:1.4rem; }
.project-detail { margin:0; padding:1.5rem 0; }
.section.network-block { background:white; }
.contact-panel { border:0; border-left:3px solid var(--cyan); border-radius:0; background:transparent; padding:1rem 0 1rem 2rem; }
.choice-chip { border-radius:999px; }
.contact-band { padding-block:80px; }
.contact-band .eyebrow,main .contact-band a:not(.button) { color:var(--teal); }
.contact-band :focus-visible { outline-color:var(--ink); }
.quote-carousel { border-radius:0; border-inline:0; background:#32415806; }
.site-footer { background:var(--ink); padding:35px 25px; text-align:center; }
.footer-grid { display:block; padding-bottom:0; }
.footer-brand { max-width:none; margin-bottom:1.4rem; }
.footer-brand p { margin-top:.5rem; }
.footer-links,.footer-grid nav { justify-content:center; }
.copyright { margin-top:1rem; }
.insights-section { padding-top:0; }
.insights-list { display:grid; gap:3rem; }
.insight-entry { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:2.5rem; align-items:start; padding-top:2.5rem; border-top:1px solid var(--line); }
.insight-media { position:relative; margin:0; }
.insight-media .photo { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.insight-entry h2 { font-size:clamp(1.5rem,2.2vw,2rem); }
.insight-entry .eyebrow { margin-top:0; }
.insight-entry .text-link { margin-top:.7rem; }
.impulses-page h1,.impulses-page h2 { font-size:clamp(1.75rem,2.6vw,2.35rem); }
.impulses-page p,.impulses-page .lead { font-size:1.125rem; line-height:1.7; }
.impulses-page .text-link,.impulses-page .button,.impulses-page .impulse-meta { font-size:1rem; }
.impulses-page .page-intro { text-align:center; }
.impulses-page .page-hero.compact { min-height:0; height:clamp(240px,42vw,520px); padding:0; }
.impulses-page .page-hero::after { display:none; }
.impulses-page .hero-image[src*="/impulse-karten-"] { object-position:right center; }
.impulses-page .insight-media figcaption { margin-top:.6rem; font-size:1rem; line-height:1.5; }
.insight-image { position:relative; }
.impulses-page .photo[src*="/fragen-"] { object-position:right center; }
.impulse-picture { position:relative; margin:0; }
.impulse-picture>.photo { display:block; width:100%; height:clamp(240px,42vw,520px); max-height:none; object-fit:cover; }
.impulse-picture>figcaption { position:absolute; bottom:0; right:0; max-width:min(100%,36rem); padding:.5rem 1rem; background:#fffffff0; font-size:1rem; line-height:1.5; }
.impulse-reading { max-width:850px; }
.impulse-heading { margin:1.5rem 0 2.5rem; }
.impulse-heading h1 { margin-bottom:1rem; }
.impulse-copy p { margin:0 0 1.5rem; }
.impulse-sources { margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line); }
.impulse-sources ul { list-style:none; padding:0; margin:1rem 0 0; }
.impulse-sources li+li { margin-top:.6rem; }
.impulse-sources a,.impulse-next a { overflow-wrap:anywhere; }
.impulse-next { border-top:1px solid var(--line); padding-top:1.5rem; margin-top:2rem; }
.impulse-back::before { content:"←"; }
.impulse-back::after { content:none; }
.desktop-nav>[aria-current="true"],.mobile-links>[aria-current="true"] { border-color:var(--cyan); box-shadow:inset 0 0 0 1px var(--cyan); }
@media(max-width:740px) {
  .impulse-picture>.photo { height:clamp(240px,62vw,380px); }
  .impulse-picture>figcaption { position:static; max-width:none; background:var(--paper,#fff); }
  .impulse-picture:has(figcaption)>.ai-label { top:8px; bottom:auto; }
}
@media(max-width:1400px) {
  .site-header { grid-template-columns:minmax(170px,1fr) auto minmax(170px,1fr); padding-inline:24px; gap:14px; }
  .brand img { width:190px; }
  .desktop-nav>a,.desktop-nav>a:last-child { padding:9px 10px; font-size:.95rem; }
}
@media(max-width:1180px) {
  .site-header { display:flex; justify-content:space-between; min-height:90px; padding:20px 24px; }
  .brand img { width:190px; }
  .desktop-nav { display:none; }
  .mobile-nav { display:block; }
  .mobile-nav>summary { list-style:none; padding:8px 17px; min-height:46px; border-radius:999px; background:var(--ink); color:white; border:2px solid var(--cyan); font-size:.95rem; line-height:1.5; font-weight:750; }
  .mobile-nav>summary::-webkit-details-marker { display:none; }
  .mobile-nav>summary::after { content:" ☰"; margin-left:.25rem; }
  .mobile-nav[open]>summary::after { content:" ×"; }
  .mobile-links { position:absolute; left:24px; right:24px; top:calc(100% - 1px); padding:.8rem; background:var(--ink); border:1px solid var(--cyan); border-radius:8px; box-shadow:0 15px 25px #32415822; }
  .mobile-links a { display:block; padding:.85rem 1rem; min-height:44px; color:white; font-size:1rem; font-weight:700; border-radius:4px; }
  .mobile-links a:hover,.mobile-links a[aria-current="page"] { background:#ffffff12; box-shadow:inset 3px 0 var(--cyan); }
  .mobile-links a:focus-visible { outline-color:var(--cyan); outline-offset:0; }
  .wrap { width:calc(100% - 48px); }
}
@media(max-width:740px) {
  .audience-grid { grid-template-columns:minmax(0,1fr); }
  .insight-entry { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  .insight-media .photo { aspect-ratio:16/7; }
  .home-hero { padding:55px 0 65px; }
  .home-hero h1 { font-size:2.2rem; max-width:24ch; }
  .home-hero .lead { font-size:1.2rem; }
  .hero-grid { display:block; }
  .format-grid { grid-template-columns:minmax(0,1fr); }
  .format-grid>:last-child:nth-child(odd) { grid-column:auto; }
  #formate .format-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .format-card>.picture-section .photo { aspect-ratio:16/7; }
  .audience-grid,.principles { gap:2rem; }
  .project-card>summary { min-height:0; }
  .profile-copy p { font-size:1.125rem; }
  .contact-panel { padding:1rem 0 1rem 1.5rem; }
  .contact-band { padding-block:65px; }
}
@media(max-width:520px) {
  .site-header { padding-inline:20px; }
  .brand img { width:180px; }
  .wrap { width:calc(100% - 40px); }
  .home-hero h1 { font-size:2rem; }
  .home-hero .lead { font-size:1.125rem; }
  .page-intro h1 { font-size:2rem; }
  .lead,.large-copy { font-size:1.125rem; }
  .eyebrow { font-size:.73rem; }
  .audience-grid,.principles,#formate .format-grid { grid-template-columns:minmax(0,1fr); }
  .audience-card { padding:1.3rem 0 0; }
  .audience-card h3 { hyphens:auto; }
  .pathfinder-result { padding:1rem 0 1rem 1rem; }
  .path-choice { border-radius:999px; }
  .offer-summary { padding:1.3rem 0; }
  .offer-body { padding:0 0 1.5rem; }
  .project-card h3 { font-size:1.3rem; }
  .picture-section .photo { aspect-ratio:16/9; }
}
/* Services use the homepage's three text roles and the original service imagery. */
.services-page {
  --service-heading-size:clamp(1.75rem,2.6vw,2.35rem);
  --service-copy-size:1.125rem;
  --service-control-size:1rem;
}
.services-page h1,.services-page h2 { font-size:var(--service-heading-size); }
.services-page h3 { font-size:var(--service-copy-size); line-height:1.5; }
.services-page p,.services-page .lead,.services-page .question-list { font-size:var(--service-copy-size); line-height:1.65; }
.services-page .button,.services-page .text-link,.services-page .topic-link,
.services-page .faq-item>summary,.services-page .offer-number,
.services-page .eyebrow { font-size:var(--service-control-size); }
.services-page .page-hero.compact { min-height:0; height:clamp(240px,44vw,560px); padding:0; }
.services-page .page-hero>img { object-position:right center; }
.services-page .page-hero::after { display:none; }
.services-page .page-intro,.services-page .section-head { text-align:center; }
.services-page .section-head,.services-page .section-head .lead { margin-inline:auto; }
.services-page .offer-visual img { aspect-ratio:auto; height:auto; }
.services-page .quote-carousel { text-align:center; background:white; padding:2rem; }
.services-page .quote-carousel .slide { align-content:center; min-height:9rem; }
.services-page .carousel-count { font-size:var(--service-control-size); }
.services-page .offer-budget { margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid var(--line); }
.services-page .offer-budget h3 { margin-top:0; }
.services-page .offer-budget h3+p { margin-top:.5rem; }
.services-page .fee-overview { margin:0 0 2rem; }
.services-page .fee-overview>div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1.5rem; padding:1.2rem 0; border-top:1px solid var(--line); }
.services-page .fee-overview>div:last-child { border-bottom:1px solid var(--line); }
.services-page .fee-overview dt { font-weight:750; }
.services-page .fee-overview dt>span { display:block; font-size:var(--service-control-size); font-weight:400; margin-top:.25rem; }
.services-page .fee-overview dd { margin:0; white-space:nowrap; font-weight:750; }
.services-page .steps { margin-top:2rem; }
.services-page .steps h3 { font-size:var(--service-copy-size); }
@media(max-width:740px) {
  .services-page .page-hero.compact { height:clamp(220px,62vw,380px); }
  .services-page .offer-heading h2 { font-size:clamp(1.1875rem,6vw,1.5rem); hyphens:auto; }
  .services-page .quote-carousel { padding:1.4rem 1rem; }
  .services-page .quote-carousel .slide { min-height:13.5rem; }
  .services-page .fee-overview>div { gap:.8rem; }
  .services-page .steps li { grid-template-columns:36px minmax(0,1fr); gap:1rem; }
}
/* Working method: original copy, one text column, and full-width photo breaks. */
.work-page {
  --work-heading-size:clamp(1.75rem,2.6vw,2.35rem);
  --work-copy-size:1.125rem;
  --work-control-size:1rem;
  --work-photo-height:clamp(260px,42vw,520px);
}
.work-page h1,.work-page h2 { font-size:var(--work-heading-size); }
.work-page h3,.work-page p,.work-page .lead,.work-page .process-meta,
.work-page .faq-item>summary { font-size:var(--work-copy-size); line-height:1.65; }
.work-page .button,.work-page .step-number,.work-page .principle-number { font-size:var(--work-control-size); }
.work-page .work-intro h1,.work-page .section-head h2 { text-align:center; }
.work-page .work-intro-copy { margin-top:1.8rem; }
.work-page .section-head,.work-page .section-head>p { max-width:none; }
.work-page .process-intro { margin-bottom:2rem; }
.work-page .page-hero.compact { min-height:0; height:var(--work-photo-height); padding:0; }
.work-page .page-hero::after { display:none; }
.work-page .page-hero>img { object-position:center 55%; }
.work-page .picture-section .photo { height:var(--work-photo-height); max-height:none; aspect-ratio:auto; object-fit:cover; }
.work-page .picture-section img[src*="begleitung"],
.work-page .picture-section img[src*="ausrichtung"] { object-position:70% center; }
@media(max-width:740px) {
  .work-page { --work-photo-height:clamp(240px,62vw,380px); }
  .work-page .process-step { gap:1rem; }
  .work-page .faq-item>div { padding-right:0; }
}
/* Personal experience: one clear title per disclosure and consistent body type. */
.about-page h1,.about-page h2 { font-size:clamp(1.75rem,2.6vw,2.35rem); }
.about-page p,.about-page .lead,.about-page .profile-copy p,
.about-page .network-block .profile-copy p,.about-page .project-card h3 {
  font-size:1.125rem;
  line-height:1.65;
}
.about-page .section-head,.about-page .experience-note { max-width:none; }
.about-page .section-head h2 { text-align:center; }
.about-page .experience-note { color:var(--ink); }
.about-page .project-card>summary { padding:1.25rem 3rem 1.25rem 0; }
.about-page .project-card>summary::after { top:1.25rem; }
.about-page .project-card h3 { margin:0; }
.about-page .project-detail { padding:1.25rem 0 1.75rem; max-width:85ch; }
.about-page .project-detail p:last-child { margin-bottom:0; }
.about-page .button,.about-page .text-link { font-size:1rem; }
.about-page .project-source { margin-top:1rem; }
.about-page .picture-section .photo { height:clamp(260px,42vw,520px); max-height:none; aspect-ratio:auto; object-fit:cover; }
.about-page .network-carousel { margin-top:2.5rem; }
.about-page .network-block>.wrap>.lead { max-width:75ch; margin-inline:auto; text-align:center; }
.about-page .network-person {
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  background:white;
  border:1px solid var(--line);
}
.about-page .network-person>* { min-width:0; }
.about-page .network-person .profile-media { margin:0; border-radius:0; }
.about-page .network-person .portrait { height:100%; object-position:left center; }
.about-page .network-person .profile-copy { padding:clamp(1.5rem,3vw,3rem); align-self:center; }
.about-page .network-person h3 { font-size:clamp(1.75rem,2.6vw,2.35rem); }
.about-page .network-person .profile-copy p:last-child { margin-bottom:0; }
.about-page .network-carousel .carousel-count { font-size:1rem; }
@media(max-width:740px) {
  .about-page .picture-section .photo { height:clamp(240px,62vw,380px); }
  .about-page .network-person { grid-template-columns:minmax(0,1fr); }
  .about-page .network-person .profile-media { max-width:none; }
  .about-page .network-person .portrait { height:320px; aspect-ratio:auto; object-position:left center; }
}
.contact-page h1,.contact-page h2 { font-size:clamp(1.75rem,2.6vw,2.35rem); }
.contact-page p,.contact-page .lead,.contact-page .contact-guidance { font-size:1.125rem; line-height:1.7; }
.contact-page .page-hero.compact { min-height:0; height:clamp(240px,42vw,520px); padding:0; }
.contact-page .page-hero::after { display:none; }
.contact-page .hero-image { object-position:center; }
.contact-start { text-align:center; }
.contact-start>.wrap { max-width:1050px; }
.contact-start h1 { margin-inline:auto; }
.contact-start .lead { margin-top:1rem; }
.contact-start .choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; margin:2rem auto 1.5rem; }
.contact-page .choice-chip { justify-content:center; min-height:54px; padding:.75rem 1.25rem; border:1px solid #7abac0; border-radius:999px; background:#12b8c412; font-size:1rem; line-height:1.5; }
.contact-page .choice-chip:hover { background:var(--ink); border-color:var(--ink); color:white; }
.contact-page .choice-chip:target { outline:2px solid var(--cyan); outline-offset:4px; }
.contact-mail-note,.contact-response { max-width:75ch; margin:1.5rem auto; }
.contact-free { margin-top:1.8rem; }
.contact-free .choice-chip { background:white; }
.contact-free .choice-chip:hover { background:var(--ink); }
.contact-page .contact-address { margin:.7rem 0 0; font-weight:600; }
.contact-start .contact-response { margin-top:2rem; margin-bottom:0; }
.contact-page .section-tint h2 { text-align:center; }
@media(max-width:740px) {
  .contact-start .choice-grid { grid-template-columns:minmax(0,1fr); }
}
/* Keep the regular document flow unless there is room for the layered images.
   CSS sticky follows native scrolling; no scroll listeners, snapping or timers. */
.image-reveal { display:contents; }
.image-reveal .photo[src*="/arbeitsweise-"] { object-position:right center; }
@media screen and (min-width:1024px) and (min-height:640px) and (prefers-reduced-motion:no-preference) {
  .image-reveal { display:block; position:relative; isolation:isolate; }
  .image-reveal>.reveal-image {
    position:sticky;
    top:var(--sticky-header-height,118px);
    z-index:0;
  }
  .image-reveal>.reveal-image .photo {
    display:block;
    max-height:calc(100svh - var(--sticky-header-height,118px) - 24px);
  }
  .image-reveal>.page-hero {
    max-height:calc(100svh - var(--sticky-header-height,118px) - 24px);
  }
  .future-content .image-reveal>.picture-section .photo {
    max-height:min(460px,calc(100svh - var(--sticky-header-height,118px) - 24px));
  }
  .future-content>.image-reveal>.page-hero {
    min-height:0;
    height:clamp(350px,42vw,560px);
  }
  .image-reveal>.reveal-content {
    position:relative;
    z-index:2;
    background:#fff;
    box-shadow:0 -14px 32px -20px #32415840;
  }
  .image-reveal>.section-tint { background:#fafbfb; }
}
@media print {
  .site-header,.site-footer,.carousel-controls,.pathfinder,.button-row,.jump-nav {
    display:none
  }
  .section,.page-intro,.home-hero,.contact-band,.legal {
    padding-block:20px
  }
  .wrap {
    width:100%
  }
  .carousel.enhanced .slide[hidden] {
    display:block!important
  }
  .carousel-track,.hero-grid,.profile,.contact-layout,.offer-layout,.intro-grid,.project-grid {
    display:block
  }
  .hero-media,.profile-media {
    max-width:300px;
    min-height:0;
    margin-block:20px
  }
  .section-dark,.contact-band {
    background:white;
    color:var(--ink)
  }
  .page-hero {
    min-height:220px
  }
  .offer-details,.project-card,.process-step {
    break-inside:avoid
  }
  a {
    text-decoration:none
  }
}
