/* Home (marketing/vendas) — mundo visual próprio: "bandeiras e toldos de praia".
   Sol, areia, faixas de toldo de barraca e bandeirinhas — o dia do torneio na praia,
   não um painel de SaaS. Isolado do tema escuro "Quadra" usado no app logado. */
.home {
  --sand: #FBF3E1;
  --sand-deep: #F2E2C2;
  --ink: #2B1E12;
  --dim: #6B5738;
  --gold: #E8A631;
  --gold-deep: #C6871C;
  --blue: #1C7A8C;
  --blue-deep: #145A68;
  --red: #E2604A;
  --red-deep: #B23A2B;
  --cream: #FFFBF2;
  background: var(--sand);
  color: var(--ink);
  font-family: 'Outfit', sans-serif;
  line-height: 1.5;
  overflow-x: clip;
}
.home h1, .home h2, .home h3, .home .display {
  font-family: 'Anton', sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  line-height: 1.04;
  text-wrap: balance;
}
.home a { color: inherit; }
.home .dim { color: var(--dim); }
.home .container { max-width: 1180px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 48px); }
.home section { position: relative; }

/* ---- faixa de identidade (toldo listrado, vertical, no topo) ---- */
.home-awning { height: 10px; background: repeating-linear-gradient(90deg, var(--gold) 0 34px, var(--sand) 34px 44px, var(--blue) 44px 78px, var(--sand) 78px 88px, var(--red) 88px 122px, var(--sand) 122px 132px); }

/* ---- topo: marca + ações ---- */
.home-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px clamp(20px, 4vw, 48px); }
.home-top .wordmark { font-family: 'Anton', sans-serif; font-size: 22px; letter-spacing: -0.01em; }
.home-top .wordmark span { color: var(--red-deep); }
.home-top nav { display: flex; align-items: center; gap: 10px; }
.home-btn { display: inline-flex; align-items: center; gap: 8px; font: 700 15px 'Outfit', sans-serif; padding: 11px 20px; border-radius: 999px; text-decoration: none; border: 2px solid transparent; transition: transform .15s var(--h-ease, ease-out), box-shadow .15s; }
.home-btn:hover { transform: translateY(-1px); text-decoration: none; }
.home-btn.ghost { color: var(--ink); border-color: var(--ink); }
.home-btn.ghost:hover { background: var(--ink); color: var(--cream); }
.home-btn.gold { background: var(--gold); color: #2B1E00; box-shadow: 0 3px 0 var(--gold-deep); }
.home-btn.gold:hover { box-shadow: 0 4px 0 var(--gold-deep); }
.home-btn.gold:active { transform: translateY(2px); box-shadow: 0 1px 0 var(--gold-deep); }

/* ---- hero ---- */
.home-hero { padding: clamp(28px, 6vw, 64px) 0 clamp(48px, 7vw, 88px); }
.home-hero .container { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(24px, 5vw, 64px); align-items: center; }
.home-hero h1 { font-size: clamp(2.4rem, 5.2vw, 4rem); }
.home-hero h1 .hl { color: var(--red-deep); }
.home-hero p.lede { font-size: 1.15rem; max-width: 46ch; margin: 20px 0 0; color: var(--dim); }
.home-hero .cta-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 30px; }
.home-hero .cta-row .home-btn { font-size: 16.5px; padding: 15px 26px; }
.home-hero .see-how { font-weight: 600; color: var(--blue-deep); text-underline-offset: 3px; }
.home-hero .fine { margin-top: 14px; font-size: 13px; color: var(--dim); }

/* cartão de prévia ao vivo, levemente inclinado, quebrando o quadro */
.home-preview-wrap { position: relative; }
.home-preview { background: var(--cream); border-radius: 18px; padding: 18px 20px 20px; box-shadow: 0 22px 46px -18px rgba(43,30,18,.45), 0 2px 0 rgba(43,30,18,.06); transform: rotate(-3deg); border: 1px solid rgba(43,30,18,.08); }
.home-preview .row1 { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.home-preview .live-mark { display: inline-flex; align-items: center; gap: 6px; font: 700 12.5px 'Outfit', sans-serif; text-transform: uppercase; letter-spacing: .04em; color: var(--red-deep); }
.home-preview .live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red-deep); }
.home-preview .court-tag { font-size: 12.5px; color: var(--dim); }
.home-preview .teams { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.home-preview .team { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 10px; background: var(--sand); font-weight: 600; }
.home-preview .team.w { background: color-mix(in srgb, var(--gold) 22%, var(--sand)); }
.home-preview .team .pts { font-family: 'Anton', sans-serif; font-size: 20px; }
.home-preview .next { margin-top: 16px; padding-top: 14px; border-top: 1px dashed rgba(43,30,18,.2); display: flex; align-items: center; justify-content: space-between; font-size: 13px; color: var(--dim); }
.home-flag-pin { position: absolute; top: -22px; right: 28px; width: 26px; height: 34px; background: var(--blue); clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%); box-shadow: 0 4px 10px rgba(0,0,0,.2); }

/* ---- bandeirinhas (divisor de seção) ---- */
.home-bunting { display: flex; justify-content: center; padding: 0; margin: 0; list-style: none; border-top: 2px solid rgba(43,30,18,.18); position: relative; top: -1px; overflow: hidden; }
.home-bunting li { width: 30px; height: 26px; margin: 0 3px; clip-path: polygon(0 0, 100% 0, 50% 100%); flex: none; transform-origin: top center; }
.home-bunting li:nth-child(3n+1) { background: var(--gold); }
.home-bunting li:nth-child(3n+2) { background: var(--blue); }
.home-bunting li:nth-child(3n) { background: var(--red); }
@media (prefers-reduced-motion: no-preference) {
  .home-bunting li { animation: flag-sway 2.6s ease-in-out infinite; }
  .home-bunting li:nth-child(2n) { animation-delay: -.4s; }
  .home-bunting li:nth-child(3n) { animation-delay: -1.1s; }
  .home-bunting li:nth-child(5n) { animation-delay: -1.7s; }
  @keyframes flag-sway { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
}

/* ---- seções de recurso (revelação escalonada: espaçosa -> densa) ---- */
.home-features { padding: clamp(40px, 7vw, 80px) 0; }
.home-features > .container > h2 { font-size: clamp(1.8rem, 3.6vw, 2.6rem); max-width: 20ch; }
.feature-lead { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 56px); align-items: center; margin-top: clamp(32px, 5vw, 52px); }
.feature-lead:nth-child(odd) .feature-copy { order: 1; }
.feature-lead h3 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin: 0 0 12px; }
.feature-lead p { color: var(--dim); max-width: 48ch; }
.feature-visual { border-radius: 16px; padding: 22px; background: var(--sand-deep); min-height: 180px; display: flex; align-items: center; justify-content: center; }

/* mini "celular" da mesa de arbitragem */
.phone-frame { width: 190px; background: var(--cream); border-radius: 22px; padding: 14px 12px; box-shadow: 0 14px 30px -10px rgba(43,30,18,.35); }
.phone-frame .pf-score { display: flex; justify-content: space-around; align-items: baseline; font-family: 'Anton', sans-serif; }
.phone-frame .pf-score b { font-size: 40px; }
.phone-frame .pf-score span { font-size: 13px; color: var(--dim); font-family: 'Outfit', sans-serif; }
.phone-frame .pf-btn { margin-top: 14px; display: flex; gap: 8px; }
.phone-frame .pf-btn div { flex: 1; height: 34px; border-radius: 8px; background: var(--gold); }
.phone-frame .pf-btn div:last-child { background: var(--sand-deep); }

/* mini "telão" */
.tv-frame { width: 100%; max-width: 320px; background: var(--ink); border-radius: 14px; padding: 16px; color: var(--cream); }
.tv-frame .tv-row { display: flex; align-items: center; justify-content: space-between; font-size: 13px; padding: 8px 10px; border-radius: 8px; background: rgba(255,255,255,.06); margin-bottom: 8px; }
.tv-frame .tv-row.live { background: color-mix(in srgb, var(--red) 30%, transparent); font-weight: 700; }
.tv-frame .tv-row b { font-family: 'Anton', sans-serif; font-weight: 400; }

.feature-grid-tight { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: clamp(28px, 5vw, 44px); }
.feature-card-tight { background: var(--cream); border-radius: 14px; padding: 22px; }
.feature-card-tight h3 { font-size: 1.2rem; margin: 0 0 8px; }
.feature-card-tight p { color: var(--dim); font-size: .95rem; margin: 0; }

/* ---- status marks (não é só cor) ---- */
.status-mark { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700; }
.status-mark.live { color: var(--red-deep); }
.status-mark.live .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--red-deep); }
@media (prefers-reduced-motion: no-preference) { .status-mark.live .dot { animation: dot-pulse 1.4s ease-in-out infinite; } }
@keyframes dot-pulse { 50% { opacity: .35; } }
.status-mark.scheduled { color: var(--blue-deep); }
.status-mark.done { color: var(--dim); }

/* ---- preços ---- */
.home-pricing { padding: clamp(40px, 7vw, 80px) 0; background: var(--sand-deep); }
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: clamp(28px, 5vw, 44px); align-items: stretch; }
.price-card { background: var(--cream); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; }
.price-card .ph { padding: 20px 22px; }
.price-card.hl .ph { background: var(--gold); }
.price-card .ph h3 { font-size: 1.15rem; margin: 0; }
.price-card .amount { font-family: 'Anton', sans-serif; font-size: 2.4rem; margin: 6px 0 0; }
.price-card .amount small { font-family: 'Outfit', sans-serif; font-size: .9rem; font-weight: 600; text-transform: none; }
.price-card .pb { padding: 18px 22px 24px; flex: 1; display: flex; flex-direction: column; }
.price-card ul { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: .92rem; color: var(--dim); }
.price-card ul li { display: flex; gap: 8px; align-items: flex-start; }
.price-card ul li svg { flex: none; margin-top: 3px; color: var(--blue-deep); }
.price-card .home-btn { margin-top: auto; justify-content: center; }

/* ---- CTA final ---- */
.home-close { padding: clamp(48px, 8vw, 90px) 0; text-align: center; }
.home-close h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); max-width: 18ch; margin: 0 auto; }
.home-close .cta-row { display: flex; justify-content: center; margin-top: 26px; }

/* ---- torneios ao vivo agora (prova real) ---- */
.home-search .tgrid-home { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-top: 20px; }
.home-search .lcard { background: var(--cream); border-radius: 14px; padding: 18px 20px; text-decoration: none; display: block; transition: transform .15s; }
.home-search .lcard:hover { transform: translateY(-2px); text-decoration: none; }
.home-search .lcard h3 { font-family: 'Outfit', sans-serif; text-transform: none; font-size: 1.05rem; font-weight: 700; color: var(--ink); margin: 6px 0 0; }

/* ---- rodapé ---- */
.home-foot { padding: 26px 0 40px; border-top: 1px solid rgba(43,30,18,.15); }
.home-foot .container { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 13px; color: var(--dim); }

@media (max-width: 860px) {
  .home-hero .container { grid-template-columns: 1fr; }
  .home-preview-wrap { order: -1; max-width: 360px; margin: 0 auto; }
  .feature-lead, .feature-lead:nth-child(odd) .feature-copy { grid-template-columns: 1fr; order: 0; }
  .feature-grid-tight, .pricing-grid { grid-template-columns: 1fr; }
  .home-top nav .home-btn.ghost { display: none; }
}

/* telas reais (public/img/home/*.webp) no lugar dos desenhos */
.home-shot { margin: 0; border-radius: 16px; overflow: hidden; background: var(--ink); box-shadow: 0 22px 46px -18px rgba(43,30,18,.45); transform: rotate(-2deg); border: 4px solid var(--cream); }
.home-shot img, .home-shot-tv { display: block; width: 100%; height: auto; border-radius: 12px; }


/* faixa "do cadastro ao pódio" */
.feature-band-h { font-size: clamp(1.5rem, 2.6vw, 2rem); margin: clamp(36px, 6vw, 60px) 0 0; }
.feature-list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.feature-list li { background: var(--cream); border-radius: 14px; padding: 18px 20px; }
.feature-list h4 { margin: 0 0 6px; font: 700 1.02rem 'Outfit', sans-serif; text-transform: none; letter-spacing: 0; line-height: 1.2; }
.feature-list p { margin: 0; color: var(--dim); font-size: .93rem; }

.home-search .live-h { font-size: 1.5rem; }
.home-search .lcard-cats { margin: 4px 0 0; font-size: .9rem; }

@media (max-width: 860px) {
  .feature-list { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .home-hero h1 { font-size: clamp(2rem, 9.5vw, 2.6rem); }
  .home-hero .cta-row { flex-direction: column; align-items: stretch; gap: 12px; }
  .home-hero .cta-row .home-btn { justify-content: center; }
  .home-top { padding: 14px 16px; }
  .home-top nav .home-btn.gold { padding: 9px 16px; font-size: 14px; }
  .feature-list { grid-template-columns: 1fr; }
  .feature-visual { padding: 14px; }
  .home-features > .container > h2 { max-width: none; }
  .home-hero .home-shot { transform: none; }
}

.feature-visual .home-shot-tv { max-width: 100%; box-shadow: 0 14px 30px -10px rgba(43,30,18,.35); border: 3px solid var(--cream); }

/* seções com tela real: o texto em cima e a imagem na largura toda, para dar para ler */
.feature-lead.shot { grid-template-columns: 1fr; gap: 20px; }
.feature-lead.shot .feature-copy { max-width: 64ch; }
.feature-lead.shot .feature-visual { padding: clamp(8px, 1.6vw, 18px); min-height: 0; }
.feature-lead.shot .home-shot-tv { width: 100%; max-width: none; height: auto; }
.home-hero .home-shot { transform: rotate(-2deg); }

/* busca de torneios */
.home-search { padding: clamp(32px, 6vw, 56px) 0; }
.search-lede { max-width: 58ch; margin: 8px 0 0; }
.search-form { display: flex; gap: 10px; margin-top: 18px; max-width: 640px; }
.search-form input { flex: 1; min-width: 0; font: 500 16px 'Outfit', sans-serif; color: var(--ink); background: var(--cream); border: 2px solid var(--ink); border-radius: 999px; padding: 12px 20px; }
.search-form input::placeholder { color: var(--dim); }
.search-form input:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.search-results { margin-top: 22px; }
.search-count { margin: 0 0 10px; font-size: .9rem; }
@media (max-width: 560px) { .search-form { flex-direction: column; } .search-form .home-btn { justify-content: center; } }

/* bola de vôlei ao rolar (home-ball.js): um elemento, só transform e opacidade */
.vb-ball { position: fixed; left: 0; top: 0; z-index: 30; width: var(--s, 72px); height: var(--s, 72px); pointer-events: none; opacity: 0; contain: layout style; }
.vb-ball.on { will-change: transform, opacity; }
.vb-spin { width: 100%; height: 100%; }
.vb-ball svg { display: block; width: 100%; height: 100%; filter: drop-shadow(0 6px 5px rgba(43,30,18,.28)); }
.vb-ball.land svg { animation: vb-squash .55s cubic-bezier(.16, 1, .3, 1); }
@keyframes vb-squash { 0% { transform: scale(1.16, .8) translateY(12%); } 45% { transform: scale(.94, 1.1) translateY(-8%); } 100% { transform: none; } }
.vb-hit { animation: vb-hit .5s cubic-bezier(.16, 1, .3, 1); }
@keyframes vb-hit { 0% { transform: translateY(0); } 30% { transform: translateY(4px); } 100% { transform: none; } }
@media (max-width: 700px) { .vb-ball svg { filter: none; } }
@media (prefers-reduced-motion: reduce) { .vb-ball.land svg, .vb-hit { animation: none; } }
@media print { .vb-ball { display: none; } }

/* carrossel das telas do produto */
.shots-car { margin-top: clamp(28px, 5vw, 48px); }
.car-bar { display: none; }
.shots-car.is-ready .car-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.car-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.car-tab { font: 600 14px 'Outfit', sans-serif; padding: 9px 18px; border-radius: 999px; border: 2px solid var(--ink); background: transparent; color: var(--ink); cursor: pointer; }
.car-tab[aria-selected=true] { background: var(--ink); color: var(--cream); }
.car-tab:hover:not([aria-selected=true]) { background: var(--sand-deep); }
.car-tab:focus-visible, .car-btn:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.car-arrows { display: flex; gap: 8px; }
.car-btn { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border-radius: 50%; border: 2px solid var(--ink); background: var(--cream); color: var(--ink); cursor: pointer; }
.car-btn:hover:not(:disabled) { background: var(--gold); }
.car-btn:disabled { opacity: .35; cursor: default; }
.car-btn.prev .ic { transform: scaleX(-1); }
.car-track { display: flex; align-items: flex-start; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; padding: 2px; }
.car-track::-webkit-scrollbar { display: none; }
.car-track:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; border-radius: 12px; }
.car-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; margin-top: 0 !important; }
@media (prefers-reduced-motion: no-preference) { .car-track { scroll-behavior: smooth; } }
@media (max-width: 560px) { .car-tab { padding: 8px 14px; font-size: 13px; } }

/* rodapé com granulado de areia */
.home-foot { position: relative; isolation: isolate; padding: clamp(48px, 8vw, 84px) 0 40px; border-top: 0; background: linear-gradient(180deg, var(--sand) 0, var(--sand-deep) 62%, #E8D3AC 100%); }
.home-foot::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .55; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n' x='0' y='0' width='100%' height='100%'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .33  0 0 0 0 .18  0 0 0 1.1 -.3'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); background-size: 220px 220px; }

/* "Do cadastro ao pódio": cada cartão com o seu ícone, nas cores da marca */
.feature-list li.fl-card { position: relative; padding: 22px 22px 22px; }
.fl-ic { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 14px; border-radius: 16px; transform: rotate(-5deg); transition: transform .3s cubic-bezier(.16, 1, .3, 1); box-shadow: 0 3px 0 rgba(43, 30, 18, .18); }
.fl-ic .ic { width: 28px; height: 28px; stroke-width: 2.1; }
.fl-card[data-tone=gold] .fl-ic { background: var(--gold); color: #2B1E00; }
.fl-card[data-tone=blue] .fl-ic { background: var(--blue); color: var(--cream); }
.fl-card[data-tone=red]  .fl-ic { background: var(--red); color: var(--cream); }
.fl-card:nth-child(even) .fl-ic { transform: rotate(4deg); }
.fl-card:hover .fl-ic, .fl-card:focus-within .fl-ic { transform: rotate(0) scale(1.1); }
@media (prefers-reduced-motion: no-preference) {
  .reveal-on > li { opacity: 0; transform: translateY(20px); }
  .reveal-on > li.in { opacity: 1; transform: none; transition: opacity .5s ease var(--d, 0ms), transform .6s cubic-bezier(.16, 1, .3, 1) var(--d, 0ms); }
  .reveal-on > li.in .fl-ic { animation: fl-pop .6s cubic-bezier(.16, 1, .3, 1) calc(var(--d, 0ms) + 120ms) both; }
  @keyframes fl-pop { 0% { transform: scale(.4) rotate(-25deg); opacity: 0; } 60% { transform: scale(1.15) rotate(4deg); opacity: 1; } 100% { opacity: 1; } }
}

/* no carrossel o texto fica sempre acima da imagem (a regra de ordem alternada das seções não vale aqui) */
.car-slide .feature-copy, .car-slide:nth-child(odd) .feature-copy { order: 0; }
.car-slide .feature-visual { order: 1; }

/* ---- conteúdo editável: slide sem imagem, depoimentos, perguntas frequentes ---- */
.feature-lead.no-visual { grid-template-columns: 1fr; }
.feature-lead.no-visual .feature-copy { max-width: 64ch; }
.pricing-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.home-testi { padding: clamp(40px, 7vw, 80px) 0; }
.home-testi h2 { margin: 0; }
.testi-grid { list-style: none; margin: clamp(24px, 4vw, 40px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.testi-grid > li { display: flex; }
.home .testi { margin: 0; background: var(--cream); border-radius: 16px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; width: 100%; box-shadow: 0 1px 0 rgba(43,30,18,.06); }
.home .testi blockquote { margin: 0; }
.home .testi blockquote p { margin: 0; font-size: 1.02rem; line-height: 1.55; }
.home .testi blockquote p::before { content: '“'; }
.home .testi blockquote p::after { content: '”'; }
.home .testi figcaption { display: flex; align-items: center; gap: 12px; flex-direction: row; }
.home .testi figcaption span { display: flex; flex-direction: column; font-size: .95rem; }
.home .testi figcaption small { color: var(--dim); font-size: .85rem; }
.testi-photo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; }
.testi-photo.ini { display: inline-flex; align-items: center; justify-content: center; background: var(--gold); color: #2B1E00; font: 400 1.3rem 'Anton', sans-serif; }
.home-faq { padding: clamp(40px, 7vw, 80px) 0; }
.home-faq h2 { margin: 0; }
.faq-lede { margin: 10px 0 0; max-width: 60ch; }
.faq-list { margin-top: clamp(22px, 4vw, 36px); max-width: 820px; display: grid; gap: 10px; }
.faq-item { background: var(--cream); border-radius: 12px; }
.faq-item summary { cursor: pointer; list-style: none; padding: 16px 52px 16px 20px; font-weight: 700; position: relative; min-height: 44px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font: 400 1.5rem 'Outfit', sans-serif; color: var(--red-deep); transition: transform .2s; }
.faq-item[open] summary::after { content: '–'; }
.faq-item summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: 12px; }
.faq-a { padding: 0 20px 18px; color: var(--dim); max-width: 68ch; line-height: 1.6; }
