/* ============================================
   Y-SOLARTECH — Solutions solaires & énergies
   Design: Thème clair solaire, accents noir & orange
   ============================================ */

:root {
    --color-bg: #faf8f5;
    --color-bg-warm: #f2efe9;
    --color-bg-card: #ffffff;
    --color-text: #2d2a26;
    --color-text-muted: #6b6560;
    --color-accent: #e8732a;
    --color-accent-light: #f5a623;
    --color-accent-dark: #c45a1a;
    --color-white: #ffffff;
    --color-dark: #1a1710;
    --color-border: rgba(232, 115, 42, 0.2);

    --color-green: #3d9b40;
    --color-yellow: #e8b800;
    --color-orange: #e8932a;
    --color-red: #d43030;

    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Montserrat', system-ui, sans-serif;

    --container: min(1200px, 90vw);
    --gap: clamp(1.5rem, 4vw, 3rem);
}

/* ---- RESET ---- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body {
    font-family: var(--font-body);
    font-weight: 400;
    background: var(--color-bg);
    color: var(--color-text);
    line-height: 1.7;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--color-accent); text-decoration: none; transition: color .3s; }
a:hover { color: var(--color-accent-dark); }
ul { list-style: none; }

.container { width: var(--container); margin: 0 auto; }

/* ---- SECTION TITLES ---- */
.section__tag {
    font-family: var(--font-body);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: .75rem;
}
.section__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 500;
    line-height: 1.15;
    margin-bottom: 2rem;
    color: var(--color-dark);
}
.accent { color: var(--color-accent); }

/* ---- BUTTONS ---- */
.btn {
    display: inline-block;
    font-family: var(--font-body);
    font-size: .8rem;
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 1rem 2.5rem;
    border: 1px solid transparent;
    cursor: pointer;
    transition: all .4s cubic-bezier(.25,.46,.45,.94);
}
.btn--primary {
    background: var(--color-accent);
    color: var(--color-bg);
    border-color: var(--color-accent);
}
.btn--primary:hover {
    background: var(--color-accent-light);
    border-color: var(--color-accent-light);
    color: var(--color-bg);
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(232, 115, 42, .3);
}
.btn--outline {
    background: transparent;
    color: var(--color-dark);
    border-color: rgba(26,23,16,.3);
}
.btn--outline:hover {
    border-color: var(--color-accent);
    color: var(--color-accent);
    transform: translateY(-2px);
}
.btn--full { width: 100%; text-align: center; }

/* ============ NAVIGATION ============ */
.nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 5vw;
    background: rgba(255, 255, 255, .8);
    backdrop-filter: blur(10px);
    transition: all .4s;
}
.nav--scrolled {
    background: rgba(255, 255, 255, .95);
    backdrop-filter: blur(20px);
    padding: .85rem 5vw;
    box-shadow: 0 2px 20px rgba(0,0,0,.06);
}
.nav__logo { display: flex; align-items: center; }
.nav__logo-img {
    height: 40px !important;
    width: auto !important;
    max-height: 40px !important;
    object-fit: contain;
}
.footer__logo-img {
    height: 36px !important;
    width: auto !important;
    max-height: 36px !important;
    object-fit: contain;
    margin-bottom: .5rem;
}
.nav__links {
    display: flex;
    align-items: center;
    gap: 2rem;
}
.nav__links a {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--color-text);
    transition: color .3s;
}
.nav__links a:hover { color: var(--color-accent); }
.nav__cta {
    padding: .6rem 1.5rem;
    border: 1px solid var(--color-accent) !important;
    color: var(--color-accent) !important;
}
.nav__cta:hover {
    background: var(--color-accent) !important;
    color: var(--color-bg) !important;
}
.nav__burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
}
.nav__burger span {
    width: 24px;
    height: 1.5px;
    background: var(--color-dark);
    transition: all .3s;
}

/* ============ HERO ============ */
.hero {
    position: relative;
    height: 100vh;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(170deg, #fff8ef 0%, #fff3e0 30%, #ffecd2 60%, #faf8f5 100%);
    overflow: hidden;
}

/* Sunburst rays */
.hero__sunburst {
    position: absolute;
    top: -30%;
    right: -10%;
    width: 900px;
    height: 900px;
    background: conic-gradient(
        from 0deg,
        transparent 0deg, rgba(232,115,42,.1) 5deg, transparent 10deg,
        transparent 20deg, rgba(245,166,35,.08) 25deg, transparent 30deg,
        transparent 40deg, rgba(232,115,42,.07) 45deg, transparent 50deg,
        transparent 60deg, rgba(255,217,64,.08) 65deg, transparent 70deg,
        transparent 80deg, rgba(232,115,42,.1) 85deg, transparent 90deg,
        transparent 100deg, rgba(245,166,35,.07) 105deg, transparent 110deg,
        transparent 120deg, rgba(232,115,42,.08) 125deg, transparent 130deg,
        transparent 140deg, rgba(255,217,64,.07) 145deg, transparent 150deg,
        transparent 160deg, rgba(232,115,42,.1) 165deg, transparent 170deg,
        transparent 180deg, rgba(245,166,35,.08) 185deg, transparent 190deg,
        transparent 200deg, rgba(232,115,42,.07) 205deg, transparent 210deg,
        transparent 220deg, rgba(255,217,64,.08) 225deg, transparent 230deg,
        transparent 240deg, rgba(232,115,42,.1) 245deg, transparent 250deg,
        transparent 260deg, rgba(245,166,35,.07) 265deg, transparent 270deg,
        transparent 280deg, rgba(232,115,42,.08) 285deg, transparent 290deg,
        transparent 300deg, rgba(255,217,64,.07) 305deg, transparent 310deg,
        transparent 320deg, rgba(232,115,42,.1) 325deg, transparent 330deg,
        transparent 340deg, rgba(245,166,35,.08) 345deg, transparent 350deg,
        transparent 360deg
    );
    border-radius: 50%;
    animation: sunRotate 60s linear infinite;
    pointer-events: none;
}

/* Sun glow orb */
.hero__sun {
    position: absolute;
    top: 8%;
    right: 12%;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(245,166,35,.4) 0%, rgba(232,115,42,.15) 40%, transparent 70%);
    animation: sunPulse 4s ease-in-out infinite;
    pointer-events: none;
}
.hero__sun::after {
    content: '';
    position: absolute;
    inset: -40px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,217,64,.08) 0%, transparent 60%);
    animation: sunPulse 4s ease-in-out infinite reverse;
}

/* Floating particles canvas */
.hero__particles {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.hero__overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 80% 60% at 70% 30%, rgba(232, 115, 42, .12) 0%, transparent 70%),
        radial-gradient(ellipse 60% 50% at 20% 80%, rgba(245, 166, 35, .06) 0%, transparent 60%);
}

/* Animated light streaks */
.hero__streak {
    position: absolute;
    width: 2px;
    background: linear-gradient(to bottom, transparent, rgba(245,166,35,.4), transparent);
    animation: streak 8s ease-in-out infinite;
    pointer-events: none;
}
.hero__streak:nth-child(1) { left: 15%; height: 120px; animation-delay: 0s; top: 10%; }
.hero__streak:nth-child(2) { left: 35%; height: 80px; animation-delay: 2s; top: 5%; transform: rotate(15deg); }
.hero__streak:nth-child(3) { left: 70%; height: 100px; animation-delay: 4s; top: 15%; transform: rotate(-10deg); }
.hero__streak:nth-child(4) { left: 85%; height: 60px; animation-delay: 6s; top: 8%; transform: rotate(20deg); }
.hero__content {
    position: relative;
    text-align: center;
    padding: 2.5rem 3rem;
    background: rgba(255, 255, 255, .7);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(232,115,42,.2);
    box-shadow: 0 8px 40px rgba(232,115,42,.08);
}
.hero__badge {
    display: inline-block;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--color-accent);
    border: 1px solid var(--color-accent);
    padding: .5rem 1.5rem;
    margin-bottom: 2rem;
    animation: fadeInDown .8s ease-out;
}
.hero__title {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 7vw, 5.5rem);
    font-weight: 500;
    line-height: 1.1;
    color: var(--color-dark);
    margin-bottom: 1rem;
    animation: fadeInUp .8s ease-out .2s both;
}
.hero__accent {
    color: var(--color-accent);
    font-style: italic;
}
.hero__subtitle {
    font-size: clamp(.85rem, 1.5vw, 1.1rem);
    font-weight: 400;
    color: var(--color-text-muted);
    letter-spacing: 1px;
    margin-bottom: 2.5rem;
    animation: fadeInUp .8s ease-out .4s both;
}
.hero__actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    animation: fadeInUp .8s ease-out .6s both;
}
.hero__scroll {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    animation: fadeInUp .8s ease-out 1s both;
}
.hero__scroll span {
    font-size: .65rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--color-text-muted);
}
.hero__scroll-line {
    width: 1px;
    height: 40px;
    background: linear-gradient(to bottom, var(--color-accent), transparent);
    animation: scrollPulse 2s ease-in-out infinite;
}

/* ============ SERVICES ============ */
.services {
    padding: clamp(4rem, 10vw, 8rem) 0;
    text-align: center;
}
.services__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-top: 1rem;
}
.service-card {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    padding: 2.5rem 1.5rem 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    transition: all .5s cubic-bezier(.25,.46,.45,.94);
    cursor: pointer;
    position: relative;
    overflow: hidden;
}
.service-card::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .5s;
}
.service-card[data-service="transition"]::before { background: radial-gradient(ellipse at center bottom, rgba(76, 175, 80, .06), transparent 70%); }
.service-card[data-service="solaire"]::before { background: radial-gradient(ellipse at center bottom, rgba(255, 217, 64, .06), transparent 70%); }
.service-card[data-service="stockage"]::before { background: radial-gradient(ellipse at center bottom, rgba(245, 166, 35, .06), transparent 70%); }
.service-card[data-service="thermique"]::before { background: radial-gradient(ellipse at center bottom, rgba(229, 57, 53, .06), transparent 70%); }

.service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .08);
}
.service-card:hover::before { opacity: 1; }
.service-card[data-service="transition"]:hover { border-color: var(--color-green); }
.service-card[data-service="solaire"]:hover { border-color: var(--color-yellow); }
.service-card[data-service="stockage"]:hover { border-color: var(--color-orange); }
.service-card[data-service="thermique"]:hover { border-color: var(--color-red); }

.service-card__icon {
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform .4s;
    position: relative;
    z-index: 1;
}
.service-card:hover .service-card__icon {
    transform: scale(1.15);
}
.service-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 14px;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,.15));
}

.service-card__title {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--color-dark);
    position: relative;
    z-index: 1;
}

.service-card__desc {
    max-height: 0;
    overflow: hidden;
    transition: max-height .5s cubic-bezier(.25,.46,.45,.94), opacity .4s;
    opacity: 0;
    position: relative;
    z-index: 1;
}
.service-card:hover .service-card__desc,
.service-card.active .service-card__desc {
    max-height: 300px;
    opacity: 1;
}
.service-card__desc p {
    font-size: .85rem;
    line-height: 1.7;
    color: var(--color-text-muted);
    text-align: left;
    padding-top: .5rem;
}

/* ============ ABOUT ============ */
.about {
    padding: clamp(4rem, 10vw, 8rem) 0;
    background: var(--color-bg-warm);
}
.about__layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap);
    align-items: center;
}
.about__text p {
    margin-bottom: 1.25rem;
    font-size: .95rem;
    color: var(--color-text);
}
.about__text strong { color: var(--color-dark); font-weight: 600; }
.about__highlights {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--color-border);
}
.about__highlights li {
    font-size: .85rem;
    font-weight: 400;
    color: var(--color-text-muted);
    padding-left: 1.5rem;
    position: relative;
}
.about__highlights li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .5em;
    width: 8px;
    height: 8px;
    border: 1px solid var(--color-accent);
    transform: rotate(45deg);
}

.about__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
.stat {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    padding: 2rem 1.5rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    transition: all .4s;
}
.stat:hover {
    border-color: var(--color-accent);
    transform: translateY(-3px);
    box-shadow: 0 8px 30px rgba(232,115,42,.1);
}
.stat__value {
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--color-accent);
    line-height: 1;
}
.stat__label {
    font-size: .75rem;
    font-weight: 400;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-text-muted);
}

/* ============ AIDES FINANCIÈRES ============ */
.aids {
    padding: clamp(2rem, 5vw, 3rem) 0 clamp(4rem, 10vw, 7rem);
}
.aids__box {
    position: relative;
    background: var(--color-bg-card);
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-accent);
    padding: clamp(2rem, 5vw, 3.5rem);
    box-shadow: 0 8px 40px rgba(232, 115, 42, .06);
}
.aids__title {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3.5vw, 2.4rem);
    font-weight: 500;
    color: var(--color-dark);
    margin-bottom: 1rem;
}
.aids__intro {
    font-size: .95rem;
    color: var(--color-text-muted);
    max-width: 640px;
    margin-bottom: 2rem;
}
.aids__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem 2.5rem;
}
.aids__item {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
}
.aids__check {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    font-weight: 700;
    color: var(--color-white);
    background: var(--color-green);
    border-radius: 50%;
    margin-top: .1rem;
}
.aids__text {
    font-size: .9rem;
    line-height: 1.6;
    color: var(--color-text);
}
.aids__text strong { color: var(--color-dark); font-weight: 600; }

/* ============ ADVANTAGES ============ */
.advantages {
    padding: clamp(4rem, 10vw, 7rem) 0;
    background: linear-gradient(135deg, #e8953a, #f5b35c);
    position: relative;
    overflow: hidden;
}
.advantages::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, .1), transparent 70%);
}
.advantages__content { position: relative; text-align: center; }
.advantages__title { color: #fff; }
.advantages__title-accent { color: #1a0a00; }
.advantages__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}
.advantage__item {
    padding: 2rem;
    border: 1px solid rgba(255,255,255,.3);
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(5px);
    transition: all .4s;
}
.advantage__item:hover {
    border-color: rgba(255,255,255,.5);
    transform: translateY(-3px);
    background: rgba(255,255,255,.18);
}
.advantage__icon {
    display: inline-block;
    width: 36px;
    height: 36px;
    color: #1a0a00;
    margin-bottom: 1rem;
}
.advantage__icon svg { width: 100%; height: 100%; }
.advantage__item h3 {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 600;
    color: #1a0a00;
    margin-bottom: .75rem;
}
.advantage__item p {
    font-size: .85rem;
    color: #3a1a00;
    line-height: 1.6;
}

/* ============ CONTACT ============ */
.contact {
    padding: clamp(4rem, 10vw, 8rem) 0;
}
.contact__layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap);
    align-items: start;
}
.contact__info p {
    font-size: .95rem;
    color: var(--color-text-muted);
    margin-bottom: 2rem;
    max-width: 420px;
}
.contact__details {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.contact__detail {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.contact__detail svg {
    width: 20px;
    height: 20px;
    color: var(--color-accent);
    flex-shrink: 0;
}
.contact__detail a {
    font-size: .9rem;
    color: var(--color-text);
}
.contact__detail a:hover { color: var(--color-accent); }

/* ---- FORM ---- */
.contact__form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.form__group { position: relative; }
.form__group input,
.form__group textarea,
.form__group select {
    width: 100%;
    background: var(--color-white);
    border: 1px solid rgba(0,0,0,.12);
    color: var(--color-dark);
    font-family: var(--font-body);
    font-size: .9rem;
    font-weight: 400;
    padding: 1.25rem 1rem .75rem;
    transition: border-color .3s, box-shadow .3s;
    outline: none;
    appearance: none;
}
.form__group select {
    cursor: pointer;
}
.form__group--select::after {
    content: '';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid var(--color-text-muted);
    pointer-events: none;
}
.form__group textarea { resize: vertical; min-height: 120px; }
.form__group input:focus,
.form__group textarea:focus,
.form__group select:focus {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 3px rgba(232,115,42,.1);
}
.form__group label {
    position: absolute;
    left: 1rem;
    top: 1rem;
    font-size: .85rem;
    color: var(--color-text-muted);
    pointer-events: none;
    transition: all .3s;
}
.form__group input:focus + label,
.form__group input:not(:placeholder-shown) + label,
.form__group textarea:focus + label,
.form__group textarea:not(:placeholder-shown) + label,
.form__group select:focus + label,
.form__group select:valid + label {
    top: .35rem;
    font-size: .65rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-accent);
}

/* ============ FOOTER ============ */
.footer {
    padding: 3rem 0 2rem;
    background: var(--color-dark);
    color: #b0a89e;
}
.footer__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 2rem;
    gap: 2rem;
}
.footer__brand p {
    font-size: .8rem;
    color: var(--color-text-muted);
    margin-top: .5rem;
}
.footer__links {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
}
.footer__links a {
    font-size: .75rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #8a8078;
}
.footer__links a:hover { color: var(--color-accent); }
.footer__bottom {
    display: flex;
    justify-content: space-between;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255,.1);
    gap: 1rem;
    flex-wrap: wrap;
}
.footer__bottom p {
    font-size: .7rem;
    color: #6b6260;
}

/* ============ GLOWING DIVIDERS ============ */
.glow-divider {
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-accent), transparent);
    opacity: .3;
    position: relative;
}
.glow-divider::after {
    content: '';
    position: absolute;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 8px;
    background: radial-gradient(ellipse, rgba(232,115,42,.15), transparent);
    filter: blur(4px);
}

/* ============ SERVICE CARD GLOW EFFECT ============ */
.service-card__glow {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 2px;
    opacity: 0;
    transition: opacity .5s;
    filter: blur(3px);
}
.service-card:hover .service-card__glow { opacity: 1; }
.service-card[data-service="transition"] .service-card__glow { background: var(--color-green); box-shadow: 0 0 15px var(--color-green); }
.service-card[data-service="solaire"] .service-card__glow { background: var(--color-yellow); box-shadow: 0 0 15px var(--color-yellow); }
.service-card[data-service="stockage"] .service-card__glow { background: var(--color-orange); box-shadow: 0 0 15px var(--color-orange); }
.service-card[data-service="thermique"] .service-card__glow { background: var(--color-red); box-shadow: 0 0 15px var(--color-red); }

/* ============ ANIMATIONS ============ */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes scrollPulse {
    0%, 100% { opacity: 1; transform: scaleY(1); }
    50% { opacity: .4; transform: scaleY(.6); }
}
@keyframes sunRotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@keyframes sunPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .6; transform: scale(1.15); }
}
@keyframes streak {
    0%, 100% { opacity: 0; transform: translateY(-20px); }
    20% { opacity: .6; }
    50% { opacity: .3; transform: translateY(40px); }
    80% { opacity: .5; }
}
@keyframes float {
    0%, 100% { transform: translateY(0) translateX(0); }
    25% { transform: translateY(-20px) translateX(10px); }
    50% { transform: translateY(-5px) translateX(-5px); }
    75% { transform: translateY(-15px) translateX(5px); }
}

/* Scroll reveal */
.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity .8s ease-out, transform .8s ease-out;
}
.reveal--visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============ RESPONSIVE ============ */
@media (max-width: 900px) {
    .nav__burger { display: flex; }
    .nav__links {
        position: fixed;
        top: 0;
        right: -100%;
        height: 100vh;
        width: 75vw;
        max-width: 320px;
        background: #fff;
        flex-direction: column;
        justify-content: center;
        gap: 2rem;
        padding: 2rem;
        transition: right .4s cubic-bezier(.25,.46,.45,.94);
        border-left: 1px solid rgba(0,0,0,.08);
        box-shadow: -4px 0 20px rgba(0,0,0,.08);
    }
    .nav__links--open { right: 0; }
    .nav__links a { font-size: .9rem; }

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

    .about__layout,
    .contact__layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .hero__title { font-size: clamp(2rem, 9vw, 3rem); }
    .hero__actions { flex-direction: column; align-items: center; }
    .btn { padding: .9rem 2rem; font-size: .75rem; }

    .services__grid {
        grid-template-columns: 1fr;
    }
    .service-card__desc {
        max-height: none;
        opacity: 1;
    }

    .about__highlights {
        grid-template-columns: 1fr;
    }
    .about__stats {
        grid-template-columns: 1fr 1fr;
    }

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

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

    .footer__top { flex-direction: column; }
    .footer__bottom { flex-direction: column; text-align: center; }
}
