/* Visual identities of the Society and its Institute. Only loaded inside either site. */
.interior {
  --deep: #153e76;
  --accent: #1956a7;
  --bright: #0588cf;
  --pale: #f0f7ff;
  --rule: #cbddf0;
  --ink: #192f4c;
  --quiet: #40576b;
  --display: Georgia, "Times New Roman", serif;
  --page: min(100%, 92rem);
  background: white;
  color: var(--ink);
}
.interior.ijp {
  --deep: #12394b;
  --accent: #00668a;
  --bright: #24abe2;
  --pale: #effaff;
  --rule: #c4e4ed;
  --ink: #1f3540;
  --quiet: #435d68;
  --display: "Helvetica Neue", Arial, sans-serif;
}
.interior :is(a,button,summary):focus-visible { outline-color: var(--accent); }
.identity-bar,.identity-hero-inner,.chapter-inner,.identity-foot-inner {
  width: var(--page); margin-inline: auto; padding-inline: var(--gutter);
}
.identity-head { background: white; border-bottom: 1px solid var(--rule); }
.identity-bar {
  min-height: 5.9rem; display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center; gap: 1.7rem; padding-block: .55rem;
}
.mast-logo { justify-self: start; display: block; }
.mast-logo img { height: 4.45rem; width: auto; }
.ijp .mast-logo img { height: 4.65rem; }
.identity-nav,.identity-switch { display: flex; align-items: center; }
.identity-nav { gap: clamp(.9rem, 2.15vw, 2.5rem); font-size: .96rem; }
.identity-nav a {
  min-height: 46px; display: inline-flex; align-items: center; white-space: nowrap;
  position: relative; color: var(--quiet);
}
.identity-nav a[aria-current] { color: var(--deep); font-weight: 700; }
.identity-nav a[aria-current]::after {
  position: absolute; content: ""; bottom: 4px; height: 3px; left: 0; right: 0;
  background: var(--bright); border-radius: 2px;
}
.identity-switch { justify-self: end; gap: .7rem; white-space: nowrap; font-size: .82rem; }
.identity-switch a { display: inline-flex; gap: .3rem; min-height: 44px; align-items: center; color: var(--accent); }
.identity-switch span { color: #8b9aa4; }
.identity-nav a:hover,.identity-switch a:hover,.identity-foot a:hover { text-decoration: underline; text-underline-offset: .28em; }

/* The large art is taken from the original transparent logo files. */
.identity-hero { overflow: hidden; position: relative; border-bottom: 1px solid var(--rule); background: linear-gradient(103deg,#fff 27%,#f7fbff 100%); }
.ijp .identity-hero { background: linear-gradient(107deg,#fff 29%,#effaff 100%); }
.identity-hero-inner {
  display: grid; grid-template-columns: minmax(0,1.42fr) minmax(0,.9fr);
  align-items: center; gap: clamp(1rem,3.6vw,4.5rem); min-height: clamp(23rem,36vw,34.5rem);
  position: relative;
}
.hero-type { grid-row: 1; grid-column: 1; padding-block: clamp(2.7rem,5.6vw,6.25rem); position: relative; z-index: 1; }
.brand-tag {
  color: var(--accent); font: 700 .72rem/1.5 var(--sans); letter-spacing: .115em; text-transform: uppercase;
  display: flex; align-items: center; gap: .68rem;
}
.brand-tag::before { content: ""; width: 2rem; height: 3px; flex: none; background: linear-gradient(90deg,var(--bright),var(--accent)); }
.ijp .brand-tag::before { height: 2px; background: linear-gradient(90deg,#c2c2c2 20%,var(--bright) 20%); }
.hero-type h1 {
  margin: 1.05rem 0 1.05rem; font: 400 clamp(3.1rem,5.1vw,5.7rem)/1.16 var(--display);
  color: var(--deep); letter-spacing: -.058em;
}
.hero-type h1 em { font-style: italic; color: var(--accent); }
.ijp .hero-type h1 { font-weight: 350; letter-spacing: -.065em; }
.ijp .hero-type h1 em { font-style: normal; color: var(--accent); }
.brand-intro { font-size: clamp(1.04rem,1.3vw,1.24rem); line-height: 1.55; max-width: 49ch; color: var(--quiet); }
.brand-action {
  display: inline-flex; min-height: 47px; align-items: center; gap: 1.15rem;
  padding: .72rem 1.2rem; margin-top: 1.65rem; border-radius: .45rem;
  font-weight: 650; color: white; background: var(--accent);
}
.ijp .brand-action { background: var(--bright); color: #062f42; }
.brand-action:hover { box-shadow: 0 0 0 2px var(--deep); }
.hero-art { grid-column: 2; grid-row: 1; position: relative; align-self: stretch; display: grid; place-items: center; pointer-events: none; }
.hero-art img { width: min(94%,26rem); height: auto; display: block; }
.ijp .hero-art img { width: min(100%,29rem); }
.chapter { position: relative; }
.chapter + .chapter { background: var(--pale); border-top: 1px solid var(--rule); }
.chapter-inner {
  display: grid; grid-template-columns: minmax(0,.84fr) minmax(0,1.4fr);
  column-gap: clamp(2.5rem,7vw,8rem); padding-block: clamp(3rem,5.4vw,6rem);
}
.chapter-intro h2 { color: var(--deep); margin-top: 1rem; font: 400 clamp(2.12rem,3.7vw,3.95rem)/1.08 var(--display); letter-spacing: -.052em; text-wrap: balance; }
.ijp .chapter-intro h2 { font-weight: 400; }
.chapter-body > p,.interior .accordions p { color: var(--ink); font-size: clamp(1rem,1.21vw,1.14rem); line-height: 1.75; max-width: 65ch; }
.chapter-body > :first-child { margin-top: 0; }
.chapter-body .rows,.chapter-body .accordions { border-top-color: var(--rule); }
.chapter-body .row {
  border-color: var(--rule); grid-template-columns: 2.65rem minmax(0,1fr) 2.3rem; gap: .75rem;
  padding: 1.05rem .12rem; min-height: 84px;
}
.chapter-body .row .number { font-size: .78rem; letter-spacing: .08em; font-variant-numeric: tabular-nums; color: var(--accent); }
.chapter-body .rowbody strong { color: var(--deep); font-family: var(--display); font-size: clamp(1.35rem,2.05vw,2rem); letter-spacing: -.035em; line-height: 1.15; }
.ijp .chapter-body .rowbody strong { font-size: clamp(1.2rem,1.72vw,1.65rem); }
.chapter-body .rowbody small { font-size: .94rem; color: var(--quiet); }
.chapter-body .row > .arrow { padding: .5rem; width: 2.25rem; height: 2.25rem; border: 1px solid var(--rule); border-radius: 50%; color: var(--accent); justify-self: end; }
.chapter-body .row:hover > .arrow { background: var(--pale); border-color: var(--bright); }
.chapter-body details,.chapter-body .fees div { border-color: var(--rule); }
.chapter-body summary { font: 500 clamp(1.18rem,1.75vw,1.55rem)/1.4 var(--display); color: var(--deep); }
.chapter-body summary span,.chapter-body .textlink,.chapter-body .textlink .arrow { color: var(--accent); }
.chapter-body .textlink { border-color: var(--bright); }
.chapter-body .fees dd { color: var(--accent); font: 500 clamp(1.4rem,2.1vw,2rem)/1.15 var(--display); }
.ijp .tuition { margin-bottom: 2.5rem; }
.ijp .tuition-stage h3 { margin: 0 0 .7rem; color: var(--deep); font: 650 1.25rem/1.4 var(--sans); }
.ijp .tuition-stage p { font: 400 1.075rem/1.68 var(--sans); color: var(--ink); }
.ijp .tuition-options { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: stretch; gap: .8rem; margin: 1.3rem 0 .8rem; }
.ijp .tuition-option { display: flex; flex-direction: column; gap: .65rem; padding: clamp(1rem,2vw,1.5rem); background: var(--pale); border-top: 3px solid var(--bright); font: 400 .95rem/1.5 var(--sans); }
.ijp .tuition-label { font-weight: 650; color: var(--deep); }
.ijp .tuition .tuition-amount { margin: 0; color: var(--accent); font: 500 clamp(1.6rem,2.6vw,2.4rem)/1.25 var(--display); letter-spacing: -.04em; }
.ijp .tuition-amount > span { font: 400 1rem/1.5 var(--sans); letter-spacing: normal; }
.ijp .tuition-or { align-self: center; color: var(--accent); font: 700 1.1rem/1.5 var(--sans); }
.ijp .tuition .tuition-clarification { font-size: .95rem; margin: .75rem 0 0; }
.ijp .tuition-continuation { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--rule); }
@media (max-width: 600px) {
  .ijp .tuition-options { grid-template-columns: minmax(0,1fr); gap: .55rem; }
  .ijp .tuition-or { justify-self: center; }
}
.identity-foot { padding: 0; border-top: 1px solid var(--rule); background: white; }
.identity-foot-inner { display: flex; gap: 2rem; justify-content: space-between; align-items: center; padding-block: 1.45rem; }
.foot-logo img { width: 7.4rem; height: auto; }
.foot-documents {display:flex;align-items:center;flex-wrap:wrap;gap:0 1.6rem;width:var(--page);margin-inline:auto;padding:.5rem var(--gutter) .8rem;border-top:1px solid var(--rule)}
.foot-documents a {display:inline-flex;align-items:center;gap:.28em;min-height:44px;color:var(--quiet);font-size:.9rem}
.foot-documents small {font-size:.82em}
.foot-documents .arrow {width:1em;height:1em}
.identity-foot-inner > a:not(.foot-logo) { display: inline-flex; align-items: center; gap: .58rem; min-height: 44px; font-size: .9rem; color: var(--accent); }

@media(max-width:930px) {
  .identity-bar { grid-template-columns: 1fr auto; gap: 0 1.1rem; padding-bottom: 0; }
  .mast-logo img,.ijp .mast-logo img { height: 3.7rem; }
  .identity-switch { grid-row: 1; grid-column: 2; }
  .identity-nav { grid-column: 1 / -1; grid-row: 2; flex-wrap: wrap; gap: 0 1.5rem; }
  .identity-hero-inner { grid-template-columns: minmax(0,1.65fr) minmax(0,.85fr); min-height: 21rem; }
  .hero-type h1 { font-size: clamp(2.8rem,5.4vw,4rem); }
  .chapter-inner { grid-template-columns: minmax(0,.78fr) minmax(0,1.35fr); gap: 2.15rem; }
}
@media(max-width:640px) {
  .identity-bar { padding-top: .52rem; }
  .identity-nav { gap: 0 1.05rem; font-size: .87rem; }
  .identity-switch { gap: .42rem; font-size: .8rem; }
  .identity-hero-inner { display: block; min-height: auto; }
  .hero-type { padding-block: 2.1rem 2rem; }
  .hero-art { position: absolute; width: 14%; max-width: 4.75rem; height: auto; right: var(--gutter); top: 1.2rem; }
  .hero-art img,.ijp .hero-art img { width: 100%; }
  .hero-type .brand-tag { max-width: 79%; min-height: 2rem; }
  .hero-type h1 { font-size: clamp(2.55rem,8.35vw,3.5rem); margin-top: 1.5rem; }
  .hero-type h1 br { display: none; }
  .brand-intro { font-size: 1.01rem; }
  .brand-action { margin-top: 1.25rem; }
  .chapter-inner { display: block; padding-block: 2.6rem; }
  .chapter-body { margin-top: 1.1rem; }
  .chapter-intro h2 { font-size: clamp(2.05rem,6.1vw,2.75rem); margin-top: .7rem; }
  .chapter-body .row { grid-template-columns: 1.55rem minmax(0,1fr) 1.85rem; gap: .55rem; }
  .chapter-body .row > .arrow { width: 1.8rem; height: 1.8rem; padding: .34rem; }
  .identity-foot-inner { flex-wrap: wrap; gap: .35rem 1.1rem; }
  .foot-logo { width: 100%; }
  .foot-logo img { width: 6rem; }
}
@media(max-width:375px) {
  .identity-nav { gap: 0 .65rem; font-size: .81rem; }
  .hero-type h1 { font-size: 2.4rem; }
}
.identity-nav .nav-short { display: none; }
@media (min-width:641px) {
  .inner-chapter-hero .identity-hero-inner { min-height: clamp(17rem,24vw,23rem); }
  .inner-chapter-hero .hero-art { overflow: hidden; }
  .inner-chapter-hero .hero-art img { position: absolute; width: min(80%,21rem); top: 10%; }
  .inner-chapter-hero .hero-type { padding-block: clamp(2.6rem,4vw,4rem); }
}
@media(max-width:640px) {
  .identity-nav .nav-long { display: none; }
  .identity-nav .nav-short { display: inline; }
  .identity-nav { justify-content: space-between; gap: 0 .5rem; }
  .sppa .identity-nav { justify-content: flex-start; gap: 0 1.4rem; }
  .hero-art { width: 20%; max-width: 4.8rem; top: .8rem; }
}
