/* Reykjavík editorial direction: ice light, basalt lines, and a clear sense of place. */
.place-ribbon { background: #102d3d; color: #d8eef2; font-size: .72rem; font-weight: 750; letter-spacing: .16em; }
.place-ribbon .container { min-height: 2.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.place-ribbon span:last-child { color: #8bb8c2; }
.site-header { top: 0; border-bottom-color: #d7e5e8; }
.site-header .container { min-height: 5.25rem; }
.site-header .nav-link.active { color: #126cb0; }
.site-header .nav-link.active::after { right: 0; }
.site-header .mobile-nav a.active { color: #126cb0; border-left: 3px solid #126cb0; padding-left: .8rem; background: #eef7f9; }
.site-header nav a[aria-current="page"].rounded-full { background: #126cb0; }
.hero-stage { min-height: min(800px, calc(100svh - 120px)); background: #102d3d; }
.hero-shade { background: linear-gradient(90deg, #0b2435f5 0%, #0b2435c9 46%, #0b24353b 100%), linear-gradient(0deg, #0b2435a6, transparent 55%); }
.hero-inner { padding-block: 7rem 8rem; }
.hero-kicker { color: #c8e8ee; }
.pulse-mark { width: 7px; height: 7px; background: #a9e5ee; box-shadow: 0 0 0 6px #a9e5ee30; }
.hero-stage h1 { max-width: 960px; font-size: clamp(3.4rem, 7vw, 7.2rem); letter-spacing: -.067em; }
.hero-stage h1 em { color: #b7e9ef; }
.hero-bottom { max-width: 900px; }
.hero-caption { left: max(1.25rem, calc((100% - 1200px) / 2)); right: auto; bottom: 2.2rem; display: flex; gap: 1.3rem; align-items: center; color: #d6edf0; letter-spacing: .13em; font-size: .72rem; font-weight: 700; }
.hero-caption span + span { border-left: 1px solid #ffffff70; padding-left: 1.3rem; color: #ffffffa8; }
.editorial-section#about { background: #eef7f8; }
.section-heading, .page-masthead h1, .detail-heading { color: #102d3d; }
.page-masthead { background: #e5f1f3; }
.page-masthead-dark { background: #102d3d; }
.page-masthead::after { content: ''; position: absolute; inset: auto 0 0; height: 1px; background: #a8c9d0; }
.masthead-orbit { border-radius: 0; transform: rotate(-18deg); border-color: #66b2c833; box-shadow: 75px 75px 0 -74px #66b2c833, 150px 150px 0 -149px #66b2c833; }
.page-masthead-dark .masthead-orbit { border-color: #a3dce744; box-shadow: 75px 75px 0 -74px #a3dce744, 150px 150px 0 -149px #a3dce744; }
.project-showcase { background: #102d3d; }
.project-showcase::before { border-radius: 0; transform: rotate(24deg); }
.latest-stories .story-card { background: #edf6f7; }
.closing-cta { background: #9ed6df; }
.closing-cta::after { border-radius: 0; transform: rotate(22deg); }
.contact-page { background: #102d3d; }
.contact-map { position: relative; }
.map-place { position: absolute; z-index: 2; top: 1.3rem; left: 1.3rem; display: grid; gap: .25rem; padding: .9rem 1.15rem; color: #102d3d; background: #fffffff0; border: 1px solid #c4dce0; border-radius: .7rem; box-shadow: 0 8px 25px #102d3d22; }
.map-place span { font-size: .68rem; font-weight: 800; letter-spacing: .17em; }
.map-place strong { font-size: 1.15rem; }
.footer-place { display: flex; justify-content: space-between; gap: 1rem; padding-top: 2rem; border-top: 1px solid #ffffff40; font-size: .72rem; font-weight: 750; letter-spacing: .17em; color: #a6d4de; }
@media (min-width: 48rem) { .site-header .menu-button, .site-header .mobile-nav { display: none; } }
@media (max-width: 767px) {
  .place-ribbon .container { min-height: 2rem; font-size: .62rem; }
  .place-ribbon span:last-child { display: none; }
  .hero-stage { min-height: 710px; }
  .hero-shade { background: linear-gradient(0deg, #0b2435f5 0%, #0b2435cc 55%, #0b24354d); }
  .hero-inner { padding-block: 5rem 7rem; }
  .hero-caption { display: flex; bottom: 1.3rem; }
  .hero-caption span + span { display: none; }
  .footer-place { flex-direction: column; }
}

/* Keep every word visible on dark mastheads, including the unaccented text. */
.page-masthead h1 {
  max-width: min(100%, 1180px);
  font-size: clamp(3.4rem, 6.4vw, 7rem);
  line-height: 1.02;
  letter-spacing: -.055em;
}
.page-masthead-dark h1 { color: #f7fbfc; }
.page-masthead-dark h1 span,
.page-masthead-dark h1 .heading-dot { color: #a9e8f2; }
@media (max-width: 767px) {
  .page-masthead h1 { font-size: clamp(3rem, 11vw, 5rem); }
}

/* A gentler palette drawn from the logo's blue and cyan. */
body { background: #fbfdff; color: #173a50; }
.place-ribbon { background: #deeff5; color: #174a65; }
.place-ribbon span:last-child { color: #4e7d91; }
.site-header { box-shadow: 0 8px 28px #2b66800c; }
.site-header nav[aria-label="Main navigation"] > a:last-child {
  background: #b8e6f1;
  color: #113f5a;
}
.site-header nav[aria-label="Main navigation"] > a:last-child:hover,
.site-header nav[aria-label="Main navigation"] > a:last-child[aria-current="page"] {
  background: #91d6e8;
}
.btn-primary { background: #b6e4f0; color: #113f5a; }
.btn-primary:hover { background: #91d6e8; color: #113f5a; }
.hero-stage {
  min-height: 690px;
  background: #edf7fa;
  color: #173a50;
}
.hero-photo { left: auto; width: 57%; z-index: -1; border-radius: 0 0 0 5rem; overflow: hidden; }
.hero-shade {
  background: linear-gradient(90deg, #edf7fa 0%, #edf7faf7 33%, #edf7fac7 50%, #edf7fa00 76%);
}
.hero-inner { padding-block: 6rem 7rem; }
.hero-kicker { color: #126f99; }
.pulse-mark { background: #2f9fc0; box-shadow: 0 0 0 6px #2f9fc023; }
.hero-stage h1 { max-width: 800px; color: #153e58; font-size: clamp(3.4rem, 6.5vw, 6.7rem); }
.hero-stage h1 em { color: #147fa9; }
.hero-bottom { max-width: 700px; }
.hero-bottom p { color: #405e70; }
.hero-circle { color: #174a65; border-color: #7dbbcf; }
.hero-circle:hover { background: #b8e6f1; }
.hero-caption { color: #3a7087; }
.hero-caption span + span { color: #628898; border-left-color: #9ec9d6; }
.editorial-section#about { background: #eef8fb; }
.section-heading, .detail-heading { color: #173e56; }
.page-masthead, .page-masthead-dark { background: #e3f3f8; color: #173a50; }
.page-masthead h1, .page-masthead-dark h1 { color: #173e56; }
.page-masthead h1 span, .page-masthead-dark h1 span,
.page-masthead-dark h1 .heading-dot { color: #168ab3; }
.page-masthead-dark .eyebrow { color: #167da3; }
.page-masthead-dark .masthead-intro { color: #4b6d7f; }
.page-masthead-dark .masthead-orbit { border-color: #71bdd655; box-shadow: 75px 75px 0 -74px #71bdd655, 150px 150px 0 -149px #71bdd655; }
.project-showcase { background: #e9f6fa; color: #173a50; }
.project-showcase .section-heading { color: #173e56 !important; }
.project-showcase .eyebrow { color: #167da3 !important; }
.project-showcase .container > div:first-child p { color: #4b6d7f; }
.project-showcase .container > div:first-child a { color: #126f99; }
.project-showcase::before { border-color: #7dbbcf44; box-shadow: 0 0 0 95px #7dbbcf14, 0 0 0 190px #7dbbcf0e; }
.latest-stories .story-card { background: #eff8fb; }
.closing-cta { background: #c5eaf3; }
.contact-page { background: #edf7fa; color: #173a50; }
.contact-details .eyebrow { color: #167da3; }
.contact-details h1 em { color: #168ab3; }
.contact-details > p:nth-child(3) { color: #4b6d7f; }
.contact-details .space-y-8 { border-top-color: #b9d7e2; }
.contact-details .space-y-8 > div { border-bottom-color: #c9dfe7; }
.contact-details .space-y-8 p,
.contact-details .space-y-8 a { color: #173a50; }
.contact-map { box-shadow: 24px 24px #c7e9f2; }
.contact-map .map-place { top: 12rem; left: 1.5rem; }
footer.bg-navy { background: #dfeff4; color: #173a50; }
footer.bg-navy .footer-place { color: #31687e; border-top-color: #abcbd8; }
footer.bg-navy .text-white\/60 { color: #567787; }
@media (max-width: 767px) {
  .hero-stage { display: flex; flex-direction: column; min-height: 0; }
  .hero-photo { position: relative; inset: auto; order: 0; width: 100%; height: 260px; border-radius: 0 0 2rem 2rem; z-index: 0; }
  .hero-shade { display: none; }
  .hero-inner { order: 1; min-height: 0; padding-block: 3rem 4.5rem; }
  .hero-stage h1 { font-size: clamp(3rem, 11vw, 5rem); }
  .hero-bottom { margin-top: 1.5rem; }
  .hero-caption { display: none; }
  .contact-map { box-shadow: 13px 13px #c7e9f2; }
  .contact-map .map-place { top: 10rem; }
}

/* CMS article media should sit comfortably within the reading column. */
.detail-copy :is(iframe, video, embed, object) {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-block: 2.5rem;
  border: 0;
  border-radius: 1.25rem;
  background: #e3f3f8;
  box-shadow: 0 16px 40px #31687e1a;
}
.detail-copy iframe:is([src*="youtube.com"], [src*="youtu.be"], [src*="vimeo.com"]),
.detail-copy video {
  height: auto;
  aspect-ratio: 16 / 9;
}
.detail-copy :is(img, svg, canvas) { max-width: 100%; height: auto; }
.detail-copy figure { max-width: 100%; margin: 2.5rem 0; }
.detail-copy figure :is(img, iframe, video) { margin-block: 0; }
.detail-copy figcaption { margin-top: .75rem; color: #567787; font-size: .88rem; line-height: 1.5; }
.detail-copy table { display: block; max-width: 100%; overflow-x: auto; }
@media (max-width: 767px) {
  .detail-copy :is(iframe, video, embed, object) { margin-block: 2rem; border-radius: .9rem; }
}

/* People, conversation and Icelandic light: a playful identity built from the logo palette. */
:root { --ink: #163e56; --blue: #207fa6; --ice: #bcebf1; --peach: #f7c9af; --sun: #f4db8f; --lilac: #d7d8ee; }
body { background: #fffefa; color: var(--ink); }
.place-ribbon { background: var(--ice); color: var(--ink); }
.site-header { background: #fffefa; box-shadow: none; border-bottom: 2px solid var(--ink); }
.site-header .nav-link.active { color: #116a8a; }
.site-header nav[aria-label="Main navigation"] > a:last-child,
.btn-primary { background: var(--peach); color: var(--ink); border: 2px solid var(--ink); border-radius: 100px; box-shadow: 4px 4px 0 var(--ink); }
.site-header nav[aria-label="Main navigation"] > a:last-child:hover,
.btn-primary:hover { background: var(--sun); transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--ink); }
.hero-stage { min-height: 740px; background: #d8f3f4; }
.hero-photo { width: 49%; border-radius: 45% 0 0 45%; overflow: hidden; border-left: 8px solid #fffefa; }
.hero-photo img { filter: saturate(1.08); }
.hero-shade { background: linear-gradient(90deg, #d8f3f4 0%, #d8f3f4 43%, #d8f3f4be 53%, transparent 70%); }
.hero-inner { padding-block: 7rem 8rem; }
.hero-kicker { color: #176985; letter-spacing: .1em; }
.hero-stage h1 { max-width: 900px; color: var(--ink); font-size: clamp(3.8rem, 7vw, 7.6rem); font-weight: 800; letter-spacing: -.065em; line-height: .98; }
.hero-stage h1 em { color: #147fa1; font-family: Georgia, 'Times New Roman', serif; font-size: 1.05em; font-weight: 400; font-style: italic; }
.hero-bottom { max-width: 675px; margin-top: 3rem; display: block; }
.hero-bottom p { color: #31576c; font-size: clamp(1.05rem, 1.65vw, 1.3rem); }
.hero-discover { display: inline-block; margin-top: 2rem; padding: .8rem 1.2rem; border-radius: 100px; background: var(--sun); color: var(--ink); border: 2px solid var(--ink); box-shadow: 4px 4px 0 var(--ink); font-weight: 750; }
.hero-discover:hover { transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--ink); }
.hero-connection { position: absolute; z-index: 1; right: 2.5%; bottom: 3%; width: clamp(110px, 15vw, 190px); color: var(--peach); filter: drop-shadow(2px 2px 0 #163e56); transform: rotate(-10deg); pointer-events: none; }
.hero-caption { display: none; }
.eyebrow { letter-spacing: .11em; color: #176985; }
.section-heading, .page-masthead h1, .detail-heading { color: var(--ink); letter-spacing: -.055em; }
.text-link { color: #146d90; text-decoration-thickness: 2px; }
.editorial-section#about { background: #fff1e9; }
#about .container { position: relative; }
#about .container::after { content: ''; position: absolute; right: 4%; bottom: -2.1rem; width: 70px; height: 70px; background: var(--peach); border: 2px solid var(--ink); border-radius: 55% 45% 55% 45%; transform: rotate(24deg); }
#peer-support { background: #fffefa; }
#peer-support .border-sky { border-color: var(--blue); color: var(--ink); font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-weight: 400; }
.project-showcase { background: #cfeaf1; color: var(--ink); }
.project-showcase::before { display: none; }
.project-showcase .group { border: 2px solid var(--ink); border-radius: 1.5rem 1.5rem 1.5rem .25rem; box-shadow: 10px 10px 0 #8fcbd8; }
.project-showcase .group:hover { transform: translateY(-3px); }
.project-showcase .group img { filter: saturate(1.05); }
.project-showcase .group h3 { font-size: clamp(2rem, 3vw, 3.4rem); letter-spacing: -.04em; }
.latest-stories { position: relative; }
.latest-stories::before { content: ''; position: absolute; left: -2rem; top: 5.5rem; width: 60px; height: 60px; background: var(--sun); border: 2px solid var(--ink); border-radius: 50% 50% 35% 50%; }
.latest-stories .story-card { background: #fffefa; border-top: 2px solid #9ac9d2; padding-top: 1rem; }
.story-card > div:first-child { border-radius: 1rem 1rem 1rem .2rem; }
.story-card img { filter: saturate(1.05); }
.story-card:hover img { transform: scale(1.035); }
.story-card h3 { color: var(--ink); font-size: 1.45rem; }
.closing-cta { background: var(--sun); }
.closing-cta::after { display: none; }
.closing-cta h2 { color: var(--ink); }
.page-masthead, .page-masthead-dark { background: #d6eff3; }
.page-masthead::after { background: var(--ink); height: 2px; }
.page-masthead h1, .page-masthead-dark h1 { color: var(--ink); font-size: clamp(3.6rem, 7vw, 7.6rem); font-weight: 800; line-height: 1.01; }
.page-masthead h1 span, .page-masthead-dark h1 span, .page-masthead-dark h1 .heading-dot { color: #157da1; }
.page-masthead .masthead-intro { color: #40647a; }
.masthead-orbit { display: none; }
.blog-grid .story-card:first-child { background: #fff1e9; border-radius: 1.4rem 1.4rem 1.4rem .25rem; padding: 1.2rem 1.2rem 2rem; }
.project-listing { border: 2px solid #b7dce4; border-radius: 1.4rem; box-shadow: 8px 8px 0 #b7dce4; }
.detail-cover { border-radius: 1.5rem 1.5rem 1.5rem .3rem; }
.detail-copy h2, .detail-copy h3 { color: var(--ink); }
.detail-copy :is(iframe, video, embed, object) { border-radius: 1.2rem 1.2rem 1.2rem .25rem; box-shadow: 7px 7px 0 #b7dce4; }
.about-photo { border-radius: 45% 45% 1.5rem 1.5rem; box-shadow: 15px 15px #bcebf1; }
.contact-page { background: #fff1e9; color: var(--ink); }
.contact-details h1 em { color: #157da1; }
.contact-map { border: 2px solid var(--ink); border-radius: 1.5rem 1.5rem 1.5rem .25rem; box-shadow: 10px 10px #bcebf1; }
.map-place { border: 2px solid var(--ink); border-radius: .75rem; box-shadow: 3px 3px var(--ink); }
footer.bg-navy { background: var(--ink); color: #f4fbfc; }
footer.bg-navy .footer-place { color: var(--ice); border-top-color: #8eb5c4; }
footer.bg-navy .text-white\/60 { color: #d2e8ec; }
@media (max-width: 767px) {
  .hero-stage { background: #d8f3f4; }
  .hero-photo { width: 100%; height: 285px; border: 0; border-radius: 0 0 45% 0; }
  .hero-inner { padding-block: 3rem 5rem; }
  .hero-stage h1 { font-size: clamp(3.2rem, 11vw, 5rem); }
  .hero-bottom { margin-top: 2rem; }
  .hero-connection { width: 100px; right: 1rem; bottom: .5rem; }
  #about .container::after { width: 42px; height: 42px; bottom: -1.2rem; }
  .latest-stories::before { display: none; }
  .project-showcase .group { box-shadow: 6px 6px 0 #8fcbd8; }
  .contact-map { box-shadow: 6px 6px #bcebf1; }
}
