/* ========================================
   Responsive — LP Conjunto PI64
   ======================================== */

/* CTA mobile da seção 2 — oculto por padrão (visível só no mobile) */
.conjunto-cta-mob { display: none; }

/* ----------------------------------------
   Tablet (≤ 1023px)
   ---------------------------------------- */
@media (max-width: 1023px) {

    .hero-title { font-size: 56px; }
    .section-title { font-size: 40px; }
    .conjunto-content .section-title { font-size: 56px; }

    .conjunto-grid {
        justify-content: center;
    }

    .medidas-grid {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .medidas-img-wrap { max-width: 500px; margin: 0 auto; }

    .captura-grid {
        grid-template-columns: 1fr;
        gap: 56px;
    }

    .materiais-grid {
        grid-template-columns: 1fr;
    }

    .material-img-wrap { max-height: 320px; }
    .material-img      { height: 320px; }

    /* Mosaico — tablet: desktop banner handles layout, nothing extra needed */
}

/* ----------------------------------------
   Mobile (≤ 767px)
   ---------------------------------------- */
@media (max-width: 767px) {

    .container { padding: 0 18px; }

    /* Navbar */
    .navbar {
        padding: 14px 0;
        padding-top: max(14px, env(safe-area-inset-top, 14px));
    }
    .logo img { height: 38px; }
    .navbar.scrolled {
        padding: 10px 0;
        padding-top: max(10px, env(safe-area-inset-top, 10px));
    }
    .navbar.scrolled .logo img { height: 32px; }
    .btn-nav { display: none; }
    .navbar-inner { justify-content: center; }

    /* Hero */
    .hero-section {
        height: 100vh !important;
        height: 100svh !important;
        min-height: 540px;
        align-items: stretch;
    }

    /* Troca de banner desktop → mobile */
    img.hero-desk { display: none; }
    img.hero-mob  {
        display: block;

        /* ↓ AJUSTE AQUI ↓  mais negativo = sobe mais / corta mais do topo */
        --hero-mob-offset: -160px;

        top: var(--hero-mob-offset);
        bottom: 0;
        left: 0;
        right: 0;
        height: calc(100% + 160px);
        object-fit: cover;
        object-position: center bottom;
    }
    .hero-section .container {
        display: flex;
        flex-direction: column;
        width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .hero-overlay {
        background: linear-gradient(
            90deg,
            rgba(6,6,8,0.95) 0%,
            rgba(6,6,8,0.85) 45%,
            rgba(6,6,8,0.22) 72%,
            transparent 88%
        );
    }

    /* Sombra suave atrás do bloco de texto da hero — mobile */
    .hero-content::before {
        content: '';
        position: absolute;
        inset: 0;
        right: -10%;
        z-index: -1;
        pointer-events: none;
        background:
            radial-gradient(ellipse 110% 65% at 18% 42%,
                rgba(6,6,8,0.82) 0%,
                rgba(6,6,8,0.55) 38%,
                rgba(6,6,8,0.18) 65%,
                transparent 85%),
            radial-gradient(ellipse 80% 40% at 8% 72%,
                rgba(6,6,8,0.60) 0%,
                transparent 70%);
        filter: blur(8px);
    }

    /* Sombra atrás do texto da segunda seção — espelho da hero, escuro à direita */
    .conjunto-section::after {
        content: '';
        position: absolute;
        inset: 0;
        z-index: 2;
        pointer-events: none;
        background:
            radial-gradient(ellipse 110% 65% at 95% 42%,
                rgba(6,6,8,0.82) 0%,
                rgba(6,6,8,0.55) 38%,
                rgba(6,6,8,0.18) 65%,
                transparent 85%),
            radial-gradient(ellipse 80% 40% at 98% 72%,
                rgba(6,6,8,0.60) 0%,
                transparent 70%);
        filter: blur(8px);
    }

    .hero-content {
        position: relative;
        padding-top: 110px;
        padding-bottom: 16px;
        padding-left: 18px;
        max-width: 100%;
        flex-grow: 1;
        display: flex;
        flex-direction: column;
    }

    /* ↓ AJUSTE AQUI ↓ — empurra título + desc + badges para baixo */
    .hero-title { margin-top: 10px; }

    .hero-eyebrow,
    .hero-title,
    .hero-desc,
    .hero-content .feature-list { max-width: 50%; }

    .hero-eyebrow {
        font-size: 10px;
        letter-spacing: 1.5px;
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        justify-content: flex-start;
        align-items: center;
        max-width: 50%;
        white-space: nowrap;
        overflow: hidden;
        z-index: 3;
        margin-top: -20px;
        margin-bottom: 0px;
    }

    .hero-title {
        font-size: 40px;
        letter-spacing: -0.5px;
        margin-top: 2px;
        margin-bottom: 14px;
        line-height: 1.0;
    }

    .hero-desc {
        font-size: 14px;
        line-height: 1.6;
        margin-bottom: 24px;
        br { display: none; }
    }

    .hero-stats {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        margin-bottom: 28px;
    }

    .stat-badge {
        padding: 10px 14px 9px;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .stat-info strong { font-size: 18px; }
    .stat-info span   { font-size: 8px; letter-spacing: 2px; }

    .hero-cta {
        width: 100%;
        max-width: 360px;
        align-items: stretch;
        margin-top: auto;
        margin-bottom: 36px;
        margin-left: auto;
        margin-right: auto;
    }

    .btn-primary {
        width: 100%;
        justify-content: center;
        padding: 18px 24px;
        font-size: 14px;
        background: linear-gradient(105deg, #c9a535 0%, #d4b244 45%, #BF9B30 100%);
        color: #060608;
        border: none;
    }

    .hero-cta-note { font-size: 9px; letter-spacing: 2px; }

    .scroll-indicator { display: none; }

    /* ── Hero Veil: névoa de transição ── */
    .hero-veil {
        display: block;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 320px;
        z-index: 1;
        pointer-events: none;
        background:
            radial-gradient(ellipse 85% 90% at 50% 100%,
                rgba(6,6,8,0.98)  0%,
                rgba(6,6,8,0.82) 28%,
                rgba(6,6,8,0.45) 56%,
                transparent      80%),
            radial-gradient(ellipse 55% 65% at 12% 100%,
                rgba(6,6,8,0.60)  0%,
                transparent      68%),
            radial-gradient(ellipse 55% 65% at 88% 100%,
                rgba(6,6,8,0.60)  0%,
                transparent      68%),
            radial-gradient(ellipse 38% 28% at 50% 88%,
                rgba(191,155,48,0.04) 0%,
                transparent           100%);
        filter: blur(14px);
    }

    /* Conjunto — mobile redesign */
    .conjunto-bg-desk { display: none; }

    /* Imagem mobile: edges explícitos como o hero, sem depender de inset */
    .conjunto-bg-mob {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        object-position: center;
    }

    /* Hero fica por cima na sobreposição */
    .hero-section { position: relative; z-index: 2; }

    /* Seção: min-height compensa os 300px escondidos sob a hero */
    .conjunto-section {
        width: 100%;
        margin-left: 0;
        overflow: hidden;
        padding: 0 0 28px;
        margin-top: -300px;
        min-height: calc(100vh + 300px);
        min-height: calc(100svh + 300px);
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        position: relative;
        z-index: 1;
    }

    /* Overlay invertido: escuro à direita (texto), transparente à esquerda (produto) */
    .conjunto-overlay {
        background: linear-gradient(
            270deg,
            rgba(6,6,8,0.88) 0%,
            rgba(6,6,8,0.75) 45%,
            rgba(6,6,8,0.18) 72%,
            transparent 88%
        );
    }

    /* Grid: coluna única */
    .conjunto-grid { grid-template-columns: 1fr; }

    /* Oculta badge desktop */
    .conjunto-left { display: none; }

    /* Grid: retira position:relative para que o content se ancore na seção */
    .conjunto-section .conjunto-grid { position: static; }

    /* Conteúdo: mesmo mecanismo da hero — ocupa 100%, elementos internos limitados a 55% */
    .conjunto-content {
        position: absolute;
        top: 340px;
        right: 0;
        left: 0;
        bottom: auto;
        width: 100%;
        padding: 0 18px 0 0;
        text-align: right;
        z-index: 3;
        display: flex;
        flex-direction: column;
        align-items: flex-end;
    }

    /* Elementos internos: max 62% da tela — texto mais longo que a hero precisa de mais espaço */
    .conjunto-content .section-eyebrow,
    .conjunto-content .section-title,
    .conjunto-content .section-desc,
    .conjunto-content .feature-list {
        max-width: 62%;
        width: 100%;
    }

    /* Spec strip: igual ao da hero — tamanho natural do conteúdo, sem forçar largura */
    .conjunto-content .spec-strip-mob {
        width: fit-content;
        max-width: 62%;
    }

    /* Eyebrow: espelha exatamente a hero-eyebrow */
    .conjunto-content .section-eyebrow {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        font-size: 10px;
        letter-spacing: 1.5px;
        white-space: nowrap;
        overflow: hidden;
        margin-bottom: 0px;
    }

    /* Título: espelha hero-title */
    .conjunto-content .section-title {
        font-size: 40px;
        line-height: 1.0;
        letter-spacing: -0.5px;
        margin-top: 2px;
        margin-bottom: 14px;
    }

    /* Feature list: ícone à ESQUERDA, texto preenche e alinha à direita */
    .conjunto-content .feature-list li {
        flex-direction: row;
        align-items: flex-start;
    }
    .conjunto-content .feature-list li span {
        flex: 1;
        text-align: right;
        font-size: 14px;
        line-height: 1.45;
    }

    /* Spec strip da segunda seção: cola no canto direito, linha dourada à direita */
    .conjunto-content .spec-strip-mob {
        margin-left: auto;
        border-left: 1px solid var(--gold-border);
        border-right: 2px solid var(--gold);
    }

    /* Spec strip — vertical, cabe em 50% da tela */
    .spec-strip-mob {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 3px;
        background: rgba(6,6,8,0.60);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
        border: 1px solid var(--gold-border);
        border-left: 2px solid var(--gold);
        border-radius: 3px;
        padding: 5px 9px;
        margin-top: 0px;
        margin-bottom: 10px;
        width: fit-content;
        max-width: 100%;
    }

    .spec-strip-metric {
        display: flex;
        align-items: baseline;
        gap: 2px;
    }

    .spec-strip-metric .spec-count {
        font-family: var(--font-mono);
        font-size: 20px;
        font-weight: 300;
        color: var(--ivory);
        line-height: 1;
        letter-spacing: -1px;
    }

    .spec-strip-unit {
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 300;
        color: var(--steel-light);
        line-height: 1;
    }

    .spec-strip-divider {
        width: 24px;
        height: 1px;
        background: rgba(191,155,48,0.35);
    }

    .spec-strip-text {
        display: flex;
        flex-direction: column;
        gap: 2px;
    }

    .spec-strip-tag {
        font-family: var(--font-mono);
        font-size: 7px;
        font-weight: 500;
        letter-spacing: 2px;
        text-transform: uppercase;
        color: var(--gold);
    }

    .spec-strip-label {
        font-size: 10px;
        font-weight: 300;
        color: var(--text-soft);
    }

    /* Descrição: espelha hero-desc */
    .conjunto-content .section-desc {
        font-size: 14px;
        line-height: 1.6;
        margin-bottom: 24px;
    }

    /* Feature list: coluna única para caber em 50% */
    .feature-list {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
        margin-bottom: 20px;
    }

    .feature-list li { align-items: flex-start; gap: 8px; }
    .feature-list li span { font-size: 11px; line-height: 1.45; }

    .section-title { font-size: 34px; }
    .feature-list li span { font-size: 14px; }

    /* CTA desktop: oculto no mobile (substituído pelo mob abaixo) */
    .conjunto-content .conjunto-cta-wrap { display: none; }

    /* CTA mobile: centralizado na largura total da seção */
    .conjunto-cta-mob {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: calc(100% - 36px);
        max-width: 360px;
        margin: 0 auto 28px;
        position: relative;
        z-index: 3;
    }
    .conjunto-cta-mob .btn-primary {
        width: 100%;
        justify-content: center;
        padding: 18px 24px;
        font-size: 14px;
    }
    .conjunto-cta-mob .orcamento-cta-note {
        font-size: 9px;
        text-align: center;
        letter-spacing: 2px;
    }

    .orcamento-cta-note { font-size: 9px; text-align: center; }

    /* Materiais */
    .materiais-section { padding: 72px 0; }
    .section-header { margin-bottom: 40px; }
    .material-img { height: 220px; }
    .material-img-wrap { max-height: 220px; }
    .material-body { padding: 18px 20px 22px; }
    .material-body h3 { font-size: 17px; }

    /* Medidas */
    .medidas-section { padding: 72px 0; }
    .medidas-grid { gap: 36px; }
    .spec-row { padding: 11px 0; }
    .spec-label { font-size: 12px; }
    .spec-value { font-size: 12px; }

    /* Mosaico — mobile: swap desktop banner for mobile banner */
    .mosaico-header { padding: 56px 0 0; }
    .baner3-desk { display: none; }
    .baner3-mob  {
        display: block;
        width: 100%;
        height: auto;
        vertical-align: bottom;
    }

    /* Banner 4 — swap para versão mobile */
    .baner4-desk { display: none; }
    .baner4-mob  { display: block; width: 100%; height: auto; vertical-align: bottom; }

    /* Captura */
    .captura-section { padding: 72px 0 48px; }
    .captura-grid { gap: 44px; }
    .captura-form { padding: 28px 22px; }
    .form-title { font-size: 20px; margin-bottom: 22px; }
    .form-group input,
    .form-group select { padding: 13px 14px; font-size: 16px; }
    .captura-benefits li span { font-size: 14px; }
    .btn-form { padding: 17px 20px; }

    /* Modal — compacto no mobile */
    .modal-box {
        padding: 28px 20px 22px;
    }
    .modal-eyebrow { margin-bottom: 10px; }
    .modal-title {
        font-size: 30px;
        margin-bottom: 8px;
    }
    .modal-desc { margin-bottom: 16px; }
    .modal-form .form-group { margin-bottom: 12px; }
    .modal-form .form-group input,
    .modal-form .form-group select {
        font-size: 16px;
        padding: 11px 14px;
    }
    .btn-modal-submit { margin-top: 4px; }
    .modal-note { margin-top: 8px; }

    /* Footer */
    .footer { padding: 24px 0 18px; }
    .footer-logo { height: 34px; margin-bottom: 8px; }
    .footer-company { font-size: 11px; }

    /* Back to top */
    .back-to-top {
        width: 44px;
        height: 44px;
        font-size: 15px;
        bottom: max(20px, calc(env(safe-area-inset-bottom, 0px) + 12px));
        right: max(16px, env(safe-area-inset-right, 16px));
    }
}

/* ----------------------------------------
   Mobile Pequeno (≤ 479px)
   ---------------------------------------- */
@media (max-width: 479px) {

    .container { padding: 0 14px; }

    .hero-title  { font-size: 32px; }
    .section-title { font-size: 30px; }
    .conjunto-content .section-title { font-size: 32px; }

    .hero-desc,
    .hero-eyebrow,
    .hero-title { max-width: 70%; }

    /* Segunda seção: um pouco mais largo em telas pequenas */
    .conjunto-content .section-eyebrow,
    .conjunto-content .section-title,
    .conjunto-content .section-desc,
    .conjunto-content .feature-list,
    .conjunto-content .spec-strip-mob { max-width: 65%; }

    .captura-form { padding: 22px 16px; }
}

/* ----------------------------------------
   Extra Pequeno (≤ 374px)
   ---------------------------------------- */
@media (max-width: 374px) {
    .hero-title  { font-size: 28px; }
    .section-title { font-size: 28px; }
    .conjunto-content .section-title { font-size: 28px; }
    .btn-primary { font-size: 13px; padding: 16px 18px; }

    /* Conjunto: aumenta um pouco a largura para caber texto em 320px */
    .conjunto-content {
        width: 60vw;
    }
}

/* ----------------------------------------
   Landscape Mobile (altura < 600px)
   ---------------------------------------- */
@media (max-height: 600px) and (orientation: landscape) {
    /* Conjunto content não pode começar em 390px — viewport é curta */
    .conjunto-content {
        top: 280px;
    }

    .hero-section {
        height: auto !important;
        min-height: unset !important;
        padding-bottom: 44px;
    }
    .hero-content { padding-top: 80px; padding-bottom: 20px; }
    .hero-title   { font-size: 28px; margin-bottom: 8px; }
    .hero-desc    { font-size: 13px; margin-bottom: 16px; }
    .scroll-indicator { display: none; }
}

/* ----------------------------------------
   Landscape Mobile (altura < 540px)
   ---------------------------------------- */
@media (max-height: 540px) and (orientation: landscape) {
    .hero-section {
        height: auto;
        min-height: unset;
        padding: 72px 0 44px;
    }
    .hero-content { padding-top: 60px; padding-bottom: 28px; }
    .hero-title   { font-size: 30px; margin-bottom: 10px; }
    .hero-stats   { display: none; }
    .scroll-indicator { display: none; }
}

/* ----------------------------------------
   Reduced Motion
   ---------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    .hero-bg   { animation: none !important; }
    .wheel     { animation: none !important; }
    .scroll-indicator { display: none; }
    .reveal-up, .reveal-left, .reveal-right {
        opacity: 1; transform: none; transition: none;
    }
}

/* ----------------------------------------
   Print
   ---------------------------------------- */
@media print {
    .navbar, .scroll-indicator, .back-to-top { display: none !important; }
    body { font-size: 11pt; color: #000; background: #fff; }
    .hero-section { height: auto; }
    .hero-overlay { display: none; }
}
