:root {
    --bg: #f3f1ea;
    --surface: #ffffff;
    --surface-soft: #f8f7f3;
    --text: #243126;
    --muted: #647166;
    --line: rgba(36, 49, 38, 0.1);
    --primary: #6ea16e;
    --primary-dark: #4d7e55;
    --primary-soft: #edf5ec;
    --accent: #d7e5d0;
    --shadow: 0 18px 50px rgba(27, 44, 28, 0.08);
    --radius-lg: 24px;
    --radius-md: 18px;
    --radius-sm: 14px;
}

/* =========================================================
   BASE
========================================================= */

html,
body {
    background: var(--bg);
    color: var(--text);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
    overflow-x: hidden;
}

a {
    color: var(--primary-dark);
    text-decoration: none;
}

a:hover {
    color: var(--text);
}

.text-muted {
    color: var(--muted) !important;
}

/* =========================================================
   FORMULÁRIOS E BOTÕES
========================================================= */

.form-control,
.form-select,
.btn,
.card,
.alert {
    border-radius: var(--radius-sm);
}

.form-control,
.form-select {
    min-height: 48px;
    border-color: rgba(36, 49, 38, 0.14);
    background: #fff;
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(110, 161, 110, 0.55);
    box-shadow: 0 0 0 0.2rem rgba(110, 161, 110, 0.16);
}

.field-help {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--muted);
    display: inline-flex;
    font-size: 0.95rem;
    line-height: 1;
    padding: 0;
}

.field-help:hover,
.field-help:focus {
    color: var(--primary-dark);
}

.field-action {
    font-size: 0.82rem;
    font-weight: 700;
}

.select2-container {
    width: 100% !important;
}

.select2-container--default .select2-selection--single {
    min-height: 48px;
    border-color: rgba(36, 49, 38, 0.14);
    border-radius: var(--radius-sm);
    background: #fff;
    display: flex;
    align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--text);
    line-height: 1.4;
    padding-left: 0.95rem;
    padding-right: 2.25rem;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--muted);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 46px;
    right: 0.65rem;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: rgba(110, 161, 110, 0.55);
    box-shadow: 0 0 0 0.2rem rgba(110, 161, 110, 0.16);
}

.select2-container--default.select2-container--disabled .select2-selection--single {
    background: #e9ecef;
    color: var(--muted);
}

.select2-dropdown {
    border-color: rgba(36, 49, 38, 0.12);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.select2-search--dropdown {
    padding: 0.75rem;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    min-height: 42px;
    border-color: rgba(36, 49, 38, 0.14);
    border-radius: 12px;
    padding: 0.45rem 0.75rem;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: rgba(110, 161, 110, 0.55);
    box-shadow: 0 0 0 0.2rem rgba(110, 161, 110, 0.16);
    outline: 0;
}

.select2-results__option {
    padding: 0.65rem 0.85rem;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background: var(--primary-dark);
}

.select2-container--default .select2-results__option--selected {
    background: var(--primary-soft);
    color: var(--primary-dark);
    font-weight: 700;
}

select.is-invalid + .select2-container .select2-selection--single {
    border-color: var(--bs-form-invalid-border-color);
}

.availability-calendar {
    background: var(--surface-soft);
    border: 1px solid rgba(36, 49, 38, 0.1);
    border-radius: var(--radius-sm);
    padding: 0.85rem;
}

.availability-calendar__header {
    align-items: center;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 0.65rem;
}

.availability-calendar__mode {
    color: var(--muted);
    font-size: 0.9rem;
    font-weight: 700;
    margin-bottom: 0.55rem;
}

.availability-calendar__grid {
    display: grid;
    gap: 0.35rem;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.availability-calendar__weekdays {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
    margin-bottom: 0.35rem;
    text-align: center;
}

.availability-calendar__day {
    aspect-ratio: 1;
    background: #fff;
    border: 1px solid rgba(36, 49, 38, 0.1);
    border-radius: 10px;
    color: var(--text);
    font-weight: 800;
    min-width: 0;
}

.availability-calendar__day:hover:not(:disabled),
.availability-calendar__day:focus:not(:disabled) {
    border-color: rgba(77, 126, 85, 0.5);
    box-shadow: 0 0 0 0.16rem rgba(110, 161, 110, 0.16);
    outline: 0;
}

.availability-calendar__day.is-range {
    background: var(--primary-soft);
    border-color: rgba(77, 126, 85, 0.18);
}

.availability-calendar__day.is-selected {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}

.availability-calendar__day:disabled {
    background: #ede9df;
    color: rgba(36, 49, 38, 0.34);
    cursor: not-allowed;
    text-decoration: line-through;
}

.btn-primary,
.btn-dark {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.btn-primary:hover,
.btn-dark:hover,
.btn-primary:focus,
.btn-dark:focus {
    background: #3f6846;
    border-color: #3f6846;
}

.btn-outline-dark {
    color: var(--primary-dark);
    border-color: rgba(77, 126, 85, 0.35);
}

.btn-outline-dark:hover {
    background: var(--primary-soft);
    color: var(--primary-dark);
    border-color: rgba(77, 126, 85, 0.55);
}

/* =========================================================
   UTILITÁRIOS DE BLOCO E TIPOGRAFIA
========================================================= */

.badge-soft {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.65rem 1rem;
    background: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 999px;
    color: var(--text);
    backdrop-filter: blur(10px);
}

.section-block {
    padding: 5rem 0;
}

.section-title {
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.08;
    font-weight: 700;
}

.section-kicker {
    font-size: 0.9rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--primary-dark);
    font-weight: 700;
}

/* =========================================================
   HEADER DO SITE
========================================================= */

.hero-header {
    position: sticky;
    top: 0;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.86);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--line);
}

.brand {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--text);
    letter-spacing: -0.02em;
    min-width: 96px;
}

.brand-logo {
    width: 140px;
    max-height: 106px;
    object-fit: contain;
}

.brand small {
    display: block;
    font-size: 0.74rem;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.site-nav-link {
    color: var(--text);
    font-weight: 600;
    font-size: 0.96rem;
}

.site-nav-link:hover {
    color: var(--primary-dark);
}

.header-cta {
    white-space: nowrap;
}

.site-menu-offcanvas {
    --bs-offcanvas-width: min(360px, 86vw);
}

.site-menu-body {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.site-menu-body .site-nav-link {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0.72rem 0.85rem;
    border-radius: 12px;
    font-size: 1rem;
}

.site-menu-body .site-nav-link:hover {
    background: var(--primary-soft);
}

.site-menu-body .btn {
    width: 100%;
    margin-top: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 18px;
}

/* =========================================================
   HERO
========================================================= */

.hero-section {
    position: relative;
    min-height: 82vh;
    display: flex;
    align-items: end;
    background:
        linear-gradient(180deg, rgba(20, 26, 19, 0.12) 0%, rgba(20, 26, 19, 0.22) 30%, rgba(20, 26, 19, 0.72) 100%),
        var(--hero-desktop-image, url('/public/uploads/website-heroes/default-home-desktop.webp')) center/cover no-repeat;
    color: #fff;
}

.media-carousel__slides,.media-carousel__slide{position:absolute;inset:0}.media-carousel__slide{display:block;opacity:0;transition:opacity .55s ease;z-index:0}.media-carousel__slide.is-active{opacity:1}.media-carousel__slide img{height:100%;object-fit:cover;width:100%}.hero-section>.container{position:relative;z-index:2}.media-carousel__controls{bottom:1rem;display:flex;gap:.45rem;position:absolute;right:1rem;z-index:4}.media-carousel__controls button{align-items:center;background:rgba(255,255,255,.9);border:0;border-radius:999px;color:#172019;display:flex;font-size:1.15rem;height:2.5rem;justify-content:center;width:2.5rem}.editorial-carousel{height:520px;position:relative}.home-hero .hero-overlay-card{background:rgba(16,25,18,.38);backdrop-filter:blur(4px)}
@media (prefers-reduced-motion:reduce){.media-carousel__slide{transition:none}}
[data-image-drag-handle]{touch-action:none}

.hero-overlay-card {
    background: rgba(17, 22, 18, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: var(--radius-lg);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(8px);
}

.hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    margin-top: 1.5rem;
}

.hero-meta-item {
    padding: 0.85rem 1rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.16);
    min-width: 148px;
}

.hero-side-card {
    background: rgba(255, 255, 255, 0.94);
    color: var(--text);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.hero-side-card .stat {
    padding: 1rem 0;
    border-bottom: 1px solid rgba(36, 49, 38, 0.08);
}

.hero-side-card .stat:last-child {
    border-bottom: 0;
}

/* =========================================================
   CARDS GERAIS
========================================================= */

.surface-card,
.feature-card,
.info-card,
.faq-card,
.admin-card,
.quick-card,
.metric-card,
.login-panel,
.contact-card,
.reserve-card,
.photo-card,
.map-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow);
}

.feature-grid .feature-card,
.gallery-grid .photo-card {
    overflow: hidden;
}

.tour-place-card {
    display: flex;
    flex-direction: column;
}

.tour-place-card > .d-flex:last-child {
    margin-top: auto;
}

.photo-thumb,
.feature-thumb {
    height: 190px;
    background-size: cover;
    background-position: center;
}

img.feature-thumb {
    aspect-ratio: 15 / 7;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.home-feature-editor__preview {
    aspect-ratio: 15 / 7;
    border-radius: 16px;
    object-fit: cover;
    width: 100%;
}

.home-feature-icon-preview {
    align-items: center;
    background: var(--primary-soft);
    border-radius: 12px;
    color: var(--primary);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.15rem;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.gallery-photo-card {
    display: block;
    overflow: hidden;
    position: relative;
}

.gallery-photo-card__image {
    aspect-ratio: 3 / 2;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.gallery-photo-card__caption {
    background: linear-gradient(180deg, rgba(36, 49, 38, 0), rgba(36, 49, 38, 0.82));
    bottom: 0;
    color: #fff;
    left: 0;
    padding: 3.5rem 1.25rem 1rem;
    position: absolute;
    right: 0;
}

.gallery-photo-card__caption strong,
.gallery-photo-card__caption small {
    display: block;
}

.gallery-photo-card__caption small {
    color: rgba(255, 255, 255, 0.84);
    margin-top: 0.25rem;
}

.icon-pill {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--primary-soft);
    color: var(--primary-dark);
    font-size: 1.1rem;
}

.pet-icon {
    background-color: currentColor;
    display: inline-block;
    flex: 0 0 auto;
    height: 1em;
    vertical-align: -0.125em;
    width: 1em;
    -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.35 10.3c1.15-.22 1.82-1.62 1.5-3.12-.33-1.5-1.52-2.54-2.67-2.31-1.15.22-1.82 1.62-1.5 3.12.33 1.5 1.52 2.54 2.67 2.31Zm7.3 0c1.15.23 2.34-.81 2.67-2.31.32-1.5-.35-2.9-1.5-3.12-1.15-.23-2.34.81-2.67 2.31-.32 1.5.35 2.9 1.5 3.12ZM5.31 14.12c.96-.66 1.05-2.21.2-3.47-.86-1.25-2.33-1.74-3.29-1.08-.96.65-1.05 2.2-.2 3.46.86 1.26 2.33 1.75 3.29 1.09Zm13.38 0c.96.66 2.43.17 3.29-1.09.85-1.26.76-2.81-.2-3.46-.96-.66-2.43-.17-3.29 1.08-.85 1.26-.76 2.81.2 3.47Zm-2.2 5.82c1.34-.94.94-2.84-.08-4.28-.94-1.32-1.98-2.41-3.06-2.41-.43 0-.83.15-1.17.43-.1.08-.26.08-.36 0a1.84 1.84 0 0 0-1.17-.43c-1.08 0-2.12 1.09-3.06 2.41-1.02 1.44-1.42 3.34-.08 4.28.83.58 1.85.35 2.75.15.61-.14 1.19-.27 1.74-.27.55 0 1.13.13 1.74.27.9.2 1.92.43 2.75-.15Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.35 10.3c1.15-.22 1.82-1.62 1.5-3.12-.33-1.5-1.52-2.54-2.67-2.31-1.15.22-1.82 1.62-1.5 3.12.33 1.5 1.52 2.54 2.67 2.31Zm7.3 0c1.15.23 2.34-.81 2.67-2.31.32-1.5-.35-2.9-1.5-3.12-1.15-.23-2.34.81-2.67 2.31-.32 1.5.35 2.9 1.5 3.12ZM5.31 14.12c.96-.66 1.05-2.21.2-3.47-.86-1.25-2.33-1.74-3.29-1.08-.96.65-1.05 2.2-.2 3.46.86 1.26 2.33 1.75 3.29 1.09Zm13.38 0c.96.66 2.43.17 3.29-1.09.85-1.26.76-2.81-.2-3.46-.96-.66-2.43-.17-3.29 1.08-.85 1.26-.76 2.81.2 3.47Zm-2.2 5.82c1.34-.94.94-2.84-.08-4.28-.94-1.32-1.98-2.41-3.06-2.41-.43 0-.83.15-1.17.43-.1.08-.26.08-.36 0a1.84 1.84 0 0 0-1.17-.43c-1.08 0-2.12 1.09-3.06 2.41-1.02 1.44-1.42 3.34-.08 4.28.83.58 1.85.35 2.75.15.61-.14 1.19-.27 1.74-.27.55 0 1.13.13 1.74.27.9.2 1.92.43 2.75-.15Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* =========================================================
   MAPA / FAQ / FOOTER
========================================================= */

.home-map-link {
    color: inherit;
    display: block;
    text-decoration: none;
}

.home-map-link:focus-visible .home-chalet-map {
    outline: 3px solid rgba(77, 126, 85, 0.45);
    outline-offset: 4px;
}

.home-chalet-map {
    aspect-ratio: 4 / 3;
    background: #dfe9d7;
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: var(--radius-lg);
    overflow: hidden;
    position: relative;
}

.home-chalet-map img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
    width: 100%;
}

.home-map-link:hover .home-chalet-map img {
    transform: scale(1.012);
}

.home-map-zones {
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.home-map-zone {
    background: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 0.42rem 0.68rem;
    position: absolute;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.home-chalet-pin {
    align-items: center;
    background: rgba(29, 52, 33, 0.94);
    border-radius: 50%;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
    color: #fff;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 800;
    height: 38px;
    justify-content: center;
    position: absolute;
    transform: translate(-50%, -50%);
    transition: transform 0.2s ease, background 0.2s ease;
    width: 38px;
    z-index: 2;
}

.home-map-link:hover .home-chalet-pin {
    background: var(--primary-dark);
}

.home-map-cta {
    align-items: center;
    background: rgba(255, 255, 255, 0.94);
    border-radius: 999px;
    bottom: 1rem;
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.14);
    color: var(--text);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 800;
    gap: 0.4rem;
    padding: 0.7rem 1rem;
    pointer-events: none;
    position: absolute;
    right: 1rem;
    z-index: 3;
}

.faq-item {
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 16px;
    padding: 1rem 1.1rem;
    background: #fff;
}

.faq-grid {
    display: grid;
    gap: 1rem;
}

.about-video-card {
    align-items: center;
    background: #111;
    display: flex;
    justify-content: center;
    min-height: 520px;
    overflow: hidden;
    padding: 1rem;
}

.about-hero-video-frame {
    aspect-ratio: 9 / 16;
    border-radius: calc(var(--radius-md) - 4px);
    max-height: 620px;
    max-width: 100%;
    overflow: hidden;
    width: min(100%, 348px);
}

.about-hero-video-frame iframe {
    border: 0;
    display: block;
    height: 100%;
    width: 100%;
}

.about-video-frame {
    background: #111;
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow);
    overflow: hidden;
}

.site-footer {
    background: #dce8d6;
    border-top: 1px solid rgba(36, 49, 38, 0.08);
    overflow: hidden;
    position: relative;
}

.site-footer > .container {
    position: relative;
    z-index: 1;
}

.site-footer-watermark {
    bottom: 1.5rem;
    mix-blend-mode: multiply;
    opacity: 0.08;
    pointer-events: none;
    position: absolute;
    right: clamp(1rem, 4vw, 4rem);
    width: 163px;
}

.footer-line {
    border-top: 1px solid rgba(36, 49, 38, 0.12);
}

/* =========================================================
   ADMIN - ESTRUTURA
========================================================= */

.admin-shell {
    background: #eef2ea;
}

.admin-sidebar {
    width: 292px;
    background: linear-gradient(180deg, #223328 0%, #17231b 100%);
    color: #f4f8f3;
    flex-shrink: 0;
    height: 100vh;
    min-height: 100vh;
    position: sticky;
    top: 0;
    overflow: hidden;
}

.admin-sidebar-scroll {
    min-height: 0;
    overflow-y: auto;
    padding-right: 0.25rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}

.admin-sidebar-scroll::-webkit-scrollbar {
    width: 6px;
}

.admin-sidebar-scroll::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.28);
    border-radius: 999px;
}

.admin-sidebar-user {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-shrink: 0;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    text-decoration: none;
    transition: color 0.2s ease;
}

.admin-sidebar-user:hover {
    color: rgba(255, 255, 255, 0.85) !important;
}

.admin-sidebar-user i {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.admin-logo {
    font-weight: 800;
    font-size: 1rem;
    letter-spacing: -0.02em;
}

.admin-logo small {
    display: block;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 1020;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
}

.admin-content {
    min-width: 0;
}

.mobile-admin-toggle {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    border: 1px solid var(--line);
    background: #fff;
}

/* =========================================================
   ADMIN - SIDEBAR / NAVEGAÇÃO
========================================================= */

.admin-nav {
    display: grid;
    gap: 0.75rem;
}

.admin-nav-item,
.admin-nav-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 1rem;
    border: 0;
    border-radius: 18px;
    background: transparent;
    color: rgba(255, 255, 255, 0.88);
    text-align: left;
    transition: 0.2s ease;
}

.admin-nav-item:hover,
.admin-nav-item.active,
.admin-nav-toggle:hover,
.admin-nav-toggle.active {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.admin-nav-item-main,
.admin-nav-toggle-main {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
}

.admin-nav-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    flex-shrink: 0;
    font-size: 1.15rem;
}

.admin-nav-item strong,
.admin-nav-toggle strong {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.1;
}

.admin-nav-item small,
.admin-nav-toggle small {
    display: block;
    margin-top: 0.22rem;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.8rem;
    line-height: 1.2;
}

.admin-nav-item.active .admin-nav-icon,
.admin-nav-toggle.active .admin-nav-icon,
.admin-nav-item:hover .admin-nav-icon,
.admin-nav-toggle:hover .admin-nav-icon {
    background: rgba(255, 255, 255, 0.14);
}

.admin-nav-group {
    display: grid;
    gap: 0.45rem;
}

.admin-nav-chevron {
    font-size: 0.9rem;
    opacity: 0.8;
    transition: transform 0.2s ease;
}

.admin-nav-group.is-open .admin-nav-chevron,
.admin-nav-toggle[aria-expanded="true"] .admin-nav-chevron {
    transform: rotate(180deg);
}

.admin-subnav {
    margin-left: 1.45rem;
    padding-left: 1rem;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    display: grid;
    gap: 0.4rem;
}

.admin-subnav-link {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.8rem 0.95rem;
    border-radius: 12px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.92rem;
    font-weight: 600;
    transition: 0.2s ease;
}

.admin-subnav-link:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.admin-subnav-link.active {
    background: rgba(110, 161, 110, 0.22);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

/* =========================================================
   ADMIN - MOBILE MENU
========================================================= */

.admin-mobile-group {
    padding-top: 0.35rem;
    border-top: 1px solid rgba(36, 49, 38, 0.08);
}

.admin-mobile-group-title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 0.75rem;
}

.admin-mobile-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    background: var(--surface-soft);
    color: var(--text);
    font-weight: 600;
    border: 1px solid rgba(36, 49, 38, 0.06);
}

.admin-mobile-link.active {
    background: var(--primary-soft);
    color: var(--primary-dark);
    border-color: rgba(110, 161, 110, 0.28);
}

/* =========================================================
   ADMIN - DASHBOARD / LISTAS / STATUS
========================================================= */

.dashboard-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.dashboard-hero-main {
    max-width: 760px;
}

.dashboard-hero-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.dashboard-metric {
    position: relative;
    overflow: hidden;
}

.dashboard-metric::after {
    content: "";
    position: absolute;
    right: -46px;
    bottom: -56px;
    width: 142px;
    height: 142px;
    border-radius: 50%;
    background: rgba(110, 161, 110, 0.12);
    pointer-events: none;
}

.dashboard-metric-icon {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 1.15rem;
}

.dashboard-metric-icon.success {
    background: #e7f6e9;
    color: #2f7a3c;
}

.dashboard-metric-icon.warning {
    background: #fff3df;
    color: #9c6a0c;
}

.dashboard-metric-icon.info {
    background: #e8f1ff;
    color: #315ea8;
}

.metric-card .metric-value {
    font-size: clamp(1.7rem, 4vw, 2.6rem);
    font-weight: 800;
    line-height: 1;
}

.metric-card .metric-trend {
    display: inline-flex;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    background: var(--primary-soft);
    color: var(--primary-dark);
    font-size: 0.8rem;
    font-weight: 700;
}

.quick-card .quick-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    background: var(--surface-soft);
    color: var(--text);
    font-weight: 600;
}

.dashboard-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(36, 49, 38, 0.08);
}

.dashboard-pulse-list {
    display: grid;
    gap: 0.85rem;
}

.dashboard-pulse-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 16px;
    background: var(--surface-soft);
}

.dashboard-pulse-item strong,
.dashboard-pulse-item span {
    display: block;
}

.dashboard-pulse-item strong {
    font-size: 1.35rem;
    line-height: 1;
}

.dashboard-pulse-item span {
    color: var(--muted);
    font-size: 0.9rem;
}

.dashboard-pulse-dot {
    width: 12px;
    height: 44px;
    border-radius: 999px;
    flex-shrink: 0;
    background: var(--line);
}

.dashboard-pulse-dot.success {
    background: #2f7a3c;
}

.dashboard-pulse-dot.warning {
    background: #d99a21;
}

.dashboard-pulse-dot.info {
    background: #315ea8;
}

.dashboard-pulse-dot.muted {
    background: #7c877b;
}

.dashboard-chalet-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.dashboard-chalet-stat {
    padding: 1rem;
    border-radius: 16px;
    border: 1px solid rgba(36, 49, 38, 0.08);
    background: var(--surface-soft);
}

.dashboard-chalet-stat span,
.dashboard-chalet-stat strong {
    display: block;
}

.dashboard-chalet-stat span {
    color: var(--muted);
    font-size: 0.85rem;
    font-weight: 700;
}

.dashboard-chalet-stat strong {
    margin-top: 0.45rem;
    font-size: 1.8rem;
    line-height: 1;
}

.dashboard-chalet-stat.success {
    background: #e7f6e9;
}

.dashboard-chalet-stat.warning {
    background: #fff3df;
}

.dashboard-chalet-stat.danger {
    background: #fde7e7;
}

.dashboard-note {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 1rem;
    border-radius: 16px;
    background: rgba(110, 161, 110, 0.12);
    color: var(--primary-dark);
    font-weight: 600;
}

.table-card .table > :not(caption) > * > * {
    padding: 1rem;
    border-color: rgba(36, 49, 38, 0.06);
}

.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.78rem;
}

.status-pill.success {
    background: #e7f6e9;
    color: #2f7a3c;
}

.status-pill.warning {
    background: #fff3df;
    color: #9c6a0c;
}

.status-pill.danger {
    background: #fde7e7;
    color: #9f3131;
}

.status-pill.info {
    background: #e8f1ff;
    color: #315ea8;
}

/* =========================================================
   RESERVAS
========================================================= */

.reservation-asaas {
    background: linear-gradient(180deg, #fbfcf8 0%, #ffffff 100%);
    border: 1px solid rgba(36, 49, 38, 0.1);
    border-radius: 18px;
    padding: 1.25rem;
}

.reservation-asaas__head {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.reservation-asaas__title {
    align-items: center;
    display: flex;
    gap: 0.85rem;
}

.reservation-asaas__head-actions,
.reservation-asaas__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.reservation-asaas__summary {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 1rem;
}

.reservation-asaas__metric,
.reservation-asaas__billing-card,
.reservation-asaas__history {
    background: #fff;
    border: 1px solid rgba(36, 49, 38, 0.09);
    border-radius: 16px;
}

.reservation-asaas__metric {
    padding: 1rem;
}

.reservation-asaas__label {
    color: var(--muted);
    font-size: 0.78rem;
    margin-bottom: 0.3rem;
}

.reservation-asaas__value {
    font-weight: 700;
}

.reservation-asaas__link,
.reservation-asaas__actions,
.reservation-asaas__history {
    margin-top: 1rem;
}

.reservation-asaas__billing-card {
    align-items: stretch;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) 230px;
    padding: 1.15rem;
}

.reservation-asaas__billing-copy p {
    color: var(--muted);
    font-size: 0.88rem;
    margin: 0.45rem 0 0;
}

.reservation-asaas__statusline {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.reservation-asaas__statusline span {
    font-weight: 800;
}

.reservation-asaas__statusline small {
    background: var(--primary-soft);
    border-radius: 999px;
    color: var(--primary-dark);
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.25rem 0.55rem;
}

.reservation-asaas__breakdown {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.9rem;
}

.reservation-asaas__breakdown div {
    background: var(--surface-soft);
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 12px;
    padding: 0.75rem;
}

.reservation-asaas__breakdown span,
.reservation-asaas__amount-panel span {
    color: var(--muted);
    display: block;
    font-size: 0.74rem;
    font-weight: 700;
    margin-bottom: 0.2rem;
}

.reservation-asaas__breakdown strong {
    color: var(--text);
    font-size: 0.9rem;
}

.reservation-asaas__amount-panel {
    align-items: stretch;
    background: #eff7ef;
    border: 1px solid rgba(77, 126, 85, 0.14);
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 1rem;
    text-align: center;
}

.reservation-asaas__amount-panel strong {
    color: var(--text);
    display: block;
    font-size: 1.45rem;
    line-height: 1.1;
    margin-bottom: 0.85rem;
}

.reservation-asaas__history {
    padding: 1rem;
}

.reservation-asaas__history-head {
    align-items: center;
    display: flex;
    gap: 0.65rem;
    margin-bottom: 0.8rem;
}

.reservation-asaas__history-head i {
    color: var(--primary-dark);
}

.reservation-asaas__history-empty {
    background: var(--surface-soft);
    border: 1px dashed rgba(36, 49, 38, 0.16);
    border-radius: 14px;
    color: var(--muted);
    font-size: 0.88rem;
    padding: 0.9rem 1rem;
}

.reservation-asaas__table {
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 14px;
    overflow: hidden;
}

.reservation-save-note {
    margin-top: 0.25rem;
}

.system-tabs {
    border-bottom-color: rgba(36, 49, 38, 0.1);
    gap: 0.35rem;
}

.system-tabs .nav-link {
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--muted);
    font-weight: 700;
    padding: 0.6rem 1rem;
}

.system-tabs .nav-link.active {
    background: var(--primary-soft);
    border-color: rgba(77, 126, 85, 0.18);
    color: var(--primary-dark);
}

.settings-panel {
    background: var(--surface-soft);
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 18px;
    padding: 1.25rem;
}

.settings-panel__head {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}

.settings-panel__note {
    background: #fff;
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 14px;
    color: var(--muted);
    font-size: 0.88rem;
    padding: 0.9rem 1rem;
}

.settings-panel__actions {
    border-top: 1px solid rgba(36, 49, 38, 0.08);
    display: flex;
    justify-content: flex-end;
    margin-top: 1.25rem;
    padding-top: 1rem;
}

.construction-status {
    background: rgba(100, 113, 102, 0.1);
    border-radius: 999px;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
    padding: 0.4rem 0.75rem;
    text-transform: uppercase;
}

.construction-status.is-enabled {
    background: var(--primary-soft);
    color: var(--primary-dark);
}

.construction-setting {
    display: grid;
    gap: 1.25rem;
}

.construction-setting__toggle {
    align-items: center;
    background: #fff;
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 14px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
}

.construction-setting__toggle .form-check-input {
    height: 1.5rem;
    width: 2.8rem;
}

.construction-page {
    align-items: center;
    background:
        radial-gradient(circle at 15% 15%, rgba(215, 229, 208, 0.95), transparent 32%),
        linear-gradient(145deg, #f8f7f3 0%, #edf5ec 100%);
    display: flex;
    justify-content: center;
    min-height: 100vh;
    overflow: hidden;
    padding: 2rem;
    position: relative;
}

.construction-page__glow {
    border: 1px solid rgba(77, 126, 85, 0.12);
    border-radius: 50%;
    position: absolute;
}

.construction-page__glow--one {
    height: 280px;
    left: -90px;
    top: -100px;
    width: 280px;
}

.construction-page__glow--two {
    bottom: -170px;
    height: 440px;
    right: -150px;
    width: 440px;
}

.construction-card {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 32px;
    box-shadow: 0 28px 80px rgba(27, 44, 28, 0.12);
    max-width: 720px;
    padding: clamp(2rem, 6vw, 4.5rem);
    position: relative;
    text-align: center;
    width: 100%;
    z-index: 1;
}

.construction-card__brand img {
    height: auto;
    margin-bottom: 2rem;
    max-width: 260px;
    width: 70%;
}

.construction-card__icon {
    align-items: center;
    background: var(--primary-soft);
    border-radius: 50%;
    color: var(--primary-dark);
    display: inline-flex;
    font-size: 1.55rem;
    height: 58px;
    justify-content: center;
    margin-bottom: 1.5rem;
    width: 58px;
}

.construction-card h1 {
    font-size: clamp(2rem, 6vw, 3.5rem);
    letter-spacing: -0.04em;
    line-height: 1.05;
    margin-bottom: 1.25rem;
}

.construction-card > p {
    color: var(--muted);
    font-size: clamp(1rem, 2vw, 1.15rem);
    line-height: 1.75;
    margin: 0 auto 2rem;
    max-width: 560px;
    white-space: pre-line;
}

.construction-card__detail {
    align-items: center;
    background: var(--surface-soft);
    border-radius: 16px;
    color: var(--primary-dark);
    display: inline-flex;
    font-size: 0.9rem;
    font-weight: 700;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
}

/* =========================================================
   DATATABLES
========================================================= */

.admin-datatable {
    border-collapse: separate;
    border-spacing: 0;
}

.dt-container {
    color: var(--text);
}

.dt-container .row:first-child,
.dt-container .row:last-child {
    align-items: center;
    gap: 0.75rem 0;
    padding: 1rem;
}

.dt-container .dt-search,
.dt-container .dt-length,
.dt-container .dt-info,
.dt-container .dt-paging {
    color: var(--muted);
}

.dt-container .dt-search {
    display: flex;
    justify-content: flex-end;
}

.dt-container .dt-length label,
.dt-container .dt-search label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.dt-container .dt-search input,
.dt-container .dt-length select {
    border-color: rgba(36, 49, 38, 0.14);
    border-radius: var(--radius-sm);
    min-height: 42px;
}

.dt-container .dt-search input {
    width: min(360px, 42vw) !important;
    min-width: 280px !important;
    max-width: 100%;
}

.dt-container .dt-search input:focus,
.dt-container .dt-length select:focus {
    border-color: rgba(110, 161, 110, 0.55);
    box-shadow: 0 0 0 0.2rem rgba(110, 161, 110, 0.16);
}

.dt-container .dt-processing {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow);
    color: var(--primary-dark);
    font-weight: 700;
    padding: 0.85rem 1.25rem;
}

.dt-container .page-link {
    border-color: rgba(36, 49, 38, 0.12);
    color: var(--primary-dark);
}

.dt-container .page-link:focus {
    box-shadow: 0 0 0 0.2rem rgba(110, 161, 110, 0.16);
}

.dt-container .active > .page-link,
.dt-container .page-link.active {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    color: #fff;
}

.dt-container table.dataTable > thead > tr > th,
.dt-container table.dataTable > thead > tr > td {
    border-bottom-color: rgba(36, 49, 38, 0.08);
}

.dt-container table.dataTable > tbody > tr:hover > * {
    background: rgba(237, 245, 236, 0.42);
}

/* =========================================================
    CHALES
========================================================= */

.chalet-listing-thumb-wrap {
    flex-shrink: 0;
}

.chalet-listing-thumb {
    width: 74px;
    height: 74px;
    border-radius: 18px;
    object-fit: cover;
    display: block;
    background: #eef2ea;
    border: 1px solid rgba(36, 49, 38, 0.08);
}

.chalet-listing-thumb--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--muted);
    font-size: 1.25rem;
}

.chalet-listing-title {
    line-height: 1.15;
}

.chalet-highlight-pill {
    display: inline-flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    background: var(--primary-soft);
    color: var(--primary-dark);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
}

.chalet-highlight-pill span {
    display: block;
    text-align: center;
    width: 100%;
}

.tour-distance-pill {
    display: inline-grid;
    justify-items: center;
    place-content: center;
}

.tour-distance-pill__line {
    display: block;
    line-height: 1.1;
    text-align: center;
    width: 100%;
}

.tour-phone-link {
    color: inherit;
    font-weight: inherit;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.chalet-highlight-pill--muted {
    background: #eef1ec;
    color: var(--muted);
}

.chalet-list-table tbody tr td {
    vertical-align: middle;
}

.chalet-map-editor {
    overflow: hidden;
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 18px;
    background: #eef4ea;
}

.chalet-map-editor__stage {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    cursor: crosshair;
    touch-action: none;
    background: #dfe9d7;
}

.chalet-map-editor__image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    user-select: none;
    pointer-events: none;
}

.chalet-map-editor__pin {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 2;
    width: 54px;
    height: 54px;
    border: 0;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    background: rgba(29, 52, 33, 0.94);
    color: #fff;
    font-weight: 800;
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
    cursor: grab;
    transition: box-shadow 0.18s ease, background-color 0.18s ease;
}

.chalet-map-editor__pin:hover,
.chalet-map-editor__pin:focus-visible,
.chalet-map-editor__pin.is-dragging {
    background: var(--primary-dark);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.28);
}

.chalet-map-editor__pin.is-dragging {
    cursor: grabbing;
}

.chalet-map-editor__zone {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 3;
    transform: translate(-50%, -50%);
    border: 0;
    border-radius: 999px;
    padding: 0.55rem 0.95rem;
    background: rgba(255, 255, 255, 0.94);
    color: var(--text);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    cursor: grab;
    white-space: nowrap;
    transition: box-shadow 0.18s ease, outline-color 0.18s ease;
}

.chalet-map-editor__zone:hover,
.chalet-map-editor__zone:focus-visible,
.chalet-map-editor__zone.is-active,
.chalet-map-editor__zone.is-dragging {
    outline: 3px solid rgba(29, 52, 33, 0.2);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2);
}

.chalet-map-editor__zone.is-dragging {
    cursor: grabbing;
}

.map-zone-admin-row {
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 16px;
    padding: 1rem;
    background: #fff;
}

.map-zone-admin-row.is-active {
    border-color: rgba(29, 52, 33, 0.26);
    box-shadow: 0 12px 28px rgba(29, 52, 33, 0.08);
}

.map-upload-panel {
    border: 1px solid rgba(36, 49, 38, 0.08);
    border-radius: 18px;
    padding: 1.25rem;
    background: #fff;
}

.map-upload-panel__hint {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    border: 1px solid rgba(29, 52, 33, 0.12);
    border-radius: 14px;
    padding: 0.85rem;
    background: rgba(238, 244, 234, 0.72);
    color: var(--muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

.map-upload-panel__hint i {
    color: var(--primary);
    line-height: 1.45;
}

.chalet-map-editor__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: #fff;
    border-top: 1px solid rgba(36, 49, 38, 0.08);
}

@media (max-width: 767.98px) {
    .chalet-listing-thumb {
        width: 60px;
        height: 60px;
        border-radius: 16px;
    }

    .chalet-highlight-pill {
        font-size: 0.74rem;
    }

    .chalet-map-editor__pin {
        width: 46px;
        height: 46px;
    }

    .chalet-map-editor__zone {
        max-width: 44vw;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 0.68rem;
    }

    .chalet-map-editor__footer {
        align-items: stretch;
        flex-direction: column;
    }
}

.chalet-gallery-card img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}

.gallery-admin-card {
    display: flex;
    flex-direction: column;
}

.gallery-admin-thumb {
    aspect-ratio: 3 / 2;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.gallery-admin-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
}

.gallery-admin-card .form-label {
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.gallery-admin-card .form-control,
.gallery-admin-card .form-select {
    min-height: 42px;
}

.gallery-admin-card textarea {
    min-height: 76px;
}

.gallery-admin-footer {
    align-items: flex-start;
    border-top: 1px solid rgba(36, 49, 38, 0.08);
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 0.9rem;
}

.gallery-admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.gallery-admin-actions form {
    margin: 0;
}

/* =========================================================
   LOGIN
========================================================= */

.login-wrap {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(110, 161, 110, 0.22), transparent 30%),
        linear-gradient(180deg, #edf3eb 0%, #f7f7f4 100%);
}

.login-panel {
    overflow: hidden;
}

.login-aside {
    background: linear-gradient(180deg, rgba(77, 126, 85, 0.96), rgba(33, 51, 40, 0.98));
    color: #fff;
}

/* =========================================================
   RESPONSIVO
========================================================= */

@media (max-width: 991.98px) {
    .hero-section {
        background-image:
            linear-gradient(180deg, rgba(20, 26, 19, 0.12) 0%, rgba(20, 26, 19, 0.22) 30%, rgba(20, 26, 19, 0.72) 100%),
            var(--hero-mobile-image, var(--hero-desktop-image));
        min-height: auto;
        padding: 5rem 0 2rem;
    }

    .hero-side-card {
        margin-top: 1rem;
    }

    .section-block {
        padding: 4rem 0;
    }

    .admin-sidebar-desktop {
        display: none !important;
    }

    .dashboard-hero {
        align-items: stretch;
        flex-direction: column;
    }

    .dashboard-hero-actions {
        justify-content: flex-start;
    }

    .dashboard-chalet-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .site-footer-watermark {
        bottom: 5rem;
        opacity: 0.055;
        right: 1rem;
        width: 130px;
    }
}

@media (min-width: 992px) {
    .admin-mobile-only {
        display: none !important;
    }

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

@media (max-width: 767.98px) {
    .hero-header {
        padding: 0;
    }

    .hero-header .container {
        padding-top: 0.75rem !important;
        padding-bottom: 0.75rem !important;
    }

    .brand {
        min-width: 0;
    }

    .brand-logo {
        width: 150px;
        max-height: 92px;
    }

    .site-nav-inline {
        display: none !important;
    }

    .section-title {
        font-size: 2rem;
    }

    .dashboard-panel-head {
        align-items: flex-start;
        flex-direction: column;
        padding: 1rem;
    }

    .dashboard-chalet-grid {
        grid-template-columns: 1fr;
    }

    .hero-meta-item {
        min-width: calc(50% - 0.4rem);
    }

    .home-map-zone {
        font-size: 0.56rem;
        padding: 0.32rem 0.5rem;
    }

    .home-chalet-pin {
        font-size: 0.68rem;
        height: 30px;
        width: 30px;
    }

    .home-map-cta {
        bottom: 0.75rem;
        font-size: 0.78rem;
        justify-content: center;
        left: 0.75rem;
        right: 0.75rem;
    }

    .about-video-card {
        min-height: auto;
    }

    .admin-page-head {
        display: block !important;
    }

    .admin-page-head .btn,
    .admin-page-head .btn-group,
    .action-stack .btn {
        width: 100%;
        margin-top: 0.75rem;
    }

    .metric-card,
    .admin-card,
    .quick-card,
    .table-card,
    .login-panel,
    .contact-card,
    .reserve-card {
        border-radius: 18px;
    }

    .table-responsive table {
        min-width: 620px;
    }

    .reservation-asaas {
        padding: 1rem;
    }

    .reservation-asaas__head,
    .reservation-asaas__title,
    .reservation-asaas__billing-card {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .reservation-asaas__head,
    .reservation-asaas__title,
    .reservation-asaas__head-actions,
    .reservation-asaas__actions {
        flex-direction: column;
    }

    .reservation-asaas__breakdown {
        grid-template-columns: 1fr;
    }

    .reservation-asaas__summary {
        grid-template-columns: 1fr;
    }

    .reservation-asaas__head-actions .btn,
    .reservation-asaas__actions .btn,
    .reservation-asaas__amount-panel .btn,
    .settings-panel__actions .btn {
        width: 100%;
    }

    .settings-panel {
        padding: 1rem;
    }

    .settings-panel__actions {
        display: block;
    }

    .dt-container .dt-search,
    .dt-container .dt-length,
    .dt-container .dt-paging {
        justify-content: flex-start;
    }

    .dt-container .dt-search input {
        width: 100% !important;
        min-width: 0 !important;
    }
}
