/* Utilities added after the last Tailwind build (assets/css/tailwind.min.css).
   Safe to delete once `npm run build:css` is re-run on a machine with Node. */
.-left-\[9px\]{left:-9px}
.border-4{border-width:4px}
.ml-3{margin-left:.75rem}
.object-top{object-position:top}
.space-y-10>:not([hidden])~:not([hidden]){margin-top:2.5rem}
.top-1\.5{top:.375rem}
.hover\:gap-2:hover{gap:.5rem}
.hover\:shadow-lg:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}
@media (min-width:1024px){
  .lg\:flex-1{flex:1 1 0%}
  .lg\:min-w-0{min-width:0}
  .lg\:shrink-0{flex-shrink:0}
}

/* ---- Utilities generated with Tailwind 3.4.17 for classes missing from tailwind.min.css (auto-extracted) ---- */
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}
.visible{visibility:visible}
.invisible{visibility:hidden}
.static{position:static}
.-bottom-10{bottom:-2.5rem}
.-left-\[23px\]{left:-23px}
.bottom-2{bottom:.5rem}
.bottom-5{bottom:1.25rem}
.left-1\/2{left:50%}
.left-2{left:.5rem}
.right-2{right:.5rem}
.top-6{top:1.5rem}
.z-\[100\]{z-index:100}
.m-1{margin:.25rem}
.m-2{margin:.5rem}
.m-3{margin:.75rem}
.m-4{margin:1rem}
.mx-1{margin-left:.25rem;margin-right:.25rem}
.mx-3{margin-left:.75rem;margin-right:.75rem}
.my-4{margin-bottom:1rem;margin-top:1rem}
.mb-2\.5{margin-bottom:.625rem}
.mb-24{margin-bottom:6rem}
.ml-1\.5{margin-left:.375rem}
.ml-2{margin-left:.5rem}
.mr-1{margin-right:.25rem}
.mr-2{margin-right:.5rem}
.mt-20{margin-top:5rem}
.mt-auto{margin-top:auto}
.line-clamp-3,.line-clamp-4{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}
.line-clamp-4{-webkit-line-clamp:4}
.\!block{display:block!important}
.\!grid{display:grid!important}
.aspect-video{aspect-ratio:16/9}
.\!h-9{height:2.25rem!important}
.h-3\.5{height:.875rem}
.h-32{height:8rem}
.h-4{height:1rem}
.h-\[460px\]{height:460px}
.h-\[72px\]{height:72px}
.h-auto{height:auto}
.h-screen{height:100vh}
.max-h-48{max-height:12rem}
.max-h-\[500px\]{max-height:500px}
.max-h-\[84vh\]{max-height:84vh}
.max-h-\[92vh\]{max-height:92vh}
.max-h-full{max-height:100%}
.min-h-0{min-height:0}
.min-h-\[400px\]{min-height:400px}
.\!w-9{width:2.25rem!important}
.w-24{width:6rem}
.w-28{width:7rem}
.w-3\.5{width:.875rem}
.w-32{width:8rem}
.w-\[2px\]{width:2px}
.w-\[calc\(25\%-8px\)\]{width:calc(25% - 8px)}
.w-px{width:1px}
.min-w-0{min-width:0}
.min-w-\[200px\]{min-width:200px}
.min-w-\[230px\]{min-width:230px}
.min-w-\[88px\]{min-width:88px}
.max-w-6xl{max-width:72rem}
.max-w-\[120px\]{max-width:120px}
.max-w-\[130px\]{max-width:130px}
.max-w-\[150px\]{max-width:150px}
.max-w-\[96vw\]{max-width:96vw}
.max-w-lg{max-width:32rem}
.flex-shrink,.shrink{flex-shrink:1}
.animate-spin{animation:spin 1s linear infinite}
.cursor-crosshair{cursor:crosshair}
.cursor-default{cursor:default}
.cursor-ew-resize{cursor:ew-resize}
.cursor-grab{cursor:grab}
.touch-none{touch-action:none}
.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}
.resize-y{resize:vertical}
.list-decimal{list-style-type:decimal}
.list-disc{list-style-type:disc}
.justify-start{justify-content:flex-start}
.gap-0\.5{gap:.125rem}
.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(4rem*var(--tw-space-y-reverse));margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)))}
.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(241 245 249/var(--tw-divide-opacity,1))}
.divide-zinc-800\/80>:not([hidden])~:not([hidden]){border-color:rgba(39,39,42,.8)}
.rounded-r-2xl{border-bottom-right-radius:1rem;border-top-right-radius:1rem}
.border-dashed{border-style:dashed}
.border-none{border-style:none}
.border-\[\#090A0D\]{--tw-border-opacity:1;border-color:rgb(9 10 13/var(--tw-border-opacity,1))}
.border-\[\#bb0112\]\/40{border-color:rgba(187,1,18,.4)}
.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}
.border-amber-200\/60{border-color:hsla(48,97%,77%,.6)}
.border-amber-200\/80{border-color:hsla(48,97%,77%,.8)}
.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}
.border-blue-200\/80{border-color:rgba(191,219,254,.8)}
.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}
.border-primary{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}
.border-purple-200{--tw-border-opacity:1;border-color:rgb(233 213 255/var(--tw-border-opacity,1))}
.border-red-100{--tw-border-opacity:1;border-color:rgb(254 226 226/var(--tw-border-opacity,1))}
.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}
.border-red-200\/80{border-color:hsla(0,96%,89%,.8)}
.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}
.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}
.border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}
.border-red-800\/80{border-color:rgba(153,27,27,.8)}
.border-slate-200\/60{border-color:rgba(226,232,240,.6)}
.border-slate-200\/90{border-color:rgba(226,232,240,.9)}
.border-slate-800{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity,1))}
.border-slate-800\/80{border-color:rgba(30,41,59,.8)}
.border-t-transparent{border-top-color:transparent}
.bg-\[\#070E1C\]{--tw-bg-opacity:1;background-color:rgb(7 14 28/var(--tw-bg-opacity,1))}
.bg-\[\#07120E\]{--tw-bg-opacity:1;background-color:rgb(7 18 14/var(--tw-bg-opacity,1))}
.bg-\[\#0E1015\]\/90{background-color:rgba(14,16,21,.9)}
.bg-\[\#0F0E0A\]{--tw-bg-opacity:1;background-color:rgb(15 14 10/var(--tw-bg-opacity,1))}
.bg-\[\#bb0112\]{--tw-bg-opacity:1;background-color:rgb(187 1 18/var(--tw-bg-opacity,1))}
.bg-\[\#bb0112\]\/10{background-color:rgba(187,1,18,.1)}
.bg-\[\#bb0112\]\/20{background-color:rgba(187,1,18,.2)}
.bg-\[\#e8f0fe\]{--tw-bg-opacity:1;background-color:rgb(232 240 254/var(--tw-bg-opacity,1))}
.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}
.bg-amber-50\/40{background-color:rgba(255,251,235,.4)}
.bg-amber-50\/70{background-color:rgba(255,251,235,.7)}
.bg-black\/50{background-color:rgba(0,0,0,.5)}
.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}
.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}
.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}
.bg-emerald-50\/80{background-color:rgba(236,253,245,.8)}
.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}
.bg-red-50\/50{background-color:hsla(0,86%,97%,.5)}
.bg-red-50\/60{background-color:hsla(0,86%,97%,.6)}
.bg-red-50\/70{background-color:hsla(0,86%,97%,.7)}
.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}
.bg-red-950\/60{background-color:rgba(69,10,10,.6)}
.bg-secondary\/90{background-color:rgba(187,1,18,.9)}
.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}
.bg-slate-200\/80{background-color:rgba(226,232,240,.8)}
.bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}
.bg-slate-400{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}
.bg-slate-50\/60{background-color:rgba(248,250,252,.6)}
.bg-slate-50\/80{background-color:rgba(248,250,252,.8)}
.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}
.bg-slate-900\/60{background-color:rgba(15,23,42,.6)}
.bg-slate-900\/85{background-color:rgba(15,23,42,.85)}
.bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}
.bg-slate-950\/80{background-color:rgba(2,6,23,.8)}
.bg-white\/15{background-color:hsla(0,0%,100%,.15)}
.bg-white\/80{background-color:hsla(0,0%,100%,.8)}
.bg-zinc-400{--tw-bg-opacity:1;background-color:rgb(161 161 170/var(--tw-bg-opacity,1))}
.bg-zinc-700{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}
.bg-zinc-900\/50{background-color:rgba(24,24,27,.5)}
.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}
.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}
.from-\[\#14151B\]{--tw-gradient-from:#14151b var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,21,27,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.from-\[\#bb0112\]{--tw-gradient-from:#bb0112 var(--tw-gradient-from-position);--tw-gradient-to:rgba(187,1,18,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}
.via-\[\#121319\]{--tw-gradient-to:rgba(18,19,25,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#121319 var(--tw-gradient-via-position),var(--tw-gradient-to)}
.via-zinc-200{--tw-gradient-to:hsla(240,6%,90%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#e4e4e7 var(--tw-gradient-via-position),var(--tw-gradient-to)}
.via-zinc-900{--tw-gradient-to:rgba(24,24,27,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#18181b var(--tw-gradient-via-position),var(--tw-gradient-to)}
.via-zinc-950\/75{--tw-gradient-to:rgba(9,9,11,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(9,9,11,.75) var(--tw-gradient-via-position),var(--tw-gradient-to)}
.to-\[\#171822\]{--tw-gradient-to:#171822 var(--tw-gradient-to-position)}
.to-amber-500{--tw-gradient-to:#f59e0b var(--tw-gradient-to-position)}
.to-amber-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}
.to-emerald-500{--tw-gradient-to:#10b981 var(--tw-gradient-to-position)}
.to-zinc-400{--tw-gradient-to:#a1a1aa var(--tw-gradient-to-position)}
.to-zinc-950{--tw-gradient-to:#09090b var(--tw-gradient-to-position)}
.p-10{padding:2.5rem}
.p-12{padding:3rem}
.p-16{padding:4rem}
.p-3\.5{padding:.875rem}
.px-7{padding-left:1.75rem;padding-right:1.75rem}
.py-14{padding-bottom:3.5rem;padding-top:3.5rem}
.py-5{padding-bottom:1.25rem;padding-top:1.25rem}
.pb-0{padding-bottom:0}
.pb-1\.5{padding-bottom:.375rem}
.pb-2\.5{padding-bottom:.625rem}
.pl-1{padding-left:.25rem}
.pl-2{padding-left:.5rem}
.pr-1{padding-right:.25rem}
.pr-3{padding-right:.75rem}
.pt-16{padding-top:4rem}
.pt-2\.5{padding-top:.625rem}
.text-\[19px\]{font-size:19px}
.text-\[48px\]{font-size:48px}
.lowercase{text-transform:lowercase}
.leading-\[1\.2\]{line-height:1.2}
.leading-normal{line-height:1.5}
.text-\[\#bb0112\]{--tw-text-opacity:1;color:rgb(187 1 18/var(--tw-text-opacity,1))}
.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}
.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}
.text-amber-900{--tw-text-opacity:1;color:rgb(120 53 15/var(--tw-text-opacity,1))}
.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}
.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}
.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}
.text-indigo-500{--tw-text-opacity:1;color:rgb(99 102 241/var(--tw-text-opacity,1))}
.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}
.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}
.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}
.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}
.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}
.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}
.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}
.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}
.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}
.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}
.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}
.text-white\/80{color:hsla(0,0%,100%,.8)}
.text-white\/90{color:hsla(0,0%,100%,.9)}
.text-zinc-100{--tw-text-opacity:1;color:rgb(244 244 245/var(--tw-text-opacity,1))}
.underline{text-decoration-line:underline}
.accent-red-600{accent-color:#dc2626}
.opacity-35{opacity:.35}
.opacity-80{opacity:.8}
.shadow-\[0_0_12px_rgba\(0\2c 0\2c 0\2c 0\.8\)\]{--tw-shadow:0 0 12px rgba(0,0,0,.8);--tw-shadow-colored:0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
.shadow-\[\#bb0112\]\/20{--tw-shadow-color:rgba(187,1,18,.2);--tw-shadow:var(--tw-shadow-colored)}
.outline{outline-style:solid}
.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}
.ring,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}
.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}
.ring-secondary\/20{--tw-ring-color:rgba(187,1,18,.2)}
.blur{--tw-blur:blur(8px)}
.blur,.blur-2xl{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}
.transition-shadow{transition-duration:.15s;transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1)}
.duration-150{transition-duration:.15s}
.duration-75{transition-duration:75ms}
.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}
.selection\:bg-\[\#bb0112\] ::-moz-selection{--tw-bg-opacity:1;background-color:rgb(187 1 18/var(--tw-bg-opacity,1))}
.selection\:bg-\[\#bb0112\] ::selection{--tw-bg-opacity:1;background-color:rgb(187 1 18/var(--tw-bg-opacity,1))}
.selection\:bg-\[\#bb0112\]::-moz-selection{--tw-bg-opacity:1;background-color:rgb(187 1 18/var(--tw-bg-opacity,1))}
.selection\:bg-\[\#bb0112\]::selection{--tw-bg-opacity:1;background-color:rgb(187 1 18/var(--tw-bg-opacity,1))}
.placeholder\:text-slate-300::-moz-placeholder{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}
.placeholder\:text-slate-300::placeholder{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}
.placeholder\:text-slate-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}
.placeholder\:text-slate-400::placeholder{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}
.after\:absolute:after{content:var(--tw-content);position:absolute}
.after\:inset-0:after{content:var(--tw-content);inset:0}
.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}
.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}
.after\:h-4:after{content:var(--tw-content);height:1rem}
.after\:w-4:after{content:var(--tw-content);width:1rem}
.after\:rounded-full:after{border-radius:9999px;content:var(--tw-content)}
.after\:border:after{border-width:1px;content:var(--tw-content)}
.after\:border-slate-300:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}
.after\:bg-white:after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}
.after\:transition-all:after{content:var(--tw-content);transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}
.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}
.hover\:scale-125:hover{--tw-scale-x:1.25;--tw-scale-y:1.25;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.hover\:border-\[\#bb0112\]:hover{--tw-border-opacity:1;border-color:rgb(187 1 18/var(--tw-border-opacity,1))}
.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}
.hover\:border-emerald-300:hover{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}
.hover\:border-red-300:hover{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}
.hover\:border-red-600:hover{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}
.hover\:border-slate-100:hover{--tw-border-opacity:1;border-color:rgb(241 245 249/var(--tw-border-opacity,1))}
.hover\:border-slate-300:hover{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}
.hover\:border-slate-500:hover{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}
.hover\:border-white:hover{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}
.hover\:bg-\[\#b01020\]:hover{--tw-bg-opacity:1;background-color:rgb(176 16 32/var(--tw-bg-opacity,1))}
.hover\:bg-amber-100:hover{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}
.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}
.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}
.hover\:bg-emerald-50:hover{--tw-bg-opacity:1;background-color:rgb(236 253 245/var(--tw-bg-opacity,1))}
.hover\:bg-emerald-500:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}
.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}
.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}
.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}
.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}
.hover\:bg-slate-50\/70:hover{background-color:rgba(248,250,252,.7)}
.hover\:bg-slate-50\/80:hover{background-color:rgba(248,250,252,.8)}
.hover\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}
.hover\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}
.hover\:bg-white\/15:hover{background-color:hsla(0,0%,100%,.15)}
.hover\:bg-white\/30:hover{background-color:hsla(0,0%,100%,.3)}
.hover\:bg-zinc-800\/80:hover{background-color:rgba(39,39,42,.8)}
.hover\:bg-zinc-900:hover{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}
.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}
.hover\:text-emerald-600:hover{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}
.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}
.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}
.hover\:text-slate-600:hover{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}
.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}
.hover\:text-slate-800:hover{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}
.focus\:border-\[\#bb0112\]:focus{--tw-border-opacity:1;border-color:rgb(187 1 18/var(--tw-border-opacity,1))}
.focus\:border-amber-600:focus{--tw-border-opacity:1;border-color:rgb(217 119 6/var(--tw-border-opacity,1))}
.focus\:border-purple-600:focus{--tw-border-opacity:1;border-color:rgb(147 51 234/var(--tw-border-opacity,1))}
.focus\:border-red-500:focus{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}
.focus\:border-red-600:focus{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}
.focus\:border-slate-300:focus{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}
.focus\:border-slate-400:focus{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}
.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}
.focus\:ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity,1))}
.focus\:ring-red-600\/10:focus{--tw-ring-color:rgba(220,38,38,.1)}
.active\:cursor-grabbing:active{cursor:grabbing}
.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}
.disabled\:opacity-20:disabled{opacity:.2}
.disabled\:opacity-25:disabled{opacity:.25}
.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}
.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x:0.125rem}
.group:hover .group-hover\:translate-x-0\.5,.group:hover .group-hover\:translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.group:hover .group-hover\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}
.group:hover .group-hover\:bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}
.group:hover .group-hover\:bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}
.group:hover .group-hover\:bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}
.group:hover .group-hover\:text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}
.group:hover .group-hover\:text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}
.group:hover .group-hover\:text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}
.peer:checked~.peer-checked\:bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}
.peer:checked~.peer-checked\:bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}
.peer:checked~.peer-checked\:after\:translate-x-full:after{content:var(--tw-content);--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
.peer:checked~.peer-checked\:after\:border-white:after{content:var(--tw-content);--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}
.peer:focus~.peer-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}
@media (min-width:640px){.sm\:left-6{left:1.5rem}.sm\:right-6{right:1.5rem}.sm\:col-span-1{grid-column:span 1/span 1}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mb-5{margin-bottom:1.25rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:w-72{width:18rem}.sm\:max-w-md{max-width:28rem}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:gap-4{gap:1rem}.sm\:border-t-0{border-top-width:0}.sm\:p-5{padding:1.25rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:pb-4{padding-bottom:1rem}.sm\:pt-2{padding-top:.5rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}
@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:inline{display:inline}.md\:h-\[540px\]{height:540px}.md\:w-64{width:16rem}.md\:self-end{align-self:flex-end}.md\:pb-0{padding-bottom:0}.md\:pb-5{padding-bottom:1.25rem}.md\:pt-24{padding-top:6rem}.md\:text-\[56px\]{font-size:56px}.md\:leading-\[64px\]{line-height:64px}}
@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid{display:grid}.lg\:aspect-auto{aspect-ratio:auto}.lg\:h-auto{height:auto}.lg\:min-w-\[300px\]{min-width:300px}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:gap-12{gap:3rem}.lg\:border-b-0{border-bottom-width:0}.lg\:border-r{border-right-width:1px}.lg\:p-10{padding:2.5rem}.lg\:text-\[44px\]{font-size:44px}.lg\:text-\[60px\]{font-size:60px}.lg\:leading-\[68px\]{line-height:68px}}
@media (min-width:1280px){.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}}


/* Footer: brand column + N link columns (N set by the Footer Manager via --ftr-cols) */
@media (min-width:1024px){.footer-grid{grid-template-columns:1.4fr repeat(var(--ftr-cols,5),minmax(0,1fr));gap:2rem}}


/* Floating contact stack: docked mid-right, half-visible and pulsing; slides out fully on hover */
.floating-concierge-stack{right:0!important;bottom:auto!important;top:50%;gap:24px;width:68px;padding:34px 0 14px;box-sizing:border-box;
  transform:translate(32px,-50%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.floating-concierge-stack::before{content:"\2039";position:absolute;top:0;left:50%;margin-left:-14px;width:28px;height:28px;border-radius:50%;
  background:#f58220;color:#fff;font:700 22px/26px sans-serif;text-align:center;box-shadow:0 0 0 0 rgba(245,130,32,.7);
  animation:esl-contact-ring 1.6s ease-out infinite,esl-contact-nudge 1.2s ease-in-out infinite}
.floating-concierge-stack:hover,.floating-concierge-stack:focus-within,.floating-concierge-stack.is-open{transform:translate(0,-50%)}
.floating-concierge-stack:hover::before,.floating-concierge-stack:focus-within::before{animation:none;opacity:0}
.floating-concierge-stack>*{animation:esl-contact-blink 1.4s ease-in-out infinite}
.floating-concierge-stack>*:nth-child(2){animation-delay:.15s}.floating-concierge-stack>*:nth-child(3){animation-delay:.3s}.floating-concierge-stack>*:nth-child(4){animation-delay:.45s}
.floating-concierge-stack:hover>*,.floating-concierge-stack:focus-within>*,.floating-concierge-stack.is-open>*{animation:none;opacity:1}
@keyframes esl-contact-blink{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes esl-contact-ring{0%{box-shadow:0 0 0 0 rgba(245,130,32,.75)}100%{box-shadow:0 0 0 14px rgba(245,130,32,0)}}
@keyframes esl-contact-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(-5px)}}
.rangs-msg .msg_cont_wrap{position:absolute!important;right:calc(100% + 14px)!important;bottom:-8px!important;top:auto!important}
.rangs-msg .msg_cont_wrap:not(.msg_opened){transform:translateX(12px) scale(.95)!important}
.rangs-msg .msg_cont_wrap.msg_opened{transform:none!important}
/* Small / short screens: start the stack below the logo + menu bar instead of centering it behind the header */
@media (max-width:1023px),(max-height:700px){
  .floating-concierge-stack{top:96px;transform:translate(32px,0);gap:18px}
  .floating-concierge-stack:hover,.floating-concierge-stack:focus-within,.floating-concierge-stack.is-open{transform:translate(0,0)}
}
@media (prefers-reduced-motion:reduce){.floating-concierge-stack>*,.floating-concierge-stack::before{animation:none}}

/* Schedule a Meeting: same glass background as the menu capsule, original height, bottom edge aligned with it */
.meeting-trigger{top:31px!important;left:20px!important;height:37px;box-sizing:border-box;padding:0 20px!important;
  background:rgba(18,20,24,.78)!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;
  border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 10px 30px -4px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.04)}
.meeting-trigger:hover{background:rgba(22,25,30,.9)!important;color:#fff!important;border-color:rgba(255,255,255,.24)!important}
.rangs-nav-cluster{height:52px;box-sizing:border-box}
@media (min-width:768px){.meeting-trigger{left:36px!important}}
@media (max-width:640px){.meeting-trigger{top:28px!important;height:32px;padding:0 6px!important}.rangs-nav-cluster{height:46px}}
.meeting-trigger{font-weight:700!important}

/* Menu open: no dim/blur on the page (backdrop stays as an invisible click-to-close layer) */
.menu-backdrop{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* Schedule a Meeting: tilted diagonally (-35deg, reads bottom-left -> top-right), pivoting on its bottom-left corner */
.meeting-trigger{top:146px!important;left:40px!important;transform:rotate(-35deg);transform-origin:left bottom}
.meeting-trigger:hover{transform:rotate(-35deg) translateY(-2px)!important}
@media (min-width:768px){.meeting-trigger{top:154px!important;left:52px!important}}
@media (max-width:640px){.meeting-trigger{top:134px!important;left:30px!important}}

/* Logo + menu capsule: pushed further right (right gap 36px -> 16px desktop, 20px -> 10px mobile) */
.rangs-header{padding-right:10px!important}
@media (min-width:768px){.rangs-header{padding-right:16px!important}}

/* Schedule a Meeting: corner ribbon fixed into the top-left corner (band clipped by both screen edges, -45deg) */
.meeting-trigger{top:32px!important;left:-65px!important;width:230px;justify-content:center;border-radius:0!important;
  transform:rotate(-45deg)!important;transform-origin:center!important;border-left:0!important;border-right:0!important}
.meeting-trigger:hover{transform:rotate(-45deg)!important}
@media (max-width:640px){.meeting-trigger{top:24px!important;left:-55px!important;width:190px}}
/* Corner ribbon: moved further in from the corner and lengthened so the full text stays visible */
.meeting-trigger{top:66px!important;left:-55px!important;width:280px}
@media (max-width:640px){.meeting-trigger{top:54px!important;left:-50px!important;width:240px}}
/* Logo + menu capsule: right gap 16px -> 8px desktop, 10px -> 5px mobile */
.rangs-header{padding-right:5px!important}
@media (min-width:768px){.rangs-header{padding-right:8px!important}}
/* Mobile only: ribbon tucked closer into the corner (smaller), capsule nearer the right edge */
@media (max-width:640px){
  .meeting-trigger{top:42px!important;left:-44px!important;width:200px;height:28px;font-size:11px!important;gap:6px}
  .rangs-header{padding-right:2px!important}
}

/* Schedule a Meeting: vertical (90deg) tab docked on the left edge, half-visible with a pulsing orange arrow,
   same behaviour as the right-hand contact stack; slides fully out on hover/focus */
.meeting-trigger{position:fixed!important;top:50%!important;left:0!important;width:44px!important;height:auto!important;
  padding:42px 0 18px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;gap:0!important;
  border:1px solid rgba(255,255,255,.14)!important;border-left:0!important;border-radius:0 22px 22px 0!important;
  font-size:13px!important;letter-spacing:.6px;box-sizing:border-box;
  transform:translate(-22px,-50%)!important;transform-origin:center!important;
  transition:transform .45s cubic-bezier(.16,1,.3,1),background .25s}
.meeting-trigger>span{writing-mode:vertical-rl;white-space:nowrap;animation:esl-contact-blink 1.4s ease-in-out infinite}
.meeting-trigger>svg{display:none}
.meeting-trigger::before{content:"\203A";position:absolute;top:6px;left:50%;margin-left:-14px;width:28px;height:28px;border-radius:50%;
  background:#f58220;color:#fff;font:700 22px/26px sans-serif;text-align:center;box-shadow:0 0 0 0 rgba(245,130,32,.7);
  animation:esl-contact-ring 1.6s ease-out infinite,esl-meeting-nudge 1.2s ease-in-out infinite}
.meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,-50%)!important;background:rgba(22,25,30,.9)!important;color:#fff!important}
.meeting-trigger:hover::before,.meeting-trigger:focus-visible::before{animation:none;opacity:0}
.meeting-trigger:hover>span,.meeting-trigger:focus-visible>span{animation:none;opacity:1}
@keyframes esl-meeting-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.meeting-trigger>span,.meeting-trigger::before{animation:none}}

/* Meeting tab: text direction reversed (reads bottom -> top) and height equal to the contact stack (272px; 254px on small screens) */
.meeting-trigger{height:272px!important;justify-content:center;padding:0!important}
.meeting-trigger>span{transform:rotate(180deg)}
.meeting-trigger::before{top:34px}
@media (max-width:1023px),(max-height:700px){
  .meeting-trigger{top:96px!important;height:254px!important;transform:translate(-22px,0)!important}
  .meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,0)!important}
}

/* Meeting tab: larger text, blink icon raised towards the top edge */
.meeting-trigger{font-size:17px!important;letter-spacing:.8px}
.meeting-trigger::before{top:8px}

/* Tighter vertical rhythm: section top/bottom spacing halved site-wide.
   Hero offsets (pt-32 / pt-24 under the fixed header) are intentionally left alone. */
section.py-12{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
section.py-16{padding-top:2rem!important;padding-bottom:2rem!important}
section.py-20{padding-top:2.5rem!important;padding-bottom:2.5rem!important}
section.py-24{padding-top:3rem!important;padding-bottom:3rem!important}
section.py-28{padding-top:3.5rem!important;padding-bottom:3.5rem!important}
section.pt-16{padding-top:2rem!important}
section.pt-20{padding-top:2.5rem!important}
section.pb-16{padding-bottom:2rem!important}
section.pb-20{padding-bottom:2.5rem!important}
@media (min-width:768px){
  section.md\:py-28{padding-top:3.5rem!important;padding-bottom:3.5rem!important}
  section.md\:py-36{padding-top:4.5rem!important;padding-bottom:4.5rem!important}
}

/* Mobile footer: link columns sit two-by-two; the About block spans the full width. */
@media (max-width:639px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:28px 20px!important}
  .footer-grid>:first-child{grid-column:1/-1}
}

/* About page › Why Choose Us: compact cards on mobile. */
@media (max-width:639px){
  #why-us>div:first-child{margin-bottom:1.25rem!important}
  #why-us .grid{gap:.75rem!important}
  #why-us .grid>div{padding:1rem 1.1rem!important}
  #why-us .grid>div>div:first-child{margin-bottom:.6rem!important}
  #why-us .grid>div h3{margin-bottom:.25rem!important}
}

/* Properties page: status filter is a dropdown on mobile, pills from 640px up. */
@media (max-width:639px){#prop-status-pills{display:none!important}#prop-status-select-wrap{width:100%}}
@media (min-width:640px){#prop-status-select-wrap{display:none}}

/* Properties page: compact advisory banner on mobile. */
@media (max-width:639px){
  #prop-advisory{margin-top:2rem!important;padding:1.25rem!important}
  #prop-advisory .mt-8{margin-top:1.25rem!important}
  #prop-advisory .mt-8>*{padding-top:.6rem;padding-bottom:.6rem}
  #prop-advisory .mt-8{gap:.25rem!important}
}
@media (max-width:639px){main.pb-24{padding-bottom:2.5rem!important}}

/* Blogs page: tighter spacing on mobile. */
@media (max-width:639px){
  #blog-main{padding-top:1.25rem!important;padding-bottom:1.25rem!important}
  #blog-main>.grid{gap:1.5rem!important}
  #blog-main aside{--tw-space-y-reverse:0}
  #blog-main aside>*+*{margin-top:1rem!important}
  #blog-main aside>div{padding:1.1rem!important}
}

/* Slide-in menu: less empty space below the Portal Login button. */
.main-menu{padding-bottom:0!important}
.main-menu>div:last-child{padding-bottom:4px!important}
.main-menu li a,.main-menu .menu-group__toggle{font-size:12.5px!important}
/* Slide-in menu: narrower panel, trimmed from the left edge. */
.main-menu{width:330px!important;max-width:88vw!important}

/* Meeting tab: fully pulled out of the left edge (no hidden half, no gap) so the whole "Schedule a Meeting" text shows */
.meeting-trigger{left:0!important;transform:translate(0,-50%)!important;width:48px!important}
.meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,-50%)!important}
@media (max-width:1023px),(max-height:700px){
  .meeting-trigger{transform:translate(0,0)!important}
  .meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,0)!important}
}

/* Contact stack: icons fully hidden off the right edge; only a full-height dark tab with the arrow centred stays visible.
   Hover/focus slides the whole stack out as before. */
.floating-concierge-stack{transform:translate(68px,-50%)}
.floating-concierge-stack:hover,.floating-concierge-stack:focus-within,.floating-concierge-stack.is-open{transform:translate(0,-50%)}
.floating-concierge-stack::after{content:"";position:absolute;top:0;bottom:0;right:100%;width:44px;background:rgba(22,25,30,.92);
  border:1px solid rgba(255,255,255,.14);border-right:0;border-radius:22px 0 0 22px;box-sizing:border-box;pointer-events:auto;transition:opacity .2s}
.floating-concierge-stack::before{top:50%;left:-36px;margin:-14px 0 0 0;z-index:1}
.floating-concierge-stack:hover::after,.floating-concierge-stack:focus-within::after,.floating-concierge-stack.is-open::after{opacity:0}
@media (max-width:1023px),(max-height:700px){
  .floating-concierge-stack{transform:translate(68px,0)}
  .floating-concierge-stack:hover,.floating-concierge-stack:focus-within,.floating-concierge-stack.is-open{transform:translate(0,0)}
}

/* Contact tab tucked further in: only ~22px of the black box (and half the arrow) peeks out */
.floating-concierge-stack{transform:translate(90px,-50%)}
.floating-concierge-stack:hover,.floating-concierge-stack:focus-within,.floating-concierge-stack.is-open{transform:translate(0,-50%)}
@media (max-width:1023px),(max-height:700px){
  .floating-concierge-stack{transform:translate(90px,0)}
  .floating-concierge-stack:hover,.floating-concierge-stack:focus-within,.floating-concierge-stack.is-open{transform:translate(0,0)}
}

/* Meeting tab: no arrow */
.meeting-trigger::before{display:none!important}

/* Home hero filter: raised so the native dropdown lists (e.g. all Locations) always open downward with room below */
@media (min-width:769px){
  .hero-search{padding-bottom:204px!important}
}

/* Contact tab: arrow stays put, black box tucked further in (narrower, only a sliver shows beside the arrow) */
.floating-concierge-stack::after{width:30px}
.floating-concierge-stack::after{width:38px}

/* Meeting tab: slimmer box */
.meeting-trigger{width:38px!important}

/* Meeting tab on mobile: even slimmer box, smaller text so it still fits */
@media (max-width:768px){
  .meeting-trigger{font-size:13px!important;letter-spacing:.5px}
}

/* Sticky property bar: allow flex children to shrink so CTAs stay on screen */
.min-w-0{min-width:0}
#floatingStickyBar{max-width:100vw;overflow:hidden}

/* Schedule a Meeting: identical to the right-hand contact tab, mirrored to the left edge.
   Box is tucked off-screen; only a dark tab with a blinking arrow peeks out, and hover/focus slides the full box in. */
.meeting-trigger{width:56px!important;transform:translate(-78px,-50%)!important}
.meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,-50%)!important}
.meeting-trigger::after{content:"";position:absolute;top:0;bottom:0;left:100%;width:38px;background:rgba(22,25,30,.92);
  border:1px solid rgba(255,255,255,.14);border-left:0;border-radius:0 22px 22px 0;box-sizing:border-box;pointer-events:auto;transition:opacity .2s}
.meeting-trigger::before{display:block!important;top:50%;left:auto;right:-36px;margin:-14px 0 0 0;z-index:1}
.meeting-trigger:hover::after,.meeting-trigger:focus-visible::after{opacity:0}
@media (max-width:1023px),(max-height:700px){
  .meeting-trigger{transform:translate(-78px,0)!important}
  .meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,0)!important}
}

/* Meeting tab: slimmer box (40px), height unchanged. The box itself peeks out (no separate sliver); the arrow stays centred
   on the edge and "Schedule a Meeting" sits below it, slightly clipped by the screen edge until hover/focus slides it fully in. */
.meeting-trigger{width:40px!important;justify-content:flex-end!important;padding:0 0 12px!important;
  font-size:14px!important;letter-spacing:.5px;overflow:visible;transform:translate(-8px,-50%)!important}
.meeting-trigger::after{display:none!important}
.meeting-trigger::before{right:18px;left:auto}
.meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,-50%)!important}
@media (max-width:1023px),(max-height:700px){
  .meeting-trigger{transform:translate(-8px,0)!important}
  .meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,0)!important}
}
@media (max-width:768px){.meeting-trigger{font-size:13px!important}}
/* Meeting tab: arrow raised so the label has its own room underneath it */
.meeting-trigger::before{top:40%!important}
.meeting-trigger{font-size:13px!important;letter-spacing:.4px;padding-bottom:10px!important}
/* Meeting tab: visible strip matches the right-hand contact tab (~14px); label centred in that strip, centred in the box on hover */
.meeting-trigger{transform:translate(-26px,-50%)!important;align-items:flex-start!important;padding:0 0 10px 26px!important}
.meeting-trigger::before{top:40%!important;left:26px!important;right:auto!important}
.meeting-trigger:hover,.meeting-trigger:focus-visible{align-items:center!important;padding-left:0!important}
@media (max-width:1023px),(max-height:700px){
  .meeting-trigger{transform:translate(-24px,0)!important}
  .meeting-trigger:hover,.meeting-trigger:focus-visible{transform:translate(0,0)!important}
}
.meeting-trigger::before{left:12px!important}
/* Meeting tab: label back to 17px, centred in the box (vertically) and in the visible strip (horizontally); clipping is fine. Arrow sits above it. */
.meeting-trigger{font-size:17px!important;letter-spacing:.8px;justify-content:center!important;padding:0 0 0 25px!important}
.meeting-trigger::before{top:12px!important;margin:0!important}
.meeting-trigger:hover,.meeting-trigger:focus-visible{padding-left:0!important}
@media (max-width:768px){.meeting-trigger{font-size:17px!important}}
.meeting-trigger::before{top:50%!important;margin:-14px 0 0 0!important}
.meeting-trigger{padding-left:17px!important}
.meeting-trigger:hover,.meeting-trigger:focus-visible{padding-left:0!important}
/* Meeting tab: same dark fill as the right-hand contact tab */
.meeting-trigger,.meeting-trigger:hover,.meeting-trigger:focus-visible{background:rgba(22,25,30,.92)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

/* Contact tab: 14px of the dark strip peeks out (matches the left Meeting tab); arrow keeps its screen position */
.floating-concierge-stack{transform:translate(92px,-50%)}
.floating-concierge-stack::before{left:-38px}
@media (max-width:1023px),(max-height:700px){
  .floating-concierge-stack{transform:translate(92px,0)}
}

/* No sideways page scroll: the off-screen contact/meeting tabs must not widen the page on phones, and the share-button row wraps to a new line instead of running off the screen */
html,body{overflow-x:clip}
div:has(>#prop-share-copy){flex-wrap:wrap}

/* Property sticky bar: two equal round icon buttons (WhatsApp logo + inquiry mail icon) */
.sticky-cta-icon{width:44px;height:44px;flex:0 0 44px}
.sticky-cta-wa{width:22px;height:22px}

/* Property key facts: smaller value text that wraps to a second line instead of being cut off */
.spec-value{font-size:13px;line-height:1.3;overflow-wrap:anywhere}
.spec-label{font-size:10.5px;line-height:1.3}

/* Property "at a glance" card: Construction Status and Brochure stacked, equal full-width round buttons */
div:has(>#glance-btn-construction){flex-direction:column;align-items:stretch;gap:12px}
div:has(>#glance-btn-construction)>a,div:has(>#glance-btn-construction)>button{width:100%;min-height:48px;justify-content:center}
div:has(>#glance-btn-construction)>button{border-color:rgba(255,255,255,.28)}

/* Floor-plan tabs: one swipeable row (2-10 plans), each tab a fixed comfortable width, label up to 2 lines */
#planTabContainer{overflow-x:auto;flex-wrap:nowrap;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  padding-right:20px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 18px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 18px),transparent)}
#planTabContainer::-webkit-scrollbar{display:none}
#planTabContainer .plan-nav-btn{flex:0 0 auto;width:132px;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;line-height:1.3;scroll-snap-align:center}
@media (min-width:1024px){#planTabContainer .plan-nav-btn{width:auto;min-width:132px;max-width:190px}}
#planTabContainer{align-items:stretch}
#planTabContainer .plan-nav-btn{min-height:64px}

/* Floor-plan tabs as a compact tag cloud: single-line pills that wrap, every plan visible */
#planTabContainer{overflow:visible;flex-wrap:wrap;gap:6px;padding:6px;-webkit-mask-image:none;mask-image:none;align-items:center}
#planTabContainer .plan-nav-btn{flex:0 0 auto;width:auto;min-width:0;max-width:100%;min-height:0;display:inline-flex;flex-direction:row;align-items:center;gap:5px;
  padding:7px 12px!important;font-size:12px!important;line-height:1.2;white-space:nowrap;border-radius:999px!important;text-align:left}
#planTabContainer .plan-nav-btn:not(.bg-secondary){background:#fff}
#planTabContainer .plan-nav-btn>span{font-size:11px}
/* Tag cloud: names only (size is shown in the plan badge / details), so pills are short and fit 2 rows */
#planTabContainer{gap:6px;padding:6px}
#planTabContainer .plan-nav-btn>span{display:none}
#planTabContainer .plan-nav-btn{padding:6px 11px!important;font-size:12px!important}

/* Floor-plan tabs, final: ONE compact swipeable row of single-line pills (name + size), ~36px tall */
#planTabContainer{overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;gap:6px;padding:5px 22px 5px 5px;scroll-snap-type:x proximity;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent)}
#planTabContainer .plan-nav-btn>span{display:inline;font-size:10.5px}
#planTabContainer .plan-nav-btn{flex:0 0 auto;scroll-snap-align:center;padding:7px 12px!important;font-size:12px!important;white-space:nowrap}

/* Floor-plan picker as a dropdown (replaces the tab strip / tag cloud above) */
.plan-dd{position:relative;z-index:5}
.plan-dd__btn{width:100%;height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border-radius:12px;
  background:#f1f5f9;border:1px solid #e2e8f0;color:#0f172a;font-size:13px;font-weight:700;cursor:pointer;text-align:left}
.plan-dd__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-dd__label>span{font-weight:400;font-size:11px;color:#64748b;margin-left:4px}
.plan-dd__caret{font-size:22px;color:#64748b;transition:transform .2s}
.plan-dd.is-open .plan-dd__caret{transform:rotate(180deg)}
.plan-dd>#planTabContainer{display:none!important;position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;flex-direction:column;flex-wrap:nowrap!important;gap:2px;
  max-height:300px;overflow-y:auto!important;overflow-x:hidden!important;padding:6px!important;background:#fff!important;border:1px solid #e2e8f0;border-radius:12px;
  box-shadow:0 12px 30px -8px rgba(15,23,42,.25);-webkit-mask-image:none!important;mask-image:none!important}
.plan-dd.is-open>#planTabContainer{display:flex!important}
.plan-dd>#planTabContainer .plan-nav-btn{width:100%!important;max-width:none!important;justify-content:space-between;border-radius:8px!important;padding:10px 12px!important;
  white-space:normal;text-align:left;font-size:13px!important}
.plan-dd>#planTabContainer .plan-nav-btn>span{display:inline;font-size:11px}
.plan-dd>#planTabContainer .plan-nav-btn:not(.bg-secondary){background:transparent}
.plan-dd>#planTabContainer .plan-nav-btn:not(.bg-secondary):hover{background:#f1f5f9}

/* Property inquiry card: compact CTAs. Send button on one line (44px); WhatsApp + Call side by side on one slim line (38px). */
form:has(#propInqMsg)>button[type=submit]{padding:0 12px!important;height:44px;font-size:13px!important;white-space:nowrap;gap:8px!important}
form:has(#propInqMsg)+div{margin-top:12px!important;padding-top:12px!important;gap:8px!important}
form:has(#propInqMsg)+div>a{height:38px;padding:0 8px!important;font-size:12px!important;white-space:nowrap;gap:5px!important}
form:has(#propInqMsg)+div>a .material-symbols-outlined{font-size:16px}

/* Property share row on phones: everything on ONE line (share icon, 3 chips, icon-only copy button) */
@media (max-width:640px){
  div:has(>#prop-share-copy){flex-wrap:nowrap;gap:6px}
  div:has(>#prop-share-copy)>a,div:has(>#prop-share-copy)>button{padding:6px 10px!important;gap:4px!important;font-size:11.5px!important;white-space:nowrap}
  #prop-share-copy>span:last-child{display:none}
  div:has(>div>#prop-share-copy)>:first-child>span:not(.material-symbols-outlined){display:none}
  div:has(>div>#prop-share-copy)>:first-child{flex:0 0 auto}
}

/* Copy-link confirmation bubble (the phone layout shows the button as an icon only) */
#prop-share-copy{position:relative}
#prop-share-copy.is-copied::after{content:"Link copied!";position:absolute;bottom:calc(100% + 8px);right:0;padding:5px 10px;border-radius:8px;background:#065f46;color:#fff;
  font:600 11px/1.2 inherit;white-space:nowrap;pointer-events:none;box-shadow:0 6px 16px -4px rgba(0,0,0,.3);animation:esl-copied-pop .2s ease-out}
@keyframes esl-copied-pop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* Property hero gallery on phones: keep the photo visible. Caption pill hidden, counter smaller, "View Photos" button hidden (tapping the photo opens the lightbox). */
@media (max-width:640px){
  #galleryCaptionBadge{display:none!important}
  #galleryCounter{font-size:11px}
  button[onclick="openGalleryLightbox()"]{display:none!important}
}

/* Gallery caption under the photo on phones */
.gallery-caption-below{display:none}
@media (max-width:640px){
  .gallery-caption-below{display:block;margin:2px 4px 0;font-size:12.5px;line-height:1.35;font-weight:600;color:#475569;text-align:center}
}

/* Floor-plan viewer on phones: drawing stays clear; title + summary move under it */
.plan-caption-below{display:none}
@media (max-width:640px){
  #mainFloorPlanImg ~ div.absolute.top-3.left-3,#mainFloorPlanImg ~ div.absolute.bottom-3{display:none!important}
  .plan-caption-below{display:block;margin:0 2px;text-align:center}
  .plan-caption-below strong{display:block;font-size:13px;line-height:1.3;color:#0f172a}
  .plan-caption-below span{display:block;margin-top:2px;font-size:12px;line-height:1.35;color:#64748b}
}

/* Floor-plan drawing on phones: fills the full width of its box, height follows the drawing's own proportions */
@media (max-width:640px){
  div:has(>#floorPlan2DView){padding:8px!important}
  #floorPlan2DView>.relative{aspect-ratio:auto!important;border:0!important;background:transparent!important}
  #mainFloorPlanImg{width:100%!important;height:auto!important;padding:0!important;object-fit:contain}
}
@media (max-width:640px){
  div:has(>.grid>div>#floorPlan2DView){padding:14px!important}
  .grid>div:has(>#floorPlan2DView){padding:6px!important}
}

/* "Request High-Res Architectural CAD Blueprint" button: normal case, no wide tracking, centred text, so it reads as a clean 1-2 line button */
button[onclick="requestCadBlueprint()"]{text-transform:none!important;letter-spacing:0!important;font-size:13px!important;line-height:1.25;
  text-align:center;gap:8px!important;padding:11px 14px!important;min-height:44px}
button[onclick="requestCadBlueprint()"] .material-symbols-outlined{flex:0 0 auto}

/* CAD blueprint button: on touch screens the hover colours must not stay "stuck" after a tap */
@media (hover:none){
  button[onclick="requestCadBlueprint()"]:hover{background-color:transparent!important;color:rgb(187 1 18)!important}
}

/* Properties page filters on phones: compact. Search full width; Location|SBU and Category|Sort in two columns; status dropdown and result count share one row. */
@media (max-width:640px){
  section:has(#prop-status-select-wrap){margin-bottom:20px!important}
  section:has(#prop-status-select-wrap)>div:first-child{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important;padding:10px!important;border-radius:16px}
  section:has(#prop-status-select-wrap)>div:first-child>div:first-child{display:contents!important}
  section:has(#prop-status-select-wrap)>div:first-child>div:first-child>div:first-child{grid-column:1/-1}
  section:has(#prop-status-select-wrap)>div:first-child>div:last-child{border:0!important;padding:0!important}
  section:has(#prop-status-select-wrap)>div:first-child>div:last-child>div{width:100%}
  section:has(#prop-status-select-wrap) select,section:has(#prop-status-select-wrap) input[type=search],section:has(#prop-status-select-wrap)>div:first-child input{
    height:38px;padding-top:0!important;padding-bottom:0!important;font-size:13px!important}
  section:has(#prop-status-select-wrap)>div:first-child select{padding-left:12px!important;padding-right:30px!important}
  section:has(#prop-status-select-wrap)>div:first-child .relative>.material-symbols-outlined:not(:first-child){right:9px!important;font-size:18px!important}
  section:has(#prop-status-select-wrap)>div:first-child input{padding-left:38px!important}
  section:has(#prop-status-select-wrap)>div:first-child .relative>.material-symbols-outlined:first-child{left:11px!important;font-size:19px!important}
  section:has(#prop-status-select-wrap)>div:last-child{flex-wrap:nowrap!important;gap:10px!important}
  section:has(#prop-status-select-wrap)>div:last-child>#prop-status-select-wrap{flex:1 1 auto;min-width:0}
  #prop-status-select-wrap select{height:36px;padding-top:0!important;padding-bottom:0!important;font-size:13px!important}
  #prop-count-display{flex:0 0 auto;white-space:nowrap;font-size:11.5px!important}
}
