/* ==============================
   Motion tokens (inspirado nas Apple HIG:
   curva de easing suave em vez de "ease" genérico)
   Os efeitos correm sempre da mesma forma, independentemente
   das preferências/definições do sistema do visitante.
============================== */
:root{
  --ease-hig: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Efeito de revelação ao scroll (ver assets/js/custom.js) */
.reveal-on-scroll{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .6s var(--ease-hig), transform .6s var(--ease-hig);
  will-change: opacity, transform;
}

.reveal-on-scroll.is-visible{
  opacity: 1;
  transform: translateY(0);
}

/* ==============================
   Materiais (material.html)
   CSS extra / overrides
============================== */

.materials-hero{
  padding-top:120px;
  padding-bottom:25px;
}

.materials-hero .section-heading p{
  max-width:760px;
  margin:8px auto 0;
  color:#666;
}

/* ==============================
   Filtros modernos
============================== */

.filters-modern{
  background:#fff;
  border-radius:18px;
  padding:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  margin-top:18px;
  margin-bottom:22px;

  position:sticky;
  top:90px;
  z-index:10;
}

.filters-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:flex-end;
}

.filters-group{
  min-width:180px;
  flex:0 0 auto;
}

.filters-search{
  flex:1 1 260px;
  min-width:220px;
}

.filters-label{
  display:block;
  font-weight:800;
  font-size:13px;
  margin:0 0 6px;
  opacity:.75;
}

.filters-select,
.filters-input{
  border-radius:14px;
  border:1px solid rgba(0,0,0,.10);
  box-shadow:none !important;
}

.filters-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:12px;
}

.filters-clear{
  border-radius:14px;
  font-weight:800;
}

.filters-meta{
  font-size:14px;
  color:#666;
}

/* ==============================
   PDFs nos cards (toggle + chips)
============================== */

.pdf-area{
  margin-top:10px;
}

.pdf-toggle{
  width:100%;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  border-radius:14px;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:800;
  cursor:pointer;
  transition:transform .15s var(--ease-hig), box-shadow .15s var(--ease-hig);
}

.pdf-toggle:hover{
  box-shadow:0 10px 22px rgba(0,0,0,.08);
  transform:translateY(-1px);
}

.pdf-toggle .chev{
  transition:transform .2s var(--ease-hig);
}

.pdf-toggle[aria-expanded="true"] .chev{
  transform:rotate(180deg);
}

.pdf-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}

.pdf-links a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  font-weight:800;
  color:inherit;
  text-decoration:none;
  transition:transform .12s var(--ease-hig), box-shadow .12s var(--ease-hig), opacity .12s var(--ease-hig);
}

.pdf-links a:hover{
  box-shadow:0 10px 22px rgba(0,0,0,.08);
  transform:translateY(-1px);
  opacity:.98;
}

/* ==============================
   Ajustes pequenos
============================== */

.events_item .down-content p{
  margin:8px 0 0;
  color:#666;
  font-size:14px;
}

/* ==============================
   Mobile
============================== */

@media (max-width: 576px){
  .filters-modern{
    top:80px;
    padding:14px;
  }
  .filters-group{
    min-width:140px;
  }
  .filters-actions{
    width:100%;
    justify-content:space-between;
  }
}


.section-subtitle{
  font-weight:800;
  font-size:22px;
  padding-left:10px;
  border-left:5px solid #7a6ad8;
}

.school-card-link{
  display:block;
  text-decoration:none;
  color:inherit;
}






:root{
  --brand:#5b4ef5;
  --brand2:#7c3aed;
}

body{
  font-family:"Poppins",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

/* Topbar */
.topbar{
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.75);
  border-bottom: 1px solid rgba(0,0,0,.06);
}

.brand-dot{
  width:.55rem;
  height:.55rem;
  border-radius:999px;
  display:inline-block;
  background: linear-gradient(135deg,var(--brand),var(--brand2));
}

/* HERO (clean, sem fundo/gradiente) */
.hero{
  padding: clamp(2rem, 4vw, 4rem) 0;
  background: transparent;
  border-radius: 0;
  position: relative;
  overflow: visible;
}

.hero::after{
  display:none;
}

.hero h1{
  font-weight:700;
  letter-spacing:-0.5px;
  line-height:1.15;
}

.hero p{
  font-size:1.05rem;
  max-width:540px;
}

/* Linha de acento minimalista antes do título */
.hero-title{
  position: relative;
  display: block !important;   /* <- deixa de ser inline-block */
  padding-top: 1rem;
}

.hero-title::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 48px;
  height: 4px;
  border-radius: 4px;
  background: linear-gradient(90deg,var(--brand),var(--brand2));
}

/* Imagem (se usares) */
.hero-img{
  border-radius:1rem;
  box-shadow:0 16px 40px rgba(0,0,0,.10);
}

/* Chip */
.chip{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.35rem .65rem;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.05);
  background:#f8f9fa;
  font-size:.85rem;
}

/* Search wrap (se existir) */
.search-wrap{
  border-radius:1rem;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
}

/* Materiais */
.material-item:first-child{
  border-top:0 !important;
  padding-top:.25rem !important;
}

/* Botões moderninhos */
.btn-pill{
  border-radius: 999px !important;
  padding: .5rem .9rem !important;
  font-weight: 600;
  letter-spacing: .2px;
  border: 1px solid rgba(0,0,0,.10) !important;
  background: #fff !important;
  transition: transform .12s var(--ease-hig), box-shadow .12s var(--ease-hig), border-color .12s var(--ease-hig);
}

.btn-pill:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
  border-color: rgba(91,78,245,.35) !important;
}

.btn-pill:active{
  transform: translateY(0);
  box-shadow: none;
}

/* Ícone pequeno opcional */
.btn-pill i{
  margin-right: .45rem;
  opacity: .9;
}

/* Lista de PDFs no modal */
.pdf-list{
  display: grid;
  gap: .75rem;
}

.pdf-item{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: .85rem .9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  background: #fff;
}

.pdf-meta{
  display:flex;
  flex-direction: column;
  gap:.15rem;
}

.pdf-title{
  font-weight: 650;
  margin: 0;
  font-size: .98rem;
}

.pdf-sub{
  margin: 0;
  font-size: .85rem;
  color: rgba(0,0,0,.55);
}

.pdf-reveal{
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s var(--ease-hig), margin-top .35s var(--ease-hig);
}

.pdf-reveal.active{
  margin-top: 10px;
  max-height: 500px;
  overflow: visible;   /* 👈 IMPORTANTE */
}

.pdf-grid{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.pdf-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .5rem .9rem;
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: .2px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: transform .18s var(--ease-hig), box-shadow .18s var(--ease-hig), background-color .18s var(--ease-hig), border-color .18s var(--ease-hig), color .18s var(--ease-hig);
}

.pdf-link::before{
  content: "\f1c1";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-size: .85em;
  opacity: .7;
  transition: opacity .18s var(--ease-hig), transform .18s var(--ease-hig);
}

.pdf-link:hover{
  background-color: #7a6ad8 !important;
  border-color: #7a6ad8 !important;
  color: #fff !important;
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 14px 26px rgba(122,106,216,.35);
}

.pdf-link:hover::before{
  opacity: 1;
  transform: translateY(-1px);
}

.pdf-link:active{
  transform: translateY(-1px) scale(1);
  box-shadow: 0 6px 14px rgba(122,106,216,.3);
}

.pdf-trigger.is-open{
  border-color: rgba(91,78,245,.45) !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
}


.hero-actions{
  position: relative;
}

.hero-back-btn{
  position: absolute;
  top: 0;
  right: 0;

  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
  color: #111;

  padding: .4rem .9rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;

  transition: all .15s var(--ease-hig);
}

.hero-back-btn:hover{
  background: #f8f9fa;
  border-color: rgba(91,78,245,.35);
}

/* Mobile */
@media (max-width: 991.98px){
  .hero-back-btn{
    position: static;
    display: inline-block;
    margin-top: 8px;
  }
}

.hero-bottom-action{
  display: flex;
  justify-content: flex-end;
}



body.materials-page main.container{
  padding-top: 60px; /* desktop/tablet */
}




/* =========================================================
   1) Sticky footer SEM alterar o look do footer (desktop)
   ========================================================= */
html, body { height: 100%; }

body{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Empurra o footer para o fundo quando há pouco conteúdo */
main{
  flex: 1 0 auto;
  position: relative;
  z-index: 1;
}

.site-footer{
  margin-top: auto;
}


/* =========================================================
   FUN FACTS (fix completo: sem cortes + espaçamento igual)
   Cola NO FIM do CSS
   ========================================================= */

.section.fun-facts,
.fun-facts{
  position: relative;
  overflow: visible !important;                 /* <- remove o corte */
  padding: clamp(80px, 10vw, 140px) 0 !important; /* espaço igual top/bottom */
}

/* Mantém o “shape” roxo, mas sem forçar cortes */
.fun-facts::before{
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  width: 95%;
  height: 100%;
  background-color: #7a6ad8;
  border-top-right-radius: 500px;
  border-bottom-right-radius: 500px;
}

/* Elemento decorativo do template */
.fun-facts::after{
  content: '';
  position: absolute;
  left: 15%;
  top: 0;
  opacity: 0.5;
  width: 318px;
  height: 119px;
  z-index: 2;
  pointer-events: none;
  background: url(../images/contact-dec-01.png);
}

/* Garante que o conteúdo fica SEMPRE acima do fundo */
.fun-facts .container,
.fun-facts .wrapper{
  position: relative;
  z-index: 3;
}

/* Espaçamento vertical interno dos contadores */
.fun-facts .counter{
  text-align: center;
  margin: 22px 0; /* <- dá ar entre items sem esticar demais */
}

/* Tipografia (mantém o estilo do template) */
.fun-facts h2{
  color: #fff;
  font-size: 48px;
  font-weight: 700;
  line-height: 1.05;
  margin-bottom: 10px;
}

.fun-facts h2::after{
  content: '+';
  margin-left: 5px;
}

.fun-facts p{
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  margin: 0;
}

/* =========================
   MOBILE / TABLET
   ========================= */

/* Em ecrãs menores, os contadores ficam em colunas e crescem muito:
   aumentamos o “respiro” e evitamos que o shape fique “apertado” */
@media (max-width: 992px){
  .section.fun-facts,
  .fun-facts{
    padding: clamp(90px, 12vw, 160px) 0 !important;
  }

  .fun-facts::before{
    width: 100%; /* <- evita cortes laterais e melhora o encaixe */
  }
}

/* Em mobile, mais altura real e curva um pouco menos agressiva */
@media (max-width: 576px){
  .section.fun-facts,
  .fun-facts{
    padding: 110px 0 !important;   /* <- resolve corte topo/fundo */
  }

  .fun-facts::before{
    width: 100%;
    border-top-right-radius: 260px;
    border-bottom-right-radius: 260px;
  }

  .fun-facts h2{
    font-size: 42px;
  }

  .fun-facts .counter{
    margin: 26px 0;               /* mais ar entre linhas */
  }

  .fun-facts::after{
    left: 5%;
    opacity: 0.25;                /* mais subtil em mobile */
  }
}



/* =========================
   PRICING (cores do site)
   ========================= */

/* =========================
   PRICING (coerente com o template)
   ========================= */

#pricing{
  --brand: #7a6ad8;
  --brand-2: #9b8cf2;
  --ink: #1e1e1e;
  --muted: rgba(30,30,30,.70);
  --card: #ffffff;
  --line: rgba(0,0,0,.08);
  --shadow: 0 10px 25px rgba(0,0,0,.06);
}

/* Heading: não deixar o H2 em caps */
#pricing .section-heading h2{
  text-transform: none !important;
  letter-spacing: normal !important;
  color: #7a6ad8;
}

#services .section-heading h2{
  color: #7a6ad8;
}

/* Card */
#pricing .pricing-card{
  background: var(--card);
  border-radius: 16px;
  border: 1px solid var(--line);
  box-shadow: none;
  overflow: hidden;
}

/* Cabeçalho */
#pricing .pricing-card__head{
  padding: 28px 28px 0;
}

#pricing .pricing-card__head h3{
  color: var(--ink);
  margin: 0;
  font-weight: 700;
  letter-spacing: normal;
  text-transform: none;
  text-align: left;
  font-size: 20px;
}

/* Conteúdo */
#pricing .pricing-list{
  padding: 20px 28px 8px;
}

#pricing .pricing-row{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
}

#pricing .pricing-row:first-child{
  border-top: 0;
}

#pricing .pricing-row span{
  font-weight: 500;
  color: var(--ink);
  line-height: 1.25;
}

#pricing .pricing-row span .pricing-row__sub{
  display: block;
  font-weight: 400;
  color: var(--muted);
  font-size: 12px;
  margin-top: 2px;
}

#pricing .pricing-row strong{
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
  font-size: 17px;
}

#pricing .pricing-row strong small{
  display: block;
  font-weight: 500;
  color: var(--muted);
  font-size: 12px;
  margin-left: 0;
  text-align: right;
  white-space: nowrap;
}

/* Nota associada a uma linha específica (ex: online ao par) */
#pricing .pricing-row-note{
  margin: -6px 0 14px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--muted);
}

/* Destaque "ao par" */
#pricing .pricing-row--highlight{
  background: transparent;
  border-radius: 0;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  margin-top: 0;
  position: relative;
  padding-left: 16px;
}

#pricing .pricing-row--highlight::before{
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  bottom: 16px;
  width: 2px;
  background: var(--brand);
}

/* Nota */
#pricing .pricing-note{
  margin: 16px 0 0;
  font-size: 13px;
  line-height: 20px;
  color: var(--muted);
}

/* Ações */
#pricing .pricing-actions{
  padding: 24px 28px 28px;
}

#pricing .pricing-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 22px;
  border-radius: 8px;
  font-weight: 600;
  letter-spacing: .2px;
  font-size: 14px;
  background: var(--brand);
  color: #fff !important;
  text-decoration: none;
  transition: opacity .15s var(--ease-hig);
}

#pricing .pricing-btn:hover{
  opacity: .85;
}

#pricing .pricing-btn--ghost{
  background: transparent;
  color: var(--brand) !important;
  border: 1px solid var(--line);
}

#pricing .pricing-btn--ghost:hover{
  background: rgba(0,0,0,.03);
  opacity: 1;
}

/* =========================
   FIX: no mobile, garantir espaço entre os cards
   (mesmo que o template tente anular margens)
   ========================= */
@media (max-width: 991.98px){
  #pricing .pricing-card{
    margin-bottom: 18px !important;
  }
  /* como estás a usar row g-4, isto geralmente já resolve,
     mas este margin-bottom garante sempre */
}

/* Ajustes para telemóvel */
@media (max-width: 575.98px){
  #pricing .pricing-list{
    padding: 16px;
  }
  #pricing .pricing-card__head{
    padding: 14px;
  }
  #pricing .pricing-row strong{
    font-size: 16px;
  }
}

/* =========================
   PÁGINAS DE SERVIÇO (Explicações, Recursos, Línguas)
   ========================= */
.service-eyebrow{
  color: #7a6ad8;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 10px;
}

.service-heading{
  font-size: clamp(24px, 3vw, 32px);
  font-weight: 700;
  color: #1e1e1e;
  line-height: 1.25;
}

.service-lead{
  color: rgba(30,30,30,.72);
  font-size: 15.5px;
  line-height: 1.8;
  max-width: 760px;
}

.service-feature-card{
  border: 1px solid rgba(0,0,0,.08);
  border-left: 3px solid #7a6ad8;
  border-radius: 14px;
  padding: 24px;
  background: #fff;
}

.service-feature-card__icon{
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #7a6ad8;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 16px;
}

.service-feature-card h4{
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 6px;
}

.service-feature-card p{
  font-size: 14px;
  color: rgba(30,30,30,.7);
  margin: 0;
}

/* --- Cartões de equipa (sem foto: avatar com iniciais) --- */
.team-card{
  height: 100%;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  padding: 28px 22px;
  text-align: center;
}

.team-card__avatar{
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: linear-gradient(135deg, #7a6ad8, #9b8cf2);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .02em;
}

/* --- Variante com foto grande (não redonda) --- */
.team-card--photo{
  padding: 0;
  overflow: hidden;
}

.team-card__photo{
  display: block;
  width: 100%;
  height: 280px;
  object-fit: cover;
  object-position: top center;
}

.team-card--photo .team-card__body{
  padding: 22px 22px 28px;
}

.team-card h4{
  font-size: 17px;
  font-weight: 700;
  color: #1e1e1e;
  margin-bottom: 4px;
}

.team-card__role{
  display: block;
  font-size: 12.5px;
  font-weight: 600;
  color: #7a6ad8;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 14px;
}

.team-card p{
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(30,30,30,.7);
  flex: 1 0 auto;
  margin-bottom: 18px;
}

.team-card__cta{
  align-self: center;
  background: transparent;
  border: 1px solid rgba(122,106,216,.35);
  color: #7a6ad8;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 20px;
  border-radius: 999px;
  transition: background-color .15s var(--ease-hig), color .15s var(--ease-hig);
}

.team-card__cta:hover{
  background-color: #7a6ad8;
  color: #fff;
}

/* --- Abordagem: bloco editorial/irreverente --- */
.approach-section{
  position: relative;
}

.approach-quote{
  position: absolute;
  top: -60px;
  right: 0;
  font-family: Georgia, serif;
  font-size: 260px;
  line-height: 1;
  color: rgba(122,106,216,.08);
  z-index: -1;
  user-select: none;
  pointer-events: none;
}

.approach-heading{
  font-size: clamp(32px, 4.2vw, 52px);
  font-weight: 800;
  color: #1e1e1e;
  line-height: 1.12;
  letter-spacing: -.01em;
  margin-bottom: 24px;
}

.approach-highlight{
  position: relative;
  color: #1e1e1e;
  background: linear-gradient(180deg, transparent 62%, rgba(242,166,255,.55) 62%);
  padding: 0 2px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.approach-lead{
  color: rgba(30,30,30,.75);
  font-size: 18px;
  line-height: 1.7;
  max-width: 620px;
}

.approach-photo{
  max-width: 380px;
  margin-left: auto;
  margin-top: 90px;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(20,14,55,.12);
}

.approach-photo img{
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
}

@media (max-width: 991.98px){
  .approach-photo{
    max-width: 100%;
    margin-top: 32px;
  }
  .approach-photo img{
    height: 260px;
  }
}

.approach-point{
  position: relative;
  padding-top: 8px;
}

.approach-point__num{
  display: block;
  font-size: 52px;
  font-weight: 800;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(122,106,216,.4);
  line-height: 1;
  margin-bottom: 8px;
}

.approach-point h4{
  font-size: 19px;
  font-weight: 700;
  color: #1e1e1e;
  margin-bottom: 8px;
}

.approach-point p{
  font-size: 15px;
  color: rgba(30,30,30,.7);
  line-height: 1.65;
  max-width: 380px;
  margin: 0;
}

@media (max-width: 767.98px){
  .approach-quote{
    display: none;
  }
}

.service-oferta-section{
  background: #f6f5fc;
  border-radius: 24px;
}

.service-block{
  margin-bottom: 44px;
}

.service-block .accordion{
  margin-top: 24px;
}

.service-block__head{
  display: block;
  background: rgba(122,106,216,.12);
  color: #1e1e1e;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
  font-size: 19px;
  padding: 16px 24px;
  border-radius: 12px;
  margin-bottom: 18px;
}

.service-block__text{
  color: rgba(30,30,30,.75);
  font-size: 15px;
  line-height: 1.75;
  margin-bottom: 18px;
  max-width: none;
}

.subject-pills{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.subject-pill{
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 999px;
  background: #fff;
  color: #4a3f8f;
  font-size: 13.5px;
  font-weight: 500;
  border: 1px solid rgba(122,106,216,.2);
  cursor: pointer;
  transition: background-color .15s var(--ease-hig), border-color .15s var(--ease-hig), transform .1s var(--ease-hig);
}

.subject-pill:hover{
  background: #7a6ad8;
  color: #fff;
  border-color: #7a6ad8;
  transform: translateY(-1px);
}

.exam-pill{
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.1);
  color: #1e1e1e;
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color .15s var(--ease-hig), border-color .15s var(--ease-hig), transform .1s var(--ease-hig);
}

.exam-pill:hover{
  background: #7a6ad8;
  color: #fff;
  border-color: #7a6ad8;
  transform: translateY(-1px);
}

/* --- Modal de pedido de informação --- */
.info-modal{
  border: none;
  border-radius: 20px;
  overflow: hidden;
}

.info-modal__header{
  background: #7a6ad8;
  color: #fff;
  border: none;
  padding: 22px 26px;
}

.info-modal__header .modal-title{
  font-weight: 700;
  font-size: 20px;
}

.info-modal .modal-body{
  padding: 26px;
}

.info-modal__intro{
  color: rgba(30,30,30,.7);
  font-size: 15px;
  line-height: 1.6;
  margin-bottom: 22px;
}

.info-modal__input{
  border-radius: 10px;
  padding: 12px 16px;
  border: 1px solid rgba(0,0,0,.12);
  font-size: 14.5px;
}

.info-modal__input:focus{
  border-color: #7a6ad8;
  box-shadow: 0 0 0 3px rgba(122,106,216,.15);
}

.info-modal__submit{
  background: #7a6ad8;
  color: #fff;
  border-radius: 999px;
  padding: 13px;
  font-weight: 700;
  border: none;
  transition: opacity .15s var(--ease-hig);
}

.info-modal__submit:hover{
  opacity: .9;
  color: #fff;
  background: #7a6ad8;
  border-color: transparent;
}

@media (max-width: 575.98px){
  .service-block__head{
    font-size: 17px;
    padding: 14px 18px;
  }
}

/* =========================
   BREADCRUMB (páginas internas)
   ========================= */
.page-breadcrumb{
  background: #f7f7f9;
  padding: 96px 0 16px;
  margin-bottom: 0;
}

.page-breadcrumb a{
  color: #7a6ad8;
  font-weight: 600;
  text-decoration: none;
}

.page-breadcrumb a:hover{
  text-decoration: underline;
}

.page-breadcrumb .sep{
  margin: 0 8px;
  color: rgba(30,30,30,.4);
}

.page-breadcrumb .current{
  color: #1e1e1e;
  font-weight: 500;
}

/* =========================
   COOKIE CONSENT
   ========================= */
.cookie-consent{
  position: fixed;
  left: 20px;
  bottom: 20px;
  z-index: 2000;
  width: 380px;
  max-width: calc(100vw - 40px);
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 20px 50px rgba(30,20,60,.18);
  padding: 22px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .3s var(--ease-hig), transform .3s var(--ease-hig);
  pointer-events: none;
}

.cookie-consent.is-visible{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.cookie-consent__head{
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 14px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(30,30,30,.08);
}

.cookie-consent__icon{
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(122,106,216,.12);
  color: #7a6ad8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}

.cookie-consent__title{
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: #1e1e1e;
}

.cookie-consent__text{
  margin: 0 0 18px;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(30,30,30,.7);
}

.cookie-consent__text a{
  color: #7a6ad8;
  font-weight: 600;
  text-decoration: underline;
}

.cookie-consent__actions{
  display: flex;
  gap: 10px;
}

.cookie-consent__btn{
  flex: 1;
  border-radius: 999px;
  padding: 11px 16px;
  font-size: 13.5px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: opacity .15s var(--ease-hig), transform .12s var(--ease-hig);
}

.cookie-consent__btn:active{
  transform: translateY(1px);
}

.cookie-consent__btn--accept{
  background: #7a6ad8;
  color: #fff;
}

.cookie-consent__btn--accept:hover{
  opacity: .9;
}

.cookie-consent__btn--reject{
  background: #fff;
  color: #1e1e1e;
  border: 1px solid rgba(0,0,0,.15);
}

.cookie-consent__btn--reject:hover{
  border-color: rgba(122,106,216,.4);
}

@media (max-width: 480px){
  .cookie-consent{
    left: 50%;
    bottom: 12px;
    width: calc(100vw - 24px);
    transform: translate(-50%, 16px);
  }

  .cookie-consent.is-visible{
    transform: translate(-50%, 0);
  }
}
