.hero {
    min-height: calc(100vh - 94px);
    display: grid;
    align-items: center;
    padding: 64px 0;
    background: linear-gradient(90deg,rgba(14,14,14,.84),rgba(14,14,14,.34)), url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1900&q=85") center/cover;
    color: #fff;
}

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0,1.02fr) minmax(420px,.78fr);
    align-items: center;
    gap: clamp(44px,6vw,100px);
}

.hero-copy {
    min-width: 0;
}

.hero h1 {
    max-width: 700px;
    font-size: clamp(4rem,7vw,7.4rem);
    line-height: .92;
    letter-spacing: -.065em;
}

.hero-copy > p {
    max-width: 650px;
    margin-top: 24px;
    color: rgba(255,255,255,.82);
    font-size: clamp(1rem,1.35vw,1.3rem);
    line-height: 1.55;
}

.hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.hero-button {
    min-width: 190px;
    min-height: 56px;
    padding-inline: 24px;
    font-size: .84rem;
}

.hero-button-secondary {
    border-color: #fff;
    background: #fff;
    color: var(--ink);
}

    .hero-button-secondary:hover {
        border-color: #f2f2f2;
        background: #f2f2f2;
        color: var(--ink);
    }

.hero-card {
    width: 100%;
    max-width: 580px;
    justify-self: end;
    padding: 36px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 26px;
    background: rgba(255,255,255,.94);
    color: var(--ink);
    box-shadow: 0 25px 70px rgba(0,0,0,.22);
    backdrop-filter: blur(12px);
}

    .hero-card h2 {
        font-size: clamp(1.55rem,2vw,2rem);
        letter-spacing: -.035em;
    }

    .hero-card p {
        margin-top: 7px;
        color: var(--muted);
        font-size: .86rem;
    }

.quick-form {
    display: grid;
    gap: 13px;
    margin-top: 24px;
}

    .quick-form input {
        width: 100%;
        min-height: 64px;
        padding: 0 18px;
        border: 1px solid var(--line);
        border-radius: 13px;
        background: #fff;
        color: var(--ink);
        font-size: 1rem;
        outline: 0;
    }

        .quick-form input:focus {
            border-color: rgba(185,0,0,.5);
            box-shadow: 0 0 0 4px rgba(185,0,0,.07);
        }

    .quick-form .btn {
        min-height: 60px;
        font-size: .86rem;
    }

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 36px;
    margin-bottom: 28px;
}

    .section-heading > p {
        max-width: 470px;
        color: var(--muted);
        font-size: .82rem;
    }

.section-kicker {
    display: block;
    margin-bottom: 9px;
    color: var(--red);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .13em;
}

    .section-kicker.light {
        color: #ffaaaa;
    }

.section-link {
    flex: 0 0 auto;
    color: var(--red);
    font-size: .72rem;
    font-weight: 850;
}

.platform-section {
    background: #fffaf4;
}

.feature-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 15px;
}

.feature {
    padding: 22px;
}

.feature-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #f4e8dd;
    color: #a0450c;
}

.feature h3 {
    margin-top: 16px;
    font-size: .9rem;
}

.feature p {
    margin-top: 6px;
    color: var(--muted);
    font-size: .69rem;
}

.guides-section {
    background: #fff;
}

.media-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 16px;
}

.media-card {
    overflow: hidden;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}

    .media-card:hover {
        transform: translateY(-5px);
        box-shadow: var(--shadow);
    }

    .media-card img {
        width: 100%;
        height: 190px;
        object-fit: cover;
    }

    .media-card div {
        padding: 16px;
    }

    .media-card h3 {
        margin-top: 9px;
        font-size: .86rem;
    }

    .media-card p {
        margin-top: 5px;
        color: var(--muted);
        font-size: .66rem;
    }

.card-label {
    display: inline-flex;
    min-height: 23px;
    align-items: center;
    padding: 0 8px;
    border-radius: 6px;
    background: #edb251;
    color: #fff;
    font-size: .52rem;
    font-weight: 900;
    text-transform: uppercase;
}

    .card-label.free {
        background: #efefef;
        color: #6b6b6b;
    }

.stories-section {
    background: #f7f3ef;
}

.stories-layout {
    display: grid;
    grid-template-columns: minmax(0,1.45fr) minmax(360px,.75fr);
    gap: 18px;
}

.story-featured {
    min-height: 520px;
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    background: #181818;
}

    .story-featured::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg,transparent 25%,rgba(0,0,0,.9));
    }

    .story-featured img {
        width: 100%;
        height: 100%;
        position: absolute;
        inset: 0;
        object-fit: cover;
        transition: transform .35s ease;
    }

    .story-featured:hover img {
        transform: scale(1.035);
    }

.story-overlay {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 36px;
    color: #fff;
}

    .story-overlay span,
    .story-row span {
        color: #eab1a9;
        font-size: .6rem;
        font-weight: 900;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .story-overlay h3 {
        max-width: 700px;
        margin-top: 8px;
        font-size: clamp(1.65rem,3vw,2.6rem);
        line-height: 1.03;
        letter-spacing: -.045em;
    }

    .story-overlay p {
        max-width: 650px;
        margin-top: 10px;
        color: rgba(255,255,255,.76);
        font-size: .76rem;
    }

.story-list {
    display: grid;
    gap: 14px;
}

.story-row {
    min-height: 154px;
    display: grid;
    grid-template-columns: 150px 1fr;
    overflow: hidden;
    transition: transform .2s ease;
}

    .story-row:hover {
        transform: translateX(4px);
    }

    .story-row img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .story-row div {
        align-self: center;
        padding: 18px;
    }

    .story-row h3 {
        margin-top: 6px;
        font-size: .84rem;
        line-height: 1.18;
    }

    .story-row p {
        margin-top: 7px;
        color: var(--muted);
        font-size: .64rem;
    }

.community-section {
    padding: 82px 0;
    background: #181818;
    color: #fff;
}

.community-shell {
    display: grid;
    grid-template-columns: minmax(0,.85fr) minmax(480px,1.15fr);
    gap: 70px;
    align-items: center;
}

.community-intro h2 {
    max-width: 570px;
    font-size: clamp(2.3rem,4.8vw,4.5rem);
    line-height: .96;
    letter-spacing: -.055em;
}

.community-intro > p {
    max-width: 540px;
    margin-top: 20px;
    color: rgba(255,255,255,.68);
    font-size: .86rem;
}

.community-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.community-secondary {
    border-color: rgba(255,255,255,.35);
    background: transparent;
    color: #fff;
}

    .community-secondary:hover {
        border-color: #fff;
        background: rgba(255,255,255,.08);
    }

.community-stats {
    display: flex;
    gap: 34px;
    margin-top: 34px;
}

    .community-stats div {
        display: grid;
        gap: 2px;
    }

    .community-stats strong {
        font-size: 1.35rem;
    }

    .community-stats span {
        color: rgba(255,255,255,.5);
        font-size: .61rem;
    }

.forum-preview {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 22px;
    background: #252525;
    box-shadow: 0 25px 70px rgba(0,0,0,.28);
}

.forum-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 24px;
    border-bottom: 1px solid rgba(255,255,255,.1);
}

    .forum-head span {
        color: rgba(255,255,255,.48);
        font-size: .58rem;
        font-weight: 800;
        text-transform: uppercase;
    }

    .forum-head h3 {
        margin-top: 4px;
        font-size: 1rem;
    }

.live-pill {
    align-self: flex-start;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(81,183,116,.13);
    color: #79d49a !important;
}

.forum-topic {
    display: grid;
    grid-template-columns: 42px 1fr auto;
    gap: 13px;
    align-items: center;
    padding: 19px 24px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    transition: background .18s ease;
}

    .forum-topic:last-child {
        border-bottom: 0;
    }

    .forum-topic:hover {
        background: rgba(255,255,255,.045);
    }

.forum-avatar {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #f1dfd8;
    color: #7d251b;
    font-size: .65rem;
    font-weight: 900;
}

.forum-topic strong {
    font-size: .75rem;
}

.forum-topic p {
    margin-top: 4px;
    color: rgba(255,255,255,.46);
    font-size: .59rem;
}

.offers-section {
    background: #fffaf4;
}

.offers-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
}

    .offers-heading > div:first-child > p {
        max-width: 610px;
        margin-top: 12px;
        color: var(--muted);
        font-size: .8rem;
    }

.offer-tabs {
    display: flex;
    padding: 5px;
    border-radius: 999px;
    background: #e9e4df;
}

.offer-tab {
    min-height: 38px;
    padding: 0 16px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #655e58;
    font-size: .68rem;
    font-weight: 850;
}

    .offer-tab.active {
        background: #fff;
        color: var(--ink);
        box-shadow: 0 4px 14px rgba(30,20,12,.08);
    }

.offer-search {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr)) auto;
    gap: 12px;
    margin-top: 26px;
    padding: 18px;
}

.offer-field {
    min-width: 0;
    display: grid;
    gap: 6px;
}

    .offer-field label {
        padding-left: 3px;
        color: var(--muted);
        font-size: .58rem;
        font-weight: 850;
        text-transform: uppercase;
    }

    .offer-field input,
    .offer-field select {
        width: 100%;
        min-height: 48px;
        padding: 0 12px;
        border: 1px solid var(--line);
        border-radius: 11px;
        background: #fff;
        color: var(--ink);
        outline: 0;
    }

        .offer-field input:focus,
        .offer-field select:focus {
            border-color: rgba(185,0,0,.45);
            box-shadow: 0 0 0 4px rgba(185,0,0,.06);
        }

.offer-submit {
    min-width: 150px;
    align-self: end;
    min-height: 48px;
}

.offer-results {
    margin-top: 18px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow);
}

.offer-results-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--line);
}

    .offer-results-head span {
        color: var(--red);
        font-size: .55rem;
        font-weight: 900;
        text-transform: uppercase;
    }

    .offer-results-head h3 {
        margin-top: 3px;
        font-size: 1rem;
    }

.offer-close {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 9px;
    background: #f1efec;
    font-size: 1.1rem;
}

.offer-result-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 13px;
    padding: 18px;
}

.offer-result-card {
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 13px;
}

    .offer-result-card > span {
        color: var(--muted);
        font-size: .56rem;
        font-weight: 800;
        text-transform: uppercase;
    }

    .offer-result-card h4 {
        margin-top: 8px;
        font-size: .82rem;
    }

    .offer-result-card p {
        margin-top: 5px;
        color: var(--muted);
        font-size: .62rem;
    }

.offer-result-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 10px;
    margin-top: 17px;
}

    .offer-result-bottom strong {
        font-size: 1rem;
    }

    .offer-result-bottom button {
        min-height: 33px;
        padding: 0 10px;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: #fff;
        font-size: .57rem;
        font-weight: 850;
    }

.offer-disclaimer {
    padding: 0 18px 18px;
    color: var(--muted);
    font-size: .58rem;
}

.newsletter {
    padding: 30px 0;
    background: #e5e5e5;
}

.newsletter-grid {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
}

.newsletter form {
    display: flex;
    gap: 8px;
}

.newsletter input {
    min-width: 260px;
    min-height: 45px;
    padding: 0 13px;
    border: 1px solid #ccc;
    border-radius: 999px;
}

.site-footer {
    padding: 48px 0 25px;
    background: #181818;
    color: #fff;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr repeat(3,1fr);
    gap: 30px;
}

    .footer-grid p,
    .footer-grid a {
        color: rgba(255,255,255,.7);
        font-size: .69rem;
    }

    .footer-grid h3 {
        margin-bottom: 10px;
        font-size: .78rem;
    }

    .footer-grid a {
        display: block;
        margin: 7px 0;
    }

@media(max-width:1180px) {
    .offer-search {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }

    .offer-submit {
        width: 100%;
    }
}

@media(max-width:1100px) {
    .hero {
        min-height: auto;
    }

    .hero-grid {
        grid-template-columns: minmax(0,1fr) minmax(360px,.8fr);
        gap: 42px;
    }

    .hero h1 {
        font-size: clamp(3.8rem,7vw,6rem);
    }

    .hero-card {
        padding: 28px;
    }

    .community-shell {
        grid-template-columns: 1fr 1.15fr;
        gap: 40px;
    }
}

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

    .hero-grid,
    .stories-layout,
    .community-shell {
        grid-template-columns: 1fr;
    }

    .hero-card {
        max-width: 650px;
        justify-self: start;
    }

    .feature-grid,
    .media-grid {
        grid-template-columns: repeat(2,1fr);
    }

    .story-featured {
        min-height: 460px;
    }

    .community-intro {
        max-width: 680px;
    }

    .forum-preview {
        max-width: 760px;
    }

    .offers-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .offer-result-grid {
        grid-template-columns: 1fr;
    }
}

@media(max-width:680px) {
    .section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .hero {
        padding: 54px 0;
    }

        .hero h1 {
            font-size: clamp(3.1rem,16vw,4.5rem);
        }

    .hero-copy > p {
        font-size: .95rem;
    }

    .hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .hero-button {
        width: 100%;
    }

    .hero-card {
        padding: 22px;
    }

    .feature-grid,
    .media-grid {
        grid-template-columns: 1fr;
    }

    .story-featured {
        min-height: 480px;
    }

    .story-overlay {
        padding: 24px;
    }

    .story-row {
        grid-template-columns: 115px 1fr;
    }

    .community-stats {
        gap: 20px;
    }

    .offer-search {
        grid-template-columns: 1fr;
    }

    .offer-submit {
        min-width: 0;
    }

    .newsletter-grid,
    .newsletter form {
        display: grid;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}
/* Precio de guías premium en el Home */
.guide-card-topline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.guide-card-price {
    color: var(--red);
    font-size: .72rem;
    font-weight: 900;
}
/* Historias reales cargadas desde Supabase */
.home-story-meta,
.home-story-row-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 13px;
}

    .home-story-meta strong,
    .home-story-row-meta strong {
        font-family: Arial,Helvetica,sans-serif;
        font-size: .58rem;
        font-weight: 900;
    }

    .home-story-meta small {
        color: rgba(255,255,255,.6);
        font-family: Arial,Helvetica,sans-serif;
        font-size: .55rem;
    }

    .home-story-row-meta small {
        color: var(--muted);
        font-size: .53rem;
    }

.home-story-loading,
.home-story-empty {
    width: 100%;
    min-height: 520px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 12px;
    padding: 35px;
    border-radius: 22px;
    background: #242424;
    color: #fff;
    text-align: center;
}

    .home-story-loading span,
    .home-story-empty > span {
        color: #e9aaa3;
        font-size: .58rem;
        font-weight: 900;
        letter-spacing: .08em;
    }

    .home-story-empty h3 {
        max-width: 560px;
        font-size: clamp(1.7rem,3vw,2.8rem);
        line-height: 1;
        letter-spacing: -.045em;
    }

    .home-story-empty p {
        max-width: 520px;
        color: rgba(255,255,255,.65);
        font-size: .7rem;
    }

.home-story-spinner {
    width: 44px;
    height: 44px;
    border: 4px solid rgba(255,255,255,.2);
    border-top-color: #fff;
    border-radius: 50%;
    animation: home-story-spin .8s linear infinite;
}

@keyframes home-story-spin {
    to {
        transform: rotate(360deg)
    }
}

.home-story-skeleton {
    pointer-events: none;
}

.home-story-skeleton-image {
    min-height: 154px;
    background: linear-gradient( 90deg, #eee 25%, #f7f7f7 37%, #eee 63% );
    background-size: 400% 100%;
    animation: home-story-shimmer 1.25s ease infinite;
}

@keyframes home-story-shimmer {
    0% {
        background-position: 100% 0
    }

    100% {
        background-position: 0 0
    }
}

.home-story-placeholder {
    grid-template-columns: 1fr;
    align-items: center;
    padding: 22px;
}

@media(max-width:680px) {
    .home-story-loading,
    .home-story-empty {
        min-height: 460px;
    }
}
/* Comunidad real cargada desde Supabase */
.home-forum-avatar-image {
    width: 42px;
    height: 42px;
    object-fit: cover;
}

.home-community-activity {
    display: block;
    margin-top: 5px;
    color: rgba(255,255,255,.36);
    font-size: .5rem;
}

.home-community-empty {
    min-height: 250px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 10px;
    padding: 28px;
    text-align: center;
}

    .home-community-empty > span {
        font-size: .85rem;
        font-weight: 850;
    }

    .home-community-empty p {
        max-width: 430px;
        color: rgba(255,255,255,.5);
        font-size: .62rem;
    }

.home-community-skeleton {
    pointer-events: none;
}

    .home-community-skeleton .forum-avatar,
    .home-community-skeleton strong,
    .home-community-skeleton p {
        color: transparent;
        background: linear-gradient( 90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.11) 37%, rgba(255,255,255,.05) 63% );
        background-size: 400% 100%;
        animation: home-community-shimmer 1.2s ease infinite;
    }

    .home-community-skeleton strong {
        display: block;
        width: min(360px,80%);
        height: 12px;
        border-radius: 5px;
    }

    .home-community-skeleton p {
        width: 220px;
        height: 9px;
        border-radius: 5px;
    }

@keyframes home-community-shimmer {
    0% {
        background-position: 100% 0
    }

    100% {
        background-position: 0 0
    }
}
