/* COPIED from site/css/admission-sheet.css by tools/build.js. Edit that one. */
/* ===========================================================================
   The admission form as printed (js/admission-sheet.js): two A4 pages.
   Used by apply.html (preview and print) and by the blank PDF
   (tools/make-downloads.js). Photocopy-safe: every line and box is dark
   enough to survive a copier; colour is only a help.
   =========================================================================== */
.as-page {
  --as-navy: #0B1A3B; --as-gold: #B7791F; --as-line: #8A94A6; --as-soft: #F3F5F9;
  box-sizing: border-box; width: 210mm; height: 297mm; padding: 10mm 12mm 9mm; background: #fff; color: #111;
  font-family: 'Inter', Arial, sans-serif; font-size: 9pt; line-height: 1.35; position: relative; overflow: hidden;
  display: flex; flex-direction: column;
}
.as-page *, .as-page *::before, .as-page *::after { box-sizing: border-box; margin: 0; padding: 0; }
.as-page h1, .as-page h2, .as-page h3 { font-family: 'Outfit', Arial, sans-serif; color: var(--as-navy); line-height: 1.2; }

/* Letterhead */
.as-lh { display: grid; grid-template-columns: 21mm 1fr auto; gap: 4mm; align-items: center;
  padding-bottom: 3mm; border-bottom: 2.5pt double var(--as-navy); }
.as-crest { width: 21mm; height: 21mm; display: block; }
.as-name { font-family: 'Outfit', Arial, sans-serif; font-weight: 800; font-size: 14.5pt; color: var(--as-navy); line-height: 1.12; text-wrap: balance; }
.as-motto { font-size: 8pt; font-style: italic; color: #444; margin-top: .6mm; }
.as-addr { font-size: 7.6pt; color: #333; }
.as-no { text-align: center; border: 1pt solid var(--as-navy); border-radius: 1.5mm; padding: 1.5mm 3mm; min-width: 33mm; }
.as-no span { display: block; font-size: 6.8pt; text-transform: uppercase; letter-spacing: .08em; color: #555; }
.as-no b { display: block; font-family: 'Outfit', Arial, sans-serif; font-size: 12pt; color: var(--as-navy); min-height: 5.5mm; letter-spacing: .02em; }
.as-no small { display: block; font-size: 6.5pt; color: #777; }

.as-title { display: flex; align-items: center; gap: 4mm; margin: 3.2mm 0 2.2mm; }
.as-title::before, .as-title::after { content: ''; flex: 1; border-top: .8pt solid var(--as-gold); }
.as-title h1 { font-size: 12.5pt; letter-spacing: .16em; text-transform: uppercase; background: var(--as-navy); color: #fff;
  padding: 1.3mm 6mm; border-radius: 1.2mm; }
.as-title span { order: 3; font-family: 'Outfit', Arial, sans-serif; font-weight: 600; font-size: 9pt; color: var(--as-gold); white-space: nowrap; }
.as-title::after { order: 4; }
.as-hint { font-size: 7.6pt; color: #444; margin: 0 0 2mm; }
.as-req { font-style: normal; color: #B42318; margin-left: .6mm; }

/* The top: class and photo */
.as-top { display: grid; grid-template-columns: 1fr 30mm; gap: 4mm; align-items: stretch; }
.as-photo { width: 30mm; height: 37mm; border: 1pt dashed #333; display: flex; align-items: center; justify-content: center;
  text-align: center; font-size: 7pt; color: #555; padding: 2mm; overflow: hidden; }
.as-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.as-photo:has(img) { border-style: solid; padding: 0; }

/* Section heads */
.as-page h2 { display: flex; align-items: center; gap: 2mm; font-size: 10pt; margin: 3mm 0 1.4mm; padding-bottom: .8mm;
  border-bottom: .8pt solid var(--as-navy); }
.as-page h2 b { display: inline-flex; align-items: center; justify-content: center; width: 4.6mm; height: 4.6mm; border-radius: 50%;
  background: var(--as-navy); color: #fff; font-size: 7.5pt; }
.as-page h3 { font-size: 8.6pt; margin-bottom: 1mm; }
.as-page h3 small { font-weight: 400; color: #555; }

/* Labelled boxes */
.as-grid { display: grid; border-top: .6pt solid var(--as-line); border-left: .6pt solid var(--as-line); }
.as-grid.g2 { grid-template-columns: repeat(2, 1fr); }
.as-grid.g4 { grid-template-columns: repeat(4, 1fr); }
.as-c { border-right: .6pt solid var(--as-line); border-bottom: .6pt solid var(--as-line); padding: .9mm 1.6mm 1mm; min-height: 9.6mm; min-width: 0; }
.as-c.span2 { grid-column: span 2; }
.as-c.span4 { grid-column: span 4; }
.as-l { display: block; font-size: 6.6pt; text-transform: uppercase; letter-spacing: .05em; color: #555; line-height: 1.2; }
.as-v { display: block; font-size: 9.2pt; font-weight: 600; color: #111; min-height: 4.4mm; overflow-wrap: anywhere; }
.as-c.as-strong .as-v { font-size: 10pt; color: var(--as-navy); }
.as-v.as-ph { font-weight: 400; font-size: 8pt; color: #8A94A6; text-align: right; }
.as-top .as-c { background: var(--as-soft); }

.as-addrs { display: grid; grid-template-columns: 1fr 1fr; gap: 4mm; }

/* Page 2 */
.as-decl { font-size: 9pt; line-height: 1.5; margin: 1mm 0 0; text-align: justify; }
.as-sign { display: grid; grid-template-columns: 1fr 1.6fr; gap: 16mm; margin: 11mm 0 1mm; }
.as-sign > div { border-top: .8pt solid #222; padding-top: 1mm; text-align: center; font-size: 8pt; font-weight: 600; color: var(--as-navy); }
.as-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6mm 6mm; margin: 1.4mm 0; }
.as-tick { display: flex; align-items: center; gap: 2mm; font-size: 8.8pt; }
.as-tick i { flex: 0 0 3.6mm; width: 3.6mm; height: 3.6mm; border: .9pt solid var(--as-navy); border-radius: .5mm; }
.as-office { margin-top: auto; border: 1.2pt solid var(--as-navy); border-radius: 1.5mm; padding: 2.4mm 3mm 1mm; }
.as-office h3 { text-transform: uppercase; letter-spacing: .08em; font-size: 8.4pt; margin-bottom: 1.2mm; }
.as-office .as-decl { margin-bottom: 2mm; }
.as-office .as-c { min-height: 10.5mm; }
.as-office .as-sign { margin-top: 12mm; }
.as-foot { font-size: 7.6pt; color: #444; margin-top: 2.5mm; text-align: center; }

/* A PDF or a printer: one sheet per page, nothing else. The sheets carry
   their own margins, so their pages have none; a named page keeps that from
   touching anything else the site or the portal prints (receipts, slips). */
@page as-a4 { size: A4; margin: 0; }
.as-page { page: as-a4; }
@media print {
  .as-page { page-break-after: always; break-after: page; }
  .as-page:last-child { page-break-after: auto; break-after: auto; }
}
