.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:transparent;overflow:hidden}.hero:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(74,124,89,.08) 0%,transparent 70%);pointer-events:none;z-index:0}.hero__content{position:relative;z-index:1;text-align:center;max-width:800px;padding:2rem}.hero__title{font-size:4rem;font-weight:700;margin-bottom:1rem;letter-spacing:-1px}.hero__logo{height:180px;width:auto}.hero__slogan{font-size:1.25rem;color:var(--text-secondary);margin-bottom:2.5rem;line-height:1.6}.hero__cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}.hero__stats{display:flex;gap:3rem;justify-content:center;flex-wrap:wrap;padding-top:2rem;border-top:1px solid rgba(74,124,89,.15)}.counter{text-align:center}.counter__value{display:block;font-family:var(--font-heading);font-size:2.5rem;font-weight:700;background:var(--gradient-green);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.counter__label{display:block;font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}@media(max-width:768px){.hero__title{font-size:2.5rem}.hero__logo{height:120px}.hero__slogan{font-size:1rem}.hero__stats{gap:2rem}.counter__value{font-size:2rem}.hero:after{width:350px;height:350px}}.hero-fade[data-astro-cid-anhloy43]{opacity:0;transform:translateY(20px);animation:heroFadeIn .8s ease forwards;animation-delay:var(--delay, 0s)}@keyframes heroFadeIn{to{opacity:1;transform:translateY(0)}}.services{background:#1a1a1ae0;position:relative;z-index:1}.services:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(74,124,89,.3),transparent)}.services__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;align-items:stretch}.services__grid>*{height:100%}@media(max-width:768px){.services__grid{grid-template-columns:1fr}}.service-card{background:var(--bg-card);border:1px solid rgba(255,255,255,.05);border-radius:var(--card-radius);padding:2rem;display:flex;flex-direction:column;height:100%;transition:all var(--transition-normal);cursor:pointer;position:relative;overflow:hidden}.service-card:before{content:"";position:absolute;top:0;left:0;width:60px;height:60px;background:radial-gradient(circle at 0 0,rgba(74,124,89,.1) 0%,transparent 70%);transition:all var(--transition-normal);pointer-events:none}.service-card:hover{border-color:#4a7c5966;box-shadow:var(--glow-green-subtle);transform:translateY(-2px)}.service-card:hover:before{width:100px;height:100px;background:radial-gradient(circle at 0 0,rgba(74,124,89,.15) 0%,transparent 70%)}.service-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.service-card__icon{width:60px;height:60px;border-radius:12px;background:#4a7c591f;border:1px solid rgba(74,124,89,.15);display:flex;align-items:center;justify-content:center;color:var(--green-sage);transition:all var(--transition-normal)}.service-card:hover .service-card__icon{background:#4a7c5933;box-shadow:var(--glow-green-subtle)}.service-card__title{font-size:1.15rem;margin-bottom:.75rem;font-family:var(--font-body);font-weight:600}.service-card__desc{color:var(--text-secondary);font-size:.9rem;line-height:1.5;flex-grow:1;margin-bottom:1rem}.service-card__chevron{color:var(--accent-light);opacity:.4;transition:all var(--transition-fast)}.service-card:hover .service-card__chevron{opacity:1;transform:translate(4px)}.service-modal{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.service-modal__content{background:var(--bg-secondary);border:1px solid rgba(74,124,89,.2);border-radius:16px;padding:2.5rem;max-width:550px;width:100%;position:relative;box-shadow:var(--glow-green-subtle)}.service-modal__close{position:absolute;top:1rem;right:1.25rem;background:none;color:var(--text-secondary);font-size:1.5rem;line-height:1}.service-modal__close:hover{color:var(--text-primary)}.service-modal__icon{width:70px;height:70px;border-radius:14px;background:#4a7c5926;border:1px solid rgba(74,124,89,.2);display:flex;align-items:center;justify-content:center;color:var(--green-sage);margin-bottom:1.5rem}.service-modal__content h3{font-size:1.4rem;margin-bottom:1rem;font-family:var(--font-body);font-weight:600}.service-modal__content p{color:var(--text-secondary);line-height:1.7}.service-modal__cta{margin-top:1.5rem;align-self:flex-start}.about{background:transparent;position:relative;overflow-x:hidden}.about:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(74,124,89,.3),transparent)}.about__content{display:grid;grid-template-columns:1fr 1.5fr;gap:3rem;align-items:center;margin-bottom:4rem}.about__photo{border-radius:var(--card-radius);overflow:hidden;aspect-ratio:1;max-width:350px;border:1px solid rgba(74,124,89,.2);box-shadow:var(--glow-green-subtle)}.about__photo img{width:100%;height:100%;object-fit:cover}.about__photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--green-dark),var(--green-forest));display:flex;align-items:center;justify-content:center}.about__photo-placeholder img{width:60%;height:auto;opacity:.7}.about__bio{font-size:1.05rem;line-height:1.8;color:var(--text-secondary);margin-bottom:1.5rem}.about__collab{font-size:.95rem;color:var(--accent-light);font-style:italic}.about__timeline{position:relative;padding-left:2rem;margin-top:2rem}.about__timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--green-forest);opacity:.4}.timeline-item{display:flex;align-items:flex-start;gap:1.5rem;margin-bottom:2rem;position:relative}.timeline-item__year{font-family:var(--font-heading);font-size:1.2rem;font-weight:600;color:var(--accent-light);min-width:60px}.timeline-item__dot{position:absolute;left:-2.45rem;top:8px;width:10px;height:10px;border-radius:50%;background:var(--green-moss);border:2px solid var(--bg-primary);box-shadow:0 0 8px #4a7c5966}.timeline-item__content h4{font-family:var(--font-body);font-weight:600;font-size:1rem;margin-bottom:.25rem}.timeline-item__content p{color:var(--text-secondary);font-size:.9rem}@media(max-width:768px){.about__content{grid-template-columns:1fr;text-align:center}.about__photo-wrap{display:flex;justify-content:center}.about__photo{max-width:250px}}.gallery{background:#1a1a1ae0;position:relative;z-index:1}.gallery:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(74,124,89,.3),transparent)}.gallery__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.gallery__empty{text-align:center;color:var(--text-secondary);font-style:italic;padding:3rem 0}.gallery__show-more{display:none}@media(max-width:1024px){.gallery__grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.gallery__grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.gallery__grid--collapsed>.scroll-reveal-item:nth-child(n+5){display:none}.gallery__show-more{display:flex;justify-content:center;margin-top:1.5rem}.gallery__show-more-btn{background:transparent;border:1px solid rgba(74,124,89,.4);color:var(--green-main);padding:.6rem 1.5rem;border-radius:var(--card-radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.gallery__show-more-btn:hover{background:#4a7c591a;border-color:var(--green-main)}}.gallery-card{border-radius:var(--card-radius);overflow:hidden;background:var(--bg-card);border:1px solid rgba(255,255,255,.05);transition:all var(--transition-normal)}.gallery-card:hover{border-color:#4a7c5959;box-shadow:var(--glow-green-subtle)}.gallery-card__image{position:relative;aspect-ratio:16 / 10;overflow:hidden}.gallery-card__image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.gallery-card:hover .gallery-card__image img{transform:scale(1.05)}.gallery-card__placeholder{width:100%;height:100%;background:var(--gray-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--gray-mid)}.gallery-card__placeholder-url{font-size:.7rem;opacity:.6;max-width:80%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-card__overlay{position:absolute;inset:0;background:#0a0a0abf;backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;opacity:0;transition:opacity var(--transition-normal);color:var(--white-pure);font-weight:500;font-size:.85rem;text-decoration:none}.gallery-card:hover .gallery-card__overlay{opacity:1}.gallery-card__overlay svg{filter:drop-shadow(0 0 6px rgba(74,124,89,.4))}.gallery-card__info{padding:.85rem 1rem}.gallery-card__info h3{font-family:var(--font-body);font-weight:600;font-size:.9rem;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-card__info p{color:var(--text-secondary);font-size:.8rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:768px){.gallery-card__info{padding:.6rem .75rem}.gallery-card__info h3{font-size:.8rem}.gallery-card__info p{font-size:.75rem;-webkit-line-clamp:1}}.tarifs{background:#1a1a1ae0;position:relative;z-index:1}.tarifs:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(74,124,89,.3),transparent)}.tarifs__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;align-items:stretch}.tarifs__grid>*{height:100%}.tarif-card{background:var(--bg-card);border:1px solid rgba(74,124,89,.15);border-radius:var(--card-radius);padding:2rem 1.5rem;display:flex;flex-direction:column;height:100%;transition:all .3s ease;position:relative}.tarif-card:hover{border-color:#4a7c5966;box-shadow:var(--glow-green-subtle);transform:translateY(-4px)}.tarif-card__icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--green-forest),var(--green-moss));display:flex;align-items:center;justify-content:center;color:var(--text-primary);margin-bottom:1.25rem}.tarif-card__name{font-family:var(--font-heading);font-size:1.15rem;font-weight:600;margin-bottom:.75rem;color:var(--text-primary)}.tarif-card__price{font-size:1.6rem;font-weight:700;color:var(--green-moss);margin-bottom:.75rem;line-height:1.2}.tarif-card__desc{color:var(--text-secondary);font-size:.88rem;line-height:1.6;margin-bottom:1.25rem;flex-grow:1}.tarif-card__features{list-style:none;padding:1rem 0 0;margin:0;border-top:1px solid rgba(74,124,89,.1)}.tarif-card__features li{position:relative;padding-left:1.5rem;color:var(--text-secondary);font-size:.85rem;line-height:1.9}.tarif-card__features li:before{content:"✓";position:absolute;left:0;color:var(--accent-light);font-weight:600}.tarifs__cta{text-align:center;margin-top:2.5rem}.tarifs__cta-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:transparent;color:var(--green-moss);border:1px solid var(--green-moss);border-radius:8px;text-decoration:none;font-weight:500;font-size:.95rem;transition:all .3s ease;cursor:pointer}.tarifs__cta-link:hover{background:var(--green-moss);color:var(--white-pure);transform:translateY(-2px);box-shadow:var(--glow-green-subtle)}@media(max-width:1024px){.tarifs__grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.tarifs__grid{grid-template-columns:1fr}.tarif-card__price{font-size:1.4rem}}.service-area{background:#1a1a1ae0;position:relative;z-index:1;overflow-x:hidden}.service-area:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(74,124,89,.3),transparent)}.service-area__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;align-items:stretch}.service-area__grid>.reveal{display:flex;flex-direction:column}.service-area__grid>.reveal>astro-island{flex:1;display:flex;flex-direction:column}.service-area__map-wrap{flex:1}.service-area__cards{display:flex;flex-direction:column;gap:1.5rem;flex:1}.service-area__card{background:var(--bg-card);border:1px solid rgba(74,124,89,.15);border-radius:var(--card-radius);padding:1.5rem;transition:border-color .3s ease,box-shadow .3s ease}.service-area__card:hover{border-color:#4a7c5966;box-shadow:var(--glow-green-subtle)}.service-area__card-icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,var(--green-forest),var(--green-moss));display:flex;align-items:center;justify-content:center;color:var(--text-primary);margin-bottom:1rem}.service-area__card h3{font-family:var(--font-heading);font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.service-area__card p{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin-bottom:.75rem}.service-area__list{list-style:none;padding:0;margin:0}.service-area__list li{position:relative;padding-left:1.25rem;color:var(--text-secondary);font-size:.85rem;line-height:1.8}.service-area__list li:before{content:"→";position:absolute;left:0;color:var(--accent-light)}.service-area__map-wrap{border-radius:var(--card-radius);overflow:hidden;border:1px solid rgba(74,124,89,.2);box-shadow:var(--glow-green-subtle);display:flex;flex-direction:column}.service-area__map{height:100%;min-height:420px;width:100%;z-index:0}.service-area__map .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(1.1)}.service-area__map .leaflet-marker-pane,.service-area__map .leaflet-popup-pane{filter:invert(1) hue-rotate(180deg)}.map-gesture-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000a6;color:#fff;font-size:.85rem;padding:.5rem 1rem;border-radius:8px;pointer-events:none;z-index:1000;white-space:nowrap;animation:hint-fade 1.5s ease forwards}@keyframes hint-fade{0%{opacity:1}70%{opacity:1}to{opacity:0}}@media(max-width:768px){.service-area__grid{grid-template-columns:1fr}.service-area__map{height:300px}}.contact{background:transparent;position:relative;overflow-x:hidden}.contact:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(74,124,89,.3),transparent)}.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:stretch}.contact__grid>*{height:100%}.contact__form-wrapper{height:100%;display:flex;flex-direction:column}.contact__form{display:flex;flex-direction:column;gap:1rem;flex:1}.contact__form textarea{flex:1}.contact__response-hint{font-size:.85rem;color:var(--text-secondary);opacity:.7;margin-top:-2.5rem;margin-bottom:3rem}.contact__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact__form input,.contact__form textarea{background:var(--gray-dark);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-size:.9rem;transition:border-color var(--transition-fast);width:100%}.contact__form input:focus,.contact__form textarea:focus{border-color:var(--green-moss);box-shadow:0 0 10px #4a7c5926}.contact__form textarea{resize:none;min-height:120px}.contact__actions{margin-top:1rem}.contact__grid>:last-child{grid-column:2;grid-row:1}.contact__form .btn:disabled{opacity:.6;cursor:not-allowed}.contact__success{color:var(--green-sage);font-weight:500}.contact__error{color:#e57373;font-weight:500}@media(max-width:968px){.contact__grid{grid-template-columns:1fr;align-items:start}.contact__grid>*{height:auto}.contact__grid>:last-child{grid-column:auto;grid-row:auto}}@media(max-width:480px){.contact__row{grid-template-columns:1fr}}.appointment{background:var(--bg-secondary);border-radius:16px;border:1px solid var(--glass-border);padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.appointment__header{text-align:center}.appointment__phone-badge{display:inline-flex;align-items:center;gap:.5rem;background:#4a7c5926;color:var(--green-sage);padding:.4rem 1rem;border-radius:20px;font-size:.8rem;font-weight:500;margin-bottom:.75rem}.appointment__phone-badge svg{font-size:.9rem}.appointment__title{font-family:var(--font-heading);font-size:1.4rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary)}.appointment__desc{font-size:.85rem;color:var(--text-secondary);margin:0;line-height:1.5}.appointment__calendar{background:var(--bg-primary);border-radius:12px;border:1px solid rgba(255,255,255,.05);padding:1.25rem}.appointment__cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.appointment__cal-month{font-weight:600;font-size:1rem;color:var(--text-primary);text-transform:capitalize}.appointment__cal-arrow{background:none;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text-secondary);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.appointment__cal-arrow:hover:not(:disabled){border-color:var(--green-moss);color:var(--green-sage)}.appointment__cal-arrow:disabled{opacity:.3;cursor:not-allowed}.appointment__cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.appointment__cal-dayname{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-align:center;padding:.4rem 0;text-transform:uppercase;letter-spacing:.05em}.appointment__cal-empty{aspect-ratio:1}.appointment__cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid transparent;background:none;color:var(--text-primary);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.appointment__cal-day:hover:not(.disabled):not(.selected){background:#4a7c5926;border-color:var(--green-moss)}.appointment__cal-day.today{border-color:#ffffff26;font-weight:600}.appointment__cal-day.selected{background:var(--green-moss);color:var(--white-pure);font-weight:600;border-color:var(--green-moss)}.appointment__cal-day.disabled{opacity:.25;cursor:not-allowed}.appointment__slots-section{animation:slideDown .3s ease}.appointment__slots-label{font-size:.9rem;color:var(--text-secondary);margin:0 0 .75rem}.appointment__slots-label strong{color:var(--text-primary);text-transform:capitalize}.appointment__slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.appointment__slot{padding:.6rem .5rem;border-radius:8px;background:var(--bg-primary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:center}.appointment__slot:hover{border-color:var(--green-moss);color:var(--text-primary);background:#4a7c591a}.appointment__slot.selected{background:var(--green-forest);border-color:var(--green-moss);color:var(--white-pure);box-shadow:0 0 12px #4a7c594d}.appointment__form{display:flex;flex-direction:column;gap:.75rem;animation:slideDown .3s ease}.appointment__form-summary{display:flex;align-items:center;gap:.6rem;background:#4a7c591a;border:1px solid rgba(74,124,89,.2);border-radius:10px;padding:.75rem 1rem;color:var(--green-sage);font-size:.9rem;font-weight:500}.appointment__form-icon{flex-shrink:0;font-size:1.1rem}.appointment__form-summary span{text-transform:capitalize}.appointment__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.appointment__form input,.appointment__form textarea{background:var(--bg-primary);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.75rem 1rem;color:var(--text-primary);font-size:.9rem;font-family:var(--font-body);transition:border-color var(--transition-fast);width:100%}.appointment__form input:focus,.appointment__form textarea:focus{border-color:var(--green-moss);outline:none;box-shadow:0 0 10px #4a7c5926}.appointment__form textarea{resize:vertical;min-height:80px}.appointment__form .btn{align-self:stretch}.appointment__form .btn:disabled{opacity:.5;cursor:not-allowed}.appointment__locale-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-secondary)}.appointment__locale-icon{flex-shrink:0;font-size:1rem;color:var(--text-secondary)}.appointment__locale-select{background:var(--bg-primary);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.5rem .75rem;color:var(--text-primary);font-size:.85rem;font-family:var(--font-body);cursor:pointer;margin-left:auto;transition:border-color var(--transition-fast)}.appointment__locale-select:focus{border-color:var(--green-moss);outline:none}.appointment__loading{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--text-secondary);padding:1rem 0}.appointment__spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--green-moss);border-radius:50%;animation:spin .8s linear infinite}.appointment__no-slots{font-size:.85rem;color:var(--text-secondary);text-align:center;padding:1rem;background:var(--bg-primary);border-radius:8px}.appointment__success{background:#4a7c5926;border:1px solid rgba(74,124,89,.3);border-radius:10px;padding:1rem;color:var(--green-sage);font-weight:500;text-align:center;font-size:.9rem}.appointment__error{color:#e57373;font-weight:500;text-align:center}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.appointment{padding:1.5rem}.appointment__slot-grid{grid-template-columns:repeat(3,1fr)}.appointment__row{grid-template-columns:1fr}}@media(max-width:480px){.appointment{padding:1.25rem}.appointment__slot-grid{grid-template-columns:repeat(2,1fr)}.appointment__cal-grid{gap:2px}.appointment__cal-day{font-size:.8rem}}
