:root {
      --ink:#0b1410;
      --forest:#10251d;
      --forest-soft:#1a3a2e;
      --cream:#f7f1e7;
      --paper:#fffaf2;
      --gold:#d6aa42;
      --gold-soft:#efd489;
      --white:#fff;
      --muted:#637169;
      --line:rgba(16,37,29,.14);
      --shadow:0 28px 80px rgba(4,14,9,.18);
      --radius:28px;
    }

    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body {
      margin:0;
      font-family:"DM Sans",sans-serif;
      color:var(--ink);
      background:var(--paper);
      line-height:1.65;
      overflow-x:hidden;
    }
    body.modal-open { overflow:hidden; }
    img { max-width:100%; }
    a { color:inherit; text-decoration:none; }
    button { font:inherit; }
    section { position:relative; }

    .container {
      width:min(1180px,88vw);
      margin-inline:auto;
    }

    .eyebrow {
      margin:0 0 18px;
      color:var(--gold);
      font-size:.76rem;
      font-weight:700;
      letter-spacing:.22em;
      text-transform:uppercase;
    }

    h2 {
      margin:0;
      font-family:"Playfair Display",serif;
      font-size:clamp(2.45rem,5vw,5rem);
      line-height:.98;
      letter-spacing:-.035em;
    }

    .lead {
      margin:24px 0 0;
      max-width:720px;
      font-size:clamp(1.04rem,1.6vw,1.22rem);
      color:var(--muted);
    }

    .btn {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:52px;
      padding:0 25px;
      border:1px solid transparent;
      border-radius:999px;
      cursor:pointer;
      font-weight:700;
      transition:transform .2s ease,background .2s ease,border-color .2s ease;
    }
    .btn:hover { transform:translateY(-2px); }
    .btn-gold { background:var(--gold); color:#12120d; }
    .btn-gold:hover { background:var(--gold-soft); }
    .btn-outline {
      color:var(--white);
      border-color:rgba(255,255,255,.45);
      background:rgba(0,0,0,.14);
      backdrop-filter:blur(12px);
    }
    .btn-dark { background:var(--forest); color:white; }
    .btn-ghost {
      background:transparent;
      color:var(--forest);
      border-color:rgba(16,37,29,.25);
    }

    /* Header */
    .site-header {
      position:fixed;
      inset:0 0 auto;
      z-index:40;
      transition:background .25s ease,box-shadow .25s ease;
    }
    .site-header.scrolled {
      background:rgba(8,18,14,.9);
      backdrop-filter:blur(16px);
      box-shadow:0 12px 35px rgba(0,0,0,.15);
    }
    .nav {
      min-height:88px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:28px;
    }
    .nav-brand {
      color:white;
      font-size:.82rem;
      font-weight:700;
      letter-spacing:.18em;
      text-transform:uppercase;
      white-space:nowrap;
    }
    .nav-right {
      display:flex;
      align-items:center;
      gap:24px;
    }
    .nav-links {
      display:flex;
      align-items:center;
      gap:22px;
      color:white;
      font-size:.86rem;
      font-weight:600;
    }
    .nav-links a,.nav-links button {
      border:0;
      padding:8px 0;
      color:inherit;
      background:transparent;
      cursor:pointer;
    }
    .register-nav {
     display:inline-flex;
    align-items:center;
    justify-content:center;

    height:46px;
    padding:0 22px;

    background:var(--gold);
    color:#15140d;
    border-radius:999px;

    font-size:.88rem;
    font-weight:700;
    line-height:1;
    white-space:nowrap;

    box-sizing:border-box;
    }
    .menu-toggle {
      display:none;
      width:44px;
      height:44px;
      border:1px solid rgba(255,255,255,.35);
      border-radius:50%;
      color:white;
      background:rgba(0,0,0,.12);
      cursor:pointer;
    }

    /* Hero */
    .hero {
      min-height:100svh;
      display:flex;
      align-items:flex-end;
      color:white;
      isolation:isolate;
      background:
        linear-gradient(90deg,rgba(4,10,7,.67) 0%,rgba(4,10,7,.35) 46%,rgba(4,10,7,.10) 78%),
        linear-gradient(180deg,rgba(2,6,4,.20) 0%,rgba(4,12,8,.12) 48%,rgba(5,14,10,.82) 100%),
        url("../assets/images/hero-crosul.jpeg") center/cover no-repeat;
    }
    .hero::before {
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:radial-gradient(circle at 18% 22%,rgba(255,194,73,.25),transparent 25%);
    }
    .hero-inner {
      width:min(1180px,88vw);
      margin-inline:auto;
      padding:170px 0 88px;
    }
    .hero-date {
      margin-bottom:20px;
      color:var(--gold-soft);
      font-size:.83rem;
      font-weight:700;
      letter-spacing:.19em;
      text-transform:uppercase;
    }
    .hero-logo {
      width:min(910px,82vw);
      margin:0 0 28px;
      animation:rise .85s ease both;
    }
    .hero-logo img {
      display:block;
      width:100%;
      filter:drop-shadow(0 16px 34px rgba(0,0,0,.45));
    }
    @keyframes rise {
      from { opacity:0; transform:translateY(24px); }
      to { opacity:1; transform:translateY(0); }
    }
    .hero-copy {
      max-width:720px;
      margin:0 0 30px;
      font-size:clamp(1rem,1.65vw,1.25rem);
      color:rgba(255,255,255,.91);
      text-shadow:0 4px 18px rgba(0,0,0,.4);
    }
    .hero-actions {
      display:flex;
      flex-wrap:wrap;
      gap:13px;
    }
    .hero-meta {
      display:grid;
      grid-template-columns:repeat(3,max-content);
      gap:34px;
      margin-top:58px;
      padding-top:25px;
      border-top:1px solid rgba(255,255,255,.24);
    }
    .hero-meta strong {
      display:block;
      color:var(--gold-soft);
      font-size:.72rem;
      letter-spacing:.16em;
      text-transform:uppercase;
    }
    .hero-meta span {
      display:block;
      margin-top:4px;
      font-size:.97rem;
      font-weight:600;
    }

    /* Story */
    .story {
      padding:120px 0;
      background:var(--paper);
    }
    .story-grid {
      display:grid;
      grid-template-columns:.82fr 1.18fr;
      gap:70px;
      align-items:start;
    }
    .story-copy {
      padding-top:8px;
    }
    .story-copy .lead { margin-top:0; }
    .stats {
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:16px;
      margin-top:38px;
    }
    .stat {
      padding:25px;
      border:1px solid var(--line);
      border-radius:22px;
      background:white;
    }
    .stat strong {
      display:block;
      color:var(--gold);
      font-family:"Playfair Display",serif;
      font-size:2.35rem;
      line-height:1;
    }
    .stat span {
      display:block;
      margin-top:10px;
      color:var(--muted);
      font-size:.92rem;
    }

    /* Full bleed visual story */
    .visual-break {
      min-height:74vh;
      display:flex;
      align-items:flex-end;
      color:white;
      background:
        linear-gradient(180deg,rgba(0,0,0,.08),rgba(4,12,8,.78)),
        url("../assets/images/galerie-1.jpeg") center 66%/cover no-repeat;
      background-attachment:fixed;
    }
    .visual-break .container {
      padding:90px 0 68px;
    }
    .visual-break blockquote {
      max-width:850px;
      margin:0;
      font-family:"Playfair Display",serif;
      font-size:clamp(2.2rem,5vw,5.2rem);
      line-height:1.02;
      text-shadow:0 14px 45px rgba(0,0,0,.45);
    }

    /* Races */
    .races {
      padding:120px 0;
      background:var(--cream);
    }
    .races-head {
      display:flex;
      justify-content:space-between;
      gap:60px;
      align-items:end;
    }
    .races-head .lead { max-width:520px; }
    .race-grid {
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:20px;
      margin-top:55px;
    }
    .race-card {
      min-height:455px;
      display:flex;
      flex-direction:column;
      justify-content:flex-end;
      position:relative;
      overflow:hidden;
      border-radius:var(--radius);
      color:white;
      box-shadow:var(--shadow);
      isolation:isolate;
    }
    .race-card::before {
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:linear-gradient(180deg,rgba(0,0,0,.06) 18%,rgba(3,11,7,.90) 100%);
    }
    .race-card.one {
      background:url("../assets/images/galerie-5.jpeg") center/cover no-repeat;
    }
    .race-card.two {
      background:url("../assets/images/galerie-5.jpeg") center/cover no-repeat;
    }
    .race-card.three {
      background:url("../assets/images/galerie-5.jpeg") center 72%/cover no-repeat;
    }
    .race-content { padding:30px; }
    .race-tag {
      display:inline-flex;
      align-items:center;
      min-height:31px;
      padding:0 12px;
      margin-bottom:16px;
      border-radius:999px;
      background:var(--gold);
      color:#17150d;
      font-size:.75rem;
      font-weight:700;
      letter-spacing:.09em;
      text-transform:uppercase;
    }
    .race-card h3 {
      margin:0 0 9px;
      font-family:"Playfair Display",serif;
      font-size:2rem;
    }
    .race-card p {
      margin:0;
      color:rgba(255,255,255,.82);
      font-size:.95rem;
    }
    .race-details {
      display:flex;
      gap:16px;
      flex-wrap:wrap;
      margin-top:18px;
      font-size:.78rem;
      font-weight:700;
      color:var(--gold-soft);
      text-transform:uppercase;
      letter-spacing:.07em;
    }

    /* Băiuț editorial section */
    .place {
      min-height:860px;
      display:flex;
      align-items:center;
      padding:110px 0;
      color:white;
      overflow:hidden;
      isolation:isolate;
      background:
        linear-gradient(90deg,rgba(5,15,10,.82) 0%,rgba(5,15,10,.56) 42%,rgba(5,15,10,.12) 76%),
        linear-gradient(180deg,rgba(3,10,7,.08),rgba(3,10,7,.32)),
        url("../assets/images/galerie-2.jpeg") center 48%/cover no-repeat;
    }

    .place::after {
      content:"";
      position:absolute;
      inset:0;
      z-index:-1;
      background:radial-gradient(circle at 20% 50%,rgba(214,170,66,.10),transparent 32%);
    }

    .place-layout {
      position:relative;
      z-index:1;
      display:flex;
      align-items:center;
    }

    .place-panel {
      width:min(670px,100%);
      padding:46px 48px;
      border:1px solid rgba(255,255,255,.18);
      border-radius:30px;
      background:rgba(8,23,17,.72);
      box-shadow:0 32px 90px rgba(0,0,0,.34);
      backdrop-filter:blur(16px);
    }

    .place-panel h2 {
      max-width:610px;
      color:white;
      font-size:clamp(3rem,5.2vw,5.6rem);
    }

    .place-description {
      max-width:590px;
      margin:25px 0 0;
      color:rgba(255,255,255,.78);
      font-size:1.08rem;
    }

    .place-actions {
      display:grid;
      grid-template-columns:max-content 1fr;
      gap:22px;
      align-items:center;
      margin-top:34px;
    }

    .place-landmark {
      display:grid;
      grid-template-columns:76px 1fr;
      gap:14px;
      align-items:center;
      margin:0;
      padding:10px 14px 10px 10px;
      border:1px solid rgba(255,255,255,.14);
      border-radius:18px;
      background:rgba(255,255,255,.07);
    }

    .place-landmark img {
      width:76px;
      height:76px;
      display:block;
      object-fit:cover;
      object-position:center 24%;
      border-radius:13px;
    }

    .place-landmark figcaption span {
      display:block;
      margin-bottom:4px;
      color:var(--gold);
      font-size:.65rem;
      font-weight:700;
      letter-spacing:.16em;
      text-transform:uppercase;
    }

    .place-landmark figcaption strong {
      display:block;
      font-family:"Playfair Display",serif;
      font-size:1rem;
      line-height:1.15;
      font-weight:600;
    }

    /* Program */
    .program {
      padding:110px 0;
      background:var(--paper);
    }
    .program-box {
      display:grid;
      grid-template-columns:.8fr 1.2fr;
      gap:70px;
      padding:52px;
      border:1px solid var(--line);
      border-radius:32px;
      background:white;
      box-shadow:0 24px 70px rgba(16,37,29,.08);
    }
    .notice {
      display:flex;
      gap:18px;
      align-items:flex-start;
      padding:22px;
      border-radius:20px;
      background:#f2ead8;
    }
    .notice-icon {
      flex:0 0 48px;
      width:48px;
      height:48px;
      display:grid;
      place-items:center;
      border-radius:50%;
      background:var(--gold);
      font-weight:700;
    }
    .notice p { margin:0; color:#435148; }

    /* Registration */
    .registration {
      min-height:76vh;
      display:flex;
      align-items:center;
      text-align:center;
      color:white;
      background:
        linear-gradient(rgba(5,16,11,.72),rgba(5,16,11,.86)),
        url("../assets/images/galerie-6.jpeg") center/cover no-repeat;
    }
    .registration .container {
      padding:100px 0;
    }
    .registration h2 {
      max-width:900px;
      margin-inline:auto;
    }
    .registration p {
      max-width:680px;
      margin:24px auto 30px;
      color:rgba(255,255,255,.78);
    }
    .registration-actions {
      display:flex;
      flex-wrap:wrap;
      justify-content:center;
      gap:13px;
    }

    footer {
      padding:34px 6vw;
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:20px;
      flex-wrap:wrap;
      background:#07110d;
      color:rgba(255,255,255,.68);
      font-size:.88rem;
    }
    .footer-actions {
      display:flex;
      align-items:center;
      gap:18px;
    }
    .text-button {
      border:0;
      padding:0;
      color:var(--gold);
      background:transparent;
      cursor:pointer;
      font-weight:700;
    }

    .floating-regulation {
      position:fixed;
      right:20px;
      bottom:20px;
      z-index:35;
      min-height:45px;
      padding:0 18px;
      border:0;
      border-radius:999px;
      background:var(--gold);
      color:#15140d;
      box-shadow:0 16px 40px rgba(0,0,0,.28);
      cursor:pointer;
      font-weight:700;
    }

    /* Modals */
    .modal {
      position:fixed;
      inset:0;
      z-index:100;
      display:none;
      align-items:center;
      justify-content:center;
      padding:20px;
      background:rgba(3,10,7,.82);
      backdrop-filter:blur(10px);
    }
    .modal.open { display:flex; }
    .modal-panel {
      width:min(980px,100%);
      max-height:88vh;
      overflow:hidden;
      border-radius:26px;
      background:var(--paper);
      box-shadow:0 34px 100px rgba(0,0,0,.42);
    }
    .modal-head {
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:18px;
      padding:22px 26px;
      color:white;
      background:var(--forest);
    }
    .modal-head h3 { margin:0; font-size:1.15rem; }
    .modal-close {
      width:42px;
      height:42px;
      border:1px solid rgba(255,255,255,.3);
      border-radius:50%;
      color:white;
      background:transparent;
      cursor:pointer;
      font-size:1.35rem;
    }
    .modal-body {
      max-height:calc(88vh - 86px);
      overflow:auto;
      padding:30px;
      white-space:pre-wrap;
      font-size:.93rem;
      line-height:1.75;
    }

    .regulation-status {
      margin:0;
      color:var(--muted);
    }

    .regulation-status.error {
      color:#9b2c2c;
    }

    .regulation-download {
      display:inline-flex;
      margin-top:16px;
      color:var(--forest);
      font-weight:700;
      text-decoration:underline;
    }

    .signup-panel {
      width:min(570px,100%);
      padding:38px;
      border-radius:28px;
      background:var(--paper);
      text-align:center;
      box-shadow:0 34px 100px rgba(0,0,0,.42);
    }
    .signup-panel h3 {
      margin:0 0 12px;
      font-family:"Playfair Display",serif;
      font-size:2.4rem;
      line-height:1.05;
    }
    .signup-panel p { color:var(--muted); }
    .signup-actions {
      display:flex;
      flex-wrap:wrap;
      justify-content:center;
      gap:12px;
      margin-top:24px;
    }
    .signup-close {
      position:absolute;
      top:22px;
      right:22px;
    }

    @media (max-width:980px) {
      .nav-links { display:none; }
      .menu-toggle { display:grid; place-items:center; }
      .nav-right.open .nav-links {
        display:flex;
        position:absolute;
        top:82px;
        right:6vw;
        width:min(340px,88vw);
        flex-direction:column;
        align-items:stretch;
        gap:2px;
        padding:18px;
        border-radius:20px;
        background:rgba(8,18,14,.97);
        box-shadow:var(--shadow);
      }
      .nav-right.open .nav-links a,
      .nav-right.open .nav-links button {
        text-align:left;
        padding:12px;
      }
      .story-grid,.program-box {
        grid-template-columns:1fr;
      }
      .race-grid { grid-template-columns:1fr; }
      .race-card { min-height:480px; }
      .races-head { display:block; }

      .place-panel {
        width:min(690px,100%);
      }
    }

    @media (max-width:700px) {
      .container,.hero-inner { width:min(90vw,1180px); }
      .nav { min-height:76px; }
      .nav-brand { font-size:.72rem; }
      .register-nav { min-height:42px; padding:0 16px; }
      .hero-inner { padding:140px 0 64px; }
      .hero-logo {
        width:104vw;
        margin-left:-7vw;
      }
      .hero-meta {
        grid-template-columns:1fr;
        gap:14px;
      }
      .stats { grid-template-columns:1fr; }
      .story,.races,.program { padding:82px 0; }
      .visual-break { background-attachment:scroll; }
      .program-box { padding:28px; gap:32px; }
      .place {
        min-height:auto;
        padding:82px 0;
        background-position:62% center;
      }
      .place-panel {
        padding:32px 26px;
        border-radius:24px;
      }
      .place-panel h2 {
        font-size:clamp(2.6rem,12vw,4.2rem);
      }
      .place-actions {
        grid-template-columns:1fr;
        align-items:stretch;
      }
      .place-actions .btn {
        width:100%;
      }
      .place-landmark {
        grid-template-columns:70px 1fr;
      }
      .place-landmark img {
        width:70px;
        height:70px;
      }
      .floating-regulation { right:12px; bottom:12px; }
      .modal { padding:10px; }
      .modal-body { padding:22px; }
      .signup-panel { padding:30px 22px; }
    }


/* Route buttons and Garmin modal */
.route-button{display:inline-flex;align-items:center;justify-content:center;margin-top:22px;min-height:44px;padding:0 19px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(8,18,14,.38);color:#fff;font:inherit;font-weight:700;cursor:pointer;backdrop-filter:blur(8px);transition:.2s ease}.route-button:hover{transform:translateY(-2px);border-color:var(--gold);background:var(--gold);color:#17150d}.route-panel{width:min(940px,100%);overflow:hidden}.route-kicker{display:block;margin-bottom:4px;color:var(--gold);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.route-frame-wrap{padding:20px;background:var(--paper)}.route-frame-wrap iframe{display:block;width:100%;height:min(68vh,650px);min-height:520px;border:0;border-radius:18px;background:#eef0ec}.route-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px 22px;background:var(--paper)}.route-footer p{margin:0;color:var(--muted)}

/* Kit */
.kit-section{padding:112px 0;background:var(--forest);color:#fff}.section-intro{display:grid;grid-template-columns:1fr .8fr;gap:64px;align-items:end}.kit-intro .lead{color:rgba(255,255,255,.68)}.kit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:48px}.kit-item{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;padding:26px;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:rgba(255,255,255,.055)}.kit-item-wide{grid-column:1/-1}.kit-index{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--gold);color:#17150d;font-weight:700}.kit-item h3{margin:0 0 7px;font-family:"Playfair Display",serif;font-size:1.45rem}.kit-item p{margin:0;color:rgba(255,255,255,.65)}

/* Partners */
.partners-section{padding:112px 0;background:var(--forest)}.partners-intro{max-width:760px}.partners-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:48px}.partner-logo-card{display:flex;min-height:360px;flex-direction:column;align-items:center;padding:28px;border:1px solid var(--line);border-radius:26px;background:#fff;text-align:center;box-shadow:0 22px 65px rgba(16,37,29,.07)}.partner-logo-card.featured{border-color:rgba(214,170,66,.5);box-shadow:0 24px 70px rgba(16,37,29,.11)}.partner-role{align-self:flex-start;color:var(--gold);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.partner-logo-wrap{display:grid;place-items:center;flex:1;width:100%;padding:28px 12px}.partner-logo-wrap img{display:block;max-width:230px;max-height:185px;width:auto;height:auto;object-fit:contain}.partner-logo-card h3{margin:12px 0 0;font-family:"Playfair Display",serif;font-size:1.55rem;color:var(--forest)}

@media(max-width:980px){.section-intro,.partners-groups{grid-template-columns:1fr}.partners-groups{gap:14px}.partner-logo-card{min-height:300px}}
@media(max-width:700px){.kit-section,.partners-section{padding:82px 0}.kit-grid{grid-template-columns:1fr}.kit-item-wide{grid-column:auto}.route-frame-wrap{padding:12px}.route-frame-wrap iframe{height:62vh;min-height:430px}.route-footer{align-items:stretch;flex-direction:column}.route-footer .btn{width:100%}}

/* Final partner/sponsor/initiator cards */
.partners-section {
  padding-top: 48px;
  padding-bottom: 96px;
}
.partners-section .partners-groups {
  margin-top: 0;
}


/* =========================================================
   FINAL RESPONSIVE FIXES — KIT + PARTNERS
   ========================================================= */

/* Prevent grid children and long Romanian words from overflowing. */
.kit-grid,
.kit-item,
.kit-item > div,
.partners-groups,
.partner-logo-card {
  min-width:0;
}

.kit-item h3,
.kit-item p,
.partner-logo-card h3 {
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Clickable partner cards */
.partner-logo-card {
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  justify-content:center;
  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease,
    box-shadow .25s ease;
}

.partner-logo-card:hover {
  transform:translateY(-6px);
  border-color:rgba(214,170,66,.55);
  box-shadow:0 28px 70px rgba(16,37,29,.16);
}

.partner-logo-card:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:5px;
}

.partner-logo-wrap {
  overflow:hidden;
  transition:transform .25s ease,box-shadow .25s ease;
}

.partner-logo-card:hover .partner-logo-wrap {
  transform:scale(1.04);
}

/* Desktop logo tuning */
.partner-logo-card.popas .partner-logo-wrap {
  width:230px;
  height:190px;
  padding:18px 22px;
  margin-bottom:18px;
  border-radius:24px;
  background:#fff;
}

.partner-logo-card.popas .partner-logo-wrap img {
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  transform: none;
}

.partner-logo-card.aim .partner-logo-wrap img {
  width:116%;
  height:116%;
  max-width:none;
  max-height:none;
  object-fit:contain;
}

/* Tablet: kit remains readable, partner cards stack. */
@media (max-width:980px) {
  .partners-groups {
    grid-template-columns:1fr !important;
  }

  .partner-logo-card {
    width:100%;
    min-height:280px;
  }
}

/* Phones and narrow tablets */
@media (max-width:820px) {
  .section-intro,
  .kit-grid {
    grid-template-columns:1fr !important;
  }

  .kit-grid {
    gap:14px;
    margin-top:34px;
  }

  .kit-item,
  .kit-item-wide {
    grid-column:auto !important;
    width:100%;
  }

  .kit-item {
    grid-template-columns:52px minmax(0,1fr);
    gap:16px;
    align-items:start;
    padding:22px 18px;
  }

  .kit-index {
    width:52px;
    height:52px;
  }

  .kit-item h3 {
    font-size:clamp(1.25rem,6vw,1.55rem);
    line-height:1.22;
  }

  .kit-item p {
    font-size:.98rem;
    line-height:1.55;
  }

  .partner-logo-card.popas .partner-logo-wrap {
    width:165px;
    height:165px;
    flex-basis:165px;
    padding:20px;
  }

  .partner-logo-card.popas .partner-logo-wrap img {
    width:112%;
    height:112%;
    transform:translateY(-10px);
  }

  .partner-logo-card.aim .partner-logo-wrap img {
    width:92%;
    height:92%;
  }
}

/* Very narrow phones: put the kit number above the text. */
@media (max-width:420px) {
  .container {
    width:min(92vw,1180px);
  }

  .kit-item {
    grid-template-columns:1fr;
    gap:14px;
    padding:22px 20px;
  }

  .kit-index {
    width:50px;
    height:50px;
  }

  .kit-item h3 {
    font-size:1.35rem;
  }

  .partner-logo-card {
    min-height:255px;
    padding:28px 20px;
  }

  .partner-role {
    align-self:center;
  }

}
