


.db { display: block; }
.dib { display: inline-block; }
.flex { display: flex; }
.iflex { display: inline-flex; }
.wrap { flex-wrap: wrap; }
.col { flex-direction: column; }
.aic { align-items: center; }
.aib { align-items: baseline; }
.ais { align-items: flex-start; }
.jcsb { justify-content: space-between; }
.jcc { justify-content: center; }
.mxa { margin-left: auto; margin-right: auto; }
.mla { margin-left: auto; }
.rel { position: relative; }


.g1 { gap: 0.6vh 0.6vw; }
.g2 { gap: 1.2vh 1.2vw; }
.g3 { gap: 2.2vh 1.8vw; }
.mt1 { margin-top: 1.1vh; }
.mt2 { margin-top: 2.4vh; }
.mt3 { margin-top: 4.2vh; }
.mt4 { margin-top: 6.4vh; }
.mb1 { margin-bottom: 1.1vh; }
.mb2 { margin-bottom: 2.4vh; }
.mb3 { margin-bottom: 4.2vh; }
.pv2 { padding-top: 2.4vh; padding-bottom: 2.4vh; }
.pv3 { padding-top: 4.2vh; padding-bottom: 4.2vh; }
.ph2 { padding-left: 1.4vw; padding-right: 1.4vw; }
.nm { margin: 0; }


.w100 { width: 100%; }
.mw-copy { max-width: 62ch; }
.mw-lede { max-width: 46ch; }


.tc { text-align: center; }
.tr { text-align: right; }
.fw4 { font-weight: 400; }
.fw6 { font-weight: 600; }
.fw7 { font-weight: 700; }
.f-xs { font-size: 0.78rem; }
.f-sm { font-size: 0.88rem; }
.f-md { font-size: 1.05rem; }
.f-lg { font-size: clamp(1.1rem, 1.7vw, 1.25rem); }
.serif { font-family: 'Merriweather', Georgia, serif; }
.upper { text-transform: uppercase; letter-spacing: 0.14em; }
.lh-tight { line-height: 1.3; }


.c-ink { color: #042f2e; }
.c-body { color: #334e4c; }
.c-mute { color: #6b8a87; }
.c-accent { color: #0d9488; }
.c-mint { color: #5eead4; }
.c-paper { color: #ffffff; }
.c-soft { color: #a7d3cd; }
.bg-paper { background: #ffffff; }
.bg-tint { background: #f0fdfa; }
.bg-mint { background: #ccfbf1; }
.bg-deep { background: #042f2e; }


.br2 { border-radius: 12px; }
.br3 { border-radius: 20px; }
.bd { border: 1px solid #cfe9e5; }
.bd-deep { border: 1px solid #14615c; }
.pa2 { padding: 1.4rem; }
.pa3 { padding: 2rem; }
.op8 { opacity: 0.8; }


.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.is-hidden { display: none; }

@media (max-width: 768px) {
  .hide-s { display: none; }
  .pa3 { padding: 1.4rem; }
  .g3 { gap: 2.4vh 4vw; }
}
