/*
 * Lexvia CMS v1.4.2.2 — Vector Dot Portrait Fidelity Restore
 * Keeps the approved 50/50 hero composition from v1.4.2.1
 * while restoring the Lexvia dotted portrait language from the approved mockups.
 */

/* ---------- Structural 50 / 50 hero ---------- */
.lx-home-hero .lx-hero-stage,
.lx-about-hero .lx-hero-stage,
.lx-services-hero .lx-hero-stage,
.lx-contact-hero .lx-hero-stage{
  position:relative!important;
  z-index:12!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:0!important;
  min-height:660px!important;
  padding:0!important;
  align-items:stretch!important;
}

.lx-hero-stage>.lx-hero-copy{
  position:relative!important;
  z-index:20!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:68px 38px 112px 0!important;
  align-self:center!important;
}

.lx-hero-stage>.lx-hero-visual{
  position:relative!important;
  z-index:10!important;
  width:100%!important;
  min-width:0!important;
  height:660px!important;
  align-self:stretch!important;
  overflow:visible!important;
  isolation:isolate!important;
}

/* Old full-hero art containers are no longer part of the reconstructed heroes. */
.lx-home-hero>.lx-hero-art,
.lx-about-hero>.lx-hero-art,
.lx-services-hero>.lx-hero-art,
.lx-contact-hero>.lx-hero-art{display:none!important}

/* ---------- Typography: match approved mockups ---------- */
.lx-hero-stage .lx-hero-copy h1{
  width:100%!important;
  max-width:620px!important;
  margin:18px 0 20px!important;
  color:#061d44!important;
  font-family:var(--lx-head)!important;
  font-size:clamp(3.15rem,3.55vw,4rem)!important;
  font-weight:800!important;
  line-height:1.025!important;
  letter-spacing:-.052em!important;
  text-wrap:balance!important;
}
.lx-about-hero .lx-hero-copy h1{font-size:clamp(3.25rem,3.7vw,4.15rem)!important}
.lx-contact-hero .lx-hero-copy h1{font-size:clamp(3.2rem,3.7vw,4.2rem)!important}
.lx-services-hero .lx-hero-copy h1{font-size:clamp(3.1rem,3.45vw,3.9rem)!important}
html[data-theme="dark"] .lx-hero-stage .lx-hero-copy h1{color:#f5fbff!important}

.lx-hero-stage .lx-hero-copy .lead{
  width:100%!important;
  max-width:590px!important;
  margin:0!important;
  color:#607c96!important;
  font-size:1.1rem!important;
  line-height:1.58!important;
}
.lx-services-hero .lx-secondary-lead{
  max-width:570px!important;
  margin-top:10px!important;
  font-size:.97rem!important;
  line-height:1.55!important;
}
.lx-hero-stage .lx-hero-actions{margin-top:27px!important}
.lx-hero-stage .lx-hero-actions .btn{min-height:52px!important;padding-inline:23px!important}

/* Home/About value strip stays inside the true left half. */
.lx-hero-stage .lx-values{
  width:100%!important;
  max-width:620px!important;
  margin-top:34px!important;
}
.lx-hero-stage .lx-value{padding-left:13px!important;padding-right:13px!important;gap:9px!important;grid-template-columns:34px 1fr!important}
.lx-hero-stage .lx-value:first-child{padding-left:0!important}
.lx-hero-stage .lx-value i{width:30px!important;height:30px!important;font-size:1.18rem!important}
.lx-hero-stage .lx-value strong{font-size:.77rem!important}
.lx-hero-stage .lx-value small{font-size:.49rem!important;line-height:1.3!important;letter-spacing:.08em!important}

/* ---------- Portrait fidelity restore ----------
   Restore the approved Lexvia dotted portrait language using two stacked copies
   of the same transparent portrait: one soft tonal layer and one dotted layer. */
.lx-hero-visual .lx-model-art{
  position:absolute!important;
  z-index:8!important;
  inset:auto!important;
  margin:0!important;
  pointer-events:none!important;
}
.lx-hero-visual .lx-model-art .lx-model-photo{
  display:block!important;
  position:absolute!important;
  max-width:none!important;
  width:auto!important;
  height:100%!important;
  inset:auto!important;
  object-fit:contain!important;
  object-position:right bottom!important;
  transform:none!important;
  transform-origin:center bottom!important;
}
.lx-hero-visual .lx-model-art .lx-model-tone{
  filter:grayscale(1) sepia(.58) saturate(3.15) hue-rotate(156deg) brightness(1.04) contrast(1.08)!important;
  opacity:.18!important;
  mix-blend-mode:multiply!important;
}
.lx-hero-visual .lx-model-art .lx-model-dots{
  filter:grayscale(1) sepia(.92) saturate(4.85) hue-rotate(158deg) brightness(.78) contrast(1.82)!important;
  opacity:.90!important;
  mix-blend-mode:multiply!important;
  -webkit-mask-image:radial-gradient(circle,#000 0 1.18px,transparent 1.55px)!important;
  -webkit-mask-size:4.1px 4.1px!important;
  mask-image:radial-gradient(circle,#000 0 1.18px,transparent 1.55px)!important;
  mask-size:4.1px 4.1px!important;
}
html[data-theme="dark"] .lx-hero-visual .lx-model-art .lx-model-tone{
  filter:grayscale(1) brightness(1.76) sepia(.24) hue-rotate(158deg) saturate(2)!important;
  opacity:.11!important;
  mix-blend-mode:screen!important;
}
html[data-theme="dark"] .lx-hero-visual .lx-model-art .lx-model-dots{
  filter:grayscale(1) brightness(1.58) sepia(.32) hue-rotate(158deg) saturate(2.1)!important;
  opacity:.68!important;
  mix-blend-mode:screen!important;
}

/* ---------- Visual art is now relative to the right 50% ---------- */
.lx-hero-visual>.lx-art-world,
.lx-hero-visual>.lx-art-landmarks,
.lx-hero-visual>.lx-art-australia,
.lx-hero-visual>.lx-globe{
  position:absolute!important;
  z-index:2!important;
  height:auto!important;
  pointer-events:none!important;
}
.lx-hero-visual>.lx-art-world{opacity:.24!important;filter:contrast(.92) saturate(.72)!important}
.lx-hero-visual>.lx-art-landmarks{opacity:.52!important;filter:saturate(.8)!important}
.lx-hero-visual>.lx-art-australia{opacity:.5!important;filter:saturate(.8)!important}

/* HOME — face focused, world behind head, landmarks low right. */
.lx-home-visual .lx-art-world{width:760px!important;right:-125px!important;top:18px!important}
.lx-home-visual .lx-art-landmarks{width:675px!important;right:-108px!important;bottom:24px!important;z-index:4!important;opacity:.48!important}
.lx-home-visual .lx-globe{right:-60px!important;top:10px!important;width:700px!important;height:510px!important;opacity:.035!important;mix-blend-mode:multiply!important}
.lx-home-visual .lx-model-home{width:600px!important;height:790px!important;right:-4px!important;bottom:-132px!important;isolation:isolate!important}
.lx-home-visual .lx-model-home .lx-model-photo{right:0!important;bottom:0!important}

/* ABOUT — portrait fills the visual half like the approved mockup. */
.lx-about-visual .lx-art-world{width:770px!important;right:-130px!important;top:12px!important}
.lx-about-visual .lx-art-landmarks{width:735px!important;right:-128px!important;bottom:20px!important;z-index:4!important;opacity:.52!important}
.lx-about-visual .lx-model-about{width:610px!important;height:805px!important;right:-6px!important;bottom:-143px!important;isolation:isolate!important}
.lx-about-visual .lx-model-about .lx-model-photo{right:0!important;bottom:0!important}

/* SERVICES — presenting pose, Australia map sits behind the raised hand. */
.lx-services-visual .lx-art-world{width:720px!important;right:-110px!important;top:8px!important;opacity:.18!important}
.lx-services-visual .lx-art-australia{width:505px!important;left:-75px!important;top:120px!important;right:auto!important;z-index:3!important;opacity:.58!important}
.lx-services-visual .lx-model-services{width:590px!important;height:735px!important;right:30px!important;bottom:-96px!important;z-index:8!important;isolation:isolate!important}
.lx-services-visual .lx-model-services .lx-model-photo{right:0!important;bottom:0!important}

/* CONTACT — welcoming pose with reception environment and brand card. */
.lx-contact-visual .lx-contact-reception{
  position:absolute!important;
  z-index:1!important;
  right:-190px!important;
  top:0!important;
  bottom:0!important;
  width:440px!important;
  border-left:1px solid rgba(58,111,143,.08)!important;
  background:linear-gradient(90deg,rgba(242,250,254,.2),rgba(236,247,252,.88)),repeating-linear-gradient(90deg,transparent 0 16px,rgba(74,137,171,.08) 16px 18px)!important;
}
.lx-contact-visual .lx-art-world{width:700px!important;right:-90px!important;top:22px!important;opacity:.2!important}
.lx-contact-visual .lx-art-australia{width:330px!important;left:-44px!important;top:190px!important;right:auto!important;z-index:3!important;opacity:.52!important}
.lx-contact-visual .lx-model-contact{width:520px!important;height:650px!important;right:96px!important;bottom:-62px!important;z-index:8!important;isolation:isolate!important}
.lx-contact-visual .lx-model-contact .lx-model-photo{right:0!important;bottom:0!important}
.lx-contact-visual .lx-contact-brand-card{
  position:absolute!important;
  z-index:12!important;
  top:72px!important;
  right:-12px!important;
  width:218px!important;
  padding:22px!important;
  border:1px solid #c8dce8!important;
  border-radius:15px!important;
  background:rgba(255,255,255,.9)!important;
  box-shadow:var(--lx-shadow-soft)!important;
  color:#27465c!important;
}
.lx-contact-visual .lx-contact-brand-card strong{display:block!important;color:#17364d!important;font-size:1.3rem!important;line-height:1.1!important}
.lx-contact-visual .lx-contact-brand-card small{display:block!important;margin-top:14px!important;color:#5d8197!important;font-size:.62rem!important;letter-spacing:.16em!important;text-transform:uppercase!important}
html[data-theme="dark"] .lx-contact-visual .lx-contact-brand-card{background:rgba(17,37,50,.9)!important}
html[data-theme="dark"] .lx-contact-visual .lx-contact-brand-card strong{color:#f1f9fd!important}

/* Editorial labels are now scoped to their visual half. */
.lx-hero-visual .lx-hero-note{z-index:14!important}
.lx-home-visual .lx-hero-note--top{top:62px!important;left:4px!important;right:auto!important}
.lx-home-visual .lx-hero-note--right{top:112px!important;right:-2px!important}
.lx-home-visual .lx-hero-note--bottom{right:4px!important;bottom:95px!important}
.lx-about-visual .lx-hero-note--right{top:115px!important;right:-2px!important}
.lx-services-visual .lx-hero-note--top{top:52px!important;left:8px!important;right:auto!important}

.lx-services-visual .lx-side-list{
  position:absolute!important;
  z-index:14!important;
  right:-4px!important;
  top:132px!important;
  display:grid!important;
  gap:14px!important;
  color:#2f76a1!important;
  font:800 .63rem/1.2 var(--lx-body)!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.lx-services-visual .lx-side-list span{position:relative!important;padding-left:17px!important;white-space:nowrap!important}
.lx-services-visual .lx-side-list span::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;border-radius:50%;background:#2f7daa;box-shadow:0 0 0 5px rgba(47,125,170,.08)}

/* Hide old globally-positioned variants if legacy markup survives an upgrade. */
.lx-home-hero>.lx-model-art,.lx-about-hero>.lx-model-art,.lx-services-hero>.lx-model-art,.lx-contact-hero>.lx-model-art,
.lx-home-hero>.lx-hero-note,.lx-about-hero>.lx-hero-note,.lx-services-hero>.lx-hero-note,
.lx-services-hero>.lx-side-list,.lx-contact-hero>.lx-contact-brand-card{display:none!important}
.lx-hero-visual .lx-model-art,.lx-hero-visual .lx-hero-note,.lx-hero-visual .lx-side-list,.lx-hero-visual .lx-contact-brand-card{display:block!important}

/* Keep wave ending from v1.4.2 but lower it so portrait crops feel intentional. */
.lx-home-hero::after,.lx-about-hero::after,.lx-services-hero::after,.lx-contact-hero::after{bottom:-66px!important;height:104px!important}

/* ---------- Desktop tightening ---------- */
@media (max-width:1300px){
  .lx-home-hero .lx-hero-stage,.lx-about-hero .lx-hero-stage,.lx-services-hero .lx-hero-stage,.lx-contact-hero .lx-hero-stage{min-height:630px!important}
  .lx-hero-stage>.lx-hero-visual{height:630px!important}
  .lx-hero-stage>.lx-hero-copy{padding-right:30px!important;padding-top:58px!important}
  .lx-hero-stage .lx-hero-copy h1{font-size:clamp(2.9rem,4.6vw,3.72rem)!important}
  .lx-home-visual .lx-model-home{height:745px!important;bottom:-126px!important}
  .lx-about-visual .lx-model-about{height:758px!important;bottom:-132px!important}
  .lx-services-visual .lx-model-services{height:690px!important;bottom:-88px!important;right:12px!important}
  .lx-contact-visual .lx-model-contact{height:610px!important;right:74px!important;bottom:-58px!important}
  .lx-services-visual .lx-side-list{right:0!important}
}

/* ---------- Tablet: retain split while there is room ---------- */
@media (max-width:1050px){
  .lx-home-hero .lx-hero-stage,.lx-about-hero .lx-hero-stage,.lx-services-hero .lx-hero-stage,.lx-contact-hero .lx-hero-stage{grid-template-columns:52% 48%!important;min-height:600px!important}
  .lx-hero-stage>.lx-hero-visual{height:600px!important}
  .lx-hero-stage>.lx-hero-copy{padding:50px 28px 94px 0!important}
  .lx-hero-stage .lx-hero-copy h1{font-size:clamp(2.65rem,5vw,3.35rem)!important}
  .lx-hero-stage .lx-hero-copy .lead{font-size:1rem!important}
  .lx-hero-stage .lx-values{grid-template-columns:repeat(2,1fr)!important;gap:16px 0!important}
  .lx-hero-stage .lx-value:nth-child(3){border-left:0!important;padding-left:0!important}
  .lx-home-visual .lx-model-home,.lx-about-visual .lx-model-about{height:690px!important;right:-55px!important;bottom:-110px!important}
  .lx-services-visual .lx-model-services{height:645px!important;right:-75px!important;bottom:-76px!important}
  .lx-contact-visual .lx-model-contact{height:570px!important;right:14px!important;bottom:-46px!important}
  .lx-services-visual .lx-side-list{display:none!important}
  .lx-hero-visual .lx-hero-note--right,.lx-hero-visual .lx-hero-note--bottom{display:none!important}
}

/* ---------- Mobile: copy first, visual becomes a shallow editorial panel ---------- */
@media (max-width:820px){
  .lx-home-hero .lx-hero-stage,.lx-about-hero .lx-hero-stage,.lx-services-hero .lx-hero-stage,.lx-contact-hero .lx-hero-stage{
    grid-template-columns:1fr!important;
    min-height:0!important;
  }
  .lx-hero-stage>.lx-hero-copy{padding:48px 0 36px!important}
  .lx-hero-stage>.lx-hero-copy h1{max-width:720px!important;font-size:clamp(2.35rem,9.6vw,3.35rem)!important}
  .lx-hero-stage>.lx-hero-visual{height:360px!important;margin-top:-10px!important}
  .lx-hero-visual .lx-model-art{opacity:.86!important}
  .lx-home-visual .lx-model-home,.lx-about-visual .lx-model-about{height:510px!important;right:0!important;bottom:-130px!important}
  .lx-services-visual .lx-model-services{height:500px!important;right:-20px!important;bottom:-110px!important}
  .lx-contact-visual .lx-model-contact{height:465px!important;right:46px!important;bottom:-95px!important}
  .lx-hero-visual>.lx-art-world{right:-80px!important;width:620px!important}
  .lx-home-visual .lx-art-landmarks,.lx-about-visual .lx-art-landmarks{width:600px!important;right:-90px!important}
  .lx-services-visual .lx-art-australia{width:390px!important;left:0!important;top:80px!important}
  .lx-contact-visual .lx-art-australia{width:270px!important;left:4px!important;top:105px!important}
  .lx-contact-visual .lx-contact-brand-card{right:0!important;top:34px!important;width:185px!important;padding:16px!important}
  .lx-home-visual .lx-hero-note--top,.lx-services-visual .lx-hero-note--top{top:20px!important;left:0!important}
}

@media (max-width:560px){
  .lx-hero-stage>.lx-hero-copy{padding-top:40px!important}
  .lx-hero-stage>.lx-hero-visual{height:285px!important}
  .lx-hero-stage .lx-values{grid-template-columns:1fr 1fr!important}
  .lx-hero-stage .lx-value{padding:7px 10px!important}
  .lx-home-visual .lx-model-home,.lx-about-visual .lx-model-about{height:420px!important;right:-35px!important;bottom:-122px!important}
  .lx-services-visual .lx-model-services{height:415px!important;right:-60px!important;bottom:-98px!important}
  .lx-contact-visual .lx-model-contact{height:390px!important;right:6px!important;bottom:-92px!important}
  .lx-hero-visual .lx-hero-note,.lx-services-visual .lx-side-list,.lx-contact-visual .lx-contact-brand-card{display:none!important}
}
