/* ==========================================================================
   Firefly Elements — tokens mirror the site's active design system.
   ========================================================================== */

:root {
  --ffe-ink: #191414;
  --ffe-ink-70: rgba(25, 20, 20, 0.7);
  --ffe-accent: #EE3438;
  --ffe-accent-dark: #B4262A;
  --ffe-bg: #F7F4F1;
  --ffe-tint: #F2EEEA;
  --ffe-surface: #FFFFFF;
  --ffe-muted: #8A8280;
  --ffe-border: #E8E2DD;
  --ffe-radius: 2px;
  --ffe-shadow: 0 18px 40px -18px rgba(25, 20, 20, 0.22);
  --ffe-max: 1200px;
  --ffe-gutter: 40px;
  --ffe-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

body {
  font-family: 'Manrope', system-ui, sans-serif;
  color: var(--ffe-ink);
  background: var(--ffe-surface);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6, .elementor-heading-title {
  font-family: 'Archivo', system-ui, sans-serif;
  font-weight: 700;
  color: var(--ffe-ink);
  letter-spacing: -0.015em;
  line-height: 1.1;
}

.ffe-eyebrow {
  font-size: 11px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ffe-muted); margin: 0 0 18px;
}

.ffe-empty { color: var(--ffe-muted); font-size: 14px; padding: 32px 0; }

/* Buttons ---------------------------------------------------------------- */

.ffe-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: 'Manrope', sans-serif; font-size: 12px; font-weight: 700;
  letter-spacing: 0.09em; text-transform: uppercase; text-decoration: none;
  padding: 15px 34px; border-radius: var(--ffe-radius);
  border: 1px solid transparent; cursor: pointer;
  transition: background-color 0.22s var(--ffe-ease), color 0.22s var(--ffe-ease), border-color 0.22s var(--ffe-ease);
}

.ffe-btn--solid { background: var(--ffe-ink); color: #fff; }
.ffe-btn--solid:hover, .ffe-btn--solid:focus-visible { background: var(--ffe-accent); color: #fff; }
.ffe-btn--outline { background: transparent; color: var(--ffe-ink); border-color: var(--ffe-ink); }
.ffe-btn--outline:hover, .ffe-btn--outline:focus-visible { background: var(--ffe-ink); color: #fff; }
.ffe-btn--sm { padding: 10px 20px; font-size: 11px; }
.ffe-btn--block { width: 100%; }

/* Hero ------------------------------------------------------------------- */

.ffe-hero {
  display: grid; grid-template-columns: 44fr 56fr;
  min-height: clamp(460px, 56vw, 640px); background: var(--ffe-tint);
}

.ffe-hero__panel {
  display: flex; align-items: center; background: var(--ffe-tint);
  padding: 64px clamp(32px, 5vw, 88px);
}

.ffe-hero__inner { max-width: 460px; }

.ffe-hero__title { font-size: clamp(2.25rem, 3.6vw, 3.5rem); line-height: 1.06; margin: 0 0 20px; }

.ffe-hero__sub {
  font-size: 16px; line-height: 1.65; color: var(--ffe-ink-70);
  margin: 0 0 34px; max-width: 40ch;
}

.ffe-hero__media { position: relative; overflow: hidden; }
.ffe-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; display: block; }

@media (max-width: 880px) {
  .ffe-hero { grid-template-columns: 1fr; }
  .ffe-hero__panel { padding: 56px 24px; order: 2; }
  .ffe-hero__media { order: 1; min-height: 380px; }
}

/* Section heading -------------------------------------------------------- */

.ffe-sechead { margin: 0 0 40px; }
.ffe-sechead--center { text-align: center; }
.ffe-sechead__title { font-size: clamp(1.6rem, 2.4vw, 2.125rem); margin: 0 0 10px; }
.ffe-sechead__sub { color: var(--ffe-muted); font-size: 15px; line-height: 1.6; margin: 0 auto; max-width: 56ch; }
.ffe-sechead--left .ffe-sechead__sub { margin-left: 0; }

/* Category circles ------------------------------------------------------- */

.ffe-cats {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: clamp(20px, 3vw, 44px); list-style: none; margin: 0; padding: 0;
}

.ffe-cat a { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; color: inherit; }

.ffe-cat__media {
  display: block; width: 168px; height: 168px; border-radius: 50%;
  overflow: hidden; background: var(--ffe-tint); margin-bottom: 14px;
}

.ffe-cat__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s var(--ffe-ease); }
.ffe-cat a:hover .ffe-cat__media img { transform: scale(1.07); }

.ffe-cat__name { font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 15px; transition: color 0.2s var(--ffe-ease); }
.ffe-cat a:hover .ffe-cat__name { color: var(--ffe-accent); }
.ffe-cat__count { font-size: 13px; color: var(--ffe-muted); }

@media (max-width: 700px) { .ffe-cat__media { width: 116px; height: 116px; } }

/* Banner grid ------------------------------------------------------------ */

.ffe-banners { display: grid; grid-template-columns: repeat(var(--ffe-banner-cols, 3), 1fr); gap: 24px; }

.ffe-banner {
  position: relative; display: block; overflow: hidden;
  border-radius: var(--ffe-radius); aspect-ratio: 4 / 3;
  text-decoration: none; background: var(--ffe-tint);
}

.ffe-banner__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--ffe-ease); }
.ffe-banner:hover .ffe-banner__img { transform: scale(1.05); }

.ffe-banner__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(247,244,241,0.94) 0%, rgba(247,244,241,0.72) 34%, rgba(247,244,241,0) 68%);
}

.ffe-banner__copy {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: flex-start; justify-content: center; gap: 6px;
  padding: 32px; max-width: 74%;
}

.ffe-banner__label { font-size: 10px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ffe-muted); }

.ffe-banner__title {
  font-family: 'Archivo', sans-serif; font-weight: 700;
  font-size: clamp(1.05rem, 1.5vw, 1.375rem); line-height: 1.2;
  color: var(--ffe-ink); margin-bottom: 6px;
}

.ffe-banner__cta {
  font-size: 11px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--ffe-ink); border-bottom: 1px solid var(--ffe-ink); padding-bottom: 2px;
  transition: color 0.2s var(--ffe-ease), border-color 0.2s var(--ffe-ease);
}

.ffe-banner:hover .ffe-banner__cta { color: var(--ffe-accent); border-color: var(--ffe-accent); }

@media (max-width: 900px) { .ffe-banners { grid-template-columns: 1fr; } }

/* Product cards ---------------------------------------------------------- */

.ffe-grid { display: grid; grid-template-columns: repeat(var(--ffe-cols, 4), minmax(0, 1fr)); gap: 40px 24px; }

.ffe-card { position: relative; }

.ffe-card__media {
  position: relative; overflow: hidden; background: var(--ffe-tint);
  border-radius: var(--ffe-radius); aspect-ratio: 3 / 4; margin-bottom: 16px;
}

.ffe-card__imglink { display: block; width: 100%; height: 100%; }

.ffe-card__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: opacity 0.45s var(--ffe-ease), transform 0.7s var(--ffe-ease);
}

.ffe-card__img--hover { opacity: 0; }
.ffe-card:hover .ffe-card__img--hover { opacity: 1; }
.ffe-card:hover .ffe-card__img { transform: scale(1.04); }

.ffe-badge {
  position: absolute; top: 12px; left: 12px; z-index: 2;
  background: var(--ffe-ink); color: #fff; font-size: 11px; font-weight: 700;
  letter-spacing: 0.03em; padding: 5px 9px; border-radius: var(--ffe-radius); line-height: 1;
}

.ffe-badge--soldout { background: var(--ffe-accent); }
.ffe-badge--inline { position: static; display: inline-block; margin-left: 8px; vertical-align: middle; }

.ffe-card__quick {
  position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2;
  background: var(--ffe-surface); color: var(--ffe-ink); border: 0;
  border-radius: var(--ffe-radius); padding: 12px;
  font-family: 'Manrope', sans-serif; font-size: 11px; font-weight: 700;
  letter-spacing: 0.09em; text-transform: uppercase; cursor: pointer;
  opacity: 0; transform: translateY(8px);
  transition: opacity 0.25s var(--ffe-ease), transform 0.25s var(--ffe-ease), background-color 0.2s var(--ffe-ease), color 0.2s var(--ffe-ease);
}

.ffe-card:hover .ffe-card__quick, .ffe-card__quick:focus-visible { opacity: 1; transform: translateY(0); }
.ffe-card__quick:hover { background: var(--ffe-ink); color: #fff; }

.ffe-card__body { text-align: center; }

.ffe-card__eyebrow {
  font-size: 10px; font-weight: 600; letter-spacing: 0.13em;
  text-transform: uppercase; color: var(--ffe-muted); margin: 0 0 7px;
}

.ffe-card__title { font-size: 14px; font-weight: 600; line-height: 1.42; margin: 0 0 8px; letter-spacing: 0; }
.ffe-card__title a { color: var(--ffe-ink); text-decoration: none; }
.ffe-card__title a:hover { color: var(--ffe-accent); }

.ffe-card__rating { display: flex; justify-content: center; gap: 2px; margin-bottom: 8px; }
.ffe-star { color: var(--ffe-border); font-size: 13px; line-height: 1; }
.ffe-star.is-on { color: #E8A33D; }

.ffe-card__price { font-size: 15px; font-weight: 700; color: var(--ffe-ink); }
.ffe-card__price del { color: var(--ffe-muted); font-weight: 400; margin-right: 7px; opacity: 1; }
.ffe-card__price ins { text-decoration: none; color: var(--ffe-ink); }

.ffe-btn--card {
  margin-top: 14px; width: 100%; background: transparent; color: var(--ffe-ink);
  border-color: var(--ffe-border); padding: 12px 18px; font-size: 11px;
}

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

.ffe-card__excerpt { display: none; }

.ffe-view-list .ffe-grid, .ffe-view-list ul.products { grid-template-columns: 1fr !important; gap: 28px; }

.ffe-view-list .ffe-card {
  display: grid; grid-template-columns: 220px 1fr; gap: 28px;
  align-items: center; padding-bottom: 28px; border-bottom: 1px solid var(--ffe-border);
}

.ffe-view-list .ffe-card__media { margin-bottom: 0; aspect-ratio: 1 / 1; }
.ffe-view-list .ffe-card__body { text-align: left; }
.ffe-view-list .ffe-card__rating { justify-content: flex-start; }
.ffe-view-list .ffe-card__excerpt { display: block; color: var(--ffe-ink-70); font-size: 14px; line-height: 1.65; margin: 0 0 12px; max-width: 62ch; }
.ffe-view-list .ffe-btn--card { width: auto; display: inline-flex; }

@media (max-width: 1100px) { .ffe-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px)  { .ffe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; } }
@media (max-width: 520px)  {
  .ffe-view-list .ffe-card { grid-template-columns: 1fr; }
  .ffe-card__quick { opacity: 1; transform: none; }
}

/* Tabs ------------------------------------------------------------------- */

.ffe-tabs { display: flex; justify-content: center; flex-wrap: wrap; gap: 30px; margin: 0 0 38px; }

.ffe-tab {
  background: none; border: 0; padding: 0 0 6px;
  font-family: 'Manrope', sans-serif; font-size: 13px; font-weight: 600;
  letter-spacing: 0.03em; color: var(--ffe-muted); cursor: pointer;
  border-bottom: 1.5px solid transparent;
  transition: color 0.2s var(--ffe-ease), border-color 0.2s var(--ffe-ease);
}

.ffe-tab:hover { color: var(--ffe-ink); }
.ffe-tab.is-active { color: var(--ffe-ink); border-bottom-color: var(--ffe-ink); }

/* Mega menu -------------------------------------------------------------- */

.ffe-nav { position: relative; }

.ffe-nav__list {
  display: flex; align-items: center; justify-content: center; gap: 34px;
  list-style: none; margin: 0; padding: 0;
}

.ffe-nav__item { position: static; }

.ffe-nav__link {
  display: inline-flex; align-items: center; gap: 6px; padding: 17px 0;
  font-family: 'Manrope', sans-serif; font-size: 12px; font-weight: 700;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ffe-ink);
  text-decoration: none; position: relative; transition: color 0.2s var(--ffe-ease);
}

.ffe-nav__link::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: 11px; height: 1.5px;
  background: var(--ffe-nav-accent, var(--ffe-accent)); transition: right 0.28s var(--ffe-ease);
}

.ffe-nav__item:hover > .ffe-nav__link { color: var(--ffe-nav-accent, var(--ffe-accent)); }
.ffe-nav__item:hover > .ffe-nav__link::after { right: 0; }

.ffe-nav__caret {
  width: 6px; height: 6px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-2px); transition: transform 0.25s var(--ffe-ease);
}

.ffe-nav__item:hover .ffe-nav__caret { transform: rotate(225deg) translateY(-2px); }

.ffe-mega {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 90;
  background: var(--ffe-surface); border-top: 1px solid var(--ffe-border);
  box-shadow: var(--ffe-shadow);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity 0.24s var(--ffe-ease), transform 0.24s var(--ffe-ease), visibility 0.24s;
}

.ffe-nav__item.has-mega:hover > .ffe-mega,
.ffe-nav__item.has-mega.is-open > .ffe-mega {
  opacity: 1; visibility: visible; transform: translateY(0);
}

.ffe-mega__inner {
  max-width: var(--ffe-max); margin: 0 auto;
  padding: 42px var(--ffe-gutter) 46px;
  display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: start;
}

.ffe-mega__cols {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 36px 40px;
}

.ffe-mega__heading {
  display: block; font-family: 'Archivo', sans-serif; font-size: 13px;
  font-weight: 700; letter-spacing: 0.04em; color: var(--ffe-ink);
  text-decoration: none; margin-bottom: 16px;
}

.ffe-mega__heading:hover { color: var(--ffe-nav-accent, var(--ffe-accent)); }

.ffe-mega__links { list-style: none; margin: 0; padding: 0; }
.ffe-mega__links li { margin-bottom: 11px; }

.ffe-mega__links a {
  font-size: 13.5px; color: var(--ffe-ink-70); text-decoration: none;
  transition: color 0.18s var(--ffe-ease), padding-left 0.18s var(--ffe-ease);
}

.ffe-mega__links a:hover { color: var(--ffe-nav-accent, var(--ffe-accent)); padding-left: 4px; }

.ffe-mega__promo {
  position: relative; display: block; width: 260px; aspect-ratio: 4 / 5;
  overflow: hidden; border-radius: var(--ffe-radius); text-decoration: none;
}

.ffe-mega__promo img { width: 100%; height: 100%; object-fit: cover; }

.ffe-mega__promotext {
  position: absolute; left: 18px; bottom: 18px; right: 18px; color: #fff;
  font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 15px;
  text-shadow: 0 2px 12px rgba(25, 20, 20, 0.7);
}

.ffe-nav__toggle {
  display: none; align-items: center; gap: 10px; background: none; border: 0;
  padding: 14px 0; font-family: 'Manrope', sans-serif; font-size: 12px;
  font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ffe-ink); cursor: pointer;
}

.ffe-burger, .ffe-burger::before, .ffe-burger::after {
  display: block; width: 18px; height: 1.5px; background: currentColor; position: relative;
}

.ffe-burger::before, .ffe-burger::after { content: ''; position: absolute; left: 0; }
.ffe-burger::before { top: -6px; }
.ffe-burger::after { top: 6px; }

@media (max-width: 1024px) {
  .ffe-nav__toggle { display: inline-flex; }
  .ffe-nav__list { display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0 20px; }
  .ffe-nav.is-open .ffe-nav__list { display: flex; }
  .ffe-nav__link { padding: 13px 0; border-bottom: 1px solid var(--ffe-border); }
  .ffe-nav__link::after { display: none; }
  .ffe-mega {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border-top: 0; display: none;
  }
  .ffe-nav__item.is-open > .ffe-mega { display: block; }
  .ffe-mega__inner { grid-template-columns: 1fr; padding: 18px 0 8px; gap: 24px; }
  .ffe-mega__promo { display: none; }
}
/* Shop archive shell ----------------------------------------------------- */

.ffe-pagehead { background: var(--ffe-bg); border-bottom: 1px solid var(--ffe-border); }

.ffe-pagehead__inner {
  max-width: var(--ffe-max); margin: 0 auto; padding: 34px var(--ffe-gutter);
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
}

.ffe-pagehead__title { font-size: clamp(1.5rem, 2.4vw, 2rem); margin: 0; }
.ffe-pagehead__sub { margin: 6px 0 0; color: var(--ffe-muted); font-size: 14px; }

.ffe-crumbs { display: flex; gap: 8px; font-size: 13px; color: var(--ffe-muted); }
.ffe-crumbs a { color: var(--ffe-muted); text-decoration: none; }
.ffe-crumbs a:hover { color: var(--ffe-accent); }

.ffe-shop {
  display: grid; grid-template-columns: 258px minmax(0, 1fr); gap: 56px;
  max-width: var(--ffe-max); margin: 44px auto 80px;
  padding: 0 var(--ffe-gutter); align-items: start;
}

.ffe-shop__main { min-width: 0; }

.ffe-filters__head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 4px; }

.ffe-filters__heading {
  font-family: 'Archivo', sans-serif; font-size: 15px; font-weight: 700;
  letter-spacing: 0.03em; margin: 0;
}

.ffe-filters__clear { font-size: 12px; color: var(--ffe-accent); text-decoration: none; }
.ffe-filters__clear:hover { text-decoration: underline; }

.ffe-filter { border-bottom: 1px solid var(--ffe-border); padding: 20px 0; }

.ffe-filter__title {
  font-family: 'Manrope', sans-serif; font-size: 12px; font-weight: 700;
  letter-spacing: 0.09em; text-transform: uppercase; color: var(--ffe-ink);
  cursor: pointer; list-style: none; display: flex; align-items: center;
  justify-content: space-between; margin-bottom: 0;
}

.ffe-filter__title::-webkit-details-marker { display: none; }

.ffe-filter__title::after {
  content: ''; width: 7px; height: 7px;
  border-right: 1.5px solid var(--ffe-muted); border-bottom: 1.5px solid var(--ffe-muted);
  transform: rotate(45deg); transition: transform 0.2s var(--ffe-ease);
}

.ffe-filter[open] .ffe-filter__title::after { transform: rotate(225deg); }
.ffe-filter[open] .ffe-filter__title { margin-bottom: 16px; }

.ffe-filter__list { list-style: none; margin: 0; padding: 0; }
.ffe-filter__list li { margin-bottom: 10px; }

.ffe-filter__opt {
  display: flex; align-items: center; gap: 9px; font-size: 13.5px;
  color: var(--ffe-ink-70); text-decoration: none; transition: color 0.18s var(--ffe-ease);
}

.ffe-filter__opt:hover { color: var(--ffe-ink); }
.ffe-filter__opt.is-active { color: var(--ffe-ink); font-weight: 600; }

.ffe-check {
  width: 15px; height: 15px; border: 1px solid var(--ffe-border);
  border-radius: var(--ffe-radius); flex: 0 0 15px; position: relative;
  transition: border-color 0.18s var(--ffe-ease), background-color 0.18s var(--ffe-ease);
}

.ffe-filter__opt:hover .ffe-check { border-color: var(--ffe-muted); }
.ffe-filter__opt.is-active .ffe-check { background: var(--ffe-ink); border-color: var(--ffe-ink); }

.ffe-filter__opt.is-active .ffe-check::after {
  content: ''; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px;
  border-right: 1.5px solid #fff; border-bottom: 1.5px solid #fff; transform: rotate(45deg);
}

.ffe-filter__name { flex: 1 1 auto; }
.ffe-filter__count { color: var(--ffe-muted); font-size: 12.5px; }

.ffe-filter__list--grid { display: flex; flex-wrap: wrap; gap: 8px; }
.ffe-filter__list--grid li { margin-bottom: 0; }

.ffe-size {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; padding: 8px 10px; border: 1px solid var(--ffe-border);
  border-radius: var(--ffe-radius); font-size: 12.5px; color: var(--ffe-ink-70);
  text-decoration: none; transition: all 0.18s var(--ffe-ease);
}

.ffe-size:hover { border-color: var(--ffe-ink); color: var(--ffe-ink); }
.ffe-size.is-active { background: var(--ffe-ink); border-color: var(--ffe-ink); color: #fff; }

.ffe-price__row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }

.ffe-price input {
  width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid var(--ffe-border);
  border-radius: var(--ffe-radius); font-family: 'Manrope', sans-serif;
  font-size: 13px; color: var(--ffe-ink); background: #fff;
}

.ffe-price input:focus { outline: none; border-color: var(--ffe-ink); }
.ffe-price__sep { color: var(--ffe-muted); }

.ffe-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap; padding-bottom: 18px; margin-bottom: 30px;
  border-bottom: 1px solid var(--ffe-border);
}

.ffe-toolbar__count { margin: 0; font-size: 13px; color: var(--ffe-muted); }
.ffe-toolbar__right { display: flex; align-items: center; gap: 20px; }

.ffe-sort { display: flex; align-items: center; gap: 9px; }
.ffe-sort label { font-size: 13px; color: var(--ffe-muted); }

.ffe-sort select {
  border: 1px solid var(--ffe-border); border-radius: var(--ffe-radius);
  padding: 8px 30px 8px 12px; font-family: 'Manrope', sans-serif;
  font-size: 13px; color: var(--ffe-ink); background-color: #fff;
  appearance: none; cursor: pointer;
}

.ffe-view { display: flex; gap: 4px; }

.ffe-view__btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border: 1px solid var(--ffe-border);
  border-radius: var(--ffe-radius); background: #fff; cursor: pointer;
  color: var(--ffe-muted); transition: all 0.18s var(--ffe-ease);
}

.ffe-view__btn svg { fill: currentColor; }
.ffe-view__btn:hover { border-color: var(--ffe-ink); color: var(--ffe-ink); }
.ffe-view__btn.is-active { background: var(--ffe-ink); border-color: var(--ffe-ink); color: #fff; }

.ffe-shop__main ul.products {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 24px; list-style: none; margin: 0; padding: 0;
}

.ffe-shop__main ul.products::before, .ffe-shop__main ul.products::after { display: none !important; }

.ffe-shop__main ul.products li.product {
  width: 100% !important; margin: 0 !important; float: none !important; clear: none !important;
}

.woocommerce-pagination { margin-top: 56px; }

.woocommerce-pagination ul.page-numbers {
  display: flex; justify-content: center; gap: 6px;
  border: 0 !important; list-style: none; padding: 0;
}

.woocommerce-pagination ul.page-numbers li { border: 0 !important; }

.woocommerce-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; padding: 0 10px;
  border: 1px solid var(--ffe-border); border-radius: var(--ffe-radius);
  font-size: 13px; color: var(--ffe-ink); text-decoration: none;
  background: #fff; transition: all 0.18s var(--ffe-ease);
}

.woocommerce-pagination .page-numbers:hover { border-color: var(--ffe-ink); }
.woocommerce-pagination .page-numbers.current { background: var(--ffe-ink); border-color: var(--ffe-ink); color: #fff; }

@media (max-width: 1100px) {
  .ffe-shop { grid-template-columns: 220px minmax(0, 1fr); gap: 36px; }
  .ffe-shop__main ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .ffe-shop { grid-template-columns: 1fr; gap: 28px; }
  .ffe-filters { border: 1px solid var(--ffe-border); border-radius: var(--ffe-radius); padding: 18px 20px; }
  .ffe-filter:last-of-type { border-bottom: 0; }
}

@media (max-width: 520px) {
  .ffe-shop__main ul.products { grid-template-columns: 1fr; }
  .ffe-toolbar { flex-direction: column; align-items: flex-start; }
}
/* Quick view modal ------------------------------------------------------- */

.ffe-modal {
  position: fixed; inset: 0; z-index: 99999; display: none;
  align-items: center; justify-content: center; padding: 24px;
}

.ffe-modal.is-open { display: flex; }

.ffe-modal__backdrop {
  position: absolute; inset: 0; background: rgba(25, 20, 20, 0.55);
  animation: ffe-fade 0.22s var(--ffe-ease);
}

.ffe-modal__panel {
  position: relative; z-index: 1; width: min(980px, 100%);
  max-height: 88vh; overflow-y: auto; background: var(--ffe-surface);
  border-radius: var(--ffe-radius);
  box-shadow: 0 30px 70px -25px rgba(25, 20, 20, 0.5);
  animation: ffe-pop 0.26s var(--ffe-ease);
}

@keyframes ffe-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ffe-pop { from { opacity: 0; transform: translateY(14px) scale(0.985); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .ffe-modal__backdrop, .ffe-modal__panel { animation: none; }
  .ffe-card__img, .ffe-cat__media img, .ffe-banner__img, .ffe-post__media img { transition: none; }
}

.ffe-modal__close {
  position: absolute; top: 14px; right: 16px; z-index: 2;
  width: 34px; height: 34px; border: 0; background: transparent;
  font-size: 26px; line-height: 1; color: var(--ffe-muted); cursor: pointer;
  border-radius: 50%; transition: color 0.18s var(--ffe-ease), background-color 0.18s var(--ffe-ease);
}

.ffe-modal__close:hover { color: var(--ffe-ink); background: var(--ffe-tint); }

.ffe-qv { display: grid; grid-template-columns: 44% 1fr; gap: 40px; padding: 30px; }

.ffe-qv__media {
  background: var(--ffe-tint); border-radius: var(--ffe-radius);
  aspect-ratio: 3 / 4; overflow: hidden;
}

.ffe-qv__media img { width: 100%; height: 100%; object-fit: cover; }

.ffe-qv__info { padding-right: 12px; }
.ffe-qv__info .ffe-card__rating { justify-content: flex-start; margin-bottom: 12px; }

.ffe-qv__title { font-size: clamp(1.25rem, 2vw, 1.6rem); margin: 0 0 12px; line-height: 1.2; }

.ffe-qv__price { font-size: 20px; font-weight: 700; margin-bottom: 16px; }
.ffe-qv__price del { color: var(--ffe-muted); font-weight: 400; margin-right: 8px; opacity: 1; }
.ffe-qv__price ins { text-decoration: none; }

.ffe-qv__blurb {
  color: var(--ffe-ink-70); font-size: 14px; line-height: 1.7;
  margin: 0 0 20px; padding-bottom: 20px; border-bottom: 1px solid var(--ffe-border);
}

.ffe-qv__row { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; font-size: 13.5px; }
.ffe-qv__label { color: var(--ffe-muted); font-size: 12.5px; }
.ffe-qv__stock { display: inline-flex; align-items: center; gap: 7px; }

.ffe-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.ffe-dot--in { background: #2E9E5B; }
.ffe-dot--out { background: var(--ffe-accent); }

.ffe-qv__attr { margin-bottom: 18px; }
.ffe-qv__attr .ffe-qv__label { display: block; margin-bottom: 9px; }

.ffe-chips { display: flex; flex-wrap: wrap; gap: 7px; }

.ffe-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; padding: 8px 12px; border: 1px solid var(--ffe-border);
  border-radius: var(--ffe-radius); font-size: 12.5px; color: var(--ffe-ink-70);
}

.ffe-qv__actions { margin: 22px 0 20px; }

.ffe-qv__meta { list-style: none; margin: 0 0 16px; padding: 0; font-size: 13px; color: var(--ffe-ink-70); }
.ffe-qv__meta li { margin-bottom: 6px; }
.ffe-qv__meta span { color: var(--ffe-muted); }

.ffe-qv__full {
  display: inline-flex; align-items: center; gap: 7px; font-size: 13px;
  font-weight: 600; color: var(--ffe-ink); text-decoration: none;
  border-bottom: 1px solid var(--ffe-ink); padding-bottom: 2px;
}

.ffe-qv__full:hover { color: var(--ffe-accent); border-color: var(--ffe-accent); }
.ffe-qv__loading { padding: 80px; text-align: center; color: var(--ffe-muted); }

@media (max-width: 780px) {
  .ffe-qv { grid-template-columns: 1fr; gap: 24px; padding: 22px; }
  .ffe-qv__media { aspect-ratio: 4 / 3; }
}

/* Blog ------------------------------------------------------------------- */

.ffe-posts { display: grid; grid-template-columns: repeat(var(--ffe-cols, 3), minmax(0, 1fr)); gap: 48px 28px; }

.ffe-post__media {
  display: block; aspect-ratio: 4 / 3; overflow: hidden;
  border-radius: var(--ffe-radius); background: var(--ffe-tint); margin-bottom: 18px;
}

.ffe-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ffe-ease); }
.ffe-post:hover .ffe-post__media img { transform: scale(1.045); }

.ffe-post__placeholder {
  display: block; width: 100%; height: 100%;
  background: linear-gradient(135deg, var(--ffe-tint) 0%, #E6DFD9 100%);
}

.ffe-post__date {
  font-size: 11px; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ffe-muted); margin: 0 0 9px;
}

.ffe-post__title { font-size: 17px; line-height: 1.3; margin: 0 0 10px; }
.ffe-post__title a { color: var(--ffe-ink); text-decoration: none; }
.ffe-post__title a:hover { color: var(--ffe-accent); }

.ffe-post__excerpt { font-size: 14px; line-height: 1.7; color: var(--ffe-ink-70); margin: 0 0 14px; }

.ffe-post__more {
  font-size: 11px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--ffe-ink); text-decoration: none;
  border-bottom: 1px solid var(--ffe-ink); padding-bottom: 2px;
}

.ffe-post__more:hover { color: var(--ffe-accent); border-color: var(--ffe-accent); }

@media (max-width: 900px) { .ffe-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ffe-posts { grid-template-columns: 1fr; } }
/* Single product --------------------------------------------------------- */

.single-product div.product {
  max-width: var(--ffe-max); margin: 44px auto 80px; padding: 0 var(--ffe-gutter);
  display: grid; grid-template-columns: 52% 1fr; gap: 56px; align-items: start;
}

.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary { width: 100% !important; float: none !important; margin: 0 !important; }

.single-product div.product .woocommerce-tabs,
.single-product div.product .related,
.single-product div.product .up-sells { grid-column: 1 / -1; }

.single-product .product_title { font-size: clamp(1.5rem, 2.6vw, 2.125rem); margin: 0 0 14px; }

.single-product div.product p.price, .single-product div.product span.price {
  font-size: 22px; font-weight: 700; color: var(--ffe-ink);
  font-family: 'Manrope', sans-serif; margin-bottom: 20px;
}

.single-product div.product p.price del { color: var(--ffe-muted); font-weight: 400; opacity: 1; }
.single-product div.product p.price ins { text-decoration: none; }

.single-product .woocommerce-product-details__short-description {
  color: var(--ffe-ink-70); font-size: 14.5px; line-height: 1.75;
  padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--ffe-border);
}

.single-product table.variations { border: 0; margin-bottom: 18px; }
.single-product table.variations th, .single-product table.variations td { border: 0; padding: 7px 0; }

.single-product table.variations label {
  font-size: 12px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--ffe-ink);
}

.single-product .variations select {
  border: 1px solid var(--ffe-border); border-radius: var(--ffe-radius);
  padding: 11px 14px; font-family: 'Manrope', sans-serif; font-size: 14px;
  min-width: 220px; background: #fff;
}

.single-product .quantity input[type=number] {
  border: 1px solid var(--ffe-border); border-radius: var(--ffe-radius);
  padding: 13px 10px; font-family: 'Manrope', sans-serif; width: 78px;
}

.single-product .cart { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.single-product .single_add_to_cart_button {
  background: var(--ffe-ink) !important; color: #fff !important;
  border-radius: var(--ffe-radius) !important; padding: 15px 40px !important;
  font-family: 'Manrope', sans-serif !important; font-size: 12px !important;
  font-weight: 700 !important; letter-spacing: 0.09em !important;
  text-transform: uppercase !important; transition: background-color 0.2s var(--ffe-ease);
}

.single-product .single_add_to_cart_button:hover { background: var(--ffe-accent) !important; }

.single-product .product_meta {
  font-size: 13px; color: var(--ffe-ink-70); padding-top: 20px;
  margin-top: 22px; border-top: 1px solid var(--ffe-border);
}

.single-product .product_meta > span { display: block; margin-bottom: 7px; }
.single-product .product_meta a { color: var(--ffe-ink); }

.single-product .woocommerce-tabs ul.tabs {
  padding: 0 !important; margin: 0 0 26px !important;
  border-bottom: 1px solid var(--ffe-border); display: flex; gap: 30px;
}

.single-product .woocommerce-tabs ul.tabs::before { display: none !important; }
.single-product .woocommerce-tabs ul.tabs li {
  background: none !important; border: 0 !important; margin: 0 !important;
  padding: 0 !important; border-radius: 0 !important;
}
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }

.single-product .woocommerce-tabs ul.tabs li a {
  padding: 0 0 12px !important; font-family: 'Manrope', sans-serif;
  font-size: 12px; font-weight: 700; letter-spacing: 0.09em;
  text-transform: uppercase; color: var(--ffe-muted) !important;
  border-bottom: 1.5px solid transparent;
}

.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--ffe-ink) !important; border-bottom-color: var(--ffe-ink); }

.single-product .related > h2, .single-product .up-sells > h2 { font-size: 1.5rem; margin: 0 0 30px; }

.single-product .related ul.products, .single-product .up-sells ul.products {
  display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px 24px; list-style: none; padding: 0; margin: 0;
}

.single-product .related ul.products li.product,
.single-product .up-sells ul.products li.product { width: 100% !important; margin: 0 !important; float: none !important; }

@media (max-width: 980px) {
  .single-product div.product { grid-template-columns: 1fr; gap: 32px; }
  .single-product .related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Cart / checkout / account --------------------------------------------- */

.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content {
  max-width: var(--ffe-max); margin: 44px auto 80px; padding: 0 var(--ffe-gutter);
}

.woocommerce table.shop_table { border-radius: var(--ffe-radius); border-color: var(--ffe-border); }
.woocommerce table.shop_table th {
  font-family: 'Manrope', sans-serif; font-size: 12px;
  letter-spacing: 0.07em; text-transform: uppercase;
}

.woocommerce .button, .woocommerce a.button,
.woocommerce button.button, .woocommerce input.button {
  background: var(--ffe-ink); color: #fff; border-radius: var(--ffe-radius);
  font-family: 'Manrope', sans-serif; font-size: 12px; font-weight: 700;
  letter-spacing: 0.09em; text-transform: uppercase; padding: 14px 28px;
  transition: background-color 0.2s var(--ffe-ease);
}

.woocommerce .button:hover, .woocommerce a.button:hover,
.woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--ffe-accent); color: #fff; }

.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top-color: var(--ffe-accent); border-radius: var(--ffe-radius); font-size: 14px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  border: 1px solid var(--ffe-border); border-radius: var(--ffe-radius);
  padding: 12px 14px; font-family: 'Manrope', sans-serif;
}

/* Header / footer chrome ------------------------------------------------- */

.ffe-topbar a { color: #fff; }

.ffe-footcol h4 {
  font-family: 'Archivo', sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 18px; color: var(--ffe-ink);
}

.ffe-footcol p { font-size: 14px; line-height: 1.9; color: var(--ffe-ink-70); margin: 0; }
.ffe-footcol a { color: var(--ffe-ink-70); text-decoration: none; transition: color 0.18s var(--ffe-ease); }
.ffe-footcol a:hover { color: var(--ffe-accent); }

.ffe-wrap { max-width: var(--ffe-max); margin: 0 auto; padding: 0 var(--ffe-gutter); }

@media (max-width: 600px) { :root { --ffe-gutter: 20px; } }
/* WooCommerce Cart / Checkout blocks -------------------------------------
   These render through WooCommerce's block runtime, not the classic loop
   hooks, so they are brought on-brand with CSS rather than markup swaps. */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  max-width: var(--ffe-max);
  margin: 44px auto 80px;
  padding: 0 var(--ffe-gutter);
}

.wc-block-components-title,
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-cart h1,
.wp-block-woocommerce-checkout h1 {
  font-family: 'Archivo', sans-serif !important;
  font-weight: 700 !important;
  color: var(--ffe-ink) !important;
  letter-spacing: -0.015em;
}

.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  background: var(--ffe-ink) !important;
  color: #fff !important;
  border-radius: var(--ffe-radius) !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  padding: 15px 32px !important;
  transition: background-color 0.2s var(--ffe-ease);
}

.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--ffe-accent) !important; }

.wc-block-components-button--outlined {
  background: transparent !important;
  color: var(--ffe-ink) !important;
  box-shadow: inset 0 0 0 1px var(--ffe-ink) !important;
}

.wc-block-components-button--outlined:hover { background: var(--ffe-ink) !important; color: #fff !important; }

.wc-block-components-product-name {
  font-family: 'Archivo', sans-serif !important;
  font-weight: 600 !important;
  color: var(--ffe-ink) !important;
  text-decoration: none !important;
}

.wc-block-components-product-name:hover { color: var(--ffe-accent) !important; }

.wc-block-components-product-price__value,
.wc-block-components-totals-item__value {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 700;
  color: var(--ffe-ink);
}

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__container {
  border-radius: var(--ffe-radius) !important;
  border-color: var(--ffe-border) !important;
  font-family: 'Manrope', sans-serif !important;
}

.wc-block-components-text-input input:focus { border-color: var(--ffe-ink) !important; box-shadow: none !important; }

.wc-block-cart-items__header {
  font-family: 'Manrope', sans-serif !important;
  font-size: 12px !important;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ffe-muted) !important;
}

.wc-block-cart-item__image img { border-radius: var(--ffe-radius); background: var(--ffe-tint); }

.wc-block-grid__product-title {
  font-family: 'Archivo', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--ffe-ink) !important;
}

.wc-block-grid__product-image img { border-radius: var(--ffe-radius); background: var(--ffe-tint); }

.wc-block-grid__product-onsale {
  background: var(--ffe-ink) !important;
  border-color: var(--ffe-ink) !important;
  color: #fff !important;
  border-radius: var(--ffe-radius) !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.wc-block-components-notice-banner { border-radius: var(--ffe-radius) !important; }
/* ==========================================================================
   Boxed layout alignment

   Elementor boxed containers cap `.e-con-inner` at --ffe-max and apply the
   gutter on the OUTER element, so real content begins at
   (viewport - max) / 2. Wrappers we render ourselves (shop shell, single
   product, cart blocks) must therefore size to max + both gutters, otherwise
   they subtract the gutter twice and sit one gutter inboard of the header.
   ========================================================================== */

.ffe-pagehead__inner,
.ffe-shop,
.ffe-mega__inner,
.ffe-wrap,
.single-product div.product,
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content,
.woocommerce-account .entry-content,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  max-width: calc(var(--ffe-max) + (var(--ffe-gutter) * 2));
  margin-inline: auto;
  padding-inline: var(--ffe-gutter);
  box-sizing: border-box;
}

/* Hello Elementor caps <main> at its own 1140px, which is narrower than the
   kit's boxed column. On the templates our wrappers own, hand width back. */
.woocommerce-page main.site-main,
.woocommerce main.site-main,
.search main.site-main,
.single-product main.site-main {
  max-width: none;
  width: 100%;
}

/* HFE column containers carry a default 10px inset that pushes header and
   footer widgets off the shared column edge. Columns are spaced with `gap`,
   so removing the horizontal inset costs nothing. */
.e-con-inner > .e-con { padding-inline: 0; }
/* Elementor writes a fixed 40px section padding into each container's own
   rule, so on phones it would sit 20px outboard of everything we render.
   Re-point the boxed top-level containers at the shared gutter token.
   `:has(> .e-con-inner)` keeps this to boxed sections only. */
@media (max-width: 600px) {
  .e-con:has(> .e-con-inner) {
    padding-inline: var(--ffe-gutter) !important;
  }
}
/* ==========================================================================
   Revision pass
   ========================================================================== */

/* `display:grid` outranks the UA's [hidden] rule, which left every tab panel
   painted on top of the others. Restore the attribute's meaning. */
[hidden] { display: none !important; }

/* Tabs: give the active state a clearer target and keyboard affordance. */
.ffe-tab { position: relative; }
.ffe-tab:focus-visible { outline: 2px solid var(--ffe-ink); outline-offset: 4px; }

/* ---------------------------------------------------------- Quick view UI */

body.ffe-modal-open { overflow: hidden; }

.ffe-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ffe-border);
  border-radius: 50%;
  background: #fff;
  color: var(--ffe-ink);
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  box-shadow: 0 2px 10px -4px rgba(25, 20, 20, 0.25);
  transition: background-color 0.18s var(--ffe-ease), border-color 0.18s var(--ffe-ease), transform 0.18s var(--ffe-ease);
}

/* Draw the glyph so it stays optically centred at any font size. */
.ffe-modal__close::before,
.ffe-modal__close::after {
  content: '';
  position: absolute;
  width: 15px;
  height: 1.5px;
  background: currentColor;
  border-radius: 2px;
}

.ffe-modal__close::before { transform: rotate(45deg); }
.ffe-modal__close::after { transform: rotate(-45deg); }

.ffe-modal__close:hover {
  background: var(--ffe-ink);
  border-color: var(--ffe-ink);
  color: #fff;
  transform: rotate(90deg);
}

.ffe-modal__close:focus-visible { outline: 2px solid var(--ffe-ink); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  .ffe-modal__close:hover { transform: none; }
}

/* Selectable variation chips. */
.ffe-chip--btn {
  background: #fff;
  cursor: pointer;
  font-family: 'Manrope', sans-serif;
  transition: all 0.16s var(--ffe-ease);
}

.ffe-chip--btn:hover { border-color: var(--ffe-ink); color: var(--ffe-ink); }

.ffe-chip--btn.is-active {
  background: var(--ffe-ink);
  border-color: var(--ffe-ink);
  color: #fff;
}

.ffe-chip--btn.is-unavailable {
  opacity: 0.35;
  text-decoration: line-through;
}

.ffe-chip--btn:focus-visible { outline: 2px solid var(--ffe-ink); outline-offset: 2px; }

.ffe-btn.is-disabled {
  opacity: 0.42;
  cursor: not-allowed;
  pointer-events: auto;
}

.ffe-qv__hint {
  margin: 0 0 12px;
  font-size: 13px;
  color: var(--ffe-accent);
}

.ffe-qv__meta li span { display: inline-block; min-width: 74px; color: var(--ffe-muted); }

/* ------------------------------------------------------------ Cart icon */

.hfe-cart-container,
.hfe-cart-menu-wrap-default,
.hfe-cart-menu-wrap-default *,
.hfe-site-header-cart a {
  color: var(--ffe-accent) !important;
}

.hfe-cart-count {
  background: var(--ffe-accent) !important;
  color: #fff !important;
  border-color: var(--ffe-accent) !important;
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
}

.hfe-search-button-wrapper .hfe-search-icon-toggle,
.hfe-search-form__toggle { color: var(--ffe-ink); }

/* --------------------------------------------------- Responsive header */

.ffe-head-main > .e-con-inner {
  align-items: center;
}

@media (max-width: 1024px) {
  /* Keep search / logo / cart on one line instead of stacking into three rows. */
  .ffe-head-main > .e-con-inner {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center;
    gap: 10px;
  }

  .ffe-head-main > .e-con-inner > .e-con {
    width: auto !important;
    flex: 0 0 auto !important;
    padding-block: 0;
  }

  .ffe-head-main > .e-con-inner > .e-con:nth-child(2) {
    flex: 1 1 auto !important;
    align-items: center;
  }

  .ffe-head-main .elementor-widget-site-logo img { max-width: 108px; height: auto; }

  /* The announcement bar keeps the offer and drops the secondary links. */
  .ffe-head-bar > .e-con-inner { flex-direction: row !important; flex-wrap: nowrap !important; }
  .ffe-head-bar > .e-con-inner > .e-con:nth-child(2) { display: none !important; }
  .ffe-head-bar > .e-con-inner > .e-con:nth-child(1) { width: 100% !important; flex: 1 1 auto !important; }
  .ffe-head-bar .ffe-topbar { text-align: center; font-size: 11px; }
}

@media (max-width: 600px) {
  .ffe-head-main > .e-con-inner { gap: 6px; }
  .ffe-head-main .elementor-widget-site-logo img { max-width: 92px; }
  .ffe-head-bar .ffe-topbar { font-size: 10.5px; letter-spacing: 0.02em; }
  .hfe-cart-count { transform: scale(0.9); }
}
/* Header rows keyed by element id (container _css_classes is not rendered in
   this Elementor build, so the ids are the stable hook). */
@media (max-width: 1024px) {
  .elementor-element-b55f886 > .e-con-inner,
  .elementor-element-cdfe1ef > .e-con-inner {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px;
  }

  .elementor-element-0c9e268,
  .elementor-element-dcf2c58 { --width: 22% !important; }
  .elementor-element-9a673f7 { --width: 56% !important; }
  .elementor-element-38ea78c { display: none !important; }
  .elementor-element-2977b7a { --width: 100% !important; }

  .elementor-element-b55f886 .elementor-widget-site-logo img { max-width: 108px; height: auto; }
  .elementor-element-cdfe1ef .ffe-topbar { text-align: center; font-size: 11px; }
}

@media (max-width: 600px) {
  .elementor-element-b55f886 > .e-con-inner { gap: 6px; }
  .elementor-element-b55f886 .elementor-widget-site-logo img { max-width: 92px; }
  .elementor-element-cdfe1ef .ffe-topbar { font-size: 10.5px; }
}
/* -------------------------------------------------------- Promise bar */

.ffe-usps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ffe-usp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 4px 22px;
}

.ffe-usps.has-dividers .ffe-usp + .ffe-usp {
  border-left: 1px solid var(--ffe-border);
}

.ffe-usp__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--ffe-accent);
  font-size: 21px;
}

.ffe-usp__icon svg { width: 21px; height: 21px; fill: currentColor; }

.ffe-usp__copy { display: flex; flex-direction: column; gap: 2px; }

.ffe-usp__title {
  font-family: 'Archivo', sans-serif;
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: 0.01em;
  color: var(--ffe-ink);
}

.ffe-usp__text { font-size: 12.5px; color: var(--ffe-muted); }

@media (max-width: 900px) {
  .ffe-usps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 0; }
  .ffe-usps.has-dividers .ffe-usp:nth-child(odd) { border-left: 0; }
  .ffe-usp { justify-content: flex-start; padding: 4px 14px; }
}

@media (max-width: 520px) {
  .ffe-usps { grid-template-columns: 1fr; gap: 16px; }
  .ffe-usps.has-dividers .ffe-usp + .ffe-usp { border-left: 0; }
}

/* ------------------------------------------------------- Promo split */

.ffe-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  border-radius: var(--ffe-radius);
  overflow: hidden;
}

.ffe-split--media-right .ffe-split__media { order: 2; }

.ffe-split__media { position: relative; min-height: 420px; background: var(--ffe-tint); }
.ffe-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.ffe-split__panel { display: flex; align-items: center; padding: clamp(36px, 5vw, 72px); }
.ffe-split__inner { max-width: 42ch; }

.ffe-split__title { font-size: clamp(1.5rem, 2.4vw, 2.125rem); line-height: 1.12; margin: 0 0 16px; }

.ffe-split__body {
  color: var(--ffe-ink-70);
  font-size: 15px;
  line-height: 1.75;
  margin: 0 0 30px;
}

@media (max-width: 860px) {
  .ffe-split { grid-template-columns: 1fr; }
  .ffe-split--media-right .ffe-split__media { order: 0; }
  .ffe-split__media { min-height: 300px; }
  .ffe-split__panel { padding: 36px 24px 44px; }
}

/* ------------------------------------------------------ Shop by size */

.ffe-sizelinks {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.ffe-sizelink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  padding: 14px 18px;
  border: 1px solid var(--ffe-border);
  border-radius: var(--ffe-radius);
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--ffe-ink);
  text-decoration: none;
  background: #fff;
  transition: all 0.18s var(--ffe-ease);
}

.ffe-sizelink:hover {
  background: var(--ffe-ink);
  border-color: var(--ffe-ink);
  color: #fff;
  transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
  .ffe-sizelink:hover { transform: none; }
}