/* =====================
LOADER
===================== */

.loader {

    position: fixed;
    inset: 0;
    background: #fff;
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    transition: .8s;
}

.loader-logo {

    width: 160px;
    height: auto;
    display: block;
    animation: logoIn 1s ease forwards;
}

.loader.hide {

    opacity: 0;
    pointer-events: none;
}

@keyframes logoIn {

    from {
        opacity: 0;
        transform: translateY(15px) scale(.95);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* =====================
BACKGROUND BLOBS
===================== */

.background {

    position:fixed;
    inset:0;
    overflow:hidden;
    z-index:-1;
}

.blob {

    position:absolute;
    border-radius:50%;
    filter:blur(80px);
    opacity:.45;
}

.blob-one {

    width:500px;
    height:500px;
    background:#c7b9ff;
    top:-200px;
    left:-150px;
}

.blob-two {

    width:400px;
    height:400px;
    background:#8ff5e8;
    right:-150px;
    top:300px;
}

.blob-three {

    width:350px;
    height:350px;
    background:#ffd7a8;
    bottom:-100px;
    left:40%;
}


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

.hero-grid{

    position:relative;
    z-index:2;

}
      

.hero {

    padding-top:190px;

    min-height:100vh;

    display:flex;

    align-items:flex-start;

}

.hero-grid {

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:80px;

    align-items:start;

}

.pill {

    display:inline-flex;
    padding:10px 18px;
    border-radius:50px;
    background:white;
    border:1px solid var(--border);
    font-size:14px;
    margin-bottom:30px;

}

.hero h1 {

font-size:clamp(38px,5vw,58px);
    margin-bottom:30px;

}

.hero h1 span {

    background:
    linear-gradient(
        90deg,
        var(--accent),
        var(--accent-two)
    );

    -webkit-background-clip:text;
    color:transparent;

}

.hero p {

    font-size:20px;
    line-height:1.7;
    color:var(--muted);
    max-width:550px;
    margin-bottom:40px;

}

.hero-buttons {

    display:flex;
    gap:18px;

}

/* BUTTONS */

.button-group{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
}

.button{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:16px 30px;
    border-radius:50px;
    font-weight:600;
    transition:.3s ease;
}

/* PRIMARY */

.button.primary{
    color:#fff;
    background:#111;
    border:2px solid transparent;
    background-clip:padding-box;
    position:relative;
}

.button.primary::before{
    content:"";
    position:absolute;
    inset:-2px;
    border-radius:50px;
    background:linear-gradient(
        90deg,
        #EC4899,
        #8B5CF6,
        #3B82F6,
        #06B6D4,
        #EC4899
    );
    background-size:300% 100%;
    animation:buttonStroke 6s linear infinite;
    z-index:-1;
}

.button.primary::after{
    content:"";
    position:absolute;
    inset:2px;
    border-radius:50px;
    background:#111;
    z-index:-1;
}

/* SECONDARY */

.button.secondary{
    padding:16px 10px;
    background:transparent;
    border:none;
    color:#111;
    gap:8px;
}

.button.secondary::after{
    content:"→";
    font-size:18px;
    transition:.3s ease;
}

.button.secondary:hover::after{
    transform:translateX(5px);
}

/* HOVER */

.button:hover{
    transform:translateY(-4px);
}

.button.primary:hover{
    box-shadow:
        0 15px 40px rgba(139,92,246,.25);
}

/* COLOR MOTION */

@keyframes buttonStroke{
    from{
        background-position:0% 50%;
    }
    to{
        background-position:300% 50%;
    }
}


/* MOBILE */

@media(max-width:768px){

    .button-group{
        flex-direction:row;
        align-items:center;
        gap:14px;
    }

    .button{
        padding:14px 22px;
        white-space:nowrap;
    }

    .button.secondary{
        padding:14px 8px;
    }

}

/* HERO CARD */

.hero-card {

    position:relative;

}

.hero-gallery{

    position:relative;

    width:100%;
    height:650px;

}

.property-thumb{

    position:absolute;

    width: clamp(140px, 18vw, 220px);

    aspect-ratio:1;

    border-radius:28px;

    overflow:visible;

    animation:float 11s ease-in-out infinite;

}

.property-thumb img{

    width:100%;
    height:100%;

    object-fit:cover;

    border-radius:28px;


}

.thumb-1{

    top:0;
    left:12%;

}

.thumb-2{

    top:140px;
    right:0;

    animation-delay:2s;

}

.thumb-3{

    bottom:80px;
    left:0;

    animation-delay:1s;

}

.thumb-4{

    bottom:0;
    right:15%;

    animation-delay:3s;

}

.location-pill{

    position:absolute;

    padding:10px 18px;

    background:white;

    color:#111;

    border-radius:999px;

    font-size:14px;

    font-weight:500;

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

}

.thumb-1 .location-pill{

    top:-12px;
    left:18px;

}

.thumb-2 .location-pill{

    bottom:-14px;
    right:22px;

}

.thumb-3 .location-pill{

    top:50%;
    left:-28px;

}

.thumb-4 .location-pill{

    bottom:18px;
    left:-20px;

}

@keyframes float{

    0%,100%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-14px);

    }

}

@media(max-width:900px){

.hero-gallery{

    height:520px;

    width:120%;

    left:-10%;

}


/* slightly larger cards */

.property-thumb{

    width:clamp(150px,42vw,190px);

    border-radius:24px;

}


/* create more organic layout */

.thumb-1{

    top:20px;
    left:8%;

}


.thumb-2{

    top:90px;
    right:-8%;

}


.thumb-3{

    bottom:80px;
    left:-6%;

}


.thumb-4{

    bottom:10px;
    right:12%;

}


/* softer floating */

.property-thumb{

    animation-duration:14s;

}


/* pill adjustments */

.location-pill{

    padding:8px 14px;

    font-size:12px;

}


/* individual pill positions */

.thumb-1 .location-pill{

    top:-10px;
    left:20px;

}


.thumb-2 .location-pill{

    bottom:-12px;
    right:15px;

}


.thumb-3 .location-pill{

    top:45%;
    left:-20px;

}


.thumb-4 .location-pill{

    bottom:15px;
    left:-15px;

}

}


/* =====================
SECTION TITLES
===================== */

.section-title {

    max-width:720px;
    margin-bottom:70px;
    position:relative;

}

.section-title h2 {

    font-size:clamp(38px,5vw,58px);
    margin-bottom:20px;

}

.section-title p {

    color:var(--muted);
    font-size:18px;
    line-height:1.7;

}

.title-bubble {

    position:absolute;
    width:55px;
    height:55px;
    border-radius:50%;

    background:
    linear-gradient(
        135deg,
        var(--accent),
        var(--accent-two)
    );

    filter:blur(18px);
    opacity:.45;
    top:-25px;
    left:-25px;

}
      
/* =====================
SERVICE CARDS
===================== */

/* =====================
SERVICE GRID
===================== */

.cards-grid {

    display:grid;

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

    gap:25px;

}


/* first row - two 50% cards */

.service-card:nth-child(1),
.service-card:nth-child(2){

    grid-column:span 3;

}


/* second row - three equal cards */

.service-card:nth-child(3),
.service-card:nth-child(4),
.service-card:nth-child(5){

    grid-column:span 2;

}

.service-card {

    position:relative;

    overflow:hidden;

    min-height:420px;

    display:flex;

    flex-direction:column;

    justify-content:space-between;


    background:
    linear-gradient(
        135deg,
        rgba(124,92,255,.18),
        rgba(0,230,255,.12),
        rgba(255,255,255,.7)
    );


    backdrop-filter:blur(20px);


    border-radius:28px;

    border:1px solid rgba(255,255,255,.5);

    padding:35px;


    transition:
    transform .45s ease,
    box-shadow .45s ease;

}


/* AI glow */

.service-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:
    radial-gradient(
        circle at top right,
        rgba(0,255,255,.35),
        transparent 45%
    );


    opacity:.7;

    pointer-events:none;

}


/* content above effects */

.card-content{

    position:relative;

    z-index:2;

}


.service-card h3{

    font-size:26px;

    margin-bottom:18px;

}


.service-card p{

    color:#555;

    line-height:1.7;

}

.service-card img{

    width:calc(100% + 70px);

    height:180px;

    object-fit:cover;


    margin-left:-35px;

    margin-bottom:-35px;


    transition:
    transform .6s ease;

}


/* hover gradient stroke */

.service-card:hover{

    transform:translateY(-10px);


    border:3px solid transparent;


    background:
    linear-gradient(
        135deg,
        rgba(255,255,255,.8),
        rgba(255,255,255,.8)
    ) padding-box,


    linear-gradient(
        135deg,
        #00ffff,
        #7c5cff,
        #ff4fd8
    ) border-box;


    box-shadow:

    0 30px 80px rgba(124,92,255,.25);

}


/* image only zoom */

.service-card:hover img{

    transform:scale(1.05);

}

@media(max-width:900px){

    .cards-grid{

        grid-template-columns:1fr;

    }


    .service-card:nth-child(n){

        grid-column:auto;

    }

}
/* =====================
WHY FLORIDA
===================== */

.tm-heal100{

display:flex;
min-height:700px;
overflow:hidden;
background:transparent;
font-family:inherit;

}

.tm-heal100__visual,
.tm-heal100__content{

width:50%;
position:relative;

}

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

.tm-heal100__content{

display:flex;
flex-direction:column;
justify-content:center;
padding:80px;

}

/* Uses your site's existing H2 styling */

.tm-heal100__headline{

margin-bottom:20px;

}

.tm-heal100__content > p {

margin-bottom:50px;

}

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

      .tm-heal100__stats{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    column-gap:40px;
    row-gap:70px;
    margin-top:40px;
}

.tm-heal100__number{

    font-family: "Inter", sans-serif;
    font-size:96px;
    font-weight:300;
    line-height:1;
    letter-spacing:-1px;

    background:linear-gradient(
        90deg,
        #EC4899 0%,
        #C026D3 45%,
        #8B5CF6 100%
    );

    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;

}

.tm-heal100__label{
margin-top:20px;
font-family:inherit;
font-size:15px;
letter-spacing:.5px;
color:#666;

}

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

.tm-heal100__bg{

position:absolute;
inset:0;

background:url("abstract-bg.png")
center center /
contain
no-repeat;

opacity:.25;
pointer-events:none;

}

.tm-heal100__floating{

position:absolute;
inset:0;

}

.tm-heal100__logo{
    position:absolute;
    width:clamp(90px, 7vw, 150px);
    height:auto;
    animation:tm-heal100-float 8s ease-in-out infinite;
}

/* Logo Positions */

.tm-heal100__logo--1{

top:8%;
left:10%;

}

.tm-heal100__logo--2{

top:25%;
right:12%;

}

.tm-heal100__logo--3{

top:40%;
left:35%;

}

.tm-heal100__logo--4{

bottom:20%;
left:12%;

}

.tm-heal100__logo--5{

bottom:8%;
right:15%;

}

.tm-heal100__logo--6{

top:60%;
right:35%;

}

.tm-heal100__logo--7{

top:12%;
left:55%;

}

/* Different floating speeds */

.tm-heal100__logo:nth-child(2){

animation-duration:11s;

}

.tm-heal100__logo:nth-child(3){

animation-duration:9s;

}

.tm-heal100__logo:nth-child(4){

animation-duration:13s;

}

.tm-heal100__logo:nth-child(5){

animation-duration:10s;

}

.tm-heal100__logo:nth-child(6){

animation-duration:8s;

}

.tm-heal100__logo:nth-child(7){

animation-duration:12s;

}

@keyframes tm-heal100-float{

0%{

transform:translate3d(0,0,0);

}

50%{

transform:translate3d(8px,-12px,0);

}

100%{

transform:translate3d(0,0,0);

}

}

/* ===============================
   MOBILE LOGO SLIDER
================================ */

.tm-heal100__slider{
    display:none;
    overflow:hidden;
    padding:40px 0;
    width:100%;
}

.tm-heal100__track{
    display:flex;
    align-items:center;
    gap:60px;
    width:max-content;
    animation:tm-heal100-slide 18s linear infinite;
    will-change:transform;
}

.tm-heal100__track img{
    width:70px;
    height:70px;
    object-fit:contain;
    flex:0 0 70px;
    max-width:none;
}

@keyframes tm-heal100-slide{
    from{
        transform:translateX(0);
    }
    to{
        transform:translateX(-50%);
    }
}

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

@media(max-width:768px){

    .tm-heal100{
        flex-direction:column;
    }

    .tm-heal100__visual,
    .tm-heal100__content{
        width:100%;
    }

    .tm-heal100__bg,
    .tm-heal100__floating{
        display:none;
    }

    .tm-heal100__slider{
        display:block;
    }

    .tm-heal100__content{
        order:1;
        padding:40px 24px;
    }

    .tm-heal100__visual{
        order:2;
    }

    .tm-heal100__text{
        font-size:16px;
        margin-bottom:40px;
    }

    .tm-heal100__stats{
        grid-template-columns:repeat(2,1fr);
        gap:30px;
    }

    .tm-heal100__number{
        font-size:42px;
    }
}

      
/* =====================
APPROACH TIMELINE
===================== */

.timeline {

    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:25px;

}

.step {

    position:relative;
    background:white;
    border-radius:var(--radius-md);
    padding:35px;
    border:1px solid var(--border);

}

.step span {

    display:inline-flex;
    width:45px;
    height:45px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#111;
    color:white;
    margin-bottom:25px;
    font-size:14px;

}

.step h3 {

    font-size:26px;
    margin-bottom:15px;
    letter-spacing:0px;

}

.step p {

    color:var(--muted);
    line-height:1.6;

}

/* =====================
INDUSTRIES
===================== */

.industry-tags {

    display:flex;
    flex-wrap:wrap;
    gap:15px;

}

.industry-tags span {

    padding:16px 25px;
    background:white;
    border-radius:50px;
    border:1px solid var(--border);
    font-weight:500;
    transition:.3s;

}

.industry-tags span:hover {

    background:#111;
    color:white;
    transform:translateY(-5px);

}

      #industries {
    padding-bottom:0px;
          padding-top:80px;
}

      


/* =====================
ANIMATIONS
===================== */

.reveal {

    opacity:0;

    transform:
    translateY(40px);

    transition:
    opacity .8s ease,
    transform .8s ease;

}

.reveal.active {

    opacity:1;

    transform:
    translateY(0);

}

.floating-bubble {

    position:absolute;
    border-radius:50%;

    animation:
    float 7s infinite ease-in-out;

}

.bubble-a {

    width:130px;
    height:130px;
    background:#c9baff;
    top:-50px;
    right:-40px;
    filter:blur(10px);

}

.bubble-b {

    width:90px;
    height:90px;
    background:#80eee0;
    bottom:30px;
    left:-30px;

}

@keyframes float {

    50% {

        transform:
        translateY(-25px);

    }

}

/* =====================
RESPONSIVE
===================== */

@media(max-width:1000px){

.hero-grid {

    grid-template-columns:1fr;
    gap:50px;

}

.cards-grid {

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

}

.feature-grid {

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

}

.timeline {

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

}

}




@media(max-width:760px){

.section {

    padding:80px 0;

}
    

.hero {

    padding-top:150px;

}

.hero h1 {

    font-size:40px;
        line-height:1.25;

}

.hero p {

    font-size:17px;

}

.hero-buttons {

    flex-direction:column;

}

.glass-card {

    padding:30px;

}

.glass-card h3 {

    font-size:28px;

}

.cards-grid,
.feature-grid,
.timeline {

    grid-template-columns:1fr;

}

.founder-box {

    padding:35px;

}

.founder-box p {

    font-size:21px;

}
}

/* =====================
ACCESSIBILITY
===================== */


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

* {

    animation:none!important;

    transition:none!important;

}

}




@media(max-width:600px){

    .h1{
        font-size:30px;
    }

    .h2 {
        font-size:22px;
    }
    
    .p{
        font-size:14px;
    }

}




/* =========================
TESTIMONIALS
========================= */


.tm-testimonials{
padding:120px 0;
overflow:hidden;
}


.tm-testimonials__container{
position:relative;
}



.tm-testimonials-slider{
overflow:hidden;
margin-top:60px;
}



.tm-testimonials-track{

display:flex;
gap:30px;
transition:transform .6s ease;

}



.tm-testimonial-card{

min-width:380px;
background:white;
border-radius:28px;
padding:40px;

box-shadow:
0 25px 60px rgba(0,0,0,.08);

}



.tm-testimonial-quote{

font-size:18px;
line-height:1.7;
color:#444;

margin-bottom:35px;

font-style:italic;

}



.tm-testimonial-person{

display:flex;
align-items:center;
gap:20px;

}



.tm-testimonial-person img{

width:95px;
height:95px;

border-radius:50%;

object-fit:cover;

}



.tm-testimonial-person strong{

display:block;

font-size:18px;

color:#111;

}



.tm-testimonial-person span{

display:block;

margin-top:6px;

font-size:14px;

color:#777;

}



@media(max-width:768px){

.tm-testimonial-card{

min-width:85vw;

}

}
