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

#ep-partners{
  --epp-ivory:#f5f0e6;
  --epp-paper:#fbf8f1;
  --epp-white:#fffdf8;
  --epp-ink:#0d1d35;
  --epp-ink-2:#1a2d4a;
  --epp-soft:#3a4a66;
  --epp-muted:#5a6880;
  --epp-gold:#b08d57;
  --epp-gold-d:#7a5c2d;
  --epp-gold-l:#ead6ad;
  --epp-hair:rgba(13,29,53,.10);
  --epp-hair-2:rgba(13,29,53,.16);

  --epp-serif:'Fraunces',Georgia,serif;
  --epp-sans:'Inter Tight',Inter,system-ui,sans-serif;

  --epp-max:1280px;

  position:relative;

  isolation:isolate;

  overflow:hidden;

  padding:64px 30px 76px;

  background:
    radial-gradient(
      68% 52% at 92% 0%,
      rgba(176,141,87,.11) 0%,
      transparent 60%
    ),

    radial-gradient(
      55% 55% at 4% 100%,
      rgba(13,29,53,.07) 0%,
      transparent 58%
    ),

    var(--epp-ivory);

  color:var(--epp-ink);

  font-family:var(--epp-sans);

  font-size:17px;

  line-height:1.65;

  scroll-margin-top:88px;

  -webkit-font-smoothing:antialiased;
}


#ep-partners::before{
  content:"";

  position:absolute;

  inset:0;

  z-index:-1;

  pointer-events:none;

  opacity:.14;

  background-image:
    url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.20'/%3E%3C/svg%3E");

  background-size:180px 180px;
}


#ep-partners .ep-inner{
  position:relative;

  z-index:2;

  width:100%;

  max-width:var(--epp-max);

  margin:0 auto;
}


/* =========================================================
   DECORATIVE FRAME
========================================================= */

#ep-partners .ep-frame{
  position:absolute;

  top:36px;

  bottom:36px;

  width:1px;

  z-index:1;

  background:
    linear-gradient(
      180deg,
      transparent,
      var(--epp-hair-2) 14%,
      var(--epp-hair-2) 86%,
      transparent
    );
}


#ep-partners .ep-frame--l{
  left:28px;
}


#ep-partners .ep-frame--r{
  right:28px;
}


#ep-partners .ep-edge-label{
  position:absolute;

  top:100px;

  right:10px;

  z-index:2;

  writing-mode:vertical-rl;

  transform:rotate(180deg);

  color:var(--epp-muted);

  font-size:10px;

  font-weight:650;

  letter-spacing:.28em;

  text-transform:uppercase;
}


/* =========================================================
   MASTHEAD
========================================================= */

#ep-partners .ep-mast{
  display:grid;

  grid-template-columns:
    minmax(0,1.12fr)
    minmax(360px,.88fr);

  align-items:end;

  gap:76px;

  margin-bottom:46px;

  padding-bottom:44px;

  border-bottom:
    1px solid
    var(--epp-hair-2);
}


#ep-partners .ep-meta{
  display:flex;

  align-items:center;

  gap:14px;

  margin-bottom:24px;

  color:var(--epp-soft);

  font-size:12px;

  font-weight:700;

  line-height:1.35;

  letter-spacing:.20em;

  text-transform:uppercase;
}


#ep-partners .ep-meta-bar{
  width:34px;

  height:1px;

  flex:0 0 34px;

  background:var(--epp-gold);

  opacity:.75;
}


#ep-partners .ep-title{
  max-width:760px;

  margin:0;

  color:var(--epp-ink);

  font-family:var(--epp-serif);

  font-size:
    clamp(52px,6.6vw,94px);

  font-weight:500;

  line-height:.97;

  letter-spacing:-.028em;

  font-variation-settings:"opsz" 144;
}


#ep-partners .ep-title em{
  color:var(--epp-gold);

  font-style:italic;

  font-weight:500;
}


#ep-partners .ep-title-sm{
  display:block;

  margin-top:.34em;

  color:var(--epp-soft);

  font-family:var(--epp-sans);

  font-size:.24em;

  font-style:normal;

  font-weight:600;

  line-height:1.35;

  letter-spacing:.04em;
}


#ep-partners .ep-lede{
  max-width:510px;

  margin:0 0 26px;

  color:var(--epp-ink-2);

  font-family:var(--epp-serif);

  font-size:21px;

  font-weight:400;

  line-height:1.68;

  letter-spacing:-.006em;
}


#ep-partners .ep-lede::first-letter{
  float:left;

  margin:.11em .12em 0 0;

  color:var(--epp-gold);

  font-family:var(--epp-serif);

  font-size:3em;

  font-style:italic;

  font-weight:500;

  line-height:.82;
}


/* =========================================================
   LEGEND
========================================================= */

#ep-partners .ep-legend{
  display:flex;

  flex-wrap:wrap;

  gap:10px;

  max-width:520px;
}


#ep-partners .ep-legend-item{
  display:inline-flex;

  min-height:34px;

  align-items:center;

  gap:8px;

  padding:8px 12px;

  border:
    1px solid
    rgba(176,141,87,.30);

  border-radius:999px;

  background:
    rgba(255,253,248,.68);

  color:var(--epp-soft);

  font-size:11px;

  font-weight:700;

  line-height:1.2;

  letter-spacing:.12em;

  text-transform:uppercase;
}


#ep-partners .ep-legend-item::before{
  content:"";

  width:6px;

  height:6px;

  flex:0 0 6px;

  transform:rotate(45deg);

  background:var(--epp-gold);
}


/* =========================================================
   CAROUSEL VIEWPORT
========================================================= */

#ep-partners .ep-carousel-viewport{
  position:relative;

  width:100%;

  overflow:hidden;

  border-radius:18px;

  cursor:grab;

  touch-action:pan-y;

  user-select:none;

  -webkit-user-select:none;

  outline:none;
}


#ep-partners
.ep-carousel-viewport.is-dragging{
  cursor:grabbing;
}


/* =========================================================
   PARTNERS TRACK
========================================================= */

#ep-partners .ep-partners{
  display:flex;

  width:100%;

  max-width:none;

  align-items:stretch;

  gap:18px;

  margin:0;

  padding:2px 0 14px;

  overflow:visible;

  list-style:none;

  transform:
    translate3d(0,0,0);

  will-change:transform;
}


#ep-partners .ep-partner{
  flex:
    0
    0
    calc((100% - 36px) / 3);

  width:
    calc((100% - 36px) / 3);

  min-width:
    calc((100% - 36px) / 3);

  height:auto;
}


/* =========================================================
   PARTNER CARD
========================================================= */

#ep-partners .ep-partner-link{
  position:relative;

  display:flex;

  min-height:360px;

  height:100%;

  flex-direction:column;

  padding:22px 22px 24px;

  overflow:hidden;

  border:
    1px solid
    rgba(13,29,53,.10);

  border-radius:18px;

  background:
    rgba(255,253,248,.92);

  color:inherit;

  text-decoration:none;

  box-shadow:
    0 18px 42px
    rgba(13,29,53,.08);

  transition:
    transform .45s cubic-bezier(.2,.7,.2,1),
    border-color .4s ease,
    box-shadow .45s ease,
    background .4s ease;
}


#ep-partners .ep-partner-link::before{
  content:"";

  position:absolute;

  left:0;

  right:0;

  bottom:0;

  height:3px;

  background:
    linear-gradient(
      90deg,
      var(--epp-gold-d),
      var(--epp-gold-l)
    );

  transform:scaleX(0);

  transform-origin:left;

  transition:
    transform .55s
    cubic-bezier(.2,.7,.2,1);
}


#ep-partners .ep-partner-link:hover{
  transform:translateY(-7px);

  border-color:
    rgba(176,141,87,.46);

  background:var(--epp-white);

  box-shadow:
    0 25px 54px
    rgba(13,29,53,.12);
}


#ep-partners
.ep-partner-link:hover::before{
  transform:scaleX(1);
}


/* TOP */

#ep-partners .ep-partner-top{
  display:flex;

  align-items:center;

  justify-content:space-between;

  gap:14px;

  margin-bottom:18px;
}


#ep-partners .ep-partner-cat{
  display:inline-flex;

  align-items:center;

  gap:8px;

  color:var(--epp-gold-d);

  font-size:11px;

  font-weight:750;

  line-height:1.2;

  letter-spacing:.16em;

  text-transform:uppercase;
}


#ep-partners .ep-partner-cat::before{
  content:"";

  width:6px;

  height:6px;

  flex:0 0 6px;

  transform:rotate(45deg);

  background:var(--epp-gold);
}


#ep-partners .ep-partner-serial{
  color:var(--epp-gold);

  font-family:var(--epp-serif);

  font-size:16px;

  font-style:italic;

  font-weight:500;

  opacity:.72;
}


/* =========================================================
   LOGO
========================================================= */

#ep-partners .ep-partner-logo{
  display:flex;

  width:100%;

  height:132px;

  flex:
    0
    0
    132px;

  align-items:center;

  justify-content:center;

  margin-bottom:22px;

  padding:18px 22px;

  overflow:hidden;

  border:
    1px solid
    rgba(13,29,53,.08);

  border-radius:13px;

  background:#fff;
}


#ep-partners
.ep-partner-logo picture{
  display:flex;

  width:100%;

  height:100%;

  align-items:center;

  justify-content:center;
}


#ep-partners .ep-partner-logo img{
  display:block;

  width:auto;

  height:auto;

  max-width:86%;

  max-height:82px;

  object-fit:contain;

  filter:
    grayscale(100%)
    contrast(1.04)
    opacity(.68);

  transition:
    filter .45s ease,
    transform .45s
    cubic-bezier(.2,.7,.2,1);
}


#ep-partners
.ep-partner-link:hover
.ep-partner-logo img{
  transform:scale(1.05);

  filter:
    grayscale(0%)
    contrast(1)
    opacity(1);
}


#ep-partners
.ep-logo--compact{
  max-width:72%!important;
}


#ep-partners
.ep-logo--wide{
  max-width:90%!important;
}


/* =========================================================
   CARD CONTENT
========================================================= */

#ep-partners .ep-partner-content{
  display:flex;

  flex:
    1
    1
    auto;

  flex-direction:column;
}


#ep-partners .ep-partner-name{
  margin:
    0
    0
    8px;

  color:var(--epp-ink);

  font-family:var(--epp-serif);

  font-size:25px;

  font-style:italic;

  font-weight:500;

  line-height:1.14;

  letter-spacing:-.012em;
}


#ep-partners .ep-partner-desc{
  margin:
    0
    0
    16px;

  color:var(--epp-soft);

  font-size:16px;

  line-height:1.7;
}


#ep-partners .ep-partner-cta{
  display:flex;

  align-items:center;

  gap:9px;

  margin-top:auto;

  padding-top:15px;

  border-top:
    1px solid
    var(--epp-hair);

  color:var(--epp-ink);

  font-size:11px;

  font-weight:750;

  line-height:1.2;

  letter-spacing:.14em;

  text-transform:uppercase;
}


#ep-partners .ep-partner-cta svg{
  width:15px;

  height:15px;

  transition:
    transform .35s ease;
}


#ep-partners
.ep-partner-link:hover
.ep-partner-cta{
  color:var(--epp-gold-d);
}


#ep-partners
.ep-partner-link:hover
.ep-partner-cta svg{
  transform:translateX(4px);
}


/* =========================================================
   CAROUSEL TOOLS
========================================================= */

#ep-partners .ep-carousel-tools{
  display:block;

  margin-top:18px;
}


#ep-partners .ep-carousel-hint{
  margin:
    0
    0
    12px;

  color:var(--epp-muted);

  font-size:12px;

  font-weight:750;

  line-height:1.4;

  letter-spacing:.12em;

  text-transform:uppercase;
}


#ep-partners .ep-carousel-controls{
  display:grid;

  grid-template-columns:
    minmax(90px,1fr)
    auto
    48px
    48px;

  align-items:center;

  gap:11px;
}


#ep-partners .ep-carousel-progress{
  position:relative;

  width:100%;

  height:5px;

  overflow:hidden;

  border-radius:999px;

  background:
    rgba(13,29,53,.12);
}


#ep-partners .ep-carousel-progress-bar{
  display:block;

  width:50%;

  height:100%;

  border-radius:inherit;

  background:
    linear-gradient(
      90deg,
      var(--epp-gold-d),
      var(--epp-gold-l)
    );

  transition:
    width .35s ease;
}


#ep-partners .ep-carousel-counter{
  display:flex;

  min-width:62px;

  align-items:baseline;

  justify-content:center;

  gap:4px;

  color:var(--epp-muted);

  font-family:var(--epp-serif);

  font-size:15px;
}


#ep-partners .ep-carousel-current{
  color:var(--epp-ink);

  font-size:25px;

  font-style:italic;

  font-weight:500;
}


#ep-partners .ep-carousel-btn{
  display:inline-flex;

  width:48px;

  height:48px;

  align-items:center;

  justify-content:center;

  padding:0;

  border:
    1px solid
    rgba(176,141,87,.38);

  border-radius:50%;

  background:var(--epp-paper);

  color:var(--epp-ink);

  box-shadow:
    0 8px 20px
    rgba(13,29,53,.08);

  cursor:pointer;

  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease;
}


#ep-partners
.ep-carousel-btn:hover:not(:disabled){
  transform:translateY(-2px);

  border-color:var(--epp-gold);

  background:var(--epp-white);
}


#ep-partners .ep-carousel-btn:disabled{
  opacity:.34;

  cursor:default;
}


#ep-partners .ep-carousel-btn svg{
  width:20px;

  height:20px;

  fill:none;

  stroke:currentColor;

  stroke-width:1.8;

  stroke-linecap:round;

  stroke-linejoin:round;
}


/* =========================================================
   FOOTNOTE
========================================================= */

#ep-partners .ep-foot{
  margin-top:34px;

  padding:21px 24px;

  border:
    1px solid
    rgba(176,141,87,.18);

  border-radius:14px;

  background:
    rgba(255,253,248,.64);

  text-align:center;
}


#ep-partners .ep-foot-note{
  margin:0;

  color:var(--epp-muted);

  font-family:var(--epp-serif);

  font-size:15px;

  font-style:italic;

  line-height:1.55;
}


#ep-partners
.ep-foot-note::before,
#ep-partners
.ep-foot-note::after{
  color:var(--epp-gold);

  font-style:normal;
}


#ep-partners
.ep-foot-note::before{
  content:"— ";
}


#ep-partners
.ep-foot-note::after{
  content:" —";
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

#ep-partners a:focus-visible,
#ep-partners button:focus-visible{
  outline:
    3px solid
    rgba(176,141,87,.46);

  outline-offset:3px;
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  #ep-partners{
    padding:
      54px
      24px
      68px;
  }


  #ep-partners .ep-mast{
    grid-template-columns:1fr;

    gap:30px;

    margin-bottom:42px;

    padding-bottom:38px;
  }


  #ep-partners .ep-lede{
    max-width:720px;
  }


  #ep-partners .ep-partner{
    flex-basis:
      calc((100% - 18px) / 2);

    width:
      calc((100% - 18px) / 2);

    min-width:
      calc((100% - 18px) / 2);
  }


  #ep-partners .ep-frame,
  #ep-partners .ep-edge-label{
    display:none;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

  #ep-partners{
    padding:
      38px
      22px
      48px;

    font-size:17px;
  }


  #ep-partners .ep-mast{
    gap:22px;

    margin-bottom:30px;

    padding-bottom:28px;
  }


  #ep-partners .ep-meta{
    gap:9px;

    margin-bottom:15px;

    font-size:10px;

    letter-spacing:.12em;
  }


  #ep-partners .ep-meta-bar{
    width:25px;

    flex-basis:25px;
  }


  #ep-partners .ep-title{
    font-size:
      clamp(39px,10.8vw,53px);

    line-height:1.01;
  }


  #ep-partners .ep-title-sm{
    margin-top:.48em;

    font-size:.31em;

    line-height:1.42;
  }


  #ep-partners .ep-lede{
    max-width:none;

    margin-bottom:21px;

    font-size:17px;

    line-height:1.65;
  }


  #ep-partners
  .ep-lede::first-letter{
    font-size:2.6em;
  }


  #ep-partners .ep-legend{
    gap:7px;
  }


  #ep-partners .ep-legend-item{
    min-height:31px;

    padding:
      7px
      10px;

    font-size:10px;

    letter-spacing:.08em;
  }


  #ep-partners .ep-carousel-viewport{
    width:100%;

    border-radius:16px;
  }


  #ep-partners .ep-partners{
    gap:14px;
  }


  #ep-partners .ep-partner{
    flex-basis:100%;

    width:100%;

    min-width:100%;
  }


  #ep-partners .ep-partner-link{
    min-height:405px;

    padding:
      20px
      20px
      23px;

    border-radius:16px;
  }


  #ep-partners .ep-partner-link:hover{
    transform:none;
  }


  #ep-partners .ep-partner-logo{
    height:130px;

    flex-basis:130px;

    margin-bottom:21px;

    padding:20px;
  }


  #ep-partners
  .ep-partner-logo img{
    max-height:78px;
  }


  #ep-partners .ep-partner-name{
    margin-bottom:10px;

    font-size:25px;
  }


  #ep-partners .ep-partner-desc{
    font-size:15.5px;

    line-height:1.67;
  }


  #ep-partners .ep-carousel-tools{
    margin-top:12px;
  }


  #ep-partners .ep-carousel-hint{
    font-size:11px;

    letter-spacing:.10em;
  }


  #ep-partners .ep-carousel-controls{
    grid-template-columns:
      minmax(58px,1fr)
      auto
      46px
      46px;

    gap:9px;
  }


  #ep-partners .ep-carousel-btn{
    width:46px;

    height:46px;
  }


  #ep-partners .ep-foot{
    margin-top:28px;

    padding:
      18px
      17px;
  }


  #ep-partners .ep-foot-note{
    font-size:14px;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:390px){

  #ep-partners{
    padding-right:18px;

    padding-left:18px;
  }


  #ep-partners .ep-title{
    font-size:
      clamp(37px,10.5vw,46px);
  }


  #ep-partners .ep-carousel-controls{
    grid-template-columns:
      minmax(48px,1fr)
      auto
      43px
      43px;

    gap:8px;
  }


  #ep-partners .ep-carousel-btn{
    width:43px;

    height:43px;
  }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

  #ep-partners *,
  #ep-partners *::before,
  #ep-partners *::after{
    scroll-behavior:auto!important;

    animation:none!important;

    transition:none!important;
  }

}