/* Shared Gutenberg components. Use the same classes in frontend and editor. */
.anj-shell {
  width: min(var(--anj-width), calc(100% - var(--anj-gutter) * 2));
  margin-inline: auto;
}

.anj-hero {
  padding-block: clamp(2.75rem, 5.5vw, 4.75rem);
  background: var(--anj-deep);
  color: var(--anj-on-primary);
}

.anj-hero .wp-block-columns {
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}

.anj-hero h1 {
  max-width: 12ch;
  margin-block: 1rem 1.5rem;
  font-family: var(--anj-font-heading);
  font-size: clamp(2.5rem, 4.5vw, 4rem);
  font-weight: 400;
  line-height: 1.09;
  letter-spacing: -.035em;
  color: var(--anj-on-primary);
  text-wrap: balance;
}

.anj-eyebrow {
  margin-block: 0 1rem;
  font: 700 .75rem/1.5 var(--anj-font-body);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--anj-primary);
}

.anj-hero .anj-eyebrow,
.anj-hero .anj-caption,
.anj-hero .anj-lead,
.anj-hero-visual p {
  color: var(--anj-on-primary);
}

.anj-lead {
  max-width: 37rem;
  font-size: 1.0625rem;
  line-height: 1.8;
}

.anj-hero .wp-block-buttons {
  margin-block: 1.75rem;
  gap: .75rem;
}

.anj-caption {
  font-size: .875rem;
  line-height: 1.65;
  color: var(--anj-muted);
}

.anj-hero-visual {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-height: 17rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--anj-accent);
  border-top-width: 3px;
  border-radius: var(--anj-radius);
  text-align: start;
}

.anj-hero-visual p {
  margin-block: .375rem;
}

.anj-hero-visual .anj-symbol {
  margin-block: 0 1rem;
  font: 400 3rem/1 var(--anj-font-heading);
  color: var(--anj-on-primary);
}

.anj-hero-visual .anj-eyebrow {
  font-size: .75rem;
}

.anj-section {
  padding-block: var(--anj-section-space);
}

.anj-section h2 {
  margin-block: 0 1.5rem;
  font: 400 clamp(2rem, 3.3vw, 2.75rem)/1.18 var(--anj-font-heading);
  letter-spacing: -.025em;
  text-wrap: balance;
}

.anj-section h3 {
  margin-block: 1rem;
  font: 600 1.25rem/1.4 var(--anj-font-body);
  letter-spacing: -.015em;
}

.anj-section .wp-block-columns {
  gap: clamp(1.5rem, 3vw, 2.5rem);
}

.anj-section-intro {
  max-width: 43rem;
  margin-block-end: 2rem;
}

.anj-section-intro p:not(.anj-eyebrow) {
  color: var(--anj-muted);
}

.anj-tint { background: var(--anj-soft); }
.anj-white { background: var(--anj-surface); }
.anj-divider { border-top: 1px solid var(--anj-border); }

.anj-link {
  margin-block-start: 1.5rem;
  font-size: .9375rem;
  font-weight: 600;
}

.anj-link a {
  text-decoration-line: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}

.anj-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 12rem;
  padding: 1.5rem;
  border: 1px dashed var(--anj-control-border);
  border-radius: var(--anj-radius);
  background: var(--anj-soft);
  color: var(--anj-muted);
  text-align: center;
}

.anj-placeholder p {
  margin-block: .25rem;
  font-size: .875rem;
}

.anj-placeholder .anj-symbol {
  font: 400 2rem/1.2 var(--anj-font-heading);
  color: var(--anj-primary);
}

.anj-card {
  height: 100%;
  padding: 1.75rem;
  border: 1px solid var(--anj-border);
  border-radius: var(--anj-radius);
  background: var(--anj-surface);
}

.anj-card p {
  margin-block: .875rem;
  font-size: 1rem;
  color: var(--anj-muted);
}

.anj-card-number {
  color: var(--anj-primary);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .1em;
}

.anj-unit-card { border-top: 3px solid var(--anj-primary); }
.anj-unit-smp { border-top-color: #2563eb; }
.anj-unit-smk { border-top-color: #0f766e; }
.anj-unit-ma { border-top-color: #166534; }

.anj-unit-card .anj-placeholder {
  min-height: 7rem;
  margin-block-end: 1.5rem;
}

.anj-unit-card h3 {
  font: 400 2rem/1.2 var(--anj-font-heading);
}

.anj-unit-card h3 a { color: inherit; }
.anj-unit-smp .anj-placeholder { background: #eff6ff; color: #173d8a; }
.anj-unit-smk .anj-placeholder { background: #ecfdf5; color: #134e4a; }
.anj-unit-ma .anj-placeholder { background: #f0fdf4; color: #14532d; }

.anj-quote {
  padding-inline-start: 1.5rem;
  border-inline-start: 3px solid var(--anj-accent);
  font: 400 clamp(1.375rem, 2.5vw, 1.75rem)/1.5 var(--anj-font-heading);
}

.anj-ppdb {
  background: var(--anj-primary);
  color: var(--anj-on-primary);
}

.anj-ppdb :is(h2, .anj-eyebrow, p) { color: var(--anj-on-primary); }
.anj-ppdb .wp-block-columns { align-items: center; }

.anj-pill {
  display: inline-block;
  padding: .375rem .75rem;
  border: 1px solid currentColor;
  border-radius: var(--anj-radius);
  font-size: .875rem;
  line-height: 1.5;
}

.anj-news-grid .wp-block-post-template {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 1.25rem;
  margin: 0;
  padding: 0;
}

.anj-news-grid .wp-block-post {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--anj-border);
  border-radius: var(--anj-radius);
  background: var(--anj-surface);
}

.anj-news-grid .wp-block-post:first-child { grid-row: span 2; }

.anj-news-art {
  display: flex;
  align-items: center;
  min-height: 3.5rem;
  padding-inline: 1.5rem;
  background: var(--anj-soft);
  border-bottom: 1px solid var(--anj-border);
}

.anj-news-art p {
  margin: 0;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--anj-primary);
}

.anj-news-body { padding: 1.5rem; }
.anj-news-grid .wp-block-post-title {
  margin-block: .75rem;
  font: 400 1.5rem/1.3 var(--anj-font-heading);
}
.anj-news-grid .wp-block-post:first-child .wp-block-post-title { font-size: 2rem; }
.anj-news-grid .wp-block-post-title a { color: var(--anj-ink); }
.anj-news-grid .wp-block-post-excerpt { font-size: .9375rem; color: var(--anj-muted); }
.anj-news-grid .wp-block-post-date { font-size: .8125rem; color: var(--anj-muted); }
.anj-news-grid .wp-block-post-excerpt__more-link { font-weight: 600; }

.anj-announcement-section {
  padding-block: 1.75rem;
  border-bottom: 1px solid var(--anj-border);
  background: var(--anj-surface);
}

.anj-announcements {
  padding-inline-start: 1.5rem;
  border-inline-start: 3px solid var(--anj-accent);
}

.anj-announcements :is(h2, h3) {
  margin-block: 0 .75rem;
  font: 600 1rem/1.5 var(--anj-font-body);
}

.anj-announcements .wp-block-post-template { margin-block: 0; padding: 0; list-style: none; }
.anj-announcements .wp-block-post { padding-block: .375rem; }
.anj-announcements .wp-block-post-title { margin: 0; font: 600 1rem/1.6 var(--anj-font-body); }
.anj-announcements .wp-block-post-title a { color: var(--anj-primary); }
.anj-gallery .anj-placeholder { min-height: 10rem; }

.anj-contact-panel {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid var(--anj-border);
  background: var(--anj-surface);
}

.anj-contact-panel p { font-size: 1rem; }
.anj-notice {
  padding: 1rem 1.25rem;
  border-inline-start: 3px solid var(--anj-accent);
  background: var(--anj-soft);
  color: var(--anj-muted);
  font-size: .9375rem;
  line-height: 1.7;
}

@media (max-width: 781px) {
  .anj-hero h1 { max-width: 17ch; font-size: clamp(2.25rem, 6.5vw, 3.25rem); }
  .anj-hero .wp-block-columns { gap: 1.75rem; }
  .anj-hero-visual { min-height: 9rem; padding: 1.25rem; }
  .anj-hero-visual .anj-symbol { margin-block-end: .5rem; font-size: 2rem; }
  .anj-card { padding: 1.5rem; }
  .anj-gallery .wp-block-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .anj-gallery .anj-placeholder { min-height: 8rem; padding: 1rem; }
  .anj-news-grid .wp-block-post-template { grid-template-columns: 1fr; }
  .anj-news-grid .wp-block-post:first-child { grid-row: auto; }
  .anj-news-grid .wp-block-post:first-child .wp-block-post-title { font-size: 1.625rem; }
}

@media (max-width: 480px) {
  .anj-hero .wp-block-button { width: 100%; }
  .anj-hero .wp-block-button__link { width: 100%; }
  .anj-lead { font-size: 1rem; }
  .anj-announcements { padding-inline-start: 1rem; }
}
