@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/jost-300-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/jost-300-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/jost-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/jost-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/jost-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/jost-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

:root{

  --navy:#161848;
  --navy-soft:#181B40;
  --indigo:#161848;
  --body:#1F1F1E;
  --taupe:#78746A;
  --rule:#DCDCDA;
  --rule-soft:#ECECEA;
  --photo:#C7C6C1;
  --paper:#FFFFFF;
  --card:#FFFFFF;
  --closing:#FCFBF8;

  --measure:1240px;
  --narrow:960px;
  --pad-x:clamp(20px,5vw,48px);

  --s2:8px; --s3:12px; --s4:16px; --s5:24px;
  --lb-tile:43px;
  --lb-text:184px;
  --s6:32px; --s7:48px; --s8:64px; --s9:88px;
  --chapter:clamp(64px,8vw,112px);
  --block:clamp(36px,4.6vw,60px);

  --gap:clamp(28px,3.4vw,48px);

  --t-h1:clamp(38px,5.2vw,64px);
  --t-h2:clamp(28px,3.4vw,40px);
  --t-h3:clamp(19px,1.9vw,22px);
  --t-lead:clamp(18px,1.8vw,22px);
  --t-body:clamp(17px,1.62vw,20px);
  --t-nav:clamp(13px,1.22vw,17px);
  --t-caps:12px;
  --t-meta:13px;
}

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

body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:Jost,"Century Gothic","Helvetica Neue",Arial,sans-serif;
  font-size:var(--t-body);font-weight:300;line-height:1.78;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}

img{
  max-width:100%;height:auto;display:block;
  pointer-events:none;
  -webkit-user-drag:none;
  -webkit-user-select:none;user-select:none;
  -webkit-touch-callout:none;
}

.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:100;font-size:14px}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:1.5px solid var(--indigo);outline-offset:3px}

h1,h3{color:var(--navy);margin:0;font-weight:400;letter-spacing:-.01em}
p{margin:0 0 var(--s4)}
p:last-child{margin-bottom:0}

.site-head{background:var(--paper)}

.site-nav{
  display:grid;grid-template-columns:repeat(6,1fr);
  border-bottom:1px solid var(--rule);
}
.site-nav a{
  display:flex;align-items:center;justify-content:center;

  padding:clamp(10px,0.95vw,13px) 6px;line-height:1;
  color:var(--navy);text-decoration:none;white-space:nowrap;
  font-size:var(--t-nav);font-weight:500;letter-spacing:.08em;text-transform:uppercase;

  border-right:1px solid var(--rule);
  transition:background .2s ease;
}
.site-nav a:last-child{border-right:0}
.site-nav a:hover{background:#F6F6F4}
.site-nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--navy)}

.head-top{
  display:flex;justify-content:center;
  padding:clamp(26px,3vw,38px) var(--pad-x) clamp(32px,3.8vw,46px);
  border-bottom:1px solid var(--rule);
}
.brand{display:block;padding:0;border:0}
.brand img{width:clamp(200px,23vw,300px);height:auto}

.band{padding:var(--gap) 0 clamp(88px,8vw,112px)}

.band.band-tight{padding-top:0}

.framed{margin:0;overflow:hidden;border-radius:0;border:2px solid var(--photo)}
.framed img{width:100%;display:block}

.cap-ico svg{width:40px;height:40px;fill:none;stroke:var(--navy);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cap-ico svg [fill="white"]{fill:var(--paper)}

.card-grid{display:grid;gap:clamp(30px,3.8vw,52px)}

.card-grid.three{grid-template-columns:repeat(3,1fr)}
.card-grid.two{grid-template-columns:repeat(2,1fr)}

.card-grid article,.lb-box{
  background:var(--card);border:1px solid var(--photo);
  padding:0;text-align:center;overflow:hidden;
}

.card-grid .framed,.lb-box .framed{border:0}

.card-grid article img,.lb-box img{width:100%;display:block}

.card-grid .card-text,.lb-box .card-text{padding:clamp(24px,2.6vw,32px)}

.card-grid .card-text .place{
  margin:var(--s2) 0 0;color:#111;font-weight:300;
  font-size:var(--t-nav);letter-spacing:.06em;text-transform:uppercase;
}
.card-grid .card-text .place + p{margin-top:var(--s4)}

.card-grid h3,.lb-box h3{
  font-size:var(--t-nav);font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;margin-bottom:var(--s4);line-height:1.35;
}

.card-grid p,.lb-box p{
  margin:0;color:#111;font-size:clamp(15px,1.35vw,18.5px);line-height:1.62;
  font-weight:300;text-wrap:balance;
}

.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,3.8vw,52px)}
.cat{text-align:center}

.cat,.proc{position:relative}

.cat,.proc{--lb-max:640px}

.lb-open{display:block;cursor:pointer}

.lb-open figure{transition:border-color .2s ease}
.lb-open img{transition:opacity .2s ease}
.lb-open:hover figure{border-color:var(--navy)}
.lb-open:hover img{opacity:.88}

.lb-check{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}

.lb-panel{
  position:fixed;inset:0;z-index:70;display:grid;place-items:center;
  padding:clamp(16px,3vw,40px);background:var(--paper);

  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease;
}
.lb-check:checked + .lb-panel{opacity:1;visibility:visible;pointer-events:auto}

.lb-back{position:absolute;inset:0;cursor:pointer}

.lb-frame{
  position:relative;z-index:1;padding-right:var(--lb-tile);
  width:min(calc(var(--lb-max) + var(--lb-tile)), 100%,
            calc((88vh - var(--lb-text)) * 1.5 + var(--lb-tile)));

  pointer-events:none;
}
.lb-box,.lb-x{pointer-events:auto}
.lb-box{
  width:100%;overflow:auto;
  max-height:90vh;
}

.lb-box h3{margin-top:0}
.lb-box .card-text{padding-top:var(--s5)}

.lb-box .lb-note{
  margin:clamp(26px,3vw,36px) 0 0;color:var(--navy);
  font-size:var(--t-meta);font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;line-height:1.5;
}

.lb-x{
  position:absolute;top:0;right:0;z-index:2;
  width:44px;height:44px;display:grid;place-items:center;cursor:pointer;
  background:var(--paper);border:1px solid var(--navy);color:var(--navy);
  transition:background .2s ease,color .2s ease;
}
.lb-x:hover{background:var(--navy);color:var(--paper)}
.lb-x svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

html:has(.lb-check:checked){overflow:hidden}
html:has(.lb-check:checked) .to-top{opacity:0;visibility:hidden;pointer-events:none}

.proc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(30px,3.6vw,48px)}
.proc{text-align:center}

.cat > h3,.proc > h3{
  font-size:var(--t-nav);font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;margin-top:var(--s5);line-height:1.35;
}

.band .edge > :first-child{margin-top:0}
.band .edge > :last-child{margin-bottom:0}

.mat-row{
  list-style:none;margin:var(--gap) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(9,1fr);gap:clamp(10px,1.4vw,20px);
}
.mat-row li{text-align:center}
.mat-row img{width:100%;border-radius:0;background:transparent}

.mat-row span{
  display:block;margin-top:var(--s3);color:var(--navy);
  font-size:clamp(13px,1.15vw,15px);font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;
}

.mat-row + .proc-grid{margin-top:var(--gap)}

@media (max-width:1040px){

  .mat-row{grid-template-columns:repeat(10,minmax(0,1fr));gap:clamp(24px,3.4vw,44px)}
  .mat-row li{grid-column:span 2}

  .mat-row li:nth-child(6){grid-column:2 / span 2}

}

@media (max-width:620px){

  .card-grid.three,.card-grid.two{grid-template-columns:1fr}

}

@media print{.site-head,.skip{display:none}}

.contact-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--rule);border:1px solid var(--rule);
}
.contact-cell{background:var(--paper);padding:clamp(26px,3vw,36px);text-align:center}
.contact-ico{display:block;line-height:0}
.contact-ico svg{
  width:32px;height:32px;fill:none;stroke:var(--navy);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;display:block;margin:0 auto;
}
.contact-label{
  margin:var(--s5) 0 var(--s3);color:var(--taupe);
  font-size:var(--t-nav);font-weight:500;letter-spacing:.18em;text-transform:uppercase;
}
.contact-value{margin:0;color:var(--navy);font-size:var(--t-lead);line-height:1.7}

.nb{white-space:nowrap}

.contact-link{
  color:var(--navy);text-decoration:none;
  border-bottom:1px solid var(--rule);
  transition:color .2s ease,border-color .2s ease;
}
.contact-link:hover,.contact-link:focus-visible{
  color:var(--indigo);border-bottom-color:var(--indigo);
}

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

}

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

.hero-cell img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;display:block;
}

@media (max-width:880px){
  .site-nav a{padding-top:15px;padding-bottom:15px}
  .contact-link{position:relative;display:inline-block}
  .contact-link::after{content:"";position:absolute;left:-6px;right:-6px;top:-9px;bottom:-9px}
}

@media (max-width:880px){
  .site-nav{grid-template-columns:repeat(3,1fr)}
  .site-nav a:nth-child(3n){border-right:0}
  .site-nav a:nth-child(-n+3){border-bottom:1px solid var(--rule)}
}

@media (max-width:620px){

  .site-nav a{
    font-size:clamp(10.5px,3.2vw,13px);letter-spacing:.06em;
    padding-left:4px;padding-right:4px;
  }
}

.edge{max-width:none;margin:0;padding:0 clamp(22px,3.6vw,56px)}
.caps-band{padding:0 0 var(--gap)}

.intro{padding:var(--gap) 0}

@media (min-width:1000px){
  .intro-lead .intro-body p{line-height:calc(1.55em + var(--s4))}
}
.established{
  margin:0 0 var(--s5);color:var(--navy);
  font-size:clamp(14px,1.35vw,17px);font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
}

.intro-body{max-width:1395px}
.intro-body p{
  margin:0 0 var(--s4);max-width:none;
  font-size:clamp(15px,1.53vw,23px);line-height:1.55;
  letter-spacing:-.008em;color:var(--navy);font-weight:300;
  text-align:justify;
}
@media (min-width:1000px){

  .intro-flush .intro-body p{text-align-last:justify}
}
.intro-body p:last-child{margin-bottom:0}

.closing{padding:0 0 clamp(88px,8vw,112px)}

.hero{padding:var(--gap) 0 0}
.hero-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--navy);border:1px solid var(--navy);
}

@keyframes hero-slide{
  0%       {opacity:1}
  33.3333% {opacity:0}
  100%     {opacity:0}
}

@keyframes hero-slide-9{
  0%          {opacity:1}
  11.111111%  {opacity:0}
  100%        {opacity:0}
}
.hero-cell{--dur:9s}
.hero-cell:nth-child(1){--dur:7.5s}
.hero-cell:nth-child(2){--dur:9s}
.hero-cell:nth-child(3){--dur:10.5s}

.hero-cell:nth-child(4){--dur:12s;display:none}

.hero-cell img{opacity:0;animation:hero-slide var(--dur) step-end infinite}
.hero-cell img:nth-child(1){opacity:1;animation-delay:0s}
.hero-cell img:nth-child(2){animation-delay:calc(var(--dur) / -1.5)}
.hero-cell img:nth-child(3){animation-delay:calc(var(--dur) / -3)}
.hero-cell{
  position:relative;aspect-ratio:3/2;overflow:hidden;
  border:0;border-radius:0;background:#F2F2F0;
}

.cap-grid{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(6,1fr);gap:1px;
  background:var(--rule);border:1px solid var(--rule);
}
.cap-grid li{
  background:var(--paper);padding:clamp(24px,2.8vw,36px) var(--s3);
  display:flex;flex-direction:column;align-items:center;gap:var(--s3);text-align:center;
  color:var(--navy);font-size:var(--t-caps);font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;line-height:1.65;
}

@media (max-width:900px){
  .cap-grid{grid-template-columns:repeat(3,1fr)}

  .card-grid.three,.card-grid.two{grid-template-columns:1fr}
}

@media (max-width:620px){

  .hero-grid{grid-template-columns:1fr}
  .hero-cell:nth-child(-n+3){display:none}
  .hero-cell:nth-child(4){display:block;--dur:27s}
  .hero-cell:nth-child(4) img{animation-name:hero-slide-9}

  .hero-cell:nth-child(4) img:nth-child(2){animation-delay:calc(var(--dur) / -9)}
  .hero-cell:nth-child(4) img:nth-child(3){animation-delay:calc(var(--dur) / -9 * 2)}
  .hero-cell:nth-child(4) img:nth-child(4){animation-delay:calc(var(--dur) / -9 * 3)}
  .hero-cell:nth-child(4) img:nth-child(5){animation-delay:calc(var(--dur) / -9 * 4)}
  .hero-cell:nth-child(4) img:nth-child(6){animation-delay:calc(var(--dur) / -9 * 5)}
  .hero-cell:nth-child(4) img:nth-child(7){animation-delay:calc(var(--dur) / -9 * 6)}
  .hero-cell:nth-child(4) img:nth-child(8){animation-delay:calc(var(--dur) / -9 * 7)}
  .hero-cell:nth-child(4) img:nth-child(9){animation-delay:calc(var(--dur) / -9 * 8)}
  .cap-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

  .cat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
  .cat{grid-column:span 2}
  .cat:nth-child(9){grid-column:2 / span 2}

  .proc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}

  .cat > h3,.proc > h3{
    font-size:clamp(10.5px,3.1vw,13px);letter-spacing:.04em;
    margin-top:var(--s3);line-height:1.3;
    hyphens:auto;overflow-wrap:break-word;
  }
  .cap-grid li{padding:16px 4px;font-size:9px;letter-spacing:.05em}
  .cap-ico svg{width:26px;height:26px}

  .established{font-size:clamp(10.5px,3.4vw,14px)}

  .mat-row{gap:6px}
  .mat-row span{
    font-size:clamp(8.5px,2.6vw,13px);letter-spacing:.06em;
    hyphens:auto;overflow-wrap:break-word;
  }

  :root{--lb-text:224px}
  .lb-frame{
    padding-right:0;padding-bottom:var(--lb-tile);
    width:min(var(--lb-max), 100%,
              calc((88vh - var(--lb-text) - var(--lb-tile)) * 1.5));
  }

  .lb-box{max-height:calc(90vh - var(--lb-tile))}
  .lb-x{top:auto;right:auto;bottom:0;left:50%;margin-left:-22px}
}

.to-top{
  position:fixed;right:clamp(16px,2vw,28px);bottom:clamp(16px,2vw,28px);z-index:60;
  display:grid;place-items:center;width:52px;height:52px;
  background:var(--paper);border:1px solid var(--navy);border-radius:50%;
  color:var(--navy);text-decoration:none;
  transition:background .2s ease,color .2s ease;
}

.to-top svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.to-top:hover{background:var(--navy);color:var(--paper)}

@supports (animation-timeline: scroll()){
  @keyframes to-top-reveal{
    from{opacity:0;visibility:hidden}
    to  {opacity:1;visibility:visible}
  }
  .to-top{
    animation:to-top-reveal 1s linear both;
    animation-timeline:scroll(root block);
    animation-range:calc(100% - 12px) 100%;
  }
}
