@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

html, body.aculeus-portal-standalone { margin:0!important; padding:0!important; width:100%!important; min-height:100%!important; }
body.aculeus-portal-standalone { background:#f7f8f6!important; color:#506477!important; font-family:"DM Sans",Arial,sans-serif!important; }
body.aculeus-portal-standalone #wpadminbar { position:fixed; }
.ap-page, .ap-page * { box-sizing:border-box; }
.ap-page { min-height:100vh; background:#f7f8f6; color:#506477; display:flex; flex-direction:column; }
.ap-page a { color:inherit; text-decoration:none; }
.ap-header { width:100%; max-width:none; min-height:82px; margin:0; padding:18px 36px; display:flex; align-items:center; justify-content:flex-start; gap:28px; background:#fff; }
.ap-header img { display:block; width:255px; height:auto; }
.ap-header nav { display:flex; align-items:center; gap:32px; font-size:15px; font-weight:500; }
.ap-header nav a:hover { color:#3E4F2F; }
.ap-shell { width:100%; max-width:1240px; margin:0 auto; padding:26px 32px 64px; display:grid; grid-template-columns:1.06fr .94fr; gap:68px; align-items:center; flex:1; }
.ap-story { position:relative; min-height:620px; overflow:hidden; border-radius:28px; background:#3E4F2F; }
.ap-story>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.ap-story-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(18,25,29,.72) 0%,rgba(18,25,29,.45) 42%,rgba(18,25,29,.04) 78%),linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.62) 100%); }
.ap-story-copy { position:absolute; left:0; right:0; bottom:0; z-index:1; padding:46px; color:#fff; }
.ap-eyebrow { display:block; color:#FEA418; font-size:14px; line-height:1.4; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.ap-story h1 { max-width:540px; margin:16px 0 20px; font:800 clamp(45px,5vw,68px)/.97 "Manrope",Arial,sans-serif; letter-spacing:-.06em; }
.ap-story h1 em { color:#FEA418; font-style:normal; }
.ap-story p { max-width:460px; margin:0; color:rgba(255,255,255,.88); font-size:17px; line-height:1.65; }
.ap-trust { display:flex; flex-wrap:wrap; gap:24px; margin-top:28px; padding-top:20px; border-top:1px solid rgba(255,255,255,.3); font-size:13px; font-weight:700; }
.ap-trust span:before { content:"✓"; margin-right:8px; color:#FEA418; }
.ap-card-wrap { width:100%; max-width:480px; justify-self:center; }
.ap-card { padding:42px; border:1px solid rgba(80,100,119,.17); border-radius:24px; background:#fff; box-shadow:0 24px 60px rgba(80,100,119,.12); }
.ap-card-heading { margin-bottom:28px; }
.ap-card h2 { margin:11px 0 13px; color:#506477; font:800 34px/1.05 "Manrope",Arial,sans-serif; letter-spacing:-.055em; }
.ap-card p { font-size:15px; line-height:1.6; }
.ap-alert { margin-bottom:20px; padding:13px 15px; border-left:4px solid #FEA418; background:rgba(254,164,24,.13); color:#3E4F2F; font-size:14px; line-height:1.5; }
.ap-field { display:block; margin-top:19px; }
.ap-field>span:first-child { display:block; margin-bottom:8px; color:#3E4F2F; font-size:14px; font-weight:700; }
.ap-field input[type="text"], .ap-field input[type="password"] { width:100%; min-height:50px; padding:13px 14px; border:1px solid rgba(80,100,119,.28); border-radius:8px; outline:0; background:#f7f8f6; color:#506477; font:400 16px "DM Sans",Arial,sans-serif; }
.ap-field input:focus { border-color:#FEA418; box-shadow:0 0 0 3px rgba(254,164,24,.18); }
.ap-password-wrap { position:relative; display:block; }
.ap-password-wrap input { padding-right:65px!important; }
.ap-show-password { position:absolute; top:50%; right:10px; transform:translateY(-50%); padding:6px; border:0; background:transparent; color:#3E4F2F; font:600 13px "DM Sans",Arial,sans-serif; cursor:pointer; }

/* Keep the login design intact when the active theme has broad heading, input
   or button rules. These selectors deliberately apply to this page only. */
.aculeus-portal-standalone .ap-story>img {
  object-position:24% 38%!important;
}
.aculeus-portal-standalone .ap-story h1 {
  max-width:390px!important;
  color:#fff!important;
  text-shadow:0 2px 18px rgba(20,30,15,.24);
}
.aculeus-portal-standalone .ap-story h1 em {
  color:#FEA418!important;
}
.aculeus-portal-standalone .ap-card .ap-field input[type="text"],
.aculeus-portal-standalone .ap-card .ap-field input[type="password"] {
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  height:52px!important;
  min-height:52px!important;
  margin:0!important;
  padding:13px 15px!important;
  border:2px solid #aeb8c0!important;
  border-radius:8px!important;
  outline:0!important;
  background:#fff!important;
  color:#263746!important;
  box-shadow:inset 0 1px 2px rgba(38,55,70,.06)!important;
  font:400 16px/1.4 "DM Sans",Arial,sans-serif!important;
  -webkit-appearance:none!important;
  appearance:none!important;
}
.aculeus-portal-standalone .ap-card .ap-field input[type="text"]:focus,
.aculeus-portal-standalone .ap-card .ap-field input[type="password"]:focus {
  border-color:#FEA418!important;
  box-shadow:0 0 0 3px rgba(254,164,24,.2)!important;
}
.aculeus-portal-standalone .ap-password-wrap {
  position:relative!important;
  display:block!important;
  width:100%!important;
}
.aculeus-portal-standalone .ap-password-wrap input {
  padding-right:78px!important;
}
.aculeus-portal-standalone .ap-show-password {
  position:absolute!important;
  z-index:2!important;
  top:50%!important;
  right:8px!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:7px 10px!important;
  transform:translateY(-50%)!important;
  border:0!important;
  border-radius:6px!important;
  background:#eef1eb!important;
  color:#3E4F2F!important;
  box-shadow:none!important;
  font:600 13px/1 "DM Sans",Arial,sans-serif!important;
}
.ap-options { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; color:#506477; font-size:13px; }
.ap-options label { display:flex; align-items:center; gap:7px; }
.ap-options input { accent-color:#3E4F2F; }
.ap-options a { color:#3E4F2F; font-weight:600; }
.ap-submit { width:100%; min-height:52px; margin-top:25px; padding:14px 20px; border:0; border-radius:999px; background:#FEA418; color:#3E4F2F; font:600 16px "DM Sans",Arial,sans-serif; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:10px; }
.ap-submit:hover { transform:translateY(-1px); background:#f7a015; }
.ap-register { margin-top:26px; padding-top:21px; border-top:1px solid rgba(80,100,119,.16); text-align:center; font-size:14px; }
.ap-register span, .ap-register a { display:block; }
.ap-register a { margin-top:5px; color:#3E4F2F; font-weight:700; }
.ap-privacy { margin:18px 0 0!important; color:rgba(80,100,119,.7); text-align:center; font-size:12px!important; }
.ap-footer { width:100%; max-width:1240px; margin:0 auto; padding:22px 32px 30px; border-top:1px solid rgba(80,100,119,.15); display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:12px; font-weight:600; }
.ap-footer div { display:flex; gap:22px; }

@media (max-width:900px) {
  .ap-shell { grid-template-columns:1fr; max-width:720px; gap:30px; }
  .ap-story { min-height:470px; }
  .ap-card-wrap { max-width:100%; }
}

@media (max-width:600px) {
  .ap-header { min-height:76px; padding:15px 20px; justify-content:flex-start; gap:16px; flex-wrap:wrap; }
  .ap-header img { width:170px; }
  .ap-header nav a:first-child { display:none; }
  .ap-header nav { width:100%; gap:8px 16px; flex-wrap:wrap; font-size:12px; }
  .ap-shell { padding:10px 20px 42px; }
  .ap-story { min-height:400px; border-radius:20px; }
  .ap-story-copy { padding:28px; }
  .ap-story h1 { font-size:42px; }
  .aculeus-portal-standalone .ap-story>img { object-position:30% 38%!important; }
  .aculeus-portal-standalone .ap-story h1 { max-width:290px!important; }
  .ap-story p { font-size:16px; }
  .ap-trust { gap:10px; flex-direction:column; }
  .ap-card { padding:30px 24px; border-radius:20px; }
  .ap-card h2 { font-size:30px; }
  .ap-options { align-items:flex-start; flex-direction:column; }
  .ap-footer { padding:20px; align-items:flex-start; flex-direction:column; }
}
