/*
Theme Name: SL Run - Treinamento Inteligente
Theme URI: https://slrun.com.br
Author: SL Run
Author URI: https://slrun.com.br
Description: Plataforma SaaS para assessorias esportivas, treinadores e atletas. Gestao de treinos, avaliacoes, planilhas, feedback, ranking e financeiro. Mobile-first, editavel via Customizer, compativel com Elementor.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: sl-run
Tags: sports, fitness, business, saas, custom-colors, custom-logo, custom-menu, featured-images, translation-ready, full-width-template
*/

/* ==========================================================================
   SL RUN — Design tokens
   Abordagem MOBILE-FIRST: estilos base = mobile. Breakpoints min-width
   escalam para tablet/notebook/widescreen. Isso evita o padrao "desktop
   primeiro, encolhe depois" que costuma quebrar em telas pequenas.

   Breakpoints do projeto: 320 / 480 / 768 / 1024 / 1366 / 1920
   ========================================================================== */

:root{
  /* Azul vivo e mais claro (não mais um azul quase-preto nem um azul
     muito escuro) — texto branco continua bem legível em cima dele. */
  --slr-bg-deep:     #0d5fc9;
  --slr-navy:        #1877d1;
  --slr-navy-2:      #2196f3;
  --slr-card:        #ffffff;
  --slr-ink:         #0b1626;

  --slr-green:       #62d83d;
  --slr-green-deep:  #3fb524;
  --slr-blue:        #2196f3;
  --slr-blue-deep:   #1569c4;
  --slr-gold:        #f2c14e;
  /* Laranja energético — reforça a identidade esportiva ao lado do verde
     do logo (destaques, selos, contraste em CTAs) sem trocar a marca. */
  --slr-orange:      #ff5a1f;
  --slr-orange-deep: #e8430a;

  --slr-white:       #ffffff;
  --slr-muted:       #aab6c8;
  --slr-muted-2:     #5b6b82;
  --slr-border:      rgba(255,255,255,0.10);
  --slr-border-soft: rgba(11,22,38,0.08);

  --slr-gradient-brand: linear-gradient(90deg, var(--slr-green) 0%, var(--slr-blue) 100%);
  --slr-gradient-hero:  linear-gradient(180deg, rgba(13,95,201,.45) 0%, rgba(13,95,201,.82) 70%, rgba(13,95,201,1) 100%);
  --slr-gradient-energia: linear-gradient(90deg, var(--slr-orange) 0%, var(--slr-green) 100%);

  /* Tipografia trocada pro padrão Helvetica pedido pelo cliente — mais
     neutra e legível que a fonte condensada (Oswald) usada antes nos
     títulos e botões. Helvetica Neue/Helvetica são fontes do sistema
     (não dependem de carregar nada da internet); Arial é o fallback
     universal em qualquer computador que não tenha Helvetica instalada. */
  --slr-font-display: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --slr-font-body:    "Helvetica Neue", Helvetica, Arial, sans-serif;

  --slr-radius-sm: 6px;
  --slr-radius-md: 10px;
  --slr-radius-lg: 16px;

  /* Container fluido: nunca passa de 1320px, mas usa 100% em telas menores */
  --slr-container: min(1320px, 100% - 32px);

  --slr-shadow-card: 0 10px 30px rgba(11,22,38,.08);
  --slr-shadow-pop:  0 16px 40px rgba(11,22,38,.35);

  /* Espacamento vertical de secao: pequeno no mobile, cresce em telas
     grandes — reduzido um pouco em relação ao original pra sobrar menos
     "vazio" entre seções curtas (ex.: abas Para Você com poucos cards). */
  --slr-space-section: 48px;
}

@media (min-width:768px){
  :root{ --slr-space-section: 64px; }
}
@media (min-width:1024px){
  :root{ --slr-space-section: 76px; }
}

/* ==========================================================================
   Reset basico
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%; /* evita zoom automatico de fonte no iOS */
  /* Quase todo o CSS do tema usa "rem" (relativo à raiz), não "px" — por
     isso o tamanho base fica aqui no html, não no body. Aumentar isso
     escala TUDO no site proporcionalmente: títulos, botões, textos dos
     cards, etc. */
  font-size:18px;
}
@media (min-width:768px){ html{ font-size:19px; } }

body{
  margin:0;
  font-family: var(--slr-font-body);
  color: var(--slr-ink);
  background: var(--slr-white);
  -webkit-font-smoothing: antialiased;
  line-height:1.6;
  overflow-x:hidden;
  width:100%;
}

img, svg, video, canvas{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
table{ width:100%; border-collapse:collapse; }

h1,h2,h3,h4{
  font-family: var(--slr-font-display);
  text-transform:uppercase;
  letter-spacing:.02em;
  margin:0 0 .5em;
  line-height:1.15;
  color: var(--slr-ink);
  overflow-wrap:break-word; /* nunca deixa titulo longo vazar a tela */
}

/* Escala tipografica fluida: cresce suavemente do mobile ao desktop sem
   precisar de um valor fixo por breakpoint */
h1{ font-size:clamp(1.9rem, 5vw + .5rem, 3.4rem); }
h2{ font-size:clamp(1.5rem, 3vw + .5rem, 2.2rem); }
h3{ font-size:clamp(1.05rem, 1.2vw + .6rem, 1.25rem); }

p{ overflow-wrap:break-word; }

.slr-container{
  width: var(--slr-container);
  max-width:100%;
  margin:0 auto;
}

:focus-visible{
  outline:3px solid var(--slr-blue);
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* Qualquer tabela (ex: comparativo de planos) rola horizontalmente em vez
   de espremer ou vazar a tela em mobile */
.slr-table-scroll{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

/* ==========================================================================
   Botoes
   ========================================================================== */
.slr-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 20px;
  font-family: var(--slr-font-display);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  border-radius:var(--slr-radius-sm);
  border:2px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space:nowrap;
  max-width:100%;
}
.slr-btn svg{ width:17px; height:17px; flex-shrink:0; }
@media (min-width:768px){
  .slr-btn{ padding:14px 26px; font-size:.95rem; gap:10px; }
  .slr-btn svg{ width:18px; height:18px; }
}
.slr-btn:hover{ transform:translateY(-2px); }
.slr-btn:active{ transform:translateY(0); }

.slr-btn--primary{
  background: var(--slr-green);
  color: var(--slr-navy);
  box-shadow:0 8px 20px rgba(98,216,61,.30);
}
.slr-btn--primary:hover{ background: var(--slr-green-deep); box-shadow:0 12px 26px rgba(98,216,61,.40); }

.slr-btn--ghost{
  background:transparent;
  border-color: rgba(255,255,255,.35);
  color: var(--slr-white);
}
.slr-btn--ghost:hover{ background:rgba(255,255,255,.08); border-color:var(--slr-white); }

.slr-btn--outline-dark{
  background:transparent;
  border-color: var(--slr-navy);
  color: var(--slr-navy);
}
.slr-btn--outline-dark:hover{ background:var(--slr-navy); color:var(--slr-white); }

.slr-btn--block{ width:100%; }

/* ==========================================================================
   Header
   ========================================================================== */
.slr-header{
  background: var(--slr-navy);
  position:sticky;
  top:0;
  z-index:200;
  border-bottom:1px solid var(--slr-border);
  width:100%;
}
.slr-header__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 16px;
  width: var(--slr-container);
  max-width:100%;
  margin:0 auto;
}
@media (min-width:768px){
  .slr-header__top{ padding:14px 16px; gap:24px; }
}

.slr-header__top--logo-only{
  justify-content:center;
  padding:20px 16px;
}
@media (min-width:768px){ .slr-header__top--logo-only{ padding:26px 16px; } }
.slr-header__top--logo-only .slr-header__logo img{
  height:150px;
  max-width:480px;
}
@media (min-width:480px){ .slr-header__top--logo-only .slr-header__logo img{ height:190px; max-width:600px; } }
@media (min-width:768px){ .slr-header__top--logo-only .slr-header__logo img{ height:230px; max-width:720px; } }

.slr-header__logo-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  text-decoration:none;
}
.slr-header__tagline{
  font-family: var(--slr-font-display);
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: var(--slr-muted, #aab6c8);
}
@media (min-width:768px){ .slr-header__tagline{ font-size:.78rem; } }

.slr-header__logo{
  flex-shrink:0;
  min-width:0;
  display:inline-flex;
}
.slr-header__logo img{
  height:38px;
  width:auto;
  max-width:140px;
  object-fit:contain;
}
@media (min-width:480px){ .slr-header__logo img{ height:44px; max-width:170px; } }
@media (min-width:768px){ .slr-header__logo img{ height:52px; max-width:200px; } }

.slr-header__actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
@media (min-width:768px){ .slr-header__actions{ gap:14px; } }

.slr-header__actions .slr-btn{ padding:9px 12px; font-size:.7rem; }
@media (min-width:480px){ .slr-header__actions .slr-btn{ padding:10px 16px; font-size:.76rem; } }
@media (min-width:768px){ .slr-header__actions .slr-btn{ padding:11px 20px; font-size:.82rem; } }

/* Botao "Entrar" (ghost): vira circulo so com icone no mobile estreito,
   recupera o texto a partir de 480px */
.slr-header__actions .slr-btn--ghost{
  padding:9px;
  border-radius:50%;
  aspect-ratio:1/1;
}
.slr-header__actions .slr-btn--ghost span{ display:none; }
@media (min-width:480px){
  .slr-header__actions .slr-btn--ghost{
    padding:10px 16px;
    border-radius: var(--slr-radius-sm);
    aspect-ratio:auto;
  }
  .slr-header__actions .slr-btn--ghost span{ display:inline; }
}

/* CTA principal ("Teste Gratis"): texto curto sempre visivel, so o icone
   desaparece em telas muito estreitas para nao apertar o layout */
.slr-header__actions .slr-btn--primary svg{ display:none; }
@media (min-width:560px){ .slr-header__actions .slr-btn--primary svg{ display:block; } }

/* ==========================================================================
   Hero
   ========================================================================== */
.slr-hero{
  position:relative;
  background: var(--slr-bg-deep);
  overflow:hidden;
}
.slr-hero__bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:.5;
}
.slr-hero__overlay{
  position:absolute;
  inset:0;
  background: var(--slr-gradient-hero);
}
.slr-hero__inner{
  position:relative;
  z-index:2;
  width: var(--slr-container);
  max-width:100%;
  margin:0 auto;
  padding:40px 0 0;
  display:flex;
  flex-direction:column;
  gap:32px;
}
@media (min-width:1024px){
  .slr-hero__inner{
    padding-top:64px;
    flex-direction:row;
    align-items:center;
    gap:40px;
  }
  .slr-hero__copy{ flex:1 1 54%; min-width:0; }
  .slr-hero__art{ flex:1 1 46%; min-width:0; }
}

.slr-hero__badge{
  display:inline-block;
  background: rgba(33,150,243,.18);
  border:1px solid rgba(33,150,243,.5);
  color: var(--slr-white);
  font-family: var(--slr-font-display);
  font-size:.7rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:7px 13px;
  border-radius:4px;
  margin-bottom:16px;
  max-width:100%;
}
@media (min-width:768px){ .slr-hero__badge{ font-size:.78rem; padding:8px 16px; margin-bottom:22px; } }

.slr-hero h1{
  color: var(--slr-white);
  margin-bottom:.35em;
}
.slr-hero h1 .slr-accent{ color: var(--slr-green); }
.slr-hero p.slr-lead{
  color: var(--slr-muted);
  font-size:1rem;
  max-width:560px;
  margin-bottom:24px;
}
@media (min-width:768px){
  .slr-hero p.slr-lead{ font-size:1.08rem; margin-bottom:32px; }
}
.slr-hero__ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.slr-hero__ctas .slr-btn{ flex:1 1 auto; min-width:160px; }
@media (min-width:480px){ .slr-hero__ctas .slr-btn{ flex:0 1 auto; } }

/* Mockup multi-dispositivo: notebook como base, tablet e celular sobrepostos.
   Em mobile fica empilhado/centrado e reduzido; em desktop assume a
   composicao com profundidade (camadas). */
.slr-hero__art{ position:relative; }
.slr-device-stack{
  position:relative;
  width:100%;
  max-width:380px;
  margin:0 auto;
  aspect-ratio:4/3.1;
}
@media (min-width:1024px){ .slr-device-stack{ max-width:none; aspect-ratio:5/3.6; } }

.slr-device-stack .device-notebook{
  position:absolute;
  left:0; right:0; top:0;
  width:100%;
}
.slr-device-stack .device-tablet{
  position:absolute;
  width:34%;
  right:2%;
  bottom:2%;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.35));
}
.slr-device-stack .device-phone{
  position:absolute;
  width:19%;
  left:0%;
  bottom:-2%;
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.35));
}

.slr-stats{
  position:relative;
  z-index:2;
  background: var(--slr-navy-2);
  border-top:1px solid var(--slr-border);
  margin-top:36px;
}
@media (min-width:1024px){ .slr-stats{ margin-top:56px; } }

.slr-stats__grid{
  width: var(--slr-container);
  max-width:100%;
  margin:0 auto;
  padding:22px 0;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:18px 12px;
}
@media (min-width:560px){
  .slr-stats__grid{ grid-template-columns:repeat(3, 1fr); }
}
@media (min-width:1024px){
  .slr-stats__grid{ grid-template-columns:repeat(5, 1fr); padding:28px 0; gap:24px; }
}

.slr-stat{ display:flex; align-items:center; gap:10px; min-width:0; }
.slr-stat__icon{
  width:38px; height:38px;
  flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,.06);
}
@media (min-width:768px){ .slr-stat__icon{ width:44px; height:44px; } }
.slr-stat__icon svg{ width:19px; height:19px; }
@media (min-width:768px){ .slr-stat__icon svg{ width:22px; height:22px; } }
.slr-stat__icon svg.is-blue{ color:var(--slr-blue); }
.slr-stat__icon svg.is-green{ color:var(--slr-green); }
.slr-stat__icon svg.is-gold{ color:var(--slr-gold); }
.slr-stat__icon svg.is-orange{ color:var(--slr-orange); }

.slr-stat__text{ min-width:0; }
.slr-stat__num{
  font-family: var(--slr-font-display);
  font-size:1.15rem;
  color: var(--slr-white);
  line-height:1.1;
  display:block;
}
@media (min-width:768px){ .slr-stat__num{ font-size:1.5rem; } }
.slr-stat__label{
  font-size:.66rem;
  color: var(--slr-muted);
  text-transform:uppercase;
  letter-spacing:.02em;
  display:block;
  overflow-wrap:break-word;
}
@media (min-width:768px){ .slr-stat__label{ font-size:.74rem; letter-spacing:.03em; } }

/* ==========================================================================
   Estrutura generica de secao
   ========================================================================== */
.slr-section{ padding: var(--slr-space-section) 0; }
.slr-section--light{ background: var(--slr-white); }
.slr-section--tint{ background:#f4f7fb; }
.slr-section--dark{ background: var(--slr-navy); }

.slr-section__head{ text-align:center; max-width:640px; margin:0 auto 36px; padding:0 4px; }
@media (min-width:768px){ .slr-section__head{ margin-bottom:52px; } }

.slr-eyebrow{
  display:inline-block;
  font-family: var(--slr-font-display);
  color: var(--slr-blue);
  font-size:.74rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:8px;
}
@media (min-width:768px){ .slr-eyebrow{ font-size:.85rem; letter-spacing:.08em; margin-bottom:10px; } }

.slr-section__head h2{
  display:inline-flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
}
.slr-section__head h2::after{
  content:"";
  width:38px;
  height:3px;
  background: var(--slr-green);
  display:inline-block;
  flex-shrink:0;
}
.slr-section--dark .slr-section__head h2{ color:var(--slr-white); }
.slr-section--dark .slr-section__head p{ color: var(--slr-muted); }

/* ==========================================================================
   Beneficios / Recursos — grid de 10 cards
   ========================================================================== */
.slr-features{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
@media (min-width:480px){
  .slr-features{ grid-template-columns:repeat(2, 1fr); gap:16px; }
}
@media (min-width:768px){
  .slr-features{ grid-template-columns:repeat(2, 1fr); gap:18px; }
}
@media (min-width:1024px){
  .slr-features{ grid-template-columns:repeat(4, 1fr); }
}

.slr-feature{
  background: var(--slr-white);
  border:1px solid var(--slr-border-soft);
  border-radius: var(--slr-radius-md);
  padding:24px 18px;
  text-align:center;
  box-shadow: var(--slr-shadow-card);
  transition:transform .2s ease, box-shadow .2s ease;
  min-width:0;
}
@media (min-width:768px){ .slr-feature{ padding:30px 22px; } }
.slr-feature:hover{ transform:translateY(-6px); box-shadow: var(--slr-shadow-pop); }

.slr-feature__icon{
  width:50px; height:50px;
  margin:0 auto 14px;
  border-radius:50%;
  background:rgba(98,216,61,.12);
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
  line-height:1;
}
@media (min-width:768px){ .slr-feature__icon{ width:56px; height:56px; margin-bottom:16px; font-size:1.6rem; } }
.slr-feature__icon svg{ width:24px; height:24px; color: var(--slr-green-deep); }
@media (min-width:768px){ .slr-feature__icon svg{ width:28px; height:28px; } }

.slr-feature h3{
  text-transform:none;
  font-size:.95rem;
  margin-bottom:6px;
}
.slr-feature p{
  font-size:.84rem;
  color: var(--slr-muted-2);
  margin:0;
  line-height:1.5;
}

/* ==========================================================================
   Para Quem (abas Assessorias/Treinadores/Atletas) — substitui as 3 secoes
   repetidas por uma unica secao com seletor de perfil.
   ========================================================================== */
.slr-profile-tabs{
  display:flex; flex-wrap:wrap; gap:8px; justify-content:center;
  margin-bottom:28px;
}
.slr-profile-tab{
  font-family: var(--slr-font-body);
  font-size:.82rem; font-weight:700;
  padding:10px 18px; border-radius:999px;
  border:1.5px solid var(--slr-border-soft);
  background: var(--slr-white); color: var(--slr-ink);
  cursor:pointer; transition:background .18s, color .18s, border-color .18s;
  white-space:nowrap;
}
.slr-profile-tab.is-active{
  background: var(--slr-navy); color: var(--slr-white); border-color: var(--slr-navy);
}
@media (min-width:768px){ .slr-profile-tab{ font-size:.88rem; padding:11px 22px; } }

.slr-profile-panel{ display:none; }
.slr-profile-panel.is-active{ display:block; }
.slr-profile-panel__intro{
  text-align:center; max-width:560px; margin:0 auto 28px;
  color: var(--slr-muted-2); font-size:.9rem; line-height:1.7;
}

/* ==========================================================================
   Cadastre-se — area de cadastro visivel, direto pro registro real do
   sistema (SISRUN /sr-login/?tab=...), sem passar por link generico.
   ========================================================================== */
.slr-signup{ background: var(--slr-navy); padding: var(--slr-space-section) 0; }
.slr-signup__box{
  max-width:720px; margin:0 auto; text-align:center;
}
.slr-signup__copy h2{ color: var(--slr-white); margin-bottom:10px; }
.slr-signup__copy p{ color: var(--slr-muted); font-size:.92rem; margin-bottom:28px; }
.slr-signup__ctas{
  display:flex; flex-direction:column; gap:12px; max-width:420px; margin:0 auto;
}
@media (min-width:560px){
  .slr-signup__ctas{ flex-direction:row; max-width:none; }
  .slr-signup__ctas .slr-btn{ flex:1; justify-content:center; }
}
.slr-signup .slr-btn--outline-dark{ background:var(--slr-white); }

/* ==========================================================================
   Como Funciona — timeline de passos
   Mobile/tablet: lista vertical com linha conectora a esquerda.
   Desktop (>=1024px): linha horizontal, passos em colunas.
   ========================================================================== */
.slr-steps{
  display:flex;
  flex-direction:column;
  gap:0;
}
@media (min-width:1024px){
  .slr-steps{
    flex-direction:row;
    align-items:flex-start;
    gap:0;
  }
}

.slr-step{
  position:relative;
  display:flex;
  gap:16px;
  padding-bottom:32px;
}
.slr-step:last-child{ padding-bottom:0; }

/* Linha conectora vertical (mobile/tablet) */
.slr-step::before{
  content:"";
  position:absolute;
  left:23px;
  top:48px;
  bottom:0;
  width:2px;
  background: var(--slr-border-soft);
}
.slr-step:last-child::before{ display:none; }

@media (min-width:1024px){
  .slr-step{
    flex:1 1 0;
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:0 12px;
    min-width:0;
  }
  /* Linha conectora horizontal (desktop) */
  .slr-step::before{
    left:50%;
    right:auto;
    top:23px;
    bottom:auto;
    height:2px;
    width:100%;
    transform:translateX(24px);
  }
  .slr-step:last-child::before{ display:none; }
}

.slr-step__num{
  flex-shrink:0;
  width:46px; height:46px;
  border-radius:50%;
  background: var(--slr-navy);
  color: var(--slr-white);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--slr-font-display);
  font-size:1.05rem;
  border:2px solid var(--slr-green);
  position:relative;
  z-index:2;
}

.slr-step__body{ min-width:0; padding-top:4px; }
@media (min-width:1024px){ .slr-step__body{ padding-top:14px; } }

.slr-step__body h3{
  font-size:.92rem;
  text-transform:uppercase;
  margin-bottom:6px;
  color: var(--slr-ink);
}
.slr-step__body p{
  font-size:.84rem;
  color: var(--slr-muted-2);
  margin:0;
  line-height:1.5;
}

/* ==========================================================================
   Depoimentos
   ========================================================================== */
.slr-testimonials{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
@media (min-width:768px){
  .slr-testimonials{ grid-template-columns:repeat(3, 1fr); gap:20px; }
}

.slr-testimonial{
  background: var(--slr-white);
  border:1px solid var(--slr-border-soft);
  border-radius: var(--slr-radius-lg);
  padding:26px 22px;
  box-shadow: var(--slr-shadow-card);
  display:flex;
  flex-direction:column;
  min-width:0;
}
.slr-testimonial__quote{
  font-size:.92rem;
  color: var(--slr-ink);
  line-height:1.6;
  margin:0 0 20px;
  flex-grow:1;
}
.slr-testimonial__quote::before{ content:"\201C"; color: var(--slr-green-deep); font-size:1.4em; line-height:0; }
.slr-testimonial__person{
  display:flex;
  align-items:center;
  gap:12px;
}
.slr-testimonial__avatar{
  width:44px; height:44px;
  border-radius:50%;
  background: var(--slr-gradient-brand);
  color: var(--slr-white);
  display:flex; align-items:center; justify-content:center;
  font-family: var(--slr-font-display);
  font-size:.95rem;
  flex-shrink:0;
}
.slr-testimonial__meta{ min-width:0; }
.slr-testimonial__name{
  font-family: var(--slr-font-display);
  font-size:.86rem;
  text-transform:uppercase;
  color: var(--slr-ink);
  overflow-wrap:break-word;
}
.slr-testimonial__role{
  font-size:.76rem;
  color: var(--slr-blue);
  text-transform:uppercase;
  letter-spacing:.02em;
}
.slr-testimonial__badge{
  display:inline-block;
  margin-top:8px;
  font-size:.66rem;
  color: var(--slr-muted-2);
  background:#f4f7fb;
  padding:3px 9px;
  border-radius:20px;
  text-transform:uppercase;
  letter-spacing:.03em;
}

/* ==========================================================================
   Planos por perfil (Assessoria / Treinador / Atleta) — sem preco fixo,
   preparados para integracao de pagamento futura.
   ========================================================================== */
.slr-plans{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  max-width:760px;
  margin:0 auto;
}
@media (min-width:768px){
  .slr-plans{ grid-template-columns:repeat(2, 1fr); gap:22px; align-items:stretch; }
}

.slr-plan{
  background:var(--slr-white);
  border:1px solid var(--slr-border-soft);
  border-radius:var(--slr-radius-lg);
  padding:28px 22px;
  box-shadow:var(--slr-shadow-card);
  display:flex;
  flex-direction:column;
  position:relative;
  min-width:0;
}
@media (min-width:768px){ .slr-plan{ padding:34px 26px; } }

.slr-plan--featured{ border:2px solid var(--slr-green); }
@media (min-width:768px){ .slr-plan--featured{ transform:translateY(-8px); } }

.slr-plan__tag{
  position:absolute; top:-13px; right:22px;
  background:var(--slr-orange); color:var(--slr-white);
  font-family:var(--slr-font-display); font-size:.66rem;
  text-transform:uppercase; letter-spacing:.03em;
  padding:5px 12px; border-radius:20px;
  box-shadow:0 4px 12px rgba(255,90,31,.4);
}

.slr-plan__icon{
  width:44px; height:44px;
  border-radius:50%;
  background:rgba(33,150,243,.12);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem;
  margin-bottom:14px;
}

.slr-plan h3{ font-size:1.1rem; margin-bottom:4px; text-transform:uppercase; }
.slr-plan__subtitle{
  font-size:.84rem;
  color: var(--slr-muted-2);
  margin:0 0 18px;
  line-height:1.5;
}
.slr-plan__price-placeholder{
  font-family: var(--slr-font-display);
  font-size:1rem;
  color: var(--slr-blue);
  text-transform:uppercase;
  letter-spacing:.02em;
  margin:0 0 18px;
  padding:10px 14px;
  background:#eef6ff;
  border-radius:var(--slr-radius-sm);
}

.slr-plan ul{ margin:0 0 24px; display:flex; flex-direction:column; gap:11px; flex-grow:1; }
.slr-plan li{ display:flex; gap:9px; align-items:flex-start; font-size:.88rem; color:var(--slr-ink); line-height:1.45; }
.slr-plan li svg{ width:17px; height:17px; color:var(--slr-green-deep); flex-shrink:0; margin-top:2px; }

/* ==========================================================================
   CTA banner
   ========================================================================== */
.slr-cta{
  background: linear-gradient(120deg, var(--slr-navy) 0%, var(--slr-navy-2) 100%);
  border-radius: var(--slr-radius-lg);
  padding:32px 22px;
  display:flex;
  flex-direction:column;
  gap:22px;
  text-align:center;
}
@media (min-width:768px){
  .slr-cta{
    padding:48px 56px;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    text-align:left;
  }
}
.slr-cta h2{ color:var(--slr-white); margin-bottom:8px; }
.slr-cta p{ color:var(--slr-muted); margin:0; max-width:480px; }
.slr-cta .slr-btn{ align-self:center; }
@media (min-width:768px){ .slr-cta .slr-btn{ align-self:auto; flex-shrink:0; } }

/* ==========================================================================
   Blog
   ========================================================================== */
.slr-blog-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media (min-width:768px){ .slr-blog-grid{ grid-template-columns:repeat(3, 1fr); gap:24px; } }

.slr-post-card{
  background:var(--slr-white);
  border-radius:var(--slr-radius-md);
  overflow:hidden;
  border:1px solid var(--slr-border-soft);
  box-shadow:var(--slr-shadow-card);
  min-width:0;
}
.slr-post-card__img{ height:170px; overflow:hidden; }
@media (min-width:768px){ .slr-post-card__img{ height:190px; } }
.slr-post-card__img img{ width:100%; height:100%; object-fit:cover; }
.slr-post-card__body{ padding:18px; }
@media (min-width:768px){ .slr-post-card__body{ padding:22px; } }
.slr-post-card__date{ font-size:.72rem; color:var(--slr-blue); text-transform:uppercase; letter-spacing:.03em; font-family:var(--slr-font-display); }
.slr-post-card h3{ font-size:1rem; text-transform:none; margin:8px 0 10px; overflow-wrap:break-word; }
.slr-post-card p{ font-size:.86rem; color:var(--slr-muted-2); margin:0 0 14px; }
.slr-post-card a.slr-readmore{ font-size:.8rem; font-family:var(--slr-font-display); color:var(--slr-green-deep); text-transform:uppercase; letter-spacing:.02em; }

/* ==========================================================================
   Footer — identidade propria SL Run, sem qualquer marca WordPress
   ========================================================================== */
.slr-footer{ background: var(--slr-bg-deep); color: var(--slr-muted); padding-top:44px; }
@media (min-width:768px){ .slr-footer{ padding-top:64px; } }

.slr-footer__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  padding-bottom:32px;
  border-bottom:1px solid var(--slr-border);
}
@media (min-width:560px){ .slr-footer__grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){
  .slr-footer__grid{ grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:48px; }
}
/* Versao simplificada do rodape (sem as colunas Plataforma/Empresa) — só
   "sobre" + "contato" lado a lado, sem esticar demais em telas largas. */
.slr-footer__grid--simples{
  grid-template-columns:1fr;
}
@media (min-width:560px){ .slr-footer__grid--simples{ grid-template-columns:1.4fr 1fr; } }
@media (min-width:1024px){
  .slr-footer__grid--simples{ grid-template-columns:1.4fr 1fr; max-width:760px; }
}
.slr-footer__grid--unica{
  grid-template-columns:1fr;
  max-width:520px;
  text-align:center;
}
.slr-footer__grid--unica .slr-footer__logo{ display:inline-block; }
.slr-footer__grid--unica .slr-footer__social{ justify-content:center; }

.slr-footer__logo img{ height:38px; margin-bottom:14px; max-width:160px; }
@media (min-width:768px){ .slr-footer__logo img{ height:46px; max-width:190px; } }
.slr-footer p{ font-size:.86rem; line-height:1.7; color:var(--slr-muted); }
.slr-footer h4{
  color:var(--slr-white);
  font-size:.85rem;
  margin-bottom:16px;
  text-transform:uppercase;
  letter-spacing:.03em;
  font-family: var(--slr-font-display);
}
.slr-footer ul{ display:flex; flex-direction:column; gap:10px; }
.slr-footer a{ font-size:.86rem; color:var(--slr-muted); transition:color .15s ease; overflow-wrap:break-word; }
.slr-footer a:hover{ color: var(--slr-green); }
.slr-footer__social{ display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
.slr-footer__social a{
  width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.slr-footer__social svg{ width:15px; height:15px; }
.slr-footer__bottom{
  display:flex; flex-direction:column; gap:8px;
  padding:20px 0; font-size:.76rem; text-align:center;
}
@media (min-width:560px){
  .slr-footer__bottom{ flex-direction:row; justify-content:space-between; text-align:left; }
}

/* ==========================================================================
   Pagina de Login (seletor de perfil: atleta / treinador / assessoria)
   ========================================================================== */
.slr-login{
  min-height:calc(100vh - 120px);
  display:flex;
  align-items:center;
  justify-content:center;
  background: var(--slr-bg-deep);
  background-image:
    radial-gradient(circle at 15% 20%, rgba(98,216,61,.10), transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(33,150,243,.12), transparent 45%);
  padding:32px 16px;
}
@media (min-width:768px){ .slr-login{ padding:64px 24px; } }

.slr-login__card{
  width:100%;
  max-width:460px;
  background: var(--slr-navy);
  border:1px solid var(--slr-border);
  border-radius: var(--slr-radius-lg);
  box-shadow: var(--slr-shadow-pop);
  padding:26px 20px 24px;
}
@media (min-width:480px){ .slr-login__card{ padding:40px 36px 36px; } }

.slr-login__logo{ text-align:center; margin-bottom:20px; }
.slr-login__logo img{ height:40px; margin:0 auto; max-width:160px; }
@media (min-width:480px){ .slr-login__logo img{ height:48px; } }

.slr-login__tabs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
  background: var(--slr-bg-deep);
  border-radius: var(--slr-radius-sm);
  padding:4px;
  margin-bottom:22px;
}
@media (min-width:480px){ .slr-login__tabs{ gap:6px; padding:5px; margin-bottom:28px; } }

.slr-login__tab{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  padding:9px 4px;
  border-radius:6px;
  background:transparent;
  border:0;
  color: var(--slr-muted);
  font-family: var(--slr-font-display);
  font-size:.62rem;
  text-transform:uppercase;
  letter-spacing:.01em;
  transition:background .15s ease, color .15s ease;
  min-width:0;
}
@media (min-width:480px){ .slr-login__tab{ padding:12px 6px; gap:6px; font-size:.72rem; } }
.slr-login__tab svg{ width:18px; height:18px; flex-shrink:0; }
@media (min-width:480px){ .slr-login__tab svg{ width:20px; height:20px; } }
.slr-login__tab.is-active{ background: var(--slr-green); color: var(--slr-navy); }
.slr-login__tab:not(.is-active):hover{ background:rgba(255,255,255,.06); color:var(--slr-white); }

.slr-login__panel{ display:none; }
.slr-login__panel.is-active{ display:block; animation: slrFadeIn .2s ease; }
@keyframes slrFadeIn{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:translateY(0); } }

.slr-login__heading{ text-align:center; margin-bottom:20px; }
.slr-login__heading h1{ color: var(--slr-white); font-size:1.1rem; margin-bottom:6px; }
@media (min-width:480px){ .slr-login__heading h1{ font-size:1.3rem; } }
.slr-login__heading p{ color: var(--slr-muted); font-size:.8rem; text-transform:none; margin:0; }
@media (min-width:480px){ .slr-login__heading p{ font-size:.85rem; } }

.slr-field{ margin-bottom:16px; }
@media (min-width:480px){ .slr-field{ margin-bottom:18px; } }
.slr-field label{
  display:block;
  font-family: var(--slr-font-display);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.03em;
  color: var(--slr-muted);
  margin-bottom:7px;
}
.slr-field__input{ position:relative; display:flex; align-items:center; }
.slr-field__input svg{ position:absolute; left:13px; width:17px; height:17px; color: var(--slr-muted); pointer-events:none; }
.slr-field__input input{
  width:100%;
  padding:12px 13px 12px 42px;
  background: var(--slr-bg-deep);
  border:1px solid var(--slr-border);
  border-radius: var(--slr-radius-sm);
  color: var(--slr-white);
  font-family: var(--slr-font-body);
  font-size:.9rem;
  transition:border-color .15s ease;
}
.slr-field__input input::placeholder{ color:#5b6b82; }
.slr-field__input input:focus{ outline:none; border-color: var(--slr-green); }
.slr-field__input .slr-toggle-pass{
  position:absolute; right:8px; left:auto;
  background:transparent; border:0; color: var(--slr-muted);
  pointer-events:auto; padding:6px;
}

.slr-login__row{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px; font-size:.78rem; flex-wrap:wrap; gap:8px;
}
.slr-login__remember{ display:flex; align-items:center; gap:7px; color: var(--slr-muted); }
.slr-login__remember input{ accent-color: var(--slr-green); width:14px; height:14px; }
.slr-login__forgot{ color: var(--slr-blue); }
.slr-login__forgot:hover{ text-decoration:underline; }

.slr-login__panel .slr-btn--block{ margin-bottom:16px; }
.slr-login__footer{ text-align:center; font-size:.78rem; color: var(--slr-muted); }
.slr-login__footer a{ color: var(--slr-green); }
.slr-login__footer a:hover{ text-decoration:underline; }

.slr-login__back{
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:20px; font-size:.78rem; color: var(--slr-muted);
}
.slr-login__back svg{ width:15px; height:15px; }
.slr-login__back:hover{ color: var(--slr-white); }

/* ==========================================================================
   Widescreen (>=1366px e >=1920px): teto de largura para nao esticar
   demais o conteudo, mantendo leitura confortavel em monitores grandes.
   ========================================================================== */
@media (min-width:1366px){
  :root{ --slr-container: min(1320px, 100% - 64px); }
}
@media (min-width:1920px){
  :root{ --slr-container: min(1440px, 100% - 96px); }
  body{ font-size:17px; }
}

/* ==========================================================================
   Faixa "Já é cliente?" — login grande e visível no topo da home
   ========================================================================== */
.slr-login-strip{
  background: var(--slr-navy);
  border-bottom: 3px solid transparent;
  border-image: var(--slr-gradient-energia) 1;
}
.slr-login-strip__inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:18px 16px;
  text-align:center;
}
.slr-login-strip__text{
  color: var(--slr-white, #fff);
  font-family: var(--slr-font-display);
  font-size:.85rem;
  letter-spacing:.02em;
}
.slr-login-strip__btn{
  font-size:.85rem;
  padding:12px 24px;
  box-shadow:0 0 0 3px rgba(98,216,61,.18);
}
@media (min-width:768px){
  .slr-login-strip__inner{ flex-direction:row; padding:22px 24px; gap:20px; }
  .slr-login-strip__text{ font-size:.95rem; }
}

/* Segunda linha da faixa — "Ainda não é cliente?" — separada da primeira
   por uma linha divisória, pra não parecer tudo grudado num bloco só. */
.slr-login-strip__inner--cadastro{
  padding-top:18px;
  padding-bottom:18px;
  border-top:1px solid rgba(255,255,255,.12);
}
.slr-login-strip__inner--cadastro .slr-login-strip__btn{
  box-shadow:none;
}
.slr-login-strip__cadastro-ctas{
  display:flex;
  flex-direction:column;
  gap:10px;
  width:100%;
}
@media (min-width:560px){
  .slr-login-strip__cadastro-ctas{ flex-direction:row; width:auto; }
}
@media (min-width:768px){
  .slr-login-strip__inner--cadastro{ padding-top:20px; padding-bottom:22px; }
}
.slr-login-strip__feed-teaser{
  text-align:center;
  font-size:.76rem;
  line-height:1.7;
  color: rgba(255,255,255,.7);
  padding:20px 16px 24px;
  margin:0;
  border-top:1px solid rgba(255,255,255,.12);
}
.slr-login-strip__feed-teaser strong{ color: var(--slr-white, #fff); }
@media (min-width:768px){
  .slr-login-strip__feed-teaser{ font-size:.84rem; max-width:680px; margin:0 auto; padding:24px 16px 28px; }
}

/* ==========================================================================
   Preço escalonado por número de alunos (Plano Assessoria)
   ========================================================================== */
.slr-plan__tiers{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:12px 0 18px;
  padding:14px;
  background:rgba(11,22,38,.03);
  border-radius:10px;
}
.slr-plan__tier{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  padding:4px 0;
  border-bottom:1px dashed rgba(11,22,38,.12);
}
.slr-plan__tier:last-child{ border-bottom:0; }
.slr-plan__tier-label{
  font-size:.78rem;
  color: var(--slr-muted-2, #555);
}
.slr-plan__tier-price{
  font-family: var(--slr-font-display);
  font-weight:700;
  font-size:.92rem;
  color: var(--slr-navy);
  text-align:right;
}
.slr-plan__tier-price small{
  font-weight:400;
  font-size:.68rem;
  opacity:.7;
}
.slr-plan--featured .slr-plan__tier-price{ color: var(--slr-green-deep, var(--slr-green)); }

/* ==========================================================================
   Rodapé — dados legais da empresa (CNPJ, CNAE, endereço, Simples Nacional)
   ========================================================================== */
.slr-footer__legal{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:24px;
  padding-top:16px;
  text-align:center;
}
.slr-footer__legal p{
  margin:0 0 6px;
  font-size:.72rem;
  line-height:1.6;
  color: rgba(255,255,255,.55);
}
.slr-footer__legal p:last-child{ margin-bottom:0; }
.slr-footer__legal strong{ color: rgba(255,255,255,.75); }

/* ==========================================================================
   Botão flutuante de WhatsApp
   ========================================================================== */
.slr-whatsapp-float{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:999;
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
  transition:transform .2s ease, box-shadow .2s ease;
  animation: slr-whatsapp-pulse 2.4s ease-in-out infinite;
}
.slr-whatsapp-float svg{ width:30px; height:30px; }
.slr-whatsapp-float:hover{
  transform:translateY(-3px) scale(1.05);
  box-shadow:0 10px 24px rgba(0,0,0,.32);
}
@media (min-width:768px){
  .slr-whatsapp-float{ right:28px; bottom:28px; width:62px; height:62px; }
  .slr-whatsapp-float svg{ width:34px; height:34px; }
}
@keyframes slr-whatsapp-pulse{
  0%, 100%{ box-shadow:0 6px 18px rgba(0,0,0,.28), 0 0 0 0 rgba(37,211,102,.5); }
  50%{ box-shadow:0 6px 18px rgba(0,0,0,.28), 0 0 0 10px rgba(37,211,102,0); }
}
@media (prefers-reduced-motion: reduce){
  .slr-whatsapp-float{ animation:none; }
}

/* ==========================================================================
   Termos de Uso / Política de Privacidade embutidos no rodapé (acordeão
   nativo <details>/<summary> — sem JS, funciona em qualquer navegador)
   ========================================================================== */
.slr-footer__legal-docs{
  padding:28px 0;
  border-bottom:1px solid var(--slr-border);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.slr-legal-accordion{
  border:1px solid var(--slr-border);
  border-radius:10px;
  padding:0;
  background:rgba(255,255,255,.02);
}
.slr-legal-accordion summary{
  cursor:pointer;
  list-style:none;
  padding:14px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-family: var(--slr-font-display);
  font-size:.85rem;
  color: var(--slr-white);
  letter-spacing:.02em;
}
.slr-legal-accordion summary::-webkit-details-marker{ display:none; }
.slr-legal-accordion summary::after{
  content:"+";
  font-size:1.1rem;
  color: var(--slr-green);
  flex-shrink:0;
  transition:transform .2s ease;
}
.slr-legal-accordion[open] summary::after{ transform:rotate(45deg); }
.slr-legal-accordion__toggle{
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color: var(--slr-green);
  margin-left:auto;
  margin-right:8px;
}
.slr-legal-accordion__body{
  padding:0 18px 20px;
  font-size:.8rem;
  line-height:1.75;
  color: var(--slr-muted);
  max-height:340px;
  overflow-y:auto;
}
.slr-legal-accordion__body h2{
  font-size:.95rem;
  color: var(--slr-white);
  margin:16px 0 8px;
}
.slr-legal-accordion__body h2:first-child{ margin-top:0; }
.slr-legal-accordion__body p{ margin:0 0 10px; font-size:.8rem; }
.slr-legal-accordion__body ul{ margin:0 0 10px; padding-left:18px; }
.slr-legal-accordion__body li{ margin-bottom:4px; }

/* ==========================================================================
   Selo "Em breve" — usado em recursos/itens ainda não lançados (ex.:
   Integração Garmin, que depende de aprovação externa da Garmin)
   ========================================================================== */
.slr-soon-tag{
  display:inline-block;
  vertical-align:middle;
  margin-left:6px;
  padding:2px 8px;
  border-radius:20px;
  font-family: var(--slr-font-body, inherit);
  font-size:.6rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  background: rgba(33,150,243,.12);
  color: var(--slr-blue, #2196f3);
  white-space:nowrap;
}
