/* Adapt the shared presentation to narrow screens, zoomed text and right-to-left navigation. */
@media (max-width: 1250px) {
  .container { width: min(1120px, calc(100% - 3.5rem)); }
  .header-inner { gap: 1rem; }
  .header-menu { gap: 1rem; }
  .primary-nav { gap: .9rem; }
  .primary-nav a { font-size: .77rem; }
  .brand-word { font-size: 1.4rem; }
  .header-cta { display: none; }
  .hero-grid { gap: 3rem; }
  .programme-card { padding: 1.35rem; }
  .programme-card h3 { font-size: 1.32rem; }
  .card-link { font-size: .76rem; }
  .content-columns { gap: 3rem; }
  .form-layout { gap: 3rem; }
}
@media (max-width: 980px) {
  html:not(.js) .site-header { position: static; }
  .header-inner { min-height: 5rem; flex-wrap: wrap; padding-block: .9rem; }
  .header-menu { width: 100%; justify-content: space-between; padding-block: .5rem; }
  /* Keep controls in the first row while an open menu scrolls within the available viewport. */
  .js .header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    max-block-size: calc(100vh - 1px);
    max-block-size: calc(100dvh - 1px);
    row-gap: 0;
  }
  .js .header-inner > .brand { min-inline-size: 0; max-inline-size: 100%; flex-wrap: wrap; justify-self: start; }
  .js .header-inner .brand-word { min-inline-size: 0; overflow-wrap: anywhere; }
  .js .header-inner > .menu-toggle { justify-self: end; max-inline-size: 100%; flex-wrap: wrap; justify-content: center; padding-inline: .4rem; }
  .js .menu-toggle-label { min-inline-size: 0; overflow-wrap: anywhere; }
  .js .language-nav { flex-wrap: wrap; }
  .js .primary-nav a { white-space: normal; overflow-wrap: anywhere; }
  .js .header-menu { grid-column: 1 / -1; min-block-size: 0; align-self: stretch; overflow-y: auto; overscroll-behavior-y: contain; }
  .js .menu-toggle { display: flex; align-items: center; gap: .7rem; min-height: 2.75rem; padding: .6rem .8rem; border: 1px solid var(--line); border-radius: .5rem; background: white; color: var(--green); font-size: .78rem; font-weight: 700; }
  .menu-toggle-lines { position: relative; width: 1rem; height: .7rem; border-block: 2px solid currentColor; }
  .menu-toggle-lines::after { content: ''; position: absolute; inset-block-start: 3px; inset-inline-start: 0; height: 2px; width: 1rem; background: currentColor; }
  .js .header-menu:not(.is-open) { display: none; }
  .primary-nav { gap: 1.1rem; flex-wrap: wrap; }
  .primary-nav a { font-size: .85rem; }
  .hero { padding-block-start: 3rem; }
  .hero-grid { gap: 2rem; grid-template-columns: 1fr 1fr; }
  .hero h1 { font-size: 3.2rem; }
  .hero .lead { font-size: 1rem; }
  .hero-panel { padding: 1.6rem; }
  .panel-duration { font-size: min(2.8rem, 16vw); }
  .hero-actions { gap: 1.3rem; }
  .hero-actions .button { padding-inline: 1.1rem; }
  .hero-identity { margin-block-start: 2rem; }
  .section { padding-block: 4rem; }
  .programme-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
  .programme-card { padding: 1.8rem; }
  .programme-card h3 { font-size: 1.5rem; }
  .card-heading-row { margin-block-end: 1.5rem; }
  .card-link { font-size: .85rem; }
  .process-grid { gap: 1.6rem; }
  .process-grid h3 { font-size: 1.2rem; }
  .about-strip-inner { gap: 2.5rem; }
  .content-columns { grid-template-columns: 1.15fr .85fr; gap: 2rem; }
  .information-card, .duration-card { padding: 1.5rem; }
  .duration-card strong { font-size: 2.5rem; }
  .support-banner-inner { gap: 2rem; }
  .contact-channel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contribution-grid { gap: 1rem; }
  .contribution-card { padding: 1.4rem; min-inline-size: 0; overflow-wrap: anywhere; }
  .contribution-card h2 { font-size: 1.35rem; }
  .form-layout { gap: 2rem; grid-template-columns: .75fr 1.25fr; }
  .form-card { padding: 1.5rem; }
  .form-field input:not([type="checkbox"]), .form-field textarea, .form-field select { font-size: 1rem; }
  .form-grid { grid-template-columns: 1fr; }
  .form-actions { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .footer-grid { gap: 2.5rem; }
  /* Allow enlarged text to reflow inside grid cells instead of widening their tracks. */
  .content-columns > *, .form-layout > *, .conditions-grid > *, .footer-grid > *, .programme-grid > *, .about-strip-inner > * { min-inline-size: 0; }
  .duration-card, .information-card, .condition-card, .form-introduction, .form-card, .programme-card, .hero-panel, .about-strip-inner { overflow-wrap: anywhere; }
  .panel-top { flex-wrap: wrap; }
  .button, .text-link { min-inline-size: 0; max-inline-size: 100%; flex-wrap: wrap; overflow-wrap: anywhere; }
  .footer-brand { max-inline-size: 100%; flex-wrap: wrap; }
  .footer-brand .brand-word { min-inline-size: 0; overflow-wrap: anywhere; }
  .footer-links a { overflow-wrap: anywhere; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 5.5rem; }
  .container, .narrow { width: calc(100% - 2.5rem); }
  .header-menu { flex-direction: column; align-items: stretch; gap: 1rem; padding-block: .8rem; }
  .js .header-inner { column-gap: .5rem; }
  .js .header-inner > .menu-toggle { padding-inline: min(.4rem, 1vw); }
  .primary-nav { flex-direction: column; align-items: stretch; gap: 0; }
  .primary-nav a { padding-block: .65rem; border-block-end: 1px solid var(--line); font-size: .93rem; }
  .language-nav { gap: 1.3rem; }
  .language-nav a { font-size: .82rem; }
  .header-cta { display: inline-flex; align-self: flex-start; }
  .hero { padding-block-start: 2.2rem; }
  .hero-grid { grid-template-columns: 1fr; gap: 2.2rem; }
  .hero-copy { min-inline-size: 0; }
  .hero h1 { font-size: clamp(2.9rem, 10vw, 4rem); line-height: 1.07; margin-block-end: 1.3rem; }
  .hero-copy { padding: 0; }
  .hero .eyebrow { font-size: .72rem; }
  .hero .lead { font-size: 1.03rem; margin-block-end: 1.5rem; }
  .hero-actions { gap: 1.2rem; }
  .hero-actions .button { width: 100%; }
  .hero-actions .text-link { font-size: .86rem; }
  .hero-panel { border-radius: 1.2rem; padding: 1.8rem; padding-inline: min(1.8rem, 8vw); }
  .panel-top { margin-block-end: 1.7rem; }
  .panel-duration { font-size: min(2.8rem, 16vw); }
  .panel-subtitle { max-width: none; font-size: 1.03rem; margin-block-end: 1.8rem; }
  .panel-equipment { font-size: .84rem; }
  .hero-identity { flex-wrap: wrap; font-size: .77rem; padding-block: 1.8rem; gap: .6rem; }
  .hero-identity a { margin-inline-start: 1.05rem; width: 100%; }
  .section { padding-block: 3.3rem; }
  .section-heading { margin-block-end: 2rem; }
  .section-heading p:not(.eyebrow) { font-size: 1rem; }
  h2 { font-size: 2rem; }
  .eyebrow { font-size: .75rem; margin-block-end: 1rem; }
  .programme-grid { grid-template-columns: 1fr; gap: 1rem; }
  .programme-card { padding: 1.5rem; }
  .programme-card h3 { font-size: 1.65rem; max-width: 18rem; }
  .card-heading-row { margin-block-end: 1.1rem; }
  .programme-card p { font-size: .98rem; }
  .card-link { padding-block-start: .3rem; font-size: .86rem; }
  .process-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .process-grid li { padding-block-start: 1.3rem; }
  .step-number { margin-block-end: 1rem; }
  .process-grid h3 { font-size: 1.5rem; }
  .process-grid p { font-size: 1rem; }
  .about-strip-inner { grid-template-columns: 1fr; gap: 2rem; }
  .about-strip-sign { display: none; }
  .about-strip-inner p { font-size: 1rem; }
  .support-banner-inner { flex-direction: column; align-items: flex-start; gap: 1.8rem; }
  .support-banner .button { width: 100%; }
  .support-banner p:not(.eyebrow) { font-size: 1rem; }
  .page-intro { padding-block: 3.2rem; }
  .page-intro h1 { font-size: 2.65rem; }
  .lead { font-size: 1.07rem; }
  .intro-content .button { width: 100%; }
  .content-columns { grid-template-columns: 1fr; gap: 2.5rem; }
  .prose { font-size: 1rem; }
  .prose h2 { font-size: 1.7rem; }
  .prose p { line-height: 1.75; }
  .information-card, .duration-card { padding: 1.6rem; }
  .duration-card { padding-inline: min(1.6rem, 8vw); }
  .duration-card strong { font-size: min(2.8rem, 16vw); }
  .conditions-grid { grid-template-columns: 1fr; gap: 1rem; }
  .condition-card { padding: 1.5rem; }
  .condition-card h3 { font-size: 1.5rem; }
  .condition-card p { font-size: .98rem; }
  .callout { text-align: start; }
  .callout p { font-size: 1rem; }
  .callout .button { width: 100%; }
  .contribution-grid { grid-template-columns: 1fr; gap: 1rem; }
  .contribution-card { padding: 1.6rem; }
  .contribution-card h2 { font-size: 1.6rem; }
  .contribution-symbol { margin-block-end: 1.3rem; }
  .contribution-card p { font-size: 1rem; }
  .donation-methods { grid-template-columns: 1fr; gap: 1.8rem; margin-block-start: 2.5rem; }
  .contact-channel-grid { gap: .8rem; }
  .contact-channel { min-height: 8rem; padding: 1.1rem; }
  .contact-channel strong { font-size: .9rem; }
  .contact-channel > span:not(.arrow) { font-size: .75rem; }
  .contact-channel .arrow { font-size: .95rem; }
  .form-layout { grid-template-columns: 1fr; gap: 1.8rem; }
  .form-introduction { position: static; }
  .form-introduction h2 { font-size: 1.85rem; }
  .form-card { padding: 1.3rem; padding-inline: min(1.3rem, 8vw); border-radius: 1rem; }
  .form-field > label:not(.checkbox-label) { font-size: .86rem; }
  .form-field input:not([type="checkbox"]), .form-field textarea, .form-field select { font-size: 1rem; }
  .form-actions .button { width: 100%; }
  .hero-actions .button, .intro-content .button, .callout .button,
  .form-actions .button, .prose .button, .support-banner .button {
    padding-inline: min(1.5rem, 4vw);
    gap: min(.7rem, 3vw) min(1rem, 3vw);
  }
  .checkbox-label { font-size: .8rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .footer-about { grid-column: 1 / -1; }
  .footer-about > p { max-width: none; }
  .site-footer { padding-block-start: 3.3rem; }
  .footer-grid h2 { font-size: .9rem; }
  .footer-links a { font-size: .82rem; overflow-wrap: anywhere; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: .8rem; padding-block: 1.4rem; }
  .footer-bottom > div { gap: 1.3rem; flex-wrap: wrap; }
  .status-card { padding: 1.6rem; }
  .status-card h1 { font-size: 2.15rem; }
  .status-card .lead { font-size: 1rem; }
  .receipt { padding: 1rem; }
  .receipt code { font-size: .75rem; }
}
@media (max-width: 360px) {
  .container, .narrow { width: calc(100% - 2rem); }
  .hero h1 { font-size: 2.7rem; }
  .page-intro h1 { font-size: 2.4rem; }
  .button { font-size: .86rem; }
  .contact-channel-grid, .footer-grid { grid-template-columns: 1fr; }
}
@media (max-width: 980px) and (max-height: 500px) {
  /* Keep enlarged content reachable when a fixed header would fill most of a short viewport. */
  .site-header { position: static; }
  html { scroll-padding-top: 1rem; }
}
