/* SITE PREMIUM 2026-10 · Pabulo Hilário
   Fundo preto profundo, títulos Lexend Exa leves, corpo IBM Plex, rótulos mono em caixa alta,
   cartões brancos de canto 28px, pílula rosa. Movimento: entrada suave por rolagem, fotos que
   respiram, topo que ganha vidro, troca de página com fundido. Tudo responde a prefers-reduced-motion. */

:root {
  --bg: #060606; --bg2: #0c0c0e; --bg3: #141417;
  --ink: #f4f4f2; --ink2: rgba(244,244,242,.74); --mudo: rgba(244,244,242,.5); --mudo2: rgba(244,244,242,.34);
  --rosa: #ff0078; --rosa2: #ff2e93; --rosa-escuro: #b4005a;
  --linha: rgba(255,255,255,.1); --linha2: rgba(255,255,255,.16);
  --papel: #ffffff; --papel2: #f5f2ef; --tinta: #111113; --tinta2: #55555b; --borda: #e9e3df;
  --disp: 'Lexend Exa', 'Lexend', system-ui, sans-serif;
  --corpo: 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, monospace;
  --raio: 28px; --raio-p: 18px;
  --ease: cubic-bezier(.2,.7,.2,1); --ease-out: cubic-bezier(.16,1,.3,1);
  --topo-h: 76px;
  --gutter: clamp(18px, 4vw, 40px);
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html.ph-menu-aberto, html.ph-trava { overflow: hidden; }
body.ph-body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--corpo); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body.ph-body *, body.ph-body *::before, body.ph-body *::after { box-sizing: border-box; }
body.ph-body img { max-width: 100%; display: block; }
.ph img { height: auto; }
.ph [hidden] { display: none !important; }
body.ph-body a { color: inherit; }
body.ph-body button { font-family: inherit; }
body.ph-body h1, body.ph-body h2, body.ph-body h3, body.ph-body h4 { margin: 0; font-weight: 300; font-family: var(--disp); letter-spacing: -.01em; }
body.ph-body p { margin: 0; }
body.ph-body :focus-visible { outline: 2px solid var(--rosa); outline-offset: 3px; border-radius: 6px; }
body.ph-body::selection, body.ph-body *::selection { background: var(--rosa); color: #fff; }

/* fundido entre páginas */
.ph-veu-pagina { position: fixed; inset: 0; background: var(--bg); z-index: 400; opacity: 0; pointer-events: none; transition: opacity .45s var(--ease); }
html.ph-saindo .ph-veu-pagina { opacity: 1; pointer-events: auto; }
html.ph-entrando .ph-veu-pagina { opacity: 1; animation: ph-entrar .7s var(--ease) forwards; }
@keyframes ph-entrar { to { opacity: 0; visibility: hidden; } }

/* grão fino em cima de tudo (textura de impressão) */
.ph-grao { position: fixed; inset: -50%; width: 200%; height: 200%; pointer-events: none; z-index: 1; opacity: .05; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); animation: ph-grao 1.2s steps(3) infinite; }
@keyframes ph-grao { 0%{transform:translate(0,0)} 33%{transform:translate(-2%,1%)} 66%{transform:translate(1%,-2%)} 100%{transform:translate(0,0)} }

/* ----- estrutura ----- */
.ph { position: relative; z-index: 2; overflow: clip; }
.ph-wrap { width: min(1240px, 100% - 2 * var(--gutter)); margin-inline: auto; }
.ph-wrap-larga { width: min(1440px, 100% - 2 * var(--gutter)); margin-inline: auto; }
.ph-secao { position: relative; padding: clamp(72px, 9vw, 128px) 0; }
.ph-secao-curta { padding: clamp(44px, 6vw, 80px) 0; }
.ph-secao-clara { background: var(--papel2); color: var(--tinta); }
.ph-secao-clara .ph-rotulo { color: var(--tinta2); }
.ph-secao-clara .ph-lead, .ph-secao-clara .ph-texto { color: #3f3f46; }
.ph-secao-fio { border-top: 1px solid var(--linha); }
.ph-fio { height: 1px; background: var(--linha); border: 0; margin: 0; }

/* tipografia */
.ph-rotulo { font-family: var(--mono); font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--mudo); display: inline-flex; align-items: center; gap: 12px; }
.ph-rotulo::before { content: ""; width: 22px; height: 1px; background: currentColor; opacity: .7; }
.ph-rotulo.sem-traco::before { display: none; }
.ph-rotulo-rosa { color: var(--rosa); }
.ph-h1 { font-size: clamp(42px, 7.2vw, 96px); line-height: .98; letter-spacing: -.025em; font-weight: 300; }
.ph-h1 em, .ph-h2 em, .ph-h3 em { font-style: normal; color: var(--mudo); }
/* 08/10 (Pabulo): no banner do início, só duas linhas e a foto em evidência */
.ph-h1-hero { font-size: clamp(30px, 4.4vw, 60px); line-height: 1.08; }
.ph-h1-hero em { color: rgba(244,244,242,.78); }
.ph-hero .ph-hero-copy { gap: 16px; }
.ph-h1 strong, .ph-h2 strong { font-weight: 400; color: var(--ink); }
.ph-h2 { font-size: clamp(32px, 4.6vw, 60px); line-height: 1.02; letter-spacing: -.02em; font-weight: 300; max-width: 16ch; }
.ph-h3 { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.12; font-weight: 300; }
.ph-lead { font-size: clamp(17px, 1.5vw, 21px); line-height: 1.55; color: var(--ink2); max-width: 54ch; font-weight: 400; }
.ph-texto { font-size: 16px; line-height: 1.7; color: var(--ink2); max-width: 60ch; }
.ph-texto + .ph-texto { margin-top: 14px; }
.ph-secao-clara .ph-h2 em, .ph-secao-clara .ph-h1 em { color: #9a9aa2; }
.ph-cabeca { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 28px 60px; align-items: end; margin-bottom: clamp(36px, 5vw, 64px); }
.ph-cabeca .ph-lead { justify-self: end; max-width: 46ch; }
.ph-cabeca-pilha { display: grid; gap: 18px; }
.ph-nums { font-family: var(--disp); font-weight: 300; font-variant-numeric: tabular-nums; }

/* botões */
.ph-btn { --cor: var(--ink); display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 17px 28px; border-radius: 999px; font-weight: 600; font-size: 14px; letter-spacing: .01em; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease); white-space: nowrap; }
.ph-btn i { width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-top: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .25s var(--ease); flex: none; }
.ph-btn:hover i { transform: rotate(45deg) translate(2px, -2px); }
.ph-btn:active { transform: scale(.985); }
.ph-btn-rosa { background: var(--rosa); color: #fff; box-shadow: 0 18px 44px -18px rgba(255,0,120,.8); }
.ph-btn-rosa:hover { background: var(--rosa2); box-shadow: 0 22px 54px -18px rgba(255,0,120,.95); transform: translateY(-1px); }
.ph-btn-branco { background: var(--ink); color: var(--tinta); }
.ph-btn-branco:hover { background: #fff; transform: translateY(-1px); }
.ph-btn-vidro { background: rgba(255,255,255,.07); color: var(--ink); border-color: rgba(255,255,255,.18); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.ph-btn-vidro:hover { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.3); }
.ph-btn-escuro { background: var(--tinta); color: #fff; }
.ph-btn-escuro:hover { background: #000; }
.ph-btn-fio { background: transparent; color: var(--tinta); border-color: #d9d2cd; }
.ph-btn-fio:hover { border-color: var(--tinta); }
.ph-btn-sm { padding: 12px 20px; font-size: 13px; }
.ph-link { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; text-decoration: none; color: var(--ink); position: relative; }
.ph-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: currentColor; transform: scaleX(.35); transform-origin: left; opacity: .5; transition: transform .35s var(--ease), opacity .35s; }
.ph-link:hover::after { transform: scaleX(1); opacity: 1; }
.ph-link-rosa { color: var(--rosa); }
.ph-secao-clara .ph-link { color: var(--tinta); }
.ph-acoes { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* entrada suave por rolagem */
html.ph-anima [data-ph] { opacity: 0; transform: translateY(26px); transition: opacity 1s var(--ease-out), transform 1.1s var(--ease-out); transition-delay: var(--d, 0s); will-change: opacity, transform; }
html.ph-anima [data-ph="esq"] { transform: translateX(-30px); }
html.ph-anima [data-ph="zoom"] { transform: scale(.96); }
html.ph-anima [data-ph].is-in { opacity: 1; transform: none; }
html.ph-anima [data-ph-linha] { clip-path: inset(0 100% 0 0); transition: clip-path 1.1s var(--ease-out); transition-delay: var(--d, 0s); }
html.ph-anima [data-ph-linha].is-in { clip-path: inset(0 0 0 0); }
.ph-contador { font-variant-numeric: tabular-nums; }

/* ----- topo ----- */
.ph-topo { position: fixed; top: 0; left: 0; right: 0; z-index: 300; height: var(--topo-h); display: flex; align-items: center; transition: background .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease), height .4s var(--ease); border-bottom: 1px solid transparent; padding-top: env(safe-area-inset-top); }
.ph-topo.is-vidro { background: rgba(6,6,6,.72); -webkit-backdrop-filter: saturate(160%) blur(18px); backdrop-filter: saturate(160%) blur(18px); border-color: var(--linha); --topo-h: 64px; }
.ph-topo.is-escondido { transform: translateY(-110%); }
html.ph-menu-aberto .ph-topo { transform: none; background: transparent; border-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
.ph-topo-in { width: min(1400px, 100% - 2 * var(--gutter)); margin-inline: auto; display: flex; align-items: center; gap: 28px; }
.ph-topo-logo { display: inline-flex; align-items: center; flex: none; }
.ph-topo-logo img { width: 128px; height: auto; }
.ph-topo-nav { display: flex; align-items: center; gap: 4px; margin-left: 8px; }
.ph-topo-nav a { font-family: var(--mono); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; text-decoration: none; color: var(--ink2); padding: 10px 12px; border-radius: 999px; transition: color .25s, background .25s; position: relative; }
.ph-topo-nav a:hover { color: var(--ink); background: rgba(255,255,255,.06); }
.ph-topo-nav a.is-atual { color: var(--ink); }
.ph-topo-nav a.is-atual::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 1px; background: var(--rosa); }
.ph-topo-dir { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.ph-topo-membros { font-family: var(--mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--ink2); padding: 10px 14px; border: 1px solid var(--linha2); border-radius: 999px; transition: .25s; }
.ph-topo-membros:hover { color: var(--ink); border-color: rgba(255,255,255,.4); }
.ph-topo-cta { padding: 13px 22px; font-size: 13px; }
.ph-menu-botao { appearance: none; background: rgba(255,255,255,.06); border: 1px solid var(--linha2); color: var(--ink); width: 48px; height: 48px; border-radius: 999px; display: inline-grid; place-items: center; cursor: pointer; transition: background .25s, border-color .25s; flex: none; }
.ph-menu-botao:hover { background: rgba(255,255,255,.12); }
.ph-menu-botao span { position: relative; width: 20px; height: 12px; display: block; }
.ph-menu-botao span::before, .ph-menu-botao span::after { content: ""; position: absolute; left: 0; right: 0; height: 1.5px; background: currentColor; transition: transform .4s var(--ease), top .4s var(--ease); }
.ph-menu-botao span::before { top: 0; } .ph-menu-botao span::after { top: 10px; }
html.ph-menu-aberto .ph-menu-botao span::before { top: 5px; transform: rotate(45deg); }
html.ph-menu-aberto .ph-menu-botao span::after { top: 5px; transform: rotate(-45deg); }

/* menu em tela cheia */
.ph-menu { position: fixed; inset: 0; z-index: 290; background: rgba(6,6,6,.96); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); opacity: 0; visibility: hidden; transition: opacity .5s var(--ease), visibility .5s; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: calc(var(--topo-h) + 24px + env(safe-area-inset-top)) 0 calc(40px + env(safe-area-inset-bottom)); }
html.ph-menu-aberto .ph-menu { opacity: 1; visibility: visible; }
.ph-menu-in { width: min(1400px, 100% - 2 * var(--gutter)); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 48px; }
.ph-menu-grupos { display: grid; gap: 34px; }
.ph-menu-grupo { display: grid; gap: 6px; }
.ph-menu-titulo { font-family: var(--mono); font-size: 10.5px; letter-spacing: .32em; text-transform: uppercase; color: var(--mudo); margin-bottom: 8px; }
.ph-menu-item { display: flex; align-items: baseline; gap: 18px; text-decoration: none; padding: 10px 0; border-bottom: 1px solid var(--linha); transform: translateY(14px); opacity: 0; transition: opacity .6s var(--ease), transform .7s var(--ease); transition-delay: var(--d, 0s); }
html.ph-menu-aberto .ph-menu-item { opacity: 1; transform: none; }
.ph-menu-item strong { font-family: var(--disp); font-weight: 300; font-size: clamp(26px, 3.4vw, 40px); line-height: 1.1; color: var(--ink); letter-spacing: -.02em; transition: color .25s; }
.ph-menu-item small { font-size: 13px; color: var(--mudo); }
.ph-menu-item.is-atual strong, .ph-menu-item:hover strong { color: var(--rosa2); }
.ph-menu-lado { display: grid; gap: 22px; align-content: start; }
.ph-menu-cartao { border: 1px solid var(--linha2); border-radius: var(--raio); padding: 24px; display: grid; gap: 12px; background: rgba(255,255,255,.03); }
.ph-menu-cartao p { color: var(--ink2); font-size: 14.5px; }
.ph-menu-contato { display: flex; flex-wrap: wrap; gap: 10px 18px; font-size: 13.5px; }
.ph-menu-contato a { color: var(--ink2); text-decoration: none; }
.ph-menu-contato a:hover { color: var(--ink); }
.ph-menu-rodape { font-family: var(--mono); font-size: 10.5px; letter-spacing: .2em; color: var(--mudo2); text-transform: uppercase; }
/* compatibilidade com o rastreio do site.js: .mobile-nav e .mobile-nav-panel continuam no DOM */
.mobile-nav.ph-menu-compat { display: contents; }

/* ----- hero alto ----- */
.ph-hero { position: relative; min-height: 100svh; min-height: 100vh; display: grid; align-items: end; overflow: hidden; isolation: isolate; }
.ph-hero-slides { position: absolute; inset: 0; z-index: -2; }
.ph-hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.8s var(--ease); }
.ph-hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 25%); filter: saturate(.85) contrast(1.04); transform: scale(1.06); }
.ph-hero-slide.is-on { opacity: 1; }
.ph-hero-slide.is-on img { animation: ph-respira 9s var(--ease) forwards; }
@keyframes ph-respira { from { transform: scale(1.06) translate(0, 0); } to { transform: scale(1.14) translate(-1.2%, -1.4%); } }
/* 13/10: o véu escurece onde fica o texto. Em foto clara o rótulo rosa e a segunda linha do título sumiam. */
.ph-hero-veu { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6,6,6,.52) 0%, rgba(6,6,6,.12) 26%, rgba(6,6,6,.44) 56%, rgba(6,6,6,.88) 86%, var(--bg) 100%); }
.ph-hero-veu::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,6,6,.64), rgba(6,6,6,.3) 46%, transparent 72%); }
.ph-hero-in { position: relative; padding: calc(var(--topo-h) + 60px) 0 clamp(40px, 6vh, 72px); display: grid; gap: 34px; }
.ph-hero-copy { display: grid; gap: 22px; max-width: 980px; }
.ph-hero-copy .ph-lead { max-width: 52ch; }
.ph-hero .ph-acoes { margin-top: 6px; }
.ph-hero-base { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 22px; border-top: 1px solid rgba(255,255,255,.14); padding-top: 22px; }
.ph-hero-provas { display: flex; flex-wrap: wrap; gap: 28px 44px; }
.ph-prova { display: grid; gap: 2px; }
.ph-prova strong { font-family: var(--disp); font-weight: 300; font-size: clamp(26px, 3vw, 36px); line-height: 1; letter-spacing: -.02em; }
.ph-prova span { font-size: 12.5px; color: var(--mudo); letter-spacing: .02em; }
.ph-prova-estrela { display: inline-flex; align-items: center; gap: 6px; }
.ph-prova-estrela svg { width: 16px; height: 16px; fill: #ffb400; }
.ph-hero-indic { display: flex; align-items: center; gap: 14px; font-family: var(--mono); font-size: 10.5px; letter-spacing: .28em; text-transform: uppercase; color: var(--mudo); }
.ph-hero-indic i { width: 46px; height: 1px; background: rgba(255,255,255,.25); position: relative; overflow: hidden; display: block; }
.ph-hero-indic i::after { content: ""; position: absolute; inset: 0; background: var(--rosa); transform: scaleX(0); transform-origin: left; animation: ph-barra 7s linear infinite; }
@keyframes ph-barra { to { transform: scaleX(1); } }
.ph-hero-pontos { display: flex; gap: 8px; }
.ph-hero-pontos button { width: 28px; height: 3px; border: 0; padding: 0; border-radius: 2px; background: rgba(255,255,255,.25); cursor: pointer; transition: background .3s; }
.ph-hero-pontos button.is-on { background: var(--ink); }
.ph-hero-rolar { position: absolute; right: var(--gutter); bottom: 28px; writing-mode: vertical-rl; font-family: var(--mono); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--mudo); display: none; }
@media (min-width: 1100px) { .ph-hero-rolar { display: block; } }

/* hero interno (páginas) */
.ph-capa { position: relative; min-height: min(78svh, 760px); display: grid; align-items: end; overflow: hidden; isolation: isolate; }
.ph-capa-fundo { position: absolute; inset: 0; z-index: -2; }
.ph-capa-fundo img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 30%); filter: saturate(.72) contrast(1.05) brightness(.9); transform: scale(1.04); animation: ph-respira 12s var(--ease) forwards; }
.ph-capa-veu { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6,6,6,.7) 0%, rgba(6,6,6,.2) 35%, rgba(6,6,6,.75) 78%, var(--bg) 100%); }
.ph-capa-in { position: relative; padding: calc(var(--topo-h) + 56px) 0 clamp(36px, 5vw, 60px); display: grid; gap: 18px; max-width: 900px; }
.ph-capa-curta { min-height: 0; }
.ph-capa-curta .ph-capa-in { padding-top: calc(var(--topo-h) + 48px); }

/* ----- faixa de confiança em movimento ----- */
.ph-marquee { overflow: hidden; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); padding: 18px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.ph-marquee-trilho { display: flex; width: max-content; gap: 56px; animation: ph-marquee 48s linear infinite; }
.ph-marquee:hover .ph-marquee-trilho { animation-play-state: paused; }
.ph-marquee span { font-family: var(--mono); font-size: 11.5px; letter-spacing: .32em; text-transform: uppercase; color: var(--mudo); display: inline-flex; align-items: center; gap: 56px; white-space: nowrap; }
.ph-marquee span::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--rosa); }
@keyframes ph-marquee { to { transform: translateX(-50%); } }

/* ----- grades e cartões ----- */
.ph-grade-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.ph-grade-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ph-grade-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ph-cartao { position: relative; border-radius: var(--raio); background: var(--papel); color: var(--tinta); padding: 30px; display: grid; gap: 14px; align-content: start; overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.ph-cartao:hover { transform: translateY(-4px); box-shadow: 0 40px 70px -40px rgba(0,0,0,.9); }
.ph-cartao .ph-rotulo { color: var(--tinta2); }
.ph-cartao .ph-h3 { color: var(--tinta); }
.ph-cartao p { color: #4b4b52; font-size: 15px; line-height: 1.65; }
.ph-cartao-escuro { background: var(--bg3); color: var(--ink); border: 1px solid var(--linha); }
/* 12/10 (Pabulo: "esse botão tá pouco estético pelo padrão do site"): o atalho do cartão virou botão de verdade */
.ph-cartao-cta { margin-top: 6px; justify-self: start; }
.ph-cartao:hover .ph-cartao-cta.ph-btn-escuro { background: var(--rosa); box-shadow: 0 16px 34px -16px rgba(255,0,120,.7); }
.ph-cartao-escuro .ph-cartao-cta.ph-btn-escuro { background: var(--ink); color: var(--tinta); }
.ph-cartao-escuro:hover .ph-cartao-cta.ph-btn-escuro { background: var(--rosa); color: #fff; }
@media (max-width: 620px) { .ph-cartao-cta { justify-self: stretch; } }
.ph-cartao-escuro .ph-rotulo { color: var(--mudo); }
.ph-cartao-escuro .ph-h3 { color: var(--ink); }
.ph-cartao-escuro p { color: var(--ink2); }
.ph-cartao-num { position: absolute; top: 24px; right: 26px; font-family: var(--mono); font-size: 11px; letter-spacing: .3em; color: var(--mudo2); }
.ph-cartao .ph-cartao-num { color: #b9b3ae; }
.ph-cartao > .ph-rotulo:first-of-type { padding-right: 56px; }
.price-card-featured .price-card-top { padding-right: 130px; }
.ph-foto { position: relative; overflow: hidden; border-radius: var(--raio); background: var(--bg3); }
.ph-foto img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 30%); transition: transform 1.4s var(--ease); }
.ph-foto:hover img { transform: scale(1.04); }
.ph-foto-alta { aspect-ratio: 4 / 5; }
.ph-foto-larga { aspect-ratio: 16 / 10; }
.ph-foto-quadrada { aspect-ratio: 1; }
.ph-foto-legenda { position: absolute; left: 18px; right: 18px; bottom: 18px; display: flex; justify-content: space-between; align-items: end; gap: 12px; color: #fff; text-shadow: 0 1px 14px rgba(0,0,0,.6); }
.ph-foto-legenda strong { font-family: var(--disp); font-weight: 300; font-size: 20px; }
.ph-foto-legenda span { font-family: var(--mono); font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; }
.ph-foto-veu::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(6,6,6,.75)); pointer-events: none; }

/* lista editorial numerada (o que faz parte) */
.ph-editorial { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px 80px; align-items: start; }
.ph-editorial-fixa { position: sticky; top: calc(var(--topo-h) + 24px); }
.ph-lista { list-style: none; margin: 0; padding: 0; display: grid; }
.ph-lista li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 26px 0; border-top: 1px solid var(--linha); align-items: start; }
.ph-lista li:last-child { border-bottom: 1px solid var(--linha); }
.ph-lista .ph-lista-n { font-family: var(--mono); font-size: 11px; letter-spacing: .3em; color: var(--rosa); padding-top: 8px; }
.ph-lista h3 { font-size: clamp(22px, 2.4vw, 30px); margin-bottom: 8px; }
.ph-lista p { color: var(--ink2); font-size: 15.5px; max-width: 46ch; }
.ph-lista li[data-ph] { --d: calc(var(--i, 0) * .08s); }
.ph-secao-clara .ph-lista li { border-color: #ddd6d1; }
.ph-secao-clara .ph-lista p { color: #4b4b52; }

/* bloco em duas colunas com foto */
.ph-duas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 96px); align-items: center; }
.ph-duas-inv > :first-child { order: 2; }
.ph-duas .ph-foto { box-shadow: 0 60px 100px -60px rgba(0,0,0,.95); }
.ph-pilha { display: grid; gap: 20px; }
.ph-pilha-grande { display: grid; gap: 28px; }

/* números grandes */
.ph-numeros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.ph-numero { border-top: 1px solid var(--linha2); padding-top: 18px; display: grid; gap: 6px; }
.ph-numero strong { font-family: var(--disp); font-weight: 200; font-size: clamp(40px, 5vw, 64px); line-height: 1; letter-spacing: -.03em; }
.ph-numero strong b { font-weight: 300; color: var(--rosa); }
.ph-numero span { font-size: 13.5px; color: var(--mudo); }
.ph-secao-clara .ph-numero { border-color: #d6cfca; }
.ph-secao-clara .ph-numero span { color: var(--tinta2); }

/* chips */
.ph-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ph-chip { font-family: var(--mono); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; border: 1px solid var(--linha2); border-radius: 999px; padding: 9px 14px; color: var(--ink2); }
.ph-chip-rosa { border-color: rgba(255,0,120,.5); color: var(--rosa2); }
.ph-cartao .ph-chip { border-color: #ddd6d1; color: var(--tinta2); }

/* FAQ */
.ph-faq { display: grid; max-width: 860px; }
.ph-faq details { border-top: 1px solid var(--linha); }
.ph-faq details:last-child { border-bottom: 1px solid var(--linha); }
.ph-faq summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(0, 1fr) 40px; align-items: center; gap: 20px; padding: 22px 0; font-family: var(--disp); font-weight: 300; font-size: clamp(18px, 2vw, 24px); line-height: 1.25; transition: color .25s; }
.ph-faq summary::-webkit-details-marker { display: none; }
.ph-faq summary:hover { color: var(--rosa2); }
.ph-faq summary i { width: 40px; height: 40px; border: 1px solid var(--linha2); border-radius: 50%; position: relative; transition: transform .45s var(--ease), background .3s; }
.ph-faq summary i::before, .ph-faq summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); }
.ph-faq summary i::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform .45s var(--ease); }
.ph-faq details[open] summary i { transform: rotate(45deg); background: rgba(255,255,255,.06); }
.ph-faq-corpo { padding: 0 0 26px; color: var(--ink2); font-size: 15.5px; line-height: 1.7; max-width: 62ch; }
.ph-secao-clara .ph-faq details { border-color: #ddd6d1; }
.ph-secao-clara .ph-faq summary i { border-color: #cfc7c1; }
.ph-secao-clara .ph-faq-corpo { color: #4b4b52; }

/* CTA final */
.ph-cta { position: relative; overflow: hidden; isolation: isolate; padding: clamp(80px, 12vw, 160px) 0; }
.ph-cta-fundo { position: absolute; inset: 0; z-index: -2; }
.ph-cta-fundo img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 30%); filter: saturate(.6) brightness(.55); transform: scale(1.03); }
.ph-cta-veu { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--bg), rgba(6,6,6,.45) 30%, rgba(6,6,6,.5) 70%, var(--bg)); }
.ph-cta-in { display: grid; gap: 26px; justify-items: start; max-width: 820px; }
.ph-cta .ph-h2 { max-width: 20ch; font-size: clamp(36px, 5.6vw, 76px); }

/* diagnóstico */
.ph-diag { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: center; border: 1px solid var(--linha2); border-radius: var(--raio); padding: clamp(26px, 4vw, 44px); background: linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.01)); }
.ph-diag .ph-h3 { max-width: 26ch; }

/* ----- rodapé ----- */
.ph-rodape { border-top: 1px solid var(--linha); padding: clamp(48px, 6vw, 80px) 0 calc(28px + env(safe-area-inset-bottom)); }
.ph-rodape-grade { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); gap: 40px; }
.ph-rodape-marca { display: grid; gap: 16px; align-content: start; justify-items: start; }
.ph-rodape-marca img { width: 150px; }
.ph-rodape-marca p { color: var(--mudo); font-size: 14px; max-width: 28ch; }
.ph-rodape-col { display: grid; gap: 10px; align-content: start; }
.ph-rodape-col a { text-decoration: none; color: var(--ink2); font-size: 14.5px; transition: color .25s; width: fit-content; }
.ph-rodape-col a:hover { color: var(--ink); }
.ph-rodape-titulo { font-family: var(--mono); font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--mudo); margin-bottom: 8px; }
.ph-rodape-info { color: var(--mudo); font-size: 13.5px; line-height: 1.55; }
.ph-rodape-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; border-top: 1px solid var(--linha); margin-top: 48px; padding-top: 22px; font-family: var(--mono); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--mudo2); }

/* ----- planos ----- */
.ph-escolha { display: grid; gap: 14px; }
.ph-escolha-titulo { display: flex; align-items: baseline; gap: 14px; }
.ph-escolha-titulo b { font-family: var(--mono); font-size: 11px; letter-spacing: .3em; color: var(--rosa); font-weight: 500; }
.ph-escolha-titulo span { font-family: var(--disp); font-weight: 300; font-size: clamp(20px, 2.2vw, 26px); }
.ph-segmento { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px; border: 1px solid var(--linha2); border-radius: 28px; background: rgba(255,255,255,.04); width: fit-content; max-width: 100%; }
.ph-segmento button { appearance: none; border: 0; background: transparent; color: var(--ink2); padding: 13px 20px; border-radius: 999px; font-weight: 600; font-size: 14px; cursor: pointer; transition: background .3s var(--ease), color .3s; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ph-segmento button small { font-weight: 400; font-size: 12px; color: var(--mudo); }
.ph-segmento button:hover { color: var(--ink); }
.ph-segmento button[aria-pressed="true"] { background: var(--ink); color: var(--tinta); }
.ph-segmento button[aria-pressed="true"] small { color: var(--tinta2); }
.ph-planos-topo { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: 28px 48px; align-items: start; }
.ph-planos-topo > * { min-width: 0; }
.ph-planos-resumo { display: grid; gap: 10px; border: 1px solid var(--linha2); border-radius: var(--raio); padding: 26px; background: rgba(255,255,255,.03); }
.ph-planos-resumo strong { font-family: var(--disp); font-weight: 300; font-size: 22px; }
.ph-planos-resumo ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 8px; }
.ph-planos-resumo li { display: flex; gap: 12px; align-items: start; font-size: 14.5px; color: var(--ink2); }
.ph-planos-resumo li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--rosa); flex: none; margin-top: 8px; box-shadow: 0 0 0 4px rgba(255,0,120,.15); }
/* 13/10 (Pabulo): o valor fica na página desde o começo. A escolha lá em cima leva até o grupo certo. */
.ph-planos-grupo { display: block; }
.ph-planos-grupo + .ph-planos-grupo { margin-top: clamp(40px, 6vw, 72px); padding-top: clamp(32px, 5vw, 56px); border-top: 1px solid var(--linha); }
.ph-grupo-sub { font-size: 14.5px; color: var(--mudo); }
.ph-planos-grupo.is-escolhido > .ph-cabeca .ph-grupo-sub { color: var(--rosa2); }
.ph-grupo-selo { display: none; }
.ph-planos-grupo.is-escolhido .ph-grupo-selo { display: inline-flex; align-items: center; gap: 8px; justify-self: end; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255,0,120,.38); background: rgba(255,0,120,.1); font-family: var(--mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--rosa2); }
.ph-planos-grupo.is-escolhido .ph-grupo-selo::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--rosa); }
@media (max-width: 860px) { .ph-planos-grupo.is-escolhido .ph-grupo-selo { justify-self: start; } }
.price-onde { display: inline-flex; align-items: center; justify-self: start; margin: 0 0 9px; padding: 4px 10px; border-radius: 999px; background: var(--rosa); font-family: var(--mono); font-weight: 500; font-size: 9px; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; color: #fff; }
.ph-precos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.price-card { position: relative; display: flex; flex-direction: column; border-radius: var(--raio); background: var(--papel); color: var(--tinta); padding: 28px 26px 24px; gap: 0; overflow: hidden; transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.price-card:hover { transform: translateY(-4px); box-shadow: 0 40px 70px -40px rgba(0,0,0,.9); }
.price-card-featured { outline: 2px solid var(--rosa); outline-offset: -2px; }
.price-tag { position: absolute; top: 18px; right: 18px; background: var(--rosa); color: #fff; font-family: var(--mono); font-size: 10px; letter-spacing: .24em; text-transform: uppercase; padding: 7px 12px; border-radius: 999px; }
.price-card-top { display: grid; gap: 2px; }
.price-card-top h4 { font-family: var(--disp); font-weight: 300; font-size: 26px; color: var(--tinta); }
.price-card-top p { font-size: 13px; color: var(--tinta2); }
.price-value { display: flex; align-items: baseline; gap: 6px; margin-top: 20px; font-variant-numeric: tabular-nums; }
.price-value span { font-family: var(--mono); font-size: 13px; letter-spacing: .1em; color: var(--tinta2); }
.price-value small { font-size: 16px; font-weight: 500; color: var(--tinta2); }
.price-value strong { font-family: var(--disp); font-weight: 300; font-size: 54px; line-height: 1; letter-spacing: -.03em; color: var(--tinta); }
.price-value sup { font-size: 16px; font-weight: 500; color: var(--tinta2); vertical-align: baseline; top: 0; }
.price-payment { font-size: 12.5px; color: var(--tinta2); margin-top: 6px; }
.price-includes { list-style: none; margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid var(--borda); display: grid; gap: 9px; }
.price-includes li { display: flex; gap: 10px; align-items: start; font-size: 14px; color: #3a3a40; }
.price-includes li::before { content: ""; width: 14px; height: 14px; flex: none; margin-top: 3px; border-radius: 50%; background: var(--rosa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 9px no-repeat; }
.bank-slip-benefit { display: flex; gap: 12px; align-items: center; margin-top: 16px; background: #f5f2ef; border-radius: 14px; padding: 12px 14px; font-size: 12.5px; color: #3a3a40; }
.bank-slip-benefit i { width: 28px; height: 20px; border: 1.5px solid #3a3a40; border-radius: 4px; flex: none; position: relative; }
.bank-slip-benefit i::after { content: ""; position: absolute; left: 5px; right: 5px; top: 5px; height: 1.5px; background: #3a3a40; box-shadow: 0 4px 0 #3a3a40; }
.bank-slip-benefit strong { display: block; font-size: 13px; color: var(--tinta); }
.payment-chooser { margin-top: auto; padding-top: 22px; }
.payment-chooser summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--tinta); color: #fff; border-radius: 999px; padding: 16px 22px; font-weight: 600; font-size: 14px; transition: background .25s, transform .25s; }
.payment-chooser summary::-webkit-details-marker { display: none; }
.payment-chooser summary:hover { background: #000; }
.payment-chooser summary span { transition: transform .35s var(--ease); display: inline-block; }
.payment-chooser[open] summary span { transform: rotate(180deg); }
.price-card-featured .payment-chooser summary { background: var(--rosa); box-shadow: 0 16px 36px -16px rgba(255,0,120,.8); }
.price-card-featured .payment-chooser summary:hover { background: var(--rosa2); }
.payment-panel { display: grid; gap: 10px; padding-top: 16px; }
.payment-panel > p { font-size: 13px; color: var(--tinta2); }
.coupon-field { display: grid; gap: 6px; }
.coupon-field label { font-size: 12.5px; color: var(--tinta2); }
.coupon-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.coupon-entry input { font: inherit; font-size: 14px; padding: 12px 14px; border: 1.5px solid var(--borda); border-radius: 14px; background: #fff; color: var(--tinta); min-width: 0; text-transform: uppercase; }
.coupon-entry input:focus { outline: none; border-color: var(--tinta); }
.coupon-entry button { font: inherit; font-size: 13px; font-weight: 600; padding: 12px 16px; border-radius: 14px; border: 1.5px solid var(--tinta); background: #fff; color: var(--tinta); cursor: pointer; }
.coupon-entry button:hover { background: var(--tinta); color: #fff; }
[data-coupon-message] { font-size: 12px; color: var(--tinta2); }
.payment-button { display: flex; align-items: center; justify-content: space-between; gap: 14px; text-decoration: none; border: 1.5px solid var(--borda); border-radius: 16px; padding: 13px 16px; color: var(--tinta); transition: border-color .25s, background .25s, transform .25s; }
.payment-button:hover { border-color: var(--tinta); transform: translateY(-1px); }
.payment-button-label { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.payment-button small { font-size: 12px; color: var(--tinta2); text-align: right; }
.payment-icon { width: 30px; height: 22px; border-radius: 6px; display: inline-block; flex: none; }
.payment-icon-card { background: linear-gradient(135deg, #1c1c1e, #45454c); position: relative; }
.payment-icon-card::after { content: ""; position: absolute; left: 0; right: 0; top: 6px; height: 4px; background: #fff; opacity: .9; }
.payment-icon-pix { background: #32bcad url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 3.5 7.6 7.9h1.6c.6 0 1.2.2 1.6.7L12 9.7l1.2-1.1c.4-.5 1-.7 1.6-.7h1.6L12 3.5zm0 17 4.4-4.4h-1.6c-.6 0-1.2-.2-1.6-.7L12 14.3l-1.2 1.1c-.4.5-1 .7-1.6.7H7.6L12 20.5zM3.5 12l2.9 2.9h1.5c.3 0 .5-.1.7-.3l2.1-2.1c.4-.4 1-.4 1.4 0l2.1 2.1c.2.2.4.3.7.3h1.5l2.9-2.9-2.9-2.9h-1.5c-.3 0-.5.1-.7.3l-2.1 2.1c-.4.4-1 .4-1.4 0L8.6 9.4c-.2-.2-.4-.3-.7-.3H6.4L3.5 12z'/%3E%3C/svg%3E") center / 18px no-repeat; }
.payment-icon-bank-slip { background: #fff; border: 1.5px solid var(--tinta); background-image: repeating-linear-gradient(90deg, var(--tinta) 0 2px, transparent 2px 5px); background-size: 18px 12px; background-position: center; background-repeat: no-repeat; }
/* 12/10 · aviso de campanha na página de planos (link do Desafio 90 Dias) */
.ph-aviso-campanha { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 22px; padding: 16px 20px; border: 1px solid rgba(255,0,120,.3); border-radius: var(--raio-p); background: linear-gradient(180deg, rgba(255,0,120,.1), rgba(255,0,120,.04)); color: var(--ink); font-size: 14.5px; line-height: 1.5; }
.ph-aviso-campanha b { font-family: var(--mono); font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--rosa); }
.ph-secao-clara .ph-aviso-campanha { color: var(--tinta); border-color: rgba(255,0,120,.26); }

/* tabela do que entra */
.ph-matriz { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.ph-matriz th, .ph-matriz td { padding: 16px 14px; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: middle; }
.ph-matriz th { font-family: var(--mono); font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--mudo); font-weight: 500; }
.ph-matriz th:not(:first-child), .ph-matriz td:not(:first-child) { text-align: center; width: 17%; }
.ph-matriz td:first-child { color: var(--ink); }
.ph-matriz td:first-child small { display: block; color: var(--mudo); font-size: 12.5px; margin-top: 2px; }
/* 13/10: a coluna Presencial não é uma quarta escolha, é o que soma a qualquer uma. */
.ph-matriz th small { display: block; margin-top: 5px; font-family: var(--corpo); font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--mudo); }
.ph-matriz .sim, .ph-matriz .nao { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; }
.ph-matriz .sim { background: var(--rosa); color: #fff; }
.ph-matriz .sim::before { content: ""; width: 10px; height: 6px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: translateY(-1px) rotate(-45deg); }
.ph-matriz .nao { border: 1px solid var(--linha2); color: var(--mudo2); }
.ph-matriz .nao::before { content: ""; width: 10px; height: 1px; background: currentColor; }
.ph-matriz-rolagem { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
.ph-matriz-rolagem table { min-width: 680px; }
/* 11/10 · no celular a matriz sai da tela: primeira coluna fixa, borda desvanecida e aviso de arrastar */
.ph-matriz-aviso { display: none; align-items: center; justify-content: flex-end; gap: 8px; margin: 0 0 8px; color: var(--mudo); }
.ph-matriz-aviso span { width: 34px; height: 10px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 12' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2 6h42M38 2l6 4-6 4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 12' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M2 6h42M38 2l6 4-6 4'/%3E%3C/svg%3E") center / contain no-repeat; animation: ph-arrasta 2.4s var(--ease) infinite; }
@keyframes ph-arrasta { 0%, 100% { transform: translateX(0); opacity: .55; } 50% { transform: translateX(6px); opacity: 1; } }
@media (max-width: 860px) {
  .ph-matriz-aviso { display: flex; }
  .ph-matriz-rolagem { -webkit-mask-image: linear-gradient(90deg, #000 85%, rgba(0,0,0,.25) 100%); mask-image: linear-gradient(90deg, #000 85%, rgba(0,0,0,.25) 100%); }
  .ph-matriz th:first-child, .ph-matriz td:first-child { position: sticky; left: 0; z-index: 2; background: var(--bg); box-shadow: 14px 0 14px -14px rgba(0,0,0,.9); }
  .ph-secao-clara .ph-matriz th:first-child, .ph-secao-clara .ph-matriz td:first-child { background: var(--papel2); }
  .ph-matriz th:not(:first-child), .ph-matriz td:not(:first-child) { scroll-snap-align: center; }
  .ph-matriz th, .ph-matriz td { padding: 14px 12px; }
}
/* passos do processo */
.ph-passos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; counter-reset: passo; }
.ph-passo { border-top: 1px solid var(--linha2); padding-top: 18px; display: grid; gap: 10px; position: relative; }
.ph-passo::before { counter-increment: passo; content: "0" counter(passo); font-family: var(--mono); font-size: 11px; letter-spacing: .3em; color: var(--rosa); }
.ph-passo h3 { font-size: 22px; }
.ph-passo p { color: var(--ink2); font-size: 14.5px; }
.ph-secao-clara .ph-passo { border-color: #d6cfca; }
.ph-secao-clara .ph-passo p { color: #4b4b52; }
.ph-passos-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* app: telas */
.ph-app { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px clamp(40px, 6vw, 90px); align-items: center; }
.ph-telas { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: end; }
.ph-tela { border-radius: 30px; overflow: hidden; border: 1px solid var(--linha2); background: var(--bg3); box-shadow: 0 50px 90px -50px rgba(0,0,0,1); }
.ph-tela:first-child { transform: translateY(40px); }
.ph-tela img { width: 100%; }
.ph-lista-app { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; }
.ph-lista-app li { font-size: 14.5px; color: var(--ink2); display: flex; gap: 10px; align-items: start; }
.ph-lista-app li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--rosa); flex: none; margin-top: 8px; }
.ph-lojas { display: flex; flex-wrap: wrap; gap: 10px; }
.ph-lojas a { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--linha2); border-radius: 14px; padding: 10px 16px; text-decoration: none; font-size: 13px; color: var(--ink); transition: border-color .25s, background .25s; }
.ph-lojas a:hover { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.05); }

/* resultados: antes e depois */
.ph-resultados { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ph-resultado { position: relative; border-radius: 22px; overflow: hidden; background: var(--bg3); border: 1px solid var(--linha); aspect-ratio: 4 / 5; cursor: zoom-in; transition: transform .5s var(--ease); }
.ph-resultado:hover { transform: translateY(-3px); }
.ph-resultado img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
.ph-resultado figcaption { position: absolute; left: 14px; bottom: 12px; font-family: var(--mono); font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: #fff; text-shadow: 0 1px 10px rgba(0,0,0,.7); }
.ph-resultado button { position: absolute; inset: 0; width: 100%; height: 100%; background: transparent; border: 0; cursor: zoom-in; }
.ph-mais { display: flex; justify-content: center; margin-top: 28px; }
.ph-resultado[hidden] { display: none; }

/* avaliações do Google (trustindex) dentro do layout */
.ph-google { border: 1px solid var(--linha); border-radius: var(--raio); padding: clamp(18px, 3vw, 32px); background: rgba(255,255,255,.02); overflow: hidden; }
.ph-google .ti-widget, .ph-google .ti-widget * { color: inherit; }
.ph-google-topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 14px; margin-bottom: 18px; }
.ph-google-nota { display: flex; align-items: center; gap: 14px; }
.ph-google-nota strong { font-family: var(--disp); font-weight: 300; font-size: 44px; line-height: 1; }
.ph-google-estrelas { display: flex; gap: 3px; }
.ph-google-estrelas svg { width: 18px; height: 18px; fill: #ffb400; }
.ph-google-nota span { font-size: 13px; color: var(--mudo); display: block; }

/* galeria de eventos */
.ph-eventos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.ph-evento { position: relative; display: block; text-decoration: none; border-radius: var(--raio); overflow: hidden; aspect-ratio: 16 / 11; background: var(--bg3); isolation: isolate; }
.ph-evento img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 35%); transition: transform 1.4s var(--ease), filter .6s; filter: saturate(.8); }
.ph-evento:hover img { transform: scale(1.05); filter: saturate(1); }
.ph-evento::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,6,6,.1) 30%, rgba(6,6,6,.85)); }
.ph-evento-txt { position: absolute; left: 24px; right: 24px; bottom: 22px; z-index: 1; display: grid; gap: 6px; }
.ph-evento-txt .ph-rotulo { color: rgba(255,255,255,.7); }
.ph-evento-txt strong { font-family: var(--disp); font-weight: 300; font-size: clamp(24px, 2.8vw, 36px); line-height: 1.05; letter-spacing: -.02em; }
.ph-evento-txt span { font-size: 13.5px; color: rgba(255,255,255,.75); }
/* 13/10: apoio da Solito na página da caminhada. Claro, limpo, com a marca deles respeitada. */
.ph-solito { border: 1px solid var(--linha); border-radius: var(--raio); background: var(--papel); color: var(--tinta); padding: clamp(24px, 4vw, 44px); display: grid; gap: clamp(22px, 3vw, 32px); }
.ph-solito-topo { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 48px); align-items: center; }
.ph-solito-logo { width: min(260px, 100%); height: auto; }
.ph-solito-pergunta .ph-rotulo { color: var(--rosa); }
.ph-solito-pergunta .ph-h3 { color: var(--tinta); margin: 6px 0 16px; }
.ph-solito-botoes { display: flex; flex-wrap: wrap; gap: 10px; }
.ph-solito .ph-btn-escuro { background: var(--tinta); }
.ph-solito .ph-btn-fio { border-color: rgba(17,17,19,.25); color: var(--tinta); }
.ph-solito-painel { display: grid; gap: clamp(20px, 3vw, 30px); border-top: 1px solid var(--borda); padding-top: clamp(20px, 3vw, 30px); }
.ph-solito-painel .ph-texto { color: var(--tinta2); max-width: 72ch; }
.ph-solito-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ph-solito-item { margin: 0; display: grid; gap: 10px; justify-items: center; text-align: center; background: var(--papel2); border-radius: var(--raio-p); padding: 18px 12px; }
.ph-solito-item img { height: 150px; width: auto; object-fit: contain; }
.ph-solito-item strong { display: block; font-size: 15px; color: var(--tinta); }
.ph-solito-item span { display: block; font-size: 13px; color: var(--tinta2); margin-top: 2px; }
.ph-solito-nota { background: var(--papel2); border-radius: var(--raio-p); padding: 20px 22px; }
.ph-solito-nota .ph-rotulo { color: var(--tinta2); }
.ph-solito-nota .ph-texto { margin-top: 8px; }
.ph-solito-performa { display: flex; align-items: center; gap: 18px; border-top: 1px solid var(--borda); padding-top: 20px; }
.ph-solito-performa img { width: 92px; height: auto; filter: invert(1) brightness(.35); }
.ph-solito-performa p { font-size: 14px; color: var(--tinta2); margin: 0; }
.ph-solito-performa a { color: var(--tinta); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 860px) {
  .ph-solito-topo { grid-template-columns: 1fr; }
  .ph-solito-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ph-solito-performa { flex-direction: column; align-items: flex-start; gap: 12px; }
}
.ph-baiuca { margin-top: 18px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--papel); color: var(--tinta); padding: clamp(20px, 3vw, 30px); display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: clamp(18px, 3vw, 34px); align-items: center; }
.ph-baiuca-logo { width: 100%; height: auto; border-radius: var(--raio-p); }
.ph-baiuca-txt .ph-rotulo { color: var(--tinta2); }
.ph-baiuca-txt .ph-h3 { color: var(--tinta); margin: 6px 0 8px; }
.ph-baiuca-txt .ph-texto { color: var(--tinta2); max-width: 62ch; }
.ph-baiuca-txt .ph-acoes { margin-top: 16px; }
.ph-baiuca .ph-btn-fio { border-color: rgba(17,17,19,.25); color: var(--tinta); }
@media (max-width: 860px) { .ph-baiuca { grid-template-columns: 1fr; justify-items: start; } .ph-baiuca-logo { width: 190px; } }
.ph-liberado { margin-top: 26px; display: grid; justify-items: start; gap: 10px; padding: clamp(20px, 3vw, 28px); border-radius: var(--raio); border: 1px solid rgba(255,0,120,.3); background: linear-gradient(140deg, rgba(255,0,120,.1), rgba(255,255,255,.03)); }
.ph-liberado .ph-texto { max-width: 66ch; }
.ph-liberado-extra { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 6px; }
.ph-indicar-msg { width: 100%; margin: 0; font-size: 13px; color: var(--mudo); }
/* 13/10: caixa que pede o contato na hora de baixar, e a chamada curta no lugar do formulário solto. */
.ph-liberar-chamada { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding: clamp(18px, 3vw, 26px); border-radius: var(--raio); border: 1px solid rgba(255,0,120,.3); background: linear-gradient(140deg, rgba(255,0,120,.12), rgba(255,255,255,.03)); }
.ph-liberar-chamada .ph-h3 { margin-top: 6px; max-width: 34ch; }
.ph-popup-liberar .ph-popup-caixa { max-width: 460px; text-align: left; display: grid; gap: 14px; color: var(--tinta); }
/* a caixa é clara: todo texto dentro dela tem que ser escuro */
.ph-popup-liberar h3 { color: var(--tinta); }
.ph-popup-liberar .ph-campo label, .ph-popup-liberar .ph-campo-titulo { color: var(--tinta2); }
.ph-popup-liberar .ph-campo input { background: #fff; color: var(--tinta); border: 1px solid var(--borda); }
.ph-popup-liberar .ph-campo input::placeholder { color: #9b958f; }
.ph-popup-liberar .ph-escolhas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ph-popup-liberar .ph-escolhas label { font-size: 13.5px; padding: 10px 12px; color: var(--tinta); border-color: rgba(17,17,19,.18); white-space: nowrap; justify-content: flex-start; }
.ph-popup-liberar .ph-escolhas label:has(input:checked) { border-color: var(--rosa); background: rgba(255,0,120,.1); }
.ph-popup-liberar .ph-privacidade { font-size: 12px; color: var(--tinta2); margin: 0; }
.ph-popup-liberar .ph-popup-fechar { color: var(--tinta2); }
.ph-popup-liberar .ph-form-msg { color: var(--tinta2); }
@media (max-width: 520px) { .ph-popup-liberar .ph-escolhas { grid-template-columns: 1fr; } }
/* o botão de limpar a busca vive num cartão escuro */
.ph-rosto .ph-btn-fio { color: var(--ink); border-color: rgba(255,255,255,.32); }
/* botão de verdade (button) não herda a cor como o link herda: sem isto some no fundo escuro */
button.ph-btn-fio, button.ph-btn-vidro { color: var(--ink); }
/* 13/10: faixa discreta de apoio no topo da galeria, clicável, leva ao bloco dos patrocinadores. */
/* 13/10 (Pabulo): faixa do topo da galeria. Desafio e marcas no mesmo lugar, cada um chamando o clique. */
.ph-faixa-topo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 20px; }
.ph-faixa-cartao { display: grid; place-items: center; align-content: center; gap: 9px; min-height: 92px; padding: 16px 14px; border-radius: 18px; text-decoration: none; color: var(--ink); border: 1px solid var(--linha); background: rgba(255,255,255,.04); text-align: center; transition: background .3s, border-color .3s, transform .4s var(--ease); }
.ph-faixa-cartao:hover { background: rgba(255,255,255,.08); border-color: var(--linha2); transform: translateY(-2px); }
.ph-faixa-cartao img { height: 34px; width: auto; max-width: 78%; object-fit: contain; }
.ph-faixa-cartao .ph-faixa-baiuca { height: 42px; border-radius: 8px; }
.ph-faixa-txt { display: grid; gap: 5px; justify-items: center; }
.ph-faixa-txt strong { font-family: var(--disp); font-weight: 300; font-size: clamp(15px, 2vw, 19px); line-height: 1.25; letter-spacing: -.01em; max-width: 26ch; }
.ph-faixa-txt small { display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono); font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--rosa); }
.ph-faixa-txt small i { width: 6px; height: 6px; border-right: 1.4px solid currentColor; border-top: 1.4px solid currentColor; transform: rotate(45deg); }
.ph-faixa-desafio { grid-column: 1 / -1; grid-template-columns: auto 1fr; justify-items: start; text-align: left; gap: 16px; padding: 18px 20px; border-color: rgba(232,78,138,.34); background: linear-gradient(100deg, rgba(232,78,138,.16), rgba(255,255,255,.03) 64%); }
.ph-faixa-desafio:hover { border-color: rgba(232,78,138,.7); background: linear-gradient(100deg, rgba(232,78,138,.24), rgba(255,255,255,.05) 64%); }
.ph-faixa-desafio .ph-faixa-logo { height: 46px; max-width: none; }
.ph-faixa-desafio .ph-faixa-txt { justify-items: start; }
@media (max-width: 560px) {
  .ph-faixa-desafio { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 12px; padding: 18px 16px; }
  .ph-faixa-desafio .ph-faixa-txt { justify-items: center; }
  .ph-faixa-desafio .ph-faixa-logo { height: 40px; }
  .ph-faixa-cartao { min-height: 84px; padding: 14px 10px; }
  .ph-faixa-cartao img { height: 28px; }
  .ph-faixa-cartao .ph-faixa-baiuca { height: 36px; }
  .ph-faixa-txt small { font-size: 8.5px; letter-spacing: .14em; }
}

/* convite no meio das fotos: a pessoa rola foto sem fim, o convite vai junto.
   13/10: a altura manda no texto, não na foto; a foto fica atrás, cobrindo o cartão. */
.ph-mosaico-convite { position: relative; display: block; margin: 0 0 14px; break-inside: avoid; border-radius: 18px; overflow: hidden; text-decoration: none; color: #fff; border: 1px solid rgba(232,78,138,.45); background: var(--bg3); }
.ph-mosaico-convite .ph-convite-fundo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .32; transition: opacity .6s var(--ease), transform 1.2s var(--ease); }
.ph-mosaico-convite:hover .ph-convite-fundo { opacity: .44; transform: scale(1.04); }
.ph-convite-sobre { position: relative; z-index: 1; display: grid; align-content: center; justify-items: center; gap: 12px; min-height: 300px; padding: 28px 18px; text-align: center; background: linear-gradient(180deg, rgba(6,6,6,.58), rgba(6,6,6,.84)); }
.ph-convite-sobre img { height: 42px; width: auto; max-width: 70%; object-fit: contain; }
.ph-convite-sobre strong { font-family: var(--disp); font-weight: 300; font-size: clamp(16px, 2.3vw, 21px); line-height: 1.26; max-width: 18ch; }
.ph-convite-sobre em { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; font-style: normal; font-family: var(--mono); font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; color: #fff; border: 1px solid var(--rosa); background: var(--rosa); border-radius: 999px; padding: 10px 16px; }
.ph-convite-sobre em i { flex: none; width: 6px; height: 6px; border-right: 1.4px solid currentColor; border-top: 1.4px solid currentColor; transform: rotate(45deg); }
@media (max-width: 560px) {
  .ph-convite-sobre { min-height: 250px; padding: 22px 14px; gap: 10px; }
  .ph-convite-sobre img { height: 34px; }
  .ph-convite-sobre em { font-size: 9px; letter-spacing: .1em; padding: 9px 13px; }
}
/* 13/10: busca por rosto na galeria do evento. */
.ph-rosto { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr); gap: clamp(18px, 3vw, 36px); align-items: center; margin-bottom: clamp(22px, 3vw, 32px); padding: clamp(20px, 3vw, 30px); border-radius: var(--raio); border: 1px solid var(--linha2); background: linear-gradient(140deg, rgba(255,0,120,.1), rgba(255,255,255,.04)); }
.ph-rosto .ph-h3 { margin: 6px 0 10px; }
.ph-rosto .ph-texto { font-size: 14.5px; color: var(--ink2); max-width: 64ch; }
.ph-rosto-acao { display: grid; justify-items: start; gap: 10px; }
.ph-rosto-acao label { cursor: pointer; }
.ph-rosto-msg { font-size: 13.5px; color: var(--mudo); margin: 0; min-height: 1.2em; }
@media (max-width: 860px) { .ph-rosto { grid-template-columns: 1fr; } }
/* 13/10: convite do Desafio 90 Dias logo depois das fotos, com uma foto do dia. */
.ph-desafio-cartao { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 3vw, 40px); align-items: center; padding: clamp(20px, 3vw, 32px); border-radius: var(--raio); border: 1px solid rgba(255,0,120,.32); background: linear-gradient(140deg, rgba(255,0,120,.12), rgba(255,255,255,.03)); }
.ph-desafio-foto { border-radius: var(--raio-p); overflow: hidden; aspect-ratio: 4 / 3; }
.ph-desafio-foto img { width: 100%; height: 100%; object-fit: cover; }
.ph-desafio-txt { display: grid; justify-items: start; gap: 14px; }
.ph-desafio-logo { width: clamp(170px, 22vw, 230px); height: auto; }
.ph-desafio-passado { font-size: 14px; color: var(--mudo); }
.ph-evolucoes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ph-evolucoes figure { margin: 0; border-radius: var(--raio-p); overflow: hidden; background: var(--bg3); }
.ph-evolucoes img { width: 100%; height: 100%; object-fit: cover; display: block; aspect-ratio: 4 / 5; }
@media (max-width: 860px) { .ph-evolucoes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.ph-desafio-txt .ph-texto { max-width: 60ch; }
.ph-campo-escolha { display: grid; gap: 8px; }
.ph-campo-titulo { font-size: 13px; color: var(--mudo); }
.ph-escolhas { display: flex; flex-wrap: wrap; gap: 8px; }
.ph-escolhas label { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--linha2); border-radius: 999px; font-size: 13.5px; cursor: pointer; transition: border-color .2s, background .2s; }
.ph-escolhas label:has(input:checked) { border-color: var(--rosa); background: rgba(255,0,120,.12); }
.ph-escolhas input { accent-color: var(--rosa); }
@media (max-width: 860px) { .ph-desafio-cartao { grid-template-columns: 1fr; } }
.ph-evento-selo { position: absolute; top: 18px; left: 18px; z-index: 1; font-family: var(--mono); font-size: 10px; letter-spacing: .24em; text-transform: uppercase; background: rgba(6,6,6,.55); border: 1px solid rgba(255,255,255,.2); padding: 7px 12px; border-radius: 999px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.ph-evento-selo.is-breve { background: rgba(255,0,120,.85); border-color: transparent; }
.ph-evento-principal { grid-column: 1 / -1; aspect-ratio: 21 / 9; }
.ph-mosaico { columns: 3; column-gap: 14px; }
.ph-mosaico figure { margin: 0 0 14px; break-inside: avoid; border-radius: 18px; overflow: hidden; background: var(--bg3); position: relative; cursor: zoom-in; }
.ph-mosaico img { width: 100%; display: block; transition: transform 1.2s var(--ease); }
.ph-mosaico figure:hover img { transform: scale(1.04); }
.ph-mosaico figure.is-trancada img { filter: blur(14px) saturate(.6) brightness(.6); transform: scale(1.1); }
.ph-mosaico figure.is-trancada::after { content: ""; position: absolute; inset: 0; background: rgba(6,6,6,.35); }
.ph-mosaico .ph-cadeado { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; z-index: 1; font-family: var(--mono); font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; text-align: center; gap: 8px; padding: 20px; }
.ph-mosaico .ph-cadeado svg { width: 26px; height: 26px; stroke: #fff; fill: none; stroke-width: 1.4; }
.ph-galeria-trava { position: relative; }
.ph-galeria-trava.is-trancada { max-height: 1100px; overflow: hidden; }
.ph-galeria-trava.is-trancada::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 420px; background: linear-gradient(180deg, transparent, var(--bg) 70%); pointer-events: none; }
.ph-liberar { position: relative; z-index: 2; margin-top: -260px; display: grid; justify-items: center; gap: 18px; text-align: center; }
.ph-liberar .ph-cartao { max-width: 520px; width: 100%; text-align: left; padding: 30px; gap: 12px; }
.ph-liberar .ph-cartao .ph-h3 { font-size: 26px; }
.ph-campo { display: grid; gap: 6px; }
.ph-campo label { font-size: 12.5px; color: var(--tinta2); font-weight: 500; }
.ph-campo input { font: inherit; font-size: 16px; padding: 14px 16px; border: 1.5px solid var(--borda); border-radius: 14px; background: #fff; color: var(--tinta); min-width: 0; width: 100%; transition: border-color .25s; }
.ph-campo input:focus { outline: none; border-color: var(--tinta); }
.ph-form-msg { font-size: 13px; color: var(--rosa-escuro); min-height: 1em; }
.ph-form-msg.is-ok { color: #0a7a46; }
.ph-privacidade { font-size: 12px; color: #8a8a90; line-height: 1.5; }
.ph-baixar { position: absolute; left: 12px; bottom: 12px; z-index: 2; display: grid; place-items: center; width: 38px; height: 38px; background: rgba(6,6,6,.58); color: #fff; border: 1px solid rgba(255,255,255,.26); border-radius: 50%; font-size: 15px; line-height: 1; text-decoration: none; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: 0; transition: opacity .3s, background .25s; }
.ph-baixar:hover { background: rgba(6,6,6,.85); }
.ph-mosaico figure:hover .ph-baixar { opacity: 1; }
@media (hover: none) { .ph-baixar { opacity: 1; } }

/* lightbox (13/10, Pabulo: topo convida, base resolve, Avance no cantinho) */
.ph-lightbox { position: fixed; inset: 0; z-index: 500; background: rgba(6,6,6,.95); display: none; align-items: center; justify-content: center; padding: clamp(78px, 11vh, 104px) 18px clamp(104px, 15vh, 128px); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.ph-lightbox.is-aberto { display: flex; }
.ph-lightbox.is-aberto > img { max-width: min(96vw, 1400px); max-height: 100%; object-fit: contain; border-radius: 16px; box-shadow: 0 50px 120px -40px #000; animation: ph-zoom .45s var(--ease-out); }
@keyframes ph-zoom { from { opacity: 0; transform: scale(.96); } }
.ph-lightbox button { appearance: none; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.07); color: #fff; border-radius: 999px; cursor: pointer; font-family: inherit; transition: background .25s, border-color .25s; }
.ph-lightbox button:hover { background: rgba(255,255,255,.16); }

/* topo: convite do Desafio 90 Dias + fechar */
.ph-lb-topo { position: absolute; top: 0; left: 0; right: 0; z-index: 3; display: flex; align-items: center; justify-content: center; padding: calc(14px + env(safe-area-inset-top)) 74px 14px; }
.ph-lb-desafio { display: inline-flex; align-items: center; gap: 11px; min-width: 0; max-width: 100%; padding: 8px 14px 8px 11px; border-radius: 999px; text-decoration: none; color: #fff; border: 1px solid rgba(255,255,255,.17); background: linear-gradient(100deg, rgba(232,78,138,.22), rgba(255,255,255,.05) 62%); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); transition: border-color .25s, background .25s, transform .3s var(--ease); }
.ph-lb-desafio:hover { border-color: rgba(232,78,138,.6); transform: translateY(-1px); }
.ph-lb-desafio > img { height: 26px; width: auto; flex: none; }
.ph-lb-desafio-txt { display: grid; min-width: 0; }
.ph-lb-desafio-txt strong { font-size: 13.5px; font-weight: 600; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph-lb-desafio-txt small { font-family: var(--mono); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.62); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ph-lb-seta { flex: none; width: 7px; height: 7px; border-right: 1.5px solid var(--rosa); border-top: 1.5px solid var(--rosa); transform: rotate(45deg); margin-left: 2px; }
.ph-lightbox .ph-lightbox-fechar { position: absolute; right: 16px; top: calc(14px + env(safe-area-inset-top)); flex: none; width: 46px; height: 46px; display: grid; place-items: center; font-size: 24px; line-height: 1; background: rgba(6,6,6,.55); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }

/* setas */
.ph-lightbox .ph-lightbox-ant, .ph-lightbox .ph-lightbox-prox { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; display: grid; place-items: center; font-size: 22px; line-height: 1; z-index: 2; background: rgba(6,6,6,.5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.ph-lightbox .ph-lightbox-ant { left: 12px; }
.ph-lightbox .ph-lightbox-prox { right: 12px; }

/* base: uma barra só, que não quebra */
.ph-lb-base { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; display: grid; justify-items: center; gap: 10px; padding: 12px 14px calc(16px + env(safe-area-inset-bottom)); }
.ph-lightbox-legenda { font-family: var(--mono); font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.5); }
.ph-lightbox-barra { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 999px; border: 1px solid rgba(255,255,255,.14); background: rgba(6,6,6,.78); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); max-width: calc(100vw - 20px); }
.ph-lightbox .ph-lb-acao { display: inline-flex; align-items: center; gap: 7px; flex: none; height: 38px; padding: 0 15px; border-radius: 999px; border: 1px solid rgba(255,255,255,.26); background: rgba(255,255,255,.06); color: #fff; font-family: var(--mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background .25s, border-color .25s; }
.ph-lightbox .ph-lb-acao:hover { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.45); }
.ph-lightbox .ph-lb-acao-forte { background: var(--rosa); border-color: var(--rosa); color: #fff; }
.ph-lightbox .ph-lb-acao-forte:hover { background: #f05a9b; border-color: #f05a9b; }
.ph-lb-acao svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.ph-lb-fio { flex: none; width: 1px; height: 22px; background: rgba(255,255,255,.16); margin: 0 1px; }
.ph-lightbox .ph-lb-rede { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.05); color: rgba(255,255,255,.9); transition: background .25s, border-color .25s, color .25s; }
.ph-lb-rede svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ph-lightbox .ph-lb-rede:hover { background: rgba(232,78,138,.2); border-color: rgba(232,78,138,.65); color: #fff; }
.ph-lightbox .ph-lb-rede-av { color: #efe6d4; border-color: rgba(214,190,140,.4); }
.ph-lightbox .ph-lb-rede-av:hover { background: rgba(214,190,140,.2); border-color: rgba(214,190,140,.8); color: #fff; }
.ph-lightbox .ph-lb-rede-wa { color: #a9ecbf; border-color: rgba(37,211,102,.34); }
.ph-lightbox .ph-lb-rede-wa:hover { background: rgba(37,211,102,.2); border-color: rgba(37,211,102,.75); color: #fff; }

/* Avance: assinatura centralizada embaixo da barra, com ar em volta */
.ph-lb-avance { display: block; opacity: .45; transition: opacity .25s; }
.ph-lb-avance:hover { opacity: .9; }
.ph-lightbox .ph-lb-avance img { height: 15px; width: auto; display: block; }

/* menu de compartilhar, por cima da foto */
.ph-compartilha { position: absolute; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom)); transform: translateX(-50%); width: min(420px, calc(100vw - 32px)); display: grid; gap: 8px; padding: 18px; border-radius: var(--raio); border: 1px solid rgba(255,255,255,.16); background: rgba(12,12,14,.97); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); z-index: 4; }
.ph-compartilha .ph-rotulo { color: var(--mudo); margin-bottom: 2px; }
.ph-lightbox .ph-compartilha button { width: 100%; display: grid; gap: 2px; text-align: left; justify-items: start; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--linha2); background: rgba(255,255,255,.04); color: var(--ink); font-size: 15px; font-weight: 600; cursor: pointer; }
.ph-lightbox .ph-compartilha button:hover { background: rgba(255,255,255,.1); }
.ph-perfis-folha a { display: grid; gap: 2px; padding: 12px 14px; border-radius: 16px; border: 1px solid var(--linha2); background: rgba(255,255,255,.04); color: var(--ink); text-decoration: none; transition: background .25s; }
.ph-perfis-folha a:hover { background: rgba(255,255,255,.1); }
.ph-perfis-folha a span { font-size: 15px; font-weight: 600; }
.ph-perfis-folha a small { font-size: 12.5px; color: var(--mudo); }
.ph-lightbox .ph-compartilha button small { font-weight: 400; font-size: 12.5px; color: var(--mudo); }
.ph-lightbox .ph-compartilha .ph-compartilha-fechar { justify-items: center; text-align: center; border: 0; background: none; color: var(--mudo); font-size: 13px; font-weight: 500; padding: 8px; }

@media (max-width: 560px) {
  .ph-lightbox { padding: clamp(70px, 10vh, 86px) 10px 112px; }
  .ph-lb-topo { padding: calc(10px + env(safe-area-inset-top)) 52px 10px; }
  .ph-lb-desafio { padding: 7px 12px 7px 9px; gap: 9px; max-width: 100%; }
  .ph-lb-desafio > img { height: 22px; }
  .ph-lb-desafio-txt strong { font-size: 12.5px; }
  .ph-lb-desafio-txt small { font-size: 8.5px; letter-spacing: .14em; }
  .ph-lightbox .ph-lightbox-fechar { right: 12px; top: calc(10px + env(safe-area-inset-top)); width: 40px; height: 40px; font-size: 21px; }
  .ph-lightbox .ph-lightbox-ant, .ph-lightbox .ph-lightbox-prox { width: 38px; height: 38px; font-size: 19px; }
  .ph-lightbox .ph-lightbox-ant { left: 8px; } .ph-lightbox .ph-lightbox-prox { right: 8px; }
  .ph-lightbox-barra { gap: 5px; padding: 6px 6px; }
  .ph-lightbox .ph-lb-acao { height: 36px; padding: 0 11px; font-size: 9px; letter-spacing: .07em; gap: 5px; }
  .ph-lb-acao svg { width: 13px; height: 13px; }
  .ph-lightbox .ph-lb-rede { width: 34px; height: 34px; }
  .ph-lb-rede svg { width: 16px; height: 16px; }
  .ph-lb-fio { height: 20px; margin: 0; }
  .ph-lightbox .ph-lb-avance img { height: 13px; }
  .ph-lb-base { padding-bottom: calc(16px + env(safe-area-inset-bottom)); gap: 9px; }
}

/* avance serviços */
.ph-servicos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ph-servico { border: 1px solid var(--linha); border-radius: 22px; padding: 22px 22px 20px; display: grid; gap: 10px; background: rgba(255,255,255,.025); transition: border-color .3s, background .3s, transform .4s var(--ease); }
.ph-servico:hover { border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.05); transform: translateY(-3px); }
.ph-servico .ph-rotulo { font-size: 10px; }
.ph-servico h3 { font-size: 22px; }
.ph-servico p { color: var(--ink2); font-size: 14.5px; }
.ph-servico ul { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 5px; font-size: 13px; color: var(--mudo); }
.ph-servico ul li::before { content: "·"; margin-right: 8px; color: var(--rosa); }
.ph-servico a { margin-top: 6px; font-size: 13px; }
.ph-selo-aluno { display: inline-flex; align-items: center; gap: 14px; border: 1px solid rgba(255,0,120,.5); border-radius: 999px; padding: 10px 18px 10px 12px; background: rgba(255,0,120,.08); }
.ph-selo-aluno strong { font-family: var(--disp); font-weight: 300; font-size: 30px; color: var(--rosa2); line-height: 1; }
.ph-selo-aluno span { font-size: 13px; color: var(--ink2); line-height: 1.3; }
.ph-mapa { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.ph-mapa iframe { width: 100%; height: 100%; min-height: 360px; border: 0; border-radius: var(--raio); filter: grayscale(1) invert(.92) contrast(.9); }
.ph-horarios { display: grid; gap: 8px; font-size: 14.5px; color: var(--ink2); }
.ph-horarios div { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--linha); padding: 10px 0; }
.ph-horarios div span:last-child { color: var(--ink); font-variant-numeric: tabular-nums; }
.ph-status { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink2); }
.ph-status i { width: 8px; height: 8px; border-radius: 50%; background: #2ecc71; box-shadow: 0 0 0 4px rgba(46,204,113,.18); }
.ph-status.is-fechado i { background: #e74c3c; box-shadow: 0 0 0 4px rgba(231,76,60,.18); }

/* vídeo do connecta */
.ph-video { position: relative; border-radius: var(--raio); overflow: hidden; aspect-ratio: 16 / 9; background: var(--bg3); cursor: pointer; isolation: isolate; }
.ph-video img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) brightness(.8); transition: transform 1.2s var(--ease); }
.ph-video:hover img { transform: scale(1.03); }
.ph-video-play { position: absolute; inset: 0; display: grid; place-items: center; z-index: 1; }
.ph-video-play span { width: 86px; height: 86px; border-radius: 50%; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); display: grid; place-items: center; transition: transform .4s var(--ease), background .3s; }
.ph-video:hover .ph-video-play span { transform: scale(1.08); background: rgba(255,0,120,.8); border-color: transparent; }
.ph-video-play span::after { content: ""; width: 0; height: 0; border-left: 20px solid #fff; border-top: 12px solid transparent; border-bottom: 12px solid transparent; margin-left: 5px; }
.ph-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ph-video.is-tocando .ph-video-play, .ph-video.is-tocando img { display: none; }

/* linha do tempo (história) */
.ph-tempo { display: grid; gap: 0; }
.ph-tempo-item { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 20px; padding: 26px 0; border-top: 1px solid var(--linha); }
.ph-tempo-item:last-child { border-bottom: 1px solid var(--linha); }
.ph-tempo-item b { font-family: var(--mono); font-weight: 500; font-size: 11px; letter-spacing: .3em; color: var(--rosa); padding-top: 8px; }
.ph-tempo-item h3 { font-size: 24px; margin-bottom: 8px; }
.ph-tempo-item p { color: var(--ink2); font-size: 15.5px; max-width: 56ch; }

/* citação */
.ph-citacao { font-family: var(--disp); font-weight: 200; font-size: clamp(28px, 4vw, 52px); line-height: 1.15; letter-spacing: -.02em; max-width: 24ch; }
.ph-citacao em { font-style: normal; color: var(--rosa2); }
.ph-assinatura { display: flex; align-items: center; gap: 14px; margin-top: 22px; }
.ph-assinatura img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; }
.ph-assinatura strong { display: block; font-size: 14px; }
.ph-assinatura span { font-size: 12.5px; color: var(--mudo); }

/* loja: destaque na home */
.ph-loja-destaque { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px 60px; align-items: center; border: 1px solid var(--linha2); border-radius: var(--raio); padding: clamp(24px, 4vw, 48px); background: linear-gradient(135deg, rgba(255,0,120,.1), rgba(255,255,255,.02) 60%); overflow: hidden; position: relative; }
.ph-loja-pecas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ph-loja-peca { border-radius: 22px; background: #fff; overflow: hidden; display: grid; }
.ph-loja-peca img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 10%; }
.ph-loja-peca div { padding: 12px 14px 14px; color: var(--tinta); display: grid; gap: 2px; }
.ph-loja-peca strong { font-size: 14.5px; font-weight: 600; }
.ph-loja-peca span { font-size: 12.5px; color: var(--rosa-escuro); font-weight: 600; }

/* pop-ups e avisos (padrão do app: botão nunca cortado, sem degradê) */
.ph-aviso { position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 350; background: var(--ink); color: var(--tinta); border-radius: 999px; padding: 12px 18px; font-size: 13.5px; font-weight: 600; box-shadow: 0 20px 50px -20px #000; opacity: 0; pointer-events: none; transition: opacity .3s, transform .3s; }
.ph-aviso.is-on { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(-4px); }

/* atalhos flutuantes do plugin (assistente + WhatsApp): menores e sem brigar com os botões do banner */
body.ph-body .pabulo-floating-actions { transform: scale(.88); transform-origin: bottom right; }
@media (max-width: 480px) { body.ph-body .pabulo-floating-actions { transform: scale(.8); } }

/* a palavra Avance em texto corrido leva ao site da Avance */
.ph a.ph-avance { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255,0,120,.6); transition: color .25s, border-color .25s; }
.ph a.ph-avance:hover { color: var(--rosa2); border-color: var(--rosa2); }
.ph-secao-clara a.ph-avance, .ph-cartao a.ph-avance { border-color: rgba(180,0,90,.5); }
/* página da Avance: tabela de valores e pacotes */
.ph-matriz-avance th:not(:first-child), .ph-matriz-avance td:not(:first-child) { width: 24%; }
.ph-matriz-rolagem .ph-matriz-avance { min-width: 0; }
.ph-preco-link { display: inline-grid; gap: 2px; text-decoration: none; color: var(--ink); justify-items: center; }
.ph-preco-link strong { font-family: var(--disp); font-weight: 300; font-size: 22px; letter-spacing: -.02em; }
.ph-preco-link small { font-size: 11px; color: var(--mudo); }
.ph-preco-link:hover strong { color: var(--rosa2); }
.ph-pacotes { display: grid; gap: 8px; }
.ph-pacote { display: flex; justify-content: space-between; align-items: center; gap: 16px; text-decoration: none; color: var(--ink); border: 1px solid var(--linha2); border-radius: 16px; padding: 13px 16px; transition: border-color .25s, background .25s, transform .3s var(--ease); }
.ph-pacote:hover { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.05); transform: translateX(3px); }
.ph-pacote span { font-size: 14.5px; }
.ph-pacote span small { color: var(--mudo); font-size: 12.5px; }
.ph-pacote strong { font-family: var(--disp); font-weight: 300; font-size: 20px; white-space: nowrap; letter-spacing: -.02em; }
.ph-area + .ph-area { border-top: 1px solid var(--linha); padding-top: clamp(36px, 5vw, 64px); }
@media (max-width: 860px) { .ph-area .ph-foto { position: static !important; } .ph-area .ph-duas-inv > :first-child { order: 0; } }

/* pop-up de saída (padrão dos pop-ups do app: cor sólida, botão inteiro, área segura, "Agora não") */
.ph-popup { position: fixed; inset: 0; z-index: 380; display: none; align-items: flex-end; justify-content: center; background: rgba(6,6,6,.78); padding: 0; }
.ph-popup.is-on { display: flex; }
.ph-popup-caixa { width: 100%; max-width: 520px; background: #fff; color: var(--tinta); border-radius: 28px 28px 0 0; padding: 26px 22px calc(22px + env(safe-area-inset-bottom)); display: grid; gap: 14px; animation: ph-sobe .45s var(--ease-out); max-height: 92svh; overflow-y: auto; }
@keyframes ph-sobe { from { transform: translateY(40px); opacity: 0; } }
.ph-popup-caixa .ph-rotulo { color: var(--rosa); }
.ph-popup-caixa h3 { font-size: 26px; line-height: 1.12; color: var(--tinta); }
.ph-popup-caixa p { font-size: 15px; line-height: 1.6; color: #4b4b52; }
.ph-popup-caixa .ph-btn { width: 100%; }
.ph-popup-fechar { appearance: none; background: transparent; border: 0; color: #8e8e93; font: inherit; font-size: 14px; font-weight: 600; padding: 10px; cursor: pointer; }
@media (min-width: 700px) { .ph-popup { align-items: center; padding: 20px; } .ph-popup-caixa { border-radius: 28px; padding: 32px 30px; } }

/* depoimentos */
.ph-depoimentos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ph-depo { position: relative; margin: 0; border-radius: 22px; overflow: hidden; background: var(--bg3); border: 1px solid var(--linha); aspect-ratio: 9 / 16; isolation: isolate; }
.ph-depo video, .ph-depo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ph-depo-print { cursor: zoom-in; }
.ph-depo figcaption { position: absolute; left: 14px; right: 14px; bottom: 12px; z-index: 2; color: #fff; text-shadow: 0 1px 12px rgba(0,0,0,.8); display: grid; gap: 2px; pointer-events: none; }
.ph-depo figcaption strong { font-size: 14px; font-weight: 600; }
.ph-depo figcaption p { font-size: 12.5px; color: rgba(255,255,255,.85); }
.ph-depo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(6,6,6,.8)); z-index: 1; pointer-events: none; }
.ph-depo.is-tocando::after, .ph-depo.is-tocando figcaption { display: none; }
.ph-depo-play { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; background: transparent; border: 0; cursor: pointer; display: grid; place-items: center; }
.ph-depo-play span { width: 64px; height: 64px; border-radius: 50%; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.4); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); display: grid; place-items: center; transition: transform .3s var(--ease), background .3s; }
.ph-depo-play span::after { content: ""; border-left: 16px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; margin-left: 4px; }
.ph-depo:hover .ph-depo-play span { transform: scale(1.06); background: rgba(255,0,120,.8); border-color: transparent; }
.ph-depo.is-tocando .ph-depo-play { display: none; }
@media (max-width: 1100px) { .ph-depoimentos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .ph-depoimentos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

/* selo do Google junto da escolha do plano */
.ph-google-selo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); border-bottom: 1px solid var(--linha); padding-bottom: 12px; margin-bottom: 4px; }
.ph-google-selo strong { font-size: 14px; font-weight: 600; }
.ph-google-selo > span:last-child { font-size: 12.5px; color: var(--mudo); }
.ph-google-selo .ph-google-estrelas svg { width: 18px; height: 18px; fill: #ffb400; }
/* barra fixa no celular (página de planos): aparece depois dos preços, some com o pop-up ou o menu */
.ph-barra-fixa { position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 340; display: none; align-items: center; justify-content: space-between; gap: 12px; background: #fff; color: var(--tinta); border-radius: 22px; padding: 12px 12px 12px 16px; box-shadow: 0 24px 60px -24px rgba(0,0,0,.9); transform: translateY(120%); transition: transform .45s var(--ease-out); }
.ph-barra-fixa div { display: grid; gap: 1px; min-width: 0; }
.ph-barra-fixa strong { font-size: 13.5px; }
.ph-barra-fixa span { font-size: 11.5px; color: #6e6e73; }
.ph-barra-fixa .ph-btn { flex: none; }
.ph-barra-fixa.is-on { transform: none; }
@media (max-width: 860px) { .ph-barra-fixa { display: flex; } body.ph-body .pabulo-floating-actions { transition: transform .3s; } html.ph-barra-visivel body.ph-body .pabulo-floating-actions { transform: translateY(-74px) scale(.8); } }

/* consentimento (banner do site.js) no visual novo */
body.ph-body .pabulo-consent { position: fixed; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 360; max-width: 520px; margin-inline: auto; background: #fff; color: var(--tinta); border-radius: 22px; padding: 18px 20px; box-shadow: 0 30px 70px -30px #000; font-size: 13.5px; display: grid; gap: 12px; box-sizing: border-box; }
body.ph-body .pabulo-consent strong { display: block; font-size: 14px; margin-bottom: 4px; }
body.ph-body .pabulo-consent-actions { display: flex; gap: 8px; flex-wrap: wrap; }
body.ph-body .pabulo-consent button { font: inherit; font-weight: 600; font-size: 13px; border-radius: 999px; padding: 10px 16px; cursor: pointer; border: 1.5px solid var(--tinta); background: var(--tinta); color: #fff; }
body.ph-body .pabulo-consent button[data-consent-reject] { background: #fff; color: var(--tinta); }

/* ----- responsivo ----- */
@media (max-width: 1100px) {
  .ph-topo-nav { display: none; }
  .ph-numeros, .ph-passos, .ph-passos-3, .ph-resultados { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ph-rodape-grade { grid-template-columns: 1fr 1fr; }
  .ph-rodape-marca { grid-column: 1 / -1; }
  .ph-menu-in { grid-template-columns: 1fr; }
  .ph-grade-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  :root { --topo-h: 66px; --raio: 24px; }
  .ph-topo-membros { display: none; }
  .ph-topo-cta { display: none; }
  .ph-topo-logo img { width: 112px; }
  .ph-cabeca, .ph-editorial, .ph-duas, .ph-app, .ph-planos-topo, .ph-mapa, .ph-loja-destaque { grid-template-columns: 1fr; }
  .ph-duas-inv > :first-child { order: 0; }
  .ph-cabeca .ph-lead { justify-self: start; }
  .ph-editorial-fixa { position: static; }
  .ph-grade-2, .ph-grade-3 { grid-template-columns: 1fr; }
  .ph-precos { grid-template-columns: 1fr; }
  .ph-eventos { grid-template-columns: 1fr; }
  .ph-evento, .ph-evento-principal { aspect-ratio: 4 / 3; }
  .ph-mosaico { columns: 2; column-gap: 10px; }
  .ph-mosaico figure { margin-bottom: 10px; }
  .ph-servicos { grid-template-columns: 1fr; }
  .ph-hero-in { padding-top: calc(var(--topo-h) + 36px); gap: 26px; }
  .ph-hero-base { gap: 18px; }
  .ph-hero-provas { gap: 18px 26px; }
  .ph-hero .ph-acoes .ph-btn { flex: 1 1 auto; }
  .ph-h2 { max-width: none; }
  .ph-diag { grid-template-columns: 1fr; }
  .ph-segmento { width: 100%; flex-direction: column; border-radius: 22px; }
  .ph-segmento button { width: 100%; padding: 13px 16px; font-size: 14px; justify-content: flex-start; white-space: normal; text-align: left; border-radius: 16px; }
  .ph-segmento button small { margin-left: auto; text-align: right; }
  .ph-telas { gap: 12px; }
  .ph-lista-app { grid-template-columns: 1fr; }
  .ph-tempo-item { grid-template-columns: 1fr; gap: 6px; }
  .ph-lista li { grid-template-columns: 40px minmax(0, 1fr); }
  .ph-marquee-trilho { animation-duration: 34s; }
}
@media (max-width: 600px) { .ph-passos, .ph-passos-3 { grid-template-columns: 1fr; } }
@media (max-width: 480px) {
  .ph-h1 { font-size: clamp(34px, 10.4vw, 44px); }
  .ph-h1-hero { font-size: clamp(27px, 7.8vw, 32px); }
  .ph-rotulo { font-size: 10px; letter-spacing: .2em; }
  .ph-lead { font-size: 16px; }
  .ph-foto-legenda { flex-direction: column; align-items: flex-start; gap: 4px; }
  .ph-numeros { grid-template-columns: 1fr 1fr; gap: 16px; }
  .ph-resultados { gap: 10px; }
  /* 13/10: no celular o rodapé ficava tudo empilhado num canto; agora são duas colunas, mais junto. */
  .ph-rodape { padding-top: 40px; }
  .ph-rodape-grade { grid-template-columns: 1fr 1fr; gap: 26px 18px; }
  .ph-rodape-marca { grid-column: 1 / -1; gap: 12px; }
  .ph-rodape-marca img { width: 130px; }
  .ph-rodape-marca p { font-size: 13.5px; max-width: 34ch; }
  .ph-rodape-col { gap: 8px; }
  .ph-rodape-col a { font-size: 14px; }
  .ph-rodape-titulo { margin-bottom: 4px; }
  .ph-rodape-info { font-size: 13px; grid-column: 1 / -1; }
  .ph-rodape-base { margin-top: 30px; padding-top: 18px; gap: 6px 16px; font-size: 9.5px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ph-hero-slide.is-on img, .ph-capa-fundo img, .ph-grao, .ph-marquee-trilho, .ph-hero-indic i::after { animation: none !important; }
  html.ph-anima [data-ph], html.ph-anima [data-ph-linha] { opacity: 1; transform: none; clip-path: none; transition: none; }
  .ph-veu-pagina { display: none; }
}

/* 09/10 · correções apontadas pelo Pabulo: botão escuro no fundo claro e botão branco no escuro ficavam sem texto;
   cartões de "Duas escolhas" herdavam o sublinhado do link; título da capa curta alinhado à esquerda com o resto da
   página; nas escolhas do plano o subtítulo vai embaixo do nome. */
.ph .ph-btn-escuro, .ph-secao-clara .ph-btn-escuro { color: #fff !important; }
.ph .ph-btn-branco { color: var(--tinta) !important; }
body.ph-body .home-diagnosis-entry a, body.ph-body .home-diagnosis-entry button { color: #111113 !important; }
.ph-cartao, .ph-cartao * { text-decoration: none !important; }
.ph-capa-curta .ph-wrap.ph-capa-in { max-width: none; }
.ph-capa-curta .ph-capa-in > * { max-width: 900px; }
.ph-segmento button { flex-direction: column; align-items: flex-start; gap: 2px; padding: 11px 20px; line-height: 1.2; }
.ph-segmento button small { display: block; }
/* 09/10 · telas do app novo numa composição só (três celulares) */
.ph-telas-novo { display: block; }
.ph-telas-novo img { width: 100%; height: auto; display: block; }

/* 09/10 · pedido do Pabulo: todos os títulos em no máximo duas linhas. Tamanho um pouco menor, largura maior e
   quebra equilibrada; no celular a fonte cai mais para caber. */
.ph-h1 { font-size: clamp(32px, 5.2vw, 70px); max-width: 24ch; text-wrap: balance; }
.ph-h1-hero { font-size: clamp(28px, 3.9vw, 54px); max-width: 30ch; }
.ph-h2 { font-size: clamp(26px, 3.2vw, 46px); max-width: 28ch; text-wrap: balance; }
.ph-h3 { text-wrap: balance; }
.ph-capa-curta .ph-capa-in > * { max-width: 1100px; }
@media (max-width: 480px) { .ph-h1 { font-size: clamp(28px, 8.4vw, 34px); } .ph-h2 { font-size: clamp(24px, 6.8vw, 30px); } }
/* 09/10 · aviso das fotos oficiais a caminho (Outubro Rosa) */
.ph-oficiais-cadeado { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,0,120,.14); border: 1px solid rgba(255,0,120,.4); }
.ph-oficiais-cadeado svg { width: 24px; height: 24px; stroke: var(--rosa); fill: none; stroke-width: 1.5; }
@media (max-width: 600px) { .ph-oficiais-breve { grid-template-columns: 1fr !important; } }

/* menu premium 09/10 · pedido do Pabulo ("esse menu está feio e não condizente com o padrão premium"):
   três colunas por grupo, título contido com a descrição embaixo, cartão lateral único e discreto. */
.ph-menu { background: rgba(6,6,6,.985); }
.ph-menu-in { grid-template-columns: minmax(0, 1.6fr) minmax(280px, .6fr); gap: 56px; align-items: start; }
.ph-menu-grupos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 36px; align-items: start; }
.ph-menu-grupo:first-child { grid-column: 1 / -1; padding-bottom: 6px; border-bottom: 1px solid var(--linha); }
.ph-menu-grupo:first-child .ph-menu-item { border-bottom: 0; padding: 0 0 6px; display: flex; flex-direction: row; align-items: baseline; gap: 14px; }
.ph-menu-grupo:first-child .ph-menu-item strong { font-size: 15px; font-family: var(--mono); letter-spacing: .28em; text-transform: uppercase; font-weight: 500; }
.ph-menu-grupo:first-child .ph-menu-item small { font-size: 12.5px; }
.ph-menu-titulo { margin-bottom: 4px; color: var(--rosa2); }
.ph-menu-item { display: grid; gap: 3px; padding: 14px 0; border-bottom: 1px solid var(--linha); position: relative; }
.ph-menu-item::after { content: ""; position: absolute; right: 0; top: 50%; width: 7px; height: 7px; border-right: 1px solid var(--mudo); border-top: 1px solid var(--mudo); transform: translateY(-50%) rotate(45deg); opacity: 0; transition: opacity .25s, transform .25s; }
.ph-menu-item:hover::after { opacity: 1; transform: translate(2px, -50%) rotate(45deg); }
.ph-menu-item strong { font-size: clamp(19px, 1.5vw, 22px); line-height: 1.15; letter-spacing: -.01em; }
.ph-menu-item small { font-size: 12.5px; line-height: 1.45; color: var(--mudo); display: block; max-width: 30ch; }
.ph-menu-lado { gap: 14px; }
.ph-menu-cartao { padding: 22px; gap: 10px; border-radius: 22px; }
.ph-menu-cartao p:not(.ph-rotulo) { font-size: 13.5px; }
.ph-menu-cartao .ph-btn { width: 100%; }
.ph-menu-contato { padding-top: 6px; }
@media (max-width: 1000px) { .ph-menu-in { grid-template-columns: 1fr; gap: 36px; } .ph-menu-grupos { grid-template-columns: 1fr 1fr; gap: 28px; } }
@media (max-width: 640px) { .ph-menu-grupos { grid-template-columns: 1fr; gap: 22px; } .ph-menu-item { padding: 11px 0; } .ph-menu-item strong { font-size: 19px; } .ph-menu-lado { grid-template-columns: 1fr; } }

/* títulos em colunas estreitas 09/10: ainda davam 3 linhas a 1440 px */
.ph-h1-hero { font-size: clamp(26px, 3.3vw, 46px); max-width: 32ch; }
.ph-app .ph-h2, .ph-duas .ph-h2, .ph-pilha-grande .ph-h2 { font-size: clamp(24px, 2.6vw, 40px); max-width: none; }
.ph-diag .ph-h3 { max-width: none; font-size: clamp(18px, 1.7vw, 23px); }
body.ph-body .home-diagnosis-entry h2, body.ph-body .home-diagnosis-entry h3, body.ph-body .home-diagnosis-entry strong { font-size: clamp(20px, 2.2vw, 32px) !important; line-height: 1.15 !important; }
.ph-fechamento .ph-h2, .ph-fecho .ph-h2 { font-size: clamp(26px, 3vw, 44px); max-width: none; }

/* duas linhas em qualquer tela 09/10: capa inteira, chamada final e celular */
.ph-capa .ph-wrap.ph-capa-in { max-width: none; }
.ph-capa .ph-capa-in > * { max-width: 1100px; }
.ph-cta .ph-h2 { max-width: 30ch; font-size: clamp(26px, 3.4vw, 50px); }
@media (max-width: 480px) {
  .ph-h1 { font-size: 27px; }
  .ph-h1-hero { font-size: 26px; }
  .ph-h2, .ph-cta .ph-h2, .ph-app .ph-h2, .ph-duas .ph-h2 { font-size: 22px; }
  .ph-h3 { font-size: 19px; }
  .ph-diag .ph-h3 { font-size: 17px; }
  body.ph-body .home-diagnosis-entry h2, body.ph-body .home-diagnosis-entry h3, body.ph-body .home-diagnosis-entry strong { font-size: 19px !important; }
}
/* celular 09/10 final */
@media (max-width: 480px) { .ph-h1 { font-size: 26px; } .ph-h1-hero { font-size: 24px; } .ph-cta .ph-h2 { font-size: 22px; max-width: none; } }
.ph-cta .ph-h2 { max-width: none; }
/* logo maior no topo 09/10: a linha Nutricionista e treinador precisa ler */
.ph-topo-logo img { width: 168px; }
@media (max-width: 860px) { .ph-topo-logo img { width: 150px; } }
@media (max-width: 420px) { .ph-topo-logo img { width: 136px; } }
/* subtítulo embaixo também no celular 09/10 */
@media (max-width: 860px) { .ph-segmento button { align-items: flex-start; } .ph-segmento button small { margin-left: 0; text-align: left; display: block; } }

/* 09/10 · planos em fluxo contínuo (pedido do Pabulo): 01 o que → 02 como → planos e valores da combinação.
   Opções em cartões com nome e uma linha de explicação; a escolha feita vira um chip com "Trocar"; o bloco de
   preços só aparece com as duas escolhas. No celular o resumo vai para depois dos preços, para os cards ficarem
   logo abaixo do passo 02. */
.ph-fluxo { display: grid; gap: 28px; align-content: start; }
.ph-fluxo-passo { scroll-margin-top: calc(var(--topo-h) + 18px); transition: opacity .3s; }
.ph-fluxo-passo:not(.is-aberto) .ph-escolha-titulo span { color: var(--mudo); font-size: clamp(17px, 1.7vw, 21px); }
.ph-opcoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; animation: ph-surge .5s var(--ease) both; }
.ph-opcoes-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ph-opcoes button { appearance: none; -webkit-appearance: none; text-align: left; display: grid; gap: 7px; align-content: start; padding: 18px 18px 17px; border: 1px solid var(--linha2); border-radius: var(--raio-p); background: rgba(255,255,255,.04); color: var(--ink); cursor: pointer; font-family: inherit; min-width: 0; transition: border-color .3s, background .3s var(--ease), transform .3s var(--ease); }
.ph-opcoes button strong { font-family: var(--disp); font-weight: 400; font-size: 17px; letter-spacing: -.01em; line-height: 1.2; text-transform: none; }
.ph .plan-mode-strip .ph-opcoes button, .ph .plan-mode-strip .ph-chip { font-family: var(--corpo); letter-spacing: 0; text-transform: none; }
.ph-opcoes button small { font-size: 13px; line-height: 1.45; color: var(--mudo); }
.ph-opcoes button:hover { border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.07); transform: translateY(-2px); }
.ph-opcoes button:focus-visible { outline: 2px solid var(--rosa); outline-offset: 2px; }
.ph-opcoes button[aria-pressed="true"] { background: var(--ink); color: var(--tinta); border-color: var(--ink); }
.ph-opcoes button[aria-pressed="true"] small { color: var(--tinta2); }
.ph-chip { appearance: none; -webkit-appearance: none; display: inline-flex; align-items: center; gap: 14px; width: fit-content; max-width: 100%; padding: 9px 9px 9px 18px; border: 1px solid var(--ink); border-radius: 999px; background: var(--ink); color: var(--tinta); cursor: pointer; font-family: inherit; animation: ph-surge .4s var(--ease) both; }
.ph-chip span { display: inline-flex; align-items: center; gap: 10px; font-family: var(--corpo); font-weight: 600; font-size: 14px; letter-spacing: 0; text-transform: none; }
.ph-chip span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--rosa); flex: none; }
.ph-chip em { font-style: normal; font-family: var(--mono); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--tinta2); padding: 8px 12px; border-radius: 999px; background: rgba(0,0,0,.06); transition: background .25s, color .25s; }
.ph-chip:hover em { background: var(--rosa); color: #fff; }
.ph-chip:focus-visible { outline: 2px solid var(--rosa); outline-offset: 2px; }
[data-ph-precos] { scroll-margin-top: calc(var(--topo-h) + 12px); }
.ph-planos-resumo [data-escolha-nome].is-vazio { color: var(--mudo); }
@keyframes ph-surge { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 860px) {
  .ph-planos-topo { display: contents; }
  [data-ph-planos] { display: grid; gap: 30px; }
  [data-ph-planos] > [data-ph-precos] { margin-top: 0 !important; order: 2; }
  .ph-planos-topo > .ph-planos-resumo { order: 3; }
  .ph-fluxo { gap: 22px; }
  .ph-opcoes, .ph-opcoes-2 { grid-template-columns: 1fr; gap: 8px; }
  .ph-opcoes button { padding: 15px 16px 14px; }
  .ph-opcoes button strong { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .ph-opcoes, .ph-chip { animation: none; } }

/* 13/10 (Pabulo): sorteio de quem postar e marcar. O aviso aparece na hora em que ela baixa a foto. */
.ph-sorteio-aviso { position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom)); transform: translate(-50%, 16px); z-index: 600; width: min(430px, calc(100vw - 24px)); display: grid; gap: 10px; padding: 18px 18px 16px; border-radius: var(--raio); border: 1px solid rgba(232,78,138,.45); background: rgba(12,12,14,.97); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: 0 40px 90px -30px #000; opacity: 0; pointer-events: none; transition: opacity .35s var(--ease-out), transform .35s var(--ease-out); }
.ph-sorteio-aviso.is-on { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.ph-sorteio-aviso .ph-rotulo { color: var(--rosa); }
.ph-sorteio-aviso h4 { margin: 0; font-family: var(--disp); font-weight: 300; font-size: clamp(17px, 2.2vw, 20px); line-height: 1.28; color: var(--ink); }
.ph-sorteio-aviso p { font-size: 13.5px; color: var(--mudo); line-height: 1.5; }
.ph-sorteio-aviso .ph-sorteio-perfis { display: flex; flex-wrap: wrap; gap: 7px; }
.ph-sorteio-aviso .ph-sorteio-perfis a { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 10px; letter-spacing: .1em; text-transform: lowercase; color: var(--ink); text-decoration: none; border: 1px solid var(--linha2); border-radius: 999px; padding: 7px 11px; transition: background .25s, border-color .25s; }
.ph-sorteio-aviso .ph-sorteio-perfis a:hover { background: rgba(232,78,138,.16); border-color: rgba(232,78,138,.6); }
.ph-sorteio-aviso .ph-sorteio-perfis svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.ph-sorteio-aviso .ph-sorteio-fechar { justify-self: end; border: 0; background: none; color: var(--mudo); font-family: inherit; font-size: 13px; font-weight: 500; padding: 4px 2px; cursor: pointer; }
.ph-sorteio-aviso .ph-sorteio-fechar:hover { color: var(--ink); }

/* o mesmo convite, fixo na página, para quem não baixou ainda */
.ph-sorteio-faixa { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; margin-bottom: 20px; padding: 18px 20px; border-radius: 18px; border: 1px solid rgba(232,78,138,.32); background: linear-gradient(100deg, rgba(232,78,138,.14), rgba(255,255,255,.03) 64%); }
.ph-sorteio-faixa .ph-sorteio-selo { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(232,78,138,.5); color: var(--rosa); }
.ph-sorteio-faixa .ph-sorteio-selo svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.ph-sorteio-faixa h3 { margin: 0; font-family: var(--disp); font-weight: 300; font-size: clamp(16px, 2.2vw, 21px); line-height: 1.28; }
.ph-sorteio-faixa p { font-size: 13.5px; color: var(--mudo); margin-top: 5px; line-height: 1.5; }
@media (max-width: 560px) { .ph-sorteio-faixa { grid-template-columns: 1fr; gap: 12px; padding: 16px; } }
