@font-face {
  font-family: 'NotesEsa';
  src: url('fonts/NotesEsaReg.otf') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'NotesEsa';
  src: url('fonts/NotesEsaRegIta.otf') format('opentype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'NotesEsa';
  src: url('fonts/NotesEsaBol.otf') format('opentype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'NotesEsa';
  src: url('fonts/NotesEsaBolIta.otf') format('opentype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* ============================================
   RESET & TOKENS
   ============================================ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --void:    #003247;
      --deep:    #003247;
      --well:    #003247;
      --pit:     #003247;
      --fog:     #FFFFFF;
      --ash:     #FFFFFF;
      --silver:  #FFFFFF;
      --moon:    #FFFFFF;
      --white:   #FAFAFA;
      --pure:    #FFFFFF;
      --fire:    #00AE9D;
      --fire-d:  #058F82;
      --fire-g:  rgba(0,174,157,.14);
      --fire-gg: rgba(0,174,157,.06);
      --teal:    #00AE9D;
      --ocean:   #003247;
      --coral:   #F5362E;
      --slate:   #003247;
      --rule:    rgba(0,50,71,.26);
    }

    html {
      scroll-behavior: smooth;
      -ms-overflow-style: none;
      scrollbar-width: none;
    }

    html::-webkit-scrollbar,
    body::-webkit-scrollbar {
      width: 0;
      height: 0;
      display: none;
    }

    body {
      font-family: 'NotesEsa', sans-serif;
      background: var(--void);
      color: var(--white);
      overflow-x: hidden;
    }

    .home-page { cursor: auto; }

    body:not(.home-page) a,
    body:not(.home-page) button {
      cursor: pointer;
    }

    a { text-decoration: none; color: inherit; }
    img { display: block; }

    @keyframes fx-float {
      0%, 100% { margin-top: 0; }
      50% { margin-top: -10px; }
    }

    @keyframes fx-glow {
      0%, 100% { opacity: .55; filter: blur(36px); }
      50% { opacity: .9; filter: blur(52px); }
    }

    @keyframes fx-sheen {
      0% { transform: translateX(-120%) skewX(-18deg); }
      60%, 100% { transform: translateX(240%) skewX(-18deg); }
    }

    @keyframes fx-breath {
      0%, 100% { background-position: 50% 50%; }
      50% { background-position: 52% 48%; }
    }

    /* Film grain overlay */
    body::after {
      content: '';
      position: fixed; inset: 0; z-index: 9000; pointer-events: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cfilter id='g'%3E%3CfeTurbulence baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
      background-size: 256px; opacity: .028;
    }

    /* ============================================
       HEADER
       ============================================ */
    .esa-header {
      box-sizing: border-box;
      position: fixed;
      top: 0;
      width: 100%;
      height: 56px;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      padding: 0 24px;
      background-color: #003247;
      border-bottom-width: 4px;
      border-bottom-style: solid;
      border-color: #00ae9d;
      color: #fff;
      font-size: 20px;
      z-index: 99999;
    }

    @media (min-width: 640px) {
      .esa-header {
        height: 64px;
      }
    }

    .esa-header button {
      height: auto;
      padding: 0;
      font-size: inherit;
      line-height: 1;
      border-radius: 0;
      letter-spacing: normal;
      border: none;
      margin-bottom: 0;
    }

    .esa-header__left {
      display: flex;
      align-items: center;
      justify-content: flex-start;
    }

    .esa-header__left > * {
      margin-right: 16px;
    }

    .esa-header__left > *:last-child {
      margin-right: 0;
    }

    .esa-header__right {
      margin-left: auto;
      line-height: 0;
    }

    .esa-header__title {
      display: none;
      width: 222px;
      height: 12px;
    }

    .esa-header__title-link {
      display: block;
      line-height: 0;
    }

    @media (min-width: 640px) {
      .esa-header__title {
        display: block;
      }
    }

    .esa-header__link {
      display: block;
    }

    .esa-header__logo {
      width: 78px;
      height: 28px;
    }

    @media (min-width: 640px) {
      .esa-header__logo {
        width: 89px;
        height: 32px;
      }
    }

    .esa-header__toggle {
      width: auto;
      height: auto;
      padding: 0;
      background: none;
      border: none;
      outline: none;
      transition: all 0.25s ease;
      cursor: pointer;
    }

    .esa-header__toggle:hover {
      transform: scale(1.1);
    }

    .esa-header__toggle:last-of-type {
      margin-right: 24px;
    }

    .esa-header .esa-header__icon {
      max-width: 20px;
      max-height: 20px;
    }

    .h-search-panel {
      position: fixed;
      top: 56px;
      left: 0;
      right: 0;
      z-index: 490;
      padding: 14px 20px 20px;
      opacity: 0;
      transform: translateY(-10px) scale(.985);
      pointer-events: none;
      transition: opacity .28s ease, transform .28s ease;
      background: linear-gradient(to bottom, rgba(0,50,71,.96), rgba(0,50,71,.88));
      border-bottom: 1px solid var(--rule);
      backdrop-filter: blur(18px);
    }

    .h-search-panel.open {
      opacity: 1;
      transform: translateY(0) scale(1);
      pointer-events: auto;
    }

    @media (min-width: 640px) {
      .h-search-panel {
        top: 64px;
      }
    }

    .h-search-shell {
      max-width: 920px;
      margin: 0 auto;
    }

    .h-search-form {
      display: flex;
      align-items: center;
      gap: 10px;
      height: 58px;
      border: 1px solid rgba(0,50,71,.45);
      background: rgba(255,255,255,.04);
      padding: 0 12px 0 14px;
      transition: border-color .25s ease, box-shadow .25s ease;
    }

    .h-search-form:focus-within {
      border-color: var(--fire);
      box-shadow: 0 0 0 3px rgba(0,174,157,.16);
    }

    .h-search-ico {
      width: 18px;
      height: 18px;
      color: var(--ash);
      flex-shrink: 0;
    }

    .h-search-input {
      flex: 1;
      min-width: 0;
      height: 100%;
      border: none;
      outline: none;
      background: transparent;
      color: var(--pure);
      font-family: 'NotesEsa', sans-serif;
      font-size: 12px;
      letter-spacing: 1.3px;
    }

    .h-search-input::placeholder {
      color: rgba(0,50,71,.85);
      letter-spacing: 1px;
    }

    .h-search-close {
      width: 34px;
      height: 34px;
      border: 1px solid var(--rule);
      background: transparent;
      color: var(--ash);
      font-size: 14px;
      line-height: 1;
      cursor: pointer;
      transition: color .2s, border-color .2s, background .2s;
    }

    .h-search-close:hover {
      color: var(--fire);
      border-color: var(--fire);
      background: var(--fire-gg);
    }

    .h-search-hint {
      margin-top: 10px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--ash);
    }

    .h-search-hint kbd {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 18px;
      height: 18px;
      border: 1px solid var(--rule);
      font-size: 8px;
      padding: 0 4px;
      margin: 0 2px;
      color: var(--white);
      background: rgba(255,255,255,.04);
    }

    .h-search-links {
      margin-top: 12px;
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 8px;
    }

    .h-search-links a {
      display: block;
      border: 1px solid var(--rule);
      background: rgba(255,255,255,.03);
      padding: 9px 12px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--ash);
      transition: border-color .2s, color .2s, transform .2s, background .2s;
    }

    .h-search-links a:hover {
      border-color: var(--fire);
      color: var(--fire);
      background: var(--fire-gg);
      transform: translateY(-1px);
    }

    .h-search-links a.is-hidden { display: none; }

    /* ============================================
       HERO - FULL-SCREEN VIDEO
       ============================================ */
    .hero {
      position: relative; min-height: 100vh; padding-top: 60px;
      display: flex; flex-direction: column;
      overflow: hidden;
    }

    .hero::before { content: none; }

    /* Background layer holding the hero video */
    .hero-canvas {
      position: absolute; inset: 0; z-index: 0;
    }
    .hero-video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      opacity: 1;
      filter: none;
      pointer-events: none;
    }
    /* Decorative light layer (hidden) */
    .hero-light { display: none; }

    /* Decorative vertical rule (hidden) */
    .hero-vline { display: none; }

    .btn-fire {
      display: inline-flex; align-items: center; gap: 10px;
      padding: 14px 36px;
      background: var(--fire); color: var(--pure);
      font-family: 'NotesEsa', sans-serif;
      font-size: 10px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase;
      border: none; cursor: pointer; transition: background .2s, gap .2s;
      position: relative;
      overflow: hidden;
    }
    .btn-fire:hover { background: var(--fire-d); gap: 16px; }
    .btn-fire::before {
      content: '';
      position: absolute;
      top: 0;
      left: -40%;
      width: 28%;
      height: 100%;
      background: linear-gradient(to right, transparent 0%, rgba(255,255,255,.35) 50%, transparent 100%);
      transform: skewX(-18deg);
      animation: fx-sheen 3.5s ease-in-out infinite;
      pointer-events: none;
    }

    .btn-outline {
      display: inline-flex; align-items: center; gap: 10px;
      padding: 14px 32px;
      background: transparent; color: var(--silver);
      font-family: 'NotesEsa', sans-serif;
      font-size: 10px; letter-spacing: 4px; text-transform: uppercase;
      border: 1px solid var(--fog); cursor: pointer;
      transition: border-color .2s, color .2s;
    }
    .btn-outline:hover { border-color: var(--fire); color: var(--fire); }

    /* Stats strip */
    .hero-stats {
      position: relative; z-index: 3;
      display: grid; grid-template-columns: repeat(2, minmax(0, 260px));
      justify-content: center;
      border-top: 1px solid #00AE9D;
      background: rgba(0,50,71,.7); backdrop-filter: blur(12px);
    }
    .hs {
      min-height: 126px;
      padding: 28px 24px;
      border-right: 1px solid #00AE9D;
      display: grid;
      place-items: center;
      align-content: center;
      gap: 12px;
      text-align: center;
      transition: background .25s;
    }
    .hs:last-child { border-right: none; }
    .hs:hover { background: var(--fire-gg); }
    .hs-n {
      font-family: 'NotesEsa', sans-serif;
      font-size: clamp(42px, 4vw, 62px); line-height: .95; color: var(--pure);
    }
    .hs-n sup { font-size: 22px; color: var(--fire); font-family: 'NotesEsa', sans-serif; font-weight: 700; }
    .hs-l {
      font-family: 'NotesEsa', sans-serif;
      max-width: 120px;
      font-size: 9px; letter-spacing: 3px; text-transform: uppercase; color: var(--ash);
      line-height: 1.55;
    }

    /* ============================================
       TICKER
       ============================================ */
    .ticker {
      height: 38px; overflow: hidden;
      display: flex; align-items: center;
      background: var(--fire); position: relative;
    }
    .ticker-inner {
      display: flex; white-space: nowrap;
      animation: tick 35s linear infinite;
    }
    @keyframes tick { from{transform:translateX(0)} to{transform:translateX(-50%)} }
    .ticker-item {
      display: inline-flex; align-items: center; gap: 14px;
      padding: 0 32px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
      color: #FFFFFF;
    }
    .ticker-sep { width: 3px; height: 3px; border-radius: 50%; background: rgba(0,50,71,.35); flex-shrink: 0; }

    /* ============================================
       DASHBOARD ESA SECTION
       ============================================ */
    .dashboard-esa-section {
      position: relative;
      padding: 64px 80px;
      background: linear-gradient(180deg, #F9FBFD 0%, #F3F7FA 100%);
      border-top: 1px solid rgba(0,50,71,.18);
      border-bottom: 1px solid rgba(0,50,71,.12);
      color: #003247;
    }

    .dashboard-esa-shell {
      max-width: 1220px;
      margin: 0 auto;
      display: grid;
      gap: 26px;
    }

    .dashboard-esa-head h2 {
      font-family: 'NotesEsa', sans-serif;
      font-size: clamp(28px, 4vw, 46px);
      line-height: 1.05;
      color: #003247;
      text-align: center;
    }

    .dashboard-offer-grid {
      display: grid;
      gap: 10px;
      border-top: 1px solid rgba(0,50,71,.16);
      padding-top: 26px;
    }

    .dashboard-offer-grid-top {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .dashboard-offer-grid-bottom {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      max-width: 900px;
      margin: 0 auto;
      border-top: 1px solid rgba(0,50,71,.16);
      padding-top: 30px;
    }

    .dashboard-offer-item {
      display: grid;
      justify-items: center;
      text-align: center;
      gap: 14px;
      padding: 16px 14px 18px;
      border: 1px solid rgba(0,50,71,.10);
      border-radius: 12px;
      background: rgba(255,255,255,.92);
    }

    .dashboard-offer-item img {
      width: 96px;
      height: 96px;
      object-fit: contain;
      filter: drop-shadow(0 0 10px rgba(0,174,157,.12));
    }

    .dashboard-offer-item h3 {
      font-family: 'NotesEsa', sans-serif;
      font-size: 14px;
      line-height: 1.45;
      color: #003247;
      max-width: 330px;
    }

    .dashboard-offer-cta {
      display: flex;
      justify-content: center;
      padding-top: 6px;
    }

    /* ============================================
       SPOTLIGHT - FULL-PAGE EDITORIAL GRID
       ============================================ */
    .spotlight { padding: 100px 80px; background: var(--void); }

    .sec-head {
      display: flex; align-items: flex-end; justify-content: space-between;
      margin-bottom: 64px;
    }
    .sec-label {
      display: flex; align-items: center; gap: 12px; margin-bottom: 10px;
    }
    .sec-label::before { content: ''; width: 20px; height: 2px; background: var(--fire); flex-shrink: 0; }
    .sec-label span {
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; font-weight: 700; letter-spacing: 5px; text-transform: uppercase; color: var(--fire);
    }
    .sec-title {
      font-family: 'NotesEsa', sans-serif;
      font-size: clamp(40px, 5vw, 64px); line-height: 1; color: var(--pure);
    }
    .sec-title em { font-style: italic; color: var(--silver); }

    .sec-tabs {
      display: flex; gap: 0;
    }
    .sec-tab {
      padding: 10px 20px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; letter-spacing: 3px; text-transform: uppercase;
      color: var(--ash); background: none; border: 1px solid var(--rule); border-right: none;
      cursor: pointer; transition: all .2s;
    }
    .sec-tab:last-child { border-right: 1px solid var(--rule); }
    .sec-tab.active, .sec-tab:hover { background: var(--fire); color: var(--pure); border-color: var(--fire); }

    /* News board */
    .news-board {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    .news-col {
      border: 1px solid var(--rule);
      background: rgba(0, 50, 71, .72);
      backdrop-filter: blur(14px);
      border-radius: 10px;
      overflow: hidden;
    }
    .news-col-title {
      margin: 0;
      padding: 16px 18px;
      border-bottom: 1px solid var(--rule);
      font-family: 'NotesEsa', sans-serif;
      font-size: 24px;
      line-height: 1.1;
      color: var(--pure);
      background: rgba(0, 50, 71, .45);
    }
    .news-list { display: grid; }
    .news-item {
      display: grid;
      grid-template-columns: 76px 1fr;
      gap: 14px;
      align-items: center;
      padding: 12px 14px;
      border-bottom: 1px solid rgba(255,255,255,.08);
      transition: background .2s;
    }
    .news-item:last-child { border-bottom: none; }
    .news-item:hover { background: rgba(0, 174, 157, .08); }
    .news-thumb {
      width: 76px;
      height: 76px;
      border-radius: 6px;
      overflow: hidden;
      background-size: cover;
      background-position: center;
    }
    .news-item-title {
      font-family: 'NotesEsa', sans-serif;
      font-size: 15px;
      line-height: 1.15;
      color: var(--pure);
      margin-bottom: 6px;
    }
    .news-item-meta {
      font-family: 'NotesEsa', sans-serif;
      font-size: 10px;
      letter-spacing: .8px;
      color: var(--ash);
    }

    .sp-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
    }

    :is(.sp-card, .tr-card, .vid-card, .rec-card) {
      background: var(--well);
      cursor: pointer;
      overflow: hidden;
      border-top: 3px solid transparent;
      border-radius: 0;
      transition: background .25s, border-color .25s, transform .25s ease, box-shadow .25s ease;
    }

    :is(.sp-card, .tr-card, .vid-card, .rec-card):hover {
      background: var(--pit);
      border-top-color: var(--fire);
    }

    .sp-card {
      position: relative; overflow: hidden; cursor: pointer;
      min-height: 360px;
    }
    .sp-card.is-hidden { display: none; }
    .sp-card.large { grid-row: auto; }

    .sp-visual {
      position: absolute; inset: 0; overflow: hidden;
    }
    .sp-card.large .sp-visual { height: 100%; }
    .sp-card:not(.large) .sp-visual { height: 100%; }

    .sp-vis-bg {
      position: absolute; inset: 0;
      width: 100%;
      height: 100%;
      transition: transform .7s ease;
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat;
    }
    .sp-card:hover .sp-vis-bg { transform: scale(1.015); }

    /* Mission visual themes */
    .v-nebula {
      background: radial-gradient(ellipse 70% 60% at 55% 45%,
        #003247 0%, #003247 35%, #003247 65%, #003247 100%);
    }
    .v-nebula::before {
      content: ''; position: absolute; inset: 0;
      background:
        radial-gradient(ellipse 60% 40% at 40% 55%, rgba(0,174,157,.25) 0%, transparent 55%),
        radial-gradient(ellipse 35% 25% at 65% 30%, rgba(0,50,71,.20) 0%, transparent 45%);
    }
    .v-nebula::after {
      content: ''; position: absolute; inset: 0;
      background-image:
        radial-gradient(1.5px 1.5px at 12% 18%, rgba(255,255,255,.9) 0%, transparent 100%),
        radial-gradient(1px 1px at 28% 8%,  rgba(255,255,255,.7) 0%, transparent 100%),
        radial-gradient(2px 2px at 45% 22%, rgba(0,50,71,.8) 0%, transparent 100%),
        radial-gradient(1px 1px at 62% 12%, rgba(255,255,255,.6) 0%, transparent 100%),
        radial-gradient(1px 1px at 78% 35%, rgba(255,255,255,.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 90% 18%, rgba(255,255,255,.5) 0%, transparent 100%),
        radial-gradient(1px 1px at 18% 52%, rgba(255,255,255,.5) 0%, transparent 100%),
        radial-gradient(1px 1px at 55% 68%, rgba(255,255,255,.6) 0%, transparent 100%),
        radial-gradient(1px 1px at 82% 58%, rgba(255,255,255,.4) 0%, transparent 100%),
        radial-gradient(1.5px 1.5px at 35% 82%, rgba(0,50,71,.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 72% 88%, rgba(255,255,255,.5) 0%, transparent 100%);
    }

    .v-mars { background: linear-gradient(160deg, #003247 0%, #003247 35%, #003247 65%, #003247 100%); }
    .v-sun  { background: radial-gradient(ellipse at 55% 55%, #00AE9D 0%, #058F82 30%, #003247 60%, #003247 100%); }
    .v-earth { background: linear-gradient(135deg, #003247 0%, #003247 30%, #003247 60%, #003247 100%); }
    .v-dark  { background: radial-gradient(ellipse at 40% 40%, #003247 0%, #003247 50%, #003247 100%); }

    /* Card images: local copies of images from incubed.esa.int, under a
       translucent blue overlay */
    .img-saturnalia,
    .img-forum,
    .img-ai-training,
    .img-geosat,
    .img-spain-initiatives,
    .img-hyperscout,
    .img-eo4biodiversity,
    .img-saferplaces,
    .img-roccs,
    .img-aistar,
    .img-tr-axipiter,
    .img-tr-gisky,
    .img-tr-warsaw,
    .img-tr-terrabotics {
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      background-color: #FFFFFF;
    }

    .img-saturnalia {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/saturnalia.png');
    }
    .img-forum {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/forum.jpg');
    }
    .img-ai-training {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/ai-training.jpg');
    }
    .img-geosat {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/geosat.jpg');
    }
    .img-spain-initiatives {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/spain-initiatives.jpg');
    }
    .img-hyperscout {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/hyperscout.jpg');
    }
    .img-eo4biodiversity {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/eo4biodiversity.jpg');
    }
    .img-saferplaces {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/saferplaces.jpg');
    }
    .img-roccs {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/roccs.jpg');
    }
    .img-aistar {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/aistar.jpg');
    }
    .img-tr-axipiter {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/tr-axipiter.jpg');
    }
    .img-tr-gisky {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/tr-gisky.jpg');
    }
    .img-tr-warsaw {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/tr-warsaw.jpg');
    }
    .img-tr-terrabotics {
      background-image: linear-gradient(to top, rgba(0,50,71,.28), rgba(0,50,71,.28)), url('img/cards/tr-terrabotics.jpg');
    }

    .img-saturnalia,
    .img-forum,
    .img-ai-training,
    .img-geosat,
    .img-spain-initiatives,
    .img-hyperscout,
    .img-eo4biodiversity,
    .img-saferplaces,
    .img-roccs,
    .img-aistar,
    .img-tr-axipiter,
    .img-tr-gisky,
    .img-tr-warsaw,
    .img-tr-terrabotics {
      animation: fx-breath 16s ease-in-out infinite;
      will-change: background-position;
    }

    .hc-thumb[class*="img-"]::before,
    .hc-thumb[class*="img-"]::after {
      display: none;
    }

    .sp-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.42) 45%, rgba(0,0,0,.12) 72%, rgba(0,0,0,.06) 100%);
    }

    .sp-pill {
      position: absolute; top: 16px; left: 16px; z-index: 2;
      display: flex; align-items: center; gap: 8px;
    }
    .sp-type {
      font-family: 'NotesEsa', sans-serif;
      font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
      color: var(--pure); background: rgba(0,0,0,.45); padding: 6px 10px;
      border-radius: 3px;
    }
    .sp-category {
      font-family: 'NotesEsa', sans-serif;
      font-size: 8px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
      padding: 3px 10px;
    }
    .sp-card .sp-category { display: none; }
    .cat-sci   { background: #00AE9D; color: #FFFFFF; }
    .cat-app   { background: #003247; color: #FAFAFA; }
    .cat-safe  { background: #003247; color: #FAFAFA; }
    .cat-en    { background: #003247; color: #FFFFFF; }
    .cat-ag    { background: #F5362E; color: #FAFAFA; }

    .sp-body {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 2;
      padding: 20px 20px 24px;
      background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.10) 100%);
    }
    .sp-card.large .sp-body { padding: 20px 20px 24px; }

    .sp-excerpt { display: none; }

    .sp-foot { display: flex; align-items: center; gap: 10px; }
    .sp-meta {
      font-family: 'NotesEsa', sans-serif;
      font-size: 12px; color: var(--pure); letter-spacing: .5px;
      background: rgba(0, 50, 71, .82);
      border: 1px solid rgba(255,255,255,.12);
      padding: 10px 12px;
      border-radius: 4px;
    }
    .sp-arrow {
      min-width: 52px; height: 42px; display: flex; align-items: center; justify-content: center;
      border: 1px solid rgba(255,255,255,.12); color: var(--pure);
      background: rgba(0, 50, 71, .82);
      font-size: 18px; transition: all .2s;
      border-radius: 4px;
    }
    .sp-card:hover .sp-arrow { background: var(--fire); border-color: var(--fire); color: var(--pure); }

    /* ============================================
       INTERSTITIAL - FULL-BLEED VIDEO PROMO
       ============================================ */
    .interstitial {
      position: relative; height: 500px; overflow: hidden;
      display: flex; align-items: center;
    }

    .inter-bg {
      position: absolute; inset: 0;
      background: linear-gradient(135deg, #003247 0%, #003247 30%, #003247 60%, #003247 100%);
    }
    /* Glow rising from the bottom edge */
    .inter-bg::before {
      content: ''; position: absolute; inset: 0;
      background:
        radial-gradient(ellipse 30% 80% at 62% 100%, rgba(0,174,157,.35) 0%, rgba(0,50,71,.18) 30%, transparent 60%),
        radial-gradient(ellipse 15% 40% at 62% 100%, rgba(0,174,157,.45) 0%, transparent 40%);
    }
    /* Stars */
    .inter-bg::after {
      content: ''; position: absolute; inset: 0;
      background-image:
        radial-gradient(1px 1px at 5%  8%,  rgba(255,255,255,.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 18% 22%, rgba(255,255,255,.5) 0%, transparent 100%),
        radial-gradient(1px 1px at 35% 6%,  rgba(255,255,255,.8) 0%, transparent 100%),
        radial-gradient(1px 1px at 52% 18%, rgba(255,255,255,.4) 0%, transparent 100%),
        radial-gradient(1px 1px at 68% 8%,  rgba(255,255,255,.6) 0%, transparent 100%),
        radial-gradient(1px 1px at 82% 28%, rgba(255,255,255,.5) 0%, transparent 100%),
        radial-gradient(1px 1px at 92% 12%, rgba(255,255,255,.7) 0%, transparent 100%),
        radial-gradient(1px 1px at 12% 45%, rgba(255,255,255,.4) 0%, transparent 100%),
        radial-gradient(1px 1px at 48% 52%, rgba(255,255,255,.5) 0%, transparent 100%),
        radial-gradient(1px 1px at 75% 48%, rgba(255,255,255,.4) 0%, transparent 100%);
    }
    .inter-overlay {
      position: absolute; inset: 0;
      background:
        linear-gradient(to right, rgba(0,50,71,.95) 0%, rgba(0,50,71,.7) 45%, rgba(0,50,71,.15) 100%);
    }
    .inter-content {
      position: relative; z-index: 2; padding: 0 80px 0 240px;
      max-width: 640px;
    }
    .inter-tag {
      display: inline-block; margin-bottom: 20px;
      background: #003247; color: var(--pure);
      padding: 4px 12px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 8px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
    }
    .inter-overline {
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; letter-spacing: 4px; text-transform: uppercase; color: var(--ash);
      margin-bottom: 10px;
    }
    .inter-title {
      font-family: 'NotesEsa', sans-serif;
      font-size: clamp(32px, 4vw, 56px); line-height: 1.05; color: var(--pure);
      margin-bottom: 20px;
    }
    .inter-meta {
      font-family: 'NotesEsa', sans-serif;
      font-size: 10px; color: var(--ash); letter-spacing: 1.5px; margin-bottom: 32px;
    }
    .btn-play {
      display: inline-flex; align-items: center; gap: 14px;
      padding: 14px 32px;
      background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15);
      color: var(--pure); cursor: pointer;
      font-family: 'NotesEsa', sans-serif;
      font-size: 10px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase;
      backdrop-filter: blur(8px);
      transition: background .25s, border-color .25s;
    }
    .btn-play:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); }
    .play-icon {
      width: 28px; height: 28px; border-radius: 50%;
      background: var(--fire); display: flex; align-items: center; justify-content: center;
      font-size: 10px;
    }

    /* ============================================
       TRENDING - NUMBERED ROW
       ============================================ */
    .trending {
      position: relative;
      padding: 100px 80px;
      background: linear-gradient(180deg, #F9FBFD 0%, #F3F7FA 100%);
      border-top: 1px solid rgba(0,50,71,.12);
      border-bottom: 1px solid rgba(0,50,71,.10);
      color: #003247;
    }

    .trending .sec-title {
      color: #003247;
    }

    .trending .sec-title em {
      color: #00AE9D;
    }

    .tr-grid {
      display: flex;
      gap: 14px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      padding-bottom: 6px;
      -webkit-overflow-scrolling: touch;
    }
    .tr-grid::-webkit-scrollbar { display: none; }
    .tr-card {
      flex: 0 0 420px;
      min-height: 320px;
      position: relative;
      scroll-snap-align: start;
    }

    .tr-pill {
      position: absolute; top: 14px; left: 14px; z-index: 3;
      font-family: 'NotesEsa', sans-serif;
      font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
      color: var(--pure); background: rgba(0,0,0,.45); padding: 6px 10px; border-radius: 3px;
    }
    .tr-thumb {
      position: absolute; inset: 0; overflow: hidden;
      aspect-ratio: auto;
    }
    .tr-thumb-inner {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      transition: transform .5s;
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat;
    }
    .tr-card:hover .tr-thumb-inner { transform: scale(1.015); }
    .tr-thumb-ov {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.42) 45%, rgba(0,0,0,.12) 72%, rgba(0,0,0,.06) 100%);
    }
    .tr-body {
      position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
      padding: 20px 20px 24px;
      background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.1) 100%);
    }
    .tr-foot { display: flex; align-items: center; gap: 10px; }
    .tr-meta {
      font-family: 'NotesEsa', sans-serif;
      font-size: 11px; color: var(--pure); letter-spacing: .5px;
      background: rgba(0, 50, 71, .82);
      border: 1px solid rgba(255,255,255,.12);
      padding: 10px 12px;
      border-radius: 4px;
    }
    .tr-arrow {
      min-width: 52px; height: 42px; display: flex; align-items: center; justify-content: center;
      border: 1px solid rgba(255,255,255,.12); color: var(--pure);
      background: rgba(0, 50, 71, .82);
      font-size: 18px; border-radius: 4px;
    }

    /* ============================================
       FEATURED VIDEOS
       ============================================ */
    .videos { padding: 100px 80px; background: var(--void); }

    .vid-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }

    .vid-card {
      position: relative;
    }
    .vid-thumb {
      position: relative; overflow: hidden; aspect-ratio: 16/9;
    }
    .vid-thumb-inner {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      transition: transform .5s;
    }
    .vid-card:hover .vid-thumb-inner { transform: scale(1.015); }
    .vid-play-btn {
      position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
      width: 44px; height: 44px; border-radius: 50%;
      background: rgba(0,174,157,.9); display: flex; align-items: center; justify-content: center;
      font-size: 14px; color: var(--pure); z-index: 2;
      transition: background .2s, transform .2s;
    }
    .vid-card:hover .vid-play-btn { background: var(--fire); transform: translate(-50%,-50%) scale(1.03); }
    .vid-dur {
      position: absolute; bottom: 8px; right: 8px; z-index: 2;
      background: rgba(0,50,71,.8);
      font-family: 'NotesEsa', sans-serif; font-size: 9px; color: var(--silver);
      padding: 2px 6px;
    }
    .vid-body { padding: 20px 20px 24px; }
    .vid-cat { margin-bottom: 8px; }
    .vid-title {
      transition: color .2s;
    }
    .vid-meta {
      font-family: 'NotesEsa', sans-serif;
      font-size: 8px; color: var(--ash); letter-spacing: 1px; margin-bottom: 12px;
    }
    .vid-cta {
      display: flex; align-items: center; gap: 6px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
      color: var(--fire); transition: gap .2s;
    }
    .vid-card:hover .vid-cta { gap: 10px; }

    /* ============================================
       RECOMMENDED - HORIZONTAL SCROLL
       ============================================ */
    .recommended { padding: 100px 0 100px 80px; background: var(--deep); overflow: hidden; }
    .recommended .sec-head { padding-right: 80px; }

    .rec-scroll {
      display: flex; gap: 8px; padding-right: 80px;
      overflow-x: auto; scroll-snap-type: x mandatory;
      scrollbar-width: none;
    }
    .rec-scroll::-webkit-scrollbar { display: none; }

    .rec-card {
      flex-shrink: 0; width: 340px; scroll-snap-align: start;
    }

    .rec-thumb {
      position: relative; overflow: hidden;
      aspect-ratio: 4/3;
    }
    .rec-thumb-inner {
      position: absolute;
      inset: 0;
      transition: transform .5s;
      background-size: cover;
      background-position: center center;
      background-repeat: no-repeat;
    }
    .rec-card:hover .rec-thumb-inner { transform: scale(1.02); }
    .rec-badge {
      position: absolute; top: 10px; left: 10px; z-index: 2;
      font-family: 'NotesEsa', sans-serif;
      font-size: 8px; letter-spacing: 2px; text-transform: uppercase; color: var(--ash);
      background: rgba(0,50,71,.7); padding: 3px 8px;
    }
    .rec-body { padding: 20px 20px 24px; }
    :is(.sp-title, .tr-title, .vid-title, .rec-title) {
      font-family: 'NotesEsa', sans-serif;
      font-size: 17px; line-height: 1.3; color: var(--pure); margin-bottom: 10px;
      transition: color .2s;
    }
    .sp-card:hover .sp-title,
    .tr-card:hover .tr-title,
    .vid-card:hover .vid-title,
    .rec-card:hover .rec-title { color: var(--fire); }
    .rec-desc {
      font-family: 'NotesEsa', sans-serif;
      font-size: 12px; color: var(--ash); line-height: 1.6; margin-bottom: 16px;
    }
    .rec-cta {
      display: flex; align-items: center; gap: 6px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase;
      color: var(--fire); transition: gap .2s;
    }
    .rec-card:hover .rec-cta { gap: 10px; }

    .sp-card[role="link"],
    .tr-card[role="link"],
    .vid-card[role="link"],
    .rec-card[role="link"] {
      outline: none;
    }

    .sp-card[role="link"]:focus-visible,
    .tr-card[role="link"]:focus-visible,
    .vid-card[role="link"]:focus-visible,
    .rec-card[role="link"]:focus-visible {
      box-shadow: inset 0 0 0 2px var(--fire);
    }

    .fx-card {
      position: relative;
      transform-style: preserve-3d;
      will-change: transform;
      transform:
        perspective(1000px)
        rotateX(var(--fx-rx, 0deg))
        rotateY(var(--fx-ry, 0deg))
        translateY(var(--fx-ty, 0px));
      box-shadow: 0 18px 40px rgba(0,0,0,.22);
    }

    .fx-card::after {
      content: '';
      position: absolute;
      inset: -30%;
      pointer-events: none;
      background: linear-gradient(115deg, transparent 38%, rgba(255,255,255,.16) 50%, transparent 62%);
      transform: translateX(-140%) rotate(8deg);
      opacity: var(--fx-shine, 0);
      transition: opacity .2s ease;
    }

    .fx-card:hover::after {
      opacity: 1;
      animation: fx-sheen 1.4s ease;
    }

    /* ============================================
       FOOTER
       ============================================ */
    footer { background: var(--void); border-top: 1px solid var(--rule); }

    .footer-nav {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 0;
      border-top: 1px solid #00AE9D;
      border-bottom: 1px solid #00AE9D;
    }
    .fn-col {
      padding: 52px 48px;
      border-right: 1px solid #00AE9D;
    }
    .fn-col:last-child { border-right: none; }
    .fn-head {
      font-family: 'NotesEsa', sans-serif;
      font-size: 13px; font-weight: 700; color: var(--pure); margin-bottom: 22px;
    }
    .fn-links { list-style: none; }
    .fn-links li { margin-bottom: 10px; }
    .fn-links a {
      font-family: 'NotesEsa', sans-serif;
      font-size: 13px; color: var(--ash); transition: color .2s;
      display: flex; align-items: center; gap: 8px;
    }
    .fn-links a::before { content: '-'; font-size: 10px; color: var(--fog); transition: color .2s; }
    .fn-links a:hover { color: var(--fire); }
    .fn-links a:hover::before { color: var(--fire); }

    .footer-bottom {
      padding: 24px 80px;
      display: flex; align-items: center; gap: 24px;
    }
    .fb-logo {
      display: flex; align-items: center; gap: 10px; margin-right: auto;
    }
    .fb-esa {
      font-family: 'NotesEsa', sans-serif;
      font-size: 14px; font-weight: 800; letter-spacing: 4px; color: var(--pure);
    }
    .fb-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--fire); }
    .footer-bottom p {
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; color: var(--fog); letter-spacing: 1px;
    }
    .fb-links { display: flex; gap: 0; }
    .fb-links a {
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px; color: var(--fog); padding: 0 14px;
      border-right: 1px solid var(--rule); transition: color .2s;
    }
    .fb-links a:last-child { border-right: none; }
    .fb-links a:hover { color: var(--fire); }

    /* ============================================
       ANIMATIONS
       ============================================ */
    .reveal {
      opacity: 0; transform: translateY(32px);
      transition: opacity .8s ease, transform .8s ease;
    }
    .reveal.in { opacity: 1; transform: translateY(0); }

    /* ============================================
       MOBILE NAVIGATION DRAWER
       ============================================ */
    body.menu-open {
      overflow: hidden;
    }

    .menu-scrim {
      position: fixed;
      inset: 64px 0 0 0;
      background: rgba(0, 9, 14, .55);
      opacity: 0;
      pointer-events: none;
      transition: opacity .22s ease;
      z-index: 99997;
    }

    .menu-scrim.open {
      opacity: 1;
      pointer-events: auto;
    }

    .mobile-nav  {
      position: fixed;
      top: 64px;
      left: 16px;
      width: min(460px, calc(100vw - 32px));
      max-height: calc(100vh - 84px);
      background: linear-gradient(180deg, rgba(0,50,71,.98), rgba(0,36,52,.98));
      border: 1px solid rgba(0,174,157,.34);
      z-index: 99998;
      display: flex;
      flex-direction: column;
      opacity: 0;
      transform: translateY(-10px) scale(.985);
      pointer-events: none;
      transition: opacity .22s ease, transform .22s ease;
      overflow: hidden;
    }

    .mobile-nav.open {
      opacity: 1;
      transform: translateY(0) scale(1);
      pointer-events: auto;
    }

    .mobile-nav-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 14px;
      border-bottom: 1px solid rgba(0,174,157,.26);
      background: rgba(0, 50, 71, .52);
    }

    .mobile-nav-head p {
      font-size: 10px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: #ffffff;
    }

    .mobile-nav-close {
      min-height: 30px;
      padding: 0 12px;
      border: 1px solid rgba(0,174,157,.45);
      background: transparent;
      color: #ffffff;
      font-family: 'NotesEsa', sans-serif;
      font-size: 9px;
      letter-spacing: 2px;
      text-transform: uppercase;
      cursor: pointer;
      transition: border-color .2s, color .2s, background .2s;
    }

    .mobile-nav-close:hover {
      border-color: #00AE9D;
      color: #00AE9D;
      background: rgba(0,174,157,.08);
    }

    .mobile-nav-list {
      overflow: auto;
      padding: 6px 0;
    }

    .mobile-nav a {
      display: block;
      padding: 15px 18px;
      font-family: 'NotesEsa', sans-serif;
      font-size: 10px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--ash);
      border-bottom: 1px solid var(--rule);
      transition: color .2s, padding-left .2s, background .2s;
    }

    .mobile-nav a:last-child { border-bottom: none; }

    .mobile-nav a:hover,
    .mobile-nav a.on {
      color: var(--fire);
      padding-left: 24px;
      background: rgba(0,174,157,.06);
    }

    .mobile-nav-foot {
      border-top: 1px solid rgba(0,174,157,.26);
      padding: 10px 14px 12px;
      background: rgba(0,50,71,.45);
    }

    .mobile-nav-foot a {
      display: inline-flex;
      padding: 0;
      border: 0;
      color: rgba(255,255,255,.86);
      font-size: 9px;
      letter-spacing: 2px;
      text-transform: uppercase;
    }

    .mobile-nav-foot a:hover {
      color: #00AE9D;
      padding-left: 0;
      background: transparent;
    }

    /* Touch-only devices: default cursor on the home page */
    @media (any-hover: none) and (any-pointer: coarse) {
      .home-page { cursor: auto; }
    }

    /* ============================================
       TABLET (max-width: 1024px)
       ============================================ */
    @media (max-width: 1024px) {
      .hero-vline      { left: 60px; }
      .inter-content   { padding: 0 40px 0 80px; }
      .spotlight       { padding: 80px 40px; }
      .dashboard-esa-section { padding: 56px 40px; }
      .dashboard-offer-item img { width: 88px; height: 88px; }
      .trending,
      .videos          { padding: 80px 40px; }
      .recommended     { padding: 80px 0 80px 40px; }
    .recommended .sec-head { padding-right: 40px; }
    .activities-preview { padding: 80px 40px; }
    .activities-preview .sec-head { padding-right: 0; }
    .activities-preview-scroll { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .news-board      { grid-template-columns: 1fr; }
      .tr-grid         { gap: 12px; }
      .vid-grid        { grid-template-columns: repeat(2, 1fr); }
      .footer-nav      { grid-template-columns: repeat(2, 1fr); }
      .footer-bottom   { padding: 24px 40px; }
      .hs              { min-height: 116px; padding: 22px 18px; gap: 10px; }
      .hs-n            { font-size: 42px; }
    }

    /* ============================================
       MOBILE (max-width: 768px)
       ============================================ */
    @media (max-width: 768px) {

      /* Header */
      .esa-header { padding: 0 16px; }
      .esa-header__toggle { cursor: pointer; }

      .h-search-panel {
        top: 56px;
        padding: 10px 12px 14px;
      }
      .h-search-form {
        height: 50px;
      }
      .h-search-input {
        font-size: 11px;
      }
      .h-search-close {
        cursor: pointer;
      }
      .h-search-links {
        grid-template-columns: 1fr;
        gap: 6px;
      }

      /* Mobile nav drawer */
      .menu-scrim {
        inset: 56px 0 0 0;
      }
      .mobile-nav {
        top: 56px;
        left: 10px;
        width: calc(100vw - 20px);
        max-height: calc(100vh - 66px);
      }
      .mobile-nav a {
        padding: 15px 16px;
      }
      .mobile-nav a:hover,
      .mobile-nav a.on {
        padding-left: 22px;
      }

      /* Hero */
      .hero            { padding-top: 56px; min-height: 100svh; }
      .hero-vline      { display: none; }
      .hero-light      {
        background:
          radial-gradient(ellipse 100% 40% at 50% 5%,  rgba(0,174,157,.09) 0%, transparent 60%),
          radial-gradient(ellipse 80%  50% at 50% 95%, rgba(0,50,71,.20)  0%, transparent 60%);
      }
      .btn-fire,
      .btn-outline     { width: 100%; justify-content: center; padding: 14px 20px; font-size: 9px; letter-spacing: 3px; }

      /* Stats: 2 x 2 grid */
      .hero-stats      { grid-template-columns: repeat(2, 1fr); }
      .hs              { min-height: 108px; padding: 20px 14px; gap: 9px; }
      .hs:nth-child(2) { border-right: none; }
      .hs:nth-child(3) { border-top: 1px solid #00AE9D; }
      .hs:nth-child(4) { border-top: 1px solid #00AE9D; border-right: none; }
      .hs-n            { font-size: 38px; }
      .hs-n sup        { font-size: 16px; }
      .hs-l            { max-width: 110px; font-size: 7px; line-height: 1.5; }

      /* Ticker */
      .ticker-item     { font-size: 8px; padding: 0 18px; letter-spacing: 2px; }

      /* Section heads */
      .sec-head        { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 28px; }
      .sec-title       { font-size: clamp(26px, 8vw, 40px); }
      .sec-tabs        { flex-wrap: wrap; }
      .sec-tab         { font-size: 8px; padding: 8px 12px; }

      /* Spotlight, dashboard and news board */
      .spotlight       { padding: 56px 16px; }
      .dashboard-esa-section { padding: 44px 16px; }
      .dashboard-offer-grid-top,
      .dashboard-offer-grid-bottom {
        grid-template-columns: 1fr;
        max-width: none;
      }
      .dashboard-offer-item img { width: 82px; height: 82px; }
      .dashboard-offer-item h3 { font-size: 13px; max-width: 360px; }
      .news-board      { grid-template-columns: 1fr; gap: 12px; }
      .news-col-title  { font-size: 20px; padding: 14px; }
      .news-item       { grid-template-columns: 62px 1fr; gap: 10px; padding: 10px 12px; }
      .news-thumb      { width: 62px; height: 62px; }
      .news-item-title { font-size: 16px; margin-bottom: 4px; }
      .news-item-meta  { font-size: 9px; }

      /* Interstitial */
      .interstitial    { height: auto; padding: 64px 0; }
      .inter-bg::before {
        background:
          radial-gradient(ellipse 60% 80% at 50% 110%, rgba(0,174,157,.34) 0%, rgba(0,174,157,.12) 35%, transparent 60%),
          radial-gradient(ellipse 30% 40% at 50% 110%, rgba(0,50,71,.28) 0%, transparent 40%);
      }
      .inter-overlay   {
        background: linear-gradient(to bottom,
          rgba(0,50,71,.65) 0%, rgba(0,50,71,.82) 55%, rgba(0,50,71,.97) 100%);
      }
      .inter-content   { padding: 0 20px; max-width: 100%; }
      .inter-title     { font-size: clamp(24px, 8vw, 40px); }
      .btn-play        { font-size: 9px; padding: 12px 20px; letter-spacing: 2px; }

      /* Trending */
      .trending        { padding: 56px 16px; }
      .tr-grid         { gap: 10px; }
      .tr-card         { flex-basis: 82vw; min-height: 250px; }

      /* Videos */
      .videos          { padding: 56px 16px; }
      .vid-grid        { grid-template-columns: 1fr; }

      /* Recommended and activities preview */
      .recommended     { padding: 56px 0 56px 16px; }
      .recommended .sec-head { padding-right: 16px; }
      .activities-preview { padding: 56px 16px; }
      .activities-preview .sec-head { padding-right: 0; }
      .activities-preview-scroll { grid-template-columns: 1fr; }
      .rec-card        { width: 240px; }
      .activities-preview .rec-card { width: auto; }

      /* Footer */
      .footer-nav      { grid-template-columns: 1fr 1fr; }
      .fn-col          { padding: 28px 20px; border-right: none; border-bottom: 1px solid #00AE9D; }
      .fn-col:nth-child(odd)  { border-right: 1px solid #00AE9D; }
      .fn-col:last-child,
      .fn-col:nth-last-child(2):nth-child(odd) { border-bottom: none; }
      .footer-bottom   { flex-direction: column; align-items: flex-start; padding: 20px 20px; gap: 12px; }
      .fb-logo         { margin-right: 0; }
      .fb-links a      { padding: 0 10px 0 0; border-right: none; }
    }

    @media (min-width: 640px) and (max-width: 768px) {
      .menu-scrim {
        inset: 64px 0 0 0;
      }
      .mobile-nav {
        top: 64px;
        max-height: calc(100vh - 74px);
      }
      .hero {
        padding-top: 64px;
      }
    }

    /* ============================================
       SMALL MOBILE (max-width: 390px)
       ============================================ */
    @media (max-width: 390px) {
      .tr-card         { flex-basis: 88vw; }
      .footer-nav      { grid-template-columns: 1fr; }
      .fn-col          { border-right: none !important; border-bottom: 1px solid #00AE9D; }
      .fn-col:last-child { border-bottom: none; }
    }



/* ============================================
   INTERNAL PAGES
   ============================================ */
.page-shell {
  min-height: 100vh;
  padding-top: 88px;
  background: var(--void);
  cursor: auto;
}

.page-shell * {
  cursor: auto;
}

.page-content {
  max-width: 1240px;
  margin: 0 auto;
  padding: 48px 20px 84px;
}

.page-crumb {
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ash);
  margin-bottom: 18px;
}

.page-title {
  font-family: 'NotesEsa', sans-serif;
  font-size: clamp(36px, 5vw, 62px);
  line-height: 1.04;
  letter-spacing: -1px;
  color: var(--pure);
  margin-bottom: 16px;
}

.page-meta {
  font-family: 'NotesEsa', sans-serif;
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--fire);
  margin-bottom: 26px;
}

.page-lead {
  max-width: 900px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 18px;
  line-height: 1.7;
  color: var(--silver);
  margin-bottom: 32px;
}

.page-copy {
  max-width: 900px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 16px;
  line-height: 1.8;
  color: var(--moon);
}

.page-copy p { margin-bottom: 18px; }

.page-hero-image {
  display: block;
  width: 100%;
  height: auto;
  margin: 16px 0 28px;
  border: 1px solid rgba(0,50,71,.2);
}

.page-lead-accent {
  color: var(--fire);
}

.page-subtitle {
  font-family: 'NotesEsa', sans-serif;
  font-size: 26px;
  line-height: 1.3;
  color: var(--pure);
  margin: 4px 0 16px;
}

.page-illustration {
  margin: 24px 0 34px;
}

.page-illustration img {
  max-width: 460px;
  width: 100%;
  height: auto;
}

.page-segments {
  display: grid;
  gap: 24px;
}

.page-segment {
  border: 1px solid rgba(0,50,71,.2);
  background: #003247;
  padding: 22px;
}

.page-segment-head h3 {
  font-family: 'NotesEsa', sans-serif;
  font-size: 30px;
  line-height: 1.15;
  color: var(--pure);
  margin-bottom: 8px;
}

.page-segment-head p {
  font-family: 'NotesEsa', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--silver);
  margin-bottom: 16px;
}

.page-card-icon {
  text-align: center;
  min-height: 230px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: transform .18s ease, border-color .18s ease;
}

.page-card-icon img {
  width: 92px;
  height: 92px;
  object-fit: contain;
  margin: 0 auto 12px;
}

.page-card-icon:hover {
  transform: translateY(-2px);
  border-color: var(--fire);
}

.page-list {
  margin: 20px 0 10px;
  padding-left: 20px;
  color: var(--moon);
}

.page-list li {
  margin-bottom: 8px;
  line-height: 1.7;
}

.page-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.page-card {
  border: 1px solid var(--rule);
  background: rgba(0, 50, 71, .72);
  padding: 20px;
}

.page-card h3 {
  font-family: 'NotesEsa', sans-serif;
  font-size: 24px;
  line-height: 1.2;
  color: var(--pure);
  margin-bottom: 10px;
}

.page-card p {
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--silver);
  margin-bottom: 12px;
}

.page-card a {
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--fire);
}

.page-copy img,
.page-card img {
  display: block;
  width: 100%;
  height: auto;
}

.page-nav {
  margin-top: 44px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.page-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid var(--fog);
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--silver);
}

.page-btn:hover {
  border-color: var(--fire);
  color: var(--fire);
}

/* What we look for: light layout variant */
.page-shell--wwlf {
  background: #efefef;
  color: #003247;
}

.page-shell--wwlf .page-content--wwlf {
  max-width: 1120px;
  padding-top: 38px;
}

.page-shell--wwlf .page-crumb,
.page-shell--wwlf .page-meta {
  color: #003247;
  opacity: .76;
}

.page-shell--wwlf .page-title {
  color: #003247;
  margin-bottom: 8px;
}

.page-shell--wwlf .wwlf-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: center;
  gap: 26px;
  margin-top: 10px;
}

.page-shell--wwlf .page-lead {
  max-width: none;
  margin-bottom: 16px;
  font-size: 19px;
  line-height: 1.68;
}

.page-shell--wwlf .page-lead-accent {
  color: #00ae9d;
}

.page-shell--wwlf .page-subtitle {
  font-size: 30px;
  color: #003247;
  margin-bottom: 10px;
}

.page-shell--wwlf .page-copy,
.page-shell--wwlf .page-copy p,
.page-shell--wwlf .page-list,
.page-shell--wwlf .page-list li {
  color: #003247;
  font-size: 18px;
  line-height: 1.72;
}

.page-shell--wwlf .wwlf-intro-visual img {
  width: 100%;
  max-width: 320px;
  height: auto;
  margin-left: auto;
}

.page-shell--wwlf .wwlf-divider {
  border: 0;
  border-top: 1px solid rgba(0,50,71,.16);
  margin: 28px 0;
}

.page-shell--wwlf .wwlf-segment {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  align-items: center;
  gap: 22px;
}

.page-shell--wwlf .wwlf-segment.is-reverse {
  grid-template-columns: minmax(0, 1fr) 280px;
}

.page-shell--wwlf .wwlf-segment.is-reverse .wwlf-segment-text {
  order: 2;
  text-align: right;
}

.page-shell--wwlf .wwlf-segment.is-reverse .wwlf-icons {
  order: 1;
  justify-content: start;
}

.page-shell--wwlf .wwlf-segment-text h3 {
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 34px;
  line-height: 1.04;
  margin-bottom: 8px;
}

.page-shell--wwlf .wwlf-segment-text p {
  color: #003247;
  font-size: 18px;
  line-height: var(--lh-body);
}

.page-shell--wwlf .wwlf-icons {
  display: grid;
  grid-template-columns: repeat(2, minmax(140px, 1fr));
  gap: 20px;
  justify-content: end;
}

.page-shell--wwlf .wwlf-icon-card {
  text-align: center;
  min-height: 158px;
}

.page-shell--wwlf .wwlf-icon-card img {
  width: 92px;
  height: 92px;
  object-fit: contain;
  margin: 0 auto 12px;
}

.page-shell--wwlf .wwlf-icon-card h4 {
  color: #00ae9d;
  font-family: 'NotesEsa', sans-serif;
  font-size: 16px;
  line-height: 1.45;
}

.page-shell--wwlf .page-nav {
  margin-top: 22px;
}

.page-shell--wwlf .page-btn {
  border-color: rgba(0,50,71,.36);
  color: #003247;
}

.page-shell--wwlf .page-btn:hover {
  border-color: #00ae9d;
  color: #00ae9d;
}

/* How to apply: light layout variant */
.page-shell--hta {
  background: #efefef;
  color: #003247;
}

.page-shell--hta .page-content--hta {
  max-width: 1120px;
  padding-top: 38px;
}

.page-shell--hta .page-crumb,
.page-shell--hta .page-meta {
  color: #003247;
  opacity: .76;
}

.page-shell--hta .page-title,
.page-shell--hta .page-subtitle {
  color: #003247;
}

.page-shell--hta .page-lead {
  color: #003247;
  font-size: 14px;
  line-height: 1.62;
  margin-bottom: 16px;
  max-width: 1000px;
}

.page-shell--hta .page-lead-accent {
  color: #00ae9d;
}

.page-shell--hta .hta-intro {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: 0;
  margin-top: 8px;
}

.page-shell--hta .page-copy,
.page-shell--hta .page-copy p,
.page-shell--hta .page-copy a {
  color: #003247;
  font-size: 14px;
  line-height: 1.66;
}

.page-shell--hta .page-copy a {
  text-decoration: underline;
  text-decoration-color: rgba(0,50,71,.4);
}

.hta-figure {
  margin: 18px 0 18px;
}

.hta-figure img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid rgba(0,50,71,.16);
}

.hta-figure--process img {
  max-width: 780px;
  margin: 0 auto;
}

.hta-green { color: #00a295; }
.hta-blue { color: #0097d7; }
.hta-red { color: #e40521; }

.hta-flow {
  margin-top: 14px;
  display: grid;
  gap: 14px;
}

.hta-steps-wrap {
  margin-top: 6px;
}

.hta-steps-head {
  max-width: 880px;
}

.hta-steps-lead {
  color: #003247;
  font-size: 14px;
  line-height: 1.55;
  opacity: .85;
  margin-top: 6px;
}

.hta-row {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  border: 1px solid rgba(0,50,71,.2);
  background: rgba(255,255,255,.55);
  padding: 14px 16px;
}

.hta-row-num {
  color: #00ae9d;
  font-family: 'NotesEsa', sans-serif;
  font-size: 44px;
  line-height: .9;
  letter-spacing: 1px;
  padding-top: 2px;
  opacity: .9;
}

.hta-row-body h3 {
  font-family: 'NotesEsa', sans-serif;
  color: #003247;
  font-size: 30px;
  line-height: 1.03;
  margin-bottom: 8px;
}

.hta-row-body p {
  color: #003247;
  font-size: 13px;
  line-height: 1.58;
  margin-bottom: 10px;
}

.hta-step-focus {
  font-weight: 700;
  margin-bottom: 8px;
}

.hta-actions {
  margin-top: 18px;
}

.page-shell--hta .page-btn--primary {
  background: #00ae9d;
  border-color: #00ae9d;
  color: #ffffff;
}

.page-shell--hta .page-btn--primary:hover {
  background: #009889;
  border-color: #009889;
  color: #ffffff;
}

.page-shell--hta .page-btn {
  border-color: rgba(0,50,71,.36);
  color: #003247;
}

.page-shell--hta .page-btn:hover {
  border-color: #00ae9d;
  color: #00ae9d;
}

@media (max-width: 860px) {
  .page-grid {
    grid-template-columns: 1fr;
  }

  .page-content {
    padding: 32px 16px 70px;
  }

  .page-title {
    font-size: clamp(30px, 9vw, 46px);
  }

  .page-lead {
    font-size: 16px;
  }

  .page-copy {
    font-size: 15px;
  }

  .page-subtitle {
    font-size: 22px;
  }

  .page-segment-head h3 {
    font-size: 24px;
  }

  .page-segment {
    padding: 16px;
  }

  .page-card-icon {
    min-height: 200px;
  }

  .page-shell--wwlf .wwlf-intro {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .page-shell--wwlf .wwlf-intro-visual img {
    margin: 0 auto;
  }

  .page-shell--wwlf .wwlf-segment,
  .page-shell--wwlf .wwlf-segment.is-reverse {
    grid-template-columns: 1fr;
  }

  .page-shell--wwlf .wwlf-segment.is-reverse .wwlf-segment-text,
  .page-shell--wwlf .wwlf-segment.is-reverse .wwlf-icons {
    order: initial;
    text-align: left;
    justify-content: start;
  }

  .page-shell--wwlf .wwlf-icons {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
    justify-content: start;
  }

  .page-shell--wwlf .wwlf-segment-text h3 {
    font-size: 28px;
  }

  .page-shell--hta .page-content--hta {
    padding-top: 32px;
  }

  .page-shell--hta .page-lead,
  .page-shell--hta .page-copy,
  .page-shell--hta .page-copy p {
    font-size: 13px;
  }

  .hta-steps-lead {
    font-size: 13px;
  }

  .hta-row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 12px;
  }

  .hta-row-num {
    font-size: 34px;
  }

  .hta-row-body h3 {
    font-size: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ============================================
   NEWSX - NEWS INDEX
   ============================================ */
/* Hero with stats and search, topic clusters, a filter board with news
   columns and a closing rail of cards. */
.newsx-page {
  background: #003247;
  color: #FFFFFF;
  padding-bottom: 56px;
}

.newsx-hero {
  position: relative;
  min-height: 460px;
  padding: 118px 20px 34px;
  overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,.14);
}

.newsx-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,50,71,.82) 0%, rgba(0,50,71,.64) 46%, rgba(0,50,71,.58) 100%),
    url('img/cards/saferplaces.jpg') center/cover no-repeat;
  transform: scale(1.03);
}

.newsx-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 22% 28%, rgba(0,174,157,.2), transparent 52%),
    linear-gradient(90deg, rgba(0,0,0,.34), rgba(0,0,0,.08));
}

.newsx-inner {
  position: relative;
  z-index: 2;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  gap: 18px;
}

.newsx-headline h1 {
  font-size: clamp(34px, 5vw, 62px);
  line-height: .95;
  letter-spacing: .4px;
  color: #fff;
  margin-bottom: 8px;
}

.newsx-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #FFFFFF;
  margin-bottom: 8px;
}

.newsx-kicker::before {
  content: '';
  width: 22px;
  height: 1px;
  background: #18d3c7;
}

.newsx-headline p {
  color: #FFFFFF;
  max-width: 620px;
  font-size: 22px;
  line-height: 1.34;
}

.newsx-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 12px;
  max-width: 860px;
}

.newsx-stat {
  padding: 22px 14px;
  border-radius: 6px;
  border: 1px solid rgba(0,50,71,.34);
  background:
    linear-gradient(180deg, rgba(0,50,71,.56), rgba(0,50,71,.55)),
    linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.13) 1px, transparent 1px);
  background-size: auto, 32px 32px, 32px 32px;
  text-align: center;
  backdrop-filter: blur(2px);
}

.newsx-stat strong {
  display: block;
  font-size: clamp(36px, 5vw, 56px);
  line-height: .95;
  color: #fff;
}

.newsx-stat span {
  display: block;
  margin-top: 10px;
  color: #FFFFFF;
  font-size: 15px;
}

.newsx-search-wrap {
  margin-top: 6px;
  display: grid;
  gap: 8px;
  max-width: 820px;
}

.newsx-search-wrap span {
  color: #FFFFFF;
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.newsx-search {
  width: 100%;
  height: 56px;
  border-radius: 4px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.9);
  padding: 0 16px;
  color: #FFFFFF;
  font-family: 'NotesEsa', sans-serif;
  font-size: 16px;
}

.newsx-search:focus {
  outline: none;
  border-color: #00ae9d;
  box-shadow: 0 0 0 3px rgba(0,174,157,.2);
}

.newsx-clusters {
  padding: 24px 0 14px;
  background: transparent;
}

.newsx-cluster-track {
  width: 100%;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(320px, 1fr);
  gap: 8px;
  overflow-x: auto;
  padding: 0 20px 8px;
  scrollbar-width: thin;
}

.newsx-cluster-card {
  position: relative;
  min-height: 230px;
  display: block;
  border: 1px solid rgba(0,50,71,.2);
  border-radius: 2px;
  overflow: hidden;
  background: #003247;
}

.newsx-cluster-visual,
.newsx-thumb,
.newsx-rail-thumb {
  background-size: cover;
  background-position: center;
}

.newsx-cluster-visual {
  position: absolute;
  inset: 0;
  transition: transform .35s ease;
}

.newsx-cluster-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,50,71,.18), rgba(0,50,71,.82));
}

.newsx-cluster-body {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  padding: 14px 16px 16px;
}

.newsx-cluster-k {
  color: #ffffff;
  font-size: 10px;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  opacity: .92;
}

.newsx-cluster-title {
  margin-top: 5px;
  color: #fff;
  font-size: clamp(25px, 2.6vw, 44px);
  line-height: 1;
}

.newsx-cluster-meta {
  margin-top: 11px;
  display: flex;
  gap: 20px;
  color: #FFFFFF;
  font-size: 14px;
}

.newsx-cluster-card:hover .newsx-cluster-visual {
  transform: scale(1.04);
}

.newsx-board {
  max-width: 1240px;
  margin: 12px auto 0;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 18px;
}

.newsx-panel {
  border: 1px solid rgba(0,50,71,.16);
  border-radius: 8px;
  background: #003247;
  overflow: hidden;
  height: max-content;
}

.newsx-panel-head {
  padding: 14px 16px;
  background: #003247;
  color: #FFFFFF;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.newsx-panel-body {
  padding: 16px;
  display: grid;
  gap: 10px;
}

.newsx-chip {
  height: 40px;
  border: 1px solid rgba(0,50,71,.25);
  border-radius: 999px;
  background: #fff;
  color: #FFFFFF;
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  transition: all .18s ease;
}

.newsx-chip:hover,
.newsx-chip.is-on {
  border-color: #00ae9d;
  background: #003247;
  color: #FFFFFF;
}

.newsx-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.newsx-col {
  border: 1px solid rgba(0,50,71,.14);
  background: #003247;
  border-radius: 8px;
  overflow: hidden;
}

.newsx-col-head {
  padding: 13px 16px;
  background: #003247;
  color: #FFFFFF;
  font-size: 14px;
  letter-spacing: .3px;
}

.newsx-list {
  list-style: none;
}

.newsx-item {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 12px;
  padding: 12px 14px;
  border-top: 1px solid rgba(0,50,71,.08);
}

.newsx-thumb {
  height: 52px;
  border-radius: 4px;
  border: 1px solid rgba(0,50,71,.2);
}

.newsx-title {
  display: inline-block;
  color: #FFFFFF;
  font-size: 15px;
  line-height: 1.26;
}

.newsx-title:hover {
  color: #00ae9d;
}

.newsx-meta {
  margin-top: 4px;
  font-size: 12px;
  color: #FFFFFF;
}

.newsx-rail {
  max-width: 1240px;
  margin: 20px auto 0;
  padding: 0 20px;
}

.newsx-rail-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 10px;
}

.newsx-rail-head h2 {
  color: #FFFFFF;
  font-size: 22px;
}

.newsx-rail-head span {
  color: #FFFFFF;
  font-size: 13px;
}

.newsx-rail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.newsx-rail-card {
  border: 1px solid rgba(0,50,71,.14);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  transition: transform .2s ease, box-shadow .2s ease;
}

.newsx-rail-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,50,71,.14);
}

.newsx-rail-thumb {
  height: 136px;
}

.newsx-rail-title {
  color: #FFFFFF;
  font-size: 15px;
  line-height: 1.28;
  padding: 12px 12px 6px;
  min-height: 70px;
}

.newsx-rail-meta {
  color: #FFFFFF;
  font-size: 12px;
  padding: 0 12px 12px;
}

@media (max-width: 1180px) {
  .newsx-stats {
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    max-width: 560px;
  }

  .newsx-board {
    grid-template-columns: 1fr;
  }

  .newsx-columns {
    grid-template-columns: 1fr;
  }

  .newsx-rail-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .newsx-hero {
    padding: 96px 14px 24px;
    min-height: 420px;
  }

  .newsx-headline p {
    font-size: 18px;
  }

  .newsx-stats {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .newsx-stat {
    padding: 16px 10px;
  }

  .newsx-cluster-track,
  .newsx-board,
  .newsx-rail {
    padding-left: 14px;
    padding-right: 14px;
  }

  .newsx-cluster-track {
    grid-auto-columns: minmax(280px, 88vw);
  }

  .newsx-rail-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 520px) {
  .newsx-stats,
  .newsx-rail-grid {
    grid-template-columns: 1fr;
  }

  .newsx-item {
    grid-template-columns: 58px 1fr;
    gap: 10px;
  }

  .newsx-thumb {
    height: 44px;
  }
}
/* ============================================
   ARTICLEX - NEWS ARTICLE VIEW
   ============================================ */
.articlex-page {
  background: linear-gradient(180deg, #003247 0%, #00293a 60%, #003247 100%);
  color: #FFFFFF;
  padding-top: 60px;
}

.articlex-hero {
  position: relative;
  min-height: 460px;
  overflow: hidden;
  border-bottom: 1px solid rgba(0,174,157,.45);
}

.articlex-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
}

.articlex-hero-ov {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(80% 120% at 90% 8%, rgba(0,174,157,.22), rgba(0,174,157,0) 58%),
    linear-gradient(100deg, rgba(0,50,71,.94) 0%, rgba(0,50,71,.78) 48%, rgba(0,50,71,.34) 100%);
}

.articlex-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1220px;
  margin: 0 auto;
  padding: 106px 20px 66px;
}

.articlex-title {
  max-width: 920px;
  color: #ffffff;
  font-size: clamp(36px, 5vw, 80px);
  line-height: .96;
  margin: 10px 0 14px;
}

.articlex-wrap {
  max-width: 1220px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
  padding: 26px 20px 34px;
  min-height: auto;
}

.articlex-side {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(0,174,157,.33);
  border-radius: 0;
  padding: 18px;
  height: max-content;
  position: sticky;
  top: 88px;
}

.articlex-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(255,255,255,.95);
}
.articlex-kicker::before {
  content: '';
  width: 20px;
  height: 1px;
  background: #00ae9d;
}

.articlex-side-head {
  color: #00ae9d;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 11px;
  margin-bottom: 12px;
}

.articlex-links {
  margin-top: 0;
  display: grid;
  gap: 10px;
}

.articlex-links a {
  color: #003247;
  font-size: 13px;
  font-weight: 700;
  border: 1px solid rgba(0,50,71,.16);
  border-radius: 0;
  padding: 9px 12px;
  background: #fff;
  transition: all .2s ease;
}

.articlex-links a:hover {
  border-color: #00ae9d;
  color: #FFFFFF;
  background: #003247;
}

.articlex-side-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(0,174,157,.26);
}

.articlex-side-tags span {
  border: 1px solid rgba(0,174,157,.34);
  border-radius: 0;
  color: #FFFFFF;
  font-size: 11px;
  padding: 4px 9px;
  background: rgba(0,174,157,.12);
}

.articlex-main {
  background: rgba(255,255,255,.98);
  padding: 24px;
  border: 1px solid rgba(0,50,71,.16);
  border-radius: 0;
  box-shadow: 0 20px 44px rgba(0,23,33,.24);
  position: relative;
}

.articlex-main::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 112px;
  height: 3px;
  background: #00ae9d;
}

.articlex-main-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,50,71,.18);
}

.articlex-main-head h2 {
  font-size: clamp(30px, 3.4vw, 44px);
  line-height: .96;
  color: #003247;
  letter-spacing: .01em;
  margin: 0;
}

.articlex-meta {
  margin-top: 0;
  color: rgba(255,255,255,.92);
  font-size: 14px;
}

.articlex-tags {
  margin-top: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.articlex-tags span {
  border: 1px solid rgba(0,174,157,.46);
  color: #FFFFFF;
  background: rgba(0,174,157,.14);
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 11px;
}

.articlex-copy {
  margin-top: 16px;
  max-width: none;
  background: #fff;
  border: 1px solid rgba(0,50,71,.12);
  border-radius: 0;
  padding: 22px 24px;
}

.articlex-copy h4 {
  font-size: 28px;
  color: #003247;
  margin: 24px 0 12px;
}

.articlex-copy p {
  color: #003247;
  font-size: clamp(18px, 1.5vw, 20px);
  line-height: 1.62;
  margin: 12px 0;
}

.articlex-copy p:first-of-type {
  font-size: clamp(20px, 1.8vw, 24px);
  line-height: 1.5;
  color: #002738;
}

.articlex-copy a {
  color: #007f72;
  font-weight: 700;
}

.articlex-points {
  margin-top: 22px;
  background: #fff;
  border: 1px solid rgba(0,50,71,.12);
  border-radius: 0;
  padding: 20px 22px;
}

.articlex-points h3 {
  font-size: clamp(28px, 2.6vw, 38px);
  color: #003247;
  margin-bottom: 14px;
}

.articlex-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.articlex-point {
  display: block;
  border-radius: 0;
  overflow: hidden;
  border: 1px solid rgba(0,174,157,.28);
  background: #003247;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.articlex-point:hover {
  transform: translateY(-3px);
  border-color: rgba(0,174,157,.68);
  box-shadow: 0 12px 26px rgba(0,0,0,.25);
}

.articlex-point-thumb {
  height: 144px;
  background-size: cover;
  background-position: center;
}

.articlex-point-label {
  margin: 0;
  font-size: 14px;
  color: #FFFFFF;
  padding: 12px;
}

/* Page transition: the body fades in when the page is ready and fades out
   before internal navigation (classes set by the script in header.php). */
html.js-page-transition body {
  opacity: 0;
  transition: opacity .22s ease;
}

html.js-page-transition body.page-ready {
  opacity: 1;
}

body.page-fade-out {
  opacity: 0 !important;
}

@media (max-width: 1200px) {
  .articlex-wrap {
    grid-template-columns: 1fr;
  }

  .articlex-side {
    position: static;
    top: auto;
  }

  .articlex-main-head h2 {
    font-size: 34px;
  }

  .articlex-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .articlex-hero {
    min-height: 360px;
  }

  .articlex-hero-inner {
    padding: 88px 14px 36px;
  }

  .articlex-wrap {
    padding: 14px;
    gap: 14px;
  }

  .articlex-main {
    padding: 16px;
  }

  .articlex-copy {
    padding: 16px;
  }

  .articlex-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* News cards: section grids and the .news-grid-item card */
#buildingcapacities-section .news-grid,
#usecases-section .news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 1rem;
  justify-content: center;
}

#news-section .news-grid,
.page-template-page-news-and-events .news-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  justify-content: center;
}

.related-news-grid {
  display: grid;
  justify-content: flex-start;
  margin-top: 2rem;
  margin-bottom: 3rem;
}

.news-grid-item {
  position: relative;
  background-color: rgba(250, 250, 250, 0.1);
  padding: 1.5rem;
  backdrop-filter: blur(10px);
  transform: scale(1);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.news-grid-item:hover {
  transform: scale(1.01);
  transform-origin: center center;
  box-shadow: 0 0 40px 0 var(--pure-teal);
}

.news-grid-item .title {
  position: relative;
  color: #fff;
  font-size: clamp(1rem, 1.3vw, 1.175rem);
  margin-bottom: 1rem;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
}

.news-grid-item .title:hover {
  color: var(--pure-teal);
}

.news-grid-item .date {
  margin: 1rem 0;
  font-family: var(--font-esa);
  font-size: 0.8125rem;
  color: var(--pure-teal);
  text-transform: uppercase;
}

.visual {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}

.news-grid-item .tags-container {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-justify-content: flex-start;
  -ms-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: center;
  -ms-align-items: center;
  align-items: center;
  -webkit-align-content: center;
  -ms-align-content: center;
  align-content: center;
  gap: 0.3rem;
}

.news-grid-item .tags-container .news-tag {
  margin: 0.2rem;
  padding: 0.2rem 0.5rem;
  border-radius: 1.5rem;
  font-family: var(--font-esa);
  font-size: 0.8125rem;
  color: #fff;
  text-decoration: none;
  word-break: break-all;
  background-color: rgba(250, 250, 250, 0.25);
}

.news-grid-item .tags-container .news-tag:hover {
  color: #ddd;
  background-color: rgba(250, 250, 250, 0.35);
}

.stretched-link {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}

/* ============================================
   HOW TO APPLY
   ============================================ */
.apply-page {
  background: #eef2f4;
  color: #003247;
}

.apply-content {
  max-width: 1220px;
  padding: 42px 20px 84px;
}

.apply-content .page-crumb {
  color: rgba(0, 50, 71, .74);
}

.apply-content .page-title {
  color: #003247;
  margin-bottom: 10px;
}

.apply-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  margin-bottom: 28px;
}

.apply-lead {
  max-width: 820px;
  color: #00ae9d;
  font-size: 18px;
  line-height: 1.58;
}

.apply-note {
  margin-top: 14px;
  max-width: 820px;
  color: #003247;
  font-size: 14px;
  line-height: 1.62;
}

.apply-note a {
  text-decoration: underline;
  text-decoration-color: rgba(0, 50, 71, .35);
}

.apply-summary {
  border: 1px solid rgba(0, 50, 71, .2);
  background: rgba(255, 255, 255, .72);
  display: grid;
}

.apply-chip {
  padding: 14px 14px 15px;
  border-bottom: 1px solid rgba(0, 50, 71, .14);
}

.apply-chip:last-child {
  border-bottom: none;
}

.apply-chip span {
  display: block;
  color: rgba(0, 50, 71, .7);
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.apply-chip strong {
  color: #003247;
  font-size: 16px;
  line-height: 1.2;
}

.apply-scheme {
  padding: 24px 0 28px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.apply-scheme-copy {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  align-items: start;
}

/* News and events page (page-news-and-events.php): grid layout only.
   The width follows --article-width, as on every other page. */
.philab-news-page .philab-main-grid {
  grid-template-columns: 1fr !important;
}
.philab-news-page .philab-news-grid {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
}

.apply-scheme-copy h2,
.apply-steps h2,
.apply-panel h2 {
  color: #003247;
  font-size: clamp(28px, 4.3vw, 46px);
  line-height: 1.02;
  margin-bottom: 10px;
}

.apply-scheme-copy p,
.apply-panel p {
  color: #003247;
  font-size: 14px;
  line-height: 1.64;
  margin-bottom: 0;
}

.apply-scheme-copy p + p {
  margin-top: 10px;
}

.apply-green { color: #00a295; }
.apply-blue { color: #0097d7; }
.apply-red { color: #e40521; }

.apply-figure {
  margin: 0;
}

.apply-figure-timeline {
  margin: 8px 0 12px;
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}

.apply-figure-scheme {
  margin-top: 0;
}

.apply-figure img {
  width: 100%;
  height: auto;
  border: 0;
  background: transparent;
  mix-blend-mode: multiply;
}

.apply-figure-scheme img {
  display: block;
  max-height: 360px;
  object-fit: contain;
}

.apply-steps {
  margin-top: 34px;
  padding-top: 24px;
  border-top: 1px solid rgba(0, 50, 71, .14);
}

.apply-step-list {
  margin-top: 10px;
  list-style: none;
  display: grid;
  gap: 0;
}

.apply-step {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 18px;
  border-top: 1px solid rgba(0, 50, 71, .14);
  background: transparent;
  padding: 18px 0 20px;
}

.apply-step:last-child {
  border-bottom: 1px solid rgba(0, 50, 71, .14);
}

.apply-step-num {
  padding-top: 3px;
  color: #00ae9d;
  font-family: 'NotesEsa', sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 2px;
}

.apply-step-body h3 {
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.18;
  margin-bottom: 8px;
}

.apply-step-body p {
  color: #003247;
  font-size: 14px;
  line-height: 1.58;
  margin-bottom: 8px;
  max-width: 780px;
}

.apply-step-body p:last-child {
  margin-bottom: 0;
}

.apply-step-focus {
  font-weight: 700;
  padding: 0;
  background: transparent;
  border: 0;
}

.apply-step-focus a {
  text-decoration: underline;
  text-decoration-color: rgba(0, 50, 71, .35);
}

.apply-decision {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 14px;
}

.apply-decision strong,
.apply-decision span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid rgba(0, 50, 71, .2);
  font-size: 12px;
  letter-spacing: .8px;
  text-transform: uppercase;
}

.apply-decision strong {
  color: #003247;
  background: rgba(0, 50, 71, .06);
}

.apply-decision .is-go { color: #008f82; }
.apply-decision .is-stop { color: #c51f37; }
.apply-decision .is-iteration { color: #0078b8; }

.apply-actions,
.apply-footer-links {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.apply-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid rgba(0, 50, 71, .35);
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  transition: all .2s ease;
  cursor: pointer;
}

.apply-btn:disabled,
.apply-btn:disabled:hover {
  border-color: rgba(0, 50, 71, .16);
  background: rgba(0, 50, 71, .12);
  color: rgba(0, 50, 71, .46);
  cursor: not-allowed;
}

.apply-btn-secondary {
  color: #003247;
  background: transparent;
}

.apply-btn-secondary:hover {
  border-color: #00ae9d;
  color: #00ae9d;
}

.apply-btn-primary {
  border-color: #00ae9d;
  background: #00ae9d;
  color: #ffffff;
}

.apply-btn-primary:hover {
  border-color: #008f82;
  background: #008f82;
}

.apply-visuals {
  margin-top: 28px;
  border-top: 0;
  padding-top: 24px;
  display: grid;
  gap: 16px;
}

.apply-panel {
  border: 0;
  background: transparent;
  padding: 16px;
}

.apply-figure-process img {
  max-width: 860px;
  margin: 0 auto;
}

/* Contact page form */
.contact26-content {
  max-width: 1180px;
}

.contact26-body {
  border-top: 1px solid rgba(0, 50, 71, .16);
  margin-top: 8px;
  padding-top: 22px;
}

.contact26-title {
  color: #003247;
  font-size: clamp(26px, 3.5vw, 42px);
  line-height: 1.1;
  margin-bottom: 16px;
}

.contact26-subtitle {
  display: block;
  margin-top: 8px;
  color: rgba(0, 50, 71, .7);
  font-size: .58em;
  font-weight: 400;
  line-height: 1.35;
}

.contact26-form {
  display: grid;
  gap: 14px;
}

.contact26-fieldset {
  border: 1px solid rgba(0, 50, 71, .18);
  background: rgba(255, 255, 255, .72);
  padding: 12px;
}

.contact26-fieldset legend {
  color: #003247;
  font-size: 11px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 0 8px;
}

.contact26-grid {
  display: grid;
  gap: 10px;
}

.contact26-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact26-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contact26-form label {
  display: grid;
  gap: 6px;
}

.contact26-form label span {
  color: rgba(0, 50, 71, .76);
  font-size: 10px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}

.contact26-form input,
.contact26-form textarea {
  width: 100%;
  border: 1px solid rgba(0, 50, 71, .28);
  background: #ffffff;
  color: #003247;
  padding: 10px 12px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
  border-radius: 0;
}

.contact26-form input:focus,
.contact26-form textarea:focus {
  outline: none;
  border-color: #00ae9d;
  box-shadow: 0 0 0 3px rgba(0, 174, 157, .18);
}

.contact26-form textarea {
  resize: vertical;
  min-height: 170px;
}

.contact26-consent-intro,
.contact26-withdraw {
  color: #003247;
  font-size: 14px;
  line-height: 1.65;
}

.contact26-consent-intro a,
.contact26-withdraw a,
.apply-chip a {
  color: #003247;
  text-decoration: underline;
  text-decoration-color: rgba(0, 50, 71, .35);
}

.contact26-consent-row {
  border-top: 1px solid rgba(0, 50, 71, .14);
  padding-top: 10px;
  margin-top: 10px;
}

.contact26-consent-label {
  color: rgba(0, 50, 71, .8);
  font-size: 13px;
  margin-bottom: 8px;
}

.contact26-choice {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.contact26-choice label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #003247;
  font-size: 13px;
}

.contact26-choice input[type='radio'] {
  width: 16px;
  height: 16px;
  margin: 0;
}

.contact26-captcha {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.contact26-captcha-code {
  min-width: 138px;
  border: 1px solid rgba(0, 50, 71, .3);
  background: #ffffff;
  color: #003247;
  font-size: 24px;
  letter-spacing: 6px;
  text-align: center;
  padding: 6px 8px;
}

.contact26-captcha-status {
  min-height: 20px;
  font-size: 13px;
  margin: 8px 0 10px;
}

.contact26-captcha-status.is-ok {
  color: #00ae9d;
}

.contact26-captcha-status.is-bad {
  color: #d33535;
}

.partner26-content {
  max-width: 1120px;
}

.partner26-panel {
  margin-top: 6px;
  border-top: 1px solid rgba(0, 50, 71, .16);
  border-bottom: 1px solid rgba(0, 50, 71, .16);
  background: transparent;
  padding: 20px 16px;
}

.partner26-panel h2 {
  color: #003247;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.03;
  margin-bottom: 10px;
}

.partner26-panel p {
  color: #003247;
  font-size: 14px;
  line-height: 1.65;
  margin-bottom: 10px;
}

.partner26-panel a {
  color: #003247;
  text-decoration: underline;
  text-decoration-color: rgba(0, 50, 71, .35);
}

.partner26-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 6px;
}

.partner26-card {
  border: 1px solid rgba(0, 50, 71, .18);
  background: rgba(255, 255, 255, .74);
  padding: 12px;
}

.partner26-index {
  display: inline-block;
  color: #00ae9d;
  font-size: 10px;
  letter-spacing: 2px;
  margin-bottom: 6px;
}

.partner26-card h3 {
  color: #003247;
  font-size: 24px;
  line-height: 1.05;
  margin-bottom: 8px;
}

.partner26-card p {
  color: #003247;
  font-size: 14px;
  line-height: 1.6;
}

.partner26-list {
  margin: 6px 0 0;
  padding-left: 20px;
}

.partner26-list li {
  color: #003247;
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 6px;
}

.nr26-table-wrap {
  overflow-x: auto;
  margin-top: 8px;
}

.nr26-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 680px;
  background: transparent;
}

/* Layout follows incubed.esa.int/national-requirements: thin horizontal
   rules only, no grid frame, header row without background or small caps.
   The cell text is smaller than the site's running text because the cells
   hold dense paragraphs in narrow columns, which look heavy at 19px.
   Set further down: horizontal scrolling of the wrapper (inner-page
   layout), the cell font (Arial, see "Running text in Arial") and the
   header size on small screens (UNIFIED TYPE SCALE, RESPONSIVE). */
.nr26-table th,
.nr26-table td {
  border: 0;
  border-bottom: 1px solid rgba(0, 50, 71, .16);
  padding: 13px 18px;
  text-align: left;
  vertical-align: middle;
  color: #003247;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 400;
}

.nr26-table th:first-child,
.nr26-table td:first-child {
  width: 26%;
  padding-left: 0;
}

.nr26-table th:last-child,
.nr26-table td:last-child {
  padding-right: 0;
}

.nr26-table th {
  background: transparent;
  text-transform: none;
  letter-spacing: normal;
  font-size: 20px;
  font-weight: 700;
}

.nr26-flags {
  display: inline-flex;
  gap: 6px;
  margin-right: 8px;
  vertical-align: middle;
}

.nr26-flag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  min-height: 18px;
  line-height: 1;
}

.nr26-flag img {
  width: 24px;
  height: 16px;
  object-fit: cover;
  border: 1px solid rgba(0, 50, 71, .25);
}

.nr26-flag-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 16px;
  border: 1px solid rgba(0, 50, 71, .25);
  background: rgba(0, 50, 71, .06);
  color: #003247;
  font-size: 9px;
  letter-spacing: .8px;
}

.nr26-state {
  vertical-align: middle;
  /* Arial, the cell font, has no semi-bold: 600 renders as bold */
  font-weight: 600;
}

.docs27-toolbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid rgba(0, 50, 71, .18);
  background: rgba(255, 255, 255, .74);
  padding: 10px;
}

.docs27-toolbar label {
  color: rgba(0, 50, 71, .75);
  text-transform: uppercase;
  letter-spacing: 1.4px;
  font-size: 10px;
}

.docs27-toolbar input {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(0, 50, 71, .28);
  background: #fff;
  color: #003247;
  padding: 10px 12px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
}

.docs27-toolbar input:focus {
  outline: none;
  border-color: #00ae9d;
  box-shadow: 0 0 0 3px rgba(0, 174, 157, .18);
}

.docs27-count {
  color: rgba(0, 50, 71, .78);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  font-size: 10px;
  white-space: nowrap;
}

.docs27-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.docs27-item {
  border: 1px solid rgba(0, 50, 71, .18);
  background: rgba(255, 255, 255, .82);
  padding: 12px;
}

.docs27-item h4 {
  color: #003247;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.05;
}

.docs27-category {
  margin-top: 8px;
  color: #00ae9d;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  font-size: 10px;
}

.docs27-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin-top: 8px;
  color: rgba(0, 50, 71, .72);
  font-size: 13px;
}

.docs27-meta strong {
  color: #003247;
  font-weight: 600;
}

.docs27-files {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}

.docs27-file {
  border-top: 1px solid rgba(0, 50, 71, .14);
  padding-top: 9px;
}

.docs27-file a {
  color: #003247;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.45;
}

.docs27-file a:hover {
  color: #00ae9d;
}

.docs27-url {
  display: block;
  margin-top: 6px;
  color: rgba(0, 50, 71, .72);
  font-size: 12px;
  line-height: 1.5;
  word-break: break-all;
}

.docs27-pending {
  display: inline-block;
  padding: 3px 10px;
  border: 1px dashed rgba(0, 50, 71, .35);
  border-radius: 999px;
  color: rgba(0, 50, 71, .62);
  font-family: 'NotesEsa', sans-serif;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.docs27-hidden {
  display: none !important;
}

.faq26-panel {
  padding-top: 12px;
  animation: faqPanelIn .42s ease both;
  transform-origin: top center;
}

.partner26-panel.faq26-panel {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.partner26-panel.faq26-panel:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 26px rgba(0, 50, 71, .12);
  border-color: rgba(0, 174, 157, .36);
}

.faq26-accordion {
  display: grid;
  gap: 10px;
}

.faq26-category {
  border: 1px solid rgba(0, 50, 71, .18);
  background: rgba(255, 255, 255, .76);
}

.faq26-category > summary {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  padding: 12px 14px;
  color: #003247;
  font-size: 24px;
  line-height: 1.05;
}

.faq26-category > summary::after {
  content: '+';
  display: inline-block;
  color: #003247;
  font-size: 22px;
  line-height: 1;
  transform: rotate(0deg);
  transition: transform .24s ease, color .24s ease;
}

.faq26-category[open] > summary::after {
  content: '+';
  color: #00ae9d;
  transform: rotate(45deg);
}

.faq26-category > summary::-webkit-details-marker {
  display: none;
}

.faq26-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 22px;
  border: 1px solid rgba(0, 50, 71, .3);
  color: #00ae9d;
  font-size: 10px;
  letter-spacing: 1.2px;
}

.faq26-items {
  border-top: 1px solid rgba(0, 50, 71, .14);
  overflow: hidden;
  height: 0;
  opacity: 0;
  transform: translateY(-5px);
  transition: height .42s cubic-bezier(.22, .61, .36, 1), opacity .3s ease, transform .3s ease;
  will-change: height, opacity, transform;
}

.faq26-category[open] .faq26-items {
  opacity: 1;
  transform: translateY(0);
}

.faq26-item {
  padding: 12px 14px;
  border-top: 1px solid rgba(0, 50, 71, .12);
}

.faq26-item:first-child {
  border-top: 0;
}

.faq26-item h3 {
  color: #003247;
  font-size: 24px;
  line-height: 1.08;
  margin-bottom: 8px;
}

.faq26-item p,
.faq26-item li {
  color: #003247;
  font-size: 14px;
  line-height: 1.65;
}

.faq26-item a {
  color: #003247;
  text-decoration: underline;
  text-decoration-color: rgba(0, 50, 71, .35);
}

.faq26-item ul {
  margin: 8px 0 0;
  padding-left: 20px;
}

@media (prefers-reduced-motion: reduce) {
  .faq26-panel,
  .faq26-category > summary::after,
  .faq26-items {
    transition: none;
    animation: none;
  }
}

@keyframes faqPanelIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(.995);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 980px) {
  .apply-hero {
    grid-template-columns: 1fr;
  }

  .apply-scheme {
    grid-template-columns: 1fr;
  }

  .apply-figure-scheme {
    order: 2;
  }

  .contact26-grid-3 {
    grid-template-columns: 1fr;
  }

  .partner26-grid {
    grid-template-columns: 1fr;
  }

  .docs27-toolbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .faq26-category > summary {
    font-size: 20px;
  }

  .faq26-item h3 {
    font-size: 20px;
  }
}

@media (max-width: 860px) {
  .apply-content {
    padding: 32px 16px 72px;
  }

  .apply-lead {
    font-size: 16px;
  }

  .apply-scheme-copy {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .apply-note,
  .apply-scheme-copy p,
  .apply-step-body p,
  .apply-panel p {
    font-size: 13px;
  }

  .apply-step {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px 0 18px;
  }

  .apply-step-num {
    font-size: 13px;
  }

  .apply-step-body h3 {
    font-size: 21px;
    line-height: 1.22;
  }

  .contact26-grid-2 {
    grid-template-columns: 1fr;
  }

  .contact26-captcha {
    flex-wrap: wrap;
  }
}

/* ============================================
   NATIONAL DELEGATIONS
   ============================================ */
.delegation-page {
  background: #eef2f4;
  color: #003247;
}

.delegation-content {
  max-width: 1220px;
  padding: 42px 20px 84px;
}

.delegation-content .page-crumb,
.delegation-content .page-meta {
  color: rgba(0, 50, 71, .74);
}

.delegation-content .page-title {
  color: #003247;
}

.delegation-head {
  margin-bottom: 22px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.delegation-head .page-lead {
  color: #00ae9d;
  max-width: 760px;
  margin-bottom: 0;
}

.delegation-kpis {
  border: 1px solid rgba(0, 50, 71, .2);
  background: rgba(255, 255, 255, .72);
  display: grid;
}

.delegation-kpi {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(0, 50, 71, .12);
}

.delegation-kpi:last-child {
  border-bottom: none;
}

.delegation-kpi span {
  display: block;
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: rgba(0, 50, 71, .7);
  margin-bottom: 4px;
}

.delegation-kpi strong {
  font-size: 28px;
  line-height: 1;
  color: #003247;
}

.delegation-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: 1fr;
  gap: 12px;
}

.delegation-card {
  border: 0;
  background: transparent;
  padding: 14px 14px 12px;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  height: 100%;
  transition: color .2s ease;
}

.delegation-card:hover {
  transform: none;
}

.delegation-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.delegation-label {
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: rgba(0, 50, 71, .66);
  margin-bottom: 8px;
}

.delegation-country {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #003247;
  font-size: 28px;
  line-height: 1.04;
  margin-bottom: 10px;
}

.delegation-flag {
  width: 24px;
  height: 18px;
  object-fit: cover;
  border: 1px solid rgba(0, 50, 71, .24);
}

.delegation-contacts {
  list-style: none;
  display: grid;
  gap: 10px;
  margin-top: 0;
}

.delegation-contacts li {
  display: grid;
  gap: 2px;
  border-top: 0;
  padding-top: 0;
}

.delegation-name {
  display: block;
  color: #003247;
  font-size: 14px;
  line-height: 1.22;
}

.delegation-mail {
  display: block;
  margin-top: 0;
  color: #00ae9d;
  font-size: 13px;
  line-height: 1.25;
  text-decoration: underline;
  text-decoration-color: rgba(0, 174, 157, .5);
  word-break: break-word;
}

.delegation-page .page-nav {
  margin-top: 22px;
}

.delegation-page .page-btn {
  color: #003247;
  border-color: rgba(0, 50, 71, .34);
}

.delegation-page .page-btn:hover {
  color: #00ae9d;
  border-color: #00ae9d;
}

@media (max-width: 860px) {
  .delegation-content {
    padding: 32px 16px 72px;
  }

  .delegation-head {
    grid-template-columns: 1fr;
  }

  .delegation-head .page-lead {
    font-size: 15px;
  }

  .delegation-grid {
    grid-template-columns: 1fr;
  }

  .delegation-country {
    font-size: 24px;
  }
}

/* ============================================
   INFO PAGES - SHARED STYLES
   ============================================ */
.info-page {
  background: #eef2f4;
  color: #003247;
}

.info-content {
  max-width: 1120px;
  padding: 40px 20px 80px;
}

.info-page .page-crumb,
.info-page .page-meta {
  color: rgba(0, 50, 71, .74);
}

.info-page .page-title {
  color: #003247;
}

.info-page .page-lead {
  color: #00ae9d;
  max-width: 900px;
}

.info-page .page-copy,
.info-page .page-copy p,
.info-page .page-list,
.info-page .page-list li {
  color: #003247;
}

.info-page .page-copy a {
  text-decoration: underline;
  text-decoration-color: rgba(0, 50, 71, .35);
}

.info-page .page-nav {
  margin-top: 24px;
}

.info-page .page-btn {
  color: #003247;
  border-color: rgba(0, 50, 71, .34);
}

.info-page .page-btn:hover {
  color: #00ae9d;
  border-color: #00ae9d;
}

/* ============================================
   NEWS PAGE - FEED + EVENTS
   ============================================ */
.news-page {
  --n26-bg: #003247;
  --n26-bg2: #032b3d;
  --n26-card: rgba(11, 79, 101, 0.65);
  --n26-line: rgba(0, 174, 157, 0.42);
  --n26-accent: #00ae9d;
  --n26-soft: rgba(255,255,255,.82);
  background:
    radial-gradient(110% 130% at 80% -10%, rgba(0,174,157,.24), rgba(0,174,157,0) 58%),
    linear-gradient(180deg, var(--n26-bg) 0%, var(--n26-bg2) 56%, var(--n26-bg) 100%);
  color: #fff;
  min-height: 100vh;
  padding-top: 26px;
}

.news26-hero {
  padding: 70px 0 22px;
  border-bottom: 1px solid var(--n26-line);
}

.news26-hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: stretch;
}

.news26-intro {
  background: linear-gradient(122deg, rgba(0,34,52,.58), rgba(0,74,99,.36));
  border: 1px solid rgba(0,174,157,.36);
  border-radius: 0;
  padding: 24px 24px 20px;
}

.news26-kicker {
  margin: 0 0 10px;
  text-transform: uppercase;
  letter-spacing: .15em;
  font-size: 11px;
  color: var(--n26-accent);
}

.news26-hero h1 {
  margin: 0 0 12px;
  font-size: clamp(40px, 5.2vw, 74px);
  line-height: .95;
  color: #fff;
}

.news26-lead {
  margin: 0;
  color: var(--n26-soft);
  line-height: 1.62;
  max-width: 70ch;
}

.news26-source {
  margin: 14px 0 0;
  color: rgba(255,255,255,.74);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 11px;
}

.news26-stats {
  margin-top: 20px;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.news26-stat {
  min-width: 118px;
  padding: 10px 12px;
  border: 1px solid var(--n26-line);
  border-radius: 0;
  background: rgba(255,255,255,.06);
}

.news26-stat strong {
  display: block;
  font-size: clamp(30px, 2.7vw, 38px);
  line-height: .92;
}

.news26-stat span {
  display: block;
  margin-top: 5px;
  color: rgba(255,255,255,.82);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 10px;
}

.news26-content {
  padding: 20px 0 30px;
}

.news26-toolbar {
  position: sticky;
  top: 64px;
  z-index: 40;
  margin-bottom: 16px;
  display: grid;
  grid-template-columns: 1fr 200px auto;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--n26-line);
  border-radius: 0;
  background: #033245;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
}

.news26-toolbar input,
.news26-toolbar select {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(0,174,157,.46);
  border-radius: 0;
  background: rgba(255,255,255,.08);
  color: #fff;
  padding: 10px 12px;
  font-size: 14px;
}

.news26-toolbar input::placeholder {
  color: rgba(255,255,255,.66);
}

.news26-toolbar select option {
  color: #003247;
}

.news26-results {
  align-self: center;
  justify-self: end;
  color: rgba(255,255,255,.84);
  font-size: 12px;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
}

.news26-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 16px;
  align-items: start;
}

.news26-feed {
  display: grid;
  gap: 12px;
}

.news26-item {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 14px;
  border: 1px solid rgba(0,174,157,.34);
  border-radius: 0;
  background: linear-gradient(120deg, rgba(14,100,122,.58), rgba(8,58,81,.58));
  padding: 12px;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.news26-item:hover {
  transform: translateY(-2px);
  border-color: rgba(0,174,157,.74);
  box-shadow: 0 12px 26px rgba(0,0,0,.22);
}

.news26-item.is-hidden {
  display: none;
}

.news26-thumb {
  min-height: 148px;
  border-radius: 0;
  background: rgba(255,255,255,.12);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.news26-copy {
  min-width: 0;
}

.news26-meta {
  margin: 0 0 8px;
  color: var(--n26-accent);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 10px;
}

.news26-copy h3 {
  margin: 0 0 8px;
  font-size: clamp(28px, 2.8vw, 40px);
  line-height: .98;
}

.news26-copy h3 a {
  color: #fff;
  text-decoration: none;
}

.news26-copy h3 a:hover {
  color: var(--n26-accent);
}

.news26-excerpt {
  margin: 0;
  color: rgba(255,255,255,.88);
  line-height: 1.58;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.news26-readmore {
  display: inline-block;
  margin-top: 10px;
  color: var(--n26-accent);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  text-decoration: none;
}

.news26-readmore:hover {
  color: #fff;
}

.news26-rail {
  position: sticky;
  top: 130px;
  border: 1px solid var(--n26-line);
  border-radius: 0;
  padding: 14px;
  background: linear-gradient(165deg, rgba(12,91,112,.64), rgba(6,55,77,.72));
}

.news26-rail h2 {
  margin: 0 0 12px;
  color: #fff;
  font-size: 28px;
  line-height: .95;
}

.news26-event-highlight {
  margin-bottom: 12px;
  border: 1px solid rgba(0,174,157,.34);
  border-radius: 0;
  background: rgba(0,174,157,.12);
  padding: 10px;
}

.news26-event-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.news26-event-list li {
  border-top: 1px solid rgba(0,174,157,.24);
  padding-top: 10px;
}

.news26-event-date {
  margin: 0 0 5px;
  color: var(--n26-accent);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 10px;
}

.news26-event-title {
  margin: 0 0 6px;
  font-size: 15px;
  line-height: 1.25;
}

.news26-event-title a {
  color: #fff;
  text-decoration: none;
}

.news26-event-title a:hover {
  color: var(--n26-accent);
}

.news26-event-note {
  margin: 0;
  color: rgba(255,255,255,.82);
  line-height: 1.52;
  font-size: 13px;
}

.news26-links {
  margin-top: 14px;
  display: grid;
  gap: 8px;
}

.news26-btn {
  display: block;
  text-align: center;
  border: 1px solid rgba(0,174,157,.48);
  border-radius: 0;
  color: #fff;
  text-decoration: none;
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
}

.news26-btn:hover {
  color: #003247;
  background: #00ae9d;
}

@media (max-width: 1180px) {
  .news26-hero-grid {
    grid-template-columns: 1fr;
  }

  .news26-toolbar {
    grid-template-columns: 1fr 180px auto;
  }

  .news26-layout {
    grid-template-columns: 1fr;
  }

  .news26-rail {
    position: static;
    top: auto;
  }
}

@media (max-width: 760px) {
  .news-page {
    padding-top: 10px;
  }

  .news26-hero {
    padding: 16px 0 14px;
  }

  .news26-intro {
    padding: 14px;
  }

  .news26-stats {
    justify-content: flex-start;
  }

  .news26-toolbar {
    position: sticky;
    top: 64px;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 8px;
  }

  .news26-results {
    justify-self: start;
  }

  .news26-item {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .news26-thumb {
    min-height: 184px;
  }
}

/* ============================================
   ADDITIONAL APPLICATION INFORMATION
   ============================================ */
.additional-content {
  max-width: 980px;
}

.additional-block {
  margin-top: 34px;
  padding-top: 26px;
  border-top: 1px solid rgba(0, 50, 71, .2);
}

.additional-block h2 {
  margin: 0 0 14px;
  color: #003247;
  font-size: clamp(22px, 2.8vw, 30px);
  letter-spacing: .01em;
}

.additional-page .page-lead {
  border-left: 4px solid #00ae9d;
  padding-left: 14px;
  margin-top: 10px;
}

.additional-page p {
  line-height: 1.7;
}

.additional-cycles {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 18px 0 16px;
}

.additional-cycle-card {
  background: #f7fafb;
  border: 1px solid rgba(0, 50, 71, .22);
  border-left: 4px solid #00ae9d;
  padding: 18px 18px 16px;
}

.additional-cycle-card h3 {
  margin: 0 0 10px;
  color: #003247;
  font-size: clamp(18px, 2.2vw, 22px);
}

.additional-note {
  color: rgba(0, 50, 71, .75);
  font-style: italic;
  border-left: 3px solid rgba(0, 174, 157, .6);
  padding-left: 12px;
}

.additional-figure {
  margin: 16px 0 20px;
  border: 1px solid rgba(0, 50, 71, .2);
  background: #fff;
  padding: 12px;
}

.additional-figure img {
  width: 100%;
  height: auto;
  display: block;
}

.additional-country-list {
  list-style: none;
  margin: 14px 0 18px;
  padding: 0;
  display: grid;
  gap: 8px 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.additional-country-list li {
  border: 1px solid rgba(0, 50, 71, .18);
  background: #f7fafb;
  padding: 9px 10px;
  font-weight: 600;
  letter-spacing: .01em;
  display: flex;
  align-items: center;
  gap: 9px;
}

.additional-country-list .country-flag {
  width: 28px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 50, 71, .2);
  background: #fff;
  flex: 0 0 28px;
}

.additional-country-list img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.additional-country-list .country-name {
  line-height: 1.2;
}

@media (max-width: 980px) {
  .additional-content {
    max-width: 100%;
  }

  .additional-cycles {
    grid-template-columns: 1fr;
  }

  .additional-country-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ============================================
   COMMUNITY PAGE
   ============================================ */
.comm26-page {
  --c26-bg: #003247;
  --c26-bg2: #063448;
  --c26-line: rgba(0, 174, 157, .42);
  --c26-soft: rgba(255,255,255,.84);
  background:
    radial-gradient(120% 90% at 84% -20%, rgba(0,174,157,.24), rgba(0,174,157,0) 58%),
    linear-gradient(180deg, var(--c26-bg) 0%, var(--c26-bg2) 58%, var(--c26-bg) 100%);
  color: #fff;
}

.comm26-content {
  max-width: 1240px;
  margin: 0 auto;
  padding: 34px 20px 74px;
}

.comm26-hero {
  border-bottom: 1px solid var(--c26-line);
}

.comm26-hero .page-crumb,
.comm26-hero .page-meta {
  color: rgba(255,255,255,.76);
}

.comm26-hero .page-title {
  color: #fff;
}

.comm26-hero .page-lead {
  color: var(--c26-soft);
  max-width: 74ch;
}

.comm26-main {
  padding-top: 18px;
}

.comm26-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 16px;
  align-items: start;
}

.comm26-panel {
  border: 1px solid var(--c26-line);
  background: linear-gradient(130deg, rgba(11,96,118,.56), rgba(8,56,78,.62));
  padding: 16px;
}

.comm26-head {
  border-bottom: 1px solid rgba(0,174,157,.32);
  padding-bottom: 12px;
  margin-bottom: 12px;
}

.comm26-kicker {
  margin: 0 0 8px;
  color: #00ae9d;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 10px;
}

.comm26-head h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(30px, 3.1vw, 44px);
  line-height: .98;
}

.comm26-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.comm26-card {
  border: 1px solid rgba(0,174,157,.32);
  background: rgba(255,255,255,.07);
  padding: 12px;
}

.comm26-index {
  display: inline-block;
  color: #00ae9d;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.comm26-card h3 {
  margin: 6px 0 8px;
  color: #fff;
  font-size: 22px;
  line-height: 1.05;
}

.comm26-card p {
  margin: 0;
  color: rgba(255,255,255,.84);
  line-height: 1.55;
}

.comm26-opps {
  margin-top: 12px;
  border-top: 1px solid rgba(0,174,157,.28);
  padding-top: 12px;
}

.comm26-opps h3 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 24px;
}

.comm26-opps ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 7px;
}

.comm26-opps li {
  border-left: 2px solid rgba(0,174,157,.48);
  padding-left: 10px;
  color: rgba(255,255,255,.86);
  line-height: 1.48;
}

.comm26-side {
  position: sticky;
  top: 132px;
  border: 1px solid var(--c26-line);
  background: rgba(255,255,255,.07);
  padding: 14px;
}

.comm26-side h2 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 24px;
}

.comm26-side p {
  margin: 0 0 12px;
  color: rgba(255,255,255,.84);
  line-height: 1.55;
}

.comm26-links {
  display: grid;
  gap: 8px;
}

.comm26-links a {
  border: 1px solid rgba(0,174,157,.44);
  color: #fff;
  text-decoration: none;
  padding: 8px 10px;
  font-size: 13px;
}

.comm26-links a:hover {
  background: #00ae9d;
  color: #003247;
}

.comm26-nav {
  margin-top: 22px;
}

.comm26-nav .page-btn {
  color: #fff;
  border-color: rgba(0,174,157,.44);
}

.comm26-nav .page-btn:hover {
  color: #003247;
  border-color: #00ae9d;
  background: #00ae9d;
}

@media (max-width: 1080px) {
  .comm26-layout {
    grid-template-columns: 1fr;
  }

  .comm26-grid {
    grid-template-columns: 1fr 1fr;
  }

  .comm26-side {
    position: static;
    top: auto;
  }
}

@media (max-width: 860px) {
  .comm26-content {
    padding: 26px 16px 64px;
  }

  .comm26-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   DOCUMENTS PAGE - SHARED STYLES
   ============================================ */
.docs26-page {
  --d26-bg: #003247;
  --d26-bg2: #063448;
  --d26-line: rgba(0, 174, 157, .42);
  --d26-soft: rgba(255,255,255,.84);
  background:
    radial-gradient(120% 90% at 84% -20%, rgba(0,174,157,.28), rgba(0,174,157,0) 58%),
    linear-gradient(180deg, var(--d26-bg) 0%, var(--d26-bg2) 58%, var(--d26-bg) 100%);
  color: #fff;
}

.docs26-content {
  max-width: 1240px;
  margin: 0 auto;
  padding: 34px 20px 74px;
}

.docs26-hero .page-crumb,
.docs26-hero .page-meta {
  color: rgba(255,255,255,.76);
}

.docs26-hero .page-title {
  color: #fff;
}

.docs26-hero .page-lead {
  color: var(--d26-soft);
  max-width: 76ch;
}

.docs26-stats {
  margin-top: 18px;
  display: flex;
  gap: 10px;
}

.docs26-stat {
  min-width: 122px;
  border: 1px solid var(--d26-line);
  background: rgba(255,255,255,.08);
  padding: 10px 12px;
}

.docs26-stat strong {
  display: block;
  font-size: clamp(28px, 2.8vw, 36px);
  line-height: .92;
}

.docs26-stat span {
  display: block;
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 10px;
  color: rgba(255,255,255,.82);
}

.docs26-main {
  padding-top: 18px;
}

.docs26-toolbar {
  position: sticky;
  top: 64px;
  z-index: 16;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  border: 1px solid var(--d26-line);
  background: rgba(3,50,69,.94);
  padding: 10px;
}

.docs26-toolbar label {
  color: rgba(255,255,255,.84);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 10px;
}

.docs26-search {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(0,174,157,.46);
  background: rgba(255,255,255,.08);
  color: #fff;
  padding: 10px 12px;
  font-size: 14px;
}

.docs26-search::placeholder {
  color: rgba(255,255,255,.62);
}

.docs26-search:focus {
  outline: none;
  border-color: #00ae9d;
  box-shadow: 0 0 0 3px rgba(0,174,157,.2);
}

.docs26-count {
  color: rgba(255,255,255,.86);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .1em;
  white-space: nowrap;
}

.docs26-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 16px;
  align-items: start;
}

.docs26-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.docs26-category {
  border: 1px solid var(--d26-line);
  background: linear-gradient(130deg, rgba(11,96,118,.56), rgba(8,56,78,.62));
  padding: 14px;
}

.docs26-cat-head {
  border-bottom: 1px solid rgba(0,174,157,.3);
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.docs26-cat-index {
  display: inline-block;
  color: #00ae9d;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.docs26-cat-head h3 {
  color: #fff;
  font-size: 26px;
  line-height: 1;
  margin: 4px 0 6px;
}

.docs26-cat-head p {
  margin: 0;
  color: rgba(255,255,255,.78);
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: .1em;
}

.docs26-links {
  list-style: none;
  display: grid;
  gap: 8px;
}

.docs26-links li {
  border-top: 1px solid rgba(0,174,157,.24);
  padding-top: 8px;
}

.docs26-link {
  display: grid;
  gap: 3px;
  color: #fff;
  text-decoration: none;
}

.docs26-link-title {
  font-size: 14px;
  line-height: 1.4;
}

.docs26-link-details {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  color: rgba(255, 255, 255, .72);
  font-size: 11px;
  line-height: 1.4;
}

.docs26-link-meta {
  color: #00ae9d;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 10px;
}

.docs26-link:hover .docs26-link-title {
  color: #00ae9d;
}

.docs26-side {
  position: sticky;
  top: 132px;
  border: 1px solid var(--d26-line);
  background: rgba(255,255,255,.07);
  padding: 14px;
}

.docs26-side h2 {
  color: #fff;
  margin: 0 0 8px;
  font-size: 24px;
}

.docs26-side p {
  color: rgba(255,255,255,.84);
  line-height: 1.55;
  margin: 0 0 12px;
}

.docs26-side-links {
  display: grid;
  gap: 8px;
}

.docs26-side-links a {
  border: 1px solid rgba(0,174,157,.44);
  color: #fff;
  text-decoration: none;
  padding: 8px 10px;
  font-size: 13px;
}

.docs26-side-links a:hover {
  background: #00ae9d;
  color: #003247;
}

.docs26-nav {
  margin-top: 22px;
}

.docs26-nav .page-btn {
  color: #fff;
  border-color: rgba(0,174,157,.44);
}

.docs26-nav .page-btn:hover {
  color: #003247;
  border-color: #00ae9d;
  background: #00ae9d;
}

.docs26-category.is-hidden,
.docs26-links li.is-hidden {
  display: none !important;
}

@media (max-width: 1080px) {
  .docs26-layout {
    grid-template-columns: 1fr;
  }

  .docs26-side {
    position: static;
    top: auto;
  }
}

@media (max-width: 860px) {
  .docs26-content {
    padding: 26px 16px 64px;
  }

  .docs26-grid {
    grid-template-columns: 1fr;
  }

  .docs26-stats {
    flex-wrap: wrap;
  }

  .docs26-toolbar {
    position: static;
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}

/* ============================================
   DOCUMENTS PAGE - MIRROR VARIANT
   ============================================ */
.docs-mirror-page {
  --dm-bg: #003247;
  --dm-bg2: #063448;
  --dm-line: rgba(0, 174, 157, .42);
  --dm-soft: rgba(255, 255, 255, .86);
  background:
    radial-gradient(110% 90% at 82% -24%, rgba(0, 174, 157, .2), rgba(0, 174, 157, 0) 60%),
    linear-gradient(180deg, var(--dm-bg) 0%, var(--dm-bg2) 55%, var(--dm-bg) 100%);
  color: #fff;
}

.docs-mirror-content {
  width: min(1240px, calc(100% - 40px));
  margin: 0 auto;
}

.docs-mirror-hero {
  padding: 34px 0 18px;
  border-bottom: 1px solid var(--dm-line);
}

.docs-mirror-hero .page-crumb,
.docs-mirror-hero .page-meta {
  color: rgba(255, 255, 255, .78);
}

.docs-mirror-hero .page-title {
  color: #fff;
  margin-bottom: 10px;
}

.docs-mirror-hero .page-lead {
  color: var(--dm-soft);
  max-width: 82ch;
}

.docs-mirror-toolbar {
  margin-top: 22px;
  position: sticky;
  top: 86px;
  z-index: 16;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--dm-line);
  background: rgba(3, 50, 69, .94);
  padding: 10px;
}

.docs-mirror-toolbar label {
  color: rgba(255, 255, 255, .84);
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 10px;
}

#docsMirrorSearch {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(0, 174, 157, .46);
  background: rgba(255, 255, 255, .08);
  color: #fff;
  padding: 10px 12px;
  font-size: 14px;
  border-radius: 0;
}

#docsMirrorSearch::placeholder {
  color: rgba(255, 255, 255, .62);
}

#docsMirrorSearch:focus {
  outline: none;
  border-color: #00ae9d;
  box-shadow: 0 0 0 3px rgba(0, 174, 157, .2);
}

.docs-mirror-count {
  color: rgba(255, 255, 255, .86);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .1em;
  white-space: nowrap;
}

.docs-mirror-body {
  padding: 20px 0 74px;
}

.docs-mirror-list {
  display: grid;
  gap: 10px;
}

.docs-item {
  border: 1px solid var(--dm-line);
  background: linear-gradient(130deg, rgba(11, 96, 118, .5), rgba(8, 56, 78, .58));
  padding: 16px;
}

.docs-item h4 {
  margin: 0;
  color: #fff;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.06;
}

.docs-category-name {
  margin: 8px 0 0;
  color: #00ae9d;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 10px;
}

.docs-files {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
}

.docs-file {
  border-top: 1px solid rgba(0, 174, 157, .28);
  padding-top: 10px;
}

.docs-file a {
  display: inline-flex;
  color: #fff;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.45;
}

.docs-file a:hover {
  color: #00ae9d;
}

.file-url {
  display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, .7);
  font-size: 12px;
  line-height: 1.5;
  word-break: break-all;
}

.docs-item:hover {
  border-color: #00ae9d;
  background: linear-gradient(130deg, rgba(11, 96, 118, .66), rgba(8, 56, 78, .72));
}

.docs-item.is-hidden {
  display: none !important;
}

.docs-mirror-nav {
  margin-top: 24px;
}

.docs-mirror-nav .page-btn {
  color: #fff;
  border-color: rgba(0, 174, 157, .44);
  border-radius: 0;
}

.docs-mirror-nav .page-btn:hover {
  color: #003247;
  border-color: #00ae9d;
  background: #00ae9d;
}

@media (max-width: 860px) {
  .docs-mirror-content {
    width: min(1240px, calc(100% - 32px));
  }

  .docs-mirror-hero {
    padding-top: 26px;
  }

  .docs-mirror-toolbar {
    position: static;
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}

/* ============================================
   TYPOGRAPHY - TEXT SIZES
   Raises the text sizes set by the component blocks above.
   ============================================ */
body {
  font-size: 21px;
}

.mobile-nav a {
  font-size: 14px;
}

.page-crumb {
  font-size: 15px;
}

.page-meta {
  font-size: 16px;
}

.page-lead {
  font-size: 26px;
}

.page-copy,
.page-copy p,
.page-list li {
  font-size: 21px;
}

.page-btn {
  font-size: 14px;
}

.apply-note,
.apply-step-body p,
.apply-panel p,
.partner26-panel p,
.partner26-list li,
.contact26-consent-intro,
.contact26-withdraw,
.contact26-consent-label,
.faq26-item p,
.faq26-item li,
.docs27-file a {
  font-size: 19px;
}

.apply-chip span,
.docs27-count,
.docs27-category {
  font-size: 13px;
}

.apply-btn {
  font-size: 14px;
}

.news26-kicker,
.news26-source,
.news26-meta,
.news26-results {
  font-size: 15px;
}

.news26-excerpt,
.news26-event-note,
.news26-side p {
  font-size: 19px;
}

main p,
main li {
  line-height: 1.72;
}

main label,
main input,
main select,
main textarea,
main button {
  font-size: 18px;
}

/* ============================================
   EDITORIAL PAGE LAYOUT
   ============================================ */
:root {
  --site-gutter: clamp(16px, 2.4vw, 40px);
  --article-width: 1300px;
  --article-wide: 1080px;
  --reading-measure: 72ch;
}

.container,
.page-content,
.apply-content,
.info-content,
.delegation-content,
.comm26-content,
.docs26-content,
.docs-mirror-content,
.news26-content,
.contact26-content,
.partner26-content {
  max-width: var(--article-width) !important;
  width: min(var(--article-width), calc(100% - (var(--site-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ============================================
   ACTIVITIES PORTFOLIO PAGE
   ============================================ */
.ap26-page {
  background: transparent;
}

.ap26-content {
  padding-top: 10px;
  padding-bottom: 48px;
}

.ap26-hero {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 16px;
  margin-top: 14px;
}

.ap26-hero-panel,
.ap26-kpi,
.ap26-card,
.ap26-column {
  border: 1px solid rgba(255, 255, 255, .1);
  background: linear-gradient(150deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .02));
  padding: 18px;
}

.ap26-kicker {
  margin: 0 0 6px;
  font-size: 12px;
  color: #00ae9d;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.ap26-hero-panel h2,
.ap26-head h2 {
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.05;
}

.ap26-hero-panel p {
  margin: 0 0 14px;
  color: rgba(255, 255, 255, .9);
  font-size: 20px;
}

.ap26-kpis {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.ap26-kpi h3 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 23px;
}

.ap26-num {
  margin: 0;
  color: #00ae9d;
  font-weight: 700;
  font-size: clamp(38px, 4vw, 62px);
  line-height: 1;
}

.ap26-section,
.ap26-columns {
  margin-top: 18px;
}

.ap26-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.ap26-head a {
  color: #00ae9d;
  text-decoration: none;
  font-size: 16px;
}

.ap26-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.ap26-card h3 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 24px;
}

.ap26-card p {
  margin: 0;
  color: rgba(255, 255, 255, .85);
  font-size: 18px;
}

.ap26-card strong {
  color: #00ae9d;
}

.ap26-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.ap26-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.ap26-list li {
  border-top: 1px solid rgba(0, 174, 157, .24);
  padding-top: 10px;
}

.ap26-list strong {
  display: block;
  color: #fff;
  font-size: 20px;
  line-height: 1.28;
}

.ap26-list span {
  display: block;
  margin-top: 5px;
  color: rgba(255, 255, 255, .76);
  font-size: 16px;
}

.ap26-nav { margin-top: 22px; }

@media (max-width: 1060px) {
  .ap26-hero,
  .ap26-columns {
    grid-template-columns: 1fr;
  }

  .ap26-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 760px) {
  .ap26-content {
    width: calc(100% - 24px);
  }

  .ap26-grid,
  .ap26-kpis {
    grid-template-columns: 1fr;
  }
}

/* Activities page (activities26): hero, KPI grid and search field */
.activities26-hero {
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(255, 255, 255, .14);
  padding: 20px;
}

.activities26-kpi-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.activities26-kpi-grid .wwlf-icon-card p {
  margin: 6px 0 0;
  color: #00ae9d;
  font-weight: 700;
}

.activities26-search input {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, .2);
  background: rgba(0, 0, 0, .2);
  color: #fff;
  padding: 12px 14px;
  font-size: 18px;
}

@media (max-width: 760px) {
  .activities26-kpi-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   ACTIVITIES PORTFOLIO - LIGHT LAYOUT
   ============================================ */
.activities27-page {
  background:
    radial-gradient(900px 460px at 12% -10%, rgba(0, 174, 157, .08), transparent 60%),
    radial-gradient(900px 520px at 92% 110%, rgba(0, 151, 215, .07), transparent 60%),
    #f6fbfc;
}

.activities27-content {
  width: min(1360px, calc(100% - 48px));
  padding-top: 26px;
  padding-bottom: 72px;
}

.activities27-content .page-title,
.activities27-content .page-lead,
.activities27-content .page-meta,
.activities27-content .page-subtitle {
  color: #003247;
}

.activities27-hero {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
  margin-top: 14px;
}

.activities27-panel,
.activities27-kpi-card,
.activities27-cluster,
.activities27-stream {
  background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(247, 252, 253, .98));
  border: 1px solid rgba(0, 50, 71, .16);
  padding: 18px;
}

.activities27-panel h2 {
  margin: 0 0 8px;
  font-size: clamp(30px, 3vw, 40px);
  line-height: 1.05;
  color: #003247;
}

.activities27-panel p {
  margin: 0;
  color: rgba(0, 50, 71, .88);
}

.activities27-search-panel input {
  width: 100%;
  margin-top: 14px;
  border: 1px solid rgba(0, 50, 71, .24);
  background: #fff;
  color: #003247;
  padding: 12px 14px;
  font-size: 18px;
}

.activities27-kpi {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.activities27-kpi-card h3 {
  margin: 0 0 8px;
  color: #003247;
  font-size: 24px;
}

.activities27-kpi-card p {
  margin: 0;
  color: #00ae9d;
  font-size: clamp(34px, 3.6vw, 56px);
  line-height: 1;
  font-weight: 700;
}

.activities27-section,
.activities27-streams {
  margin-top: 18px;
}

.activities27-clusters {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.activities27-cluster h4 {
  margin: 0 0 8px;
  color: #003247;
  font-size: 22px;
  line-height: 1.2;
}

.activities27-cluster p {
  margin: 0;
  color: rgba(0, 50, 71, .78);
  font-size: 16px;
}

.activities27-cluster-thumb {
  display: block;
  margin: -6px -6px 10px;
}

.activities27-cluster-thumb img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border: 1px solid rgba(0, 50, 71, .12);
}

.activities27-streams {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.activities27-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.activities27-list li {
  border-top: 1px solid rgba(0, 50, 71, .14);
  padding-top: 10px;
}

.activities27-item-row {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 10px;
  align-items: start;
}

.activities27-item-thumb img {
  width: 62px;
  height: 62px;
  object-fit: cover;
  border: 1px solid rgba(0, 50, 71, .14);
}

.activities27-item-copy {
  min-width: 0;
}

.activities27-list strong {
  display: block;
  color: #003247;
  font-size: 21px;
  line-height: 1.3;
}

.activities27-list span {
  display: block;
  margin-top: 5px;
  color: rgba(0, 50, 71, .72);
  font-size: 16px;
}

@media (max-width: 1100px) {
  .activities27-hero,
  .activities27-streams {
    grid-template-columns: 1fr;
  }

  .activities27-kpi {
    grid-template-columns: 1fr 1fr;
  }

  .activities27-clusters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .activities27-content {
    width: calc(100% - 24px);
  }

  .activities27-kpi,
  .activities27-clusters {
    grid-template-columns: 1fr;
  }

  .activities27-item-row {
    grid-template-columns: 54px 1fr;
    gap: 8px;
  }

  .activities27-item-thumb img {
    width: 54px;
    height: 54px;
  }
}

.activities27-cluster h4 a,
.activities27-list strong a {
  color: #003247;
  text-decoration: none;
}

.activities27-cluster h4 a:hover,
.activities27-list strong a:hover {
  color: #00ae9d;
  text-decoration: underline;
}

/* ============================================
   SHARED COMPONENTS
   Cursors, arrow icons, home sections (How to apply, Activities
   preview), footer social links, activity filters and cards,
   country flag cards and the delegation modal.
   ============================================ */
body,
.home-page,
a,
button,
[role="button"],
[role="link"],
.news-grid-item,
.sp-card,
.tr-card,
.vid-card,
.rec-card {
  cursor: auto;
}

a,
button,
[role="button"],
[role="link"],
.news-grid-item,
.sp-card,
.tr-card,
.vid-card,
.rec-card {
  cursor: pointer;
}

.icon-arrow {
  display: inline-block;
  width: .72rem;
  height: .72rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  flex: 0 0 auto;
}

.btn-fire {
  border-radius: 2px;
  cursor: pointer;
}

.btn-fire::before,
.fx-card::after {
  display: none;
}

.sec-actions {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.section-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 9px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--fire);
}

.tr-card.is-hidden {
  display: none;
}

.latest-tabs .sec-tab {
  color: #003247;
  border-color: rgba(0, 50, 71, .28);
  background: rgba(255, 255, 255, .84);
}

.latest-tabs .sec-tab.active,
.latest-tabs .sec-tab:hover,
.latest-tabs .sec-tab:focus-visible {
  color: #fff;
  background: var(--fire);
  border-color: var(--fire);
}

.how-apply-home {
  min-height: 360px;
  padding: 112px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    linear-gradient(90deg, rgba(0, 54, 94, .78), rgba(0, 147, 164, .52)),
    radial-gradient(circle at 29% 42%, rgba(190, 238, 230, .42) 0 74px, transparent 76px),
    radial-gradient(circle at 34% 82%, rgba(190, 238, 230, .28) 0 92px, transparent 94px),
    radial-gradient(circle at 58% 2%, rgba(190, 238, 230, .18) 0 118px, transparent 120px),
    radial-gradient(circle at 84% 57%, rgba(190, 238, 230, .22) 0 94px, transparent 96px),
    radial-gradient(circle at 93% 76%, rgba(190, 238, 230, .18) 0 88px, transparent 90px),
    linear-gradient(135deg, #0d4f88 0%, #2aa8b2 100%);
  background-size: cover;
  color: #fff;
  text-align: center;
  overflow: hidden;
}

.how-apply-home .sec-title,
.how-apply-home .sec-title em {
  color: #fff;
}

.how-apply-home .sec-head,
.activities-preview .sec-head {
  align-items: center;
}

.how-apply-home .sec-head {
  width: min(1180px, 100%);
  margin: 0;
  display: grid;
  justify-items: center;
  gap: 34px;
}

.how-apply-home .sec-head > div {
  display: contents;
}

.how-apply-home .sec-title {
  font-size: 0;
  line-height: 1;
}

.how-apply-home .sec-title::before {
  content: 'One continuously open Call for Proposals to support your ideas';
  display: block;
  font-family: 'NotesEsa', sans-serif;
  font-size: clamp(32px, 4.2vw, 58px);
  font-weight: 700;
  line-height: 1.12;
  color: #fff;
}

.how-apply-home .btn-fire {
  justify-content: center;
  padding: 14px 36px;
  background: #00ae9d;
  box-shadow: none;
}

.how-apply-home .btn-fire:hover {
  background: #058f82;
}

.how-apply-home .apply-home-grid {
  display: none;
}

.apply-home-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.apply-home-card {
  min-height: 220px;
  padding: 28px;
  border: 1px solid rgba(0,50,71,.16);
  background: #fff;
  color: #003247;
}

.apply-home-step {
  display: inline-block;
  margin-bottom: 34px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  letter-spacing: 3px;
  color: var(--fire);
}

.apply-home-card h3 {
  margin-bottom: 12px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 26px;
  line-height: 1.1;
}

.apply-home-card p {
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: rgba(0,50,71,.78);
}

.activities-preview {
  background: #003247;
  padding: 100px 80px;
}

.activities-preview .sec-head {
  padding-right: 0;
}

.activities-preview-scroll {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding-right: 0;
  overflow: visible;
  scroll-snap-type: none;
}

.activities-preview .rec-card {
  width: auto;
  min-width: 0;
  scroll-snap-align: none;
}

.activity-preview-card .rec-meta {
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  letter-spacing: 2px;
  color: var(--fire);
}

.activity-preview-card .rec-badge {
  background: rgba(0,174,157,.92);
  color: #fff;
}

.activity-preview-card .rec-thumb {
  background: #e9eff1;
  aspect-ratio: 16 / 10;
}

.activity-preview-card .rec-thumb-inner.has-image-url {
  inset: 12px;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  box-shadow: none;
}

.activity-preview-card:hover .rec-thumb-inner {
  transform: none;
}

/* Home activities preview: white image area (overrides the grey #e9eff1 above).
   The card keeps its blue background and light text. */
.activity-preview-card .rec-thumb {
  background: #fff !important;
}

.footer-nav {
  grid-template-columns: repeat(3, 1fr);
}

.fn-social-links a::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--fire);
}

.activities-filter-panel {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
  gap: 14px;
  align-items: end;
  margin: 34px 0;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
}

.activities-filter-panel label {
  display: grid;
  gap: 8px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ash);
}

.activities-filter-panel select,
.activities27-search-panel input {
  width: 100%;
  min-height: 42px;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(0,50,71,.86);
  color: var(--pure);
  padding: 0 12px;
  font-family: 'NotesEsa', sans-serif;
}

.activities-status-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.activities-filter-btn {
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid rgba(255,255,255,.28);
  background: transparent;
  color: var(--pure);
  font-family: 'NotesEsa', sans-serif;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.activities-filter-btn.active,
.activities-filter-btn:hover {
  border-color: var(--fire);
  background: var(--fire);
}

.activities-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.activities-portfolio-card {
  display: grid;
  grid-template-rows: auto 1fr;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  overflow: hidden;
}

.activities-portfolio-card[hidden] {
  display: none;
}

.activities-portfolio-thumb {
  display: block;
  aspect-ratio: 16 / 9;
  background: #003247;
  overflow: hidden;
}

.activities-portfolio-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #003247;
}

.activities-portfolio-copy {
  padding: 18px;
}

.activities-portfolio-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 9px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--fire);
}

.activities-portfolio-card h3 {
  margin-bottom: 10px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 21px;
  line-height: 1.2;
  color: var(--pure);
}

.activities-portfolio-card p {
  font-size: 13px;
  line-height: 1.55;
  color: var(--ash);
}

.activities-portfolio-country {
  margin-top: 16px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--pure);
}

.activities-empty {
  margin-top: 20px;
  color: var(--ash);
}

.additional-country-list li {
  padding: 0;
}

.flag-card {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: center;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
  padding: 16px;
}

.flag-card:focus-visible {
  outline: 2px solid var(--fire);
  outline-offset: -2px;
}

.delegation-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.delegation-modal.open {
  display: flex;
}

.delegation-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,20,30,.72);
}

.delegation-modal__dialog {
  position: relative;
  width: min(520px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 30px;
  background: #fff;
  color: #003247;
  box-shadow: 0 24px 70px rgba(0,0,0,.35);
}

.delegation-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  border: 1px solid rgba(0,50,71,.2);
  background: transparent;
  color: #003247;
  padding: 8px 12px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

.delegation-modal__eyebrow {
  margin-bottom: 8px;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--fire);
}

.delegation-modal__dialog h2 {
  margin-bottom: 20px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 32px;
}

.delegation-modal__body ul {
  list-style: none;
  display: grid;
  gap: 12px;
}

.delegation-modal__body li {
  display: grid;
  gap: 4px;
  padding: 12px 0;
  border-top: 1px solid rgba(0,50,71,.12);
}

.delegation-modal__body a {
  color: var(--fire);
}

.modal-open {
  overflow: hidden;
}

@media (max-width: 900px) {
  .sec-head,
  .how-apply-home .sec-head,
  .activities-preview .sec-head {
    align-items: flex-start;
    gap: 20px;
  }

  .apply-home-grid,
  .activities-portfolio-grid,
  .footer-nav {
    grid-template-columns: 1fr;
  }

  .activities-filter-panel {
    grid-template-columns: 1fr;
  }
}

/* Inner-page layout: content columns use --article-width instead of the full
   viewport width, and text is capped at --reading-measure. */
body:not(.home-page) .page-shell {
  display: block;
}

body:not(.home-page) .page-content,
body:not(.home-page) .apply-content,
body:not(.home-page) .info-content,
body:not(.home-page) .delegation-content,
body:not(.home-page) .comm26-content,
body:not(.home-page) .docs26-content,
body:not(.home-page) .docs-mirror-content,
body:not(.home-page) .news26-content,
body:not(.home-page) .contact26-content,
body:not(.home-page) .partner26-content,
body:not(.home-page) .activities27-content {
  max-width: var(--article-width) !important;
  width: min(var(--article-width), calc(100% - (var(--site-gutter) * 2))) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0;
  padding-right: 0;
}

body:not(.home-page) .page-title,
body:not(.home-page) .page-lead,
body:not(.home-page) .page-meta,
body:not(.home-page) .page-copy,
body:not(.home-page) .page-copy p,
body:not(.home-page) .page-list,
body:not(.home-page) .additional-block > p,
body:not(.home-page) .info-content > p,
body:not(.home-page) .apply-step-body p,
body:not(.home-page) .faq26-item p,
body:not(.home-page) .faq26-item li,
body:not(.home-page) .news26-excerpt,
body:not(.home-page) .news26-event-note,
body:not(.home-page) .contact26-withdraw,
body:not(.home-page) .partner26-panel p {
  max-width: var(--reading-measure);
}

body:not(.home-page) .page-title,
body:not(.home-page) .page-lead,
body:not(.home-page) .page-meta {
  margin-left: 0;
  margin-right: auto;
}

body:not(.home-page) .page-lead {
  font-size: clamp(20px, 2vw, 25px);
  line-height: 1.55;
}

body:not(.home-page) .page-copy,
body:not(.home-page) main p,
body:not(.home-page) main li {
  line-height: 1.72;
}

body:not(.home-page) .page-nav {
  max-width: var(--reading-measure);
}

body:not(.home-page) .hta-intro,
body:not(.home-page) .activities27-hero,
body:not(.home-page) .activities27-streams,
body:not(.home-page) .activities-filter-panel {
  grid-template-columns: 1fr;
}

body:not(.home-page) .wwlf-segment,
body:not(.home-page) .wwlf-segment.is-reverse {
  grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
}

body:not(.home-page) .wwlf-intro,
body:not(.home-page) .additional-cycles,
body:not(.home-page) .delegation-grid,
body:not(.home-page) .activities27-kpi,
body:not(.home-page) .activities-portfolio-grid,
body:not(.home-page) .news26-grid,
body:not(.home-page) .docs27-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body:not(.home-page) .additional-country-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body:not(.home-page) .activities27-content .page-title,
body:not(.home-page) .activities27-content .page-lead,
body:not(.home-page) .activities27-content .page-meta,
body:not(.home-page) .activities27-content .page-subtitle {
  color: #003247;
}

body:not(.home-page) .activities27-panel,
body:not(.home-page) .activities27-kpi-card,
body:not(.home-page) .activities-portfolio-card {
  background-color: #fff;
}

body:not(.home-page) .activities-portfolio-card {
  border-color: rgba(0, 50, 71, .16);
  box-shadow: 0 18px 50px rgba(0, 50, 71, .08);
}

body:not(.home-page) .activities-portfolio-card h3,
body:not(.home-page) .activities-portfolio-card h3 a {
  color: #003247;
}

body:not(.home-page) .activities-portfolio-card p {
  color: rgba(0, 50, 71, .78);
}

body:not(.home-page) .activities-portfolio-country {
  color: #003247;
}

body:not(.home-page) .activities27-kpi {
  max-width: var(--article-wide);
}

body:not(.home-page) .activities-filter-panel {
  max-width: var(--article-wide);
}

body:not(.home-page) .activities-portfolio-grid {
  max-width: var(--article-wide);
}

body:not(.home-page) .activities27-page .activities27-content {
  max-width: none !important;
  width: min(100% - 56px, 1500px) !important;
}

body:not(.home-page) .activities27-page .activities27-hero,
body:not(.home-page) .activities27-page .activities-filter-panel,
body:not(.home-page) .activities27-page .activities27-kpi,
body:not(.home-page) .activities27-page .activities-portfolio-grid {
  max-width: none;
}

body:not(.home-page) .activities27-page .activities-portfolio-grid {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

body:not(.home-page) .activities27-page {
  background: #f6fbfc;
}

body:not(.home-page) .activities27-page .page-crumb {
  margin-top: 20px;
  color: rgba(0, 50, 71, .72);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
}

body:not(.home-page) .activities27-page .page-crumb a {
  color: #003247;
  text-decoration: none;
}

body:not(.home-page) .activities27-page .page-title {
  margin-top: 14px;
  margin-bottom: 30px;
  font-size: clamp(46px, 5.2vw, 76px);
  line-height: 1;
  max-width: none;
}

body:not(.home-page) .activities27-page .page-meta {
  display: none;
}

body:not(.home-page) .activities27-page .activities-filter-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  margin: 0 0 34px;
  padding: 0 0 28px;
  border: 0;
  border-bottom: 1px solid rgba(0, 50, 71, .18);
  background: transparent;
}

body:not(.home-page) .activities27-page .activities-filter-panel h2 {
  margin: 0;
  color: #003247;
  font-size: 24px;
  line-height: 1.2;
}

body:not(.home-page) .activities27-page .activities-filter-row {
  display: grid;
  grid-template-columns: minmax(210px, .75fr) minmax(180px, .55fr) minmax(230px, .8fr) minmax(220px, .7fr);
  gap: 14px;
  align-items: end;
}

body:not(.home-page) .activities27-page .activities-filter-row--wide {
  display: flex;
  align-items: center;
  gap: 8px 16px;
  flex-wrap: wrap;
}

body:not(.home-page) .activities27-page .activities-filter-row > span,
body:not(.home-page) .activities27-page .activities-filter-row label > span,
body:not(.home-page) .activities27-page .activities-filter-row > div > span {
  display: block;
  margin-bottom: 9px;
  color: #003247;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

body:not(.home-page) .activities27-page .activities-filter-chip,
body:not(.home-page) .activities27-page .activities-filter-btn {
  min-height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

body:not(.home-page) .activities27-page .activities-filter-chip.active,
body:not(.home-page) .activities27-page .activities-filter-chip:hover,
body:not(.home-page) .activities27-page .activities-filter-btn.active,
body:not(.home-page) .activities27-page .activities-filter-btn:hover {
  color: #00ae9d;
  background: transparent;
}

body:not(.home-page) .activities27-page .activities-status-filters {
  gap: 14px;
}

body:not(.home-page) .activities27-page .activities-filter-panel select,
body:not(.home-page) .activities27-page .activities-filter-panel input {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(0, 50, 71, .22);
  background: #fff;
  color: #003247;
  padding: 0 12px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
}

body:not(.home-page) .activities27-page .activities-reset-btn {
  justify-self: start;
  padding: 0;
  border: 0;
  background: transparent;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

body:not(.home-page) .activities27-page .activities27-head {
  display: none;
}

body:not(.home-page) .activities27-page .activities-portfolio-grid {
  gap: 18px;
}

body:not(.home-page) .activities27-page .activities-portfolio-card {
  background: #fff;
  border: 1px solid rgba(0, 50, 71, .12);
  box-shadow: none;
  min-height: 100%;
}

body:not(.home-page) .activities27-page .activities-portfolio-thumb {
  aspect-ratio: 16 / 10;
  background: #fff;
  border-bottom: 1px solid rgba(0, 50, 71, .08);
}

body:not(.home-page) .activities27-page .activities-portfolio-thumb img {
  object-fit: contain;
  padding: 18px;
  background: #fff;
}

body:not(.home-page) .activities27-page .activities-portfolio-copy {
  padding: 16px 16px 18px;
}

body:not(.home-page) .activities27-page .activities-portfolio-meta {
  color: #00ae9d;
  font-size: 11px;
  letter-spacing: 0;
}

body:not(.home-page) .activities27-page .activities-portfolio-card h3 {
  font-family: 'NotesEsa', sans-serif;
  font-size: 20px;
  line-height: 1.22;
}

body:not(.home-page) .activities27-page .activities-portfolio-card p {
  color: rgba(0, 50, 71, .82);
  font-size: 14px;
}

body:not(.home-page) .activities27-page .activities-load-more {
  margin: 34px auto 0;
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 24px;
  border: 1px solid #003247;
  background: transparent;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
}

body:not(.home-page) .activities27-page .activities-load-more[hidden] {
  display: none;
}

body:not(.home-page) .nr26-table-wrap,
body:not(.home-page) .docs27-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

@media (max-width: 760px) {
  body:not(.home-page) .page-content,
  body:not(.home-page) .apply-content,
  body:not(.home-page) .info-content,
  body:not(.home-page) .delegation-content,
  body:not(.home-page) .comm26-content,
  body:not(.home-page) .docs26-content,
  body:not(.home-page) .docs-mirror-content,
  body:not(.home-page) .news26-content,
  body:not(.home-page) .contact26-content,
  body:not(.home-page) .partner26-content,
  body:not(.home-page) .activities27-content {
    width: calc(100% - 28px) !important;
  }

  body:not(.home-page) .activities27-page .activities27-content {
    width: calc(100% - 28px) !important;
  }

  body:not(.home-page) .activities27-page .page-title {
    font-size: clamp(42px, 14vw, 64px);
  }

  body:not(.home-page) .activities27-page .activities-filter-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  body:not(.home-page) .wwlf-intro,
  body:not(.home-page) .wwlf-segment,
  body:not(.home-page) .wwlf-segment.is-reverse,
  body:not(.home-page) .additional-cycles,
  body:not(.home-page) .delegation-grid,
  body:not(.home-page) .activities27-kpi,
  body:not(.home-page) .activities-portfolio-grid,
  body:not(.home-page) .news26-grid,
  body:not(.home-page) .docs27-grid,
  body:not(.home-page) .additional-country-list {
    grid-template-columns: 1fr;
  }

  body:not(.home-page) .activities27-page .activities-portfolio-grid {
    grid-template-columns: 1fr;
  }
}

/* Footer: column layout (.footer-nav, .fn-col) and SVG social icons. */
footer.site-footer {
  background: var(--void);
  border-top: 1px solid var(--rule);
  color: #fff;
}

footer.site-footer .footer-nav,
footer.site-footer .footer-bottom {
  width: min(1280px, 100%);
  margin: 0 auto;
}

footer.site-footer .footer-nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid #00AE9D;
  border-bottom: 1px solid #00AE9D;
  background: transparent;
}

footer.site-footer .fn-col {
  padding: 46px 48px;
  border-right: 1px solid #00AE9D;
}

footer.site-footer .fn-col:last-child {
  border-right: 0;
}

footer.site-footer .fn-head {
  color: #fff;
  letter-spacing: 0;
  text-transform: none;
}

footer.site-footer .fn-links a {
  color: rgba(255,255,255,.72);
}

footer.site-footer .fn-links a::before {
  color: var(--fire);
}

footer.site-footer .fn-links a:hover {
  color: #fff;
}

footer.site-footer .fn-social-links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  list-style: none;
}

footer.site-footer .fn-social-links li {
  margin: 0;
}

footer.site-footer .fn-social-links a {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.72);
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  transition: color .2s ease;
}

footer.site-footer .fn-social-links a::before {
  display: none;
}

footer.site-footer .fn-social-links a:hover {
  background: transparent;
  border-color: transparent;
  transform: none;
  color: var(--fire);
}

footer.site-footer .fn-social-links img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex: 0 0 auto;
  filter: brightness(0) invert(1);
  opacity: .82;
  transition: opacity .2s ease;
}

footer.site-footer .fn-social-links a:hover img {
  opacity: 1;
}

footer.site-footer .footer-bottom {
  padding: 24px 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  border: 0;
}

footer.site-footer .fb-logo {
  margin-right: 0;
}

footer.site-footer .fb-esa {
  color: #fff;
}

footer.site-footer .footer-bottom p {
  max-width: 460px;
  color: var(--fog);
  text-align: right;
}

@media (max-width: 900px) {
  footer.site-footer .footer-nav,
  footer.site-footer .footer-bottom {
    width: 100%;
  }

  footer.site-footer .footer-nav {
    grid-template-columns: 1fr;
  }

  footer.site-footer .fn-col {
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.16);
  }

  footer.site-footer .fn-col:last-child {
    border-bottom: 0;
  }

  footer.site-footer .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }

  footer.site-footer .footer-bottom p {
    text-align: left;
  }
}

@media (max-width: 560px) {
  footer.site-footer .fn-col {
    padding: 26px 22px;
  }

  footer.site-footer .footer-bottom {
    padding: 22px;
  }
}

/* Footer: styles for the markup in footer.php (shell, hero, link groups,
   social and contact cards). They come after the column-layout rules above
   and override them where both set the same property. */
footer.site-footer {
  position: relative;
  overflow: hidden;
  background: #003247;
  border-top: 0;
}

footer.site-footer .footer-orbit {
  display: none;
}

footer.site-footer .footer-shell {
  width: min(1280px, calc(100% - 48px));
  margin: 0 auto;
}

footer.site-footer .footer-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 32px;
  align-items: end;
  padding: 58px 0 36px;
  border-bottom: 0;
}

footer.site-footer .footer-hero-copy {
  max-width: 720px;
}

footer.site-footer .footer-hero-copy h2 {
  margin: 0 0 12px;
  font-family: 'NotesEsa', sans-serif;
  font-size: clamp(30px, 4vw, 56px);
  line-height: 1.04;
  color: #fff;
}

footer.site-footer .footer-hero-copy p,
footer.site-footer .footer-brand-card p,
footer.site-footer .footer-bottom p {
  margin: 0;
  max-width: none;
  color: rgba(255, 255, 255, .72);
  font-family: 'NotesEsa', sans-serif;
  line-height: 1.65;
  letter-spacing: 0;
  text-align: left;
}

footer.site-footer .footer-main-cta {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 0 22px;
  border: 1px solid #00ae9d;
  background: #00ae9d;
  color: #fff;
  font-family: 'NotesEsa', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}

footer.site-footer .footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .9fr);
  column-gap: clamp(24px, 4vw, 56px);
  border-bottom: 0;
}

footer.site-footer .footer-link-group,
footer.site-footer .footer-social-card,
footer.site-footer .footer-contact-card {
  padding: 34px 0;
  border-right: 0;
}

footer.site-footer .footer-social-card {
  border-right: 0;
}

footer.site-footer .footer-brand-mark {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  color: #fff;
  font-family: 'NotesEsa', sans-serif;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

footer.site-footer .footer-brand-mark i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #00ae9d;
}

footer.site-footer .footer-link-group h3,
footer.site-footer .footer-social-card h3,
footer.site-footer .footer-contact-card h3 {
  margin: 0 0 18px;
  color: #fff;
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  line-height: 1.2;
}

footer.site-footer .footer-contact-card .footer-main-cta {
  width: 100%;
  justify-content: space-between;
}

footer.site-footer .footer-link-group ul {
  display: grid;
  gap: 11px;
  margin: 0;
  padding: 0;
  list-style: none;
}

footer.site-footer .footer-link-group a {
  color: rgba(255, 255, 255, .72);
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  line-height: 1.35;
  transition: color .2s ease;
}

footer.site-footer .footer-link-group a:hover {
  color: #00ae9d;
}

footer.site-footer .footer-social-grid {
  display: grid;
  gap: 10px;
}

footer.site-footer .footer-social-grid a {
  min-height: 36px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, .76);
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
}

footer.site-footer .footer-social-grid img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  filter: none;
  opacity: .86;
}

footer.site-footer .footer-bottom {
  width: 100%;
  padding: 22px 0 28px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 24px;
}

footer.site-footer .footer-bottom p {
  max-width: 620px;
  font-size: 12px;
}

@media (max-width: 980px) {
  footer.site-footer .footer-hero,
  footer.site-footer .footer-grid {
    grid-template-columns: 1fr;
  }

  footer.site-footer .footer-link-group,
  footer.site-footer .footer-social-card,
  footer.site-footer .footer-contact-card {
    border-right: 0;
    border-bottom: 0;
  }

  footer.site-footer .footer-social-card {
    border-bottom: 0;
  }
}

@media (max-width: 620px) {
  footer.site-footer .footer-shell {
    width: calc(100% - 28px);
  }

  footer.site-footer .footer-hero {
    padding-top: 38px;
  }

  footer.site-footer .footer-link-group,
  footer.site-footer .footer-social-card,
  footer.site-footer .footer-contact-card {
    padding: 26px 0;
  }

  footer.site-footer .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* ============================================
   COMPONENT OVERRIDES
   Icon cards, contact form, activity cards, site-wide surfaces,
   funding tables, delegation modal and the mobile home hero.
   ============================================ */

/* What we are looking for: icon cards scale up slightly on hover, with a light
   border and shadow. */
.page-shell--wwlf .wwlf-icon-card {
  padding: 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.page-shell--wwlf .wwlf-icon-card:hover {
  transform: scale(1.05);
  border-color: rgba(0, 174, 157, .38);
  background: rgba(255, 255, 255, .28);
  box-shadow: 0 12px 30px rgba(0, 50, 71, .1);
}

/* Contact: open field groups, quiet controls and a single primary action. */
.contact26-body {
  border-top: 0;
  margin-top: 12px;
  padding-top: 12px;
}

.contact26-form {
  gap: 24px;
}

.contact26-fieldset {
  min-inline-size: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.contact26-fieldset legend {
  margin-bottom: 12px;
  padding: 0;
  font-weight: 700;
}

.contact26-grid {
  gap: 14px;
}

.contact26-form input,
.contact26-form textarea {
  border: 0;
  background: rgba(0, 50, 71, .055);
  box-shadow: inset 0 -1px 0 rgba(0, 50, 71, .18);
  transition: background-color .2s ease, box-shadow .2s ease;
}

.contact26-form input:focus,
.contact26-form textarea:focus {
  border-color: transparent;
  background: rgba(255, 255, 255, .68);
  box-shadow: inset 0 -2px 0 #00ae9d, 0 0 0 3px rgba(0, 174, 157, .1);
}

.contact26-consent-row {
  margin-top: 16px;
  padding-top: 0;
  border-top: 0;
}

.contact26-choice input[type='radio'] {
  padding: 0;
  background: initial;
  box-shadow: none;
  accent-color: #00ae9d;
}

.contact26-captcha-code {
  border: 0;
  background: rgba(0, 50, 71, .065);
  box-shadow: inset 0 -1px 0 rgba(0, 50, 71, .18);
}

.contact26-privacy-copy {
  max-width: 680px;
  margin: 2px 0 0;
  color: rgba(0, 50, 71, .7);
  font-size: 13px;
  line-height: 1.55;
}

.contact26-privacy-copy a {
  color: #003247;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(0, 174, 157, .55);
  text-underline-offset: 3px;
}

.contact26-submit-actions {
  margin-top: -12px;
}

.contact26-secondary-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 30px;
  color: rgba(0, 50, 71, .72);
  font-size: 13px;
}

/* Activity cards: no border, a white image area, a separate Prime line and a
   small country flag. */
.activity-preview-card .rec-meta {
  line-height: 1.35;
  letter-spacing: .6px;
  overflow-wrap: anywhere;
  text-transform: none;
}

body:not(.home-page) .activities27-page .activities-portfolio-card {
  border: 0;
  background: rgba(255, 255, 255, .72);
  box-shadow: 0 10px 28px rgba(0, 50, 71, .075);
}

body:not(.home-page) .activities27-page .activities-portfolio-thumb {
  border-bottom: 0;
  background: #fff;
}

body:not(.home-page) .activities27-page .activities-portfolio-thumb img {
  object-fit: contain;
  object-position: center center;
  padding: 12px;
  background: #fff;
}

body:not(.home-page) .activities27-page .activities-filter-panel {
  border-bottom: 0;
}

.activities-portfolio-prime {
  margin-top: 12px;
  color: rgba(0, 50, 71, .82);
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  line-height: 1.45;
}

.activities-portfolio-prime strong {
  color: #003247;
}

.activities-portfolio-country {
  width: fit-content;
  min-width: 34px;
  min-height: 22px;
  display: inline-grid;
  place-items: center;
  margin-top: 14px;
  letter-spacing: 0;
}

.activities-portfolio-flag {
  display: block;
  width: 34px;
  height: 23px;
  object-fit: cover;
  box-shadow: 0 2px 8px rgba(0, 50, 71, .13);
}

.activities-portfolio-flag-fallback {
  display: grid;
  place-items: center;
  width: 34px;
  height: 23px;
  background: rgba(0, 50, 71, .08);
  color: rgba(0, 50, 71, .55);
  font-size: 12px;
}

/* Site-wide surfaces: no borders or frames around content blocks; cards stand
   out through a soft background and shadow. Data tables keep their lines. */
.apply-steps,
.apply-step,
.apply-step:last-child,
.partner26-panel,
.additional-block {
  border-top: 0;
  border-bottom: 0;
}

.apply-step-list {
  gap: 6px;
}

.partner26-card {
  border: 0;
  background: transparent;
  padding-right: 0;
  padding-left: 0;
}

.docs27-toolbar {
  border: 0;
  background: transparent;
  padding-right: 0;
  padding-left: 0;
}

.docs27-toolbar input {
  border: 0;
  background: rgba(0, 50, 71, .055);
  box-shadow: inset 0 -1px 0 rgba(0, 50, 71, .18);
}

.docs27-item {
  border: 0;
  background: rgba(255, 255, 255, .6);
  box-shadow: 0 8px 24px rgba(0, 50, 71, .06);
}

.docs27-file {
  border: 0;
}

.docs26-stat,
.docs26-toolbar,
.docs26-category,
.docs26-side,
.docs26-side-links a {
  border: 0;
}

.docs26-stat,
.docs26-category,
.docs26-side,
.docs26-side-links a {
  background: rgba(255, 255, 255, .075);
}

.docs26-toolbar {
  background: rgba(3, 50, 69, .92);
  box-shadow: 0 10px 28px rgba(0, 19, 29, .18);
}

.docs26-search {
  border: 0;
  background: rgba(255, 255, 255, .09);
  box-shadow: inset 0 -1px 0 rgba(0, 174, 157, .4);
}

.docs26-category,
.docs26-side {
  box-shadow: 0 10px 28px rgba(0, 19, 29, .16);
}

.docs26-cat-head,
.docs26-links li {
  border-bottom: 0;
  border-top: 0;
}

.partner26-panel.faq26-panel,
.partner26-panel.faq26-panel:hover {
  border: 0;
  background: rgba(255, 255, 255, .58);
  box-shadow: 0 8px 24px rgba(0, 50, 71, .055);
  transform: none;
}

.faq26-item,
.faq26-item:first-child {
  border-top: 0;
}

.additional-cycle-card,
.additional-country-list li,
.flag-card {
  border: 0;
}

.additional-cycle-card {
  background: rgba(255, 255, 255, .58);
  box-shadow: 0 8px 24px rgba(0, 50, 71, .055);
}

.additional-figure {
  border: 0;
  background: transparent;
  padding: 0;
}

.additional-country-list li,
.flag-card {
  background: transparent;
  box-shadow: none;
}

.additional-country-list .country-flag,
.additional-country-list .country-name {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.additional-country-list .flag-card {
  cursor: pointer;
  transition: color .2s ease, transform .2s ease;
}

.additional-country-list .flag-card:hover {
  background: transparent;
  color: #008f82;
  transform: translateX(4px);
}

.additional-country-list .flag-card:focus-visible {
  outline: 2px solid #00ae9d;
  outline-offset: 2px;
  background: transparent;
}

.additional-country-list .country-flag {
  transition: transform .2s ease, box-shadow .2s ease;
}

.additional-country-list .flag-card:hover .country-flag {
  transform: scale(1.06);
  box-shadow: 0 3px 10px rgba(0, 50, 71, .16);
}

/* Funding tables (Additional application information): HTML tables with a
   visually hidden caption, scrolling horizontally when wider than the column;
   below 761px each row becomes a card. */
.additional-table-wrap {
  width: 100%;
  max-width: 100%;
  margin: 20px 0 10px;
  overflow-x: auto;
  border: 1px solid rgba(0, 50, 71, .12);
  background: transparent;
  scrollbar-color: #00ae9d rgba(0, 50, 71, .08);
  scrollbar-width: thin;
}

.additional-table-wrap:focus-visible {
  outline: 2px solid #00ae9d;
  outline-offset: 3px;
}

.additional-data-table {
  width: 100%;
  min-width: 1080px;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
  line-height: 1.4;
}

.additional-data-table--objectives {
  min-width: 920px;
}

.additional-table-caption {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.additional-data-table th,
.additional-data-table td {
  padding: 16px 14px;
  border-right: 1px solid rgba(255, 255, 255, .78);
  border-bottom: 1px solid rgba(255, 255, 255, .78);
  vertical-align: middle;
  text-align: center;
  overflow-wrap: anywhere;
}

.additional-data-table tr > :last-child {
  border-right: 0;
}

.additional-data-table tbody tr:last-child > * {
  border-bottom: 0;
}

.additional-data-table thead th {
  background: #48a8a2;
  color: #fff;
  font-weight: 700;
}

.additional-data-table thead tr:nth-child(2) th {
  background: #dcecea;
  color: #003247;
}

.additional-data-table thead small {
  display: block;
  margin-top: 3px;
  font-size: .82em;
  font-weight: 400;
}

.additional-data-table tbody th {
  background: #79c5b3;
  color: #fff;
  font-weight: 700;
}

.additional-data-table tbody td {
  background: rgba(0, 50, 71, .055);
}

.additional-data-table tbody tr:nth-child(even) td {
  background: rgba(0, 50, 71, .085);
}

.additional-data-table sup,
.additional-table-note sup {
  color: #008f82;
  font-weight: 700;
}

.additional-table-note {
  margin: 0 0 26px;
  color: rgba(0, 50, 71, .76);
  font-size: 12px;
}

.additional-objective-lines {
  text-align: center;
}

.additional-objective-lines span {
  display: block;
}

.additional-objective-lines span + span {
  margin-top: 10px;
}

.additional-col-cycle { width: 17%; }
.additional-col-trl,
.additional-col-asrl { width: 14%; }
.additional-col-company { width: 12%; }
.additional-col-research { width: 31%; }
.additional-col-activity,
.additional-col-objective { width: 41.5%; }

/* Delegation modal: no separators; each name sits close to its email address. */
.delegation-modal__dialog h2 {
  margin-bottom: 16px;
}

.delegation-modal__body ul {
  gap: 14px;
}

.delegation-modal__body li {
  gap: 1px;
  padding: 0;
  border: 0;
}

.delegation-modal__body strong,
.delegation-modal__body a {
  line-height: 1.25;
}

@media (max-width: 760px) {
  .additional-table-wrap {
    margin-top: 16px;
    overflow: visible;
    border: 0;
  }

  .additional-data-table {
    display: block;
    min-width: 0;
    font-size: 14px;
  }

  .additional-data-table--objectives {
    min-width: 0;
  }

  .additional-data-table colgroup {
    display: none;
  }

  .additional-data-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  .additional-data-table tbody {
    display: grid;
    gap: 16px;
  }

  .additional-data-table tbody tr {
    display: block;
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(0, 50, 71, .13);
    background: rgba(0, 50, 71, .035);
  }

  .additional-data-table tbody th {
    display: block;
    width: 100%;
    padding: 13px 15px;
    border: 0;
    background: #48a8a2;
    text-align: left;
  }

  .additional-data-table tbody td {
    display: block;
    width: 100%;
    padding: 12px 15px;
    border: 0;
    border-bottom: 1px solid rgba(0, 50, 71, .09);
    background: transparent;
    text-align: left;
  }

  .additional-data-table tbody tr:nth-child(even) td {
    background: transparent;
  }

  .additional-data-table tbody td:last-child {
    border-bottom: 0;
  }

  .additional-data-table tbody td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    color: #008f82;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.25;
    text-transform: uppercase;
  }

  .additional-objective-lines {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-shell--wwlf .wwlf-icon-card,
  .page-shell--wwlf .wwlf-icon-card:hover {
    transform: none;
    transition: none;
  }
}

@media (max-width: 620px) {
  .contact26-secondary-actions {
    align-items: flex-start;
    flex-direction: column;
  }

  .activities-portfolio-flag {
    width: 32px;
    height: 21px;
  }
}

@media (max-width: 900px) {
  .activities-preview {
    padding: 72px 32px;
  }

  .activities-preview-scroll {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .activities-preview {
    padding: 56px 16px;
  }

  .activities-preview-scroll {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .activities-preview .rec-card {
    width: auto;
  }
}

/* Mobile home hero (up to 620px): as tall as the landscape video at full width
   plus the 56px header, instead of the full viewport; the video is
   letterboxed on black. */
@media (max-width: 620px) {
  .home-page .hero {
    height: calc(56px + 45.833333vw);
    min-height: 0;
    padding-top: 56px;
    background: #000;
  }

  .home-page .hero-canvas {
    inset: 56px 0 0;
    background: #000;
  }

  .home-page .hero-video {
    object-fit: contain;
    object-position: center center;
    background: #000;
  }

  .home-page .hero-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================================================
   UNIFIED TYPE SCALE
   A single scale for the whole site, modelled on incubed.esa.int: open
   heading line heights, a consistent hierarchy, constant title-to-text
   spacing. Everything from here to the end of the file comes after the
   earlier layers (TYPOGRAPHY - TEXT SIZES, inner-page layout, site-wide
   surfaces) and wins over them by source order at equal specificity.
   The mobile values of sections 1-8 are in the RESPONSIVE block right
   after section 8; the later sections carry their own media queries.
   ========================================================================= */

:root {
  --fs-display: clamp(38px, 5vw, 62px);   /* page title (h1) */
  --fs-h2:      clamp(30px, 3.4vw, 44px);
  --fs-h3:      clamp(21px, 2.1vw, 28px);
  --fs-h4:      20px;
  --fs-lead:    clamp(20px, 1.9vw, 24px);
  --fs-body:    19px;
  --fs-small:   16px;

  --lh-display: 1.14;   /* lower values make multi-line titles cramped */
  --lh-title:   1.28;
  --lh-lead:    1.4;   /* same line height as body text */
  --lh-body:    1.4;   /* line height for all running text */

  --rhythm:     22px;   /* constant title-to-text spacing */
}

/* ---- 1. Page title: consistent line height and spacing ---- */
body:not(.home-page) .page-title,
body:not(.home-page) .page-shell--wwlf .page-title {
  font-size: var(--fs-display);
  line-height: var(--lh-display);
  margin-bottom: var(--rhythm);
}

/* ---- 2. Section headings: one value on every page ---- */
body:not(.home-page) .apply-scheme-copy h2,
body:not(.home-page) .apply-steps h2,
body:not(.home-page) .apply-panel h2,
body:not(.home-page) .partner26-panel h2,
body:not(.home-page) .additional-block h2,
body:not(.home-page) .info-content h2 {
  font-size: var(--fs-h2);
  line-height: var(--lh-title);
  margin-bottom: var(--rhythm);
}

body:not(.home-page) .wwlf-segment-text h3,
body:not(.home-page) .apply-step-body h3,
body:not(.home-page) .partner26-card h3,
body:not(.home-page) .additional-block h3 {
  font-size: var(--fs-h3);
  line-height: var(--lh-title);
  margin-bottom: 12px;
}

/* ---- 3. Body text: one size and line height everywhere (--fs-body / --lh-body) ---- */
body:not(.home-page) .page-copy,
body:not(.home-page) .page-copy p,
body:not(.home-page) .page-list li,
body:not(.home-page) .apply-note,
body:not(.home-page) .apply-step-body p,
body:not(.home-page) .apply-panel p,
body:not(.home-page) .apply-scheme-copy p,
body:not(.home-page) .partner26-panel p,
body:not(.home-page) .additional-block > p,
body:not(.home-page) .additional-note,
body:not(.home-page) .info-content > p,
body:not(.home-page) main p,
body:not(.home-page) main li {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

/* ---- 4. Green leads: same treatment on every page (left bar) ---- */
body:not(.home-page) .page-lead,
body:not(.home-page) .apply-lead,
body:not(.home-page) .delegation-head .page-lead,
body:not(.home-page) .info-page .page-lead,
body:not(.home-page) .additional-page .page-lead {
  font-size: var(--fs-lead);
  line-height: var(--lh-lead);
  color: var(--fire);
  border-left: 4px solid var(--fire);
  padding-left: 16px;
  max-width: none;
  margin-bottom: var(--rhythm);
}

/* inline accent leads stay plain text, not blocks with a bar */
body:not(.home-page) .page-lead-accent:not(p),
body:not(.home-page) span.page-lead-accent {
  border-left: 0;
  padding-left: 0;
}

/* title -> intro spacing on What we are looking for */
.page-shell--wwlf .wwlf-intro {
  margin-top: var(--rhythm);
}

/* spacing between the green lead and the note on How to apply */
body:not(.home-page) .apply-lead + .apply-note,
body:not(.home-page) .apply-note {
  margin-top: var(--rhythm);
}

/* ---- 5. Text widths: no max-width, so text fills the content column ---- */
body:not(.home-page) .page-copy,
body:not(.home-page) .page-copy p,
body:not(.home-page) .page-list,
body:not(.home-page) .additional-block > p,
body:not(.home-page) .additional-note,
body:not(.home-page) .info-content > p,
body:not(.home-page) .apply-step-body p,
body:not(.home-page) .apply-scheme-copy p,
body:not(.home-page) .partner26-panel p,
body:not(.home-page) .faq26-item p,
body:not(.home-page) .faq26-item li,
body:not(.home-page) .page-nav {
  max-width: none;
}


/* ---- 6. national-delegations: 3-column grid (2 below 1024px, 1 below 620px) ---- */
body:not(.home-page) .delegation-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* ---- 7. additional-application-information: contact modal + flags ---- */
.delegation-modal__body strong {
  font-size: 14px;
}

.delegation-modal__body a {
  font-size: 13px;
}

.additional-country-list .country-flag {
  width: 31px;
  height: 23px;
  flex: 0 0 31px;
}

.additional-country-list .country-name {
  font-size: 23px;
  font-weight: 700;
}

/* ---- 8. Footer: column headings at 15px, hero tagline without a width cap ---- */
footer.site-footer .footer-link-group h3,
footer.site-footer .footer-social-card h3,
footer.site-footer .footer-contact-card h3 {
  font-size: 15px;
}

footer.site-footer .footer-hero-copy {
  max-width: none;
}

footer.site-footer .footer-hero-copy h2 {
  font-size: clamp(26px, 4vw, 50px);
  line-height: 1.12;
}

footer.site-footer .footer-hero-copy p {
  font-size: 19px;
}

/* ---- RESPONSIVE: media queries for sections 1-8 ----
   The mobile values are repeated here, after the sections they adjust:
   sections 1-8 come after the earlier media queries in the file and
   would otherwise override them at equal specificity. */

@media (max-width: 1024px) {
  body:not(.home-page) .delegation-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  :root {
    --fs-body:  17px;
    --fs-lead:  19px;
    --rhythm:   18px;
  }

  body:not(.home-page) .page-lead,
  body:not(.home-page) .apply-lead {
    padding-left: 12px;
    border-left-width: 3px;
  }

  .additional-country-list .country-name {
    font-size: 20px;
  }

  footer.site-footer .footer-hero-copy p {
    font-size: 17px;
  }
}

@media (max-width: 620px) {
  :root {
    --fs-body: 16px;
    --fs-lead: 18px;
  }

  body:not(.home-page) .delegation-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .nr26-table th {
    font-size: 17px;
  }
}

/* ---- 9. FAQ: soft cards, no dividers, circular indicator ----
   These come after the .faq26-item rules of the site-wide surfaces block.
   Note: leave the vertical padding/margin of .faq26-items alone; its height
   is set inline by the script that measures scrollHeight. */

.faq26-accordion {
  gap: 14px;
}

.faq26-category {
  border: 0;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 50, 71, .05), 0 10px 28px rgba(0, 50, 71, .06);
  overflow: hidden;
  transition: box-shadow .25s ease;
}

.faq26-category:hover {
  box-shadow: 0 1px 2px rgba(0, 50, 71, .06), 0 14px 34px rgba(0, 50, 71, .10);
}

.faq26-category[open] {
  box-shadow: 0 1px 2px rgba(0, 50, 71, .06), 0 16px 38px rgba(0, 50, 71, .11);
}

.faq26-category > summary {
  grid-template-columns: 1fr auto;
  gap: 18px;
  padding: 22px 26px;
  font-size: var(--fs-h3);
  line-height: var(--lh-title);
  font-weight: 700;
  transition: color .2s ease;
}

.faq26-category > summary:hover {
  color: #00867a;
}

.faq26-category > summary:focus-visible {
  outline: 2px solid #00ae9d;
  outline-offset: -4px;
}

.faq26-category > summary::after {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(0, 174, 157, .10);
  color: #00ae9d;
  font-size: 24px;
  font-weight: 400;
  transition: transform .28s ease, background .28s ease, color .28s ease;
}

.faq26-category[open] > summary::after {
  background: #00ae9d;
  color: #fff;
  transform: rotate(45deg);
}

.faq26-items {
  border-top: 0;
}

.faq26-item {
  border-top: 0;
  padding: 0 26px 20px;
}

.faq26-item h3 {
  font-size: 20px;
  line-height: 1.35;
  font-weight: 700;
  margin-bottom: 8px;
}

@media (max-width: 620px) {
  .faq26-category > summary {
    padding: 18px 18px;
    gap: 12px;
  }

  .faq26-category > summary::after {
    width: 28px;
    height: 28px;
    font-size: 20px;
  }

  .faq26-item {
    padding: 0 18px 16px;
  }
}

/* ---- 10. Documents: one box per category, clickable title, action on the right ---- */

.docs27-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 26px;
  padding: 0;
  border: 0;
  background: transparent;
}

.docs27-search-field {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1 1 380px;
  max-width: 560px;
  background: #fff;
  border: 1px solid rgba(0, 50, 71, .22);
  border-radius: 999px;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.docs27-search-field:focus-within {
  border-color: #00ae9d;
  box-shadow: 0 0 0 3px rgba(0, 174, 157, .18);
}

.docs27-search-ico {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin-left: 18px;
  fill: none;
  stroke: #00ae9d;
  stroke-width: 2;
  stroke-linecap: round;
}

.docs27-toolbar .docs27-search-field input {
  flex: 1 1 auto;
  min-width: 0;
  height: 50px;
  padding: 0 18px 0 12px;
  border: 0;
  outline: none;
  background: transparent;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 16px;
}

.docs27-toolbar .docs27-search-field input::placeholder {
  color: rgba(0, 50, 71, .5);
}

.docs27-toolbar .docs27-search-field input::-webkit-search-cancel-button {
  cursor: pointer;
}

.docs27-count {
  color: rgba(0, 50, 71, .62);
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
  letter-spacing: .4px;
  white-space: nowrap;
}

.docs27-groups {
  display: grid;
  gap: 20px;
}

.docs27-group {
  padding: 26px 28px 10px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 50, 71, .05), 0 10px 28px rgba(0, 50, 71, .06);
}

.docs27-group-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 6px;
}

.docs27-group-head h2 {
  margin: 0;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 700;
}

.docs27-group-count {
  color: #00ae9d;
  font-family: 'NotesEsa', sans-serif;
  font-size: 12px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  white-space: nowrap;
}

.docs27-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
}

.docs27-row + .docs27-row {
  border-top: 1px solid rgba(0, 50, 71, .08);
}

.docs27-row-main {
  min-width: 0;
}

.docs27-title {
  margin: 0 0 4px;
  font-family: 'NotesEsa', sans-serif;
  font-size: 19px;
  line-height: 1.35;
  font-weight: 700;
  color: #003247;
}

.docs27-title a {
  color: #003247;
  text-decoration: none;
  transition: color .18s ease;
}

.docs27-title a:hover,
.docs27-title a:focus-visible {
  color: #00ae9d;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.docs27-row .docs27-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  color: rgba(0, 50, 71, .62);
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  line-height: 1.5;
}

.docs27-row .docs27-meta strong {
  font-weight: 600;
}

.docs27-row-action {
  flex: 0 0 auto;
}

.docs27-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 124px;
  height: 42px;
  padding: 0 20px;
  border: 1px solid #00ae9d;
  border-radius: 999px;
  background: transparent;
  color: #00867a;
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.docs27-download:hover,
.docs27-download:focus-visible {
  background: #00ae9d;
  color: #fff;
  transform: translateY(-1px);
}

.docs27-hidden {
  display: none !important;
}

@media (max-width: 700px) {
  .docs27-group {
    padding: 20px 18px 6px;
  }

  .docs27-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .docs27-row-action {
    width: 100%;
  }

  .docs27-download {
    width: 100%;
  }
}

/* ---- 11. FAQ: no outer box, Q&A without dividers ----
   The page has TWO nested containers: the white .faq26-panel and, inside
   it, the category cards. The outer panel loses its padding, border,
   background and shadow, so only the cards remain: one visual level,
   not two. */

.partner26-panel.faq26-panel,
.partner26-panel.faq26-panel:hover {
  margin-top: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  animation: none;
}

/* Questions and answers: hierarchy from weight and colour, no dividers */
.faq26-item,
.faq26-item:first-child {
  border-top: 0;
  padding: 16px 26px 0;
}

.faq26-item:last-child {
  padding-bottom: 24px;
}

.faq26-item h3 {
  margin: 0 0 8px;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 19px;
  line-height: 1.4;
  font-weight: 700;
}

body:not(.home-page) .faq26-item p,
body:not(.home-page) .faq26-item li {
  color: rgba(0, 50, 71, .76);
  font-size: 17px;
  line-height: 1.68;
  margin-bottom: 10px;
  max-width: 78ch;
}

body:not(.home-page) .faq26-item p:last-child,
body:not(.home-page) .faq26-item li:last-child {
  margin-bottom: 0;
}

.faq26-item strong {
  color: #003247;
  font-weight: 700;
}

/* keep the first question from sticking to the category title */
.faq26-category[open] .faq26-items .faq26-item:first-child {
  padding-top: 6px;
}

@media (max-width: 620px) {
  .faq26-item,
  .faq26-item:first-child {
    padding: 14px 18px 0;
  }

  .faq26-item:last-child {
    padding-bottom: 18px;
  }

  body:not(.home-page) .faq26-item p,
  body:not(.home-page) .faq26-item li {
    font-size: 16px;
  }
}

/* ---- 12. Funding table: 5 columns (no ASRL column, as on incubed.esa.int) ---- */

.additional-col-cycle { width: 18%; }
.additional-col-trl { width: 16%; }
.additional-col-company { width: 14%; }
.additional-col-research { width: 38%; }

/* The 5-column table does not need the 1080px minimum width set above.
   ONLY from 761px up: below that breakpoint the table becomes a card layout
   with min-width:0, and a rule outside the media query would break it. */
@media (min-width: 761px) {
  .additional-data-table--funding {
    min-width: 880px;
  }
}

/* ---- 13. Miscellaneous ---- */

/* "All ideas are strictly confidential." must stay on a single line,
   not break mid-sentence. Below 480px it may wrap so it does not overflow. */
.apply-note strong {
  white-space: nowrap;
}

@media (max-width: 480px) {
  .apply-note strong {
    white-space: normal;
  }
}

/* Development cycle diagram: capped at 880px and centred */
.additional-figure img {
  max-width: 880px;
  margin-inline: auto;
}

/* ---- 14. Delegation contact popup: same values as national-delegations.php ----
   The name in the modal is a <strong> generated by the script; it is set to
   normal weight to match the <span class="delegation-name"> on that page. */

.delegation-modal__body strong {
  font-weight: 400;
  font-size: 14px;
  line-height: 1.22;
  color: #003247;
}

.delegation-modal__body a {
  font-size: 13px;
  line-height: 1.25;
  color: #00ae9d;
  text-decoration: underline;
  text-decoration-color: rgba(0, 174, 157, .5);
  word-break: break-word;
}

/* ---- 15. Proposal Part 2 generator (step-by-step wizard) ---- */

.pg-wizard {
  max-width: 780px;
  margin: 8px auto 0;
}

.pg-progress {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 22px;
}

.pg-progress-track {
  flex: 1 1 auto;
  height: 6px;
  border-radius: 999px;
  background: rgba(0, 50, 71, .12);
  overflow: hidden;
}

.pg-progress-fill {
  display: block;
  width: 0;
  height: 100%;
  border-radius: 999px;
  background: #00ae9d;
  transition: width .35s ease;
}

.pg-step {
  margin: 0;
  flex: 0 0 auto;
  color: rgba(0, 50, 71, .62);
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
}

.pg-card {
  padding: 34px 36px 32px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0, 50, 71, .05), 0 12px 32px rgba(0, 50, 71, .07);
  animation: pgIn .28s ease both;
}

@keyframes pgIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .pg-card { animation: none; }
  .pg-progress-fill { transition: none; }
}

.pg-q-label {
  margin: 0;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 27px;
  line-height: 1.28;
  font-weight: 700;
}

.pg-q-label:focus { outline: none; }

.pg-q-help {
  margin: 10px 0 0;
  color: rgba(0, 50, 71, .68);
  font-size: 17px;
  line-height: 1.6;
  max-width: 60ch;
}

.pg-q-hint {
  margin: 12px 0 0;
  color: #00867a;
  font-family: 'NotesEsa', sans-serif;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.pg-opts {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.pg-opt {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 16px 20px;
  border: 1px solid rgba(0, 50, 71, .2);
  border-radius: 12px;
  background: #fff;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 17px;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.pg-opt:hover {
  border-color: #00ae9d;
  transform: translateX(2px);
}

.pg-opt:focus-visible {
  outline: 2px solid #00ae9d;
  outline-offset: 2px;
}

.pg-opt-mark {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border: 2px solid rgba(0, 50, 71, .3);
  border-radius: 50%;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.pg-opt[role="checkbox"] .pg-opt-mark { border-radius: 6px; }

.pg-opt.is-on {
  border-color: #00ae9d;
  background: rgba(0, 174, 157, .07);
}

.pg-opt.is-on .pg-opt-mark {
  border-color: #00ae9d;
  background: #00ae9d;
  box-shadow: inset 0 0 0 3px #fff;
}

.pg-opt-text { flex: 1 1 auto; }

/* --- navigation --- */
.pg-nav {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 22px;
}

.pg-nav-btn {
  min-height: 46px;
  padding: 0 26px;
  border: 1px solid rgba(0, 50, 71, .28);
  border-radius: 999px;
  background: transparent;
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 13px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.pg-nav-btn:hover:not(:disabled) { border-color: #00ae9d; color: #00867a; }
.pg-nav-btn:focus-visible { outline: 2px solid #00ae9d; outline-offset: 2px; }
.pg-nav-btn:disabled { opacity: .38; cursor: default; }

.pg-nav-btn--primary {
  margin-left: auto;
  border-color: #00ae9d;
  background: #00ae9d;
  color: #fff;
}

.pg-nav-btn--primary:hover:not(:disabled) { background: #00c4b0; border-color: #00c4b0; color: #fff; }

/* --- summary --- */
.pg-answers {
  display: grid;
  gap: 2px;
  margin: 22px 0 4px;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(0, 50, 71, .08);
}

.pg-answer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: baseline;
  gap: 8px 16px;
  width: 100%;
  padding: 14px 18px;
  border: 0;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: background .16s ease;
}

.pg-answer:hover { background: rgba(0, 174, 157, .06); }
.pg-answer:focus-visible { outline: 2px solid #00ae9d; outline-offset: -2px; }

.pg-answer-q {
  color: rgba(0, 50, 71, .74);
  font-size: 15px;
  line-height: 1.4;
}

.pg-answer-a {
  color: #003247;
  font-family: 'NotesEsa', sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-align: right;
}

.pg-answer-edit {
  color: #00867a;
  font-family: 'NotesEsa', sans-serif;
  font-size: 11px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

.pg-sections {
  margin: 18px 0 0;
  color: rgba(0, 50, 71, .66);
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
  letter-spacing: .4px;
}

.pg-download {
  width: 100%;
  min-height: 54px;
  margin-top: 18px;
  padding: 0 24px;
  border: 0;
  border-radius: 999px;
  background: #003247;
  color: #fff;
  font-family: 'NotesEsa', sans-serif;
  font-size: 14px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease;
}

.pg-download:hover:not(:disabled) { background: #00ae9d; transform: translateY(-1px); }
.pg-download:focus-visible { outline: 2px solid #00ae9d; outline-offset: 2px; }
.pg-download:disabled { opacity: .55; cursor: default; }

.pg-status {
  margin: 12px 0 0;
  min-height: 20px;
  color: rgba(0, 50, 71, .7);
  font-size: 15px;
  line-height: 1.45;
}

.pg-status.is-ok { color: #00867a; }
.pg-status.is-error { color: #b23b3b; }

.pg-note {
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(0, 50, 71, .1);
  color: rgba(0, 50, 71, .58);
  font-size: 14px;
  line-height: 1.5;
}

.pg-noscript {
  padding: 16px 18px;
  border-radius: 12px;
  background: #fff5e6;
  color: #7a4b00;
  font-size: 16px;
  line-height: 1.55;
}

@media (max-width: 620px) {
  .pg-card { padding: 24px 20px 22px; }
  .pg-q-label { font-size: 22px; }
  .pg-q-help { font-size: 16px; }
  .pg-opt { padding: 14px 16px; font-size: 16px; }
  .pg-answer { grid-template-columns: minmax(0, 1fr) auto; }
  .pg-answer-edit { grid-column: 2; }
  .pg-nav-btn { padding: 0 18px; }
}

/* ---- 16. Running text in Arial, as on incubed.esa.int ----
   On incubed.esa.int/what-we-are-looking-for/ the headings are NotesEsa (the
   subtitle is NotesEsa 21px bold) while all running text is Arial 18px.
   The first rule below changes only the font family: size, line height and
   colours come from the earlier blocks.
   Header and footer keep the corporate typeface. */
p,
li,
td,
dd,
figcaption,
blockquote {
  font-family: Arial, Helvetica, sans-serif;
}

.esa-header p,
.esa-header li,
.site-footer p,
.site-footer li {
  font-family: 'NotesEsa', sans-serif;
}

/* Intro block of "What we are looking for": half a rem of extra space above
   the subtitle. Vertical margins collapse, so to add 8px the margin has to
   exceed the 30px bottom margin of the green lead: 30 + 8 = 38. */
.page-shell--wwlf .page-copy .page-subtitle {
  margin-top: 38px;
}

/* One line height for running text across the whole site.
   Header and footer are excluded: they are navigation chrome, not text to read.
   Components with their own, more specific rule (for example the
   national-requirements table) keep it on purpose. */
p,
li,
td,
dd,
blockquote {
  line-height: 1.4;
}

.esa-header p,
.esa-header li,
.site-footer p,
.site-footer li {
  line-height: normal;
}

.page-copy,
.page-lead,
.page-list {
  line-height: 1.4;
}

/* These classes declare NotesEsa directly on the element, so the generic rule
   above does not reach them: they are running text and belong in Arial.
   Same selectors as the rules that set NotesEsa, but later in the file, so
   they win. */
.page-lead,
.page-copy,
.page-card p,
.apply-home-card p,
.rec-desc {
  font-family: Arial, Helvetica, sans-serif;
}

/* The green lead is a block of its own: with a 1.4 line height it would look
   cramped inside its bar, so it gets vertical padding, and the same space
   above and below on every page that uses it. */
body:not(.home-page) .page-lead,
body:not(.home-page) .apply-lead,
body:not(.home-page) .delegation-head .page-lead,
body:not(.home-page) .info-page .page-lead,
body:not(.home-page) .additional-page .page-lead {
  padding-top: 10px;
  padding-bottom: 10px;
  margin-top: 30px;
  margin-bottom: 30px;
}

/* Step headings in Arial, like the rest of the running text. */
.apply-step-body h3,
body:not(.home-page) .apply-step-body h3 {
  font-family: Arial, Helvetica, sans-serif;
}

/* The [OPTIONAL] label sits below the step number rather than in the heading:
   the column is 64px wide, so the font size has to stay small. */
.apply-step-optional {
  display: block;
  margin-top: 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .4px;
}


/* Paragraph spacing is the same across the whole page, steps included. In
   .apply-scheme-copy, a grid, the gap would add up with the paragraph
   margins: it is set to zero so that only the default paragraph rule applies. */
.apply-scheme-copy,
.apply-panel {
  gap: 0;
}

.apply-step-body p,
body:not(.home-page) .apply-step-body p {
  margin-bottom: 4px;
}

.apply-scheme-copy p + p,
.apply-panel p + p {
  margin-top: 0;
}


/* 12px between a heading and its first paragraph, as below the step headings.
   With no gap, all 12px are on the heading's margin. */
.apply-scheme-copy h2,
body:not(.home-page) .apply-scheme-copy h2 {
  margin-bottom: 12px;
}

/* The panel is not a grid: here too the full 12px are on the margin. */
.apply-panel h2,
body:not(.home-page) .apply-panel h2 {
  margin-bottom: 12px;
}

/* ---- 17. Default paragraph style ----
   One value for the whole site: line height 1.4 (set above) and 4px between
   one paragraph and the next, i.e. 30.6px from line to line at 19px.
   Earlier rules in the file set paragraph margins from 0 to 18px: the same
   selectors are repeated here at the end so they win by source order.
   Header, footer and icon captions are not in the list, as they are not
   running text. */
p {
  margin-top: 0;
  margin-bottom: 4px;
}

.page-copy p,
.page-segment-head p,
.page-card p,
.hta-row-body p,
.articlex-copy p,
.apply-scheme-copy p,
.apply-scheme-copy p + p,
.apply-panel p,
.apply-step-body p,
.partner26-panel p,
.comm26-card p,
.comm26-side p,
.docs26-cat-head p,
.docs26-side p,
.ap26-hero-panel p,
.ap26-card p,
.activities27-panel p,
.activities27-kpi-card p,
.activities27-cluster p,
body:not(.home-page) .faq26-item p,
body:not(.home-page) .apply-step-body p {
  margin-top: 0;
  margin-bottom: 4px;
}

/* The two development-cycle boxes get a little more room from the text before
   and after them: 28px on both sides, so the block stands apart like a
   figure. */
.additional-cycles {
  margin-top: 28px;
  margin-bottom: 28px;
}

/* No width cap on the note below the heading: the text needs about 824px,
   and with no cap it stays on one line as long as the column allows; in
   narrow windows it wraps on its own. */
.apply-note,
body:not(.home-page) .apply-note {
  max-width: none;
}

/* Green leads are capped at 65% of the column: shorter lines are easier to read. */
body:not(.home-page) .page-lead,
body:not(.home-page) .apply-lead,
body:not(.home-page) .delegation-head .page-lead,
body:not(.home-page) .info-page .page-lead,
body:not(.home-page) .additional-page .page-lead {
  max-width: 65%;
}

/* Exception: in the two-column intro of "What we are looking for" the lead
   already sits in a 474px column. The percentage cap would shrink it to just over 300px.
   There it keeps the width of its column. */
body:not(.home-page) .wwlf-intro-copy .page-lead {
  max-width: none;
}

/* ---- 18. End-of-page buttons ----
   More space above and no underline. The top spacing is 44px on every page:
   the largest of the values set for these rows earlier in the file (18, 22,
   24 and 44px). */
.apply-actions,
.apply-footer-links,
.page-nav,
.page-shell--wwlf .page-nav,
.page-shell--hta .page-nav,
.delegation-page .page-nav,
.info-page .page-nav,
body:not(.home-page) .page-nav {
  margin-top: 44px;
}

/* Written as a.apply-btn rather than .apply-btn: inside some containers a rule
   underlines every link (for example .partner26-panel a, on National
   requirements) and outranks a single class. With the element added the
   specificity is equal, and this later rule wins. */
a.apply-btn,
a.apply-btn:hover,
a.apply-btn:focus-visible,
a.page-btn,
a.page-btn:hover,
a.page-btn:focus-visible {
  text-decoration: none;
}

/* FAQ questions are text to read, not section headings: they use Arial
   like the rest of the body. Category titles (Pitch, Costs &
   Payments...) stay in NotesEsa because they open a section. */
.faq26-item h3,
body:not(.home-page) .faq26-item h3 {
  font-family: Arial, Helvetica, sans-serif;
}

/* Documents: document names and their detail line (Version, Date) are text
   to read, hence Arial. The five category titles stay in NotesEsa, like the
   FAQ categories. */
.docs27-title,
.docs27-title a,
.docs27-meta,
.docs27-meta span,
.docs27-download,
body:not(.home-page) .docs27-title a {
  font-family: Arial, Helvetica, sans-serif;
}

/* Document names use regular weight: in Arial, bold at 19px is too heavy
   compared with the rest of the row. */
.docs27-title,
.docs27-title a,
body:not(.home-page) .docs27-title,
body:not(.home-page) .docs27-title a {
  font-weight: 400;
}

/* ---- 19. Article pages ----
   The article page uses the light grey background of the other pages,
   overriding the dark blue gradient of the ARTICLEX block, and its
   typography follows the shared scale. */
.articlex-page {
  background: #eef2f4;
  color: #003247;
}

.articlex-side {
  background: #ffffff;
  border-color: rgba(0, 50, 71, .16);
  color: #003247;
}

.articlex-side-tags {
  border-top-color: rgba(0, 50, 71, .14);
}

.articlex-side-tags span {
  color: #003247;
  background: rgba(0, 174, 157, .12);
  border-color: rgba(0, 174, 157, .38);
}

/* No box around the text: the article sits directly on the page,
   like the text in every other section of the site. */
.articlex-main {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.articlex-main::before {
  display: none;
}

.articlex-copy {
  margin-top: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* Article body at the site's text size. Paragraphs are 12px apart instead
   of the 4px used elsewhere: a long text at 4px reads like a wall. */
.articlex-copy p,
.articlex-copy p:first-of-type {
  font-size: 19px;
  line-height: 1.4;
  color: #003247;
  margin: 0 0 12px;
  /* Justified text. Hyphenation keeps the gaps between words even: without
     it, lines with long words such as "commercialisation" open up
     noticeably. */
  text-align: justify;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.articlex-copy h4 {
  font-size: 24px;
  margin: 26px 0 10px;
}

.articlex-points h3 {
  font-size: 28px;
}

.articlex-wrap {
  padding: 34px 20px 48px;
  gap: 28px;
}

/* Latest News: READ ALL sits on the same row as the heading, like SEE ALL
   in the Activities section; the two filters go on the row below, right-aligned.
   The header is centre-aligned: with bottom alignment it would sit 6px off
   compared with Activities. */
.trending .sec-head {
  align-items: center;
  /* The spacing before the cards comes from the filter row below: with a margin
     here, the filters would sit 70px below the button instead of just under it. */
  margin-bottom: 0;
}

.latest-tabs-row {
  display: flex;
  justify-content: flex-end;
  margin: 12px 0 40px;
}

.latest-tabs-row .sec-tabs {
  display: flex;
  gap: 8px;
}

/* The base .sec-tab style joins the buttons and removes the right border
   from all but the last one. These filters are spaced apart, so each one
   needs a full border. */
.latest-tabs .sec-tab {
  border-right: 1px solid rgba(0, 50, 71, .28);
}

.latest-tabs .sec-tab.active,
.latest-tabs .sec-tab:hover {
  border-right-color: var(--fire);
}


/* Contact form: outcome of a submission, shown above the form. */
.contact26-result {
  margin: 0 0 24px;
  padding: 14px 18px;
  border-left: 4px solid currentColor;
  font-size: 16px;
  line-height: 1.4;
  scroll-margin-top: 96px;
}

.contact26-result:focus {
  outline: none;
}

.contact26-result.is-ok {
  color: #007f72;
  background: rgba(0, 174, 157, .08);
}

.contact26-result.is-bad {
  color: #b42318;
  background: rgba(180, 35, 24, .06);
}

.contact26-result a {
  color: inherit;
  text-decoration: underline;
}

/* Articles written in the admin: media stays within the text column. */
.articlex-copy img,
.articlex-copy video,
.articlex-copy iframe {
  max-width: 100%;
  height: auto;
}

.articlex-copy figure {
  margin: 24px 0;
}

.articlex-copy figcaption {
  margin-top: 6px;
  font-size: 14px;
  opacity: .8;
}
