/* MOBILE GLOBAL IMPACT V1
   Progresso pesado: menu hamburguer, off-canvas, sticky CTA mobile,
   padronização responsiva e polimento global do front público. */

:root {
    --sf-navy: #071f3b;
    --sf-blue: #082e55;
    --sf-gold: #c78028;
    --sf-cream: #fffaf1;
    --sf-text: #0b2746;
    --sf-muted-blue: #607189;
    --sf-line: rgba(199,128,40,.24);
}

/* Campo do menu mobile */
.sf-menu-toggle {
    position: fixed !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Botão hamburguer escondido no desktop */
.sf-menu-button {
    display: none !important;
}

/* Polimento desktop sem quebrar estrutura */
.sf-global-menu a,
.sf-global-cta,
.shf-actions a,
.srf-actions a,
.ssf-actions a,
.shg-actions a,
.saf-actions a,
.sff-actions a,
.shf-package-card,
.srf-package,
.ssf-timeline article,
.shg-benefit-grid article,
.shg-package,
.saf-pillar-grid article,
.sff-faq-list details {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, opacity .18s ease !important;
}

@media (hover: hover) {
    .sf-global-menu a:not(.sf-global-cta):hover {
        color: var(--sf-gold) !important;
    }

    .sf-global-cta:hover,
    .shf-actions .primary:hover,
    .srf-actions .primary:hover,
    .ssf-actions .primary:hover,
    .shg-actions .primary:hover,
    .saf-actions .primary:hover,
    .sff-actions .primary:hover,
    .shf-package-card:hover,
    .srf-package:hover,
    .shg-package:hover {
        transform: translateY(-3px) !important;
    }

    .shf-package-card:hover,
    .srf-package:hover,
    .shg-package:hover,
    .shg-benefit-grid article:hover,
    .saf-pillar-grid article:hover,
    .ssf-timeline article:hover,
    .sff-faq-list details:hover {
        box-shadow: 0 24px 70px rgba(7,31,59,.09) !important;
        border-color: rgba(199,128,40,.46) !important;
    }
}

/* Rodapé sempre com respiro melhor */
.sf-global-footer {
    position: relative !important;
    overflow: hidden !important;
}

.sf-global-footer::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background:
        radial-gradient(circle at 12% 10%, rgba(199,128,40,.10), transparent 26%),
        radial-gradient(circle at 92% 20%, rgba(255,255,255,.045), transparent 28%) !important;
    pointer-events: none !important;
}

.sf-global-footer > * {
    position: relative !important;
    z-index: 1 !important;
}

/* Sticky CTA mobile fica escondido no desktop */
.sf-mobile-cta-bar {
    display: none !important;
}

/* =========================
   TABLET / MOBILE NAV
   ========================= */
@media (max-width: 1100px) {
    html {
        scroll-behavior: smooth !important;
    }

    body:has(.sf-mobile-cta-bar) {
        padding-bottom: env(safe-area-inset-bottom) !important;
    }

    .sf-global-nav {
        height: 82px !important;
        min-height: 82px !important;
        padding: 0 24px !important;
        flex-wrap: nowrap !important;
        position: relative !important;
    }

    .sf-global-logo.has-logo img {
        max-width: 158px !important;
        max-height: 54px !important;
    }

    .sf-global-logo strong {
        font-size: 38px !important;
    }

    .sf-menu-button {
        width: 48px !important;
        height: 48px !important;
        border-radius: 999px !important;
        display: grid !important;
        place-items: center !important;
        gap: 0 !important;
        cursor: pointer !important;
        background: var(--sf-navy) !important;
        box-shadow: 0 16px 34px rgba(7,31,59,.16) !important;
        position: relative !important;
        z-index: 10010 !important;
        margin-left: auto !important;
    }

    .sf-menu-button span {
        width: 20px !important;
        height: 2px !important;
        border-radius: 999px !important;
        background: #fff !important;
        display: block !important;
        position: absolute !important;
        left: 14px !important;
        transition: transform .2s ease, opacity .2s ease !important;
    }

    .sf-menu-button span:nth-child(1) { top: 16px !important; }
    .sf-menu-button span:nth-child(2) { top: 23px !important; }
    .sf-menu-button span:nth-child(3) { top: 30px !important; }

    .sf-global-menu {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: min(390px, 88vw) !important;
        padding: 102px 28px 28px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        white-space: normal !important;
        background:
            radial-gradient(circle at 85% 8%, rgba(199,128,40,.16), transparent 30%),
            linear-gradient(180deg, #fffaf1, #fff 64%, #fffaf1) !important;
        border-left: 1px solid rgba(199,128,40,.26) !important;
        box-shadow: -30px 0 80px rgba(7,31,59,.20) !important;
        z-index: 10000 !important;
        transform: translateX(105%) !important;
        transition: transform .26s ease !important;
        overflow-y: auto !important;
    }

    .sf-global-menu a {
        width: 100% !important;
        min-height: 54px !important;
        padding: 17px 0 !important;
        border-bottom: 1px solid rgba(199,128,40,.18) !important;
        color: var(--sf-navy) !important;
        font-size: 18px !important;
        line-height: 1.1 !important;
        font-weight: 900 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .sf-global-menu a::after {
        content: "→" !important;
        color: var(--sf-gold) !important;
        font-weight: 900 !important;
    }

    .sf-global-menu .sf-lang::after {
        content: "" !important;
    }

    .sf-global-menu a.active {
        color: var(--sf-gold) !important;
    }

    .sf-global-menu .sf-global-cta {
        margin-top: 22px !important;
        width: 100% !important;
        min-height: 58px !important;
        display: grid !important;
        place-items: center !important;
        justify-content: center !important;
        background: var(--sf-navy) !important;
        color: #fff !important;
        border: 0 !important;
        border-radius: 6px !important;
        padding: 18px 22px !important;
        text-align: center !important;
        text-transform: uppercase !important;
        font-size: 13px !important;
        box-shadow: 0 18px 42px rgba(7,31,59,.18) !important;
    }

    .sf-global-menu .sf-global-cta::after {
        display: none !important;
    }

    .sf-menu-backdrop {
        position: fixed !important;
        inset: 0 !important;
        z-index: 9990 !important;
        background: rgba(7,31,59,.46) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: opacity .22s ease !important;
        backdrop-filter: blur(4px) !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav .sf-global-menu {
        transform: translateX(0) !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav .sf-menu-button span:nth-child(1) {
        transform: translateY(7px) rotate(45deg) !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav .sf-menu-button span:nth-child(2) {
        opacity: 0 !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav .sf-menu-button span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg) !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav + .sf-menu-backdrop {
        opacity: 1 !important;
        pointer-events: auto !important;
    }
}

/* =========================
   MOBILE LAYOUT GERAL
   ========================= */
@media (max-width: 860px) {
    body:has(.silc-home-final),
    body:has(.silc-registration-final),
    body:has(.silc-schedule-final),
    body:has(.silc-hosting-final),
    body:has(.silc-about-final),
    body:has(.silc-faq-final) {
        background: #fffaf1 !important;
        padding-bottom: 86px !important;
    }

    .silc-home-final,
    .silc-registration-final,
    .silc-schedule-final,
    .silc-hosting-final,
    .silc-about-final,
    .silc-faq-final {
        width: 100% !important;
        box-shadow: none !important;
    }

    /* Grids viram blocos bonitos */
    .shf-hero,
    .srf-hero,
    .ssf-hero,
    .shg-hero,
    .saf-hero,
    .sff-hero,
    .shf-intro,
    .shf-leader,
    .shf-forwho,
    .shf-location,
    .shf-bottom,
    .shf-activation,
    .srf-form-layout,
    .srf-payment-layout,
    .ssf-immersion,
    .shg-about-location,
    .shg-orientation,
    .saf-intro,
    .saf-leader-section,
    .saf-who,
    .sff-contact {
        grid-template-columns: 1fr !important;
    }

    /* Heros */
    .shf-hero-copy,
    .srf-hero-copy,
    .ssf-hero-copy,
    .shg-hero-copy,
    .saf-hero-copy,
    .sff-hero-copy {
        padding: 42px 24px 38px !important;
    }

    .shf-hero,
    .srf-hero,
    .ssf-hero,
    .shg-hero,
    .saf-hero,
    .sff-hero {
        min-height: auto !important;
    }

    .shf-hero h1,
    .srf-hero h1,
    .ssf-hero h1,
    .shg-hero h1,
    .saf-hero h1,
    .sff-hero h1 {
        font-size: clamp(58px, 15vw, 78px) !important;
        line-height: .88 !important;
        letter-spacing: -.075em !important;
    }

    .shf-subtitle,
    .srf-subtitle,
    .ssf-subtitle,
    .shg-subtitle,
    .saf-subtitle,
    .sff-subtitle {
        font-size: 15px !important;
        line-height: 1.55 !important;
        letter-spacing: .10em !important;
        max-width: none !important;
    }

    .shf-actions,
    .srf-actions,
    .ssf-actions,
    .shg-actions,
    .saf-actions,
    .sff-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .shf-actions a,
    .srf-actions a,
    .ssf-actions a,
    .shg-actions a,
    .saf-actions a,
    .sff-actions a {
        width: 100% !important;
        min-height: 54px !important;
        display: grid !important;
        place-items: center !important;
        text-align: center !important;
    }

    .shf-hero-visual,
    .srf-hero-panel,
    .ssf-hero-panel,
    .shg-hero-panel,
    .saf-hero-panel,
    .sff-hero-panel {
        min-height: 320px !important;
        padding: 36px 24px !important;
    }

    .srf-hero-panel strong,
    .ssf-hero-panel strong,
    .shg-hero-panel strong,
    .saf-hero-panel strong,
    .sff-hero-panel strong {
        font-size: 34px !important;
    }

    .shf-hero-visual {
        grid-row: 1 !important;
    }

    .shf-hero-copy {
        grid-row: 2 !important;
    }

    /* Sections */
    .shf-what,
    .shf-leader-copy,
    .shf-forwho,
    .shf-location-copy,
    .shf-packages,
    .shf-testimonials,
    .shf-faq,
    .shf-contact,
    .activation-copy,
    .srf-section,
    .srf-form-layout,
    .ssf-timeline-section,
    .ssf-immersion-copy,
    .ssf-final-cta,
    .shg-about-location,
    .shg-benefits,
    .shg-packages,
    .shg-orientation,
    .shg-final-cta,
    .saf-intro,
    .saf-leader-copy,
    .saf-pillars,
    .saf-who,
    .saf-final-cta,
    .sff-faq-area,
    .sff-contact,
    .sff-final-cta {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .shf-what,
    .shf-leader-copy,
    .shf-forwho,
    .shf-location-copy,
    .shf-packages,
    .shf-testimonials,
    .srf-section,
    .ssf-timeline-section,
    .shg-benefits,
    .shg-packages,
    .saf-pillars,
    .sff-faq-area {
        padding-top: 38px !important;
        padding-bottom: 42px !important;
    }

    .shf-what,
    .shf-faq {
        border-right: 0 !important;
    }

    .shf-leader-photo,
    .shf-location-visual,
    .shf-location-image,
    .shg-location-visual,
    .ssf-immersion-visual {
        min-height: 280px !important;
    }

    /* Titles */
    .shf-what h2,
    .shf-leader h2,
    .shf-forwho h2,
    .shf-location h2,
    .shf-section-center h2,
    .shf-activation h2,
    .srf-section-title h2,
    .ssf-section-title h2,
    .ssf-immersion-copy h2,
    .ssf-final-cta h2,
    .shg-about-copy h2,
    .shg-section-title h2,
    .shg-orientation h2,
    .shg-final-cta h2,
    .saf-intro h2,
    .saf-leader-copy h2,
    .saf-section-title h2,
    .saf-who h2,
    .saf-final-cta h2,
    .sff-section-title h2,
    .sff-contact h2,
    .sff-final-cta h2 {
        font-size: clamp(34px, 10vw, 44px) !important;
    }

    /* Cards/grids */
    .shf-icon-row,
    .shf-package-grid,
    .shf-testimonial-grid,
    .srf-steps,
    .srf-package-grid,
    .srf-payment-options,
    .srf-fields,
    .ssf-info-bar,
    .shg-info-bar,
    .shg-benefit-grid,
    .shg-package-grid,
    .saf-pillar-grid,
    .sff-info-bar,
    .sff-faq-grid {
        grid-template-columns: 1fr !important;
    }

    .srf-fields .span-2 {
        grid-column: auto !important;
    }

    .shf-package-card,
    .srf-package,
    .shg-package,
    .shf-package-card.featured,
    .srf-package.featured,
    .shg-package.featured {
        transform: none !important;
    }

    .shf-package-grid,
    .srf-package-grid,
    .shg-package-grid {
        gap: 18px !important;
    }

    .shf-package-card,
    .srf-package,
    .shg-package {
        padding: 24px !important;
    }

    .shf-band,
    .ssf-band,
    .shg-band,
    .saf-band,
    .activation-visual {
        grid-template-columns: 1fr !important;
        padding: 38px 24px !important;
        gap: 24px !important;
    }

    .shf-band .band-title,
    .ssf-band .band-title,
    .shg-band .band-title,
    .saf-band .band-title {
        border-right: 0 !important;
        padding-right: 0 !important;
        text-align: center !important;
    }

    .shf-band article,
    .ssf-band article,
    .shg-band article,
    .saf-band article {
        border-top: 1px solid rgba(255,255,255,.10) !important;
        padding-top: 18px !important;
    }

    .srf-summary {
        position: static !important;
    }

    .srf-section,
    .srf-form-layout {
        width: calc(100% - 28px) !important;
    }

    .srf-payment-layout {
        gap: 24px !important;
    }

    .ssf-timeline article {
        grid-template-columns: 1fr !important;
    }

    .ssf-day {
        border-right: 0 !important;
        border-bottom: 1px solid rgba(199,128,40,.22) !important;
    }

    .ssf-info-bar,
    .shg-info-bar,
    .sff-info-bar {
        width: calc(100% - 28px) !important;
        margin-top: -18px !important;
        border-radius: 22px !important;
    }

    .ssf-info-bar article,
    .shg-info-bar article,
    .sff-info-bar article {
        border-right: 0 !important;
        border-bottom: 1px solid rgba(199,128,40,.18) !important;
    }

    .ssf-final-cta,
    .shg-final-cta,
    .saf-final-cta,
    .sff-final-cta {
        display: grid !important;
        padding-top: 42px !important;
        padding-bottom: 42px !important;
    }

    .ssf-final-cta a,
    .shg-final-cta a,
    .saf-final-cta a,
    .sff-final-cta a {
        width: 100% !important;
        min-height: 54px !important;
        display: grid !important;
        place-items: center !important;
        text-align: center !important;
    }

    /* Footer */
    .sf-global-footer {
        grid-template-columns: 1fr !important;
        padding: 42px 24px 112px !important;
        gap: 28px !important;
    }

    .sf-footer-logo.has-logo img {
        max-width: 170px !important;
    }

    /* WhatsApp premium sobe acima da barra inferior */
    .sf-whatsapp-float {
        right: 16px !important;
        bottom: 94px !important;
        min-width: auto !important;
        min-height: 62px !important;
        padding: 7px 13px 7px 7px !important;
        gap: 10px !important;
    }

    .sf-whatsapp-icon {
        width: 48px !important;
        height: 48px !important;
        flex-basis: 48px !important;
    }

    .sf-whatsapp-icon svg {
        width: 28px !important;
        height: 28px !important;
    }

    .sf-whatsapp-copy strong {
        font-size: 13px !important;
    }

    .sf-whatsapp-copy small {
        font-size: 12px !important;
    }

    /* Mobile sticky CTA */
    .sf-mobile-cta-bar {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        bottom: calc(12px + env(safe-area-inset-bottom)) !important;
        z-index: 9998 !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        padding: 8px !important;
        border-radius: 18px !important;
        background: rgba(255,250,241,.92) !important;
        border: 1px solid rgba(199,128,40,.30) !important;
        box-shadow: 0 18px 45px rgba(7,31,59,.20) !important;
        backdrop-filter: blur(14px) !important;
    }

    .sf-mobile-cta-bar a {
        min-height: 48px !important;
        border-radius: 12px !important;
        display: grid !important;
        place-items: center !important;
        text-decoration: none !important;
        text-align: center !important;
        font-size: 12px !important;
        font-weight: 950 !important;
        text-transform: uppercase !important;
        letter-spacing: .04em !important;
    }

    .sf-mobile-primary {
        background: var(--sf-navy) !important;
        color: #fff !important;
    }

    .sf-mobile-secondary {
        background: linear-gradient(135deg, #22dc65, #087836) !important;
        color: #fff !important;
    }
}

@media (max-width: 390px) {
    .shf-hero h1,
    .srf-hero h1,
    .ssf-hero h1,
    .shg-hero h1,
    .saf-hero h1,
    .sff-hero h1 {
        font-size: 52px !important;
    }

    .sf-whatsapp-copy {
        display: none !important;
    }

    .sf-whatsapp-float {
        padding: 7px !important;
        border-radius: 999px !important;
    }
}



/* MOBILE MENU CLICK FIX V1
   Corrige menu ficando por baixo do backdrop/blur e bloqueando links.
   O problema era stacking context: o backdrop ficava acima do menu em algumas larguras. */

@media (max-width: 1100px) {
    .sf-global-nav {
        z-index: 10050 !important;
        isolation: isolate !important;
    }

    .sf-global-menu {
        z-index: 10080 !important;
        pointer-events: auto !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    .sf-global-menu a,
    .sf-global-menu .sf-global-cta {
        position: relative !important;
        z-index: 10090 !important;
        pointer-events: auto !important;
    }

    .sf-menu-button {
        z-index: 10100 !important;
        pointer-events: auto !important;
    }

    .sf-menu-backdrop {
        z-index: 10000 !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        background: rgba(7,31,59,.40) !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav {
        z-index: 10070 !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav .sf-global-menu {
        transform: translateX(0) !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    .sf-menu-toggle:not(:checked) + .sf-global-nav .sf-global-menu {
        visibility: hidden !important;
        opacity: 0 !important;
        transition: transform .26s ease, opacity .18s ease, visibility 0s linear .26s !important;
    }

    .sf-menu-toggle:checked + .sf-global-nav + .sf-menu-backdrop {
        opacity: 1 !important;
        pointer-events: auto !important;
    }
}

/* Em navegador redimensionado, evita efeito de "vidro embaçado" sobre o menu. */
@media (max-width: 1100px) {
    .sf-menu-toggle:checked + .sf-global-nav .sf-global-menu::before {
        content: "" !important;
        position: absolute !important;
        inset: 0 !important;
        background: transparent !important;
        pointer-events: none !important;
    }
}
