/* Page-specific styles (externalised for CSP style-src 'self') */

    /* ── Page-specific styles ── */

    /* Catalogue section */
    .catalogue__grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-md);
    }

    .catalogue-card {
      padding: var(--space-lg) var(--space-md);
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: center;
      align-content: start;
      gap: 14px var(--space-sm);
    }

    .catalogue-card > .catalogue-icon {
      grid-column: 1;
      grid-row: 1;
    }

    .catalogue-card > h4 {
      grid-column: 2;
      grid-row: 1;
      margin: 0;
    }

    .catalogue-card > p {
      grid-column: 1 / -1;
      grid-row: 2;
      margin: 0;
    }

    .catalogue-icon {
      width: 48px;
      height: 48px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(6, 68, 108, 0.09);
      border-radius: var(--radius-md);
      color: var(--color-navy);
      flex-shrink: 0;
    }

    .catalogue-card h4 {
      font-size: 1.125rem;
    }

    .catalogue-card p {
      font-size: 0.9375rem;
      color: rgba(26, 26, 46, 0.68);
      line-height: 1.65;
    }

    /* Audience section (navy bg) */
    .audience__grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-md);
    }

    .audience-card {
      padding: var(--space-lg) var(--space-md);
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: center;
      align-content: start;
      gap: 14px var(--space-sm);
      transition: background 200ms var(--ease-smooth), transform 200ms var(--ease-smooth);
    }

    .audience-card > .audience-icon {
      grid-column: 1;
      grid-row: 1;
    }

    .audience-card > h4 {
      grid-column: 2;
      grid-row: 1;
      margin: 0;
    }

    .audience-card > p {
      grid-column: 1 / -1;
      grid-row: 2;
      margin: 0;
    }

    .audience-card:hover {
      background: rgba(255, 255, 255, 0.08);
      transform: translateY(-2px);
    }

    .audience-icon {
      width: 44px;
      height: 44px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(255, 255, 255, 0.10);
      border-radius: var(--radius-sm);
      color: rgba(255, 255, 255, 0.90);
      flex-shrink: 0;
    }

    .audience-card h4 {
      color: var(--color-white);
      font-size: 1.0625rem;
    }

    .audience-card p {
      font-size: 0.9375rem;
      color: rgba(255, 255, 255, 0.65);
      line-height: 1.65;
    }

    /* Programme */
    .programme__grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-md);
    }

    .programme-step {
      padding: var(--space-md);
      display: flex;
      flex-direction: column;
      gap: var(--space-sm);
    }

    .programme-num {
      font-size: 3rem;
      font-weight: 700;
      color: var(--color-navy);
      opacity: 0.12;
      line-height: 1;
      letter-spacing: -0.04em;
      margin-bottom: -8px;
    }

    .programme-step-icon {
      width: 40px;
      height: 40px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(6, 68, 108, 0.08);
      border-radius: var(--radius-sm);
      color: var(--color-navy);
    }

    .programme-step h4 {
      font-size: 1rem;
      color: var(--color-charcoal);
    }

    .programme-step p {
      font-size: 0.875rem;
      color: rgba(26, 26, 46, 0.65);
      line-height: 1.6;
    }

    /* FAQ */
    .faq__list {
      display: flex;
      flex-direction: column;
      gap: 10px;
      max-width: 800px;
      margin: 0 auto;
    }

    details.faq-item {
      background: var(--glass-bg);
      backdrop-filter: var(--glass-blur);
      -webkit-backdrop-filter: var(--glass-blur);
      border: 1px solid var(--glass-border);
      border-radius: var(--radius-md);
      overflow: hidden;
      transition: box-shadow 200ms var(--ease-smooth);
    }

    details.faq-item[open] {
      box-shadow: var(--glass-shadow);
    }

    summary.faq-q {
      list-style: none;
      padding: 20px var(--space-md);
      cursor: pointer;
      font-weight: 700;
      font-size: 1rem;
      color: var(--color-charcoal);
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: var(--space-sm);
      user-select: none;
    }

    summary.faq-q::-webkit-details-marker { display: none; }

    .faq-toggle {
      flex-shrink: 0;
      width: 20px;
      height: 20px;
      color: var(--color-navy);
      transition: transform 250ms var(--ease-smooth);
    }

    details[open] .faq-toggle {
      transform: rotate(45deg);
    }

    .faq-a {
      padding: 0 var(--space-md) var(--space-md);
      font-size: 0.9375rem;
      color: rgba(26, 26, 46, 0.70);
      line-height: 1.7;
    }

    /* ── Responsive ── */
    @media (max-width: 1024px) {
      .catalogue__grid { grid-template-columns: repeat(2, 1fr); }
      .programme__grid { grid-template-columns: repeat(2, 1fr); }
    }

    @media (max-width: 768px) {
      .catalogue__grid { grid-template-columns: 1fr; }
      .audience__grid { grid-template-columns: 1fr; }
      .programme__grid { grid-template-columns: 1fr; }
    }
  
