/* --------------------------------------------------------------
   Pulso Home
   -------------------------------------------------------------- */


/* Hero
   -------------------------------------------------------------- */

.home-hero {
    position: relative;

    min-height: 620px;

    overflow: hidden;

    background:
        var(--color-primary);
}


.home-hero-slide,
.home-hero-placeholder {
    position: relative;

    min-height: inherit;

    display: flex;
    align-items: flex-end;
}


.home-hero-media {
    position: absolute;

    inset: 0;
}


.home-hero-media::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgb(23 25 22 / 78%) 0%,
            rgb(23 25 22 / 48%) 42%,
            rgb(23 25 22 / 10%) 72%,
            transparent 100%
        );
}


.home-hero-media img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}


.home-hero-inner {
    position: relative;

    z-index: 1;

    padding-top:
        var(--space-20);

    padding-bottom:
        var(--space-20);
}


.home-hero-content {
    max-width: 660px;

    color: #fff;
}


.home-hero-eyebrow {
    display: inline-block;

    margin-bottom:
        var(--space-5);

    font-size:
        var(--font-size-xs);

    font-weight:
        var(--font-weight-bold);

    letter-spacing:
        0.12em;

    text-transform: uppercase;
}


.home-hero-content h1 {
    max-width: 650px;

    margin:
        0 0 var(--space-6);

    font-size:
        clamp(2.8rem, 6vw, 5.4rem);

    line-height:
        0.98;

    letter-spacing:
        -0.055em;
}


.home-hero-content p {
    max-width: 540px;

    margin:
        0 0 var(--space-8);

    color:
        rgb(255 255 255 / 82%);

    font-size:
        clamp(1rem, 1.6vw, 1.2rem);

    line-height:
        var(--line-height-relaxed);
}


.home-hero-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 48px;

    padding:
        0 var(--space-6);

    border-radius:
        var(--radius-full);

    background:
        var(--color-background);

    color:
        var(--color-text);

    font-weight:
        var(--font-weight-semibold);
}


.home-hero-cta:hover {
    transform:
        translateY(-1px);
}


/* Placeholder
   -------------------------------------------------------------- */

.home-hero-placeholder {
    background:
        linear-gradient(
            135deg,
            var(--color-primary) 0%,
            #30392a 100%
        );
}


/* Categories
   -------------------------------------------------------------- */

.home-categories {
    padding:
        var(--space-20) 0;
}


.home-section-header {
    max-width: 720px;

    margin-bottom:
        var(--space-10);
}


.home-section-eyebrow,
.home-category-label {
    display: inline-block;

    font-size:
        var(--font-size-xs);

    font-weight:
        var(--font-weight-bold);

    letter-spacing:
        0.12em;

    text-transform: uppercase;

    color:
        var(--color-primary);
}


.home-section-header h2 {
    max-width: 680px;

    margin:
        var(--space-4) 0
        var(--space-5);

    font-size:
        clamp(2rem, 4vw, 3.6rem);

    line-height:
        1.02;

    letter-spacing:
        -0.045em;
}


.home-section-header p {
    max-width: 540px;

    margin: 0;

    color:
        var(--color-text-muted);

    font-size:
        var(--font-size-lg);

    line-height:
        var(--line-height-relaxed);
}


.home-category-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap:
        var(--space-4);
}


.home-category-card {
    min-height: 260px;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap:
        var(--space-6);

    padding:
        var(--space-8);

    border:
        1px solid var(--color-border);

    border-radius:
        var(--radius-lg);

    background:
        var(--color-surface);

    color:
        inherit;

    text-decoration:
        none;

    transition:
        border-color 160ms ease,
        transform 160ms ease;
}


.home-category-card:hover {
    border-color:
        var(--color-primary);

    transform:
        translateY(-2px);
}


.home-category-card:focus-visible {
    outline:
        2px solid var(--color-primary);

    outline-offset:
        3px;
}


.home-category-card-content {
    max-width: 430px;
}


.home-category-card h3 {
    margin:
        var(--space-3) 0
        var(--space-3);

    font-size:
        clamp(1.8rem, 3vw, 2.8rem);

    line-height:
        1;

    letter-spacing:
        -0.035em;
}


.home-category-card p {
    margin: 0;

    color:
        var(--color-text-muted);

    line-height:
        var(--line-height-relaxed);
}


.home-category-arrow {
    flex-shrink: 0;

    font-size:
        2rem;

    line-height: 1;

    color:
        var(--color-primary);
}


/* Featured products
   -------------------------------------------------------------- */

.home-featured-products {
    padding:
        0 0 var(--space-20);
}


.home-product-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap:
        var(--space-5);
}





/* Manifesto
   -------------------------------------------------------------- */

.home-manifesto {
    padding:
        var(--space-20) 0;

    background:
        var(--color-primary);

    color:
        #fff;
}


.home-manifesto-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(0, 0.95fr);

    gap:
        clamp(4rem, 10vw, 9rem);

    align-items:
        start;
}


.home-manifesto-intro {
    max-width:
        680px;
}


.home-manifesto-eyebrow {
    display:
        inline-block;

    margin-bottom:
        var(--space-6);

    color:
        rgb(255 255 255 / 70%);

    font-size:
        var(--font-size-xs);

    font-weight:
        var(--font-weight-bold);

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;
}


.home-manifesto-intro h2 {
    margin:
        0 0 var(--space-8);

    font-size:
        clamp(2.7rem, 5vw, 5rem);

    line-height:
        0.98;

    letter-spacing:
        -0.055em;
}


.home-manifesto-intro p {
    max-width:
        520px;

    margin:
        0;

    color:
        rgb(255 255 255 / 74%);

    font-size:
        var(--font-size-lg);

    line-height:
        var(--line-height-relaxed);
}


.home-manifesto-principles {
    border-top:
        1px solid rgb(255 255 255 / 22%);
}


.home-manifesto-item {
    display:
        grid;

    grid-template-columns:
        48px 1fr;

    gap:
        var(--space-5);

    padding:
        var(--space-7) 0;

    border-bottom:
        1px solid rgb(255 255 255 / 22%);
}


.home-manifesto-number {
    padding-top:
        0.25rem;

    color:
        rgb(255 255 255 / 55%);

    font-size:
        var(--font-size-xs);

    font-weight:
        var(--font-weight-bold);

    letter-spacing:
        0.08em;
}


.home-manifesto-item h3 {
    margin:
        0 0 var(--space-3);

    color:
        #fff;

    font-size:
        clamp(1.3rem, 2vw, 1.8rem);

    line-height:
        1.1;

    letter-spacing:
        -0.025em;
}


.home-manifesto-item p {
    max-width:
        480px;

    margin:
        0;

    color:
        rgb(255 255 255 / 68%);

    line-height:
        var(--line-height-relaxed);
}


@media (max-width: 1000px) {

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

}


@media (max-width: 768px) {

    .home-categories {
        padding:
            var(--space-12) 0;
    }


    .home-section-header {
        margin-bottom:
            var(--space-8);
    }


    .home-category-grid {
        grid-template-columns:
            1fr;
    }


    .home-category-card {
        min-height:
            210px;

        padding:
            var(--space-6);
    }

    .home-manifesto {
        padding:
            var(--space-12) 0;
    }


    .home-manifesto-grid {
        grid-template-columns:
            1fr;

        gap:
            var(--space-10);
    }


    .home-manifesto-intro h2 {
        font-size:
            clamp(2.4rem, 11vw, 3.6rem);
    }


    .home-manifesto-item {
        grid-template-columns:
            38px 1fr;

        padding:
            var(--space-6) 0;
}

}


/* Mobile
   -------------------------------------------------------------- */

@media (max-width: 768px) {

    .home-hero {
        min-height:
            560px;
    }


    .home-hero-slide,
    .home-hero-placeholder {
        align-items:
            flex-end;
    }


    .home-hero-media::after {
        background:
            linear-gradient(
                0deg,
                rgb(23 25 22 / 88%) 0%,
                rgb(23 25 22 / 45%) 55%,
                rgb(23 25 22 / 8%) 100%
            );
    }


    .home-hero-inner {
        padding-top:
            var(--space-16);

        padding-bottom:
            var(--space-12);
    }


    .home-hero-content {
        max-width:
            100%;
    }


    .home-hero-content h1 {
        max-width:
            560px;

        font-size:
            clamp(2.5rem, 12vw, 4rem);
    }


    .home-hero-content p {
        max-width:
            460px;
    }

}

@media (max-width: 600px) {

    .home-featured-products {
        padding-bottom:
            var(--space-12);
    }


    .home-product-grid {
        grid-template-columns:
            1fr;
    }

}
/* Pulso v1.2 — editorial headings; preserves hero layout and card geometry */
.home-hero-content h1, .home-section-header h2 {
    font-family: var(--font-family-display, Georgia, serif);
    font-weight: 400;
}

/* Pulso v1.2 — fase 2: coleção com um único produto.
   Mantém o card no tamanho aprovado; evita esticá-lo para ocupar a linha. */
.home-product-grid:has(> :only-child) {
    grid-template-columns: minmax(0, min(100%, 280px));
}
@media (max-width: 600px) {
    .home-product-grid:has(> :only-child) {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* J8: vitrines horizontais, dois cards por tela no mobile. */
.home-product-carousel {min-width:0;}
.home-product-carousel-controls {display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
.home-carousel-arrow {border:1px solid #cbd5cb;background:#fff;color:#214638;border-radius:999px;width:42px;height:42px;font:inherit;font-size:1.25rem;cursor:pointer;}
.home-carousel-arrow:disabled {opacity:.35;cursor:default;}
.home-carousel-arrow:focus-visible {outline:3px solid #b96b50;outline-offset:2px;}
.home-collection-more {display:inline-flex;margin-top:14px;color:#214638;text-decoration:underline;text-underline-offset:3px;}
@media (max-width: 600px) {
  .home-product-carousel {overflow:hidden;}
  .home-product-carousel .home-product-grid {display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;scrollbar-width:none;padding-bottom:3px;}
  .home-product-carousel .home-product-grid::-webkit-scrollbar {display:none;}
  .home-product-carousel .home-product-grid > * {flex:0 0 calc((100% - 10px)/2);min-width:0;max-width:calc((100% - 10px)/2);scroll-snap-align:start;}
  .home-product-carousel .product-card-media {aspect-ratio:1/1;}
  .home-product-carousel .product-card-media img {padding:10px;object-fit:contain;}
  .home-product-carousel .product-card-info {padding:10px 10px 0;}
  .home-product-carousel .product-card-info h3 {font-size:clamp(.88rem,3.8vw,1.05rem);overflow-wrap:anywhere;}
  .home-product-carousel .product-card-actions {grid-template-columns:minmax(0,1fr) 38px;gap:5px;padding-inline:8px;}
  .home-product-carousel .product-card-actions button {font-size:.73rem;min-height:38px;padding:5px;}
  .home-product-carousel .product-card-price {font-size:clamp(.83rem,3.5vw,1rem);}
}
@media (prefers-reduced-motion:reduce) {.home-product-carousel .home-product-grid {scroll-behavior:auto;}}

/* J8.2 final: navegação lateral da vitrine, sem ocupar espaço abaixo. */
.home-product-carousel {position:relative;overflow:visible;}
.home-product-carousel-controls {position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:space-between;margin:0;gap:0;z-index:3;}
.home-product-carousel-controls .home-carousel-arrow {pointer-events:auto;display:grid;place-items:center;box-shadow:0 2px 12px rgba(0,0,0,.13);transform:translateX(-45%);}
.home-product-carousel-controls .home-carousel-arrow:last-child {transform:translateX(45%);}
.home-product-carousel-controls .home-carousel-arrow:disabled {visibility:hidden;}
@media (max-width:600px) {
  .home-product-carousel {overflow:visible;}
  .home-product-carousel .home-product-grid {overflow-x:auto;}
  .home-product-carousel-controls .home-carousel-arrow {width:34px;height:34px;font-size:1.05rem;transform:translateX(-25%);}
  .home-product-carousel-controls .home-carousel-arrow:last-child {transform:translateX(25%);}
}

/* J8 final: cards compactos, carrossel circular e responsivo. */
.home-product-carousel { width: 100%; margin-inline: 0; position: relative; }
.home-product-carousel .home-product-grid {
  display: flex; gap: 16px; overflow: hidden; scroll-behavior: auto;
  scroll-snap-type: none; padding-bottom: 3px; touch-action: pan-y;
}
.home-product-carousel .home-product-grid > .product-card {
  flex: 0 0 clamp(160px, 19vw, 280px); width: clamp(160px, 19vw, 280px);
  min-width: 0; max-width: 280px; scroll-snap-align: none;
}
.home-product-carousel-controls .home-carousel-arrow:disabled { visibility: hidden; }
@media (max-width: 600px) {
  .home-product-carousel { width: 100%; }
  .home-product-carousel .home-product-grid { gap: 10px; }
  .home-product-carousel .home-product-grid > .product-card {
    flex: 0 0 calc((100% - 10px) / 2); width: calc((100% - 10px) / 2);
    max-width: calc((100% - 10px) / 2);
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-product-carousel .home-product-grid { scroll-behavior: auto; }
}

/* J8 desktop: janela fluida, cards compactos e próximo card parcialmente visível.
   O tamanho é mantido; a quantidade visível depende da largura real. */
@media (min-width: 601px) {
  .home-product-carousel .home-product-grid {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    mask-image: linear-gradient(to right, #000 0%, #000 97%, transparent 100%);
  }
}

/* Etapa 4: carrossel hero */
.home-hero-slide[hidden]{display:none!important}
.home-hero-controls{position:absolute;z-index:4;right:clamp(20px,4vw,48px);bottom:20px;display:flex;align-items:center;gap:10px;color:white}
.home-hero-arrow{min-width:44px;min-height:44px;padding:0 12px;border:1px solid #ffffffa8;border-radius:24px;background:#1d2c25e8;color:white;cursor:pointer}
.home-hero-arrow:focus-visible{outline:3px solid white;outline-offset:3px}
@media(max-width:768px){.home-hero-controls{right:16px;bottom:12px;gap:6px}}

/* Turbo 04: navegação lateral e indicador discreto */
.home-hero-controls{display:none!important}
.home-hero-side{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(22,40,30,.42);backdrop-filter:blur(8px);color:white;display:grid;place-items:center;cursor:pointer;transition:background .2s,transform .2s}
.home-hero-side:hover{background:rgba(22,40,30,.85);transform:translateY(-50%) scale(1.06)}
.home-hero-side:focus-visible{outline:3px solid #e0ebc2;outline-offset:3px}
.home-hero-side span{font-size:35px;line-height:1;transform:translateY(-2px)}
.home-hero-side--prev{left:clamp(10px,1.8vw,26px)}
.home-hero-side--next{right:clamp(10px,1.8vw,26px)}
.home-hero-timeline{position:absolute;z-index:5;bottom:0;left:0;width:100%;height:3px;background:rgba(255,255,255,.24);overflow:hidden}
.home-hero-timeline span{display:block;height:100%;width:100%;background:#d2e29b;transform-origin:left;animation:pulsoHeroProgress linear forwards;animation-play-state:paused}
@keyframes pulsoHeroProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:768px){.home-hero-side{width:38px;height:38px}.home-hero-side span{font-size:28px}}
@media(prefers-reduced-motion:reduce){.home-hero-timeline span{animation:none!important;transform:scaleX(0)}}

/* Pulso 4.31.0D: cartões editoriais e mobile compacto. */
.home-categories {padding:clamp(38px,5vw,72px) 0}
.home-categories .home-section-header {margin-bottom:clamp(22px,3vw,36px)}
.home-category-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.5vw,20px)}
.home-category-card {position:relative;isolation:isolate;overflow:hidden;min-width:0;min-height:clamp(185px,19vw,275px);padding:clamp(18px,2vw,28px);border:1px solid #c9d1c7;border-radius:18px;background:#dce2d7;color:#1c3027;display:flex;align-items:flex-end;justify-content:space-between;box-shadow:none}
.home-category-backdrop,.home-category-shade {position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.home-category-backdrop {object-fit:cover;z-index:-2;transition:transform .35s ease}
.home-category-shade {z-index:-1;background:linear-gradient(0deg,rgba(15,32,23,.86),rgba(15,32,23,.15) 85%);opacity:0}
.home-category-card:has(.home-category-backdrop) {color:white;border-color:transparent}
.home-category-card:has(.home-category-backdrop) .home-category-shade {opacity:1}
.home-category-card:hover .home-category-backdrop {transform:scale(1.045)}
.home-category-card-content {display:flex;flex-direction:column;gap:10px;min-width:0;max-width:100%}
.home-category-card .home-category-title {font-size:clamp(1.25rem,2.3vw,2rem);line-height:1.1;letter-spacing:-.035em;overflow-wrap:anywhere}
.home-category-card .home-category-label {color:inherit;opacity:.75;font-size:.66rem}
.home-category-card .home-category-arrow {color:inherit;font-size:1.65rem}
.home-category-mobile-icon {display:none}
@media(max-width:768px) {
 .home-categories {padding:30px 0 40px}
 .home-categories .home-section-header {margin-bottom:20px}
 .home-categories .home-section-header h2 {font-size:clamp(1.65rem,6vw,2.3rem)}
 .home-categories .home-section-header p {font-size:.92rem}
 .home-category-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .home-category-card,.home-category-card:has(.home-category-backdrop) {min-height:110px;padding:12px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;border-radius:13px;background:#e4e9df;color:#1c3027;border:1px solid #d5dcd2}
 .home-category-backdrop,.home-category-shade,.home-category-label,.home-category-arrow {display:none!important}
 .home-category-mobile-icon {display:flex;align-items:center;justify-content:center;width:38px;height:38px}
 .home-category-mobile-icon svg,.home-category-mobile-icon img {width:34px;height:34px;object-fit:contain}
 .home-category-card-content {display:block}
 .home-category-card .home-category-title {display:block;font-size:clamp(.72rem,2.65vw,.95rem);font-weight:650;line-height:1.2;letter-spacing:-.025em}
}
@media(max-width:360px){.home-category-card {min-height:102px}.home-category-card .home-category-title{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){.home-category-backdrop{transition:none!important}}
