/*
 * Editorial art direction for the practice pages.
 * The existing Elementor content stays editable; this layer supplies the
 * shared visual system and a more considered homepage composition.
 */
.vp-homepage {
  --navy: #203449;
  --bronze: #71857b;
  --terracotta: #a66850;
  --paper: #f7f3eb;
  --ink: #39464a;
  --hairline: rgba(32, 52, 73, .18);
  color: var(--ink);
  background: var(--paper);
  font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif;
}
.vp-homepage p,
.vp-homepage li { color: var(--ink) !important; }
.vp-homepage h1,
.vp-homepage h2,
.vp-homepage h3,
.vp-homepage .vp-brand-copy strong,
.vp-homepage .vp-credential strong {
  color: var(--navy);
  font-family: "Cormorant Garamond", Georgia, serif;
}
.vp-homepage .vp-wrap { max-width: 1200px; }
.vp-homepage .vp-kicker { color: #566f66 !important; letter-spacing: .17em; }

/* A single mark, a quiet language switch, and one primary header action. */
.vp-homepage .vp-nav-shell {
  border-bottom: 1px solid var(--hairline);
  background: rgba(247, 243, 235, .97);
}
.vp-homepage .vp-nav { min-height: 82px; gap: 24px; }
.vp-homepage .vp-brand { width: auto; min-width: 0; gap: 12px; }
.vp-homepage .vp-brand::after { content: none !important; display: none !important; }
.vp-homepage .vp-brand-mark { width: 38px; height: 46px; }
.vp-homepage .vp-brand-copy strong { font-size: 1.5rem; line-height: .92; }
.vp-homepage .vp-brand-copy span { font-size: .61rem; letter-spacing: .18em; }
.vp-homepage .vp-nav-links { gap: clamp(15px, 2vw, 28px); }
.vp-homepage .vp-nav-links:has(.vp-booking-cta) > a:last-child:not(.vp-booking-cta) { display: none !important; }
.vp-homepage .vp-nav-links > a:not(.vp-nav-cta) { font-size: .87rem; font-weight: 600; }
.vp-homepage .vp-lang { padding-left: 14px; border-left: 1px solid var(--hairline); }
.vp-homepage .vp-lang-divider { color: #9b9e95; }
.vp-homepage .vp-nav-cta,
.vp-homepage .vp-booking-cta,
.vp-homepage .vp-btn:not(.vp-btn--ghost) {
  border: 1px solid var(--navy) !important;
  border-radius: 8px !important;
  color: #fff !important;
  background: var(--navy) !important;
  box-shadow: none !important;
  font-weight: 650;
}
.vp-homepage .vp-nav-cta:hover,
.vp-homepage .vp-booking-cta:hover,
.vp-homepage .vp-btn:not(.vp-btn--ghost):hover { background: #152b3d !important; }
.vp-homepage .vp-btn { min-height: 48px; padding: 12px 22px; }
.vp-homepage .vp-btn--ghost {
  padding: 12px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--navy) !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: underline !important;
  text-decoration-color: var(--terracotta) !important;
  text-underline-offset: 5px;
}
.vp-homepage .vp-mobile-menu > .vp-booking-cta { display: none !important; }

/* Homepage: one portrait, immediate message, no duplicate badges or motifs. */
.vp-homepage:has(#vp-main-title) > main { display: flex; flex-direction: column; }
.vp-homepage .vp-hero { order: 1; padding: 74px 0 82px; background: var(--paper) !important; }
.vp-homepage .vp-thread-hero,
.vp-homepage .vp-labyrinth,
.vp-homepage .vp-frieze { display: none !important; }
.vp-homepage .vp-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(0, .85fr);
  align-items: center;
  gap: clamp(54px, 6vw, 96px);
}
.vp-homepage #vp-main-title {
  max-width: 620px;
  margin: 16px 0 20px;
  font-size: clamp(3.6rem, 5vw, 4.35rem) !important;
  font-weight: 600;
  line-height: .99 !important;
  letter-spacing: -.018em;
}
.vp-homepage .vp-hero .vp-lead {
  max-width: 550px;
  margin: 0 0 28px;
  color: var(--ink) !important;
  font-size: 1.09rem !important;
  line-height: 1.62 !important;
}
.vp-homepage .vp-hero-facts { display: none !important; }
.vp-homepage .vp-hero .vp-btns { gap: 24px; }
.vp-homepage .vp-portrait {
  overflow: hidden;
  border: 1px solid var(--hairline);
  border-radius: 230px 230px 9px 9px !important;
  background: #e6e4dc;
  box-shadow: none !important;
}
.vp-homepage .vp-portrait img {
  display: block;
  width: 100%;
  height: min(540px, 45vw);
  min-height: 420px;
  object-fit: cover;
  object-position: 50% 34%;
  border: 0 !important;
  box-shadow: none !important;
  filter: saturate(.78) contrast(.97);
}
.vp-homepage .vp-badge { display: none !important; }
.vp-homepage .vp-facts {
  order: 2;
  border-block: 1px solid var(--hairline);
  color: var(--navy);
  background: #f4eee4 !important;
}
.vp-homepage .vp-facts-grid { grid-template-columns: repeat(3, 1fr); }
.vp-homepage .vp-fact {
  padding: 17px 22px;
  color: var(--navy) !important;
  background: transparent !important;
  font-size: .79rem;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.vp-homepage .vp-fact:last-child { display: none; }

/* The personal approach leads; subjects become editorial rows. */
.vp-homepage section[aria-labelledby="vp-approach-title"] { order: 3; }
.vp-homepage section[aria-labelledby="vp-support-title"] { order: 4; }
.vp-homepage .vp-maxim { order: 5; }
.vp-homepage section[aria-labelledby="vp-process-title"] { order: 6; }
.vp-homepage section[aria-labelledby="vp-about-title"] { order: 7; }
.vp-homepage section[aria-labelledby="vp-selfchecks-title"] { order: 8; }
.vp-homepage .vp-cta { order: 9; }
.vp-homepage .vp-section { padding: clamp(76px, 8vw, 116px) 0; }
.vp-homepage section[aria-labelledby="vp-approach-title"] { background: #fbf9f4; }
.vp-homepage .vp-split {
  display: block;
  max-width: 1060px;
}
.vp-homepage .vp-image-card { display: none !important; }
.vp-homepage .vp-copy { max-width: 950px; }
.vp-homepage .vp-copy > p { max-width: 670px; }
.vp-homepage .vp-copy ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 42px;
  max-width: 940px;
  padding: 10px 0 20px;
  list-style: none;
}
.vp-homepage .vp-copy li {
  margin: 0 !important;
  padding: 17px 0 !important;
  border-top: 1px solid var(--hairline);
}
.vp-homepage .vp-copy li::before { color: var(--terracotta); }
.vp-homepage .vp-copy li::before { display: none !important; }
.vp-homepage .vp-section--mist { background: #f3f0e9 !important; }
.vp-homepage .vp-section--travertine { background: #eee9df !important; }
.vp-homepage .vp-heading h2,
.vp-homepage .vp-copy h2,
.vp-homepage .vp-about h2,
.vp-homepage .vp-cta h2 {
  max-width: 760px;
  font-size: clamp(2.8rem, 4.2vw, 4rem) !important;
  line-height: 1.02 !important;
}
.vp-homepage .vp-heading p,
.vp-homepage .vp-copy > p,
.vp-homepage .vp-about-copy p { max-width: 670px; }
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-cards {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
  margin-top: 42px;
}
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-card {
  display: grid;
  grid-template-columns: 72px minmax(220px, .65fr) minmax(0, 1fr);
  align-items: baseline;
  gap: 18px;
  min-height: 0;
  padding: 24px 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--hairline) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-card:last-child {
  border-bottom: 1px solid var(--hairline) !important;
}
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-card::before,
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-card::after { display: none !important; }
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-medallion { display: none !important; }
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-card-roman {
  position: static !important;
  color: var(--terracotta);
  font: 600 1.2rem "Cormorant Garamond", Georgia, serif;
}
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-card h3 {
  margin: 0;
  font-size: 2rem;
  line-height: 1.06;
}
.vp-homepage section[aria-labelledby="vp-support-title"] .vp-card p { margin: 0; }
.vp-homepage .vp-maxim { padding: 60px 20px; background: var(--navy) !important; }
.vp-homepage .vp-maxim blockquote { max-width: 1100px; margin-inline: auto; font-weight: 600; text-align: center; }
.vp-homepage .vp-maxim::before,
.vp-homepage .vp-maxim::after { display: none !important; }

/* Give the Ariadne illustration its own quiet chapter. */
.vp-homepage .vp-section--travertine .vp-ariadne-square {
  border-radius: 8px !important;
  box-shadow: none !important;
}
.vp-homepage .vp-journey {
  overflow: visible;
  border: 0 !important;
  border-top: 1px solid var(--hairline) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.vp-homepage .vp-journey-thread { background: var(--terracotta); }
.vp-homepage .vp-step { border-color: var(--hairline) !important; }
.vp-homepage .vp-step h3 { font-size: 2rem; }

/* Qualifications and self-checks use lines rather than repeated card chrome. */
.vp-homepage section[aria-labelledby="vp-about-title"] { background: #fbf9f4; }
.vp-homepage .vp-credentials {
  border: 0 !important;
  border-top: 1px solid var(--hairline) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.vp-homepage .vp-credential {
  padding: 18px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--hairline) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.vp-homepage .vp-credential strong { font-size: 1.5rem; }
.vp-homepage .vp-credential::before { display: none !important; }
.vp-homepage section[aria-labelledby="vp-selfchecks-title"] .vp-cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
.vp-homepage section[aria-labelledby="vp-selfchecks-title"] .vp-card {
  min-height: 0;
  padding: 22px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--terracotta) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
.vp-homepage section[aria-labelledby="vp-selfchecks-title"] .vp-card h3 { font-size: 1.9rem; }
.vp-homepage .vp-cta { background: var(--navy) !important; }
.vp-homepage .vp-cta h2 { color: #fbf9f4; }

@media (max-width: 920px) {
  .vp-homepage .vp-hero-grid { gap: 32px; }
  .vp-homepage #vp-main-title { font-size: clamp(3.1rem, 6vw, 4rem) !important; }
  .vp-homepage section[aria-labelledby="vp-support-title"] .vp-card {
    grid-template-columns: 44px minmax(180px, .7fr) minmax(0, 1fr);
  }
}
@media (max-width: 700px) {
  .vp-homepage .vp-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    min-height: 70px;
  }
  .vp-homepage .vp-nav-shell .vp-booking-mobile-cta { display: none !important; }
  .vp-homepage .vp-brand-mark { width: 30px; height: 38px; }
  .vp-homepage .vp-brand-copy strong { font-size: 1.2rem; }
  .vp-homepage .vp-brand-copy span { font-size: .52rem; }
  .vp-homepage .vp-hero { padding: 54px 0 62px; }
  .vp-homepage .vp-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .vp-homepage #vp-main-title { max-width: 600px; font-size: clamp(2.85rem, 10vw, 4rem) !important; }
  .vp-homepage .vp-hero .vp-lead { font-size: 1rem !important; }
  .vp-homepage .vp-portrait { max-width: 520px; margin: 0 auto; }
  .vp-homepage .vp-portrait img { height: auto; min-height: 0; aspect-ratio: 4 / 4.4; }
  .vp-homepage .vp-facts-grid { grid-template-columns: 1fr 1fr; }
  .vp-homepage .vp-fact { padding: 12px 10px; text-align: center; font-size: .68rem; }
  .vp-homepage .vp-fact:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--hairline); }
  .vp-homepage .vp-copy ul { grid-template-columns: 1fr; }
  .vp-homepage section[aria-labelledby="vp-support-title"] .vp-card {
    grid-template-columns: 38px 1fr;
    gap: 5px 12px;
  }
  .vp-homepage section[aria-labelledby="vp-support-title"] .vp-card p { grid-column: 2; }
  .vp-homepage section[aria-labelledby="vp-selfchecks-title"] .vp-cards { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 460px) {
  .vp-homepage .vp-nav { grid-template-columns: minmax(0, 1fr) 42px; }
  .vp-homepage .vp-brand-copy span { display: none; }
  .vp-homepage .vp-brand-copy strong { font-size: 1.22rem; line-height: .9; }
  .vp-homepage .vp-hero .vp-btns { align-items: flex-start; flex-direction: column; gap: 8px; }
  .vp-homepage #vp-main-title { font-size: 2.85rem !important; }
}

/* Interior pages share the same paper, type scale, and quieter surfaces. */
.vp-homepage .vp-inner-hero {
  background: var(--paper) !important;
}
.vp-homepage .vp-inner-copy h1 {
  max-width: 720px;
  font-size: clamp(3.2rem, 5vw, 4.45rem) !important;
  font-weight: 600;
  line-height: 1.01 !important;
  letter-spacing: -.017em;
}
.vp-homepage .vp-inner-copy .vp-lead,
.vp-homepage .vp-inner-heading > p {
  color: var(--ink) !important;
  font-size: 1.08rem;
  line-height: 1.65 !important;
}
.vp-homepage .vp-inner-section { background: #fbf9f4 !important; }
.vp-homepage .vp-inner-section--mist { background: #f2efe8 !important; }
.vp-homepage .vp-inner-section--stone { background: #eee9df !important; }
.vp-homepage .vp-inner-heading h2,
.vp-homepage .vp-closing h2 {
  font-size: clamp(2.8rem, 4.2vw, 4rem) !important;
  line-height: 1.03 !important;
}
.vp-homepage .vp-inner-visual img { filter: saturate(.8) contrast(.97); }
.vp-homepage .vp-inner-seal { box-shadow: none !important; }

/* Tariffs read as clear, editorial choices instead of app cards. */
.vp-homepage .vp-fee-grid { gap: 18px; }
.vp-homepage .vp-fee-card {
  min-height: 0;
  padding: 30px !important;
  border: 1px solid var(--hairline) !important;
  border-top: 2px solid var(--terracotta) !important;
  border-radius: 5px !important;
  background: #fbf9f4 !important;
  box-shadow: none !important;
  transform: none !important;
}
.vp-homepage .vp-fee-card h3 { font-size: 2rem; line-height: 1.05; }
.vp-homepage .vp-price { color: var(--navy) !important; font-size: 2.75rem; }
.vp-homepage .vp-duration { color: #566f66 !important; }
.vp-homepage .vp-fact-box,
.vp-homepage .vp-panel,
.vp-homepage .vp-contact-note,
.vp-homepage .vp-assurance-card,
.vp-homepage .vp-next-step {
  border: 1px solid var(--hairline) !important;
  border-radius: 6px !important;
  background: rgba(255,255,255,.55) !important;
  box-shadow: none !important;
  transform: none !important;
}
.vp-homepage .vp-fact-box { border-left: 2px solid var(--bronze) !important; }
.vp-homepage .vp-faq details {
  border: 0 !important;
  border-top: 1px solid var(--hairline) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.vp-homepage .vp-faq details:last-child { border-bottom: 1px solid var(--hairline) !important; }
.vp-homepage .vp-faq summary { padding-left: 0 !important; padding-right: 0 !important; }
.vp-homepage .vp-principle,
.vp-homepage .vp-closing { background: var(--navy) !important; }
.vp-homepage #vp-form-mount button[type="submit"] { border-radius: 8px !important; }

/* Self-checks: remove the old animated logo and keep navigation in one row. */
body:has(#vp-screening) .elementor > .e-con { padding-inline: 0 !important; }
body:has(#vp-screening) .elementor > .e-con > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
}
#vp-screening {
  --navy: #203449;
  --bronze: #71857b;
  --terracotta: #a66850;
  --paper: #f7f3eb;
  --hairline: rgba(32,52,73,.18);
  width: 100%;
  max-width: none;
  color: #39464a;
  background: var(--paper);
  font-family: "Source Sans 3", "Segoe UI", Arial, sans-serif;
}
#vp-screening .vp-wrap { width: min(1200px, calc(100% - 80px)); max-width: 1200px; }
#vp-screening .vp-nav-shell { border-bottom: 1px solid var(--hairline); background: var(--paper); }
#vp-screening .vp-nav { flex-wrap: nowrap; min-height: 82px; gap: 22px; }
#vp-screening .vp-brand { width: auto; min-width: 0; gap: 12px; }
#vp-screening .vp-brand::after { content: none !important; display: none !important; }
#vp-screening .vp-brand-mark { width: 38px; height: 46px; }
#vp-screening .vp-brand-copy strong { font-size: 1.5rem; line-height: .92; color: var(--navy); }
#vp-screening .vp-brand-copy strong { text-transform: none !important; }
#vp-screening .vp-brand-copy span { font-size: .61rem; letter-spacing: .18em; }
#vp-screening .vp-nav-links { gap: clamp(15px, 2vw, 28px); }
#vp-screening .vp-nav-links .vp-lang { padding-left: 14px; border-color: var(--hairline); }
#vp-screening .vp-nav-links .vp-nav-cta,
#vp-screening .vp-button {
  border-radius: 8px !important;
  color: #fff !important;
  background: var(--navy) !important;
  box-shadow: none !important;
}
#vp-screening .vp-hero { padding: 74px 0 78px; background: var(--paper) !important; }
#vp-screening .vp-hero h1 {
  max-width: 780px;
  color: var(--navy);
  font-size: clamp(3.2rem, 5vw, 4.4rem) !important;
  font-weight: 600;
  line-height: 1.01 !important;
  letter-spacing: -.017em;
}
#vp-screening .vp-hero .vp-lead { max-width: 670px; color: #39464a !important; font-size: 1.08rem; line-height: 1.65; }
#vp-screening .vp-section { background: #fbf9f4; }
#vp-screening .vp-tests { background: #f2efe8 !important; }
#vp-screening .vp-card {
  min-height: 0;
  padding: 24px 0 !important;
  border: 0 !important;
  border-top: 2px solid var(--terracotta) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}
#vp-screening .vp-card::before { display: none !important; }
#vp-screening .vp-card h3 { color: var(--navy); font-size: 1.95rem; }
#vp-screening .vp-test { border-radius: 6px !important; box-shadow: none !important; }
#vp-screening .vp-cta { background: var(--navy) !important; }
#vp-screening .vp-mobile-menu summary span {
  position: relative;
  display: block;
  width: 19px;
  height: 2px;
  background: #fff;
}
#vp-screening .vp-mobile-menu summary span::before,
#vp-screening .vp-mobile-menu summary span::after {
  content: "";
  position: absolute;
  left: 0;
  width: 19px;
  height: 2px;
  background: #fff;
}
#vp-screening .vp-mobile-menu summary span::before { top: -6px; }
#vp-screening .vp-mobile-menu summary span::after { top: 6px; }

@media (max-width: 920px) {
  .vp-homepage .vp-fee-grid { grid-template-columns: 1fr !important; }
  .vp-homepage .vp-fee-card { min-height: 0; }
}
@media (max-width: 700px) {
  .vp-homepage .vp-inner-copy h1,
  #vp-screening .vp-hero h1 { font-size: clamp(2.8rem, 10vw, 3.8rem) !important; }
  #vp-screening .vp-wrap { width: min(1200px, calc(100% - 40px)); }
  #vp-screening .vp-nav { display: grid; grid-template-columns: minmax(0,1fr) 44px; min-height: 70px; }
  #vp-screening .vp-nav-shell .vp-booking-mobile-cta { display: none !important; }
  #vp-screening .vp-brand-mark { width: 30px; height: 38px; }
  #vp-screening .vp-brand-copy strong { font-size: 1.2rem; }
  #vp-screening .vp-brand-copy span { font-size: .52rem; }
}
@media (max-width: 460px) {
  #vp-screening .vp-brand-copy span { display: none; }
  #vp-screening .vp-hero h1 { font-size: 2.55rem !important; }
  body.page-id-2784 .vp-homepage .vp-inner-copy h1 { font-size: 2.3rem !important; }
}

/* The booking plugin owns the customer portal; improve its text and controls. */
body.page-id-60 .site-content { background: #f7f3eb; }
body.page-id-60 .entry-title { color: #203449; font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2.6rem, 4vw, 3.8rem); }
body.page-id-60 .latepoint-login-form-w,
body.page-id-60 .os-customer-login-w {
  color: #39464a;
  background: #fbf9f4 !important;
  box-shadow: none !important;
}
body.page-id-60 .os-form-control {
  border: 1px solid #8b999a !important;
  border-radius: 6px !important;
  color: #203449 !important;
  background: #fff !important;
}
body.page-id-60 .os-form-control::placeholder { color: #4b5960 !important; opacity: 1 !important; }
body.page-id-60 .latepoint-btn-primary {
  border: 1px solid #203449 !important;
  border-radius: 6px !important;
  color: #fff !important;
  background: #203449 !important;
  box-shadow: none !important;
}
body.page-id-60 .latepoint-btn-primary span { color: #fff !important; }

/* Keep the shared dark footer readable despite the homepage's light-section text rules. */
.vp-homepage .vp-footer,
.vp-footer {
  color: #eaf0f4 !important;
  background-color: #102a3d !important;
}
.vp-homepage .vp-footer p,
.vp-footer p,
.vp-homepage .vp-footer .vp-footer-links a,
.vp-footer .vp-footer-links a,
.vp-homepage .vp-footer .vp-crisis,
.vp-footer .vp-crisis,
.vp-homepage .vp-footer .vp-footer-bottom,
.vp-footer .vp-footer-bottom {
  color: #eaf0f4 !important;
}
.vp-homepage .vp-footer .vp-brand-copy strong,
.vp-footer .vp-brand-copy strong,
.vp-homepage .vp-footer h3,
.vp-footer h3 {
  color: #fff !important;
}
.vp-homepage .vp-footer .vp-brand-copy span,
.vp-footer .vp-brand-copy span {
  color: #d9e3e9 !important;
}
.vp-homepage .vp-footer .vp-footer-links a:hover,
.vp-footer .vp-footer-links a:hover,
.vp-homepage .vp-footer .vp-crisis a,
.vp-footer .vp-crisis a {
  color: #fff !important;
}
