:root{
  --black:#0A0A0A;
  --bg:#0E0E0E;
  --card:#121212;
  --gold:#FFD21F;
  --gold-2:#bd9a26;
  --text:#E9E9E9;
  --muted:#B5B5B5;
  --line:rgba(255,255,255,0.08);
  --shadow:0 10px 30px rgba(0,0,0,0.35);
  --radius:14px;
  --arrow-fill: #0F172A;
  --arrow-stroke: #FFFFFF;
}

/* Reset básico */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Montserrat',sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,var(--black),var(--bg));
  line-height:1.6;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none;padding:0;margin:0}
h1,h2,h3,h4{font-family:'Playfair Display',serif;margin:0 0 .6rem 0;line-height:1.2}
p{margin:.6rem 0 1rem 0}

/* Utilitários */
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}
.section{padding:72px 0;border-top:1px solid var(--line)}
.section-header{max-width:760px;margin:0 auto 36px auto;text-align:center}
.section-header p{color:var(--muted)}

/* Botões */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:.6rem;padding:.9rem 1.2rem;border-radius:999px;border:1px solid var(--gold);
  transition:.25s all ease; font-weight:600; letter-spacing:.2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#111;border-color:transparent}
.btn-primary:hover{
  background: transparent;
  color: var(--gold);
  border-color: var(--gold);
}
.btn-outline{background:linear-gradient(135deg,var(--gold),var(--gold-2));color:#111;border-color:transparent}
.btn-outline:hover{
  background: transparent;
  color: var(--gold);
  border-color: var(--gold);
}
.btn-large{padding:1.05rem 1.4rem;font-size:1.05rem}

/* Header */
.header {
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: saturate(180%) blur(10px);
    background: rgba(10, 10, 10, 0.7);
    border-bottom: 1px solid var(--line);
}

.header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    min-height: 64px;
}

.logo {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-weight: 700;
    letter-spacing: .3px;
    z-index: 1001; /* Ensure logo is above mobile nav */
}

.logo span {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
}

.logo-icon {
    filter: drop-shadow(0 2px 6px rgba(212, 175, 55, .35));
}

/* Mobile Nav & Toggle */
.menu-toggle {
    display: none; /* Hidden by default, shown via media query */
    background: none;
    border: 0;
    padding: 8px;
    cursor: pointer;
    z-index: 1001; /* Above nav */
}

.menu-bar {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--text);
    margin: 4px 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Styles for the 'X' icon when menu is open */
.menu-toggle.open .menu-bar:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}
.menu-toggle.open .menu-bar:nth-child(2) {
    opacity: 0;
}
.menu-toggle.open .menu-bar:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

.nav {
    display: none; /* Hidden by default on all screens */
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Mobile-first styles: apply only on small screens */
@media (max-width: 979px) {
    .menu-toggle {
        display: block; /* Show hamburger on mobile */
    }

    .nav {
        /* Full-screen overlay for mobile nav */
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        position: fixed;
        inset: 0;
        background: rgba(10, 10, 10, 0.98);
        z-index: 1000;
        
        /* Hide by default, show with .open */
        opacity: 0;
        visibility: hidden;
        transform: translateY(-20px);
        transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
    }

    .nav.open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .nav ul {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
    }

    .nav a {
        font-family: 'Playfair Display', serif;
        font-size: 2rem;
        color: var(--text);
        padding: 0.5rem 1rem;
        transition: color 0.3s ease;
    }

    .nav a:hover,
    .nav a.active-link {
        color: var(--gold);
    }
}

/* Desktop Nav: expanded for larger screens */
@media (min-width: 980px) {
    .nav {
        display: flex; /* Show nav on desktop */
        position: static;
        background: none;
        padding: 0;
        border: 0;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
        width: auto;
    }

    .nav ul {
        display: flex;
        flex-direction: row;
        gap: 20px;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
    }

    .nav a {
        padding: 10px 12px;
        border-radius: 10px;
        color: var(--muted);
        font-family: 'Montserrat', sans-serif;
        font-size: 1rem;
    }

    .nav a:hover {
        color: var(--gold);
        background: rgba(212, 175, 55, 0.08);
    }
}

/* Hero */
.hero {
  position: relative;padding: 72px 0;min-height: 100vh;display: flex;
  justify-content: center;align-items: center;
  background-image:
    radial-gradient(800px 400px at 80% -10%, rgba(212,175,55,.08), transparent 60%),
    radial-gradient(600px 300px at 20% -10%, rgba(212,175,55,.06), transparent 60%),
    url(imagens/hero.webp);
  background-size: cover;background-position: center;background-repeat: no-repeat;
}
.hero-overlay {
   position: absolute;inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 0;
}
.hero-inner {
  position: relative;z-index: 1;display: grid;grid-template-columns: 1fr;
  gap: 32px;align-items: center;text-align: center;
}
.hero-content h1 {
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  font-family: 'Montserrat', sans-serif;
}
.hero-content p {
  color: var(--text);font-size: 1.05rem;max-width: 720px;margin: 0 auto;
  text-shadow: 1px 1px 4px rgba(0,0,0,0.9);
}
.hero-ctas {
  display: flex;gap: 12px;margin-top: 16px;flex-wrap: wrap;justify-content: center;
}
.hero-badges {
  display: flex;gap: 18px;margin-top: 16px;flex-wrap: wrap;justify-content: center;
}
.hero-badges li {
  display: flex;gap: 8px;align-items: center;color: #cfcfcf;font-size: 0.95rem;
}
.hero-media {display: none;}

@keyframes heroFade {
  to {opacity: 1;transform: translateY(0);}
}
.hero-content, .hero-ctas, .hero-badges {
  opacity: 0;transform: translateY(20px);animation: heroFade 1.6s forwards;
}

/* About */
.section.about .container {
  background: #ffffff;padding: 40px;border-radius: var(--radius);box-shadow: var(--shadow);
}
.section-header h2 {
  color: var(--gold);font-size: 1.8rem;margin-bottom: 16px;position: relative;
  display: inline-block;padding: 0 20px;font-weight: bold;font-family: 'Montserrat', sans-serif;
}
.section-header h2::before,
.section-header h2::after {
  content: "";position: absolute;top: 60%;width: 120px;height: 0.5px;background-color: var(--gold-2);
}
.section-header h2::before {left: 0;transform: translate(-100%, -50%);}
.section-header h2::after {right: 0;transform: translate(100%, -50%);}
.section-header p {color: var(--black);font-size: 1rem;margin-bottom: 0;text-align: justify;}
.section-header p strong {color: var(--gold);font-weight: 600;}

.about-grid{display:grid;grid-template-columns:1fr;gap:18px;}
.about-card{
  background:linear-gradient(180deg,var(--card),#0f0f0f);
  border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);text-align:center
}
.about-card h3{color:var(--gold);text-align: center;}

@media(min-width:640px){.about-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:980px){.about-grid{grid-template-columns:repeat(3,1fr);}}

/* Services */
.cards{display:grid;grid-template-columns:1fr;gap:30px}
.card{
  background:linear-gradient(180deg,var(--card),#0f0f0f);
  border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;gap:5px
}
.card h3{
  margin-top:8px;color:var(--gold);text-align: center;
  font-size: 1.25rem;font-weight: 700;
   font-family: 'Montserrat', sans-serif;
}
.card p{flex-grow:1; text-align: center; font-size: 1rem; line-height: 1.45;}
.card-image {width: 100%;max-height: 350px;aspect-ratio: 1;overflow: hidden;border-radius: var(--radius);margin-bottom: 12px;}
.card-image img {width: 100%;height: 100%;object-fit: cover;display: block;border-radius: var(--radius);}

@media(min-width:640px){.cards{grid-template-columns:repeat(2,1fr);}}

/* Features */
.section.features .container {background: #ffffff;padding: 40px;border-radius: var(--radius);box-shadow: var(--shadow);}
.features-grid{display:grid;grid-template-columns:1fr;gap:18px}
.feature{
  background:linear-gradient(180deg,var(--card),#0f0f0f);
  border:1px solid var(--line);border-radius:var(--radius);padding:20px
}
.feature h3{color:var(--gold);text-align: center;}
.feature p{color:var(--text);font-size:0.95rem;line-height:1.4;text-align:justify;;margin-top:8px}
.features-cta{
  text-align:center;margin-top:32px;padding:20px 0;
  background:linear-gradient(180deg,var(--card),#0f0f0f);border-radius:var(--radius);
  border:1px solid var(--line);box-shadow:var(--shadow)
}
@media(min-width:640px){.features-grid{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.features-grid{grid-template-columns:repeat(4,1fr)}}

/* Testimonials (carousel) */
.testimonials .carousel {
    position: relative;
}

.testimonials .carousel-track {
    display: flex;
    overflow-x: auto; /* Enable horizontal scrolling on mobile */
    scroll-snap-type: x mandatory; /* Snap to testimonials */
    gap: 1rem;
    padding-bottom: 1rem; /* Space for scrollbar */
    scrollbar-width: none; /* Hide scrollbar for Firefox */
}

.testimonials .carousel-track::-webkit-scrollbar {
    display: none; /* Hide scrollbar for Chrome, Safari, and Opera */
}

.testimonials .testimonial {
    flex: 0 0 90%; /* Each testimonial takes up 90% of the track width */
    scroll-snap-align: center; /* Snap to the center */
    background: linear-gradient(180deg, var(--card), #0f0f0f);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.testimonials .testimonial-image img {
    width: 120px; /* Smaller image for mobile */
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--gold);
    margin-bottom: 1.5rem;
}

.testimonials blockquote {
    font-style: italic;
    color: var(--muted);
    margin: 0 0 1rem 0;
    flex-grow: 1;
}

.testimonials figcaption {
    color: var(--gold);
    font-weight: bold;
}

.carousel-control {
    display: none; /* Hide controls on mobile, as scrolling is the primary interaction */
}

/* Larger screens */
@media (min-width: 768px) {
    .testimonials .carousel-track {
        overflow: hidden; /* Disable scrolling, use buttons */
    }

    .testimonials .testimonial {
        flex-basis: 48%; /* Show two testimonials */
    }

    .carousel-control {
        display: grid; /* Show controls on larger screens */
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: rgba(212,175,55,.12);
        border: 1px solid var(--gold);
        color: var(--gold);
        width: 42px;
        height: 42px;
        border-radius: 50%;
        place-items: center;
        cursor: pointer;
        z-index: 5;
        transition: background-color 0.3s;
    }

    .carousel-control:hover {
        background: rgba(212,175,55,.18);
    }

    .carousel .prev { left: -20px; }
    .carousel .next { right: -20px; }
}

@media (min-width: 980px) {
    .testimonials .testimonial {
        flex-basis: 32%; /* Show three testimonials */
    }
}

/* Gallery */
.section.gallery .container {background: #ffffff;padding: 40px;border-radius: var(--radius);box-shadow: var(--shadow);}
.section.gallery .features-cta p{color: var(--muted);}
.gallery-grid {display: grid;grid-template-columns: 1fr;gap: 8px;}
.gallery-item {position: relative;border-radius: 12px;overflow: hidden;border: 1px solid var(--line);display: block;}
.gallery-item img {aspect-ratio: 4/3;object-fit: cover;width: 100%;height: auto;transition: transform .3s ease;}
.gallery-item:hover img {transform: scale(1.02);}
.gallery-title {position: absolute;bottom: 0; left: 0; width: 100%;padding: 8px;background: rgba(0,0,0,0.6);color: #fff;font-size: 0.95rem;text-align: center;transition: opacity .3s ease;}
.gallery-item:hover .gallery-title {opacity: 0;}

@media(min-width:640px){.gallery-grid{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}

/* Lightbox */
.lightbox {position: fixed;inset: 0;background: rgba(0,0,0,.8);display: none;align-items: center;justify-content: center;padding: 20px;z-index: 60;}
.lightbox.open {display: flex;}
.lightbox-image {max-width: 90vw;max-height: 85vh;border-radius: 12px;border: 1px solid var(--line);box-shadow: var(--shadow);}
.lightbox-close,.lightbox-prev,.lightbox-next {position: absolute;background: rgba(0,0,0,.6);color: #fff;border: 1px solid #fff;width: 36px;height: 36px;border-radius: 999px;cursor: pointer;display: grid;place-items: center;font-size: 20px;}
.lightbox-close { top: 16px; right: 16px; }
.lightbox-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 16px; top: 50%; transform: translateY(-50%); }

/* CTA */
.cta{background:radial-gradient(600px 300px at 70% 0%, rgba(212,175,55,.08), transparent 60%),linear-gradient(180deg,#0b0b0b,#0e0e0e);text-align:center}
.cta-inner{max-width:800px;margin:0 auto}
.cta p{color:var(--muted);margin-bottom:16px}

/* Forms */
.section.contact {position: relative;}
.section.contact::before {content: "";position: absolute;inset: 0;background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url("imagens/pexels-kelly-2796105.webp");background-repeat: no-repeat;background-size: cover;background-position: center;z-index: 0;}
.section.contact > .container {position: relative;  z-index: 1; filter: none}

.form{background:linear-gradient(180deg,rgba(18,18,18,0.85),rgba(15,15,15,0.95));border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);max-width:600px;margin:0 auto;}
.form-grid{display:grid;grid-template-columns:1fr;gap:14px}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-field-full{grid-column:1 / -1}
label{font-weight:600}
input,select,textarea{background:rgba(0,0,0,0.2);border:1px solid rgba(255,255,255,0.1);color:var(--text);padding:12px 14px;border-radius:10px;outline:none;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,175,55,0.2)}
select option {background: var(--bg);color: var(--text);}
.form-actions{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px;flex-wrap:wrap}
.form-actions .btn.btn-primary {background:var(--gold);color:var(--black);border:1px solid transparent;font-size: 1.1rem;padding: 1.1rem 1.6rem;min-width: 180px;line-height: 1.1; width: 100%;}
.form-actions .btn.btn-primary:hover {background: transparent; color: var(--gold); border-color: var(--gold);}

.form-note{color:var(--muted);font-size:.9rem}
.form-status{margin-top:10px;min-height:22px;color:#b7ffb7}

/* Footer */
.footer {border-top: 1px solid var(--line);padding: 36px 0;}
.footer-inner {display:grid;grid-template-columns:1fr;gap:20px;}
.logo-footer {display: flex;flex-direction: column;align-items: start;}
.logo-footer img {width: 120px;height: auto;filter: drop-shadow(0 2px 6px rgba(212,175,55,.35));margin-bottom: 8px;}
.logo-footer + p {max-width: 280px;font-size: 0.9rem;color: var(--muted);}
.footer-links {font-size: 0.9rem;line-height: 1.4;}
.footer-links li {margin: 5px 0;}
.footer-links a {color: #cfcfcf;}
.footer-links a:hover {color: var(--gold);}
.footer-bottom {border-top: 1px solid var(--line);margin-top: 18px;padding-top: 18px;display: flex;flex-direction:column;align-items:flex-start;gap: 10px;color: #bdbdbd;font-size: 0.85rem;}

@media(min-width:640px){
  .footer-inner{grid-template-columns:1fr 1fr;}
  .footer-bottom{flex-direction:row;justify-content:space-between;}
}
@media(min-width:980px){
  .footer-inner{grid-template-columns:auto 1fr 1fr;gap:30%;}
}

/* Floating Buttons */
.whatsapp-button, .scrollup {position: fixed;right: 1rem;width: 50px;height: 50px;border-radius: 50%;display: flex;align-items: center;justify-content: center;font-size: 1.5rem;transition: all .3s;z-index: 10;box-shadow: var(--shadow);}
.whatsapp-button {background-color: #25D366;color: #fff;bottom: -20%;}
.whatsapp-button:hover {background-color: #128C7E;transform: translateY(-3px);}
.whatsapp-button.show-whatsapp {bottom: 7rem;}
.scrollup {background-color: var(--gold);color: #000;bottom: -20%;}
.scrollup:hover {background-color: var(--black);color: var(--gold);transform: translateY(-3px);}
.scrollup.show-scroll {bottom: 3rem;}

html {scroll-behavior: smooth;}
.credit a{color:var(--gold)}
