:root {
  --site-bg:#FFFFFF;
  --site-surface:#EEF2F8;
  --site-text:#14213D;
  --site-text-muted:#5B6478;
  --site-accent:#1D4ED8;
  --site-accent-contrast:#FFFFFF;
  --site-rule:rgba(20,33,61,.16);
  --site-rule-strong:rgba(20,33,61,.55);
  --font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-body:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --gutter:1.25rem;
  --section-gap:3rem;
}

*,*::before,*::after {
  box-sizing:border-box;
}

html {
  background-color:var(--site-bg);
  color:var(--site-text);
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body {
  margin:0;
  background-color:var(--site-bg);
  color:var(--site-text);
  font-family:var(--font-body);
  font-size:clamp(1.0625rem,1rem + .25vw,1.125rem);
  line-height:1.7;
  overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,p,figure,ul,ol,dl,dd,blockquote {
  margin:0;
}

img,svg {
  max-width:100%;
}

img {
  display:block;
  height:auto;
}

[hidden] {
  display:none !important;
}

a {
  color:var(--site-accent);
  text-decoration-thickness:1px;
  text-underline-offset:.2em;
  transition:color .2s ease,background-color .2s ease,box-shadow .2s ease,transform .2s ease;
}

a:hover {
  text-decoration-thickness:2px;
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:1.5px solid var(--site-accent);
  outline-offset:2px;
}

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

.wrap {
  width:100%;
  max-width:calc(620px + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.wrap-wide {
  width:100%;
  max-width:calc(1120px + 2 * var(--gutter));
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.masthead {
  background-color:var(--site-bg);
  color:var(--site-text);
}

.issue-strip {
  background-color:var(--site-text);
  color:var(--site-accent-contrast);
}

.issue-strip .wrap {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.15rem 1rem;
  padding-block:.5rem;
  font-size:.75rem;
  line-height:1.4;
  letter-spacing:.07em;
  text-transform:uppercase;
  font-weight:500;
  font-variant-numeric:tabular-nums;
}

.brand-row {
  background-color:var(--site-bg);
  color:var(--site-text);
  border-bottom:1px solid var(--site-rule);
}

.brand-row .wrap {
  padding-block:1rem .9rem;
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  min-height:44px;
  color:var(--site-text);
  text-decoration:none;
}

.brand:hover {
  color:var(--site-accent);
}

.brand-mark {
  width:40px;
  height:40px;
  flex:none;
  fill:none;
  stroke-linecap:square;
}

.mk-br {
  stroke:var(--site-accent);
  stroke-width:2.5;
}

.mk-p {
  stroke:var(--site-text);
  stroke-width:2.75;
}

.brand-name {
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.875rem,1.4rem + 2vw,2.375rem);
  letter-spacing:-.01em;
  line-height:1;
}

.hero {
  position:relative;
  background-color:var(--site-surface);
}

.hero img {
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  object-position:62% 38%;
  max-height:clamp(260px,58vh,620px);
}

.hero::after {
  content:"";
  position:absolute;
  top:0;
  right:0;
  left:0;
  height:5rem;
  background:linear-gradient(to bottom,rgba(20,33,61,.72),rgba(20,33,61,0));
  pointer-events:none;
}

.hero-tag {
  display:block;
  position:absolute;
  z-index:1;
  top:.85rem;
  right:var(--gutter);
  font-size:.8125rem;
  line-height:1.3;
  letter-spacing:.04em;
  font-weight:500;
  color:var(--site-accent-contrast);
  text-shadow:0 1px 2px rgba(20,33,61,.5);
}

.lede {
  padding-top:2.25rem;
}

.kicker {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.25rem .6rem;
  margin-bottom:1rem;
  font-size:.75rem;
  line-height:1.4;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--site-accent);
}

.kicker-sep {
  width:4px;
  height:4px;
  border-radius:50%;
  background-color:var(--site-text-muted);
}

.kicker-alt {
  color:var(--site-text-muted);
}

.lede h1 {
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(2.125rem,1.4rem + 3.6vw,3.25rem);
  line-height:1.04;
  letter-spacing:-.015em;
  color:var(--site-text);
  margin-bottom:1.25rem;
}

.tone {
  color:var(--site-accent);
  font-style:italic;
}

.dek {
  font-size:clamp(1.125rem,1.05rem + .4vw,1.3125rem);
  line-height:1.55;
  color:var(--site-text);
}

.meta {
  margin-top:1.5rem;
  padding:.8rem 0;
  border-top:1px solid var(--site-rule);
  border-bottom:1px solid var(--site-rule);
  font-size:.875rem;
  line-height:1.4;
  letter-spacing:.03em;
  font-weight:500;
  color:var(--site-text-muted);
  font-variant-numeric:tabular-nums;
}

.side-note {
  margin-top:1.25rem;
  padding-left:.9rem;
  border-left:1px solid var(--site-rule-strong);
  font-size:.8125rem;
  line-height:1.5;
  color:var(--site-text-muted);
}

.article {
  padding-bottom:1rem;
}

.lead {
  padding-top:2rem;
}

.lead p {
  margin-bottom:1.15rem;
}

.lead p:first-child::first-letter {
  font-family:var(--font-display);
  font-weight:600;
  float:left;
  font-size:4.3em;
  line-height:.78;
  padding:.07em .1em 0 0;
  color:var(--site-accent);
}

.sec {
  padding-top:var(--section-gap);
}

.sec p {
  margin-bottom:1.15rem;
}

.sec strong {
  font-weight:700;
  color:var(--site-text);
}

.sec>h2,.clause>h2 {
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.75rem,1.3rem + 2vw,2.5rem);
  line-height:1.12;
  letter-spacing:-.01em;
  color:var(--site-text);
  margin-bottom:1.25rem;
  padding:.1em 0 .12em .9rem;
  border-left:5px solid var(--site-accent);
}

.rail-note {
  margin:1.5rem 0;
  padding-top:.7rem;
  border-top:1px solid var(--site-rule-strong);
}

.rail-note p {
  margin:0;
  font-family:var(--font-display);
  font-style:italic;
  font-weight:500;
  font-size:1.3125rem;
  line-height:1.3;
  color:var(--site-text);
}

.rail-note .rail-label {
  margin:0 0 .35rem;
  font-family:var(--font-body);
  font-style:normal;
  font-size:.6875rem;
  line-height:1.4;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--site-accent);
}

.shot-row {
  margin:1.75rem 0 2rem;
}

.shot {
  margin:0;
}

.shot img {
  width:100%;
  aspect-ratio:3 / 2;
  object-fit:cover;
  object-position:50% 40%;
}

.shot-row .rail-note {
  margin:0 0 1rem;
}

.cta-block {
  margin:2rem 0 .5rem;
}

.cta {
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.2rem;
  width:100%;
  max-width:26rem;
  min-height:56px;
  padding:.9rem 1.35rem 1rem;
  background-color:var(--site-accent);
  color:var(--site-accent-contrast);
  border-radius:3px;
  text-decoration:none;
  box-shadow:0 1px 0 rgba(20,33,61,.2);
}

.cta:hover {
  filter:brightness(.9);
  transform:translateY(-1px);
  box-shadow:0 14px 22px -14px rgba(29,78,216,.8);
}

.cta:active {
  transform:translateY(0);
}

.cta-label {
  font-weight:700;
  font-size:1.0625rem;
  line-height:1.25;
  letter-spacing:.005em;
}

.cta-sub {
  font-size:.8125rem;
  font-weight:400;
  line-height:1.35;
  opacity:.86;
}

.table-wrap {
  margin:1.5rem 0 1.75rem;
}

.cmp {
  display:block;
  width:100%;
  border-collapse:collapse;
  font-size:.9375rem;
  line-height:1.55;
  font-variant-numeric:tabular-nums;
  color:var(--site-text);
  background-color:var(--site-bg);
}

.cmp thead {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.cmp tbody {
  display:block;
}

.cmp tr {
  display:block;
  margin-bottom:.9rem;
  border:1px solid var(--site-text);
  background-color:var(--site-bg);
}

.cmp th,.cmp td {
  display:block;
  padding:.65rem .9rem;
  text-align:left;
  font-weight:400;
  vertical-align:top;
}

.cmp tbody th {
  background-color:var(--site-surface);
  color:var(--site-text);
  font-weight:700;
  border-bottom:1px solid var(--site-text);
}

.cmp td::before {
  content:attr(data-label);
  display:block;
  margin-bottom:.1rem;
  font-size:.6875rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--site-text-muted);
}

.cmp td+td {
  border-top:1px solid var(--site-rule);
}

.qa-item {
  padding:1.1rem 0 .15rem;
  border-top:1px solid var(--site-rule-strong);
}

.qa-item h3 {
  font-family:var(--font-body);
  font-weight:700;
  font-size:1.0625rem;
  line-height:1.4;
  color:var(--site-text);
  margin-bottom:.4rem;
}

.qa-item p {
  margin-bottom:1rem;
}

.honest {
  margin-top:.5rem;
  padding-top:1.5rem;
  border-top:1px solid var(--site-rule-strong);
}

.colophon_wrap {
  margin-top:4rem;
  background-color:var(--site-surface);
  color:var(--site-text);
  border-top:1px solid var(--site-rule);
}

.colophon_grid {
  display:grid;
  gap:2rem;
  padding-block:2.5rem 3rem;
  font-size:.9375rem;
  line-height:1.65;
  font-variant-numeric:tabular-nums;
}

.foot_col {
  min-width:0;
}

.foot_label {
  margin-bottom:.6rem;
  font-size:.75rem;
  line-height:1.4;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--site-text-muted);
}

.operator_row,.editor_para {
  margin:0;
  color:var(--site-text);
}

.operator_row p {
  margin:0 0 .75rem;
}

.foot_menu ul {
  list-style:none;
  margin:0;
  padding:0;
}

.foot_menu a {
  display:flex;
  align-items:center;
  min-height:40px;
  padding:.35rem 0;
  color:var(--site-accent);
  text-decoration:none;
  font-weight:500;
}

.foot_menu a:hover {
  text-decoration:underline;
  text-decoration-thickness:2px;
}

.doc {
  padding-top:2.5rem;
}

.doc>* {
  max-width:620px;
}

.doc .clause>h2 {
  font-variant-numeric:lining-nums;
}

.doc h1 {
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(2.125rem,1.5rem + 3vw,3.25rem);
  line-height:1.06;
  letter-spacing:-.015em;
  color:var(--site-text);
  margin-bottom:.9rem;
}

.text_mark {
  margin-bottom:1.5rem;
  font-size:.875rem;
  line-height:1.4;
  letter-spacing:.03em;
  font-weight:500;
  color:var(--site-text-muted);
  font-variant-numeric:tabular-nums;
}

.doc-intro {
  font-size:clamp(1.125rem,1.05rem + .4vw,1.3125rem);
  line-height:1.55;
  margin-bottom:.5rem;
}

.clause {
  padding-top:2.25rem;
}

.clause p {
  margin-bottom:1.1rem;
}

.doc-end {
  padding-bottom:1rem;
}

.about-text {
  font-size:clamp(1.0625rem,1rem + .35vw,1.1875rem);
  line-height:1.75;
  margin-bottom:2rem;
}

.about-imprint {
  padding-top:1.5rem;
  border-top:1px solid var(--site-rule-strong);
  font-size:.9375rem;
  line-height:1.65;
  color:var(--site-text);
}

.about-imprint p {
  margin-bottom:.75rem;
}

.portal,.is-booking-portal {
  background-color:var(--site-surface);
  color:var(--site-text);
}

.portal {
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

.portal>main {
  flex:1 0 auto;
}

.portal-bar {
  background-color:var(--site-bg);
  color:var(--site-text);
  border-bottom:1px solid var(--site-rule);
}

.portal-bar-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:4rem;
}

.portal-brand {
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  min-height:44px;
  color:var(--site-text);
  font-weight:700;
  font-size:1.125rem;
  letter-spacing:-.01em;
  text-decoration:none;
}

.portal-brand:hover {
  color:var(--site-accent);
}

.portal-brand .brand-mark {
  width:32px;
  height:32px;
}

.portal-back {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:.9375rem;
  font-weight:600;
  text-decoration:none;
}

.portal-back:hover {
  text-decoration:underline;
}

.portal-hero {
  background-color:var(--site-text);
  color:var(--site-accent-contrast);
  padding-block:2.5rem 6.5rem;
}

.portal-eyebrow {
  display:inline-block;
  margin-bottom:1.25rem;
  padding:.3rem .85rem;
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;
  font-size:.8125rem;
  line-height:1.4;
  font-weight:600;
  letter-spacing:.05em;
  color:var(--site-accent-contrast);
}

.portal-hero h1 {
  max-width:22ch;
  margin-bottom:1rem;
  font-family:var(--font-body);
  font-weight:700;
  font-size:clamp(1.875rem,1.3rem + 2.6vw,3.25rem);
  line-height:1.1;
  letter-spacing:-.025em;
  color:var(--site-accent-contrast);
}

.portal-lede {
  max-width:36rem;
  font-size:1.125rem;
  line-height:1.6;
  color:var(--site-accent-contrast);
  opacity:.9;
}

.portal-grid {
  position:relative;
  display:grid;
  gap:1.75rem;
  margin-top:-4rem;
  padding-bottom:3.5rem;
}

.portal-card {
  background-color:var(--site-bg);
  color:var(--site-text);
  border:1px solid var(--site-rule);
  border-radius:16px;
  padding:1.5rem 1.25rem 1.75rem;
  box-shadow:0 22px 44px -26px rgba(20,33,61,.55);
  font-variant-numeric:tabular-nums;
}

.portal-card h2 {
  margin-bottom:.4rem;
  font-family:var(--font-body);
  font-weight:700;
  font-size:1.5rem;
  line-height:1.2;
  letter-spacing:-.015em;
}

.portal-card-intro {
  margin-bottom:1.4rem;
  font-size:.9375rem;
  line-height:1.55;
  color:var(--site-text-muted);
}

.field {
  margin-bottom:1.15rem;
}

.field label {
  display:block;
  margin-bottom:.35rem;
  font-size:.9375rem;
  font-weight:600;
  line-height:1.4;
  color:var(--site-text);
}

.field-opt {
  font-weight:400;
  color:var(--site-text-muted);
}

.field input[type="text"],.field input[type="email"],.field input[type="tel"],.field textarea {
  display:block;
  width:100%;
  min-height:48px;
  padding:.7rem .85rem;
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.4;
  color:var(--site-text);
  background-color:var(--site-bg);
  border:1px solid var(--site-rule-strong);
  border-radius:10px;
  transition:border-color .2s ease,box-shadow .2s ease;
}

.field textarea {
  min-height:7rem;
  resize:vertical;
}

.field input:hover,.field textarea:hover {
  border-color:var(--site-text);
}

.field input:focus,.field textarea:focus {
  border-color:var(--site-accent);
  box-shadow:0 0 0 3px rgba(29,78,216,.14);
}

.field input[aria-invalid="true"],.field textarea[aria-invalid="true"] {
  border-color:var(--site-text);
  border-width:2px;
  padding:calc(.7rem - 1px) calc(.85rem - 1px);
}

.field-error {
  position:relative;
  margin-top:.4rem;
  padding-left:1rem;
  font-size:.875rem;
  font-weight:600;
  line-height:1.4;
  color:var(--site-text);
}

.field-error::before {
  content:"";
  position:absolute;
  top:.5em;
  left:0;
  width:.5rem;
  height:.5rem;
  border-radius:50%;
  background-color:var(--site-accent);
}

.consent {
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  margin-bottom:.5rem;
}

.consent input {
  flex:none;
  width:1.4rem;
  height:1.4rem;
  margin:.15rem 0 0;
  accent-color:var(--site-accent);
}

.consent label {
  font-size:.875rem;
  font-weight:400;
  line-height:1.55;
  color:var(--site-text);
}

.consent-field {
  margin-bottom:1.4rem;
}

.btn-submit {
  display:block;
  width:100%;
  min-height:52px;
  padding:.85rem 1.5rem;
  font-family:var(--font-body);
  font-size:1.0625rem;
  font-weight:700;
  line-height:1.2;
  color:var(--site-accent-contrast);
  background-color:var(--site-accent);
  border:0;
  border-radius:999px;
  cursor:pointer;
  transition:filter .2s ease,transform .2s ease,box-shadow .2s ease;
}

.btn-submit:hover {
  filter:brightness(.9);
  transform:translateY(-1px);
  box-shadow:0 14px 22px -14px rgba(29,78,216,.8);
}

.btn-submit:active {
  transform:translateY(0);
}

.form-foot {
  margin-top:1rem;
  font-size:.8125rem;
  line-height:1.5;
  color:var(--site-text-muted);
}

.form-done:focus {
  outline:none;
}

.form-done h2 {
  margin-bottom:.6rem;
}

.form-done p {
  margin-bottom:1rem;
  font-size:1rem;
  line-height:1.6;
}

.portal-info {
  padding-top:.5rem;
  color:var(--site-text);
}

.portal-info h2 {
  margin:2.25rem 0 .75rem;
  font-family:var(--font-body);
  font-weight:700;
  font-size:clamp(1.375rem,1.2rem + .8vw,1.75rem);
  line-height:1.2;
  letter-spacing:-.015em;
  color:var(--site-text);
}

.portal-info h2:first-child {
  margin-top:0;
}

.portal-info p {
  max-width:38rem;
  margin-bottom:1rem;
}

.stage-list {
  display:grid;
  gap:1rem;
  margin-top:1.25rem;
}

.stage {
  position:relative;
  padding:1.1rem 1.25rem 1.1rem 1.5rem;
  background-color:var(--site-bg);
  border:1px solid var(--site-rule-strong);
  border-radius:12px;
  font-variant-numeric:tabular-nums;
}

.stage::before {
  content:"";
  position:absolute;
  top:1.45rem;
  left:-.4rem;
  width:.8rem;
  height:.8rem;
  border-radius:50%;
  background-color:var(--site-accent);
  border:2px solid var(--site-surface);
}

.stage-label {
  margin-bottom:.3rem;
  font-size:.75rem;
  line-height:1.4;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--site-accent);
}

.stage p {
  margin:0;
  font-size:1rem;
  line-height:1.6;
}

.portal .colophon_wrap {
  margin-top:0;
  background-color:var(--site-bg);
}

@media (min-width:480px) {
  :root {
    --gutter:1.5rem;
    --section-gap:3.5rem;
  }
  .hero img {
    aspect-ratio:3 / 2;
  }
  .portal-card {
    padding:1.75rem 1.75rem 2rem;
  }
}

@media (min-width:768px) {
  :root {
    --gutter:2rem;
    --section-gap:4rem;
  }
  .hero img {
    aspect-ratio:2 / 1;
  }
  .lede {
    padding-top:3rem;
  }
  .brand-row .wrap {
    padding-block:1.35rem 1.2rem;
  }
  .cmp {
    display:table;
    border:1px solid var(--site-text);
  }
  .cmp thead {
    position:static;
    width:auto;
    height:auto;
    margin:0;
    overflow:visible;
    clip:auto;
    white-space:normal;
    display:table-header-group;
  }
  .cmp tbody {
    display:table-row-group;
  }
  .cmp tr {
    display:table-row;
    margin:0;
    border:0;
  }
  .cmp th,.cmp td {
    display:table-cell;
    padding:.8rem 1rem;
  }
  .cmp thead th {
    background-color:var(--site-surface);
    font-size:.6875rem;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-weight:700;
    color:var(--site-text);
    border-bottom:1px solid var(--site-text);
  }
  .cmp tbody th {
    width:24%;
    border-bottom:1px solid var(--site-rule);
    border-right:1px solid var(--site-rule);
  }
  .cmp td {
    border-bottom:1px solid var(--site-rule);
  }
  .cmp td+td {
    border-top:0;
    border-left:1px solid var(--site-rule);
  }
  .cmp tbody tr:last-child th,.cmp tbody tr:last-child td {
    border-bottom:0;
  }
  .cmp td::before {
    display:none;
  }
  .colophon_grid {
    grid-template-columns:1.15fr 1.15fr .8fr;
    gap:2rem;
  }
  .portal-hero {
    padding-block:3.5rem 7rem;
  }
}

@media (min-width:1024px) {
  :root {
    --section-gap:4.5rem;
  }
  .wrap {
    max-width:calc(880px + 2 * var(--gutter));
  }
  .hero img {
    aspect-ratio:21 / 9;
  }
  .lede {
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    column-gap:40px;
    padding-top:3.5rem;
  }
  .lede>* {
    grid-column:1;
  }
  .lede>.side-note {
    grid-column:2;
    grid-row:3 / span 2;
    align-self:start;
    margin-top:.5rem;
  }
  .sec {
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    column-gap:40px;
    align-items:start;
  }
  .sec>* {
    grid-column:1;
  }
  .sec>.rail-note {
    grid-column:2;
    grid-row:1 / span 3;
    margin:.4rem 0 0;
  }
  .sec>.shot-row {
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    column-gap:40px;
    align-items:end;
    margin:2rem 0;
  }
  .shot-row .shot {
    grid-column:1;
    grid-row:1;
  }
  .shot-row .rail-note {
    grid-column:2;
    grid-row:1;
    margin:0;
  }
  .portal-grid {
    grid-template-columns:minmax(0,1fr) 25rem;
    column-gap:3rem;
    align-items:start;
    margin-top:-4.5rem;
  }
  .portal-card {
    grid-column:2;
    grid-row:1;
    position:sticky;
    top:1.5rem;
  }
  .portal-info {
    grid-column:1;
    grid-row:1;
    padding-top:6.5rem;
  }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    transition:none !important;
    scroll-behavior:auto !important;
  }
}
