/* IPTV Français Hero Elementor Widget */
.iptv-fr-hero{
  --ifh-bg:#F6F0E6;
  --ifh-cream:#FFF9F0;
  --ifh-navy:#071320;
  --ifh-muted:#4F5661;
  --ifh-accent:#A30D1E;
  --ifh-gold:#B8924B;
  position:relative;
  overflow:hidden;
  width:100%;
  padding:76px 18px 64px;
  background:
    radial-gradient(circle at 78% 14%,rgba(163,13,30,.07),transparent 26%),
    radial-gradient(circle at 8% 86%,rgba(184,146,75,.12),transparent 31%),
    linear-gradient(135deg,var(--ifh-cream) 0%,var(--ifh-bg) 55%,#F0E6D6 100%);
  color:var(--ifh-navy);
  isolation:isolate;
}

.iptv-fr-hero:before{
  content:"";
  position:absolute;
  inset:auto auto -160px -80px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(163,13,30,.10),transparent 66%);
  z-index:-1;
}

.ifh-bg-mark{
  position:absolute;
  pointer-events:none;
  opacity:.28;
  z-index:-1;
}
.ifh-bg-mark-one{
  right:-120px;
  top:80px;
  width:560px;
  height:560px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(7,19,32,.10),rgba(184,146,75,.18));
}
.ifh-bg-mark-two{
  left:2%;
  bottom:6%;
  width:170px;
  height:260px;
  background:linear-gradient(180deg,rgba(7,19,32,.06),transparent);
  clip-path:polygon(50% 0,62% 42%,72% 42%,82% 100%,18% 100%,28% 42%,38% 42%);
}

.ifh-inner{
  position:relative;
  max-width:1300px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  grid-template-areas:
    "content visual"
    "strip strip";
  gap:42px 56px;
  align-items:center;
}

.ifh-content{
  grid-area:content;
  position:relative;
  z-index:2;
  max-width:620px;
}

.ifh-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:28px;
  color:var(--ifh-accent);
  font-size:12px;
  line-height:1;
  font-weight:700;
  letter-spacing:.30em;
  text-transform:uppercase;
}
.ifh-eyebrow:after{
  content:"";
  display:block;
  width:72px;
  height:1px;
  background:linear-gradient(90deg,var(--ifh-gold),transparent);
}

.ifh-title{
  margin:0;
  color:var(--ifh-navy);
  font-family:Georgia,"Times New Roman",serif;
  font-size:66px;
  line-height:1.07;
  font-weight:500;
  letter-spacing:-.045em;
}
.ifh-title span{
  display:inline-block;
  color:var(--ifh-accent);
  font-style:italic;
}

.ifh-mini-line{
  display:flex;
  align-items:center;
  gap:12px;
  margin:28px 0 28px;
}
.ifh-mini-line span:first-child{
  width:54px;
  height:2px;
  background:var(--ifh-navy);
  opacity:.82;
}
.ifh-mini-line span:last-child{
  width:54px;
  height:2px;
  background:var(--ifh-accent);
}

.ifh-description{
  max-width:560px;
  margin:0;
  color:var(--ifh-muted);
  font-size:17px;
  line-height:1.75;
  font-weight:400;
}

.ifh-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin-top:32px;
}
.ifh-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:0 34px;
  border-radius:10px;
  text-decoration:none!important;
  font-size:16px;
  line-height:1;
  font-weight:600;
  transition:.25s ease;
}
.ifh-btn-primary{
  color:#fff!important;
  background:linear-gradient(135deg,var(--ifh-accent),#C91932);
  box-shadow:0 20px 42px rgba(163,13,30,.22);
}
.ifh-btn-primary i{
  font-style:normal;
  margin-left:18px;
  transition:.25s ease;
}
.ifh-btn-primary:hover{
  transform:translateY(-3px);
  box-shadow:0 26px 58px rgba(163,13,30,.30);
}
.ifh-btn-primary:hover i{transform:translateX(4px)}
.ifh-btn-secondary{
  color:var(--ifh-navy)!important;
  background:rgba(255,249,240,.64);
  border:1px solid rgba(7,19,32,.22);
  box-shadow:0 14px 34px rgba(7,19,32,.05);
}
.ifh-btn-secondary:hover{
  transform:translateY(-3px);
  border-color:rgba(163,13,30,.45);
  color:var(--ifh-accent)!important;
}

.ifh-visual-wrap{
  grid-area:visual;
  position:relative;
  z-index:2;
  min-height:520px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ifh-orb{
  position:absolute;
  width:520px;
  height:520px;
  right:-10px;
  top:-10px;
  border-radius:50%;
  background:
    linear-gradient(135deg,rgba(7,19,32,.09),rgba(184,146,75,.18)),
    radial-gradient(circle at 65% 30%,rgba(255,255,255,.56),transparent 34%);
  z-index:-1;
}
.ifh-visual-frame{
  position:relative;
  width:100%;
  max-width:720px;
  overflow:hidden;
  border-radius:34px;
  background:#111822;
  box-shadow:0 46px 100px rgba(7,19,32,.26), 0 0 0 1px rgba(255,255,255,.34) inset;
  transform:perspective(1200px) rotateY(-4deg) rotateX(1.5deg);
}
.ifh-visual-frame img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
}
.ifh-visual-frame:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(255,249,240,.12),transparent 30%,rgba(163,13,30,.08));
}

.ifh-float{
  position:absolute;
  z-index:5;
  border-radius:16px;
  box-shadow:0 24px 54px rgba(7,19,32,.18);
}
.ifh-float-dark{
  top:32px;
  left:10%;
  width:230px;
  padding:20px 22px;
  color:#fff;
  background:#0B1622;
  border:1px solid rgba(255,255,255,.10);
}
.ifh-float-icon{
  float:left;
  width:44px;
  height:44px;
  margin-right:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  font-size:20px;
}
.ifh-float-icon svg,
.ifh-float-icon i{
  width:19px!important;
  height:19px!important;
  font-size:19px!important;
  color:#fff!important;
  fill:currentColor!important;
}
.ifh-float-icon img{
  width:22px;
  height:22px;
  object-fit:contain;
  display:block;
}
.ifh-float strong{
  display:block;
  font-size:15px;
  line-height:1.2;
  font-weight:700;
}
.ifh-float span{
  display:block;
  margin-top:6px;
  font-size:12px;
  line-height:1.4;
  opacity:.78;
}
.ifh-float-light{
  right:0;
  bottom:54px;
  width:150px;
  min-height:135px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:18px 16px;
  color:var(--ifh-navy);
  background:rgba(255,249,240,.93);
  border:1px solid rgba(184,146,75,.28);
}
.ifh-float-light strong{
  color:var(--ifh-accent);
  font-family:Georgia,"Times New Roman",serif;
  font-size:42px;
  font-weight:700;
}
.ifh-float-light span{
  margin-top:8px;
  font-size:13px;
  color:var(--ifh-muted);
  opacity:1;
}

.ifh-strip{
  grid-area:strip;
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-top:8px;
  padding:24px 34px;
  border-radius:28px;
  background:rgba(255,249,240,.80);
  border:1px solid rgba(184,146,75,.22);
  box-shadow:0 24px 74px rgba(7,19,32,.08);
  backdrop-filter:blur(12px);
}
.ifh-strip-item{
  display:flex;
  align-items:center;
  gap:18px;
  min-height:60px;
  padding:0 28px;
  border-right:1px solid rgba(7,19,32,.12);
}
.ifh-strip-item:last-child{border-right:0}
.ifh-strip-icon{
  flex:0 0 58px;
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:var(--ifh-accent);
  background:linear-gradient(145deg,rgba(163,13,30,.10),rgba(184,146,75,.12));
  border:1px solid rgba(184,146,75,.20);
  box-shadow:0 14px 30px rgba(7,19,32,.07), inset 0 1px 0 rgba(255,255,255,.8);
  font-style:normal;
  font-size:21px;
}
.ifh-strip-icon svg,
.ifh-strip-icon i{
  width:22px!important;
  height:22px!important;
  font-size:22px!important;
  color:var(--ifh-accent)!important;
  fill:currentColor!important;
}
.ifh-strip-icon img{
  width:24px;
  height:24px;
  object-fit:contain;
  display:block;
}
.ifh-strip-item strong{
  display:block;
  color:var(--ifh-navy);
  font-size:15px;
  line-height:1.25;
  font-weight:700;
}
.ifh-strip-item span{
  display:block;
  margin-top:5px;
  color:var(--ifh-muted);
  font-size:12px;
  line-height:1.45;
}

@media(max-width:1120px){
  .ifh-inner{
    grid-template-columns:1fr;
    grid-template-areas:"content" "visual" "strip";
    gap:36px;
  }
  .ifh-content{max-width:760px;text-align:left;}
  .ifh-visual-wrap{min-height:460px;}
  .ifh-strip{grid-template-columns:1fr;gap:14px;padding:22px;}
  .ifh-strip-item{border-right:0;border-bottom:1px solid rgba(7,19,32,.10);padding:0 10px 14px;}
  .ifh-strip-item:last-child{border-bottom:0;padding-bottom:0;}
}

@media(max-width:767px){
  .iptv-fr-hero{padding:38px 14px 34px;}
  .ifh-inner{gap:28px;}
  .ifh-eyebrow{font-size:10px;letter-spacing:.18em;margin-bottom:18px;}
  .ifh-eyebrow:after{width:38px;}
  .ifh-title{font-size:38px;line-height:1.08;letter-spacing:-.035em;}
  .ifh-mini-line{margin:20px 0;}
  .ifh-description{font-size:15px;line-height:1.65;}
  .ifh-actions{gap:12px;margin-top:24px;}
  .ifh-btn{width:100%;min-height:52px;border-radius:12px;font-size:15px;}
  .ifh-visual-wrap{min-height:auto;padding-top:10px;}
  .ifh-orb{width:330px;height:330px;right:-80px;top:0;}
  .ifh-visual-frame{border-radius:22px;transform:none;}
  .ifh-float-dark{display:none;}
  .ifh-float-light{right:12px;bottom:16px;width:108px;min-height:94px;border-radius:14px;}
  .ifh-float-light strong{font-size:30px;}
  .ifh-float-light span{font-size:10px;}
  .ifh-strip{border-radius:20px;padding:18px;margin-top:0;}
  .ifh-strip-item{gap:12px;min-height:52px;}
  .ifh-strip-icon{flex-basis:44px;width:44px;height:44px;font-size:18px;}
  .ifh-strip-icon svg,.ifh-strip-icon i{width:18px!important;height:18px!important;font-size:18px!important;}
  .ifh-strip-icon img{width:20px;height:20px;}
}

/* ==========================================================
   v1.2 Hero Fixes: transparent visual frame + centered icons
   Built in so Advanced Custom CSS is no longer needed.
========================================================== */
.iptv-fr-hero{
  overflow:hidden !important;
  padding-top:74px !important;
  padding-bottom:56px !important;
}

.iptv-fr-hero .ifh-inner{
  align-items:center !important;
  gap:42px 54px !important;
}

.iptv-fr-hero .ifh-visual-wrap{
  min-height:500px !important;
  overflow:visible !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

.iptv-fr-hero .ifh-visual-frame{
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  overflow:visible !important;
  transform:none !important;
  max-width:760px !important;
  width:100% !important;
}

.iptv-fr-hero .ifh-visual-frame:after{
  display:none !important;
}

.iptv-fr-hero .ifh-visual-frame img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  display:block !important;
  background:transparent !important;
  filter:drop-shadow(0 28px 45px rgba(7,19,32,.18)) !important;
}

.iptv-fr-hero .ifh-orb{
  width:540px !important;
  height:540px !important;
  right:-30px !important;
  top:10px !important;
  opacity:.75 !important;
}

.iptv-fr-hero .ifh-float-dark{
  top:34px !important;
  left:7% !important;
  width:220px !important;
  padding:18px 20px !important;
  border-radius:16px !important;
}

.iptv-fr-hero .ifh-float-icon{
  position:relative !important;
  float:left !important;
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  max-width:44px !important;
  max-height:44px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  margin:0 14px 0 0 !important;
  overflow:hidden !important;
  border-radius:50% !important;
  line-height:1 !important;
}

.iptv-fr-hero .ifh-float-icon svg,
.iptv-fr-hero .ifh-float-icon .e-font-icon-svg,
.iptv-fr-hero .ifh-float-icon i{
  position:static !important;
  display:block !important;
  width:20px !important;
  height:20px !important;
  min-width:20px !important;
  min-height:20px !important;
  max-width:20px !important;
  max-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  line-height:1 !important;
  color:#ffffff !important;
  fill:currentColor !important;
}

.iptv-fr-hero .ifh-float-dark strong{
  margin-top:1px !important;
  line-height:1.25 !important;
}

.iptv-fr-hero .ifh-float-dark span{
  line-height:1.45 !important;
}

.iptv-fr-hero .ifh-float-light{
  right:28px !important;
  bottom:58px !important;
  width:145px !important;
  min-height:125px !important;
  border-radius:18px !important;
  padding:18px 14px !important;
}

.iptv-fr-hero .ifh-float-light strong{
  font-size:42px !important;
  line-height:1 !important;
}

.iptv-fr-hero .ifh-float-light span{
  font-size:13px !important;
  line-height:1.35 !important;
}

.iptv-fr-hero .ifh-strip{
  margin-top:4px !important;
  padding:22px 32px !important;
  border-radius:26px !important;
  align-items:center !important;
}

.iptv-fr-hero .ifh-strip-item{
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  min-height:64px !important;
  padding:0 28px !important;
}

.iptv-fr-hero .ifh-strip-icon{
  position:relative !important;
  flex:0 0 54px !important;
  width:54px !important;
  height:54px !important;
  min-width:54px !important;
  min-height:54px !important;
  max-width:54px !important;
  max-height:54px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  border-radius:50% !important;
  line-height:1 !important;
}

.iptv-fr-hero .ifh-strip-icon svg,
.iptv-fr-hero .ifh-strip-icon .e-font-icon-svg,
.iptv-fr-hero .ifh-strip-icon i{
  position:static !important;
  display:block !important;
  width:20px !important;
  height:20px !important;
  min-width:20px !important;
  min-height:20px !important;
  max-width:20px !important;
  max-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  transform:none !important;
  line-height:1 !important;
  color:var(--ifh-accent) !important;
  fill:currentColor !important;
}

.iptv-fr-hero .ifh-strip-icon img{
  width:22px !important;
  height:22px !important;
  object-fit:contain !important;
  display:block !important;
}

.iptv-fr-hero .ifh-strip-item strong{
  font-size:16px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}

.iptv-fr-hero .ifh-strip-item span{
  font-size:13px !important;
  line-height:1.45 !important;
  font-weight:400 !important;
}

@media(max-width:1120px){
  .iptv-fr-hero .ifh-inner{
    grid-template-columns:1fr !important;
    grid-template-areas:"content" "visual" "strip" !important;
    gap:34px !important;
  }

  .iptv-fr-hero .ifh-visual-wrap{
    min-height:auto !important;
  }

  .iptv-fr-hero .ifh-visual-frame{
    max-width:720px !important;
    margin:0 auto !important;
  }

  .iptv-fr-hero .ifh-float-dark{
    left:12% !important;
    top:10px !important;
  }

  .iptv-fr-hero .ifh-float-light{
    right:10% !important;
    bottom:24px !important;
  }

  .iptv-fr-hero .ifh-strip{
    grid-template-columns:1fr !important;
    gap:0 !important;
  }

  .iptv-fr-hero .ifh-strip-item{
    border-right:0 !important;
    border-bottom:1px solid rgba(7,19,32,.10) !important;
    padding:14px 6px !important;
  }

  .iptv-fr-hero .ifh-strip-item:last-child{
    border-bottom:0 !important;
  }
}

@media(max-width:767px){
  .iptv-fr-hero{
    padding:38px 14px 34px !important;
  }

  .iptv-fr-hero .ifh-inner{
    gap:26px !important;
  }

  .iptv-fr-hero .ifh-title{
    font-size:38px;
    line-height:1.08;
  }

  .iptv-fr-hero .ifh-description{
    font-size:15px;
    line-height:1.65;
  }

  .iptv-fr-hero .ifh-actions{
    gap:12px !important;
    margin-top:24px !important;
  }

  .iptv-fr-hero .ifh-btn{
    width:100% !important;
    min-height:52px !important;
    border-radius:12px !important;
    font-size:15px !important;
  }

  .iptv-fr-hero .ifh-visual-frame{
    max-width:100% !important;
  }

  .iptv-fr-hero .ifh-visual-frame img{
    width:115% !important;
    max-width:115% !important;
    margin-left:-7% !important;
  }

  .iptv-fr-hero .ifh-orb{
    width:320px !important;
    height:320px !important;
    right:-90px !important;
    top:10px !important;
  }

  .iptv-fr-hero .ifh-float-dark{
    display:none !important;
  }

  .iptv-fr-hero .ifh-float-light{
    right:8px !important;
    bottom:10px !important;
    width:96px !important;
    min-height:82px !important;
    padding:12px 10px !important;
    border-radius:14px !important;
  }

  .iptv-fr-hero .ifh-float-light strong{
    font-size:28px !important;
  }

  .iptv-fr-hero .ifh-float-light span{
    font-size:10px !important;
  }

  .iptv-fr-hero .ifh-strip{
    padding:16px !important;
    border-radius:20px !important;
  }

  .iptv-fr-hero .ifh-strip-item{
    gap:12px !important;
    min-height:54px !important;
    padding:12px 0 !important;
  }

  .iptv-fr-hero .ifh-strip-icon{
    flex:0 0 42px !important;
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    max-width:42px !important;
    max-height:42px !important;
  }

  .iptv-fr-hero .ifh-strip-icon svg,
  .iptv-fr-hero .ifh-strip-icon .e-font-icon-svg,
  .iptv-fr-hero .ifh-strip-icon i{
    width:17px !important;
    height:17px !important;
    min-width:17px !important;
    min-height:17px !important;
    max-width:17px !important;
    max-height:17px !important;
  }

  .iptv-fr-hero .ifh-strip-item strong{
    font-size:14px !important;
  }

  .iptv-fr-hero .ifh-strip-item span{
    font-size:12px !important;
  }
}

/* v1.16.4: stronger responsive hero fix for phone/tablet frames */
.iptv-fr-hero,
.iptv-fr-hero *{
  box-sizing:border-box;
}
.iptv-fr-hero{
  overflow:hidden !important;
}
.iptv-fr-hero .ifh-inner,
.iptv-fr-hero .ifh-content,
.iptv-fr-hero .ifh-visual-wrap{
  min-width:0 !important;
}
@media(max-width:1280px){
  .iptv-fr-hero{
    padding:58px 18px 50px !important;
  }
  .iptv-fr-hero .ifh-inner{
    max-width:1120px !important;
    gap:34px 38px !important;
  }
  .iptv-fr-hero .ifh-title{
    font-size:clamp(46px,4.7vw,58px) !important;
    line-height:1.06 !important;
  }
  .iptv-fr-hero .ifh-description{
    font-size:16px !important;
    line-height:1.7 !important;
  }
  .iptv-fr-hero .ifh-visual-frame{
    transform:none !important;
    max-width:620px !important;
  }
}
@media(max-width:1120px){
  .iptv-fr-hero{
    padding:46px 16px 42px !important;
  }
  .iptv-fr-hero .ifh-inner{
    display:grid !important;
    grid-template-columns:1fr !important;
    grid-template-areas:"content" "visual" "strip" !important;
    max-width:760px !important;
    gap:28px !important;
  }
  .iptv-fr-hero .ifh-content{
    max-width:100% !important;
    text-align:left !important;
  }
  .iptv-fr-hero .ifh-title{
    font-size:clamp(42px,7.2vw,54px) !important;
    max-width:720px !important;
  }
  .iptv-fr-hero .ifh-visual-wrap{
    min-height:auto !important;
    width:100% !important;
  }
  .iptv-fr-hero .ifh-visual-frame{
    width:100% !important;
    max-width:680px !important;
    margin:0 auto !important;
    border-radius:26px !important;
  }
  .iptv-fr-hero .ifh-visual-frame img{
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 !important;
    object-fit:cover !important;
  }
}
@media(max-width:767px){
  .iptv-fr-hero{
    padding:34px 14px 30px !important;
  }
  .iptv-fr-hero .ifh-inner{
    max-width:100% !important;
    gap:22px !important;
  }
  .iptv-fr-hero .ifh-eyebrow{
    margin-bottom:20px !important;
    font-size:10px !important;
    letter-spacing:.22em !important;
    line-height:1.25 !important;
    max-width:100% !important;
  }
  .iptv-fr-hero .ifh-eyebrow:after{
    width:42px !important;
  }
  .iptv-fr-hero .ifh-title{
    font-size:clamp(38px,11vw,46px) !important;
    line-height:1.04 !important;
    letter-spacing:-.055em !important;
  }
  .iptv-fr-hero .ifh-description{
    font-size:14px !important;
    line-height:1.62 !important;
  }
  .iptv-fr-hero .ifh-actions{
    margin-top:22px !important;
  }
  .iptv-fr-hero .ifh-btn{
    width:100% !important;
    min-height:50px !important;
    padding:0 20px !important;
    border-radius:12px !important;
  }
  .iptv-fr-hero .ifh-visual-frame{
    border-radius:20px !important;
    box-shadow:0 24px 58px rgba(7,19,32,.18) !important;
  }
  .iptv-fr-hero .ifh-visual-frame img{
    aspect-ratio:16/11 !important;
  }
  .iptv-fr-hero .ifh-orb{
    opacity:.45 !important;
  }
  .iptv-fr-hero .ifh-float-dark{
    display:none !important;
  }
  .iptv-fr-hero .ifh-float-light{
    right:10px !important;
    bottom:10px !important;
    width:88px !important;
    min-height:72px !important;
    padding:10px 8px !important;
  }
  .iptv-fr-hero .ifh-float-light strong{
    font-size:24px !important;
  }
  .iptv-fr-hero .ifh-float-light span{
    font-size:9px !important;
  }
}
@media(max-width:420px){
  .iptv-fr-hero .ifh-title{
    font-size:clamp(34px,10.8vw,40px) !important;
  }
  .iptv-fr-hero .ifh-visual-frame img{
    aspect-ratio:4/3 !important;
  }
  .iptv-fr-hero .ifh-strip{
    margin-top:2px !important;
  }
}
