/* ========================================================================== 
   V6.5 — SITE PÚBLICO CONSOLIDADO
   Tipografia responsiva, contraste claro/escuro, formulários e perfis públicos.
   ========================================================================== */
:root{
  --sport-focus:rgba(206,17,38,.20);
  --sport-button-dark:#111214;
  --sport-button-light:#ffffff;
  --sport-form-accent:#E21D31;
}
html[data-theme="dark"]{
  --sport-focus:rgba(255,212,0,.20);
  --sport-button-dark:#f8fafc;
  --sport-button-light:#151516;
  --sport-form-accent:#ffd400;
}

/* Tipografia principal: mantém impacto sem ultrapassar a área útil. */
.sport-slide-copy{width:min(100%,900px);max-width:min(62vw,900px)}
.sport-slide h1{
  max-width:900px;
  margin-top:22px;
  font-size:clamp(58px,6.25vw,104px);
  line-height:.91;
  letter-spacing:.005em;
  overflow-wrap:normal;
  word-break:normal;
  text-wrap:balance;
  hyphens:none;
}
.sport-slide h1 strong{margin-top:.04em}
.sport-slide h1.sport-title-long{font-size:clamp(54px,5.65vw,94px);line-height:.92}
.sport-slide h1.sport-title-compact{font-size:clamp(50px,5.05vw,84px);line-height:.94;max-width:960px}
.sport-slide h1.sport-title-very-long{font-size:clamp(46px,4.6vw,76px);line-height:.96;max-width:1000px}
.sport-page-hero h1{
  font-size:clamp(48px,5.7vw,90px);
  line-height:.94;
  letter-spacing:.006em;
  max-width:1040px;
  overflow-wrap:normal;
  word-break:normal;
}
.sport-page-hero h1.sport-title-long{font-size:clamp(45px,5.1vw,80px)}
.sport-page-hero h1.sport-title-compact{font-size:clamp(42px,4.55vw,72px);line-height:.97}
.sport-page-hero h1.sport-title-very-long{font-size:clamp(39px,4vw,64px);line-height:1}

/* Marca alinhada no cabeçalho e no rodapé. */
.sport-brand{align-items:center;gap:14px}
.sport-brand>span:last-child{display:grid;align-content:center;gap:5px}
.sport-brand b{
  line-height:1.08;
  letter-spacing:.045em;
  white-space:nowrap;
  text-rendering:geometricPrecision;
}
.sport-brand small{margin:0;letter-spacing:.075em;line-height:1.2}
.sport-logo{flex:0 0 auto}
.sport-footer-brand{display:flex;align-items:center;gap:15px;color:#fff;text-decoration:none;margin-bottom:22px}
.sport-footer-brand>span:first-child{width:74px;height:74px;display:grid;place-items:center;background:#fff;clip-path:polygon(0 0,100% 0,100% 80%,80% 100%,0 100%)}
.sport-footer-brand img{width:62px!important;height:62px!important;padding:0!important;background:transparent!important;object-fit:contain}
.sport-footer-brand h3{margin:0;font-size:27px;line-height:1.05;letter-spacing:.045em}
.sport-footer-brand small{display:block;margin-top:6px;color:#9dafc4;font-size:10px;letter-spacing:.08em}

/* Contraste sem exceções acidentais entre os dois temas. */
html[data-theme="light"] .sport-about,
html[data-theme="light"] .sport-history,
html[data-theme="light"] .sport-values,
html[data-theme="light"] .sport-events,
html[data-theme="light"] .sport-team,
html[data-theme="light"] .sport-gallery,
html[data-theme="light"] .sport-page-content,
html[data-theme="light"] .sport-contact-page,
html[data-theme="light"] .sport-registration-page,
html[data-theme="light"] .sport-graduation-list,
html[data-theme="light"] .sport-profile-page,
html[data-theme="light"] .sport-nucleus-detail,
html[data-theme="light"] .sport-nucleus-responsibles{
  color:#0B0B0C!important;
}
html[data-theme="light"] .sport-about h1,
html[data-theme="light"] .sport-about h2,
html[data-theme="light"] .sport-about h3,
html[data-theme="light"] .sport-history h1,
html[data-theme="light"] .sport-history h2,
html[data-theme="light"] .sport-values h1,
html[data-theme="light"] .sport-values h2,
html[data-theme="light"] .sport-team h1,
html[data-theme="light"] .sport-team h2,
html[data-theme="light"] .sport-gallery h1,
html[data-theme="light"] .sport-gallery h2,
html[data-theme="light"] .sport-page-content h1,
html[data-theme="light"] .sport-page-content h2,
html[data-theme="light"] .sport-profile-page h1,
html[data-theme="light"] .sport-profile-page h2,
html[data-theme="light"] .sport-nucleus-detail h1,
html[data-theme="light"] .sport-nucleus-detail h2,
html[data-theme="light"] .sport-nucleus-responsibles h1,
html[data-theme="light"] .sport-nucleus-responsibles h2{
  color:#0B0B0C!important;
}
html[data-theme="light"] .sport-about p,
html[data-theme="light"] .sport-history p,
html[data-theme="light"] .sport-values p,
html[data-theme="light"] .sport-team p,
html[data-theme="light"] .sport-gallery p,
html[data-theme="light"] .sport-page-content p,
html[data-theme="light"] .sport-profile-page p,
html[data-theme="light"] .sport-nucleus-detail p,
html[data-theme="light"] .sport-nucleus-responsibles p{
  color:#526078!important;
}
html[data-theme="dark"] .sport-about,
html[data-theme="dark"] .sport-history,
html[data-theme="dark"] .sport-values,
html[data-theme="dark"] .sport-events,
html[data-theme="dark"] .sport-team,
html[data-theme="dark"] .sport-gallery,
html[data-theme="dark"] .sport-page-content,
html[data-theme="dark"] .sport-contact-page,
html[data-theme="dark"] .sport-registration-page,
html[data-theme="dark"] .sport-graduation-list,
html[data-theme="dark"] .sport-profile-page,
html[data-theme="dark"] .sport-nucleus-detail,
html[data-theme="dark"] .sport-nucleus-responsibles{
  background:var(--sport-page-bg)!important;
  color:var(--sport-title)!important;
}

/* Secções que são deliberadamente escuras, em qualquer tema. */
.sport-projects,
.sport-nuclei,
.sport-map-section,
.sport-profile-nuclei,
.sport-nucleus-class,
.sport-dark-feature{
  background:#0B0B0C!important;
  color:#fff!important;
}
.sport-profile-nuclei{background:linear-gradient(135deg,#0B0B0C,#CE1126)!important}
.sport-nucleus-class{background:linear-gradient(135deg,#0B0B0C,#321116)!important}
.sport-projects h1,.sport-projects h2,.sport-projects h3,.sport-projects p,
.sport-nuclei h1,.sport-nuclei h2,.sport-nuclei h3,
.sport-map-section h1,.sport-map-section h2,.sport-map-section h3,.sport-map-section p,
.sport-profile-nuclei h1,.sport-profile-nuclei h2,.sport-profile-nuclei h3,.sport-profile-nuclei p,
.sport-nucleus-class h1,.sport-nucleus-class h2,.sport-nucleus-class h3,.sport-nucleus-class p{
  color:#fff!important;
}
.sport-projects .sport-section-tag,.sport-nuclei .sport-section-tag,.sport-map-section .sport-section-tag,.sport-profile-nuclei .sport-section-tag,.sport-nucleus-class .sport-section-tag{color:var(--sport-yellow)!important}

/* Botões com contraste garantido em todos os fundos. */
.sport-btn{position:relative;isolation:isolate;overflow:hidden;font-weight:950;text-shadow:none!important}
.sport-btn::after{content:"";position:absolute;z-index:-1;inset:50% auto auto 50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.28);transform:translate(-50%,-50%);transition:width .35s ease,height .35s ease}
.sport-btn:hover::after{width:280px;height:280px}
.sport-btn.primary{background:var(--sport-yellow)!important;color:#0B0B0C!important;border-color:var(--sport-yellow)!important}
.sport-btn.primary:hover,.sport-btn.primary:focus-visible{background:#ffe45e!important;color:#0B0B0C!important;border-color:#ffe45e!important}
.sport-btn.dark{background:#0B0B0C!important;color:#fff!important;border:1px solid #0B0B0C!important}
.sport-btn.dark:hover,.sport-btn.dark:focus-visible{background:#E21D31!important;color:#fff!important;border-color:#E21D31!important}
.sport-btn.ghost{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.72)!important}
.sport-btn.ghost:hover,.sport-btn.ghost:focus-visible{background:#fff!important;color:#0B0B0C!important;border-color:#fff!important}
html[data-theme="light"] .sport-about .sport-btn.ghost,
html[data-theme="light"] .sport-history .sport-btn.ghost,
html[data-theme="light"] .sport-values .sport-btn.ghost,
html[data-theme="light"] .sport-events .sport-btn.ghost,
html[data-theme="light"] .sport-team .sport-btn.ghost,
html[data-theme="light"] .sport-gallery .sport-btn.ghost,
html[data-theme="light"] .sport-contact-page .sport-btn.ghost,
html[data-theme="light"] .sport-profile-page .sport-btn.ghost,
html[data-theme="light"] .sport-nucleus-detail .sport-btn.ghost{
  color:#0B0B0C!important;border-color:#0B0B0C!important
}
html[data-theme="light"] .sport-about .sport-btn.ghost:hover,
html[data-theme="light"] .sport-history .sport-btn.ghost:hover,
html[data-theme="light"] .sport-values .sport-btn.ghost:hover,
html[data-theme="light"] .sport-events .sport-btn.ghost:hover,
html[data-theme="light"] .sport-team .sport-btn.ghost:hover,
html[data-theme="light"] .sport-gallery .sport-btn.ghost:hover,
html[data-theme="light"] .sport-contact-page .sport-btn.ghost:hover,
html[data-theme="light"] .sport-profile-page .sport-btn.ghost:hover,
html[data-theme="light"] .sport-nucleus-detail .sport-btn.ghost:hover{
  background:#0B0B0C!important;color:#fff!important
}
.sport-btn[disabled],.sport-btn[aria-disabled="true"]{opacity:.52;cursor:not-allowed;filter:grayscale(.15)}

/* Formulários com hierarquia visual, animação e estados claros. */
.sport-animated-form{position:relative;isolation:isolate}
.sport-animated-form::before{content:"";position:absolute;z-index:-1;left:-80px;top:-110px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(206,17,38,.16),transparent 70%);pointer-events:none}
.sport-contact-form,.sport-form-shell,.sport-event-form{
  border:1px solid var(--sport-line)!important;
  background:var(--sport-card)!important;
  box-shadow:0 26px 70px rgba(0,25,70,.14)!important;
}
html[data-theme="dark"] .sport-contact-form,html[data-theme="dark"] .sport-form-shell,html[data-theme="dark"] .sport-event-form{box-shadow:0 28px 76px rgba(0,0,0,.36)!important}
.sport-form-heading{display:flex!important;grid-template-columns:none!important;align-items:center;gap:15px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--sport-line)}
.sport-form-heading>span{width:50px;height:50px;display:grid;place-items:center;background:var(--sport-yellow);color:#0B0B0C;clip-path:polygon(0 0,100% 0,100% 78%,78% 100%,0 100%)}
.sport-form-heading b{display:block;color:var(--sport-title);font-size:18px}
.sport-form-heading small{display:block;margin-top:5px;color:var(--sport-copy);font-size:12px}
.sport-form-section{counter-increment:site-form-step;position:relative;padding:26px!important;margin:0 0 18px;border:1px solid var(--sport-line)!important;background:linear-gradient(145deg,var(--sport-card),var(--sport-surface-alt));transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.sport-public-form{counter-reset:site-form-step}
.sport-form-section::after{content:counter(site-form-step,decimal-leading-zero);position:absolute;right:18px;top:10px;color:rgba(206,17,38,.08);font-family:Impact,"Arial Black",sans-serif;font-size:64px;line-height:1;pointer-events:none}
html[data-theme="dark"] .sport-form-section::after{color:rgba(255,212,0,.08)}
.sport-form-section:focus-within{transform:translateY(-3px);border-color:var(--sport-form-accent)!important;box-shadow:0 15px 35px var(--sport-focus)}
.sport-form-section>span{position:relative;z-index:1;color:var(--sport-blue-bright)!important;font-size:12px!important}
html[data-theme="dark"] .sport-form-section>span{color:var(--sport-yellow)!important}
.sport-animated-form label{transition:color .2s ease,transform .2s ease}
.sport-animated-form label:focus-within{color:var(--sport-blue-bright)!important;transform:translateY(-1px)}
html[data-theme="dark"] .sport-animated-form label:focus-within{color:var(--sport-yellow)!important}
.sport-animated-form input:not([type="checkbox"]):not([type="radio"]),
.sport-animated-form select,
.sport-animated-form textarea{
  min-height:52px;
  border-width:1px!important;
  border-radius:0;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease,background .2s ease!important;
}
.sport-animated-form textarea{min-height:122px;resize:vertical}
.sport-animated-form input:not([type="checkbox"]):not([type="radio"]):hover,
.sport-animated-form select:hover,
.sport-animated-form textarea:hover{border-color:#8095ad!important}
.sport-animated-form input:not([type="checkbox"]):not([type="radio"]):focus,
.sport-animated-form select:focus,
.sport-animated-form textarea:focus{transform:translateY(-2px);border-color:var(--sport-form-accent)!important;box-shadow:0 0 0 4px var(--sport-focus)!important}
.sport-animated-form label.is-filled{color:var(--sport-blue-bright)!important}
.sport-animated-form .field-invalid input,.sport-animated-form .field-invalid select,.sport-animated-form .field-invalid textarea{border-color:#dc3545!important;box-shadow:0 0 0 3px rgba(220,53,69,.13)!important}
.sport-consents{padding:18px;border:1px solid var(--sport-line);background:var(--sport-surface-alt);border-left:5px solid var(--sport-yellow)}
.sport-consents label{padding:10px 0!important;border-bottom:1px solid var(--sport-line)}
.sport-consents label:last-child{border-bottom:0}
.sport-consents input[type="checkbox"],.premium-form input[type="checkbox"]{accent-color:var(--sport-yellow);width:19px!important;height:19px!important;flex:0 0 19px}
.sport-turnstile-shell{position:relative;min-height:74px;margin:18px 0;padding:12px;border:1px solid var(--sport-line);background:var(--sport-surface-alt);display:grid;align-items:center;overflow:hidden}
.sport-turnstile-loading{display:flex;align-items:center;gap:12px;color:var(--sport-copy);font-size:12px;font-weight:800}
.sport-turnstile-loading i{width:38px;height:38px;display:grid;place-items:center;background:var(--sport-blue);color:#fff}
.sport-turnstile-shell.is-ready .sport-turnstile-loading{display:none}
.sport-turnstile-shell>div:not(.sport-turnstile-loading){max-width:100%}

/* Cartões da equipa clicáveis e páginas de biografia. */
.sport-person-card{overflow:hidden}
.sport-person-link{display:block;height:100%;color:inherit;text-decoration:none}
.sport-person-card:focus-within{outline:3px solid var(--sport-yellow);outline-offset:3px}
.sport-person-more{display:flex!important;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:14px;border-top:1px solid var(--sport-line);color:var(--sport-blue-bright)!important;font-size:11px!important;font-weight:950;letter-spacing:.06em;text-transform:uppercase}
.sport-person-card:hover .sport-person-more i{transform:translateX(5px)}
.sport-person-more i{transition:transform .2s ease}
.sport-person-placeholder{position:relative!important;display:grid!important;place-items:center!important;background:linear-gradient(145deg,#E21D31,#0B0B0C)!important}
.sport-person-placeholder img{position:absolute;width:92px!important;height:92px!important;object-fit:contain!important;opacity:.22!important;filter:none!important}
.sport-person-placeholder b{position:relative;z-index:2;color:#fff;font-family:Impact,sans-serif;font-size:58px;letter-spacing:.04em}
.sport-profile-page{background:var(--sport-surface)!important}
.sport-profile-layout{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:70px;align-items:center}
.sport-profile-identity{position:relative}
.sport-profile-photo{height:min(620px,68vw);max-height:620px;overflow:hidden;background:linear-gradient(145deg,#E21D31,#0B0B0C);clip-path:polygon(0 0,100% 0,100% 90%,90% 100%,0 100%);box-shadow:var(--sport-shadow)}
.sport-profile-photo>img{width:100%;height:100%;object-fit:cover;object-position:center top}
.sport-profile-photo>span{height:100%;display:grid;place-items:center;position:relative}
.sport-profile-photo>span img{position:absolute;width:160px;opacity:.18}
.sport-profile-photo>span b{position:relative;color:#fff;font-family:Impact,sans-serif;font-size:110px}
.sport-profile-badge{position:absolute;right:-28px;bottom:38px;max-width:300px;padding:18px 22px;display:flex;align-items:center;gap:14px;background:var(--sport-yellow);color:#0B0B0C;box-shadow:0 18px 45px rgba(0,0,0,.22);clip-path:polygon(0 0,100% 0,100% 78%,91% 100%,0 100%)}
.sport-profile-badge i{font-size:27px}.sport-profile-badge small,.sport-profile-badge b{display:block}.sport-profile-badge small{font-size:9px;text-transform:uppercase;letter-spacing:.09em}.sport-profile-badge b{margin-top:4px;font-size:16px;text-transform:uppercase}
.sport-profile-copy h2{margin:15px 0 0;color:var(--sport-title);font-family:Impact,sans-serif;font-size:clamp(50px,6vw,84px);line-height:.94;text-transform:uppercase}
.sport-profile-copy h3{margin:16px 0 0;color:var(--sport-blue-bright);font-size:24px}
.sport-profile-copy .sport-rich-copy{margin-top:30px}.sport-profile-copy .sport-rich-copy p{font-size:18px;line-height:1.85}
.sport-profile-meta{margin-top:28px;padding:18px;display:flex;align-items:center;gap:14px;background:var(--sport-surface-alt);border-left:5px solid var(--sport-yellow)}
.sport-profile-meta i{font-size:23px;color:var(--sport-blue-bright)}.sport-profile-meta small,.sport-profile-meta b{display:block}.sport-profile-meta small{color:var(--sport-copy);font-size:10px;text-transform:uppercase}.sport-profile-meta b{margin-top:4px;color:var(--sport-title)}
.sport-profile-nucleus-grid{grid-template-columns:repeat(3,1fr)}

/* Página do núcleo, responsáveis e turma. */
.sport-nucleus-detail{background:var(--sport-surface)!important}
.sport-nucleus-detail-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:stretch}
.sport-nucleus-detail .sport-map-panel iframe{height:100%;min-height:590px}
.sport-nucleus-facts{padding:42px;background:var(--sport-card);border:1px solid var(--sport-line);box-shadow:var(--sport-shadow)}
.sport-nucleus-facts h2{margin:15px 0 0;color:var(--sport-title);font-family:Impact,sans-serif;font-size:clamp(45px,5vw,72px);line-height:.94;text-transform:uppercase}
.sport-nucleus-facts>p{color:var(--sport-copy);line-height:1.75}
.sport-nucleus-fact-list{display:grid;gap:10px;margin-top:28px}
.sport-nucleus-fact-list>div{display:flex;align-items:center;gap:14px;padding:15px;background:var(--sport-surface-alt);border:1px solid var(--sport-line)}
.sport-nucleus-fact-list i{width:43px;height:43px;display:grid;place-items:center;background:var(--sport-blue);color:#fff}.sport-nucleus-fact-list small,.sport-nucleus-fact-list b{display:block}.sport-nucleus-fact-list small{color:var(--sport-copy);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.sport-nucleus-fact-list b{margin-top:4px;color:var(--sport-title);line-height:1.4}
.sport-public-people-grid{grid-template-columns:repeat(4,1fr)}
.sport-class-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sport-class-grid article{display:flex;align-items:center;gap:14px;min-height:96px;padding:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;transition:.22s ease}
.sport-class-grid article:hover{transform:translateY(-4px);background:rgba(255,255,255,.13);border-color:var(--sport-yellow)}
.sport-class-avatar{width:62px;height:62px;flex:0 0 62px;overflow:hidden;background:var(--sport-blue);display:grid;place-items:center;clip-path:polygon(0 0,100% 0,100% 82%,82% 100%,0 100%)}
.sport-class-avatar img{width:100%;height:100%;object-fit:cover;object-position:center top}.sport-class-avatar span{font-family:Impact,sans-serif;font-size:25px;color:#fff}
.sport-class-grid h3{margin:0!important;color:#fff!important;font-size:16px;text-transform:uppercase}.sport-class-grid p{margin:5px 0 0!important;color:#b9c8da!important;font-size:12px}
.sport-empty-dark{background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.22)!important;color:#fff!important}.sport-empty-dark h3,.sport-empty-dark p{color:#fff!important}

/* Pequenos ajustes estruturais. */
.sport-card-actions{row-gap:10px}
.sport-card-actions a{transition:.2s ease}
.sport-card-actions a:hover{transform:translateY(-2px)}
.sport-nucleus-grid article{min-height:330px}
.sport-nucleus-grid h3{line-height:1.02}
.sport-contact-grid{align-items:center}
.sport-contact-form{border-top:6px solid var(--sport-yellow)!important}

@media(max-width:1199px){
  .sport-slide-copy{max-width:min(78vw,780px)}
  .sport-slide h1{font-size:clamp(54px,8vw,88px)}
  .sport-slide h1.sport-title-long{font-size:clamp(50px,7.2vw,78px)}
  .sport-slide h1.sport-title-compact{font-size:clamp(47px,6.6vw,70px)}
  .sport-slide h1.sport-title-very-long{font-size:clamp(44px,6vw,64px)}
  .sport-profile-nucleus-grid,.sport-public-people-grid,.sport-class-grid{grid-template-columns:repeat(2,1fr)}
  .sport-nucleus-detail-grid{grid-template-columns:1fr}.sport-nucleus-detail .sport-map-panel iframe{min-height:480px}
}
@media(max-width:800px){
  .sport-profile-layout{grid-template-columns:1fr;gap:42px}.sport-profile-photo{height:520px}.sport-profile-badge{right:12px}.sport-profile-copy h2{font-size:54px}
}
@media(max-width:700px){
  .sport-brand{gap:9px}.sport-brand b{font-size:13px;letter-spacing:.028em}.sport-logo{width:44px;height:44px}.sport-logo img{width:37px;height:37px}
  .sport-slide-copy{max-width:100%}
  .sport-slide h1,.sport-slide h1.sport-title-long,.sport-slide h1.sport-title-compact,.sport-slide h1.sport-title-very-long{font-size:clamp(39px,12vw,56px);line-height:.96;letter-spacing:.004em;max-width:100%}
  .sport-page-hero h1,.sport-page-hero h1.sport-title-long,.sport-page-hero h1.sport-title-compact,.sport-page-hero h1.sport-title-very-long{font-size:clamp(38px,11.6vw,54px);line-height:.98}
  .sport-form-section{padding:20px 15px!important}.sport-form-section::after{font-size:48px}.sport-contact-form,.sport-form-shell,.sport-event-form{padding:22px 16px!important}
  .sport-profile-photo{height:430px}.sport-profile-badge{right:6px;bottom:18px;max-width:250px}.sport-profile-copy h2{font-size:46px}.sport-profile-copy .sport-rich-copy p{font-size:16px}
  .sport-profile-nucleus-grid,.sport-public-people-grid,.sport-class-grid{grid-template-columns:1fr}.sport-nucleus-facts{padding:25px 18px}.sport-nucleus-detail .sport-map-panel iframe{min-height:370px}
  .sport-footer-brand h3{font-size:23px}
}
.sport-animated-form .btn-primary{position:relative;overflow:hidden;min-height:54px;border:1px solid var(--sport-yellow)!important;background:var(--sport-yellow)!important;color:#0B0B0C!important;font-weight:950;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.sport-animated-form .btn-primary:hover,.sport-animated-form .btn-primary:focus-visible{transform:translateY(-3px);background:#ffe45e!important;box-shadow:0 14px 30px rgba(0,0,0,.16)}
.sport-animated-form .btn-primary[disabled]{opacity:.62;cursor:wait;transform:none}


/* ==========================================================================
   V6.6 — MOBILE FIRST: CABEÇALHO E MENU
   Mantém o desktop da V6.5 e corrige exclusivamente a experiência <= 1199px.
   ========================================================================== */
:root{--site-mobile-menu-top:72px}

@media (max-width:1199px){
  /* O backdrop-filter do header pode transformar descendentes fixed em
     elementos presos ao próprio header em alguns browsers mobile. */
  .sport-header{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    overflow:visible!important;
    background:#0B0B0C!important;
  }
  .sport-header-inner{
    position:relative;
    min-height:72px!important;
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
  }

  /* Marca: preserva o nome institucional, mas sem esmagar os controlos. */
  .sport-brand{
    min-width:0!important;
    flex:1 1 auto!important;
    gap:10px!important;
    overflow:hidden;
  }
  .sport-brand>span:last-child{
    min-width:0!important;
    overflow:hidden;
  }
  .sport-brand b{
    display:block!important;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap!important;
    font-size:clamp(12px,3.2vw,15px)!important;
    line-height:1.08!important;
    letter-spacing:.035em!important;
  }
  .sport-brand small{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap!important;
  }

  /* Botões realmente centrados, inclusive no Chrome/Android e Safari/iOS. */
  .sport-header-controls{
    position:relative;
    z-index:1402;
    flex:0 0 auto;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:7px!important;
    margin-left:auto!important;
  }
  .sport-theme-toggle,
  .sport-menu-toggle{
    box-sizing:border-box!important;
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    flex:0 0 48px!important;
    display:grid!important;
    place-items:center!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    margin:0!important;
    line-height:1!important;
    text-align:center!important;
    border:1px solid rgba(255,255,255,.28)!important;
    background:#111214!important;
    color:#fff!important;
    clip-path:none!important;
    appearance:none;
    -webkit-appearance:none;
    touch-action:manipulation;
  }
  .sport-theme-toggle i,
  .sport-menu-toggle i{
    display:block!important;
    width:1em!important;
    height:1em!important;
    margin:0!important;
    padding:0!important;
    line-height:1!important;
    font-size:21px!important;
    text-align:center!important;
    transform:none!important;
  }
  .sport-theme-toggle:focus-visible,
  .sport-menu-toggle:focus-visible{
    outline:3px solid var(--sport-yellow)!important;
    outline-offset:2px!important;
  }

  /* Drawer sólido e independente do hero. */
  .sport-nav{
    position:fixed!important;
    z-index:1400!important;
    top:var(--site-mobile-menu-top)!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:
      16px
      max(16px,env(safe-area-inset-right))
      max(28px,env(safe-area-inset-bottom))
      max(16px,env(safe-area-inset-left))!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:
      radial-gradient(circle at 100% 0,rgba(206,17,38,.22),transparent 34%),
      linear-gradient(180deg,#0B0B0C 0%,#241014 100%)!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 24px 60px rgba(0,0,0,.42)!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px);
    transition:
      opacity .22s ease,
      transform .22s ease,
      visibility 0s linear .22s!important;
  }
  .sport-nav.open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
    transition:
      opacity .22s ease,
      transform .22s ease,
      visibility 0s!important;
  }

  .sport-nav-item{
    width:min(100%,680px)!important;
    min-width:0!important;
    margin:0 auto!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 52px!important;
    align-items:stretch!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.11)!important;
    background:transparent!important;
  }
  .sport-nav-item:first-child{
    border-top:1px solid rgba(255,255,255,.11)!important;
  }
  .sport-nav-item>a,
  .sport-nav-item:last-child>a,
  .sport-nav-item.enroll-link>a{
    min-width:0!important;
    width:100%!important;
    min-height:58px!important;
    margin:0!important;
    padding:0 16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    background:transparent!important;
    color:#fff!important;
    border:0!important;
    border-left:4px solid transparent!important;
    clip-path:none!important;
    font-size:14px!important;
    font-weight:900!important;
    letter-spacing:.055em!important;
    line-height:1.2!important;
    text-align:left!important;
    white-space:normal!important;
  }
  .sport-nav-item.active>a{
    color:var(--sport-yellow)!important;
    border-left-color:var(--sport-yellow)!important;
    background:rgba(255,212,0,.055)!important;
  }
  .sport-nav-item>a:hover,
  .sport-nav-item>a:focus-visible{
    color:var(--sport-yellow)!important;
    background:rgba(255,255,255,.055)!important;
    outline:none!important;
  }

  .sport-nav-item.enroll-link{
    margin-top:14px!important;
    border:1px solid var(--sport-yellow)!important;
    background:var(--sport-yellow)!important;
  }
  .sport-nav-item.enroll-link>a{
    min-height:58px!important;
    color:#0B0B0C!important;
    border-left:0!important;
    justify-content:center!important;
    text-align:center!important;
  }
  .sport-nav-item.enroll-link>a:hover,
  .sport-nav-item.enroll-link>a:focus-visible{
    background:#ffe45e!important;
    color:#0B0B0C!important;
  }

  .sport-submenu-toggle{
    width:52px!important;
    min-height:58px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-left:1px solid rgba(255,255,255,.10)!important;
    background:transparent!important;
    color:#fff!important;
    line-height:1!important;
  }
  .sport-submenu-toggle i{
    display:block!important;
    margin:0!important;
    line-height:1!important;
    transition:transform .2s ease!important;
  }
  .sport-submenu-toggle:focus-visible{
    outline:2px solid var(--sport-yellow)!important;
    outline-offset:-3px!important;
  }

  .sport-submenu{
    position:static!important;
    grid-column:1/-1!important;
    width:100%!important;
    margin:0!important;
    padding:0 0 10px 20px!important;
    display:none!important;
    background:rgba(0,0,0,.13)!important;
    border:0!important;
    border-left:4px solid rgba(255,212,0,.45)!important;
    box-shadow:none!important;
  }
  .sport-nav-item.submenu-open .sport-submenu{display:grid!important}
  .sport-submenu a{
    min-height:46px;
    display:flex;
    align-items:center;
    padding:8px 14px!important;
    color:#d7e2ef!important;
    border-bottom:1px solid rgba(255,255,255,.07)!important;
    font-size:12px!important;
    line-height:1.35!important;
  }
  .sport-submenu a:last-child{border-bottom:0!important}
  .sport-submenu a:hover,.sport-submenu a:focus-visible{
    color:var(--sport-yellow)!important;
    padding-left:18px!important;
    outline:none!important;
  }

  body.site-menu-open{
    overflow:hidden!important;
    overscroll-behavior:none;
  }
  body.site-menu-open .sport-header{
    box-shadow:0 12px 35px rgba(0,0,0,.34)!important;
  }
}

@media (max-width:700px){
  .sport-header-inner{min-height:68px!important;gap:7px!important}
  .sport-logo{
    width:44px!important;
    height:44px!important;
    flex:0 0 44px!important;
  }
  .sport-logo img{width:37px!important;height:37px!important}
  .sport-brand{gap:8px!important}
  .sport-brand b{
    font-size:clamp(11.5px,3.45vw,14px)!important;
    letter-spacing:.025em!important;
  }
  .sport-brand small{display:none!important}
  .sport-theme-toggle,
  .sport-menu-toggle{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    flex-basis:46px!important;
  }
  .sport-theme-toggle i,.sport-menu-toggle i{font-size:20px!important}
  .sport-nav{
    padding:
      12px
      max(12px,env(safe-area-inset-right))
      max(24px,env(safe-area-inset-bottom))
      max(12px,env(safe-area-inset-left))!important;
  }
  .sport-nav-item>a,
  .sport-nav-item:last-child>a,
  .sport-nav-item.enroll-link>a{
    min-height:56px!important;
    padding-inline:14px!important;
    font-size:13px!important;
  }
  .sport-submenu-toggle{min-height:56px!important}
}

@media (max-width:390px){
  .sport-wrap{width:min(calc(100% - 18px),var(--sport-max))!important}
  .sport-header-inner{gap:5px!important}
  .sport-logo{width:40px!important;height:40px!important;flex-basis:40px!important}
  .sport-logo img{width:34px!important;height:34px!important}
  .sport-brand{gap:7px!important}
  .sport-brand b{font-size:11px!important;letter-spacing:.018em!important}
  .sport-theme-toggle,
  .sport-menu-toggle{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    flex-basis:42px!important;
  }
  .sport-theme-toggle i,.sport-menu-toggle i{font-size:18px!important}
}

/* Em ecrãs muito baixos, o menu continua utilizável sem cortar opções. */
@media (max-width:1199px) and (max-height:560px){
  .sport-nav{padding-top:8px!important}
  .sport-nav-item>a,
  .sport-nav-item:last-child>a,
  .sport-nav-item.enroll-link>a,
  .sport-submenu-toggle{min-height:48px!important}
}

/* Desktop da V6.5 permanece intocado. */
@media (min-width:1200px){
  .sport-nav{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important}
}
