/* ISA responsive layer - overrides desktop inline styles below 1024px.
   !important is required throughout: the export uses inline styles. */

@media (max-width: 1024px) {
  [style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2, 1fr) !important; }
  h1[style*="font-size:82px"], h1[style*="font-size:78px"], h1[style*="font-size:76px"] { font-size: 54px !important; }
  [style*="font-size:60px"] { font-size: 46px !important; }
}

@media (max-width: 640px) {
  header nav, header > div > div:last-child { display: none !important; }
  .isa-burger { display: flex !important; }
  header > div { padding: 18px 20px !important; }

  h1[style*="font-size:82px"], h1[style*="font-size:78px"], h1[style*="font-size:76px"] { font-size: 38px !important; }
  [style*="font-size:60px"] { font-size: 34px !important; }
  [style*="font-size:48px"], [style*="font-size:46px"], [style*="font-size:44px"] { font-size: 30px !important; }
  [style*="font-size:42px"], [style*="font-size:40px"] { font-size: 28px !important; }
  [style*="font-size:34px"] { font-size: 24px !important; }
  [style*="font-size:22px"] { font-size: 18px !important; }

  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:.9fr 1.1fr"],
  [style*="grid-template-columns:.8fr 1.2fr"] { grid-template-columns: 1fr !important; }
  [style*="grid-template-columns:64px 1fr"] { display: block !important; text-align: center !important; }
  [style*="grid-template-columns:64px 1fr"] * { text-align: center !important; }
  [style*="grid-template-columns:64px 1fr"] > div:first-child { display: inline-block !important; margin: 0 auto 14px !important; }

  [style*="padding:104px 40px"], [style*="padding:96px 40px"] { padding: 56px 22px !important; }
  [style*="padding:72px 40px 56px"] { padding: 44px 22px 36px !important; }
  [style*="padding:56px 40px"] { padding: 36px 22px !important; }
  [style*="padding:48px 40px 32px"] { padding: 32px 22px 24px !important; }
  [style*="padding:28px 40px"] { padding: 20px 22px !important; }
  [style*="padding:20px 40px 40px"] { padding: 16px 22px 28px !important; }

  figure[style*="flex:0 0 calc((100% - 80px)/3)"] { flex: 0 0 calc(50% - 10px) !important; }
  figure figcaption div[style*="font-size:24px"] { font-size: 16px !important; }
  figure figcaption div[style*="font-size:22px"] { font-size: 15px !important; }
  figure figcaption div[style*="font-size:11px"] { font-size: 9.5px !important; letter-spacing: .06em !important; }

  footer > div { flex-direction: column !important; text-align: center !important; justify-content: center !important; }
  footer > div > div { justify-content: center !important; }

  input, textarea, button { font-size: 16px !important; }
  form button[type="submit"] { display: block !important; margin-left: auto !important; margin-right: auto !important; }

  a[style*="transition:transform"] { transform: none !important; }

  /* How-it-works steps (home): centered text, 03 centered spanning both columns */
  [style*="grid-template-columns:repeat(3,1fr);gap:0"] > div { text-align: center !important; border-left: none !important; padding: 18px 10px !important; }
  [style*="grid-template-columns:repeat(3,1fr);gap:0"] > div:nth-child(3) { grid-column: 1 / -1 !important; max-width: 75% !important; justify-self: center !important; }

  #heroVideo { object-position: 15% 30% !important; }

  /* home hero legibility over video */
  p[style*="font-size:22px"][style*="color:#41505c"] { color: #1b2a3a !important; }
  div[style*="z-index:2"][style*="max-width:1280px"] { background: rgba(245,241,232,.42) !important; }


  /* --- patterns introduced by the service pages and the redesigned sections --- */
  [style*="grid-template-columns:repeat(2,minmax(0,1fr))"],
  [style*="grid-template-columns:1.05fr 1fr"],
  [style*="grid-template-columns:1fr auto"] { grid-template-columns: 1fr !important; gap: 26px !important; }

  [style*="grid-template-columns:repeat(3,minmax(0,1fr))"],
  [style*="grid-template-columns:repeat(4,minmax(0,1fr))"] { grid-template-columns: 1fr !important; gap: 16px !important; }

  /* 51% numeral beside its paragraph (home "what we do") */
  [style*="grid-template-columns:auto 1fr"] { grid-template-columns: 1fr !important; gap: 14px !important; }

  /* navy 3-up on the services page: drop the column rules once stacked */
  [style*="grid-template-columns:repeat(3,1fr)"] > div[style*="border-left"] { border-left: none !important; padding-left: 0 !important; padding-right: 0 !important; }

  /* two-up blocks lose their divider rules and side padding when stacked */
  [style*="grid-template-columns:1fr 1fr"] > div[style*="border-left"],
  [style*="grid-template-columns:repeat(2,minmax(0,1fr))"] > div[style*="border-left"] { border-left: none !important; padding-left: 0 !important; }

  /* section padding used by the new pages */
  [style*="padding:88px 40px"], [style*="padding:84px 40px"],
  [style*="padding:80px 40px"], [style*="padding:72px 40px"],
  [style*="padding:66px 40px"], [style*="padding:60px 40px"] { padding: 40px 22px !important; }
  [style*="padding:72px 40px 80px"] { padding: 40px 22px 44px !important; }
  [style*="padding:96px 40px 88px"] { padding: 48px 22px 40px !important; }

  /* headline sizes used by the new pages */
  h1[style*="font-size:74px"] { font-size: 38px !important; }
  [style*="font-size:38px"], [style*="font-size:36px"] { font-size: 26px !important; }
  [style*="font-size:30px"] { font-size: 22px !important; }
  [style*="font-size:96px"] { font-size: 60px !important; }
  [style*="font-size:82px"] { font-size: 44px !important; }

  .isa-lead-row { flex-wrap: wrap !important; justify-content: center !important; row-gap: 20px !important; }
  figure.isa-ceo { flex: 0 0 72% !important; }
}

.isa-burger { display: none; background: none; border: none; cursor: pointer; padding: 8px; flex-direction: column; gap: 5px; }
.isa-burger span { display: block; width: 24px; height: 2px; background: #1b2a3a; transition: transform .25s ease, opacity .25s ease; }
.isa-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.isa-burger.open span:nth-child(2) { opacity: 0; }
.isa-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.isa-mobilemenu { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #f5f1e8; z-index: 49; padding: 110px 30px 40px; flex-direction: column; gap: 26px; }
.isa-mobilemenu.open { display: flex; }
.isa-mobilemenu a { font-family: 'IBM Plex Mono', monospace; font-size: 20px; letter-spacing: .14em; text-transform: uppercase; color: #1b2a3a; text-decoration: none; border-bottom: 1px solid #ddd5c4; padding-bottom: 14px; }
.isa-mobilemenu a.cur { color: #c42b28; }
.isa-mobilemenu .isa-mphone { margin-top: auto; font-family: 'IBM Plex Mono', monospace; font-size: 18px; color: #1b2a3a; border-bottom: 2px solid #c42b28; align-self: flex-start; padding-bottom: 4px; }
@media (prefers-reduced-motion: reduce) { .isa-burger span { transition: none; } }
