/* =============================================================
   Template Loja: visual de loja virtual.
   Marcacao em includes/loja.php e templates/loja/.

   Linguagem (referencias do cliente, out/2026): fundo cinza claro, paineis
   brancos bem arredondados sem borda nem sombra, monocromatico, botao em
   pilula preta com o circulo de seta ao lado, titulos grandes de peso medio.
   Cor de acao = --lj-primary (painel, padrao preto); vermelho so no desconto.
   ============================================================= */

@font-face {
    font-family: "Inter";
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url("../fonts/inter-latin.woff2") format("woff2-variations"),
         url("../fonts/inter-latin.woff2") format("woff2");
}

body.sc-loja-ativa {
    --lj-bg: var(--sc-bg, #f2f2f2);
    --lj-card: var(--sc-card-bg, #ffffff);
    --lj-text: var(--sc-text, #111111);
    --lj-muted: var(--sc-text-light, #6b6b6b);
    --lj-primary: var(--sc-primary, #111111);
    --lj-primary-hover: color-mix(in srgb, var(--lj-primary) 82%, #ffffff);
    --lj-soft: #f2f2f2;
    --lj-price: var(--sc-price, #111111);
    --lj-sale: #e5484d;
    --lj-line: #e9e9e9;
    --lj-dark: #0f0f0f;
    --lj-r-painel: 24px;
    --lj-r-card: 18px;
    --lj-r-img: 14px;
    --lj-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    margin: 0;
    padding: 0;
    background: var(--lj-bg);
    color: var(--lj-text);
    font-family: var(--lj-font);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "cv11", "ss01";
}

body.sc-loja-ativa .wp-site-blocks { padding: 0 !important; }

.sc-loja,
.sc-loja *,
.lj-header,
.lj-header *,
.lj-barra-compra,
.lj-barra-compra *,
body.sc-loja-ativa .sc-footer,
body.sc-loja-ativa .sc-footer * {
    box-sizing: border-box;
}

.sc-loja a,
.lj-header a,
.lj-barra-compra a { color: inherit; text-decoration: none; }

.sc-loja img { max-width: 100%; height: auto; display: block; }

.sc-loja h1, .sc-loja h2, .sc-loja h3, .sc-loja p, .sc-loja ul, .sc-loja table { margin: 0; padding: 0; }
.sc-loja ul { list-style: none; }

.sc-loja .screen-reader-text,
.lj-header .screen-reader-text,
.lj-barra-compra .screen-reader-text {
    border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
    height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
    position: absolute !important; word-wrap: normal !important;
}

.sc-loja .hidden { display: none !important; }

.lj-icone { flex-shrink: 0; }

.col-full {
    width: 100%;
    max-width: 1560px;
    margin: 0 auto;
    padding: 0 32px;
}

.lj-wrap { padding-top: 8px; padding-bottom: 56px; }

.lj-painel {
    background: var(--lj-card);
    border-radius: var(--lj-r-painel);
}

/* ---------- Botoes ---------- */

.sc-loja .button,
.lj-header .button,
.lj-barra-compra .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 11px 24px;
    border: 1px solid var(--lj-line);
    border-radius: 999px;
    background: var(--lj-card);
    color: var(--lj-text);
    font: 500 14.5px/1.2 var(--lj-font);
    cursor: pointer;
    text-align: center;
    transition: background .15s, border-color .15s, color .15s, transform .15s;
}
.sc-loja .button:hover { border-color: var(--lj-text); }

.sc-loja .button.alt,
.sc-loja .single_add_to_cart_button,
.sc-loja .checkout-button,
.lj-barra-compra .button.alt {
    background: var(--lj-primary);
    border-color: var(--lj-primary);
    color: #fff;
}
.sc-loja .button.alt:hover,
.sc-loja .single_add_to_cart_button:hover,
.sc-loja .checkout-button:hover,
.lj-barra-compra .button.alt:hover {
    background: var(--lj-primary-hover);
    border-color: var(--lj-primary-hover);
    color: #fff;
}
.sc-loja .button:active { transform: translateY(1px); }
.sc-loja .button:focus-visible,
.sc-loja a:focus-visible,
.lj-header a:focus-visible,
.lj-header button:focus-visible,
.lj-header summary:focus-visible { outline: 2px solid var(--lj-text); outline-offset: 2px; }

/* Circulo (icone sozinho): seta ao lado do botao, icones do cabecalho */
.lj-circulo {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--lj-line);
    background: var(--lj-card);
    color: var(--lj-text);
    cursor: pointer;
    transition: transform .2s, background .15s;
}
.lj-circulo .lj-icone { width: 18px; height: 18px; }
.lj-circulo-escuro,
.sc-loja a.lj-circulo-escuro { background: var(--lj-primary); border-color: var(--lj-primary); color: #fff; }
.lj-circulo-claro,
.sc-loja a.lj-circulo-claro { background: #fff; border-color: #fff; color: var(--lj-text); }
a:hover > .lj-circulo,
.lj-circulo:hover { transform: rotate(45deg); }
.lj-acoes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ---------- Cabecalho ---------- */

.lj-header {
    background: var(--lj-bg);
    font-family: var(--lj-font);
    position: relative;
    z-index: 50;
}

.lj-topbar {
    background: var(--lj-dark);
    color: #e6e6e6;
    font-size: 12.5px;
    font-weight: 500;
}
.lj-topbar .col-full {
    display: flex;
    justify-content: space-between;
    gap: 28px;
    padding-top: 8px;
    padding-bottom: 8px;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
}
.lj-topbar .col-full::-webkit-scrollbar { display: none; }

.lj-header-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 20px;
    padding-top: 16px;
    padding-bottom: 14px;
}
.lj-header-esq { display: flex; align-items: center; gap: 8px; }
.lj-header-dir { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }

.lj-header .site-branding { text-align: center; }
.lj-header .site-branding .custom-logo { max-height: 44px; width: auto; display: block; margin: 0 auto; }
.lj-header .site-title { font-size: 23px; font-weight: 600; color: var(--lj-text); letter-spacing: -0.02em; white-space: nowrap; }

.lj-header .menu-toggle { display: none; }

.main-navigation .menu {
    display: flex;
    align-items: center;
    gap: 2px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.main-navigation .menu a {
    display: block;
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
    color: var(--lj-text);
}
.main-navigation .menu a:hover { background: var(--lj-card); }

.site-header-cart { list-style: none; margin: 0; padding: 0; }
.site-header-cart .count {
    position: absolute;
    top: -3px;
    right: -3px;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--lj-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 19px;
    text-align: center;
}
.site-header-cart .count.lj-pulsar { animation: lj-pulsar .5s ease; }
@keyframes lj-pulsar { 40% { transform: scale(1.35); } }
.lj-header .lj-circulo:hover { transform: none; border-color: var(--lj-text); }

/* Busca que a lupa abre (fora da home) */
.lj-header-busca { max-width: 1496px; width: calc(100% - 64px); margin: 10px auto 0; padding: 0; }
.lj-header-busca[hidden] { display: none; }
.lj-header-busca .woocommerce-product-search { background: #fff; }
.lj-header-busca .woocommerce-product-search .search-field { padding: 14px 22px; font-size: 15px; }

.woocommerce-product-search {
    display: flex;
    align-items: center;
    width: 100%;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--lj-card);
    overflow: hidden;
    transition: border-color .15s;
}
.woocommerce-product-search .search-field {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 11px 18px;
    font: 400 14px var(--lj-font);
    color: var(--lj-text);
    outline: none;
}
.woocommerce-product-search button {
    border: 0;
    margin: 4px;
    border-radius: 999px;
    background: var(--lj-primary);
    color: #fff;
    padding: 8px 16px;
    font: 500 13px var(--lj-font);
    cursor: pointer;
}
.woocommerce-product-search:focus-within { border-color: var(--lj-text); }

.lj-menu-categorias { position: relative; flex-shrink: 0; }
.lj-menu-categorias summary {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px 11px 18px;
    border-radius: 999px;
    background: var(--lj-card);
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    list-style: none;
    user-select: none;
    white-space: nowrap;
}
.lj-menu-categorias summary::-webkit-details-marker { display: none; }
.lj-menu-categorias summary::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-left: 18px;
    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform .15s;
}
.lj-menu-categorias details[open] summary { background: var(--lj-primary); color: #fff; }
.lj-menu-categorias details[open] summary::after { transform: translateY(1px) rotate(-135deg); }
.lj-menu-categorias .sub-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 70;
    width: min(760px, calc(100vw - 40px));
    max-height: min(70vh, 520px);
    overflow-y: auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2px;
    margin: 0;
    padding: 10px;
    list-style: none;
    background: var(--lj-card);
    border-radius: 20px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .14);
}
.lj-menu-categorias .sub-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 14px;
    color: var(--lj-text);
}
.lj-menu-categorias .sub-menu a:hover { background: var(--lj-soft); }
.lj-menu-categorias .sub-menu a span { flex: 1; min-width: 0; }
.lj-menu-categorias .sub-menu small { color: var(--lj-muted); font-size: 12px; }


/* ---------- Trilha ---------- */

.woocommerce-breadcrumb {
    font-size: 13px;
    color: var(--lj-muted);
    margin: 4px 0 16px;
}
.woocommerce-breadcrumb a { color: var(--lj-muted); }
.woocommerce-breadcrumb a:hover { color: var(--lj-text); }

/* ---------- Grade de produtos ---------- */

.sc-loja ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.sc-loja ul.products li.product {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 10px;
    background: var(--lj-card);
    border-radius: var(--lj-r-card);
}

.sc-loja .woocommerce-LoopProduct-link {
    display: flex;
    flex-direction: column;
    flex: 1;
    color: var(--lj-text);
}
.sc-loja .lj-capa { display: block; overflow: hidden; border-radius: var(--lj-r-img); background: var(--lj-soft); }
.sc-loja ul.products li.product .lj-capa img,
.sc-loja ul.products li.product .lj-sem-imagem {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    transition: transform .45s ease;
}
.sc-loja ul.products li.product:hover .lj-capa img { transform: scale(1.04); }
.sc-loja .lj-sem-imagem { display: block; background: linear-gradient(135deg, #ececec, #dedede); }

/* Imagem padrao do site como fundo, com o nome do curso escrito por cima
   (cursos sem imagem propria; a imagem e uma so para o site inteiro) */
.sc-loja .lj-capa,
.sc-loja .woocommerce-product-gallery__image a { position: relative; display: block; container-type: inline-size; }
.sc-loja .lj-capa-nome {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20% 11% 12%;
    color: #0f1a24;
    font-size: clamp(13px, 8.2cqi, 40px);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    text-align: center;
    overflow-wrap: anywhere;
    pointer-events: none;
}
.sc-loja .lj-capa-nome > span {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.sc-loja .lj-capa-nome-claro { color: #fff; text-shadow: 0 2px 14px rgba(0, 0, 0, .35); }
.sc-loja ul.products li.product .lj-capa-nome { transition: transform .45s ease; }
.sc-loja ul.products li.product:hover .lj-capa-nome { transform: scale(1.04); }

.sc-loja .woocommerce-loop-product__title {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    padding: 12px 6px 0;
    min-height: calc(14px * 1.4 * 2 + 12px);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.sc-loja ul.products li.product .price {
    padding: 8px 52px 0 6px;
    margin-top: auto;
    font-size: 15px;
}
.sc-loja .lj-preco-pix {
    display: block;
    padding: 1px 52px 6px 6px;
    font-size: 12px;
    color: var(--lj-muted);
}
.sc-loja ul.products li.product .woocommerce-LoopProduct-link > .price:last-child { padding-bottom: 6px; }

/* Botao redondo no canto do card; o texto fica no HTML para leitor de tela */
.sc-loja ul.products li.product > .button {
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 40px;
    height: 40px;
    min-height: 0;
    padding: 0;
    border-radius: 50%;
}
.sc-loja ul.products li.product > .button .lj-botao-texto {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.sc-loja ul.products li.product .add_to_cart_button { background: var(--lj-primary); border-color: var(--lj-primary); color: #fff; }
.sc-loja ul.products li.product .add_to_cart_button:hover { background: var(--lj-primary-hover); }
.sc-loja ul.products li.product .add_to_cart_button .lj-icone:nth-of-type(2) { display: none; }
.sc-loja ul.products li.product .add_to_cart_button.added .lj-icone:nth-of-type(1) { display: none; }
.sc-loja ul.products li.product .add_to_cart_button.added .lj-icone:nth-of-type(2) { display: block; }
.sc-loja ul.products li.product .product_type_external { background: var(--lj-soft); border-color: var(--lj-soft); }
.sc-loja ul.products li.product .added_to_cart {
    display: block;
    padding: 2px 6px 4px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--lj-text);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Selo de desconto */
.sc-loja .onsale {
    position: absolute;
    top: 20px;
    left: 20px;
    z-index: 2;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--lj-sale);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

/* ---------- Preco ---------- */

.sc-loja .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; color: var(--lj-price); font-weight: 600; letter-spacing: -0.01em; }
.sc-loja .price del { color: var(--lj-muted); font-weight: 400; font-size: .8em; }
.sc-loja .price ins { text-decoration: none; }

/* ---------- Home ---------- */

/* Banner do topo: ceu em degrade, titulo grande no centro, capas em leque e
   uma aba recortada embaixo com o botao (referencia "FLIGHT" do cliente). */
/* O ceu cobre o cabecalho e o banner: o menu flutua sobre ele */
.lj-ceu {
    position: relative;
    margin-bottom: 24px;
    background:
        radial-gradient(ellipse 50% 40% at 15% 100%, rgba(255, 255, 255, .55), transparent 70%),
        radial-gradient(ellipse 45% 36% at 85% 100%, rgba(255, 255, 255, .5), transparent 70%),
        linear-gradient(180deg, #7fa9d3 0%, #a3c4e4 45%, #c9dcec 100%);
}
.lj-banner {
    position: relative;
    padding: 72px 32px 92px;
    text-align: center;
}

/* Menu flutuante: barra branca solta no topo de toda pagina; na home ela fica
   translucida sobre o ceu do banner */
.lj-header.lj-header-flutuante { padding-bottom: 6px; }
.lj-header.lj-header-ceu { background: transparent; padding-bottom: 0; }
.lj-header-flutuante .lj-header-main {
    width: calc(100% - 64px);
    max-width: 1496px;
    margin: 18px auto 0;
    padding: 10px 10px 10px 18px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .05);
}
.lj-header-flutuante .main-navigation .menu a:hover,
.lj-header-flutuante .main-navigation .lj-menu-categorias summary:hover { background: var(--lj-bg); }
.lj-header-flutuante .lj-circulo { background: var(--lj-bg); border-color: var(--lj-bg); }
.lj-header-ceu .lj-header-main {
    background: rgba(255, 255, 255, .72);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    backdrop-filter: blur(16px) saturate(1.4);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 14px 40px rgba(15, 26, 36, .12);
}
.lj-header-ceu .main-navigation .menu a:hover,
.lj-header-ceu .main-navigation .lj-menu-categorias summary:hover { background: rgba(255, 255, 255, .9); }
.lj-header-ceu .lj-circulo { background: #fff; border-color: #fff; }
.main-navigation .lj-menu-categorias summary.lj-menu-atual { font-weight: 600; }

/* Busca no banner (na home ela sai do cabecalho e vem para ca) */
.lj-banner-busca { max-width: 520px; margin: 26px auto 0; }
.lj-banner-busca .woocommerce-product-search { background: #fff; box-shadow: 0 14px 40px rgba(15, 26, 36, .12); }
.lj-banner-busca .woocommerce-product-search .search-field { padding: 15px 22px; font-size: 15px; }
.lj-banner-busca .woocommerce-product-search button { margin: 6px; padding: 10px 20px; font-size: 14px; }
.sc-loja .lj-banner-selo {
    display: inline-block;
    margin-bottom: 18px !important;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .55);
    color: #0f1a24;
    font-size: 13px;
    font-weight: 500;
    backdrop-filter: blur(6px);
}
.lj-banner h1 {
    max-width: 960px;
    margin: 0 auto 16px;
    color: #0f1a24;
    font-size: clamp(34px, 6.2vw, 86px);
    font-weight: 800;
    line-height: .95;
    letter-spacing: -0.045em;
    text-transform: uppercase;
}
.lj-banner-sub { max-width: 560px; margin: 0 auto !important; color: #22313f; font-size: 16.5px; line-height: 1.55; }

/* "Categorias" dentro do menu flutuante da home */
.main-navigation .lj-menu-categorias summary {
    gap: 6px;
    padding: 8px 12px;
    background: transparent;
    font-size: 14px;
}
.main-navigation .lj-menu-categorias summary::after { width: 6px; height: 6px; margin-left: 4px; border-width: 1.5px; }
.main-navigation .lj-menu-categorias details[open] summary { background: var(--lj-primary); color: #fff; }
.main-navigation .lj-menu-categorias .sub-menu { top: calc(100% + 18px); left: -12px; }


/* Carrossel ("Em destaque"): quantos cursos houver, 4 por tela */
.lj-secao-acoes { display: flex; align-items: center; gap: 8px; }
.lj-secao-acoes .lj-secao-link { margin-right: 8px; }
.lj-secao-acoes .lj-circulo:hover { transform: none; }
.lj-secao-acoes .lj-circulo:disabled { opacity: .35; cursor: default; }
.lj-secao-acoes .lj-circulo-escuro:disabled { opacity: .25; }
.sc-loja .lj-carrossel ul.products {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 48px) / 4);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
}
.sc-loja .lj-carrossel ul.products::-webkit-scrollbar { display: none; }
.sc-loja .lj-carrossel ul.products li.product { scroll-snap-align: start; }

.lj-secao { margin-top: 52px; }
.lj-secao-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.lj-secao-titulo,
.sc-loja section.related > h2 { font-size: 30px; font-weight: 500; letter-spacing: -0.03em; line-height: 1.15; }
.sc-loja section.related > h2 { margin-bottom: 18px; }
.lj-secao-link { font-size: 14px; font-weight: 500; color: var(--lj-text) !important; white-space: nowrap; text-decoration: underline; text-underline-offset: 4px; }
.lj-home .lj-wrap > .lj-secao:first-child { margin-top: 44px; }

/* Categorias: pilulas com icone e quantidade de cursos */
.sc-loja ul.lj-cat-pilulas { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sc-loja .lj-cat-pilulas a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 18px 6px 6px;
    border-radius: 999px;
    background: var(--lj-card);
    color: var(--lj-text);
    font-size: 15px;
    font-weight: 500;
    white-space: nowrap;
    transition: background .15s, color .15s;
}
.sc-loja .lj-cat-pilula-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--lj-bg);
    transition: background .15s;
}
.sc-loja .lj-cat-pilula-icone .lj-icone { width: 19px; height: 19px; }
.sc-loja .lj-cat-pilulas .count { color: var(--lj-muted); font-size: 13px; font-weight: 400; transition: color .15s; }
.sc-loja .lj-cat-pilulas a:hover { background: var(--lj-primary); color: #fff; }
.sc-loja .lj-cat-pilulas a:hover .lj-cat-pilula-icone { background: rgba(255, 255, 255, .14); }
.sc-loja .lj-cat-pilulas a:hover .count { color: rgba(255, 255, 255, .7); }

/* Grade "Mais cursos": 5 por linha (ate 10 cursos = duas linhas cheias) */
@media (min-width: 1101px) {
    .sc-loja .lj-grade-home ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* ---------- Vitrine (catalogo) ---------- */

.lj-shop-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    grid-template-areas: "side main";
    gap: 24px;
    align-items: start;
}
.lj-shop-layout .site-main { grid-area: main; }
.lj-shop-layout .lj-sidebar { grid-area: side; position: sticky; top: 16px; }

.woocommerce-products-header { margin-bottom: 14px; }
.woocommerce-products-header__title { font-size: 34px; font-weight: 500; letter-spacing: -0.035em; line-height: 1.1; }
.term-description { margin-top: 8px; color: var(--lj-muted); max-width: 760px; }

.lj-shop-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.woocommerce-result-count { color: var(--lj-muted); font-size: 14px; }
.woocommerce-ordering select {
    appearance: none;
    padding: 11px 40px 11px 18px;
    border: 0;
    border-radius: 999px;
    background: var(--lj-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;
    font: 500 14px var(--lj-font);
    color: var(--lj-text);
    cursor: pointer;
}

.lj-sidebar .widget {
    background: var(--lj-card);
    border-radius: 20px;
    padding: 18px;
    margin-bottom: 16px;
}
.lj-sidebar .widget-title { font-size: 15px; font-weight: 600; margin-bottom: 10px; }
.lj-sidebar .product-categories { max-height: 520px; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; }
.lj-sidebar .product-categories li { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 10px; font-size: 14px; }
.lj-sidebar .product-categories li:hover { background: var(--lj-soft); }
.lj-sidebar .product-categories .count { color: var(--lj-muted); font-size: 12.5px; }
.lj-sidebar .current-cat { background: var(--lj-primary); }
.lj-sidebar .current-cat > a,
.lj-sidebar .current-cat .count { color: #fff; }

.woocommerce-pagination { margin-top: 36px; }
.woocommerce-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.woocommerce-pagination .page-numbers a,
.woocommerce-pagination .page-numbers span {
    display: inline-flex;
    min-width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--lj-card);
    font-weight: 500;
    font-size: 14px;
}
.woocommerce-pagination .page-numbers .current { background: var(--lj-primary); color: #fff; }

.woocommerce-info,
.woocommerce-message {
    background: var(--lj-card);
    border-radius: 16px;
    padding: 14px 18px;
    margin-bottom: 16px;
}
.woocommerce-message { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.woocommerce-message .button { min-height: 40px; order: 2; }

/* ---------- Pagina de produto ---------- */

.sc-loja div.product > .lj-produto-topo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
}
.sc-loja .woocommerce-product-gallery {
    position: relative;
    padding: 28px;
    background: linear-gradient(180deg, #dfe2e6 0%, #c9e2f0 100%);
    border-radius: var(--lj-r-painel);
    display: flex;
    align-items: center;
    justify-content: center;
}
.sc-loja .woocommerce-product-gallery__wrapper { width: min(100%, 460px); }
.sc-loja .woocommerce-product-gallery .onsale { top: 22px; left: 22px; font-size: 13.5px; padding: 6px 14px; }
.sc-loja .woocommerce-product-gallery img,
.sc-loja .woocommerce-product-gallery .lj-sem-imagem {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 30px 60px rgba(17, 17, 17, .2);
}

.sc-loja .summary {
    display: flex;
    flex-direction: column;
    padding: 36px 34px 30px;
    background: var(--lj-card);
    border-radius: var(--lj-r-painel);
}
.sc-loja .product_title { font-size: 32px; font-weight: 500; line-height: 1.15; letter-spacing: -0.03em; margin-bottom: 18px; }
.sc-loja .summary > p.price { font-size: 34px; font-weight: 600; letter-spacing: -0.03em; }
.sc-loja .summary > p.price del { font-size: .55em; }
.sc-loja .lj-economia { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 20px; }
.sc-loja .lj-economia .lj-preco-pix { display: inline; padding: 0; font-size: 13.5px; }
.sc-loja .lj-economia span:not(.lj-preco-pix) {
    padding: 4px 11px;
    border-radius: 999px;
    background: #fdeced;
    color: var(--lj-sale);
    font-size: 13px;
    font-weight: 500;
}

.sc-loja .lj-resumo-curso { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.sc-loja .lj-resumo-curso li {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    border-radius: 999px;
    background: var(--lj-soft);
    font-size: 13.5px;
    font-weight: 500;
}
.sc-loja .lj-resumo-curso .lj-icone { width: 16px; height: 16px; }

.sc-loja .woocommerce-product-details__short-description { color: var(--lj-muted); margin: 0 0 24px; font-size: 15px; line-height: 1.65; }

.sc-loja form.cart { margin: 0 0 10px; }
.sc-loja .summary .single_add_to_cart_button,
.sc-loja .summary .lj-comprar-agora {
    width: 100%;
    min-height: 56px;
    font-size: 15.5px;
}
.sc-loja .summary .lj-comprar-agora { background: transparent; border-color: var(--lj-text); color: var(--lj-text); }
.sc-loja .summary .lj-comprar-agora:hover { background: var(--lj-text); color: #fff; }
.sc-loja .summary p.cart { margin-bottom: 10px; }

.sc-loja .lj-garantias {
    margin: 22px 0;
    padding-top: 18px;
    border-top: 1px solid var(--lj-line);
    font-size: 14px;
    color: var(--lj-muted);
}
.sc-loja .lj-garantias li { position: relative; padding: 4px 0 4px 26px; }
.sc-loja .lj-garantias li::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 10px;
    width: 10px;
    height: 5px;
    border-left: 1.8px solid var(--lj-text);
    border-bottom: 1.8px solid var(--lj-text);
    transform: rotate(-45deg);
}

.sc-loja .product_meta { font-size: 13px; color: var(--lj-muted); display: flex; flex-direction: column; gap: 4px; margin-top: auto; }
.sc-loja .product_meta a { text-decoration: underline; text-underline-offset: 2px; }

/* Abas */
.sc-loja .woocommerce-tabs {
    margin-top: 16px;
    background: var(--lj-card);
    border-radius: var(--lj-r-painel);
    overflow: hidden;
}
.sc-loja .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 6px;
    padding: 16px 20px 0;
    overflow-x: auto;
}
.sc-loja .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 10px 18px;
    border-radius: 999px;
    font-weight: 500;
    font-size: 14.5px;
    color: var(--lj-muted);
    background: var(--lj-soft);
    white-space: nowrap;
}
.sc-loja .woocommerce-tabs ul.tabs li.active a { color: #fff; background: var(--lj-primary); }
/* O style.css base zera o padding de .entry-content com !important nas paginas
   de curso; aqui precisa ganhar dele. */
body.sc-loja-ativa .sc-loja .woocommerce-Tabs-panel { padding: 26px 36px 34px !important; }
.sc-loja .woocommerce-Tabs-panel > h2 { font-size: 26px; font-weight: 500; letter-spacing: -0.025em; margin: 0 0 14px; }
body.woocommerce-js .sc-loja .woocommerce-Tabs-panel:not(.lj-aba-ativa) { display: none; }

/* Conteudo da descricao (vem do painel) */
.sc-loja .entry-content { font-size: 15.5px; line-height: 1.7; }
.sc-loja .entry-content p { margin: 0 0 14px; max-width: 760px; }
.sc-loja .entry-content h2 { font-size: 21px; font-weight: 600; letter-spacing: -0.02em; margin: 30px 0 10px; }
.sc-loja .entry-content h3 { font-size: 17px; font-weight: 600; margin: 22px 0 8px; }
.sc-loja .entry-content ul:not(.sc-recebe-lista),
.sc-loja .entry-content ol { margin: 0 0 14px 20px; padding: 0; list-style: disc; max-width: 760px; }
.sc-loja .entry-content ol { list-style: decimal; }
.sc-loja .entry-content li { margin-bottom: 6px; }
.sc-loja .entry-content a { color: var(--lj-text); text-decoration: underline; text-underline-offset: 2px; }
.sc-loja .sync-cursos-embed-wrapper { position: relative; aspect-ratio: 16 / 9; margin-bottom: 20px; border-radius: 18px; overflow: hidden; background: #000; }
.sc-loja .sync-cursos-embed-wrapper iframe,
.sc-loja .sync-cursos-embed-wrapper video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.sc-loja .sc-recebe,
.sc-loja .lj-modulos,
.sc-loja .sc-faq { margin-top: 34px; }
.sc-loja .sc-recebe h2,
.sc-loja .lj-modulos h2,
.sc-loja .sc-faq h2 { font-size: 21px; font-weight: 600; letter-spacing: -0.02em; margin: 0 0 14px; }

/* "O que voce recebe": lista simples com marca, sem as caixas do CSS base */
.sc-loja .sc-recebe-lista { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.sc-loja .sc-recebe-lista li {
    position: relative;
    margin: 0;
    padding: 5px 0 5px 34px;
    background: none;
    border: 0;
    border-radius: 0;
    font-size: 15px;
}
.sc-loja .sc-recebe-lista li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--lj-primary);
    transform: none;
}
.sc-loja .sc-recebe-lista li::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 13px;
    width: 8px;
    height: 4px;
    border-left: 1.8px solid #fff;
    border-bottom: 1.8px solid #fff;
    transform: rotate(-45deg);
}

.sc-loja .lj-modulo,
.sc-loja .sc-faq-item {
    border-radius: 16px;
    margin-bottom: 8px;
    background: var(--lj-soft);
    border: 0;
}
.sc-loja .lj-modulo summary,
.sc-loja .sc-faq-item summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    cursor: pointer;
    font-weight: 500;
    list-style: none;
}
.sc-loja .lj-modulo summary::-webkit-details-marker,
.sc-loja .sc-faq-item summary::-webkit-details-marker { display: none; }
.sc-loja .lj-modulo summary::after,
.sc-loja .sc-faq-item summary::after {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-left: auto;
    flex-shrink: 0;
    border-radius: 50%;
    background: #fff;
    font-size: 18px;
    line-height: 1;
}
.sc-loja .lj-modulo[open] summary::after,
.sc-loja .sc-faq-item[open] summary::after { content: "–"; }
.sc-loja .lj-modulo-num {
    flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%;
    background: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600;
}
.sc-loja .lj-modulo-aulas { font-size: 13px; color: var(--lj-muted); font-weight: 400; white-space: nowrap; }
.sc-loja .lj-modulo > p,
.sc-loja .sc-faq-item > p { padding: 0 18px 16px; margin: 0; color: var(--lj-muted); }
.sc-loja .lj-modulo ul { list-style: none; margin: 0; padding: 0 18px 14px 60px; }
.sc-loja .lj-modulo li { padding: 7px 0; border-top: 1px solid rgba(0, 0, 0, .06); font-size: 14px; margin: 0; }
.sc-loja .lj-resenha { margin-top: 22px; font-weight: 500; }

.sc-loja .shop_attributes { width: 100%; border-collapse: collapse; }
.sc-loja .shop_attributes th,
.sc-loja .shop_attributes td { text-align: left; padding: 12px 4px; border-bottom: 1px solid var(--lj-line); font-size: 14.5px; }
.sc-loja .shop_attributes th { width: 160px; font-weight: 500; color: var(--lj-muted); }
.sc-loja .shop_attributes td p { margin: 0; }

.sc-loja section.related { margin-top: 48px; }

.sc-loja .sc-cat-hub { margin-top: 48px; }
.sc-loja .sc-cat-hub h2 { font-size: 20px; font-weight: 500; letter-spacing: -0.02em; margin-bottom: 14px; }
.sc-loja .sc-cat-hub-links { display: flex; flex-wrap: wrap; gap: 8px; }
.sc-loja .sc-tag {
    display: inline-block;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--lj-card);
    font-size: 13.5px;
    border: 0;
}
.sc-loja .sc-tag:hover { background: var(--lj-primary); color: #fff; }

/* ---------- Barra de compra fixa ----------
   Aparece quando o botao de compra sai da tela (assets/js/loja.js). */

.lj-barra-compra {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 60;
    max-width: 1496px;
    margin: 0 auto;
    background: var(--lj-card);
    border-radius: 20px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
    font-family: var(--lj-font);
    transform: translateY(140%);
    transition: transform .3s ease;
}
body.lj-barra-visivel .lj-barra-compra { transform: none; }
.lj-barra-interna {
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: none;
    padding: 10px 10px 10px 12px;
}
.lj-barra-capa { width: 48px; height: 48px; border-radius: 12px; object-fit: cover; }
.lj-barra-titulo {
    flex: 1;
    min-width: 0;
    font-weight: 500;
    font-size: 15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lj-barra-compra .price { display: flex; align-items: baseline; gap: 8px; font-size: 19px; font-weight: 600; color: var(--lj-price); }
.lj-barra-compra .price del { color: var(--lj-muted); font-size: .7em; font-weight: 400; }
.lj-barra-compra .price ins { text-decoration: none; }
.lj-barra-compra .button { min-width: 220px; min-height: 48px; }
body.lj-barra-visivel .sc-footer { padding-bottom: 96px !important; }

/* ---------- Carrinho ---------- */

.sc-loja .entry-header .entry-title { font-size: 34px; font-weight: 500; letter-spacing: -0.035em; margin-bottom: 18px; }

.lj-carrinho {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 16px;
    align-items: start;
}
.sc-loja table.shop_table {
    width: 100%;
    border-collapse: collapse;
    background: var(--lj-card);
    border-radius: var(--lj-r-painel);
    overflow: hidden;
}
.sc-loja table.shop_table th,
.sc-loja table.shop_table td { padding: 16px; text-align: left; border-bottom: 1px solid var(--lj-line); vertical-align: middle; }
.sc-loja table.shop_table tr:last-child td { border-bottom: 0; }
.sc-loja table.shop_table thead th { font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .08em; color: var(--lj-muted); }
.sc-loja table.cart .product-remove { width: 48px; }
.sc-loja table.cart .product-thumbnail { width: 96px; }
.sc-loja table.cart .product-thumbnail img,
.sc-loja table.cart .product-thumbnail .lj-sem-imagem { width: 72px; height: 72px; object-fit: cover; border-radius: 14px; }
.sc-loja table.cart .product-name a { font-weight: 500; }
.sc-loja table.cart .product-subtotal { text-align: right; white-space: nowrap; }
.sc-loja table.cart .product-subtotal .price { justify-content: flex-end; }
.sc-loja a.remove {
    display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--lj-soft); color: var(--lj-text); font-size: 18px; line-height: 1;
}
.sc-loja a.remove:hover { background: var(--lj-sale); color: #fff; }

.sc-loja .cart_totals {
    background: var(--lj-card);
    border-radius: var(--lj-r-painel);
    padding: 26px;
    position: sticky;
    top: 16px;
}
.sc-loja .cart_totals h2 { font-size: 20px; font-weight: 500; letter-spacing: -0.02em; margin-bottom: 10px; }
.sc-loja .cart_totals table.shop_table { border-radius: 0; }
.sc-loja .cart_totals table.shop_table th,
.sc-loja .cart_totals table.shop_table td { padding: 12px 0; font-weight: 400; }
.sc-loja .cart_totals table.shop_table td { text-align: right; }
.sc-loja .cart_totals .order-total th { font-size: 16px; font-weight: 500; }
.sc-loja .cart_totals .order-total td { font-size: 28px; font-weight: 600; color: var(--lj-price); letter-spacing: -0.03em; }
.sc-loja .cart_totals .lj-economia-linha td { color: var(--lj-sale); font-weight: 500; }
.sc-loja .wc-proceed-to-checkout { margin-top: 16px; }
.sc-loja .wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 56px; font-size: 15.5px; }
.sc-loja .lj-carrinho-nota { font-size: 13px; color: var(--lj-muted); margin-top: 12px !important; text-align: center; }
.sc-loja .lj-continuar { text-align: center; margin-top: 10px !important; font-size: 14px; }
.sc-loja .lj-continuar a { text-decoration: underline; text-underline-offset: 3px; }
.sc-loja .return-to-shop { margin-top: 8px; }

/* ---------- Aviso de adicionado ---------- */

.lj-toast {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 9999;
    max-width: 380px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-radius: 18px;
    background: var(--lj-dark);
    color: #fff;
    font: 400 14px/1.4 var(--lj-font);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .28);
    transform: translateY(20px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s, transform .2s;
}
.lj-toast.lj-toast-ativo { opacity: 1; transform: none; pointer-events: auto; }
.lj-toast a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
body.lj-barra-visivel .lj-toast { bottom: 96px; }

/* ---------- Previa ---------- */

.lj-previa-aviso {
    position: fixed;
    left: 50%;
    top: 12px;
    transform: translateX(-50%);
    z-index: 10000;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 16px;
    border-radius: 999px;
    background: #f0c33c;
    color: #1d2327;
    font: 600 13px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
    white-space: nowrap;
}
.lj-previa-aviso a { color: #1d2327; text-decoration: underline; }

/* ---------- Rodape: painel branco arredondado ---------- */

body.sc-loja-ativa .sc-footer {
    background: transparent;
    color: var(--lj-muted);
    padding: 0 32px 24px;
    font-family: var(--lj-font);
    font-size: 14px;
}
body.sc-loja-ativa .sc-footer-inner {
    max-width: 1496px;
    margin: 0 auto;
    padding: 40px 40px 0;
    background: var(--lj-card);
    border-radius: var(--lj-r-painel);
}
body.sc-loja-ativa .sc-footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 28px; padding-bottom: 30px; }
body.sc-loja-ativa .sc-footer-logo { color: var(--lj-text); font-size: 18px; font-weight: 600; letter-spacing: -0.02em; }
body.sc-loja-ativa .sc-footer-desc { margin: 10px 0 0; max-width: 300px; line-height: 1.6; }
body.sc-loja-ativa .sc-footer h4 { color: var(--lj-text); font-size: 15px; font-weight: 500; margin: 0 0 14px; }
body.sc-loja-ativa .sc-footer ul { list-style: none; margin: 0; padding: 0; }
body.sc-loja-ativa .sc-footer li { margin: 0 0 10px; }
body.sc-loja-ativa .sc-footer a { color: var(--lj-muted); text-decoration: none; }
body.sc-loja-ativa .sc-footer a:hover { color: var(--lj-text); }
body.sc-loja-ativa .sc-footer-bottom { border-top: 1px solid var(--lj-line); padding: 18px 0 22px; font-size: 13px; }
body.sc-loja-ativa .sc-footer-bottom p { margin: 0; }
/* O rodape e o mesmo dos outros templates (nav-footer.php), feito para fundo
   escuro: aqui as cores precisam ganhar das regras dele. */
body.sc-loja-ativa .sc-footer .sc-footer-logo,
body.sc-loja-ativa .sc-footer h4 { color: var(--lj-text) !important; text-transform: none !important; letter-spacing: -0.01em !important; }
body.sc-loja-ativa .sc-footer .sc-footer-desc,
body.sc-loja-ativa .sc-footer .sc-footer-bottom,
body.sc-loja-ativa .sc-footer .sc-footer-bottom p,
body.sc-loja-ativa .sc-footer a { color: var(--lj-muted) !important; }
body.sc-loja-ativa .sc-footer a:hover { color: var(--lj-text) !important; }

/* ---------- Paginas institucionais (como funciona, contato, politicas) ----------
   O conteudo e o gerado pelo plugin (page-templates.php), o mesmo dos outros
   templates; aqui so ganha o visual da Loja. Varias regras precisam de
   !important porque o HTML gerado traz estilos na propria tag. */

body.sc-loja-ativa .sc-page {
    max-width: 1560px;
    margin: 0 auto;
    padding: 8px 32px 56px;
    font-family: var(--lj-font);
    color: var(--lj-text);
}
body.sc-loja-ativa .sc-page *,
body.sc-loja-ativa .sc-page *::before,
body.sc-loja-ativa .sc-page *::after { box-sizing: border-box; font-family: inherit; }

body.sc-loja-ativa .sc-page-hero {
    padding: 64px 28px !important;
    border-radius: var(--lj-r-painel);
    text-align: center;
    background:
        radial-gradient(ellipse 60% 40% at 20% 100%, rgba(255, 255, 255, .9), transparent 70%),
        radial-gradient(ellipse 60% 40% at 80% 100%, rgba(255, 255, 255, .85), transparent 70%),
        linear-gradient(180deg, #7fa9d3 0%, #b4cfe8 55%, #e8eef4 100%) !important;
}
body.sc-loja-ativa .sc-page-hero-content { display: block !important; max-width: 900px; margin: 0 auto !important; text-align: center !important; }
body.sc-loja-ativa .sc-page-hero-content > * { margin-left: auto !important; margin-right: auto !important; }
body.sc-loja-ativa .sc-page-hero h1 {
    margin: 0;
    color: #0f1a24 !important;
    font-size: clamp(30px, 5vw, 60px) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.04em !important;
    text-transform: uppercase;
}
body.sc-loja-ativa .sc-page-hero p { margin: 14px auto 0; max-width: 560px; color: #22313f !important; font-size: 16px; }

body.sc-loja-ativa .sc-page-section {
    margin-top: 16px;
    padding: 44px 32px !important;
    background: var(--lj-card) !important;
    border-radius: var(--lj-r-painel);
}
body.sc-loja-ativa .sc-page-section .sc-container { max-width: 820px !important; margin: 0 auto; padding: 0 !important; }
body.sc-loja-ativa .sc-page-section-title,
body.sc-loja-ativa .sc-page-section h2 {
    margin: 0 0 24px;
    color: var(--lj-text) !important;
    font-size: 28px !important;
    font-weight: 500 !important;
    letter-spacing: -0.025em;
    text-align: center;
}

body.sc-loja-ativa .sc-page-legal-content { font-size: 15.5px; line-height: 1.75; color: var(--lj-text); }
body.sc-loja-ativa .sc-page-legal-content p { margin: 0 0 16px; color: var(--lj-text) !important; }
body.sc-loja-ativa .sc-page-legal-content h2,
body.sc-loja-ativa .sc-page-legal-content h3 { text-align: left; font-size: 19px !important; font-weight: 600 !important; margin: 28px 0 10px; }
body.sc-loja-ativa .sc-page-legal-content ul,
body.sc-loja-ativa .sc-page-legal-content ol { margin: 0 0 16px 20px; }
body.sc-loja-ativa .sc-page a:not(.sc-btn-whatsapp):not(.sc-tag) { color: var(--lj-text); text-decoration: underline; text-underline-offset: 3px; }

body.sc-loja-ativa .sc-page-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
body.sc-loja-ativa .sc-page-step { padding: 26px 22px; border-radius: 18px; background: var(--lj-soft); text-align: left; }
body.sc-loja-ativa .sc-page-step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 0 18px !important;
    border-radius: 50%;
    background: var(--lj-primary) !important;
    color: #fff !important;
    font-size: 15px;
    font-weight: 600;
}
body.sc-loja-ativa .sc-page-step h3 { margin: 0 0 6px; font-size: 17px; font-weight: 600; color: var(--lj-text); }
body.sc-loja-ativa .sc-page-step p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--lj-muted); }

body.sc-loja-ativa .sc-page-faq { display: grid; gap: 8px; }
body.sc-loja-ativa .sc-page-faq-item { padding: 18px 20px; border: 0 !important; border-radius: 16px; background: var(--lj-soft); }
body.sc-loja-ativa .sc-page-faq-item h3 { margin: 0 0 6px; font-size: 16px; font-weight: 600; color: var(--lj-text); }
body.sc-loja-ativa .sc-page-faq-item p { margin: 0; font-size: 14.5px; color: var(--lj-muted); }

body.sc-loja-ativa .sc-page-cta { background: var(--lj-dark) !important; color: #fff; text-align: center; }
body.sc-loja-ativa .sc-page-cta h2 { color: #fff !important; margin-bottom: 10px; }
body.sc-loja-ativa .sc-page-cta p { color: rgba(255, 255, 255, .72) !important; margin: 0 0 22px; }

body.sc-loja-ativa .sc-page .sc-sidebar-card { padding: 36px 28px !important; border-radius: 20px; background: var(--lj-soft); border: 0; box-shadow: none; }
body.sc-loja-ativa .sc-page .sc-sidebar-card h2 { margin-bottom: 0; }

body.sc-loja-ativa .sc-page .sc-btn-whatsapp {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: auto !important;
    min-height: 48px;
    padding: 12px 28px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--lj-primary) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    box-shadow: none !important;
}
body.sc-loja-ativa .sc-page-cta .sc-btn-whatsapp { background: #fff !important; color: var(--lj-text) !important; }
body.sc-loja-ativa .sc-page-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
body.sc-loja-ativa .sc-page .sc-tag { padding: 10px 16px; border-radius: 999px; background: var(--lj-soft); color: var(--lj-text); font-size: 13.5px; text-decoration: none; }

/* ---------- Responsivo ---------- */

@media (max-width: 1100px) {
    .sc-loja ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lj-menu-categorias .sub-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .col-full { padding: 0 14px; }
    .lj-topbar .col-full { justify-content: flex-start; }

    .lj-header-main { padding-top: 12px; padding-bottom: 10px; gap: 10px; }
    .lj-header .menu-toggle { display: inline-flex; }
    .main-navigation {
        display: none;
        position: absolute;
        top: calc(100% + 8px);
        left: 0;
        z-index: 80;
        min-width: 220px;
        padding: 8px;
        background: var(--lj-card);
        border-radius: 18px;
        box-shadow: 0 24px 60px rgba(0, 0, 0, .16);
    }
    .lj-header-esq { position: relative; }
    .main-navigation.toggled { display: block; }
    .main-navigation .menu { flex-direction: column; align-items: stretch; }
    .main-navigation .menu a { padding: 11px 14px; border-radius: 12px; }
    .main-navigation .menu a:hover { background: var(--lj-soft); }
    .main-navigation .lj-menu-categorias summary { justify-content: space-between; padding: 11px 14px; border-radius: 12px; }
    .main-navigation .lj-menu-categorias .sub-menu { position: static; width: auto; max-height: 50vh; margin-top: 4px; padding: 4px 0 0; grid-template-columns: minmax(0, 1fr); box-shadow: none; border-radius: 0; }
    .lj-header-flutuante .main-navigation { min-width: 260px; }
    .lj-header .site-title { font-size: 19px; }

    .lj-header-busca { width: calc(100% - 28px); }
    .lj-menu-categorias .sub-menu { position: fixed; top: auto; left: 14px; right: 14px; width: auto; grid-template-columns: minmax(0, 1fr); max-height: 60vh; }

    .lj-ceu { margin-bottom: 16px; }
    .lj-banner { padding: 38px 18px 52px; }
    .lj-header-flutuante .lj-header-main { width: calc(100% - 28px); margin-top: 12px; padding: 6px; }
    .lj-banner-busca { margin-top: 20px; }
    .lj-banner-busca .woocommerce-product-search .search-field { padding: 13px 18px; }
    .lj-banner-sub { font-size: 15px; }

    .sc-loja .lj-carrossel ul.products { grid-auto-columns: calc((100% - 32px) / 3); }

    .lj-shop-layout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main" "side"; }
    .lj-shop-layout .lj-sidebar { position: static; }

    .sc-loja div.product > .lj-produto-topo { grid-template-columns: minmax(0, 1fr); }
    .sc-loja .woocommerce-product-gallery { padding: 20px; }
    .sc-loja .summary { padding: 26px 22px 22px; }
    .sc-loja .product_title { font-size: 25px; }
    .sc-loja .summary > p.price { font-size: 30px; }

    .lj-carrinho { grid-template-columns: minmax(0, 1fr); }
    .sc-loja .cart_totals { position: static; }

    body.sc-loja-ativa .sc-footer { padding: 0 14px 14px; }
    body.sc-loja-ativa .sc-footer-inner { padding: 30px 22px 0; }
    body.sc-loja-ativa .sc-footer-top { grid-template-columns: 1fr 1fr; }
    body.sc-loja-ativa .sc-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
    .sc-loja ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .sc-loja .lj-carrossel ul.products { grid-auto-columns: calc((100% - 10px) / 2.15); }
    .lj-secao-acoes .lj-circulo { display: none; }

    /* Pilulas de categoria: duas linhas que rolam de lado */
    .sc-loja ul.lj-cat-pilulas {
        display: grid;
        grid-auto-flow: column;
        grid-template-rows: repeat(2, auto);
        justify-content: start;
        gap: 8px;
        margin: 0 -14px;
        padding: 0 14px 4px;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .sc-loja ul.lj-cat-pilulas::-webkit-scrollbar { display: none; }
    .sc-loja .lj-cat-pilulas a { padding: 5px 14px 5px 5px; font-size: 14px; gap: 8px; }
    .sc-loja .lj-cat-pilula-icone { width: 34px; height: 34px; }
    .sc-loja .lj-cat-pilula-icone .lj-icone { width: 17px; height: 17px; }

    body.sc-loja-ativa .sc-page { padding: 4px 14px 40px; }
    body.sc-loja-ativa .sc-page-hero { padding: 44px 18px !important; }
    body.sc-loja-ativa .sc-page-section { padding: 30px 20px !important; }
    body.sc-loja-ativa .sc-page-section-title,
    body.sc-loja-ativa .sc-page-section h2 { font-size: 23px !important; }
    body.sc-loja-ativa .sc-page-steps { grid-template-columns: minmax(0, 1fr); }
    .sc-loja ul.products li.product { padding: 8px; border-radius: 16px; }
    .sc-loja .lj-capa { border-radius: 11px; }
    .sc-loja .woocommerce-loop-product__title { font-size: 13.5px; padding: 10px 4px 0; min-height: calc(13.5px * 1.4 * 2 + 10px); }
    .sc-loja ul.products li.product .price { padding: 6px 44px 0 4px; font-size: 14.5px; }
    .sc-loja .lj-preco-pix { padding: 1px 44px 4px 4px; font-size: 11.5px; }
    .sc-loja ul.products li.product > .button { right: 10px; bottom: 10px; width: 36px; height: 36px; }
    .sc-loja .onsale { top: 14px; left: 14px; font-size: 11px; padding: 3px 8px; }
    .woocommerce-products-header__title,
    .sc-loja .entry-header .entry-title { font-size: 28px; }
    .lj-secao { margin-top: 40px; }
    .lj-secao-titulo,
    .sc-loja section.related > h2 { font-size: 24px; }
    body.sc-loja-ativa .sc-loja .woocommerce-Tabs-panel { padding: 20px 18px 26px !important; }



    /* Tabela do carrinho vira lista */
    .sc-loja table.cart thead { display: none; }
    .sc-loja table.cart tr.cart_item {
        display: grid;
        grid-template-columns: 64px minmax(0, 1fr) 32px;
        grid-template-areas: "thumb name remove" "thumb price remove";
        gap: 4px 12px;
        padding: 14px;
        border-bottom: 1px solid var(--lj-line);
    }
    .sc-loja table.cart tr.cart_item td { padding: 0; border: 0; }
    .sc-loja table.cart .product-thumbnail { grid-area: thumb; width: auto; }
    .sc-loja table.cart .product-thumbnail img { width: 64px; height: 64px; }
    .sc-loja table.cart .product-name { grid-area: name; }
    .sc-loja table.cart .product-subtotal { grid-area: price; text-align: left; }
    .sc-loja table.cart .product-subtotal .price { justify-content: flex-start; }
    .sc-loja table.cart .product-remove { grid-area: remove; width: auto; }

    /* Barra fixa: no celular so preco e botao */
    .lj-barra-capa,
    .lj-barra-titulo { display: none; }
    .lj-barra-interna { justify-content: space-between; padding-left: 18px; }
    .lj-barra-compra .price del { display: none; }
    .lj-barra-compra .button { flex: 1; min-width: 0; max-width: 220px; }

    .lj-toast { left: 16px; right: 16px; max-width: none; }
    .lj-previa-aviso { white-space: normal; width: calc(100% - 32px); justify-content: space-between; border-radius: 14px; }
}

/* Telas grandes: aproveita a largura com 5 cursos por linha (a vitrine com
   barra lateral fica em 4) */
@media (min-width: 1500px) {
    .sc-loja ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .lj-shop-layout ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .sc-loja .lj-carrossel ul.products { grid-auto-columns: calc((100% - 64px) / 5); }
}

@media (prefers-reduced-motion: reduce) {
    .sc-loja *, .lj-header *, .lj-toast, .lj-barra-compra { transition: none !important; animation: none !important; }
}

/* ---------- WhatsApp flutuante ---------- */

.lj-whatsapp-flutuante {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 65;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #25d366;
    color: #fff;
    box-shadow: 0 10px 28px rgba(37, 211, 102, .4);
    transition: transform .2s ease, bottom .3s ease;
}
.lj-whatsapp-flutuante:hover { transform: scale(1.07); }
.lj-whatsapp-flutuante svg { width: 31px; height: 31px; fill: currentColor; }
.lj-whatsapp-flutuante:focus-visible { outline: 3px solid #111; outline-offset: 3px; }
/* Sobe quando a barra de compra ou o aviso do carrinho aparecem embaixo */
body.lj-barra-visivel .lj-whatsapp-flutuante { bottom: 104px; }
/* O aviso "adicionado ao carrinho" fica ao lado do botao, nao embaixo */
.lj-toast { right: 92px; }
@media (max-width: 768px) {
    .lj-whatsapp-flutuante { right: 14px; bottom: 14px; width: 52px; height: 52px; }
    .lj-whatsapp-flutuante svg { width: 28px; height: 28px; }
    body.lj-barra-visivel .lj-whatsapp-flutuante { bottom: 96px; }
    .lj-toast { right: 16px; bottom: 80px; }
    body.lj-barra-visivel .lj-toast { bottom: 160px; }
}
@media (prefers-reduced-motion: reduce) {
    .lj-whatsapp-flutuante { transition: none; }
}
