/* ═══ HERO ═══ */
.hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    color: #fff;
    isolation: isolate;
}
.hero__bg {
    position: absolute; inset: 0; z-index: -2;
    background:
        /* sol */
        radial-gradient(28% 20% at 68% 46%, rgba(255, 238, 205, 0.95) 0%, rgba(240, 200, 145, 0.55) 38%, transparent 72%),
        /* céu → horizonte → mar → areia, com quebra nítida no horizonte */
        linear-gradient(180deg,
            #1C3A3C 0%,
            #34575A 22%,
            #6E8079 40%,
            #B99C74 52%,
            #E6C99C 57.4%,
            #3E5F5B 57.6%,
            #2E4B48 70%,
            #33413A 84%,
            #2C3329 100%);
    transform: scale(1.05);
    animation: hero-drift 26s ease-in-out infinite alternate;
}
/* reflexo do sol na água + silhuetas de coqueiros */
.hero__bg::before {
    content: ''; position: absolute; inset: 0;
    background:
        linear-gradient(180deg, transparent 57.6%, rgba(255, 226, 178, 0.35) 58%, transparent 74%) 0 0 / 46% 100% no-repeat;
    background-position: 68% 0;
    filter: blur(6px); opacity: 0.9;
}
@keyframes hero-drift {
    from { transform: scale(1.06) translate3d(0,0,0); }
    to   { transform: scale(1.14) translate3d(-1.5%, -1.5%, 0); }
}
.hero__video {
    position: absolute; inset: 0; z-index: -1;
    width: 100%; height: 100%;
    object-fit: cover;
    filter: brightness(0.6) saturate(0.9) contrast(1.02);
}

.hero::after {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background:
        linear-gradient(180deg, rgba(20,25,18,0.6) 0%, transparent 30%, transparent 44%, rgba(18,22,16,0.8) 100%),
        linear-gradient(100deg, rgba(18,22,16,0.72) 0%, rgba(18,22,16,0.42) 38%, rgba(18,22,16,0.12) 62%, transparent 78%),
        radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: auto, auto, 3px 3px;
}
.hero__inner {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-pad-x);
    padding-top: calc(var(--header-height) + var(--space-16));
    padding-bottom: var(--space-24);
    display: grid; gap: var(--space-12);
}
@media (min-width: 940px) {
    .hero__inner { grid-template-columns: 1.5fr 1fr; align-items: end; gap: var(--space-16); }
}
.hero__eyebrow {
    color: rgba(255,255,255,0.9);
    border-left: 1px solid var(--c-gold);
    padding-left: var(--space-3);
    font-size: var(--fs-overline); letter-spacing: 0.34em; text-transform: uppercase;
}
.hero__title {
    font-family: var(--font-display);
    font-size: var(--fs-hero);
    line-height: 0.95; letter-spacing: -0.03em;
    margin-top: var(--space-6);
    color: #fff; font-weight: 400; max-width: 13ch;
    text-shadow: 0 2px 40px rgba(0,0,0,0.28);
}
.hero__title em { font-style: italic; color: #E4DFC6; }
.hero__lead {
    font-size: 1.125rem; color: rgba(255,255,255,0.88);
    max-width: 46ch; margin-top: var(--space-6); font-weight: 300;
}
.hero__side { display: flex; flex-direction: column; gap: var(--space-8); }
.hero__ctas { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.hero__meta {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4);
    padding-top: var(--space-8); border-top: 1px solid rgba(255,255,255,0.2);
}
.hero__meta .num {
    display: block; font-family: var(--font-display);
    font-size: clamp(1.6rem, 3.4vw, 2.4rem); line-height: 1; color: #fff; margin-bottom: var(--space-2);
}
.hero__meta .label {
    font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.68);
}
.hero__scroll-cue {
    position: absolute; bottom: var(--space-6); left: 50%; transform: translateX(-50%);
    color: rgba(255,255,255,0.6); font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase;
    display: flex; flex-direction: column; align-items: center; gap: var(--space-2);
}
.hero__scroll-cue::after {
    content: ''; width: 1px; height: 26px;
    background: linear-gradient(180deg, rgba(255,255,255,0.6), transparent);
    animation: scroll-cue 1.8s ease-in-out infinite;
}
@keyframes scroll-cue {
    0%, 100% { transform: translateY(0); opacity: 0.35; }
    50% { transform: translateY(8px); opacity: 1; }
}

/* ═══ Faixa de destaques ═══ */
.marquee {
    background: var(--c-bg-alt); border-block: 1px solid var(--c-border);
    padding-block: var(--space-6);
}
.marquee__inner {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
    gap: var(--space-4) var(--space-8);
    font-size: var(--fs-caption); letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--c-text-soft);
}
.marquee__inner span::before { content: '✦'; color: var(--c-gold); margin-right: 10px; }

/* ═══ Intro / manifesto ═══ */
.intro__grid { display: grid; gap: var(--space-12); align-items: center; }
@media (min-width: 900px) { .intro__grid { grid-template-columns: 1fr 1fr; gap: var(--space-16); } }
.intro__media { aspect-ratio: 4/5; border-radius: var(--radius-lg); }
.intro__title { font-size: var(--fs-display-1); letter-spacing: -0.025em; margin-top: var(--space-4); }
.intro__title em { font-style: italic; color: var(--c-gold-dark); }
.intro__body { color: var(--c-text-soft); display: flex; flex-direction: column; gap: var(--space-4); margin-top: var(--space-6); }
.intro__stats {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6);
    margin-top: var(--space-8); padding-top: var(--space-8); border-top: 1px solid var(--c-divider);
}
.intro__stats .v { display: block; font-family: var(--font-display); font-size: 2rem; color: var(--c-deep); line-height: 1; }
.intro__stats .l { font-size: var(--fs-caption); letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-text-soft); }

/* ═══ Acomodações ═══ */
.units { background: var(--c-bg-alt); }
.units__head { display: flex; flex-wrap: wrap; gap: var(--space-6); justify-content: space-between; align-items: flex-end; margin-bottom: var(--space-12); }
.units__grid { display: grid; gap: var(--space-6); }
@media (min-width: 700px) { .units__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .units__grid { grid-template-columns: repeat(4, 1fr); gap: var(--space-4); } }

.unit-card {
    background: var(--c-surface); border: 1px solid var(--c-border);
    border-radius: var(--radius-lg); overflow: hidden;
    display: flex; flex-direction: column;
    transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}
.unit-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: var(--c-gold); }
.unit-card__media { aspect-ratio: 4/3; position: relative; }
.unit-card__tag {
    position: absolute; top: var(--space-3); left: var(--space-3); z-index: 3;
    background: rgba(255,255,255,0.92); color: var(--c-deep);
    padding: 4px 10px; border-radius: var(--radius-pill);
    font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500;
}
.unit-card__body { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); flex: 1; }
.unit-card__title { font-size: 1.35rem; }
.unit-card__specs {
    display: flex; flex-wrap: wrap; gap: var(--space-2);
    font-size: var(--fs-caption); color: var(--c-text-soft);
}
.unit-card__specs li {
    background: var(--c-bg-alt); border: 1px solid var(--c-divider);
    padding: 3px 9px; border-radius: var(--radius-pill);
}
.unit-card__desc { font-size: var(--fs-small); color: var(--c-text-soft); flex: 1; }
.unit-card__price {
    margin-top: auto; padding-top: var(--space-4); border-top: 1px solid var(--c-divider);
    display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-2);
}
.unit-card__price .v { font-family: var(--font-display); font-size: 1.6rem; color: var(--c-deep); }
.unit-card__price .l { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-text-soft); }
.unit-card__cta { margin-top: var(--space-4); width: 100%; }

/* ═══ Experiências / eventos ═══ */
.events__grid { display: grid; gap: var(--space-6); }
@media (min-width: 760px) { .events__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .events__grid { grid-template-columns: 1.4fr 1fr 1fr; } }
.event-card {
    position: relative; border-radius: var(--radius-lg); overflow: hidden;
    min-height: 320px; display: flex; flex-direction: column; justify-content: flex-end;
    padding: var(--space-8); color: #fff;
    transition: transform var(--t-base);
}
.event-card:hover { transform: translateY(-6px); }
.event-card--tall { min-height: 420px; }
.event-card::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, transparent 30%, rgba(18,22,16,0.84) 100%);
    z-index: 1;
}
.event-card > * { position: relative; z-index: 2; }
.event-card h3 { color: #fff; font-size: 1.7rem; }
.event-card p { color: rgba(255,255,255,0.82); font-size: var(--fs-small); margin-top: var(--space-2); }
.event-card ul {
    display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--space-4);
    font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
}
.event-card ul li {
    border: 1px solid rgba(255,255,255,0.35); padding: 3px 9px; border-radius: var(--radius-pill);
    color: rgba(255,255,255,0.9);
}

/* ═══ Estrutura ═══ */
.amenities { background: var(--c-deep); color: rgba(255,255,255,0.78); }
.amenities .section-head__title, .amenities h3 { color: #fff; }
.amenities .section-head__lead { color: rgba(255,255,255,0.7); }
.amenities .eyebrow { color: var(--c-gold); }
.amenities__grid { display: grid; gap: var(--space-6); }
@media (min-width: 640px) { .amenities__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .amenities__grid { grid-template-columns: repeat(4, 1fr); } }
.amenity {
    padding: var(--space-6); border: 1px solid rgba(255,255,255,0.14); border-radius: var(--radius-lg);
    transition: background var(--t-base), border-color var(--t-base);
}
.amenity:hover { background: rgba(255,255,255,0.05); border-color: var(--c-gold); }
.amenity__icon { font-size: 1.5rem; margin-bottom: var(--space-3); }
.amenity h3 { font-size: 1.15rem; margin-bottom: var(--space-2); }
.amenity p { font-size: var(--fs-small); color: rgba(255,255,255,0.66); }

/* ═══ Localização ═══ */
.location__grid { display: grid; gap: var(--space-12); align-items: center; }
@media (min-width: 900px) { .location__grid { grid-template-columns: 1fr 1fr; gap: var(--space-16); } }
.location__media { aspect-ratio: 16/12; border-radius: var(--radius-lg); }
.location__list { display: flex; flex-direction: column; gap: var(--space-4); margin-top: var(--space-6); }
.location__list li {
    display: flex; align-items: baseline; gap: var(--space-4);
    padding-bottom: var(--space-4); border-bottom: 1px solid var(--c-divider);
    font-size: var(--fs-small); color: var(--c-text-soft);
}
.location__list b { font-family: var(--font-display); color: var(--c-deep); font-size: 1.05rem; min-width: 86px; }
