*{
  box-sizing:border-box
}

html{
  scroll-behavior:smooth
}

body{
  margin:0;
  background:#f7f5f2;
  color:#211d1d;
  font:16px/1.5 Arial,Helvetica,sans-serif
}

a{
  color:#0c1cae;
  text-underline-offset:3px
}

a:hover{
  color:#ab183d
}

a:focus-visible,button:focus-visible,input:focus-visible{
  outline:3px solid #e29210;
  outline-offset:3px
}

.wrap{
  max-width:1080px;
  margin:auto;
  background:white;
  border-inline:1px solid #ded9d5;
  min-height:100vh
}

.skip{
  position:absolute;
  left:-9999px
}

.skip:focus{
  left:10px;
  top:10px;
  z-index:2;
  background:white;
  padding:8px
}

.mast{
  background:#ab183d;
  color:white;
  padding:26px 4%;
  display:flex;
  gap:23px;
  align-items:center
}

.ticket{
  display:grid;
  place-items:center;
  border:2px solid #fff;
  border-radius:7px;
  width:77px;
  height:55px;
  font:bold 31px Georgia;
  transform:rotate(-6deg);
  outline:1px dashed #ffbfcb;
  outline-offset:-7px
}

.brand{
  font-size:clamp(32px,6vw,62px);
  letter-spacing:-.035em;
  font-weight:800;
  line-height:1;
  color:white;
  text-decoration:none
}

.brand:hover{
  color:white
}

.domain{
  font-size:13px;
  letter-spacing:.19em;
  margin:6px 0 0
}

.identity{
  margin-left:auto;
  font-size:13px;
  text-align:right;
  border-left:1px solid #d58096;
  padding-left:18px
}

.nav{
  display:flex;
  background:#000000;
  flex-wrap:wrap
}

.nav a{
  display:block;
  padding:12px 4px;
  flex:1;
  text-align:center;
  color:white;
  text-decoration:none;
  font-weight:bold;
  font-size:14px;
  border-right:1px solid #484246
}

.nav a:hover,.nav a[aria-current=page]{
  background:#74122a
}

.inner{
  padding:18px clamp(12px,3vw,34px) 30px
}

.intro{
  text-align:center;
  margin:6px 0 15px
}

.intro h1{
  font-size:clamp(21px,3vw,31px);
  line-height:1.2;
  margin:0
}

.intro p,.sub{
  font-size:14px;
  color:#655b59;
  margin:6px 0
}

.find{
  display:flex;
  max-width:640px;
  margin:14px auto
}

.find input{
  flex:1;
  min-width:0;
  padding:10px 13px;
  font:inherit;
  border:1px solid #a79f99;
  border-radius:2px 0 0 2px
}

.find button,.action{
  background:#791332;
  color:white;
  border:0;
  padding:9px 18px;
  font:inherit;
  font-weight:bold;
  cursor:pointer;
  text-decoration:none
}

.find button:hover,.action:hover{
  background:#581028;
  color:white
}

.section-label{
  font-size:12px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#79223b;
  margin:17px 0 7px
}

.tiles{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:4px;
  margin-bottom:22px
}

.tile{
  padding:12px 7px;
  text-align:center;
  text-decoration:none;
  color:white;
  font-weight:bold;
  line-height:1.22;
  display:grid;
  align-content:center;
  min-height:64px
}

.tile small{
  display:block;
  font-size:12px;
  font-weight:normal;
  margin-top:4px
}

.tile:hover{
  color:white;
  text-decoration:underline;
  filter:brightness(.9)
}

.tile:nth-child(8n+1){
  background:#8d9200
}

.tile:nth-child(8n+2){
  background:#1a2fc8
}

.tile:nth-child(8n+3){
  background:#ff6a00
}

.tile:nth-child(8n+4){
  background:#a80000
}

.tile:nth-child(8n+5){
  background:#ff3300
}

.tile:nth-child(8n+6){
  background:#006b00
}

.tile:nth-child(8n+7){
  background:#ef35bf
}

.tile:nth-child(8n){
  background:#1e7fe8
}

.grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  align-items:stretch
}

.panel{
  border:1px solid #bc7350;
  display:flex;
  flex-direction:column;
  min-width:0
}

.panel h2{
  background:#ab183d;
  color:white;
  font-size:21px;
  text-align:center;
  margin:0;
  padding:7px
}

.items{
  margin:0;
  padding:3px 14px 5px 30px;
  flex:1
}

.items li{
  padding:9px 0;
  border-bottom:1px dotted #d8d1cc
}

.items li:last-child{
  border:0
}

.items li::marker{
  color:#7b2040;
  font-size:.8em
}

.items a{
  font-size:15px;
  font-weight:600
}

.more{
  font-size:13px;
  font-weight:bold;
  align-self:flex-end;
  padding:8px 13px;
  color:#7c1936
}

.foot{
  padding:18px 30px;
  border-top:3px solid #ab183d;
  color:#5f5655;
  font-size:13px;
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap
}

.crumb{
  font-size:13px;
  margin:0 0 16px
}

.page{
  max-width:760px;
  margin:8px auto 35px
}

.page h1{
  font-size:clamp(25px,4vw,37px);
  line-height:1.15;
  margin:10px 0
}

.page h2{
  font-size:21px;
  color:#861335
}

.meta{
  border-block:1px solid #ddd4cd;
  padding:10px 0;
  color:#655b59;
  font-size:14px
}

.action{
  display:inline-block;
  margin:8px 0
}

.listing{
  padding:0;
  list-style:none
}

.listing li{
  padding:12px 0;
  border-bottom:1px solid #ddd5cf
}

.listing small{
  display:block;
  color:#685f59
}

.listing a{
  font-weight:bold
}

 .hidden,[hidden]{
  display:none!important
}

@media(max-width:750px){
  .grid{
  grid-template-columns:repeat(2,minmax(0,1fr))
}

.identity{
  display:none
}

.nav a{
  flex:none;
  width:25%;
  font-size:13px
}

.tiles{
  grid-template-columns:repeat(2,1fr)
}

.mast{
  padding:19px;
  gap:15px
}


}

@media(max-width:510px){
  .grid{
  grid-template-columns:1fr
}

.mast .ticket{
  width:58px;
  height:44px;
  font-size:22px
}

.domain{
  font-size:10px
}

.items li{
  padding:9px 0
}

.inner{
  padding-top:14px
}


}


.tile:nth-child(8n+1),.tile:nth-child(8n+3),.tile:nth-child(8n+5),.tile:nth-child(8n+7),.tile:nth-child(8n){
  color:#ffffff
}

.quick{
  text-align:center;
  margin:8px 0 14px;
  font-size:14px;
  font-weight:bold
}

.quick a{
  display:inline-block;
  margin:2px 10px
}

.tile{
  min-height:68px
}

.directory,.bulletin {max-width:880px;margin:0 auto 36px}
.directory h1 {font-size:32px;margin:0 0 8px}
.directory>p {margin:0 0 22px}
.directory-box {border:1px solid #a94f48}
.directory-box h2 {background:#ab183d;color:white;text-align:center;margin:0;padding:6px;font-size:23px}
.directory-box ul {margin:10px 0 16px;padding:0 22px 0 38px}
.directory-box li {padding:7px 0}
.directory-box a {font-weight:bold}
.post-head {display:grid;grid-template-columns:minmax(135px,22%) 1fr;gap:13px 20px;align-items:baseline;margin:12px 0 24px}
.post-head>strong {color:#ae1535}
.post-head h1 {font-size:clamp(22px,3vw,30px);line-height:1.2;color:#b1162f;margin:0}
.post-head p {margin:0}
.notice-box {border:2px solid #373333}
.notice-box header {text-align:center;padding:16px 12px;border-bottom:1px solid #373333}
.notice-box header p,.notice-box header h2 {margin:0 0 5px}
.notice-box header p {font-size:18px;font-weight:bold;color:#8f165b}
.notice-box header h2 {font-size:24px;color:#156126}
.notice-box header strong {color:#8a1934}
.notice-facts {display:flex}
.notice-facts section {padding:12px 18px;flex:1;min-width:0}
.notice-facts section+section {border-left:1px solid #373333}
.notice-box h3 {text-align:center;color:#166421;font-size:19px;margin:0}
.notice-facts ul {padding-left:22px;margin:10px 0}
.notice-facts dl {margin:10px 0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px}
.notice-facts dt {font-weight:bold}
.notice-facts dd {margin:0}
.links-title {padding:7px;border-block:1px solid #373333;background:#fcfaf6}
.link-row {display:grid;grid-template-columns:1fr 1fr;text-align:center;align-items:stretch}
.link-row>* {padding:9px}
.link-row strong {color:#84205a}
.link-row a {border-left:1px solid #373333;font-weight:bold}
.link-row+.link-row {border-top:1px solid #373333}
.bulletin aside h2 {font-size:20px;color:#861335}
@media(max-width:600px){
 .post-head {grid-template-columns:1fr;gap:3px}
 .post-head>strong:not(:first-child) {margin-top:9px}
 .notice-facts {display:block}
 .notice-facts section+section {border-left:0;border-top:1px solid #373333}
 .notice-box header h2 {font-size:20px}
 .link-row {font-size:14px}
}
/* Layout taken from the supplied screen and print references. */
body { background:#fff }
.wrap { border:0 }
.mast { position:relative; min-height:156px; justify-content:center }
.mast-title { text-align:center }
.brand { font-size:clamp(30px,4vw,46px); letter-spacing:-.025em }
.domain { margin:2px 0 0; font-weight:bold; letter-spacing:.02em }
.mast .ticket { position:absolute; left:4%; width:86px; height:86px; border-radius:50%; transform:none; background:#f4e7dd; color:#761536; border:5px double #7a2946; outline:2px dashed #a55263; outline-offset:-10px }
.front-lead { margin:0 auto clamp(24px,4vw,54px); text-align:center }
.front-lead h1 { font:bold clamp(22px,2.2vw,32px)/1.22 Georgia,'Times New Roman',serif; color:#0000d9; margin:0 0 26px }
.front-lead p { font-weight:700; font-size:clamp(15px,1.65vw,20px); color:#c31815; margin:0 0 18px }
.front-lead nav { font-size:clamp(16px,1.6vw,20px); font-weight:700; margin-bottom:14px }
.front-lead a { color:#0000bc; text-decoration:none }
.front-lead a:hover,.front-lead a:focus-visible { text-decoration:underline }
.front-lead .divider { color:#a7182c }
.headlines { font:bold clamp(16px,1.6vw,20px)/1.55 Georgia,'Times New Roman',serif }
.headlines>div:first-child a:nth-of-type(2) { color:#b20b2f }
.grid { gap:18px }
.items li { border:0 }
.items a { font-size:16px; font-weight:500; color:#0000ee; line-height:1.4 }
.directory h1 { color:#10118f; font-family:Georgia,serif }
.bulletin { font-family:Georgia,'Times New Roman',serif }
.post-head h1 { color:#201a18 }
.notice-box { border:1px solid #6e6967 }
.notice-box header p { color:#ac008a }
.site-foot { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; background:#10182b; color:#fff; padding:24px 5% 12px; font-size:14px }
.site-foot a { display:block; width:fit-content; color:#fff; margin:5px 0 }
.site-foot p { grid-column:1/-1; text-align:center; font-weight:bold; border-top:1px solid #647085; margin:2px 0 0; padding-top:10px }
@media(max-width:600px) {
 .mast { min-height:98px; padding-left:77px }
 .mast .ticket { left:14px; width:52px; height:52px; font-size:20px; outline-offset:-7px }
 .front-lead h1 { margin-bottom:14px }
 .front-lead nav { margin-bottom:10px }
 .headlines>div { margin-bottom:8px }
 .site-foot { grid-template-columns:1fr 1fr }
}

.ticker-row { display:flex; justify-content:center; margin:0!important; min-width:0; }
.ticker-track { max-width:100%; text-align:center; }
.ticker-track a { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:inline-block; vertical-align:middle; max-width:100%; }
.ticker-track .divider { vertical-align:middle; }
.ticker-track [hidden] { display:none; }
@media(min-width:769px) and (prefers-reduced-motion:no-preference) {
  .ticker-track { max-width:calc(100% - 100px); animation:headline-drift 2.5s linear infinite alternate; }
  .ticker-row:hover .ticker-track,.ticker-row:focus-within .ticker-track { animation-play-state:paused; }
}
@keyframes headline-drift { from {transform:translateX(-48px)} to {transform:translateX(48px)} }
.detail-block{padding:12px 16px;border-top:1px solid #555}.detail-block ul{margin:8px 0}.exam-table{overflow-x:auto}.exam-table table{border-collapse:collapse;width:100%;margin-top:8px}.exam-table td,.exam-table th{border:1px solid #bbb;padding:7px;text-align:left;vertical-align:top}

.portal-logo{position:absolute;left:4%;width:110px;height:auto}@media(max-width:600px){.portal-logo{left:14px;width:58px}}

.panel h2 {font-size:clamp(22px,2.1vw,26px);line-height:1.25;padding:7px 4px}
.items li {padding:7px 0;line-height:1.4}
.items a:visited,.directory-box a:visited,.listing a:visited {color:#572983}
.items a:hover,.directory-box a:hover,.listing a:hover {color:#941538;text-decoration-thickness:2px}
.tile small:empty {display:none}
@media(min-width:769px){
 .inner {padding-inline:18px}
 .nav a {font-size:16px}
 .front-lead h1 {font-size:clamp(23px,2vw,27px)}
 .front-lead p,.front-lead nav {font-size:17px}
 .headlines {font-size:18px}
}

@media (pointer:coarse) and (max-height:600px) { .ticker-track {animation:none;max-width:100%} }
.nav{position:relative}
.search-toggle,#nav-search button{border:0;cursor:pointer;min-width:48px;font-size:28px}
.search-toggle{background:#000;color:white;display:grid;place-items:center}
.search-toggle svg{display:block;pointer-events:none}
#nav-search{position:absolute;inset:0;z-index:2;margin:0;display:flex;align-items:stretch;background:#eee}
#nav-search input{min-width:0;flex:1;border:0;border-radius:0;background:white;padding:0 16px;font:16px Arial,sans-serif;color:#161616;box-shadow:inset 0 -2px #ab183d}
#nav-search input:focus-visible{outline:2px solid #171717;outline-offset:-3px}
#nav-search button{background:#eee;color:black;padding:0 14px}
#search-results{padding:12px 18px;background:white;border-bottom:2px solid #ab183d}
#search-results ul{max-height:40vh;overflow:auto;padding-left:22px}
#search-results li{margin:6px 0}
#search-results p{margin:0}
@media(max-width:750px){.search-toggle{width:25%}}

/* Typography shared by the directory and examination notice templates. */
body {
  font: 500 17px/1.5 "Times New Roman", Times, serif;
  color: #212121;
}
.mast-title, .front-lead p, .front-lead nav, .tile { font-family: Arial, sans-serif; }
.brand { font-size: 40px; font-weight: 700; letter-spacing: normal; }
.domain { font-size: 20px; letter-spacing: normal; }
.nav a { font: 600 17px/1.5 system-ui, "Segoe UI", sans-serif; }
.site-foot { background: #0f172a; font-family: "Lexend Deca", Arial, sans-serif; }
.directory h1 { font: 600 28px/1.2 "Times New Roman", Times, serif; color: #212121; }
.directory > p { font-weight: 700; }
.directory-box h2, .panel h2 {
  font: 700 25px/1.25 "PT Sans", Arial, sans-serif;
  background: #ab183d;
  color: white;
}
.directory-box li, .items li { font: 500 16px/1.2 "Times New Roman", Times, serif; }
.directory-box li { padding: 0; margin-bottom: 25px; }
.directory-box a, .items a { font: inherit; text-decoration: underline; text-underline-offset: auto; }
.directory-box a:any-link, .items a:any-link, .link-row a:any-link { color: #0000ee; }
.front-lead h1, .front-lead a { color: #0000ff; }
.front-lead p, .front-lead .divider, .headlines > div:first-child a:nth-of-type(2) { color: #ff0000; }
.bulletin { font: 400 15px/1.5 Georgia, "Times New Roman", serif; }
.post-head > strong, .post-head h1 { color: #ff0000; }
.post-head h1 { font-size: 28px; }
.notice-box header p, .notice-box header strong, .link-row strong { color: #ff00ff; }
.notice-box header p, .notice-box header h2, .notice-box header strong, .notice-box h3 {
  font-size: 25px; font-weight: 700; line-height: 1.3;
}
.notice-box header h2, .notice-box h3 { color: #008000; }
.notice-box, .notice-box header, .link-row a, .link-row + .link-row, .exam-table :is(th,td) { border-color: #555; }
.links-title { background: white; }
@media (max-width: 768px) {
  .brand { font-size: 28px; }
  .domain { font-size: 16px; }
  .nav a { font-size: 14px; }
  .directory h1 { font-size: 18px; }
  .directory-box h2, .panel h2 { font-size: 20px; }
  .directory-box li, .items li { font-size: 11.5px; }
  .directory-box li { margin-bottom: 16px; }
  .directory-box, .panel { border: 1.5px solid #faaf47; }
  .post-head h1 { font-size: 20px; }
  .notice-box header :is(p,h2,strong) { font-size: 17px; }
  .notice-box h3 { font-size: 15px; }
  .notice-box, .link-row { font-size: 12px; }
}

.notice-faq {
  margin-top: 32px;
  border: 1px solid #888;
  border-radius: 5px;
  overflow: hidden;
  overflow-wrap: anywhere;
}
.notice-faq summary {
  cursor: pointer;
  background: #903953;
  color: white;
  text-align: center;
  padding: 6px 12px;
  font-weight: bold;
  font-style: italic;
}
.notice-faq summary:focus-visible { outline: 2px solid white; outline-offset: -4px; }
.notice-faq section { padding: 12px 14px; }
.notice-faq h3 { color: #ff00ff; font-size: clamp(17px, 2vw, 22px); margin: 0; }
.notice-faq section:nth-of-type(even) h3 { color: #008000; }
.notice-faq ul { padding-left: 20px; margin: 12px 0 0; }

/* Extend the existing home link across the masthead. */
.mast .brand::after {
  content: "";
  position: absolute;
  inset: 0;
}
.mast .brand:focus-visible::after {
  outline: 3px solid white;
  outline-offset: -4px;
}

.policy-menu { position: relative; color: white; font: 600 16px/1.5 system-ui, sans-serif; }
.policy-menu summary { cursor: pointer; padding: 12px 10px; }
.policy-menu[open] summary { color: black; background: #eee; }
.policy-menu div { position: absolute; right: 0; z-index: 4; width: 210px; background: #575757; }
.policy-menu div a { display: block; width: 100%; text-align: left; border: 0; font-size: 14px; padding: 10px 12px; }
@media (max-width: 768px) {
  .nav {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) 44px;
    grid-template-rows: repeat(2, minmax(44px, auto));
  }
  .nav > a, .policy-menu summary {
    width: auto;
    display: grid;
    place-content: center;
    padding: 4px 1px;
    font-size: clamp(12px, 3.4vw, 14px);
    line-height: 1.25;
    text-align: center;
  }
  .policy-menu { width: auto; }
  .policy-menu summary { height: 100%; display: flex; align-items: center; justify-content: center; gap: 4px; }
  .policy-menu summary::after { content: ""; width: 6px; height: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
  .policy-menu[open] summary::after { transform: rotate(225deg); }
  .policy-menu summary::-webkit-details-marker { display: none; }
  .nav > .search-toggle {
    grid-column: 5;
    grid-row: 1 / 3;
    width: auto;
    min-width: 0;
    border-left: 1px solid #484246;
  }
}
