/* CFM-branded Moodle access. */
:root {
  --sft-login-navy: #082b4c;
  --sft-login-teal: #087f86;
  --sft-login-line: #d9e5ea;
  --sft-login-muted: #617487;
}

body.pagelayout-login {
  background: radial-gradient(circle at 10% 5%, rgba(8,127,134,.16), transparent 24rem), radial-gradient(circle at 95% 90%, rgba(8,43,76,.13), transparent 30rem), linear-gradient(150deg, #f7fbfc 0%, #edf4f6 52%, #f5f8fa 100%) !important;
  color: #173047;
  font-family: Inter, Aptos, Segoe UI, Roboto, Arial, sans-serif;
  min-height: 100vh;
}
body.pagelayout-login #page-wrapper,
body.pagelayout-login #page,
body.pagelayout-login #region-main {
  background: transparent !important;
}
body.pagelayout-login #page {
  align-items: center;
  display: flex;
  justify-content: center;
  min-height: 100vh;
  padding: clamp(1rem, 4vw, 2.5rem);
}
body.pagelayout-login #region-main { padding: 0 !important; }
body.pagelayout-login .login-container {
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(8,43,76,.11);
  border-radius: 1.55rem;
  box-shadow: 0 1.6rem 4rem rgba(8,43,76,.18);
  margin: 0 auto;
  max-width: 31rem;
  overflow: hidden;
  padding: 2rem clamp(1.25rem, 5vw, 2.5rem) 2.2rem;
  position: relative;
  width: 100%;
}
body.pagelayout-login .login-container::before {
  background: #fff url("pix/cfm-logo.png") center / contain no-repeat;
  border-radius: .9rem;
  box-shadow: 0 .5rem 1.2rem rgba(8,43,76,.2);
  content: "";
  display: block;
  height: 4.4rem;
  margin: 0 0 1.25rem;
  width: 6rem;
}
body.pagelayout-login .login-container::after {
  color: var(--sft-login-teal);
  content: "CFM TESTS · OPOSICIONES DE HACIENDA";
  font-size: .68rem;
  font-weight: 900;
  left: clamp(7.7rem, 22vw, 9.2rem);
  letter-spacing: .12em;
  position: absolute;
  text-transform: uppercase;
  top: 3.55rem;
}
body.pagelayout-login .login-heading h1,
body.pagelayout-login h1 {
  color: var(--sft-login-navy);
  font-size: clamp(1.55rem, 5vw, 2rem);
  font-weight: 900;
  letter-spacing: -.035em;
  line-height: 1.12;
}
body.pagelayout-login label { color: #294357; font-weight: 750; }
body.pagelayout-login .form-control {
  border: 1px solid var(--sft-login-line);
  border-radius: .78rem;
  box-shadow: none !important;
  min-height: 3.15rem;
}
body.pagelayout-login .form-control:focus {
  border-color: var(--sft-login-teal);
  box-shadow: 0 0 0 .22rem rgba(8,127,134,.13) !important;
}
body.pagelayout-login .btn-primary {
  background: linear-gradient(135deg, var(--sft-login-teal), #0f9fa1) !important;
  border: 0 !important;
  border-radius: .78rem;
  box-shadow: 0 .55rem 1.2rem rgba(8,127,134,.22);
  color: #fff !important;
  font-weight: 850;
  min-height: 3rem;
  padding: .72rem 1.25rem;
}
body.pagelayout-login a { color: #076f77; font-weight: 700; }
body.pagelayout-login .login-divider { border-color: #e3eaee; }
body.pagelayout-login .login-languagemenu,
body.pagelayout-login .login-privacyandcookies { color: var(--sft-login-muted); }
body.pagelayout-login #page-footer { display: none !important; }

@media (max-width: 520px) {
  body.pagelayout-login #page { align-items: flex-start; padding: .8rem; }
  body.pagelayout-login .login-container { border-radius: 1.2rem; padding: 1.25rem 1.1rem 1.55rem; }
  body.pagelayout-login .login-container::before { height: 3.6rem; width: 4.9rem; }
  body.pagelayout-login .login-container::after { font-size: .54rem; left: 6.5rem; top: 2.25rem; }
}
