/* ---- responsive.v1.css (mobile-first, non-destructive) ---- */
:root{
  --maxw: 1200px;
  --space: clamp(12px, 1.2vw, 20px);
  --fs-body: clamp(14px, 1.15vw, 18px);
  --fs-h1: clamp(24px, 4vw, 44px);
  --fs-h2: clamp(20px, 3vw, 32px);
  --radius: 1.25rem;
}
html{ box-sizing:border-box; }
*,*::before,*::after{ box-sizing:inherit; }
img,video{ max-width:100%; height:auto; display:block; }
body{ margin:0; font-size:var(--fs-body); line-height:1.6; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.container, .wrap, .site-width{ width:min(100% - 2rem, var(--maxw)); margin-inline:auto; }
h1{ font-size:var(--fs-h1); line-height:1.15; }
h2{ font-size:var(--fs-h2); line-height:1.2; }

.grid{ display:grid; gap:var(--space); }
.cols-2{ grid-template-columns:1fr; }
@media (min-width:768px){ .cols-2{ grid-template-columns:1fr 1fr; } }
.cols-3{ display:grid; grid-template-columns:1fr; gap:var(--space); }
@media (min-width:1024px){ .cols-3{ grid-template-columns:repeat(3,1fr); } }

:where(section,.section,.band,.fullwidth) > .container { padding-block: clamp(16px, 3vw, 48px); }

@media (min-width:600px){ :root{ --maxw: 1100px; } }
@media (min-width:1280px){ :root{ --maxw: 1400px; } }

html,body{ overflow-x:hidden; }
.table-scroll{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-scroll > table{ min-width:640px; }

.skip-link{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus{ left:1rem; top:1rem; width:auto; height:auto; padding:.5rem .75rem; background:#000; color:#fff; border-radius:.5rem; }

.nav-pe{ position: relative; }
.nav-pe__toggle{ display:inline-flex; gap:.5rem; align-items:center; padding:.5rem .75rem; border:1px solid rgba(0,0,0,.1); border-radius:.75rem; background:transparent; cursor:pointer; }
.nav-pe__toggle:focus{ outline:2px solid; outline-offset:2px; }
@media (max-width:1023.98px){
  .nav-pe__menu{ display:none; }
  .nav-pe__menu.is-open{ display:block; }
}
@media (min-width:1024px){
  .nav-pe__toggle{ display:none !important; }
  .nav-pe__menu{ display:flex !important; gap:var(--space); }
}

:where(.card img,.card picture){ width:100%; height:auto; object-fit:cover; border-radius:var(--radius); }
.logo--circle{ outline:1px solid rgba(0,0,0,0.001); outline-offset:-1px; }
