:root{
  --frx-blue:#0b2f6b;
  --frx-blue-dark:#081f49;
  --frx-red:#e30613;
  --frx-red-dark:#b8050f;
  --frx-light:#f4f7fb;
}

html, body{
  overflow-x:clip;
  max-width:100%;
}
body{
  font-family:'Poppins', sans-serif;
  color:#1c2b3a;
  background:#fff;
}
img, iframe, video{ max-width:100%; }

/* ===== Hero ===== */
.hero{
  position:relative; overflow:hidden;
  min-height:380px;
  border:2px solid var(--frx-blue);
  background:
    linear-gradient(90deg,
      #f1f4fb 0%,
      #f1f4fb 30%,
      rgba(241,244,251,.92) 40%,
      rgba(241,244,251,.55) 50%,
      rgba(241,244,251,.15) 62%,
      transparent 75%),
    url("../images/hero.png") right center / cover no-repeat;
}
.hero-inner{
  max-width:1140px; margin:0 auto; padding:2.4rem 1rem;
  display:flex; align-items:stretch; justify-content:space-between; gap:2rem;
  min-height:380px;
}
.hero-content{
  max-width:520px; display:flex; flex-direction:column; justify-content:center;
  flex:1 1 auto;
}
.hero-title-brand{
  color:var(--frx-blue); font-weight:800; font-style:italic;
  letter-spacing:1px; font-size:2.35rem; line-height:1;
}
.hero-title-brand .rax{ color:var(--frx-red); }
.hero h1{
  font-weight:800; color:var(--frx-blue); line-height:1.15;
  font-size:1.85rem; letter-spacing:.4px; margin:.85rem 0 .75rem;
}
.hero p.lead{
  color:#3d4f66; font-size:1.08rem; line-height:1.6; margin:0;
  max-width:460px;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.35rem; }
.hero .btn-frx-blue,
.hero .btn-frx-red{
  font-size:.78rem; padding:.5rem 1rem; letter-spacing:.3px;
  display:inline-flex; align-items:center; gap:.45rem; border-radius:3px;
}
.hero .btn-frx-blue i,
.hero .btn-frx-red i{ font-size:1rem; }

.hero-badge-list{
  background:rgba(11,47,107,.88); color:#fff;
  border-radius:4px; padding:1.35rem 1.2rem;
  width:250px; flex:0 0 250px;
  display:flex; flex-direction:column; justify-content:center;
  align-self:center; margin:0;
}
.hero-badge-list .item{
  font-size:.82rem; padding:.55rem 0; font-weight:500;
  display:flex; align-items:center; gap:.7rem;
}
.hero-badge-list i{ color:#fff; font-size:1.25rem; flex-shrink:0; }

@media (max-width:991.98px){
  .hero{
    background:
      linear-gradient(180deg, rgba(241,244,251,.94) 0%, rgba(241,244,251,.75) 45%, rgba(241,244,251,.35) 100%),
      url("../images/hero.png") center/cover no-repeat;
  }
  .hero-inner{ flex-direction:column; min-height:0; padding:2rem 1rem; }
  .hero-badge-list{ width:100%; flex:none; max-width:360px; }
}

/* ===== Feature strip ===== */
.feature-strip{ background:#fff; border-bottom:1px solid #eef1f5; }
.feature-strip .f-item{ min-width:0; }
.feature-strip .f-item > div{ min-width:0; }
.feature-strip .f-item i{ color:var(--frx-blue); font-size:1.6rem; }
.feature-strip .f-title{ font-weight:700; font-size:.85rem; color:#16233a; }
.feature-strip .f-sub{ font-size:.75rem; color:#8492a3; }

/* ===== Section titles ===== */
.section-title{ font-weight:800; letter-spacing:.5px; }
.section-title .brand{ color:var(--frx-blue); }
.section-title .accent{ color:var(--frx-red); }
.title-underline{ width:46px; height:3px; background:var(--frx-red); margin-top:6px; }

/* ===== Services ===== */
.service-card{
  background:var(--frx-light); border-radius:6px; overflow:hidden; height:100%;
  transition:transform .15s ease, box-shadow .15s ease;
}
.service-card:hover{ transform:translateY(-3px); box-shadow:0 8px 20px rgba(11,47,107,.12); }
.service-card img{ height:130px; width:100%; object-fit:cover; }
.service-card .body{ padding:.9rem 1rem 1.1rem; }
.service-card .title{ font-weight:700; font-size:.85rem; color:#16233a; letter-spacing:.3px; }
.service-card .desc{ font-size:.78rem; color:#6b7a8d; }
.service-card .redbar{ width:22px; height:3px; background:var(--frx-red); margin:.4rem 0; }

/* ===== Boutique (home preview) ===== */
.product-card{
  border:1px solid #e8eef5; border-radius:8px; overflow:hidden; height:100%;
  background:#fff; display:flex; flex-direction:column;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.product-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 24px rgba(11,47,107,.12);
  border-color:#d5deea;
}
.product-card .img-wrap{
  height:160px; background:#fff; padding:0;
  position:relative; overflow:hidden;
}
.product-card .img-wrap img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .25s ease;
}
.product-card:hover .img-wrap img{ transform:scale(1.04); }
.product-card .body{
  padding:.75rem .85rem .9rem; display:flex; flex-direction:column; flex:1;
}
.product-card .pname{
  font-size:.78rem; font-weight:700; color:#16233a; line-height:1.35;
  min-height:2.35em; margin-bottom:.35rem;
}
.product-card .price{
  font-weight:800; color:var(--frx-blue); font-size:1rem; margin-top:auto;
}
.product-card .price .ttc{
  font-size:.65rem; font-weight:600; color:#8492a3; margin-left:.15rem;
}
.btn-add{
  background:var(--frx-red); color:#fff; font-size:.68rem; font-weight:700;
  letter-spacing:.4px; border:none; padding:.5rem .4rem; width:100%;
  border-radius:4px; margin-top:.65rem;
  display:inline-flex; align-items:center; justify-content:center; gap:.35rem;
  transition:background .15s ease;
}
.btn-add:hover{ background:var(--frx-red-dark); color:#fff; }
.btn-add i{ font-size:.85rem; }

/* ===== Trust band ===== */
.trust-band{ background:var(--frx-blue); color:#fff; }
.trust-title{
  color:#fff; font-weight:700; font-size:1.55rem; line-height:1.25;
  text-transform:uppercase; letter-spacing:.4px;
}
.trust-title-accent{
  color:var(--frx-red); font-weight:800; font-size:1.45rem;
  line-height:1.2; letter-spacing:.5px; margin-top:.15rem;
}
.trust-desc{ color:#fff; font-size:.85rem; margin:.75rem 0 0; line-height:1.5; }
.trust-band .stat i{ font-size:2.6rem; color:#fff; }
.trust-band .stat .num{ font-weight:800; font-size:1.4rem; }
.trust-band .stat .lbl{ font-size:.75rem; color:#c9d6ea; }

/* Zone card inside trust band */
.zone-card{
  display:flex; align-items:stretch; overflow:hidden;
  border-radius:4px; background:#f1f4fb;
  min-height:150px; max-width:420px; margin-left:auto;
}
.zone-info{
  flex:0 0 48%; padding:1rem .9rem;
  display:flex; flex-direction:column; justify-content:center; gap:.55rem;
}
.zone-info h3{
  font-weight:800; font-size:.82rem; letter-spacing:.3px;
  margin:0; line-height:1.2; text-transform:uppercase;
}
.zone-info h3 .z-blue{ color:var(--frx-blue); }
.zone-info h3 .z-red{ color:var(--frx-red); }
.zone-info p{
  margin:0; color:var(--frx-blue); font-size:.72rem;
  font-weight:600; line-height:1.4;
}
.zone-info .btn-zone{
  align-self:flex-start; background:var(--frx-blue); color:#fff;
  font-weight:700; font-size:.68rem; letter-spacing:.3px;
  border:none; border-radius:3px; padding:.4rem .75rem;
  text-decoration:none; display:inline-block;
}
.zone-info .btn-zone:hover{ background:var(--frx-blue-dark); color:#fff; }
.zone-map-visual{
  flex:1; position:relative; min-height:150px; background:#e8eef5; overflow:hidden;
}
.zone-map-visual iframe{
  position:absolute; inset:0; width:100%; height:100%; border:0;
  filter:grayscale(.15) contrast(1.05);
}
.zone-radius{
  position:absolute; top:50%; left:50%;
  width:min(72%, 110px); aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:rgba(11,47,107,.28);
  border:2px solid rgba(11,47,107,.45);
  pointer-events:none; z-index:2;
}
.zone-pin{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-62%);
  z-index:3; text-align:center; pointer-events:none;
}
.zone-pin i{
  font-size:1.35rem; color:var(--frx-blue);
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));
}
.zone-pin span{
  display:block; margin-top:.05rem;
  color:var(--frx-blue); font-weight:800; font-size:.78rem;
  text-shadow:0 1px 2px rgba(255,255,255,.9);
}

@media (max-width:991.98px){
  .zone-card{ max-width:100%; margin-left:0; }
}

/* ===== Bottom trust icons ===== */
.bottom-trust{ background:#fff; border-top:1px solid #eef1f5; }
.bottom-trust .row > [class*="col-"]{ min-width:0; }
.bottom-trust .d-flex{ min-width:0; }
.bottom-trust i{ color:var(--frx-blue); font-size:1.3rem; }
.bottom-trust .lbl-title{ font-weight:700; font-size:.8rem; color:#16233a; }
.bottom-trust .lbl-sub{ font-size:.72rem; color:#8492a3; }
.pay-icons i{ font-size:1.6rem; color:#a9b4c2; margin-left:.6rem; }

@media (max-width:991.98px){
  .bottom-trust .lbl-title{ font-size:.72rem; }
  .bottom-trust .lbl-sub{ font-size:.65rem; }
}

