/* =========================================================WEBFORWARD FEATURE CAROUSEL========================================================= */
.webforward-carousel {
  --wf-carousel-card-width:512px;
  --wf-carousel-card-height:360px;
  --wf-carousel-card-padding:32px;
  --wf-carousel-card-radius:var(--wf-radius-card);
  --wf-carousel-gap:24px;
  --wf-carousel-icon-size:80px;
  --wf-carousel-icon-glyph-size:36px;
  --wf-carousel-content-width:1600px;
  --wf-carousel-section-padding-inline:max(24px,calc((100vw - var(--wf-carousel-content-width)) / 2));
  color:var(--wf-text);
}
/* =========================================================RESET========================================================= */
.webforward-carousel *,.webforward-carousel *::before,.webforward-carousel *::after {
  box-sizing:border-box;
}
/* =========================================================HEADER========================================================= */
.webforward-carousel__header {
  display:grid;
  grid-template-columns:minmax(0,720px) minmax(0,1fr);
  gap:40px;
  align-items:end;
  margin-bottom:64px;
}
.webforward-carousel__intro {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
}
/* =========================================================EYEBROW========================================================= */
.webforward-carousel__eyebrow {
  margin:0;
  color:var(--wf-accent);
}
/* =========================================================HEADING========================================================= */
.webforward-carousel .webforward-carousel__heading {
  margin:0;
  color:var(--wf-text);
  font-family:var(--wf-font-heading);
  font-weight:700;
}
.webforward-carousel .webforward-carousel__heading.wf-h1 {
  font-size:var(--wf-heading-xl,var(--wf-h1,4.5rem));
  line-height:1;
  letter-spacing:-.055em;
}
.webforward-carousel .webforward-carousel__heading.wf-h2 {
  font-size:var(--wf-heading-l,var(--wf-h2,3.25rem));
  line-height:1.04;
  letter-spacing:-.05em;
}
.webforward-carousel .webforward-carousel__heading.wf-h3 {
  font-size:var(--wf-heading-m,var(--wf-h3,2.125rem));
  line-height:1.08;
  letter-spacing:-.045em;
}
.webforward-carousel .webforward-carousel__heading.wf-h4 {
  font-size:var(--wf-heading-s,var(--wf-h4,1.5rem));
  line-height:1.15;
  letter-spacing:-.035em;
}
.webforward-carousel .webforward-carousel__heading.wf-h5 {
  font-size:var(--wf-h5,1.125rem);
  line-height:1.25;
  letter-spacing:-.025em;
}
.webforward-carousel .webforward-carousel__heading.wf-h6 {
  font-size:var(--wf-h6,var(--wf-text-m,1.125rem));
  line-height:1.3;
  letter-spacing:-.02em;
}
.webforward-carousel__description {
  max-width:720px;
  margin:0;
  color:var(--wf-muted);
  font-family:var(--wf-font-body);
  font-size:var(--wf-text-m);
  font-weight:400;
  line-height:var(--wf-line-body);
}
/* =========================================================ACTIONS========================================================= */
.webforward-carousel__actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:32px;
}
/* Doorway style link */
.webforward-carousel__link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--wf-accent);
  font-family:var(--wf-font-heading);
  font-size:var(--wf-text-s);
  font-weight:700;
  line-height:1;
  text-decoration:none;
  transition:color var(--wf-speed) var(--wf-ease);
}
.webforward-carousel__link::after {
  content:"→";
  color:currentColor;
  transition:transform var(--wf-speed) var(--wf-ease);
}
.webforward-carousel__link:hover {
  color:var(--wf-text);
}
.webforward-carousel__link:hover::after {
  transform:translateX(4px);
}
/* =========================================================ARROW CONTROLS========================================================= */
.webforward-carousel__buttons {
  display:flex;
  gap:12px;
}
.webforward-carousel .webforward-carousel__button {
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  min-width:48px;
  max-width:48px;
  height:48px;
  min-height:48px;
  max-height:48px;
  flex:0 0 48px;
  padding:0;
  background:var(--wf-surface);
  border:1px solid var(--wf-border-soft);
  border-radius:50%;
  color:var(--wf-text);
  cursor:pointer;
  transition:background var(--wf-speed) var(--wf-ease),transform var(--wf-speed) var(--wf-ease),border-color var(--wf-speed) var(--wf-ease);
}
.webforward-carousel .webforward-carousel__button:hover {
  background:var(--wf-accent-gradient);
  border-color:transparent;
  transform:translateY(-2px);
}
.webforward-carousel .webforward-carousel__button:disabled {
  opacity:.35;
  transform:none;
}
.webforward-carousel .webforward-carousel__button svg {
  display:block;
  width:20px;
  min-width:20px;
  max-width:20px;
  height:20px;
  min-height:20px;
  max-height:20px;
  flex:0 0 20px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
/* =========================================================VIEWPORT========================================================= */
.webforward-carousel__viewport {
  width:100vw;
  overflow-x:auto;
  overflow-y:visible;
  margin-left:calc((100% - 100vw) / 2);
  margin-top:-30px;
  padding:30px var(--wf-carousel-section-padding-inline) 0;
  scroll-padding-inline:var(--wf-carousel-section-padding-inline);
  scroll-snap-type:inline mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.webforward-carousel__viewport::-webkit-scrollbar {
  display:none;
}
/* =========================================================TRACK========================================================= */
.webforward-carousel__track {
  display:flex;
  gap:var(--wf-carousel-gap);
  width:max-content;
}
/* =========================================================CARDS========================================================= */
.webforward-carousel__card {
  display:flex;
  flex:0 0 min(var(--wf-carousel-card-width),calc(100vw - 48px));
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  gap:32px;
  min-height:var(--wf-carousel-card-height);
  padding:var(--wf-carousel-card-padding);
  background:var(--wf-surface);
  border:1px solid var(--wf-border-soft);
  border-radius:var(--wf-carousel-card-radius);
  scroll-snap-align:start;
  transition:transform var(--wf-speed) var(--wf-ease);
}
.webforward-carousel__card:hover {
  transform:translateY(-4px);
}
/* =========================================================ICON========================================================= */
.webforward-carousel__icon {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:var(--wf-carousel-icon-size);
  height:var(--wf-carousel-icon-size);
  flex-shrink:0;
  overflow:hidden;
  border-radius:18px;
  color:var(--wf-card-text);
  background:var(--wf-accent-gradient);
}
.webforward-carousel__icon::after {
  content:"";
  position:absolute;
  inset:-20%;
  background:radial-gradient(circle,rgba(255,255,255,.3),transparent 60%);
  opacity:.35;
}
.webforward-carousel__icon .elementor-icon {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:inherit;
}
.webforward-carousel__icon svg {
  position:relative;
  z-index:1;
  display:block;
  width:var(--wf-carousel-icon-glyph-size);
  height:var(--wf-carousel-icon-glyph-size);
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.webforward-carousel__icon i {
  position:relative;
  z-index:1;
  font-size:var(--wf-carousel-icon-glyph-size);
  line-height:1;
  color:inherit;
}
/* =========================================================CONTENT========================================================= */
.webforward-carousel__card-copy {
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:auto;
}
.webforward-carousel .webforward-carousel__card-title {
  margin:0;
  color:var(--wf-text);
  font-family:var(--wf-font-heading);
  font-size:1.125rem;
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.025em;
}
.webforward-carousel .webforward-carousel__card-text {
  margin:0;
  color:var(--wf-muted);
  font-family:var(--wf-font-body);
  font-size:var(--wf-text-s);
  font-weight:400;
  line-height:var(--wf-line-body);
}
/* =========================================================CARD LINK========================================================= */
.webforward-carousel__card-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--wf-text);
  font-family:var(--wf-font-heading);
  font-size:var(--wf-text-s);
  font-weight:700;
  line-height:1;
  text-decoration:none;
  text-transform:uppercase;
  transition:color var(--wf-speed) var(--wf-ease),transform var(--wf-speed) var(--wf-ease);
}
.webforward-carousel__card-link::after {
  content:"→";
  color:var(--wf-blue);
}
.webforward-carousel__card-link:hover {
  color:var(--wf-blue);
  transform:translateX(4px);
}
/* =========================================================RESPONSIVE========================================================= */
@media(max-width:767px){
  .webforward-carousel__header {
    grid-template-columns:1fr;
    gap:32px;
    margin-bottom:40px;
  }
  .webforward-carousel__actions {
    justify-content:space-between;
  }
  .webforward-carousel__card {
    flex-basis:calc(100vw - 48px);
  }
}
/* =========================================================REDUCED MOTION========================================================= */
@media(prefers-reduced-motion:reduce){
  .webforward-carousel__viewport {
    scroll-behavior:auto;
  }
  .webforward-carousel__button,.webforward-carousel__card {
    transition:none;
  }
}
