/*
Theme Name: Portale Sonno
Theme URI: http://portalesonno.local
Author: InformEdica
Description: Tema responsive per Portale Sonno, costruito dal mockup PSD.
Version: 1.0.4
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.1
Text Domain: portalesonno
*/

@import url("https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700;800;900&display=swap");

:root {
  --ps-blue: #004897;
  --ps-blue-dark: #172a61;
  --ps-blue-soft: #dbeaff;
  --ps-sky: #edf6ff;
  --ps-yellow: #ffe680;
  --ps-orange: #ff7f32;
  --ps-ink: #12233d;
  --ps-muted: #5f6f86;
  --ps-line: #dce7f5;
  --ps-page: #ffffff;
  --ps-shadow: 0 18px 50px rgba(20, 58, 110, 0.12);
  --ps-radius: 8px;
  --ps-max: 1180px;
}

/* Home redesign based on the reduced 2026 mockup. */
body.ps-home-rewrite {
  --home-blue: #006095;
  --home-green: #42C0A1;
  --home-text: #6d6d6d;
  margin: 0;
  overflow-x: hidden;
  color: #2f2f2f;
  background: #fff;
  font-family: "Barlow", "Segoe UI", Arial, sans-serif;
  line-height: 1.2;
}

.ps-home-header {
  width: min(100%, 1928px);
  min-height: 120px;
  margin: 0 auto;
  padding: 0 clamp(28px, 15.5vw, 300px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  background: #fff;
}

.ps-home-logo {
  display: inline-flex;
  flex: 0 0 auto;
}

.ps-home-logo img {
  display: block;
  width: clamp(230px, 15.4vw, 300px);
  height: auto;
}

.ps-home-menu {
  display: flex;
  align-items: center;
  gap: clamp(24px, 2.4vw, 46px);
  color: #6c6c6c;
  font-size: clamp(16px, 1vw, 19px);
  font-weight: 800;
  text-transform: uppercase;
}

.ps-home-menu a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ps-home-menu a:hover,
.ps-home-menu a:focus-visible {
  color: var(--home-blue);
}

.ps-home-access {
  min-height: 40px;
  padding: 0 23px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #fff !important;
  background: var(--home-green);
  text-decoration: none !important;
}

.ps-home-logout {
  color: var(--home-blue);
}

.ps-home-menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: var(--home-green);
  font: inherit;
  font-size: 24px;
  font-weight: 800;
  cursor: pointer;
}

.ps-home-main {
  width: min(100%, 1928px);
  margin: 0 auto;
  background: #fff;
}

.ps-home-hero,
.ps-home-hero img {
  display: block;
  width: 100%;
  margin: 0;
}

.ps-home-section {
  width: 100%;
}

.ps-home-section--ecm {
  padding: 54px 0 100px;
}

.ps-home-ribbon {
  width: fit-content;
  min-width: min(640px, 100%);
  margin: 0;
  padding: 27px clamp(46px, 15.5vw, 300px);
  border-radius: 0 14px 14px 0;
  color: #fff;
  background: var(--home-blue);
  box-shadow: 8px 8px 14px rgba(0, 0, 0, 0.22);
  font-size: clamp(34px, 2.95vw, 57px);
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.ps-home-fad {
  width: min(100% - 80px, 1300px);
  margin: 58px auto 48px;
  display: grid;
  grid-template-columns: minmax(360px, 700px) minmax(320px, 580px);
  align-items: center;
  gap: 30px;
}

.ps-home-fad__image {
  width: 100%;
  border-radius: 28px;
  box-shadow: 0 8px 14px rgba(0, 0, 0, 0.16);
}

.ps-home-fad__card {
  min-height: 178px;
  padding: 34px 46px;
  display: grid;
  align-content: center;
  gap: 24px;
  border-radius: 0 0 28px 28px;
  background: #fff;
  box-shadow: 0 9px 17px rgba(0, 0, 0, 0.2);
}

.ps-home-fad__card p {
  max-width: 455px;
  margin: 0;
  color: var(--home-text);
  font-size: clamp(22px, 1.5vw, 29px);
  font-weight: 800;
  line-height: 1.05;
}

.ps-home-fad__card a,
.ps-home-course__button {
  width: fit-content;
  min-height: 51px;
  padding: 0 43px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #fff;
  background: var(--home-blue);
  font-size: clamp(20px, 1.4vw, 28px);
  font-weight: 800;
  text-decoration: none;
  line-height: 1;
}

.ps-home-featured {
  width: min(100% - 80px, 1300px);
  margin: 0 auto;
}

.ps-home-featured h2 {
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--home-text);
  font-size: clamp(25px, 2vw, 39px);
  font-weight: 800;
}

.ps-home-featured h2::after {
  content: "";
  height: 2px;
  flex: 1;
  background: #7b7b7b;
}

.ps-home-course {
  min-height: 275px;
  padding: 18px 28px 18px 23px;
  display: grid;
  grid-template-columns: 350px minmax(0, 1fr) auto;
  align-items: center;
  gap: 30px;
  border-radius: 0 0 26px 26px;
  background: #fff;
  box-shadow: 0 7px 13px rgba(0, 0, 0, 0.18);
}

.ps-home-course__image {
  width: 350px;
  aspect-ratio: 1.55;
  border-radius: 25px;
  object-fit: cover;
}

.ps-home-course__body strong {
  display: block;
  margin-bottom: 10px;
  color: var(--home-blue);
  font-size: clamp(20px, 1.48vw, 29px);
  font-weight: 900;
  text-transform: uppercase;
}

.ps-home-course__body h3 {
  max-width: 640px;
  margin: 0 0 10px;
  color: var(--home-text);
  font-size: clamp(21px, 1.55vw, 30px);
  font-weight: 700;
  line-height: 1.05;
}

.ps-home-course__body p {
  margin: 0 0 26px;
  color: #929292;
  font-size: clamp(15px, 0.9vw, 18px);
}

.ps-home-aims {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #8b8b8b;
  font-size: clamp(13px, 0.9vw, 17px);
  font-weight: 800;
  text-transform: uppercase;
}

.ps-home-aims img {
  width: min(230px, 20vw);
  height: auto;
}

.ps-home-course__button {
  align-self: end;
  margin-bottom: 16px;
  white-space: nowrap;
}

.ps-home-section--materials {
  padding: 0 0 70px;
}

.ps-home-ribbon--wide {
  min-width: min(1440px, 100%);
  margin-bottom: 85px;
  padding-right: clamp(40px, 7.8vw, 150px);
  font-size: clamp(32px, 2.72vw, 52px);
}

.ps-home-materials-card {
  position: relative;
  width: min(100% - 80px, 1315px);
  margin: 0 auto;
  padding-bottom: 96px;
}

.ps-home-materials-card > img {
  display: block;
  width: 100%;
  border-radius: 28px;
  box-shadow: 0 7px 13px rgba(0, 0, 0, 0.16);
}

.ps-home-coming-soon {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: min(945px, calc(100% - 80px));
  min-height: 140px;
  padding: 24px 36px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  color: #555;
  background: #fff;
  box-shadow: 0 8px 14px rgba(0, 0, 0, 0.18);
  font-size: clamp(30px, 2.25vw, 44px);
  font-weight: 900;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%);
}

.ps-home-footer {
  width: min(100%, 1928px);
  margin: 0 auto;
}

.ps-home-footer__top {
  min-height: 300px;
  padding: 48px 20px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 35px;
  color: #fff;
  background: var(--home-blue);
  text-align: center;
}

.ps-home-footer__top p {
  max-width: 660px;
  margin: 0;
  font-size: clamp(22px, 1.4vw, 27px);
  font-weight: 700;
  line-height: 1.1;
}

.ps-home-footer__top img {
  width: 240px;
  max-width: 42vw;
  height: auto;
}

.ps-home-footer__bottom {
  min-height: 82px;
  padding: 22px clamp(22px, 6.25vw, 120px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  color: #24365f;
  background: #fff;
  font-size: clamp(16px, 1.05vw, 21px);
}

.ps-home-footer__bottom nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.ps-home-footer__bottom nav a + a::before {
  content: "|";
  margin-right: 7px;
}

@media (max-width: 1100px) {
  .ps-home-header {
    min-height: 86px;
    padding-inline: 24px;
  }

  .ps-home-menu-toggle {
    display: grid;
  }

  .ps-home-menu {
    position: absolute;
    top: 78px;
    right: 18px;
    z-index: 20;
    width: min(320px, calc(100vw - 36px));
    display: none;
    padding: 20px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.14);
  }

  .ps-home-menu.is-open {
    display: grid;
    gap: 16px;
  }

  .ps-home-access {
    width: fit-content;
  }

  .ps-home-fad {
    grid-template-columns: 1fr;
  }

  .ps-home-course {
    grid-template-columns: 260px 1fr;
  }

  .ps-home-course__image {
    width: 260px;
  }

  .ps-home-course__button {
    grid-column: 1 / -1;
    justify-self: end;
  }
}

@media (max-width: 720px) {
  .ps-home-logo img {
    width: min(230px, 66vw);
  }

  .ps-home-section--ecm {
    padding: 34px 0 64px;
  }

  .ps-home-ribbon,
  .ps-home-ribbon--wide {
    min-width: 0;
    width: calc(100% - 28px);
    padding: 20px 22px;
    font-size: 28px;
  }

  .ps-home-fad,
  .ps-home-featured,
  .ps-home-materials-card {
    width: calc(100% - 28px);
  }

  .ps-home-fad {
    margin-top: 34px;
  }

  .ps-home-fad__card {
    min-height: 0;
    padding: 28px 24px;
    border-radius: 0 0 20px 20px;
  }

  .ps-home-featured h2 {
    align-items: flex-start;
    font-size: 25px;
  }

  .ps-home-featured h2::after {
    margin-top: 14px;
  }

  .ps-home-course {
    grid-template-columns: 1fr;
    padding: 18px;
    gap: 18px;
  }

  .ps-home-course__image {
    width: 100%;
  }

  .ps-home-aims {
    flex-wrap: wrap;
  }

  .ps-home-aims img {
    width: min(230px, 100%);
  }

  .ps-home-course__button {
    width: 100%;
    margin: 0;
  }

  .ps-home-ribbon--wide {
    margin-bottom: 42px;
  }

  .ps-home-materials-card {
    padding-bottom: 72px;
  }

  .ps-home-coming-soon {
    width: calc(100% - 28px);
    min-height: 104px;
    padding: 20px;
    font-size: 26px;
  }

  .ps-home-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .ps-home-footer__bottom nav {
    justify-content: flex-start;
  }
}

/* Codex 2026-09-24: Contact Form 7 contact page styling. */
body.page-id-63:not(.ps-real-landing) .ps-page > .ps-container,
body.post-63:not(.ps-real-landing) .ps-page > .ps-container,
body.page-id-63:not(.ps-real-landing) .ps-page__body,
body.post-63:not(.ps-real-landing) .ps-page__body,
body.page-id-63:not(.ps-real-landing) .entry-content,
body.post-63:not(.ps-real-landing) .entry-content {
  width: min(100% - 48px, 920px);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

body.page-id-63 .wpcf7,
body.post-63 .wpcf7 {
  width: min(100%, 760px);
  margin: clamp(28px, 4vw, 46px) auto 0;
  text-align: left;
}

body.page-id-63 .wpcf7-form,
body.post-63 .wpcf7-form {
  display: grid;
  gap: 18px;
  margin: 0;
  border: 1px solid rgba(0, 72, 151, 0.14);
  border-top: 4px solid rgba(0, 72, 151, 0.28);
  border-radius: 8px;
  padding: clamp(24px, 4vw, 38px);
  background: #fff;
  box-shadow: 0 14px 34px rgba(0, 72, 151, 0.1);
}

body.page-id-63 .wpcf7-form p,
body.post-63 .wpcf7-form p {
  margin: 0;
}

body.page-id-63 .wpcf7-form label,
body.post-63 .wpcf7-form label {
  display: grid;
  gap: 9px;
  color: var(--ps-ink);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
}

body.page-id-63 .wpcf7-form-control-wrap,
body.post-63 .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

body.page-id-63 .wpcf7 input[type="text"],
body.page-id-63 .wpcf7 input[type="email"],
body.page-id-63 .wpcf7 textarea,
body.post-63 .wpcf7 input[type="text"],
body.post-63 .wpcf7 input[type="email"],
body.post-63 .wpcf7 textarea {
  width: 100%;
  border: 1px solid #b8cbe4;
  border-radius: 8px;
  color: var(--ps-ink);
  background: #fff;
  font: inherit;
  font-weight: 500;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

body.page-id-63 .wpcf7 input[type="text"],
body.page-id-63 .wpcf7 input[type="email"],
body.post-63 .wpcf7 input[type="text"],
body.post-63 .wpcf7 input[type="email"] {
  min-height: 54px;
  padding: 0 15px;
}

body.page-id-63 .wpcf7 textarea,
body.post-63 .wpcf7 textarea {
  min-height: 180px;
  resize: vertical;
  padding: 14px 15px;
  line-height: 1.55;
}

body.page-id-63 .wpcf7 input[type="text"]:focus,
body.page-id-63 .wpcf7 input[type="email"]:focus,
body.page-id-63 .wpcf7 textarea:focus,
body.post-63 .wpcf7 input[type="text"]:focus,
body.post-63 .wpcf7 input[type="email"]:focus,
body.post-63 .wpcf7 textarea:focus {
  outline: 3px solid rgba(0, 72, 151, 0.18);
  border-color: var(--ps-blue);
  background: #fbfdff;
  box-shadow: 0 0 0 1px rgba(0, 72, 151, 0.08);
}

body.page-id-63 .wpcf7-form-control.wpcf7-not-valid,
body.post-63 .wpcf7-form-control.wpcf7-not-valid {
  border-color: #d94f45;
  background: #fff8f7;
}

body.page-id-63 .wpcf7-not-valid-tip,
body.post-63 .wpcf7-not-valid-tip {
  margin-top: 7px;
  color: #b3261e;
  font-size: 13px;
  font-weight: 700;
}

body.page-id-63 .wpcf7-submit,
body.post-63 .wpcf7-submit {
  display: inline-flex;
  min-width: 150px;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  padding: 0 34px;
  color: #fff;
  background: var(--ps-blue);
  font: inherit;
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

body.page-id-63 .wpcf7-submit:hover,
body.page-id-63 .wpcf7-submit:focus-visible,
body.post-63 .wpcf7-submit:hover,
body.post-63 .wpcf7-submit:focus-visible {
  background: #003b7b;
  box-shadow: 0 10px 22px rgba(0, 72, 151, 0.18);
  transform: translateY(-1px);
}

body.page-id-63 .wpcf7-submit:disabled,
body.post-63 .wpcf7-submit:disabled {
  cursor: wait;
  opacity: 0.72;
  transform: none;
}

body.page-id-63 .wpcf7-spinner,
body.post-63 .wpcf7-spinner {
  margin-left: 12px;
  vertical-align: middle;
}

body.page-id-63 .wpcf7-response-output,
body.post-63 .wpcf7-response-output {
  margin: 4px 0 0;
  border: 0;
  border-left: 5px solid var(--ps-blue);
  border-radius: 8px;
  padding: 16px 18px;
  color: var(--ps-ink);
  background: #edf6ff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.45;
}

body.page-id-63 .wpcf7-form.invalid .wpcf7-response-output,
body.page-id-63 .wpcf7-form.unaccepted .wpcf7-response-output,
body.post-63 .wpcf7-form.invalid .wpcf7-response-output,
body.post-63 .wpcf7-form.unaccepted .wpcf7-response-output {
  border-left-color: #d94f45;
  color: #4d1d1a;
  background: #fff7f6;
}

body.page-id-63 .wpcf7-form.sent .wpcf7-response-output,
body.post-63 .wpcf7-form.sent .wpcf7-response-output {
  border-left-color: #2f8f4e;
  color: #173f25;
  background: #e8f6ed;
}

@media (max-width: 700px) {
  body.page-id-63:not(.ps-real-landing) .ps-page > .ps-container,
  body.post-63:not(.ps-real-landing) .ps-page > .ps-container,
  body.page-id-63:not(.ps-real-landing) .ps-page__body,
  body.post-63:not(.ps-real-landing) .ps-page__body,
  body.page-id-63:not(.ps-real-landing) .entry-content,
  body.post-63:not(.ps-real-landing) .entry-content {
    width: min(100% - 32px, 920px);
  }

  body.page-id-63 .wpcf7-form,
  body.post-63 .wpcf7-form {
    gap: 16px;
    padding: 22px 18px;
  }

  body.page-id-63 .wpcf7-submit,
  body.post-63 .wpcf7-submit {
    width: 100%;
  }
}

.ps-landing-page {
  min-width: 320px;
  background: #fff;
}

.ps-landing-exact {
  position: relative;
  width: min(100vw, 2502px);
  margin: 0 auto;
  background: #fff;
}

.ps-landing-exact img {
  width: 100%;
  height: auto;
}

.ps-hotspot {
  position: absolute;
  display: block;
  border-radius: 999px;
}

.ps-hotspot:focus-visible {
  outline: 4px solid rgba(255, 127, 50, 0.75);
  outline-offset: 4px;
}

.ps-hotspot--more {
  left: 72.9%;
  top: 2.1%;
  width: 10.5%;
  height: 2.1%;
}

.ps-hotspot--login {
  left: 85.4%;
  top: 1.8%;
  width: 11.7%;
  height: 2.9%;
}

.ps-hotspot--ecm {
  left: 20.4%;
  top: 36.1%;
  width: 15.7%;
  height: 3.0%;
}

.ps-hotspot--materials {
  left: 64.6%;
  top: 36.1%;
  width: 15.7%;
  height: 3.0%;
}

.ps-hotspot--course {
  left: 79.7%;
  top: 75.8%;
  width: 15.6%;
  height: 3.6%;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ps-ink);
  background: var(--ps-page);
  font-family: "Barlow", "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
}

body.home {
  background: #fff;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
  white-space: nowrap;
}

.ps-container {
  width: min(100% - 88px, 1330px);
  margin-inline: auto;
}

.ps-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid #9cb9dc;
  backdrop-filter: blur(12px);
}

.ps-header__inner {
  min-height: 96px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.ps-logo {
  display: inline-flex;
  align-items: center;
  color: var(--ps-blue);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.ps-logo span {
  font-size: clamp(30px, 3.4vw, 50px);
  letter-spacing: 0;
}

.ps-logo img {
  display: block;
  width: clamp(230px, 24vw, 360px);
  height: auto;
}

.ps-logo strong {
  font-weight: 900;
}

.ps-nav {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #101010;
  font-size: clamp(18px, 1.9vw, 26px);
  font-weight: 500;
}

.ps-nav a {
  padding: 8px 0;
}

.ps-nav a:hover,
.ps-nav a:focus-visible {
  color: var(--ps-blue);
}

.ps-button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  padding: 0 32px;
  color: #fff;
  background: var(--ps-blue);
  font-weight: 800;
  font-size: 20px !important;
  cursor: pointer;
}

.ps-button:hover,
.ps-button:focus-visible {
  background: #003b7b;
}

.ps-button--dark {
  background: var(--ps-blue-dark);
}

.ps-button--small {
  min-height: 58px;
  padding-inline: 42px;
  font-size: 24px;
}

.ps-button--secondary {
  border: 2px solid var(--ps-blue);
  color: var(--ps-blue);
  background: #fff;
  box-shadow: none;
  text-decoration: none;
}

.ps-button--secondary:hover,
.ps-button--secondary:focus-visible {
  color: #fff;
  background: var(--ps-blue);
}

.ps-menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--ps-line);
  border-radius: 8px;
  background: #fff;
  color: var(--ps-blue);
  font-size: 22px;
  line-height: 1;
}

.ps-hero {
  position: relative;
  overflow: hidden;
  min-height: 470px;
  display: grid;
  align-items: center;
  background:
    radial-gradient(circle at 11% 28%, rgba(255, 230, 128, 0.6) 0 2px, transparent 3px),
    radial-gradient(circle at 16% 36%, rgba(0, 72, 151, 0.14) 0 2px, transparent 3px),
    linear-gradient(145deg, #f9fcff 0%, #eef6ff 46%, #dcecff 100%);
}

.ps-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 24%, rgba(120, 177, 231, 0.22) 0 64px, transparent 65px),
    radial-gradient(circle at 18% 21%, #f9fcff 0 68px, transparent 69px);
  pointer-events: none;
}

.ps-hero::after,
.ps-wave::after {
  content: "";
  position: absolute;
  left: -8%;
  right: -8%;
  bottom: -1px;
  height: 170px;
  background:
    radial-gradient(80% 110% at 22% 0%, transparent 48%, rgba(173, 211, 246, 0.58) 49% 66%, transparent 67%),
    radial-gradient(55% 100% at 68% 28%, transparent 46%, rgba(190, 221, 249, 0.72) 47% 65%, transparent 66%);
  opacity: 0.95;
}

.ps-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 520px);
  gap: clamp(28px, 6vw, 78px);
  align-items: center;
  padding: 56px 0 86px;
}

.ps-kicker {
  margin: 0 0 14px;
  color: var(--ps-blue);
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

.ps-title {
  margin: 0;
  color: #111a2c;
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 500;
  line-height: 1.02;
}

.ps-title strong {
  font-weight: 900;
}

.ps-lead {
  max-width: 560px;
  margin: 20px 0 0;
  color: #263954;
  font-size: clamp(18px, 2vw, 22px);
}

.ps-hero__actions {
  display: grid;
  gap: 18px;
}

.ps-access-card {
  min-height: 150px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  border-radius: 8px;
  padding: 28px;
  text-align: center;
  box-shadow: var(--ps-shadow);
}

.ps-access-card h2 {
  margin: 0;
  color: inherit;
  font-size: 20px;
  line-height: 1.15;
  text-transform: uppercase;
}

.ps-access-card p {
  max-width: 360px;
  margin: 0;
  color: inherit;
  font-size: 14px;
}

.ps-access-card--ecm {
  color: #fff;
  background: var(--ps-blue-dark);
}

.ps-access-card--deep {
  color: #12305f;
  background: #bcd7ff;
}

.ps-access-card--yellow {
  color: #12305f;
  background: var(--ps-yellow);
}

.ps-section {
  padding: 62px 0;
}

.ps-section--soft {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #fff 0%, #f4f8ff 100%);
}

.ps-section__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 24px;
}

.ps-section__head h2,
.ps-page-title {
  margin: 0;
  color: var(--ps-blue);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.12;
}

.ps-section__head p {
  max-width: 620px;
  margin: 8px 0 0;
  color: var(--ps-muted);
}

.ps-content-grid {
  display: grid;
  gap: 18px;
}

.ps-content-card {
  display: grid;
  grid-template-columns: 132px 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 18px;
  border: 1px solid var(--ps-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(25, 62, 112, 0.07);
}

.ps-thumb {
  width: 132px;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  background: var(--ps-orange);
}

.ps-tag {
  display: inline-block;
  margin-bottom: 6px;
  color: var(--ps-orange);
  font-size: calc(var(--artboard) * 0.0152);
  font-weight: 900;
  text-transform: uppercase;
}

.ps-content-card h3 {
  margin: 0 0 5px;
  color: var(--ps-blue);
  font-size: 18px;
  line-height: 1.25;
}

.ps-content-card p {
  margin: 0;
  color: var(--ps-muted);
  font-size: 14px;
}

.ps-page {
  min-height: 60vh;
  padding: 58px 0 78px;
}

.ps-page__body {
  max-width: 900px;
  margin-top: 28px;
}

.ps-page__body a {
  color: var(--ps-blue);
  font-weight: 700;
}

.ps-footer {
  position: relative;
  overflow: hidden;
  padding: 46px 0 20px;
  color: #2d405c;
  background: linear-gradient(180deg, #f4f8ff 0%, #eaf3ff 100%);
  text-align: center;
}

.ps-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 100px;
  background:
    radial-gradient(60% 110% at 20% 0%, transparent 52%, rgba(175, 214, 249, 0.48) 53% 68%, transparent 69%),
    radial-gradient(50% 90% at 76% 6%, transparent 48%, rgba(195, 225, 251, 0.62) 49% 66%, transparent 67%);
}

.ps-footer__inner {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 20px;
}

.ps-sapio {
  display: block;
  width: 118px;
  height: auto;
  justify-self: center;
}

.ps-footer small,
.ps-footer nav {
  font-size: 12px;
}

.ps-footer nav {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
}

.ps-user-pill {
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: var(--ps-blue);
  font-size: 12px;
  font-weight: 900;
}

.ps-user-name {
  color: #111;
}

.ps-separator {
  color: #111;
}

.ps-home-hero {
  position: relative;
  margin: 24px auto 0;
  width: min(100% - 50px, 1470px);
  min-height: 730px;
  overflow: hidden;
  border-radius: 42px;
  background:
    radial-gradient(circle at 98% 8%, rgba(179, 211, 247, 0.9) 0 16px, transparent 17px),
    radial-gradient(circle at 2% 85%, rgba(255, 255, 255, 0.85) 0 2px, transparent 3px),
    linear-gradient(150deg, rgba(255,255,255,0.94), rgba(255,255,255,0.76)),
    linear-gradient(28deg, transparent 0 49%, rgba(205, 226, 250, 0.48) 50% 56%, transparent 57%),
    radial-gradient(80% 45% at 18% 100%, rgba(185, 218, 251, 0.9), transparent 70%),
    radial-gradient(90% 55% at 78% 108%, rgba(210, 231, 252, 0.95), transparent 68%),
    #f8fbff;
}

.ps-home-hero::after,
.ps-wave::after {
  content: "";
  position: absolute;
  inset: auto -8% 0;
  height: 260px;
  background:
    radial-gradient(70% 100% at 14% 10%, transparent 48%, rgba(178, 214, 249, 0.75) 49% 64%, transparent 65%),
    radial-gradient(72% 105% at 64% 24%, transparent 48%, rgba(203, 228, 252, 0.9) 49% 64%, transparent 65%);
  pointer-events: none;
}

.ps-home-hero .ps-hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 48px;
  padding: 88px 0 126px;
}

.ps-home-hero__intro {
  text-align: center;
}

.ps-home-hero .ps-title {
  font-size: clamp(48px, 5.4vw, 74px);
  font-weight: 400;
}

.ps-home-hero .ps-lead {
  margin: 28px auto 0;
  max-width: 620px;
  color: #161616;
  font-size: clamp(22px, 2.1vw, 29px);
  line-height: 1.22;
}

.ps-home-hero .ps-hero__actions {
  width: min(100%, 1220px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 34px;
}

.ps-home-hero .ps-access-card {
  min-height: 255px;
  border-radius: 26px;
  gap: 22px;
}

.ps-home-hero .ps-access-card h2 {
  font-size: 32px;
}

.ps-home-hero .ps-access-card p {
  max-width: 520px;
  font-size: 23px;
  line-height: 1.22;
}

.ps-home-hero .ps-access-card .ps-button {
  min-height: 58px;
  color: var(--ps-blue);
  background: #cde3ff;
}

.ps-home-hero .ps-access-card--deep .ps-button {
  color: #fff;
  background: var(--ps-blue);
}

.ps-section--home {
  padding: 88px 0 72px;
}

.ps-section--home .ps-section__head {
  margin-bottom: 48px;
}

.ps-section--home .ps-section__head h2 {
  color: var(--ps-blue);
  font-size: clamp(34px, 3.4vw, 44px);
  font-weight: 800;
}

.ps-course-card,
.ps-material-card,
.ps-detail-box {
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 72, 151, 0.08);
}

.ps-course-card {
  padding: 24px 28px;
}

.ps-course-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 24px;
}

.ps-aims {
  display: inline-flex;
  align-items: flex-end;
  gap: 12px;
  color: #111;
  font-size: 22px;
  white-space: nowrap;
}

.ps-aims img {
  display: block;
  width: 282px;
  max-width: 36vw;
  height: auto;
}

.ps-course-card__main {
  display: grid;
  grid-template-columns: 290px 1fr auto;
  gap: 32px;
  align-items: center;
  border-top: 1px solid #cfe1f7;
  padding-top: 28px;
}

.ps-course-card__main h2{
  color:#004897 !important;
}

.ps-course-card .ps-thumb,
.ps-material-card .ps-thumb {
  width: 290px;
  border-radius: 22px;
}

.ps-course-card .ps-thumb--image,
.ps-material-card .ps-thumb--image {
  display: block;
  aspect-ratio: 16 / 10;
  height: auto;
  object-fit: cover;
}

.ps-course-card h2,
.ps-material-card h2 {
  margin: 0 0 18px;
  color: var(--ps-blue);
  font-size: clamp(24px, 2.3vw, 32px);
  line-height: 1.14;
}

.ps-course-card p,
.ps-material-card p,
.ps-material-card__text {
  margin: 0;
  color: #151515;
  font-size: clamp(20px, 1.8vw, 25px);
  line-height: 1.3;
}

.ps-material-card__text p {
  margin: 0;
}

.ps-course-card--compact {
  margin-top: 40px;
}

.ps-interior {
  position: relative;
  overflow: hidden;
  min-height: calc(100vh - 96px);
  padding: 126px 0 112px;
  background:
    linear-gradient(150deg, rgba(255,255,255,0.96), rgba(255,255,255,0.82)),
    linear-gradient(28deg, transparent 0 50%, rgba(205, 226, 250, 0.42) 51% 56%, transparent 57%),
    radial-gradient(70% 35% at 15% 100%, rgba(185, 218, 251, 0.9), transparent 70%),
    radial-gradient(88% 50% at 80% 105%, rgba(210, 231, 252, 0.95), transparent 68%),
    #fff;
}

.ps-interior > .ps-container {
  position: relative;
  z-index: 1;
}

.ps-intro {
  max-width: 1180px;
  margin: 0 auto 44px;
}

.ps-intro h1 {
  margin: 0 0 26px;
  color: var(--ps-blue);
  font-size: clamp(34px, 3.2vw, 26px);
  line-height: 1.18;
}

.ps-intro p {
  margin: 0;
  color: #111;
  font-size: clamp(24px, 2.35vw, 19px);
  line-height: 1.24;
}

.ps-intro--consent {
  max-width: 1300px;
  margin-bottom: 64px;
}

.ps-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin: 52px auto 0;
  padding: 0 0 22px;
  border-bottom: 2px solid #cfe1f7;
  color: var(--ps-blue);
  font-size: clamp(20px, 1.5vw, 27px);
  font-weight: 500;
}

.ps-tabs a {
  padding: 0 8px;
}

.ps-tabs .is-active {
  font-weight: 800;
}

.ps-tabs a + a::before {
  content: "|";
  margin-right: 24px;
  color: var(--ps-blue);
  font-weight: 500;
}

.ps-detail-box {
  margin-top: 0;
  padding: 42px 48px;
  font-size: clamp(20px, 1.9vw, 27px);
  line-height: 1.52;
}

.ps-detail-box p {
  margin: 0 0 10px;
}

.ps-profile {
  max-width: 760px;
  margin-left: 12px;
  color: #6b6b6b;
  font-size: clamp(23px, 2vw, 30px);
}

.ps-profile h2 {
  margin: 0 0 34px;
  color: var(--ps-blue);
  font-size: clamp(25px, 2.3vw, 34px);
  text-transform: uppercase;
}

.ps-profile h2:not(:first-child) {
  margin-top: 50px;
}

.ps-profile p {
  margin: 0 0 12px;
}

.ps-profile strong {
  color: #555;
}

.ps-consent-form {
  max-width: 760px;
  margin-top: 36px;
}

.ps-consent-check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  color: #111;
  font-size: clamp(16px, 1.35vw, 20px);
  font-weight: 600;
  line-height: 1.35;
  cursor: pointer;
}

.ps-consent-check input {
  width: 22px;
  height: 22px;
  margin-top: 2px;
  flex: none;
  accent-color: var(--ps-blue);
}

.ps-button--consent {
  margin-top: 44px;
  min-height: 60px;
  font-size: 26px;
}

.ps-rule {
  height: 2px;
  margin: 44px 0 54px;
  background: #cfe1f7;
}

.ps-material-list {
  display: grid;
  gap: 34px;
}

.ps-material-card {
  display: grid;
  grid-template-columns: 290px 1fr auto;
  gap: 34px;
  align-items: center;
  padding: 26px 22px;
}

.ps-material-card .ps-button {
  align-self: end;
}

.ps-registration .ps-intro {
  max-width: 980px;
}

.ps-registration .ps-intro h1 {
  color: var(--ps-blue-dark);
}

.ps-registration .ps-intro p {
  color: var(--ps-muted);
}

.ps-login-form,
.ps-recovery-form,
.ps-registration-form {
  display: grid;
  gap: 28px;
  max-width: 1040px;
  margin: 0 auto;
}

.ps-login-form {
  margin-bottom: 18px;
}

.ps-recovery-form {
  display: none;
}

.ps-recovery-panel {
  clear: both;
  margin-top: 24px;
  border-top: 1px solid rgba(0, 72, 151, 0.16);
  border-radius: 8px;
  padding: 22px;
  background:
    linear-gradient(135deg, rgba(237, 246, 255, 0.96), rgba(255, 255, 255, 0.98));
  box-shadow: inset 4px 0 0 var(--ps-orange), inset 0 0 0 1px rgba(0, 72, 151, 0.12);
}

.ps-recovery-panel h2 {
  margin: 0 0 6px;
  color: var(--ps-blue-dark);
  font-size: clamp(18px, 1.45vw, 22px);
  line-height: 1.2;
}

.ps-recovery-note {
  clear: both;
  margin: 0 0 16px;
  color: var(--ps-muted);
  font-size: 15px;
  line-height: 1.45;
}

.ps-login-form fieldset,
.ps-recovery-form fieldset,
.ps-registration-form fieldset,
.ps-form-alert {
  border: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 72, 151, 0.08);
}

.ps-login-form fieldset,
.ps-recovery-form fieldset,
.ps-registration-form fieldset {
  margin: 0;
  padding: 28px;
  border-top: 4px solid rgba(0, 72, 151, 0.16);
}

.ps-login-form legend,
.ps-recovery-form legend,
.ps-registration-form legend {
  float: left;
  width: 100%;
  margin: 0 0 22px;
  color: var(--ps-blue);
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 800;
}

.ps-registration-form fieldset:nth-of-type(2) {
  border-top-color: rgba(255, 127, 50, 0.45);
}

.ps-registration-form fieldset:nth-of-type(3) {
  border-top-color: rgba(23, 42, 97, 0.34);
}

.ps-registration-form .ps-form-section {
  display: flow-root;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ps-registration-form .ps-form-section legend {
  margin: 0 0 16px;
  font-size: clamp(18px, 1.45vw, 22px);
  font-weight: 800;
}

.ps-registration-form .ps-form-section + .ps-form-section {
  margin-top: 8px;
  padding-top: 22px;
  border-top: 3px solid rgba(0, 72, 151, 0.12);
}

.ps-registration-form .ps-registration-block .ps-form-actions {
  clear: both;
  margin-top: 28px;
}

.ps-form-grid {
  clear: both;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 20px 24px;
}

.ps-login-form label,
.ps-recovery-form label,
.ps-registration-form label,
.ps-form-field {
  display: grid;
  gap: 8px;
  color: var(--ps-ink);
  font-size: 16px;
  font-weight: 700;
}

.ps-registration-form label[hidden],
.ps-form-grid > [hidden] {
  display: none !important;
}

.ps-login-form input,
.ps-recovery-form input,
.ps-registration-form input,
.ps-registration-form select {
  width: 100%;
  min-height: 52px;
  border: 1px solid #b8cbe4;
  border-radius: 8px;
  padding: 0 14px;
  color: var(--ps-ink);
  background: #fff;
  font: inherit;
  font-weight: 500;
}

.ps-registration-form select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23004897' d='M1.4.8 6 5.4 10.6.8 12 2.2 6 8 0 2.2z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px 8px;
  cursor: pointer;
}

.ps-registration-form select:disabled,
.ps-registration-form input[readonly] {
  background-color: #eef3f9;
  color: #7a8aa3;
  cursor: default;
  opacity: 1;
}

.ps-registration-form .ps-radio-group input:disabled {
  cursor: default;
}

.ps-login-form input:focus,
.ps-recovery-form input:focus,
.ps-registration-form input:focus,
.ps-registration-form select:focus {
  outline: 3px solid rgba(0, 72, 151, 0.18);
  border-color: var(--ps-blue);
}

.ps-login-form small,
.ps-recovery-form small,
.ps-registration-form small {
  color: var(--ps-muted);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
}

.ps-login-form .ps-field-error,
.ps-recovery-form .ps-field-error,
.ps-registration-form .ps-field-error {
  color: #b3261e;
  font-weight: 700;
}

.ps-form-span-2 {
  grid-column: 1 / -1;
}

.ps-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  min-height: 52px;
  align-items: center;
  border: 1px solid #b8cbe4;
  border-radius: 8px;
  padding: 10px 14px;
  background: #fff;
}

.ps-radio-group label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}

.ps-radio-group input {
  width: 18px;
  min-height: 18px;
}

.ps-field-help {
  display: inline-flex;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  margin-left: 6px;
  color: #fff;
  background: var(--ps-blue);
  font-size: 14px;
  font-weight: 800;
}

.ps-help-text {
  display: none;
}

label:focus-within .ps-help-text,
label:hover .ps-help-text {
  display: block;
}

.ps-form-alert {
  max-width: 1040px;
  margin: 0 auto 28px;
  padding: 22px 26px;
  border-left: 6px solid #d94f45;
  color: #4d1d1a;
}

.ps-form-alert strong {
  display: block;
  margin-bottom: 8px;
  font-size: 18px;
}

.ps-form-alert ul {
  margin: 0;
  padding-left: 20px;
}

.ps-form-alert--inline {
  max-width: none;
  margin: 0 0 22px;
  box-shadow: none;
  background: #fff7f6;
}

.ps-form-success {
  display: block;
  box-sizing: border-box;
  width: 100%;
  border-radius: 8px;
  clear: both;
  margin: 10px 0 24px;
  padding: clamp(18px, 2vw, 24px) clamp(20px, 2.4vw, 30px);
  color: #173f25;
  background: #e8f6ed;
  font-weight: 700;
  line-height: 1.45;
}

.ps-form-actions {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: flex-end;
}

.ps-form-actions--login {
  margin-top: 22px;
  margin-right: 34px;
  align-items: center;
  justify-content: flex-end;
}

.ps-form-actions--login .ps-button {
  min-width: 142px;
}

.ps-login-recovery-link {
  display: inline-flex;
  width: fit-content;
  margin-top: 10px;
}

.ps-login-form .ps-form-grid > label:first-child {
  position: relative;
  padding-bottom: 30px;
}

.ps-login-form .ps-form-grid > label:first-child .ps-login-recovery-link {
  position: absolute;
  left: 0;
  bottom: 0;
}

.ps-login-links {
  margin: 18px 0 0;
  text-align: left;
}

.ps-login-links a,
.ps-text-link {
  color: var(--ps-blue);
  font-size: 15px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.ps-login-links a:hover,
.ps-login-links a:focus-visible,
.ps-text-link:hover,
.ps-text-link:focus-visible {
  color: var(--ps-orange);
}

.ps-form-grid--recovery {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px;
}

.ps-form-actions--recovery {
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
}

.ps-form-actions--recovery .ps-button,
.ps-button--login-return {
  min-height: 48px;
  padding-inline: 24px;
  font-size: 16px;
  white-space: nowrap;
}

.ps-form-actions--recovery .ps-button {
  background: var(--ps-orange);
  box-shadow: 0 10px 22px rgba(255, 127, 50, 0.18);
}

.ps-form-actions--recovery .ps-button:hover,
.ps-form-actions--recovery .ps-button:focus-visible {
  background: #e8691d;
}

.ps-form-actions--recovery .ps-button--secondary,
.ps-form-actions--login .ps-button--secondary {
  color: var(--ps-blue);
  background: #fff;
}

.ps-form-actions--recovery .ps-button--secondary:hover,
.ps-form-actions--recovery .ps-button--secondary:focus-visible,
.ps-form-actions--login .ps-button--secondary:hover,
.ps-form-actions--login .ps-button--secondary:focus-visible {
  color: #fff;
  background: var(--ps-blue);
}

.ps-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.ps-footer {
  padding: 34px 0 22px;
}

.ps-footer__inner {
  grid-template-columns: 1fr;
  gap: 18px;
}

.ps-footer small:first-child {
  color: #111;
  font-size: 20px;
}

.ps-sapio {
  width: 118px;
}

body.ps-real-landing {
  overflow-x: hidden;
  color: #0b0b0b;
  background: #fff;
  font-family: "Barlow", "Segoe UI", Arial, sans-serif;
}

.ps-real-landing * {
  letter-spacing: 0;
}

.ps-landing-header,
.ps-landing-feature,
.ps-landing-footer__bottom {
  width: min(100% - 96px, 2360px);
  margin-inline: auto;
}

.ps-landing-header {
  min-height: 155px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.ps-landing-logo {
  color: var(--ps-blue);
  font-size: clamp(34px, 3.45vw, 70px);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

.ps-landing-logo img {
  display: block;
  width: clamp(260px, 25vw, 440px);
  height: auto;
}

.ps-landing-logo strong,
.ps-landing-hero h1 strong {
  font-weight: 900;
}

.ps-landing-nav {
  display: flex;
  align-items: center;
  gap: 54px;
  color: #080808;
  font-size: clamp(20px, 1.7vw, 36px);
  font-weight: 500;
}

.ps-landing-login,
.ps-landing-panel a,
.ps-landing-course__button {
  display: inline-flex;
  min-height: 86px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--ps-blue);
  color: #fff;
  font-weight: 800;
  line-height: 1;
  box-shadow: none;
}

.ps-landing-login {
  min-width: 290px;
  text-transform: uppercase;
}

.ps-landing-hero {
  position: relative;
  isolation: isolate;
  width: min(100% - 50px, 2410px);
  min-height: 1160px;
  margin: 38px auto 0;
  overflow: hidden;
  border-radius: 56px;
  background:
    radial-gradient(circle at 98% 8%, rgba(202, 224, 251, 0.95) 0 18px, transparent 19px),
    radial-gradient(circle at 97.2% 7.35%, #f7fbff 0 18px, transparent 19px),
    radial-gradient(circle at 1.8% 88%, rgba(255,255,255,0.82) 0 2px, transparent 3px),
    linear-gradient(154deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.84) 48%, rgba(241,247,255,0.8) 100%),
    radial-gradient(80% 48% at 16% 99%, rgba(194, 222, 252, 0.92) 0%, rgba(194, 222, 252, 0.5) 42%, transparent 72%),
    radial-gradient(78% 44% at 86% 104%, rgba(216, 235, 254, 0.96) 0%, rgba(216, 235, 254, 0.54) 48%, transparent 72%),
    #f8fbff;
}

.ps-landing-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(152deg, transparent 0 52%, rgba(213, 232, 253, 0.58) 52.3% 58%, transparent 58.3%),
    linear-gradient(24deg, transparent 0 38%, rgba(204, 226, 251, 0.76) 38.3% 46%, transparent 46.4%),
    radial-gradient(90% 34% at 17% 99%, transparent 56%, rgba(190, 221, 253, 0.76) 56.5% 70%, transparent 71%),
    radial-gradient(88% 32% at 72% 99%, transparent 48%, rgba(211, 232, 253, 0.88) 48.5% 67%, transparent 68%);
}

.ps-landing-hero::after {
  content: "";
  position: absolute;
  left: -10%;
  right: -10%;
  bottom: -24px;
  z-index: -1;
  height: 360px;
  background:
    radial-gradient(70% 120% at 13% 2%, transparent 47%, rgba(176, 213, 250, 0.75) 47.5% 62%, transparent 63%),
    radial-gradient(68% 112% at 64% 15%, transparent 47%, rgba(204, 228, 253, 0.9) 47.5% 64%, transparent 65%);
}

.ps-landing-hero__content {
  max-width: 920px;
  margin: 126px auto 0;
  text-align: center;
}

.ps-landing-hero h1 {
  margin: 0;
  color: #000;
  font-size: clamp(54px, 5.05vw, 112px);
  font-weight: 400;
  line-height: 1;
}

.ps-landing-hero p {
  max-width: 760px;
  margin: 48px auto 0;
  color: #111;
  font-size: clamp(26px, 2.1vw, 44px);
  font-weight: 400;
  line-height: 1.18;
}

.ps-landing-actions {
  width: min(100% - 330px, 2080px);
  margin: 110px auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 58px;
}

.ps-landing-panel {
  min-height: 430px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 34px;
  border-radius: 34px;
  padding: 54px 58px;
  text-align: center;
}

.ps-landing-panel h2 {
  margin: 0;
  color: inherit;
  font-size: clamp(30px, 2.2vw, 48px);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.ps-landing-panel p {
  max-width: 640px;
  margin: 0;
  color: inherit;
  font-size: clamp(22px, 1.65vw, 34px);
  line-height: 1.22;
}

.ps-landing-panel a {
  min-height: 88px;
  padding: 0 44px;
  font-size: clamp(22px, 1.65vw, 34px);
}

.ps-landing-panel--ecm {
  color: #fff;
  background: #1e2f62;
}

.ps-landing-panel--ecm a {
  color: var(--ps-blue);
  background: #cfe4ff;
}

.ps-landing-panel--materials {
  color: #263765;
  background: #c8def8;
}

.ps-landing-panel--materials h2 {
  color: var(--ps-blue);
}

.ps-landing-feature {
  padding: 156px 0 96px;
}

.ps-landing-feature > h2 {
  margin: 0 0 76px 24px;
  color: var(--ps-blue);
  font-size: clamp(34px, 3vw, 60px);
  font-weight: 800;
  line-height: 1.05;
}

.ps-landing-course {
  display: grid;
  grid-template-columns: 470px minmax(0, 1fr) 360px;
  align-items: center;
  gap: 52px;
  min-height: 520px;
  padding: 46px 46px 42px;
  border-radius: 34px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(0, 72, 151, 0.09);
}

.ps-landing-course__media {
  width: 470px;
  aspect-ratio: 1.48;
  align-self: start;
  border-radius: 30px;
  background: var(--ps-orange);
  object-fit: cover;
}

.ps-landing-course__body {
  align-self: start;
  padding-top: 34px;
}

.ps-landing-course__body > span {
  display: block;
  margin-bottom: 24px;
  color: var(--ps-orange);
  font-size: clamp(24px, 1.75vw, 38px);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.ps-landing-course h3 {
  margin: 0 0 36px;
  color: var(--ps-blue);
  font-size: clamp(28px, 2.05vw, 44px);
  font-weight: 800;
  line-height: 1.12;
}

.ps-landing-course p {
  margin: 0;
  color: #111;
  font-size: clamp(23px, 1.65vw, 36px);
  line-height: 1.2;
}

.ps-landing-aims {
  margin-top: 106px;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #111;
  font-size: clamp(20px, 1.5vw, 32px);
  white-space: nowrap;
}

.ps-landing-aims strong {
  color: #2990a7;
  font-family: Georgia, serif;
  font-size: clamp(34px, 2.6vw, 54px);
}

.ps-landing-aims small {
  max-width: 190px;
  color: #2990a7;
  font-family: Georgia, serif;
  font-size: clamp(10px, 0.75vw, 16px);
  font-style: italic;
  line-height: 1.05;
  white-space: normal;
}

.ps-landing-course__button {
  align-self: end;
  min-height: 88px;
  padding: 0 70px;
  font-size: clamp(22px, 1.6vw, 34px);
}

.ps-landing-footer {
  background: #f3f6fc;
}

.ps-landing-footer__top {
  min-height: 260px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 36px;
  text-align: center;
}

.ps-landing-footer__top p {
  margin: 0;
  color: #111;
  font-size: clamp(20px, 1.55vw, 32px);
}

.ps-landing-footer__top strong {
  display: inline-flex;
  padding: 0 8px;
  border: 4px solid #70b82b;
  border-radius: 7px;
  color: var(--ps-blue);
  font-size: clamp(28px, 2vw, 42px);
  font-weight: 900;
  line-height: 0.95;
}

.ps-landing-footer__bottom {
  min-height: 100px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: #1e2f62;
  background: #fff;
  font-size: clamp(18px, 1.35vw, 28px);
}

.ps-landing-footer__bottom nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.ps-landing-footer__bottom nav a + a::before {
  content: "|";
  margin-right: 10px;
}

@media (max-width: 980px) {
  .ps-material-card {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ps-material-card .ps-thumb {
      width: 100%;
  }

  .ps-material-card .ps-button {
      width: 100%;
      justify-self: stretch;
  }

  .ps-landing-header,
  .ps-landing-feature,
  .ps-landing-footer__bottom {
    width: min(100% - 32px, 720px);
  }

  .ps-landing-header {
    min-height: 88px;
  }

  .ps-landing-logo {
    font-size: 28px;
  }

  .ps-landing-nav {
    gap: 16px;
    font-size: 15px;
  }

  .ps-landing-login {
    min-width: 96px;
    min-height: 38px;
    font-size: 15px;
  }

  .ps-landing-hero {
    width: min(100% - 20px, 720px);
    min-height: auto;
    margin-top: 12px;
    border-radius: 22px;
  }

  .ps-landing-hero__content {
    margin-top: 54px;
    padding-inline: 18px;
  }

  .ps-landing-hero h1 {
    font-size: clamp(34px, 10vw, 62px);
  }

  .ps-landing-hero p {
    margin-top: 20px;
    font-size: clamp(17px, 5vw, 26px);
  }

  .ps-landing-actions {
    width: min(100% - 28px, 620px);
    margin: 48px auto 70px;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .ps-landing-panel {
    min-height: 205px;
    border-radius: 20px;
    gap: 18px;
    padding: 28px 22px;
  }

  .ps-landing-panel h2 {
    font-size: 26px;
  }

  .ps-landing-panel p {
    font-size: 18px;
  }

  .ps-landing-panel a {
    min-height: 46px;
    padding-inline: 24px;
    font-size: 17px;
  }

  .ps-landing-feature {
    padding: 58px 0 48px;
  }

  .ps-landing-feature > h2 {
    margin: 0 0 28px;
    font-size: 29px;
  }

  .ps-landing-course {
    grid-template-columns: 1fr;
    gap: 20px;
    min-height: 0;
    padding: 22px;
    border-radius: 18px;
  }

  .ps-landing-course__media {
    width: 100%;
    border-radius: 18px;
  }

  .ps-landing-course__body {
    padding-top: 0;
  }

  .ps-landing-course__body > span {
    margin-bottom: 12px;
    font-size: 18px;
  }

  .ps-landing-course h3 {
    margin-bottom: 14px;
    font-size: 23px;
  }

  .ps-landing-course p {
    font-size: 17px;
  }

  .ps-landing-aims {
    margin-top: 24px;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 15px;
    white-space: normal;
  }

  .ps-landing-aims strong {
    font-size: 28px;
  }

  .ps-landing-course__button {
    width: 100%;
    min-height: 48px;
    padding-inline: 22px;
    font-size: 18px;
  }

  .ps-landing-footer__top {
    min-height: 190px;
    padding: 26px 16px;
    gap: 20px;
  }

  .ps-landing-footer__top p {
    font-size: 16px;
  }

  .ps-landing-footer__bottom {
    min-height: 132px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    font-size: 14px;
  }

  .ps-landing-footer__bottom nav {
    justify-content: flex-start;
  }
}

@media (max-width: 430px) {
  .ps-landing-header {
    gap: 12px;
  }

  .ps-landing-logo {
    font-size: 22px;
  }

  .ps-landing-nav > a:first-child {
    display: none;
  }

  .ps-landing-login {
    min-width: 84px;
  }
}

/* Pixel-mapped landing from the 2502px PDF artboard. */
body.ps-real-landing {
  --artboard: min(100vw, 2502px);
  overflow-x: hidden;
  min-width: 320px;
  color: #0b0b0b;
  background: #fff;
  font-family: "Barlow", "Segoe UI", Arial, sans-serif;
  line-height: 1.2;
}

body.ps-real-landing main,
body.ps-real-landing header,
body.ps-real-landing footer {
  max-width: 2502px;
  margin-inline: auto;
}

.ps-real-landing .ps-landing-header {
  width: 100%;
  min-height: calc(var(--artboard) * 0.063);
  padding: 0 calc(var(--artboard) * 0.042) 0 calc(var(--artboard) * 0.042);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--artboard) * 0.02);
}

.ps-real-landing .ps-landing-logo {
  display: inline-flex;
  align-items: center;
  color: var(--ps-blue);
  font-size: calc(var(--artboard) * 0.028);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

.ps-real-landing .ps-landing-logo img {
  display: block;
  width: clamp(220px, calc(var(--artboard) * 0.228), 569px);
  height: auto;
}

.ps-real-landing .ps-landing-logo strong {
  font-weight: 900;
}

.ps-real-landing .ps-landing-nav {
  display: flex;
  align-items: center;
  gap: calc(var(--artboard) * 0.036);
  color: #070707;
  font-size: calc(var(--artboard) * 0.0144);
  font-weight: 500;
}

.ps-real-landing .ps-landing-login,
.ps-real-landing .ps-landing-panel a,
.ps-real-landing .ps-landing-course__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: calc(var(--artboard) * 0.0344);
  border-radius: 999px;
  background: var(--ps-blue);
  color: #fff;
  font-size: calc(var(--artboard) * 0.014);
  font-weight: 800;
  line-height: 1;
}

.ps-real-landing .ps-landing-login {
  min-width: calc(var(--artboard) * 0.122);
  text-transform: uppercase;
}

.ps-real-landing .ps-landing-hero {
  position: relative;
  isolation: isolate;
  width: calc(var(--artboard) * 0.961);
  min-height: calc(var(--artboard) * 0.46);
  margin: calc(var(--artboard) * 0.019) auto 0;
  overflow: hidden;
  border-radius: calc(var(--artboard) * 0.022);
  background:
    radial-gradient(circle at 97.7% 8.3%, rgba(204, 226, 252, 0.96) 0 calc(var(--artboard) * 0.008), transparent calc(var(--artboard) * 0.0084)),
    radial-gradient(circle at 96.9% 7.4%, #f9fcff 0 calc(var(--artboard) * 0.008), transparent calc(var(--artboard) * 0.0084)),
    linear-gradient(154deg, rgba(255,255,255,0.99), rgba(255,255,255,0.85)),
    radial-gradient(72% 44% at 12% 100%, rgba(197, 224, 253, 0.95), transparent 69%),
    radial-gradient(80% 48% at 86% 105%, rgba(219, 237, 255, 0.96), transparent 70%),
    #f8fbff;
}

.ps-real-landing .ps-landing-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 1.3% 83.5%, rgba(255,255,255,0.86) 0 2px, transparent 3px),
    linear-gradient(153deg, transparent 0 52%, rgba(216, 234, 253, 0.62) 52.2% 57.5%, transparent 57.8%),
    linear-gradient(24deg, transparent 0 38.2%, rgba(202, 225, 251, 0.78) 38.4% 45.5%, transparent 45.8%),
    radial-gradient(86% 31% at 17% 102%, transparent 54%, rgba(183, 217, 251, 0.78) 54.4% 69%, transparent 69.4%),
    radial-gradient(84% 29% at 70% 101%, transparent 47%, rgba(207, 230, 253, 0.88) 47.4% 66%, transparent 66.4%);
}

.ps-real-landing .ps-landing-hero::after {
  content: "";
  position: absolute;
  inset: auto -9% calc(var(--artboard) * -0.012);
  z-index: -1;
  height: calc(var(--artboard) * 0.148);
  background:
    radial-gradient(72% 118% at 13% 5%, transparent 47%, rgba(174, 212, 249, 0.72) 47.4% 62%, transparent 62.5%),
    radial-gradient(68% 112% at 64% 18%, transparent 47%, rgba(204, 228, 253, 0.92) 47.4% 64%, transparent 64.6%);
}

.ps-real-landing .ps-landing-hero__content {
  max-width: calc(var(--artboard) * 0.4);
  margin: calc(var(--artboard) * 0.052) auto 0;
  text-align: center;
}

.ps-real-landing .ps-landing-hero h1 {
  margin: 0;
  color: #000;
  font-size: calc(var(--artboard) * 0.0448);
  font-weight: 400;
  line-height: 1;
}

.ps-real-landing .ps-landing-hero h1 strong {
  font-weight: 900;
}

.ps-real-landing .ps-landing-hero p {
  max-width: calc(var(--artboard) * 0.31);
  margin: calc(var(--artboard) * 0.018) auto 0;
  color: #111;
  font-size: calc(var(--artboard) * 0.0176);
  font-weight: 400;
  line-height: 1.18;
}

.ps-real-landing .ps-landing-actions {
  width: calc(var(--artboard) * 0.824);
  margin: calc(var(--artboard) * 0.039) auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: calc(var(--artboard) * 0.023);
}

.ps-real-landing .ps-landing-panel {
  min-height: calc(var(--artboard) * 0.172);
  display: grid;
  align-content: center;
  justify-items: center;
  gap: calc(var(--artboard) * 0.014);
  border-radius: calc(var(--artboard) * 0.018);
  padding: calc(var(--artboard) * 0.022);
  text-align: center;
}

.ps-real-landing .ps-landing-panel h2 {
  margin: 0;
  color: inherit;
  font-size: calc(var(--artboard) * 0.019);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.ps-real-landing .ps-landing-panel p {
  max-width: calc(var(--artboard) * 0.27);
  margin: 0;
  color: inherit;
  font-size: calc(var(--artboard) * 0.0136);
  font-weight: 400;
  line-height: 1.22;
}

.ps-real-landing .ps-landing-panel a {
  min-width: calc(var(--artboard) * 0.158);
  padding: 0 calc(var(--artboard) * 0.018);
}

.ps-real-landing .ps-landing-panel--ecm {
  color: #fff;
  background: #1e2f62;
}

.ps-real-landing .ps-landing-panel--ecm a {
  color: var(--ps-blue);
  background: #cfe4ff;
}

.ps-real-landing .ps-landing-panel--materials {
  color: #263765;
  background: #c8def8;
}

.ps-real-landing .ps-landing-panel--materials h2 {
  color: var(--ps-blue);
}

.ps-real-landing .ps-landing-feature {
  width: calc(var(--artboard) * 0.95);
  padding: calc(var(--artboard) * 0.061) 0 calc(var(--artboard) * 0.039);
}

.ps-real-landing .ps-landing-feature > h2 {
  margin: 0 0 calc(var(--artboard) * 0.029) calc(var(--artboard) * 0.018);
  color: var(--ps-blue);
  font-size: calc(var(--artboard) * 0.024);
  font-weight: 800;
  line-height: 1.05;
}

.ps-real-landing .ps-landing-course {
  min-height: calc(var(--artboard) * 0.209);
  display: grid;
  grid-template-columns: calc(var(--artboard) * 0.19) 1fr calc(var(--artboard) * 0.19);
  align-items: center;
  gap: calc(var(--artboard) * 0.021);
  padding: calc(var(--artboard) * 0.017) calc(var(--artboard) * 0.018);
  border-radius: calc(var(--artboard) * 0.016);
  background: #fff;
  box-shadow: 0 8px 26px rgba(0, 72, 151, 0.09);
}

.ps-real-landing .ps-landing-course__media {
  width: calc(var(--artboard) * 0.19);
  aspect-ratio: 1.48;
  align-self: start;
  border-radius: calc(var(--artboard) * 0.014);
  background: var(--ps-orange);
  object-fit: cover;
}

.ps-real-landing .ps-landing-course__body {
  align-self: stretch;
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding-top: calc(var(--artboard) * 0.017);
}

.ps-real-landing .ps-landing-course__body > span {
  display: block;
  margin-bottom: calc(var(--artboard) * 0.012);
  color: var(--ps-orange);
  font-size: calc(var(--artboard) * 0.0152);
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
}

.ps-real-landing .ps-landing-course h3 {
  margin: 0 0 calc(var(--artboard) * 0.014);
  color: var(--ps-blue);
  font-size: calc(var(--artboard) * 0.0176);
  font-weight: 800;
  line-height: 1.12;
}

.ps-real-landing .ps-landing-course p {
  margin: 0;
  color: #111;
  font-size: calc(var(--artboard) * 0.0144);
  line-height: 1.2;
}

.ps-real-landing .ps-landing-aims {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: calc(var(--artboard) * 0.012);
  color: #111;
  font-size: calc(var(--artboard) * 0.0128);
  white-space: nowrap;
}

.ps-real-landing .ps-landing-aims img {
  width: calc(var(--artboard) * 0.175);
  max-width: 220px;
}

.ps-real-landing .ps-landing-course__button {
  align-self: end;
  min-width: calc(var(--artboard) * 0.158);
  padding: 0 calc(var(--artboard) * 0.028);
}

.ps-real-landing .ps-landing-footer {
  background: #f3f6fc;
}

.ps-real-landing .ps-landing-footer__top {
  min-height: calc(var(--artboard) * 0.104);
  display: grid;
  place-items: center;
  align-content: center;
  gap: calc(var(--artboard) * 0.014);
  text-align: center;
}

.ps-real-landing .ps-landing-footer__top p {
  margin: 0;
  color: #111;
  font-size: calc(var(--artboard) * 0.0128);
  line-height: 1.25;
}

.ps-real-landing .ps-landing-footer__top img {
  width: calc(var(--artboard) * 0.1);
  max-width: 251px;
}

.ps-real-landing .ps-landing-footer__bottom {
  width: 100%;
  min-height: calc(var(--artboard) * 0.04);
  padding: 0 calc(var(--artboard) * 0.05);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--artboard) * 0.02);
  color: #1e2f62;
  background: #fff;
  font-size: calc(var(--artboard) * 0.0112);
}

.ps-real-landing .ps-landing-footer__bottom nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: calc(var(--artboard) * 0.004);
}

.ps-real-landing .ps-landing-footer__bottom nav a + a::before {
  content: "|";
  margin-right: calc(var(--artboard) * 0.004);
}

@media (max-width: 760px) {
  body.ps-real-landing {
    --artboard: 100vw;
  }

  .ps-real-landing .ps-landing-header {
    min-height: 74px;
    padding: 0 16px;
  }

  .ps-real-landing .ps-landing-logo {
    font-size: 28px;
  }

  .ps-real-landing .ps-landing-nav > a:first-child {
    display: none;
  }

  .ps-real-landing .ps-landing-login {
    min-width: 88px;
    min-height: 38px;
    font-size: 14px;
  }

  .ps-real-landing .ps-landing-hero {
    width: calc(100vw - 20px);
    min-height: 0;
    margin-top: 10px;
    border-radius: 22px;
  }

  .ps-real-landing .ps-landing-hero__content {
    max-width: none;
    margin-top: 46px;
    padding: 0 18px;
  }

  .ps-real-landing .ps-landing-hero h1 {
    font-size: clamp(34px, 10vw, 54px);
  }

  .ps-real-landing .ps-landing-hero p {
    max-width: 330px;
    margin-top: 18px;
    font-size: 18px;
  }

  .ps-real-landing .ps-landing-actions {
    width: calc(100% - 28px);
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 42px auto 64px;
  }

  .ps-real-landing .ps-landing-panel {
    min-height: 184px;
    gap: 15px;
    border-radius: 20px;
    padding: 26px 22px;
  }

  .ps-real-landing .ps-landing-panel h2 {
    font-size: 25px;
  }

  .ps-real-landing .ps-landing-panel p {
    max-width: 330px;
    font-size: 17px;
  }

  .ps-real-landing .ps-landing-panel a {
    min-width: 174px;
    min-height: 44px;
    font-size: 16px;
  }

  .ps-real-landing .ps-landing-feature {
    width: calc(100vw - 28px);
    padding: 54px 0 44px;
  }

  .ps-real-landing .ps-landing-feature > h2 {
    margin: 0 0 26px;
    font-size: 29px;
  }

  .ps-real-landing .ps-landing-course {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px;
    border-radius: 18px;
  }

  .ps-real-landing .ps-landing-course__media {
    width: 100%;
    border-radius: 18px;
  }

  .ps-real-landing .ps-landing-course__body {
    padding-top: 0;
  }

  .ps-real-landing .ps-landing-course__body > span {
    margin-bottom: 12px;
    font-size: 17px;
  }

  .ps-real-landing .ps-landing-course h3 {
    margin-bottom: 14px;
    font-size: 22px;
  }

  .ps-real-landing .ps-landing-course p {
    font-size: 17px;
  }

  .ps-real-landing .ps-landing-aims {
    margin-top: 22px;
    flex-wrap: wrap;
    font-size: 14px;
  }

  .ps-real-landing .ps-landing-aims img {
    width: 190px;
  }

  .ps-real-landing .ps-landing-course__button {
    width: 100%;
    min-height: 46px;
    font-size: 17px;
  }

  .ps-real-landing .ps-landing-footer__top {
    min-height: 176px;
    padding: 24px 18px;
    gap: 18px;
  }

  .ps-real-landing .ps-landing-footer__top p {
    font-size: 15px;
  }

  .ps-real-landing .ps-landing-footer__top img {
    width: 116px;
  }

  .ps-real-landing .ps-landing-footer__bottom {
    min-height: 126px;
    padding: 22px 16px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    font-size: 14px;
  }

  .ps-real-landing .ps-landing-footer__bottom nav {
    justify-content: flex-start;
  }
}

@media (max-width: 420px) {
  .ps-real-landing .ps-landing-logo {
    font-size: 22px;
  }
}

/* Real hero background supplied from the Photoshop/PDF export. */
.ps-real-landing .ps-landing-hero {
  aspect-ratio: 2410 / 1185;
  min-height: 0;
  background: url("assets/img/sfondo-top.png") center / 100% 100% no-repeat;
}

.ps-real-landing .ps-landing-hero::before,
.ps-real-landing .ps-landing-hero::after {
  content: none;
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-hero {
    aspect-ratio: auto;
    min-height: 0;
    background-size: cover;
  }
}

/* Final landing constraints. */
body.ps-real-landing {
  --artboard: min(100vw, 1920px);
}

body.ps-real-landing main,
body.ps-real-landing header,
body.ps-real-landing footer {
  max-width: 1920px;
}

.ps-real-landing .ps-landing-logo strong,
.ps-real-landing .ps-landing-hero h1 strong {
  font-weight: 900 !important;
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-nav > a:first-child {
    display: inline-flex;
  }
}

@media (max-width: 430px) {
  .ps-real-landing .ps-landing-nav > a:first-child {
    display: inline-flex;
    font-size: 13px;
  }

  .ps-real-landing .ps-landing-nav {
    gap: 10px;
  }
}

/* Landing visual corrections. */
.ps-real-landing .ps-landing-hero p {
  max-width: calc(var(--artboard) * 0.37);
  font-size: calc(var(--artboard) * 0.0156);
  line-height: 1.2;
}

.ps-real-landing .ps-landing-aims img {
  width: calc(var(--artboard) * 0.205);
  max-width: 523px;
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-hero p {
    max-width: 340px;
    font-size: 17px;
  }

  .ps-real-landing .ps-landing-aims img {
    width: min(100%, 220px);
  }
}

/* Course card sponsor placement. */
.ps-real-landing .ps-landing-course__left {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
}

.ps-real-landing .ps-landing-course__left .ps-landing-aims {
  margin-top: calc(var(--artboard) * 0.024);
}

.ps-real-landing .ps-landing-course__body {
  padding-bottom: calc(var(--artboard) * 0.056);
}

.ps-real-landing .ps-landing-aims {
  gap: calc(var(--artboard) * 0.008);
  align-items: center;
  font-size: calc(var(--artboard) * 0.0118);
}

.ps-real-landing .ps-landing-aims img {
  width: calc(var(--artboard) * 0.21);
  max-width: 523px;
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-course__left {
    gap: 18px;
  }

  .ps-real-landing .ps-landing-course__left .ps-landing-aims {
    margin-top: 0;
  }

  .ps-real-landing .ps-landing-course__body {
    padding-bottom: 0;
  }

  .ps-real-landing .ps-landing-aims {
    font-size: 14px;
  }

  .ps-real-landing .ps-landing-aims img {
    width: min(100%, 230px);
  }
}

/* AIMS baseline alignment. */
.ps-real-landing .ps-landing-aims {
  align-items: flex-end;
  gap: calc(var(--artboard) * 0.006);
  line-height: 1;
}

.ps-real-landing .ps-landing-aims img {
  display: block;
  width: calc(var(--artboard) * 0.174);
  max-width: 435px;
  transform: translateY(calc(var(--artboard) * 0.002));
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-aims {
    align-items: flex-end;
    gap: 8px;
  }

  .ps-real-landing .ps-landing-aims img {
    width: min(100%, 210px);
    transform: translateY(1px);
  }
}

@media (max-width: 820px) {
  .ps-header__inner {
    min-height: 58px;
  }

  .ps-menu-toggle {
    display: inline-grid;
    place-items: center;
  }

  .ps-nav {
    position: absolute;
    inset: 58px 16px auto;
    display: none;
    padding: 16px;
    border: 1px solid var(--ps-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--ps-shadow);
  }

  .ps-nav.is-open {
    display: grid;
  }

  .ps-hero {
    min-height: auto;
  }

  .ps-hero__inner {
    grid-template-columns: 1fr;
    padding: 42px 0 76px;
  }

  .ps-title {
    font-size: 42px;
  }

  .ps-section__head {
    display: grid;
  }

  .ps-content-card {
    grid-template-columns: 96px 1fr;
  }

  .ps-content-card .ps-button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .ps-thumb {
    width: 96px;
  }
}

@media (max-width: 520px) {
  .ps-container {
    width: min(100% - 22px, var(--ps-max));
  }

  .ps-logo__text span {
    font-size: 10px;
  }

  .ps-logo__text strong {
    font-size: 15px;
  }

  .ps-hero__actions {
    gap: 12px;
  }

  .ps-access-card {
    min-height: 132px;
    padding: 20px;
  }

  .ps-content-card {
    grid-template-columns: 1fr;
  }

  .ps-thumb {
    width: 100%;
  }
}

/* Shared final assets. */
.ps-interior {
  background: url("assets/img/sfondo-top.png") center bottom / 100% auto repeat-y #fff;
}

.ps-interior::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, #fff 0%, rgba(255,255,255,0.96) 28%, rgba(255,255,255,0.78) 100%);
}

.ps-footer {
  background: #f3f6fd;
}

.ps-footer::before {
  content: none;
}

.ps-footer .ps-sapio {
  display: block;
  width: 118px;
  max-width: 36vw;
  height: auto;
  justify-self: center;
}

/* ECM page refinements. */
.ps-header__inner {
  min-height: 82px;
}

.ps-logo span {
  font-size: clamp(28px, 2.8vw, 44px);
}

.ps-nav {
  gap: 13px;
  font-size: clamp(15px, 1.42vw, 22px);
}

.ps-user-pill {
  width: 44px;
  height: 44px;
  font-size: 19px;
}

.ps-interior {
  min-height: calc(100vh - 82px);
  padding: 122px 0 110px;
  background: url("assets/img/sfondo-top.png") center bottom / 100% auto repeat-y #fff !important;
}

.ps-interior::before,
.ps-interior.ps-wave::after {
  content: none;
}

.ps-interior > .ps-container {
  width: min(100% - 170px, 1640px);
}

.ps-course-card {
  padding: 30px 38px 22px;
}

.ps-course-card__main {
  grid-template-columns: 290px minmax(0, 1fr) 280px;
  grid-template-rows: minmax(128px, auto) auto;
  align-items: start;
  padding-top: 36px;
}

.ps-course-card__main > div:nth-child(2) {
  align-self: center;
}

.ps-course-card h2 {
  font-size: clamp(24px, 1.75vw, 32px);
}

.ps-course-card .ps-button {
  grid-column: 3;
  grid-row: 2;
  justify-self: end;
  align-self: end;
  min-width: 260px;
}

@media (min-width: 1180px) {
  .ps-course-card h2 {
    white-space: nowrap;
  }
}

.ps-tab-panel[hidden] {
  display: none;
}

@media (max-width: 900px) {

  .ps-button{
    font-size:16px !important;
  }

  .ps-header__inner {
    min-height: 68px;
  }

  .ps-nav {
    font-size: 18px;
  }

  .ps-interior {
    min-height: calc(100vh - 68px); 
    padding: 56px 0 78px;
    background-size: auto 760px !important;
  }

  .ps-interior > .ps-container {
    width: min(100% - 34px, 1640px);
  }

  .ps-course-card__top,
  .ps-course-card__main {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ps-course-card h2 {
    white-space: normal;
  }

  .ps-course-card .ps-button {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
    min-width: 0;
  }

  .ps-tabs {
    gap: 12px;
    font-size: 18px;
  }

  .ps-tabs a + a::before {
    margin-right: 12px;
  }
}

/* Shared header/footer and correct lower background. */
.ps-header,
.ps-landing-header {
  width: min(100%, 1920px);
  max-width: 1920px;
  margin-inline: auto;
}

.ps-header {
  position: relative;
  top: auto;
  background: #fff;
  border-bottom: 1px solid #9cb9dc;
  backdrop-filter: none;
}

.ps-header__inner {
  width: min(100% - 164px, 1740px);
  min-height: 120px;
}

.ps-logo span {
  font-size: clamp(34px, 2.35vw, 50px);
}

.ps-nav {
  gap: 13px;
  font-size: clamp(18px, 1.35vw, 26px);
}

.ps-nav a {
  padding: 6px 0;
}

.ps-nav .ps-button--small {
  min-height: 56px;
  padding: 0 28px;
  font-size: clamp(17px, 1.15vw, 22px);
  line-height: 1;
  white-space: nowrap;
}

.ps-interior {
  background:
    linear-gradient(180deg, #fff 0%, #fff 42%, rgba(255,255,255,0.76) 62%, rgba(255,255,255,0.18) 100%),
    url("assets/img/sfondo-top.png") center bottom / 100% auto no-repeat,
    #fff !important;
}

.ps-footer,
.ps-landing-footer {
  width: min(100%, 1920px);
  max-width: 1920px;
  margin-inline: auto;
  padding: 0;
  color: #1f3154;
  background: transparent;
}

.ps-footer__top,
.ps-landing-footer__top {
  display: grid;
  place-items: center;
  gap: 18px;
  min-height: 194px;
  padding: 34px 24px 28px;
  background: #f3f6fd;
  text-align: center;
}

.ps-footer__top p,
.ps-landing-footer__top p {
  max-width: 1080px;
  margin: 0;
  color: #111;
  font-size: clamp(18px, 1.28vw, 25px);
  line-height: 1.35;
}

.ps-footer__top img,
.ps-landing-footer__top img,
.ps-footer .ps-sapio {
  width: 118px;
  max-width: 38vw;
  height: auto;
}

.ps-footer__bottom,
.ps-landing-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  width: min(100% - 96px, 1740px);
  min-height: 74px;
  margin-inline: auto;
  color: #21355d;
  background: #fff;
  font-size: clamp(16px, 1.1vw, 22px);
  font-weight: 400;
}

.ps-footer__bottom nav,
.ps-landing-footer__bottom nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0;
}

.ps-footer__bottom nav a + a::before,
.ps-landing-footer__bottom nav a + a::before {
  content: "|";
  margin: 0 8px;
  color: currentColor;
}

@media (max-width: 900px) {
  .ps-header__inner {
    width: min(100% - 34px, 1740px);
    min-height: 72px;
  }

  .ps-logo span {
    font-size: clamp(24px, 7vw, 34px);
  }

  .ps-nav {
    font-size: 17px;
  }

  .ps-nav .ps-button--small {
    min-height: 42px;
    padding: 0 12px;
    font-size: 15px;
  }

  .ps-interior {
    background:
      linear-gradient(180deg, #fff 0%, #fff 34%, rgba(255,255,255,0.72) 58%, rgba(255,255,255,0.1) 100%),
      url("assets/img/sfondo-top.png") center bottom / auto 760px no-repeat,
      #fff !important;
  }

  .ps-footer__bottom,
  .ps-landing-footer__bottom {
    display: grid;
    justify-items: center;
    width: min(100% - 34px, 1740px);
    padding: 18px 0 22px;
    text-align: center;
  }

  .ps-footer__bottom nav,
  .ps-landing-footer__bottom nav {
    justify-content: center;
  }
}

/* Mobile navigation and Approfondimenti typography. */
.ps-approfondimenti .ps-intro h1 {
  font-size: clamp(30px, 2.55vw, 38px);
}

.ps-approfondimenti .ps-intro p {
  font-size: clamp(21px, 1.9vw, 28px);
}

.ps-approfondimenti .ps-profile {
  font-size: clamp(20px, 1.65vw, 26px);
}

.ps-approfondimenti .ps-profile h2,
.ps-approfondimenti .ps-material-card h2 {
  font-size: clamp(22px, 1.9vw, 30px);
}

.ps-approfondimenti .ps-material-card p,
.ps-approfondimenti .ps-material-card__text {
  font-size: clamp(19px, 1.55vw, 25px);
}

@media (max-width: 820px) {
  .ps-menu-toggle {
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: var(--ps-blue);
    font-size: 20px;
    line-height: 1;
  }

  .ps-nav {
    inset: calc(100% + 10px) 0 auto auto;
    width: min(330px, calc(100vw - 34px));
    gap: 0;
    padding: 12px;
    border: 1px solid #d8e6f7;
    border-radius: 14px;
    color: #111;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 38px rgba(0, 72, 151, 0.16);
    font-size: 15px;
  }

  .ps-nav.is-open {
    display: grid;
  }

  .ps-nav a {
    display: flex;
    min-height: 42px;
    align-items: center;
    padding: 0 12px;
    border-radius: 8px;
    font-weight: 600;
  }

  .ps-nav a:hover,
  .ps-nav a:focus-visible {
    background: #eef6ff;
  }

  .ps-nav .ps-separator {
    display: none;
  }

  .ps-nav .ps-user-pill {
    margin: 12px 0 0 12px;
    width: 36px;
    height: 36px;
    font-size: 15px;
  }

  .ps-nav .ps-user-name {
    align-self: center;
    margin: -34px 0 0 58px;
    min-height: 36px;
    color: #111;
    font-size: 15px;
    font-weight: 500;
  }

  .ps-landing-header {
    width: min(100% - 28px, 1920px);
    min-height: 64px;
  }

  .ps-landing-nav {
    gap: 10px;
    font-size: 14px;
  }

  .ps-landing-login {
    min-height: 38px;
    padding-inline: 18px;
  }
}

@media (max-width: 560px) {
  .ps-approfondimenti .ps-intro h1 {
    font-size: 28px;
  }

  .ps-approfondimenti .ps-intro p,
  .ps-approfondimenti .ps-profile,
  .ps-approfondimenti .ps-material-card p,
  .ps-approfondimenti .ps-material-card__text {
    font-size: 18px;
  }

  .ps-approfondimenti .ps-profile h2,
  .ps-approfondimenti .ps-material-card h2 {
    font-size: 23px;
  }

  .ps-material-card {
    gap: 18px;
    padding: 20px;
  }

  .ps-registration-form fieldset {
    padding: 22px 18px;
  }

  .ps-login-form fieldset {
    padding: 22px 18px;
  }

  .ps-recovery-form fieldset {
    padding: 22px 18px;
  }

  .ps-form-grid {
    grid-template-columns: 1fr;
  }

  .ps-form-grid--recovery {
    grid-template-columns: 1fr;
  }

  .ps-form-actions {
    justify-content: stretch;
    flex-direction: column;
    align-items: stretch;
  }

  .ps-form-actions .ps-button {
    width: 100%;
  }
}

/* Align interior introductions with the orange media blocks below. */
.ps-area-ecm .ps-intro {
  max-width: 1440px;
  margin-left: 38px;
  margin-right: auto;
}

.ps-area-ecm {
  background-position: center top, center calc(100% + 120px) !important;
  padding-bottom: 40px;
}

.ps-approfondimenti .ps-intro {
  max-width: 1440px;
  margin-left: 22px;
  margin-right: auto;
}

.ps-approfondimenti .ps-rule {
  margin-left: 22px;
  margin-right: 22px;
}

@media (max-width: 900px) {
  .ps-area-ecm .ps-intro,
  .ps-approfondimenti .ps-intro,
  .ps-approfondimenti .ps-rule {
    margin-left: 0;
    margin-right: 0;
  }
}


/* Codex 2026-09-23: global typography reduction, preserving SleepEducation logo sizing. */
body:not(.ps-real-landing) {
  font-size: 15px;
}

body:not(.ps-real-landing) p,
body:not(.ps-real-landing) li,
body:not(.ps-real-landing) .ps-section__head p,
body:not(.ps-real-landing) .ps-content-card p,
body:not(.ps-real-landing) .ps-access-card p,
body:not(.ps-real-landing) .ps-course-card p,
body:not(.ps-real-landing) .ps-material-card p,
body:not(.ps-real-landing) .ps-material-card__text,
body:not(.ps-real-landing) .ps-detail-box p,
body:not(.ps-real-landing) .ps-profile p,
body:not(.ps-real-landing) .ps-intro p {
  font-size: clamp(15px, 1.08vw, 18px) !important;
  line-height: 1.55;
}

body:not(.ps-real-landing) .ps-home-hero .ps-access-card p {
  font-size: clamp(16px, 1.22vw, 20px) !important;
}

body:not(.ps-real-landing) .ps-approfondimenti .ps-intro p,
body:not(.ps-real-landing) .ps-approfondimenti .ps-profile,
body:not(.ps-real-landing) .ps-approfondimenti .ps-material-card p,
body:not(.ps-real-landing) .ps-approfondimenti .ps-material-card__text {
  font-size: clamp(16px, 1.18vw, 20px) !important;
}

body:not(.ps-real-landing) .ps-footer__top p,
body:not(.ps-real-landing) .ps-landing-footer__top p {
  font-size: clamp(15px, 1vw, 18px) !important;
}

@media (max-width: 560px) {
  body:not(.ps-real-landing) p,
  body:not(.ps-real-landing) li,
  body:not(.ps-real-landing) .ps-section__head p,
  body:not(.ps-real-landing) .ps-content-card p,
  body:not(.ps-real-landing) .ps-access-card p,
  body:not(.ps-real-landing) .ps-course-card p,
  body:not(.ps-real-landing) .ps-material-card p,
  body:not(.ps-real-landing) .ps-material-card__text,
  body:not(.ps-real-landing) .ps-detail-box p,
  body:not(.ps-real-landing) .ps-profile p,
  body:not(.ps-real-landing) .ps-intro p,
  body:not(.ps-real-landing) .ps-approfondimenti .ps-intro p,
  body:not(.ps-real-landing) .ps-approfondimenti .ps-profile,
  body:not(.ps-real-landing) .ps-approfondimenti .ps-material-card p,
  body:not(.ps-real-landing) .ps-approfondimenti .ps-material-card__text {
    font-size: 15px !important;
  }
}

/* Codex 2026-09-23: align the Approfondimenti consent copy to the left. */
.ps-approfondimenti .ps-intro--consent,
.ps-approfondimenti .ps-profile,
.ps-approfondimenti .ps-consent-form {
  margin-left: 0;
  margin-right: auto;
  text-align: left;
}

.ps-approfondimenti .ps-intro--consent h1,
.ps-approfondimenti .ps-intro--consent p,
.ps-approfondimenti .ps-profile h2,
.ps-approfondimenti .ps-profile p {
  text-align: left;
}

.ps-approfondimenti .ps-button--consent {
  display: inline-flex;
  margin-left: 0;
}

/* Codex 2026-09-23: always use hamburger navigation and keep username visible. */
.ps-header {
  overflow: visible;
}

.ps-header__inner {
  position: relative;
}

.ps-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  margin-left: auto;
}

.ps-header-user-name {
  color: #111;
  font-size: clamp(15px, 1.18vw, 20px);
  font-weight: 600;
  white-space: nowrap;
}

.ps-header-user-name:hover,
.ps-header-user-name:focus-visible {
  color: var(--ps-blue);
}

.ps-menu-toggle {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: var(--ps-blue);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.ps-menu-toggle:hover,
.ps-menu-toggle:focus-visible {
  background: #003b7b;
}

.ps-nav {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 40;
  display: none;
  width: min(300px, calc(100vw - 28px));
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 10px;
  border: 1px solid #d8e6f7;
  border-radius: 14px;
  color: #111;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 38px rgba(0, 72, 151, 0.16);
  font-size: 14px;
}

.ps-nav.is-open {
  display: flex;
}

.ps-nav a {
  display: flex;
  min-height: 38px;
  align-items: center;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1.2;
}

.ps-nav a:hover,
.ps-nav a:focus-visible {
  color: var(--ps-blue);
  background: #eef6ff;
}

.ps-nav .ps-separator {
  display: none;
}

.ps-nav .ps-button--small {
  justify-content: flex-start;
  min-height: 38px;
  padding: 0 10px;
  color: #111;
  background: transparent;
  border-radius: 8px;
  box-shadow: none;
  font-size: 14px !important;
  line-height: 1.2;
}

.ps-nav .ps-nav-logout {
  margin-top: 12px;
  border-top: 1px solid #d8e6f7;
  border-radius: 0 0 8px 8px;
  color: var(--ps-blue);
}

@media (max-width: 560px) {
  .ps-header-actions {
    gap: 10px;
  }

  .ps-header-user-name {
    max-width: 38vw;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 14px;
  }

  .ps-menu-toggle {
    width: 42px;
    height: 42px;
    font-size: 20px;
  }

  .ps-nav {
    top: calc(100% + 8px);
    right: 0;
    width: min(280px, calc(100vw - 24px));
    padding: 8px;
    border-radius: 12px;
    font-size: 13px;
  }

  .ps-nav a,
  .ps-nav .ps-button--small {
    min-height: 36px;
    padding: 0 9px;
    font-size: 13px !important;
  }
}

/* Codex 2026-09-23: use course image on the Scopri di più orange media box. */
.ps-page-scopri-di-piu .ps-content-card .ps-thumb {
  background:
    url("https://sleepeducation.it/wp-content/uploads/2026/09/Corso_sonno-copia.png") center / cover no-repeat,
    var(--ps-orange);
}

@media (max-width: 520px) {
  .ps-page-scopri-di-piu .ps-content-card .ps-thumb {
    min-height: 180px;
  }
}

/* Codex 2026-09-23: refine ECM course-card vertical rhythm. */
.ps-course-card__top {
  align-items: center;
  padding-bottom: 20px;
}

.ps-course-card__top .ps-tag {
  margin-bottom: 0;
  font-size: clamp(16px, 1.08vw, 19px);
  font-weight: 900;
  line-height: 1.15;
}

.ps-aims {
  align-items: center;
  gap: 10px;
  font-size: clamp(17px, 1.18vw, 20px);
  line-height: 1.1;
}

.ps-aims__label {
  font-size: clamp(17px, 1.18vw, 20px);
  line-height: 1.1;
}

.ps-aims img {
  width: 272px;
}

.ps-course-card__main {
  padding-top: 28px;
}

.ps-course-card__main > div:nth-child(2) {
  align-self: start;
  padding-top: 22px;
}

.ps-course-card .ps-button {
  align-self: start;
  margin-top: -4px;
}

@media (max-width: 900px) {
  .ps-course-card__top {
    gap: 14px;
  }

  .ps-aims {
    justify-content: flex-start;
    white-space: normal;
  }

  .ps-course-card__main > div:nth-child(2) {
    padding-top: 0;
  }

  .ps-course-card .ps-button {
    margin-top: 0;
  }
}

/* Codex 2026-09-23: landing header profile name plus hamburger menu. */
.ps-real-landing .ps-landing-nav {
  position: relative;
  gap: calc(var(--artboard) * 0.014);
}

.ps-real-landing .ps-landing-profile-name {
  display: inline-flex;
  min-width: calc(var(--artboard) * 0.122);
  max-width: calc(var(--artboard) * 0.18);
  padding-inline: calc(var(--artboard) * 0.018);
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.ps-real-landing .ps-landing-nav > .ps-landing-profile-name {
  display: inline-flex;
}

.ps-real-landing .ps-landing-menu-toggle {
  display: inline-grid;
  place-items: center;
  width: calc(var(--artboard) * 0.0344);
  height: calc(var(--artboard) * 0.0344);
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: var(--ps-blue);
  font-size: calc(var(--artboard) * 0.014);
  line-height: 1;
  cursor: pointer;
}

.ps-real-landing .ps-landing-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 45;
  display: none;
  width: min(280px, calc(100vw - 28px));
  padding: 10px;
  border: 1px solid #d8e6f7;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 18px 38px rgba(0, 72, 151, 0.16);
}

.ps-real-landing .ps-landing-menu.is-open {
  display: grid;
}

.ps-real-landing .ps-landing-menu a {
  display: flex;
  min-height: 38px;
  align-items: center;
  padding: 0 10px;
  border-radius: 8px;
  color: #111;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}

.ps-real-landing .ps-landing-menu a:hover,
.ps-real-landing .ps-landing-menu a:focus-visible {
  color: var(--ps-blue);
  background: #eef6ff;
}

.ps-real-landing .ps-landing-menu .ps-landing-logout {
  margin-top: 10px;
  border-top: 1px solid #d8e6f7;
  border-radius: 0 0 8px 8px;
  color: var(--ps-blue);
}

.ps-real-landing .ps-landing-soon {
  display: inline-flex;
  min-height: calc(var(--artboard) * 0.0344);
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding-inline: calc(var(--artboard) * 0.026);
  color: var(--ps-blue);
  background: rgba(255, 255, 255, 0.72);
  font-size: calc(var(--artboard) * 0.014);
  font-weight: 800;
  line-height: 1;
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-nav {
    gap: 10px;
  }

  .ps-real-landing .ps-landing-profile-name {
    max-width: 34vw;
    min-width: 0;
    padding-inline: 16px;
    font-size: 13px;
  }

  .ps-real-landing .ps-landing-menu-toggle {
    width: 38px;
    height: 38px;
    font-size: 18px;
  }

  .ps-real-landing .ps-landing-soon {
    min-height: 42px;
    padding-inline: 20px;
    font-size: 15px;
  }
}

/* Codex 2026-09-23: match landing username to interior header style. */
.ps-real-landing .ps-landing-profile-name {
  min-width: 0;
  max-width: calc(var(--artboard) * 0.12);
  min-height: auto;
  padding: 0;
  color: #111;
  background: transparent;
  border-radius: 0;
  font-size: clamp(15px, 1.18vw, 20px);
  font-weight: 600;
  text-transform: none;
}

.ps-real-landing .ps-landing-profile-name:hover,
.ps-real-landing .ps-landing-profile-name:focus-visible {
  color: var(--ps-blue);
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-profile-name {
    max-width: 34vw;
    padding: 0;
    font-size: 14px;
  }
}

@media (max-width: 760px) {
  .ps-real-landing .ps-landing-hero__content {
    max-width: calc(100vw - 36px);
  }

  .ps-real-landing .ps-landing-hero h1 {
    font-size: clamp(32px, 8.4vw, 44px);
    overflow-wrap: normal;
    white-space: nowrap;
  }
}

/* Codex 2026-09-23: interior content headings and Gutenberg button colors. */
body:not(.ps-real-landing) main h2 {
  color: #42C0A1;
}

body:not(.ps-real-landing) .wp-block-button__link.wp-element-button,
body:not(.ps-real-landing) .wp-block-button__link.wp-element-button:visited {
  color: #fff;
  background: var(--ps-blue);
}

body:not(.ps-real-landing) .wp-block-button__link.wp-element-button:hover,
body:not(.ps-real-landing) .wp-block-button__link.wp-element-button:focus-visible {
  color: #fff;
  background: #003b7b;
}

/* Codex 2026-09-23: center page 48 content block while keeping copy left aligned. */
body.post-48 main,
body.postid-48 main,
article.post-48,
.post-48 .entry-content,
.post-48 .ps-page__body {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.post-48 .entry-content > *,
.post-48 .ps-page__body > * {
  text-align: left;
}

/* Codex 2026-09-23: keep profile action buttons consistent. */
.ps-profile-form > .ps-form-actions {
  gap: 20px;
  justify-content: center;
  margin-top: 34px;
}

.ps-profile-form > .ps-form-actions .ps-button {
  flex: 0 1 280px;
  width: 280px;
  min-width: 280px;
  min-height: 60px;
  padding: 0 26px;
  font-size: 20px !important;
  line-height: 1.05;
  text-align: center;
  text-decoration: none;
}

.ps-profile-form > .ps-form-actions .ps-button--small {
  min-height: 60px;
  padding-inline: 26px;
  font-size: 20px !important;
}

@media (max-width: 760px) {
  .ps-profile-form > .ps-form-actions {
    align-items: center;
  }

  .ps-profile-form > .ps-form-actions .ps-button {
    flex-basis: auto;
    width: min(100%, 330px);
    min-width: 0;
    min-height: 56px;
    font-size: 18px !important;
  }
}

/* Codex 2026-09-23: Informazioni page, compact sponsor label, and mobile polish. */
.ps-page-informazioni .ps-page,
.ps-page-informazioni .entry-content,
.ps-page-informazioni .ps-page__body {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.ps-page-informazioni .ps-page__body > *,
.ps-page-informazioni .entry-content > * {
  text-align: left;
}

.ps-aims__label {
  font-size: 16px;
  line-height: 1.1;
}

@media (max-width: 900px) {
  .ps-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 34px;
    padding: 0;
    border-bottom: 0;
    font-size: 15px;
  }

  .ps-tabs a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid #cfe1f7;
    border-radius: 999px;
    padding: 0 12px;
    color: var(--ps-blue);
    background: rgba(255, 255, 255, 0.86);
    font-weight: 700;
    text-align: center;
  }

  .ps-tabs a + a::before {
    content: none;
  }

  .ps-tabs .is-active {
    color: #fff;
    background: var(--ps-blue);
    border-color: var(--ps-blue);
  }

  .ps-footer__bottom,
  .ps-landing-footer__bottom {
    gap: 14px;
  }

  .ps-footer__bottom nav,
  .ps-landing-footer__bottom nav {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: center;
  }

  .ps-footer__bottom nav a,
  .ps-landing-footer__bottom nav a {
    display: inline-flex;
    justify-content: center;
    max-width: 100%;
    text-align: center;
  }

  .ps-footer__bottom nav a + a::before,
  .ps-landing-footer__bottom nav a + a::before {
    content: none;
  }
}

/* Final home rewrite overrides: keep the new static home isolated from legacy .ps-home-* rules. */
body.ps-home-rewrite .ps-home-header {
  width: min(100%, 1928px);
  min-height: 120px;
  padding: 0 clamp(28px, 15.5vw, 300px);
}

body.ps-home-rewrite .ps-home-hero {
  position: static;
  width: 100%;
  min-height: 0;
  margin: 0;
  overflow: visible;
  border-radius: 0;
  background: none;
}

body.ps-home-rewrite .ps-home-hero::before,
body.ps-home-rewrite .ps-home-hero::after {
  content: none;
}

body.ps-home-rewrite .ps-home-hero img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
}

body.ps-home-rewrite .ps-home-hero__mobile-title {
  display: none;
}

body.ps-home-rewrite .ps-home-ribbon {
  box-sizing: border-box;
  width: min(735px, calc(100% - 28px));
  min-width: 0;
  min-height: 102px;
  padding: 0 23px 0 clamp(110px, -24.5vw, 138px);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  color: #fff;
  background: var(--home-blue);
}

body.ps-home-rewrite .ps-home-ribbon--wide {
  width: min(1295px, calc(100% - 28px));
  min-height: 92px;
  padding: 0 40px 0 clamp(180px, 15.5vw, 300px);
  white-space: nowrap;
}

body.ps-home-rewrite .ps-home-fad__card a,
body.ps-home-rewrite .ps-home-course__button {
  color: #fff;
  background: var(--home-blue);
}

body.ps-home-rewrite .ps-home-course__body strong {
  color: var(--home-blue);
}

body.ps-home-rewrite .ps-home-featured h2 {
  color: var(--home-text) !important;
}

body.ps-home-rewrite .ps-home-fad__card p {
  font-size: clamp(22px, 1.5vw, 29px) !important;
}

body.ps-home-rewrite .ps-home-footer__bottom a {
  color: inherit;
}

body.ps-home-rewrite .ps-home-footer__top p {
  max-width: 760px;
  font-size: clamp(22px, 1.4vw, 27px);
  line-height: 1.15;
}

body.ps-home-rewrite .ps-home-footer__top img {
  width: 250px;
  max-width: 42vw;
  background: transparent;
}

@media (max-width: 1100px) {
  body.ps-home-rewrite .ps-home-header {
    min-height: 86px;
    padding-inline: 24px;
  }
}

@media (max-width: 720px) {
  body.ps-home-rewrite .ps-home-hero {
    position: relative;
    overflow: hidden;
  }

  body.ps-home-rewrite .ps-home-hero::after {
    content: "";
    position: absolute;
    inset: 28% 0 29%;
    z-index: 1;
    background: rgba(131, 201, 0, 0.72);
  }

  body.ps-home-rewrite .ps-home-hero__mobile-title {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 88%;
    margin: 0 auto;
    color: #fff;
    font-size: clamp(20px, 5.9vw, 28px);
    font-weight: 900;
    line-height: 1.05;
    text-align: center;
    text-transform: uppercase;
    text-wrap: balance;
  }

  body.ps-home-rewrite .ps-home-ribbon,
  body.ps-home-rewrite .ps-home-ribbon--wide {
    width: calc(100% - 28px);
    padding-left: 22px;
    white-space: normal;
  }
}

/* Codex 2026-09-23: final mobile header profile icon alignment. */
@media (max-width: 760px) {
  .ps-header__inner {
    width: min(100% - 48px, 1740px);
  }

  .ps-real-landing .ps-landing-header {
    width: min(100% - 48px, 1920px);
    padding-left: 0;
    padding-right: 0;
  }

  .ps-logo span,
  .ps-real-landing .ps-landing-logo {
    font-size: clamp(22px, 6vw, 28px);
  }

  .ps-header-actions,
  .ps-real-landing .ps-landing-nav {
    display: inline-flex;
    align-items: center;
    gap: 12px;
  }

  .ps-header-user-name,
  .ps-real-landing .ps-landing-nav > .ps-landing-profile-name {
    position: relative;
    display: inline-flex !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    max-width: 42px !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    align-self: center;
    padding: 0 !important;
    border-radius: 50%;
    color: #fff;
    background: var(--ps-blue);
    font-size: 0 !important;
    line-height: 1;
    overflow: hidden;
  }

  .ps-header-user-name::before,
  .ps-real-landing .ps-landing-profile-name::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    display: block;
    width: 22px;
    height: 22px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 21a7.5 7.5 0 0 1 15 0'/%3E%3C/svg%3E") center / contain no-repeat;
    -webkit-mask: none;
    mask: none;
    transform: translate(-50%, -50%);
  }

  .ps-menu-toggle,
  .ps-real-landing .ps-landing-menu-toggle {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
  }
}

/* Codex 2026-09-23: center static page content blocks while keeping copy left aligned. */
body.page:not(.ps-real-landing) .ps-page > .ps-container,
body.page:not(.ps-real-landing) .ps-page__body,
body.page:not(.ps-real-landing) .entry-content {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

body.page:not(.ps-real-landing) .ps-page__body > *,
body.page:not(.ps-real-landing) .entry-content > * {
  text-align: left;
}

@media (max-width: 760px) {
  .ps-header-user-name,
  .ps-real-landing .ps-landing-profile-name {
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    max-width: none;
    align-self: center;
    border-radius: 50%;
    color: #fff;
    background: var(--ps-blue);
    font-size: 0;
    display: inline-grid;
    place-items: center;
    overflow: hidden;
    padding: 0;
  }

  .ps-header-user-name::before,
  .ps-real-landing .ps-landing-profile-name::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") center / contain no-repeat;
  }

  .ps-tabs {
    grid-template-columns: 1fr;
  }
}

/* Codex 2026-09-23: course details become an accordion on mobile. */
.ps-accordion-toggle {
  display: none;
}

@media (max-width: 900px) {
  .ps-area-ecm .ps-tabs {
    display: none;
  }

  .ps-area-ecm .ps-accordion-toggle {
    display: flex;
    width: 100%;
    min-height: 52px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 10px;
    border: 1px solid #cfe1f7;
    border-radius: 14px;
    padding: 0 16px;
    color: var(--ps-blue);
    background: rgba(255, 255, 255, 0.92);
    font-family: inherit;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.15;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(0, 72, 151, 0.08);
  }

  .ps-area-ecm .ps-accordion-toggle:first-of-type {
    margin-top: 30px;
  }

  .ps-area-ecm .ps-accordion-toggle::after {
    content: "+";
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #fff;
    background: var(--ps-blue);
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
  }

  .ps-area-ecm .ps-accordion-toggle.is-active {
    color: #fff;
    background: var(--ps-blue);
    border-color: var(--ps-blue);
  }

  .ps-area-ecm .ps-accordion-toggle.is-active::after {
    content: "-";
    color: var(--ps-blue);
    background: #fff;
  }

  .ps-area-ecm .ps-detail-box {
    margin-top: 8px;
    margin-bottom: 12px;
    border: 1px solid #dbe8f8;
    border-radius: 14px;
    padding: 20px 18px;
    background: rgba(255, 255, 255, 0.88);
    font-size: 16px;
    line-height: 1.5;
  }
}

/* Codex 2026-09-23: center footer legal links on every mobile page. */
@media (max-width: 900px) {
  .ps-footer__bottom,
  .ps-landing-footer__bottom {
    display: flex;
    width: 100%;
    min-height: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    padding: 24px 18px 34px;
    text-align: center;
  }

  .ps-footer__bottom > span,
  .ps-landing-footer__bottom > span {
    display: block;
    width: 100%;
    max-width: 340px;
    margin: 0 auto;
    text-align: center;
  }

  .ps-footer__bottom nav,
  .ps-landing-footer__bottom nav {
    display: flex;
    width: 100%;
    max-width: 340px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0 auto;
    text-align: center;
  }

  .ps-footer__bottom nav a,
  .ps-landing-footer__bottom nav a {
    display: block;
    width: 100%;
    margin: 0 auto;
    text-align: center;
  }

  .ps-footer__bottom nav a + a::before,
  .ps-landing-footer__bottom nav a + a::before {
    content: none;
  }
}

/* Codex 2026-10-12: align interior pages with the new SleepEducation visual system. */
body:not(.ps-home-rewrite) {
  --ps-blue: #006095;
  --ps-green: #42C0A1;
  --ps-text-soft: #6d6d6d;
  color: var(--ps-text-soft);
  background: #fff;
  font-family: "Barlow", "Segoe UI", Arial, sans-serif;
}

body:not(.ps-home-rewrite) .ps-header {
  border-bottom: 0;
  background: #fff;
}

body:not(.ps-home-rewrite) .ps-header__inner {
  width: min(100% - 44px, 1220px);
  min-height: 118px;
  gap: 30px;
  justify-content: space-between;
}

body:not(.ps-home-rewrite) .ps-logo img {
  width: clamp(210px, 21vw, 285px);
}

body:not(.ps-home-rewrite) .ps-header-actions {
  margin-left: 0;
}

body:not(.ps-home-rewrite) .ps-header-user-name,
body:not(.ps-home-rewrite) .ps-nav-user {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0 24px;
  color: #fff;
  background: var(--ps-green);
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
}

body:not(.ps-home-rewrite) .ps-header-user-name:hover,
body:not(.ps-home-rewrite) .ps-header-user-name:focus-visible,
body:not(.ps-home-rewrite) .ps-nav-user:hover,
body:not(.ps-home-rewrite) .ps-nav-user:focus-visible {
  color: #fff;
  background: #71ad00;
}

body:not(.ps-home-rewrite) .ps-menu-toggle {
  color: #fff;
  background: var(--ps-blue);
}

body:not(.ps-home-rewrite) .ps-nav {
  width: min(270px, calc(100vw - 28px));
  border: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(0, 96, 149, 0.18);
}

body:not(.ps-home-rewrite) .ps-nav a,
body:not(.ps-home-rewrite) .ps-nav .ps-button--small {
  color: #6d6d6d;
  font-size: 14px !important;
  font-weight: 800;
  line-height: 1.05;
  text-decoration: underline;
  text-transform: uppercase;
  text-underline-offset: 2px;
}

body:not(.ps-home-rewrite) .ps-nav a:hover,
body:not(.ps-home-rewrite) .ps-nav a:focus-visible {
  color: var(--ps-blue);
  background: rgba(0, 96, 149, 0.08);
}

body:not(.ps-home-rewrite) .ps-nav .ps-button--small {
  min-height: 42px;
  justify-content: center;
  border-radius: 999px;
  color: #fff;
  background: var(--ps-green);
  text-decoration: none;
}

body:not(.ps-home-rewrite) .ps-nav .ps-button--small:hover,
body:not(.ps-home-rewrite) .ps-nav .ps-button--small:focus-visible {
  color: #fff;
  background: #71ad00;
}

body:not(.ps-home-rewrite) .ps-nav a.ps-nav-user {
  min-height: 42px;
  justify-content: center;
  border-radius: 999px;
  padding: 0 24px;
  color: #fff;
  background: var(--ps-green);
  text-decoration: none;
}

body:not(.ps-home-rewrite) .ps-nav a.ps-nav-user:hover,
body:not(.ps-home-rewrite) .ps-nav a.ps-nav-user:focus-visible {
  color: #fff;
  background: #71ad00;
}

body:not(.ps-home-rewrite) .ps-nav .ps-nav-logout {
  color: var(--ps-blue);
}

body:not(.ps-home-rewrite) .ps-tag,
body:not(.ps-home-rewrite) .ps-course-card__top .ps-tag,
body:not(.ps-home-rewrite) main h2 {
  color: var(--ps-green);
}

body:not(.ps-home-rewrite) .ps-interior,
body:not(.ps-home-rewrite) .ps-page {
  background:
    linear-gradient(180deg, #fff 0%, #fff 70%, rgba(255,255,255,0.82) 100%),
    url("assets/img/sfondo-top.png") center bottom / 100% auto no-repeat,
    #fff !important;
}

body:not(.ps-home-rewrite) .ps-page-title,
body:not(.ps-home-rewrite) .ps-intro h1 {
  color: var(--ps-blue);
  font-weight: 900;
  text-transform: uppercase;
}

body:not(.ps-home-rewrite) .ps-intro p,
body:not(.ps-home-rewrite) .ps-page__body,
body:not(.ps-home-rewrite) .ps-detail-box,
body:not(.ps-home-rewrite) .ps-course-card {
  color: var(--ps-text-soft);
}

body:not(.ps-home-rewrite) .ps-button,
body:not(.ps-home-rewrite) .ps-course-card .ps-button,
body:not(.ps-home-rewrite) input[type="submit"],
body:not(.ps-home-rewrite) button[type="submit"] {
  color: #fff;
  background: var(--ps-blue);
}

body:not(.ps-home-rewrite) .ps-tabs a.is-active,
body:not(.ps-home-rewrite) .ps-tabs a:hover,
body:not(.ps-home-rewrite) .ps-tabs a:focus-visible,
body:not(.ps-home-rewrite) .ps-course-card h2,
body:not(.ps-home-rewrite) .ps-course-card strong {
  color: var(--ps-blue);
}

body:not(.ps-home-rewrite) .ps-footer {
  color: #fff;
  background: var(--ps-blue);
}

body:not(.ps-home-rewrite) .ps-footer__top {
  min-height: 260px;
  padding: 74px 24px 58px;
  color: #fff;
  background: var(--ps-blue);
}

body:not(.ps-home-rewrite) .ps-footer__top p {
  color: #fff;
  font-size: clamp(18px, 1.25vw, 23px);
  font-weight: 800;
  line-height: 1.28;
}

body:not(.ps-home-rewrite) .ps-footer__top img,
body:not(.ps-home-rewrite) .ps-footer .ps-sapio {
  width: 190px;
  max-width: 45vw;
}

body:not(.ps-home-rewrite) .ps-footer__bottom {
  width: 100%;
  padding-inline: max(22px, calc((100% - 920px) / 2));
  color: #21355d;
  background: #fff;
}

@media (min-width: 921px) {
  body:not(.ps-home-rewrite) .ps-menu-toggle {
    display: none;
  }

  body:not(.ps-home-rewrite) .ps-nav {
    position: static;
    display: flex;
    width: auto;
    flex: 1 1 auto;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(24px, 2.6vw, 42px);
    padding: 0;
    margin-left: auto;
    background: transparent;
    box-shadow: none;
  }

  body:not(.ps-home-rewrite) .ps-nav a {
    min-height: 0;
    padding: 0;
    border-radius: 0;
  }

  body:not(.ps-home-rewrite) .ps-nav a:hover,
  body:not(.ps-home-rewrite) .ps-nav a:focus-visible {
    background: transparent;
  }

  body:not(.ps-home-rewrite) .ps-nav .ps-nav-logout {
    margin-top: 0;
    border-top: 0;
    border-radius: 0;
  }

  body:not(.ps-home-rewrite) .ps-nav .ps-button--small {
    min-height: 42px;
    padding: 0 26px;
  }
}

@media (max-width: 920px) {
  body:not(.ps-home-rewrite) .ps-header__inner {
    width: min(100% - 28px, 920px);
    min-height: 84px;
  }

  body:not(.ps-home-rewrite) .ps-logo img {
    width: clamp(170px, 48vw, 230px);
  }

  body:not(.ps-home-rewrite) .ps-header-user-name {
    max-width: 34vw;
    padding: 0 14px;
    font-size: 12px;
  }

  body:not(.ps-home-rewrite) .ps-header-actions {
    margin-left: auto;
  }

  body:not(.ps-home-rewrite) .ps-footer__top {
    min-height: 230px;
    padding: 56px 22px 48px;
  }

  body:not(.ps-home-rewrite) .ps-footer__bottom {
    padding-inline: 18px;
  }
}

/* Codex 2026-10-12: align Area ECM header, intro and content card on one column. */
body:not(.ps-home-rewrite) .ps-header__inner,
body:not(.ps-home-rewrite) .ps-interior > .ps-container {
  width: min(100% - 170px, 1640px);
}

body:not(.ps-home-rewrite) .ps-area-ecm .ps-intro {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

@media (max-width: 920px) {
  body:not(.ps-home-rewrite) .ps-header__inner,
  body:not(.ps-home-rewrite) .ps-interior > .ps-container {
    width: min(100% - 34px, 1640px);
  }
}



/* Home: titoli dei banner spostati verso destra, senza modificare i box. */
@media (min-width: 721px) {
  body.ps-home-rewrite .ps-home-ribbon {
    padding-left: clamp(165px, 17vw, 240px);
  }
  body.ps-home-rewrite .ps-home-ribbon--wide {
    padding-left: clamp(210px, 19vw, 315px);
  }
}

/* Schermi piccoli: conservare il margine interno leggibile. */
@media (max-width: 720px) {
  body.ps-home-rewrite .ps-home-ribbon,
  body.ps-home-rewrite .ps-home-ribbon--wide {
    padding-left: 24px;
  }
}

/* Titoli delle due bande: una riga, allineati verso il margine destro. */
body.ps-home-rewrite .ps-home-ribbon,
body.ps-home-rewrite .ps-home-ribbon--wide {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  text-align: right;
  white-space: nowrap;
  padding-left: 12px;
  padding-right: clamp(18px, 3vw, 48px);
}

/* Il titolo più lungo deve entrare nell'intera banda. */
body.ps-home-rewrite .ps-home-ribbon--wide {
  font-size: clamp(17px, 2.45vw, 43px);
}

@media (max-width: 720px) {
  body.ps-home-rewrite .ps-home-ribbon,
  body.ps-home-rewrite .ps-home-ribbon--wide {
    padding-left: 8px;
    padding-right: 14px;
    white-space: nowrap;
  }
  body.ps-home-rewrite .ps-home-ribbon {
    font-size: clamp(20px, 4.8vw, 30px);
  }
  body.ps-home-rewrite .ps-home-ribbon--wide {
    font-size: clamp(12px, 4.15vw, 22px);
  }
}


/* Hero fotografico: unico titolo HTML centrato su desktop e mobile. */
body.ps-home-rewrite .ps-home-hero {
  position: relative;
  overflow: hidden;
}
body.ps-home-rewrite .ps-home-hero::after {
  content: none;
}
body.ps-home-rewrite .ps-home-hero__mobile-title {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: min(90%, 1050px);
  max-width: 1050px;
  margin: auto;
  padding: 16px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Barlow", "Segoe UI", Arial, sans-serif;
  font-size: clamp(22px, 2.65vw, 52px);
  font-weight: 900;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
  text-wrap: balance;
  pointer-events: none;
}
@media (max-width: 720px) {
  body.ps-home-rewrite .ps-home-hero::after { content: none; }
  body.ps-home-rewrite .ps-home-hero__mobile-title {
    width: 92%;
    max-width: 92%;
    font-size: clamp(15px, 4.5vw, 29px);
    line-height: 1.12;
  }
}

/* Navigazione: voce della pagina corrente, desktop e mobile */
body.ps-home-rewrite .ps-home-menu a.is-current:not(.ps-home-access) {
  color: var(--home-blue);
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}
body.ps-home-rewrite .ps-home-menu a.ps-home-access.is-current {
  background: #006095;
  color: #fff !important;
}
body:not(.ps-home-rewrite) .ps-nav a.is-current:not(.ps-nav-user) {
  color: #006095 !important;
  text-decoration-thickness: 3px;
  text-underline-offset: 5px;
}
body:not(.ps-home-rewrite) .ps-nav a.ps-nav-user.is-current {
  background: #006095;
  color: #fff;
}
