
/* Institutional pages */
.page-institutional { background: var(--surface-soft); }
.institutional-hero { padding: 72px 0 64px; background: #202622; color: #fff; }
.institutional-hero-careers { background: #254c31; }
.institutional-hero-about { background: #40533a; }
.institutional-hero h1 { max-width: 760px; margin: 0 0 10px; font-size: 44px; line-height: 1.1; }
.institutional-hero > .site-container > p:last-child { max-width: 620px; margin: 0; color: rgba(255,255,255,.82); font-size: 18px; }
.institutional-section { padding: 58px 0 70px; }
.institutional-form-grid { display: grid; grid-template-columns: minmax(250px, .7fr) minmax(0, 1.3fr); gap: 34px; align-items: start; }
.institutional-copy { padding: 10px 0; }
.institutional-copy h2 { margin: 0 0 12px; font-size: 28px; }
.institutional-copy p { color: var(--muted); }
.institutional-copy a { display: block; margin-top: 12px; color: var(--girotti-green); font-weight: 700; }
.institutional-copy i { width: 20px; }
.institutional-note { font-size: 13px; }
.institutional-card { padding: 28px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
.institutional-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.institutional-fields label { display: grid; gap: 6px; color: #374151; font-size: 13px; font-weight: 700; }
.institutional-fields input, .institutional-fields select, .institutional-fields textarea { width: 100%; padding: 10px 11px; border: 1px solid #cfd5d0; border-radius: 4px; color: var(--text); background: #fff; font: inherit; font-weight: 400; }
.institutional-fields textarea { min-height: 130px; resize: vertical; }
.form-field-wide { grid-column: 1 / -1; }
.institutional-submit { display: inline-flex; align-items: center; gap: 9px; margin-top: 20px; padding: 11px 16px; border: 0; border-radius: 5px; background: var(--girotti-green); color: #fff; font-weight: 700; cursor: pointer; }
.institutional-submit:hover { background: var(--girotti-green-dark); }
.form-message { margin-bottom: 18px; padding: 13px 14px; border-radius: 5px; font-size: 14px; }
.form-message-success { border: 1px solid #9acba0; background: #eef8ef; color: #1f6530; }
.form-message-error { border: 1px solid #efb2b2; background: #fff2f2; color: #aa2020; }
.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.institutional-story { max-width: 980px; }
.institutional-prose { max-width: 760px; color: #4b5563; font-size: 16px; }
.institutional-service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 34px; }
.institutional-service-grid article { padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.institutional-service-grid i { color: var(--girotti-green); font-size: 24px; }
.institutional-service-grid h3 { margin: 12px 0 7px; font-size: 19px; }
.institutional-service-grid p { margin: 0; color: var(--muted); font-size: 14px; }
.institutional-cta { padding: 46px 0; background: #202622; color: #fff; }
.institutional-cta .site-container { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.institutional-cta h2 { margin: 0; font-size: 28px; }
.thanks-main { min-height: 560px; display: grid; place-items: center; padding: 60px 20px; }
.thanks-section { width: 100%; max-width: 700px; }
.thanks-card { padding: 48px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.thanks-icon { display: inline-grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: #eaf7ed; color: var(--girotti-green-dark); font-size: 25px; }
.thanks-card h1 { margin: 14px 0 13px; font-size: 32px; }
.thanks-card > p { max-width: 540px; margin: 0 auto; color: var(--muted); font-size: 17px; line-height: 1.6; }
.thanks-card .section-kicker { margin-top: 18px; }
.thanks-reference { margin-top: 18px !important; color: var(--text) !important; font-size: 14px !important; font-weight: 700; }
.thanks-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.thanks-actions .institutional-submit { margin-top: 0; text-decoration: none; }
.thanks-whatsapp { display: inline-flex; align-items: center; gap: 8px; padding: 10px 15px; border: 1px solid #25d366; border-radius: 5px; color: #187a3a; font-weight: 700; }

@media (max-width: 760px) {
    .institutional-hero { padding: 52px 0 48px; }
    .institutional-hero h1 { font-size: 34px; }
    .institutional-section { padding: 42px 0 52px; }
    .institutional-form-grid, .institutional-service-grid { grid-template-columns: 1fr; }
    .institutional-card { padding: 20px; }
    .institutional-fields { grid-template-columns: 1fr; }
    .form-field-wide { grid-column: auto; }
    .institutional-cta .site-container { align-items: flex-start; flex-direction: column; }
    .thanks-main { min-height: 460px; padding: 42px 16px; }
    .thanks-card { padding: 32px 22px; }
    .thanks-card h1 { font-size: 28px; }
}
:root {
    --girotti-green: #289b37;
    --girotti-green-dark: #1f7d2c;
    --girotti-red: #f20f2f;
    --text: #222;
    --muted: #6b7280;
    --line: #e5e7eb;
    --surface: #fff;
    --surface-soft: #f7f8f7;
    --container: 1180px;
    --shadow: 0 12px 30px rgba(0, 0, 0, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--text);
    background: #fff;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--girotti-green); }
img { display: block; max-width: 100%; }
button, input, select { font: inherit; }

.site-container {
    width: min(calc(100% - 32px), var(--container));
    margin: 0 auto;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ================================================================
   Header compacto
   Logo a la izquierda. Contacto + Urbana/Campos a la derecha.
   ================================================================ */
.site-header {
    position: relative;
    z-index: 30;
    background: #fff;
    border-bottom: 1px solid var(--line);
}

.header-primary { background: #fff; }
.header-primary-inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 24px;
    min-height: 86px;
    padding: 8px 0;
}

.brand { display: inline-flex; align-items: center; }
.brand img { width: 245px; height: auto; }

.header-right {
    justify-self: end;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 7px;
    min-width: 0;
}

.contact-line {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 5px 16px;
    color: #4b5563;
    font-size: 12px;
    line-height: 1.25;
}
.contact-line span { white-space: nowrap; }
.contact-line i {
    width: 14px;
    margin-right: 3px;
    color: var(--girotti-green);
    text-align: center;
}
.contact-line a:hover { color: var(--girotti-green); }

.business-socials {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 13px;
}
.business-social-group {
    display: flex;
    align-items: center;
    gap: 9px;
}
.business-label {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.05;
}
.business-label strong {
    font-size: 11px;
    letter-spacing: .08em;
}
.business-label span {
    margin-top: 3px;
    color: var(--muted);
    font-size: 9px;
    white-space: nowrap;
}
.business-links { display: flex; align-items: center; gap: 2px; }
.business-divider { width: 1px; height: 31px; background: var(--line); }

.whatsapp-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 30px;
    padding: 4px 8px;
    border: 1px solid var(--girotti-green);
    border-radius: 4px;
    color: var(--girotti-green);
    font-size: 11px;
    font-weight: 700;
    transition: background-color .18s ease, color .18s ease;
}
.whatsapp-cta:hover { color: #fff; background: var(--girotti-green); }
.whatsapp-cta i { font-size: 15px; }

.social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    border-radius: 50%;
    color: #222;
    font-size: 15px;
}
.social-icon:hover { color: var(--girotti-green); background: var(--surface-soft); }

.menu-toggle {
    display: none;
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    color: #222;
    cursor: pointer;
    font-size: 19px;
}

.nav-bar {
    position: relative;
    border-top: 1px solid #f0f1f0;
    background: #fff;
}
.nav-bar-inner { min-height: 43px; }
.main-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 27px;
    min-height: 43px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}
.main-nav a { padding: 12px 0 10px; }
.main-nav a:hover { color: var(--girotti-green); }

/* Hero */
.hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 365px;
    background-position: center;
    background-size: cover;
}
.hero-campos { background-image: url('../images/slider/campos.jpg'); }
.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.62), rgba(0,0,0,.15));
}
.hero-content { position: relative; z-index: 1; color: #fff; }
.hero-kicker, .section-kicker {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.hero h1 {
    max-width: 720px;
    margin: 0 0 12px;
    font-size: clamp(36px, 5vw, 60px);
    line-height: 1.02;
}
.hero p:not(.hero-kicker) { margin: 0 0 24px; font-size: clamp(17px, 2vw, 21px); }
.hero-cta {
    display: inline-flex;
    padding: 10px 17px;
    border-radius: 5px;
    background: var(--girotti-green);
    color: #fff;
    font-weight: 700;
}
.hero-cta:hover { background: var(--girotti-green-dark); color: #fff; }

/* Search */
.search-section { position: relative; z-index: 4; margin-top: -38px; }
.property-search {
    padding: 20px;
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
}
.search-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 13px;
}
.property-search .search-head h2 { margin: 0; font-size: 18px; }
.clear-search { color: var(--girotti-green); font-size: 12px; font-weight: 700; }
.search-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: 11px;
    align-items: end;
}
.search-grid label {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.search-grid select {
    width: 100%;
    height: 42px;
    padding: 0 34px 0 11px;
    border: 1px solid #d8dadd;
    border-radius: 4px;
    background: #fff;
    color: #333;
    letter-spacing: 0;
    text-transform: none;
}
.search-button {
    height: 42px;
    padding: 0 20px;
    border: 0;
    border-radius: 4px;
    background: var(--girotti-green);
    color: #fff;
    cursor: pointer;
    font-weight: 700;
}
.search-button:hover { background: var(--girotti-green-dark); }

/* Sections */
.categories-section, .cta-section { padding: 64px 0; }
.section-heading { margin-bottom: 25px; }
.section-kicker { color: var(--girotti-green); }
.section-heading h2 { margin: 0 0 8px; font-size: clamp(27px, 3vw, 37px); }
.section-heading p:last-child { max-width: 720px; color: var(--muted); }

.category-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 17px; }
.category-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 90px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(0,0,0,.035);
}
.category-card i { width: 40px; color: var(--girotti-green); font-size: 28px; text-align: center; }
.category-card strong { font-size: 16px; }

.property-types-section { padding: 64px 0; }
.property-types-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.property-type-card {
    display: flex;
    min-height: 104px;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(0,0,0,.035);
}
.property-type-card i { color: var(--girotti-green); font-size: 25px; }
.property-type-card strong { font-size: 15px; }

/* Properties */
.properties-section { padding: 66px 0; background: var(--surface-soft); }
.properties-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}
.properties-heading h2 { margin: 0; font-size: clamp(27px, 3vw, 37px); }
.active-filters { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.results-count {
    flex-shrink: 0;
    padding: 7px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--muted);
    font-size: 12px;
}
.results-count strong { color: var(--text); }

.property-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.property-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(0,0,0,.045);
}
.property-image {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #ecefec;
}
.property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .25s ease;
}
.property-card:hover .property-image img { transform: scale(1.025); }
.operation-badge {
    position: absolute;
    left: 12px;
    bottom: 12px;
    padding: 5px 9px;
    border-radius: 4px;
    background: rgba(32,38,34,.9);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.property-video-badge {
    position: absolute;
    right: 12px;
    bottom: 12px;
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 4px;
    background: rgba(23,28,24,.88);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 3px 10px rgba(0,0,0,.18);
    backdrop-filter: blur(4px);
}
.property-video-badge i { font-size: 12px; }
.property-body { padding: 17px; }
.property-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 14px;
    min-height: 20px;
    color: var(--muted);
    font-size: 11px;
}
.property-meta i { color: var(--girotti-green); }
.property-body h3 { margin: 9px 0 16px; font-size: 17px; line-height: 1.3; }
.property-body h3 a:hover { color: var(--girotti-green); }
.property-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
}
.property-footer strong { font-size: 14px; }
.property-more { flex-shrink: 0; color: var(--girotti-green); font-size: 12px; font-weight: 700; }

.status-box {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--muted);
}
.status-box a { color: var(--girotti-green); font-weight: 700; }
.status-box small { display: block; margin-top: 10px; }
.status-error { border-color: #e9b5b5; }

/* Infinite scroll / loader */
.properties-load-region {
    display: flex;
    min-height: 92px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 25px;
}
.properties-sentinel { width: 100%; height: 1px; }
.list-loader {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    color: var(--muted);
    font-size: 13px;
}
.list-loader[hidden], .properties-end[hidden], .load-more-button[hidden] { display: none !important; }
.loading-spinner {
    width: 22px;
    height: 22px;
    border: 3px solid #d8ddd8;
    border-top-color: var(--girotti-green);
    border-radius: 50%;
    animation: girotti-spin .7s linear infinite;
}
@keyframes girotti-spin { to { transform: rotate(360deg); } }
.load-more-button {
    min-height: 39px;
    padding: 7px 15px;
    border: 1px solid var(--girotti-green);
    border-radius: 5px;
    background: #fff;
    color: var(--girotti-green);
    cursor: pointer;
    font-weight: 700;
}
.load-more-button:hover { background: var(--girotti-green); color: #fff; }
.load-more-button:disabled { opacity: .55; cursor: wait; }
.properties-end { margin: 0; color: var(--muted); font-size: 12px; }

/* CTA */
.cta-section { background: #202622; color: #fff; }
.cta-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.cta-grid a {
    display: grid;
    gap: 7px;
    min-height: 150px;
    padding: 23px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 8px;
}
.cta-grid a:hover { border-color: var(--girotti-green); color: #fff; background: rgba(255,255,255,.035); }
.cta-grid i { color: #69c774; font-size: 28px; }
.cta-grid strong { font-size: 20px; }
.cta-grid span { color: #cfd5d0; font-size: 14px; }

/* Footer */
.site-footer { padding-top: 46px; background: #f4f5f4; border-top: 1px solid var(--line); }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 42px; padding-bottom: 38px; }
.footer-logo { width: 210px; margin-bottom: 14px; }
.footer-grid h2 { margin: 0 0 12px; font-size: 16px; }
.footer-grid p { margin: 6px 0; color: #555; font-size: 14px; }
.footer-bottom { padding: 15px; border-top: 1px solid var(--line); color: #6b7280; text-align: center; font-size: 12px; }

@media (max-width: 1050px) {
    .header-primary-inner { gap: 18px; }
    .brand img { width: 215px; }
    .contact-line { font-size: 11px; gap: 5px 11px; }
    .business-label span { display: none; }
    .main-nav { gap: 17px; font-size: 11px; }
    .search-grid { grid-template-columns: repeat(2, 1fr); }
    .search-button { width: 100%; }
    .property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .site-container { width: min(calc(100% - 24px), var(--container)); }

    .header-primary-inner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px 12px;
        min-height: 0;
        padding: 10px 0 8px;
    }
    .brand img { width: 190px; }
    .menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        grid-column: 2;
        grid-row: 1;
    }
    .header-right {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-self: stretch;
        width: 100%;
        align-items: stretch;
        gap: 7px;
    }
    .contact-line {
        justify-content: flex-start;
        gap: 5px 11px;
        font-size: 11px;
    }
    .contact-line span:first-child { width: 100%; }
    .business-socials {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
        width: 100%;
        border-top: 1px solid #f0f1f0;
    }
    .business-social-group {
        justify-content: space-between;
        min-width: 0;
        padding: 7px 8px 2px 0;
    }
    .business-social-group:last-of-type { padding-left: 9px; padding-right: 0; border-left: 1px solid var(--line); }
    .business-label { align-items: flex-start; }
    .business-label strong { font-size: 10px; }
    .business-label span { display: none; }
    .business-divider { display: none; }
    .whatsapp-cta { min-height: 28px; padding: 3px 7px; }
    .social-icon { width: 27px; height: 27px; font-size: 14px; }

    .nav-bar { border-top: 0; }
    .nav-bar-inner { min-height: 0; }
    .main-nav {
        display: none;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        z-index: 50;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        min-height: 0;
        padding: 8px 16px 14px;
        border-top: 1px solid var(--line);
        background: #fff;
        box-shadow: var(--shadow);
    }
    .main-nav.is-open { display: flex; }
    .main-nav a { padding: 11px 4px; border-bottom: 1px solid var(--line); }

    .hero { min-height: 315px; }
    .hero-content { padding-bottom: 30px; }
    .search-section { margin-top: -24px; }
    .property-search { padding: 15px; }
    .search-grid { grid-template-columns: 1fr; }

    .category-grid, .cta-grid, .footer-grid { grid-template-columns: 1fr; }
    .categories-section, .cta-section { padding: 50px 0; }
    .properties-section { padding: 50px 0; }
    .properties-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
    .property-grid { grid-template-columns: 1fr; gap: 14px; }
    .property-footer { align-items: flex-start; }
    .footer-grid { gap: 26px; }
}

@media (max-width: 430px) {
    .brand img { width: 175px; }
    .contact-line { font-size: 10px; gap: 4px 9px; }
    .whatsapp-cta span { display: none; }
    .whatsapp-cta { width: 28px; padding: 0; }
    .business-links { gap: 0; }
    .social-icon { width: 26px; height: 26px; }
    .hero h1 { font-size: 37px; }
}


/* ================================================================
   Recomendados: carrusel nativo, sin jQuery / Owl Carousel
   ================================================================ */
.recommended-section {
    padding: 34px 0 24px;
    background: #fff;
}
.recommended-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}
.recommended-heading h2 {
    margin: 0;
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.08;
}
.recommendeds-shell { min-height: 190px; }
.recommendeds-loading {
    display: flex;
    min-height: 190px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--muted);
    font-size: 13px;
}
.recommended-carousel {
    position: relative;
    padding: 0 38px;
}
.recommended-viewport {
    overflow: hidden;
}
.recommended-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    padding: 2px;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.recommended-track::-webkit-scrollbar { display: none; }
.recommended-card {
    position: relative;
    flex: 0 0 calc((100% - 48px) / 4);
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    scroll-snap-align: start;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.recommended-card:hover {
    color: inherit;
    border-color: #cfd5d0;
    box-shadow: 0 10px 24px rgba(0,0,0,.08);
    transform: translateY(-2px);
}
.recommended-image {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--surface-soft);
}
.recommended-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.recommended-badge {
    position: absolute;
    top: 12px;
    right: -31px;
    width: 126px;
    padding: 5px 0;
    background: var(--girotti-red);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .05em;
    text-align: center;
    transform: rotate(42deg);
}
.recommended-card h3 {
    min-height: 48px;
    margin: 0;
    padding: 12px 13px 13px;
    font-size: 13px;
    line-height: 1.3;
    text-transform: uppercase;
}
.recommended-nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-flex;
    width: 31px;
    height: 31px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: #30363a;
    color: #fff;
    cursor: pointer;
    transform: translateY(-50%);
    box-shadow: 0 4px 12px rgba(0,0,0,.14);
}
.recommended-nav:hover { background: var(--girotti-green); }
.recommended-nav--prev { left: 0; }
.recommended-nav--next { right: 0; }

@media (max-width: 1050px) {
    .recommended-card { flex-basis: calc((100% - 32px) / 3); }
}

@media (max-width: 760px) {
    .recommended-section { padding: 28px 0 18px; }
    .recommended-carousel { padding: 0 34px; }
    .recommended-card { flex-basis: calc((100% - 16px) / 2); }
}

@media (max-width: 480px) {
    .recommended-heading { margin-bottom: 12px; }
    .recommended-carousel { padding: 0 30px; }
    .recommended-track { gap: 10px; }
    .recommended-card { flex-basis: 100%; }
    .recommended-nav { width: 27px; height: 27px; }
    .recommended-card h3 { min-height: 44px; font-size: 12px; }
}

/* ================================================================
   Stage 5 - filtros rurales compactos
   Los tipos que antes ocupaban una sección completa pasan al buscador.
   ================================================================ */
.search-head > div { min-width: 0; }
.search-head p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 11px;
}
.search-grid--campos {
    grid-template-columns: 1.2fr .85fr 1fr 1fr .8fr auto;
}
.search-grid--urbana {
    grid-template-columns: 1.1fr .85fr 1fr 1fr .8fr auto;
}

@media (max-width: 1050px) {
    .property-types-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .property-types-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .property-types-grid { grid-template-columns: 1fr; }
}

/* ================================================================
   Ficha moderna de Campos
   ================================================================ */
.page-campo-detail { background: var(--surface-soft); }
.detail-status-section { padding: 70px 0; }
.detail-status-section .status-box h1 { margin-top: 0; color: var(--text); }

.detail-intro {
    padding: 30px 0 18px;
    background: #fff;
    border-bottom: 1px solid var(--line);
}
.detail-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    color: var(--muted);
    font-size: 12px;
}
.detail-breadcrumb a { color: var(--girotti-green); font-weight: 700; }
.detail-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}
.detail-title-row h1 {
    max-width: 900px;
    margin: 0;
    font-size: clamp(29px, 4vw, 48px);
    line-height: 1.06;
}
.detail-location {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: 14px;
}
.detail-location i { color: var(--girotti-green); }
.detail-share {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 8px 15px;
    border: 1px solid var(--girotti-green);
    border-radius: 5px;
    color: var(--girotti-green);
    font-weight: 700;
}
.detail-share:hover { color: #fff; background: var(--girotti-green); }
.detail-share i { font-size: 18px; }

.detail-main-section { padding: 28px 0 38px; }
.detail-main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(280px, .75fr);
    gap: 24px;
    align-items: start;
}
.detail-gallery { min-width: 0; }
.detail-media-stage {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 10px;
    background: #e8ebe8;
    box-shadow: 0 8px 26px rgba(0,0,0,.07);
}
.detail-main-photo {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: #e8ebe8;
    cursor: zoom-in;
}
.detail-main-photo > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.detail-main-photo--placeholder { cursor: default; }
.detail-photo-count,
.detail-photo-zoom {
    position: absolute;
    bottom: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(23,28,24,.82);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    backdrop-filter: blur(4px);
}
.detail-photo-count { left: 14px; }
.detail-photo-zoom { right: 14px; }

.detail-thumbnails {
    display: flex;
    gap: 9px;
    margin-top: 10px;
    padding: 2px 1px 5px;
    overflow-x: auto;
    scroll-behavior: smooth;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}
.detail-thumb {
    flex: 0 0 112px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
    overflow: hidden;
}
.detail-thumb.is-active { border-color: var(--girotti-green); }
.detail-thumb-media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: #e9ece9;
}
.detail-thumb-media > img:first-child {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.detail-thumb-watermark {
    position: absolute;
    right: 4px;
    bottom: 4px;
    width: 42%;
    max-width: 58px;
    opacity: .76;
    pointer-events: none;
}
.detail-video-thumb-media {
    background: #242a26;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}
.detail-video-thumb-media > img:first-child {
    opacity: .72;
}
.detail-video-thumb-label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: rgba(15,18,16,.28);
}
.detail-video-thumb-label i {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--girotti-red);
    font-size: 11px;
}
.detail-video-preview,
.detail-video-player {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #111;
}
.detail-video-preview[hidden],
.detail-video-player[hidden] {
    display: none;
}
.detail-video-player iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
.detail-video-preview > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .86;
}
.detail-gallery-video-label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0;
    border: 0;
    background: rgba(15,18,16,.16);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-shadow: 0 2px 8px rgba(0,0,0,.55);
}
.detail-gallery-video-label:focus-visible {
    outline: 3px solid #fff;
    outline-offset: -6px;
}
.detail-gallery-video-label i {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--girotti-red);
    box-shadow: 0 5px 18px rgba(0,0,0,.28);
}

.detail-summary-card {
    position: sticky;
    top: 18px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--shadow);
}
.detail-summary-top {
    padding-bottom: 17px;
    border-bottom: 1px solid var(--line);
}
.detail-operation {
    display: inline-flex;
    margin-bottom: 9px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #e9f7eb;
    color: var(--girotti-green-dark);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}
.detail-price {
    margin: 0;
    font-size: clamp(22px, 2.8vw, 30px);
    font-weight: 700;
    line-height: 1.1;
}
.detail-facts { margin: 18px 0; }
.detail-facts div {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid #f0f1f0;
}
.detail-facts div:last-child { border-bottom: 0; }
.detail-facts dt { color: var(--muted); font-size: 11px; }
.detail-facts dd { margin: 0; font-size: 13px; font-weight: 700; text-align: right; }
.detail-whatsapp-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 9px 13px;
    border-radius: 5px;
    background: var(--girotti-green);
    color: #fff;
    font-weight: 700;
    text-align: center;
}
.detail-whatsapp-button:hover { color: #fff; background: var(--girotti-green-dark); }
.detail-whatsapp-button i { font-size: 19px; }
.detail-contact-link {
    display: block;
    margin-top: 11px;
    color: var(--girotti-green);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.detail-content-section { padding: 0 0 48px; }
.detail-content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(260px, .7fr);
    gap: 24px;
    align-items: start;
}
.detail-description-card,
.detail-info-card {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}
.detail-description-card { padding: 26px; }
.detail-description-card h2 { margin: 0 0 18px; font-size: 27px; }
.detail-description {
    color: #3f4541;
    font-size: 15px;
    line-height: 1.75;
}
.detail-side-stack { display: grid; gap: 13px; }
.detail-info-card {
    display: flex;
    gap: 13px;
    padding: 18px;
}
.detail-info-card > i {
    width: 30px;
    color: var(--girotti-green);
    font-size: 23px;
    text-align: center;
}
.detail-info-card div { display: grid; gap: 3px; min-width: 0; }
.detail-info-card strong { font-size: 14px; }
.detail-info-card span { color: var(--muted); font-size: 12px; }
.detail-info-card a { color: var(--girotti-green); font-size: 12px; font-weight: 700; }

.detail-map-card {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}
.detail-map-heading {
    display: flex;
    gap: 13px;
    padding: 16px 18px 13px;
}
.detail-map-heading > i {
    width: 30px;
    color: var(--girotti-green);
    font-size: 23px;
    text-align: center;
}
.detail-map-heading div { display: grid; gap: 3px; min-width: 0; }
.detail-map-heading strong { font-size: 14px; }
.detail-map-heading span { color: var(--muted); font-size: 12px; }
.detail-map-frame {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #e8ebe8;
}
.detail-map-frame iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
.detail-map-card > a {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 14px;
    border-top: 1px solid var(--line);
    color: var(--girotti-green);
    font-size: 12px;
    font-weight: 700;
}
.detail-map-card > a:hover { color: var(--girotti-green-dark); }

.gallery-lightbox[hidden] { display: none !important; }
.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 52px 70px;
    background: rgba(10,13,11,.94);
}
.gallery-lightbox img {
    max-width: min(1500px, 100%);
    max-height: calc(100vh - 70px);
    object-fit: contain;
    box-shadow: 0 20px 70px rgba(0,0,0,.35);
}
.gallery-lightbox-close,
.gallery-lightbox-nav {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.13);
    color: #fff;
    cursor: pointer;
}
.gallery-lightbox-close { top: 16px; right: 18px; width: 40px; height: 40px; font-size: 18px; }
.gallery-lightbox-nav { top: 50%; width: 44px; height: 44px; font-size: 27px; transform: translateY(-50%); }
.gallery-lightbox-prev { left: 16px; }
.gallery-lightbox-next { right: 16px; }
.gallery-lightbox-close:hover,
.gallery-lightbox-nav:hover { background: var(--girotti-green); }
body.is-lightbox-open { overflow: hidden; }

@media (max-width: 1100px) {
    .search-grid--campos,
    .search-grid--urbana { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .search-grid--campos .search-button,
    .search-grid--urbana .search-button { width: 100%; }
}

@media (max-width: 860px) {
    .detail-main-grid,
    .detail-content-grid { grid-template-columns: 1fr; }
    .detail-summary-card { position: static; }
}

@media (max-width: 760px) {
    .search-grid--campos,
    .search-grid--urbana { grid-template-columns: 1fr 1fr; }
    .search-head { align-items: flex-start; }
    .detail-intro { padding-top: 22px; }
    .detail-title-row { align-items: flex-start; flex-direction: column; gap: 15px; }
    .detail-share { min-height: 38px; }
    .detail-main-section { padding-top: 18px; }
    .detail-thumbnails { margin-right: -12px; }
    .detail-thumb { flex-basis: 92px; }
    .detail-content-section { padding-bottom: 34px; }
    .gallery-lightbox { padding: 50px 40px; }
}

@media (max-width: 480px) {
    .search-grid--campos,
    .search-grid--urbana { grid-template-columns: 1fr; }
    .search-head { gap: 10px; }
    .search-head p { display: none; }
    .detail-title-row h1 { font-size: 30px; }
    .detail-main-photo { border-radius: 7px; }
    .detail-photo-zoom { display: none; }
    .detail-summary-card,
    .detail-description-card { padding: 18px; }
    .detail-facts div { grid-template-columns: 80px minmax(0, 1fr); }
    .gallery-lightbox { padding: 54px 10px; }
    .gallery-lightbox-nav { width: 36px; height: 36px; }
    .gallery-lightbox-prev { left: 5px; }
    .gallery-lightbox-next { right: 5px; }
}

/* ================================================================
   Stage 6 - navegación jerárquica + hero Campos/Urbana
   ================================================================ */

/* Navegación jerárquica */
.main-nav {
    position: relative;
    overflow: visible;
}
.nav-item {
    position: relative;
    min-height: 43px;
    display: flex;
    align-items: stretch;
}
.nav-item-row {
    display: flex;
    align-items: center;
    min-height: 43px;
}
.main-nav .nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 43px;
    padding: 0;
    white-space: nowrap;
}
.nav-submenu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 34px;
    margin-left: 2px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #6b7280;
    cursor: pointer;
    font-size: 14px;
    transition: color .18s ease, transform .18s ease;
}
.nav-item:hover > .nav-item-row .nav-link,
.nav-item:focus-within > .nav-item-row .nav-link,
.nav-item.is-submenu-open > .nav-item-row .nav-link,
.nav-item:hover > .nav-item-row .nav-submenu-toggle,
.nav-item:focus-within > .nav-item-row .nav-submenu-toggle,
.nav-item.is-submenu-open > .nav-item-row .nav-submenu-toggle {
    color: var(--girotti-green);
}
.nav-item.is-submenu-open > .nav-item-row .nav-submenu-toggle i {
    transform: rotate(180deg);
}
.nav-dropdown {
    position: absolute;
    top: calc(100% - 1px);
    right: 0;
    z-index: 80;
    display: none;
    min-width: 235px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 0 0 8px 8px;
    background: #fff;
    box-shadow: 0 18px 40px rgba(0,0,0,.12);
    text-align: left;
    text-transform: none;
}
.nav-dropdown-wide {
    width: min(670px, calc(100vw - 32px));
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.nav-item:hover > .nav-dropdown,
.nav-item:focus-within > .nav-dropdown,
.nav-item.is-submenu-open > .nav-dropdown {
    display: grid;
}
.nav-menu-group {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.nav-menu-title {
    margin-bottom: 8px;
    color: #92979f;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.main-nav .nav-dropdown a {
    display: block;
    padding: 7px 0;
    border: 0;
    color: #333;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
    text-transform: none;
}
.main-nav .nav-dropdown a:hover {
    color: var(--girotti-green);
}
.main-nav .nav-menu-feature {
    margin-top: 6px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
    color: var(--girotti-green);
}

/* Hero de dos áreas */
.hero-slider {
    position: relative;
    height: 365px;
    overflow: hidden;
    background: #1f2721;
}
.hero-slides {
    position: relative;
    width: 100%;
    height: 100%;
}
.hero-slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    background-position: center;
    background-size: cover;
    transition: opacity .5s ease, visibility .5s ease;
}
.hero-slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}
.hero-slide-campos {
    background-image: url('../images/slider/campos.jpg');
}
.hero-slide-urbana {
    background-image: url('../images/slider/urbana.jpg');
    background-position: center;
}
.hero-slide .hero-content {
    position: relative;
    z-index: 2;
    color: #fff;
}
.hero-slide .hero-overlay {
    z-index: 1;
}
.hero-urbana-action {
    position: relative;
    z-index: 2;
    align-self: flex-end;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding-bottom: 42px;
}
.hero-urbana-action > span {
    padding: 7px 10px;
    border-radius: 5px;
    background: rgba(0,0,0,.48);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    backdrop-filter: blur(3px);
}
.hero-cta-light {
    border: 1px solid rgba(255,255,255,.78);
    background: rgba(255,255,255,.94);
    color: #1d2a20;
}
.hero-cta-light:hover {
    border-color: #fff;
    background: #fff;
    color: var(--girotti-green-dark);
}
.hero-control {
    position: absolute;
    top: 50%;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-top: -21px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 50%;
    background: rgba(18,25,20,.58);
    color: #fff;
    cursor: pointer;
    font-size: 23px;
    transition: background .18s ease, transform .18s ease;
}
.hero-control:hover {
    background: rgba(18,25,20,.82);
    transform: scale(1.04);
}
.hero-control-prev { left: 18px; }
.hero-control-next { right: 18px; }
.hero-dots {
    position: absolute;
    right: 22px;
    bottom: 18px;
    z-index: 6;
    display: flex;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 999px;
    background: rgba(15,22,17,.55);
    backdrop-filter: blur(5px);
}
.hero-dot {
    min-width: 68px;
    padding: 6px 10px;
    border: 0;
    background: transparent;
    color: rgba(255,255,255,.8);
    cursor: pointer;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.hero-dot.is-active {
    background: #fff;
    color: #222;
}

@media (max-width: 1050px) {
    .main-nav { gap: 14px; }
    .nav-dropdown-wide { width: min(620px, calc(100vw - 24px)); }
}

@media (max-width: 760px) {
    .main-nav {
        overflow-y: auto;
        max-height: calc(100vh - 145px);
    }
    .nav-item,
    .nav-item-row {
        display: block;
        min-height: 0;
        width: 100%;
    }
    .nav-item-row {
        position: relative;
        border-bottom: 1px solid var(--line);
    }
    .main-nav .nav-link {
        display: flex;
        min-height: 44px;
        padding: 11px 42px 11px 4px;
        border: 0;
    }
    .nav-submenu-toggle {
        position: absolute;
        top: 5px;
        right: 0;
        width: 38px;
        height: 34px;
        border-left: 1px solid #f0f1f0;
    }
    .nav-dropdown,
    .nav-dropdown-wide {
        position: static;
        display: none;
        width: 100%;
        min-width: 0;
        grid-template-columns: 1fr;
        gap: 13px;
        padding: 11px 13px 15px;
        border: 0;
        border-bottom: 1px solid var(--line);
        border-radius: 0;
        background: #f8f9f8;
        box-shadow: none;
    }
    .nav-item:hover > .nav-dropdown,
    .nav-item:focus-within > .nav-dropdown {
        display: none;
    }
    .nav-item.is-submenu-open > .nav-dropdown {
        display: grid;
    }
    .nav-menu-title { margin-bottom: 3px; }
    .main-nav .nav-dropdown a { padding: 7px 3px; }

    .hero-slider { height: 315px; }
    .hero-slide-campos { background-position: center; }
    .hero-slide-urbana {
        background-size: auto 100%;
        background-position: center;
        background-repeat: no-repeat;
        background-color: #1b2b20;
    }
    .hero-control {
        width: 36px;
        height: 36px;
        margin-top: -18px;
        font-size: 20px;
    }
    .hero-control-prev { left: 10px; }
    .hero-control-next { right: 10px; }
    .hero-dots { right: 12px; bottom: 12px; }
    .hero-dot { min-width: 60px; padding: 6px 8px; font-size: 9px; }
    .hero-urbana-action {
        justify-content: flex-start;
        padding-bottom: 45px;
    }
    .hero-urbana-action > span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .hero-slide { transition: none; }
}

/* =========================================================
   Stage 6B - plantilla común de contenido para ambas slides
   ========================================================= */
.hero-slide .hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(90deg,
        rgba(12, 18, 14, .58) 0%,
        rgba(12, 18, 14, .34) 34%,
        rgba(12, 18, 14, .08) 62%,
        rgba(12, 18, 14, 0) 78%);
}

/* La imagen de Campos ya trae una zona izquierda oscura. */
.hero-slide-campos .hero-overlay {
    background: linear-gradient(90deg,
        rgba(10, 16, 12, .28) 0%,
        rgba(10, 16, 12, .13) 38%,
        rgba(10, 16, 12, 0) 68%);
}

.hero-slide-campos,
.hero-slide-urbana {
    background-size: cover;
    background-repeat: no-repeat;
}

.hero-slide-campos { background-position: center; }
.hero-slide-urbana { background-position: center; }

.hero-content-template {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1180px;
    padding-right: 46%;
}

.hero-content-template .hero-kicker {
    margin: 0 0 10px;
    color: rgba(255,255,255,.92);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.hero-content-template h1 {
    max-width: 650px;
    margin: 0 0 13px;
    color: #fff;
    font-size: clamp(38px, 4.3vw, 62px);
    font-weight: 750;
    line-height: .99;
    letter-spacing: -.025em;
    text-shadow: 0 2px 14px rgba(0,0,0,.22);
}

.hero-content-template .hero-subtitle {
    max-width: 570px;
    margin: 0 0 23px;
    color: rgba(255,255,255,.94);
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.45;
    text-shadow: 0 1px 8px rgba(0,0,0,.25);
}

.hero-content-template .hero-cta {
    min-width: 148px;
    justify-content: center;
    box-shadow: 0 7px 20px rgba(0,0,0,.16);
}

@media (max-width: 900px) {
    .hero-content-template {
        padding-right: 34%;
    }
    .hero-content-template h1 {
        font-size: clamp(34px, 6vw, 48px);
    }
}

@media (max-width: 760px) {
    .hero-slide-campos,
    .hero-slide-urbana {
        background-size: cover;
        background-position: center;
    }

    .hero-slide .hero-overlay,
    .hero-slide-campos .hero-overlay {
        background: linear-gradient(90deg,
            rgba(10,16,12,.72) 0%,
            rgba(10,16,12,.55) 50%,
            rgba(10,16,12,.22) 100%);
    }

    .hero-content-template {
        padding: 0 54px 28px 20px;
        align-self: flex-end;
    }

    .hero-content-template .hero-kicker {
        margin-bottom: 6px;
        font-size: 10px;
    }

    .hero-content-template h1 {
        max-width: 430px;
        margin-bottom: 9px;
        font-size: clamp(28px, 9vw, 38px);
        line-height: 1.02;
    }

    .hero-content-template .hero-subtitle {
        display: block;
        max-width: 410px;
        margin-bottom: 15px;
        font-size: 14px;
        line-height: 1.35;
    }

    .hero-content-template .hero-cta {
        min-width: 0;
        padding: 9px 13px;
        font-size: 13px;
    }
}
