/* Accessibility and layout corrections, preserving the original visual identity. */
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { overflow-wrap: break-word; }
main, section, .container, .contact-info, .about-text { min-width: 0; }
button, input, textarea, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, summary:focus-visible, select:focus-visible,
input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
    outline: 3px solid #c77dff; outline-offset: 5px;
}
.skip-link { position: fixed; top: -100px; left: 20px; padding: 12px 20px; z-index: 11000; background: white; color: #290243; border-radius: 8px; }
.skip-link:focus { top: 15px; }
.menu-toggle { display: none; border: 0; padding: 0; background: transparent; }
.menu-open { overflow: hidden; }
.hero { min-height: 640px; height: 100svh; background-position: center; background-size: cover; background-repeat: no-repeat; }
.hero-content { padding-bottom: 60px; }
.hero-content > div { align-items: center; }
.hero .btn { max-width: 100%; }
.btn-primary { background: #8640bd; }
.custom-cursor, .custom-cursor-dot { display: none; left: 0; top: 0; }
.cursor-ready .custom-cursor, .cursor-ready .custom-cursor-dot { display: block; }
@media (hover: hover) and (pointer: fine) {
    .cursor-ready, .cursor-ready a, .cursor-ready button, .cursor-ready summary { cursor: none; }
}
.reveal-pending { opacity: 0; transform: translateY(24px); }
.about-image img { aspect-ratio: 1; object-fit: cover; }
.experience-badge p { font-size: 1rem; }
.carousel-container { padding-bottom: 12px; }
.carousel-track { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #9d4edd #eee; padding: 12px 0 24px; touch-action: pan-x pan-y; transform: none; transition: none; }
.carousel-track.dragging { scroll-snap-type: none; cursor: grabbing; }
.service-card { scroll-snap-align: start; }
.carousel-btn:disabled { opacity: .35; cursor: default; }
.carousel-btn:disabled:hover { transform: translateY(-50%); background: white; color: var(--primary-color); }
.faq-question { list-style: none; gap: 20px; text-align: left; }
.faq-question::-webkit-details-marker { display: none; }
.faq-question i { flex: 0 0 auto; }
.faq-answer { max-height: none; }
.faq-item[open] .faq-answer { padding-bottom: 25px; }
.faq-item[open] .faq-question i { transform: rotate(180deg); }
.map-placeholder { height: auto; min-height: 400px; }
.map-placeholder > div:last-child { width: 100%; }
.blog-card { display: flex; flex-direction: column; position: relative; }
.news-region { position: absolute; top: 15px; right: 15px; background: #8640bd; color: white; padding: 4px 12px; border-radius: 20px; font-weight: 600; font-size: .75rem; z-index: 1; box-shadow: 0 4px 10px #0003; }
.blog-img { width: 100%; height: 200px; object-fit: cover; }
.blog-content { display: flex; flex-direction: column; flex: 1; }
.blog-content h3 { font-size: 1.25rem; margin-bottom: 15px; color: var(--primary-color); line-height: 1.3; }
.blog-content p { flex: 1; color: #666; font-size: .95rem; line-height: 1.6; margin-bottom: 20px; }
.news-link { color: var(--primary-color); font-weight: 600; padding-bottom: 5px; border-bottom: 2px solid var(--accent-color); align-self: flex-start; }
.news-status { margin: 25px auto 0; text-align: center; max-width: 800px; color: #666; font-size: .875rem; }
.form-note { margin-top: 15px; font-size: .8rem; color: #e2d6ed; }
.contact-info a { overflow-wrap: anywhere; }
.contact-form textarea { resize: vertical; min-height: 130px; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #c7b8d2; opacity: 1; }
.stat-item h2 { color: #cf9df5; }
footer { padding-left: 5% !important; padding-right: 5% !important; }
.nav-content { gap: 24px; }
.nav-links a { transition: color .2s; }
.logo { flex: 0 0 auto; width: clamp(260px, 24vw, 330px); }
.logo img { width: 100%; height: auto; aspect-ratio: 2103 / 748; object-fit: contain; filter: none; }
@media (max-width: 992px) {
    .navbar { padding: 16px 0; }
    .nav-content { gap: 12px; }
    .logo { width: clamp(205px, 62vw, 270px); }
    .logo img { width: 100%; height: auto; }
    .js-menu .menu-toggle { display: flex; width: 44px; height: 44px; padding: 12px 7px; }
    .js-menu .nav-links { visibility: hidden; transition: right .3s, visibility .3s; height: 100dvh; overflow-y: auto; padding: 100px 24px 35px; gap: 24px; }
    .js-menu .nav-links.active { visibility: visible; }
    html:not(.js-menu) .navbar { position: relative; background: #290243; }
    html:not(.js-menu) .nav-content { flex-direction: column; gap: 20px; }
    html:not(.js-menu) .nav-links { position: static; height: auto; flex-direction: row; flex-wrap: wrap; gap: 15px; }
    html:not(.js-menu) .nav-links a { font-size: .8rem; }
    .hero { min-height: 680px; background-attachment: scroll !important; }
    .hero-content { padding-top: 110px !important; padding-bottom: 50px; }
    .hero-content h1 { font-size: clamp(2rem, 6.8vw, 2.5rem); }
    .hero .btn { padding: 14px 24px; font-size: .85rem; }
    .carousel-container { padding-top: 60px; }
    .carousel-btn { display: flex; width: 40px; height: 40px; top: 25px; }
    .carousel-btn.prev { left: auto; right: 60px; }
    .carousel-btn.next { right: 10px; }
    .map-placeholder > div:last-child { padding: 35px 24px !important; }
    .whatsapp-float { right: 18px; bottom: 20px; width: 52px; height: 52px; }
    .scroll-top { left: 18px; bottom: 20px; width: 44px; height: 44px; }
    .about-text h2 { font-size: 2.1rem !important; }
}
@media (max-width: 480px) {
    .hero-content > div { flex-direction: column; gap: 14px !important; }
    .hero .btn { width: min(100%, 290px); }
    .hero-content p { font-size: 1rem; padding: 0; }
    .stats-grid { gap: 30px 16px; }
    .stat-item h2 { font-size: 2.4rem; }
    .stat-item p { font-size: .75rem; }
    .testimonials-grid, .blog-grid { grid-template-columns: minmax(0, 1fr); }
    .contact-form { padding: 25px 18px; }
    .faq-question { padding: 22px 20px; }
    .faq-answer { padding-left: 20px; padding-right: 20px; }
    .experience-badge { bottom: 15px; padding: 16px; }
    .experience-badge > span { font-size: 2rem; }
    .experience-badge p { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .reveal-pending { opacity: 1; transform: none; }
    .parallax-section { background-attachment: scroll !important; }
}
