/* CARTPRO1112 - Caixa de Cartoes Profissionais. Uma folha, duas marcas (.ct-019 / .ct-vnm). Tudo sob .ct-app. */
.ct-app{--ct-royal:#0a45b4;--ct-royal2:#04338f;--ct-fundo:#f3f6fc;--ct-tinta:#0b1f4d;--ct-texto:#33415c;--ct-linha:#d5deef;--ct-branco:#fff;--ct-ok:#1e8e3e;--ct-erro:#b3261e;--ct-raio:16px;
  color:var(--ct-texto);font-family:Inter,"DM Sans",-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.5;color-scheme:light;-webkit-font-smoothing:antialiased}
.ct-app.ct-vnm{--ct-royal:#0a45b4;--ct-royal2:#031a4d;--ct-tinta:#031a4d}
.ct-app *,.ct-app *::before,.ct-app *::after{box-sizing:border-box}
.ct-app [hidden]{display:none!important}
.ct-pagina{background:var(--ct-fundo);min-height:60vh}
.ct-wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.ct-app h1,.ct-app h2,.ct-app h3{color:var(--ct-tinta);font-family:Manrope,Inter,"DM Sans",-apple-system,"Segoe UI",sans-serif;letter-spacing:-.01em;text-wrap:balance}
.ct-app a{color:var(--ct-royal)}
.ct-app :focus-visible{outline:3px solid #ffb300;outline-offset:2px;border-radius:6px}

/* ---------- topo da vitrine ---------- */
.ct-hero{background:linear-gradient(160deg,var(--ct-royal) 0%,var(--ct-royal2) 100%);color:#fff;padding:28px 0 86px}
.ct-hero h1{color:#fff;font-size:clamp(26px,5vw,40px);line-height:1.1;margin:0 0 8px;font-weight:800}
.ct-hero p{margin:0;max-width:640px;font-size:clamp(15px,2.4vw,18px);color:rgba(255,255,255,.92)}
.ct-hero__acoes{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}
.ct-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 20px;border-radius:999px;border:1px solid transparent;font:inherit;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;transition:transform .15s ease,background-color .15s ease}
.ct-btn:active{transform:scale(.98)}
.ct-btn--branco{background:#fff;color:var(--ct-royal)!important}
.ct-btn--vidro{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.6);color:#fff!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ct-btn--royal{background:var(--ct-royal);color:#fff!important}
.ct-btn--royal:hover{background:var(--ct-royal2)}
.ct-btn--linha{background:#fff;border-color:var(--ct-linha);color:var(--ct-tinta)!important}
.ct-btn--perigo{background:#fff;border-color:#e7b8b4;color:var(--ct-erro)!important}
.ct-btn[disabled]{opacity:.55;cursor:not-allowed}

/* ---------- filtros ---------- */
.ct-filtros{margin:-58px auto 0;background:#fff;border:1px solid var(--ct-linha);border-radius:var(--ct-raio);box-shadow:0 14px 34px -18px rgba(3,20,70,.45);padding:14px;display:grid;gap:10px;grid-template-columns:1fr}
.ct-filtros label{display:block;font-size:12.5px;font-weight:700;color:var(--ct-tinta)}
.ct-filtros input,.ct-filtros select,.ct-campo input,.ct-campo select,.ct-campo textarea{display:block;width:100%;margin-top:4px;min-height:46px;padding:10px 12px;border:1px solid #b9c6de;border-radius:12px;background:#fff;color:var(--ct-tinta);font:inherit;font-size:16px}
.ct-filtros input:focus,.ct-filtros select:focus,.ct-campo input:focus,.ct-campo select:focus,.ct-campo textarea:focus{border-color:var(--ct-royal);outline:2px solid rgba(10,69,180,.25);outline-offset:0}
.ct-filtros__acoes{display:flex;gap:8px;align-items:end}
.ct-filtros__acoes .ct-btn{flex:1}
@media(min-width:760px){.ct-filtros{grid-template-columns:2fr 1.4fr 1.4fr 1fr auto;align-items:end;padding:16px}.ct-filtros__acoes .ct-btn{flex:0 0 auto}}
.ct-resumo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0 12px}
.ct-resumo p{margin:0;font-size:14px}
.ct-resumo a{font-size:14px;font-weight:700}

/* ---------- cartao (padrao cartao de visita: foto inteira + degrade royal de baixo para cima + botao de vidro) ---------- */
.ct-grid{display:grid;gap:16px;grid-template-columns:1fr;padding-bottom:8px}
@media(min-width:640px){.ct-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.ct-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
.ct-card{position:relative;display:block;aspect-ratio:5/4;min-height:250px;border-radius:var(--ct-raio);overflow:hidden;background:var(--ct-royal);isolation:isolate;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 0 -1px #062f86,0 18px 32px -16px rgba(3,20,70,.6);margin:0}
@media(min-width:640px){.ct-card{aspect-ratio:4/3}}
.ct-card__foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:-2;background:var(--ct-royal)}
.ct-card::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(3,22,72,.66) 0%,rgba(3,22,72,.14) 18%,rgba(4,51,143,0) 28%,rgba(6,58,160,.62) 42%,rgba(8,64,172,.93) 56%,var(--ct-royal) 68%,var(--ct-royal2) 100%)}
.ct-card__topo{position:absolute;left:12px;right:12px;top:10px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.ct-card__local{display:inline-flex;align-items:center;gap:5px;min-width:0;font-size:12.5px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.ct-card__local span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-card__local svg{flex:0 0 14px;width:14px;height:14px;fill:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
.ct-card__tipo{flex:0 0 auto;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ct-card__corpo{position:absolute;left:0;right:0;bottom:0;padding:10px 14px 14px;display:flex;flex-direction:column;gap:2px}
.ct-card__prof{margin:0;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#cfe0ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-card__nome{margin:0;font-size:19px;line-height:1.15;font-weight:800;color:#fff!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 3px rgba(0,0,0,.35);overflow-wrap:anywhere}
.ct-card__resumo{margin:2px 0 0;font-size:13.5px;line-height:1.35;color:rgba(255,255,255,.93);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ct-card__btn{margin-top:9px;display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:#fff!important;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background-color .2s ease}
.ct-card__btn::after{content:"";position:absolute;inset:0}                        /* o cartao inteiro abre as informacoes */
.ct-card__btn:hover{background:rgba(255,255,255,.28)}
@media(hover:hover){.ct-card{transition:transform .25s ease,box-shadow .25s ease}.ct-card:hover{transform:translateY(-3px)}}
.ct-card--promo .ct-card__nome{font-size:26px;letter-spacing:.01em}
.ct-card--promo .ct-card__btn{background:#fff;color:var(--ct-royal)!important;border-color:#fff}
.ct-card--novo{animation:ct-entra .2s ease}
@keyframes ct-entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ct-esq{aspect-ratio:5/4;min-height:250px;border-radius:var(--ct-raio);background:linear-gradient(100deg,#dfe7f6 30%,#eef3fb 50%,#dfe7f6 70%);background-size:300% 100%;animation:ct-brilho 1.2s linear infinite}
@media(min-width:640px){.ct-esq{aspect-ratio:4/3}}
@keyframes ct-brilho{from{background-position:100% 0}to{background-position:0 0}}
@media(prefers-reduced-motion:reduce){.ct-esq,.ct-card--novo{animation:none}.ct-card{transition:none}}
.ct-vazio{grid-column:1/-1;background:#fff;border:1px dashed #b9c6de;border-radius:var(--ct-raio);padding:28px 18px;text-align:center}
.ct-vazio h2{margin:0 0 6px;font-size:20px}
.ct-mais{display:flex;justify-content:center;padding:18px 0 40px}
.ct-sentinela{height:1px}

/* ---------- janela de informacoes ---------- */
.ct-modal{border:0;padding:0;width:min(560px,100vw);max-width:100vw;max-height:min(92vh,92dvh);border-radius:20px;overflow:hidden;background:#fff;color:var(--ct-texto);box-shadow:0 30px 80px -20px rgba(3,20,70,.7)}
.ct-modal::backdrop{background:rgba(3,15,45,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
@media(max-width:600px){.ct-modal{margin:auto 0 0;width:100vw;border-radius:20px 20px 0 0}}
.ct-det{display:flex;flex-direction:column;max-height:inherit;overflow:auto;overscroll-behavior:contain}
.ct-det__capa{position:relative;aspect-ratio:16/9;background:var(--ct-royal);flex:0 0 auto}
.ct-det__capa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.ct-det__capa::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,22,72,.35) 0%,rgba(4,51,143,0) 35%,rgba(8,64,172,.75) 78%,var(--ct-royal2) 100%)}
.ct-det__fechar{position:absolute;top:10px;right:10px;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:rgba(3,22,72,.55);color:#fff;font-size:22px;line-height:1;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ct-det__titulo{position:absolute;left:16px;right:16px;bottom:12px;z-index:1;color:#fff}
.ct-det__titulo p{margin:0;font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#cfe0ff}
.ct-det__titulo h2{margin:2px 0 0;color:#fff!important;font-size:23px;line-height:1.15;font-weight:800;overflow-wrap:anywhere}
.ct-det__corpo{padding:16px 18px 20px}
.ct-det__chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none}
.ct-det__chips li{font-size:12.5px;font-weight:700;color:var(--ct-tinta);background:#eaf0fb;border-radius:999px;padding:5px 10px}
.ct-det__corpo h3{font-size:14px;margin:14px 0 4px;text-transform:uppercase;letter-spacing:.05em;color:#52607c}
.ct-det__texto{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.ct-det__contatos{display:grid;gap:8px;margin-top:8px}
.ct-det__contatos a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:10px 14px;border-radius:12px;border:1px solid var(--ct-linha);text-decoration:none;font-weight:700;color:var(--ct-tinta)!important;background:#fff}
.ct-det__contatos a small{font-weight:600;color:#52607c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
.ct-det__contatos a.ct-principal{background:var(--ct-royal);border-color:var(--ct-royal);color:#fff!important}
.ct-det__contatos a.ct-principal small{color:#dbe7ff}
.ct-det__rodape{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.ct-det__aviso{margin:14px 0 0;font-size:12.5px;color:#52607c}
.ct-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:99999;background:#0b1f4d;color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.3)}

/* ---------- pagina individual, termos, painel ---------- */
.ct-folha{background:#fff;border:1px solid var(--ct-linha);border-radius:var(--ct-raio);padding:20px 18px;margin:18px 0}
.ct-leitura{max-width:820px;margin:0 auto;padding:22px 0 44px}
.ct-leitura h1{font-size:clamp(24px,4.6vw,34px);line-height:1.15;margin:0 0 6px}
.ct-leitura h2{font-size:19px;margin:22px 0 6px}
.ct-leitura p,.ct-leitura li{font-size:15.5px}
.ct-leitura table{width:100%;border-collapse:collapse;margin:10px 0;font-size:15px}
.ct-leitura th,.ct-leitura td{border:1px solid var(--ct-linha);padding:9px 10px;text-align:left;vertical-align:top}
.ct-leitura th{background:#eef3fb;color:var(--ct-tinta)}
.ct-selo{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:4px 10px;background:#eaf0fb;color:var(--ct-tinta)}
.ct-selo--ok{background:#e3f4e8;color:#14632b}.ct-selo--alerta{background:#fff3d6;color:#7a5200}.ct-selo--erro{background:#fde8e6;color:#8c1d18}
.ct-lista{display:grid;gap:14px;margin:16px 0}
.ct-meu{display:grid;gap:14px;grid-template-columns:1fr;background:#fff;border:1px solid var(--ct-linha);border-radius:var(--ct-raio);padding:14px}
@media(min-width:760px){.ct-meu{grid-template-columns:300px 1fr;align-items:start}}
.ct-meu .ct-card{min-height:0;aspect-ratio:4/3}
.ct-meu__dados h2{margin:0 0 4px;font-size:19px}
.ct-meu__dados p{margin:4px 0;font-size:14.5px}
.ct-meu__acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ct-meu__acoes .ct-btn{min-height:42px;padding:8px 14px;font-size:14px}
.ct-aviso{border-radius:12px;padding:12px 14px;margin:14px 0;font-size:15px;border:1px solid var(--ct-linha);background:#fff}
.ct-aviso--ok{background:#e9f6ed;border-color:#b5dcc0;color:#14532d}.ct-aviso--erro{background:#fdecea;border-color:#f1c0bb;color:#7f1d1d}.ct-aviso--info{background:#eaf0fb;border-color:#c4d3ef;color:var(--ct-tinta)}

/* ---------- totem ---------- */
.ct-totem{position:relative;min-height:100vh;background:#04338f url("fundo-totem.webp") center top/cover no-repeat fixed}
.ct-totem::before{content:"";position:fixed;inset:0;background:linear-gradient(180deg,rgba(4,35,110,.58) 0%,rgba(4,51,143,.82) 45%,rgba(3,26,77,.95) 100%);pointer-events:none}
.ct-totem__topo{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;color:#fff;max-width:1180px;margin:0 auto}
.ct-totem__marca{display:flex;align-items:center;gap:10px;color:#fff!important;text-decoration:none;font-weight:800;font-size:17px;letter-spacing:.02em}
.ct-totem__marca img{height:34px;width:auto;display:block}
.ct-totem__sair{color:#fff!important;font-size:14px;font-weight:700}
.ct-totem__cols{position:relative;display:grid;gap:18px;grid-template-columns:1fr;max-width:1180px;margin:0 auto;padding:4px 16px 110px}
@media(min-width:980px){.ct-totem__cols{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;padding-bottom:60px}}
.ct-totem__chamada{color:#fff;margin:6px 0 14px}
.ct-totem__chamada h1{color:#fff!important;font-size:clamp(24px,5vw,36px);line-height:1.1;margin:0 0 6px;font-weight:800}
.ct-totem__chamada p{margin:0;color:rgba(255,255,255,.92)}
.ct-passos{display:flex;gap:6px;margin:0 0 12px;padding:0;list-style:none}
.ct-passos li{flex:1;height:6px;border-radius:999px;background:rgba(255,255,255,.28)}
.ct-passos li.ct-feito{background:#fff}.ct-passos li.ct-atual{background:#8fb6ff}
.ct-form{background:#fff;border-radius:20px;padding:18px 16px;box-shadow:0 24px 60px -24px rgba(0,0,0,.6)}
.ct-form h2{margin:0 0 4px;font-size:21px}
.ct-form .ct-sub{margin:0 0 14px;font-size:14.5px;color:#52607c}
.ct-campo{margin:0 0 12px}
.ct-campo>label,.ct-campo>span.ct-rot{display:block;font-size:13.5px;font-weight:700;color:var(--ct-tinta)}
.ct-campo textarea{min-height:110px;resize:vertical}
.ct-campo small{display:block;margin-top:3px;font-size:12.5px;color:#52607c}
.ct-campo .ct-msg{display:block;margin-top:4px;font-size:13px;font-weight:700;color:var(--ct-erro)}
.ct-campo.ct-ruim input,.ct-campo.ct-ruim select,.ct-campo.ct-ruim textarea{border-color:var(--ct-erro)}
.ct-duas{display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:560px){.ct-duas{grid-template-columns:1fr 1fr}}
.ct-escolha{display:grid;gap:8px;grid-template-columns:1fr 1fr}
.ct-escolha label,.ct-pacote{position:relative;display:block;border:2px solid var(--ct-linha);border-radius:14px;padding:12px;cursor:pointer;font-weight:700;color:var(--ct-tinta);background:#fff}
.ct-escolha input,.ct-pacote input{position:absolute;opacity:0;inset:0;cursor:pointer}
.ct-escolha label:has(input:checked),.ct-pacote:has(input:checked){border-color:var(--ct-royal);background:#eef4ff;box-shadow:0 0 0 3px rgba(10,69,180,.15)}
.ct-escolha label:has(input:focus-visible),.ct-pacote:has(input:focus-visible){outline:3px solid #ffb300;outline-offset:2px}
.ct-check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;margin:8px 0}
.ct-check input{flex:0 0 22px;width:22px;height:22px;margin:1px 0 0;accent-color:var(--ct-royal)}
.ct-pub{display:flex;gap:8px;align-items:center;margin-top:6px;font-size:13px;font-weight:600;color:#33415c}
.ct-pub input{width:20px;height:20px;accent-color:var(--ct-royal)}
.ct-nav{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.ct-nav .ct-btn{flex:1}
.ct-previa{position:sticky;top:14px}
.ct-previa__rot{color:#fff;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:0 0 8px}
.ct-previa .ct-card{box-shadow:0 24px 60px -20px rgba(0,0,0,.65)}
.ct-previa__nota{color:rgba(255,255,255,.85);font-size:13px;margin:10px 2px 0}
@media(max-width:979px){.ct-previa{position:static;order:-1}.ct-previa .ct-card{max-width:440px;margin:0 auto}.ct-previa__rot,.ct-previa__nota{text-align:center}}
.ct-foto{display:grid;gap:10px}
.ct-foto__palco{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#0a45b4;touch-action:none;cursor:grab;border:1px solid var(--ct-linha)}
.ct-foto__palco canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.ct-foto__zoom{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--ct-tinta)}
.ct-foto__zoom input{flex:1;accent-color:var(--ct-royal)}
.ct-pacotes{display:grid;gap:10px}
.ct-pacote strong{display:block;font-size:17px}
.ct-pacote .ct-preco{display:block;font-size:24px;font-weight:800;color:var(--ct-royal);margin:2px 0}
.ct-pacote .ct-preco small{font-size:13px;font-weight:700;color:#52607c}
.ct-pacote ul{margin:6px 0 0;padding-left:18px;font-size:14px;font-weight:500;color:#33415c}
.ct-termos-box{max-height:210px;overflow:auto;border:1px solid var(--ct-linha);border-radius:12px;padding:10px 12px;font-size:13.5px;background:#f8fafe}
.ct-termos-box ul{margin:4px 0;padding-left:18px}
.ct-ident{display:grid;gap:10px}
.ct-ou{display:flex;align-items:center;gap:10px;color:#52607c;font-size:13px;margin:6px 0}
.ct-ou::before,.ct-ou::after{content:"";flex:1;height:1px;background:var(--ct-linha)}

/* ---------- blindagem contra a folha do site hospedeiro (o VNM tem regras globais de h1/h2/h3/p/a/dialog) ---------- */
.ct-app .ct-hero h1{color:#fff!important;font-size:clamp(26px,5vw,40px)!important;line-height:1.1!important;margin:0 0 8px!important;font-weight:800!important;max-width:none!important;letter-spacing:-.01em!important}
.ct-app .ct-hero p{color:rgba(255,255,255,.92)!important;margin:0!important;font-size:clamp(15px,2.4vw,18px)!important;line-height:1.5!important}
.ct-app .ct-card p,.ct-app .ct-card h3{max-width:none!important}
.ct-app .ct-card .ct-card__prof{margin:0!important;font-size:12.5px!important;line-height:1.3!important;color:#cfe0ff!important;font-weight:800!important}
.ct-app .ct-card .ct-card__nome{margin:0!important;font-size:19px!important;line-height:1.15!important;color:#fff!important;font-weight:800!important}
.ct-app .ct-card.ct-card--promo .ct-card__nome{font-size:26px!important}
.ct-app .ct-card .ct-card__resumo{margin:2px 0 0!important;font-size:13.5px!important;line-height:1.35!important;color:rgba(255,255,255,.93)!important;font-weight:400!important}
.ct-app .ct-card .ct-card__btn{margin-top:9px!important;text-decoration:none!important}
.ct-app .ct-det__titulo h1,.ct-app .ct-det__titulo h2{color:#fff!important;margin:2px 0 0!important;font-size:23px!important;line-height:1.15!important;font-weight:800!important}
.ct-app .ct-det__titulo p{margin:0!important;color:#cfe0ff!important;font-size:12.5px!important}
.ct-app .ct-det__corpo h3{font-size:14px!important;margin:14px 0 4px!important;color:#52607c!important;line-height:1.3!important}
.ct-app .ct-det__texto{margin:0!important;font-size:16px!important;line-height:1.5!important;color:var(--ct-texto)!important}
.ct-app .ct-resumo p{margin:0!important;font-size:14px!important}
.ct-app dialog.ct-modal{position:fixed;inset:0;margin:auto}
@media(max-width:600px){.ct-app dialog.ct-modal{margin:auto 0 0}}
.ct-app .ct-vazio h2{margin:0 0 6px!important;font-size:20px!important;color:var(--ct-tinta)!important}

/* ---------- v1.1: contato fechado (VIP) e bloco de categorias ---------- */
.ct-vipbox{border:1px solid #c4d3ef;background:#eef4ff;border-radius:14px;padding:14px}
.ct-app .ct-vipbox p{margin:0 0 10px!important;font-size:15px!important;line-height:1.5!important;color:var(--ct-tinta)!important}
.ct-vipbox__acoes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ct-vipbox__acoes .ct-btn{flex:1 1 160px}
.ct-app .ct-vipbox .ct-vipbox__dono{margin:0!important;font-size:13.5px!important;color:#33415c!important}
.ct-app .ct-vipbox .ct-vipbox__msg{color:var(--ct-erro)!important;font-weight:700}
.ct-cats{margin:20px 0 0}
.ct-app .ct-cats h2{font-size:18px!important;margin:0 0 10px!important;color:var(--ct-tinta)!important}
.ct-cats__grade{display:grid;gap:8px;grid-template-columns:1fr}
@media(min-width:640px){.ct-cats__grade{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.ct-cats__grade{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ct-cats__grupo{background:#fff;border:1px solid var(--ct-linha);border-radius:12px;padding:0 12px;align-self:start}
.ct-cats__grupo summary{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:46px;cursor:pointer;font-weight:700;color:var(--ct-tinta);list-style:none}
.ct-cats__grupo summary::-webkit-details-marker{display:none}
.ct-cats__grupo summary small{font-weight:700;color:#52607c;background:#eaf0fb;border-radius:999px;padding:2px 9px;font-size:12.5px}
.ct-cats__grupo ul{list-style:none;margin:0!important;padding:0 0 10px!important}
.ct-cats__grupo li{margin:0!important}
.ct-cats__grupo li a{display:flex;justify-content:space-between;gap:8px;padding:8px 0;min-height:40px;align-items:center;text-decoration:none;font-size:14.5px;border-top:1px solid #eef2f9}
.ct-cats__grupo li a small{color:#52607c;font-weight:600}

.ct-app .ct-det__contatos .ct-vipbox a:not(.ct-btn){display:inline!important;border:0!important;padding:0!important;min-height:0!important;background:none!important;font-weight:700;color:var(--ct-royal)!important;text-decoration:underline}
.ct-app .ct-det__contatos .ct-vipbox a.ct-btn{justify-content:center!important;border-radius:999px!important;min-height:46px!important}

/* v1.1.1 (12/11) transicao entre paginas igual a do resto do site (HARMONIA0920). Sem isto, chegar na vitrine vindo de uma pagina do tema abortava a transicao (AbortError medido). */
@view-transition{navigation:auto}
::view-transition-old(root){animation:240ms ease-out both ctSai}
::view-transition-new(root){animation:260ms ease-in both ctEntra}
@keyframes ctEntra{from{opacity:0}}
@keyframes ctSai{to{opacity:0}}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
/* v1.1.1 APPIOS1112: no app do iPhone somem os chamados de compra (card DIVULGUE AQUI, Criar meu cartao, Quero ser VIP, Este cartao e seu?) */
.ct-appios .ct-card--promo,.ct-appios a[href*="cadastrar-cartao"],.ct-appios .ct-vipbox__dono,.ct-appios .ct-vipbox__acoes a.ct-btn--linha{display:none!important}

/* v1.1.2 (12/11) revisao visual em 8 telas (computador 1366/1920, tablet, celular 320/390/430, app Android, app iPhone) */
.ct-card__tipo{font-size:12px}
.ct-app h1:focus-visible,.ct-app h2:focus-visible,.ct-app [tabindex="-1"]:focus-visible{outline:none}
.ct-totem{font-family:Inter,"DM Sans",-apple-system,"Segoe UI",Roboto,sans-serif}
.ct-check{min-height:44px;align-items:center;cursor:pointer}
.ct-check input{flex:0 0 24px;width:24px;height:24px;margin:0}
.ct-resumo a[data-ct-limpar]{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
.ct-leitura .ct-card--promo{aspect-ratio:auto;min-height:230px;max-height:300px}
.ct-cats__mais{display:none}
@media(max-width:759px){
.ct-filtros{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.ct-filtros>label:first-child,.ct-filtros__acoes:nth-child(even){grid-column:1/-1}
.ct-cats__grade{grid-template-columns:repeat(2,minmax(0,1fr))}
.ct-cats__grupo{padding:0 10px}
.ct-cats__grupo[open]{grid-column:1/-1}
.ct-cats__grupo summary{font-size:13.5px;line-height:1.2;min-height:48px}
.ct-cats__grupo summary small{font-size:12px;padding:2px 7px}
.ct-cats--rec .ct-cats__grade>*:nth-child(n+5){display:none}
.ct-cats__mais{display:flex;width:100%;justify-content:center;align-items:center;min-height:44px;margin-top:8px;border:1px solid var(--ct-linha);border-radius:999px;background:#fff;color:var(--ct-royal);font:inherit;font-weight:700;font-size:14px;cursor:pointer}
}
@media(max-width:600px){
.ct-det__contatos a{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}
.ct-det__contatos a small{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.ct-det__rodape .ct-btn{flex:1 1 150px;justify-content:center}
}
@media(min-width:760px) and (max-width:999px){
.ct-019 .ct-filtros{grid-template-columns:1.2fr 1.2fr 1fr auto}
.ct-019 .ct-filtros>label:first-child{grid-column:1/-1}
}
@media(min-width:1500px){
.ct-wrap{max-width:1400px}
.ct-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* v1.1.2b: acabamento depois de olhar as telas */
@media(max-width:759px){
.ct-cats__grupo summary{flex-direction:column;align-items:flex-start;justify-content:center;gap:0;min-height:56px;padding:7px 0;font-size:14px}
.ct-cats__grupo summary small{background:none;padding:0;font-size:12px;font-weight:600}
.ct-cats__grupo[open] summary{flex-direction:row;align-items:center;justify-content:space-between}
}
@media(max-width:600px){
.ct-det__rodape .ct-btn{flex:1 1 190px;white-space:nowrap}
}
@media(max-width:380px){
.ct-hero__acoes{flex-wrap:nowrap;gap:8px}
.ct-hero__acoes .ct-btn{flex:1 1 0;min-width:0;padding-left:8px;padding-right:8px;font-size:13.5px;white-space:nowrap;justify-content:center}
}
.ct-leitura .ct-card--promo{min-height:270px;max-height:320px}
/* v1.1.2c: no celular o primeiro cartao tem de aparecer na primeira tela (medido: estava em y=890 de 844) */
.ct-cats__topo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.ct-app .ct-cats__topo h2{margin:0!important}
@media(max-width:759px){
.ct-cats{margin-top:14px}
.ct-cats__topo{margin-bottom:8px}
.ct-cats__mais{display:inline-flex;width:auto;margin:0;padding:0 14px;min-height:44px;font-size:13.5px;white-space:nowrap}
.ct-cats__grupo summary{min-height:52px;padding:6px 0}
.ct-resumo{margin:14px 0 10px}
}
@media(max-width:480px){
.ct-hero{padding-top:18px}
.ct-hero__mais{display:none}
}
@media(min-width:360px) and (max-width:759px){
.ct-019 .ct-filtros{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.ct-019 .ct-filtros>label:first-child{grid-column:1/5;grid-row:1}
.ct-019 .ct-filtros>.ct-filtros__acoes{grid-column:5/7;grid-row:1;align-self:end}
.ct-019 .ct-filtros>label:nth-child(2){grid-column:1/3;grid-row:2}
.ct-019 .ct-filtros>label:nth-child(3){grid-column:3/5;grid-row:2}
.ct-019 .ct-filtros>label:nth-child(4){grid-column:5/7;grid-row:2}
.ct-019 .ct-filtros select{padding:10px 2px 10px 8px}
.ct-019 .ct-filtros__acoes .ct-btn{width:100%;padding-left:6px;padding-right:6px}
}
/* CARTFIX1112 (LIMPAVG1112, 12/11/2026) - MARGEM DE SEGURANCA do cadastro de cartoes. Medido com entalhe de 47 px simulado: o logo
   ficava a 14 px do topo e "Voltar aos cartoes" a 23 px, debaixo do relogio do iPhone (a pagina tem viewport-fit=cover). As outras
   paginas dos cartoes usam o cabecalho universal, que ja respeita. Em aparelho sem entalhe os valores sao 0 e nada muda. */
.ct-totem__topo{padding-top:calc(14px + env(safe-area-inset-top,0px));padding-left:calc(16px + env(safe-area-inset-left,0px));padding-right:calc(16px + env(safe-area-inset-right,0px))}
.ct-totem{padding-bottom:env(safe-area-inset-bottom,0px)}

/* v1.1.3 (12/11) voto REV_V1=B do dono: no celular as doze categorias e a frase do topo voltam a aparecer abertas.
   Junto, recado REV_V5=A da LIMPAVG1112: cartao da vitrine 25 a 35% mais baixo no celular (era 286 px; alvo 186 a 215),
   sem cortar foto, cidade, profissao, nome e botao Informacoes (o resumo fica em 1 linha). */
@media(max-width:480px){.ct-hero__mais{display:inline}}
@media(max-width:639px){
.ct-grid>.ct-card,.ct-grid>.ct-esq{aspect-ratio:auto;min-height:0;height:214px}
.ct-grid>.ct-card .ct-card__corpo{padding:8px 14px 12px}
.ct-app .ct-grid>.ct-card .ct-card__resumo{-webkit-line-clamp:1}
.ct-app .ct-grid>.ct-card .ct-card__btn{margin-top:7px!important}
.ct-grid{gap:12px}
}
/* v1.1.4 (12/11, ordem do dono no chat): azul so de baixo para cima ate a metade do cartao, tom mais escuro, degrade suave;
   a metade de cima mostra a foto limpa. Vale para todos os cartoes (vitrine, cartao aberto, previa do cadastro, VAGAS NO MUNDO). */
.ct-card::after,.ct-grid>.ct-card::after{background:linear-gradient(0deg,rgba(3,17,58,.97) 0%,rgba(3,17,58,.92) 18%,rgba(3,17,58,.8) 30%,rgba(3,17,58,.6) 40%,rgba(3,17,58,.32) 47%,rgba(3,17,58,.12) 51%,rgba(3,17,58,0) 55%)!important}
.ct-card__local{text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 10px rgba(0,0,0,.45)}
.ct-app .ct-card .ct-card__prof,.ct-app .ct-card .ct-card__nome,.ct-app .ct-card .ct-card__resumo{text-shadow:0 1px 3px rgba(0,0,0,.75),0 0 14px rgba(3,17,58,.7)}
.ct-app .ct-card .ct-card__prof{color:#dbe7ff!important}
/* v1.1.4b: o texto do cartao cabe na metade azul (medido: ocupava 55 a 70% da altura e ficava sobre a foto) */
@media(max-width:639px){.ct-grid>.ct-card,.ct-grid>.ct-esq{height:auto;aspect-ratio:6/5;min-height:0}}
@media(min-width:640px){.ct-grid>.ct-card,.ct-grid>.ct-esq{aspect-ratio:1/1;min-height:0}}
@media(min-width:1500px){.ct-app .ct-grid>.ct-card .ct-card__resumo{-webkit-line-clamp:1}}
@media(max-width:379px){.ct-grid>.ct-card,.ct-grid>.ct-esq{aspect-ratio:1/1}}
/* LIMPAVG1112 MISSAO35 (12/11/2026, missao urgente do dono): cartao da vitrine 35% mais baixo com a MESMA largura. Antes: 6/5 no celular
   (380-639 px) e 1/1 nas outras larguras; agora 24/13 e 20/13 = 65% da altura. Ex.: 390 px de tela: 358x298 -> 358x194. Miolo compactado
   (descricao em 1 linha, botao 40 px) e o azul sobe so ate onde ha texto; a foto continua a cobrir o cartao inteiro. */
.ct-grid>.ct-card,.ct-grid>.ct-esq{aspect-ratio:20/13!important;height:auto!important;min-height:0!important}
@media(min-width:380px) and (max-width:639px){.ct-grid>.ct-card,.ct-grid>.ct-esq{aspect-ratio:24/13!important}}
/* miolo compacto */
.ct-app .ct-grid>.ct-card .ct-card__topo{top:8px!important;left:12px!important;right:12px!important}
.ct-app .ct-grid>.ct-card .ct-card__corpo{padding:6px 12px 10px!important;gap:1px!important}
.ct-app .ct-grid>.ct-card .ct-card__prof{font-size:12px!important;line-height:1.25!important}
.ct-app .ct-grid>.ct-card .ct-card__nome{font-size:17px!important;line-height:1.15!important;-webkit-line-clamp:2}
.ct-app .ct-grid>.ct-card.ct-card--promo .ct-card__nome{font-size:20px!important}
.ct-app .ct-grid>.ct-card .ct-card__resumo{font-size:13px!important;line-height:1.3!important;-webkit-line-clamp:1!important;margin-top:1px!important}
.ct-app .ct-grid>.ct-card .ct-card__btn{margin-top:6px!important;min-height:40px!important;padding:7px 14px!important;font-size:12.5px!important}
/* azul de baixo para cima so ate onde ha texto; foto limpa em cima */
.ct-grid>.ct-card::after{background:linear-gradient(0deg,rgba(3,17,58,.97) 0%,rgba(3,17,58,.93) 30%,rgba(3,17,58,.82) 48%,rgba(3,17,58,.6) 60%,rgba(3,17,58,.3) 70%,rgba(3,17,58,.1) 77%,rgba(3,17,58,0) 82%)!important}
/* PRO_V2 e PRO_V3 (LIMPAVG1112, votos do dono 12/11/2026): o nome de cada categoria virou titulo de secao (h3) com a mesma aparencia;
   nas fotos enviadas pelos anunciantes (nao os fundos padrao do modulo) o enquadramento sobe ao topo, para o rosto nao ficar sob o texto. */
.ct-cats__grupo summary h3{margin:0!important;font:inherit!important;color:inherit!important;letter-spacing:inherit!important;line-height:inherit!important;text-transform:none!important}
.ct-grid>.ct-card .ct-card__foto:not([src*="/zzz-v019-cartoes1112/fundo-"]){object-position:center 0%!important}
