/* ---------- Hero Wrapper ---------- */
/* =========================================
   INSURANCE HERO
========================================= */
.lifeHero {
    position: relative;
    overflow: hidden;
    background: #000;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: clamp(60px, 8vw, 50px) 0;
}
.lifeHero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 90% 82%, rgba(225, 0, 20, .9), transparent 28%), linear-gradient(90deg, #000 55%, #190001 100%);
}
.lifeHeroContainer {
    position: relative;
    z-index: 2;
    
    /* padding-inline: clamp(20px, 4vw, 60px); */
    padding-top: 0%;
    box-sizing: border-box;
    margin: auto;
    text-align: left;
    display: grid;
    grid-template-columns: minmax(420px, 1fr) minmax(360px, 560px);
    align-items: center;
    gap: clamp(40px, 5vw, 80px);
      width: 100%;
    min-height: 700px; 
    display: grid;
    grid-template-columns: 38% 62%;
    align-items: center; 
}
.insuranceHero {
    position: relative;
    width: 100%;
    min-height: 100vh;
    height: 100vh;
    padding-top: 80px;

    display: flex;
    align-items: center;

    overflow: hidden;

    background-image: url("/assets/images/life insurance.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

/* Overlay */
.insuranceHeroOverlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.25);
}

/* Content container */
.insuranceHeroContainer {
    position: relative;
    z-index: 2;

    width: 90%;
    max-width: 1400px;
    margin: 0 auto;
}

/* Content */
.insuranceHeroContent {
    max-width: 650px;
}

/* Title */
.insuranceHeroTitle1 {
    margin: 0 0 20px;
    padding: 0;

    font-size: 72px;
    line-height: 1.1;
    font-weight: 700;

    color: #fff;
    text-transform: uppercase;
}

.insuranceHeroTitle1 span {
    color: #fff;
}

/* Description */
.insuranceHeroDesc {
    margin: 0;

    font-size: 18px;
    line-height: 1.5;
    color: #fff;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 992px) {

    .insuranceHero {
        min-height: 100vh;
        height: 100vh;
        padding-top: 70px;

        background-image: url("/assets/images/life insurance.jpg");
        background-size: cover;
        background-position: center center;
    }

    .insuranceHeroTitle1 {
        font-size: 52px;
    }

    .insuranceHeroDesc {
        font-size: 18px;
    }
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 768px) {

    .insuranceHero {
        min-height: 100vh;
        height: 100vh;
        padding-top: 65px;

        display: flex;
        align-items: center;

        background-image: url("/assets/images/life insurance.jpg") !important;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
    }

    .insuranceHeroOverlay {
        z-index: 1;
        background: rgba(0, 0, 0, 0.25);
    }

    .insuranceHeroContainer {
        width: 90%;
        margin: 0 auto;
        z-index: 2;
    }

    .insuranceHeroContent {
        max-width: 100%;
        text-align: center;
    }

    .insuranceHeroTitle1 {
        font-size: 40px;
        line-height: 1.1;
    }

    .insuranceHeroDesc {
        font-size: 16px;
        line-height: 1.6;
    }
}


/* =========================================
   SMALL MOBILE
========================================= */

@media (max-width: 480px) {

    .insuranceHero {
        height: 100vh;
        min-height: 100vh;
        padding-top: 60px;

        background-image: url("/assets/images/life-insurancemob.jpg") !important;
        background-size: cover !important;
        background-position: center center !important;
    }

    .insuranceHeroTitle1 {
        font-size: 32px;
    }

    .insuranceHeroDesc {
        font-size: 15px;
    }
}



/* ==========================================================
   bank
========================================================== */



/* =========================================
   BANKING HERO
========================================= */

.bankingHero {
    position: relative;
    width: 100%;
    min-height: 100vh;
    height: 100vh;

    padding-top: 80px;

    display: flex;
    align-items: center;

    overflow: hidden;

    background-image: url("/assets/images/banking&finance.jpg");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}


/* =========================================
   OVERLAY
========================================= */

.bankingHeroOverlay {
    position: absolute;
    inset: 0;
    z-index: 1;

    background: rgba(0, 0, 0, 0.25);
}


/* =========================================
   CONTAINER
========================================= */

.bankingHeroContainer {
    position: relative;
    z-index: 2;

    width: 90%;
    max-width: 1400px;

    margin: 0 auto;
}


/* =========================================
   CONTENT
========================================= */

.bankingHeroContent {
    max-width: 650px;
}


/* =========================================
   TITLE
========================================= */

.bankingHeroTitle {
    margin: 0 0 20px;
    padding: 0;

    font-size: 72px;
    line-height: 1.1;
    font-weight: 700;

    color: #fff;
    text-transform: uppercase;
}

.bankingHeroTitle span {
    color: #fff;
}


/* =========================================
   DESCRIPTION
========================================= */

.bankingHeroDesc {
    margin: 0;

    font-size: 18px;
    line-height: 1.5;

    color: #fff;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 992px) {

    .bankingHero {
        min-height: 100vh;
        height: 100vh;

        padding-top: 70px;

        background-image: url("/assets/images/banking&finance.jpg");
        background-size: cover;
        background-position: center center;
    }

    .bankingHeroTitle {
        font-size: 52px;
    }

    .bankingHeroDesc {
        font-size: 18px;
    }
}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 768px) {

    .bankingHero {
        min-height: 100vh;
        height: 100vh;

        padding-top: 65px;

        display: flex;
        align-items: center;

        background-image: url("/assets/images/banking&finance.jpg") !important;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
    }

    .bankingHeroOverlay {
        z-index: 1;

        background: rgba(0, 0, 0, 0.25);
    }

    .bankingHeroContainer {
        width: 90%;
        margin: 0 auto;

        z-index: 2;
    }

    .bankingHeroContent {
        max-width: 100%;

        text-align: center;
    }

    .bankingHeroTitle {
        font-size: 40px;
        line-height: 1.1;
    }

    .bankingHeroDesc {
        font-size: 16px;
        line-height: 1.6;
    }
}


/* =========================================
   SMALL MOBILE
========================================= */

@media (max-width: 480px) {

    .bankingHero {
        height: 100vh;
        min-height: 100vh;

        padding-top: 60px;

        background-image: url("/assets/images/banking&finance-1.jpg") !important;
        background-size: cover !important;
        background-position: center center !important;
    }

    .bankingHeroTitle {
        font-size: 32px;
    }

    .bankingHeroDesc {
        font-size: 15px;
    }
}








/* ==========================================================
   LEFT CONTENT
========================================================== */

.lifeHeroTag p {
    margin: 0 0 20px;
    color: #d8d3a3;
    font-size: clamp(14px, 1.2vw, 18px);
    letter-spacing: 2px;
    font-weight: 600;
    text-transform: uppercase;
}

.lifeHeroTitle {
    line-height: 1.02;
    font-weight: 400;    
    margin-bottom: 2%;
}

.lifeHeroFill {
    display: block;
    color: #fff;
    font-weight: 800;
    font-size: clamp(52px, 7vw, 96px);
}

.lifeHeroStroke {
    display: block;
    color: transparent;
    font-weight: 800;
    font-size: clamp(60px, 8vw, 120px);
    -webkit-text-stroke: 2px #fff;
    font-family: monospace;
}

.lifeHeroDesc {
    margin: 24px 0 40px;
    max-width: 650px;
    color: #d7d7d7;
    font-size: clamp(16px, 1.3vw, 18px);
    line-height: 1.7;
}

/* ==========================================================
   STATS
========================================================== */

.lifeHeroStats {
    display: grid;
    grid-template-columns: repeat(3, minmax(120px, 1fr));
    gap: 30px;
}

.lifeHeroDivider {
    display: none;
}

.lifeHeroStat h2 {
    color: #fff;
    font-size: clamp(34px, 8vw, 50px);
}

.lifeHeroStat p {
    color: #d4d4d4;
    font-size: clamp(18px, 1.1vw, 17px);
}

/* ==========================================================
   RIGHT GRAPHIC
========================================================== */

.lifeHeroGraphic {
    position: relative;
    width: min(86%, 560px);
    aspect-ratio: 1;
    margin: auto;
      z-index: 10;
}

.lifeHeroGlow {
    position: absolute; 
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(215, 0, 20, .55),
        rgba(120, 0, 10, .28) 55%,
        transparent 78%
    );
}

.lifeHeroOuterCircle {
    position: absolute;
    left: 10%;
    top: 15%;
    width: 80%;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px dashed rgba(255, 0, 0, .35);
}

.lifeHeroInnerCircle {
    position: absolute;
    left: 21%;
    top: 26%;
    width: 58%;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px solid rgba(255, 0, 0, .45);
}

.lifeHeroCenter {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 25%;
  z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;

    transform: translate(-50%, -50%);
}

.lifeHeroCenter img {
    width: 100%;
    height: auto;
}

/* ==========================================================
   FLOATING CARDS
========================================================== */

.lifeHeroCard {
    position: absolute; 
    padding: clamp(14px, 2vw, 24px);
    background: rgba(38, 38, 42, .34);
    border: 1px solid rgba(255, 65, 65, .28);
    border-radius: 16px;
    backdrop-filter: blur(18px);
}

.lifeHeroCardTop {
    left: 0;
    top: 4%;
}

.lifeHeroCardBottom {
    right: 0;
    bottom: 4%;
}

.lifeHeroCard small {
    display: block;
    color: #b8b8b8;
    font-size: clamp(9px, .9vw, 14px);
    letter-spacing: 2px;
}

.lifeHeroCard h3 {
    color: #fff;
    font-size: clamp(18px, 2vw, 30px);
    margin-bottom: 2%;
}

/* ==========================================================
   CHART ELEMENTS
========================================================== */

.lifeHeroBars,
.lifeHeroDots {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-top: 16px;
}

.lifeHeroBars span {
    width: clamp(8px, 1.5vw, 22px);
    background: #b7191f;
}

.lifeHeroBars span:nth-child(1) { height: 18px; }
.lifeHeroBars span:nth-child(2) { height: 48px; }
.lifeHeroBars span:nth-child(3) { height: 38px; }
.lifeHeroBars span:nth-child(4) { height: 30px; }
.lifeHeroBars span:nth-child(5) { height: 66px; }

.lifeHeroDots span {
    width: 10px;
    height: 10px;
    background: #9f1a1a;
    border-radius: 50%;
}

.lifeHeroDots .active {
    background: #fff;
}

/* ==========================================================
   TABLET
========================================================== */

@media (max-width: 1024px) {

    .lifeHero {
        min-height: auto;
    }

    .lifeHeroContainer {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .lifeHeroTag,
    .lifeHeroStats {
        justify-content: start;
        margin-top: 2%;
    }

    .lifeHeroDesc {
        margin-inline: auto;
        margin: 0px;
        margin-bottom: 2%;
    }

    .lifeHeroGraphic {
        margin-top: 20px;
    }
    .lifeHeroTag p {
    margin: 0 0 20px;
    color: #d8d3a3;
    font-size: clamp(17px, 1.2vw, 18px);
    letter-spacing: 2px;
}

/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 640px) {

    .lifeHeroContainer {
        width: 100%;
    }

    .lifeHeroStats {
        grid-template-columns: 1fr;
    }

    .lifeHeroGraphic {
        width: min(100%, 300px);
    }

    .lifeHeroStroke {
        -webkit-text-stroke: 1px #fff;
    }

    .lifeHeroCard {
        width: 45%;
        padding: 12px;
    }

}

  /* HERO END */

  /* OVERVIEW */
  .overview {
    display: flex;
    flex-direction: column;
  }

  .overview .overview_title {
    color: #D61F29;
    padding: 25px;
    font-size: 1.5em;
    font-weight: 600;
  }

  .overview .overview_body {
    padding: 25px;
    font-size: 1.3em;
    line-height: 2.5rem;
    font-weight: 300;
  }

  /* OVERVIEW END */

  /* ECOSYSTEM */
  .ecosystem {
    display: flex;
    flex-direction: column;
  }

  .ecosystem .ecosystem_title {
    color: #D61F29;
    padding: 25px;
    font-size: 1.5em;
    font-weight: 600;
  }

  .ecosystem .ecosystem_title .watermark {
    display: none;
  }

  .ecosystem .ecosystem_body {
    display: flex;
    flex-direction: column;
  }

  .ecosystem .ecosystem_body .ecosystem_item {
    display: flex;
    flex-direction: column;
  }

  .ecosystem_item {
    border-bottom: 1px solid #707070;
  }

  .ecosystem_item:last-child {
    border-bottom: none;
  }

  .ecosystem_item a:hover {
    color: #D61F29;
  }

  .ecosystem_item a {
    width: fit-content;
    font-size: 2em;
    color: black;
    text-decoration: none;
    background: url(../icons/jump_arrow.svg);
    background-repeat: no-repeat;
    background-position: 95% 75%;
    background-size: 25px;
    padding: 25px 50px 0 25px;
  }

  .ecosystem_item span {
    font-size: 1.3em;
    line-height: 2.5rem;
    font-weight: 300;
    padding: 0 25px 25px;
  }

  /* ECOSYSTEM END */

  @media only screen and (min-width: 787px) {

    /* HERO */
    .hero {
      /*      background: linear-gradient(rgba(0, 0, 0, 0.60), rgba(0, 0, 0, 0.60)),url(../hero/bfsi-bg.jpg);
      background-size: cover;
      background-repeat: no-repeat;*/
      width: 100%;
    }

    .breakcrumb {
      padding-left: 100px;
    }

    /* HERO END */

    /* OVERVIEW */
    .overview {
      flex-direction: row;
      padding: 25px;
      gap: 10%;
    }

    .overview .overview_title {
      width: 300px;
      padding: 0;
    }

    .overview .overview_body {
      width: 65%;
      padding: 0;
    }

    /* OVERVIEW END */

    /* ECOSYSTEM */
    .ecosystem {
      flex-direction: row;
      padding: 25px;
      gap: 10%;
    }

    .ecosystem .ecosystem_title {
      width: 300px;
      padding: 0;
      margin: 0 0 100px 0;
    }

    .ecosystem .ecosystem_title .sticky_title {
      display: flex;
      flex-direction: column;
      position: sticky;
      top: 0;
    }

    .ecosystem_item a {
      padding: 25px 50px 0 0;
    }

    .ecosystem .ecosystem_body {
      width: 65%;
      padding: 0;
    }

    .ecosystem_item span {
      padding: 0 25px 25px 0;
    }

    .ecosystem .ecosystem_title .ecosystem_leftRail {
      /*      background: url(../images/bfsi-leftRail.jpg);
      background-size: cover;*/
      width: 300px;
      height: 400px;
      border-radius: 25px;
      border: 6px solid #efefef;
      margin: 50px 0;
    }

    .ecosystem .ecosystem_title .watermark {
      display: flex;
      width: 300px;
    }

    /* ECOSYSTEM END */

  }}

/*1. Floating Cards*/
  .lifeHeroCardTop{
    animation: cardFloatTop 5s ease-in-out infinite;
}

.lifeHeroCardBottom{
    animation: cardFloatBottom 5s ease-in-out infinite;
}

@keyframes cardFloatTop{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(-15px);
    }
}

@keyframes cardFloatBottom{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(15px);
    }
}
/*3. Rotating Circles*/
.lifeHeroOuterCircle{

    animation:rotateOuter 30s linear infinite;

    transform-origin:center;

}

.lifeHeroInnerCircle{

    animation:rotateInner 22s linear infinite reverse;

    transform-origin:center;

}

@keyframes rotateOuter{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(360deg);
    }

}

@keyframes rotateInner{

    from{
        transform:rotate(0deg);
    }

    to{
        transform:rotate(-360deg);
    }

}

 .lifeOverview{

    width:min(1400px,92%);
    margin:auto;
    padding:60px 0;

}

/*=========================
Overview
=========================*/

.overviewRow{
    display:flex;
    grid-template-columns:340px 1fr;
    gap:100px;
    padding-bottom:50px; 
}

.sectionTag{
display: flex;
    align-items: center;
    gap: 18px;
    font-size: 15px;
    letter-spacing: 2px;
    font-weight: 700;
    margin-bottom: 18px;

}

.sectionTag span{

    width:34px;
    height:1px;

    background:#000;

}

.overviewLeft-1 h2{
font-size: 20px;
    line-height: 1.1; 
    color: #111;
    margin-bottom: 28px;

}
.overviewLeft h2{
font-size: 35px;
    line-height: 1.1;
    font-weight: 700;
    color: #111; 
}
.overviewLeft h2 span{
color: #d80d0d;
}

.overviewRight{

    max-width:760px;

}

.overviewRight p{
flex: 1;
    font-size: 18px;
    line-height: 1.6;
    color: #222;
    max-width: 650px;

}

/*=========================
Top
=========================*/

.ecosystemTop{

    display:grid;

    grid-template-columns:420px 1fr;

    gap:60px;

    padding:70px 0 45px;

}

.ecosystemTitle h2{

    font-size:52px;

    line-height:1.15;

    font-weight:700;

}

.ecosystemTitle span{

    color:#d61f29;

}

.ecosystemIntro{

    font-size:28px;

    line-height:1.6;

    color:#222;

}

/*=========================
Grid
=========================*/

.ecosystemGrid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    border-top:1px solid #ececec;

    border-left:1px solid #ececec;

}

.ecoCard{

    min-height:220px;

    padding:40px 34px;

    border-right:1px solid #ececec;

    border-bottom:1px solid #ececec;

}

.ecoCard h3{

    color:#d61f29;

    font-size:36px;

    margin-bottom:22px;

    font-weight:700;

}

.ecoCard p{

    color:#666;

    font-size:22px;

    line-height:1.8;

}

.empty{

    background:#fff;

}

/*=========================
Responsive
=========================*/

@media(max-width:1200px){

.overviewRow,
.ecosystemTop{

grid-template-columns:1fr;

gap:35px;

}

.overviewRight{

max-width:100%;

}

.ecosystemGrid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:768px){

.lifeOverview{

padding:60px 0;

}

.overviewLeft h2{

font-size:28px;

}

.overviewRight p{

font-size:18px;

}

.ecosystemTitle h2{

font-size:34px;

}

.ecosystemIntro{

font-size:18px;

}

.ecosystemGrid{

grid-template-columns:1fr;

}

.ecoCard{

min-height:auto;

padding:30px;

}

.ecoCard h3{

font-size:28px;

}

.ecoCard p{

font-size:17px;

}

}

.lifeEcoSection{
    width: 100%;
    padding-top: 3%;
    padding-bottom: 3%;
    background: #FAF7F1;
    font-family: 'Manrope', sans-serif;
}

.lifeEcoContainer{
    width:min(1400px,92%);
    margin:auto;
}
/*==============================
  LIFE INSURANCE TECHNOLOGY GRID
==============================*/

.lifeTechGrid{
    display:grid;
    grid-template-columns:repeat(3,1fr); 
    border-top:1px solid #dddddd;
    border-left:1px solid #dddddd;
    background:#fff;
}

.lifeTechCard{
    padding:22px 37px;
    min-height:168px;
    border-right:1px solid #dddddd;
    border-bottom:1px solid #dddddd;
    transition:.35s ease;
}

.lifeTechCard:hover{
    background:#fafafa;
}

.lifeTechCard h3{
    color:#d61f29;
    font-size:20px;
    font-weight:700;
    margin-bottom:18px;
}

.lifeTechCard p{
    color:#666666;
    font-size:17px;
    line-height:1.7;
    font-weight:400;
}

.lifeTechEmpty{
    background:#fff;
}

/*==============================
TABLET
==============================*/

@media(max-width:992px){

    .lifeTechGrid{
        grid-template-columns:repeat(2,1fr);
    }

}

/*==============================
MOBILE
==============================*/

@media(max-width:768px){

    .lifeTechGrid{
        grid-template-columns:1fr;
        border-left:none;
    }

    .lifeTechCard{
        border-right:none;
        padding:35px 24px;
        min-height:auto;
    }

    .lifeTechCard h3{
        font-size:22px;
    }

    .lifeTechCard p{
        font-size:16px;
    }

    .lifeTechEmpty{
        display:none;
    }

}
/*clock*/
.lifeHeroClock {
    position: relative;
    width: 50px;
    height: 50px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    background: rgba(255,255,255,0.03);
}

.lifeHeroClock .hand {
    position: absolute;
    bottom: 50%;
    left: 50%;
    transform-origin: bottom center;
    background: #ffffff;
    border-radius: 2px;
}

.lifeHeroClock .hour {
    width: 4px;
    height: 10px;
    margin-left: -2px;
    animation: clockRotate 43200s linear infinite;
}

.lifeHeroClock .minute {
    width: 3px;
    height: 19px;
    margin-left: -1.5px;
    animation: clockRotate 3600s linear infinite;
}

.lifeHeroClock .second {
    width: 2px;
    height: 16px;
    margin-left: -1px;
    background: #d81e2c;
    animation: clockRotate 60s linear infinite;
}

.lifeHeroClock .center {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 8px;
    height: 8px;
    margin: -4px 0 0 -4px;
    background: #d81e2c;
    border-radius: 50%;
}

@keyframes clockRotate {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/*offline*/
 
.lifeHeroOffline svg {
    width: 60px;
    height: 60px;
}
.lifeHeroOffline .arc1 { opacity: 0.3; animation: arcPulse 2.4s ease-in-out infinite; }
.lifeHeroOffline .arc2 { opacity: 0.55; animation: arcPulse 2.4s ease-in-out infinite 0.2s; }
.lifeHeroOffline .arc3 { opacity: 0.85; animation: arcPulse 2.4s ease-in-out infinite 0.4s; }

@keyframes arcPulse {
    0%, 100% { opacity: 0.2; }
    50% { opacity: 0.9; }
}
/*quotation*/
.lifeHeroQuote {
    width: 50px;
    height: 50px;
    text-align: left;
    display: block;
    margin: 0;
}

.lifeHeroQuote .ln {
    stroke-dasharray: 24;
    stroke-dashoffset: 24;
    animation: lineWrite 2.4s ease-in-out infinite;
}

.lifeHeroQuote .ln1 { animation-delay: 0s; }
.lifeHeroQuote .ln2 { animation-delay: 0.3s; }
.lifeHeroQuote .ln3 { animation-delay: 0.6s; }

@keyframes lineWrite {
    0%   { stroke-dashoffset: 24; opacity: 0.3; }
    35%  { stroke-dashoffset: 0; opacity: 1; }
    80%  { stroke-dashoffset: 0; opacity: 1; }
    100% { stroke-dashoffset: 24; opacity: 0.3; }
}

.yourCardWrapper {
    text-align: left; /* or justify-content: flex-start if it's a flex container */
}
/*integration*/
.lifeHeroIntegrated {
    width: 50px;
    height: 50px;
}

.lifeHeroIntegrated .lk {
    stroke-dasharray: 20;
    stroke-dashoffset: 20;
    animation: linkConnect 2.8s ease-in-out infinite;
}

.lifeHeroIntegrated .lk1 { animation-delay: 0s; }
.lifeHeroIntegrated .lk2 { animation-delay: 0.25s; }
.lifeHeroIntegrated .lk3 { animation-delay: 0.5s; }
.lifeHeroIntegrated .lk4 { animation-delay: 0.75s; }

@keyframes linkConnect {
    0%   { stroke-dashoffset: 20; opacity: 0.2; }
    40%  { stroke-dashoffset: 0; opacity: 1; }
    85%  { stroke-dashoffset: 0; opacity: 1; }
    100% { stroke-dashoffset: 20; opacity: 0.2; }
}

/*meeting*/
.lifeHeroMeeting {
    width: 50px;
    height: 50px;
}

.lifeHeroMeeting .badge {
    stroke-dasharray: 76;
    stroke-dashoffset: 76;
    animation: badgeDraw 2.6s ease-in-out infinite;
}

.lifeHeroMeeting .check {
    stroke-dasharray: 20;
    stroke-dashoffset: 20;
    animation: checkDraw 2.6s ease-in-out infinite;
}

@keyframes badgeDraw {
    0%   { stroke-dashoffset: 76; }
    40%  { stroke-dashoffset: 0; }
    85%  { stroke-dashoffset: 0; }
    100% { stroke-dashoffset: 76; }
}

@keyframes checkDraw {
    0%, 40%  { stroke-dashoffset: 20; }
    60%      { stroke-dashoffset: 0; }
    85%      { stroke-dashoffset: 0; }
    100%     { stroke-dashoffset: 20; }
}

/*life*/

.lifeHeroOnboarding {
    width: 50px;
    height: 50px;
}

.lifeHeroOnboarding .chk {
    stroke-dasharray: 24;
    stroke-dashoffset: 24;
    animation: chkWrite 2s ease-in-out infinite;
}
.lifeHeroOnboarding .chk1 { animation-delay: 0s; }
.lifeHeroOnboarding .chk2 { animation-delay: 0.25s; }
.lifeHeroOnboarding .chk3 { animation-delay: 0.5s; }

@keyframes chkWrite {
    0%   { stroke-dashoffset: 24; opacity: 0.3; }
    35%  { stroke-dashoffset: 0; opacity: 1; }
    80%  { stroke-dashoffset: 0; opacity: 1; }
    100% { stroke-dashoffset: 24; opacity: 0.3; }
}





.lifeHeroUnderwriting {
    width: 50px;
    height: 50px;
}

.lifeHeroUnderwriting .gear {
    transform-origin: 58px 52px;
    animation: gearSpin 4s linear infinite;
}

@keyframes gearSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.lifeHeroUnderwriting .check {
    stroke-dasharray: 22;
    stroke-dashoffset: 22;
    animation: checkPop 2.4s ease-in-out infinite;
}

@keyframes checkPop {
    0%, 45%  { stroke-dashoffset: 22; opacity: 0; }
    65%      { stroke-dashoffset: 0; opacity: 1; }
    85%      { stroke-dashoffset: 0; opacity: 1; }
    100%     { stroke-dashoffset: 0; opacity: 0; }
}

 /*general*/

.lifeHeroAvailability {
    width: 50px;
    height: 50px;
}

.lifeHeroAvailability .dot {
    animation: dotBlink 1.8s ease-in-out infinite;
}
.lifeHeroAvailability .dot:nth-of-type(1) { animation-delay: 0s; }
.lifeHeroAvailability .dot:nth-of-type(2) { animation-delay: 0.3s; }
.lifeHeroAvailability .dot:nth-of-type(3) { animation-delay: 0.6s; }

@keyframes dotBlink {
    0%, 100% { opacity: 0.25; }
    50%      { opacity: 1; }
}

.lifeHeroAvailability .pulse {
    stroke-dasharray: 120;
    stroke-dashoffset: 120;
    animation: pulseSweep 2.6s ease-in-out infinite;
}

@keyframes pulseSweep {
    0%   { stroke-dashoffset: 120; opacity: 0; }
    10%  { opacity: 1; }
    60%  { stroke-dashoffset: 0; opacity: 1; }
    100% { stroke-dashoffset: 0; opacity: 0; }
}



.lifeHeroClaimIntake {
    width: 50px;
    height: 50px;
}

.lifeHeroClaimIntake .doc {
    animation: docRise 2.4s ease-in-out infinite;
}

@keyframes docRise {
    0%   { transform: translateY(14px); opacity: 0; }
    30%  { transform: translateY(0); opacity: 1; }
    75%  { transform: translateY(0); opacity: 1; }
    100% { transform: translateY(-14px); opacity: 0; }
}

.lifeHeroClaimIntake .arrow {
    animation: arrowPulse 2.4s ease-in-out infinite;
}

@keyframes arrowPulse {
    0%, 20%  { opacity: 0; transform: translateY(6px); }
    40%      { opacity: 1; transform: translateY(0); }
    75%      { opacity: 1; transform: translateY(0); }
    100%     { opacity: 0; transform: translateY(-6px); }
}


.lifeHeroShariah {
    width: 48px;
    height: 48px;
}

.lifeHeroShariah .seal {
    transform-origin: 54px 56px;
    animation: sealStamp 2.4s ease-in-out infinite;
}

@keyframes sealStamp {
    0%   { transform: scale(0); opacity: 0; }
    20%  { transform: scale(1.15); opacity: 1; }
    30%  { transform: scale(1); opacity: 1; }
    80%  { transform: scale(1); opacity: 1; }
    100% { transform: scale(0); opacity: 0; }
}


.lifeHeroCosts {
    width: 48px;
    height: 48px;
}

.lifeHeroCosts .trend {
    stroke-dasharray: 60;
    stroke-dashoffset: 60;
    animation: trendDrop 2.4s ease-in-out infinite;
}

@keyframes trendDrop {
    0%   { stroke-dashoffset: 60; opacity: 0.3; }
    40%  { stroke-dashoffset: 0; opacity: 1; }
    85%  { stroke-dashoffset: 0; opacity: 1; }
    100% { stroke-dashoffset: 60; opacity: 0.3; }
}

/*broker*/

.lifeHeroWorkload {
    width: 48px;
    height: 48px;
}

.lifeHeroWorkload .sheet {
    animation: sheetFade 2.6s ease-in-out infinite;
    transform-origin: center;
}

.lifeHeroWorkload .sheet3 { animation-delay: 0s; }
.lifeHeroWorkload .sheet2 { animation-delay: 0.3s; }
.lifeHeroWorkload .sheet1 { animation-delay: 0.6s; }

@keyframes sheetFade {
    0%, 15%  { opacity: 1; transform: translateY(0); }
    45%      { opacity: 0; transform: translateY(-10px); }
    70%      { opacity: 0; transform: translateY(-10px); }
    100%     { opacity: 1; transform: translateY(0); }
}
.offlineWifi {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.offlineWifi span {
    position: absolute;
    font-size: 28px;
    font-weight: 700;
    transform: rotate(-45deg);
    line-height: 1;
}

















/* =========================================================
   GENERAL INSURANCE HERO VISUAL
   Everything is scoped to .giVisual
========================================================= */
/* =========================================================
   GENERAL INSURANCE HERO
========================================================= */
/* =========================================================
   GENERAL INSURANCE HERO
========================================================= */

.lifeHero {
    width: 100%;
    min-height: 700px;
    background: #050505;
    overflow: hidden;
    position: relative;
}
/* =========================================================
   FULL HERO NEURAL NETWORK
========================================================= */

.lifeHero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #050505;
}


/* NETWORK LAYER */

.giNeuralBackground {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    opacity: 1;
}


/* CANVAS */

#giNeuralCanvas {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    opacity: 1;
}


/* =========================================================
   HERO CONTENT ABOVE NETWORK
========================================================= */

.lifeHeroContainer {
    position: relative;
    z-index: 5;
}


/* =========================================================
   SOFT VIGNETTE
========================================================= */

.lifeHero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background:
        radial-gradient(
            circle at 65% 50%,
            rgba(5, 5, 5, 0) 0%,
            rgba(5, 5, 5, .05) 40%,
            rgba(5, 5, 5, .35) 100%
        );
}


/* =========================================================
   KEEP GRAPHIC ABOVE NETWORK
========================================================= */

.lifeHeroGraphic {
    position: relative;
    z-index: 6;
}
.lifeHeroContainer {
    width: 100%;
    min-height: 700px;
    display: grid;
    grid-template-columns: 40% 60%;
    align-items: center;
    margin: 0;
    padding: 0;
    position: relative;
}


/* =========================================================
   LEFT CONTENT
========================================================= */

.lifeHeroContent {
     position: relative;
    z-index: 10;
    padding-left: clamp(40px, 5vw, 90px);
    padding-right: 20px;
}

.lifeHeroTitle {
     margin: 0;
    font-size: clamp(65px, 6.3vw, 120px);
    line-height: .9;
    font-weight: 800;
    letter-spacing: -4px;
}

.lifeHeroFill {
    display: block;
    color: #fff;
}

.lifeHeroStroke {
    display: block;
    color: transparent;
    -webkit-text-stroke: 2px #fff;
    text-stroke: 2px #fff;
}


/* =========================================================
   RIGHT GRAPHIC AREA
========================================================= */

.lifeHeroGraphic {
    position: relative;
    width: 100%;
    height: 700px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    padding: 0;
}


/* =========================================================
   MAIN VISUAL
   Keeps original 900 / 640 ratio
========================================================= */

.giVisual {
    position: relative;
    /*
       IMPORTANT:
       Keep this large on desktop.
    */

    width: 120%;
    height: 640px;
    max-width: none;
    max-height: none;
    flex-shrink: 0;
}


/* =========================================================
   GLOW
========================================================= */

.giGlow {
    position: absolute;

    width: 58%;
    aspect-ratio: 1;

    left: 50%;
    top: 50%;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(227, 30, 36, .14) 0%,
            rgba(120, 40, 50, .08) 30%,
            transparent 70%
        );

    filter: blur(4px);

    opacity: 0;

    animation:
        giGlowIn 1.4s ease-out .2s forwards,
        giGlowBreathe 5s ease-in-out 1.6s infinite;

    pointer-events: none;
    z-index: 0;
}

@keyframes giGlowIn {
    to {
        opacity: 1;
    }
}

@keyframes giGlowBreathe {

    0%,
    100% {
        transform: translate(-50%, -50%) scale(1);
        opacity: .7;
    }

    50% {
        transform: translate(-50%, -50%) scale(1.08);
        opacity: 1;
    }
}


/* =========================================================
   PARTICLES
========================================================= */

.giParticles {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    pointer-events: none;
    overflow: visible;

    z-index: 3;
}

.giParticle {
    position: absolute;

    left: 50%;
    top: 50%;

    width: 4px;
    height: 4px;

    border-radius: 50%;

    background: #e31e24;

    box-shadow:
        0 0 5px #e31e24,
        0 0 12px rgba(227, 30, 36, .9);

    opacity: 0;

    transform:
        translate(-50%, -50%)
        translate(0, 0)
        scale(.3);

    animation:
        giParticleFlow var(--duration, 2.4s)
        ease-out
        var(--delay, 0s)
        infinite;

    will-change: transform, opacity;
}

.giParticle:nth-child(3n) {
    background: #ff6970;

    box-shadow:
        0 0 5px #ff6970,
        0 0 12px rgba(255, 105, 112, .9);
}

.giParticle:nth-child(3n + 1) {
    background: #e31e24;

    box-shadow:
        0 0 5px #e31e24,
        0 0 14px rgba(227, 30, 36, 1);
}

.giParticle:nth-child(3n + 2) {
    background: #ff3b42;

    box-shadow:
        0 0 5px #ff3b42,
        0 0 14px rgba(255, 59, 66, .9);
}

@keyframes giParticleFlow {

    0% {
        opacity: 0;

        transform:
            translate(-50%, -50%)
            translate(0, 0)
            scale(.2);
    }

    8% {
        opacity: 1;

        transform:
            translate(-50%, -50%)
            translate(
                calc(var(--x) * .08),
                calc(var(--y) * .08)
            )
            scale(.8);
    }

    35% {
        opacity: 1;

        transform:
            translate(-50%, -50%)
            translate(
                calc(var(--x) * .35),
                calc(var(--y) * .35)
            )
            scale(1);
    }

    75% {
        opacity: .8;

        transform:
            translate(-50%, -50%)
            translate(
                calc(var(--x) * .75),
                calc(var(--y) * .75)
            )
            scale(.85);
    }

    100% {
        opacity: 0;

        transform:
            translate(-50%, -50%)
            translate(
                var(--x),
                var(--y)
            )
            scale(.25);
    }
}


/* =========================================================
   RINGS
========================================================= */

.giRing {
    position: absolute;

    width: 33%;
    aspect-ratio: 1;

    left: 50%;
    top: 50%;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    border: 1px solid rgba(227, 30, 36, .35);

    opacity: 0;

    pointer-events: none;
    z-index: 1;
}

.giRing1 {
    animation: giPulse 3.2s ease-out infinite;
    animation-delay: 1.4s;
}

.giRing2 {
    animation: giPulse 3.2s ease-out infinite;
    animation-delay: 2.5s;
}

.giRing3 {
    animation: giPulse 3.2s ease-out infinite;
    animation-delay: 3.6s;
}

@keyframes giPulse {

    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: .55;
    }

    100% {
        transform: translate(-50%, -50%) scale(2.6);
        opacity: 0;
    }
}


/* =========================================================
   ORBIT
========================================================= */

.giOrbit {
    position: absolute;

    width: 36%;
    aspect-ratio: 1;

    left: 50%;
    top: 50%;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    border: 1px dashed rgba(227, 30, 36, .42);

    opacity: 0;

    animation:
        giOrbitIn 1s ease-out 1.1s forwards,
        giSpin 22s linear 1.1s infinite;

    pointer-events: none;

    z-index: 1;
}

@keyframes giOrbitIn {
    to {
        opacity: 1;
    }
}

@keyframes giSpin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}


/* =========================================================
   SVG LINES
========================================================= */

.giLines {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    z-index: 2;

    pointer-events: none;
    overflow: visible;
}

.giLineGlow {
    fill: none;

    stroke: #E31E24;
    stroke-width: 4;

    stroke-linecap: round;
    stroke-linejoin: round;

    opacity: .22;

    filter:
        blur(3px)
        drop-shadow(0 0 7px rgba(227, 30, 36, .65));

    stroke-dasharray: 12 12;

    animation: giLineFlow 3s linear infinite;
}

.giLineCore {
    fill: none;

    stroke: rgba(255, 255, 255, .62);
    stroke-width: 1.3;

    stroke-linecap: round;
    stroke-linejoin: round;

    opacity: .75;

    stroke-dasharray: 5 9;

    animation: giLineFlow 3s linear infinite;
}

@keyframes giLineFlow {

    0% {
        stroke-dashoffset: 60;
        opacity: .45;
    }

    50% {
        opacity: .9;
    }

    100% {
        stroke-dashoffset: 0;
        opacity: .45;
    }
}


/* =========================================================
   CENTRAL HUB
========================================================= */

.giHub {
    position: absolute;

    width: 20%;
    aspect-ratio: 1;

    left: 50%;
    top: 50%;

    transform:
        translate(-50%, -50%)
        scale(.4)
        rotate(-25deg);

    border-radius: 50%;

    background:
        radial-gradient(
            circle at 30% 25%,
            rgba(227, 30, 36, .25),
            transparent 30%
        ),
        radial-gradient(
            circle at 70% 70%,
            rgba(255, 70, 80, .15),
            transparent 35%
        ),
        radial-gradient(
            circle at 50% 50%,
            #25090b 0%,
            #160607 45%,
            #05080d 75%
        );

    border: 1.5px solid #e31e24;

    box-shadow:
        0 0 25px rgba(227, 30, 36, .55),
        0 0 60px rgba(255, 70, 80, .22),
        0 0 100px rgba(227, 30, 36, .12),
        inset 0 0 30px rgba(227, 30, 36, .25);

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 8px;

    opacity: 0;

    animation:
        giHubIn .85s cubic-bezier(.34,1.56,.64,1) .3s forwards,
        giHubGlow 3.4s ease-in-out 1.2s infinite;

    z-index: 5;
}

@keyframes giHubIn {

    to {
        opacity: 1;

        transform:
            translate(-50%, -50%)
            scale(1)
            rotate(0deg);
    }
}

@keyframes giHubGlow {

    0%,
    100% {
        box-shadow:
            0 0 25px rgba(227, 30, 36, .5),
            0 0 60px rgba(255, 70, 80, .18),
            0 0 90px rgba(227, 30, 36, .08),
            inset 0 0 30px rgba(227, 30, 36, .20);
    }

    50% {
        box-shadow:
            0 0 40px rgba(227, 30, 36, .8),
            0 0 80px rgba(255, 70, 80, .35),
            0 0 120px rgba(227, 30, 36, .15),
            inset 0 0 38px rgba(227, 30, 36, .35);
    }
}


/* =========================================================
   HUB IMAGE
========================================================= */

.giHub img {
    width: 39%;

    height: auto;

    object-fit: contain;

    filter:
        brightness(0)
        saturate(100%)
        invert(22%)
        sepia(96%)
        saturate(5000%)
        hue-rotate(350deg)
        brightness(95%)
        contrast(105%)
        drop-shadow(0 0 5px rgba(255, 60, 70, .75))
        drop-shadow(0 0 14px rgba(227, 30, 36, .45));

    animation: giHubRedBreathe 3s ease-in-out infinite;
}

@keyframes giHubRedBreathe {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.06);
    }
}


/* =========================================================
   HUB LABEL
========================================================= */

.giHubLabel {
    color: #fff;

    font-weight: 600;

    font-size: clamp(9px, 1.1vw, 14px);

    line-height: 1.25;

    text-align: center;

    letter-spacing: .3px;
}


/* =========================================================
   CARDS
========================================================= */

.giCard {
    position: absolute;

    width: 21%;
    min-width: 150px;
    height: 68px;

    display: flex;

    align-items: center;

    gap: 13px;

    padding: 12px 14px;

    box-sizing: border-box;

    background:
        linear-gradient(
            135deg,
            #111c2e,
            #09111e
        );

    border: 1px solid #22304A;

    border-radius: 12px;

    box-shadow:
        0 14px 28px -16px rgba(0, 0, 0, .6),
        inset 0 0 20px rgba(227, 30, 36, .025);

    opacity: 0;

    filter: blur(6px);

    z-index: 4;

    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease,
        background .25s ease;
}


/* =========================================================
   CARD ANIMATION
========================================================= */

.giCardLeft {
    transform:
        translate(-50%, -50%)
        translateX(-40px)
        scale(.85);

    animation:
        giCardInLeft .7s
        cubic-bezier(.22,1.2,.36,1)
        forwards;
}

.giCardRight {
    transform:
        translate(-50%, -50%)
        translateX(40px)
        scale(.85);

    animation:
        giCardInRight .7s
        cubic-bezier(.22,1.2,.36,1)
        forwards;
}

@keyframes giCardInLeft {

    to {
        opacity: 1;

        transform:
            translate(-50%, -50%)
            translateX(0)
            scale(1);

        filter: blur(0);
    }
}

@keyframes giCardInRight {

    to {
        opacity: 1;

        transform:
            translate(-50%, -50%)
            translateX(0)
            scale(1);

        filter: blur(0);
    }
}


/* =========================================================
   CARD HOVER
========================================================= */

.giCard:hover {
    background:
        linear-gradient(
            135deg,
            #251317,
            #0b1524
        );

    border-color: #e31e24;

    box-shadow:
        0 0 20px rgba(227, 30, 36, .28),
        0 0 45px rgba(255, 70, 80, .12),
        inset 0 0 20px rgba(227, 30, 36, .08);

    transform:
        translate(-50%, -50%)
        scale(1.045) !important;
}


/* =========================================================
   CARD ICON
========================================================= */

.giCardIcon {
    width: 38px;
    height: 38px;

    flex-shrink: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 20px;

    border-radius: 8px;
}


/* =========================================================
   CARD COLORS
========================================================= */

.giMotor .giCardIcon {
    color: #FF9F43;

    background: rgba(255, 159, 67, .10);

    border: 1px solid rgba(255, 159, 67, .45);

    box-shadow:
        0 0 12px rgba(255, 159, 67, .15);
}

.giHealth .giCardIcon {
    color: #FF5C8A;

    background: rgba(255, 92, 138, .10);

    border: 1px solid rgba(255, 92, 138, .45);

    box-shadow:
        0 0 12px rgba(255, 92, 138, .15);
}

.giTravel .giCardIcon {
    color: #4DB8FF;

    background: rgba(77, 184, 255, .10);

    border: 1px solid rgba(77, 184, 255, .45);

    box-shadow:
        0 0 12px rgba(77, 184, 255, .15);
}

.giLiability .giCardIcon {
    color: #A78BFA;

    background: rgba(167, 139, 250, .10);

    border: 1px solid rgba(167, 139, 250, .45);

    box-shadow:
        0 0 12px rgba(167, 139, 250, .15);
}


/* =========================================================
   CARD TEXT
========================================================= */

.giCard span {
    color: #fff;

    font-weight: 500;

    font-size: 13px;

    line-height: 1.3;

    letter-spacing: .2px;
}


/* =========================================================
   CARD POSITIONS
   ALIGNED TO SVG ENDPOINTS
========================================================= */

/*
   SVG endpoint:
   LEFT  = 230 / 900 = 25.5%
   RIGHT = 670 / 900 = 74.5%

   TOP    = 175 / 640 = 27.3%
   BOTTOM = 285 / 640 = 44.5%
*/


.giMotor {
    left: 25.5%;
    top: 27.3%;
}

.giHealth {
    left: 25.5%;
    top: 48.5%;
}

.giTravel {
    left: 74.5%;
    top: 27.3%;
}

.giLiability {
    left: 74.5%;
    top: 48.5%;
}


/* =========================================================
   LARGE TABLET
========================================================= */

@media (max-width: 1200px) {

    .lifeHeroContainer {
        grid-template-columns: 38% 62%;
    }

    .lifeHeroGraphic {
        height: 620px;
    }

    .lifeHeroTitle {
        font-size: clamp(58px, 6vw, 90px);
    }

    .giCard {
        width: 22%;
        min-width: 135px;
        height: 62px;

        gap: 9px;
        padding: 10px;
    }

    .giCard span {
        font-size: 11px;
    }

    .giCardIcon {
        width: 32px;
        height: 32px;
        font-size: 17px;
    }
}


/* =========================================================
   TABLET / MOBILE TRANSITION
========================================================= */

@media (max-width: 900px) {

    .lifeHero {
        min-height: auto;
    }

    .lifeHeroContainer {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .lifeHeroContent {
        padding:
            70px
            30px
            20px;
    }

    .lifeHeroTitle {
        font-size: clamp(58px, 12vw, 90px);
        letter-spacing: -3px;
    }

    .lifeHeroGraphic {
        height: auto;
        min-height: 0;

        padding:
            10px
            0
            50px;
    }

    .giVisual {
        width: min(760px, 100%);
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .lifeHeroContent {
        padding:
            50px
            20px
            10px;
    }

    .lifeHeroTitle {
        font-size: clamp(46px, 15vw, 70px);
        letter-spacing: -2px;
    }

    .lifeHeroGraphic {
        padding:
            10px
            5px
            35px;
    }

    .giVisual {
        width: 100%;
    }

    .giCard {
        width: 24%;
        min-width: 0;

        height: 52px;

        padding: 6px;

        gap: 6px;

        border-radius: 8px;
    }

    .giCardIcon {
        width: 25px;
        height: 25px;

        font-size: 15px;

        border-radius: 6px;
    }

    .giCard span {
        font-size: clamp(7px, 1.7vw, 9px);
        line-height: 1.15;
    }

    .giHub {
        width: 20%;
    }

    .giHub img {
        width: 38%;
    }

    .giHubLabel {
        font-size: clamp(7px, 2vw, 10px);
    }

    .giOrbit {
        width: 30%;
    }

    .giRing {
        width: 27%;
    }

    .giParticle {
        width: 3px;
        height: 3px;
    }

    .giLineGlow {
        stroke-width: 3;
    }

    .giLineCore {
        stroke-width: 1;
    }
}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .lifeHeroContent {
        padding:
            40px
            16px
            5px;
    }

    .lifeHeroTitle {
        font-size: clamp(42px, 15vw, 62px);
        letter-spacing: -2px;
    }

    .lifeHeroGraphic {
        padding-bottom: 25px;
    }

    .giCard {
        width: 25%;

        height: 47px;

        padding: 5px;

        gap: 4px;

        border-radius: 7px;
    }

    .giCardIcon {
        width: 20px;
        height: 20px;

        font-size: 12px;
    }

    .giCard span {
        font-size: 7px;
        letter-spacing: 0;
    }

    .giHubLabel {
        font-size: 7px;
    }
}


/* =========================================================
   VERY SMALL DEVICES
========================================================= */

@media (max-width: 360px) {

    .lifeHeroTitle {
        font-size: 40px;
    }

    .giCard {
        width: 26%;
        height: 44px;
    }

    .giCardIcon {
        width: 18px;
        height: 18px;
        font-size: 11px;
    }

    .giCard span {
        font-size: 6.5px;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .giGlow,
    .giParticle,
    .giRing,
    .giOrbit,
    .giHub,
    .giHub img,
    .giLineGlow,
    .giLineCore,
    .giCard {
        animation: none !important;
        transition: none !important;
    }

    .giHub,
    .giCard {
        opacity: 1;
        filter: none;
    }
}





























/* =========================================================================================================================================================
   MAIN HERO CONTAINER
========================================================= */

.lifeHeroContainer {
     width: 86%;
    max-width: 1450px;
    min-height: 680px;
    margin: 0 auto;
    padding: 0;
    display: grid;
    grid-template-columns: 45% 55%;
    align-items: center;
    column-gap: 0;
    box-sizing: border-box;
}


/* =========================================================
   LEFT CONTENT
   KEEP THIS SIDE AS IT IS
========================================================= */

.lifeHeroContent {
    position: relative;

    width: 100%;

    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;

    justify-content: flex-start;

    z-index: 10;

    box-sizing: border-box;
}


/* =========================================================
   LIFE HERO TITLE
========================================================= */

.lifeHeroTitle {
  margin: 0;
    padding: 0;
    font-family: inherit;
    font-size: clamp(62px, 5.2vw, 100px);
    font-weight: 700;
    line-height: .9;
    letter-spacing: -3px;
    text-align: left;
    white-space: nowrap;
}


/* FILLED TEXT */

.lifeHeroFill {
    display: block;

    color: #fff;

    -webkit-text-fill-color: #fff;
}


/* OUTLINED TEXT */

.lifeHeroStroke {
    display: block;

    color: transparent;

    -webkit-text-fill-color: transparent;

    -webkit-text-stroke: 2px #fff;

    text-stroke: 2px #fff;
}


/* =========================================================
   RIGHT SIDE CAROUSEL
========================================================= */

.lifeVisualCarousel {
  position: relative;
    width: 72%;
    height: 560px;
    margin: 0 0 0 auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    overflow: visible;
    box-sizing: border-box;
}


/* =========================================================
   CAROUSEL TRACK
========================================================= */

.lifeVisualTrack {
     position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


/* =========================================================
   CAROUSEL SLIDE
========================================================= */

.lifeVisualSlide {
    position: absolute;
    top: 50%;
    right: 0;
    left: auto;

    /* VERTICAL RECTANGLE */
    width: 360px;
    height: 520px;

    margin: 0;
    padding: 0;

    transform: translateY(-50%);

    border-radius: 18px;
    overflow: hidden;

    background: #222;

    opacity: 0;
    visibility: hidden;
    z-index: 0;

    transition:
        opacity .6s ease,
        transform .6s ease,
        visibility .6s ease;

    box-sizing: border-box;
}


/* ACTIVE SLIDE */

.lifeVisualSlide.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(-50%);
    z-index: 3;
}


/* =========================================================
   SLIDE IMAGE
========================================================= */

.lifeVisualSlide img {
     position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    min-width: 100%;
    min-height: 100%;
    max-width: none !important;
    margin: 0;
    padding: 0;
    display: block !important;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}


/* =========================================================
   IMAGE OVERLAY
========================================================= */

.lifeVisualOverlay {
    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    margin: 0;
    padding: 0;

    z-index: 1;

    pointer-events: none;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0) 35%,
            rgba(0, 0, 0, .04) 55%,
            rgba(0, 0, 0, .70) 100%
        );
}


/* =========================================================
   INFORMATION CARD
========================================================= */

.lifeInfoCard {
    position: absolute;

    left: 4%;
    bottom: 15%; 
    max-width: 560px;

    margin: 0;
    padding: 0;

    background: #fff;

    border: 1px solid #f0bd38;

    border-radius: 20px;

    overflow: hidden;

    box-shadow:
        0 15px 35px rgba(0, 0, 0, .15);

    z-index: 5;

    box-sizing: border-box;
}


/* =========================================================
   INFO CARD - TOP
========================================================= */

.lifeInfoTop {
    width: 100%;

    min-height: 78px;

    margin: 0;
    padding: 14px 20px;

    display: flex;

    align-items: center;

    gap: 16px;

    background: #fff;

    box-sizing: border-box;
}


/* =========================================================
   INFO ICON
========================================================= */

.lifeInfoIcon {
    width: 45px;
    height: 45px;

    min-width: 45px;

    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 25px;

    line-height: 1;

    flex-shrink: 0;
}


/* =========================================================
   INFO TEXT
========================================================= */

.lifeInfoText {
    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;

    gap: 7px;

    color: #222;

    font-size: 18px;

    line-height: 1.3;

    white-space: nowrap;
}


.lifeInfoText span {
    color: #222;
}


.lifeInfoText strong {
    margin: 0;
    padding: 0;

    color: #5262d5;

    font-size: 20px;

    font-weight: 700;
}


/* =========================================================
   INFO CARD - BOTTOM
========================================================= */

.lifeInfoBottom {
    width: 100%;

    min-height: 43px;

    margin: 0;
    padding: 9px 20px;

    display: flex;

    align-items: center;

    gap: 9px;

    border-top: 1px solid #f0bd38;

    background: #fff;

    color: #596275;

    font-size: 14px;

    line-height: 1.3;

    box-sizing: border-box;
}


/* =========================================================
   BENEFITS BUTTON
========================================================= */

.lifeBreakupBtn {
    position: absolute;

    left: 10%;

    top: calc(57% + 150px);

    z-index: 5;

    margin: 0;
    padding: 12px 28px;

    border: none;

    border-radius: 30px;

    background: #fff;

    color: #ff5757;

    font-family: inherit;

    font-size: 15px;

    font-weight: 500;

    line-height: 1;

    white-space: nowrap;

    cursor: pointer;

    box-shadow:
        0 8px 20px rgba(0, 0, 0, .10);

    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease;
}


.lifeBreakupBtn:hover {
    background: #ff5757;

    color: #fff;

    transform: translateY(-2px);
}


/* =========================================================
   BOTTOM SLIDE TITLE
========================================================= */

.lifeSlideTitle {
    position: absolute;

    left: 10%;
    bottom: 32px;

    z-index: 5;

    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;

    gap: 11px;

    color: #fff;

    font-size: 19px;

    font-weight: 400;

    line-height: 1;

    white-space: nowrap;
}


/* =========================================================
   BOTTOM TITLE ICON
========================================================= */

.lifeSlideIcon {
    width: 36px;
    height: 36px;

    min-width: 36px;

    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #fff;

    color: #111;

    font-size: 14px;

    box-sizing: border-box;
}


/* =========================================================
   SLIDE PROGRESS
========================================================= */

.lifeSlideProgress {
    position: absolute;

    right: 7%;
    bottom: 40px;

    z-index: 5;

    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;

    gap: 16px;
}


.lifeSlideProgress span {
    display: block;

    width: 40px;
    height: 5px;

    margin: 0;
    padding: 0;

    border-radius: 20px;

    background: rgba(175, 175, 175, 0.85);

    transition:
        width .3s ease,
        background .3s ease;
}


.lifeSlideProgress span.active {
    width: 40px;

    background: #fff;
}


/* =========================================================
   CAROUSEL ARROWS
========================================================= */

.lifeVisualArrow {
    position: absolute;

    top: 50%;

    z-index: 20;

    width: 44px;
    height: 44px;

    margin: 0;
    padding: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    transform: translateY(-50%);

    border: 1px solid rgba(0, 0, 0, .12);

    border-radius: 50%;

    background: rgba(255, 255, 255, .95);

    color: #222;

    font-size: 15px;

    cursor: pointer;

    opacity: 0;

    transition:
        opacity .3s ease,
        background .3s ease,
        color .3s ease,
        transform .3s ease;

    box-sizing: border-box;
}


.lifeVisualCarousel:hover .lifeVisualArrow {
    opacity: 1;
}


.lifeVisualPrev {
    left: 12px;
}


.lifeVisualNext {
    right: 12px;
}


.lifeVisualArrow:hover {
    background: #1c1c1c;

    color: #fff;

    transform:
        translateY(-50%)
        scale(1.08);
}

.lifeHeroInsurance {
    display: inline;
    color: #ff0000 !important;
    -webkit-text-fill-color: #ff0000 !important;
    font-size: 96px;
}
/* =========================================================
   LARGE DESKTOP
========================================================= */

@media (min-width: 1600px) {

    .lifeHeroContainer {
        width: 86%;
        max-width: 1500px;
        min-height: 700px;
        grid-template-columns: 45% 55%;
    }

    .lifeHeroTitle {
        font-size: clamp(75px, 5vw, 105px);
    }

    .lifeVisualCarousel {
        width: 82%;
        height: 520px;
        margin-left: auto;
        margin-right: 0;
    }

    .lifeVisualSlide {
        width: 100%;
        height: 480px;
    }
}

/* =========================================================
   DESKTOP
========================================================= */

@media (min-width: 1201px) and (max-width: 1599px) {

    .lifeHeroContainer {
        width: 90%;
        min-height: 628px;
        grid-template-columns: 45% 55%;
    }

    
    .lifeHeroTitle {
        font-size: clamp(65px, 5.2vw, 92px);
    }

    .lifeVisualCarousel {
        width: 82%;
        height: 500px;
        margin-left: auto;
        margin-right: 0;
    }

    .lifeVisualSlide {
        width: 100%;
        height: 460px;
    }
}
 


/* =========================================================
   LAPTOP
========================================================= */

@media (max-width: 1200px) {

    .lifeHeroContainer {
        grid-template-columns: 36% 64%;
    }

    .lifeHeroGraphic {
        height: 620px;
    }

    .giVisual {
        width: 820px;
        height: 583px;

        margin-left: -25px;
    }

    .lifeHeroTitle {
        font-size: clamp(58px, 6vw, 90px);
    }

    .giCard {
        width: 165px;
        height: 62px;

        padding: 10px;
        gap: 9px;
    }

    .giCard span {
        font-size: 11px;
    }

    .giCardIcon {
        width: 32px;
        height: 32px;
        font-size: 17px;
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .lifeHero {
        min-height: auto;

        padding: 70px 0;
    }

    .lifeHeroContainer {
        width: 90%;

        min-height: auto;

        margin: 0 auto;

        grid-template-columns: 1fr;

        gap: 50px;
    }

    .lifeHeroContent {
        width: 100%;

        justify-content: center;

        text-align: center;
    }

    .lifeHeroTitle {
        text-align: center;

        white-space: normal;
    }

    .lifeVisualCarousel {
        width: 100%;

        height: 560px;
    }

    .lifeVisualSlide {
        right: 0;

        width: 100%;

        height: 560px;
    }

    .lifeInfoCard {
        left: 8%;

        width: 78%;
    }

    .lifeBreakupBtn {
        left: 8%;
    }

    .lifeSlideTitle {
        left: 8%;
    }

    .lifeVisualArrow {
        opacity: 1;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .lifeHero {
        padding: 55px 0 50px;
    }

    .lifeHeroContainer {
        width: 92%;

        gap: 35px;
    }

    .lifeHeroTitle {
        font-size: clamp(55px, 15vw, 80px);

        line-height: .92;

        letter-spacing: -2px;
    }

    .lifeHeroStroke {
        -webkit-text-stroke: 1.5px #fff;
    }

    .lifeVisualCarousel {
        height: 480px;
    }

    .lifeVisualSlide {
        width: 100%;
        height: 480px;

        border-radius: 14px;
    }

    .lifeInfoCard {
        left: 5%;
        top: 50%;

        width: 90%;
    }

    .lifeInfoTop {
        min-height: 68px;

        padding: 10px 14px;

        gap: 9px;
    }

    .lifeInfoIcon {
        width: 38px;
        height: 38px;

        min-width: 38px;

        font-size: 21px;
    }

    .lifeInfoText {
        gap: 5px;

        font-size: 14px;
    }

    .lifeInfoText strong {
        font-size: 17px;
    }

    .lifeInfoBottom {
        min-height: 38px;

        padding: 8px 14px;

        font-size: 11px;
    }

    .lifeBreakupBtn {
        left: 5%;

        top: calc(50% + 125px);

        padding: 11px 22px;

        font-size: 13px;
    }

    .lifeSlideTitle {
        left: 5%;

        bottom: 24px;

        gap: 8px;

        font-size: 14px;
    }

    .lifeSlideIcon {
        width: 31px;
        height: 31px;

        min-width: 31px;

        font-size: 12px;
    }

    .lifeSlideProgress {
        right: 5%;

        bottom: 37px;

        gap: 7px;
    }

    .lifeSlideProgress span {
        width: 25px;
        height: 4px;
    }

    .lifeSlideProgress span.active {
        width: 25px;
    }

    .lifeVisualArrow {
        width: 38px;
        height: 38px;

        font-size: 13px;

        opacity: 1;
    }

    .lifeVisualPrev {
        left: 8px;
    }

    .lifeVisualNext {
        right: 8px;
    }
}


/* =========================================================
   VERY SMALL MOBILE
========================================================= */

@media (max-width: 438px) {

    .lifeHeroContainer {
        width: 92%;
    }

    .lifeVisualCarousel {
        height: 430px;
    }

    .lifeVisualSlide {
        height: 430px;
    }

    .lifeInfoCard {
        top: 48%;
    }

    .lifeInfoText {
        font-size: 13px;
    }

    .lifeInfoText strong {
        font-size: 15px;
    }

    .lifeInfoBottom {
        font-size: 10px;
    }

    .lifeBreakupBtn {
        top: calc(48% + 120px);
    }

    .lifeSlideTitle {
        font-size: 13px;
    }
}
