.vlc-section {
  --vlc-green:#054340;
  --vlc-green-light:#0b5b57;
  --vlc-ivory:#faf7f2;
  --vlc-beige:#efe7d9;
  --vlc-line:rgba(5,67,64,.18);
  position:relative;
  box-sizing:border-box;
  width:100%;
  max-width:none;
  margin:0;
  padding:clamp(56px,5vw,86px) clamp(24px,3.5vw,58px) clamp(78px,7vw,116px);
  color:var(--vlc-green);
  background:#f7f2e8;
  overflow:hidden;
}

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

.vlc-shell {
  width:min(1840px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(310px,28%) minmax(0,72%);
  gap:clamp(34px,3.2vw,64px);
  align-items:start;
}

.vlc-intro {
  min-height:650px;
  padding:28px 0 76px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
}

.vlc-eyebrow {
  margin:0 0 clamp(58px,7vw,112px);
  color:var(--vlc-green);
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(14px,1vw,18px);
  line-height:1;
  font-weight:700;
  letter-spacing:.02em;
}

.vlc-intro h2 {
	margin:clamp(58px,7vw,112px) 0 0;
  color:var(--vlc-green);
  font-family:"Playfair Display","Cormorant Garamond",Georgia,serif;
  font-size:clamp(54px,4.3vw,78px);
  line-height:1.06;
  font-weight:500;
  letter-spacing:-.025em;
}

.vlc-intro__copy {
  max-width:355px;
  margin:clamp(32px,3vw,50px) 0 clamp(34px,3.3vw,52px);
  color:#354342;
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-size:clamp(16px,1.15vw,21px);
  line-height:1.72;
}

.vlc-explore {
  min-height:64px;
  min-width:min(310px,100%);
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 24px 0 30px;
  border:1px solid var(--vlc-green);
  border-radius:999px;
  color:var(--vlc-green);
  background:rgba(255,255,255,.28);
  text-decoration:none;
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-size:16px;
  font-weight:600;
  transition:color .3s ease, background .3s ease, transform .3s ease;
}

.vlc-explore:hover {
  color:#fff;
  background:var(--vlc-green);
  transform:translateY(-2px);
}

.vlc-explore .dashicons { font-size:25px; width:25px; height:25px; }

.vlc-showcase { position:relative; min-width:0; padding-top:82px; }

.vlc-controls {
  position:absolute;
  top:0;
  right:8px;
  display:flex;
  gap:18px;
}

.vlc-control {
  width:58px;
  height:58px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--vlc-line);
  border-radius:50%;
  color:var(--vlc-green);
  background:rgba(255,255,255,.34);
  cursor:pointer;
  transition:background .3s ease, color .3s ease, transform .3s ease;
}

.vlc-control--prev,
.vlc-control:hover { color:#fff; background:var(--vlc-green); transform:translateY(-2px); }
.vlc-control:disabled { opacity:.42; cursor:not-allowed; transform:none; }
.vlc-control .dashicons { font-size:27px; width:27px; height:27px; }

.vlc-viewport {
  margin-left:-40px;
  padding-left:40px;
  overflow:hidden;
  outline:none;
}
.vlc-track {
  display:flex;
  gap:8px;
  transition:transform .55s cubic-bezier(.22,.7,.25,1);
  will-change:transform;
}

.vlc-card {
  position:relative;
  flex:0 0 calc((100% - 16px) / 3);
  min-width:0;
  height:720px;
  padding:40px 30px 34px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--vlc-line);
  border-radius:30px;
  color:var(--vlc-green);
  background:rgba(255,255,255,.18);
  transition:color .5s ease, background .5s ease, border-color .5s ease, transform .38s ease, box-shadow .38s ease;
}

.vlc-card:hover { transform:translateY(-7px); box-shadow:0 24px 48px rgba(44,30,15,.12); }

.vlc-card.is-active {
  color:#fff;
  border:3px double rgba(255,255,255,.9);
  background:linear-gradient(155deg,var(--vlc-green-light),#043a38 72%);
  box-shadow:0 22px 50px rgba(5,67,64,.22);
}

.vlc-card__tab {
  position:absolute;
  left:-36px;
  top:210px;
  z-index:5;
  width:52px;
  height:82px;
  padding:0 8px 0 17px;
  display:none;
  align-items:center;
  justify-content:center;
  border:2px solid rgba(255,255,255,.88);
  border-right:0;
  border-radius:45px 0 0 45px;
  color:#fff;
  background:var(--vlc-green);
  cursor:pointer;
}

.vlc-card.is-active .vlc-card__tab { display:flex; }
.vlc-card__tab .dashicons { font-size:20px; width:20px; height:20px; }

.vlc-card__header { display:flex; align-items:center; gap:20px; min-height:76px; }
.vlc-card__icon {
  width:70px;
  height:70px;
  flex:0 0 70px;
  min-width:70px;
  min-height:70px;
  aspect-ratio:1 / 1;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(5,67,64,.18);
  border-radius:50%;
  color:var(--vlc-green);
  background:rgba(239,231,217,.78);
  overflow:hidden;
  line-height:1;
}
.vlc-card.is-active .vlc-card__icon { color:#fff; border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.04); }
.vlc-card__icon .dashicons {
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:30px;
  line-height:1;
}

.vlc-card__header h3 {
  margin:0 0 6px;
  color:inherit;
  font-family:"Playfair Display","Cormorant Garamond",Georgia,serif;
  font-size:clamp(24px,1.8vw,34px);
  line-height:1.05;
  font-weight:500;
  display:-webkit-box;
  white-space:normal;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.vlc-card__header small { display:block; color:inherit; font-size:16px; line-height:1.2; opacity:.9; }

.vlc-card__image {
  position:relative;
  width:100%;
  height:345px;
  margin:30px 0 34px;
  display:block;
  border-radius:50% / 45%;
  overflow:visible;
}
.vlc-card__image::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  border:2px solid rgba(255,255,255,.88);
  border-radius:inherit;
  pointer-events:none;
}
.vlc-card:not(.is-active) .vlc-card__image::before { border-color:rgba(5,67,64,.08); }
.vlc-card__image img {
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center top;
  border-radius:inherit;
  clip-path:ellipse(50% 50% at 50% 50%);
  transition:transform .6s ease;
}
.vlc-card:hover .vlc-card__image img { transform:scale(1.045); }

.vlc-card__image-arrow {
  position:absolute;
  right:-3px;
  bottom:-4px;
  z-index:4;
  width:56px;
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  color:#fff;
  background:var(--vlc-green);
}
.vlc-card__image-arrow .dashicons { font-size:25px; width:25px; height:25px; transform:rotate(45deg); }

.vlc-card__description {
  min-height:82px;
  margin:0;
  color:inherit;
  font-family:"Inter","Helvetica Neue",Arial,sans-serif;
  font-size:16px;
  line-height:1.55;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.vlc-card__link {
  margin-top:auto;
  padding:13px 0 8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid currentColor;
  color:inherit;
  text-decoration:none;
  font-size:16px;
  line-height:1;
}
.vlc-card__link .dashicons { font-size:24px; width:24px; height:24px; transition:transform .3s ease; }
.vlc-card__link:hover .dashicons { transform:translateX(6px); }

@media (max-width:1200px) {
  .vlc-shell { grid-template-columns:minmax(280px,32%) minmax(0,68%); gap:30px; }
  .vlc-card { flex-basis:calc((100% - 8px) / 2); }
  .vlc-intro { min-height:630px; }
}

@media (min-width:1201px) and (max-width:1360px) {
  .vlc-card { padding-right:24px; padding-left:24px; }
  .vlc-card__header { gap:14px; }
  .vlc-card__icon { width:60px; height:60px; flex-basis:60px; }
  .vlc-card__header h3 { font-size:22px; }
}

@media (max-width:820px) {
  .vlc-section { padding:36px 8px 42px; }
  .vlc-shell { display:block; }
  .vlc-intro { min-height:0; padding:0 0 24px; }
  .vlc-eyebrow { margin-bottom:24px; }
  .vlc-intro h2 { font-size:34px; line-height:1.05; }
  .vlc-intro__copy { margin:16px 0 20px; font-size:14px; line-height:1.55; }
  .vlc-explore { min-height:46px; font-size:13px; padding:0 16px 0 18px; }
  .vlc-showcase { padding-top:52px; }
  .vlc-controls { right:0; }
  .vlc-control { width:40px; height:40px; }
  .vlc-viewport { margin-left:0; padding-left:0; }
  .vlc-track { gap:5px; }
  .vlc-card {
    flex-basis:calc((100% - 10px) / 3);
    height:248px;
    padding:9px 7px 10px;
    border-radius:12px;
  }
  .vlc-card.is-active { border-width:2px; }
  .vlc-card__tab {
    display:none !important;
  }
  .vlc-card__header {
    gap:5px;
    min-height:34px;
    align-items:flex-start;
  }
  .vlc-card__icon {
    width:20px;
    height:20px;
    flex-basis:20px;
  }
  .vlc-card__icon .dashicons {
    font-size:11px;
    width:11px;
    height:11px;
  }
  .vlc-card__header h3 {
    font-size:10px;
    line-height:1.05;
    -webkit-line-clamp:2;
  }
  .vlc-card__header small {
    display:none;
  }
  .vlc-card__image {
    height:88px;
    margin:12px 0 16px;
  }
  .vlc-card__image-arrow {
    width:22px;
    height:22px;
    right:-2px;
    bottom:2px;
    border-width:1px;
  }
  .vlc-card__image-arrow .dashicons {
    font-size:12px;
    width:12px;
    height:12px;
  }
  .vlc-card__description {
    display:none;
  }
  .vlc-card__link {
    margin-top:auto;
    padding:7px 0 2px;
    font-size:8px;
    line-height:1.1;
  }
  .vlc-card__link .dashicons { font-size:13px; width:13px; height:13px; }
}

@media (max-width:600px) {
  .vlc-section { padding:32px 8px 40px; }
  .vlc-explore { min-width:0; width:100%; }
  .vlc-controls { right:0; }
  .vlc-control { width:38px; height:38px; }
  .vlc-card { flex-basis:calc((100% - 10px) / 3); height:238px; padding:8px 6px 9px; border-radius:11px; }
  .vlc-card__tab { display:none !important; }
  .vlc-card__image { height:80px; margin:10px 0 14px; }
  .vlc-card__description { display:none; }
  .vlc-card__link { font-size:7px; }
}

@media (max-width:820px) {
  .vlc-explore {
    min-height:38px !important;
    min-width:0 !important;
    width:auto !important;
    padding:0 13px 0 15px !important;
    gap:10px !important;
    font-size:11px !important;
  }

  .vlc-explore .dashicons {
    font-size:17px !important;
    width:17px !important;
    height:17px !important;
  }

  .vlc-controls {
    display:none !important;
  }

  .vlc-showcase {
    width:100vw !important;
    max-width:100vw !important;
    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
    padding:14px 8px 0 !important;
    overflow:hidden !important;
  }

  .vlc-viewport {
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
    scroll-snap-type:x mandatory !important;
    touch-action:pan-x !important;
  }

  .vlc-viewport::-webkit-scrollbar {
    display:none !important;
  }

  .vlc-track {
    width:max-content !important;
    min-width:100% !important;
    gap:5px !important;
    align-items:stretch !important;
    transform:none;
  }

  .vlc-card {
    flex:0 0 calc((100vw - 26px) / 3) !important;
    width:calc((100vw - 26px) / 3) !important;
    min-width:calc((100vw - 26px) / 3) !important;
    max-width:calc((100vw - 26px) / 3) !important;
    height:238px !important;
    min-height:238px !important;
    padding:8px 6px 9px !important;
    border-radius:11px !important;
    scroll-snap-align:start !important;
  }

  .vlc-card__header {
    gap:4px !important;
    min-height:31px !important;
  }

  .vlc-card__icon {
    width:18px !important;
    height:18px !important;
    flex-basis:18px !important;
    min-width:18px !important;
    min-height:18px !important;
    border-radius:999px !important;
  }

  .vlc-card__icon .dashicons {
    font-size:10px !important;
    width:10px !important;
    height:10px !important;
  }

  .vlc-card__header h3 {
    font-size:9px !important;
    line-height:1.08 !important;
  }

  .vlc-card__image {
    width:min(76px, calc(100% - 8px)) !important;
    height:auto !important;
    aspect-ratio:1 / 1 !important;
    margin:9px auto 8px !important;
    border-radius:50% !important;
    overflow:hidden !important;
  }

  .vlc-card__image::before {
    border-radius:50% !important;
  }

  .vlc-card__image img {
    border-radius:50% !important;
    clip-path:circle(50% at 50% 50%) !important;
    object-fit:cover !important;
    object-position:center top !important;
  }

  .vlc-card__image-arrow {
    display:none !important;
  }

  .vlc-card__description {
    display:-webkit-box !important;
    min-height:36px !important;
    max-height:36px !important;
    margin:0 0 6px !important;
    font-size:8px !important;
    line-height:1.45 !important;
    -webkit-line-clamp:3 !important;
    line-clamp:3 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
  }

  .vlc-card__link {
    font-size:9px !important;
    font-weight:700 !important;
    padding-top:6px !important;
  }

  .vlc-card__link .dashicons {
    font-size:13px !important;
    width:13px !important;
    height:13px !important;
  }
}

@media (prefers-reduced-motion:reduce) {
  .vlc-track,
  .vlc-card,
  .vlc-card__image img,
  .vlc-control,
  .vlc-explore { transition:none !important; }
}
