:root{
    --background:0 0% 100%;
    --foreground:220 20% 15%;
    --card:0 0% 100%;
    --card-foreground:220 20% 15%;
    --popover:0 0% 100%;
    --popover-foreground:220 20% 15%;
    --primary:220 70% 20%;
    --primary-foreground:0 0% 100%;
    --secondary:220 15% 96%;
    --secondary-foreground:220 70% 20%;
    --muted:220 15% 96%;
    --muted-foreground:220 15% 35%;
    --accent:16 100% 42%;
    --accent-foreground:0 0% 100%;
    --accent-text:16 100% 38%;
    --destructive:0 84.2% 60.2%;
    --destructive-foreground:0 0% 100%;
    --border:220 15% 90%;
    --input:220 15% 90%;
    --ring:16 100% 60%;
    --radius:0.5rem
}
*,::after,::before{
    box-sizing:border-box
}
html{
    scroll-behavior:smooth
}
body{
    margin:0;
    background-color:hsl(var(--background));
    color:hsl(var(--foreground));
    font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;
    line-height:1.6;
    /* min-height:100dvh */
}
a{
    color:inherit;
    text-decoration:none
}
p{
    margin:0 0 1rem
}
h1,h2,h3,h4,h5,h6{
    margin:0;
    color:hsl(var(--foreground));
    font-weight:700;
    line-height:1.2
}
button{
    font-family:inherit
}
img{
    display:block;
    max-width:100%;
    height:auto
}
.container{
    width:100%;
    margin-left:auto;
    margin-right:auto;
    padding-left:2rem;
    padding-right:2rem
}
@media (min-width:1400px){
    .container{
        max-width:1400px
    }
}
@media (max-width:640px){
    .container{
        padding-left:1rem;
        padding-right:1rem
    }
}
section{
    padding:5rem 0;
    scroll-margin-top:5.5rem
}
@media (max-width:640px){
    section{
        padding:3.5rem 0
    }
}
@keyframes fade-in{
    from{
        opacity:0;
        transform:translateY(20px)
    }
    to{
        opacity:1;
        transform:translateY(0)
    }
}
.animate-fade-in{
    animation:fade-in .8s ease-out forwards;
    opacity:0
}
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    white-space:nowrap;
    border-radius:var(--radius);
    border:none;
    cursor:pointer;
    font-weight:500;
    line-height:1.2;
    transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;
    text-decoration:none
}
.btn svg{
    pointer-events:none;
    width:1.1rem;
    height:1.1rem;
    flex-shrink:0
}
.btn--lg svg{
    width:1.5rem;
    height:1.5rem
}
.btn svg:not(:last-child){
    margin-right:.5rem
}
.btn:focus-visible{
    outline:2px solid hsl(var(--ring));
    outline-offset:2px
}
.btn:disabled{
    opacity:.6;
    cursor:not-allowed
}
.btn--primary{
    background:hsl(var(--primary));
    color:hsl(var(--primary-foreground));
    box-shadow:0 12px 20px rgba(37,99,235,.25)
}
.btn--primary:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 16px 24px rgba(37,99,235,.32)
}
.btn--accent{
    background:hsl(var(--accent));
    color:hsl(var(--accent-foreground));
    box-shadow:0 12px 25px rgba(233,78,40,.35)
}
.btn--accent:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 10px 30px rgba(233,78,40,.45)
}
.btn--secondary{
    background:hsl(var(--secondary));
    color:hsl(var(--secondary-foreground));
    box-shadow:0 10px 20px rgba(148,163,184,.15)
}
.btn--secondary:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 16px 24px rgba(148,163,184,.2)
}
.btn--outline{
    background:0 0;
    color:hsl(var(--foreground));
    border:1px solid hsl(var(--border))
}
.btn--outline:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 10px 20px rgba(255,255,255,.1)
}
.btn--link{
    background:0 0;
    color:hsl(var(--primary));
    padding:0
}
.btn--link:hover{
    text-decoration:underline
}
.btn--lg{
    padding:1.5rem 2rem;
    font-size:1.125rem;
    height:2.75rem;
    line-height:1.556
}
.btn--icon{
    padding:.75rem;
    width:2.75rem;
    height:2.75rem
}
.card{
    border-radius:var(--radius);
    border:1px solid hsl(var(--border));
    background-color:hsl(var(--card));
    color:hsl(var(--card-foreground));
    box-shadow:0 14px 28px rgba(15,23,42,.08);
    transition:transform .3s ease,box-shadow .3s ease
}
.card-content{
    padding:1.5rem
}
.card-content:not(:first-child){
    padding-top:0
}
.card-footer,.card-header{
    padding:1.5rem
}
.card-title{
    font-size:1.25rem;
    font-weight:600
}
.card-description{
    color:hsl(var(--muted-foreground));
    font-size:.95rem
}
.navbar{
    position:fixed;
    top:0;
    left:0;
    right:0;
    z-index:50;
    padding:.75rem 0;
    transition:background-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease;
    --navbar-link-color:#ffffff;
    --navbar-logo-color:#ffffff;
    color:var(--navbar-link-color);
    background-color:transparent
}
.navbar--scrolled{
    background-color:hsl(var(--background) / .94);
    backdrop-filter:blur(14px);
    box-shadow:0 10px 30px rgba(15,23,42,.12);
    --navbar-link-color:hsl(var(--foreground));
    --navbar-logo-color:hsl(var(--primary))
}
.navbar__inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:5rem;
    min-height:5rem
}
.navbar__logo{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    background:0 0;
    border:none;
    color:inherit;
    cursor:pointer;
    padding:0
}
.navbar__logo img{
    transition:opacity .3s ease
}
.navbar__logo-name{
    font-size:1.5rem;
    font-weight:700;
    letter-spacing:0;
    color:var(--navbar-logo-color);
    transition:color .2s ease
}
.navbar__logo-highlight{
    color:hsl(var(--accent))
}
.navbar__links{
    display:flex;
    align-items:center;
    gap:2rem
}
.navbar__link{
    font-size:1rem;
    font-weight:500;
    background:0 0;
    border:none;
    cursor:pointer;
    color:var(--navbar-link-color);
    transition:color .2s ease
}
.navbar__link:hover{
    color:hsl(var(--accent))
}
.navbar__cta{
    font-size:1rem;
    font-weight:500;
    height:2.5rem;
    padding:.5rem 1rem
}
.navbar__cta svg{
    width:1rem;
    height:1rem
}
.navbar__toggle{
    display:none;
    background:0 0;
    border:none;
    cursor:pointer;
    color:var(--navbar-link-color)
}
.navbar__toggle svg{
    width:1.75rem;
    height:1.75rem
}
.navbar__mobile-menu{
    display:none;
    padding-bottom:1.5rem
}
.navbar__mobile-menu.open{
    display:block
}
.navbar__mobile-menu .btn{
    width:100%
}
.navbar__mobile-links{
    display:flex;
    flex-direction:column;
    gap:1rem
}
.navbar__mobile-link{
    font-size:1rem;
    font-weight:600;
    background:0 0;
    border:none;
    text-align:left;
    cursor:pointer;
    color:hsl(var(--foreground));
    transition:color .2s ease
}
.navbar__mobile-link:hover{
    color:hsl(var(--accent))
}
@media (max-width:900px){
    .navbar__links{
        display:none
    }
    .navbar__toggle{
        display:inline-flex;
        align-items:center;
        justify-content:center
    }
    .navbar__mobile-menu{
        background-color:hsl(var(--background) / .92);
        backdrop-filter:blur(12px);
        border-radius:calc(var(--radius) + .25rem);
        margin-top:.75rem;
        padding:1.25rem 1rem
    }
}
.hero{
    position:relative;
    display:flex;
    justify-content:center;
    overflow:hidden;
    text-align:center;
    color:#fff;
    /* min-height:100dvh */
}
.hero__background{
    position:absolute;
    inset:0;
    z-index:0;
    background-size:cover;
    background-position:center;
    filter:brightness(.9)
}
.hero__overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(rgba(0,0,0,.7),rgba(0,0,0,.7));
    z-index:1
}
.hero__content{
    position:relative;
    z-index:2;
    margin-inline:auto;
    padding:5rem 1rem;
    text-align:center;
    width:100%;
    max-width:none
}
.hero__title{
    font-size:clamp(3rem,6vw,4.5rem);
    margin-bottom:1.5rem;
    color:#fff;
    line-height:1;
    font-weight:700;
    letter-spacing:-.025em
}
.hero__subtitle{
    font-size:clamp(1.25rem,2.5vw,1.5rem);
    margin-bottom:2rem;
    color:rgba(255,255,255,.9);
    max-width:48rem;
    margin-left:auto;
    margin-right:auto;
    line-height:1.333
}
.hero__description{
    font-size:clamp(1rem,2.1vw,1.125rem);
    margin-bottom:2rem;
    color:rgba(255,255,255,.9);
    max-width:56rem;
    margin-left:auto;
    margin-right:auto;
    line-height:1.556
}
.hero__actions{
    display:flex;
    flex-direction:column;
    gap:1rem;
    align-items:center;
    justify-content:center;
    margin-bottom:1.5rem
}
@media (min-width:640px){
    .hero__actions{
        flex-direction:row;
        gap:1rem
    }
}
.hero__cta-primary{
    width:100%;
    font-weight:500
}
@media (min-width:640px){
    .hero__cta-primary{
        width:auto
    }
}
.hero__cta-secondary{
    width:100%;
    background:rgba(255,255,255,.1);
    color:#fff;
    border:1px solid rgba(255,255,255,1);
    backdrop-filter:blur(4px);
    font-size:1.125rem;
    font-weight:500;
    height:3.125rem;
    padding:0 2rem;
    border-radius:.375rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1.556
}
@media (min-width:640px){
    .hero__cta-secondary{
        width:auto
    }
}
.hero__cta-secondary:hover{
    background:rgba(255,255,255,1);
    color:hsl(var(--primary))
}
.hero__contact{
    font-size:1.125rem;
    color:rgba(255,255,255,.9);
    line-height:1.75
}
.hero__contact a{
    color:hsl(var(--accent));
    font-weight:600;
    transition:color .2s ease;
    text-decoration:none
}
.hero__contact a:hover{
    color:hsl(var(--accent));
    text-decoration:none
}
.about{
    background-color:hsl(var(--background))
}
.about__grid{
    display:grid;
    gap:3rem;
    align-items:center
}
@media (min-width:960px){
    .about__grid{
        grid-template-columns:1.1fr .9fr
    }
}
.about__title{
    font-size:clamp(2.25rem,4vw,3rem);
    margin-bottom:1.5rem;
    font-weight:800;
    line-height:1.15;
    letter-spacing:-.02em
}
.about__text{
    font-size:1.0625rem;
    color:hsl(var(--muted-foreground));
    margin-bottom:1.75rem;
    line-height:1.75;
    font-weight:400
}
.about__features{
    display:grid;
    gap:1.25rem;
    margin-top:2rem
}
@media (min-width:640px){
    .about__features{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:1rem 1.5rem
    }
}
.about__feature{
    display:flex;
    gap:.875rem;
    align-items:flex-start
}
.about__feature-icon{
    color:hsl(var(--accent));
    flex-shrink:0;
    margin-top:.125rem;
    width:1.375rem;
    height:1.375rem
}
.about__feature-text{
    color:hsl(var(--foreground));
    font-weight:400;
    font-size:.9375rem;
    line-height:1.5
}
.about__card{
    background:hsl(var(--primary));
    color:hsl(var(--primary-foreground));
    border-radius:1.5rem;
    box-shadow:0 25px 50px -12px rgba(0,0,0,.25);
    padding:2.75rem 2.5rem
}
.about__card h3{
    font-weight:700;
    font-size:1.75rem;
    line-height:1.25;
    color:hsl(var(--primary-foreground));
    margin-bottom:2.25rem
}
.about__card-list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:2rem
}
.about__card-item{
    display:flex;
    align-items:center;
    gap:1.5rem
}
.about__card-badge{
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    font-size:1.75rem;
    font-weight:700;
    min-width:70px;
    color:hsl(var(--accent));
    text-transform:uppercase;
    letter-spacing:0
}
.about__card-title{
    font-size:1.0625rem;
    font-weight:600;
    margin-bottom:.25rem;
    line-height:1.3
}
.about__card-subtitle{
    font-size:.9375rem;
    opacity:.9;
    margin:0;
    line-height:1.4;
    font-weight:400
}
.services{
    background-color:hsl(var(--secondary))
}
.services__header{
    text-align:center;
    margin-bottom:3rem
}
.services__title{
    font-size:clamp(2.25rem,4vw,3rem);
    margin-bottom:1rem;
    font-weight:700;
    line-height:1.2
}
.services__subtitle{
    font-size:1.125rem;
    color:hsl(var(--muted-foreground));
    max-width:48rem;
    margin:0 auto
}
.services__grid{
    display:grid;
    gap:1.5rem
}
@media (min-width:768px){
    .services__grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}
@media (min-width:1024px){
    .services__grid{
        grid-template-columns:repeat(4,minmax(0,1fr))
    }
}
.service-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border-radius:.5rem;
    border:1px solid hsl(var(--border));
    background-color:hsl(var(--card));
    color:hsl(var(--card-foreground));
    box-shadow:0 1px 2px 0 rgba(0,0,0,.05);
    transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1);
    height:100%
}
.service-card:hover{
    transform:translateY(-.5rem);
    box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)
}
.service-card__media{
    position:relative;
    height:12rem;
    overflow:hidden
}
.service-card__image{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .3s ease
}
.service-card:hover .service-card__image{
    transform:scale(1.1)
}
.service-card__gradient{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.6) 100%)
}
.service-card__icon{
    position:absolute;
    bottom:1rem;
    left:1rem;
    display:inline-flex;
    padding:.75rem;
    border-radius:50%;
    background:hsl(var(--accent));
    color:hsl(var(--accent-foreground));
    box-shadow:0 12px 20px rgba(233,78,40,.35)
}
.service-card__icon svg{
    width:1.4rem;
    height:1.4rem
}
.service-card__body{
    display:flex;
    flex-direction:column;
    gap:.75rem;
    padding:1.5rem;
    flex:1;
    min-height:0
}
.service-card__title{
    font-size:1.25rem;
    font-weight:700;
    margin-bottom:.75rem;
    margin-top:1.5rem;
    align-self:start
}
.service-card__description{
    color:hsl(var(--muted-foreground));
    align-self:start;
    flex:1
}
.service-card__details{
    font-size:.875rem;
    font-weight:600;
    color:hsl(var(--accent-text));
    margin-top:auto
}
@media (min-width:1024px){
    .service-card__title{
        min-height:4.5rem
    }
}
.contact{
    background-color:hsl(var(--secondary))
}
.contact__header{
    text-align:center;
    margin-bottom:3rem
}
.contact__title{
    font-size:clamp(2.25rem,4vw,3rem);
    margin-bottom:1rem;
    font-weight:700;
    line-height:1.2
}
.contact__subtitle{
    font-size:1.125rem;
    color:hsl(var(--muted-foreground));
    margin:0 auto;
    max-width:48rem
}
.contact__grid-wrapper{
    display:flex;
    justify-content:center;
    width:100%
}
.contact__grid{
    display:grid;
    gap:2rem;
    max-width:70rem
}
@media (min-width:960px){
    .contact__grid{
        grid-template-columns:1fr 1fr
    }
}
.contact__callout{
    background:hsl(var(--primary));
    color:hsl(var(--primary-foreground));
    border-radius:calc(var(--radius) * 2);
    box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);
    padding:2rem;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:0
}
.contact__callout h3{
    font-size:1.875rem;
    font-weight:700;
    line-height:1.2;
    color:hsl(var(--primary-foreground));
    margin-bottom:1rem
}
.contact__callout p{
    color:rgba(255,255,255,.9);
    margin:0;
    font-size:1.125rem;
    margin-bottom:1.5rem;
    line-height:1.75
}
.contact__buttons{
    display:flex;
    flex-direction:column;
    gap:1rem;
    margin-bottom:1.5rem
}
.contact__buttons .btn{
    width:100%;
    font-size:1.25rem;
    height:2.75rem;
    padding:1.5rem 2rem;
    display:flex;
    align-items:center;
    justify-content:center
}
.contact__button-secondary{
    background-color:#fff
}
.contact__availability{
    border-top:1px solid rgba(255,255,255,.2);
    padding-top:1.5rem;
    margin-top:1.5rem;
    font-size:.875rem;
    display:flex;
    align-items:center;
    gap:.75rem
}
.contact__availability svg{
    width:1.25rem;
    height:1.25rem;
    color:hsl(var(--accent))
}
.contact__details{
    display:flex;
    flex-direction:column;
    gap:1.5rem
}
.contact__card{
    display:flex;
    gap:1rem;
    padding:1.5rem;
    border-radius:calc(var(--radius) * 1.25);
    background:hsl(var(--background));
    box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
    transition:box-shadow .3s cubic-bezier(.4,0,.2,1)
}
.contact__card:hover{
    box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)
}
.contact__icon{
    display:inline-flex;
    align-items:flex-start;
    justify-content:center;
    padding:.75rem;
    border-radius:999px;
    background:hsla(var(--accent),.12);
    color:hsl(var(--accent))
}
.contact__icon-wrapper{
    width:3rem;
    height:3rem;
    background-color:hsl(var(--accent) / .1);
    border-radius:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0
}
.contact__icon-wrapper img{
    width:1.5rem;
    height:1.5rem;
    display:block;
    flex-shrink:0;
    filter:invert(41%) sepia(98%) saturate(2234%) hue-rotate(353deg) brightness(96%) contrast(101%)
}
.contact__card-title{
    font-size:1.125rem;
    margin-bottom:.5rem;
    font-weight:600
}
.contact__card-text{
    color:hsl(var(--muted-foreground));
    margin:0
}
.contact__card-link{
    color:hsl(var(--foreground));
    font-weight:600;
    display:inline-block;
    margin-bottom:.25rem;
    font-size:1.125rem;
    transition:color .15s cubic-bezier(.4,0,.2,1)
}
.contact__card-link:hover{
    color:hsl(var(--accent-text))
}
.contact__card-highlight{
    color:hsl(var(--accent-text));
    font-weight:600;
    margin:0;
    margin-top:.5rem
}
.contact__highlight{
    background-color:hsl(var(--accent) / .1);
    border-radius:calc(var(--radius) * 1.25);
    text-align:center;
    padding:1.5rem;
    color:hsl(var(--muted-foreground));
    font-size:.875rem
}
.contact__highlight strong{
    color:hsl(var(--foreground));
    display:block;
    margin-bottom:.5rem
}
.footer{
    background:hsl(var(--primary));
    color:hsl(var(--primary-foreground));
    padding:2rem 0;
    position: static;
    min-height: 180px;
}
.footer__inner{
    display:flex;
    flex-direction:column;
    gap:1.5rem;
    align-items:center;
    text-align:center
}
@media (min-width:768px){
    .footer__inner{
        flex-direction:row;
        justify-content:space-between;
        text-align:left
    }
}
.footer__brand h3{
    font-size:1.5rem;
    line-height:2rem;
    margin-bottom:.5rem;
    font-weight:700;
    color:hsl(var(--primary-foreground))
}
.footer__brand p{
    margin:0;
    opacity:.9;
    font-size:.95rem
}
.footer__copy{
    opacity:.85;
    font-size:.9rem
}