@charset "UTF-8";
/*
Theme Name: Pknsaphelia
Theme URI: 
Author: Antigravity Architect
Author URI: 
Description: High-performance, animation-heavy custom WordPress theme for Pknsaphelia. Integrates closely with Elementor.
Version: 1.0.0
Text Domain: pknsaphelia
*/
:root {
  --color-primary: #7b4e1b;
  --color-primary-highlight: #fef7c9;
  --color-primary-stop: 100%;
  --color-secondary: #1a1a2e;
  --color-secondary-highlight: #2a2a4e;
  --color-secondary-stop: 100%;
  --color-accent: #ffffff;
  --color-accent-highlight: #f0f0f0;
  --color-accent-stop: 100%;
  --color-white-stop: 100%;
  --color-black-stop: 100%;
  --color-gold: #c0912f;
  --color-brown: #7b4e1b;
  --color-brown-light: #7c6a54;
  --color-primary-text: #4a3100;
  --color-secondary-text: var(--color-accent);
  --color-accent-text: var(--color-secondary);
  --color-white-text: var(--color-secondary);
  --color-black-text: var(--color-accent);
  --font-primary: "Playfair Display", serif;
  --font-secondary: "Montserrat", sans-serif;
  --font-accent: "Great Vibes", cursive;
  --font-carien: "Carien", sans-serif;
  --container-max-width-xl: 1400px;
  --container-max-width-lg: 1240px;
  --container-max-width: 1200px;
  --container-max-width-md: 1100px;
  --container-max-width-sm: 800px;
}

@font-face {
  font-family: "Carien";
  src: url("./assets/fonts/Carien.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
body {
  font-family: var(--font-secondary);
  color: var(--body-text-color, var(--color-secondary));
  background-color: var(--body-bg-color, var(--color-accent));
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
.font-primary {
  font-family: var(--font-primary);
  font-weight: 600;
}

.font-accent {
  font-family: var(--font-accent);
  color: var(--color-primary);
}

.font-carien {
  font-family: var(--font-carien);
}

.text-primary {
  color: var(--color-primary);
}

.bg-primary {
  background-color: var(--color-primary);
}

.text-primary-highlight {
  color: var(--color-primary-highlight);
}

.bg-primary-highlight {
  background-color: var(--color-primary-highlight);
}

.text-secondary {
  color: var(--color-secondary);
}

.bg-secondary {
  background-color: var(--color-secondary);
}

.text-secondary-highlight {
  color: var(--color-secondary-highlight);
}

.bg-secondary-highlight {
  background-color: var(--color-secondary-highlight);
}

.text-accent {
  color: var(--color-accent);
}

.bg-accent {
  background-color: var(--color-accent);
}

.text-accent-highlight {
  color: var(--color-accent-highlight);
}

.bg-accent-highlight {
  background-color: var(--color-accent-highlight);
}

.text-gold {
  color: var(--color-gold);
}

.bg-gold {
  background-color: var(--color-gold);
}

.text-brown {
  color: var(--color-brown);
}

.bg-brown {
  background-color: var(--color-brown);
}

.text-primary-text {
  color: var(--color-primary-text);
}

.bg-primary-text {
  background-color: var(--color-primary-text);
}

.text-secondary-text {
  color: var(--color-secondary-text);
}

.bg-secondary-text {
  background-color: var(--color-secondary-text);
}

.text-accent-text {
  color: var(--color-accent-text);
}

.bg-accent-text {
  background-color: var(--color-accent-text);
}

.text-white-text {
  color: var(--color-white-text);
}

.bg-white-text {
  background-color: var(--color-white-text);
}

.text-black-text {
  color: var(--color-black-text);
}

.bg-black-text {
  background-color: var(--color-black-text);
}

.btn {
  padding: 12px 30px;
  border-radius: 0 18px;
  font-family: var(--font-secondary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
  border: none;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
  border-radius: inherit;
}
.btn.btn-ghost {
  padding: 11px 29px;
  background-color: transparent;
  border: 1px solid transparent;
}
.btn.btn-text {
  padding: 12px 0;
  background-color: transparent;
  border-radius: 0;
  border-bottom: 1px solid transparent;
}
.btn.btn-text:hover {
  border-bottom-color: currentColor;
}

.btn.btn-solid.color-primary, .btn.btn-solid.color-gold {
  background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-highlight) var(--color-primary-stop, 100%));
  color: var(--color-primary-text);
}
.btn.btn-solid.color-primary::before, .btn.btn-solid.color-gold::before {
  background: linear-gradient(90deg, #b08d4a 0%, #e3d091 100%);
}
.btn.btn-solid.color-primary:hover, .btn.btn-solid.color-gold:hover {
  color: var(--color-primary-text);
}
.btn.btn-solid.color-primary:hover::before, .btn.btn-solid.color-gold:hover::before {
  opacity: 1;
}
.btn.btn-solid.color-accent {
  background: linear-gradient(90deg, var(--color-accent) 0%, var(--color-accent-highlight) var(--color-accent-stop, 100%));
  color: var(--color-accent-text);
}
.btn.btn-solid.color-accent::before {
  background: #e8e8e8;
}
.btn.btn-solid.color-accent:hover {
  color: var(--color-accent-text);
}
.btn.btn-solid.color-accent:hover::before {
  opacity: 1;
}
.btn.btn-solid.color-secondary, .btn.btn-solid.color-navy {
  background: linear-gradient(90deg, var(--color-secondary) 0%, var(--color-secondary-highlight) var(--color-secondary-stop, 100%));
  color: var(--color-secondary-text);
}
.btn.btn-solid.color-secondary::before, .btn.btn-solid.color-navy::before {
  background: #0f0f1c;
}
.btn.btn-solid.color-secondary:hover, .btn.btn-solid.color-navy:hover {
  color: var(--color-secondary-text);
}
.btn.btn-solid.color-secondary:hover::before, .btn.btn-solid.color-navy:hover::before {
  opacity: 1;
}
.btn.btn-solid.color-white {
  background: linear-gradient(90deg, var(--color-white) 0%, var(--color-white-highlight) var(--color-white-stop, 100%));
  color: var(--color-white-text);
}
.btn.btn-solid.color-white::before {
  background: #e8e8e8;
}
.btn.btn-solid.color-white:hover {
  color: var(--color-white-text);
}
.btn.btn-solid.color-white:hover::before {
  opacity: 1;
}
.btn.btn-solid.color-black {
  background: linear-gradient(90deg, var(--color-black) 0%, var(--color-black-highlight) var(--color-black-stop, 100%));
  color: var(--color-black-text);
}
.btn.btn-solid.color-black::before {
  background: #333333;
}
.btn.btn-solid.color-black:hover {
  color: var(--color-black-text);
}
.btn.btn-solid.color-black:hover::before {
  opacity: 1;
}

.btn.btn-ghost.color-primary, .btn.btn-ghost.color-gold {
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.btn.btn-ghost.color-primary:hover, .btn.btn-ghost.color-gold:hover {
  background: var(--color-primary);
  color: var(--color-primary-text);
}
.btn.btn-ghost.color-accent {
  color: var(--color-accent);
  border-color: var(--color-accent);
}
.btn.btn-ghost.color-accent:hover {
  background: var(--color-accent);
  color: var(--color-accent-text);
}
.btn.btn-ghost.color-secondary, .btn.btn-ghost.color-navy {
  color: var(--color-secondary);
  border-color: var(--color-secondary);
}
.btn.btn-ghost.color-secondary:hover, .btn.btn-ghost.color-navy:hover {
  background: var(--color-secondary);
  color: var(--color-secondary-text);
}
.btn.btn-ghost.color-white {
  color: var(--color-white);
  border-color: var(--color-white);
}
.btn.btn-ghost.color-white:hover {
  background: var(--color-white);
  color: var(--color-white-text);
}
.btn.btn-ghost.color-black {
  color: var(--color-black);
  border-color: var(--color-black);
}
.btn.btn-ghost.color-black:hover {
  background: var(--color-black);
  color: var(--color-black-text);
}

.btn.btn-text.color-primary, .btn.btn-text.color-gold {
  color: var(--color-primary);
}
.btn.btn-text.color-accent {
  color: var(--color-accent);
}
.btn.btn-text.color-secondary, .btn.btn-text.color-navy {
  color: var(--color-secondary);
}
.btn.btn-text.color-white {
  color: var(--color-white);
}
.btn.btn-text.color-black {
  color: var(--color-black);
}

.bg-navy,
.bg-secondary {
  background-color: var(--color-secondary);
  color: var(--color-accent);
}
.bg-navy .btn-ghost:not(.color-primary):not(.color-accent):not(.color-secondary):not(.color-gold):not(.color-white):not(.color-navy),
.bg-secondary .btn-ghost:not(.color-primary):not(.color-accent):not(.color-secondary):not(.color-gold):not(.color-white):not(.color-navy) {
  color: var(--color-accent);
  border-color: var(--color-accent);
}
.bg-navy .btn-ghost:not(.color-primary):not(.color-accent):not(.color-secondary):not(.color-gold):not(.color-white):not(.color-navy):hover,
.bg-secondary .btn-ghost:not(.color-primary):not(.color-accent):not(.color-secondary):not(.color-gold):not(.color-white):not(.color-navy):hover {
  background-color: var(--color-accent);
  color: var(--color-secondary);
}

/* ==========================================================================
   Global Layout Rules
   ========================================================================== */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px; /* Offset for fixed header */
}

/* Hide Scrollbar */
::-webkit-scrollbar,
*::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

*,
html,
body {
  -ms-overflow-style: none !important; /* IE and Edge */
  scrollbar-width: none !important; /* Firefox */
}

html,
body {
  overflow-x: hidden;
}

/* ==========================================================================
   Floating Elements
   ========================================================================== */
.floating-loan-calculator {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: linear-gradient(0deg, var(--color-primary) 0%, var(--color-primary-highlight) var(--color-primary-stop, 100%));
  color: var(--color-primary-text);
  padding: 25px 12px;
  border-radius: 0 18px;
  z-index: 9999;
  text-decoration: none;
  box-shadow: -4px 0px 20px rgba(0, 0, 0, 0.2);
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.floating-loan-calculator span {
  font-family: var(--font-secondary);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}
.floating-loan-calculator:hover {
  background: linear-gradient(0deg, #b08d4a 0%, #e3d091 100%);
}

/* ==========================================================================
   Elementor Container Compatibility Fix (Bulletproof Full-Width)
   ========================================================================== */
/* 1. Force the widget wrapper to be 100vw and breakout of any container */
.pkns-smart-living-wrapper,
.pkns-features-grid-wrapper,
.pkns-units-widget-section,
.pkns-hero-section,
.pkns-location-hub-section,
.pkns-gallery-wrapper,
.pkns-awards-section,
.pkns-register-interest-wrapper {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  left: 0 !important;
  flex-shrink: 0 !important;
}

.e-con:has(.pkns-smart-living-wrapper),
.e-con:has(.pkns-features-grid-wrapper),
.e-con:has(.pkns-units-widget-section),
.e-con:has(.pkns-hero-section),
.e-con:has(.pkns-location-hub-section),
.e-con:has(.pkns-gallery-wrapper),
.e-con:has(.pkns-awards-section),
.e-con:has(.pkns-register-interest-wrapper) {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin-top: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  /* Allow margin-bottom so GSAP can use pinSpacing: "margin" */
  gap: 0 !important;
  --flex-direction: column !important; /* Force column so widgets span full width */
  overflow: visible !important;
  transition: none !important; /* Prevent CSS transitions from conflicting with GSAP pinning layout calculations */
}

/* 2.5 Strip padding from inner containers (.e-con-inner) */
.e-con-inner:has(.pkns-smart-living-wrapper),
.e-con-inner:has(.pkns-features-grid-wrapper),
.e-con-inner:has(.pkns-units-widget-section),
.e-con-inner:has(.pkns-hero-section),
.e-con-inner:has(.pkns-location-hub-section),
.e-con-inner:has(.pkns-gallery-wrapper),
.e-con-inner:has(.pkns-awards-section),
.e-con-inner:has(.pkns-register-interest-wrapper) {
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  --flex-direction: column !important;
}

/* 3. Strip padding from the widget container itself */
.elementor-widget-container:has(.pkns-smart-living-wrapper),
.elementor-widget-container:has(.pkns-features-grid-wrapper),
.elementor-widget-container:has(.pkns-units-widget-section),
.elementor-widget-container:has(.pkns-hero-section),
.elementor-widget-container:has(.pkns-location-hub-section),
.elementor-widget-container:has(.pkns-gallery-wrapper),
.elementor-widget-container:has(.pkns-awards-section),
.elementor-widget-container:has(.pkns-register-interest-wrapper) {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* 4. Strip Elementor's default widget margin-bottom from the OUTER widget wrapper to prevent horizontal gaps */
.elementor-widget:has(.pkns-smart-living-wrapper),
.elementor-widget:has(.pkns-features-grid-wrapper),
.elementor-widget:has(.pkns-units-widget-section),
.elementor-widget:has(.pkns-hero-section),
.elementor-widget:has(.pkns-location-hub-section),
.elementor-widget:has(.pkns-gallery-wrapper),
.elementor-widget:has(.pkns-awards-section),
.elementor-widget:has(.pkns-register-interest-wrapper) {
  margin-bottom: 0 !important;
}

/* ==========================================================================
   Elementor Lightbox Z-Index Fix
   ========================================================================== */
#elementor-lightbox,
.elementor-lightbox,
.dialog-widget.dialog-lightbox-widget,
.e-lightbox,
.dialog-type-lightbox,
.dialog-widget,
.dialog-widget-overlay,
.elementor-lightbox-overlay,
.e-lightbox__backdrop,
dialog::backdrop {
  z-index: 2147483647 !important;
}

/* ==========================================================================
   Elementor Lightbox Header Fix
   ========================================================================== */
.elementor-slideshow__header {
  box-sizing: border-box !important;
  padding-right: 50px !important;
}

.site-header {
  width: 100%;
  z-index: 999;
  transition: background-color 0.4s ease, box-shadow 0.4s ease, opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
  position: absolute;
  top: 0;
  left: 0;
}
.site-header.is-sticky-enabled {
  position: fixed;
}
.site-header:not(.scrolled) {
  background-color: transparent;
  box-shadow: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-100%);
  pointer-events: none;
}
.site-header.scrolled {
  background-color: var(--header-bg-color, var(--color-secondary));
  box-shadow: none;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
@media (min-width: 1025px) {
  .site-header.scrolled .header-inner {
    padding: 12px 40px;
  }
}
.site-header::before {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  z-index: -1;
  opacity: 0;
  visibility: hidden;
  transition: all 0.4s ease;
  backdrop-filter: blur(4px);
}
.site-header.menu-is-open {
  background-color: var(--header-bg-color, var(--color-secondary)) !important;
}
.site-header.menu-is-open::before {
  opacity: 1;
  visibility: visible;
}

.admin-bar .site-header {
  top: 32px;
}

@media screen and (max-width: 782px) {
  .admin-bar .site-header {
    top: 46px;
  }
}
.header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  position: relative;
  z-index: 10;
  max-width: 100%;
  margin: 0 auto;
  transition: padding 0.3s ease;
}
@media (min-width: 1025px) {
  .header-inner {
    padding: 20px 40px;
  }
}

.site-branding .custom-logo {
  max-height: 30px;
  width: auto;
  display: block;
}
@media (min-width: 1025px) {
  .site-branding .custom-logo {
    max-height: 45px;
  }
}
.site-branding .site-title {
  margin: 0;
  color: var(--color-accent);
  font-size: 24px;
}

.menu-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 24px;
  height: 24px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 999;
}
.menu-toggle .bar {
  display: block;
  width: 100%;
  height: 2px;
  background-color: var(--color-white, #fff);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 2px;
}
.menu-toggle[aria-expanded=true] .bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.menu-toggle[aria-expanded=true] .bar:nth-child(2) {
  opacity: 0;
}
.menu-toggle[aria-expanded=true] .bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
@media (min-width: 1025px) {
  .menu-toggle {
    display: none;
  }
}

.main-navigation {
  margin-right: 0;
}
@media (min-width: 1025px) {
  .main-navigation {
    margin-left: auto;
    margin-right: 35px;
  }
}
.main-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  z-index: 10;
  max-height: calc(100vh - 75px);
  overflow-y: auto;
  box-sizing: border-box;
  background: var(--header-bg-color, var(--color-secondary));
  flex-direction: column;
  padding: 20px;
  gap: 15px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-15px);
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.main-navigation ul.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
@media (min-width: 768px) {
  .main-navigation ul {
    left: auto;
    right: 0;
    width: 40%;
    height: calc(100vh - 75px);
    max-height: none;
  }
}
@media (min-width: 1025px) {
  .main-navigation ul {
    display: flex;
    position: static;
    flex-direction: row;
    width: auto;
    height: auto;
    max-height: none;
    overflow-y: visible;
    background: transparent;
    padding: 0;
    gap: 35px;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
  }
}
.main-navigation li {
  width: 100%;
  text-align: center;
}
@media (min-width: 768px) {
  .main-navigation li {
    text-align: left;
  }
}
@media (min-width: 1025px) {
  .main-navigation li {
    width: auto;
    text-align: left;
  }
}
.main-navigation li a {
  color: var(--header-text-color, var(--color-accent));
  text-decoration: none;
  font-family: var(--font-secondary);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  transition: color 0.3s ease;
  -webkit-tap-highlight-color: transparent;
  padding: 10px;
  display: inline-block;
  font-size: 14px;
}
.main-navigation li a:hover {
  color: var(--color-primary);
}
@media (min-width: 1025px) {
  .main-navigation li a {
    font-size: 12px;
    padding: 0;
  }
}
@media (min-width: 1025px) {
  .main-navigation li.current-menu-item > a {
    color: var(--color-primary);
  }
}
@media (min-width: 1025px) {
  .main-navigation li.menu-btn-gold {
    margin-left: 15px;
  }
  .main-navigation li.menu-btn-gold a {
    background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-highlight) 100%);
    color: #4a3100 !important;
    padding: 12px 24px;
    border-radius: 0 50px;
    transition: all 0.3s ease;
    display: inline-block;
  }
  .main-navigation li.menu-btn-gold a:hover {
    background: linear-gradient(90deg, #b08d4a 0%, #e3d091 100%);
  }
}
@media (min-width: 1025px) {
  .main-navigation li.menu-btn-text {
    margin-left: 15px;
  }
  .main-navigation li.menu-btn-text a {
    border-bottom: 1px solid transparent;
  }
  .main-navigation li.menu-btn-text a:hover {
    border-bottom: 1px solid var(--color-primary);
  }
}
.main-navigation li.menu-btn-gold, .main-navigation li.menu-btn-text {
  margin-left: 0;
}
.main-navigation li.mobile-only-ctas {
  padding-top: 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.main-navigation li.mobile-only-ctas a {
  width: 100% !important;
  box-sizing: border-box;
  text-align: center;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .main-navigation li.mobile-only-ctas a {
    margin: 0;
    max-width: 300px !important;
  }
}
.main-navigation li.mobile-only-ctas a.btn {
  padding: 12px 30px;
  font-size: 12px;
  border-radius: 0 18px;
  white-space: normal;
}
.main-navigation li.mobile-only-ctas a.image-only {
  padding: 0;
  background: transparent;
}
.main-navigation li.mobile-only-ctas a.image-only img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

@media (min-width: 1025px) {
  .mobile-only-ctas {
    display: none !important;
  }
}

.header-ctas {
  display: none;
}
@media (min-width: 1025px) {
  .header-ctas {
    display: flex;
    align-items: center;
    gap: 30px;
  }
}
.header-ctas .btn-text {
  color: var(--color-accent);
  text-decoration: none;
  font-family: var(--font-secondary);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 12px;
  transition: color 0.3s ease;
  border-bottom: 1px solid transparent;
}
.header-ctas .btn-text:hover {
  color: var(--color-primary);
  border-bottom: 1px solid var(--color-primary);
}
.header-ctas .btn {
  padding: 12px 24px;
  font-size: 12px;
}

.floating-loan-calculator {
  display: none;
}
@media (min-width: 1025px) {
  .floating-loan-calculator {
    display: block;
  }
}

/* Force the parent Elementor wrapper to have 0 padding */
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_footer),
.elementor-widget-pknsaphelia_footer {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.pkns-footer {
  background-color: var(--color-secondary);
  color: var(--color-accent);
  font-family: var(--font-secondary);
  padding: 3rem 0;
}
@media (min-width: 768px) {
  .pkns-footer {
    padding: 4rem 0;
  }
}
.pkns-footer .pkns-container {
  max-width: var(--container-max-width-xl);
  margin: 0 auto;
  padding: 0 20px;
}
.pkns-footer a {
  color: var(--color-accent);
  text-decoration: none;
  transition: color 0.3s ease;
}
.pkns-footer a:hover {
  color: var(--color-gold);
}
.pkns-footer .pkns-footer-divider {
  height: 1px;
  background-color: rgba(255, 255, 255, 0.2);
  margin: 30px 0;
}
.pkns-footer .pkns-footer-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 20px;
}
@media (min-width: 768px) {
  .pkns-footer .pkns-footer-top {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    text-align: left;
  }
}
.pkns-footer .pkns-footer-top .pkns-footer-logo img {
  max-width: 200px;
  height: auto;
}
@media (min-width: 768px) {
  .pkns-footer .pkns-footer-top .pkns-footer-logo img {
    max-width: 250px;
  }
}
.pkns-footer .pkns-footer-top .pkns-footer-nav .pkns-footer-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
}
@media (min-width: 768px) {
  .pkns-footer .pkns-footer-top .pkns-footer-nav .pkns-footer-menu {
    gap: 30px;
    justify-content: flex-end;
  }
}
.pkns-footer .pkns-footer-top .pkns-footer-nav .pkns-footer-menu li a {
  font-family: var(--font-secondary);
  font-size: 0.875rem;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.pkns-footer .pkns-footer-middle {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}
@media (min-width: 768px) {
  .pkns-footer .pkns-footer-middle {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    text-align: left;
    gap: 20px;
  }
}
.pkns-footer .pkns-footer-middle .pkns-footer-copyright p {
  margin: 0;
  font-size: 0.875rem;
  opacity: 0.8;
  font-family: var(--font-secondary);
}
.pkns-footer .pkns-footer-middle .pkns-footer-policy-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
@media (min-width: 768px) {
  .pkns-footer .pkns-footer-middle .pkns-footer-policy-links {
    gap: 15px;
    justify-content: flex-end;
  }
}
.pkns-footer .pkns-footer-middle .pkns-footer-policy-links li a {
  font-size: 0.875rem;
  opacity: 0.8;
  text-decoration: underline;
}
.pkns-footer .pkns-footer-middle .pkns-footer-policy-links li a:hover {
  opacity: 1;
  color: var(--color-gold);
}
.pkns-footer .pkns-footer-bottom .pkns-footer-company {
  font-family: var(--font-secondary);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-gold);
  margin-bottom: 5px;
  margin-top: 0;
}
.pkns-footer .pkns-footer-bottom .pkns-footer-address {
  font-size: 0.625rem;
  opacity: 0.8;
  margin-bottom: 20px;
  line-height: 1.6;
  margin-top: 0;
}
.pkns-footer .pkns-footer-bottom .pkns-footer-disclaimer p {
  font-size: 0.625rem;
  line-height: 1.6;
  opacity: 0.6;
  margin-top: 0;
  margin-bottom: 15px;
  text-transform: uppercase;
}
.pkns-footer .pkns-footer-bottom .pkns-footer-disclaimer p:last-child {
  margin-bottom: 0;
}
.pkns-footer .pkns-footer-bottom .pkns-footer-disclaimer .pkns-footer-disclaimer-lower {
  text-transform: none;
}

/* ==========================================================================
   Features Grid Widget Styles
   ========================================================================== */
/* Force the parent Elementor column to have 0 padding, eliminating the default 10px gap */
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_features),
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_features_v2) {
  padding: 0 !important;
}

/* CRITICAL GSAP FIX: Elementor's default CSS transitions on sections conflict with GSAP's pin/unpin inline transform updates,
   causing a massive layout jump right when the widget unpins or repins. This strips those transitions. */
.elementor-section:has(.elementor-widget-pknsaphelia_features),
.elementor-section:has(.elementor-widget-pknsaphelia_features_v2),
.e-con:has(.elementor-widget-pknsaphelia_features),
.e-con:has(.elementor-widget-pknsaphelia_features_v2) {
  transition: none !important;
  transform-style: flat !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
}

/* MOBILE PIN FIX: Remove overflow:hidden from Elementor ancestor containers
   so GSAP's position:fixed pin can escape the ancestor chain on mobile. */
@media (max-width: 767px) {
  .elementor-section:has(.elementor-widget-pknsaphelia_features_v2),
  .e-con:has(.elementor-widget-pknsaphelia_features_v2),
  .elementor-column:has(.elementor-widget-pknsaphelia_features_v2),
  .elementor-widget-wrap:has(.pkns-features-grid-v2-wrapper),
  .elementor-widget-container:has(.pkns-features-grid-v2-wrapper) {
    overflow: visible !important;
  }
}
.elementor-widget-pknsaphelia_features,
.elementor-widget-pknsaphelia_features_v2 {
  width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  margin-bottom: 0 !important;
  margin-block-end: 0 !important;
  transition: none !important;
}

/* Force all internal Elementor wrappers to 0 padding/margin so they don't break the GSAP screen-fit math */
.elementor-widget-pknsaphelia_features,
.elementor-widget-pknsaphelia_features_v2,
.elementor-widget-wrap:has(.pkns-features-grid-wrapper),
.elementor-widget-container:has(.pkns-features-grid-wrapper),
.elementor-widget-wrap:has(.pkns-features-grid-v2-wrapper),
.elementor-widget-container:has(.pkns-features-grid-v2-wrapper) {
  padding: 0 !important;
  margin: 0 !important;
}

.elementor-widget-container:has(.pkns-features-grid-wrapper),
.elementor-widget-container:has(.pkns-features-grid-v2-wrapper) {
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
}

.pkns-features-grid-wrapper,
.pkns-features-grid-v2-wrapper {
  position: relative;
  width: 100%;
  transition: none !important;
  /* Overlay to smoothly blend any hard lines from the background image at the top */
}
.pkns-features-grid-wrapper::before,
.pkns-features-grid-v2-wrapper::before {
  content: "";
  position: absolute;
  top: -2px;
  left: 0;
  width: 100%;
  height: 350px;
  background: linear-gradient(to bottom, #1a1836 0%, #1a1836 30%, rgba(26, 24, 54, 0) 100%);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 30%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, black 30%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}

/* ==========================================================================
   Grid Layout — Mobile First
   ========================================================================== */
.pkns-custom-grid {
  width: 100%;
  margin: 0 auto;
  display: grid;
  overflow: hidden; /* Added here to prevent scrollbar/overflow issues without breaking wrapper's backdrop-filter */
  /* Add 1px padding to top and left to perfectly compensate for the -1px margin on the cells.
     This ensures the outermost borders are not pushed off the screen. */
  padding: 1px 0 0 1px;
  /* BASE (mobile): single column — all cells stack vertically */
  grid-template-columns: 1fr;
  /* TABLET+: 2-column layout */
}
@media (min-width: 768px) {
  .pkns-custom-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.pkns-custom-grid {
  /* LAPTOP+: restore the 3-column desktop layout from Figma */
}
@media (min-width: 1025px) {
  .pkns-custom-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: minmax(0, 1fr); /* Forces STRICT equal heights for all rows */
    /* Force the grid to fit exactly within the viewport while pinned. */
    height: var(--feature-grid-height, calc(100vh - 67px));
  }
  .pkns-custom-grid.pkns-custom-grid-v2 {
    position: relative; /* Anchor for global absolute borders */
    height: var(--feature-grid-v2-height, calc(100vh - 67px));
  }
}
.pkns-custom-grid {
  /* Global Borders Container for V2 */
}
.pkns-custom-grid .pkns-v2-global-borders {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 10;
}
.pkns-custom-grid .pkns-v2-global-borders .pkns-global-border-h,
.pkns-custom-grid .pkns-v2-global-borders .pkns-global-border-v {
  position: absolute;
  background-color: #fff;
}
.pkns-custom-grid .pkns-v2-global-borders .pkns-global-border-h {
  height: 1px;
  clip-path: inset(0% 0% 0% 100%);
}
.pkns-custom-grid .pkns-v2-global-borders .pkns-global-border-v {
  width: 1px;
  clip-path: inset(100% 0% 0% 0%);
}

/* ==========================================================================
   Grid Cell — Mobile First
   ========================================================================== */
.pkns-grid-cell {
  /* BASE (mobile): smaller padding */
  padding: 2.5rem 3rem;
  position: relative;
  z-index: 1;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* Aligns content to the top so icons and titles form a perfect horizontal line */
  /* 4-sided border creates a physical box */
  border: 1px solid #fff;
  /* Use negative margins to perfectly collapse overlapping borders in CSS Grid */
  margin-top: -1px;
  margin-left: -1px;
  transition: border-color 0.5s ease, background 0.3s ease;
}
.pkns-grid-cell .pkns-grid-cell-inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  height: 100%;
  width: 100%;
  opacity: 1; /* Default opacity */
  transition: opacity 0.3s ease;
}
.pkns-grid-cell .pkns-hover-image-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 10;
  /* Image link fills the full cell */
}
.pkns-grid-cell .pkns-hover-image-wrapper .pkns-hover-image-link {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden; /* Clip only the image, not the magnifier */
}
.pkns-grid-cell .pkns-hover-image-wrapper .pkns-hover-image-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.pkns-grid-cell .pkns-hover-image-wrapper .pkns-hover-image-link:hover img {
  transform: scale(1.05);
}
.pkns-grid-cell .pkns-hover-image-wrapper {
  /* Magnifier button is independently centered on the wrapper */
}
.pkns-grid-cell .pkns-hover-image-wrapper .pkns-magnifier-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 20; /* Above the image link */
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
}
.pkns-grid-cell .pkns-hover-image-wrapper .pkns-magnifier-icon {
  width: 52px;
  height: 52px;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  transition: background 0.3s ease;
}
.pkns-grid-cell .pkns-hover-image-wrapper .pkns-magnifier-icon svg {
  width: 22px;
  height: 22px;
  stroke: #fff !important;
  color: #fff !important;
  flex-shrink: 0;
}
.pkns-grid-cell .pkns-hover-image-wrapper .pkns-magnifier-icon:hover {
  background: rgba(255, 255, 255, 0.25);
}
.pkns-custom-grid-v2 .pkns-grid-cell {
  border: 1px solid transparent !important;
}
.pkns-custom-grid-v2 .pkns-grid-cell .pkns-grid-cell-inner {
  opacity: 0; /* Hidden by default until GSAP animation reveals them */
}
.pkns-custom-grid-v2 .pkns-grid-cell {
  /* Mobile: GSAP toggles this class via onEnter/onLeaveBack callbacks.
     The !important here wins the cascade over the transparent border above. */
}
.pkns-custom-grid-v2 .pkns-grid-cell.pkns-mobile-revealed {
  border-color: rgb(255, 255, 255) !important;
}
.pkns-grid-cell {
  /* TABLET+: intermediate padding */
}
@media (min-width: 768px) {
  .pkns-grid-cell {
    min-height: 200px;
  }
}
.pkns-grid-cell {
  /* LAPTOP+: full Figma desktop padding */
}
@media (min-width: 1025px) {
  .pkns-grid-cell {
    min-height: 0; /* Remove pixel min-height so grid-auto-rows can control it perfectly */
  }
}
.pkns-grid-cell {
  /* Invisible expanded background to cover adjacent white borders on hover without layout shifts */
}
.pkns-grid-cell::after {
  content: "";
  position: absolute;
  top: -1px;
  right: -1px;
  bottom: -1px;
  left: -1px;
  background: linear-gradient(90deg, #c39434 0%, #fef7c9 85%);
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}
.pkns-grid-cell.pkns-empty-cell {
  /* BASE (mobile): collapse completely — no height, no padding, no border.
     On single-column layout, empty spacer cells must not create blank gaps. */
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
  border-left: none !important;
  background-color: transparent !important;
  min-height: 0 !important;
  padding: 0 !important;
}
@media (max-width: 1024px) {
  .pkns-grid-cell.pkns-empty-cell {
    display: none !important; /* Completely remove from layout on single-column */
  }
}
.pkns-grid-cell.pkns-empty-cell {
  /* Completely hide stray empty cells at the end of the grid to prevent weird extra boxes */
}
.pkns-grid-cell.pkns-empty-cell:last-child {
  border: none !important;
}
.pkns-grid-cell.pkns-empty-cell:last-child::before {
  display: none !important;
}
.pkns-grid-cell:hover:not(.pkns-empty-cell) {
  border-color: transparent !important;
  background: transparent;
  z-index: 2;
}
.pkns-grid-cell:hover:not(.pkns-empty-cell) * {
  color: var(--color-secondary, #1a1a3a) !important;
}
.pkns-grid-cell:hover:not(.pkns-empty-cell)::after {
  opacity: 1;
}
.pkns-grid-cell {
  /* Hover states for the image feature */
}
.pkns-grid-cell:hover:has(.pkns-hover-image-wrapper) .pkns-grid-cell-inner {
  opacity: 0;
}
.pkns-grid-cell:hover:has(.pkns-hover-image-wrapper) .pkns-hover-image-wrapper {
  opacity: 1;
}
.pkns-grid-cell:hover:has(.pkns-hover-image-wrapper) {
  /* Force SVG magnifier icon white — overrides the generic :hover * { color } rule */
}
.pkns-grid-cell:hover:has(.pkns-hover-image-wrapper) .pkns-hover-image-wrapper .pkns-magnifier-icon svg {
  stroke: #fff !important;
  color: #fff !important;
}
.pkns-grid-cell:hover:has(.pkns-hover-image-wrapper) {
  /* Hide the background gradient if an image is shown to prevent mixed colours */
}
.pkns-grid-cell:hover:has(.pkns-hover-image-wrapper)::after {
  opacity: 0;
}
.pkns-grid-cell {
  /* Default text colors */
}
.pkns-grid-cell .pkns-feature-icon,
.pkns-grid-cell .pkns-feature-title,
.pkns-grid-cell .pkns-feature-desc {
  color: var(--color-accent, #ffffff);
  transition: color 0.3s ease;
}
.pkns-grid-cell {
  /* Dynamic Grid Placement Utilities */
}
@media (min-width: 768px) {
  .pkns-grid-cell {
    /* Tablet is 2-column, so col-span-2 or col-span-3 should span exactly 2 columns */
  }
  .pkns-grid-cell.col-span-2, .pkns-grid-cell.col-span-3 {
    grid-column: span 2;
  }
}
.pkns-grid-cell {
  /* LAPTOP+ (3-col grid) */
}
@media (min-width: 1025px) {
  .pkns-grid-cell.col-span-1 {
    grid-column: span 1;
  }
  .pkns-grid-cell.col-start-1 {
    grid-column-start: 1;
  }
  .pkns-grid-cell.col-span-2 {
    grid-column: span 2;
  }
  .pkns-grid-cell.col-start-2 {
    grid-column-start: 2;
  }
  .pkns-grid-cell.col-span-3 {
    grid-column: span 3;
  }
  .pkns-grid-cell.col-start-3 {
    grid-column-start: 3;
  }
}

/* ==========================================================================
   Feature Icon
   ========================================================================== */
.pkns-feature-icon {
  font-size: 24px;
  margin-bottom: 12px;
  line-height: 1;
  display: block;
}
@media (min-width: 768px) {
  .pkns-feature-icon {
    font-size: 26px;
    margin-bottom: 14px;
  }
}
@media (min-width: 1025px) {
  .pkns-feature-icon {
    font-size: 32px;
    margin-bottom: 20px;
  }
}
.pkns-feature-icon i {
  color: inherit;
  font-weight: 900; /* Font Awesome 5 Solid requires 900 weight */
}
.pkns-feature-icon svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
  display: block;
}

/* ==========================================================================
   Feature Typography
   ========================================================================== */
.pkns-feature-title,
.pkns-feature-desc {
  font-family: var(--font-secondary, "Inter", sans-serif);
  line-height: 1.4;
  margin: 0 !important;
  font-size: 15px;
  font-weight: 400;
  opacity: 0.8;
}

/* ==========================================================================
   Heading Cell — Mobile First
   ========================================================================== */
.pkns-grid-heading-cell {
  /* BASE (mobile & tablet): always span 100% of the grid columns */
  grid-column: 1/-1;
  padding: 2rem 1.25rem;
  border-right: none;
  border-bottom: none;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  /* Fix ugly paragraph gaps caused by Elementor editor <p> tags */
}
.pkns-grid-heading-cell p {
  margin: 0 0 12px 0;
}
.pkns-grid-heading-cell p:last-child {
  margin-bottom: 0;
}
.pkns-grid-heading-cell {
  /* TABLET+: slightly more breathing room */
}
@media (min-width: 768px) {
  .pkns-grid-heading-cell {
    padding: 2.5rem 1.75rem;
  }
}
.pkns-grid-heading-cell {
  /* LAPTOP+: restore 2-column span out of 3-column layout */
}
@media (min-width: 1025px) {
  .pkns-grid-heading-cell {
    grid-column: span 2;
    padding: 2rem;
    border-right: none !important;
    border-bottom: none !important;
  }
}

/* ==========================================================================
   Heading Statement Typography — Mobile First
   ========================================================================== */
.pkns-statement h2 {
  font-weight: normal;
  line-height: 1.2;
  margin: 0 0 0.5rem 0;
}
.pkns-statement h2:last-child {
  margin-bottom: 0;
}
.pkns-statement .statement-gold {
  color: var(--primary-gold, #eedca8);
  font-family: var(--font-carien, "Carien", sans-serif);
  text-transform: uppercase;
  font-size: clamp(1.4rem, 5vw, 2.2rem);
}
@media (min-width: 768px) {
  .pkns-statement .statement-gold {
    font-size: clamp(1.6rem, 4vw, 2.2rem);
  }
}
@media (min-width: 1025px) {
  .pkns-statement .statement-gold {
    font-size: 2.2rem;
  }
}
.pkns-statement .statement-white,
.pkns-statement .statement-muted {
  color: var(--color-accent, #ffffff);
  font-family: var(--font-secondary, sans-serif);
  font-size: clamp(1.2rem, 4.5vw, 2rem);
}
@media (min-width: 768px) {
  .pkns-statement .statement-white,
  .pkns-statement .statement-muted {
    font-size: clamp(1.4rem, 3.5vw, 2rem);
  }
}
@media (min-width: 1025px) {
  .pkns-statement .statement-white,
  .pkns-statement .statement-muted {
    font-size: 2rem;
  }
}

/* Force the parent Elementor column to have 0 padding, eliminating the default 10px gap */
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_smart_living) {
  padding: 0 !important;
}

.pkns-smart-living-wrapper {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  padding: 60px 5%;
}
.pkns-smart-living-wrapper .pkns-cards-grid {
  position: relative;
  width: 100%;
  height: 75vh;
  max-width: 1400px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .pkns-smart-living-wrapper .pkns-cards-grid {
    height: 85vh;
  }
}
.pkns-smart-living-wrapper .pkns-card-item {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 20px;
  overflow: hidden;
  transform-style: preserve-3d; /* Preserve 3D for flip animation */
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.4); /* Shadow for 3D stacking depth */
}
.pkns-smart-living-wrapper .pkns-card-item .pkns-card-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  z-index: 1;
}
.pkns-smart-living-wrapper .pkns-card-item .pkns-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* Gradient coming from bottom-left to ensure text readability */
  background: linear-gradient(to top right, rgba(26, 26, 46, 0.85) 0%, rgba(26, 26, 46, 0.4) 40%, rgba(26, 26, 46, 0) 80%);
  z-index: 2;
}
.pkns-smart-living-wrapper .pkns-card-item .pkns-card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  /* Align content to the bottom-left */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  /* Inner padding to constrain content similar to container */
  padding: 80px 5%;
  margin: 0 auto;
  left: 50%;
  transform: translateX(-50%);
}
.pkns-smart-living-wrapper .pkns-card-item .pkns-card-content .pkns-card-title {
  font-family: var(--font-carien);
  font-size: clamp(2.5rem, 4vw, 4rem);
  color: var(--secondary-white, #fff);
  margin: 0 0 20px 0;
  line-height: 1.1;
  font-weight: 400;
  max-width: var(--container-max-width-sm);
}
.pkns-smart-living-wrapper .pkns-card-item:hover .pkns-card-bg {
  transform: scale(1.08);
}

/* ==========================================================================
   PIN FIX: Force Elementor ancestor containers to allow position:fixed pinning.
   Removes transforms, animations, and overflow restrictions across ALL breakpoints.
   This prevents the widget from scrolling under the header or collapsing.
   ========================================================================== */
.elementor-section:has(.elementor-widget-pknsaphelia_smart_living),
.e-con:has(.elementor-widget-pknsaphelia_smart_living),
.elementor-widget-wrap:has(.pkns-smart-living-wrapper),
.elementor-widget-container:has(.pkns-smart-living-wrapper) {
  transform: none !important;
  will-change: auto !important;
  animation: none !important;
  transition: none !important;
}

/* Prevent GSAP pin-spacers from collapsing in flex layouts */
.pin-spacer {
  flex-shrink: 0 !important;
}

/* ==========================================================================
   Location Hub Widget Styles
   ========================================================================== */
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_location_hub) {
  padding: 0 !important;
}

.pkns-location-hub-section {
  position: relative;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  min-height: 180vh; /* Increased height significantly */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* ============================================================
     Background Map Image & Scaler
     BASE (mobile/tablet): overflow-x scrollable for map panning.
     The map-scaler is wider than the viewport — users can pan.
     Markers are children of the scaler, so their % positions
     stay pixel-perfect relative to the image at all times.
     LAPTOP+: Revert to the original cover/clip behaviour.
     ============================================================ */
}
.pkns-location-hub-section .pkns-hub-map-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  /* BASE (mobile): scrollable panning container */
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch; /* Smooth momentum on iOS */
  display: flex;
  align-items: stretch; /* Stretch scaler to full height */
  justify-content: flex-start; /* Left-align so the scaler starts from the left */
  /* Hide the scrollbar visually but keep it functional */
}
.pkns-location-hub-section .pkns-hub-map-bg::-webkit-scrollbar {
  display: none;
}
.pkns-location-hub-section .pkns-hub-map-bg {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
@media (min-width: 1025px) {
  .pkns-location-hub-section .pkns-hub-map-bg {
    /* LAPTOP+: Restore original cover behaviour — no scrolling */
    overflow: hidden;
    align-items: center;
    justify-content: center;
  }
}
.pkns-location-hub-section .pkns-hub-map-bg .pkns-hub-map-scaler {
  position: relative;
  flex-shrink: 0;
  /* BASE (mobile/tablet): Force the scaler to be wider than the viewport
     so there is content to pan to. The aspect-ratio is injected inline via PHP.
     We use min-height: 100% to ensure it fills the container vertically.
     The width is set to auto driven by aspect-ratio + height, but we enforce
     a minimum width so the map is always wider than the screen. */
  height: 100%;
  width: auto;
  /* By using aspect-ratio (set inline) + height: 100%, the width is
     calculated automatically. On mobile this makes the map taller-than-wide
     images expand correctly. We enforce a min-width so panning is possible. */
  min-width: 150vw;
  min-height: 100%;
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-map-bg .pkns-hub-map-scaler {
    min-width: 130vw; /* Slightly less expansion on tablet */
  }
}
@media (min-width: 1025px) {
  .pkns-location-hub-section .pkns-hub-map-bg .pkns-hub-map-scaler {
    /* LAPTOP+: Restore original behaviour */
    min-width: 100%;
    min-height: 100%;
    height: auto;
    width: auto;
  }
}
.pkns-location-hub-section .pkns-hub-map-bg .pkns-hub-map-scaler img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* Fallback, but the container is already perfectly proportioned */
  display: block;
  pointer-events: none;
}
.pkns-location-hub-section .pkns-hub-map-bg .pkns-hub-map-scaler .pkns-hub-map-placeholder {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #1a1836;
  color: #666;
  font-family: var(--font-secondary, "Inter", sans-serif);
  font-size: 1.5rem;
}
.pkns-location-hub-section {
  /* Content Overlay */
}
.pkns-location-hub-section .pkns-hub-content-wrapper {
  position: relative;
  z-index: 1;
  width: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 80px 5% 60px 5%; /* Mobile default padding */
  pointer-events: none; /* Let clicks pass through to markers */
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-content-wrapper {
    padding: 100px 5% 60px 5%;
  }
}
@media (min-width: 1025px) {
  .pkns-location-hub-section .pkns-hub-content-wrapper {
    padding: 140px 5% 80px 5%;
  }
}
.pkns-location-hub-section .pkns-hub-content-wrapper {
  /* Ensure the wrapper takes up the full height */
  min-height: inherit;
}
.pkns-location-hub-section .pkns-hub-header,
.pkns-location-hub-section .pkns-hub-actions {
  pointer-events: auto; /* Re-enable clicks for text and buttons */
}
.pkns-location-hub-section .pkns-hub-header {
  text-align: center;
  max-width: 900px;
  margin: 0 auto 20px auto;
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-header {
    margin: 0 auto 50px auto;
  }
}
.pkns-location-hub-section .pkns-hub-subtitle {
  font-family: var(--font-secondary, "Inter", sans-serif);
  font-size: 1.5rem;
  font-weight: 300;
  margin-bottom: 5px;
  color: var(--secondary-white, #fff);
}
.pkns-location-hub-section .pkns-hub-title {
  font-family: var(--font-carien, "Carien", serif);
  font-size: clamp(2.5rem, 4vw, 4rem);
  color: var(--primary-gold, #eedca8);
  margin-top: 0;
  margin-bottom: 20px;
  font-weight: normal;
  line-height: 1.2;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); /* Subtle shadow for readability against sky */
}
.pkns-location-hub-section .pkns-hub-description {
  font-family: var(--font-secondary, "Inter", sans-serif);
  font-size: 1.1rem;
  line-height: 1.6;
  max-width: 700px;
  margin: 0 auto;
  color: var(--secondary-white, #fff);
  opacity: 0.95;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
  display: block;
}
.pkns-location-hub-section {
  /* ============================================================
     Actions / Button Group
     BASE (mobile/tablet): Single horizontal scrollable row.
     Users can swipe left/right to see all filter buttons.
     LAPTOP+: Restore original wrapping flex behaviour.
     ============================================================ */
}
.pkns-location-hub-section .pkns-hub-actions {
  width: 100%;
  margin: 0 auto 40px;
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding-left: 5vw;
  padding-right: 5vw;
  position: relative;
  z-index: 50;
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-actions {
    /* Keep horizontal scrolling for tablet */
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .pkns-location-hub-section .pkns-hub-actions::-webkit-scrollbar {
    display: none;
  }
  .pkns-location-hub-section .pkns-hub-actions {
    scrollbar-width: none;
    -ms-overflow-style: none;
    /* Elegant fade */
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5vw, black calc(100% - 5vw), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 5vw, black calc(100% - 5vw), transparent 100%);
  }
}
@media (min-width: 1025px) {
  .pkns-location-hub-section .pkns-hub-actions {
    max-width: 1400px;
    padding-left: 0;
    padding-right: 0;
    flex-wrap: wrap;
    justify-content: center;
    overflow-x: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }
}
.pkns-location-hub-section .pkns-hub-mobile-filter-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 160px;
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-mobile-filter-trigger {
    display: none;
  }
}
.pkns-location-hub-section .pkns-hub-filters {
  /* Mobile Modal Styles */
  position: fixed;
  bottom: -100%;
  left: 0;
  width: 100%;
  background: #1b2b4c; /* Theme dark blue */
  padding: 30px 20px 40px;
  border-radius: 30px 30px 0 0;
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  gap: 15px;
  z-index: 1000;
  transition: bottom 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.pkns-location-hub-section .pkns-hub-filters.is-open {
  bottom: 0;
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-filters {
    /* Restore Desktop inline behavior */
    position: static;
    background: transparent;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
    display: flex; /* Fixes GSAP fade-up-stagger bug */
    flex-direction: row; /* CRITICAL: Override mobile column */
    flex-wrap: nowrap; /* Keep on one line for tablet scrolling */
    width: max-content; /* Allow container to grow for scrolling */
    align-items: center;
    justify-content: flex-start;
    gap: 15px;
    transition: none;
    z-index: auto;
  }
}
@media (min-width: 1025px) {
  .pkns-location-hub-section .pkns-hub-filters {
    width: 100%; /* Restore full width so centering works */
    flex-wrap: wrap;
    justify-content: center;
  }
}
.pkns-location-hub-section .pkns-hub-filters-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.pkns-location-hub-section .pkns-hub-filters-modal-header h4 {
  color: var(--primary-gold, #cfb160);
  font-family: var(--font-secondary, "Inter", sans-serif);
  margin: 0;
  font-size: 1.2rem;
  font-weight: 500;
}
.pkns-location-hub-section .pkns-hub-filters-modal-header .pkns-hub-filters-close {
  background: none;
  border: none;
  color: #fff;
  padding: 5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-filters-modal-header {
    display: none;
  }
}
.pkns-location-hub-section .pkns-hub-filter-btn {
  /* Prevent text from wrapping inside the button in the horizontal scroll row */
  white-space: nowrap;
  flex-shrink: 0;
}
.pkns-location-hub-section .pkns-hub-360-btn {
  /* BASE (mobile/tablet): NO backdrop-filter.
     backdrop-filter creates a compositing layer that escapes the parent's
     mask-image, breaking the right-edge fade. On mobile/tablet the mask
     is what matters — we sacrifice the blur for a correct fade. */
  backdrop-filter: none;
  flex-shrink: 0;
  white-space: nowrap;
}
@media (min-width: 1025px) {
  .pkns-location-hub-section .pkns-hub-360-btn {
    /* LAPTOP+: Restore blur — mask is removed at this breakpoint */
    backdrop-filter: blur(5px);
  }
}
.pkns-location-hub-section .pkns-hub-360-btn svg {
  width: 20px;
  height: 20px;
}
.pkns-location-hub-section {
  /* Markers Layer spans the entire wrapper for absolute positioning */
}
.pkns-location-hub-section .pkns-hub-markers-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* Let clicks pass through if needed, though buttons are above this layer's content */
  z-index: 2;
}
.pkns-location-hub-section .pkns-hub-marker {
  position: absolute;
  transform: translate(-50%, -100%);
  pointer-events: auto; /* Re-enable clicks on the markers themselves */
}
.pkns-location-hub-section .pkns-hub-marker-logo {
  transform: translate(-50%, -50%); /* Center the logo completely on its coordinates */
}
.pkns-location-hub-section .pkns-hub-marker-logo img {
  max-width: 120px; /* Mobile default */
  height: auto;
  filter: drop-shadow(0px 10px 20px rgba(0, 0, 0, 0.5));
}
@media (min-width: 768px) {
  .pkns-location-hub-section .pkns-hub-marker-logo img {
    max-width: 160px;
  }
}
@media (min-width: 1025px) {
  .pkns-location-hub-section .pkns-hub-marker-logo img {
    max-width: 200px;
  }
}
.pkns-location-hub-section .pkns-hub-marker-text {
  display: flex;
  pointer-events: auto;
  /* Base Pointer Styles */
}
.pkns-location-hub-section .pkns-hub-marker-text .pkns-hub-marker-pointer {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}
.pkns-location-hub-section .pkns-hub-marker-text .pkns-hub-marker-pointer::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.pkns-location-hub-section .pkns-hub-marker-text .pkns-hub-marker-pointer::after {
  content: "";
  width: 1px;
  height: 80px;
}
.pkns-location-hub-section .pkns-hub-marker-text {
  /* Base Content Styles */
}
.pkns-location-hub-section .pkns-hub-marker-text .pkns-hub-marker-content {
  display: flex;
  flex-direction: column;
}
.pkns-location-hub-section .pkns-hub-marker-text .pkns-hub-marker-content .pkns-hub-marker-title {
  font-family: var(--font-carien, "Carien", serif);
  font-size: 1.8rem;
  line-height: 1.1;
  white-space: nowrap;
}
.pkns-location-hub-section .pkns-hub-marker-text .pkns-hub-marker-content .pkns-hub-marker-distance {
  font-family: var(--font-secondary, "Inter", sans-serif);
  font-size: 1.1rem;
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 4px;
  white-space: nowrap;
}
.pkns-location-hub-section .pkns-hub-marker-text {
  /* Colors */
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-white .pkns-hub-marker-content {
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.6);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-white .pkns-hub-marker-title,
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-white .pkns-hub-marker-distance {
  color: #000;
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-white .pkns-hub-marker-pointer::before {
  background-color: var(--secondary-white, #fff);
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.8);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-white .pkns-hub-marker-pointer::after {
  background-color: rgba(255, 255, 255, 0.8);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-gold .pkns-hub-marker-content {
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-gold .pkns-hub-marker-title,
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-gold .pkns-hub-marker-distance {
  color: var(--primary-gold, #cfb160);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-gold .pkns-hub-marker-pointer::before {
  background-color: var(--primary-gold, #cfb160);
  box-shadow: 0 0 10px rgba(207, 177, 96, 0.8);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-color-gold .pkns-hub-marker-pointer::after {
  background-color: rgba(207, 177, 96, 0.8);
}
.pkns-location-hub-section .pkns-hub-marker-text {
  /* Positions */
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-right {
  flex-direction: row;
  align-items: flex-start;
  transform: translate(-4px, -4px);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-right .pkns-hub-marker-pointer {
  margin-right: 15px;
  flex-direction: column; /* dot on top, line down */
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-right .pkns-hub-marker-content {
  align-items: flex-start;
  text-align: left;
  margin-top: -6px;
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-left {
  flex-direction: row-reverse;
  align-items: flex-start;
  transform: translate(calc(-100% + 4px), -4px);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-left .pkns-hub-marker-pointer {
  margin-left: 15px;
  flex-direction: column; /* dot on top, line down */
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-left .pkns-hub-marker-content {
  align-items: flex-end;
  text-align: right;
  margin-top: -6px;
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-top {
  flex-direction: column-reverse;
  align-items: center;
  transform: translate(-50%, calc(-100% + 4px));
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-top .pkns-hub-marker-pointer {
  margin-top: 10px;
  flex-direction: column-reverse; /* dot on bottom, line up */
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-top .pkns-hub-marker-content {
  align-items: center;
  text-align: center;
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-bottom {
  flex-direction: column;
  align-items: center;
  transform: translate(-50%, -4px);
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-bottom .pkns-hub-marker-pointer {
  margin-bottom: 10px;
  flex-direction: column; /* dot on top, line down */
}
.pkns-location-hub-section .pkns-hub-marker-text.pkns-marker-pos-bottom .pkns-hub-marker-content {
  align-items: center;
  text-align: center;
}
.pkns-location-hub-section {
  /* Aerial View Modal */
}
.pkns-location-hub-section .pkns-aerial-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
.pkns-location-hub-section .pkns-aerial-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(10, 15, 30, 0.9);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-content {
  position: relative;
  width: 95%;
  max-width: 1600px;
  height: 90vh;
  background: #000;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  z-index: 1;
  transform: scale(0.95) translateY(20px);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.is-open .pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-content {
  transform: scale(1) translateY(0);
}
.pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-close {
  position: absolute;
  top: 15px;
  right: 15px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  transition: all 0.3s ease;
  backdrop-filter: blur(5px);
}
.pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-close:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: rotate(90deg);
}
.pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  border: 3px solid rgba(255, 255, 255, 0.2);
  border-top-color: #cfb160;
  border-radius: 50%;
  animation: aerial-spin 1s linear infinite;
  z-index: 0;
}
.pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-iframe {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.5s ease;
}
.pkns-location-hub-section .pkns-aerial-modal .pkns-aerial-modal-iframe.is-loaded {
  opacity: 1;
}

@keyframes aerial-spin {
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.elementor-widget-pknsaphelia_units {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
}

.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_units) {
  padding: 0 !important;
}

.pkns-units-widget-section {
  padding: 100px 0;
  position: relative;
  overflow: hidden;
  width: 100%;
}

.pkns-units-container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.pkns-units-header {
  text-align: center;
  margin-bottom: 60px;
  z-index: 2;
  width: 100%;
  max-width: var(--container-max-width-sm);
}
.pkns-units-header .pkns-units-subtitle {
  color: var(--primary-gold, #c6a87c);
  font-size: 0.75rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 15px;
}
.pkns-units-header .pkns-units-title {
  font-family: var(--font-carien);
  font-weight: 400;
  font-size: clamp(2.5rem, 4vw, 4rem);
  line-height: 1.1;
  margin-bottom: 20px;
}
.pkns-units-header .pkns-units-title .color-white {
  color: var(--color-accent);
  display: block;
}
.pkns-units-header .pkns-units-title .color-gold {
  color: var(--primary-gold, #c6a87c);
  display: block;
}
.pkns-units-header .pkns-units-desc {
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-accent);
  opacity: 0.8;
  margin-bottom: 0;
}

.pkns-units-carousel {
  box-sizing: border-box;
  width: 100%;
  max-width: 1400px; /* Standardized width across widgets */
  min-height: 550px;
  margin: 0 auto;
  padding: 0;
}

.swiper-slide.pkns-unit-card {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  background-color: var(--secondary-navy, #11182b);
  display: flex;
  height: auto;
  transition: width 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  width: 100%;
  min-height: 550px;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .swiper-slide.pkns-unit-card {
    width: 248px;
  }
  .swiper-slide.pkns-unit-card.pkns-expanded {
    width: 500px;
  }
}
@media (min-width: 1025px) {
  .swiper-slide.pkns-unit-card {
    width: 306px;
  }
  .swiper-slide.pkns-unit-card.pkns-expanded {
    width: 726px;
  }
}
.swiper-slide.pkns-unit-card::after {
  display: none !important;
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 100%);
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.4s ease;
  z-index: 1;
}
.swiper-slide.pkns-unit-card .pkns-unit-image-wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.swiper-slide.pkns-unit-card .pkns-unit-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.swiper-slide.pkns-unit-card .pkns-unit-tab-title {
  display: none !important;
  position: absolute;
  bottom: 30px;
  left: 0;
  right: 0;
  text-align: center;
  z-index: 2;
  transition: opacity 0.3s ease;
}
.swiper-slide.pkns-unit-card .pkns-unit-tab-title h4 {
  font-size: 1.5rem;
  margin: 0;
  transition: color 0.3s ease;
}
.swiper-slide.pkns-unit-card:not(.pkns-expanded):hover .pkns-unit-image-wrapper img {
  transform: scale(1.05);
}
.swiper-slide.pkns-unit-card:not(.pkns-expanded):hover::after {
  display: none !important;
  opacity: 0.8;
}
.swiper-slide.pkns-unit-card:not(.pkns-expanded):hover .pkns-unit-tab-title h4 {
  color: var(--color-primary);
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  z-index: 3;
  width: 100%;
  max-width: 420px;
  background-color: var(--secondary-navy, #0f1629);
  padding: 30px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transform: translateX(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  border-radius: 0;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .swiper-slide.pkns-unit-card .pkns-unit-details-box {
    max-width: 250px;
    padding: 20px 25px;
  }
}
@media (max-width: 767px) {
  .swiper-slide.pkns-unit-card .pkns-unit-details-box {
    max-width: 100%;
    border-radius: 0 0 12px 12px;
    transform: translateY(20px);
    left: 0;
    background: rgba(15, 22, 41, 0.95);
    backdrop-filter: blur(10px);
    padding: 40px 30px;
  }
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-name {
  font-family: var(--font-carien);
  font-weight: 400;
  font-size: 2.8rem;
  margin-top: 0;
  margin-bottom: 5px;
  color: var(--color-accent) !important;
  line-height: 1.1;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-subtitle {
  font-size: 0.85rem;
  letter-spacing: 2px;
  margin-top: 0;
  margin-bottom: 20px;
  text-transform: uppercase;
  color: var(--primary-gold, #c6a87c) !important;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-specs {
  list-style: none;
  padding: 0;
  margin: 0 0 25px 0;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-specs li {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.95rem;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-specs li .spec-label {
  letter-spacing: 2px;
  font-size: 0.8rem;
  opacity: 0.7;
  color: var(--color-accent) !important;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-specs li .spec-val {
  font-weight: 400;
  color: var(--color-accent) !important;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-price-box {
  margin-bottom: 20px;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-price-box .price-val {
  font-family: var(--font-carien);
  font-weight: 400;
  font-size: 2rem;
  margin-top: 0;
  margin-bottom: 5px;
  color: var(--primary-gold, #c6a87c) !important;
}
.swiper-slide.pkns-unit-card .pkns-unit-details-box .unit-price-box .price-note {
  font-size: 0.8rem;
  opacity: 0.5;
  margin: 0;
  color: var(--color-accent) !important;
}
.swiper-slide.pkns-unit-card.pkns-expanded {
  cursor: default;
}
@media (max-width: 767px) {
  .swiper-slide.pkns-unit-card.pkns-expanded {
    height: 650px;
  }
}
.swiper-slide.pkns-unit-card.pkns-expanded::after {
  display: none !important;
  opacity: 0;
}
.swiper-slide.pkns-unit-card.pkns-expanded .pkns-unit-tab-title {
  display: none !important;
  opacity: 0;
  pointer-events: none;
}
.swiper-slide.pkns-unit-card.pkns-expanded .pkns-unit-image-wrapper {
  position: absolute;
  left: 0;
  right: 420px;
  width: auto;
}
@media (min-width: 768px) and (max-width: 1024px) {
  .swiper-slide.pkns-unit-card.pkns-expanded .pkns-unit-image-wrapper {
    right: 250px;
  }
}
@media (max-width: 767px) {
  .swiper-slide.pkns-unit-card.pkns-expanded .pkns-unit-image-wrapper {
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    width: 100%;
    border-radius: 12px;
  }
}
.swiper-slide.pkns-unit-card.pkns-expanded .pkns-unit-details-box {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
  transition-delay: 0.3s;
}
@media (max-width: 767px) {
  .swiper-slide.pkns-unit-card.pkns-expanded .pkns-unit-details-box {
    transform: translateY(0);
    height: 100%;
    justify-content: flex-end;
    background: linear-gradient(to top, rgba(15, 22, 41, 0.95) 60%, transparent 100%);
  }
}

/* Force the parent Elementor column to have 0 padding, eliminating the default 10px gap */
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_gallery) {
  padding: 0 !important;
}

.pkns-gallery-wrapper {
  position: relative;
  width: 100%;
  padding: clamp(60px, 8vw, 120px) 20px;
  /* Make sure the widget uses Elementor's default background settings as requested */
  background-color: transparent;
}
.pkns-gallery-wrapper .pkns-gallery-container {
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: flex-start;
  max-width: 1400px;
  margin: 0 auto;
}
@media (min-width: 1025px) {
  .pkns-gallery-wrapper .pkns-gallery-container {
    flex-direction: row;
    gap: 60px;
  }
}
.pkns-gallery-wrapper .pkns-gallery-header {
  width: 100%;
}
@media (min-width: 1025px) {
  .pkns-gallery-wrapper .pkns-gallery-header {
    flex: 0 0 350px;
    position: sticky;
    top: 120px;
    width: auto;
  }
}
.pkns-gallery-wrapper .pkns-gallery-header .pkns-gallery-subtitle {
  display: block;
  font-family: var(--font-primary, sans-serif);
  font-size: 14px;
  color: var(--primary-gold, #c49a45);
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 20px;
}
.pkns-gallery-wrapper .pkns-gallery-header .pkns-gallery-title {
  font-family: var(--font-carien, serif);
  font-size: clamp(36px, 5vw, 64px);
  color: var(--color-brown);
  line-height: 1.1;
  margin: 0;
  font-weight: 300;
}
.pkns-gallery-wrapper .pkns-gallery-masonry {
  flex: 1;
  width: 100%;
  container-type: inline-size;
  display: grid;
  /* Robust fallback variables if Elementor settings aren't saved */
  --grid-cols: 12;
  --grid-gap: 8px;
  /* Mobile base: 8px gap */
  grid-template-columns: repeat(var(--grid-cols), 1fr);
  gap: var(--grid-gap);
  /* Tablet and Up: Override to 20px gap */
}
@media (min-width: 768px) {
  .pkns-gallery-wrapper .pkns-gallery-masonry {
    --grid-gap: 20px;
    gap: var(--grid-gap);
  }
}
.pkns-gallery-wrapper .pkns-gallery-masonry {
  /* Overwrite Elementor's saved Row Height completely. We will use the items themselves to define row height. */
  grid-auto-rows: auto !important;
}
.pkns-gallery-wrapper .pkns-gallery-masonry .pkns-gallery-item {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  /* Default fallbacks if Elementor controls haven't run */
  --col-span: 1;
  --row-span: 1;
  /* MATHEMATICALLY PERFECT SIZING (Even accounts for grid gaps!) 
     This forces the height of the item to precisely match a perfect square grid structure */
}
.pkns-gallery-wrapper .pkns-gallery-masonry .pkns-gallery-item::before {
  content: "";
  display: block;
  width: 100%;
  padding-bottom: calc(var(--row-span) * (100% - (var(--col-span) - 1) * var(--grid-gap)) / var(--col-span) + (var(--row-span) - 1) * var(--grid-gap));
}
.pkns-gallery-wrapper .pkns-gallery-masonry .pkns-gallery-item a {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.pkns-gallery-wrapper .pkns-gallery-masonry .pkns-gallery-item a::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.2);
  opacity: 0;
  transition: opacity 0.3s ease;
  z-index: 2;
}
.pkns-gallery-wrapper .pkns-gallery-masonry .pkns-gallery-item a:hover::after {
  opacity: 1;
}
.pkns-gallery-wrapper .pkns-gallery-masonry .pkns-gallery-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 12px;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.pkns-gallery-wrapper .pkns-gallery-masonry .pkns-gallery-item:hover img {
  transform: scale(1.05);
}

/* ==========================================================================
   Awards Widget Styles (Mobile-First Pattern)
   ========================================================================== */
.pkns-awards-wrapper {
  position: relative;
  width: 100%;
  /* Mobile base padding */
  padding: 2rem 1.5rem;
  overflow: hidden;
  min-height: calc(100vh - 60px);
  display: flex;
  align-items: center;
  /* Tablet override */
}
@media (min-width: 768px) {
  .pkns-awards-wrapper {
    padding: 3rem 2rem;
  }
}
.pkns-awards-wrapper {
  /* Desktop override */
}
@media (min-width: 1025px) {
  .pkns-awards-wrapper {
    padding: 6rem 8rem 4rem;
  }
}
.pkns-awards-wrapper .pkns-awards-inner {
  position: relative;
  max-width: var(--container-max-width-xl, 1400px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
@media (max-width: 767px) {
  .pkns-awards-wrapper .pkns-awards-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-items: center;
  }
}
.pkns-awards-wrapper {
  /* Heading Typography (Fluid via clamp) */
}
.pkns-awards-wrapper .pkns-awards-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 5;
  text-align: center;
}
@media (max-width: 767px) {
  .pkns-awards-wrapper .pkns-awards-heading {
    grid-column: span 2;
  }
}
.pkns-awards-wrapper .pkns-awards-heading .heading-line1 {
  font-family: var(--font-carien);
  color: var(--color-gold, #c0912f);
  font-size: clamp(2.5rem, 8vw, 120px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: 4px;
  margin-bottom: 0px;
}
.pkns-awards-wrapper .pkns-awards-heading .heading-line2 {
  font-family: var(--font-carien);
  color: var(--color-accent, #ffffff);
  font-size: clamp(2.5rem, 8vw, 120px);
  line-height: 1;
  font-weight: 400;
  letter-spacing: 2px;
}
.pkns-awards-wrapper {
  /* Content Wrapper */
}
.pkns-awards-wrapper .pkns-awards-content {
  width: 100%;
  position: relative;
  display: flex;
  justify-content: center;
  min-height: 250px;
  z-index: 5;
  /* Base: Mobile Stack */
  flex-direction: column;
  align-items: center;
}
@media (max-width: 767px) {
  .pkns-awards-wrapper .pkns-awards-content {
    grid-column: span 2;
  }
}
@media (min-width: 768px) {
  .pkns-awards-wrapper .pkns-awards-content {
    /* Tablet & Up: Horizontal Layout */
    flex-direction: row;
    align-items: flex-end;
  }
}
.pkns-awards-wrapper {
  /* Trophies */
}
.pkns-awards-wrapper .award-trophy {
  /* Base: Mobile relative stacking */
  position: relative;
  margin-bottom: 40px;
  z-index: 10;
  pointer-events: none;
  opacity: 0;
}
.pkns-awards-wrapper .award-trophy img {
  max-height: 150px;
  width: auto;
  object-fit: contain;
}
@media (max-width: 767px) {
  .pkns-awards-wrapper .award-trophy {
    margin-bottom: 20px;
  }
  .pkns-awards-wrapper .award-trophy.left-trophy {
    grid-column: 1;
    justify-self: center;
  }
  .pkns-awards-wrapper .award-trophy.right-trophy {
    grid-column: 2;
    justify-self: center;
  }
}
@media (min-width: 768px) {
  .pkns-awards-wrapper .award-trophy {
    /* Tablet: Absolute positioning with scaled down sizes */
    position: absolute;
    margin-bottom: 0;
    bottom: 0;
  }
  .pkns-awards-wrapper .award-trophy.left-trophy {
    left: 0;
    top: 5%;
  }
  .pkns-awards-wrapper .award-trophy.left-trophy img {
    max-height: 220px;
  }
  .pkns-awards-wrapper .award-trophy.right-trophy {
    right: 0;
    top: 5%;
  }
  .pkns-awards-wrapper .award-trophy.right-trophy img {
    max-height: 220px;
  }
}
@media (min-width: 1025px) {
  .pkns-awards-wrapper .award-trophy {
    /* Desktop: Absolute positioning with full sizes */
  }
  .pkns-awards-wrapper .award-trophy.left-trophy {
    left: 0px;
    top: -5%;
    /* Positioned slightly higher */
  }
  .pkns-awards-wrapper .award-trophy.left-trophy img {
    max-height: 450px;
  }
  .pkns-awards-wrapper .award-trophy.right-trophy {
    right: 0px;
    top: 23%;
  }
  .pkns-awards-wrapper .award-trophy.right-trophy img {
    max-height: 600px;
  }
}
.pkns-awards-wrapper {
  /* Center Logos Container */
}
.pkns-awards-wrapper .award-center-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  position: relative;
  padding-bottom: 40px;
  /* Base: Mobile Wrap */
  flex-wrap: wrap;
  gap: 40px;
}
@media (min-width: 768px) {
  .pkns-awards-wrapper .award-center-logos {
    flex-wrap: nowrap;
    gap: 15px;
  }
}
@media (min-width: 1025px) {
  .pkns-awards-wrapper .award-center-logos {
    gap: 40px;
  }
}
.pkns-awards-wrapper .award-center-logos .award-logo-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  opacity: 0;
}
.pkns-awards-wrapper .award-center-logos .award-logo-item img {
  max-height: 150px;
  object-fit: contain;
  height: auto;
  /* Mobile Base Width */
  max-width: 320px;
}
@media (min-width: 768px) {
  .pkns-awards-wrapper .award-center-logos .award-logo-item img {
    max-width: 150px;
  }
}
@media (min-width: 1025px) {
  .pkns-awards-wrapper .award-center-logos .award-logo-item img {
    max-width: 320px;
  }
}
.pkns-awards-wrapper .award-center-logos .award-logo-item.text-type {
  color: var(--color-accent, #ffffff);
}
.pkns-awards-wrapper .award-center-logos .award-logo-item.text-type .award-year {
  font-family: var(--font-secondary);
  font-size: 18px;
  letter-spacing: 2px;
  margin-bottom: 8px;
  opacity: 0.9;
}
.pkns-awards-wrapper .award-center-logos .award-logo-item.text-type .award-text {
  font-family: var(--font-secondary);
  font-weight: 500;
  max-width: 250px;
  line-height: 1.3;
  /* Mobile Base Size */
  font-size: 26px;
}
@media (min-width: 768px) {
  .pkns-awards-wrapper .award-center-logos .award-logo-item.text-type .award-text {
    font-size: 16px;
  }
}
@media (min-width: 1025px) {
  .pkns-awards-wrapper .award-center-logos .award-logo-item.text-type .award-text {
    font-size: 26px;
  }
}

/* ==========================================================================
   PIN FIX: Force Elementor ancestor containers to allow position:fixed pinning.
   Removes animations and transitions to prevent GSAP pinning jitter.
   CRITICAL: Do NOT use `transform: none !important` here because we pin the section itself.
   ========================================================================== */
.elementor-section:has(.elementor-widget-pknsaphelia_awards),
.e-con:has(.elementor-widget-pknsaphelia_awards),
.elementor-widget-wrap:has(.pkns-awards-wrapper),
.elementor-widget-container:has(.pkns-awards-wrapper) {
  will-change: auto !important;
  animation: none !important;
  transition: none !important;
  overflow: visible !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
}

/* Force the parent Elementor column to have 0 padding, eliminating the default 10px gap */
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia_register_interest) {
  padding: 0 !important;
}

.pkns-register-interest-wrapper {
  width: 100%;
  position: relative;
  z-index: 1;
  overflow: hidden;
  background-color: #e4e3de; /* Specific beige background from design */
  /* Mobile base padding — inner container handles layout centering */
  padding: 3rem 1.5rem;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper {
    padding: 3.5rem 2.5rem;
  }
}
@media (min-width: 1025px) {
  .pkns-register-interest-wrapper {
    padding: 4rem 8rem;
  }
}
.pkns-register-interest-wrapper {
  /* Glowing effect from design */
}
.pkns-register-interest-wrapper::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 800px;
  height: 800px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 70%);
  transform: translate(-30%, -50%);
  z-index: -1;
  pointer-events: none;
}
.pkns-register-interest-wrapper .pkns-register-interest-inner {
  max-width: var(--container-max-width-xl, 1400px);
  margin: 0 auto;
  display: grid;
  /* Mobile: single column */
  grid-template-columns: 1fr;
  gap: 40px;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper .pkns-register-interest-inner {
    gap: 50px;
  }
}
@media (min-width: 1025px) {
  .pkns-register-interest-wrapper .pkns-register-interest-inner {
    grid-template-columns: 1fr 1fr;
    gap: 80px;
  }
}
.pkns-register-interest-wrapper {
  /* ================= LEFT COLUMN ================= */
}
.pkns-register-interest-wrapper .pkns-ri-left-col {
  display: flex;
  flex-direction: column;
  justify-content: start;
  /* Mobile: compact gap between heading and contact info */
  gap: 2.5rem;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper .pkns-ri-left-col {
    gap: 4rem;
  }
}
@media (min-width: 1025px) {
  .pkns-register-interest-wrapper .pkns-ri-left-col {
    gap: 10rem;
  }
}
.pkns-register-interest-wrapper .pkns-ri-heading {
  font-size: clamp(2.5rem, 8vw, 5rem);
  font-family: var(--font-carien, "Carien", serif);
  color: var(--color-brown);
  line-height: 1.05;
  font-weight: 400;
  margin: 0;
  letter-spacing: 0.01em;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper .pkns-ri-heading {
    font-size: clamp(3rem, 6vw, 5rem);
  }
}
.pkns-register-interest-wrapper .pkns-ri-contact-info {
  display: flex;
  flex-direction: column;
  gap: 25px;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper .pkns-ri-contact-info {
    gap: 30px;
  }
}
@media (min-width: 1025px) {
  .pkns-register-interest-wrapper .pkns-ri-contact-info {
    gap: 35px;
  }
}
.pkns-register-interest-wrapper .pkns-ri-info-item {
  display: flex;
  flex-direction: column;
  /* Left Column (Label) */
}
.pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-label-col {
  display: flex;
  flex-direction: row;
  gap: 12px;
  margin-bottom: 0.8rem;
}
.pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-icon {
  color: var(--color-gold);
  flex-shrink: 0;
  width: 15px;
  display: flex;
  justify-content: flex-start;
}
.pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-icon svg {
  width: 100%;
  height: auto;
}
.pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-title {
  font-size: 1.05rem;
  font-weight: 400;
  margin: 0;
  letter-spacing: 0.03em;
  text-transform: none;
  line-height: 1.3;
}
.pkns-register-interest-wrapper .pkns-ri-info-item {
  /* Right Column (Values) */
}
.pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-value-col {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-value-col.pkns-is-phone {
  flex-direction: row;
  gap: 20px;
  flex-wrap: wrap;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-value-col.pkns-is-phone {
    gap: 30px;
  }
}
.pkns-register-interest-wrapper .pkns-ri-info-item .pkns-ri-desc {
  font-size: 0.95rem;
  line-height: 1.4;
  margin: 0;
  color: var(--color-primary-text);
  opacity: 0.6;
}
.pkns-register-interest-wrapper {
  /* ================= RIGHT COLUMN (FORM) ================= */
}
.pkns-register-interest-wrapper .pkns-ri-right-col {
  display: flex;
  align-items: center;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper {
  width: 100%;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 {
  width: 100%;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 form {
    gap: 22px;
  }
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 p {
  margin: 0;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 label {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: var(--color-gold);
  font-weight: 500;
  font-size: 0.9rem;
  font-family: var(--font-secondary);
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=text],
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=email],
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=tel],
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 select,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 textarea {
  width: 100%;
  background-color: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: 0 16px 0 16px;
  padding: 14px 18px;
  font-family: var(--font-secondary);
  font-size: 0.95rem;
  color: var(--color-secondary);
  transition: box-shadow 0.3s ease, background-color 0.3s ease;
}
@media (min-width: 768px) {
  .pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=text],
  .pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=email],
  .pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=tel],
  .pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 select,
  .pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 textarea {
    padding: 16px 20px;
  }
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=text]:focus,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=email]:focus,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=tel]:focus,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 select:focus,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 textarea:focus {
  outline: none;
  background-color: #fff;
  box-shadow: 0 0 0 1px var(--color-gold);
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=text]::placeholder,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=email]::placeholder,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=tel]::placeholder,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 select::placeholder,
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 textarea::placeholder {
  color: var(--color-brown-light);
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 select {
  appearance: none;
  -webkit-appearance: none;
  /* Elegant thin chevron SVG */
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2214%22%20height%3D%228%22%20viewBox%3D%220%200%2014%208%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M1%201L7%207L13%201%22%20stroke%3D%22%23c0912f%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 20px center;
  background-size: 14px;
  padding-right: 45px;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 textarea {
  resize: vertical;
  min-height: 130px;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 {
  /* Custom Checkbox Design */
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item {
  margin: 0;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item label {
  flex-direction: row;
  align-items: flex-start;
  color: var(--color-gold);
  font-size: 0.85rem;
  line-height: 1.5;
  cursor: pointer;
  font-weight: normal;
  /* Hide default, style custom */
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item label input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  background-color: #fff;
  width: 18px;
  height: 18px;
  border: none;
  margin-top: 2px;
  margin-right: 8px;
  position: relative;
  flex-shrink: 0;
  padding: 0;
  box-shadow: none;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item label input[type=checkbox]:checked {
  background-color: #fff;
  /* Draw custom checkmark */
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item label input[type=checkbox]:checked::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 6px;
  width: 5px;
  height: 10px;
  border: solid var(--color-gold);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item label span.wpcf7-list-item-label {
  display: inline-block;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item label a {
  color: var(--color-brown-light);
  text-decoration: underline;
  transition: color 0.3s ease;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-list-item label a:hover {
  color: var(--color-brown);
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 {
  /* Submit Button (Manually inheriting _buttons.scss to avoid CF7 class stripping issues) */
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=submit] {
  padding: 12px 30px;
  border-radius: 0 18px;
  font-family: var(--font-secondary);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  cursor: pointer;
  transition: all 0.3s ease;
  display: inline-block;
  border: none;
  background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-highlight) var(--color-primary-stop, 100%));
  color: var(--color-primary-text);
  margin-top: 15px;
  align-self: flex-start;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 input[type=submit]:hover {
  background: linear-gradient(90deg, #b08d4a 0%, #e3d091 100%);
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 {
  /* CF7 Validation messages */
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-not-valid-tip {
  font-size: 0.8rem;
  color: #d9534f;
  margin-top: 5px;
}
.pkns-register-interest-wrapper .pkns-ri-form-wrapper .wpcf7 .wpcf7-response-output {
  border-radius: 8px;
  font-size: 0.9rem;
  margin-top: 20px;
  margin-left: 0;
  margin-right: 0;
}

/* Force the parent Elementor wrapper to have 0 padding, ensuring compatibility with both Legacy Columns and modern Flexbox Containers */
.elementor-widget-wrap:has(.elementor-widget-pknsaphelia-hero-scroll),
.elementor-widget-pknsaphelia-hero-scroll {
  padding: 0 !important;
  margin: 0 !important;
}

.pkns-hero-scroll-wrapper {
  /* 100vw breakout logic for full-bleed */
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  /* Constrain to viewport height to eliminate empty space at the bottom */
  height: 100vh;
  overflow: hidden;
  position: relative;
  background-color: #1652b4; /* Default fallback */
  display: block;
  /* Extra height beyond 100vh — read by GSAP via getComputedStyle, change here only */
  --hero-scroll-extra-height: 0px;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper {
    --hero-scroll-extra-height: 10px; /* Tablet: adds height to show more building */
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper {
    --hero-scroll-extra-height: 120px; /* Reset to default for laptop+ */
  }
}
.pkns-hero-scroll-wrapper {
  /* Background Layer */
}
.pkns-hero-scroll-wrapper .hero-scroll-bg {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center top;
  z-index: 1;
  pointer-events: none;
  transform: scale(1.05); /* Protective scale to prevent edge gaps */
  transform-origin: center center;
}
.pkns-hero-scroll-wrapper {
  /* Cloud Track Layer (Infinite Marquee) */
}
.pkns-hero-scroll-wrapper .hero-scroll-cloud-track {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 300vw;
  height: 100vh;
  z-index: 1;
  opacity: 0; /* Hidden by default, fades in on scroll */
  pointer-events: none;
  transform-origin: left center;
}
.pkns-hero-scroll-wrapper .hero-scroll-cloud-img {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  object-position: center top;
  flex-shrink: 0;
}
.pkns-hero-scroll-wrapper .hero-scroll-cloud-img.flipped {
  transform: scaleX(-1);
}
.pkns-hero-scroll-wrapper {
  /* Ribbon Layer */
}
.pkns-hero-scroll-wrapper .hero-scroll-ribbon {
  position: absolute;
  top: 0;
  left: 0;
  width: 320px;
  height: auto;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-ribbon {
    display: none !important; /* Hidden on tablet — no target area for ribbon */
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-ribbon {
    display: block; /* Restored for desktop */
  }
}
.pkns-hero-scroll-wrapper {
  /* Large Circle Layer */
}
.pkns-hero-scroll-wrapper .hero-scroll-circle {
  position: absolute;
  z-index: 2;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  background: linear-gradient(202deg, #e4c0d2 0%, transparent 45%);
  /* Mobile base */
  width: 300px;
  height: 300px;
  top: 25%;
  right: calc((100% - 300px) / 2);
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-circle {
    width: 500px;
    height: 500px;
    top: 15%;
    right: calc((100% - 500px) / 2);
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-circle {
    width: 520px;
    height: 520px;
    top: 12%;
    right: 30%;
  }
}
.pkns-hero-scroll-wrapper .hero-scroll-circle {
  /* Elements inside the circle */
}
.pkns-hero-scroll-wrapper .hero-scroll-circle .hero-scroll-pkns {
  margin-top: 18%;
  max-width: 120px;
  margin-bottom: 20px;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-circle .hero-scroll-pkns {
    margin-top: 9%;
    max-width: 120px;
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-circle .hero-scroll-pkns {
    max-width: 150px;
    margin-bottom: 30px;
  }
}
.pkns-hero-scroll-wrapper .hero-scroll-circle .hero-scroll-aphelia {
  max-width: 250px;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-circle .hero-scroll-aphelia {
    max-width: 400px;
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-circle .hero-scroll-aphelia {
    max-width: 450px;
  }
}
.pkns-hero-scroll-wrapper {
  /* Foreground Building — flush to bottom, tall enough to show more of the building above */
}
.pkns-hero-scroll-wrapper .hero-scroll-building {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: bottom center;
  z-index: 3;
  /* Start zoomed in for the GSAP scrub */
  transform: scale(2);
  transform-origin: left center;
  pointer-events: none;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-building {
    transform: scale(1.4);
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-building {
    transform: scale(1.25);
  }
}
.pkns-hero-scroll-wrapper {
  /* Overlay Content (Fades in with GSAP) */
}
.pkns-hero-scroll-wrapper .hero-scroll-content {
  position: absolute;
  top: 42%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
  opacity: 0; /* Hidden initially */
  visibility: hidden; /* Automatically disables pointer events while hidden */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 92%;
  max-width: 800px;
  gap: 0.75rem;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-content {
    top: 38%;
    gap: 0.875rem;
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-content {
    top: 35%;
    gap: 1rem;
  }
}
.pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-headline {
  width: 100%;
  max-width: 90vw;
  height: auto;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-headline {
    max-width: 500px;
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-headline {
    max-width: 750px;
  }
}
.pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-desc {
  color: var(--color-white, #ffffff);
  font-family: var(--font-primary, sans-serif);
  font-size: 13px;
  line-height: 1.6;
}
.pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-desc p {
  margin: 0;
  padding: 0;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-desc {
    font-size: 14px;
    max-width: 520px;
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-desc {
    font-size: 16px;
    max-width: 580px;
  }
}
.pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  align-items: center;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-content .hero-scroll-actions {
    flex-direction: row;
    gap: 15px;
  }
}
.pkns-hero-scroll-wrapper {
  /* Bottom Gradient Blend Overlay */
}
.pkns-hero-scroll-wrapper .hero-scroll-bottom-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 5%;
  z-index: 10;
  pointer-events: none;
}
@media (min-width: 768px) {
  .pkns-hero-scroll-wrapper .hero-scroll-bottom-gradient {
    height: 15%;
  }
}
@media (min-width: 1025px) {
  .pkns-hero-scroll-wrapper .hero-scroll-bottom-gradient {
    height: 20%;
  }
}

.pkns-loan-calc-tab {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: linear-gradient(0deg, var(--color-primary) 0%, var(--color-primary-highlight) var(--color-primary-stop, 100%));
  color: var(--color-primary-text);
  padding: 25px 12px;
  border-radius: 0 18px;
  z-index: 9999;
  text-decoration: none;
  box-shadow: rgba(0, 0, 0, 0.2) -4px 0px 20px;
  transition: 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  user-select: none;
  border: none;
  outline: none;
}
.pkns-loan-calc-tab span {
  font-family: var(--font-secondary);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}
.pkns-loan-calc-tab:hover {
  background: linear-gradient(0deg, rgb(176, 141, 74) 0%, rgb(227, 208, 145) 100%);
}
@media screen and (max-width: 1024px) {
  .pkns-loan-calc-tab {
    display: none !important;
  }
}

.pkns-loan-calc-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.pkns-loan-calc-overlay.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.pkns-loan-calc-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: 420px;
  max-width: 100vw;
  height: 100vh;
  z-index: 9999;
  background: #d9d9d9;
  box-shadow: -8px 0 50px rgba(0, 0, 0, 0.25);
  overflow-y: auto;
  overflow-x: hidden;
  transform: translateX(100%);
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  display: flex;
  flex-direction: column;
  scrollbar-width: thin;
  scrollbar-color: #7b4e1b transparent;
}
.pkns-loan-calc-panel::-webkit-scrollbar {
  width: 4px;
}
.pkns-loan-calc-panel::-webkit-scrollbar-track {
  background: transparent;
}
.pkns-loan-calc-panel::-webkit-scrollbar-thumb {
  background: #7b4e1b;
  border-radius: 4px;
}
.pkns-loan-calc-panel::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("assets/images/Ellipse.png") no-repeat top left;
  background-size: contain;
  pointer-events: none;
  z-index: 0;
}
.pkns-loan-calc-panel .pkns-loan-panel-header,
.pkns-loan-calc-panel .pkns-loan-panel-body,
.pkns-loan-calc-panel .pkns-loan-result,
.pkns-loan-calc-panel .pkns-loan-panel-footer {
  position: relative;
  z-index: 1;
}
.pkns-loan-calc-panel.is-open {
  transform: translateX(0);
}
@media (max-width: 479px) {
  .pkns-loan-calc-panel {
    width: 100vw;
  }
}

.pkns-loan-panel-header {
  padding: 36px 32px 16px;
  position: relative;
  flex-shrink: 0;
}
.pkns-loan-panel-header .pkns-loan-panel-close {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 36px;
  height: 36px;
  border: none;
  background: rgba(0, 0, 0, 0.08);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background 0.2s ease, transform 0.2s ease;
}
.pkns-loan-panel-header .pkns-loan-panel-close:hover {
  background: rgba(0, 0, 0, 0.15);
  transform: rotate(90deg);
}
.pkns-loan-panel-header .pkns-loan-panel-close svg {
  width: 16px;
  height: 16px;
  stroke: var(--color-primary-text);
  stroke-width: 2;
  stroke-linecap: round;
}
.pkns-loan-panel-header .pkns-loan-panel-title {
  font-family: var(--font-carien, "Playfair Display", serif);
  font-weight: 400;
  font-size: 2.2rem;
  color: #7b4e1b;
  margin: 0 0 10px 0;
  line-height: 1.1;
}
.pkns-loan-panel-header .pkns-loan-panel-desc {
  font-family: var(--font-secondary);
  font-size: 0.88rem;
  color: var(--color-brown-light);
  line-height: 1.6;
  margin: 0;
}

.pkns-loan-panel-body {
  padding: 0 32px 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.pkns-loan-panel-body .pkns-loan-panel-subheading {
  font-family: var(--font-secondary);
  font-size: 1rem;
  font-weight: 700;
  color: #7b4e1b;
  margin: 0 0 16px 0;
}

.pkns-loan-field {
  padding: 0 0 1rem;
}
.pkns-loan-field:last-of-type {
  border-bottom: none;
}
.pkns-loan-field .pkns-loan-field-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.pkns-loan-field .pkns-loan-field-label-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pkns-loan-field .pkns-loan-field-label {
  font-family: var(--font-secondary);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-primary-text);
  margin: 0;
}
.pkns-loan-field .pkns-loan-field-unit {
  font-family: var(--font-secondary);
  font-size: 0.72rem;
  color: var(--color-brown-light);
  text-transform: uppercase;
  letter-spacing: 1px;
}
.pkns-loan-field .pkns-loan-field-value-box {
  display: flex;
  align-items: center;
  gap: 4px;
}
.pkns-loan-field .pkns-loan-field-value {
  font-family: var(--font-secondary);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-primary-text);
  text-align: right;
  min-width: 80px;
}
.pkns-loan-field .pkns-loan-stepper {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-left: 4px;
}
.pkns-loan-field .pkns-loan-stepper button {
  width: 24px;
  height: 12px;
  border: none;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--color-brown-light);
  transition: color 0.2s ease;
}
.pkns-loan-field .pkns-loan-stepper button:hover {
  color: #7b4e1b;
}
.pkns-loan-field .pkns-loan-stepper button svg {
  width: 14px;
  height: 14px;
}

.pkns-loan-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(to right, #7b4e1b 0%, #7b4e1b var(--slider-pct, 50%), rgba(123, 78, 27, 0.2) var(--slider-pct, 50%), rgba(123, 78, 27, 0.2) 100%);
  outline: none;
  cursor: pointer;
  transition: background 0.1s linear;
}
.pkns-loan-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  border: none;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(123, 78, 27, 0.4);
  transition: transform 0.15s ease;
}
.pkns-loan-slider::-webkit-slider-thumb:hover, .pkns-loan-slider::-webkit-slider-thumb:active {
  transform: scale(1.15);
}
.pkns-loan-slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  border: none;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(123, 78, 27, 0.4);
}

.pkns-loan-result {
  margin: 10px 32px 24px;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  flex-shrink: 0;
}
.pkns-loan-result .pkns-loan-result-label {
  font-family: var(--font-secondary);
  font-size: 0.95rem;
  font-weight: 700;
  color: #7b4e1b;
  margin: 0 0 10px 0;
  text-transform: none;
  letter-spacing: normal;
}
.pkns-loan-result .pkns-loan-result-amount {
  font-family: var(--font-carien, "Playfair Display", serif);
  font-weight: 400;
  font-size: 2.6rem;
  color: #7b4e1b;
  margin: 0 0 16px 0;
  line-height: 1;
}
.pkns-loan-result .pkns-loan-result-breakdown {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 14px;
  border-top: 1px solid rgba(123, 78, 27, 0.12);
}
.pkns-loan-result .pkns-loan-result-breakdown .pkns-loan-breakdown-label {
  font-family: var(--font-secondary);
  font-size: 0.85rem;
  font-weight: 700;
  color: #7b4e1b;
}
.pkns-loan-result .pkns-loan-result-breakdown .pkns-loan-breakdown-value {
  font-family: var(--font-secondary);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--color-brown-light);
}

.pkns-loan-panel-footer {
  padding: 0 32px 36px;
  flex-shrink: 0;
}
.pkns-loan-panel-footer .pkns-loan-cta-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 12px;
}
.pkns-loan-panel-footer .pkns-loan-cta {
  display: inline-block;
  width: auto;
  padding: 14px 32px;
  text-align: center;
  font-family: var(--font-secondary);
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-primary-text);
  background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-highlight) var(--color-primary-stop, 100%));
  border: none;
  border-radius: 0 18px;
  cursor: pointer;
  transition: 0.3s;
}
.pkns-loan-panel-footer .pkns-loan-cta:hover {
  background: linear-gradient(90deg, rgb(176, 141, 74) 0%, rgb(227, 208, 145) 100%);
}
.pkns-loan-panel-footer .pkns-loan-disclaimer {
  font-family: var(--font-secondary);
  font-size: 0.72rem;
  color: var(--color-brown-light);
  text-align: center;
  margin: 12px 0 0 0;
  opacity: 0.7;
  line-height: 1.5;
}

/*# sourceMappingURL=style.css.map */
