/* ============================================
   Swiss IAF — Mobile / tablet transversal (≤1023px)
   Structural layout per block lives in component CSS files.
   Breakpoint aligns with --iaf-bp-tablet (1023px) and nav.js.
   ============================================ */

@media (max-width: 1023px) {
  html,
  body {
    overflow-x: clip;
  }

  :root {
    --iaf-mobile-section-pad-block: var(--iaf-layout-padding-block-tablet, 64px);
    --iaf-mobile-section-pad-inline: var(--iaf-layout-padding-inline-tablet, 24px);
    --iaf-separator-inline-padding: var(--iaf-layout-padding-inline-tablet, 24px);
    /* Filet haut → contenu extension (16px mobile). */
    --iaf-ext-divider-gap: 16px;
  }

  /* Espacement vertical entre extensions : 0 (ajustements par bloc ensuite). */
  .iaf-ext-spacing {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .iaf-ext-spacing--has-top-divider::before {
    margin-bottom: var(--iaf-ext-divider-gap);
  }

  /* Pas de padding-top en double : l’écart filet → titre = --iaf-ext-divider-gap. */
  .iaf-ext-spacing--has-top-divider > .iaf-ext {
    padding-top: 0 !important;
  }

  /* Intro Text : filet bas → extension suivante (listing, modular, etc.). */
  .iaf-ext-spacing--has-bottom-divider::after {
    margin-top: 0;
    margin-bottom: var(--iaf-ext-divider-gap);
  }

  .iaf-ext-spacing--has-bottom-divider + .iaf-ext-spacing > .iaf-ext {
    padding-top: 0 !important;
  }

  /* -------- Corner squares -------- */
  :root {
    --iaf-image-corner-square-size: clamp(22px, 6vw, 40px);
  }

  .iaf-image-corner-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    min-height: 0;
  }

  .iaf-image-corner-footer .iaf-modular__image-caption {
    padding-top: 10px;
  }

  .iaf-image-corner-footer--squares-only {
    display: none;
  }

  .iaf-image-corner-squares {
    display: none;
  }

  /* Carré bleu accent : desktop only. */
  .iaf-image-corner-squares__accent {
    display: none;
  }

  .iaf-modular__figure--corner-squares .iaf-modular__image-frame,
  .iaf-hero-location__figure--corner-squares .iaf-hero-location__image-frame {
    margin-bottom: 0;
  }
}

@media (max-width: 768px) {
  :root {
    --iaf-mobile-section-pad-block: var(--iaf-layout-padding-block-phone, 56px);
    --iaf-mobile-section-pad-inline: var(--iaf-layout-padding-inline-phone, 20px);
    --iaf-separator-inline-padding: var(--iaf-layout-padding-inline-phone, 20px);
    --iaf-mobile-module-gap: 40px;
    --iaf-mobile-stack-gap: 20px;
  }
}

/* Touch / coarse pointer — skip cross-document view transition blur (class set in head). */
html.iaf-mobile-vt-skip ::view-transition-old(root),
html.iaf-mobile-vt-skip ::view-transition-new(root) {
  animation-duration: 0ms !important;
  filter: none !important;
}
