/* =========================================================================
   FEIRAN PRODUCTS — scoped Elementor widget styles
   Everything namespaced under .feiran-products-widget so it never collides
   with the host theme. Mirrors the Feiran homepage "Products" section.
   ========================================================================= */

.feiran-products-widget{
  /* Brand tokens — overridable from the Style tab */
  --fp-red-600:#d92231;
  --fp-red-500:#e23744;
  --fp-red-400:#ef5a66;
  --fp-navy-900:#101a36;
  --fp-ink-900:#101a36;
  --fp-ink-700:#28344a;
  --fp-ink-500:#5d6478;
  --fp-ink-400:#8a8f9c;
  --fp-line:#e1e2e6;
  --fp-line-strong:#cdd0d6;
  --fp-bg-elev:#f6f7f9;
  --fp-white:#ffffff;

  --fp-radius:14px;
  --fp-card-pad:28px;
  --fp-gap:16px;
  --fp-content-max:1320px;

  --fp-font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --fp-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --fp-easing:cubic-bezier(.2,.7,.2,1);

  font-family:var(--fp-font);
  color:var(--fp-ink-900);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.feiran-products-widget *,
.feiran-products-widget *::before,
.feiran-products-widget *::after{ box-sizing:border-box; }

/* ---- Section shell --------------------------------------------------- */
.feiran-products{
  width:100%;
  background:var(--fp-bg-elev);
  border-top:1px solid var(--fp-line);
  border-bottom:1px solid var(--fp-line);
}
.feiran-products__container{
  width:100%;
  max-width:var(--fp-content-max);
  margin:0 auto;
}

/* ---- Section head ---------------------------------------------------- */
.feiran-products__head{
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:48px;
  align-items:end;
  margin-bottom:56px;
}
.feiran-products__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--fp-mono);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--fp-ink-500);
  margin:0;
}
.feiran-products__eyebrow::before{
  content:"";
  width:24px;height:1px;
  background:var(--fp-red-600);
  opacity:.9;
}
.feiran-products__title{
  margin:18px 0 0;
  font-size:clamp(28px, 3vw, 44px);
  font-weight:600;
  line-height:1.05;
  letter-spacing:-0.02em;
  color:var(--fp-ink-900);
  text-wrap:balance;
}
.feiran-products__lede{
  margin:0;
  font-size:17px;
  line-height:1.55;
  color:var(--fp-ink-700);
  max-width:54ch;
  text-wrap:pretty;
}

/* ---- Grid ------------------------------------------------------------ */
.feiran-products__grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:var(--fp-gap);
}

/* ---- Card ------------------------------------------------------------ */
.feiran-product-card{
  position:relative;
  background:var(--fp-white);
  border:1px solid var(--fp-line);
  border-radius:var(--fp-radius);
  padding:var(--fp-card-pad);
  display:flex;
  flex-direction:column;
  min-height:240px;
  transition:transform .35s var(--fp-easing), box-shadow .35s var(--fp-easing), border-color .35s;
  overflow:hidden;
  isolation:isolate;
}
.feiran-product-card::before{
  content:"";
  position:absolute;inset:auto 0 0 0;height:3px;
  background:linear-gradient(90deg, var(--fp-red-600), var(--fp-red-400));
  transform-origin:left;transform:scaleX(0);
  transition:transform .5s var(--fp-easing);
}
.feiran-product-card:hover{
  transform:translateY(-4px);
  border-color:var(--fp-line-strong);
  box-shadow:0 24px 50px -24px rgba(10,22,40,.18);
}
.feiran-product-card:hover::before{ transform:scaleX(1); }

.feiran-product-card__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:30px;
}

/* Monogram mark */
.feiran-product-card__mark{
  width:44px;height:44px;
  flex:0 0 auto;
  border-radius:10px;
  background:var(--fp-navy-900);
  color:var(--fp-white);
  display:grid;place-items:center;
  font-family:var(--fp-mono);
  font-size:13px;font-weight:500;
  position:relative;
  overflow:hidden;
}
.feiran-product-card__mark::after{
  content:"";
  position:absolute;inset:auto 6px 6px auto;
  width:6px;height:6px;border-radius:50%;
  background:var(--fp-red-500);
}
/* Image icon variant — hide the red dot, let the image fill */
.feiran-product-card__mark.has-img{ background:var(--fp-white); border:1px solid var(--fp-line); }
.feiran-product-card__mark.has-img::after{ display:none; }
.feiran-product-card__mark img{
  width:100%;height:100%;
  object-fit:contain;
  padding:7px;
  display:block;
}

.feiran-product-card__tag{
  font-family:var(--fp-mono);
  font-size:11px;
  color:var(--fp-ink-400);
  letter-spacing:.1em;
  text-align:right;
  padding-top:4px;
}
.feiran-product-card__title{
  margin:0 0 8px;
  font-size:24px;
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.1;
  color:var(--fp-ink-900);
}
.feiran-product-card__desc{
  margin:0;
  color:var(--fp-ink-500);
  font-size:14.5px;
  line-height:1.55;
  margin-bottom:auto;
  padding-bottom:24px;
}
.feiran-product-card__link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--fp-ink-900);
  font-weight:500;
  font-size:14px;
  transition:gap .25s var(--fp-easing), color .25s var(--fp-easing);
  align-self:flex-start;
}
.feiran-product-card:hover .feiran-product-card__link{ gap:12px; color:var(--fp-red-600); }
.feiran-product-card__link svg{ width:14px;height:14px;display:block; }

/* ---- Column spans ---------------------------------------------------- */
.feiran-product-card.span-12{ grid-column:span 12; }
.feiran-product-card.span-6{ grid-column:span 6; }
.feiran-product-card.span-4{ grid-column:span 4; }
.feiran-product-card.span-3{ grid-column:span 3; }

/* ---- Feature (dark flagship) card ------------------------------------ */
.feiran-product-card.is-feature{
  background:var(--fp-navy-900);
  color:var(--fp-white);
  border-color:transparent;
  min-height:340px;
}
.feiran-product-card.is-feature .feiran-product-card__mark{ background:rgba(255,255,255,.08); }
.feiran-product-card.is-feature .feiran-product-card__mark.has-img{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12); }
.feiran-product-card.is-feature .feiran-product-card__tag{ color:rgba(255,255,255,.5); }
.feiran-product-card.is-feature .feiran-product-card__title{ color:#fff; }
.feiran-product-card.is-feature .feiran-product-card__desc{ color:rgba(255,255,255,.7); }
.feiran-product-card.is-feature .feiran-product-card__link{ color:#fff; }
.feiran-product-card.is-feature:hover .feiran-product-card__link{ color:#fff; }
.feiran-product-card.is-feature::after{
  content:"";
  position:absolute;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle, rgba(217,34,49,.28), transparent 60%);
  bottom:-100px;right:-100px;z-index:-1;
}
.feiran-product-card .fp-grid-overlay{
  position:absolute;inset:0;z-index:-1;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:32px 32px;
  -webkit-mask-image:radial-gradient(80% 80% at 100% 100%, #000, transparent);
          mask-image:radial-gradient(80% 80% at 100% 100%, #000, transparent);
}

/* ---- Entrance reveal ------------------------------------------------- */
.feiran-products [data-fp-reveal]{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .7s var(--fp-easing), transform .7s var(--fp-easing);
}
.feiran-products [data-fp-reveal].is-in{
  opacity:1;
  transform:translateY(0);
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:980px){
  .feiran-products__head{
    grid-template-columns:1fr;
    gap:20px;
    margin-bottom:40px;
  }
  .feiran-product-card.span-6,
  .feiran-product-card.span-4,
  .feiran-product-card.span-3{ grid-column:span 6; }
}
@media (max-width:600px){
  .feiran-product-card.span-12,
  .feiran-product-card.span-6,
  .feiran-product-card.span-4,
  .feiran-product-card.span-3{ grid-column:span 12; }
  .feiran-products__lede{ font-size:16px; }
}

@media (prefers-reduced-motion: reduce){
  .feiran-products *{
    animation:none !important;
    transition:none !important;
  }
  .feiran-products [data-fp-reveal]{ opacity:1 !important; transform:none !important; }
}
