/* Editorial visual refresh: contrast, pace, and stronger image direction. */
:root{--red:#e10600;--red-deep:#a00000;--cream:#f5f1ea;--charcoal:#17171a;--soft-black:#0b0b0d}
body,.hero h1,.section-title,.page-hero h1,.course-tile h3,.course-detail h2,.admissions-panel h2,.feature-card h3,.info-point h3{font-family:'Poppins',Arial,sans-serif}
footer h3{margin-bottom:1rem}footer p{line-height:2.05;margin-bottom:0}
@media(min-width:1400px){.container{max-width:min(94vw,1560px)}}
body{background:var(--cream);letter-spacing:.005em}
.nav-top{background:rgba(0,0,0,1);backdrop-filter:blur(14px);box-shadow:0 8px 28px rgba(0,0,0,.18)}
.navbar{border-bottom:1px solid rgba(255,255,255,.12)}
.hero{min-height:calc(100vh - 80px);position:relative;isolation:isolate;overflow:hidden;background-position:center}
.hero:before{display:none}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.hero:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.84) 5%,rgba(0,0,0,.5) 48%,rgba(0,0,0,.18))}.hero .container{position:relative;z-index:2}
.hero .container:after{content:'';position:absolute;width:clamp(70px,10vw,150px);height:7px;background:var(--red);top:-.001rem;left:12px}
.hero h1{max-width:760px;letter-spacing:-.045em;text-wrap:balance}
.hero p{font-size:1.1rem;line-height:1.75}.hero .hero-summary{max-width:600px;margin-bottom:0}
.section{position:relative;padding:4.5rem 0;background:#fff}
.section.bg-light{background:var(--cream)!important}
.section.bg-light:before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(225,6,0,.055),transparent 42%);pointer-events:none}
.section>.container{position:relative}
.section-title{letter-spacing:-.045em;text-wrap:balance}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem}
.eyebrow:before{content:'';display:inline-block;width:22px;height:2px;background:currentColor}
.red-rule{width:74px;height:5px;margin:1.8rem 0}
.image-frame{padding:12px 12px 0 0}
.image-frame:before{content:'';position:absolute;inset:0 12% 11% 0;border:1px solid var(--red);transform:translate(-12px,12px);z-index:0}
.image-frame img{position:relative;z-index:1;min-height:440px;filter:contrast(1.05) saturate(1.08)}
.image-frame:after{height:10px;width:43%;z-index:2}
.feature-card{background:#fff;border:0;border-top:3px solid transparent;box-shadow:0 14px 32px rgba(12,12,14,.08);padding:2.25rem 2rem}
.feature-card:hover{border-top-color:var(--red);box-shadow:0 22px 45px rgba(12,12,14,.15)}
.feature-card h3{font-size:1.35rem}
.course-tile{height:465px;border-radius:0;box-shadow:0 16px 28px rgba(0,0,0,.16)}
.course-tile:before{content:'';position:absolute;z-index:2;top:1.2rem;right:1.2rem;width:42px;height:42px;border:1px solid rgba(255,255,255,.8);border-radius:50%;transition:.3s}
.course-tile:after{background:linear-gradient(0deg,rgba(0,0,0,.96),rgba(0,0,0,.05) 78%)}
.course-tile:hover:before{background:var(--red);border-color:var(--red)}
.course-tile .tile-content{left:2rem;right:2rem;bottom:2rem}
.course-tile h3{font-size:1.75rem;letter-spacing:-.035em}
.dark-section{background:linear-gradient(130deg,#111116,#050505)!important;overflow:hidden}
.dark-section:before{content:'';position:absolute;width:42vw;height:42vw;border:1px solid rgba(225,6,0,.55);border-radius:50%;right:-15vw;top:-23vw}
.dark-section .section-title{max-width:600px}
.number{font-size:5rem;color:var(--red);opacity:.85}
.admissions-panel{background:linear-gradient(125deg,var(--red),#9e0000);box-shadow:0 20px 42px rgba(166,0,0,.27);position:relative;overflow:hidden}
.admissions-panel:after{content:'FFI';position:absolute;right:2rem;bottom:-4.2rem;font:italic 11rem/1 'Poppins',Arial,sans-serif;color:rgba(255,255,255,.12)}
.admissions-panel>*{position:relative;z-index:1}
.admissions-wrap{background:#fff;margin:0}
.admissions-cta{width:100%;padding:3.5rem 0;border:0;border-radius:0;box-shadow:none}
.admissions-cta:after{content:'FFI';right:2.4rem;bottom:-3.6rem;color:rgba(255,255,255,.12);font-size:10rem}
.admissions-cta .eyebrow{color:#fff}
.admissions-cta h2{font-size:clamp(2.15rem,3.8vw,4rem);line-height:1.02;letter-spacing:-.05em;margin:.7rem 0 1rem}
.admissions-cta p{max-width:550px;color:rgba(255,255,255,.88);font-size:1.05rem}
.cta-meta{display:flex;gap:1.5rem;margin-bottom:1.35rem;padding-bottom:1.2rem;border-bottom:1px solid rgba(255,255,255,.36);color:#fff;font-size:.79rem;line-height:1.4;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.cta-meta span+span{padding-left:1.5rem;border-left:1px solid rgba(255,255,255,.36)}
.page-hero{min-height:430px;display:flex;align-items:flex-end;padding-bottom:5.5rem}
.course-detail{background:#fff}
.course-detail:nth-of-type(even){background:var(--cream)!important}
.course-detail img{box-shadow:16px 16px 0 var(--red);height:340px}
.list-check li:before{font-size:1.1em}
footer{border-top:5px solid var(--red)}
.footer-link-list{display:flex;flex-direction:column;gap:.75rem}.footer-link-list a{line-height:1.35}.footer-connect{max-width:480px}.footer-connect>.eyebrow{margin-bottom:1rem}.footer-social{display:flex;gap:.55rem;margin-bottom:1.75rem}.social.footer-social a{width:42px;height:42px;margin:0;border-color:#4d4d51;transition:background .2s,border-color .2s,color .2s}.social.footer-social a:hover{background:var(--red);border-color:var(--red);color:#fff}.footer-utility{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #303034;border-bottom:1px solid #303034}.footer-utility a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 0;color:#dedee0;font-size:.82rem;line-height:1.35}.footer-utility a:nth-child(odd){padding-right:1rem;border-right:1px solid #303034}.footer-utility a:nth-child(even){padding-left:1rem}.footer-utility a:nth-child(-n+2){border-bottom:1px solid #303034}.footer-utility a i{color:var(--red);font-size:.8rem}@media(max-width:575px){.footer-utility{grid-template-columns:1fr}.footer-utility a,.footer-utility a:nth-child(odd),.footer-utility a:nth-child(even){padding:.85rem 0;border-right:0}.footer-utility a:not(:last-child){border-bottom:1px solid #303034}}
@media(max-width:991px){.hero{min-height:620px}.hero .container:after{top:-1rem}.section{padding:5rem 0}.image-frame img{min-height:330px}.course-tile{height:370px}.course-detail img{height:270px;box-shadow:10px 10px 0 var(--red)}.admissions-panel{padding:2.25rem 1.5rem}.admissions-cta{padding:2.25rem 1.5rem}.cta-meta{gap:1rem}.cta-meta span+span{padding-left:1rem}.page-hero{min-height:340px;padding-bottom:3.5rem}}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}
.hero{background-image:linear-gradient(90deg,rgba(0,0,0,.88) 5%,rgba(0,0,0,.56) 48%,rgba(0,0,0,.13)),url('../img/ramp-walk2.webp')}
.page-hero{background-image:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.35)),url('../img/institute3.webp');background-position:center;background-size:cover}.page-hero.admissions-hero{background-image:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.35)),url('../img/admissionhead.webp')}.page-hero.contact-hero{background-image:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.35)),url('../img/ffi-header.webp')}

/* Homepage feature imagery: a refined red frame and subtle lift. */
body:has(.hero) img[src="img/institute2.webp"],body:has(.hero) img[src="img/model-walk.webp"]{outline:1px solid var(--red);outline-offset:-20px;box-shadow:16px 16px 0 rgba(192,192,192,.32),0 18px 36px rgba(12,12,14,.14);transition:transform .35s ease,box-shadow .35s ease}
body:has(.hero) img[src="img/institute2.webp"]:hover,body:has(.hero) img[src="img/model-walk.webp"]:hover{transform:translate(-5px,-5px);box-shadow:22px 22px 0 rgba(192,192,192,.42),0 24px 42px rgba(12,12,14,.18)}
@media(max-width:991px){body:has(.hero) img[src="img/institute2.webp"],body:has(.hero) img[src="img/model-walk.webp"]{outline-offset:-14px;box-shadow:10px 10px 0 rgba(225,6,0,.12),0 14px 28px rgba(12,12,14,.12)}}

/* Site-wide WhatsApp contact button. */
.whatsapp-float {
  position: fixed;
  left: max(20px, env(safe-area-inset-left));
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 1030;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #128c46;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .24);
}
.whatsapp-float:hover,
.whatsapp-float:focus-visible {
  background: #096b33;
  color: #fff;
}
.whatsapp-float:focus-visible {
  outline: 3px solid #111;
  outline-offset: 3px;
}
@media print {
  .whatsapp-float { display: none; }
}
