:root{
  color-scheme: light;

  --paper:   #FFFFFF;
  --ink:     #1A1830;
  --ink-2:   #4A4860;
  --ink-3:   #6B6980;

  --rule:    #DEDCE6;
  --rule-2:  #B6B4C6;

  --acc:     #43389F;
  --acc-2:   #332A80;

  --on-acc:   #FFFFFF;
  --on-acc-2: #C9C4EC;
  --rule-a:   rgba(255,255,255,.26);

  --s1: 8px;  --s2: 16px; --s3: 24px; --s4: 32px;
  --s5: 48px; --s6: 64px; --s7: 96px;

  --wrap: 1180px;
  --pad:  24px;
  --sec:  96px;
  --hdr:  72px;

  --ease-out: cubic-bezier(.16,1,.3,1);
  --ease-in:  cubic-bezier(.4,0,1,1);
  --col:  320px;
}

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

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--hdr) + var(--s3));
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Archivo","Segoe UI",system-ui,-apple-system,sans-serif;
  font-size:18px;
  font-weight:400;
  line-height:1.55;
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img,svg,iframe{ display:block; max-width:100%; }
a{ color:inherit; }
p{ margin:0; }
ul,ol,dl{ margin:0; padding:0; list-style:none; }
h1,h2,h3{ margin:0; }
p,li,dd{ text-wrap:pretty; }

::selection{ background:var(--acc); color:#fff; }
:focus-visible{ outline:3px solid var(--acc); outline-offset:2px; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:1000;
  background:var(--acc); color:#fff;
  padding:12px 24px; text-decoration:none; font-weight:600;
}
.skip:focus{ left:0; }

.wrap{
  width:100%; max-width:var(--wrap);
  margin-inline:auto; padding-inline:var(--pad);
}

h1,h2,h3,.h2{
  font-weight:700;
  line-height:1.04;
  text-wrap:balance;
}
h1{ font-size:4.3rem;   font-stretch:82%; letter-spacing:-.028em; max-width:17ch; }
.h2,h2{ font-size:2.441rem; font-stretch:84%; letter-spacing:-.024em; }
h3{ font-size:1.406rem; font-stretch:92%; letter-spacing:-.014em; line-height:1.2; }

.lead{ font-size:1.25rem; color:var(--ink-2); line-height:1.5; max-width:44ch; }
.note{ font-size:.9rem;  color:var(--ink-3); line-height:1.5; }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:56px; padding:0 var(--s4);
  border:2px solid var(--acc); border-radius:0;
  background:var(--acc); color:#fff;
  font:inherit; font-size:1.0625rem; font-weight:600; font-stretch:96%;
  text-decoration:none; cursor:pointer;
  transition:background .16s linear, border-color .16s linear;
}
.btn:hover{ background:var(--acc-2); border-color:var(--acc-2); }

.btn--line{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn--line:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }

.btn--full{ width:100%; }
.btn[disabled]{ opacity:.55; cursor:progress; }

.lnk{
  text-decoration:none; font-weight:600;
  padding-bottom:3px;
  border-bottom:2px solid var(--acc);
  transition:color .16s linear;
}
.lnk:hover{ color:var(--acc); }

.brand{ display:flex; align-items:center; gap:14px; text-decoration:none; }
.brand svg{ flex:none; }
.brand__rule{ stroke:var(--acc); }
.brand__ltr{ fill:var(--ink); font-weight:700; font-stretch:86%; }
.brand__txt{ display:flex; flex-direction:column; line-height:1.15; }
.brand__txt b{ font-size:1.0625rem; font-weight:700; font-stretch:86%; letter-spacing:-.02em; }
.brand__txt i{ font-style:normal; font-size:.78rem; color:var(--ink-3); }

.on-dark .brand__rule{ stroke:#fff; }
.on-dark .brand__ltr{ fill:#fff; }

.hdr{
  position:sticky; top:0; z-index:100;
  background:var(--paper);
  border-bottom:1px solid var(--rule);
}
.hdr__in{
  max-width:var(--wrap); margin-inline:auto;
  padding:0 var(--pad);
  min-height:var(--hdr);
  display:flex; align-items:center; gap:var(--s4);
}

.nav{ display:flex; gap:var(--s3); margin-left:auto; }
.nav a{
  text-decoration:none; font-size:.9375rem; color:var(--ink-2);
  padding:6px 0;
  border-bottom:2px solid transparent;
  transition:color .16s linear, border-color .16s linear;
}
.nav a:hover{ color:var(--ink); border-bottom-color:var(--acc); }

.hdr__cta{
  display:inline-flex; align-items:center; min-height:44px;
  padding:0 var(--s3);
  background:var(--acc); color:#fff;
  font-size:1rem; font-weight:700; font-stretch:96%;
  text-decoration:none; white-space:nowrap;
  transition:background .16s linear;
}
.hdr__cta:hover{ background:var(--acc-2); }

.burger{
  display:none; width:44px; height:44px; margin-left:var(--s2);
  background:transparent; border:2px solid var(--ink); border-radius:0;
  cursor:pointer;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
}
.burger span{ display:block; width:18px; height:2px; background:var(--ink); transition:transform .18s linear, opacity .1s linear; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.hero{ padding-block:var(--s7) var(--s6); }
.hero h1{ margin-bottom:var(--s5); }

.hero__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  gap:var(--s6);
  align-items:start;
}
.hero__act{ display:flex; gap:var(--s3); align-items:center; flex-wrap:wrap; margin-top:var(--s4); }

.cal{ background:var(--acc); color:var(--on-acc); padding:var(--s4); }
.cal__h{ font-size:.9375rem; font-weight:600; color:var(--on-acc-2); }

.day{
  display:grid; grid-template-columns:2.4em minmax(0,1fr);
  gap:var(--s3); align-items:center;
  padding:var(--s3) 0;
  border-bottom:1px solid var(--rule-a);
}
.day:first-of-type{ border-top:1px solid var(--rule-a); margin-top:var(--s3); }
.day__n{
  font-size:3.052rem; font-weight:700; font-stretch:84%;
  letter-spacing:-.04em; line-height:1; text-align:right;
}
.day__t{ font-size:1rem; color:var(--on-acc-2); }
.day__t b{ color:#fff; font-weight:600; }

.cal__y{ display:grid; gap:6px; margin-top:var(--s3); }
.cal__y > div{
  display:grid; grid-template-columns:7em minmax(0,1fr); gap:var(--s2);
  font-size:.9375rem; color:var(--on-acc-2);
}
.cal__y dt{ font-weight:600; color:#fff; }
.cal__y dd{ margin:0; }
.cal__n{ margin-top:var(--s3); font-size:.875rem; color:var(--on-acc-2); line-height:1.5; }

.cal.is-ruled .day,
.cal.is-ruled .cal__y{
  animation:wpis .4s ease-out backwards;
  animation-delay:calc(var(--i,0) * .08s);
}
@keyframes wpis{
  from{ opacity:0; clip-path:inset(0 100% 0 0); }
  to  { opacity:1; clip-path:inset(0 0 0 0); }
}

.fig{
  margin-top:var(--s5);
  border-top:2px solid var(--ink);
}
.fig li{
  display:grid; grid-template-columns:3.6em minmax(0,1fr);
  gap:var(--s3); align-items:baseline;
  padding:var(--s2) 0;
  border-bottom:1px solid var(--rule);
}
.fig li:last-child{ border-bottom:0; }
.fig__n{
  font-size:1.758rem; font-weight:700; font-stretch:84%;
  letter-spacing:-.03em; line-height:1.1; text-align:right;
  white-space:nowrap;
  color:var(--acc);
}
.fig__t{ font-size:.9375rem; color:var(--ink-2); }

.ic{
  width:24px; height:24px; flex:none;
  fill:none;
  stroke:var(--acc); stroke-width:2;
  stroke-linecap:square; stroke-linejoin:miter;
}
.ic--sm{ width:16px; height:16px; }

.lst--ic > li{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:var(--s3);
}
.lst--ic > li > .ic{ margin-top:2px; }

.sec{ padding-block:var(--sec); }

.sec__in{
  display:grid;
  grid-template-columns:minmax(0,var(--col)) minmax(0,1fr);
  border-top:2px solid var(--ink);
}
.sec__hd{
  padding:var(--s4) var(--s6) 0 0;
  position:sticky; top:calc(var(--hdr) + var(--s4)); align-self:start;
}
.sec__hd p{ margin-top:var(--s3); color:var(--ink-2); font-size:1rem; }
.sec__bd{
  padding:var(--s4) 0 0 var(--s6);
  border-left:1px solid var(--rule-2);
}

.lst > li,
.lst > div{ padding:var(--s3) 0; border-bottom:1px solid var(--rule); }
.lst > li:first-child,
.lst > div:first-child{ padding-top:0; }
.lst > li:last-child,
.lst > div:last-child{ border-bottom:0; padding-bottom:0; }
.lst h3,.lst dt{ font-size:1.406rem; font-weight:700; font-stretch:92%; letter-spacing:-.014em; }
.lst p,.lst dd{ margin:var(--s1) 0 0; color:var(--ink-2); font-size:1rem; max-width:62ch; }

.steps > li{
  display:grid; grid-template-columns:2.2em minmax(0,1fr);
  gap:var(--s3);
  padding:var(--s3) 0; border-bottom:1px solid var(--rule);
}
.steps > li:first-child{ padding-top:0; }
.steps > li:last-child{ border-bottom:0; padding-bottom:0; }
.steps__n{
  font-size:1.406rem; font-weight:700; font-stretch:84%;
  color:var(--acc); line-height:1.25;
}
.steps p{ margin-top:var(--s1); color:var(--ink-2); font-size:1rem; max-width:58ch; }

.sec--acc{ background:var(--acc); color:var(--on-acc); }
.sec--acc .sec__in{ border-top-color:var(--on-acc); }
.sec--acc .sec__bd{ border-left-color:var(--rule-a); }
.sec--acc h2{ color:#fff; }
.sec--acc .sec__hd p{ color:var(--on-acc-2); }

.about p{ color:var(--on-acc-2); max-width:62ch; }
.about p + p{ margin-top:var(--s3); }
.about strong{ color:#fff; font-weight:600; }

.reg{ margin-top:var(--s5); border-top:1px solid var(--rule-a); }
.reg > div{
  display:grid; grid-template-columns:minmax(0,.6fr) minmax(0,1fr);
  gap:var(--s3);
  padding:var(--s2) 0; border-bottom:1px solid var(--rule-a);
}
.reg dt{ font-size:.9375rem; color:var(--on-acc-2); }
.reg dd{ margin:0; font-size:1rem; color:#fff; font-weight:600; }

.faq__i{ border-bottom:1px solid var(--rule); }
.faq__i:last-child{ border-bottom:0; }

.faq__i summary{
  list-style:none; cursor:pointer;
  display:grid; grid-template-columns:minmax(0,1fr) 16px;
  gap:var(--s3); align-items:center;
  padding:var(--s3) 0;
  font-size:1.25rem; font-weight:700; font-stretch:92%; letter-spacing:-.014em;
  line-height:1.25;
  transition:color .16s linear;
}
.faq__i:first-child summary{ padding-top:0; }
.faq__i summary::-webkit-details-marker{ display:none; }
.faq__i summary:hover{ color:var(--acc); }

.faq__s{ position:relative; width:16px; height:16px; justify-self:end; }
.faq__s::before,.faq__s::after{
  content:""; position:absolute; left:0; top:7px;
  width:16px; height:2px; background:var(--acc);
}
.faq__s::after{ transition:transform .34s var(--ease-out); transform:rotate(90deg); }

.faq__a{ display:grid; grid-template-rows:1fr; opacity:1; }
.faq__a > *{ min-height:0; overflow:hidden; }
.faq__a p{ padding-bottom:var(--s3); color:var(--ink-2); max-width:66ch; }

.faq__i[open] .faq__s::after{ transform:rotate(0deg); }

.faq.is-js .faq__a{
  grid-template-rows:0fr;
  opacity:0;
  transition:grid-template-rows .26s var(--ease-in), opacity .12s linear;
}
.faq.is-js .faq__i[open] .faq__s::after{ transform:rotate(90deg); }

.faq.is-js .faq__i.is-open .faq__a{
  grid-template-rows:1fr;
  opacity:1;
  transition:grid-template-rows .44s var(--ease-out), opacity .3s ease-out .08s;
}
.faq.is-js .faq__i.is-open .faq__s::after{ transform:rotate(0deg); }

.kont__dl{ margin-top:var(--s4); border-top:1px solid var(--rule-2); }
.kont__dl > div{ padding:var(--s2) 0; border-bottom:1px solid var(--rule); }
.kont__dl dt{ display:flex; align-items:center; gap:var(--s1); color:var(--ink-3); font-size:.875rem; }
.kont__dl .ic{ stroke:var(--ink-3); }
.kont__dl dd{ margin:4px 0 0; font-size:1rem; }
.kont__dl a{ text-decoration:none; border-bottom:2px solid var(--rule-2); overflow-wrap:anywhere; }
.kont__dl a:hover{ border-bottom-color:var(--acc); color:var(--acc); }

.form{ max-width:640px; }
.form__h{ font-size:1.406rem; font-weight:700; font-stretch:92%; letter-spacing:-.014em; }
.form__sub{ margin:var(--s1) 0 var(--s3); }

.fld{ display:block; margin-bottom:var(--s2); }
.fld > span{ display:block; font-size:.9375rem; color:var(--ink-2); margin-bottom:6px; }
.fld > span i{ font-style:normal; color:var(--ink-3); }
.fld input,.fld textarea{
  width:100%;
  background:var(--paper);
  border:2px solid var(--rule-2); border-radius:0;
  color:var(--ink);
  font:inherit; font-size:1rem;
  padding:12px 14px;
  resize:vertical;
  transition:border-color .16s linear;
}
.fld input::placeholder,.fld textarea::placeholder{ color:var(--ink-3); }
.fld input:focus,.fld textarea:focus{ outline:none; border-color:var(--acc); }
.fld input:user-invalid,.fld textarea:user-invalid{ border-color:#B3261E; }

.fld-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--s2); }

.hp{ position:absolute!important; left:-9999px; width:1px; height:1px; overflow:hidden; }

.chk{
  display:flex; gap:12px; align-items:flex-start;
  margin:var(--s3) 0;
  font-size:.9375rem; color:var(--ink-2);
}
.chk input{
  appearance:none;
  width:22px; height:22px; flex:none; margin-top:1px;
  border:2px solid var(--rule-2); border-radius:0;
  background:var(--paper);
  cursor:pointer; position:relative;
}
.chk input:checked{ background:var(--acc); border-color:var(--acc); }
.chk input:checked::after{
  content:""; position:absolute; left:6px; top:2px;
  width:5px; height:11px;
  border:solid #fff; border-width:0 2px 2px 0;
  transform:rotate(43deg);
}
.chk a{ color:var(--ink); border-bottom:2px solid var(--acc); text-decoration:none; }

.form__note{
  margin-top:var(--s2); min-height:1.4em;
  font-size:.9375rem; font-weight:600; color:var(--acc);
}
.form__note.is-err{ color:#8E1D14; }

.map{ margin:var(--s6) 0 0; }
.map__frame{ position:relative; border:2px solid var(--ink); }
.map img{ width:100%; height:auto; }

.map__pin{
  position:absolute; left:50%; top:50%;
  width:40px; height:40px;
  transform:translate(-50%,-36px);
  fill:var(--acc); stroke:#FFFFFF; stroke-width:2.5;
  stroke-linejoin:round; stroke-linecap:round;
  pointer-events:none;
}
.map__cap{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:var(--s3) var(--s5); flex-wrap:wrap;
  margin-top:var(--s2);
}
.map__attr{ font-size:.85rem; color:var(--ink-3); }
.map__attr a{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
.map__attr a:hover{ color:var(--acc); }

.ftr{ background:var(--ink); color:var(--on-acc-2); padding-top:var(--s6); }
.ftr__in{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);
  gap:var(--s5);
  padding-bottom:var(--s6);
}
.ftr__brand p{ margin-top:var(--s3); font-size:.9375rem; line-height:1.6; }
.ftr__brand b{ color:#fff; font-weight:600; }
.ftr .brand__txt b{ color:#fff; }
.ftr .brand__txt i{ color:var(--on-acc-2); }

.ftr__h{ color:#fff; font-size:.9375rem; font-weight:600; margin-bottom:var(--s2); }
.ftr__nav,.ftr__con{ display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.ftr__nav a,.ftr__con a{
  color:var(--on-acc-2); text-decoration:none; font-size:.9375rem;
  border-bottom:2px solid transparent; overflow-wrap:anywhere; max-width:100%;
}
.ftr__nav a:hover,.ftr__con a:hover{ color:#fff; border-bottom-color:var(--acc); }
.ftr__con p:not(.ftr__h){ font-size:.9375rem; }

.ftr__btm{
  border-top:1px solid var(--rule-a);
  padding-block:var(--s3);
  display:flex; justify-content:space-between; gap:var(--s2); flex-wrap:wrap;
  font-size:.85rem;
}

@media (max-width:1024px){
  :root{ --col:240px; --s6:48px; --s7:64px; }
  h1{ font-size:3.4rem; }
  .hero__row{ grid-template-columns:1fr; gap:var(--s5); }
}

@media (max-width:860px){
  :root{ --sec:48px; --s7:48px; }

  .sec__in{ grid-template-columns:1fr; }
  .sec__hd{ position:static; padding:var(--s3) 0 var(--s4); }
  .sec__bd{ padding:var(--s4) 0 0; border-left:0; border-top:1px solid var(--rule-2); }
  .sec--acc .sec__bd{ border-top-color:var(--rule-a); }

  .nav{
    position:absolute; inset:var(--hdr) 0 auto 0;
    flex-direction:column; gap:0;
    background:var(--paper);
    border-bottom:2px solid var(--ink);
    padding:0 var(--pad) var(--s2);
    display:none;
  }
  .nav.is-open{ display:flex; }
  .nav a{ padding:14px 0; font-size:1.05rem; color:var(--ink); border-bottom:1px solid var(--rule); }
  .nav a:last-child{ border-bottom:0; }
  .burger{ display:flex; }
  .hdr__cta{ margin-left:auto; }
  .brand__txt i{ display:none; }

}

@media (max-width:600px){
  :root{ --pad:20px; }

  h1{ font-size:2.441rem; max-width:none; }
  .h2,h2{ font-size:1.758rem; }
  .lead{ font-size:1.125rem; max-width:none; }

  .cal{ padding:var(--s3); }
  .day{ grid-template-columns:1.9em minmax(0,1fr); gap:var(--s2); }
  .day__n{ font-size:2.197rem; }
  .cal__y > div{ grid-template-columns:1fr; gap:0; }

  .hero__act{ flex-direction:column; align-items:stretch; gap:var(--s2); }
  .hero__act .lnk{ align-self:flex-start; }
  .fld-row{ grid-template-columns:1fr; gap:0; }
  .reg > div{ grid-template-columns:1fr; gap:4px; }
  .lst--ic > li{ gap:var(--s2); }
  .faq__i summary{ font-size:1.125rem; }
  .map{ margin-top:var(--s5); }
  .map__frame{ height:280px; }
  .map img{ height:100%; object-fit:cover; object-position:center; }
  .ftr__in{ grid-template-columns:1fr; gap:var(--s4); }
  .ftr__btm{ flex-direction:column; gap:4px; }
}

@media (max-width:480px){
  .brand__txt{ display:none; }
  .hdr__in{ gap:var(--s2); }
  .hdr__cta{ padding:0 var(--s2); font-size:.9375rem; margin-left:auto; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
