/* =========================
   HERO
========================= */

.tt-about-hero {
  width: 100%;
  background: var(--milky);
  overflow: hidden;
  position: relative;
}


/* =========================
   CONTAINER
========================= */

.tt-hero-container {
  width: min(1400px, 92%);
  margin: 0 auto;

  min-height: 680px;

  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  align-items: center;

  gap: 70px;
  margin-top: 50px;

  padding: 80px 0;
}


/* =========================
   LEFT CONTENT
========================= */

.tt-hero-content {
  position: relative;
  z-index: 2;
}


.tt-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 14px;

  color: var(--light-purple);

  font-size: 14px;
  font-weight: 700;

  letter-spacing: 3px;

  margin-bottom: 22px;
}


/* =========================
   HEADING
========================= */

.tt-hero-content h1 {
  margin: 0;

  color: var(--font-purple);

  font-size: clamp(48px, 5vw, 76px);

  line-height: 1.02;

  font-weight: 500;

  letter-spacing: -2px;
}


.tt-hero-content h1 span {
  display: block;
  color: var(--light-purple);
}


/* =========================
   DESCRIPTION
========================= */

.tt-hero-content p {
  max-width: 610px;

  margin: 30px 0 35px;

  color: var(--font-purple);

  font-size: 17px;
  line-height: 1.8;
  text-align:justify;
  font-weight: 400;
}


/* =========================
   BUTTONS
========================= */

.tt-hero-buttons {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 14px;
}


.tt-btn {
  min-height: 52px;

  padding: 0 25px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  gap: 18px;

  border-radius: 50px;

  text-decoration: none;

  font-size: 14px;
  font-weight: 600;

  transition: all .3s ease;
}


.tt-btn span {
  font-size: 20px;
  line-height: 1;

  transition: transform .3s ease;
}


.tt-btn:hover span {
  transform: translateX(5px);
}


/* PRIMARY */

.tt-btn-primary {
  color: var(--white);
  background: var(--purple);

  border: 1px solid var(--purple);
}


.tt-btn-primary:hover {
  background: var(--light-purple);
  border-color: var(--light-purple);
  color: var(--white);
}


/* OUTLINE */

.tt-btn-outline {
  color: var(--font-purple);

  background: transparent;

  border: 1px solid var(--light-purple);
}


.tt-btn-outline:hover {
  color: var(--white);
  background: var(--purple);
  border-color: var(--purple);
}


/* =========================
   STATS
========================= */

.tt-hero-stats {
  display: flex;

  margin-top: 55px;
}


.tt-stat {
  min-width: 150px;

  padding: 0 28px;

  border-left: 1px solid var(--light-purple);
}


.tt-stat:first-child {
  padding-left: 0;
  border-left: 0;
}


.tt-stat strong {
  display: block;

  color: var(--font-purple);

  font-size: 43px;
  line-height: 1;

  font-weight: 500;
}


.tt-stat small {
  display: block;

  margin-top: 10px;

  color: var(--font-purple);

  font-size: 11px;

  line-height: 1.5;

  font-weight: 700;

  letter-spacing: 1.5px;

  text-transform: uppercase;
}


/* =========================
   IMAGE AREA
========================= */

.tt-hero-image-wrap {
  position: relative;

  height: 560px;

  display: flex;
  align-items: center;
  justify-content: center;
}


.tt-hero-image {
  width: 100%;
  height: 100%;

  overflow: hidden;

  border-radius: 180px 0 0 180px;

  position: relative;
}


.tt-hero-image::after {
  content: "";

  position: absolute;

  inset: 0;

  background: linear-gradient(
    90deg,
    rgba(40, 11, 54, .08),
    transparent 45%
  );

  pointer-events: none;
}


.tt-hero-image img {
  width: 100%;
  height: 100%;

  display: block;

  object-fit: cover;

  object-position: center;
}


/* =========================
   FLOATING BADGE
========================= */

.tt-hero-badge {
  position: absolute;

  left: -35px;
  bottom: 45px;

  width: 145px;
  height: 145px;

  border-radius: 50%;

  background: var(--purple);

  display: flex;
  flex-direction: column;

  align-items: center;
  justify-content: center;

  text-align: center;

  border: 8px solid var(--milky);

  box-shadow: 0 15px 35px rgba(40, 11, 54, .20);
}


.tt-badge-number {
  color: var(--light-purple);

  font-size: 32px;

  line-height: 1;
}


.tt-badge-text {
  margin-top: 7px;

  color: var(--white);

  font-size: 10px;

  line-height: 1.4;

  letter-spacing: 1px;

  text-transform: uppercase;
}


/* =========================
   DECORATIVE ELEMENT
========================= */

.tt-about-hero::before {
  content: "";

  position: absolute;

  width: 250px;
  height: 250px;

  left: -130px;
  bottom: -130px;

  border: 1px solid var(--light-purple);

  border-radius: 50%;
}


/* =========================
   TABLET
========================= */

@media (max-width: 1100px) {

  .tt-hero-container {
    grid-template-columns: 1fr 1fr;

    gap: 40px;

    padding: 65px 0;
  }

  .tt-hero-content h1 {
    font-size: 55px;
  }

  .tt-hero-image-wrap {
    height: 500px;
  }

  .tt-stat {
    min-width: 120px;
    padding: 0 18px;
  }

}


/* =========================
   MOBILE
========================= */

@media (max-width: 768px) {

  .tt-hero-container {
    width: 90%;

    display: flex;
    flex-direction: column;

    align-items: stretch;

    gap: 45px;

    padding: 55px 0 65px;
  }


  .tt-hero-content {
    width: 100%;
  }


  .tt-hero-eyebrow {
    font-size: 12px;
    letter-spacing: 2px;
  }



  .tt-hero-content h1 {
    font-size: clamp(40px, 11vw, 53px);

    line-height: 1.05;

    letter-spacing: -1px;
  }


  .tt-hero-content p {
    margin: 22px 0 28px;

    font-size: 15px;

    line-height: 1.7;
  }


  .tt-hero-buttons {
    flex-direction: column;

    align-items: stretch;

    width: 100%;
  }


  .tt-btn {
    width: 100%;

    min-height: 52px;
  }


  /* STATS */

  .tt-hero-stats {
    margin-top: 40px;

    display: grid;

    grid-template-columns: repeat(3, 1fr);
  }


  .tt-stat {
    min-width: 0;

    padding: 0 12px;
  }


  .tt-stat strong {
    font-size: 30px;
  }


  .tt-stat small {
    font-size: 9px;

    letter-spacing: .8px;
  }


  /* IMAGE */

  .tt-hero-image-wrap {
    width: 100%;

    height: 390px;
  }


  .tt-hero-image {
    border-radius: 120px 0 0 120px;
  }


  .tt-hero-badge {
    left: -12px;

    bottom: 25px;

    width: 105px;
    height: 105px;

    border-width: 6px;
  }


  .tt-badge-number {
    font-size: 25px;
  }


  .tt-badge-text {
    font-size: 8px;
  }

}


/* =========================
   SMALL MOBILE
========================= */

@media (max-width: 480px) {

  .tt-hero-container {
    padding-top: 40px;
  }


  .tt-hero-content h1 {
    font-size: 37px;
  }


  .tt-hero-content p {
    font-size: 14px;
  }


  .tt-hero-stats {
    gap: 0;
  }


  .tt-stat strong {
    font-size: 27px;
  }


  .tt-stat small {
    font-size: 8px;
  }


  .tt-hero-image-wrap {
    height: 330px;
  }


  .tt-hero-image {
    border-radius: 90px 0 0 90px;
  }

}










/* ==========================================
   MAIN SECTION
========================================== */

.tt-story-section {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: var(--purple);
  color: var(--white);
  padding: 20px 6%;
}


/* ==========================================
   MAIN CONTAINER
========================================== */

.tt-story-container {
  max-width: 1400px;
  margin: 0 auto;

  display: grid;
  grid-template-columns:
    minmax(350px, 1fr)
    minmax(380px, 1.25fr)
    minmax(250px, .75fr);

  align-items: center;
  gap: 70px;
}


/* ==========================================
   LEFT VISUAL
========================================== */

.tt-story-visual {
  position: relative;
  min-height: 420px;

  display: flex;
  align-items: center;
  justify-content: center;
}


/* Back Layer */

.tt-image-back {
  position: absolute;

  width: 78%;
  height: 76%;

  left: 2%;
  top: 15%;

  border: 1px solid var(--light-purple);
  border-radius: 38px;

  transform: rotate(-1deg);

  opacity: .9;
}


/* Main Image */

.tt-image-frame {
  position: relative;
  width: 78%;
  max-width: 330px;

  aspect-ratio: 0.88;

  border-radius: 34px;

  overflow: hidden;

  border: 1px solid var(--white);

  z-index: 2;

  box-shadow:
    0 15px 40px var(--font-purple);
}


.tt-image-frame img {
  width: 100%;
  height: 100%;

  object-fit: cover;

  display: block;

  transition: transform .7s ease;
}


.tt-image-frame:hover img {
  transform: scale(1.06);
}




/* ==========================================
   DECORATIVE BOTTOM SHAPE
========================================== */

.tt-decoration {
  position: absolute;

  left: -45px;
  bottom: -50px;

  width: 100px;
  height: 100px;

  opacity: .8;
}


.tt-decoration span {
  position: absolute;

  width: 45px;
  height: 85px;

  border-left: 1px solid var(--light-purple);
  border-radius: 50%;

  transform: rotate(-25deg);
}


.tt-decoration span:nth-child(2) {
  left: 25px;
  transform: rotate(18deg);
}


/* ==========================================
   CENTER CONTENT
========================================== */

.tt-story-content {
  max-width: 570px;
}


/* Label */

.tt-story-label {
  display: flex;

  align-items: center;

  gap: 18px;

  margin-bottom: 18px;
}


.tt-story-label span {
  font-size: 13px;

  letter-spacing: 4px;

  font-weight: 600;

  color: var(--light-purple);
}



/* Heading */

.tt-story-content h2 {
  margin: 0;

  font-size: clamp(45px, 4vw, 67px);

  line-height: 1.02;

  font-weight: 400;

  letter-spacing: -1.5px;

  color: var(--white);
}


.tt-story-content h2 strong {
  display: block;

  color: var(--light-purple);

  font-weight: 400;
}


/* Paragraph */

.tt-story-content p {
  margin: 30px 0 0;

  max-width: 520px;

  font-size: 16px;

  line-height: 1.75;

  color: var(--white);

  opacity: .92;
  text-align:justify;
}


/* ==========================================
   TIMELINE
========================================== */

.tt-story-timeline {
  position: relative;

  padding-left: 45px;
}


/* Vertical Line */

.tt-story-timeline::before {
  content: "";

  position: absolute;

  left: 10px;
  top: 16px;
  bottom: 16px;

  width: 1px;

  background: var(--light-purple);
}


/* Timeline Item */

.tt-timeline-item {
  position: relative;

  min-height: 82px;

  display: flex;
  align-items: flex-start;

  opacity: 0;

  transform: translateX(20px);

  animation: timelineReveal .7s ease forwards;
  margin-top: 50px;;
}


.tt-timeline-item:nth-child(1) {
  animation-delay: .2s;
}


.tt-timeline-item:nth-child(2) {
  animation-delay: .4s;
}


.tt-timeline-item:nth-child(3) {
  animation-delay: .6s;
}


.tt-timeline-item:nth-child(4) {
  animation-delay: .8s;
}


@keyframes timelineReveal {

  to {
    opacity: 1;
    transform: translateX(0);
  }

}


/* Timeline Dot */

.tt-timeline-dot {
  position: absolute;

  left: -45px;
  top: 2px;

  width: 17px;
  height: 17px;

  border: 4px solid var(--light-purple);

  background: var(--purple);

  border-radius: 50%;

  box-sizing: border-box;

  z-index: 2;

  transition: .3s ease;
}


.tt-timeline-item:hover .tt-timeline-dot {
  background: var(--light-purple);

  transform: scale(1.25);
}


/* Timeline Text */

.tt-timeline-content h3 {
  margin: 0 0 5px;

  font-size: 19px;

  font-weight: 600;

  color: var(--light-purple);
}


.tt-timeline-content p {
  margin: 0;

  font-size: 13px;

  line-height: 1.5;

  color: var(--white);

  opacity: .9;
}


/* ==========================================
   LARGE TABLET
========================================== */

@media (max-width: 1150px) {

  .tt-story-container {

    grid-template-columns:
      300px
      1fr
      230px;

    gap: 45px;

  }

  .tt-image-frame {
    width: 90%;
  }

}


/* ==========================================
   TABLET
========================================== */

@media (max-width: 950px) {

  .tt-story-section {
    padding: 80px 6%;
  }

  .tt-story-container {

    grid-template-columns: 1fr 1fr;

    gap: 60px 40px;

  }


  .tt-story-visual {
    min-height: 420px;
  }


  .tt-story-content {
    align-self: center;
  }


  .tt-story-timeline {

    grid-column: 1 / -1;

    display: grid;

    grid-template-columns:
      repeat(4, 1fr);

    padding: 50px 0 0;

    gap: 15px;

  }


  .tt-story-timeline::before {

    left: 0;
    right: 0;

    top: 58px;

    bottom: auto;

    width: auto;
    height: 1px;

  }


  .tt-timeline-item {

    min-height: auto;

    display: block;

    padding-top: 35px;

    transform: translateY(15px);

  }


  .tt-timeline-dot {

    left: 0;
    top: -8px;

  }


  .tt-timeline-item:hover .tt-timeline-dot {

    transform: scale(1.2);

  }

}


/* ==========================================
   MOBILE
========================================== */

@media (max-width: 700px) {

  .tt-story-section {

    padding: 65px 22px;

  }


  .tt-story-container {

    display: flex;

    flex-direction: column;

    gap: 50px;

    align-items: stretch;

  }


  /* Image */

  .tt-story-visual {

    width: 100%;

    min-height: 380px;

  }


  .tt-image-frame {

    width: 72%;

    max-width: 290px;

  }


  .tt-image-back {

    width: 72%;

    left: 8%;

  }


  /* Content */

  .tt-story-content {

    max-width: 100%;

  }


  .tt-story-label {

    margin-bottom: 15px;

  }


  .tt-story-content h2 {

    font-size: clamp(40px, 12vw, 55px);

  }


  .tt-story-content p {

    font-size: 15px;

    line-height: 1.7;

    margin-top: 24px;

  }


  /* Timeline */

  .tt-story-timeline {

    display: block;

    padding: 0 0 0 45px;

  }


  .tt-story-timeline::before {

    left: 8px;

    top: 8px;

    bottom: 8px;

    right: auto;

    width: 1px;

    height: auto;

  }


  .tt-timeline-item {

    min-height: 82px;

    padding: 0;

    display: block;

  }


  .tt-timeline-dot {

    left: -45px;

    top: 2px;

  }


  .tt-timeline-content h3 {

    font-size: 19px;

  }


  .tt-timeline-content p {

    font-size: 14px;

  }

}


/* ==========================================
   SMALL MOBILE
========================================== */

@media (max-width: 480px) {

  .tt-story-section {

    padding: 55px 18px;

  }


  .tt-story-visual {

    min-height: 330px;

  }


  .tt-image-frame {

    width: 74%;

    max-width: 255px;

    border-radius: 27px;

  }


  .tt-image-back {

    width: 74%;

    border-radius: 30px;

    left: 3%;

  }



  .tt-story-label span {

    font-size: 11px;

    letter-spacing: 3px;

  }



  .tt-story-content h2 {

    font-size: 39px;

    letter-spacing: -1px;

  }


  .tt-story-content p {

    font-size: 14px;

    line-height: 1.65;

  }


  .tt-story-timeline {

    padding-left: 38px;

  }


  .tt-story-timeline::before {

    left: 7px;

  }


  .tt-timeline-dot {

    left: -38px;

    width: 16px;

    height: 16px;

  }

}












/* =========================================
   milestones section


/* =========================================================
   SECTION
========================================================= */

.tt-milestones{
    position:relative;
    width:100%;

    background:var(--milky);

    padding:70px 20px 90px;

    overflow:hidden;
}


.tt-milestones-container{
    width:100%;
    max-width:1200px;

    margin:0 auto;
}


/* =========================================================
   BACKGROUND DECORATION
========================================================= */

.tt-bg-circle{
    position:absolute;

    width:130px;
    height:130px;

    border-radius:50%;

    background:var(--light-purple);

    opacity:.12;

    pointer-events:none;
}

.tt-circle-left{
    left:-65px;
    top:60px;
}

.tt-circle-right{
    right:-65px;
    top:200px;
}


.tt-bg-ring{
    position:absolute;

    width:240px;
    height:240px;

    right:-120px;
    top:-100px;

    border:1px solid var(--light-purple);

    border-radius:50%;

    opacity:.35;
}


/* =========================================================
   HEADING
========================================================= */

.tt-milestones-heading{
    position:relative;

    z-index:20;

    text-align:center;

    margin-bottom:30px;
}


.tt-heading-small{
    display:block;

    color:var(--light-purple);

    font-size:12px;

    font-weight:800;

    letter-spacing:3px;

    margin-bottom:5px;
}


.tt-milestones-heading h2{
    margin:0;

    color:var(--font-purple);

    font-size:43px;

    font-weight:500;

    line-height:1.1;
}


.tt-milestones-heading p{
    max-width:530px;

    margin:10px auto 0;

    color:var(--font-purple);

    font-size:12px;

    line-height:1.45;

    opacity:.7;
}


/* =========================================================
   TIMELINE AREA
========================================================= */

.tt-timeline{
    position:relative;

    width:100%;

    height:970px;

    max-width:950px;

    margin:0 auto;
}


/* =========================================================
   ROAD SVG
========================================================= */

.tt-road-svg{
    position:absolute;

    top:0;
    left:50%;

    width:420px;
    height:970px;

    transform:translateX(-50%);

    overflow:visible;

    z-index:1;
}


/* =========================================================
   ROAD GLOW
========================================================= */

.tt-road-glow{
    fill:none;

    stroke:var(--light-purple);

    stroke-width:45;

    stroke-linecap:round;
    stroke-linejoin:round;

    opacity:.18;

    filter:blur(9px);
}


/* =========================================================
   ROAD
========================================================= */

.tt-road-main{
    fill:none;

    stroke:var(--light-purple);

    stroke-width:30;

    stroke-linecap:round;
    stroke-linejoin:round;

    stroke-dasharray:26 12;

    animation:
        ttRoadMove 1.6s linear infinite;
}


/* =========================================================
   ROAD CENTER LINE
========================================================= */

.tt-road-marking{
    fill:none;

    stroke:var(--white);

    stroke-width:3;

    stroke-linecap:round;

    stroke-dasharray:13 14;

    animation:
        ttRoadCenter 1.3s linear infinite;
}


@keyframes ttRoadMove{

    from{
        stroke-dashoffset:0;
    }

    to{
        stroke-dashoffset:-76;
    }

}


@keyframes ttRoadCenter{

    from{
        stroke-dashoffset:0;
    }

    to{
        stroke-dashoffset:-54;
    }

}


/* =========================================================
   TRAVELING LIGHT
========================================================= */

.tt-travel-light{
    position:absolute;

    left:50%;

    top:880px;

    width:16px;
    height:16px;

    margin-left:-8px;

    border-radius:50%;

    background:var(--purple);

    border:4px solid var(--white);

    box-shadow:
        0 0 0 4px var(--light-purple),
        0 0 22px var(--light-purple);

    z-index:8;

    offset-path:path(
        "M210 960
         C120 920 120 860 210 825
         C300 790 300 750 210 715
         C120 680 120 640 210 605
         C300 570 300 530 210 495
         C120 460 120 420 210 385
         C300 350 300 310 210 275
         C145 250 155 205 210 175
         C250 153 245 120 210 70"
    );

    offset-distance:0%;

    animation:
        ttTravel 10s linear infinite;
}


@keyframes ttTravel{

    0%{
        offset-distance:0%;
    }

    100%{
        offset-distance:100%;
    }

}


/* =========================================================
   MILESTONE
========================================================= */

.tt-milestone{
    position:absolute;

    width:100%;

    height:100px;

    z-index:10;

    opacity:0;

    transform:translateY(15px);

    transition:
        opacity .7s ease,
        transform .7s ease;
}


.tt-milestone.tt-visible{
    opacity:1;

    transform:translateY(0);
}


/* =========================================================
   LEFT / RIGHT POSITION
========================================================= */

.tt-left{
    padding-right:500px;
}


.tt-right{
    padding-left:500px;
}


/* =========================================================
   CARD
========================================================= */

.tt-card{
    position:absolute;

    top:0;

    width:290px;

    min-height:82px;

    padding:11px 14px;

    background:var(--white);

    border-radius:14px;

    border:1px solid var(--light-purple);

    box-shadow:
        0 12px 35px rgba(40,11,54,.09);

    transition:
        transform .4s ease,
        box-shadow .4s ease;
}


.tt-card:hover{
    transform:translateY(-5px);

    box-shadow:
        0 18px 40px rgba(40,11,54,.16);
}


/* LEFT CARD */

.tt-left .tt-card{
    right:500px;
}


/* RIGHT CARD */

.tt-right .tt-card{
    left:500px;
}


/* =========================================================
   CARD TOP
========================================================= */

.tt-card-top{
    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:12px;
}


.tt-card strong{
    display:block;

    color:var(--purple);

    font-size:20px;

    line-height:1;
}


.tt-card h3{
    color:var(--font-purple);

    font-size:11px;

    font-weight:800;

    margin:4px 0 0;

    line-height:1.2;
}


/* =========================================================
   CARD ICON
========================================================= */

.tt-card-icon{
    flex:0 0 auto;

    width:35px;
    height:35px;

    display:flex;

    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:var(--light-purple);

    color:var(--white);

    font-size:17px;

    box-shadow:
        0 7px 18px rgba(197,108,196,.3);
}


/* =========================================================
   CARD TEXT
========================================================= */

.tt-card p{
    color:var(--font-purple);

    font-size:10px;

    line-height:1.4;

    margin:7px 0 0;

    opacity:.7;
}


/* =========================================================
   CONNECTOR
========================================================= */

.tt-connector{
    position:absolute;

    top:39px;

    width:62px;

    height:1px;

    background:var(--light-purple);

    opacity:.9;
}


/* LEFT CONNECTOR */

.tt-left .tt-connector{
    right:438px;
}


/* RIGHT CONNECTOR */

.tt-right .tt-connector{
    left:438px;
}


/* =========================================================
   NODE
========================================================= */

.tt-node{
    position:absolute;

    top:29px;

    left:50%;

    width:20px;
    height:20px;

    margin-left:-10px;

    border-radius:50%;

    background:var(--white);

    border:4px solid var(--purple);

    box-shadow:
        0 0 0 4px var(--light-purple),
        0 0 16px rgba(197,108,196,.4);

    z-index:15;

    animation:ttNodePulse 2.2s ease-in-out infinite;
}


@keyframes ttNodePulse{

    0%,100%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.12);
    }

}


/* =========================================================
   YEAR POSITIONS
========================================================= */

/* TOP → BOTTOM */

.tt-year-2024{
    top:45px;
}

.tt-year-2023{
    top:125px;
}

.tt-year-2021{
    top:225px;
}

.tt-year-2017{
    top:325px;
}

.tt-year-2015{
    top:425px;
}

.tt-year-2014{
    top:525px;
}

.tt-year-2013{
    top:625px;
}

.tt-year-2008{
    top:725px;
}

.tt-year-2000{
    top:825px;
}


/* =========================================================
   START POINT
========================================================= */

.tt-start-point{
    position:absolute;

    left:50%;

    bottom:0;

    width:62px;
    height:28px;

    transform:translateX(-50%);

    border-radius:50%;

    background:var(--light-purple);

    opacity:.18;

    z-index:2;
}


.tt-start-point span{
    position:absolute;

    left:50%;
    top:50%;

    width:19px;
    height:19px;

    transform:translate(-50%,-50%);

    border-radius:50%;

    background:var(--white);

    border:5px solid var(--light-purple);

    box-shadow:
        0 0 0 4px var(--white),
        0 0 18px var(--light-purple);
}


/* =========================================================
   TOP ARROW
========================================================= */

.tt-end-arrow{
    position:absolute;

    top:-4px;

    left:50%;

    transform:translateX(-50%);

    color:var(--light-purple);

    font-size:42px;

    font-weight:900;

    line-height:1;

    z-index:5;

    animation:ttArrowFloat 2s ease-in-out infinite;
}


@keyframes ttArrowFloat{

    0%,100%{
        transform:translate(-50%,0);
    }

    50%{
        transform:translate(-50%,-8px);
    }

}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

    .tt-milestones-heading h2{
        font-size:40px;
    }

    .tt-timeline{
        transform:scale(.9);

        transform-origin:top center;

        margin-bottom:-90px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:700px){

    .tt-milestones{
        padding:65px 15px 75px;
    }


    .tt-milestones-heading{
        margin-bottom:45px;
    }


    .tt-heading-small{
        font-size:10px;

        letter-spacing:2.5px;
    }


    .tt-milestones-heading h2{
        font-size:31px;

        line-height:1.15;
    }


    .tt-milestones-heading p{
        font-size:11px;

        max-width:320px;
    }


    /*
       Rebuild timeline for mobile
    */

    .tt-timeline{
        height:auto;

        max-width:500px;

        padding-left:25px;

        transform:none;

        margin:0 auto;
    }


    /* hide desktop road */

    .tt-road-svg{
        display:none;
    }


    .tt-travel-light{
        display:none;
    }


    .tt-end-arrow{
        display:none;
    }


    .tt-start-point{
        display:none;
    }


    /*
       Vertical line
    */

    .tt-timeline::before{
        content:"";

        position:absolute;

        top:0;
        bottom:0;

        left:13px;

        width:3px;

        background:var(--light-purple);

        opacity:.55;
    }


    /*
       Reset milestones
    */

    .tt-milestone,
    .tt-left,
    .tt-right{
        position:relative;

        top:auto !important;
        left:auto !important;
        right:auto !important;

        width:100%;

        height:auto;

        min-height:150px;

        padding:0 0 25px 48px;

        margin-bottom:10px;
    }


    /*
       Cards
    */

    .tt-left .tt-card,
    .tt-right .tt-card{
        position:relative;

        top:auto;
        left:auto;
        right:auto;

        width:100%;

        min-height:0;
    }


    /*
       Node
    */

    .tt-node{
        position:absolute;

        top:26px;

        left:13px;

        width:18px;
        height:18px;

        margin-left:-7px;

        border-width:4px;
    }


    /*
       Connectors
    */

    .tt-connector,
    .tt-left .tt-connector,
    .tt-right .tt-connector{
        display:none;
    }


    /*
       Card spacing
    */

    .tt-card{
        padding:15px;

        border-radius:15px;
    }


    .tt-card strong{
        font-size:21px;
    }


    .tt-card h3{
        font-size:12px;
    }


    .tt-card p{
        font-size:11px;

        line-height:1.5;

        margin-top:8px;
    }


    .tt-card-icon{
        width:38px;
        height:38px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:420px){

    .tt-milestones{
        padding-left:12px;
        padding-right:12px;
    }


    .tt-milestones-heading h2{
        font-size:28px;
    }


    .tt-milestones-heading p{
        font-size:10px;
    }


    .tt-timeline{
        padding-left:20px;
    }


    .tt-timeline::before{
        left:10px;
    }


    .tt-milestone{
        padding-left:38px;
    }


    .tt-node{
        left:10px;

        margin-left:-7px;
    }


    .tt-card{
        padding:13px;
    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media(prefers-reduced-motion:reduce){

    .tt-road-main,
    .tt-road-marking,
    .tt-travel-light,
    .tt-node,
    .tt-end-arrow{
        animation:none !important;
    }

}




/* award section */

/* SECTION */

.tt-awards-section{
    background:var(--purple);
    padding:100px 20px;
    overflow:hidden;
}

.tt-awards-container{
    max-width:1250px;
    margin:auto;
}

/* HEADING */

.tt-awards-heading{
    text-align:center;
    margin-bottom:70px;
}

.tt-awards-heading span{
    color:var(--light-purple);
    letter-spacing:3px;
    text-transform:uppercase;
    font-size:14px;
}

.tt-awards-heading h2{
    color:var(--white);
    font-size:48px;
    margin:10px 0 18px;
    line-height:1.15;
}

.tt-awards-heading p{
    color:#dcc8df;
    max-width:650px;
    margin:auto;
    line-height:1.8;
}

/* TIMELINE */

.tt-awards-timeline{
    position:relative;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
}

/* CENTER LINE */

.tt-awards-timeline::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:50%;
    transform:translateY(-50%);
    height:4px;
    border-radius:20px;
    background:linear-gradient(
        90deg,
        var(--light-purple),
        var(--white),
        var(--light-purple)
    );
    box-shadow:0 0 20px rgba(197,108,196,.5);
}

/* ITEMS */

.tt-award-item{
    position:relative;
    flex:1;
    display:flex;
    justify-content:center;
}

.tt-award-item::before{
    content:"";
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:22px;
    height:22px;
    background:var(--milky);
    border:5px solid var(--light-purple);
    border-radius:50%;
    z-index:3;
    box-shadow:0 0 18px rgba(197,108,196,.7);
}

/* Alternate cards */

.tt-award-item:nth-child(odd){
    padding-bottom:210px;
}

.tt-award-item:nth-child(even){
    padding-top:210px;
}

/* Connector */

.tt-award-item::after{
    content:"";
    position:absolute;
    width:3px;
    background:var(--light-purple);
    z-index:1;
}

.tt-award-item:nth-child(odd)::after{
    top:50%;
    height:115px;
}

.tt-award-item:nth-child(even)::after{
    bottom:50%;
    height:115px;
}

/* CARD */

.tt-award-card{
    width:270px;
    background:rgba(248,236,226,.08);
    backdrop-filter:blur(10px);
    border:1px solid rgba(197,108,196,.35);
    border-radius:24px;
    padding:28px;
    text-align:center;
    transition:.45s;
    position:relative;
}

.tt-award-card:hover{
    transform:translateY(-10px);
    border-color:var(--white);
    box-shadow:0 20px 45px rgba(197,108,196,.28);
}

/* Trophy */

.tt-award-icon{
    font-size:54px;
    margin-bottom:15px;
    display:inline-block;
    animation:ttFloat 3s ease-in-out infinite;
}

.tt-award-card h3{
    color:var(--white);
    font-size:28px;
    margin-bottom:12px;
}

.tt-award-card p{
    color:#ead9ec;
    line-height:1.7;
}

/* Floating Animation */

@keyframes ttFloat{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(-8px);
    }
}

/* Scroll Animation */

.scroll-animate{
    opacity:0;
    transform:translateY(70px);
    transition:all .9s cubic-bezier(.22,1,.36,1);
}

.scroll-animate.show{
    opacity:1;
    transform:translateY(0);
}

/* MOBILE */

@media(max-width:900px){

.tt-awards-heading h2{
    font-size:36px;
}

.tt-awards-timeline{
    flex-direction:column;
    align-items:flex-start;
    padding-left:45px;
}

.tt-awards-timeline::before{
    left:10px;
    top:0;
    bottom:0;
    width:4px;
    height:auto;
    transform:none;
}

.tt-award-item{
    width:100%;
    justify-content:flex-start;
    padding:0 0 55px 0!important;
}

.tt-award-item::before{
    left:-45px;
    top:38px;
    transform:none;
}

.tt-award-item::after{
    left:-35px;
    top:60px;
    width:3px;
    height:65px!important;
    bottom:auto;
}

.tt-award-item:last-child::after{
    display:none;
}

.tt-award-card{
    width:100%;
}

}

@media(max-width:480px){

.tt-awards-section{
    padding:70px 16px;
}

.tt-awards-heading h2{
    font-size:30px;
}

.tt-award-card{
    padding:22px;
}

.tt-award-icon{
    font-size:44px;
}

.tt-award-card h3{
    font-size:24px;
}

}









/* goal section */

/* SECTION */

.tt-vision-section{
    background:var(--milky);
    padding:100px 20px;
    overflow:hidden;
}

.tt-vision-container{
    max-width:1280px;
    margin:auto;
}

/* HEADING */

.tt-vision-heading{
    text-align:center;
    margin-bottom:65px;
}

.tt-vision-heading span{
    color:var(--light-purple);
    text-transform:uppercase;
    letter-spacing:3px;
    font-size:14px;
    font-weight:600;
}

.tt-vision-heading h2{
    color:var(--font-purple);
    font-size:48px;
    margin:12px 0 18px;
    line-height:1.15;
}

.tt-vision-heading p{
    max-width:700px;
    margin:auto;
    color:#5d4567;
    line-height:1.8;
    font-size:16px;
}

/* GRID */

.tt-vision-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:35px;
}

/* CARD */

.tt-vision-card{
    position:relative;
    background:linear-gradient(180deg,#7A3290 0%, var(--font-purple) 100%);
    border-radius:34px;
    padding:40px 30px;
    text-align:center;
    min-height:420px;

    display:flex;
    flex-direction:column;
    align-items:center;

    border:1px solid rgba(255,255,255,.15);
    box-shadow:0 20px 45px rgba(40,11,54,.15);

    transition:.45s ease;
    overflow:hidden;
}

/* Decorative Glow */

.tt-vision-card::before{
    content:"";
    position:absolute;
    top:-60px;
    right:-40px;
    width:160px;
    height:160px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
}

/* Hover */

.tt-vision-card:hover{
    transform:translateY(-12px);
    box-shadow:0 30px 60px rgba(40,11,54,.28);
}

/* ICON */

.tt-vision-icon{
    width:78px;
    height:78px;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.25);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:36px;
    margin-bottom:24px;

    animation:ttVisionFloat 3s ease-in-out infinite;
}

@keyframes ttVisionFloat{
    0%,100%{transform:translateY(0);}
    50%{transform:translateY(-8px);}
}

/* TEXT */

.tt-vision-card h3{
    color:var(--white);
    font-size:34px;
    line-height:1.2;
    margin-bottom:22px;
}

.tt-vision-card p{
    color:#F3EAF3;
    line-height:1.7;
    font-size:17px;
    text-align:justify;
}

/* SCROLL ANIMATION */

.scroll-animate{
    opacity:0;
    transform:translateY(70px);
    transition:all .9s cubic-bezier(.22,1,.36,1);
}

.scroll-animate.show{
    opacity:1;
    transform:translateY(0);
}

/* TABLET */

@media(max-width:1024px){

.tt-vision-grid{
    grid-template-columns:repeat(2,1fr);
}

.tt-vision-card:last-child{
    grid-column:span 2;
    max-width:500px;
    margin:auto;
}

}

/* MOBILE */

@media(max-width:768px){

.tt-vision-section{
    padding:70px 18px;
}

.tt-vision-heading h2{
    font-size:34px;
}

.tt-vision-grid{
    grid-template-columns:1fr;
    gap:24px;
}

.tt-vision-card{
    min-height:auto;
    padding:35px 24px;
}

.tt-vision-card:last-child{
    grid-column:auto;
    max-width:none;
}

.tt-vision-card h3{
    font-size:28px;
}

.tt-vision-card p{
    font-size:16px;
}

.tt-vision-icon{
    width:68px;
    height:68px;
    font-size:30px;
}

}






/* =========================
   FRANCHISE VIDEO SECTION
========================= */

.franchise-video-section{
    width:100%;
    background:var(--purple);
    padding:90px 5%;
    overflow:hidden;
}

.franchise-video-container{
    width:100%;
    max-width:1280px;
    margin:auto;
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    align-items:center;
    gap:70px;
}

/* =========================
   LEFT CONTENT
========================= */

.video-label{
    display:flex;
    align-items:center;
    gap:18px;
    margin-bottom:24px;
    color:var(--light-purple);
    font-size:12px;
    font-weight:700;
    letter-spacing:4px;
    text-transform:uppercase;
}


.video-heading{
    color:var(--white);
    font-size:clamp(42px,5vw,72px);
    line-height:1.02;
    font-weight:700;
    letter-spacing:-2px;
}

.video-heading span{
    display:block;
    color:var(--light-purple);
}

.video-description{
    max-width:520px;
    margin-top:25px;
    color:var(--white);
    font-size:16px;
    line-height:1.7;
    opacity:.9;
    text-align:justify;
}

.watch-button{
    display:inline-flex;
    align-items:center;
    gap:18px;
    margin-top:34px;
    color:var(--white);
    text-decoration:none;
    font-size:12px;
    font-weight:700;
    letter-spacing:2.5px;
    text-transform:uppercase;
    transition:.3s ease;
}

.watch-button:hover{
    color:var(--light-purple);
    transform:translateX(5px);
}

.watch-icon{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--milky);
    color:var(--purple);
    transition:.3s ease;
}

.watch-button:hover .watch-icon{
    background:var(--light-purple);
    transform:scale(1.08);
}

.watch-icon svg{
    width:17px;
    height:17px;
    fill:currentColor;
    margin-left:3px;
}

/* =========================
   VIDEO CARD
========================= */

.video-card{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    border-radius:24px;
    /* background:var(--font-purple); */
    border:1px solid rgba(248,236,226,.45);
    box-shadow:0 25px 60px rgba(0,0,0,.25);
    cursor:pointer;
}

.video-poster{
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(
            90deg,
            rgba(40,11,54,.10),
            rgba(40,11,54,.10)
        ),
        url("../assets/franchise-video-poster.webp");
    background-size:cover;
    background-position:center;
}

/*
If you don't have a poster image yet, the card will
still use the brand purple background.
*/

.video-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        180deg,
        rgba(40,11,54,.02) 35%,
        rgba(40,11,54,.65) 100%
    );
}

.main-play{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:96px;
    height:96px;
    border:2px solid var(--white);
    border-radius:50%;
    background:var(--milky);
    color:var(--purple);
    display:grid;
    place-items:center;
    transition:.35s ease;
    box-shadow:0 0 0 12px rgba(197,108,196,.18);
}

.video-card:hover .main-play{
    transform:translate(-50%,-50%) scale(1.1);
    background:var(--light-purple);
    box-shadow:0 0 0 16px rgba(197,108,196,.18);
}

.main-play svg{
    width:30px;
    height:30px;
    fill:currentColor;
    margin-left:5px;
}



.video-caption{
    position:absolute;
    right:30px;
    bottom:25px;
    color:var(--white);
    font-size:10px;
    font-weight:700;
    letter-spacing:3px;
    text-transform:uppercase;
}

/* =========================
   MODAL VIDEO
========================= */

.video-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:25px;
    background:rgba(40,11,54,.95);
}

.video-modal.active{
    display:flex;
}

.modal-video{
    position:relative;
    width:min(1100px,100%);
    aspect-ratio:16/9;
    background:var(--purple);
    border-radius:18px;
    overflow:hidden;
}

.modal-video video{
    width:100%;
    height:100%;
    object-fit:contain;
    background:var(--purple);
}

.close-video{
    position:absolute;
    right:15px;
    top:15px;
    z-index:3;
    width:42px;
    height:42px;
    border:1px solid var(--white);
    border-radius:50%;
    background:var(--purple);
    color:var(--white);
    font-size:24px;
    line-height:1;
    cursor:pointer;
}

/* =========================
   TABLET
========================= */

@media(max-width:950px){

    .franchise-video-section{
        padding:70px 5%;
    }

    .franchise-video-container{
        grid-template-columns:1fr;
        gap:45px;
    }

    .video-copy{
        text-align:center;
    }

    .video-label{
        justify-content:center;
    }

    .video-description{
        margin-left:auto;
        margin-right:auto;
    }

    .watch-button{
        justify-content:center;
    }
}

/* =========================
   MOBILE
========================= */

@media(max-width:600px){

    .franchise-video-section{
        padding:58px 18px 65px;
    }

    .franchise-video-container{
        gap:32px;
    }

    .video-label{
        gap:11px;
        margin-bottom:17px;
        font-size:9px;
        letter-spacing:2.8px;
    }

    .video-heading{
        font-size:40px;
        line-height:1.03;
        letter-spacing:-1px;
    }

    .video-description{
        margin-top:18px;
        font-size:13px;
        line-height:1.6;
    }

    .watch-button{
        margin-top:25px;
        font-size:9px;
        letter-spacing:2px;
        gap:12px;
    }

    .watch-icon{
        width:42px;
        height:42px;
    }

    .video-card{
        aspect-ratio:4/3;
        border-radius:18px;
    }

    .main-play{
        width:72px;
        height:72px;
        box-shadow:0 0 0 9px rgba(197,108,196,.18);
    }

    .main-play svg{
        width:24px;
        height:24px;
    }

    .video-caption{
        right:16px;
        bottom:15px;
        font-size:7px;
        letter-spacing:2px;
    }

    .video-modal{
        padding:12px;
    }

    .modal-video{
        border-radius:12px;
    }
}

@media(prefers-reduced-motion:reduce){
    *{
        transition:none!important;
    }
}








/* =====================================================
   TRIMY TONES FAQ SECTION
===================================================== */

.tt-faq-section {
  width: 100%;
  padding: 90px 20px;
  background: #F8ECE2;
  box-sizing: border-box;
  overflow: hidden;
}

.tt-faq-container {
  width: 100%;
  max-width: 950px;
  margin: 0 auto;
}


/* =====================================================
   HEADER
===================================================== */

.tt-faq-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 50px;
}

.tt-faq-label {
  display: inline-block;
  margin-bottom: 13px;

  color: #C56CC4;

  font-size: 11px;
  font-weight: 800;
  letter-spacing: 3px;
  text-transform: uppercase;
}

.tt-faq-header h2 {
  margin: 0;

  color: #2F1337;

  font-size: clamp(34px, 5vw, 52px);
  line-height: 1.08;

  font-weight: 700;
  letter-spacing: -1px;
}

.tt-faq-header h2 span {
  color: #C56CC4;
}

.tt-faq-header p {
  max-width: 620px;

  margin: 17px auto 0;

  color: #2F1337;

  font-size: 14px;
  line-height: 1.7;
}


/* =====================================================
   FAQ LIST
===================================================== */

.tt-faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}


/* =====================================================
   FAQ ITEM
===================================================== */

.tt-faq-item {
  overflow: hidden;

  background: #FFFFFF;

  border: 1px solid #2F1337;

  border-radius: 10px;

  transition: border-color .3s ease;
}

.tt-faq-item.active {
  border-color: #C56CC4;
}


/* =====================================================
   QUESTION
===================================================== */

.tt-faq-question {
  width: 100%;

  display: flex;

  align-items: center;
  justify-content: space-between;

  gap: 20px;

  padding: 20px 22px;

  border: none;
  outline: none;

  background: #FFFFFF;

  color: #2F1337;

  text-align: left;

  font-size: 14px;
  font-weight: 700;

  cursor: pointer;
}

.tt-faq-question > span:first-child {
  flex: 1;
}


/* =====================================================
   PLUS ICON
===================================================== */

.tt-faq-icon {
  width: 32px;
  height: 32px;

  flex: 0 0 32px;

  display: flex;

  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: #280B36;

  color: #FFFFFF;

  font-size: 20px;
  font-weight: 300;

  transition:
    transform .3s ease,
    background .3s ease;
}

.tt-faq-item.active .tt-faq-icon {
  background: #C56CC4;

  transform: rotate(45deg);
}


/* =====================================================
   ANSWER
===================================================== */

.tt-faq-answer {
  display: grid;

  grid-template-rows: 0fr;

  transition: grid-template-rows .35s ease;
}

.tt-faq-answer p {
  min-height: 0;

  overflow: hidden;

  margin: 0;

  padding: 0 22px;

  color: #2F1337;

  font-size: 13px;

  line-height: 1.7;

  transition: padding .35s ease;
  
  text-align:justify;
}

.tt-faq-item.active .tt-faq-answer {
  grid-template-rows: 1fr;
}

.tt-faq-item.active .tt-faq-answer p {
  padding: 0 22px 20px;
}


/* =====================================================
   SHOW MORE
===================================================== */

.tt-faq-more {
  display: flex;

  justify-content: center;

  margin-top: 38px;
}

.tt-faq-more-btn {
  display: inline-flex;

  align-items: center;

  gap: 18px;

  padding: 7px 8px 7px 22px;

  background: #280B36;

  color: #FFFFFF;

  border-radius: 50px;

  text-decoration: none;

  font-size: 11px;

  font-weight: 800;

  letter-spacing: 1px;

  transition: background .3s ease;
}

.tt-faq-more-btn b {
  width: 35px;
  height: 35px;

  display: flex;

  align-items: center;
  justify-content: center;

  border-radius: 50%;

  background: #C56CC4;

  color: #FFFFFF;

  font-size: 18px;

  font-weight: 400;

  transition: background .3s ease;
}

.tt-faq-more-btn:hover {
  background: #C56CC4;
}

.tt-faq-more-btn:hover b {
  background: #280B36;
}


/* =====================================================
   TABLET
===================================================== */

@media (max-width: 768px) {

  .tt-faq-section {
    padding: 70px 20px;
  }

  .tt-faq-header {
    margin-bottom: 40px;
  }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 600px) {

  .tt-faq-section {
    padding: 55px 15px;
  }

  .tt-faq-header {
    margin-bottom: 32px;
  }

  .tt-faq-label {
    font-size: 9px;
    letter-spacing: 2px;
  }

  .tt-faq-header h2 {
    font-size: 30px;
  }

  .tt-faq-header p {
    margin-top: 13px;

    font-size: 12px;

    line-height: 1.6;
  }


  /* FAQ */

  .tt-faq-list {
    gap: 9px;
  }

  .tt-faq-question {
    padding: 16px;

    gap: 12px;

    font-size: 12px;

    line-height: 1.45;
  }

  .tt-faq-icon {
    width: 29px;
    height: 29px;

    flex-basis: 29px;

    font-size: 18px;
  }

  .tt-faq-answer p {
    padding: 0 16px;

    font-size: 11px;

    line-height: 1.65;
  }

  .tt-faq-item.active .tt-faq-answer p {
    padding: 0 16px 17px;
  }


  /* BUTTON */

  .tt-faq-more {
    margin-top: 28px;
  }

  .tt-faq-more-btn {
    padding: 6px 7px 6px 18px;

    font-size: 9px;
  }

  .tt-faq-more-btn b {
    width: 31px;
    height: 31px;
  }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media (max-width: 380px) {

  .tt-faq-section {
    padding: 45px 12px;
  }

  .tt-faq-header h2 {
    font-size: 27px;
  }

  .tt-faq-question {
    padding: 14px;

    font-size: 11px;
  }

  .tt-faq-icon {
    width: 27px;
    height: 27px;

    flex-basis: 27px;
  }

}





